Laboratorio di Informatica
|
|
- Rosa Carnevale
- 4 anni fa
- Visualizzazioni
Transcript
1 Corso di Laurea in Informatica e Tecnologie per la Produzione del Sofware (Track B) - A.A. 2016/2017 Laboratorio di Informatica Linguaggio C (Parte 1) docente: Cataldo Musto cataldo.musto@uniba.it
2 Linguaggio C Perchè il linguaggio C? C è piccolo (numero limitato di istruzioni) Abbastanza semplice da imparare E efficiente Caratterizzato da un buon livello di portabilità 10/03/2017 2
3 Linguaggio C C Evoluzione di due precedenti linguaggi di programmazione, BCPL e B (by Ritchie) Usato per scrivere i moderni sistemi operativi Il sistema operativo UNIX è scritto in C Standardizzazione Inizialmente esistevano diverse varianti del C, ma non erano compatibili tra di loro. E stato formato un comitato per creare una definizione non ambigua, e machine-independent" Standard creato nel 1989, aggiornato nel 1999 (la versione più comune, detta C-99) riaggiornato nel /03/2017 3
4 Recap: compilazione codice sorgente Editor Preprocessor Compiler Linker Loader 10/03/2017 4
5 Recap: compilazione codice sorgente Editor Preprocessor Compiler Linker Loader Scrittura del codice sorgente (in un IDE o con un semplice file di testo) 10/03/2017 5
6 Recap: compilazione codice sorgente Editor Preprocessor Compiler Linker Loader Risoluzione delle direttive, ad esempio #define (utilizzata per definire costanti, ad esempio) e #include (utilizzata per includere codice scritto in librerie esterne) 10/03/2017 6
7 Recap: compilazione codice sorgente Editor Preprocessor Compiler Linker Loader Verifica la correttezza sintattica del codice sorgente e costruisce un file oggetto (con estensione.o) che viene salvato su disco. Errori logici (reversibili o irreversibili) non vengono individuati dal compilatore. 10/03/2017 7
8 Recap: compilazione codice sorgente Editor Preprocessor Compiler Linker Loader Collega i vari file oggetto costruiti dal compilatore e unisce eventuali librerie esterne, al fine di generare il file eseguibile 10/03/2017 8
9 Recap: compilazione codice sorgente Editor Preprocessor Compiler Linker Loader Carica in memoria e lancia l eseguibile compilato. Il processo è preso in carico dalla CPU che esegue sequenzialmente le istruzioni ed eventualmente alloca della memoria per creare variabili, file su disco, etc. 10/03/2017 9
10 Linguaggio C: il primo programma 1 /* Fig. 2.5: fig02_05.c 2 Addition program */ 3 #include <stdio.h> 4 5 /* function main begins program execution */ 6 int main() 7 { 8 int integer1; /* first number to be input by user */ 9 int integer2; /* second number to be input by user */ 10 int sum; /* variable in which sum will be stored */ printf( "Enter first integer\n" ); /* prompt */ 13 scanf( "%d", &integer1 ); /* read an integer */ printf( "Enter second integer\n" ); /* prompt */ 16 scanf( "%d", &integer2 ); /* read an integer */ sum = integer1 + integer2; /* assign total to sum */ printf( "Sum is %d\n", sum ); /* print sum */ return 0; /* indicate that program ended successfully */ } /* end function main */ 10/03/
11 Linguaggio C: il primo programma 1 /* Fig. 2.5: fig02_05.c 2 Addition program */ 3 #include <stdio.h> 4 5 /* function main begins program execution */ 6 int main() 7 { 8 int integer1; /* first number to be input by user */ 9 int integer2; /* second number to be input by user */ 10 int sum; /* variable in which sum will be stored */ printf( "Enter first integer\n" ); /* prompt */ 13 scanf( "%d", &integer1 ); /* read an integer */ printf( "Enter second integer\n" ); /* prompt */ 16 scanf( "%d", &integer2 ); /* read an integer */ sum = integer1 + integer2; /* assign total to sum */ printf( "Sum is %d\n", sum ); /* print sum */ return 0; /* indicate that program ended successfully */ } /* end function main */ Riga 3: direttive al preprocessore. Aggiunge le funzioni per gestire i flussi di input/output 10/03/
12 Linguaggio C: il primo programma 1 /* Fig. 2.5: fig02_05.c 2 Addition program */ 3 #include <stdio.h> 4 5 /* function main begins program execution */ 6 int main() 7 { 8 int integer1; /* first number to be input by user */ 9 int integer2; /* second number to be input by user */ 10 int sum; /* variable in which sum will be stored */ printf( "Enter first integer\n" ); /* prompt */ 13 scanf( "%d", &integer1 ); /* read an integer */ printf( "Enter second integer\n" ); /* prompt */ 16 scanf( "%d", &integer2 ); /* read an integer */ sum = integer1 + integer2; /* assign total to sum */ printf( "Sum is %d\n", sum ); /* print sum */ return 0; /* indicate that program ended successfully */ } /* end function main */ Riga 3: direttive al preprocessore. Aggiunge le funzioni per gestire i flussi di input/output Riga 6: il main è la funzione principale 10/03/
13 Linguaggio C: il primo programma 1 /* Fig. 2.5: fig02_05.c 2 Addition program */ 3 #include <stdio.h> 4 5 /* function main begins program execution */ 6 int main() 7 { 8 int integer1; /* first number to be input by user */ 9 int integer2; /* second number to be input by user */ 10 int sum; /* variable in which sum will be stored */ printf( "Enter first integer\n" ); /* prompt */ 13 scanf( "%d", &integer1 ); /* read an integer */ printf( "Enter second integer\n" ); /* prompt */ 16 scanf( "%d", &integer2 ); /* read an integer */ sum = integer1 + integer2; /* assign total to sum */ printf( "Sum is %d\n", sum ); /* print sum */ return 0; /* indicate that program ended successfully */ } /* end function main */ Riga 3: direttive al preprocessore. Aggiunge le funzioni per gestire i flussi di input/output Riga 6: il main è la funzione principale Riga 8-10: dichiariamo variabili di tipo intero 10/03/
14 Linguaggio C: il primo programma 1 /* Fig. 2.5: fig02_05.c 2 Addition program */ 3 #include <stdio.h> 4 5 /* function main begins program execution */ 6 int main() 7 { 8 int integer1; /* first number to be input by user */ 9 int integer2; /* second number to be input by user */ 10 int sum; /* variable in which sum will be stored */ printf( "Enter first integer\n" ); /* prompt */ 13 scanf( "%d", &integer1 ); /* read an integer */ printf( "Enter second integer\n" ); /* prompt */ 16 scanf( "%d", &integer2 ); /* read an integer */ sum = integer1 + integer2; /* assign total to sum */ printf( "Sum is %d\n", sum ); /* print sum */ return 0; /* indicate that program ended successfully */ } /* end function main */ Riga 3: direttive al preprocessore. Aggiunge le funzioni per gestire i flussi di input/output Riga 6: il main è la funzione principale Riga 8-10: dichiariamo variabili di tipo intero Riga 12-13: stampa di una stringa, lettura di un valore e memorizzazione in una variabile. Ricordiamo che una variabile è un nome che identifica una locazione di memoria, quindi serve l operatore & per referenziare l indirizzo di quella variabile 10/03/
15 Linguaggio C: il primo programma 1 /* Fig. 2.5: fig02_05.c 2 Addition program */ 3 #include <stdio.h> 4 5 /* function main begins program execution */ 6 int main() 7 { 8 int integer1; /* first number to be input by user */ 9 int integer2; /* second number to be input by user */ 10 int sum; /* variable in which sum will be stored */ printf( "Enter first integer\n" ); /* prompt */ 13 scanf( "%d", &integer1 ); /* read an integer */ printf( "Enter second integer\n" ); /* prompt */ 16 scanf( "%d", &integer2 ); /* read an integer */ sum = integer1 + integer2; /* assign total to sum */ printf( "Sum is %d\n", sum ); /* print sum */ return 0; /* indicate that program ended successfully */ } /* end function main */ Riga 3: direttive al preprocessore. Aggiunge le funzioni per gestire i flussi di input/output Riga 6: il main è la funzione principale Riga 8-10: dichiariamo variabili di tipo intero Riga 12-13: stampa di una stringa, lettura di un valore e memorizzazione in una variabile. Ricordiamo che una variabile è un nome che identifica una locazione di memoria, quindi serve l operatore & per referenziare l indirizzo di quella variabile 10/03/
16 Linguaggio C: il primo programma 1 /* Fig. 2.5: fig02_05.c 2 Addition program */ 3 #include <stdio.h> 4 5 /* function main begins program execution */ 6 int main() 7 { 8 int integer1; /* first number to be input by user */ 9 int integer2; /* second number to be input by user */ 10 int sum; /* variable in which sum will be stored */ printf( "Enter first integer\n" ); /* prompt */ 13 scanf( "%d", &integer1 ); /* read an integer */ printf( "Enter second integer\n" ); /* prompt */ 16 scanf( "%d", &integer2 ); /* read an integer */ sum = integer1 + integer2; /* assign total to sum */ printf( "Sum is %d\n", sum ); /* print sum */ return 0; /* indicate that program ended successfully */ } /* end function main */ Riga 3: direttive al preprocessore. Aggiunge le funzioni per gestire i flussi di input/output Riga 6: il main è la funzione principale Riga 8-10: dichiariamo variabili di tipo intero Riga 12-13: stampa di una stringa, lettura di un valore e memorizzazione in una variabile. Ricordiamo che una variabile è un nome che identifica una locazione di memoria, quindi serve l operatore & per referenziare l indirizzo di quella variabile Riga 18-20: somma aritmetica, assegnazione di un valore a a una nuova variabile e stampa del valore. Lo specificatore di conversione %d serve a indicare che la variabile è di tipo intero. 10/03/
17 Linguaggio C: cenni sulla memoria integer1 45 integer1 45 Ogni variabile è identificata attraverso tre elementi. Quali? integer2 72 integer2 72 sum /03/
18 Linguaggio C: cenni sulla memoria integer1 45 integer2 72 integer1 45 integer2 72 Ogni variabile è identificata attraverso tre elementi. Quali? Nome Tipo Valore Quando dichiariamo una variabile è importante inizializzarla. Perché? Nome Tipo-Valore sum /03/
19 Linguaggio C: cenni sulla memoria integer1 45 integer2 72 Nome Tipo-Valore integer1 45 integer2 72 sum 117 Ogni variabile è identificata attraverso tre elementi. Quali? Nome Tipo Valore Quando dichiariamo una variabile è importante inizializzarla. Perché? Per sovrascrivere il precedente valore memorizzato in quella locazione di memoria 10/03/
20 Linguaggio C: cenni sulla memoria integer1 45 integer2 72 Nome Tipo-Valore integer1 45 integer2 72 sum 117 Ogni variabile è identificata attraverso tre elementi. Quali? Nome Tipo Valore Quando dichiariamo una variabile è importante inizializzarla. Perché? Per sovrascrivere il precedente valore memorizzato in quella locazione di memoria Quando assegniamo un valore bisogna usare l operatore &, per indicare di memorizzare il valore nella locazione di memoria cui punta la variabile. 10/03/
21 Linguaggio C: cenni sulla memoria integer1 45 integer2 72 Nome Tipo-Valore Il tipo di dato determina il range e la tipologia di valori che una variabile può assumere La scelta del tipo di dato più corretto per una variabile è una importante scelta progettuale in fase di risoluzione del problema e codifica dell algoritmo Ad esempio le variabili di tipo int possono assumere valori tra e (65536 valori in tutto) Perchè esattamente 65536? 10/03/
22 Linguaggio C: tipi di dato Tipo di dato Dimensione (bits) bit 1 char 8 unsigned char 8 short 16 unsigned short 16 int 16 unsigned int 16 short long 24 unsigned short long 24 long 32 unsigned long 32 float 24 double 24/32 Perché le variabili intere occupano 16 bit, quindi possono assumere 2 16 diverse combinazioni La scelta del tipo di dato da associare a una variabile deve essere operata valutando il dominio della variabile (l insieme dei valori che può assumere). Variabili più piccole riducono la quantità di memoria richiesta dal programma, ma bisogna assicurarsi che i valori da memorizzare nella variabile siano adeguati al tipo di dato scelto. 10/03/
23 10/03/
24 Problem Solving Prima di scrivere un programma Comprendere a fondo il problema (analisi) Pianificare con cura un approccio per risolverlo (approccio top-down, bottom-up) Produrre una soluzione in pseudo-codice o con I flow-chart Mentre scrivete un programma Individuate quali building blocks sono disponibili (riuso del codice) La maggior parte dei programmi segue una struttura standard Definizione e inizializzazione delle variabili Elaborazione dei dati Visualizzazione in output dei risultati 10/03/
25 Problem Solving Prima di scrivere un programma Comprendere a fondo il problema (analisi) Pianificare con cura un approccio per risolverlo (approccio top-down, bottom-up) Produrre una soluzione in pseudo-codice o con I flow-chart Mentre scrivete un programma Individuate quali building blocks sono disponibili (riuso del codice) La maggior parte dei programmi segue una struttura standard Definizione e inizializzazione delle variabili Elaborazione dei dati Visualizzazione in output dei risultati 10/03/
26 Programmazione Strutturata Teorema di Bohm e Jacopini: tutti i programmi possono essere scritti usando tre strutture di controllo fondamentali Sequenza: Nativa nel C. I programmi vengono eseguiti sequenzialmente per default Selezione: Il C ne ha tre tipi: if, if else, e switch Iterazione: Il C ne ha tre tipi: while, do while e for 10/03/
27 Problema 1.1 Scrivere un programma che stampi un messaggio diverso a seconda che l utente sia maggiorenne o minorenne. Input? Output? Quale tipologia di istruzioni ci serve? 10/03/
28 Problema 1.1 Scrivere un programma che stampi un messaggio diverso a seconda che l utente abbia un voto d esame maggiore o minore di 18. Input? Voto dell utente, memorizzata in una variabile di tipo intero Output? Messaggio, diverso a seconda che il voto sia maggiore o minore di 18 Quale tipologia di istruzioni ci serve? Perché? Struttura di selezione. Perché il programma sulla base del valore inserito può sviluppare due diverse alternative. 10/03/
29 Struttura di Selezione Usata per scegliere tra diverse alternative Istruzione Pseudocodice Traduzione in C if Se il voto dello studente è maggiore di 18 Stampa Promosso if else Se il voto dello studente è maggiore di 18 Stampa Promosso Altrimenti Stampa Bocciato 10/03/
30 Struttura di Selezione Usata per scegliere tra diverse alternative Istruzione Pseudocodice Traduzione in C if Se il voto dello studente è maggiore di 18 Stampa Promosso if ( voto >= 18 ) puts( "Promosso\n" ); if else Se il voto dello studente è maggiore di 18 Stampa Promosso Altrimenti Stampa Bocciato if ( voto >= 18 ) { puts( "Promosso\n" ); } else puts( Bocciato\n" ); Oppure voto >= 60? puts( "Promosso\n" ): puts( Bocciato\n" ); Importante: l indentazione rende il programma più leggibile 10/03/
31 Struttura di Selezione Usata per scegliere tra diverse alternative Istruzione Pseudocodice Traduzione in C switch Se il voto dello studente è maggiore di 18 Stampa Promosso Altrimenti Stampa Bocciato Lo pseudocodice è analogo a quella dell istruzione if else ma si esprime in modo diverso. 10/03/
32 Struttura di Selezione Usata per scegliere tra diverse alternative Istruzione Pseudocodice Traduzione in C switch Se il voto dello studente è maggiore di 18 Stampa Promosso Altrimenti Stampa Bocciato Lo pseudocodice è analogo a quella dell istruzione if else ma si esprime in modo diverso. switch(eta) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 15: case 16: case 17: puts("utente minorenne"); break; default: puts("utente maggiorenne"); } 10/03/
33 Struttura di Selezione Usata per scegliere tra diverse alternative Istruzione Pseudocodice Traduzione in C switch Se il voto dello studente è maggiore di 18 Stampa Promosso Altrimenti Stampa Bocciato Lo pseudocodice è analogo a quella dell istruzione if else ma si esprime in modo diverso. switch(eta) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 15: case 16: case 17: puts( Promosso\n"); break; default: puts( Bocciato\n"); } E una tipologia di istruzione molto utile se dobbiamo valutare diverse alternative di tipo categorico (non numerico!) es: città di nascita, provincia di residenza, voto di un esame (in lettere, tipo A, B, C ), gruppo sanguigno, etc. 10/03/
34 Problema 1.1 Scrivere un programma che stampi un messaggio diverso a seconda che l utente sia maggiorenne o minorenne. if ( voto >= 18 ) { puts( "Promosso\n" ); } else puts( Bocciato\n" ); Aprire una nuova sessione su Repl.it e codificare la soluzione del problema in linguaggio C. Gestire anche eventuali casi limite. 10/03/
35 Problema 1.2 Scrivere un programma che conteggi il costo totale dei prodotti in un carrello. Sappiamo che il carrello può contenere esattamente cinque prodotti. Input? Costo dei singoli Output? Messaggio, diverso a seconda che l età sia maggiore o minore di 18 Quale tipologia di istruzioni ci serve? Perché? Struttura di selezione. Perché il programma sulla base del valore inserito può sviluppare due diverse alternative. 10/03/
36 Problema 1.2 Scrivere un programma che conteggi il costo totale dei prodotti in un carrello. Sappiamo che il carrello può contenere esattamente cinque prodotti. Input? Costo dei singoli prodotti Output? Costo totale della spesao minore di 18 Quale tipologia di istruzioni ci serve? Perché? Struttura di iterazione. Perché il programma effettua una operazione (ciclica) sommando il costo dei cinque prodotti nel carrello. 10/03/
37 Struttura di Iterazione - while Utilizzata per esprimere operazioni che si ripetono finchè una determinata condizione resta vera. condition true action Ripete le istruzioni contenute nel ciclo finchè la condizione è vera. false 10/03/
38 Struttura di Iterazione do..while Utilizzata per esprimere operazioni che si ripetono finchè una determinata condizione resta vera. action(s) condition false true Ripete le istruzioni contenute nel ciclo finchè la condizione è vera. Importante: esegue almeno un ciclo! 10/03/
39 Struttura di Iterazione for Utilizzata per esprimere operazioni che si ripetono finchè una determinata condizione resta vera. counter = 1 condition true action counter++ Segue la stessa struttura del while, ma utilizza una variabile contatore che viene incrementata dopo il blocco delle istruzioni (action) 10/03/
40 Struttura di Iterazione Utilizzata per esprimere operazioni che si ripetono finchè una determinata condizione resta vera. Istruzione Pseudocodice Traduzione in C while do..while Scrivere un programma che conteggi il costo totale dei prodotti in un carrello. Sappiamo che il carrello può contenere esattamente cinque prodotti. for 10/03/
41 Struttura di Iterazione Utilizzata per esprimere operazioni che si ripetono finchè una determinata condizione resta vera. Istruzione Pseudocodice Traduzione in C while do..while finchè(numero_prodotti<5) leggi costo aggiungi il costo al totale Scrivere un programma che conteggi il costo totale dei prodotti in un carrello. Sappiamo che il carrello può contenere esattamente cinque prodotti. for 10/03/
42 Struttura di Iterazione Utilizzata per esprimere operazioni che si ripetono finchè una determinata condizione resta vera. Istruzione Pseudocodice Traduzione in C while do..while finchè(numero_prodotti<5) leggi costo aggiungi il costo al totale ripeti leggi costo aggiungi il costo al totale finchè(numero prodotti<5) Scrivere un programma che conteggi il costo totale dei prodotti in un carrello. Sappiamo che il carrello può contenere esattamente cinque prodotti. for finchè(numero_prodotti<5) leggi costo aggiungi il costo al totale 10/03/
43 Struttura di Iterazione Utilizzata per esprimere operazioni che si ripetono finchè una determinata condizione resta vera. Istruzione Pseudocodice Traduzione in C while do..while finchè(numero_prodotti<5) leggi costo aggiungi il costo al totale ripeti leggi costo aggiungi il costo al totale finchè(numero prodotti<5) Come lo rendiamo in linguaggio C? for finchè(numero_prodotti<5) leggi costo aggiungi il costo al totale 10/03/
44 Struttura di Iterazione Utilizzata per esprimere operazioni che si ripetono finchè una determinata condizione resta vera. Istruzione Pseudocodice Traduzione in C while do..while finchè(numero_prodotti<5) leggi costo aggiungi il costo al totale ripeti leggi costo aggiungi il costo al totale finchè(numero prodotti<5) while(products<5){ scanf(«%d»,&costo); totale = totale + costo; products++; } do { scanf(«%d»,&costo); totale = totale + costo; products++; } while(products<5); for finchè(numero_prodotti<5) leggi costo aggiungi il costo al totale for(products=0; products<5; products++) { scanf(«%d»,&costo); totale = totale + costo; } 10/03/
45 Soluzione (parziale) Scrivere un programma che conteggi il costo totale dei prodotti in un carrello. Sappiamo che il carrello può contenere esattamente cinque prodotti. while(products<5){ scanf(«%d»,&costo); totale = totale + costo; products++; } Soluzione con while Aprire una nuova sessione su Repl.it e codificare la soluzione del problema in linguaggio C. Gestire anche eventuali casi limite (quali?) 10/03/
46 Soluzione (con while) 10/03/
47 Soluzione (con do while) 10/03/
48 Soluzione (con for) 10/03/
49 Problema 1.3 Scrivere un programma che conteggio il costo totale dei prodotti in un carrello. Non sappiamo quanti prodotti può contenere il carrello. Input? Costo dei singoli prodotti Output? Costo totale della spesao minore di 18 Quale tipologia di istruzioni ci serve? Perché? Struttura di iterazione. Perché il programma effettua una operazione (ciclica) sommando il costo dei prodotti nel carrello. Non conosciamo a priori il numero di prodotti da inserire. 10/03/
50 Problema 1.3 Scrivere un programma che conteggio il costo totale dei prodotti in un carrello. Non sappiamo quanti prodotti può contenere il carrello. Input? Costo dei singoli prodotti Output? Costo totale della spesao minore di 18 Quale tipologia di istruzioni ci serve? Perché? Struttura di iterazione. Perché il programma effettua una operazione (ciclica) sommando il costo dei prodotti nel carrello. Non conosciamo a priori il numero di prodotti da inserire. E necessario introdurre il concetto di iterazione non controllata! 10/03/
51 Problema 1.3 Scrivere un programma che conteggio il costo totale dei prodotti in un carrello. Non sappiamo quanti prodotti può contenere il carrello. Input? Costo dei singoli prodotti Output? Costo totale della spesao minore di 18 Quale tipologia di istruzioni ci serve? Perché? Struttura di iterazione. Perché il programma effettua una operazione (ciclica) sommando il costo dei prodotti nel carrello. Non conosciamo a priori il numero di prodotti da inserire. E necessario introdurre il concetto di iterazione non controllata! Non si utilizza un contatore fisso, si utilizza un valore sentinella Se il valore letto è uguale a quel valore, esce dal ciclo. 10/03/
52 Struttura di Iterazione (non controllata) Utilizzata per esprimere operazioni che si ripetono finchè una determinata condizione resta vera. Istruzione Pseudocodice Traduzione in C while Do..while finchè(sentinella=true) leggi costo aggiungi il costo al totale ripeti leggi costo aggiungi il costo al totale finchè(sentinella=true) while(costo!= -1){ scanf(«%d»,&costo); totale = totale + costo; } do { scanf(«%d»,&costo); totale = totale + costo; } while(costo!= -1); for finchè(sentinella=true) leggi costo aggiungi il costo al totale for(costo = 0; costo!= -1;) { scanf(«%d»,&costo); totale = totale + costo; } 10/03/
53 Struttura di Iterazione (non controllata) Utilizzata per esprimere operazioni che si ripetono finchè una determinata condizione resta vera. Istruzione Pseudocodice Traduzione in C while Do..while for finchè(sentinella=true) leggi costo aggiungi il costo al totale ripeti leggi costo aggiungi il costo al totale finchè(sentinella=true) finchè(sentinella=true) leggi costo aggiungi il costo al totale while(costo!= -1){ scanf(«%d»,&costo); totale = totale + costo; } do { scanf(«%d»,&costo); totale = totale + costo; } while(costo!= -1); for(costo = 0; costo!= -1;) { scanf(«%d»,&costo); totale = totale + costo; } Il valore sentinella va nella condizione. Si tendono ad utilizzare valori non validi per quella variabile 10/03/
54 Struttura di Iterazione (non controllata) Utilizzata per esprimere operazioni che si ripetono finchè una determinata condizione resta vera. Istruzione Pseudocodice Traduzione in C while finchè(sentinella=true) leggi costo aggiungi il costo al totale while(costo!= -1){ scanf(«%d»,&costo); totale = totale + costo; } Do..while ripeti leggi costo aggiungi il costo al totale finchè(sentinella=true) do { scanf(«%d»,&costo); totale = totale + costo; } while(costo!= -1); for finchè(sentinella=true) leggi costo aggiungi il costo al totale for(costo = 0; costo!= -1;) { scanf(«%d»,&costo); totale = totale + costo; } Soluzione poco leggibile e poco interpretabile 10/03/
55 Struttura di Iterazione (non controllata) Utilizzata per esprimere operazioni che si ripetono finchè una determinata condizione resta vera. Istruzione Pseudocodice Traduzione in C while Do..while finchè(sentinella=true) leggi costo aggiungi il costo al totale ripeti leggi costo aggiungi il costo al totale finchè(sentinella=true) while(costo!= -1){ scanf(«%d»,&costo); totale = totale + costo; } do { scanf(«%d»,&costo); totale = totale + costo; } while(costo!= -1); for finchè(sentinella=true) leggi costo aggiungi il costo al totale for(costo = 0; costo!= -1;) { scanf(«%d»,&costo); totale = totale + costo; } Suggerimento: while e do...while si tendono a preferire per le iterazioni non controllate, mentre il for è la struttura più semplice da adottare quando sappiamo a priori il numero di iterazioni da eseguire è noto. 10/03/
56 Soluzione (con while + valore sentinella) 10/03/
57 Soluzione (con while + valore sentinella) Quesito: perchè sono necessarie le istruzioni alla riga 8 e 9? Non si poteva partire direttamente con il while? 10/03/
58 Soluzione (con while + valore sentinella) Quesito: perchè sono necessarie le istruzioni alla riga 8 e 9? Non si poteva partire direttamente con il while? Questo è un esempio di programmazione difensiva 10/03/
59 Recap: operatori di assegnamento Siano: int c = 3, d = 5, e = 4, f = 6, g = 12; Operatore di assegnamento Esempio di espressione Spiegazione Assegna += c += 7 c = c a c -= d -= 4 d = d a d *= e *= 5 e = e * 5 20 a e /= f /= 3 f = f / 3 2 a f %= g %= 9 g = g % 9 3 a g Fig Operatori aritmetici di assegnamento. Sono più efficienti perché riducono gli accessi in memoria non creando oggetti temporanei 10/03/
60 Recap: precedenza degli operatori Operatori Associatività Tipo ! (type) right to left unary * / % left to right multiplicative + - left to right additive < <= > >= left to right relational ==!= left to right equality && left to right logical AND left to right logical OR?: right to left conditional = += -= *= /= %= right to left assignment, left to right comma Fig Precedenza tra operatori e associatività. 10/03/
61 Recap Domande? Laboratorio di Informatica docente: Cataldo Musto Cataldo Musto - Utilizzo di Eclipse CDT 10/03/
62 Esercitazione 1 Obiettivo: utilizzare i concetti base di programmazione strutturata, combinando istruzioni di iterazione e selezione per risolvere problemi complessi. Dimostrare anche di avere conoscenza relativa alla tipizzazione. Assignment su Repl.it 10/03/ Cataldo Musto - Utilizzo di Eclipse CDT
63 Esercitazione 1 Il Body Mass Index (BMI) è calcolato come il rapporto tra il peso e il quadrato dell altezza (espresso in metri) di un individuo Scrivere un algoritmo che acquisisca in input età, altezza e peso di dieci individui, e calcoli il BMI di ciascuno di essi e lo mostri sullo schermo. L algoritmo deve calcolare il massimo di altezza e peso e la media del BMI, distinguendo minorenni e maggiorenni L algoritmo deve anche stampare in output i valori massimi di altezza e peso (per le due categorie) e infine stampare un messaggio sullo schermo del tipo «Il campione è mediamente sovrappeso» oppure «il campione è mediamente sottopeso» a seconda che il BMI medio sia maggiore o minore di 25 (sia per i minorenni che per i maggiorenni). Modificare l algoritmo utilizzando un valore sentinella invece di un ciclo con valore predefinito Porre attenzione alla scelta dei tipi di dato di ogni variabile e all eventuale definizione di costanti che possono essere utili all algoritmo Commentare adeguatamente il codice e motivare nei commenti le scelte operate in termini algoritmici e in termini di tipi di dato scelti per le variabili 10/03/ Cataldo Musto - Utilizzo di Eclipse CDT
Laboratorio di Informatica
Corso di Laurea in Informatica e Tecnologie per la Produzione del Software (Track B) - A.A. 2017/2018 Laboratorio di Informatica Linguaggio C (Parte 1) docente: Cataldo Musto cataldo.musto@uniba.it Linguaggio
DettagliCapitolo 2 Introduzione alla programmazione in C
Capitolo 2 Introduzione alla programmazione in C Introduzione Un semplice programma C: Stampa di una linea di testo Un altro semplice programma C: Sommare due interi Concetti sulla Memoria Aritmetica in
DettagliCapitolo 1 Introduzione
Capitolo 1 Introduzione 1 Storia del C 2 Outline Storia del C C standard library Vantaggi Stampa di una linea di testo Un altro semplice programma C: Sommare due interi Concetti sulla Memoria Aritmetica
DettagliStrutture di controllo in C
Strutture di controllo in C Prima parte Introduzione Prima di scrivere un programma è necessario: Avere capito bene il problema (la specifica). Impostare l algoritmo per risolvere il problema: un algoritmo
DettagliCome scrivere bene codice? (1 di 1)
DIAGRMMI DI FLUSSO Come scrivere bene codice? (1 di 1) Prima di iniziare a scrivere un programma: Acquisire profonda comprensione del problema; Progettare un approccio per la risoluzione del problema.
DettagliLezione 3. Breve storia del C
Lezione 3 Introduzione al linguaggio C Breve storia del C Sviluppato da Ritchie a partire da due linguaggi precedenti: BCPL e B Usato per sviluppare il sistema operativo UNIX Attualmente, diversi sistemi
DettagliPROGRAMMA = ALGORITMO
Corso di Laurea Scienze Prof. San. Tec., Area Tecnico-Assistenziale SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Anno Accademico 2005-2006 Prof. Fausto Passariello Corso Integrato Metodologia della Ricerca
Dettaglidel Linguaggio C Istruzioni di iterazione
Istruzioni i Iterative ti del Linguaggio C Istruzioni di iterazione Le istruzioni di iterazione forniscono strutture di controllo che esprimono la necessità di ripetere una certa istruzione durante il
DettagliFondamenti di Informatica. Ingegneria elettronica
Fondamenti di Informatica Ingegneria elettronica Prima esercitazione Cecilia Catalano Sistema Operativo Il S.O. è costituito da un insieme di programmi che permettono di utilizzare e gestire tutte le risorse
DettagliDati due punti sul piano calcolare la loro distanza
Introduzione al C Primo esempio in C Dati due punti sul piano calcolare la loro distanza Soluzione: la distanza fra due punti si calcola secondo il teorema di Pitagora, con la formula: y Distanza = (lato12
Dettagli20/10/2014 M. Nappi/FIL 1
FIL Lezione 4: Istruzioni Iterative. Michele Nappi mnappi@unisa.it biplab.unisa.it 20/10/2014 M. Nappi/FIL 1 La struttura di Iterazione while Struttura tt di iterazione i Il programmatore specifica un
Dettagli#include <stdio.h> /* l esecuzione comincia dalla funzione main */ int main()
Primi passi Il mio primo programma #include /* l esecuzione comincia dalla funzione main */ int main() { printf( Hello World!\n" ); return 0; /* il programma termina con successo */ } /* fine
DettagliCapitolo 3 Sviluppo di Programmi Strutturati
Capitolo 3 Sviluppo di Programmi Strutturati Introduzione Strutture di controllo If Selection Statement If Else Selection Statement While Repetition Statement Ripetizione Counter-Controlled Uso di una
DettagliIl corpo di tutte le funzioni deve essere contenuto tra parentesi graffe
Primi passi Il mio primo programma #include /* l esecuzione comincia dalla funzione main */ int main() { printf( Hello World!\n" ); return 0; /* il programma termina con successo */ } /* fine
DettagliPag. 1. La formalizzazione dell informazione: Dati e Diagrammi di Flusso. Codifica degli algoritmi
1 Università degli studi di Parma Dipartimento di Ingegneria dell Informazione Informatica a.a. 2012/13 Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni La formalizzazione
DettagliStruttura di un. Struttura dei programmi C
Parte 4 Struttura di un Programma Struttura dei programmi C Un programma C deve essere contenuto in uno o più file (salvo diversa specifica, per ora si assume in un file): 1. Una parte contenente direttive
DettagliUnità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso
Unità Didattica 2 Linguaggio C Espressioni, Operatori e Strutture linguistiche per il controllo del flusso 1 Espressioni e assegnazioni Le espressioni sono definite dalla grammatica: espressione = variabile
DettagliSECONDA ESPERIENZA DI LABORATORIO. Programmazione con controllo di flusso IF e WHILE
CORSO DI LABORATORIO DI INFORMATICA CORSO DI LAUREA IN SDM ANNO ACCADEMICO 2018-2019 Docente: R. Sparvoli Esercitazioni: R. Sparvoli, F. Palma SECONDA ESPERIENZA DI LABORATORIO Programmazione con controllo
DettagliUn esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);
Un esempio per iniziare Il controllo del programma in C DD Cap.3 pp.91-130 /* calcolo di 8!*/ #include #define C 8 int main() int i=1; int fatt=1; while (i
DettagliANALIZZIAMO NEI DETTAGLI GLI STATEMENTS DI SELEZIONE E DI RIPETIZIONE FORNITI DAL LINGUAGGIO C STATEMENT SEMPLICE STATEMENT COMPOSTO BLOCCO
ANALIZZIAMO NEI DETTAGLI GLI STATEMENTS DI SELEZIONE E DI RIPETIZIONE ORNITI DAL LINGUAGGIO C Premessa: STATEMENT SEMPLICE STATEMENT COMPOSTO BLOCCO Uno ement semplice termina con ; come, ad esempio: ressione;
DettagliPrimi passi col linguaggio C
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta
DettagliC: primi elementi. Lezione 4
C: primi elementi Lezione 4 Evoluzione del BCPL (1967) e B (1970), entrambi typeless Sviluppato da Dennis Ritchie nel 1972 ed implementato per il PDP-11 Usato per lo sviluppo del sistema operativo UNIX
DettagliStrutture di controllo in C
Strutture di controllo in C Seconda parte La struttura di iterazione while Consente al programmatore di specificare che un azione dovrà essere ripetuta finché la condizione rimane true. Esempio (Pseucodice):
DettagliI cicli. Iterazioni Calcolo della media Istruzioni break e continue
I cicli Iterazioni Calcolo della media Istruzioni break e continue Ciclo while p Vero A while() ; Falso Esegue una istruzione mentre una condizione è verificata Programmazione
DettagliLaboratorio di informatica Ingegneria meccanica
C: costanti introdotte con #define Laboratorio di informatica Ingegneria meccanica Lezione 4 22 ottobre 2007 Forma: #define nome valore Effetto: ogni occorrenza successiva di nome sarà rimpiazzata con
DettagliLaboratorio di Informatica I
Struttura della lezione Lezione : Elementi lessicali del C Vittorio Scarano Corso di Laurea in Informatica Elementi lessicali e token Costanti Identificatori Operatori operatori di incremento/decremento
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Struttura di un programma Java
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA 1 Struttura di un programma Java Un programma Java consiste in un insieme di definizioni di classi. In genere
DettagliC O P Y R I G H T ( C ) W W W. F O N D A M E N T I. I N F O
Il linguaggio C C O P Y R I G H T ( C ) 2 0 0 8 W W W. F O N D A M E N T I. I N F O P E R M I S S I O N I S G R A N T E D T O C O P Y, D I S T R I B U T E A N D / O R M O D I F Y T H I S D O C U M E N
Dettagli1
Manuali di C Linguaggio C B. W. Kernigan, D. M. Ritchie Jackson La guida completa al C H. Schildt McGraw-Hill Fondamenti di Informatica 1 Linguaggio C Creato nei primi anni 70 per sviluppare il S.O. Unix
DettagliIstruzioni iterative (o cicliche)
Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Istruzioni iterative (o cicliche) Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria
DettagliLaboratorio di Informatica I
Struttura della lezione Lezione 2: Elementi lessicali, casting e while Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Soluzione agli esercizi
DettagliFondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio
Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Fondamenti di Informatica Laurea in Ingegneria ivile e Ingegneria per l ambiente e il territorio Linguaggio : Le basi Stefano
DettagliIstruzioni di Controllo
Istruzioni di Controllo Programmazione strutturata Ricordiamo i concetti chiave: concatenazione o composizione BLOCCO istruzione condizionale SELEZIONE ramifica il flusso di controllo in base al valore
DettagliFondamenti di Informatica L-A. Esercitazione 3
Fondamenti di Informatica L-A Esercitazione 3 Espressioni: precedenza e associatività degli operatori. Programmazione strutturata: blocchi, condizioni, cicli. Istruzioni if, switch, do...while, while,
DettagliL AMBIENTE CODE BLOCKS E L IO
L AMBIENTE CODE BLOCKS E L IO Il primo programma #include main() { printf("ciao Mondo!"); } Il file deve essere salvato con estensione.c Il primo programma in C++ #include using
DettagliIntroduzione al C. Lez. 1 Elementi. Rossano Venturini
Introduzione al C Lez. 1 Elementi Rossano Venturini rossano@di.unipi.it Pagine del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start http://algoritmica.spox.spoj.pl/alglab2013 Lezioni
DettagliPolitecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione. e mail: sito: users.iol.
Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione prof. Lorenzo Porcelli e mail: genna18@iol.it sito: users.iol.it/genna18 Risoluzione di un problema Dato
DettagliDichiarazioni e tipi predefiniti nel linguaggio C
Politecnico di Milano Dichiarazioni e tipi predefiniti nel linguaggio C Variabili, costanti, tipi semplici, conversioni di tipo. Premessa Programmi provati sul compilatore Borland C++ 1.0 Altri compilatori:
DettagliIl C nel C++ Struttura di un linguaggio. regole per la definizione i simboli. regole per la composizione dei simboli
Il C nel C++ Struttura di un linguaggio Livello lessicale: regole per la definizione i simboli Livello sintattico: regole per la composizione dei simboli Livello semantico: significato delle strutture
DettagliStruttura di un linguaggio
Il C nel C++ Struttura di un linguaggio Livello lessicale: regole per la definizione i simboli Livello sintattico: regole per la composizione dei simboli Livello semantico: significato delle strutture
DettagliIstruzioni. Istruzioni semplici Istruzioni di controllo. Fondamenti di Informatica e laboratorio Istruzioni e Controllo del flusso
Istruzioni Istruzioni Le istruzioni esprimono azioni che, una volta eseguite, comportano una modifica permanente dello stato interno del programma o del mondo circostante Le strutture di controllo permettono
DettagliCorso di Informatica A.A
Corso di Informatica A.A. 2009-2010 Lezione 9 Lezione 9 1 Il linguaggio C Istruzioni di input/output Arrays La funzione printf() La funzione printf() consente di mostrare sullo standard output (normalmente
DettagliPREFAZIONE... IX Lo scopo di questo libro... ix La metodologia di insegnamento... ix Panoramica sul libro... xiii
Sommario PREFAZIONE... IX Lo scopo di questo libro... ix La metodologia di insegnamento... ix Panoramica sul libro... xiii CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 1.1 Introduzione...
DettagliLaboratorio di Informatica I
Struttura della lezione Lezione 3: Istruzioni ed operatori booleani. Vittorio Scarano Corso di Laurea in Informatica Università di Salerno Soluzioni agli esercizi Istruzioni (statement) semplici e di controllo
DettagliQualsiasi programma in C++ segue lo schema:
Qualsiasi programma in C++ segue lo schema: #include // libreria che gestisce flusso di input e output using namespace std; // uso di librerie standard del C++ int main() { // dichiarazioni
DettagliAlgoritmi e basi del C
Algoritmi e basi del C Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 24 Agosto 2015 Benvenuti nel fantastico mondo del C 2 Il primo programma: ciao mondo 3 Ciao Mondo: stdio.h Come
DettagliIl C nel C++ Struttura di un linguaggio. Elementi lessicali. Spazi. Livello lessicale: Livello sintattico: Livello semantico:
Struttura di un linguaggio Il C nel C++ Livello lessicale: regole per la definizione i simboli Livello sintattico: regole per la composizione dei simboli Livello semantico: significato delle strutture
DettagliLa formalizzazione dell informazione: Dati e Diagrammi di Flusso
La formalizzazione dell informazione: Dati e Diagrammi di Flusso Codifica degli algoritmi Algoritmo formulato per essere comunicato tra esseri umani chiaro, sintetico e intuitivo codificato in linguaggi
DettagliIl linguaggio C. Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1
Il linguaggio C I linguaggi di programmazione ad alto livello sono linguaggi formali ( sintassi e semantica formalmente definite) però sono compatti e comprensibili. Le tipologie di linguaggi sono: procedurali
DettagliStrutture di controllo in C. Strutture di controllo in C -- Flow Chart --
-- Flow Chart -- Corso di Informatica A Vito Perrone 1 Indice Rappresentazione degli algoritmi tramite flow chart Istruzione La parte dichiarativa L I/O Primi esempi che girano 2 Codifica degli algoritmi
DettagliProgrammazione C Massimo Callisto De Donato
Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE
DettagliCapitolo 4 Controllo dei Programmi
1 2 Capitolo Controllo dei Programmi Introduzione Introduzione Ripetizione Counter-Controlled for Repetition Statement for Statement: Note e osservazioni switch Multiple-Selection Statement do while Repetition
DettagliIntroduzione al linguaggio C Primi programmi
Introduzione al linguaggio C Primi programmi Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica
DettagliSunto della scorsa lezione Il linguaggio C. Un Programma con Errori. Il preprocessore. Linguaggi di Programmazione I.
Sunto della scorsa lezione 06-10-2003 Il linguaggio C Matricole 2-3 Un programma C è un insieme di funzioni. La funzione è sempre presente Una funzione è un insieme di istruzioni racchiuse tra ogni istruzione
DettagliIl linguaggio di programmazione Python
Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Il linguaggio di programmazione Python Marco Liverani (liverani@mat.uniroma3.it)
DettagliIntroduzione al C. Lezione 1 Elementi. Rossano Venturini. Pagina web del corso
Introduzione al C Lezione 1 Elementi Rossano Venturini rossano@di.unipi.it Pagina web del corso http://didawiki.cli.di.unipi.it/doku.php/informatica/all-b/start Lezioni di ripasso C Mercoledì 19 Giovedì
DettagliIntroduzione al linguaggio C
Linguaggio C Introduzione al linguaggio C Sistemi di sviluppo integrati Noti anche come IDE: Integrated Development Environment Un pacchetto software che permette di scrivere, preprocessare, compilare,
DettagliLaboratorio. Due. 1) Switch 2) Costrutti Iterazione (For, While, do while)
Laboratorio Due 1) Switch 2) Costrutti Iterazione (For, While, do while) GLI ARGOMENTI DI OGGI Istruzione switch I costrutti di iterazione (For, while, do while) Le funzioni (e ricorsione) Terza Esercitazione
DettagliIntroduzione al linguaggio C
Introduzione al linguaggio C Laboratorio di Linguaggi di Programmazione a.a. 2001/2002 dott.ssa Francesca A. Lisi lisi@di.uniba.it Prerequisiti ed obiettivi Programmazione strutturata Teorema di Bohm-Jacopini
DettagliUnità Didattica 1 Linguaggio C. Fondamenti. Struttura di un programma.
Unità Didattica 1 Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C UNIX (1969) - DEC PDP-7 Assembly Language BCPL - un OS facilmente accessibile che fornisce potenti strumenti
DettagliStrutture di Controllo Iterative: Istruzione FOR
Linguaggio C Strutture di Controllo Iterative: Istruzione FOR 1 Istruzioni iterative! Anche dette cicli! Prevedono l esecuzione ripetitiva di altre istruzioni (corpo del ciclo)! Ad ogni iterazione del
DettagliEsercitazione 3. Espressioni booleane I comandi if-else e while
Esercitazione 3 Espressioni booleane I comandi if-else e while Esercizio Si consideri la seguente istruzione: if (C1) if (C2) S1; else S2; A quali delle seguenti interpretazioni corrisponde? if (C1) if
DettagliLaboratorio di Informatica
Laboratorio di Informatica Ingegneria Meccanica Esercitazione 3, 23 ottobre 2007 versione 3 novembre 2007 Limiti per tipi int #include rende visibili le costanti simboliche SHRT_MIN, SHRT_MAX,
DettagliCapitolo 5 - Funzioni
Capitolo 5 - Funzioni Divide and conquer Introduzione Costruire un programma da pezzi più piccoli o da singole componenti Questi pezzi più piccoli sono chiamati moduli Ogni singolo pezzo è più facilmente
DettagliIstruzioni di controllo
Istruzioni di controllo Le istruzioni in C Assegnazione Sequenza I/O Test Cicli Controllo = che cosa è la prossima cosa da fare La prossima cosa da fare è quella che segue La prossima cosa da fare dipende
DettagliAlgoritmi e basi del C Struttura di un programma
Algoritmi e basi del C Struttura di un programma Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 11 Marzo 2014 Informazione: dato + significato Che giorno è oggi? 14 Marzo o anche
DettagliTipo carattere. Campo di variabilità. Intervallo finito. Tipo. Dimensione (byte) char
Tipo carattere Finora abbiamo lavorato con valori numerici. I numeri costituiscono molta parte del lavoro dei computer, ma non tutta. I computer sono macchine per il trattamento dell informazione e l informazione
DettagliAlgoritmi e basi del C Struttura di un programma
Algoritmi e basi del C Struttura di un programma Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 17 Marzo 2015 Compitini Compitini di INFO: 24 Aprile 2015 4.15pm @ C.G.1 (Ed. 9) 21
DettagliElementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I
Lezione 4 Elementi lessicali e espressioni logiche Matricole 2-3 Elementi lessicali il linguaggio C ha un suo vocabolario di base i cui elementi sono detti token esistono 6 tipi di token: parole chiave
DettagliSommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C...
Sommario PREFAZIONE...XI Aggiornamenti e novità... xi Lo scopo di questo libro... xii Diagramma delle dipendenze... xii La metodologia di insegnamento... xiii Panoramica sul libro... xvi Ringraziamenti...
DettagliPROGRAMMAZIONE STRUTTURATA
PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:
DettagliStruttura dei programmi e Variabili
Linguaggio C Struttura dei programmi e Variabili 1 La struttura generale dei programmi! Struttura del programma: Direttive Funzioni Dichiarazioni Istruzioni Di assegnamento direttive Di ingresso e uscita
DettagliCos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L attività di progettare e realizzare un programma è detta programmazione
DettagliProgrammazione Strutturata
Programmazione Strutturata Problema: Spaghetti Code è un termine dispregiativo per quei programmi per computer che abbiano una struttura di controllo del flusso complessa e/o incomprensibile Ad esempio,
Dettagli#include <stdio.h> main() { - 1 -
Un primo esempio di programma Ogni programma C deve contenere una funzione speciale chiamata main che indica il punto in cui inizia l esecuzione del programma. La funzione main è unica all interno di ogni
DettagliFunzioni di Ingresso e Uscita
Funzioni di Ingresso e Uscita In C, l ingresso e l uscita avviene tramite chiamate (attivazioni) di funzioni (sottoprogrammi) disponibili nella Standard Library Standard Library: collezione di funzioni
DettagliProgrammazione strutturata
Programmazione strutturata Il teorema di Jacopini Bohn afferma che qualunque algoritmo può essere descritto utilizzando esclusivamente tre strutture fondamentali ( dette anche strutture di controllo):
DettagliProgrammazione I - Laboratorio
Programmazione I - Laboratorio Esercitazione 1 - Variabili, costanti, strutture di controllo e input/output Gianluca Mezzetti 1 Paolo Milazzo 2 1. Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/
DettagliL AMBIENTE CODE BLOCKS E L IO
L AMBIENTE CODE BLOCKS E L IO Il primo programma in C++ #include using namespace std; main() { cout
DettagliElementi di Informatica A. A. 2016/2017
Elementi di Informatica A. A. 2016/2017 Ing. Nicola Amatucci Università degli studi di Napoli Federico II Scuola Politecnica e Delle Scienze di Base nicola.amatucci@unina.it Programmazione C++ Parte 1
DettagliCorso Programmazione
Corso Programmazione 2009-2010 (docente) E-mail: aiolli@math.unipd.it Web: www.math.unipd.it/~aiolli Dipartimento di Matematica Pura ed Applicata Torre Archimede, Via Trieste 63 PARTE 3 2 Variabili Le
DettagliCorso di Fondamenti di Programmazione canale E-O ... Un esempio per iniziare. printf) Altri cenni su printf() Esercizi 8. (printf(
Corso di Fondamenti di Programmazione canale E-O Tiziana Calamoneri Il controllo del programma in C DD Cap. 3, pp.91-130 Un esempio per iniziare /* calcolo di 8!*/ #define C 8 int i=1; int fatt=1; while
DettagliPASCAL 1. 27/03/2004 Pascal 1 prof. Bruno Franceschini - ITI Bolzano
PASCAL 1 Vediamo gli elementi di base del linguaggio PASCAL, un linguaggio per comunicare al calcolatore una serie di istruzioni, che rappresentano un algoritmo, che sarà in grado di svolgere dopo averle
DettagliPROGRAMMAZIONE: Le strutture di controllo
PROGRAMMAZIONE: Le strutture di controllo Prof. Enrico Terrone A. S: 2008/09 Le tre modalità La modalità basilare di esecuzione di un programma è la sequenza: le istruzioni vengono eseguite una dopo l
DettagliCorso di Calcolatori Elettronici Un computer è un dispositivo in grado di eseguire dei calcoli e di prendere delle decisioni logiche.
Corso di Calcolatori Elettronici Un computer è un dispositivo in grado di eseguire dei calcoli e di prendere delle decisioni logiche. APPUNTI SUL LINGUAGGIO C I computer elaborano i dati sotto il controllo
DettagliInformatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter
Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Funzionamento macchina di von Neumann clock Memoria Centrale: Tutta l informazione prima di essere
DettagliStrutture dati. Operatori di incremento e decremento. Strutture di dati. Strutture di dati. ++ e -- Esempi. Vettori e matrici.
Operatori di incremento e decremento ++ e -- Esempi y=x++ il contenuto della variabile x viene inizialmente usata per l assegnazione y, e solo dopo incrementata y=--x il contenuto della variabile x viene
DettagliINFORMATICA. Strutture iterative
INFORMATICA Strutture iterative Strutture iterative Si dice ciclo (loop) una sequenza di istruzioni che deve essere ripetuta più volte consecutivamente. Si consideri ad esempio il calcolo del fattoriale
DettagliLaboratorio di Informatica I
Struttura della lezione Lezione 5: Tipi di dati ed idiomi del C Vittorio Scarano Corso di Laurea in Informatica : soluzioni agli esercizi Tipi di dato Idiomi per la programmazione Priorità ed associatività
DettagliIl primo programma C++
Il primo programma C++ Un programma in qualsiasi linguaggio evoluto è una sequenza di istruzioni che la CPU dopo opportune conversioni esegue. La sintassi dei linguaggi di programmazione è molto piu rigida
DettagliTERZA ESPERIENZA DI LABORATORIO. Programmazione con controllo di flusso FOR e SWITCH
CORSO DI LABORATORIO DI INFORMATICA CORSO DI LAUREA IN SDM ANNO ACCADEMICO 2018-2019 Docente: R. Sparvoli Esercitazioni: R. Sparvoli, F. Palma TERZA ESPERIENZA DI LABORATORIO Programmazione con controllo
DettagliLinguaggio C - le strutture di controllo: sequenza, selezione, iterazione
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione
DettagliIntroduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale
DettagliLe basi del linguaggio Java
Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una
DettagliC espressioni condizionali
C espressioni condizionali Esiste un particolare operatore, detto operatore condizionale, che rappresenta un istruzione if else. estremamente compattata?: Supponiamo di voler inserire nella variabile intera
DettagliFondamenti di Informatica A. A. 2018/19
Fondamenti di Informatica Prof. Marco Lombardi A. A. 2018/19 AlgoBuild: Strutture Iterative e Selettive OUTLINE Blocco condizionale (Struttura selettiva IF - IF/ELSE) Esempi Cicli a condizione iniziale
Dettagli