La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Strutture di controllo in C -- Flow Chart --

Presentazioni simili


Presentazione sul tema: "Strutture di controllo in C -- Flow Chart --"— Transcript della presentazione:

1 Strutture di controllo in C -- Flow Chart --
Corso di Informatica A Vito Perrone

2 Indice Rappresentazione degli algoritmi tramite flow chart Istruzione
La parte dichiarativa L’ I/O Primi esempi … “che girano” Strutture di controllo in C Informatica A – V. Perrone

3 Codifica degli algoritmi
Algoritmo formulato per essere comunicato tra esseri umani sintetico e intuitivo codificato in linguaggi informali o semi-formali (linguaggio naturale, diagrammi di flusso, …) Algoritmo formulato per essere eseguito automaticamente preciso ed eseguibile codificato in linguaggi comprensibili dagli esecutori automatici (linguaggio macchina o linguaggio di programmazione di alto livello) Strutture di controllo in C Informatica A – V. Perrone

4 Algoritmo = dati + istruzioni
Obiettivo didattico: costruzione dei concetti 1)Testo audio: Prendendo come punto di riferimento le proprietà e le azioni elementari di un <a> algoritmo, si evince che per algoritmo si può intendere un procedimento che si applica ai <b> dati iniziali o dati di ingresso per ottenere <c> dei risultati o dati di uscita. <d freccia> <e> Quindi, un algoritmo è composto da <f> dati ed <g> istruzioni che operano sui dati. 2) Testo audio descritto: 3) Descrizione animazione: 4) Parola Chiave: dati e istruzioni 5) Area di appoggio: 6) Glossario: 7) Approfondimento: <d> <b> Dati Finali (soluzione) <a> Algoritmo <c> Dati Iniziali <e> <f> <g> Composto da Dati Istruzioni che operano sui dati Strutture di controllo in C Informatica A – V. Perrone SLIDE 02

5 Dati e istruzioni Tipi di dati Istruzioni
Numeri naturali o interi o reali (1, -2, 0.34) Caratteri alfanumerici (A, B, ..) Dati logici o booleani (Vero, Falso) Array o vettore di n elementi ({1,2,3}) Istruzioni Operazioni di Input/Output (es. leggi, scrivi) Operazioni Aritmetico-logiche (es. max = A + B) Strutture di controllo (es. SE, RIPETI ) Strutture di controllo in C Informatica A – V. Perrone

6 Criteri di classificazione dei dati
Obiettivo didattico: costruzione dei concetti 1)Testo audio: I dati sono gli elementi che consentono la comunicazione tra l’utente e l’esecutore. Essi possono essere classificati <a> considerando i seguenti diversi aspetti: il tipo di comunicazione, la variabilità nel tempo ed il tipo. <b> In base al parametro relativo alla comunicazione, i dati possono essere <c> visibili, di ingresso e uscita, oppure trasparenti all’utente. Sono trasparenti i dati che l’esecutore utilizza come supporto temporaneo e che consentono il raggiungimento della soluzione. <d> Analizzando la relazione tempo-valore di un dato, la suddivisione viene fatta in base alla sua possibilità di cambiare o meno valore nel tempo. Un dato si dice <e> costante se il suo valore è determinato e rimane invariato durante tutta l’elaborazione. Si dice <f> variabile se può essere visto come un contenitore in cui è possibile introdurre dei valori. <g> Il terzo aspetto è relativo ai tipi di dati che tipicamente sono disponibili; essi sono i tipi <h> elementari o semplici e i tipi strutturati. 2) Testo audio descritto: 3) Descrizione animazione: 4) Parola Chiave: dati 5) Area di appoggio: IMPORTANTE Consideriamo i dati variabili, vi sono due modi con cui è possibile introdurre un valore in una variabile: per acquisizione del valore dall’esterno (lettura) oppure per assegnazione durante lo svolgimento del processo. Esaminando il comportamento di un esecutore. Spesso, egli svolge operazioni riferendosi a risultati ottenuti da operazioni precedenti; l’assegnamento è l’istruzione che consente all’esecutore di trascrivere un dato o un risultato del calcolo in una variabile. 6) Glossario: 7) Approfondimento: Visibilità da parte dell’utente visibile (di ingresso o uscita) trasparente (dati temporanei di supporto) Variabilità nel tempo costanti variabili (acquisizione dall’esterno o assegnazione) Struttura elementari (interi, alfanumerici, booleani, …) strutturati (array, matrici, …) <a> <b> <c> Strutture di controllo in C Informatica A – V. Perrone SLIDE 08

7 Operazioni elementari
Operazioni aritmetiche e assegnamenti di valori a singole variabili Es. C  (A + B) Condizioni sul valore di singole variabili se (A > B) allora … altrimenti … Lettura e scrittura di variabili “Leggi A” oppure “Stampa B” Strutture di controllo in C Informatica A – V. Perrone

8 Rappresentazione degli Algoritmi
Obiettivo didattico: costruzione dei concetti 1)Testo audio: <a> Gli algoritmi devono essere rappresentati in un qualche linguaggio che permetta di specificare comandi in forma non-ambigua ed effettiva. Tra le possibili scelte abbiamo 4 alternative. <b> La rappresentazione in linguaggio naturale è una modalità di rappresentazione poco utilizzata a causa dell’elevato livello di ambiguità che può introdurre. <c> La rappresentazione tramite diagramma a blocchi è una modalità di rappresentazione particolarmente efficace per algoritmi semplici ma risulta difficile da leggere per algoritmi complessi <d> La rappresentazione in pseudo-codice è un linguaggio simile ad un linguaggio di programmazione. E’ una via di mezzo tra un linguaggio di programmazione e una rappresentazione in linguaggio naturale; sebbene sia molto espressivo presenta degli svantaggi dovuti allo scarso livello di standardizzazione. <e>La Rappresentazione in un linguaggio di programmazione, quali il Pascal o il "C”, è un modo di rappresentare un algoritmo che, grazie a programmi di traduzione, consente l’esecuzione direttamente su di un calcolatore. E’ generalmente caratterizzato da un potere espressivo limitato ed è appesantito da numerosi dettagli tecnici. A fini puramente esemplificativi faremo riferimento alla rappresentazione mediante diagrammi a blocchi o diagrammi di flusso, riportando solo un insieme ristretto degli elementi di rappresentazione previsti, e alla rappresentazione mediante pseudo-codice. 2) Testo audio descritto: 3) Descrizione animazione: nell’area esempi <f> si alternano le immagini della slide 06.2 in simultanea con la descrizione testuale (vedi lettere uncinate) 4) Parola Chiave: rappresentazione degli algoritmi 5) Area di appoggio: CURIOSITA’: Prima di partire per le campagne militari in Gallia ed in altre province dell'Impero i Centurioni Romani erano soliti interrogare la Sibilla Cumana su quella che sarebbe stata la loro sorte in battaglia ed a tutti essa rispondeva con la frase: “IBIS REDIBIS NON MOIERIS IN BELLO”, la cui traduzione, potendo in latino spostare il riferimento della negazione, poteva voler dire sia: "andrai, tornerai, non morirai in battaglia", sia anche all'opposto "andrai, non tornerai, morirai in battaglia". Questo è un tipico esempio di linguaggio naturale con un duplice significato e presenta una evidente ambigità. 6) Glossario: 7) Approfondimento: Rappresentazione degli Algoritmi <b> 1. Linguaggio naturale 2. Diagramma a blocchi 3. Pseudo codice 4. Linguaggio di programmazione <c> <f> <a> <d> <e> Strutture di controllo in C Informatica A – V. Perrone SLIDE 06.1

9 Rappresentare gli algoritmi
Inizio A, B A!=0 RisA/B Non si può calcolare il rapporto Ris Fine falso vero Ciao Mondo! oppure IBIS, REDIBIS NON MORIERIS IN BELLO <b> Es. 2 <c> Flow Chart Linguaggio naturale - Sollevare il ricevitore - Attendere il segnale di linea libera - Comporre il numero - … Pseudo codice Input A,B Tot  0 While A!=0 Do Tot  Tot + B A  A – 1 Output Tot Linguaggio programmazione #include <stdo.h> Int main (void){ puts(“ciao mondo!”); return Exit_success; } Es. 4 <d> Es. 3 <e> Input A, B Tot  0 While A != 0 do Tot  Tot + B A  A – 1 Output Tot /* Hello World in C, Ansi-style */ #include <stdio.h> int main(void) { puts("Hello World!"); return EXIT_SUCCESS; } Strutture di controllo in C Informatica A – V. Perrone SLIDE 06.2

10 Diagrammi di flusso Strutture di controllo in C
Informatica A – V. Perrone

11 Diagrammi di flusso Obiettivo didattico: costruzione dei concetti 1)Testo audio: I blocchi identificati vengono uniti fra loro utilizzando degli <a> archi orientati cioè delle linee terminate da una freccia. <b> L’arco identifica la sequenza delle operazioni, mentre <c> la freccia identifica la direzione del flusso delle elaborazioni. E’ rilevante sottolineare che <d> più linee possono convergere in un unico punto ma <e> che da un punto non possono divergere linee. 2) Testo audio descritto: 3) Descrizione animazione: <b mentre compare la scritta si colora su <a> la parte dell’arco identificata in rosso <a1> (non ne compare un’altra, deve solo illuminarsi quella sopra!!!!)> <c mentre compare la scritta si colora su <a> la parte dell’arco identificata in rosso <a2> (non ne compare un’altra, deve solo illuminarsi quella sopra!!!!)> 4) Parola Chiave: Diagramma a Blocchi 5) Area di appoggio: 6) Glossario: 7) Approfondimento: CONVERGENZA E DIVERGENZA DEGLI ARCHI ORIENTATI <a> I blocchi sono collegati fra loro da archi orientati. L’arco identifica la sequenza delle operazioni La freccia identifica il flusso della esecuzione <a> <b> <a1> <c> <a2> <e> <d> SI’ NO Strutture di controllo in C Informatica A – V. Perrone SLIDE 07.2

12 Esempio Esempio: dati in ingresso due numeri A e B, si calcoli e stampi il maggiore. Strutture di controllo in C Informatica A – V. Perrone

13 Le strutture di controllo

14 Selezione semplice Strutture di controllo in C
Informatica A – V. Perrone

15 Selezione a due vie Strutture di controllo in C
Informatica A – V. Perrone

16 Ciclo a condizione iniziale
Strutture di controllo in C Informatica A – V. Perrone

17 Ciclo a condizione finale
Strutture di controllo in C Informatica A – V. Perrone

18 Alcuni esempi di algoritmo

19 Esempio: il prodotto di due interi positivi
Leggi W Leggi Y Somma W a se stesso Y volte Scrivi risultato Strutture di controllo in C Informatica A – V. Perrone

20 Prodotto di due interi positivi
Leggi W Leggi Y SP = 0 NS = Y SP = SP + W NS = NS - 1 NS = 0? Se NO: torna a 5 Z = SP Scrivi Z Procedimento sequenziale Non ambiguo Formulazione generale Prevede tutti i casi (che succede se Y < 0?) Strutture di controllo in C Informatica A – V. Perrone

21 Strumenti per la descrizione degli algoritmi
Semi-formali (specifiche iniziali, ancora intelligibili solo all’essere umano) Formali (programmi da eseguire): linguaggi di programmazione Strutture di controllo in C Informatica A – V. Perrone

22 Linguaggi semi-formali
pseudo-codice: IF A>0 THEN A=A+1 ELSE A=0 diagrammi di flusso (flow chart, schemi a blocchi): PROCESS I/O START END DECISION SI NO Strutture di controllo in C Informatica A – V. Perrone

23 Calcolare e poi stampare la somma dei primi N numeri naturali
Esempio Start Leggi N S  0 I  1 Calcolare e poi stampare la somma dei primi N numeri naturali S  S+I I  I+1 I > N ? NO SI Scrivi S END Strutture di controllo in C Informatica A – V. Perrone

24 Esercizio L'esecutore deve leggere un intero N e restituire il fattoriale di questo numero, cioè il valore ottenuto da N x (N-1) x (N-2) x … x 1. Scrivere l’algoritmo immaginando che i dati di ingresso siano sempre corretti (cioè sempre maggiori di zero). Modificare l’algoritmo in modo da considerare anche la possibilità che siano inseriti valori inferiori a 1. Strutture di controllo in C Informatica A – V. Perrone

25 Diverse alternative (e.g. 7!)
1 * 2 = 2 2 * 3 = 6 6 * 4 = 24 24 * 5 = 120 120 * 6 = 720 720 * 7 = 5040 7 * 6 = 42 42 * 5 = 210 210 * 4 = 840 840 * 3 = 2520 2520 * 2 = 5040 Start Leggi N P  N N > 2 NO SI N  N - 1 P  P * N Scrivi P End Start Leggi N P  1 I  1 NO I < N SI Scrivi P I  I + 1 P  P * I End Strutture di controllo in C Informatica A – V. Perrone

26 “Tracciato” dell’esecuzione
Ipotizziamo di calcolare 4! Start T pos N I P note t1  ?? ?? ?? t2  4 ?? ?? t3  I < N t4  4 1 1 t5  I < N t6  4 2 2 t7  I < N t8  4 3 6 t9  I = N t10  t11  Leggi N Attenzione: il valore iniziale non è 0!! Può non esserci oppure esserci ma non essere noto. P  1 I  1 NO I < N SI Scrivi P I  I + 1 P  P * I End Strutture di controllo in C Informatica A – V. Perrone

27 Le alternative sono “diverse”?
Start Leggi N P  1 I  1 I < N NO SI I  I + 1 P  P * I Scrivi P End Start Leggi N P  N N > 2 NO SI N  N - 1 P  P * N Scrivi P End Cosa succede se il dato in ingresso non rispetta le specifiche (N > 0)? Per esempio, che risultato restituisce l’esecutore per N = 0 ? e per N = -4 ? N = 0  P = 1 N = -4  P = 1 N = 0  P = 0 N = -4  P = -4 Strutture di controllo in C Informatica A – V. Perrone

28 Come gestire le “eccezioni”
Start Leggi N P  1 I  1 I < N NO SI I  I + 1 P  P * I Scrivi P End Start Leggi N Start Leggi N P  1 I  1 I < N NO SI I  I + 1 P  P * I Scrivi P End N > 0 Scrivi “Errore!” P  1 I  1 I < N NO SI I  I + 1 P  P * I Scrivi P N > 0 NO SI Scrivi “Errore!” End Algoritmo per il caso “normale”. Come lo modifico per gestire anche i casi che non erano stati previsti? Strutture di controllo in C Informatica A – V. Perrone

29 Strutture di controllo in C -- Sintassi in C --
Corso di Informatica A Vito Perrone

30 Il ciclo while Contatore = 0; scanf (" %c", &Dato);
Testo[Contatore] = Dato; while (Dato != '%' && Contatore < LunghezzaMassima) { Contatore = Contatore + 1; } if (Contatore == LunghezzaMassima && Dato != '%') printf ("La sequenza è troppo lunga"); Strutture di controllo in C Informatica A – V. Perrone

31 Il ciclo do-while Contatore = 0; do { scanf (" %c", &Dato);
Testo[Contatore] = Dato; Contatore = Contatore + 1; } while (Dato != '%' && Contatore < LunghezzaMassima); if (Contatore == LunghezzaMassima && Dato != '%') printf ("La sequenza è troppo lunga"); Strutture di controllo in C Informatica A – V. Perrone

32 Istruzioni cicliche: il ciclo for
Invece di: VariabileDiConteggio = ValoreIniziale; while (VariabileDiConteggio <= ValoreFinale) { [Sequenza di istruzioni da ripetere]; VariabileDiConteggio = VariabileDiConteggio + 1; } Si può usare: for ( VariabileDiConteggio = ValoreIniziale; VariabileDiConteggio <= ValoreFinale; VariabileDiConteggio = Variabile di Conteggio + 1) Strutture di controllo in C Informatica A – V. Perrone

33 Il ciclo for (2) /* Programma InvertiSequenza */
#include <stdio.h> #define LunghezzaSequenza 100 void main () { int Contatore; int Memorizzazione[LunghezzaSequenza]; for (Contatore = 0; Contatore < LunghezzaSequenza; Contatore++) scanf ("%d", &Memorizzazione[Contatore]); for (Contatore = LunghezzaSequenza – 1; Contatore >= 0; Contatore––) printf ("%d", Memorizzazione[Contatore]); } Strutture di controllo in C Informatica A – V. Perrone

34 Il ciclo for (3) /* Programma ContaCaratteri */
#include <stdio.h> #define DimVettoreFrequenze 123 void main () { char Dato, Cursore; int FrequenzaCaratteri[DimVettoreFrequenze]; /* Inizializzazione dell'array di conteggio FrequenzaCaratteri. Vengono prese in considerazione solo le lettere dell'alfabeto, poiché il programma viene applicato a un testo costituito da parole */ for (Cursore = 'A'; Cursore <= 'Z'; Cursore++) FrequenzaCaratteri[Cursore] = 0; for (Cursore = 'a'; Cursore <= 'z'; Cursore++) scanf (" %c", &Dato); /* Inizia la lettura del testo */ Strutture di controllo in C Informatica A – V. Perrone

35 Il ciclo for (4) … /* Inizia la lettura del testo */
while (Dato != '#') { /* Se il dato letto è uno spazio esso deve essere semplicemente ignorato */ if (!(Dato == ' ')) /* Si verifica che il dato letto sia una lettera dell'alfabeto e non altro carattere non ammesso */ if (Dato < 'A' || Dato > 'z' || (Dato > 'Z' && Dato < 'a')) printf ("Il testo contiene dei caratteri non ammessi"); else FrequenzaCaratteri[Dato] = FrequenzaCaratteri[Dato] + 1; scanf (" %c", &Dato); } Strutture di controllo in C Informatica A – V. Perrone

36 Il ciclo for (5) … /* Stampa dei totali delle lettere maiuscole */
for (Cursore = 'A'; Cursore <= 'Z'; Cursore++) { printf ("Il numero di volte in cui il carattere %c compare nel testo è: %d\n", Cursore, FrequenzaCaratteri[Cursore]); } /* Stampa dei totali delle lettere minuscole */ for (Cursore = 'a'; Cursore <= 'z'; Cursore++) Strutture di controllo in C Informatica A – V. Perrone

37 Istruzioni di selezione: il costrutto switch (1)
switch (CarattereLetto) { case 'A': case 'G': case 'H': printf ("Il carattere letto è A o G o H\n"); break; case 'F' : printf ("Il carattere letto è F\n"); } Strutture di controllo in C Informatica A – V. Perrone

38 Il costrutto switch (2) switch (CarattereLetto) {
case 'A': case 'G': case 'H': printf ("Il carattere letto è A o G o H\n"); break; case 'F': printf ("Il carattere letto è F\n"); default: printf ("il carattere letto è sbagliato\n"); } Strutture di controllo in C Informatica A – V. Perrone

39 Il costrutto switch (3) switch (Dipendente.Qualifica) {
case CapoProgetto: Dipendente.Retribuzione = (Dipendente.Retribuzione * 11) / 10; break; case Venditore: Dipendente.Retribuzione = (Dipendente.Retribuzione * 12) / 10; case Segretario: Dipendente.Retribuzione = } Strutture di controllo in C Informatica A – V. Perrone

40 Il costrutto switch (4) … /* Programma Melodia dal tuo nome */ {
char C; int resto; printf ("Inserisci il primo carattere del tuo nome\n"); scanf (" %c", &C); while (C != '#') resto = C % 7; switch (resto) case 0: printf ("Il carattere %c corrisponde alla nota 'do'\n", C); break; case 1: printf ("Il carattere %c corrisponde alla nota 're'\n", C); break; case 6: printf ("Il carattere %c corrisponde alla nota 'si'\n", C); break; } printf ("Inserisci il prossimo carattere del tuo nome – # termina il programma"); Strutture di controllo in C Informatica A – V. Perrone

41 Le istruzioni break e continue (1)
/* Ciclo infinito */ while (true) { scanf ("%d%d", &x, &y); if (x == 0) /* Esce dal ciclo di lettura se x è uguale a 0 */ break; printf ("%f\n", x/y); } /* break provoca l'esecuzione dell'istruzione che segue questo commento */ Strutture di controllo in C Informatica A – V. Perrone

42 Le istruzioni break e continue (2)
/* Codice che elabora tutti i caratteri eccetto le lettere minuscole e maiuscole */ for (i = 0; i < NumDati; i++) { scanf (" %c", &Dato); if ((Dato >= 'A' && Dato <= 'Z') || (Dato >= 'a' && Dato <= 'z')) continue; /* Istruzioni che elaborano gli altri caratteri */ ... /* continue trasferisce qui il controllo perché possa iniziare la prossima iterazione del ciclo. È importante notare che i++ viene eseguita anche in questo caso */ } Strutture di controllo in C Informatica A – V. Perrone

43 L’istruzione goto scanf ("%d"%d", &x, &y); if (y == 0) goto error;
printf ("%f\n", x/y); ... error: printf ("y non può essere uguale a 0\n"); Strutture di controllo in C Informatica A – V. Perrone

44 Strutture di controllo in C -- Alcuni esercizi --
Corso di Informatica A Vito Perrone

45 Un metodo per scrivere programmi (Top-Down) 1/4
Esempio: Si leggano sequenze di gruppi di naturali; ciascun gruppo è separato dal successivo dal numero 0 L’ultimo gruppo è terminato da “-1” Si stampino in uscita sequenze di naturali che rappresentano le somme dei valori dei singoli gruppi Strutture di controllo in C Informatica A – V. Perrone

46 Un metodo per scrivere programmi (Top-Down) 2/4
Prima iterazione cerca gruppo; while (esiste un gruppo) { calcola sommatoria; stampa sommatoria; passa a prossimo gruppo; } Seconda iterazione int i; scanf(“%d”, &i); while (i != -1) { /*Esiste un gruppo*/ passa a prox. gruppo; Strutture di controllo in C Informatica A – V. Perrone

47 Un metodo per scrivere programmi (Top-Down) 3/4
Terza iterazione int i; int sum; scanf(“%d”, &i); while (i != -1) { /*Esiste un gruppo*/ sum=0; accumula sommatoria gruppo attuale printf (“%d \n”, sum); passa al prossimo gruppo; } Quarta iterazione scanf(“%d” , &i); while (i != -1) { while (i!=0 && i != -1) { /*Gruppo non finito: i!=0 && i != -1*/ sum = sum+i; /*accumula sommatoria gruppo attuale*/ scanf (“%d” , &i); printf (“%d \n” , sum); if (i!= -1) scanf (“%d” , &i); /* se i!=-1 passa al prossimo gruppo */ Strutture di controllo in C Informatica A – V. Perrone

48 Un metodo per scrivere programmi (Top-Down) 4/4
Generalizziamo il metodo: Il programma viene derivato per passi successivi di raffinamenti Viene scritto ad ogni passo in un misto di C e linguaggio naturale (pseudo-codice) Alla fine del processo di raffinamenti risulta scritto in C ed è eseguibile I passi scritti in linguaggio naturale e raffinati al passo successivo possono diventare commenti Strutture di controllo in C Informatica A – V. Perrone

49 While e conversione di tipo
#include <stdio.h> main() { /*legge un carattere e ne stampa il valore ASCII se è lettera minuscola; se no termina*/ char c; int i; printf(“scrivi un carattere minuscolo (maiuscolo per terminare)\n”); scanf (”%c”, &c); while (c>=’a’ && c<=’z’) { i=c; printf(“valore ASCII per %c risulta %d”, c, i); printf(“scrivi un carattere minuscolo (maiuscolo per terminare)\n”); } Strutture di controllo in C Informatica A – V. Perrone

50 Esercizio L'esecutore deve leggere un numero N indicato da un utente esterno e deve poi calcolare ed infine stampare la somma di tutti i numeri compresi tra 0 e N. Si presti attenzione al fatto che il numero indicato dall'utente può essere positivo, negativo e, al limite, anche uguale a zero. Per esempio, se il numero indicato dall'utente esterno fosse 5, il risultato generato dall'esecutore dovrebbe essere 15 (che corrisponde a ); se fosse invece -7, il risultato dovrebbe essere -28 (che corrisponde a (-1)+(-2)+(-3)+(-4)+(-5)+(-6)+(-7)). Strutture di controllo in C Informatica A – V. Perrone

51 Esercizio L'esecutore deve leggere una sequenza di numeri naturali (i.e. interi positivi strettamente maggiori di zero) e calcolarne (per poi stamparlo) il minimo. La sequenza si interrompe non appena viene introdotto un numero negativo oppure uguale a zero. Per esempio, data la sequenza 5, 1, 2, 3, 4, -5, il risultato dovrebbe essere: “Il valore minimo è 1”. Strutture di controllo in C Informatica A – V. Perrone

52 Esercizio L'esecutore deve leggere una sequenza di numeri naturali (i.e. interi positivi strettamente maggiori di zero) e calcolarne (per poi stamparli) il massimo, il minimo e la media di questa sequenza. La sequenza si interrompe non appena viene introdotto un numero negativo oppure uguale a zero. Per esempio, data la sequenza 5, 1, 2, 3, 4, -5, il risultato dovrebbe essere: “Il massimo è 5, il minimo è 1, la media è 3” Strutture di controllo in C Informatica A – V. Perrone

53 Esercizio L'esecutore deve leggere un numero N indicato da un utente esterno, questo numero indica la lunghezza della sequenza di numeri che vengono poi inseriti dallo stesso utente (per esempio, se un utente vuole inserire 20 numeri, prima indica il numero 20, poi specifica i 20 numeri che compongono la sua sequenza, in questo modo egli introdurrà 21 numeri). Di questi numeri, l'esecutore deve calcolare e poi stampare il massimo, il minimo e la media. Per esempio, data la sequenza 5, 1, 2, 3, 4, -5, il risultato dovrebbe essere: "massimo = 4, minimo = -5, media = 1" Strutture di controllo in C Informatica A – V. Perrone

54 Esercizio L'esecutore deve leggere un intero che rappresenta l'anno, e stampare la scritta “true” se l’anno in esame è bisestile la scritta “false” se l’anno non è bisestile. Si ricordi che un anno è bisestile se: è divisibile per 4 ma non per 100 oppure se è divisibile per 400. Per esempio 1900 e 2100 non sono anni bisestili, mentre 1996 e 2000 lo sono. Strutture di controllo in C Informatica A – V. Perrone

55 Esercizio L'esecutore deve leggere tre numeri interi che rappresentano una data in termini di giorno, mese e anno, e deve stampare il numero di giorni trascorsi dall'inizio dell'anno. Scrivere l’algoritmo immaginando che i dati di ingresso siano sempre corretti. Strutture di controllo in C Informatica A – V. Perrone


Scaricare ppt "Strutture di controllo in C -- Flow Chart --"

Presentazioni simili


Annunci Google