Cicli. Ci sono almeno tre modi diversi per costruire un ciclo in C e occorre utilizzare quello che meglio si adatta alle esigenze del problema che si.

Slides:



Advertisements
Presentazioni simili
Introduzione al linguaggio C++
Advertisements

Corso di Fondamenti di Programmazione canale E-O
LINGUAGGIO DI PROGRAMMAZIONE C
Introduzione al linguaggio C
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F2 Selezione.
Iterazione A. Ferrari.
Stringhe di caratteri In linguaggio C.
Rappresentazioni dei numeri non interi A. Ferrari.
Introduzione alla programmazione A. Ferrari. Il linguaggio C Nel 1972 Dennis Ritchie nei Bell Laboratories progettò il linguaggio C Il linguaggio possiede.
Selezione - approfondimento
PHP.
I DATI I PRINCIPALI TIPI DI DATO UTILIZZATI IN PROGRAMMAZIONE
Algoritmi e Programmazione
Fondamenti di Informatica CDL in Ingegneria Meccanica - A.A CDL in Ingegneria Meccanica - A.A Tipi di dati Ing. Simona Colucci.
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A Tipi di dati Ing. Simona Colucci.
Introduzione al linguaggio C
INFORMATICA Strutture iterative
Programmazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++
Indirizzi delle variabili A ogni variabile sono associati tre concetti fondamentali: il valore memorizzato; il tipo dati di appartenenza; lindirizzo. Il.
FUNZIONI DI BIBLIOTECA
Caratteri e stringhe di caratteri
Iterazione enumerativa (for)
Funzioni definite dall’utente
Tipi di dato e controllo del flusso Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dellInformazione Università di Siena Via Roma 56 – – SIENA.
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Assegnamento di valore a una variabile Anno Accademico 2009/2010.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
1 Corso di Informatica (Programmazione) Lezione 11 (19 novembre 2008) Programmazione in Java: controllo del flusso (iterazione)
Introduzione agli stream e alle classi
Dichiarazioni e tipi predefiniti nel linguaggio C
Fondamenti di Informatica A - Massimo Bertozzi TIPI DI DATO IN C++ What's in a name? That which we call a rose By any other name would smell as sweet.
I File.
Il Linguaggio C.
Le funzioni.
Espressioni condizionali
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Java base I: Sintassi e tipi di dati
Programmazione in Java
RAPPRESENTAZIONE DELL'INFORMAZIONE
CODIFICA Da flow-chart a C++.
In molti casi è utile assegnare a degli identificatori dei valori che restino costanti durante tutto il programma e che non possano essere cambiati nemmeno.
Il linguaggio C Le funzioni C Language Il passaggio dei parametri
Tipi di dati elementari
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
1 Corso di Informatica (Programmazione) Lezione 8 (7 novembre 2008) Programmazione in Java: operatori aritmetici, operatori di assegnamento e cast.
R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting.
Vettori (a una dimensione)
Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode.
Parte 3 Lo stato: variabili, espressioni ed assegnazioni
Corso di Algoritmi e Strutture Dati APPUNTI SUL LINGUAGGIO C
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (II) Istruzioni e strutture di controllo.
1 Fabio Scotti – Università degli Studi di Milano Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( )
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Operatori di incremento e decremento
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Rappresentazione dell'informazione
La codifica dei numeri.
FI - Algoritmi e Programmazione 1 Variabili Consentono di aumentare notevolmente la potenza espressiva. Una variabile è caratterizzata da:  Un nome 
Esercizi.
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (III)
Cloud informatica V anno. Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting.
Rappresentazione dei numeri
Il C `e un linguaggio di programmazione di uso generale, originariamente sviluppato per la scrittura del sistema operativo Unix, ed oggi disponibile su.
Conio.h contiene la dichiarazione di funzioni usate per richiamare alcune routine DOS di gestione del video e della tastiera. NECESSARIA PER system(‘’cls’’)
Lezione 2 : Basi del linguaggio Variabili. Come visto nella lezione 1 le classi registrano il proprio stato nelle variabili  int cadenza = 0;  int velocita.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Numeri con segno ed in virgola Marco D. Santambrogio – Ver. aggiornata al 20 Marzo.
Basi di Java Strutture base di Java. Basi di java ▪Variabili ▪Operatori ▪Condizioni e Cicli ▪Array.
Appunti su formati numerici. Tipi numerici Il C dispone di due tipi numerici: tipi interi e tipi reali; I tipi reali sono anche detti floating, ovvero.
Transcript della presentazione:

Cicli

Ci sono almeno tre modi diversi per costruire un ciclo in C e occorre utilizzare quello che meglio si adatta alle esigenze del problema che si vuole risolvere. while (espressione) istruzione; do istruzione; while (espressione); Il ciclo do...while corrisponde al ciclo repeat...until del Pascal. Cicli for (variabile di controllo= espressione iniziale; condizione di ciclo; legge di incremento) istruzione; I cicli possono essere uno dentro l’altro (nidificazione). L’esecuzione di un break interrompe il ciclo più interno ma non gli altri.

esegue l’istruzione finché il valore della condizione è true ( vera ), appena quel valore diventa false ( falso ) esce dal ciclo. Esempio - Calcola il fattoriale di n #include main () { int i,n,fatto; printf("Calcolo del fattoriale di un numero utilizzando il ciclo WHILE \n\n\n"); printf("Inserire un numero per calcolare il fattoriale "); scanf("%d", &n); printf(" \n "); /*ISTRUZIONE PER LASCIARE UNA RIGA VUOTA NELLA FINESTRA DEL PROGRAMMA*/ i=1; fatto=1; while ( i<=n ) { fatto=fatto*i; i=i+1; } printf(" il fattoriale di %d ",n); printf(" risulta essere %d ",fatto); printf(" \n\n\n");/*ISTRUZIONE PER LASCIARE UNA RIGA VUOTA NELLA FINESTRA DEL PROGRAMMA*/ system("PAUSE"); return 0; } Ciclo While while (condizione) istruzione;

Il ciclo do...while corrisponde al ciclo repeat...until del Pascal. Ripete le istruzioni finché il valore della condizione è true. Poiché l’istruzione viene eseguita prima della valutazione della espressione, il ciclo viene eseguito almeno una volta. Esempio – Calcolo del fattoriale con do..while #include #include main () { int i,n,fatto; printf("Calcolo del fattoriale di un numero utilizzando il ciclo DO.. WHILE \n\n\n"); printf("Inserire un numero per calcolare il fattoriale "); scanf("%d", &n); printf(" \n "); /*ISTRUZIONE PER LASCIARE UNA RIGA VUOTA NELLA FINESTRA DEL PROGRAMMA*/ i=1; do { fatto=fatto*i; i=i+1; } while ( i<=n ) ; printf(" il fattoriale di %d ",n); printf(" risulta essere %d ",fatto); printf(" \n\n\n");/*ISTRUZIONE PER LASCIARE UNA RIGA VUOTA NELLA FINESTRA DEL PROGRAMMA*/ system("PAUSE"); return 0; } do istruzione; while (condizione);

In C e C++ il ciclo for è molto flessibile. - Può semplicemente eseguire le istruzioni all’interno del ciclo al variare della variabile di controllo tra un valore iniziale ed un valore finale - può eseguirle fino a che non si verifica una condizione di uscita (NOT(condizione di ciclo)). - il valore iniziale ed il valore finale sono variabili interi, -devono soddisfare le condizioni seguenti: valore iniziale > valore finale se la variabile di controllo decresce nel ciclo al contrario se deve crescere. -E’ obbligatorio specificare l’incremento della variabile di controllo. for (variabile di controllo=espressione iniziale; condizione di ciclo; legge di incremento) istruzione; Esempio – Calcolo del fattoriale con for( ) #include main () { int i,n,fatto; printf("Calcolo del fattoriale di un numero utilizzando il ciclo FOR \n\n\n"); printf("Inserire un numero per calcolare il fattoriale "); scanf("%d", &n); printf(" \n "); /*ISTRUZIONE PER LASCIARE UNA RIGA VUOTA NELLA FINESTRA DEL PROGRAMMA*/ for (i=1;i<=n;i++) { fatto=fatto*i; } printf(" il fattoriale di %d ",n); printf(" risulta essere %d ",fatto); printf(" \n\n\n");/*ISTRUZIONE PER LASCIARE UNA RIGA VUOTA NELLA FINESTRA DEL PROGRAMMA*/ system("PAUSE"); return 0; }

int Il tipo int serve a rappresentare l’insieme dei numeri interi, per intenderci “senza virgola”, positivi e negativi (1, 2, 43, -89, 4324). Storicamente i compilatori rappresentavano gli interi con 16bit (valori compresi tra e ) questo perché gli indirizzamenti erano a 16bit, ma attualmente quasi ovunque troviamo gli interi codificati da 32bit (valori compresi tra e ), in alcuni casi si sta passando anche agli interi da 64bit. Ad arricchire la varietà di tipi numerici interi, troviamo i qualificatori unsigned, short e long, (“senza segno”, “corto” e “lungo”) che modificano alcune caratteristiche dei tipi fondamentali, char e int. float e double – i numeri in virgola mobile I valori in virgola mobile sono utilizzati per rappresentare i numeri reali (quindi anche decimali e numeri molto grandi). Questi numeri sono rappresentati da una parte intera ed una parte frazionale. I numeri in virgola mobile richiedono una maggiore precisione rispetto agli interi e sono quindi normalmente rappresentati da 32 bit. Il loro intervallo varia, perciò, tra 3,4 x e 3,4 x (con 7 cifre significative). I valori double in virgola mobile sono valori molto estesi che normalmente occupano 64 bit (o 8 byte) e possono avere, quindi, un valore compreso fra ! 1,7 x e 1,7 x (con 15 cifre significative). I valori long double sono ancora più precisi e normalmente occupano 80 bit (o 10 byte). Il loro valore è compreso fra ! 1,18 x e 1,18 x (con ben 19 cifre significative). La base dell’esponente può variare a seconda del compilatore e della macchina fisica (il microprocessore) che eseguirà il codice.

L'aritmetica modulare detta aritmetica dell'orologio poiché su tale principio si basa il calcolo delle ore a cicli di 12 o 24 rappresenta un importante ramo della matematica L’orologio di Gauss Circa duecento anni fa, K.F.Gauss introdusse i concetti base dell’aritmetica modulare. Se la lancetta delle ore di un orologio punta sulle due: 12 ore dopo, la lancetta punta sempre sulle 2 (abbiamo fatto un giro completo). Quindi aggiungere 12 non cambia niente al numero delle ore: = 2. I matematici, per indicare che stanno contando le ore su un orologio a 12 ore, scrivono: = 2 ( mod 12) oppure ≡ 2( mod 12 ) (da ora in poi useremo questa seconda notazione). Anzi, se facciamo un numero qualsiasi, n, di giri, la lancetta punterà sempre sulle 2: n ≡ 2(mod 12) Invece 14 ore dopo la lancetta punterà sulle 4: Strano però perchè: = 16 e non 4?! In realtà non è cosi strano perchè: = 2 + (2 + 12) = (2 + 2) + 12 = = 4 (mod 12) 47 = = 11 ( mod12)

Nell'elaboratore, oltre che di aritmetica finita, si parla anche di aritmetica modulare in cui i numeri interi «si avvolgono su se stessi» e si possono rappresentare su una circonferenza anziché sulla usuale retta infinita. Notiamo infatti che se si dedicano sedici bit alla rappresentazione dei valori interi si ha un intervallo di valori compreso tra e ma, al di fuori di esso non c'è il «vuoto» in quanto, essendo i valori disposti su una circonferenza, dopo il valore si troverà il valore , poi e così via. Aumentando il numero di bit a disposizione si amplia ovviamente l'intervallo dei valori rappresentabili: con trentadue bit (valori interi per il linguaggio c) si va da a ; rimane però valido il concetto di disposizione «circolare» di tali valori.

Nella storia dell'informatica c'è stato un periodo in cui ogni grande azienda proponeva il suo metodo di rappresentazione dei valori reali in virgola mobile senza curarsi dei problemi di compatibilità dei dati. Per porre fine alla proliferazione dei formati di rappresentazione fu proposto uno standard dallo IEEE (Institute of Electrical and Electronics Engineers) denominato IEEE 754 o Standard for Binary Floating-Point Arithmetic. Lo standard definisce tre formati: singola precisione (single precision) con utilizzo di 32 bit; doppia precisione (double precision) con utilizzo di 64 bit; precisione estesa (extended precision) con utilizzo di 80 bit. La precisione estesa è comunque usata solo internamente alle unità di calcolo FPU (Floating Point Unit) e non viene messa a disposizione per la definizione dei dati da parte dei linguaggi di programmazione. In tutti e tre i formati le informazioni che vengono gestite per memorizzare i valori reali sono: segno del numero; mantissa del numero; caratteristica del numero.

Dichiarazione di variabili Il C++ richiede tassativamente che ogni variabile prima di essere utilizzata dal programma venga preventivamente dichiarata. La dichiarazione avviene semplicemente indicando il tipo dell’identificatore in oggetto seguito da uno o più identificatori di variabile, separati da una virgola e seguiti dal punto e virgola al termine della dichiarazione stessa. Per esempio per definire le variabili a e b di tipo float basta indicare: float a,b; Oppure per le variabili c e d di tipo int : int c,d; È importante sottolineare il fatto che una variabile può essere dichiarata soltanto una volta e di un solo tipo all’interno dell’intervallo di azione della variabile stessa. È possibile inizializzare una variabile, cioè assegnare alla stessa un valore contemporaneamente alla sua dichiarazione; ad esempio è consentita la dichiarazione: float a, b = 4.6; char ch = 't'; che corrisponde a scrivere: cioè ad a non verrebbe per il momento assegnato alcun valore mentre b avrebbe inizialmente il valore 4,6 e ch avrebbe il carattere ‘ t’

Alcuni comandi in C \n Newline posiziona il cursore all’inizio della riga successiva \t Tabulazione orizzontale Muove il cursore alla tabulazione successiva \a Allarme Fa suonare il cicalino del sistema \\ Blackslash Inserisce un carattere blackslah in una stringa %d serve a scrivere un numero intero come decimale all’interno di un printf %05d in printf scrive il numero su 5 spazi quelli non occupati dal numero vengono occupati da 0. Ad esempio printf(‘’ numero 1 %05d «,89) il programma restituisce %5.2f in printf scrive il numero su un massimo di 5 spazi per la parte intera (senza riempire con 0 come nel comando precedente quelli vuoti ) con 2 cifre decimali dopo la virgola. Ad esempio printf( ‘’ float %5.5f.’’,3,14) in C lo scrive