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