Visualizza le soluzioni proposte

Alcune soluzioni ai problemi proposti
nella scheda del prof.Fabrizio Caruso.
1 - Visualizzare una scritta sullo schermo.
Possibili soluzioni proposte dal prof. Nicola Masarone.
Diagramma di flusso
Codifica in C++
inizio
#include <iostream>
using namespace std;
visualizza
“ciao”
fine
int main() {
cout << "ciao";
return 0;
}
2 - Inserire due valori interi distinti e visualizzarne sullo schermo la somma.
Diagramma di flusso
Codifica in C++
inizio
inserisci
A
inserisci
B
V
#include <iostream>
using namespace std;
int main() {
int A, B, Somma;
cin >> A;
A=B
do{ cin >> B; }
while(A == B);
F
Somma = A + B;
Somma ← A + B
cout << Somma;
visualizza
Somma
fine
return 0;
}
3 - Inserire due valori interi distinti e visualizzare sullo schermo il più grande.
Diagramma di flusso
Codifica in C++
inizio
inserisci
A
#include <iostream>
using namespace std;
inserisci
B
V
int main() {
int A, B;
cin >> A;
A=B
do{ cin >> B; }
while(A == B);
F
V
A>B
visualizza
A
F
if(A>B)
{cout << A;}
else
{cout << B;}
visualizza
B
return 0;
}
fine
4 - Inserire due valori interi distinti. Visualizzare il più piccolo e il più grande tra i
valori inseriti.
Diagramma di flusso
Codifica in C++
inizio
#include <iostream>
using namespace std;
inserisci
A
int main() {
int A, B;
inserisci
B
cin >> A;
V
A=B
do{ cin >> B; }
while(A == B);
F
V
A>B
visualizza
B, A
if(A>B)
{cout << B << "," << A;}
else
{cout << A << "," << B;}
return 0;
F
visualizza
A, B
}
fine
5 - Inserire un numero intero N. Stabilire se il numero inserito è pari o dispari.
Diagramma di flusso
inizio
#include <iostream>
using namespace std;
inserisci
N
V
N%2 = 0
visualizza
“pari”
Codifica in C++
int main() {
int N;
cin >> N;
F
if(N%2 == 0)
{cout << "pari";}
else
{cout << "dispari";}
visualizza
“dispari”
return 0;
}
fine
6 - Inserire tre valori distinti. Visualizzare il più piccolo e il più grande tra i valori
inseriti.
Diagramma di flusso
inizio
Codifica in C++
inserisci
A
inserisci
B
V
A=B
F
inserisci
C
V
continua nella
pagina
successiva ...
#include <iostream>
using namespace std;
int main() {
int A, B, C;
cin >> A;
do{ cin >> B; }
while(A==B);
do{ cin >> C; }
while(C==A || C==B);
C=A OR C=B
F
continua nella
pagina
successiva ...
… continua dalla
pagina precedente
… continua dalla
pagina precedente
V
V
B>C
V
vis.
C,A
vis.
B,A
A>B
F
A>C
F
V
F
A>C
vis.
C,B
V
F
B>C
vis.
A,B
vis.
B,C
F
vis.
A,C
if(A>B) { if(B>C) { cout << C << "," << A; }
else { if(A>C) { cout << B << "," << A; }
else { cout << B << "," << C; }
}
}
else { if(A>C) { cout << C << "," << B; }
else{ if(B>C) { cout << A << "," << B; }
else {cout << A << "," << C;}
}
}
fine
return 0;
}
7 - Inserire tre valori interi positivi corrispondenti alle misure dei lati di un triangolo.
Stabilire di che tipo di triangolo si tratta (equilatero, scaleno o isoscele)
Diagramma di flusso
inizio
inserisci
A
V A <= 0
F
inserisci
B
V
Codifica in C++
#include <iostream>
using namespace std;
int main() {
int A, B, C;
do{cin >> A;}
while(A<=0);
do{cin >> B;}
while(B<=0);
do{cin >> C;}
while(C<=0);
B <= 0
F
inserisci
C
continua nella
pagina
successiva ...
V
C <= 0
F
continua nella
pagina
successiva ...
… continua dalla
pagina precedente
V
V
… continua dalla
pagina precedente
A=B
F
F
B=C
V
vis.
“equil.”
if(A==B){ if(B==C) {cout << "equilatero";}
else {cout << "isoscele";}
}
else { if(B==C) {cout << "isoscele";}
else { if(A==C){cout << "isoscele";}
else {cout << "scaleno";}
}
}
vis.
“isosc.”
B=C
V
F
A=C
F
vis.
“isosc.”
vis.
“isosc.”
fine
vis.
“scal.”
return 0;
}
8 -Visualizzare la somma di n valori interi inseriti con la tastiera.
Diagramma di flusso
Codifica in C++
inizio
inserisci N
int main() {
int N, V, S;
S←0
N>0
#include <iostream>
using namespace std;
cin >> N;
S = 0;
F
V
while(N>0)
{
cin >> V;
S = S + V;
N = N -1;
}
inserisci V
S←S+V
N←N-1
cout << S;
return 0;
visualizza S
fine
}
9 - Inserire n valori interi con la tastiera e visualizzare sullo schermo la somma di
tutti i valori inseriti compresi tra 0 e 100.
Diagramma di flusso
Codifica in C++
inizio
#include <iostream>
using namespace std;
inserisci N
S←0
int main() {
int N, V, S;
F
N>0
cin >> N;
S = 0;
V
inserisci V
N←N-1
while(N>0)
{
cin >> V;
if(V>0 && V<100)
{
S = S + V;
}
N = N -1;
}
visualizza S
cout << S;
return 0;
V>0 AND V<100
F
V
S←S+V
}
fine
10 - Inserire n valori interi. Visualizzare sullo schermo il più piccolo e il più grande.
Diagramma di flusso
Codifica in C++
inizio
inserisci N
inserisci V
#include <iostream>
using namespace std;
int main() {
int N, V, MIN, MAX;
cin >> N;
MAX ← V
cin >> V;
MIN = V;
MIN ← V
MAX = V;
N = N - 1;
N←N-1
continua nella
pagina
successiva ...
continua nella
pagina
successiva ...
… continua dalla
pagina precedente
F
… continua dalla
pagina precedente
N>0
while(N > 0)
{
cin >> V;
V
inserisci V
N = N - 1;
N←N-1
V
V>MAX
F
V
MAX ← V
if(V > MAX)
{
MAX = V;
}
else
{
if(V < MIN)
{
MIN = V;
}
}
V<MIN
F
MIN ← V
}
cout << MIN << "," << MAX;
return 0;
vis. MIN, MAX
fine
}
11 - Inserire un valore intero positivo n. Visualizzare sullo schermo i valori interi da
1 a n. (Es.: Con n=5 sullo schermo dovrà apparire la sequenza: 1 2 3 4 5)
Diagramma di flusso
inizio
inserisci N
Codifica in C++
#include <iostream>
using namespace std;
int main() {
int N, C;
C←0
cin >> N;
C<N
F
C = 0;
V
while(C<N)
{
C = C + 1;
C←C+1
cout << C << endl;
visualizza C
}
return 0;
}
fine
12 - Inserire un valore intero positivo n. Visualizzare sullo schermo n volte il valore
inserito. (Es.: Con n=7 sullo schermo dovrà apparire la sequenza: 7 7 7 7 7 7 7)
Diagramma di flusso
inizio
inserisci N
Codifica in C++
#include <iostream>
using namespace std;
int main() {
int N, C;
C←0
cin >> N;
C<N
F
C = 0;
V
while(C<N)
{
C = C + 1;
C←C+1
cout << N << endl;
visualizza N
}
return 0;
}
fine
13 - Inserire un valore intero positivo n. Visualizzare sullo schermo una volta il
numero 1, due volte il numero 2,…..,n volte il numero n.
Diagramma di flusso
inizio
inserisci N
#include <iostream>
using namespace std;
int main() {
int N, C, D;
C←0
C<N
Codifica in C++
cin >> N;
F
C = 0;
V
C←C+1
while(C<N)
{
C = C + 1;
D = C;
while(D>0)
{
D = D -1;
cout << C << endl;
}
}
D←C
F D>0
V
D←D-1
visualizza C
return 0;
fine
}
14 - Inserire due numeri interi positivi A ed N. Visualizzare sullo schermo i primi N
valori interi successivi ad A. (Es.: Con A=7 ed N=3 sullo schermo dovrà apparire la
sequenza: 8 9 10).
Diagramma di flusso
inizio
Codifica in C++
Inserisci A
V
A <= 0
F
Inserisci N
V
#include <iostream>
using namespace std;
int main() {
int A, N;
do{cin >> A;} while(A<= 0);
do{cin >> N;} while(N<=0);
N <= 0
F
do{
A←A+1
A = A + 1;
cout << A << endl;
N = N - 1;
} while(N>0);
visualizza A
N←N-1
V
N>0
F
fine
return 0;
}
15 - Inserire due numeri interi positivi A ed N. Visualizzare sullo schermo i primi N
valori interi pari successivi ad A. (Es.: Es.: Con A=7 ed N=3 sullo schermo dovrà
apparire la sequenza: 8 10 12)
Diagramma di flusso
inizio
#include <iostream>
using namespace std;
Inserisci A
V
A <= 0
int main() {
int A, N;
F
do{cin >> A;} while(A<= 0);
do{cin >> N;} while(N<=0);
Inserisci N
V
Codifica in C++
if(A%2!=0) {A = A + 1;}
else {A = A + 2;}
N <= 0
F
V
A←A+1
continua nella
pagina
successiva ...
A%2 != 0
F
A←A+2
continua nella
pagina
successiva ...
… continua dalla
pagina precedente
… continua dalla
pagina precedente
visualizza A
do{
cout << A << endl;
A = A + 2;
N = N - 1;
} while(N>0);
A←A+2
N←N-1
return 0;
}
V
N>0
F
fine
16 - Inserire due numeri interi positivi A ed N. Visualizzare sullo schermo i primi N
valori interi dispari successivi ad A. (Es.: Es.: Con A=7 ed N=3 sullo schermo dovrà
apparire la sequenza: 9 11 13)
Diagramma di flusso
inizio
#include <iostream>
using namespace std;
Inserisci A
V
A <= 0
int main() {
int A, N;
F
do{cin >> A;} while(A<= 0);
do{cin >> N;} while(N<=0);
Inserisci N
V
Codifica in C++
if(A%2==0) {A = A + 1;}
else {A = A + 2;}
N <= 0
F
V
A←A+1
continua nella
pagina
successiva ...
A%2 == 0
F
A←A+2
continua nella
pagina
successiva ...
… continua dalla
pagina precedente
… continua dalla
pagina precedente
visualizza A
do{
cout << A << endl;
A = A + 2;
N = N - 1;
} while(N>0);
A←A+2
N←N-1
return 0;
}
V
N>0
F
fine
17 - Inserire due numeri interi positivi A ed N. Visualizzare sullo schermo la somma
dei primi N valori interi successivi ad A.
Diagramma di flusso
inizio
Codifica in C++
Inserisci A
V
A <= 0
F
Inserisci N
V
#include <iostream>
using namespace std;
int main() {
int A, N, S;
do{cin >> A;}while(A<=0);
do{cin >> N;}while(N<=0);
N <= 0
F
S←0
S = 0;
A←A+1
do{
A = A + 1;
S = S + A;
N = N - 1;
} while(N>0);
S←S+A
N←N-1
V
cout << S;
N>0
F
visualizza S
fine
return 0;
}
18 - Inserire due valori interi positivi A e B. Visualizzare sullo schermo tutti i valori
interi compresi tra A e B (A e B esclusi).
Diagramma di flusso
inizio
Codifica in C++
Inserisci A
V
int main() {
int A, B;
A <= 0
F
Inserisci B
V
B <= 0
F
V
if(B>A) {
A = A + 1;
while(B>A) {
cout << A << endl;
A = A + 1;
}
}
else {
B = B + 1;
while(A>B) {
cout << B << endl;
B = B + 1;
}
}
return 0;
F
B>A
A←A+1
B>A
V
vis. A
do{cin >> A;}while(A<=0);
do{cin >> B;}while(B<=0);
B←B+1
F
F
A←A+1
A>B
V
vis. B
B←B+1
}
fine
Prof. Nicola Masarone - ITIS "G.Giorgi" Roma