Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
I DATI
LE ISTRUZIONI
LE STRUTTURE FONDAMENTALI
ALGORITMO FINE
1
Indice
• Le strutture di controllo
• L’algoritmo
• Le strutture fondamentali
• Il programma
– Sequenza
• I dati
– Selezione
• Le istruzioni
• Azioni di tipo logico
– Output
– Iterazione con controllo in
– Input coda
– Assegnazione • Le strutture non primitive
• Variabili/Costanti – Iterazione con controllo in t
• Operazioni di calcolo esta
• Organizzazione delle istru – Iterazione enumerativa
zioni
– Scelta multipla
• Programmazione strutturat
a • Soluzione esercizi
ALGORITMO 2
L’ALGORITMO
Informalmente, un algoritmo è una procedura ben definita che
serve per risolvere un dato problema
E’ una sequenza di passi che prende dei valori come input e
produce altri valori come output
Più precisamente, un algoritmo è un procedimento di calcolo ,
descrivibile con un numero finito di operazioni che conducono al
risultato
ALGORITMO 3
Etimologia del termine algoritmo
ALGORITMO 4
Diffusione degli algoritmi
Le tecniche di progettazione di algoritmi e di analisi di
correttezza e di efficienza si sono evolute nella seconda metà
del XX secolo grazie alla diffusione dei calcolatori elettronici
Ovunque si impieghi un calcolatore occorrono algoritmi
corretti e efficienti che ne utilizzino al massimo le possibilità
Esempi di algoritmi efficienti: controllo dei voli aerei
• regolazione reattori nucleari
• reperimento d’informazioni da archivi
• smistamento di comunicazioni telefoniche
• gioco degli scacchi
• controllo della produzione di una catena di montaggio
ALGORITMO 5
IL PROGRAMMA
Gli algoritmi sono astratti e per controllarne il funzionamento
devono essere realizzati con un qualche strumento concreto
• Ad esempio la descrizione di una ricetta di cucina è un algoritmo ma la preparazione della pietanza
è la realizzazione della ricetta.
E’ solo allora che si vede se la ricetta “funziona”
• Altro esempio può essere rappresentato da una qualsiasi formula matematica, che rappresenta, nel
linguaggio matematico un procedimento. Ma la bontà di tale regola può essere verificata solo con
dei veri e propri calcoli, sostituendo alle variabili dei veri numeri.
ALGORITMO 6
L’algoritmo e il programma
Ogni linguaggio di programmazione ha una sua sintassi ed una
propria rappresentazioni dei dati, e utilizza le proprie operazioni
di manipolazione dei dati
Invece:
Le proprietà degli algoritmi sono talmente fondamentali, generali e
robuste, da essere indipendenti dalle caratteristiche di specifici
linguaggi di programmazione o di particolari calcolatori elettronici
Quindi:
PER RISOLVERE UN PROBLEMA E’ ASSOLUTAMENTE
NECESSARIO TROVARE UN PROCEDIMENTO RISOLUTIVO
DESCRIVIBILE CON UN ALGORITMO, E SOLO DOPO SI
PUO’ PASSARE A SCRIVERE IL PROGRAMMA
ALGORITMO 7
PROGRAMMA = ISTRUZIONI + DATI
Un programma può essere visto come un manipolatore di dati:
a fronte di dati in ingresso che descrivono il problema
producono dati in uscita come risultato del problema
INPUT OUTPUT
(dati) (dati)
PROCESSO
(istruzioni)
ALGORITMO 8
I DATI
I dati possono essere distinti in base a :
INPUT
• Utilizzo all’interno del processo OUTPUT
LAVORO
INTERO
• Formato NUMERICO
DECIMALE
ALFANUMERICO
ALGORITMO 9
LE ISTRUZIONI
Anche le istruzioni devono essere scritte rispettando la
sintassi propria del linguaggio di programmazione
Ogni linguaggio di programmazione ha le proprie istruzioni, ma
tutti i linguaggi devono possedere alcune istruzioni per compiere
le azioni fondamentali
Acquisire i dati su cui attivare il processo di elaborazione input
• Comunicare all’esterno i risultati ottenuti output
Azioni di tipo aritmetico assegnazione
- assegnare un valore ad una variabile
- utilizzare gli operatori aritmetici (+, -, /, *, %)
Azioni di tipo logico confronto
- Utilizzare gli operatori di relazione( =, <, >, <=, >=, <>) per
confrontare il contenuto di due variabili
- Utilizzare gli operatori logici (and, or, not)
ALGORITMO 10
ISTRUZIONI DI OUTPUT
Sono le istruzioni che visualizzano dati e messaggi a video
Esempio: scrivere un programma che manda un messaggio a video
INIZIO
#include <iostream>
Scrivi “ciao! Sono il using namespace std;
computer” int main( )
{
FINE cout<<"\nciao! Sono il computer”;
system("PAUSE");
}
Nell’algoritmo il comando di output è scrivi seguito dal messaggio o dal dato
che si deve far vedere a video
In linguaggio C++ l’istruzione è cout<<
Il messaggio deve essere inserito tra virgolette
ESERCIZIO : messaggio
Codifica un programma che manda a video il seguente messaggio: soluzione
“Ciao! Io sono il Computer! Benvenuto nel mio mondo!”
ALGORITMO 11
ISTRUZIONI DI INPUT
Sono le istruzioni che acquisiscono dati digitati da tastiera
Esempio: scrivere un programma che legge un numero e le riscrive a video
Nell’algoritmo il comando di input è leggi seguito dal dato che si deve acquisire
ALGORITMO 12
Esempio di esecuzione di input e di output
#include <iostream>
using namespace std; ram
int main()
1 { int numero; numero
2 7
cout<<"\nindica un numero"<<endl;
3
cin>>numero;
4
cout<<"\nil numero indicato vale :“;
5 cout<<numero<<endl;
system("PAUSE");
Programma caricato in memoria
}
per essere eseguito
ALGORITMO 13
OUTPUT DI DATI
Nell’esempio precedente abbiamo visto l’output di un dato numerico:
cout<<numero<<endl;
A differenza dell’output dei messaggi, il dato non deve essere
inserito tra virgolette
A video viene mostrato il valore del dato, e non il nome
scrivi altezza
FINE
ESERCIZIO : ALTEZZA soluzione
Codifica il programma indicato nell’algoritmo
ALGORITMO 14
ISTRUZIONI DI ASSEGNAZIONE
L’istruzione di assegnazione è quella che assegna un
valore ad un dato
Esempio: definire una variabile detta lato int lato;
ed assegnare a tale variabile il valore 9 lato = 9;
ALGORITMO 16
Esempio di operazioni di calcolo
INIZIO Acquisire due numeri e mostrare il risultato della loro somma
ALGORITMO 17
Output concatenato
Dall’esempio precedente abbiamo visto che è possibile
concatenare più output con una stessa istruzione
ESERCIZIO : OPERAZIONI
Acquisire due numeri e mostrare il risultato delle quattro operazioni soluzione
ALGORITMO 18
Operatore modulo
L’operatore modulo calcola il resto della divisione tra interi
Ad esempio: 7%3=1
6%4=2
6%3=0
ALGORITMO 19
Esempio di utilizzo di operatore modulo
Dati due numeri interi, calcolare quoziente e resto
INIZIO
nome I/O V/C N/A descrizione
N1 I V N dividendo
scrivi “indica il primo valore” intero
N2 I V N divisore
leggi N1 intero
quoziente O V N Numero ottenuto dalla divisione di N1 e
scrivi “indica il secondo valore” intero N2
resto O V N Resto ottenuto dalla divisione di N1 e
leggi N2 intero N2
quoziente N1 / N2
resto N1 % N2
FINE
ESERCIZIO : QUOZIENTE E RESTO
codificare l’algoritmo scritto per calcolare soluzione
quoziente e resto di due numeri interi
ALGORITMO 20
ASSEGNAZIONE TRAMITE
OPERATORI UNARI
Gli operatori aritmetici unari sono quelli che richiedono
un solo operando.
Nel linguaggio C++ sono:
ALGORITMO 21
Esempio di assegnazione con operatori
unari
Acquisire un numero e mostrare il successivo
INIZIO
#include <iostream>
using namespace std;
scrivi “indica un numero”
int main()
leggi numero { int numero;
cout<<"\nindica un numero :";
numero++ cin>>numero;
numero++;
scrivi “il valore successivo è :
“ numero cout<<"\nil valore successivo e':"<<numero<<endl;
system("PAUSE");
FINE }
ALGORITMO 22
ORGANIZZAZIONE DELLE ISTRUZIONI
ALGORITMO 23
PROGRAMMAZIONE STRUTTURATA
Teorema di Jacopini Böhm (1966)
Qualunque algoritmo può essere implementato
utilizzando le tre sole strutture di controllo:
• sequenza
• selezione
• iterazione
SEQUENZA
• PRIMITIVE
SELEZIONE (o scelta logica)
necessarie e sufficienti per
ITERAZIONE con il controllo in coda
risolvere qualsiasi algoritmo
(teorema di Bohm-Jacopini)
ITERAZIONE con controllo in testa
• NON PRIMITIVE ITERAZIONE ENUMERATIVA
derivate da quelle primitive SCELTA (o selezione) MULTIPLA
ALGORITMO 25
LA SEQUENZA
pseudocodifica
E’ un insieme di azioni da Flow chart
ALGORITMO 26
Esempio di istruzioni in sequenza
PROBLEMA: dato il prezzo di un prodotto e lo sconto effettuato, calcolare
INIZIO e comunicare il prezzo scontato
ALGORITMO 27
Alcune osservazioni sulle tecniche per
descrivere l’algoritmo
INIZIO
ALGORITMO 29
LA SELEZIONE (scelta logica )
Con questa struttura si seleziona in modo esclusivo una determinata
sequenza/blocco di istruzioni da eseguire sulla base di una
<condizione> rappresentata da una espressione booleana , che può
essere vera o falsa
Flow chart pseudocodifica
Nel diagramma a blocchi compaiono Nella pseudocodifica, se la condizione
due possibili percorsi in base al è vera si esegue il primo blocco di
verificarsi o meno di una condizione. istruzioni , se è falsa, si esegue il
Se la condizione è vera si segue il secondo blocco di istruzioni
ramo del SI, se è falsa, il ramo del NO. se (condizione)
{
NO SI blocco_istruzioni_1
COND }
altrimenti
{
blocco_istruzioni_2
}
ALGORITMO 30
Esempio di struttura di selezione
ALGORITMO 31
AZIONI DI TIPO LOGICO
Si dice enunciato una proposizione che può essere soltanto
vera o falsa
Un enunciato può essere vero o falso, ma non entrambe le cose
La verità o la falsità di un enunciato sono dette valori di verità e tali
valori corrispondono agli unici due valori dell’algebra booleana
Vero Falso rappresentati anche con 1 0;
• ROMA è composta da 4 lettere vero
ESEMPI DI ENUNCIATI:
• 7>3 vero
• 7 > 12 falso
• A > B dipende dal valore assunto dalle variabili A e
B
NON E’ UN ENUNCIATO forse pioverà non è né vero né falso
ALGORITMO 33
Sintassi della struttura di Selezione
if (condizione)
In C++ la struttura di selezione si
istruzione1;
codifica così else
istruzione2 ;
Se sono presenti più istruzioni in ciascun ramo
if (condizione)
{ istruzione1;
istruzione2; RICORDA:
…. Le istruzioni che fanno parte della sequenza
} sono racchiuse tra le parentesi graffe.
else
{ istruzione...;
…
}
ALGORITMO 34
Esempio Istruzione di Selezione a due vie
PROBLEMA: dato un numero si comunichi se il numero è pari o
dispari istruzione precedente
#include <iostream>
INIZIO istruzione if-else
using namespace std;
int main() istruzione successiva
Leggi a { int a;
F V cin >> a; // leggi numero da terminale
a %2=0
if ((a % 2) = = 0)
Scrivi Scrivi { cout << “il numero e’ pari”;
“il numero è dispari”
“il numero è pari” }
else
{ cout << “il numero e’
dispari”;
FINE }
system("PAUSE");
}
ESERCIZIO: NUMERO POSITIVO
acquisire un numero e comunicare se è positivo o negativo soluzione
ALGORITMO 35
LA SELEZIONE A UNA VIA
Sinora abbiamo esaminato casi in cui in base alla condizione si
potevano eseguire due diverse azioni alternativamente.
In alcuni casi invece è possibile scegliere di compiere o non
compiere un’azione; in tal caso l’azione da eseguire deve essere
posta sul ramo del SI.
In questo caso la codifica in C++ è:
La clausola else
if (condizione) (altrimenti) in NO SI
istruzione1; queste situazioni COND
o nel caso di più istruzioni: non viene
codificata
if (condizione)
{
istruzione1;
istruzione2;
………….;
}
ALGORITMO 36
Esempio Istruzione di Selezione a una via
PROBLEMA: dato un numero intero si comunichi il valore della radice
quadrata del suo valore assoluto
istruzione precedente
INIZIO #include <iostream>
istruzione if
using namespace std;
int main()
Leggi a istruzioni
{ int a; float b;
successive
F V cin >> a; // leggi numero da terminale
a >0 if (a < 0 )
{
a = abs(a); a = abs(a); // calcola valore
assoluto di a
}
b = abs(a); b = sqrt(a);
cout << “Radice quadrata: “ << b;
Scrivi b
system("PAUSE");
}
ESERCIZIO: VOTI
FINE acquisire 3 voti, calcolare e comunicare la media; se la media è soluzione
insufficiente, comunicare “devi fare i corsi di recupero”
ALGORITMO 37
Strutture di Controllo if-else Nidificati
Istruzione Precedente
A volte si possono usare
istruzioni di selezione ( a Vera Falsa
una o a due vie) nidificate , Condizione
ossia le istruzioni da I1
eseguire al verificarsi della Vera Falsa
Condizione
condizione sono a loro
volta istruzioni I2
condizionali Vera
Condizione
Falsa
ALGORITMO 38
Esercizi proposti sulla selezione
• Dati 2 voti, calcolare la media ; se la media è sufficiente ,
comunicare “alunno promosso” altrimenti comunicare “alunno
rimandato”
• Volendo fare la spesa , si ha a disposizione una certa cifra iniziale.
Conoscendo l’importo da spendere, verificare se la spesa è
possibile
• Dati tre numeri, stabilire se possono essere le misure dei lati di un
triangolo rettangolo.
• Viene fornito in input il punteggio di un candidato ad un concorso.
Se tale punteggio è compreso tra 0 e 27, visualizzare RESPINTO,
tra 28 e 40 visualizzare AMMESSO, in tutti gli altri casi
ERRORE.
ALGORITMO 39
ITERAZIONE CON CONTROLLO IN CODA
( do…while )
Per iterazione si intende la ripetizione di una o più azioni sotto
il controllo di una condizione.
Il gruppo di azioni da ripetere è detto corpo del ciclo
Nell’iterazione con il controllo in coda, la Istruzione Precedente
condizione da verificare si trova dopo il corpo del
ciclo
Corpo
Il corpo del ciclo verrà eseguito almeno una
volta.
In C++, il ciclo che si ripete mentre la Vera
condizione è vera; quando la condizione è falsa Condizione
il ciclo si interrompe, quindi è necessario che Falsa
all’interno del corpo vi sia una istruzione che Istruzione Successiva
modifichi il valore della condizione, altrimenti
il ciclo “va in loop”
ALGORITMO 40
Esecuzione di un ciclo do..while
Questa struttura può essere utilizzata per il “controllo dei dati in input”
ALGORITMO 42
RICORDA:
Quando si fa riferimento ad una condizione (sia nella scelta che
nell’iterazione) si intende che è possibile utilizzare anche
condizioni composte. In C++
Si ottengono condizioni composte AND prodotto logico &&
legando due o più condizioni con OR somma logica ||
gli operatori logici: NOT negazione !
ESERCIZIO: BENVENUTO
Acquisire il nome di una persona e il sesso (tramite lettera ‘m’ o ‘f’) e soluzione
scrivere come messaggio: “Buongiorno, signor … “ oppure “Buongiorno
signora ….. “ seguito da nome
ALGORITMO 43
Esercizi proposti sulla iterazione con
controllo in coda
• Dato in input un numero positivo (NUM>0), visualizzarne l’inverso
(INV=1/NUM), il doppio (DOP=2*NUM), il quadrato
(QUAD=NUM*NUM).
ALGORITMO 44
STRUTTURE NON PRIMITIVE
• ITERAZIONE ENUMERATIVA
ALGORITMO 45
ITERAZIONE CON CONTROLLO IN
Codifica in C++ TESTA ( while …)
while (cond)
{ istruzione La caratteristica di N
1; questa iterazione è COND
istruzione2; che la condizione da s
} verificare si trova
prima delle azioni da istruzione1
eseguire (corpo).
istruzione2
Affinchè il ciclo while, nel caso la condizione sia stata inizialmente trovata vera,
abbia la possibilità di terminare è necessario che all’interno del corpo vi sia
una istruzione che modifichi il valore della condizione
ALGORITMO 46
Esecuzione di un ciclo while
ESERCIZIO: Leggi ripetutamente un numero in ingresso e
calcolane la radice quadrata fino a quando il numero letto è > 0 Memoria RAM
i
int i;
cout << “Dammi il primo num.”; 09
xxx
25
cin >> i;
while ( i > 0 )
{ cout << sqrt(i) << endl;
cout << “Dammi un altro num.“; schermo
cin >> i;
Dammi il primo num. 25
} //corpo del ciclo
5
cout << “Fine”;
Dammi un altro num. 9
3
Dammi un altro num. 0
Fine
Anche la struttura while…, consente di
eseguire ripetutamente il corpo del ciclo
anche per un numero di volte indeterminato
ALGORITMO 47
Esempio di iterazione con controllo in testa
ESERCIZIO: Visualizzazione dei primi 10
multipli di 5 num=5
Codifica in C++:
cont=1
num=5; cont=1;
Condizione di N fine ciclo
cont10
while (cont<=10) inizio ciclo
(mentre cont10)
{ s
ris=num*cont
ALGORITMO 48
ITERAZIONE ENUMERATIVA (for)
Ha questo nome poiché si tratta di un’iterazione in cui si
conosce quante volte il ciclo viene ripetuto.
ALGORITMO 49
Esempio di iterazione enumerativa
ESERCIZIO: Visualizzazione dei primi 10 multipli di
di 5 (contatore sulla variabile cont) num=5
Codifica in C++:
inizializzazione cont=1
num=5;
for
cont10
(cont=1;cont<=10;cont++)
{ controllo
s
ris=num*cont; ris=num*cont
cout<<ris;
}
scrivi ris
incremento cont=cont+1
ALGORITMO 50
Codifica in C++ dell’ iterazione
enumerativa
for ( espressione1; espressione2 ; espressione3 )
istruzione;
L’istruzione for è composta da tre espressioni separate dal ‘;’ la prima è di
inizializzazione, la seconda di controllo, la terza di incremento.
ALGORITMO 51
Quando si equivalgono while / for
Esempio di equivalenza strutture iterative while e for per iterazioni
controllate da contatore in C++:
float lato, area; float lato, area;
int i; int i;
for (i=0; i<3; i++) { i=0;
cout << “Lato ? ” << endl; while (i<3) {
cin >> lato; cout << “Lato ? ”
area=lato*lato; << endl;
cout << “Area: “ << area << endl; cin >> lato;
} area=lato*lato;
cout << “Fine”; cout << “Area: “
<< area
<< endl;
i++;
}
cout << “Fine”;
ALGORITMO 52
Esercizi proposti sulla iterazione enumerativa
ALGORITMO 53
SCELTA MULTIPLA
Nella scelta logica
• si sceglie di compiere o non
compiere un’azione
• si sceglie di compiere, in modo
esclusivo, una tra due azioni
Nella realtà capita di dover
compiere, in modo esclusivo,
una tra più azioni
ALGORITMO 54
Esempio di scelta multipla
Esempio tipico di scelta multipla è quello di un programma che
permette all’utente, attraverso un menù iniziale, di scegliere tra
le funzioni offerte.
• Tale situazione è risolvibile
mediante una serie di scelte
logiche
• Molti linguaggi di
programmazione, tra cui il C++,
agevolano il programmatore
mettendo a disposizione la scelta
multipla
ALGORITMO 55
Rappresentazione della scelta multipla nel
diagramma a blocchi
X: variabile di cui va analizzato il contenuto
1 default Default racchiude tutti i valori diversi da
X quelli previsti
2 3 4
Valori che si prevede possa assumere X
(1, 2, 3, 4)
ALGORITMO 56
Sintassi della selezione multipla in C++
in C++ la Selezione Multipla è rappresentata dalla istruzione switch-case
switch (variabile){
case <costante1>: <sequenza di istruzioni1>; break;
case <costante2>: <sequenza di istruzioni2>; break;
....
case <costanten>: <sequenza di istruzionin>; break;
default : <sequenza di istruzioni>; break;
}
• le espressioni costanti costante1, costante2, ..., costanten devono essere di tipo intero
• In C++ i caratteri sono assimilati agli interi (ne viene considerata la codifica interna in
ASCII)
• l’istruzione break serve per terminare lo switch dopo aver eseguito solo la sequenza
associata ad una particolare scelta (case) e proseguire con l’istruzione successiva allo
switch-case;
• nel costrutto può comparire la clausola default per individuare la sequenza di operazioni
da compiere quando il valore esaminato non coincide con alcuno di quelli specificati
ALGORITMO 57
Semplice esempio di switch-case in C++
ESERCIZIO: dato un numero intero, visualizza il nome del
giorno della settimana corrispondente
main()
{
int num;
cout <<"Dammi un giorno (numero): ";
cin >> num ;
switch (num)
{
case 1: cout<<“ Lunedi” ; break;
case 2: cout<<“ Martedi” ; break;
case 3: cout<<“Mercoledi“ ; break;
case 4: cout<<“Giovedi“ ; break;
case 5: cout<<“Venerdi“ ; break;
case 6: cout<<“Sabato“ ; break;
case 7: cout<<“Domenica“ ; break;
default : cout<<“Giorno Inesistente“ ;
break;
}
}
ALGORITMO 58
Esercizio sulla selezione multipla
SEMPICE CALCOLATRICE
Scrivere un programma che, acquisiti due interi positivi, visualizzi un menù
che consenta di scegliere quale operazione aritmetica eseguire.
ANALISI
Si acquisiscono due interi , con il controllo che siano positivi
Si ripetono le seguenti istruzioni, finchè l’utente non indica espressamente che
vuole terminare
• si presenta a video un menu di scelta tra le 4 operazioni: 1- addizione, 2-
sottrazione, 3-moltiplicazione, 4-divisione.
Con la scelta 5 si esce dall’iterazione
• Si acquisisce la scelta e si esegue l’operazione richiesta mostrando a video il
risultato.
• In caso di scelta diversa da 1,2,3,4, 5 si manda un messaggio d’errore.
ALGORITMO 59
Esercizio : semplice calcolatrice
#include <iostream.h>
#include <conio.h>
ALGORITMO 60
Esercizio : semplice calcolatrice
(prosegue soluzione)
// Utilizzo della scelta multipla
switch (scelta)
{
case ‘1’: {ris=num1+num2; cout<<“\nIl risultato è “<<ris; break; }
case ‘2’: {ris=num1-num2; cout<<“\nIl risultato è “<<ris; break; }
case ‘3’: {ris=num1*num2; cout<<“\nIl risultato è “<<ris; break; }
case ‘4’: {ris=num1/num2; cout<<“\nIl risultato è “<<ris; break; }
case ‘5’: break;
default : cout<<“\nScelta errata”;
}
cout<<“\nIl risultato è “<<ris;
} while (scelta !=‘5’);
cout<<“\nCiao!”;
}
ALGORITMO 61
Esercizi proposti sulla selezione multipla
• Prevedere un programma che visualizzi un menù con tutte le materie
scolastiche. Scelta una particolare materia, dovrà comparire il nome
dell’insegnante.
• Assegnazione dei premi ad un’estrazione.
Viene generato un intero casuale compreso tra 1 e 4 con i seguenti
abbinamenti:
1 vincita di un Personal Computer
2 vincita di una telecamera
3 vincita di un videoregistratore
4 vincita di una macchina fotografica
• Dato un numero compreso tra 1 e 12, indicare il nome del mese
corrispondente
ALGORITMO 62
Soluzione esercizi
• Messaggio
• Altezza
• Operazioni
• Quoziente e resto
• Età dei figli
• Prezzo
• Numero positivo
• Voti
• Numero positivo o nullo
• benvenuto
ALGORITMO 63
Esercizio : Messaggio
ESERCIZIO : messaggio
Codifica un programma che manda a video il seguente messaggio:
“Ciao! Io sono il Computer! Benvenuto nel mio mondo!”
#include <iostream>
using namespace std;
int main( )
{
cout<<"\nCiao! Sono il computer!Benvenuto nel mio mondo!”;
system("PAUSE");
}
ALGORITMO 64
Esercizio: altezza
ESERCIZIO : ALTEZZA
ALGORITMO 65
Esercizio: Operazioni
ESERCIZIO : OPERAZIONI
#include <iostream> Acquisire due numeri e mostrare il risultato delle quattro operazioni
using namespace std;
int main()
{
float n1, n2, ris;
cout<<"\nindica il primo operando :"; cin>>n1;
cout<<"\nindica il secondo operando :"; cin>>n2;
ris=n1+n2; cout<<"\nla loro somma vale : "<<ris;
ris=n1-n2; cout<<"\nla loro differenza vale : "<<ris;
ris=n1*n2; cout<<"\nil loro prodotto vale : "<<ris;
ris=n1/n2; cout<<"\nil loro rapporto vale : "<<ris<<endl;
system("PAUSE");
}
Teoria Elenco esercizi
ALGORITMO 66
Esercizio: quoziente e resto
#include <iostream>
using namespace std; ESERCIZIO : QUOZIENTE E RESTO
codificare l’algoritmo scritto per calcolare
int main() quoziente e resto di due numeri interi
{
int n1, n2;
float quoziente, resto;
quoziente = n1/n2;
resto = n1% n2;
cout<<"\nil quoziente e': "<<quoziente <<" e il resto e' "<<resto;
system("PAUSE");
}
ALGORITMO 67
Esercizio: età dei figli
ESERCIZIO : ETA’ DEI FIGLI
#include <iostream>
using namespace std; Una mamma ha tre figli, nati in anni consecutivi.
int main() Data in input l’età del terzo figlio, comunicare l’età degli altri due
{
int eta;
cout<<"\nindica l'eta' del terzo figlio :"; cin>>eta;
eta++;
cout<<"\nil secondo figlio ha "<<eta<<" anni "<<endl;
eta++;
cout<<"\nil primo figlio ha "<<eta<<" anni "<<endl;
system("PAUSE");
}
ALGORITMO 68
Esercizio: prezzo
PROBLEMA: dato il prezzo di un prodotto e lo
#include <iostream>
sconto effettuato, calcolare e comunicare il
using namespace std;
prezzo scontato
int main()
{
float prezzo, sconto, c;
cout<<"\nindica il prezzo : ";
cin>>prezzo;
cout<<"\nindica lo sconto : ";
cin>>sconto;
c = prezzo - sconto;
cout<<"\nil prtezzo scontato e' : "<<c<<endl;
system("PAUSE");
} Teoria Elenco esercizi
ALGORITMO 69
Esercizio: numero positivo
#include <iostream>
using namespace std; ESERCIZIO: NUMERO POSITIVO
acquisire un numero e comunicare se è positivo o negativo
int main()
{
int numero;
cout<<"\nindica un numero : ";
cin>>numero;
if(numero >0)
cout<<"\nil numero "<<numero<<" e' positvo"<<endl;
else
cout<<"\nil numero "<<numero<<" e' negativo o nullo"<<endl;
system("PAUSE");
}
Teoria Elenco esercizi
ALGORITMO 70
Esercizio: voti
#include <iostream> ESERCIZIO: VOTI
using namespace std; acquisire 3 voti, calcolare e comunicare la media; se la media è
int main() insufficiente, comunicare “devi fare i corsi di recupero”
{
int voto1, voto2, voto3, somma;
float media;
cout<<"\nindica il primo voto : "; cin>>voto1;
cout<<"\nindica il secondo voto : "; cin>>voto2;
cout<<"\nindica il terzo voto : "; cin>>voto3;
somma = voto1+voto2+voto3;
media = (float) somma / 3;
cout<<"\nla media dei voti e' "<<media<<endl;
if(media <6)
cout<<"\ndevi fare i corsi di recupero"<<endl;
system("PAUSE"); Teoria Elenco esercizi
}
ALGORITMO 71
Esercizio: numero positivo o nullo
ESERCIZIO: NUMERO POSITIVO O NULLO
#include <iostream> acquisire un numero e comunicare se è positivo ,negativo o nullo
using namespace std;
int main()
{
int numero;
cout<<"\nindica un numero : "; cin>>numero;
if(numero >0)
cout<<"\nil numero "<<numero<<" e' positvo"<<endl;
else
if(numero <0)
cout<<"\nil numero "<<numero<<" e' negativo "<<endl;
else
cout<<"\nil numero "<<numero<<" e' nullo "<<endl;
system("PAUSE");
Teoria Elenco esercizi
}
ALGORITMO 72
#include <iostream> Esercizio: benvenuto
using namespace std;
ESERCIZIO: BENVENUTO
int main() Acquisire il nome di una persona e il sesso (tramite lettera ‘m’ o ‘f’) e
{ scrivere come messaggio: “Buongiorno, signor … “ oppure “Buongiorno
string nome; signora ….. “ seguito da nome
char sesso;
cout<<"\nindica il nome : "; cin>>nome;
do
{
cout<<"\nindica il sesso : "; cin>>sesso;
if (sesso != 'm' and sesso != 'f')
cout<<"\nvalore errato: indicare 's' o 'm'"<<endl;
}
while (sesso != 'm' and sesso != 'f');
if (sesso =='m')
cout<<"\nBuongiorno, signor "<<nome<<endl;
else
cout<<"\nBuongiorno, signora "<<nome<<endl;
system("PAUSE"); Teoria Elenco esercizi
}
ALGORITMO 73