fisica:informatica:201718:esercitazioni:esercitazione5
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Prossima revisione | Revisione precedente | ||
fisica:informatica:201718:esercitazioni:esercitazione5 [24/01/2018 alle 12:28 (7 anni fa)] – creata Susanna Pelagatti | fisica:informatica:201718:esercitazioni:esercitazione5 [29/01/2018 alle 09:46 (7 anni fa)] (versione attuale) – [Esercizio 8: Calcolo della radice quadrata] Susanna Pelagatti | ||
---|---|---|---|
Linea 1: | Linea 1: | ||
- | vv | + | ====== Esercitazione 4 ====== |
+ | |||
+ | Tipi di dato e rappresentazione.\\ | ||
+ | **ATTENZIONE: | ||
+ | ** | ||
+ | ===== Esercizio 0: Convertire da base 10 a base $b$ ===== | ||
+ | |||
+ | Scrivere un programma C che legge da standard input un numero intero positivo $x$ rappresentato in base 10 e una base $b$ anch' | ||
+ | |||
+ | ===== Esercizio 1: Lunghezza dei tipi in C ===== | ||
+ | Data la seguente lista non esaustiva, dei nomi accettati per i tipi di base in C: | ||
+ | < | ||
+ | char | ||
+ | unsigned char | ||
+ | short | ||
+ | unsigned short | ||
+ | int | ||
+ | unsigned int | ||
+ | long | ||
+ | unsigned long | ||
+ | long long | ||
+ | float | ||
+ | double | ||
+ | long double | ||
+ | </ | ||
+ | utilzzate la funzione '' | ||
+ | < | ||
+ | #include < | ||
+ | |||
+ | int main (void) { | ||
+ | printf(" | ||
+ | return 0; | ||
+ | } | ||
+ | </ | ||
+ | Verificate inoltre che lo la richiesta dello standard venga rispettata, cioe': | ||
+ | < | ||
+ | sizeof(short) <= sizeof (int) <= sizeof(long) | ||
+ | </ | ||
+ | |||
+ | ===== Esercizio 2: L' | ||
+ | Nel file '' | ||
+ | < | ||
+ | SHRT_MIN SHRT_MAX | ||
+ | INT_MIN INT_MAX | ||
+ | LONG_MIN LONG_MAX | ||
+ | </ | ||
+ | sono i limiti inferiori e superiori per gli interi con segno dei vari tipi base. Scrivere un programma C che li stampa e verificare che corrispondono ai valori dell' | ||
+ | < | ||
+ | (-2^{n-1}, 2^{n-1} -1) | ||
+ | </ | ||
+ | dove '' | ||
+ | |||
+ | ===== Esercizio 3: I tipi '' | ||
+ | Scrivere un programma C che legge un intero '' | ||
+ | |||
+ | |||
+ | |||
+ | ===== Esercizio 4: Codici ASCII ===== | ||
+ | Scrivere un programma C che stampa i codici ASCII di tutte le lettere minuscole e maiuscole. | ||
+ | |||
+ | |||
+ | ===== Esercizio 5: Trasformare in maiuscole ===== | ||
+ | Scrivere un programma C che legge in input un carattere minuscolo e lo trasforma in un carattere maiuscolo. Controllare che il carattere letto sia effettivamente una lettera minuscola. | ||
+ | |||
+ | ===== Esercizio 6: Esplorare i reali.... ===== | ||
+ | '' | ||
+ | [[http:// | ||
+ | |||
+ | Scrivere un programma C che stampa i limiti di rappresentazione dei principali tipi reali ed alcune delle costanti di float.h relative alla lunghezza della rappresentazione (ad esempio la lunghezza della mantissa) | ||
+ | |||
+ | In '' | ||
+ | < | ||
+ | fpclassify(), | ||
+ | </ | ||
+ | a cosa servono ? | ||
+ | |||
+ | ===== Esercizio 7: Conversioni implicite ===== | ||
+ | Nei lucidi {{ : | ||
+ | < | ||
+ | #include < | ||
+ | |||
+ | int main (void) { | ||
+ | double x, y=5.; | ||
+ | int a = 4; | ||
+ | |||
+ | x = 1/2; | ||
+ | printf(" | ||
+ | |||
+ | x = y/2; | ||
+ | printf(" | ||
+ | |||
+ | x = a/2; | ||
+ | printf(" | ||
+ | |||
+ | x = 1./2; | ||
+ | printf(" | ||
+ | |||
+ | x = 1/ | ||
+ | printf(" | ||
+ | return 0; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== Esercizio 8: Calcolo della radice quadrata ====== | ||
+ | Dato un numero reale positivo //a// si consideri la sequenza dei numeri reali //x// definita da | ||
+ | < | ||
+ | x[0] = 1 | ||
+ | x[i+1] = 1/2*(x[i] + a/x[i]) | ||
+ | </ | ||
+ | si puo' dimostrare che '' | ||
+ | |||
+ | Scrivere un programma che legga il valore di //a// da standard input e calcoli la radice quadrata di //a// utilizzando la sequenza. In particolare, | ||
+ | |||
+ | Ad ogni ciclo, far stampare su standard output il numero dell' | ||
+ | |||
+ | ===== Esercizio 9: Bilanciamento delle parentesi ===== | ||
+ | Scrivere un programma C che legge dallo standard input una sequenza di caratteri (terminata da EOF) e stabilisce se l' | ||
+ | * se il numero delle parentesi aperte e chiuse coincide e | ||
+ | * se la parentesi aperta precede sempre la parentesi chiusa. | ||
+ | |||
+ | Ad esempio: | ||
+ | < | ||
+ | {lkshaj[nnnn()]}{} | ||
+ | </ | ||
+ | e' una sequenza corretta, mentre | ||
+ | < | ||
+ | {lkshaj][nnnn()}{} | ||
+ | </ | ||
+ | e' scorretta. | ||
+ | |||
+ | Utilizzare '' | ||
+ | |||
+ | Inserendo manualmente i caratteri EOF puo' essere generato utilizzando la combinazione di tasti CONTROL-D. | ||
+ | |||
+ | Quando il programma e' funzionante, | ||
+ | < | ||
+ | bash$ ./checkpar < checkpar.c | ||
+ | </ | ||
+ | |||
+ |
fisica/informatica/201718/esercitazioni/esercitazione5.1516796915.txt.gz · Ultima modifica: 24/01/2018 alle 12:28 (7 anni fa) da Susanna Pelagatti