Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoAdamo Alessi Modificato 9 anni fa
1
Informatica B Allievi Elettrici - AA 2000-01 Fondamenti della programmazione in linguaggio C (III)
2
Anche i cicli si possono annidare #include main() { int n, m, i, j; printf(“Inserisci n:”); scanf (“%d”,&n); /*input */ printf(“Inserisci m:”); scanf (“%d”,&m); /*input */ for(i=1; i<=n; i++) for(j=1; j<=m; j++) printf(“i:%d j: %d \n”, i, j); } Esercizio: provare a vedere cosa si visualizza per n=4 ed m=3.
3
Salti break: serve a saltare alla prima istruzione fuori dal ciclo (non si ritorna più nel ciclo). continue: serve a saltare le istruzioni che restano del blocco del ciclo e a ritornare a una nuova iterazione. exit: serve a saltare fuori dal programma e ritorna il controllo al sistema operativo (fa parte della libreria standard del C stdlib.h).
4
Uso del break (pessimo!!!) #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--) /* exp2 in questo caso è vuota:*/ /* equivale a true */ {if (m<1) break; fatt = fatt * (m-1);} printf(“\Il fattoriale di %d è:%d\n”,n,fatt); } N.B. : nel caso di cicli annidati l’istruzione break provoca l’uscita solo dal ciclo più interno!!!
5
Ancora sulla dichiarazione dei dati: le costanti const int modelloauto = 156; const float pigreco = 3.14159265; –si inizializza in fase di dichiarazione –non si può modificare nel corso del programma –non provoca allocazione di memoria N.B.: Esiste un altro modo di definire un valore una volta per tutte: la direttiva define
6
Sostituzione di macro: #define PIGRECO 3.14159265 –è una delle direttive al precompilatore –non si può modificare (ma si può annullare) nel corso del programma –non provoca allocazione di memoria –non viene terminata dal punto e virgola (non è una istruzione C!) #define VERO 1 #define FALSO 0 printf(“%d %d %d”, FALSO,VERO,VERO+1); visualizza: 0 1 2 –si possono costruire macro a partire da altre macro: #define UNO 1 #define DUE UNO+UNO
7
Altre direttive al precompilatore Abbiamo già visto: #include serve a richiamare librerie (comanda al preprocessore di leggere anche da un altro file sorgente) Altre direttive frequentemente usate: #undef VERO serve a rimuovere il nome della macro (da questo punto in poi la costante VERO non è più definita) #error ATTENZIONE DIVISIONE PER 0 serve a visualizzare messaggi di errore (il messaggio non è racchiuso tra doppi apici)
8
Dichiarazione dei dati: altri tipi semplici Diversi tipi di intero: si possono aggiungere dei qualificatori: –long, short si possono aggiungere a int o a double –unsigned si aggiunge a int o a char Variabili enumerative: enum PAPERO {QUI,QUO,QUA}; enum mese{gennaio,febbraio,marzo,aprile, maggio,giugno,luglio,agosto,settembre, ottobre,novembre,dicembre};
9
Dichiarazione dei dati: dati complessi o strutturati Array: vettore di elementi indicizzati, omogenei, memorizzati in modo contiguo: int A[20]; (A e’ un array di 20 elementi di tipo Int)
10
Esempi sugli array Inizializzazione: for(i=0;i<=19;i++) A[i] = 0; oppure: for(i=0;i<=19;i++) {printf(“inser.intero:\n”); scanf(“%d”,&A[i]);} Ricerca del massimo: max = A[0]; for(i=1;i<=19;i++) if (A[i] > max) max = A[i]; Calcolo della media: media= A[0]; for(i=1;i<=19;i++) media = media + A[i]; media = media/20; Nota: In C l’indice inferiore dei vettori e’ sempre 0 !!!
11
Esempi sugli array Massimo, minimo e media: max= A[0]; min= A[0]; media= A[0]; for(i=1;i<=19;i++) {media = media + A[i]; if (A[i] > max) max = A[i]; if (A[i] < min) min = A[i]} media = media/20;
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.