Archivi tag: Funzioni

C++ – Calcolo età e data di nascita con funzioni

Hai difficoltà a fare esercizi con le funzioni? Nessun problema! Oggi ti mostrerò un semplice esercizio che ti aiuterà a capire meglio l’argomento.

Il testo è il seguente:

Crea un programma che calcoli l’anno di nascita sapendo l’età e l’età sapendo l’anno di nascita. Tenere presente l’anno attuale.

Dovremo quindi creare un menù di scelta dove l’utente sceglierà se eseguire il calcolo dell’anno di nascità o dell’età.

Letta la consegna, iniziamo a svolgere l’esercizio:


int eta(int x) {
	
	return 2022-x;
	
}

Come prima cosa, scrivo una delle due funzioni che mi servono per far funzionare il programma. A mia scelta, ho scritto la funzione eta. Questa ci permette di trovare l’età sapendo l’anno di nascita.

Il calcolo che svolgerò sarà 2022-x

x rappresenta l’anno inserito dall’utente in input. Sottraendo i due valori si ottiene l’età.

int annodinascita(int y) {
	
	return 2022-y;
	
}

Successivamente scrivo la seconda funzione. La funzione annodinascita serve a calcolare,appunto, l’anno di nascita sapendo l’età.

Il calcolo che svolgerò sarà 2022-y.

y rappresenta l’età inserita dall’utente in input. Sottraendo i due valori si ottiene l’anno di nascita.

int main () {
	
	int s, et, an;
	
	cout<<"---COSA VUOI TROVARE?---"<<endl;
	cout<<"1) Eta' sapendo l'anno di nascita"<<endl;
	cout<<"2) Anno di nascita sapendo l'eta'"<<endl;
	cin>>s;

Iniziamo ora a scrivere la funzione principale, il main. Per prima cosa inizializzo le variabili.

s rappresenta la scelta che farà l’utente nel menù che dovremo creare. et rappresnta l’eta e an l’anno di nascità

Dopo aver inizializzato, creo il menù di scelta che verrà utilizzato dall’utente. Scrivo in output le opzioni descrivendole e in input la variabile s.

Ora, ho due modi per scrivere la parte dove il programma calcolerà ciò che vogliamo sapere. O utilizzo lo Switch Case, o utilizzo l’if. In questo caso, io ho scelto lo Switch Case. Alla fine dell’articolo lascerò il programma completo, potrete trovare in esso le due opzioni eseguibili. Sia il pezzo di codice con l’if che quello con lo Switch.

switch (s) {
		
case 1:    cout<<"Inserisci l'anno di nascita: "<<endl;
           cin>>an;
	   cout<<"L'eta' e' uguale a "<<eta(an)<<endl;
break;
		
case 2:    cout<<"Inserisci l'eta': "<<endl;
	   cin>>et;
	  cout<<"L'anno di nascita' e' il  <<annodinascita(et)<<endl;

break;
	}  

Se l’utente dovesse scegliere 1, il programma chiederà di inserire l’anno di nascita in input. Verrà svolta la funzione eta, e il risultato uscirà in output.

Al contrario, se dovesse scegliere 2, il programma chiederà in input l’età. Successivamente svolgerà la funzione annodinascita che verrà stampata in output.

Il programma ora si può considerare concluso. Visto? Non era così difficile! Ma se hai ancora difficoltà non esitare a scrivere un commento o a contattarci via mail a redazioneprogrammazionepertutti@gmail.com

Programma completo – versione Switch Case:

#include <iostream>
using namespace std;

int eta(int x) {
	
	return 2021-x;
	
}

int annodinascita(int y) {
	
	return 2021-y;
	
}

int main () {
	
	int s, et, an;
	
	cout<<"---COSA VUOI TROVARE?---"<<endl;
	cout<<"1) Eta' sapendo l'anno di nascita"<<endl;
	cout<<"2) Anno di nascita sapendo l'eta'"<<endl;
	cin>>s;

switch (s) {
		
case 1:    cout<<"Inserisci l'anno di nascita: "<<endl;
           cin>>an;
	   cout<<"L'eta' e' uguale a "<<eta(an)<<endl;
break;
		
case 2:    cout<<"Inserisci l'eta': "<<endl;
	   cin>>et;
	  cout<<"L'anno di nascita' e' il  <<annodinascita(et)<<endl;

break;
	}  

}

Programma completo – versione If:

#include <iostream>
using namespace std;

int eta(int x) {
	
	return 2021-x;
	
}

int annodinascita(int y) {
	
	return 2021-y;
	
}

int main () {
	
	int s, et, an;
	
	cout<<"---COSA VUOI TROVARE?---"<<endl;
	cout<<"1) Eta' sapendo l'anno di nascita"<<endl;
	cout<<"2) Anno di nascita sapendo l'eta'"<<endl;
	cin>>s;

if (s==1) {
		
		cout<<"Inserisci l'anno di nascita: "<<endl;
		cin>>an;
		cout<<"L'eta' e' uguale a "<<eta(an)<<endl;
	}
	else {
		
		cout<<"Inserisci l'eta': "<<endl;
		cin>>et;
		cout<<"L'anno di nascita' e' il "<<annodinascita(et)<<endl;
	} 
}

La funzione Se – Excel

La funzione SE è una delle più semplici ed intuitive di Excel. Essa è formata da una condizione che, o se sarà falsa o se sarà vera, darà diversi risultati. Analizziamo la sua sintassi:

SE(test; se_vero; se_falso).

Quando la andremo ad inserire su Excel ci comparira così. Ma cosa significano quelle parole nelle parentesi tonde?

test è la condizione. Può essere o un valore o un espressione e sarà o vera o falsa.

se_vero sarà il valore in output, che verrà scritto nella cella, se la condizione risulterà vera

se_falso sarà il valore in output, che verrà scritto nella cella, se la condizione risulterà falsa

Vediamo un rapido esempio: =SE(A10>2;”Maggiore di due”;”Non è maggiore di due”)

In questo caso se A10 sarà maggiore di due nella cella verrà scritto “Maggiore di due”, al contrario invece se sarà minore scriverà “Non è maggiore di due”.

Se voglio invece lasciare la cella vuota mi basterà scrivere “” cioè stringa nulla.

Se Nidificato

Il se nidificato invece è un pò più complicato del precedente. Funziona allo stesso modo con la stessa formula ma al suo interno contiene più nidificazioni della funzione.

Vediamo un rapido esempio:

=SE(A10<2;”Piccolo”;SE(A10>2;”Grande”;SE(A10=2;”Esatto”;””)))

In questo caso, data la nidificazione, abbiamo tre test. Se A1O è minore di due allora darà come risultato “Piccolo”. Se la condizione risulterà falsa, invece, ci sarà un altro test da parte del programma che vedrà se il risultato è maggiore di due. Se sarà vero, scriverà nella cella “Grande”. Se invece il risultato risulterà ancora un altra volta falso, occorrerà fare un ulteriore verifica con un altro test per controllare se è A10 è uguale a due. Se sarà vero scrivera “Esatto” o al contrario, se sarà falso, lascerà la cella vuota (cosa che non succederà se inseriamo numeri).

N.B: Ricorda di chiudere tutte le parentesi alla fine della scrittura di un se nidificato. In caso di errore Excel ti avvertirà.

Spero che ora ti sia tutto chiaro, e che questo tipo di cose non ti facciano più paura. Per qualsiasi domanda scrivi un commento o contattaci a: programmazionepertutti@gmail.com @redazioneprogrammazionepertutti