da Cristina | Ott 19, 2019 | Linguaggio C++
In questa lezione propongo altri esempi sul for in C++, al fine di consolidare quanto studiato nelle lezioni precedenti.
Primo esempio sul for in C++
Dato un elenco di N numeri, scegliere quelli che sono maggiori di 10 e minori di 100. Di questi calcolare la somma e visualizzare il risultato in output.
Innanzitutto dichiariamo le variabili che ci servono per la risoluzione dell’algoritmo:
N – Indica quanti numeri vogliamo inserire.
i – La variabile contatore del ciclo for.
n – Il numero che viene inserito N volte.
s – La variabile per la somma dei numeri maggiori di 10 e minori di 100.
Dopo aver dichiarato le variabili ed aver inserito le costanti A e B, chiediamo di inserire il valore di N, facendo al solito un controllo dell’input.
Poi realizziamo il ciclo for dove per ogni numero inserito controlliamo se è vera la condizione richiesta. Se è vera aggiorniamo la variabile somma aggiungendo il valore di n.
Al termine stampiamo il valore della somma in output.
Ecco dunque l’algoritmo in C++:
#include <iostream>
using namespace std;
int main() {
int N,i,n,s=0;
const int A=10;
const int B=100;
do{
cout<<"Quanti numeri vuoi inserire?: ";
cin>>N;
} while (N<=0);
for(i=0;i<N;i++) {
cout<<"Inserisci un numero: ";
cin>>n;
if (n>10 && n<100)
s+=n;
}
if(s==0)
cout<<"Non hai inserito numeri maggiori di 10 e minori di 100";
else
cout<<"Somma:\t"<<s;
return 0;
}
Secondo esempio sul for in C++
Inserire N voti (compresi tra 4 e 10), calcolare e stampare la loro media. Se la media è maggiore o uguale a 6 stampare il messaggio “Promosso” altrimenti il messaggio “Puoi fare di meglio! Riprova!“
In questo secondo esempio sul for in C++, serviranno queste variabili:
N – Il numero di voti da inserire.
m – La media dei voti, di tipo float.
i – La variabile contatore per il ciclo for.
s – Per la somma dei voti.
Quindi chiediamo di inserire gli N voti facendo un controllo dell’input.
Poi con un ciclo for inseriamo i numeri, facendo anche qui un controllo dell’input, in quanto ciascun voto deve essere maggiore o uguale a 4 e inferiore o uguale a 10.
Quindi li sommiamo e facciamo la media.
Dopo in base alla media ottenuta, visualizziamo il messaggio in output.
Ecco dunque una possibile risoluzione dell’esempio sul ciclo for in C++:
/*
Inserire N voti (compresi tra 4 e 10), calcolare e stampare la loro media.
Se la media è maggiore o uguale a 6 stampare il messaggio "Promosso" altrimenti il messaggio "Puoi fare di meglio! Riprova!"
*/
#include <iostream>
using namespace std;
main() {
int N,i,n,s=0;
float m;
do{
cout<<"Quanti numeri vuoi inserire?: ";
cin>>N;
} while (N<=0);
for(i=0;i<N;i++) {
do{
cout<<"Inserisci un numero: ";
cin>>n;
} while(n<4 || n>10);
s+=n;
}
m=float(s)/N;
if(m>=6)
cout<<"Promosso, la tua media:\t"<<m;
else
cout<<"Puoi fare di meglio. Riprova!";
return 0;
}
Potremmo modificare questi algoritmi proposti inserendo noi i dati in input e quindi disegnare le figure con le misure desiderate.
Abbiamo dunque proposto altri esempi sul for in C++, fate pure le vostre considerazioni e scrivete nei commenti sotto.
Alcuni link utili
Indice argomenti linguaggio C++
1- Introduzione al linguaggio C++
2- Variabili in C++
3- Operatori di assegnazione in C++
4- Esempi in C++
5- Casting in C++
Successione di Fibonacci in C++
da Cristina | Ott 19, 2019 | Linguaggio C++
In questa lezione svilupperemo un algoritmo per il calcolo del massimo, cioè del valore più grande, dei numeri pari e dispari.
Inserire N numeri interi e determinare il massimo dei numeri pari e di quelli dispari.
Realizziamo l’algoritmo in modo tale da inserire sia numeri positivi che negativi.
Innanzitutto dichiariamo le variabili necessarie:
N – La quantità di numeri da inserire.
n – Rappresenta i numeri da inserire di volta in volta.
i – Il contatore utilizzato nel ciclo for.
max_p – Questa variabile contiene il massimo tra tutti i valori pari.
max_d – La variabile che contiene il valore massimo dei numeri dispari.
conta_p – Il contatore dei numeri pari, se non si inseriscono numeri pari lo impostiamo a 0.
conta_d – Il contatore dei numeri dispari, se non si inseriscono numeri dispari lo impostiamo a 0.
Dopo aver dichiarato le variabili chiediamo quanti numeri vogliamo inserire, cioè il valore della variabile N. Quindi facciamo un controllo dell’input per far in modo di inserire solo valori maggiori di zero.
Successivamente chiediamo di inserire il primo numero e controlliamo se è pari. Se lo è assegniamo a max_p il valore di n e portiamo conta_p a 1 e conta_d a 0.
Se invece il numero è dispari assegniamo a max_d il valore di n e portiamo conta_d a 1 e conta_p a 0.
Poi con un ciclo for chiediamo i numeri rimanenti e per ciascun numero chiediamo se è pari o dispari. Controlliamo anche il valore dei contatori (conta_p e conta_d) per capire se è la prima volta che inseriamo un numero pari o dispari e quindi comportarci di conseguenza.
Dopo con un if controlliamo il valore dei contatori per visualizzare in output il messaggio opportuno.
Ecco dunque l’algoritmo in C++ per il calcolo dei numeri pari e dei dispari, così come l’ho pensato:
#include <iostream>
using namespace std;
int main() {
int N,n,i,max_p,max_d,conta_p,conta_d;
do{
cout<<"Quanti numeri vuoi inserire?: ";
cin>>N;
} while (N<=0);
cout<<"Inserisci un numero: ";
cin>>n;
if(n%2==0) {
max_p=n;
conta_p=1;
conta_d=0;
}
else {
max_d=n;
conta_d=1;
conta_p=0;
}
for(i=0;i<N-1;i++) {
cout<<"Inserisci un numero: ";
cin>>n;
if(n%2==0 && conta_p==1) {
if(n>max_p)
max_p=n;
}
else if(n%2==0 && conta_p==0) {
max_p=n;
conta_p=1;
}
else if (n%2!=0 && conta_d==1) {
if(n>max_d) {
max_d=n;
conta_d=1;
}
}
else
max_d=n;
}
if(conta_p==1 && conta_d==1)
cout<<"Pari\t"<<max_p<<endl<<"Dispari\t"<<max_d;
else if (conta_p==1 && conta_d==0)
cout<<"Pari\t"<<max_p<<endl<<"Non hai inserito dispari!";
else
cout<<"Non hai inserito numeri pari!"<<endl<<"Dispari\t"<<max_d;
return 0;
}
Questa è solo una possibile soluzione all’algoritmo per il calcolo del massimo dei pari e dei dispari, proponete pure la vostra e discutiamone assieme.
Alcuni link utili
Indice argomenti linguaggio C++
1- Introduzione al linguaggio C++
2- Variabili in C++
3- Operatori di assegnazione in C++
4- Esempi in C++
5- Casting in C++
Successione di Fibonacci in C++
da Cristina | Ott 19, 2019 | Linguaggio C++
Proponiamo in questa lezione un’esercitazione sul for in C++, al fine di apprendere meglio il funzionamento di questo costrutto.
Primo esercizio – Esercitazione sul for in C++
Scrivi i dieci numeri pari successivi al numero intero N.
Quindi analizziamo le variabili che ci serviranno:
N – Il numero intero da prendere in input.
i – La variabile contatore da utilizzare nel ciclo for.
C – La costante che rappresenta in questo caso il valore 10.
Quindi dopo aver dichiarato le variabili, impostiamo la costante C.
Dopo chiediamo in input il numero N. Se N è dispari lo rendiamo pari semplicemente sottraendo il numero 1.
Dunque con il ciclo for calcoliamo i 10 numeri pari successivi ad N.
Ecco dunque il codice completo:
#include <iostream>
using namespace std;
main() {
int N,i;
const int C=10;
cout<<"Inserisci un numero: ";
cin>>N;
for(i=0;i<C;i++) {
if(N%2!=0)
N--;
N+=2;
cout<<N<<"\t";
}
return 0;
}
Proponiamo un’altra esercitazione sul for in C++.
Secondo esempio
Stampare i primi X numeri dispari successivi al numero N.
In realtà questo algoritmo è una variazione al precedente esercizio, in cui stavolta chiederemo noi quanti successivi vogliamo calcolare.
Analizziamo le variabili che ci occorrono.
N – Il numero intero da prendere in input.
i – La variabile contatore da utilizzare nel ciclo for.
X – Quanti numeri dispari visualizzare.
Dopo aver dichiarato le variabili che ci servono, chiediamo di inserire N ed X. Chiaramente in questo caso occorre fare un controllo che X sia maggiore di zero.
Poi controlliamo il numero e se è pari, lo trasformiamo in dispari sottraendo 1. Realizziamo poi un ciclo for che aggiunge 2 al numero X volte.
Ecco dunque il codice completo:
#include <iostream>
using namespace std;
main() {
int N,i,X;
cout<<"Inserisci un numero: ";
cin>>N;
do{
cout<<"Quanti successivi vuoi visualizzare?: ";
cin>>X;
} while (X<=0);
for(i=0;i<X;i++) {
if(N%2==0)
N--;
N+=2;
cout<<N<<"\t";
}
return 0;
}
Questa è una semplice esercitazione sul for in C++, nella prossima lezione proporrò tanti altri esempi.
Alcuni link utili
Indice argomenti linguaggio C++
1- Introduzione al linguaggio C++
2- Variabili in C++
3- Operatori di assegnazione in C++
4- Esempi in C++
5- Casting in C++
Successione di Fibonacci in C++
da Cristina | Ott 19, 2019 | Algoritmi in C++
In questa lezione realizzeremo un algoritmo sui numeri amicabili in C++, ovvero quei due numeri per i quali la somma dei divisori propri dell’uno è uguale all’altro e viceversa.
Per divisori propri si intendono tutti i divisori tranne il numero stesso.
Facciamo un esempio di numeri amicabili, considerando i numeri 220 e 284.
Il numero 220 ha come divisori propri: 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 e 110.
Se sommiamo questi divisori otteniamo il numero 284.
Allo stesso modo, prendiamo il numero 284, questo ha come divisori: 1, 2, 4, 71, 142. Sommandoli otteniamo il numero 220.
Ecco dunque che i numeri 220 e 284 sono amicabili
Algoritmo per i numeri amicabili in C++
Prendere in input due numeri e visualizzare sullo schermo se sono amicabili.
Innanzitutto dichiariamo le variabili che ci servono:
a, b – Sono le due variabili intere che indicano i numeri per cui vogliamo verificare l’ipotesi iniziale.
div – Rappresenta il divisore che, partendo da 1, verrà incrementato opportunamente all’interno dei cicli.
s – Rappresenta la variabile che contiene la somma dei divisori.
Dopo aver dichiarato le variabili, chiediamo all’utente di inserirle in input, poi impostiamo il div a 1 e la somma a 0 (ciò si poteva fare anche prima).
Impostiamo nel ciclo while la condizione che div sia minore o uguale al primo numero. Dunque, finché questa condizione è vera, troviamo tutti i divisori di un numero e li sommiamo nella variabile s.
Dopo controlliamo se la somma così ottenuta è uguale al primo numero.
Se ciò è verificato allora procediamo a trovare i divisori del secondo numero e confrontiamo se la loro somma è uguale al primo numero.
Solo se questa condizione è verificata allora i due numeri sono amicabili.
Ecco dunque il codice completo che rappresenta l’algoritmo sui numeri amicabili in C++:
#include <iostream>
using namespace std;
main() {
int a,b,div,s;
cout<<"Inserisci un numero: ";
cin>>a;
cout<<"Inserisci il secondo numero: ";
cin>>b;
div=1;
s=0;
while(div<=a/2) {
if (a%div==0)
s+=div;
div++;
}
if(s==b){
div=1;
s=0;
while(div<=b/2) {
if (b%div==0)
s+=div;
div++;
}
if(s==a)
cout<<"I due numeri sono amicabili";
else
cout<<"I numeri non sono amicabili";
}
else
cout<<"I numeri non sono amicabili";
return 0;
}
Chiaramente si poteva procedere in altri modi per trovare la soluzione all’algoritmo sui numeri amicabili in C++, proponete pure la vostra nei commenti sotto.
Alcuni link utili
Indice argomenti linguaggio C++
1- Introduzione al linguaggio C++
2- Variabili in C++
3- Operatori di assegnazione in C++
4- Esempi in C++
5- Casting in C++
Successione di Fibonacci in C++