domenica 24 novembre 2013

Verifica se anno bisestile (con funzioni, menu con ciclo while e contatore)

Compilare un programma che eseguito in INPUT un anno dall'utente verifichi se sarà o se è stato bisestile, inserire un controllo while che permetta di rieseguire il programma n volte e un contatore che una volta terminato il programma visualizzi quante volte è stato eseguito dall'utente.

#include <stdio.h>

int anno;
int ris;
int scelta=1;   //assegno valore 1 a scelta così da far fare subito all'apertura del programma un ciclo all'interno del while
int bisestile(int);   //definizione funzione che verifica se anno inserito è bisestile
int menu();   //definizione funzione che esegue menu
int contatore=0;   //conta quante volte l'utente esegue il programma

using namespace std;

int main()
{
printf("Questo programma verifica se l'anno inserito dall'utente risulta essere \nbisestile o meno\n\n");
while(scelta>0 && scelta<2)   //while che controlla la scelta effettuata dall'utente nella funzione menu
{
contatore++;   //conta quante volte l'utente esegue il programma
printf("\nInserisci l'anno che vuoi verificare: ");
scanf("%d",&anno);
if(anno>2013)   //se anno inserito dall'utente risulta maggiore dell'anno corrente allora usa printf con dicitura "sarà"
{
ris=bisestile(anno);   //chiamata a funzione con passaggio parametro "anno" che verifica se anno inserito è bisestile e restituisce in variabile "ris" 1 se bisestile 0 se NON bisestile 
if(ris==1)   //se funzione bisestile restituisce 1
printf("L'anno sara' bisestile");
else   //altrimenti se funzione bisestile restituisce 0
printf("L'anno non sara' bisestile");
}
else   //altrimenti se anno inserito dall'utente risulta minore dell'anno corrente allora usa printf con dicitura "era"
{
ris=bisestile(anno);   //chiamata a funzione che verifica se anno inserito è bisestile e restituisce in variabile "ris" 1 se bisestile 0 se NON bisestile 
if(ris==1)   //se funzione bisestile restituisce 1
printf("L'anno era bisestile");
else   //altrimenti se funzione bisestile restituisce 0
printf("L'anno non era bisestile");
}
scelta=menu();   //chiamata a funzione menu che restituisce la scelta dell'utente in variabile "scelta" che utilizza poi nel controllo con while
}
printf("\n\tHai eseguito questo programma %d volte",contatore);   //quando l'utente decide di uscire viene visualizzato quante volte ha eseguito il programma
}

int menu()   //definizione funzione menu
{
int scelta;   //variabile di appoggio per input utente
printf("\n\n\tMenu:");
printf("\n\n1) Per verificare un altro anno\n2) Per uscire\n");
scanf("%d",&scelta);
return scelta;   //restituisce il contenuto della variabile scelta
}

int bisestile (int a)   //definizione funzione bisestile con passaggio parametro anno
{
int ris;   //variabile di appoggio per risultato verifica anno
if(a%100==0)   //se anno diviso 100 da resto zero (quindi è divisibile)
{
if(a%400==0)   //controllo se è anche divisibile per 400 
ris=1;   //se si bisestile quindi assegno a variabile "ris" valore 1
else
ris=0;   //altrimenti se no allora non bisestile assegno a "ris" valore 0
}
else   //altrimenti se non divisibile per 100 (quindi anno non secolare)
{
if(a%4==0)   //se divisibile per 4
ris=1;   //bisestile quindi assegno valore 1
else   //altrimenti se non divisibile per 4
ris=0;   //non bisestile quindi assegno valore 0
}
return ris;   //restituisco il valore contenuto in variabile "ris"
}

Nessun commento:

Posta un commento