
Informatica Corso di Laurea in Scienze Naturali e Ambientali
Prova esonero
Si consiglia lo studente di svolgere la prova in maniera indipendente e su carta nel tempo massimo di 140 minutiIl docente risponderà ad eventuali chiarimenti on line via email. Le soluzioni (se richieste dagli studenti) saranno discusse domenica dalle 14:30 alle 16:00
QUESTA PROVA DI ESONERO HA UNA DIFFICOLTA' SUPERIORE ALL'ESONERO. SERVE ALLO STUDENTE PER CAPIRE IL PROPRIO GRADO DI PREPARAZIONE E LA CAPACITÀ DI RAGIONAMENTO
Traccia 1. Dato un vettore (di al più 20 elementi) di interi positivi, inizializzato da un utente mediante l'immissione tramite tastiera da parte di un utente fino a che non è immesso un valore negativo, realizzare un programma in un linguaggio ad alto livello che individua quanti numeri pari e dispari ci sono. Inoltre il programma deve restituire il valore minimo e il valore massimo e le ripettive posizioni.
INPUT
1098 (enter) 4 (enter) 6 (enter) 345 (enter) 678 (enter) 3 (enter) -6 (enter)
OUTPUT
4 elementi/o pari - 2 elementi/o dispari
Massimo: 1098 posizione 1
Minimo: 3 posizione:6
Traccia 2. Data una stringa di soli caratteri '0' e '1' (codcie ascii '0'=48 e '1'=49) immessa da input da un utente, realizzare un programma in un lingaggio ad alto livello che converte un la stringa binaria nel corrispondente valore decimale.
ESEMPIO
INPUT
"1010101011"
OUTPUT
683
INPUT
"110010111000"
OUTPUT
3256
Traccia 3. Scrivere un programma in un linguaggio ad alto livello che, letta una stringa di soli caratteri alfanumerici immessi dall'utente, produce una stringa che rappresenta il suo inverso.
INPUT
"casadei200artisti"
OUTPUT
"itsitra002iedasac"
Traccia 4. Scrivere un programma in un linguaggio ad alto livello che, letta una stringa di soli caratteri alfabetici maiuscoli immessi dall'utente, produce in uscita la posizione della lettera che ha ordinamento lessicale più piccolo e l'indice della lettera che ha ordinamento lessicale più grande e la distanza della posizione [si ricorda che 'a'=97 e 'z'=122).
INPUT
"ciaopaperinoeciaoziopaperone"
OUTPUT
lettera 'a' posizione :3 lettera 'z' posizione: 18 distanza: 15
INPUT
rimborsabile
OUTPUT
lettera 'a' posizione :8 lettera 'r' posizione: 1 distanza: 7
Traccia 5. Dichiarando le librerie #include
Per limitare la generazione di un numero casuale da 0 a n-1 è sufficiente applicare il resto della divisione del numero casuale per n.
ESEMPIO:
#include "time.h"
#include "stdlib.h"
#include "stdio.h"
int main() {
srand(time(NULL)); // inizializza il generatore di numeri casuali
int numero_magico = rand()%100; // genera un numero intero da 0 a 99
printf("%d",numero_magico); // stampa il nuemero casuale
return 0;
}
Realizzare un programma in un linguaggio ad alto livello che generato un numero da 5 a 38 permette all'utente di inserire un valore mediante tastiera e restituisce la scritta "HAI VINTO" s eil numero immesso dall'utente è uguale a quello generato casualmente oppure "NON HAI VINTO. RITENTA" se il numero immesso p diverso da quello prodotto randomicamente.
L'utente può al più fare tre tentativi altrimenti il gioco termina e appare la scritta "HAI PERSO. BYE BYE".