1 / 21

7 ottobre 2014

7 ottobre 2014. Laboratorio di informatica 1 (Programmazione). Avvisi:. La lezione di ieri e ’ in rete (da 10 minuti fa). 1 /* Fig. 2.5: fig02_05.c. 2 Addition program */. 3 #include <stdio.h>. 4 . 5 int main(). 6 {. 7 int integer1, integer2, sum; /* dichiarazione */.

thanos
Download Presentation

7 ottobre 2014

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. 7 ottobre 2014 Laboratorio di informatica 1 (Programmazione) Avvisi: La lezione di ieri e’ in rete (da 10 minuti fa)

  2. 1 /* Fig. 2.5: fig02_05.c 2 Addition program */ 3 #include <stdio.h> 4 5 int main() 6 { 7 int integer1, integer2, sum; /* dichiarazione */ 8 9 printf(“Scrivi il primo intero\n"); /* prompt */ 10 scanf( "%d", &integer1 ); /* legge un intero */ 11 printf("Scrivi il secondo intero\n");/* prompt*/ 12 scanf( "%d", &integer2 ); /* legge un intero */ 13 sum = integer1 + integer2; /* assegnazione */ 14 printf(“La somma e’ %d\n", sum);/*stampa somma*/ 15 16 return 0; /* il programma finisce OK */ 17 } Inizializza le variabili Input Somma Stampa Output Scrivi il primo intero 45 Scrivi il secondo intero 72 La somma e’ 117

  3. Programma 2 : sommare due interi • int integer1, integer2, sum; • Dichiarazioni di variabili • Variabili: locazioni di memoria dove scrivere un valore • int significa che le variabili contengono valori interi (-1, 3, 0, 47) • integer1, integer2, sum nomi di variabili (identificatori) • Identificatori : lettere, cifre (non iniziare con cifra), e underscores, case sensitive • Dichiarazioni vanno prima delle istruzioni di esecuzione • Se NO, errore di sintassi • Come caso precedente • Commenti, #include <stdio.h> e main

  4. 1 /* Fig. 2.5: fig02_05.c 2 Addition program */ 3 #include <stdio.h> 4 5 int main() 6 { 7 int integer1, integer2, sum; /* dichiarazione */ 8 9 printf(“Scrivi il primo intero\n"); /* prompt */ 10 scanf( "%d", &integer1 ); /* legge un intero */ 11 printf("Scrivi il secondo intero\n");/* prompt*/ 12 scanf( "%d", &integer2 ); /* legge un intero */ 13 sum = integer1 + integer2; /* assegnazione */ 14 printf(“La somma e’ %d\n", sum);/*stampa somma*/ 15 16 return 0; /* il programma finisce OK */ 17 } Input

  5. Programma 2 : sommare due interi • scanf( "%d", &integer1 ); • Ottiene un valore dall’utente • scanf usa standard input (di solito la tastiera) • Questo scanf ha due argomenti: • %d – indica che il dato deve essere un intero • &integer1 – locazione in memoria che contiene la variabile • & crea un po’ di confusione all’inizio • Ricorda di includerlo sempre con il nome della variabile in scanf • Sara’ discusso in seguito • Utente risponde a scanf digitando un numero, poi pressando enter (return)

  6. Nozioni sulla Memoria • Variabili • I nomi delle variabili corrispondono alle locazioni nella memoria del computer. • Ogni variabile ha un nome, un tipo, una taglia e un valore. • Quando nuovo valore e’ assegnato a variabile (ad es. via scanf), sostituisce (e distrugge) valore precedente • Leggere una variabile dalla memoria non modifica il suo valore

  7. 1 /* Fig. 2.5: fig02_05.c 2 Addition program */ 3 #include <stdio.h> 4 5 int main() 6 { 7 int integer1, integer2, sum; /* dichiarazione */ 8 9 printf(“Scrivi il primo intero\n"); /* prompt */ 10 scanf( "%d", &integer1 ); /* legge un intero */ 11 printf("Scrivi il secondo intero\n");/* prompt*/ 12 scanf( "%d", &integer2 ); /* legge un intero */ 13 sum = integer1 + integer2; /* assegnazione */ 14 printf(“La somma e’ %d\n", sum);/*stampa somma*/ 15 16 return 0; /* il programma finisce OK */ 17 } Somma Stampa

  8. Programma 2 : sommare due interi • = (operatore di assegnazione) • Assegna un valore ad una variabile • Operatore Binario (2 operandi) sum = variable1 + variable2; sum riceve variable1 + variable2; • Variabile riceve il valore sulla sinistra • printf( "Sum is %d\n", sum ); • Simile a scanf - %d significa che verra’ stampato un intero decimale • sum specifica quale intero verra’ stampato • I calcoli possono essere effettuati all’interno di printf printf( "Sum is %d\n", integer1 + integer2 );

  9. integer1 45 Nozioni sulla Memoria • Una rappresentazione visuale:

  10. Aritmetica • Calcoli aritmetici sono molto usati • Usa * per moltiplicazione e / per divisione • La divisione intera tronca il resto 7 / 5 restituisce 1 • Operatore modulo restituisce il resto 7 % 5 restituisce 2 • Precedenza tra operatori • Alcuni operatori agiscono prima di altri (es., moltiplicazione prima dell’addizione) • Usare le parentesi all’occorrenza Esempio: Trova la media tra le variabili a, b e c • NO: a + b + c / 3 • SI: (a + b + c ) / 3

  11. Aritmetica

  12. Aritmetica Regole di precedenza tra operatori:

  13. Prendere delle decisioni: operatori di uguaglianza e relazionali • Istruzioni eseguibili • Compiono azioni (calcoli, input/output di dati) • Prendono decisioni • Struttura di controllo if • Versione semplice, piu’ dettagli in seguito • Se una condizione e’ vera, allora il corpo dell’istruzione if viene eseguita • 0 e’ FALSO , non-zero e’ VERO (TRUE) • Il controllo ritorna sempre dopo la struttura if • Keywords (parole chiave) • Parole speciali risevate per il C • Non possono essere usate per gli identificatori o per le variabili.

  14. Prendere delle decisioni: operatori di uguaglianza e relazionali

  15. Parole chiave

  16. 1 /* Fig. 2.13: fig02_13.c 2 Uso dell’istruzione if, degli operatori 3 relazionali e di uguaglianza */ 4 #include <stdio.h> 5 6 int main() 7 { 8 int num1, num2; 9 10 printf( “Inserisci due interi e ti diro’ \n" ); 11 printf( “la relazione che soddisfano: " ); 12 scanf( "%d%d", &num1, &num2 ); /* legge due interi */ 13 14 if ( num1 == num2 ) 15 printf( "%d e’ uguale a %d\n", num1, num2 ); 16 17 if ( num1 != num2 ) 18 printf("%d e’ diverso da %d\n",num1,num2 ); 19 20 if ( num1 < num2 ) 21 printf( "%d e’ minore di %d\n", num1, num2 ); 22 23 if ( num1 > num2 ) 24 printf("%d e’ maggiore di %d\n",num1,num2 ); 25 Dichiara le variabili Input Istruzione if Stampa

  17. 29 30 if ( num1 >= num2 ) 31 printf( "%d e’ maggiore o uguale a %d\n", 32 num1, num2 ); 33 34 return 0; /* indica che il programma finisce con successo */ 35 } 26 if ( num1 <= num2 ) 27 printf( "%d e’ minore o uguale a %d\n", 28 num1, num2 ); 3.1 Esce da main Output Inserisci due interi e ti diro’ la relazione che soddisfano: 3 7 3 e’ diverso da 7 3 e’ minore di 7 3 e’ minore o uguale a 7 Inserisci due interi e ti diro’ la relazione che soddisfano: 22 12 22 e’ diverso da 12 22 e’ maggiore di 12 22 e’ maggiore o uguale a 12

  18. Attenzione…. Errori in vista! if ( num1 = num2 ) printf( "%d e’ uguale a %d\n", num1, num2 ); NO! if ( num1 == num2); printf( "%d e’ uguale a %d\n", num1, num2 ); NO! if ( num1 == num2) printf( "%d e’ uguale a %d" \n, num1, num2 ); NO! if ( num1 == num2) printf( “&d e’ uguale a &d \n ", num1, num2 ); NO! if ( num1 == num2 ) printf( "%d e’ uguale a %d\n", num1, num2 );

  19. Esercizi: • Esercizio 2.23 Usando solo le tecniche viste finora, scrivere un programma che prenda in input cinque numeri interi e quindi determini e visualizzi il maggiore e il minore all’interno del gruppo.

  20. Esercizi: • Esercizio 2.30 Usando solo le tecniche viste finora, scrivere un programma che prenda in input un numero di cinque cifre e le visualizzi ognuna separata dall’altra da tre spazi. Per esempio, se l’utente digitasse 24614, il programma dovrebbe visulizzare: 2 4 6 1 4

  21. Esercizi: • Esercizio 2.31 Usando solo le tecniche viste finora, scrivere un programma che calcoli i quadrati e i cubi dei numeri da 1 a 10 e utilizzi le tabulazioni (\t) per visualizzare la seguente tabella di valori: numero quadrato cubo 0 0 0 1 1 1 2 4 8 . . . . . . 10 100 1000

More Related