Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
Secondo Programma in C
2
Calcolare l’area di un rettangolo
/* Calcolo area rettangolo */ #include <stdio.h> main() { int base; int altezza; int area; base = 3; altezza = 7; area = base*altezza; printf("%d", area); }
3
Commenti /* */ /* Calcolo area rettangolo */ tutto ciò che appare nella zona racchiusa tra /* */ non viene preso in considerazione dal compilatore può estendersi su più linee /* Questo programma calcola l'area di un rettangolo */
4
Errori tipici Dimenticare di terminare un commento con */
Incominciare un commento con i caratteri */ o terminarlo con /*
5
Commenti: // Un altro modo per inserire un commento è farlo precedere da //, ma in questo caso deve terminare a fine linea, non può andare a capo OK // Questo programma calcola // l'area di un rettangolo NOK l'area di un rettangolo
6
Variabili /* Calcolo area rettangolo */ #include main() { int base; int altezza; int area; base = 3; altezza = 7; area = base*altezza; printf("%d", area); }
7
Variabili Un linguaggio di programmazione necessita di contenitori per informazioni Questi contenitori sono indicati in generale con il nome di variabile, per enfatizzare che il loro contenuto può variare variabile = cella di memoria (contenitore) identificata da un nome simbolico
8
Una metafora Dichiaro una variabile: Le variabili a cui non è stato assegnato un valore iniziale contengono un valore non specificato A volte questi vengono chiamati valori sporchi perché nelle celle di memoria può essere contenuto un valore qualunque, utilizzato da programmi che hanno occupato quelle posizioni di memoria in precedenza area Nome simbolico
9
Dichiarazioni di variabili
Ogni linguaggio di programmazione richiede di dichiarare in un programma quali variabili verranno usate dicendo il loro nome simbolico ed il loro tipo int base; int altezza; int area; memoria base altezza area tipo identificatore
10
Dichiarazioni di variabili
Sintassi: tipo identificatore; Semantica: Una dichiarazione informa il compilatore su: spazio di memoria; operazioni Tutte le variabili devono essere dichiarate prima di essere usate !!!!!
11
Dichiarare prima di usare
/* Calcolo area rettangolo */ #include <stdio.h> main() { int base; int altezza; int area; base = 3; altezza = 7; area = base*altezza; printf("%d", area); } dichiaro uso
12
Identificatori Un identificatore è formato da uno o più caratteri
Regole da rispettare Primo carattere: lettera o una sottolineatura ( _ ) Caratteri successivi al primo: numeri o lettere o sottolineature Caratteri di punteggiatura o altri caratteri che hanno significati speciali: non ammessi Maiuscole diverse da minuscole Ogni identificatore deve essere diverso dalle parole riservate utilizzate per il linguaggio C
13
Identificatori Validi Non validi Nome1 1nome cognome_nome Vero? _num
Num;pippo
14
Ritorniamo al nostro programma
/* Calcolo area rettangolo */ #include <stdio.h> main() { int base; int altezza; int area; base = 3; altezza = 7; area = base*altezza; printf("%d", area); }
15
Istruzione di assegnamento
base = 3; altezza = 7; area = base*altezza; memoria base 3 7 21 altezza area
16
Istruzione di assegnamento
Sintassi: identificatore = espressione; espressione può essere semplice come una singola costante o può essere una combinazione di variabili, operatori, … Semantica: calcola il valore di un’espressione (lato destro) ed assegnalo ad una variabile (lato sinistro) L’eventuale valore memorizzato precedentemente nella variabile viene sostituito dal nuovo valore
17
Assegnamento: nota x=x+1; Questa espressione in algebra non avrebbe senso perché un valore non può essere uguale a se stesso più uno. In C = non vuol dire uguaglianza ma assegnamento: alla variabile x viene assegnato il valore già presente nella variabile x incrementato di 1 x 5 x=x+1 x 6
18
Assegnamento: esempio
(a) x = z + 3 * (y + 2); (b) x = x+2; memoria inizio x 3 5 2 y z Calcola valore dell’espressione (23+2)=25 Assegna tale valore alla variabile x memoria Dopo (b) x 5 2 y z
19
Attenzione Istruzioni di assegnamento errate x+2=0; x+y=7+3;
20
Ritornando al nostro programma
/* Calcolo area rettangolo */ #include <stdio.h> main() { int base; int altezza; int area; base = 3; altezza = 7; area = base*altezza; printf("%d", area); } memoria base 3 7 21 altezza area
21
Stampare il valore di una variabile
printf("%d", area); %d sarà rimpiazzata da una stringa che rappresenta il valore di area Stampa un intero decimale memoria area 21 base 3 7 21 altezza area
22
Stampare il valore di area
/* Calcolo area rettangolo */ #include <stdio.h> main() { int base; int altezza; int area; base = 3; altezza = 7; area = base*altezza; printf("%d", area); } /* Calcolo area rettangolo */ #include <stdio.h> main() { int base, altezza, area; base = 3; altezza = 7; area = base*altezza; printf("%d", area); }
23
Ancora sulle dichiarazioni di variabili
tipo lista di identificatori; Esempio: int x,y,z; Nota: nella lista gli identificatori sono separati da virgola
24
Struttura del programma
/* Calcolo area rettangolo */ #include <stdio.h> main() { int base; int altezza; int area; base = 3; altezza = 7; area = base*altezza; printf("%d", area); } direttive dichiarazioni istruzioni
25
Stile Più leggibile Meno leggibile /* Calcolo area rettangolo */
/* Calcolo area rettangolo */ #include <stdio.h> main() { int base; int altezza; int area; base = 3; altezza = 7; area = base*altezza; printf("%d", area); } /* Calcolo area rettangolo */ #include <stdio.h> main(){ int base; int altezza; int area; base = 3; altezza = 7; area = base*altezza; printf("%d", area);}
26
Stampa più chiara Base:3 Altezza: 7 Area: 21
/* Calcolo area rettangolo */ #include <stdio.h> main() { int base; int altezza; int area; base = 3; altezza = 7; area = base*altezza; printf("Base: %d\n", base); printf("Altezza: %d\n", altezza); printf("Area: %d\n", area); } Base:3 Altezza: 7 Area: 21
27
Buone abitudini Scegliere nomi significativi di variabile aiuterà a rendere il programma auto esplicativo I nomi di variabile formati da più parole possono aiutare a rendere il programma più leggibile valore finale -> poco leggibile valore_finale -> OK valoreFinale -> OK Separare le dichiarazioni e le istruzioni con una riga vuota
28
Esercizio Determinare il valore di x e y 14 12 memoria x y
#include <stdio.h> main() { int x,y; x=2; y=4; y=3*y; x=y+x; printf("%d\n", x); printf("%d\n", y); } memoria x 14 12 y
29
Esercizio Determinare i valori di p, q ed r al termine delle seguenti istruzioni: p=2; q=3; r=q; q=q+1; p=p+q-(2*r); r=p+r+1; memoria p 4 q r
30
Esercizio Come si fa a scambiare il valore di due variabili? Prima Dopo x 3 y 5 x 5 y 3
31
Esercizio: scambio variabili
#include <stdio.h> main() { int x,y; x=3; y=5; x=y; y=x; printf("%d\n", x); printf("%d\n", y); } Corretto? No Alla fine ottengo: X= 5 Y=5
32
La soluzione #include <stdio.h> main() { int x,y,temp; x=3; y=5; temp=x; x=y; y=temp; printf("%d\n", x); printf("%d\n", y); }
33
E’ corretto questo programma?
#include <stdio.h> main() { int y; y=0; x=y+12; printf("%d\n", x); printf("%d\n", y); } NO: uso x senza dichiararla !!!!
34
E’ corretto questo programma?
#include <stdio.h> main() { printf("Ciao.\n"); int x; x=3; } NO! Dichiarazione di x prima dell’uso, ma non all’inizio del programma!
35
Versione corretta #include <stdio.h> main() { int x; printf("Ciao.\n"); x=3; }
36
E ora, l’input
37
Area del rettangolo L’utente deve poter immettere i valori di base e altezza /* Calcolo area rettangolo */ #include <stdio.h> main() { int base, altezza, area; printf("Valore base: "); scanf("%d", &base); printf("Valore altezza: "); scanf("%d", &altezza); area = base*altezza; printf("Area: %d", area); }
38
Input &base scanf("%d", &base);
-> leggi un intero e mettilo in una variabile Valore intero in formato decimale che verrà assegnato alla variabile base Indirizzo di memoria in cui si trova la variabile base &base
39
Risultato
40
Errori Tipici Dimenticare una o entrambe le virgolette che circondano la stringa di controllo del formato in una printf o in una scanf Dimenticare il % in una printf o in una scanf Dimenticare, in una scanf, il simbolo & Far precedere da & una variabile in una printf, quando, di fatto, questa non dovrebbe essere preceduta da &
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.