1 strutture di controllo in c -- flow chart -- corso di informatica a vito perrone
TRANSCRIPT
1
Strutture di controllo in C -- Flow Chart --
Strutture di controllo in C -- Flow Chart --
Corso di Informatica A
Vito Perrone
2Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
Indice Indice
•Rappresentazione degli algoritmi tramite flow chart
•Istruzione
•La parte dichiarativa
•L’ I/O
•Primi esempi … “che girano”
3Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
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)
4Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
Algoritmo = dati + istruzioni
Composto da
DatiIniziali
DatiFinali
(soluzione)
Algoritmo
Dati Istruzioni che operano sui dati
5Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
Dati e istruzioni
• Tipi di dati– 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 )
6Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
Criteri di classificazione dei dati
• 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, …)
7Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
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”
8Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
Rappresentazione degli Algoritmi
• 1. Linguaggio naturale
• 2. Diagramma a blocchi
• 3. Pseudo codice
• 4. Linguaggio di programmazione
9Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
Rappresentare gli algoritmi
Linguaggio naturale- Sollevare il ricevitore- Attendere il segnale di linea libera- Comporre il numero- …
Pseudo codiceInput 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;
}
Flow Chart
Sì
Passo P1
Inizio
Lettura a e b
c a – b
c> 0? No
Scrittura “max è a”
Scrittura “max è b”
Passo P2
Fine
Passo P0
10Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
Diagrammi di flusso
11Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
Diagrammi di flusso
I blocchi sono collegati fra loro da archi orientati.
– L’arco identifica la sequenza delle operazioni
– La freccia identifica il flusso della esecuzione
SI’ NO
12Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
Esempio
Sì
Passo P1
Inizio
Lettura a e b
c a – b
c> 0? No
Scrittura “max è a”
Scrittura “max è b”
Passo P2
Fine
Passo P0 Esempio: dati in
ingresso due numeri A e B, si calcoli e stampi il maggiore.
13
Le strutture di controllo
Le strutture di controllo
14Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
Selezione semplice
No
Sì test
…
blocco istruzioni
…
15Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
Selezione a due vie
No Sì test
…
blocco 1
…
blocco 2
16Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
Ciclo a condizione iniziale
Sì test
…
No blocco istruzioni
…
17Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
Ciclo a condizione
finale
No
Sì test
blocco istruzioni
…
…
18
Alcuni esempi di algoritmo
Alcuni esempi di algoritmo
19Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
Esempio: il prodotto di due interi positivi
• Leggi W
• Leggi Y
• Somma W a se stesso Y volte
• Scrivi risultato
20Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
Prodotto di due interi positivi
1 Leggi W2 Leggi Y3 SP = 04 NS = Y5 SP = SP + W6 NS = NS - 17 NS = 0?
Se NO: torna a 58 Z = SP9 Scrivi Z
• Procedimento sequenziale
• Non ambiguo
• Formulazione generale
• Prevede tutti i casi
(che succede se Y < 0?)
21Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
Strumenti per la descrizionedegli algoritmi
• Semi-formali (specifiche iniziali, ancora intelligibili solo all’essere umano)
• Formali (programmi da eseguire):
linguaggi di programmazione
22Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
Linguaggi semi-formali
• pseudo-codice:– IF A>0 THEN A=A+1 ELSE A=0
• diagrammi di flusso(flow chart, schemi a blocchi):
START
END
PROCESS I/O
DECISIONSI NO
23Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
Esempio Start
Leggi N
S 0I 1
S S+II I+1
Scrivi S
END
I > N ?NOSI
Calcolare e poi stampare la somma dei
primi N numeri naturali
24Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
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.
25Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
Start
Leggi N
P 1I 1
I < NNO SI
I I + 1P P * I
Scrivi P
End
Diverse alternative (e.g. 7!)1 * 2 = 22 * 3 = 66 * 4 = 24
24 * 5 = 120120 * 6 = 720720 * 7 = 5040
7 * 6 = 4242 * 5 = 210
210 * 4 = 840840 * 3 = 2520
2520 * 2 = 5040Start
Leggi N
P N
N > 2NO SI
N N - 1P P * N
Scrivi P
End
26Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
T pos N I P notet1 ?? ?? ??t2 4 ?? ??t3 4 1 1 I <
Nt4 4 1 1t5 4 2 2 I <
Nt6 4 2 2t7 4 3 6 I <
Nt8 4 3 6t9 4 4 24 I =
Nt10 4 4 24t11 4 4 24
“Tracciato” dell’esecuzioneIpotizziamo di calcolare
4!Start
Leggi N
P 1I 1
I < NNO SI
I I + 1P P * I
Scrivi P
End
Attenzione: il valore iniziale non è 0!!Può non esserci oppure esserci ma non essere noto.
27Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
Start
Leggi N
P 1I 1
I < NNO SI
I I + 1P P * I
Scrivi P
End
Le alternative sono “diverse”?Start
Leggi N
P N
N > 2NO SI
N N - 1P 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 = 1N = 0 P = 0N = -4 P = -4
28Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
N > 0NO SI
Scrivi“Errore!”
End
P 1I 1
I < NNO SI
I I + 1P P * I
Scrivi P
Start
Leggi N
Start
Leggi N
P 1I 1
I < NNO SI
I I + 1P P * I
Scrivi P
End
Come gestire le “eccezioni”
Start
Leggi N
P 1I 1
I < NNO SI
I I + 1P P * I
Scrivi P
End
N > 0NO SI
Scrivi“Errore!”
Algoritmo per il caso “normale”.Come lo modifico per gestire anchei casi che non erano stati previsti?
29
Strutture di controllo in C -- Sintassi in C --
Strutture di controllo in C -- Sintassi in C --
Corso di Informatica A
Vito Perrone
30Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
Il ciclo while
Contatore = 0; scanf (" %c", &Dato); Testo[Contatore] = Dato;while (Dato != '%' && Contatore < LunghezzaMassima) {
Contatore = Contatore + 1; scanf (" %c", &Dato); Testo[Contatore] = Dato;
}if (Contatore == LunghezzaMassima && Dato != '%')
printf ("La sequenza è troppo lunga");
31Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
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");
Il ciclo do-while
32Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
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)
{[Sequenza di istruzioni da ripetere];
}
33Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
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]); }
34Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
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++)
FrequenzaCaratteri[Cursore] = 0; scanf (" %c", &Dato);
/* Inizia la lettura del testo */…
35Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
… /* 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'alfabetoe 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); }…
Il ciclo for (4)
36Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
…/* 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++) {
printf ("Il numero di volte in cui il carattere %c comparenel testo è: %d\n", Cursore,
FrequenzaCaratteri[Cursore]);}
}
Il ciclo for (5)
37Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
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");
break;}
38Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
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");
break;
default: printf ("il carattere letto è sbagliato\n");
break;
}
Il costrutto switch (2)
39Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
switch (Dipendente.Qualifica){
case CapoProgetto: Dipendente.Retribuzione =
(Dipendente.Retribuzione * 11) / 10;break;
case Venditore: Dipendente.Retribuzione =
(Dipendente.Retribuzione * 12) / 10;break;
case Segretario: Dipendente.Retribuzione =
(Dipendente.Retribuzione * 12) / 10;break;
}
Il costrutto switch (3)
40Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
… /* 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");scanf (" %c", &C);
}}
Il costrutto switch (4)
41Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
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 */
42Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
/* 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 */ }
Le istruzioni break e continue (2)
43Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
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");
44
Strutture di controllo in C -- Alcuni esercizi --
Strutture di controllo in C -- Alcuni esercizi --
Corso di Informatica A
Vito Perrone
45Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
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
46Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
Un metodo per scrivere programmi (Top-Down) 2/4Prima iterazionecerca gruppo;while (esiste un gruppo) {
calcola sommatoria;stampa sommatoria;passa a prossimo gruppo;
}
Seconda iterazioneint i;scanf(“%d”, &i);while (i != -1) { /*Esiste un gruppo*/
calcola sommatoria;stampa sommatoria;passa a prox. gruppo;
}
47Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
Un metodo per scrivere programmi (Top-Down) 3/4Terza iterazioneint i; int sum;scanf(“%d”, &i);while (i != -1) { /*Esiste un gruppo*/
sum=0;accumula sommatoria gruppo attualeprintf (“%d \n”, sum);passa al prossimo gruppo;
}
Quarta iterazioneint i; int sum;scanf(“%d” , &i);while (i != -1) {
sum=0;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 */
}
48Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
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
49Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
While e conversione di tipo
#include <stdio.h>main() {/*legge un carattere e ne stampa il valore ASCIIse è 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 (maiuscoloper terminare)\n”);scanf (”%c”, &c);
}}
50Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
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 0+1+2+3+4+5); se fosse invece -7, il risultato dovrebbe essere -28 (che corrisponde a (-1)+(-2)+(-3)+(-4)+(-5)+(-6)+(-7)).
51Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
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”.
52Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
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”
53Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
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"
54Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
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.
55Strutture di controllo in CInformatica A – V. PerroneCopyright © 2004 - The McGraw-Hill
Companies, srl
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.