Informatica B Allievi Elettrici - AA 2000-01 Fondamenti della programmazione in linguaggio C (II) Istruzioni e strutture di controllo.

Slides:



Advertisements
Presentazioni simili
Fondamenti di Informatica
Advertisements

Introduzione al linguaggio C++
INFORMATICA Altre Istruzioni di I/O
LINGUAGGIO DI PROGRAMMAZIONE C
INFORMATICA Strutture condizionali
Uso avanzato di C.
Nel C non esiste un dato primario di tipo stringa; queste sono rappresentate con un array monodimensionale di caratteri (tipo char). Così per definire.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F2 Selezione.
Iterazione A. Ferrari.
Stringhe di caratteri In linguaggio C.
Selezione A. Ferrari.
Sviluppo di programmi strutturati
LE FUNZIONI IN C Sommario 1 Introduzione 2 Moduli di programma in C
PHP.
Istruzioni condizionali e blocco
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Dipartimento di Matematica
5. Codifica degli algoritmi in un linguaggio di alto livello
Introduzione al linguaggio C
Il linguaggio C Gli operatori e le espressioni C Language
La ricorsione Simulazione. Il Main /* Programma che usa una funzione ricorsiva*/ #include #define MAX_N 8 main() int valore, dato; printf(Introduci n:
ESERCITAZIONE N. 5 ESERCIZIO N. 1 Autore: Biagio Brattoli S I Corso.
INFORMATICA Strutture iterative
Introduzione agli algoritmi. Definizione Sistema di regole e procedure di calcolo ben definite che portano alla soluzione di un problema con un numero.
Informatica B Allievi Elettrici AA La progettazione per raffinamenti successivi.
Algebra di Boole ed elementi di logica
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 3 Ottobre 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Funzioni e Procedure Marco D. Santambrogio – Ver. aggiornata al 18 Aprile 2012.
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
1 Corso di Informatica (Programmazione) Lezione 10 (12 novembre 2008) Programmazione in Java: espressioni booleane e controllo del flusso (selezione)
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Le strutture di controllo
Il linguaggio Fortran 90: 2. Istruzioni di Controllo
Fondamenti di Informatica I a.a Il linguaggio C Il controllo di flusso La selezione condizionale Listruzione switch I cicli Le istruzioni break,
Fondamentidi Programmazione Corso: Fondamenti di Programmazione Classe: PARI-DISPARI Docente: Prof. Luisa Gargano Testo: Aho, Ulman, Foundations of Computer.
Procedure e funzioni nei linguaggi di alto livello Lab Programmazione - turno /2006.
INFORMATICA Altre Istruzioni di I/O. © Piero Demichelis 2 Funzioni di I/O Per la lettura e la scrittura da videoterminale il C prevede numerose istruzioni.
Strutture di controllo nel C
Esercizi FUNZIONI Passaggio di parametri per valore, variabili e tipi locali e globali, prototipo.
Strutture di controllo in C -- Flow Chart --
Politecnico di Milano Esercizi Preparazione alla prima prova intermedia.
Esercizi C su array e matrici
Dichiarazioni e tipi predefiniti nel linguaggio C
Le funzioni.
Programmazione in Java Claudia Raibulet
Calcolo del Massimo Comun Divisore
In molti casi è utile assegnare a degli identificatori dei valori che restino costanti durante tutto il programma e che non possano essere cambiati nemmeno.
Programmazione di Calcolatori
Parte 4 Elementi di Informatica di base
Massimo Comun Divisore
Laboratorio di Informatica1 Parte 4 Laboratorio di Informatica Dott.ssa Elisa Tiezzi Dott.ssa Elisa Mori.
14 marzo 2002 Avvisi:.
Università degli Studi di BresciaA.A. 2012/2013 Fondamenti di Programmazione Docente: Alessandro SaettiA.A. 2012/2013 Università degli Studi di Brescia.
Soluzioni e commenti esercizi 1 e 2
Appunti di Java (J2SDK 1.4.2, JDK 1.6.0) prof. Antonella Schiavon settembre 2009.
Fondamenti di Programmazione
Anno accademico Le istruzioni di controllo in C.
Ripetizione La vera potenza dei programmi per computer risiede nella capacità di ripetere lo stesso calcolo o sequenza di istruzioni più volte, ogni volta.
#include void main() { int a,b,c,; float s, x,x1,x2,delta,alfa,beta; int num[3]; int i; printf("La forma classica dell'equazione di 2° grado è: a*x^2+b*x+c=0\n.
Introduzione a Javascript
Corso di Algoritmi e Strutture Dati APPUNTI SUL LINGUAGGIO C
Algoritmi e basi del C Struttura di un programma
1 Fabio Scotti – Università degli Studi di Milano Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( )
Algoritmi e basi del C Struttura di un programma
PRIMI ELEMENTI DI PROGRAMMAZIONE
Operatori di incremento e decremento
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (III)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
Transcript della presentazione:

Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (II) Istruzioni e strutture di controllo

Istruzioni condizionali Anche in C esiste il costrutto a selezione semplice e quello a selezione doppia: if (espressione) istruzione if (espressione) istruzione1 else istruzione2 In generale: if (espressione) {seq1. di istruzioni} [else {seq2. di istruzioni}] Nota: gli if possono essere nidificati

Istruzioni condizionali (selezione semplice) #include /* Calcolo del valore assoluto */ int numero, valass; /*dichiarazione delle variabili*/ main() { printf(“Calcolo Valore Assoluto\n\n”); printf(“Inserisci Numero Intero:”); scanf (“%d”,&numero); /*acquisizione valori */ if (numero < 0) valass = 0-numero; if (numero >= 0) valass = numero; printf(“Numero: %d\n”,numero); /*output */ printf(“Valore assoluto: %d\n”,valass); }

Istruzioni condizionali (selezione doppia) #include /* Calcolo del valore assoluto */ int numero, valass; /*dichiarazione delle variabili*/ main() { printf(“Calcolo Valore Assoluto\n\n”); printf(“Inserisci Numero Intero:”); scanf (“%d”,&numero); /*acquisizione valori */ if (numero < 0) valass = 0-numero; else valass = numero; printf(“Numero: %d\n”,numero); /*output */ printf(“Valore assoluto: %d\n”,valass); }

Verifica dati d’ingresso (istruzioni composte) #include /* Calcolo dell’area di un triangolo */ int base,altezza,area;/*dichiarazione delle variabili*/ main() { printf(“Area del triangolo\n\n”); printf(“Inserisci Base:”); scanf (“%d”,&base); /*acquisizione valori */ printf(“Inserisci Altezza:”); scanf (“%d”,&altezza);/*input */ if (base>=0 && altezza>=0) {area = (base * altezza)/2; /*caso valori d’ingresso accettabili */ printf(“Base: %d\n”,base); /*output */ printf(“Altezza: %d\n”,altezza); printf(“Area: %d\n”,area);} else printf(“Valori non accettabili”); }

Frammento di programma ( if annidati) if(i<100) if(i>0) printf(“\n minore di 100 e maggiore di zero”); else if (i==0) printf(“\n uguale a zero”); else printf(“\n minore di zero”); else if (i==100) printf(“\n uguale a 100”); else printf(“\n maggiore di 100”);

Gli operatori Logici: ! (not), &&(and), || (or) Aritmetici e di assegnamento: - (unario), { *, /,% (modulo)}, {+,- (binario)}, = (ass.) Relazionali: {>, >=, <, <=}, {==, !=} Gerarchia generale: {!, - unario}, {*,/,%}, {+,- binario}, {>, >=, <, <=}, {==, !=}, &&, ||, = (ass.)

I valori logici (o booleani) Il linguaggio C non mette a disposizione il tipo booleano per esprimere i valori logici Si adoperano gli interi 0 e 1 Tavole di verità: x !x x y x&&y x || y

L’istruzione switch-case Switch(espressione) { case costante1: istruzione1; … break; case costante2: istruzione; … break; … case costanteN: istruzione; … break; }

L’istruzione switch-case Switch(espressione) { case costante1: istruzione; … break; case costante2: istruzione; … break; … case costanteN: istruzione; … break; [default: istruzione] } L’espressione deve aver valore int o char; la parola case deve essere seguita da una costante int o char; il break serve per eseguire solo le istruzioni di quel caso; il default serve nei casi non compresi; Si può usare per sostituire l’if annidato: attenzione però al tipo dell’espressione e della costante!!

L’istruzione switch-case #include /*esempio uso switch-case*/ int x; main() { printf(“Inserisci la tua scelta\n”); scanf (“%d”,&x); Switch(x) { case 10: printf(“\n dieci”); break; case 20: printf(“\n venti”); break; case 30: printf(“\n trenta”); break; default: printf(“\n errore”); }

Istruzioni iterative: ciclo a condizione iniziale 1. Leggi(N) 2. If N < 0 then End 3. S=0 4. I=1 5. while I <= N do 6. { S=S+I 7. I=I+1} 8. Scrivi(“La somma e’” S) 9. End #include /* Somma primi N naturali */ int N, S, I; main() { printf(“Inserisci N:”); scanf (“%d”,&N); /*input */ if N >= 0 {S=0; I=1; while I <= N {S=S+I; I=I+1;} printf(“\nLa somma è %d\n”,S);} }

Istruzioni iterative: ciclo a condizione finale #include /* Somma primi N naturali */ int N, S, I; main() { printf(“Inserisci N:”); scanf (“%d”,&N); /*input */ if N > 0 /* Accetto solo N positivo */ {S=0; I=1; do {S=S+I; I=I+1;} while I <= N; /* esce dal ciclo dopo averlo eseguito almeno una volta */ printf(“\nLa somma è %d\n”,S);} }

Incrementi e decrementi x = x + 1; ---> ++x; oppure x++; x = x - 1; ---> --x; oppure x--; Esempio: c = ++a + b; significa: a = a + 1; c = a + b; N.B.: nuovo valore di a!! c = a++ + b; significa: c = a + b; N.B.: vecchio valore di a!! a = a + 1;

Il costrutto for For(esp1; esp2; esp3) istruzione (o blocco) #include /* Somma primi N naturali */ int N, S, I; main() { printf(“Inserisci N:”); scanf (“%d”,&N); /*input */ if N > 0 /* Per N positivo */ {S=0; for (I=1; I <= N; I++) /* notare inizio I=1 */ S=S+I; /* la I viene incrementata nella istruzione for stessa */ } printf(“\nLa somma è %d\n”,S);} }

Alternativa per N >=0 #include /* Somma primi N naturali */ int N, S, I; main() { printf(“Inserisci N:”); scanf (“%d”,&N); /*input */ if N >= 0 /* Verifica dati d’ingresso */ {S=0; for (I=0; I <= N; I++) /* notare inizio I=0 */ S=S+I; } printf(“\nLa somma è %d\n”,S);} }

Calcolo del fattoriale #include /* Calcolo n fattoriale */ main() { int n, fatt, m; printf(“Inserisci n:”); scanf (“%d”,&n); /*input */ if n > 0 /* Verifica dati d’ingresso */ {fatt = n; for (m=n; m>2; m--) /* notare m viene decrementato */ fatt = fatt * (m-1); printf(“\Il fattoriale di %d è:%d\n”,n,fatt); }

Calcolo del fattoriale (uso del while) #include /* Calcolo n fattoriale */ main() { int n, fatt, m; printf(“Inserisci n:”); scanf (“%d”,&n); /*input */ if n > 0 /* Verifica dati d’ingresso */ {fatt = n; m=n; /* esp 1 */ while m>2 /* esp 2 */ {fatt = fatt * (m-1); m-- } /* esp 3 */ printf(“\Il fattoriale di %d è:%d\n”,n,fatt); }