Laboratorio di informatica Ingegneria meccanica

Documenti analoghi
Laboratorio di Informatica

Istruzioni. Una istruzione semplice è qualsiasi espressione seguita da un punto e virgola. Esempio x = 0; y = 1;/* due istruzioni */

Manualistica 3 Le strutture di controllo

Istruzioni iterative (o cicliche)

del Linguaggio C Istruzioni di iterazione

Esempi comparati while, do...while

Linguaggio C - le strutture di controllo: sequenza, selezione, iterazione

Laboratorio di Informatica

ANALIZZIAMO NEI DETTAGLI GLI STATEMENTS DI SELEZIONE E DI RIPETIZIONE FORNITI DAL LINGUAGGIO C STATEMENT SEMPLICE STATEMENT COMPOSTO BLOCCO

Informatica (A-K) 5. Algoritmi e pseudocodifica

Fondamenti di Informatica

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

20/10/2014 M. Nappi/FIL 1

Strutture di Controllo

Laboratorio di Informatica I

Strutture di Controllo Iterative: Istruzione FOR

Manualistica 3 Le strutture di controllo

Istruzioni di controllo

Strutture di Controllo Condizionali e Operatori Logici e Relazionali

<istruzione> ::= <istruzione-semplice> <istruzione> ::= <istruzione-di-controllo> <istruzione-semplice> ::= <espressione> ;

Laboratorio di informatica Ingegneria meccanica

ISTRUZIONI. Le strutture di controllo permettono di aggregare istruzioni semplici in istruzioni più complesse.

Strutture di Controllo Condizionali e Operatori Logici e Relazionali

Laboratorio. Due. 1) Switch 2) Costrutti Iterazione (For, While, do while)

Programmazione C Massimo Callisto De Donato

Istruzioni di Controllo

#include <stdio.h> /* l esecuzione comincia dalla funzione main */ int main()

Linguaggio C. strutture di controllo: strutture iterative. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Istruzioni. Istruzioni semplici Istruzioni di controllo. Fondamenti di Informatica e laboratorio Istruzioni e Controllo del flusso

Laboratorio di Programmazione

Il corpo di tutte le funzioni deve essere contenuto tra parentesi graffe

Programmazione in C. La struttura del programma Variabili, espressioni, operazioni

Strutture di Controllo Iterative: Istruzione FOR

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

ISTRUZIONI. Le strutture di controllo permettono di aggregare istruzioni semplici in istruzioni più complesse.

I cicli. Iterazioni Calcolo della media Istruzioni break e continue

ISTRUZIONI ISTRUZIONI SEMPLICI

Linguaggio C Strutture di controllo

Laboratorio di informatica Ingegneria meccanica

ISTRUZIONI ISTRUZIONI SEMPLICI

Fondamenti di Informatica L-A

<istruzione> ::= <istruzione-semplice> <istruzione> ::= <istruzione-di-controllo> <istruzione-semplice> ::= <espressione> ;

Programmazione strutturata

$QDOLVLGHOSURJUDPPDTXDGUDWR

Istruzioni decisionali

Le strutture di controllo

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso

PROGRAMMAZIONE STRUTTURATA

Lezione 5 e 6. Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza. Valentina Ciriani ( ) Laboratorio di programmazione

Linguaggio C: strutture di controllo

Istruzioni decisionali

Introduzione alla programmazione in C

IL COSTRUTTO ITERAZIONE

Laboratorio di Informatica Ingegneria Clinica Lezione 7/11/2011. Prof. Raffaele Nicolussi

Esercitazione 4. Comandi iterativi for, while, do-while

Algoritmi e basi del C

Informatica 2 modulo C Massimo Callisto De Donato

ISTRUZIONI ISTRUZIONI

INFORMATICA. Strutture iterative

Esercitazione 3. Espressioni booleane I comandi if-else e while

Struttura di un. Struttura dei programmi C

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

Algoritmi e basi del C Struttura di un programma

Fondamenti di Informatica L-A. Esercitazione 3

C array. Problema: scrivere un programma che, ricevuto in input un intero n ed n interi positivi, li stampi in ordine inverso.

ISTRUZIONI. Le strutture di controllo permettono di aggregare istruzioni semplici in istruzioni più complesse

Linguaggio C: strutture di controllo

Corso di Informatica 1 (IN110) Tutorato n. 4

Istruzioni di Ciclo. Unità 4. Domenico Daniele Bloisi

Laboratorio di Informatica I

Lezione 19: Il preprocessore

Iterazione indeterminata

Università degli Studi di Milano

Perché il linguaggio C?

Laboratorio di Informatica Ingegneria Clinica Lezione 9/11/2011. Prof. Raffaele Nicolussi

Università degli Studi di Milano

ISTRUZIONI SEMPLICI ISTRUZIONI ISTRUZIONI DI CONTROLLO PROGRAMMAZIONE STRUTTURATA

STRUCT - ESERCIZIO 1

Dott. R. Gori, Dott. A. Rama INFORMATICA 242AA a.a. 2011/12 pag. 1. Le istruzioni iterative permettono di ripetere determinate azioni più volte:

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C

Istruzioni di Ciclo. Unità 4. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi

Laboratorio di Informatica I

Algoritmi e basi del C Struttura di un programma

Istruzioni di Controllo in C. Emilio Di Giacomo

Istruzioni iterative. Istruzioni iterative

Strutture di Controllo

ISTRUZIONI DI ITERAZIONE

Programmazione Strutturata

Strutture di Controllo

Esercizio 1: calcolo del massimo di una sequenza (versione 1)

Istruzioni di Ciclo. Unità 4. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Tipo carattere. Campo di variabilità. Intervallo finito. Tipo. Dimensione (byte) char

Si possono applicare solo a variabili (di tipi interi, floating o puntatori), ma non a espressioni generiche (anche se di questi tipi).

while Istruzione while Cicli ed iterazioni Istruzioni di ripetizione in C Comportamento del while

Transcript:

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 valore (qualunque esso sia!) nome: stesse regole date per il nome di variabili Esempio: #define KAPPA =-p32pk ; produce la sostituzione di "KAPPA" con =-p32pk ;" Inserimento nel programma: dove necessario #define è una direttiva per il compilatore (elaborata dal preprocessore a tempo di compilazione) Uso tipico: per modificare valori di costanti senza interventi pesanti sul testo del programma (si ricompila il programma dopo aver aggiornato solo il valore che compare nella #define) 1 2 C: Valutazione delle espressioni (1) REGOLE DI PRECEDENZA TRA OPERATORI Stabiliscono l'ordine logico di applicazione degli operatori che compaiono in un'espressione Esempio: In a * b + c, * èapplicato prima di + Si può forzare l'ordine logico desiderato usando parentesi tonde: l'ordine è dalle parentesi più interne verso quelle più esterne Esempio: In (a * (b + c)), + è applicato prima di * (la seconda coppia di parentesi può essere omessa) C: Valutazione delle espressioni (2) PRECEDENZA PER ALCUNI OPERATORI (quelli su una stessa riga hanno identica precedenza) unari binari! + - * / % + - < <= > >= ==!= && = max precedenza min precedenza 3 4

C: Valutazione delle espressioni (3) REGOLE DI ASSOCIATIVITA' PER OPERATORI Stabiliscono l'ordine logico di applicazione degli operatori nel caso in cui questi abbiano la stessa precedenza! + - * / % + - < <= > >= ==!= && = da destra a sinistra da destra a sinistra 5 C: Valutazione delle espressioni (4) ESEMPI d = a + b - c: d = ((a+b) - c) a + b - c/d: ((a+b) - (c/d)) a = b = c: a = (b=c) a = a + b: a = (a+b) a = a + b < c: a = ((a+b)<c) a = a + b!= c: a = ((a+b)!=c) a = a <= b!= c: a = ((a<=b)!=c) 6 C: Valutazione delle espressioni (5) ORDINE DI ESECUZIONE Esistono regole solo per alcuni operatori Esempio: per && e è stabilito un ordine temporale di esecuzione (si valuta prima l'operando sinistro e e solo se necessario si si valuta l'operando destro) Precedenza ed associatività stabiliscono come una espressione verrà interpretata, non la sequenza di azioni eseguite per la sua valutazione Il compilatore è libero di produrre il risultato atteso nel modo che ritiene più conveniente ESEMPIO: d = (3 + a) * (b + c) potrebbe essere eseguita come d = b + c ; d' = 3 + a ; d = d * d'; o come d' = 3 + a ; d" = b + c ; d = d' * d"; ; etc Strutture di controllo Modifiche condizionate del flusso di esecuzione delle istruzioni Strutture di selezione: ramificazione condizionata del flusso (istruzioni if selezione singola, if else selezione doppia, switch selezione multipla) Strutture di iterazione: ripetizione condizionata di un blocco di istruzioni (istruzioni while e for) 7 8

Strutture di iterazione Le strutture di iterazione permettono di specificare un azione che dovrà essere ripetuta sotto il controllo di una condizione C: Istruzione while while ( espressione ) { ; ; ; Iterazione definita: controllata da un contatore (il numero di iterazioni è noto in anticipo) Iterazione indefinita: controllata da un valore sentinella (il numero di iterazioni non è noto in anticipo) espressione 9 10 C: istruzione for for ( espressione1; espressione2; espressione3 ) { ; ; ; C: Confronto for-while espressione1 espressione1 viene preliminarmente valutata se espressione2 ha valore diverso da 0, si esegue il corpo del ciclo ; ; ; espressione3 è valutata ogni volta che viene eseguito il corpo del ciclo, dopo di questo e prima di rivalutare espressione2 Il ciclo termina quando espressione2 ha valore 0 espressione3 espressione2 11 12

Esempio uso ciclo for Esempio: iterazione definita espressione1 inizializza una variabile contatore espressione3 aggiorna il valore della variabile contatore espressione2 verifica se la variabile contatore ha raggiunto il valore finale Il corpo del ciclo viene così eseguito un numero di volte che è determinabile da espressione1, espressione2 ed espressione3 13 Stampa numeri da 1 a 100 int i ; for ( i = 1 ; i <= 100 ; i = i + 1 ) printf( %d, i ) ; equivale a int i ; i = 1; while ( i <= 100 ) { printf( %d, i ) ; i = i + 1; 14 Esempio: iterazione indefinita C: Ciclo do while Conta numeri interi positivi letti da input, la lettura termina quando viene letto il valore -1 int main( ) { int num, cont = 0 ; printf ("Inserire sequenza di interi positivi terminata con -1\n"); scanf ("%d", &num); while ( num!= -1 ) /* controllo valore sentinella */ { cont= cont + 1; scanf( "%d", &num ); /* modifica valore sentinella */ printf ("Numero di interi letti = %d\n", cont); return 0; do { ; ; ; while ( espressione ) Il corpo del ciclo ; ; ; èeseguitounaprima volta Se espressione ha valore diverso da 0, il corpo viene eseguito di nuovo, altrimenti si esce dal ciclo 15 16

C: Ciclo do while Esempio: calcolo del fattoriale espressione #include <stdioh> int main () { int n, i ; int p = 1; printf("inserire numero intero maggiore di zero: "); scanf("%d", &n); for ( i = 1 ; i <= n ; i = i+1) p =p* i; printf("\n%d! = %d\n", n, p); return 0; 17 18