1 / 7

La funzione printf consente di effettuare la stampa a video formattata.

OUTPUT FORMATTATO. La funzione printf consente di effettuare la stampa a video formattata. Sintassi: printf ( stringa_formato, arg0, arg1, … ); La stringa che controlla il formato ( stringa_formato ) contiene i comuni

Download Presentation

La funzione printf consente di effettuare la stampa a video formattata.

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. OUTPUT FORMATTATO • La funzione printf consente di effettuare la stampa a video formattata. • Sintassi: printf ( stringa_formato, arg0, arg1, … ); • La stringa che controlla il formato (stringa_formato) contiene i comuni • caratteri che compongono il messaggio testuale e una o più specifica di • conversione per ogni variabile di cui stampare il valore. • Le specifiche di conversione iniziano con il carattere % e terminano con • un carattere di conversione tra i seguenti: • - %d, %i : decimale - %f : float(virgola mobile) - %o : ottale • - %u : intero senza segno - %x : esadecimale - %s : stringa • - %e : notaz.esponenziale - %c : carattere • In mezzo tra % e carattere di conversione si può trovare: • - un segno meno : indica l’allineamento del testo a sinistra • - un numero : indica l’ampiezza minima del campo riservato al valore • - un punto : separa l’ampiezza del campo da un altro numero che indica • l’ampiezza della precisione (numero max di caratteri da stampare per • le stringhe e numero max di cifre decimali per un float)

  2. OUTPUT FORMATTATO • Esempio: • printf ( “%-8.3f %12s %4d %.5s” , v1 , v2 , v4 , v4 ); • v1 è stampata come float allineato a sinistra con ampiezza minima del • campo pari 8 celle video e al massimo 3 cifre decimali • v2 è stampata come stringa allineata a destra con ampiezza minima del • campo pari 12 celle video • v3 è stampata come decimale allineato a destra con ampiezza minima del • campo pari 4 celle video • v4 è stampata come stringa allineata a destra con ampiezza minima del • campo non dichiarata ma di cui si stampano al massimo 5 caratteri

  3. INPUT FORMATTATO • La funzione scanf consente di acquisire valori formattati in input. • Sintassi: scanf ( stringa_formato, arg0, arg1, … ); • La stringa che controlla il formato (stringa_formato) è analoga a quella • della printf e le medesime sono le specifiche e caratteri di conversione. • Scanf legge i caratteri dallo standard input e li memorizza negli argomenti • che seguono la stringa di formato. Tali argomenti devono essere puntatori • (iniziando con &, vettori a parte), cioè indirizzi di variabili in memoria. • Scanf si ferma quando ha esaurito la sua stringa di formato o se trova una • inconsistenza. • Scanf ritorna il numero di oggetti letti oppure un EOF al termine del file o se • l’elemento letto contrasta con la specifica di controllo. • Esempio: scanf ( “%d %f %s” , &i , &j , a ); • dove i è un intero decimale, j un float e a un vettore di caratteri (stringa)

  4. CONVERSIONI DI NUMERI • Decimale: • - notazione posizionale in base 10, usata dagli uomini • - 10 cifre per rappresentare ogni numero: 1,2,3,4,5,6,7,8,9 • - cifre più significative a sinistra, le meno significative a destra • - esempio di rappresentazione: • 435 => 4×102+3×101+5×100 • - con (n) cifre si possono rappresentare (10^n) numeri decimali, • da 0 a (10^n-1) • Binario: • - notazione posizionale in base 2, usata nei calcolatori • - 2 cifre per rappresentare ogni numero: 0,1 • - cifre più significative a sinistra, le meno significative a destra • - esempio di rappresentazione: • 10111101 => 1×27+0×26+0×25+1×24+1×23+1×22+0×21+1×20 • - con (n) cifre si possono rappresentare (2^n) numeri decimali, • da 0 a (2^n-1) • - per passare da binario a decimale basta fare la somma delle potenze • - per passare da decimale a binario si fa la divisione ripetuta per 2

  5. CONVERSIONI DI NUMERI • Esempio di conversione decimale > binario, convertiamo 275 • Divisione Quoziente Resto Codifica • 275 / 2 137 1 1 • 137 / 2 68 1 11 • 68 / 2 34 0 011 • 34 / 2 17 0 0011 • 17 / 2 8 1 10011 • 8 / 2 4 0 010011 • 4 / 2 2 0 0010011 • 2 / 2 1 0 00010011 • 1 / 2 0 1 100010011 • => 275 in decimale corrisponde a 100010011 in binario

  6. CONVERSIONI DI NUMERI • Esadecimale: • - migliora il sistema binario che usa troppe cifre per rappresentare • numeri grandi • - conversione da binario a esadecimale è molto semplice • - notazione posizionale in base 16 • - 16 cifre per rappresentare ogni numero: 1,2,3,4,5,6,7,8,9,A,B,C,D,E,F • - 1,2,3…,9 in esadecimale corrispondono agli stessi decimali, mentre • A,B,C,D,E,F corrispondono ai decimali 10,11,12,13,14,15 • - cifre più significative a sinistra, le meno significative a destra • - esempio di rappresentazione: • C38F => 12×163+3×162+8×161+15×160 • - con (n) cifre si possono rappresentare (16^n) numeri decimali, • da 0 a (16^n-1) • - per passare da binario a decimale basta fare la somma delle potenze • - per passare da decimale a binario si fa la divisione ripetuta per 16 • Ottale: • - discorso analogo ai precedenti, sia per la notazione che per i metodi • di conversione, solo che la base qui è 8.

  7. CONVERSIONI DI NUMERI # include <stdio.h> int main(){ int valore,scelta; for(;;){ printf("\n\t0 per uscire \n"); printf("\t1 Converte decimale/esadecimale \n"); printf("\t2 Converte esadecimale/decimale \n"); scanf("%d",&scelta); if (scelta == 0) break; if (scelta == 1){ printf("\tInserisci un numero in base 10\n"); scanf("%d",&valore); printf("\tIn esadecimale: \n"); printf("\t%x\n",valore); } if (scelta == 2){ printf("\tInserisci un numero in base 16\n"); scanf("%x",&valore); printf("\tIn base 10:\n"); printf("\t%d\n",valore); } } }

More Related