Introduzione al linguaggio C
|
|
- Giorgia Parodi
- 7 anni fa
- Visualizzazioni
Transcript
1 Introduzione al linguaggio C Corso di Informatica di Base Lezione III Riccardo Veraldi Servizio Calcolo e Reti INFN sez Firenze veraldi@fiinfnit Istruzioni di controllo di flusso Sono una categoria di istruzioni che consentono di controllare il flusso logico del programma tramite l utilizzo di espressioni condizionali La valutazione della veridicita o meno delle espressioni condizionali permette di prendere decisioni relativamente al flusso del programma a seconda del verificarsi o meno delle condizioni espresse nelle espressioni condizionali stesse Le istruzioni di controllo di flusso si dividono in tre categorie principali: Istruzioni di selezione; istruzioni di iterazione; istruzioni di salto
2 Istruzioni di selezione - L istruzione if L istruzione if consente di realizzare il controllo di flusso tramite la valutazione dell espressione condizionale tra parentesi La forma di questa istruzione e la seguente: if(espressione) istruzione; else istruzione; In questo caso gli argomenti di if e else sono singole istruzioni La clausola else e facoltativa Gli argomenti sia dell if sia dell else sono solitamente dei blocchi di istruzioni piu che istruzioni singole La forma generale di if quando riferita a blocchi di istruzioni e la seguente: if(espressione) istruzione_1; istruzione_n; else istruzione_1; istruzione_n; L istruzione if Se l espressione condizionale e vera, cioe ha un qualunque valore diverso da 0, sara eseguito l argomento di if; altrimenti, se esiste, sara eseguito largomento di else; non verranno MAI comunque eseguiti entrambi L espressione condizionale che controlla l if e una qualunque espressione C valida che produce un risultato vero o falso Per il C un espressione e vera se il suo valore e diverso da 0, altrimenti e falsa In C puo essere utilizzata qualsiasi espressione valida all interno di un istruzione di controllo Cio significa che il tipo di espressione non deve per forza essere ristretto solo a quelle che contengono operatori logico-relazionali Tutto cio che si richiede e che l espressione abbia valore zero o diverso da zero Il programma che segue legge due numeri interi e visualizza il quoziente Per evitare un errore di divisione per zero viene utilizzata un istruzione if controllata dal secondo numero
3 #include <stdioh> Programma divc main() int a,b; /* variabili dividendo e divisore */ printf(" a/b, scrivi 2 numeri a,b: "); scanf("%d,%d",&a,&b); /* leggi i 2 numeri da tastiera */ if(b) /* controlla se b e zero */ printf("%d\n",a/b); else printf("impossibile dividere per 0\n") Programma divc (2) Si osservi che b (il divisore) viene verificato per vedere se e zero utilizzando la forma if(b) Questo metodo funziona perche quando b e zero, la condizione che controlla l if e falsa e pertanto viene eseguito l else In caso contrario la condizione e vera, cioe diversa da zero, e la divizione viene effettuata La stessa istruzione si potrebbe anche scrivere in questo modo: if(b == 0) printf("impossibile dividere per 0\n"); else printf("%d\n",a/b); Anche se corretta e una mancanza di stile nello scrivere il codice C, una forma ridondante e potenzialmente inefficiente, fortemente sconsigliata, da non utilizzare
4 Istruzioni if annidate Un if annidato e un istruzione if controllata da un altro if o else Gli if annidati sono molto comuni in programmazione La cosa piu importante da ricordare e che un istruzione else si riferisce sempre all istruzione if piu vicina che sia all interno del medesimo blocco dell else e che non sia gia associata a un else Esemio in pseudo-c if(i) if(j) istruzione1; if(k) istruzione2; /* questo if e associato*/ else /* a questo else */ istruzione3; else istruzione 4; /* questo if e associato a if(i) */
5 if-else-if Un costrutto di programmazione a cui si ricorre frequentemente e che si basa sugli if annidati e la sequenza if-else-if La forma e la seguente: if(condizione) istruzione; else if(condizione) istruzione; else if(condizione) istruzione; else istruzione; Le espressioni condizionali vengono valutate dall alto verso il basso Alla prima condizione vera, viene eseguita l istruzione ad essa associata ed il resto della scala if-else-if viene aggirato Se nessuna delle condizioni e vera allora viene eseguita l istruzione else finale Se non c e un else finale e tutte le altre condizioni sono false, allora non viene eseguita nessuna istruzione Istruzioni di Iterazione Fanno parte di questa classe di istruzioni i cicli: for while do-while
6 Il ciclo for (1) Viene utilizzato per ripetere un istruzione un numero specificato di volte La sintassi generale per ripetere una singola istruzione e : for(inizializzazione;espressione;incremento) istruzione; Per ripetere un blocco di istruzioni la forma generale e : for(inizializzazione;espressione;incremento) istruzione1; istruzionen; Il ciclo for (2) L inizializzazione e di solito un istruzione di assegnamento che imposta il valore iniziale della variabile di controllo del ciclo, che ha la funzione di contatore che controla il ciclo Per espressione si intende un espressione condizionale che determina se il ciclo continuera oppure no L incremento definisce la quantita di cui la variabile di controllo cambiera ogni volta che il ciclo viene iterato Queste tre sezioni principali del ciclo devono essere separate da punti e virgola Il ciclo for viene eseguito continuamente finche l espressione condizionale risulta verauna volta che la condizione diventa falsa, si esce dal ciclo e l esecuzione del programma riprendera dall istruzione successiva al blocco for
7 Il ciclo for (3) /* programma che stampa i caratteri ASCII dal 33 al 127 */ #include <stdioh> main() unsigned char i; /* definisco la variabile i di iterazione del ciclo */ for(i=33;i<128;i++) /* ciclo for con indice i*/ printf("[ %c ]\n",i);/* stampa un carattere racchiuso tra parentesi quadre, ad ogni ciclo */ Il ciclo while (1) Come il ciclo for serve per ripetere un blocco di istruzioni ciclicamente La sintassi e : while(espressione) istruzione; oppure, while(espressione) istruzione_1; istruzione_n; L espressione definisce la condizione che controlla il ciclo e puo essere una qualsiasi espressione sintatticamente valida L istruzione o il blocco di istruzioni, viene eseguito finche la condizione e vera, quando questa diventa falsa il controllo del programma passa alla linea successiva al blocco del ciclo while
8 Il ciclo while (2) /* programma che stampa i caratteri ASCII dal 33 al 127 */ #include <stdioh> main() unsigned char ch=33; /* inizializzo la variabile al carattere codice ASCII 33*/ while(ch<128) /* ciclo while controllato dall espressione ch<128 */ printf("[ %c ]\n",ch); /* stampa il singolo carattere ch */ ch++; /* incrementa il valore del carattere */ Il ciclo do-while (1) A differenza dei cicli for e while, nei quali le condizioni sono verificate in testa al ciclo, il ciclo do-while verifica la condizione in fondo al ciclo Cio significa che un ciclo dowhile verra sempre eseguito almeno una volta La forma generale e : do istruzioni; while(espressione); Il ciclo viene eseguito fino a che la condizione espressa dall espressione e vera
9 Il ciclo do-while (2) /* stampa I caratteri ascii dal 33 al 128 */ #include <stdioh> main() unsigned char ch=33; /* il ciclo do-while viene sempre eseguito almeno una volta Se ch=128 il ciclo verrebbe eseguito sempre e comunque una volta soltanto perche la condizione ch<128 viene controllata a fine ciclo */ do printf("[ %c ]\n",ch); ch++; while(ch<128); Istruzione di salto break (1) Questa istruzione consente di uscire forzatamente da un ciclo aggirando la verifica condizionale Qundo in un ciclo si incontra l istruzione break, esso termina immediatamente ed il controllo del programma riprende dall istruzione successiva al ciclo
10 Istruzione di salto break (2) /* stampa I caratteri ASCII dal 33 al 127 */ #include <stdioh> main() char i; /* definisce i come char (-127 < i <127) */ for(i=33;i<128;i++) /* questo ciclo for continuerebbe all infinito a causa del wrapping around della variabile i */ printf("[ %c ]\n",i); if(i==127) break; /* si forza il ciclo a terminare quando il valore di i e 127 */ Istruzione di salto continue (1) Serve per ottenere forzatamente l iterazione anticipata di un ciclo aggirando la sua normale struttura di controllo L uso di continue all interno di un ciclo provoca forzatamente il salto alla successiva iterazione del ciclo stesso saltando il codice che si trova tra il continue e l espressione condizionale che controlla il ciclo
11 Istruzione di salto continue (2) /* stampa I numeri pari da 0 a 20 */ #include <stdioh> main() unsigned int i; /* definiamo la variabile che contiene i numer ida 1 a 10 */ for(i=0;i<=20;i++) /* iteriamo da 0 a 20 compresi */ if(i%2) continue; /* se il numero e pari salta alla successiva iterazione del ciclo */ printf(" %d \n",i); /* stampa i numeri */ Istruzione goto Permette di effettuare un salto incondizionato all interno del codice E un istruzione DA NON USARE MAI PER NESSUN MOTIVO Introduce disordine nel programma rendendolo illeggibile, un buon programmatore non utilizza MAI l istruzione goto In caso di necessita si possono utilizzare cicli while con istruzioni di salto break e/o continue ottenendo gli stessi risultati goto non e un elemento necessario per rendere completo un linguaggio di programmazione
12 Array (vettori) Un array e una collezione di variabili del medesimo tipo a cui si fa riferimento con un nome comune In C gli array possono avere da una a molte dimensioni, sebbene l array ad una dimensione sia piu comunemente utilizzato In pratica puo essere pensato come un vettore di ampiezza n, che contiene n elementi Array ad una dimensione (1) Un array ad una dimensione e semplicemente una lista di variabili dello stesso tipo collegate fra loro E un vettore di elementi caratterizzati dal fatto di essere tutti delle variabili C dello stesso tipo La forma generale per dichiarare un array monodimensionale e : tipo nome_variabile[dimensione]; Dove tipo dichiara il tipo di base di un array, che determina anche il tipo di dato degli elementi che costituiscono l array, e dimensione definisce quanti elementi conterra l array L esempio seguente dichiara un array intero chiamato vettore che ha dieci elementi: int vettore[10]; E possibile accedere ad un singolo elemento dell array tramite un indice, che descrive la posizione di un dato elemento all interno dell array stessa In C il primo elemento di qualsiasi array ha indice zero; In questo caso dato che vettore ha 10 elementi, ha valori di indice che andranno da 0 a 9 Per accedere ad un elemento dell array bisogna indicizzarlo con il numero dell elemento, che deve essere specificato tra parentesi [ ] Pertanto il primo elemento in vettore e rappresentato da vettore[0] e l ultimo da vettore[9]
13 Array ad una dimensione (2) In C tutti gli array consistono di locazioni di memoria contigue, il che significa che tutti gli elementi di un array stanno uno accanto all altro in memoria L indirizzo piu basso corrisponde al primo elemento e il piu alto all ultimo Per un array monodimensionale la dimensione totale in byte occupata viene calcolata in questo modo: Byte totali = n di byte variabile tipo base X numero di elementi In C non e possibile assegnare un array ad un altro Pertanto scrivere cosi e ILLEGALE: int a[10],b[10]; a=b; /* ERRORE!!! */ Per trasferire il contenuto di un array in un altro e necessario assegnare individualmente ogni valore per esempio utilizzando un ciclo for Inizializzazione di un array Ci sono fondalmentalmente 2 forme per inizializzare un array come per tutte le altre variabili: In fase di dichiarazione ; tipo nome_variabile[]=e1,,en; tramite indicizzazione diretta all interno del programma quando occorre, ad es: int a[2]; /* dichiarazione array*/ A[0]=23; /* inizializzazione array*/ A[1]=100; I programmi arrayc array2c array3c illustrano questi concetti e sono nella sezione esempi sul sito
14 Assenza di controllo dei limiti degli array Il C non effettua alcun controllo sui limiti degli array Non c e nulla che eviti lo sconfinamento alla fine di un array Se cio accade durante un operazione di assegnamento, i valori saranno assegnati ai dati di un altra variabile o persino in una parte del codice del programma In altre parole e possibile indicizzare un array di dimensione N con un valore superiore a N senza avere alcun messaggio di errore in compilazione o in fase di esecuzione, anche se cio provochera il blocco (crash) del programma E compito del programmatore garantire che tutti gli array siano abbastanza grandi da contenere cio che il programma vi mettera e pensare a un controllo di limite ogni volta che serve Accesso illegale in memoria a[]=1,2,3,4,5; a[8]=9; /* errore ho sforato in memoria */ a[8] Stack a[] Heap Data Text 0Indirizzi di memoria
15 Le funzioni C Le funzioni sono i mattoni per la costruzione di un programma C Una funzione e un sottoprogramma che contiene una o piu istruzioni C ed esegue uno o piu compiti Ogni funzione ha un nome che viene utilizzato nella chiamata alla funzione per invocare la funzione stessa In generale una funzione puo avere un nome qualsiasi, pero e importante ricordare che main() e riservato alla funzione che da inizio all esecuzione del programma In C non e possibilie includere una funzione in un altra funzione a differenza di altri linguaggi di programmazione che consentono l annidamenti di funzioni Il C considera tutte le funzioni come entita separate, questo pero non impedisce il fatto che una funzione possa richiamarne un altra Fino ad ora main() era l unica vera funzione definita all interno nei nostri programmi La funzione main() e sempre la prima funzione ad essere eseguita e deve essere presente in tutti I programmi C I programmi possono utilizzare le funzioni principalmente sotto due forme : il primo tipo e scritto direttamente dal programmatore (come nel caso di main()), il secondo tipo si riferisce alle funzioni che sono implementate direttamente all interno del compilatore nella libreria standard La libreria standard e una sorta di collezione di funzioni molto utili che offrono al programmatore la possibilita di accedere all I/O, alla gestione della memoria, delle stringhe etc In generale un programma C contiene funzioni create dal programmatore e funzioni fornite dal compilatore Alcune tra le funzioni fornite dal compilatore che abbiamo utilizzato sono printf() e scanf() Programma con due funzioni (1) #include <stdioh> void mia_funzione(); /* prototipo della funzione mia_funzione */ main() /* funzione main() */ printf("sono in main()\n"); mia_funzione(); /* chiamo la funzione mia_funzione() */ printf("ritorno a main()\n"); /* definizione della funzione mia_funzione() */ void mia_funzione() /* corpo della funzione mia_funzione() */ printf("sono in mia_funzione()\n");
16 Programma con due funzioni (2) Il programma continene 2 funzioni main() e mia_funzione() Per prima cosa inizia la funzione main() ed esegue la prima istruzione printf() A questo punto main() chiama mia_funzione(), l esecuzione del programma passa nel corpo di mia_funzione() che esegue la propria istruzione printf() e ritorna poi a main() alla linea di codice immediatamente seguente alla chiamata Per finire main() esegue la seconda istruzione printf() e poi termina Nel programma e possibile individuare un altra importante istruzione: void mia_funzione(); Questo e il prototipo della funzione mia_funzione() Un prototipo di una funzione ha il compito di dichiarare la funzione prima della sua definizione Consente al compilatore di conoscere quale tipo di valore la funzione restituisce cosi come quanti e quale tipo di parametri la funzione puo accettare Per il compilatore e essenziale che queste informazioni siano note prima della chiamata alla funzione stessa, per questo il prototipo di mia_funzione() deve essere posto prima di main() Generalmente le funzioni C ritornano un valore La parola chiave void sta a indicare che la funzione mia_funzione() non restituisce alcun valore In C le funzioni che non restituiscono alcun valore vengono dichiarate come void Forma generale delle funzioni C Tutte le funzioni C hanno una forma comune del tipo: tipo-di-restituzione nome-di-funzione(lista parametri) corpo della funzione return;
17 Dichiarazione di funzioni C Ogni funzione deve avere un nome che e seguito da una lista di parametri racchiusi tra parentesi e separati da virgole (argomenti della funzione ) Questi argomenti prendono il nome di parametri formali La lista dei parametri specifica i tipi ed i nomi delle variabili a cui saranno passati I dati Pertanto un parametro e una variabile definita da una funzione che riceve un argomento E necessario dichiarare esplicitamente le variabili e il loro tipo all interno delle prentesi tonde In C tutti gli argomenti delle funzioni vengono passati per valore, questo significa che I valori degli argomenti vengono forniti alla funzione chiamata in variabili temporanee piuttosto che in quelle di origine La funzione chiamata non puo alterare direttamente una variabile che le viene passata dalla funzione chiamante, in quanto gli argomenti forniti alla funzione chiamata non sono altro che delle copie delle variabili presenti nella funzione chiamante Una modifica nel valore dei parametri formali della funzione avra effetto solo localmente, in quanto e una modifica a variabili private per la funzione chiamata e temporanee Se una funzione non ha parametri le parentesi tonde sono vuote Il corpo della funzione e un blocco di istruzioni C racchiuso da parentesi graffe, La funzione termina e ritorna alla routine chiamante quando raggiunge la parentesi graffa chiusa oppure quando incontra un istruzione return In C perche una funzione restituisca un valore, si ricorre all istruzione return Il valore restituito deve essere dello stesso tipo dichiarato in tipo-di-restituzione La forma generale e : return valore; Come le variabili possono essere di tipo diverso, anche i valori restituiti possono essere di tipo diverso Il tipo restituito precede il nome di una funzione sia nel prototipo sia nella definizione Nel caso non venga specificato alcun tipo di restituzione si assume che la funzione restituisca un valore intero Tutte le funzioni C restituiscono solitamente un valore Questo pero non e obbligatorio e le funzioni che non restituiscono un valore hanno void come tipo di restituzione (Esempi: powerc power2c) Note sulla funzione main() In virtu di quanto detto prima la funzione main() resitutisce un numero intero e quindi per essere formalmente corretti andrebbe dichiarata come int e andrebbe terminata con un istruzione return 0; Questa istruzione definisce la fine della funzione main() e restituisce il valore 0 al programma chiamante che e il sistema operativo del computer Per la maggior parte dei sistemi operativi la restituzione del valore 0 significa che il programma sta terminando normalmente mentre altri valori indicano che il programma sta terminando a causa di qualche errore In generale tutti I programmi dovrebbero restituire il valore 0 quando terminano normalmente cioe senza errori Da ora in poi scriveremo sempre il corpo della fuznoine main in questo modo: int main() corpo della funzione return 0;
Programmazione strutturata
Programmazione strutturata Controllo del flusso 1 Flusso di esecuzione: ordine in cui le istruzioni di un programma sono eseguite Salvo contrordini, è in sequenza Il flusso sequenziale è specificato da
DettagliJavaScript Core Language. Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132
JavaScript Core Language Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132 Condizioni L utilizzo di operatori relazionali e logici consente di formulare delle condizioni
DettagliSTRUTTURE DI CONTROLLO DEL C++
STRUTTURE DI CONTROLLO DEL C++ Le istruzioni if e else Le istruzioni condizionali ci consentono di far eseguire in modo selettivo una singola riga di codice o una serie di righe di codice (che viene detto
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
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
DettagliFunzioni, Stack e Visibilità delle Variabili in C
Funzioni, Stack e Visibilità delle Variabili in C Programmazione I e Laboratorio Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7
DettagliLe Strutture di controllo Del Linguaggio C. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni
Le Strutture di controllo Del Linguaggio C Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni STRUTTURE DI CONTROLLO PRIMITIVE SEQUENZA SELEZIONE (o scelta logica) ITERAZIONE NON PRIMITIVE
DettagliLe strutture di controllo
INFORMATICA B Ingegneria Elettrica Le strutture di controllo Selezione un esempio introduttivo Si disegni il diagramma di flusso di un algoritmo che chiede all utente un valore intero e visualizza il suo
DettagliErrori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.
Cicli e array Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7 Lez. 8 - Introduzione all ambiente
DettagliLinguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin
Linguaggio C strutture di controllo: strutture iterative Università degli Studi di Brescia Docente: Massimiliano Giacomin Elementi di Informatica e Programmazione Università di Brescia 1 Strutture iterative
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
DettagliRappresentazione degli algoritmi
Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti
DettagliLinguaggio C - sezione dichiarativa: costanti e variabili
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - sezione dichiarativa: costanti e variabili La presente
DettagliELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli
ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del
DettagliLezione 6 Introduzione al C++ Mauro Piccolo
Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,
DettagliLaboratorio di Programmazione Lezione 2. Cristian Del Fabbro
Laboratorio di Programmazione Lezione 2 Cristian Del Fabbro Prossima lezione GIOVEDÌ 29 OTTOBRE 14:00 Input da tastiera package input; import java.io.*; public class Input { public static void main(string[]
DettagliEsercitazione 4. Comandi iterativi for, while, do-while
Esercitazione 4 Comandi iterativi for, while, do-while Comando for for (istr1; cond; istr2) istr3; Le istruzioni vengono eseguite nel seguente ordine: 1) esegui istr1 2) se cond è vera vai al passo 3 altrimenti
DettagliFondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011
Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Istruzione condizionale switch Istruzioni di salto break e continue Uso di variabili di tipo boolean Variabili di tipo array (monodimensionali)
DettagliCostanti e Variabili
Parte 3 Costanti e Variabili Identificatori Un identificatore è un nome che viene associato a diverse entità (costanti, tipi, variabili, funzioni, ecc.) e serve ad identificare la particolare entità Gli
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
Dettagli1 PANORAMICA SUL LINGUAGGIO C
1 PANORAMICA SUL LINGUAGGIO C 1.1 Le origini del linguaggio C Il C fu inventato e implementato da Dennis Ritchie negli anni 70 su una macchina che impiegava il sistema operativo Unix. Il C è il risultato
DettagliLinguaggio C: le funzioni. Introduzione e sintassi
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: le funzioni. Introduzione e sintassi La presente dispensa
DettagliIl linguaggio Java Istruzioni di Controllo
Il linguaggio Java Istruzioni di Controllo Istruzioni per il controllo di flusso Istruzioni di selezione if switch Istruzioni di iterazione while do-while for Istruzioni di salto break continue return
Dettagli7. Strutture di controllo
Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Gestionale (L-Z) 7. Ing. Michele Ruta 1 di 17 Indice Istruzioni di selezione Mappate dal costrutto switch Istruzioni cicliche (di iterazione)
DettagliCicli annidati ed Array multidimensionali
Linguaggio C Cicli annidati ed Array multidimensionali Cicli Annidati In C abbiamo 3 tipi di cicli: while(exp) { do { while(exp); for(exp;exp;exp3) { Cicli annidati: un ciclo all interno del corpo di un
DettagliERRATA CORRIGE. void SvuotaBuffer(void); void SvuotaBuffer(void) { if(getchar()!=10) {svuotabuffer();} }
ERRATA CORRIGE Pulizia del buffer di input: come fare? (1) Dopo aver richiamato getchar() per prelevare un carattere dal buffer di input, inseriamo una seconda chiamata a getchar(), senza assegnare il
DettagliC: panoramica. Violetta Lonati
C: panoramica Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010 Violetta Lonati
DettagliPerché il linguaggio C?
Il linguaggio C 7 Perché il linguaggio C? Larga diffusione nel software applicativo Standard di fatto per lo sviluppo di software di sistema Visione a basso livello della memoria Capacità di manipolare
DettagliIstruzioni Condizionali in C
Concetti chiave Istruzioni Condizionali in C Tipi di Istruzioni Condizionali Espressioni Blocchi d istruzioni Istruzioni Condizionali: if-else Istruzioni Condizionali: switch-case Istruzione break Istruzioni
DettagliFunzioni in C. Funzioni. Strategie di programmazione. Funzioni in C. Come riusare il codice? (2/3) Come riusare il codice? (1/3)
Funzioni Il concetto di funzione Parametri formali e attuali Il valore di ritorno Definizione e chiamata di funzioni Passaggio dei parametri Corpo della funzione 2 Strategie di programmazione Riuso di
Dettagli6 - Blocchi e cicli. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
6 - Blocchi e cicli Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://pages.di.unipi.it/milazzo milazzo di.unipi.it
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 Fondamenti di Informatica
Corso di Fondamenti di Informatica Le classi di istruzioni in C++ 1 Le classi di istruzioni in C++ SEQUENZIALI Statement semplice Statement composto CONDIZIONALI if < expr.> else switch case
DettagliLinguaggio C: le funzioni. Introduzione e sintassi
ISIS "Guido Tassinari" di Pozzuoli Indirizzo Informatico - Articolazione Informatica Informatica Prof. A.S. 2012/2013 Linguaggio C: le funzioni. Introduzione e sintassi 21/10/2012 Introduzione Spesso alcuni
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
DettagliAlgebra di Boole: Concetti di base. E un algebra basata su tre operazioni logiche
Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono
DettagliIstruzioni semplici e strutturate
Consorzio NETTUNO Corso di Fondamenti di Informatica I secondo giorno di stage Istruzioni semplici e strutturate Dipartimento di Informatica e Sistemistica Università degli Studi di Napoli Federico II
DettagliLe strutture di controllo in C++
Le strutture di controllo in C++ Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi di Napoli
DettagliFondamenti di Informatica 6. Algoritmi e pseudocodifica
Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie
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
DettagliEsercitazione 11. Liste semplici
Esercitazione 11 Liste semplici Liste semplici (o lineari) Una lista semplice (o lineare) è una successione di elementi omogenei che occupano in memoria una posizione qualsiasi. Ciascun elemento contiene
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
DettagliLinguaggio C: introduzione
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: introduzione La presente dispensa e da utilizzarsi
DettagliPuntatori. Fondamenti di Programmazione
Puntatori Fondamenti di Programmazione Funzioni utili stdio.h c = getchar(); restituisce un carattere letto da tastiera. Equivale a: scanf( %c, &c); putchar(c); scrive un carattere sullo schermo. Equivale
DettagliIl linguaggio C. Puntatori e dintorni
Il linguaggio C Puntatori e dintorni 1 Puntatori : idea di base In C è possibile conoscere e denotare l indirizzo della cella di memoria in cui è memorizzata una variabile (il puntatore) es : int a = 50;
DettagliLinguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.
Linguaggio C Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. 1 Funzioni Generalizzazione del concetto di funzione algebrica: legge che associa a valori delle variabili
DettagliArray k-dimensionali
Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Array k-dimensionali In C è possibile definire array con più dimensioni (ANSI C massimo k=12), per
DettagliEsercizi Programmazione I
Esercizi Programmazione I 9 Novembre 201 Esercizio 1 Valutare e dare il tipo delle seguenti espressioni condizionali. 1 char a= a, b= b ; // a ha v a l o r e decimale 97 2 i n t i= 1, j= 2 ; 3 double x=
DettagliFunzioni e. Alessandra Giordani Mercoledì 16 maggio 2012
Funzioni e passaggio parametri Alessandra Giordani agiordani@disi.unitn.it Mercoledì 16 maggio 2012 http://disi.unitn.it/~agiordani/ Cosa vedremo oggi Le funzioni Il passaggio dei parametri Le dichiarazioni
DettagliIntroduzione ai puntatori in C Definizione
Introduzione ai puntatori in C Definizione Un puntatore è una variabile che contiene l indirizzo di un altra variabile Tramite i puntatori si può quindi accedere a un oggetto indirettamente (si usa il
Dettagli7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari
7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa
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
DettagliNon ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di
ARRAY DI PUNTATORI Non ci sono vincoli sul tipo degli elementi di un vettore Possiamo dunque avere anche vettori di puntatori Ad esempio: char * stringhe[4]; definisce un vettore di 4 puntatori a carattere
DettagliFondamenti di Programmazione. Strutture di controllo
Fondamenti di Programmazione Strutture di controllo 1! Controllo del flusso! n Flusso di esecuzione: ordine in cui le istruzioni di un programma sono eseguite! n Salvo contrordini, è in sequenza! n Due
DettagliFUNZIONI COME COMPONENTI SW FUNZIONI COME COMPONENTI SW FUNZIONI MODELLO CLIENTE/SERVITORE
FUNZIONI Spesso può essere utile avere la possibilità di costruire nuove istruzioni che risolvano parti specifiche di un problema Una funzione permette di dare un nome a una espressione rendere tale espressione
DettagliUniversità degli Studi di Brescia. Vettori di variabili. ! Sono variabili aggregate in grado di memorizzare una collezione (organizzata) di oggetti
Linguaggio C 1! Sono variabili aggregate in grado di memorizzare una collezione (organizzata) di oggetti Oggetti dello stesso tipo Identificazione univoca degli oggetti! Il tipo più semplice ha una sola
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
DettagliIntroduzione alla programmazione
Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste
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
DettagliESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C
Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2
DettagliStrutture di Controllo
Strutture di Controllo Informatica B Istruzioni condizionali #include int main() char c; printf("inserire il carattere maiuscolo: "); scanf("%c", &c); printf("la traduzione e' %c\n",c+32); return
DettagliSi possono applicare solo a variabili (di tipi interi, floating o puntatori), ma non a espressioni generiche (anche se di questi tipi).
Operatori di incremento e decremento: ++ e -- ++ e -- sono operatori unari con la stessa priorità del meno unario e associatività da destra a sinistra. Si possono applicare solo a variabili (di tipi interi,
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
DettagliUnità Didattica 4 Linguaggio C. Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo.
Unità Didattica 4 Linguaggio C Vettori. Puntatori. Funzioni: passaggio di parametri per indirizzo. 1 Vettori Struttura astratta: Insieme di elementi dello stesso tipo, ciascuno individuato da un indice;
DettagliPROGRAMMAZIONE STRUTTURATA
PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:
DettagliLaboratorio di programmazione
Laboratorio di programmazione Lezione II Tatiana Zolo zolo@cs.unipr.it 1 IL PROGRAMMA C++ Istruzioni (espressioni terminate da ; ) istruzioni di dichiarazione (es. int x = 0;); istruzioni di assegnamento
DettagliStrategie di programmazione
Funzioni Funzioni in C Il concetto di funzione Parametri formali e attuali Il valore di ritorno Definizione e chiamata di funzioni Passaggio dei parametri Corpo della funzione 2 Funzioni in C Strategie
Dettagli<istruzione> ::= <istruzione-semplice> <istruzione> ::= <istruzione-di-controllo> <istruzione-semplice> ::= <espressione> ;
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 di
Dettagli19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso
DettagliTipi di dato semplici
Tipi di dato semplici Perché dichiarare una variabile? 2 Una variabile rappresenta uno spazio di memoria centrale Prima dell esecuzione del programma deve essere chiaro quanto spazio serve al programma
DettagliISTRUZIONI 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 di
DettagliRELAZIONE DELLA PROVA DI LABORATORIO DI INFORMATICA
RELAZIONE DELLA PROVA DI LABORATORIO DI INFORMATICA Anno scolastico Lab informatica AULA n 35 Data inizio svolgimento Progr. relazione primo trimestre secondo pentamestre Cognome e Nome DATI DELLO STUDENTE
DettagliI puntatori sono tipi di variabili il cui valore rappresenta un indirizzo della memoria.
Puntatori I puntatori sono tipi di variabili il cui valore rappresenta un indirizzo della memoria. NOTA: quando un programma viene mandato in esecuzione, ad esso viene assegnata un area di memoria di lavoro
DettagliAlgoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal
Algoritmi, Strutture Dati e Programmi : Programmazione in Pascal Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Il Linguaggio di Programmazione Pascal Esistono molti linguaggi
DettagliUnità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi
Obiettivi Unità F1 Primi programmi Conoscere il significato di dichiarazione e definizione di variabili Conoscere i tipi di dato numerici Essere in grado di realizzare semplici algoritmi in pseudolinguaggio
DettagliLinguaggio C Informatica Grafica
Linguaggio C Informatica Grafica Corsi di Informatica Grafica Prof. Manuel Roveri Dipartimento di Elettronica e Informazione roveri@elet.polimi.it Linguaggio C Breve storia Struttura di un programma Variabili
DettagliIL PRIMO PROGRAMMA IN C
IL PRIMO PROGRAMMA IN C LO SCOPO Si vuole scrivere un programma in linguaggio C che chieda all utente di introdurre da tastiera due numeri interi e visualizzi il valore della loro somma sul video SOLUZIONE
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
DettagliProgrammazione strutturata
Programmazione strutturata 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
DettagliIntroduzione al linguaggio C Puntatori
Introduzione al linguaggio C Puntatori Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica 19 ottobre 2016
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 2
DettagliIntroduzione al C. Introduzione. Linguaggio ad alto livello. Struttura di un programma C
Introduzione 2 Introduzione al C Linguaggio di programmazione ad alto livello (HLL) Sviluppato negli anni 70 (C standard ANSI) Molto diffuso e adatto ad un ampio spettro di applicazioni: Scientifiche Gestionali
DettagliIstruzioni di ciclo. Unità 4. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi
Corso di Ingegneria Clinica BCLR Domenico Daniele Bloisi Docente Ing. Domenico Daniele Bloisi, PhD Ricercatore Dipartimento di Ingegneria Informatica, Automatica e Gestionale Antonio Ruberti Via Ariosto
DettagliScope delle variabili e passaggio parametri. Danilo Ardagna Politecnico di Milano
Scope delle variabili e passaggio parametri Danilo Ardagna Politecnico di Milano 1-4-2014 Introduzione! Con le funzioni è stato introdotto un meccanismo per definire dei piccoli programmi all interno di
DettagliFunzioni di libreria. Richiedono tutte. #include <math.h> fabs(x) sqrt(x) pow(x,a) exp(x) log(x)
Funzioni di libreria Richiedono tutte #include x x a x fabs(x) sqrt(x) pow(x,a) x e ln(x) exp(x) log(x) log 10 ( x ) log10(x) sen(x) cos(x) tg(x) arcsen(x) arccos(x) arctg(x) senh(x) cosh(x) tgh(x)
DettagliIstruzioni di ripetizione in Java 1
in Java Corso di laurea in Informatica Le istruzioni di ripetizione consentono di eseguire molte volte la stessa Si chiamano anche cicli Come le istruzioni condizionali, i cicli sono controllati da espressioni
DettagliDefinizione di metodi in Java
Definizione di metodi in Java Un metodo in Java definisce un operazione ad alto livello (sottoprogramma) che consente di manipolare dati e oggetti. Durante la computazione effettuata da un programma, un
DettagliCORSO DI PROGRAMMAZIONE
ISTITUTO TECNICO INDUSTRIALE G. M. ANGIOY SASSARI CORSO DI PROGRAMMAZIONE INTRODUZIONE ALLE ISTRUZIONI ITERATIVE DISPENSA 03.01 03-01_Iterazioni_[ver_15] Questa dispensa è rilasciata sotto la licenza Creative
DettagliINTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica
Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione
DettagliINTRODUZIONE. ALLA PROGRAMMAZIONEColonna 1. in linguaggio C
12 10 8 INTRODUZIONE 6 4 ALLA PROGRAMMAZIONEColonna 1 Colonna 2 Colonna 3 in linguaggio C 2 0 Riga 1 Riga 2 Riga 3 Riga 4 di Mauro Casula { Scopi del seminario Essere chiaro ed esauriente; Spiegare nei
DettagliProgrammazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo
Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy
DettagliCorso di Fondamenti di Informatica Classi di istruzioni 2
Corso di Informatica Classi di istruzioni 2 Anno Accademico 2010/2011 Francesco Tortorella Strutture di controllo Caratteristica essenziale degli algoritmi è la possibilità di decidere le operazioni da
DettagliIstruzioni di Ciclo. Unità 4. Domenico Daniele Bloisi
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Domenico Daniele Bloisi Docenti Parte I prof. Silvio Salza salza@dis.uniroma1.it http://www.dis.uniroma1.it/~salza/fondamenti.htm
Dettagli$QDOLVLGHOSURJUDPPDTXDGUDWR
$QDOLVLGHOSURJUDPPDTXDGUDWR /* */ calcolare l area del quadrato #include main(){ int lato, area; printf("lato "); scanf("%d", &lato); if(lato < 0) printf("errore nei dati \n"); else { area =
DettagliUn esempio di if annidati
Programmazione A.A. 2002-03 I Costrutti di base ( Lezione XIV, parte I ) Costrutto di selezione switch Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università di
DettagliStrutture di Controllo
Introduzione Strutture di Controllo per strutture condizionali e cicliche Quando si affronta la programmazione si devono indicare al computer delle istruzioni da eseguire. Se il computer potesse comprendere
DettagliUniversità degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso
Obiettivi Di seguito vengono riportate una serie di domande che possono essere poste durante la prova formale del corso. Le seguenti domande non sono da ritenersi esaustive ma esemplificative. 1. Architettura
DettagliLinguaggio C: le funzioni. Visibilità variabili e passaggio parametri
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C: le funzioni. Visibilità variabili e passaggio parametri
DettagliIstruzioni decisionali
Istruzioni decionali 1. if 2. if-else 3. switch 115 switch Struttura di scelta plurima che controlla se una espresone assume un valore all interno di un certo ineme di costanti e comporta di conseguenza
DettagliStrutture di controllo decisionali
Capitolo 3 Strutture di controllo decisionali ANDREA GINI Dopo aver introdotto il concetto di variabile e di array, è giunto il momento di analizzare a fondo i restanti costrutti del linguaggio Java. Come
Dettagli