Esercizi di Informatica Applicata
Prof. Giuseppe Manco
A cura di
Ing. Eugenio Cesario
1
Esercizi
Esercizio1
Scrivere un programma che legga un cero numero di valori da input e calcoli il massimo.
#include<iostream>
using namespace std;
int main()
{
double max,x;
double y;
int i,n;
cout << "Inserisci il numero di numeri da leggere ";
cin >> n;
cout << "Inserisci un numero ";
cin >> max;
for (i =0; i<n-1; i++) {
cout << "Inserisci un numero ";
cin >> x;
if (x>max)
max=x;
}//for
cout << "Il massimo numero e' " << max << endl;
return 0;
}//main
Esercizio2
Scrivere il programma Scomposizione che inizialmente chiede all’utente un numero intero positivo e quindi
stampa su video la scomposizione in fattori di quel numero. Ad esempio, se il numero letto è 150, il
programma stamperà in sequenza i valori
2
3
5
5
Infatti, 150 = 2×3×5×5
Soluzione
//file Scomposizione.h
#include <iostream>
using namespace std;
//stampa su output la scomposizione in fattori di num
void stampaScomposizioneInFattori(int num);
2
------------------------------------------------------//file Scomposizione.cpp
#include "Scomposizione.h"
//stampa su output la scomposizione in fattori di num
void stampaScomposizioneInFattori(int num){
int quoziente;
int divisore;
//calcolo e stampa su output dei fattori
quoziente = num;
divisore = 2;
while (quoziente >= divisore){
if ((quoziente % divisore) == 0){
cout << divisore << " ";
quoziente = quoziente/divisore;
}//if
else
divisore++;
}//while
cout << endl;
}//stampaScomposizioneInFattori
------------------------------------------------------//file Main.cpp
#include "Scomposizione.h"
int main(){
cout << "******Esercitazione del 26/04/2004*****" << endl;
//lettura del numero
int numero;
do{
cout << "Inserisci un numero intero positivo: ";
cin >> numero;
cout << endl;
if (numero <= 0)
cout << "Errore! Il numero deve essere positivo!!! "<< endl;
} while (numero <= 0);
stampaScomposizioneInFattori(numero);
return 0;
}
3
Esercizio3
Scrivere il programma Potenza che, ricevendo la base e l’esponente (interi), calcola a^b.
Soluzione
//file Potenza.h
#include <iostream>
using namespace std;
//calcola b^e
int potenza(int b, int e);
------------------------------------------------------//file Potenza.cpp
#include "Potenza.h"
//calcola b^e
int potenza(int
int ris;
if (b !=0
ris
else {
ris
for
b, int e){
&& e == 0)
= 1;
= 1;
(int i = 0; i < e; i++)
ris = ris * b;
}//else
return ris;
}//potenza
------------------------------------------------------//file Main.cpp
#include "Potenza.h"
int main() {
int base; int esponente;
cout << endl << "Calcolo della potenza..." << endl;
cout << "Inserisci la base: " << endl;
cin >> base;
cout << "Inserisci l'esponente: " << endl;
cin >> esponente;
cout << "base^esponente = " << potenza(base,esponente) << endl;
return 0;
}
4
Esercizio4
Scrivere il programma PariDispari che chiede ripetutamente una sequenza di numeri interi all'utente. Il
programma termina quando l'utente inserisce -1, e stampa un messaggio dicendo quanti numeri pari e
quanti numeri dispari l'utente ha fornito.
Soluzione
//file PariDispari.h
#include <iostream>
using namespace std;
//chiede ripetutamente una sequenza di numeri
//e stampa un messaggio con i numeri pari e dispari
void pariDispari();
------------------------------------------------------//file PariDispari.cpp
#include "PariDispari.h"
//chiede ripetutamente una sequenza di numeri
//e stampa un messaggio con i numeri pari e dispari
void pariDispari(){
int numPari = 0;
int numDispari = 0;
int terminatore = -1;
int numero;
cout << "Calcolo dei numeri pari e dispari..." << endl;
cout << "Inserisci una sequenza di numeri positivi (>0) " << endl;
cout << "La sequenza termina con -1 " << endl;
do {
cin >> numero;
if (numero > 0)
if (numero % 2 == 0)
numPari++;
else
numDispari++;
} while (numero != terminatore);
}
cout << "Numeri pari: " << numPari << endl;
cout << "Numeri dispari: " << numDispari << endl;
------------------------------------------------------//file Main.cpp
#include "PariDispari.h"
int main(){
pariDispari();
}
5
Esercizio5
Scrivere il programma Tabelline che inizialmente chiede all'utente un numero intero num. Quindi il
programma stampa le prime 10 tabelline da 1 a num con una opportuna intestazione.
Soluzione
//file Tabelline.h
#include <iostream>
using namespace std;
//stampa su output le tabelline
void stampaTabelline();
------------------------------------------------------//file Tabelline.cpp
#include "Tabelline.h"
//stampa su output le tabelline
void stampaTabelline(){
int count = 1;
int ris;
int n;
cout << "Stampa delle tabelline..." << endl;
cout << "Inserisci il numero di termine: ";
cin >> n;
cout << endl;
while (count <= 10){
for (int i = 1; i <= n; i++){
ris = count * i;
cout << ris << " ";
}//for
cout << endl;
count++;
}//while
}//stampaTabelline
------------------------------------------------------//file Main.cpp
#include "Tabelline.h"
int main(){
stampaTabelline();
return 0;
}
6
Esercizio6
Scrivere il programma Fattoriale che inizialmente chiede all'utente un numero intero num, calcola il
fattoriale e poi calcola ripetutamente il fattoriale di altri numeri finchè l’utente non indica esplicitamente di
fermarsi.
Soluzione
//Fatt.h
#include<iostream>
//calcola il fattoriale di num
int fattoriale(int num);
------------------------------------//Fatt.cpp
#include "Fatt.h"
int fattoriale(int num){
int fat = 1;
int n = num;
while (n > 1){
fat = fat * n;
n = n - 1;
}//while
return fat;
}//fatt
--------------------------------------//Main.cpp
#include "Fatt.h"
using namespace std;
int i;
char risposta;
int main(){
do{
cout << "Calcolo del fattoriale" << endl;
cout << "Numero:";
cin >> i;
cout << endl;
cout << "Il fattoriale è " << fattoriale(i) << endl;
cout << "Continui ? ";
cin >> risposta;
} while (risposta!='n' && risposta!='N');
return 0;
}
7