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 (8 anni fa)] – creata Susanna Pelagatti | fisica:informatica:201718:esercitazioni:esercitazione5 [29/01/2018 alle 09:46 (8 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 (8 anni fa) da Susanna Pelagatti
