Concetti Chiave
- Il programma utilizza una struttura chiamata "orario" per rappresentare ore, minuti e secondi.
- Viene implementata una funzione per validare se l'orario inserito è valido.
- Il programma richiede due orari di lavoro all'utente e li valida prima di procedere.
- Calcola la differenza tra i due orari forniti e determina il guadagno basato sul tempo lavorato.
- Il valore del guadagno è calcolato moltiplicando le ore per 40 e aggiungendo il contributo dei minuti.
#include
struct orario{
int ore;
int minuti;
int secondi;
};
Validazione dell'orario
int orarioValido(struct orario p1);
struct orario differenzaOrari(struct orario p1,struct orario p2);
int main()
{
struct orario p1,p2;
int valido=0,valido2=0;
do
{
printf("Digita l'ora di lavoro: \n");
scanf("%d",&p1.ore);
fflush(stdin);
printf("Digita i minuti di lavoro: \n");
scanf("%d",&p1.minuti);
fflush(stdin);
printf("Digita i secondi di lavoro: \n");
scanf("%d",&p1.secondi);
fflush(stdin);
valido=orarioValido(p1);
if(valido==0)
printf("L'orario non e' valido\n");
}while(valido==0);
do
{
printf("\nDigita l'ora di lavoro: \n");
scanf("%d",&p2.ore);
fflush(stdin);
printf("Digita i minuti di lavoro: \n");
scanf("%d",&p2.minuti);
fflush(stdin);
printf("Digita i secondi di lavoro: \n");
scanf("%d",&p2.secondi);
fflush(stdin);
valido2=orarioValido(p2);
if(valido2==0)
printf("L'orario non e' valido");
}while(valido2==0);
p1=differenzaOrari(p1,p2);
printf("Il guadagno e' : %d",p1.ore*40+(p1.minuti*40)/60);
getchar();
return 0;
}
int orarioValido(struct orario p1)
{
if((p1.ore
return 1;
else
return 0;
}
struct orario differenzaOrari(struct orario p1,struct orario p2)
{
p1.ore=p2.ore-p1.ore;
p1.minuti=p2.minuti-p1.minuti;
p1.secondi=p2.secondi-p1.secondi;
return p1;
}
Domande da interrogazione
- Qual è il processo per inserire un orario di lavoro valido?
- Come viene calcolato il guadagno basato sull'orario di lavoro?
- Cosa succede se l'orario inserito non è valido?
L'utente deve inserire ore, minuti e secondi, e il programma verifica la validità dell'orario tramite la funzione `orarioValido`. Se l'orario non è valido, viene richiesto di reinserirlo.
Il guadagno è calcolato moltiplicando le ore lavorate per 40 e aggiungendo il valore dei minuti convertiti in ore (minuti * 40 / 60), come indicato nel codice.
Se l'orario non è valido, il programma stampa un messaggio di errore e richiede all'utente di reinserire l'orario fino a quando non viene fornito un valore valido.