Exit Menù Variabili e Istruzioni 1
Le Variabili Una VARIABILE è un oggetto identificato da un NOME e da uno STATO, detto CONTENUTO o VALORE. Possiamo immaginarla come una scatola contenuto Pippo 11 nome 2
Tipi di Variabili L insieme dei valori che una variabile può assumere prende il nome di TIPO DI DATO. Alcuni dei tipi più utilizzati sono: INTERO REALE BOOLEANO CARATTERE 3
Tipi di Variabili INTERO: variabile che può contenere solo numeri interi. REALE: variabile che può contenere solo numeri reali. 4
Tipi di Variabili BOOLEANO: variabile che può contenere un valore di verità (True o False). CARATTERE: variabile che può contenere un singolo carattere, simbolo speciale o cifra. ATTENZIONE!!! Un numero contenuto in una variabile di tipo carattere NON può essere usato per eseguire operazioni matematiche! 5
Istruzione di assegnazione L istruzione mediante la quale viene assegnato un valore ad una variabile si chiama ASSEGNAZIONE. La sintassi è la seguente: Nome variabile = Valore oppure Nome variabile Valore 6
Istruzione di assegnazione Esempio di assegnazione: A 5 Alla variabile A assegna il valore 5 A 5 ATTENZIONE!!! Se una variabile ha già un valore, questo viene SOSTITUITO dal nuovo valore assegnato! 7
Istruzione di assegnazione Esempio: Consideriamo la variabile A prima utilizzata. Sappiamo che A = 5 Se adesso scriviamo questa assegnazione A = 7 Il valore di A CAMBIA e ad A sarà assegnato il valore 7 A A 5 7 8
Alcuni tipi di assegnazione Assegnazione per espressione A = 12 (3 * 2 1) Alla variabile A viene assegnato il valore di una espressione aritmetica. A 7 12 (3 * 2 1) = 7 9
Alcuni tipi di assegnazione Assegnazione per nome A = B Alla variabile A viene assegnato il valore della variabile B. 2 2 A B 10
Alcuni tipi di assegnazione Assegnazione per calcolo A = B + 1 Alla variabile A viene assegnato il valore di B aumentato di 1. A 3 B 2 11
Alcuni tipi di assegnazione Assegnazione per ridefinizione A = A + 1 Alla variabile A viene assegnato il suo valore attuale aumentato di 1. A Prima 3 A Dopo 4 12
Esercizio Scambiare il contenuto di due variabili A e B 13
Esercizio: Scambiare il contenuto di due variabili A e B 1. Conservare il contenuto corrente di A in una terza variabile C = A Alla variabile C viene assegnato il valore di A. A 3 C?? 3 14
Istruzioni di Input e Output L istruzione per ricevere i dati in ingresso prende il nome di ISTRUZIONE DI LETTURA o di INPUT. Essa viene scritta con la parola leggi. L istruzione per comunicare i risultati prende il nome di ISTRUZIONE DI SCRITTURA o di OUTPUT. Essa viene scritta con la parola scrivi. 15
Utilizzo delle Istruzioni Possiamo ora descrivere l algoritmo del calcolo dell area di un rettangolo in questo modo: inizio fine leggi B, H A B * H scrivi A 16
Le funzioni printf( ) e scanf( ) Queste due funzioni fanno parte della libreria standard del C e i loro prototipi si trovano nel file #include <stdio.h> (standard input-output)
Funzione di output: printf() Sintassi: printf ("messaggio da visualizzare e direttive di conversione", argomenti). La parte racchiusa tra virgolette è generalmente costituita da due tipi di elementi diversi: Il messaggio da visualizzare rappresentato da caratteri alfanumerici che vengono visualizzati, così come sono, sul video; Le direttive di conversione servono invece per rappresentare correttamente gli eventuali argomenti posti dopo la virgola. Le direttive di conversione sono sempre formate dal carattere "%" seguito da una lettera.
Nella Tabella sono elencate le direttive di conversione più utilizzate Direttiva %d un intero %c un carattere %u un intero senza segno Viene Visualizzato %f un numero in virgola mobile %e un numero in virgola mobile in formato esponenziale %s una stinga %x un intero in formato esadecimale E' da tenere ben presente che ad ogni direttiva deve corrispondere una variabile dello stesso tipo.
Esempio di utilizzo della funzione printf() int num1,num2; float num3; char alfa,beta; num1=23;num2=55; num3=3.14; alfa='a'; beta='b'; /*dichiara le variabili di tipo int*/ /*dichiara le variabili di tipo char*/ /*assegna i valori alle variabili*/ Il frammento di programma dell esempio visualizza sul video: i numeri sono : 23 55 3.14 i caratteri sono : A b printf("i numeri sono: %d %d %f", num1, num2, num3); printf ("\n i caratteri sono: %c %c", alfa, beta); Il simbolo speciale "\n" serve per andare a capo Notare che la spaziatura tra il messaggio e tra i singoli caratteri è ottenuta inserendo opportuni spazi sia dopo il messaggio che tra i simboli di formattazione (%d, %f e %c). Vale a dire il contenuto delle variabili è visualizzato esattamente in corrispondenza della posizione del relativo carattere di formattazione.
A volte è necessario impostare a priori la lunghezza del campo occupato nella visualizzazione di un dato; in tal caso si impone tale lunghezza ponendo un numero tra il segno "%" e il carattere di formattazione. Esso rappresenterà appunto il numero di spazi riservati al campo. Per esempio "%5d", riserverà al dato intero da visualizzare 5 posizioni e lo allineerà sulla destra premettendovi spazi bianchi. Se il dato è più lungo dello spazio riservato vengono visualizzate tutte le cifre. Se si vogliono limitare le cifre decimali dopo la virgola, per un numero in virgola mobile, si dovrà porre dopo l'ampiezza del campo un punto seguito dal numero di cifre decimali che si vogliono visualizzare. Per esempio con "%8.3f", il numero in virgola mobile visualizzato occuperà otto o più spazi (se più lungo), con un totale di tre cifre decimali dopo la virgola
Funzione di input: scanf() Sintassi: scanf ("stringa di formato", indirizzi degli argomenti); La stringa di formato utilizza per lo più gli stessi formati utilizzati per printf(). Questa volta però la stringa di formato non può contenere messaggi ma solo caratteri di formato. La novità più rilevante del comando di input rispetto a quello di output risiede nel fatto che scanf(), come argomento, richiede non il valore di una variabile, ma l'indirizzo in cui essa è posta in memoria. Per indicare indirizzo si fa precedere il nome della variabile dall'operatore "&". Per esempio se la variabile ha nome alfa, l'indirizzo di tale variabile sarà: &alfa.
Esempio: se da input si volesse assegnare alla variabile alfa il valore "a" si dovrà scrivere: char car; scanf ("%c",&car); Se si vuole introdurre da tastiera più di una variabile, utilizzando la stessa funzione scanf(), queste possono essere separate da uno spazio. Verrà in tal caso usata la seguente sintassi: char car1; int num;... printf ("INTRODUCI UN CARATTERE ED UN INTERO "); scanf ("%c %d",&car1,&num); Lo spazio bianco tra i simboli di formato indica che in fase di digitazione delle variabili da introdurre esse debbono essere separate da uno o più spazi. Nel caso precedente si dovrà quindi introdurre prima un carattere, poi uno o più spazi bianchi ed infine un intero.
Altre funzioni di input e output getch() getche() getchar() gets() putchar() acquisisce un carattere da tastiera senza visualizzarlo sul video; non attende che venga digitato il ritorno a capo. acquisisce un carattere da tastiera e lo visualizza su video; non attende che venga digitato il ritorno a capo. acquisisce un carattere da tastiera e lo visualizza su video; attende che venga digitato il ritorno a capo. acquisisce una stringa da tastiera; la stinga deve terminare con un ritorno a capo visualizza un carattere sul video. puts() visualizza una stringa sul video.
char car1, car2, car3, string[20]; /*definizione di dati tipo char*/ car1 = getch(); /*car1 contiene il carattere acquisito da tastiera*/ car2 = getche(); /*car2 contiene il carattere acquisito da tastiera*/ car3 = getchar(); /*car3 contiene il carattere acquisito da tastiera*/ putchar(car1); /*viene visualizzato il carattere car1*/ gets(string); /*string contiene la stringa acquisita da tastiera*/ puts(string); /*viene visualizzata la stringa string*/