Aiuto per esercizio

di il
10 risposte

Aiuto per esercizio

Ciao a tutti, sto studiando il C++ a scuola ed oggi abbiamo cominciato le strutture iterative, precisamente while.
La traccia dice questo
Un parcheggio ha la tariffa di € 1 per la prima ora di sosta e di € 0,50 per ogni ora successiva.
Conoscendo l'orario di entrata e di uscita di un'autovettura (espresso in ore e minuti), emetti uno scontrino con l'ora di entrata, l'ora di uscita, il tempo di durata della sosta e la relativa spesa.
Questo è il codice, funziona tutto bene MA se l'ora di entrata è maggiore a quella di uscita il programma da un orario sbagliato, so già che la formula e sbagliata ed è per questo che sto chiedendo aiuto.
Ecco il codice:
#include "stdafx.h"
#include <cstdlib>
#include <iostream>

using namespace std;

int main()
{
	float entrata, uscita, tempo, orario, spesa;
	const float prezzo = 0.50;
	const int giorno = 24;
	cout<<"Inserisci l'ora di entrata (ora e minuti): ";
	cin>>entrata;
	cout<<"Inserisci l'ora di uscita (ora e minuti): ";
	cin>>uscita;
    do
	{
		if(entrata<uscita)
		{
			tempo=uscita-entrata;
			if(tempo<=1)
			{
				spesa=1;
			}
			else
			{
				spesa=tempo*prezzo+1;
			}
		}
		else
		{
			tempo=entrata-uscita; //parte sbagliata
			spesa=tempo*prezzo+1;
		}
	}
	while (entrata>giorno || uscita>giorno);
	cout<<"La spesa e' di "<<spesa<<" euro, la sosta e' durata dalle "<<entrata<<" fino alle "<<uscita<<" ed il tempo di durata della sosta e' di "<<tempo<<" ore/a"<<endl;
	system("pause");
	return 0;
}
Grazie in anticipo.

10 Risposte

  • Re: Aiuto per esercizio

    Non ho capito ... se l'ora di entrata è maggiore di quella di uscita, non dovresti accettarla nè fare il calcolo ...
  • Re: Aiuto per esercizio

    L'ora di entrata non dev'essere maggiore di quella d'uscita se stiamo parlando dello stesso giorno. se invece i giorni sono differenti dovresti far specificare anche il giorno.
  • Re: Aiuto per esercizio

    oregon ha scritto:


    Non ho capito ... se l'ora di entrata è maggiore di quella di uscita, non dovresti accettarla nè fare il calcolo ...
    No, dovrebbe accettarla, se io parcheggio alle 24 e vado via alle 2 di notte ho parcheggiato per 2 ore.
  • Re: Aiuto per esercizio

    skynet ha scritto:


    L'ora di entrata non dev'essere maggiore di quella d'uscita se stiamo parlando dello stesso giorno. se invece i giorni sono differenti dovresti far specificare anche il giorno.
    Grazie.
    EDIT: Scusate per il doppio post, pensavo li unisse
  • Re: Aiuto per esercizio

    Allora, come ti è stato detto, devi dare indicazioni sulla data perché potrei entrare alle 10 e uscire alle 11 ma del giorno dopo.

    Le regole devono essere precise.
  • Re: Aiuto per esercizio

    oregon ha scritto:


    Allora, come ti è stato detto, devi dare indicazioni sulla data perché potrei entrare alle 10 e uscire alle 11 ma del giorno dopo.

    Le regole devono essere precise.
    Essendo novizio sembra un pochettino complesso ma comunque ci proverò e scriverò se avrò problemi, grazie
  • Re: Aiuto per esercizio

    Basta chiedere in input il giorno, mese, anno di ingresso e uscita, oltre all'orario
  • Re: Aiuto per esercizio

    Un'altra domanda, se io voglio far capire al programma che se parcheggio alle 24 e vado via alle 2 (entrata = 24 uscita = 2) posso fare entrata+uscita (=26) -24? Al momento non posso provare purtroppo.
    EDIT: Appena provato, la differenza tra le ore è sbagliata
  • Re: Aiuto per esercizio

    Se dai per scontato che le ore di ingresso uscita, al massimo, sono tra un giorno e il successivo, allora puoi calcolarlo facendo

    (24-ingresso)+uscita
  • Re: Aiuto per esercizio

    Perfetto, funziona, ti ringrazio
Devi accedere o registrarti per scrivere nel forum
10 risposte