ajuda urgernte para iniciante

Madruga

Power Member
Boas

Comecei este ano a dar c++ e preciso de uma ajudar enorme, isto pk este exercicio saiu no teste e td a gente teve ele mal, e como as notas n foram grande coisa ele deu a oportunidade de fazer-mos ele outra x, tenhu q entraga-lo 2ª e o exercicio consta o seguinte:

Elabore um programa em C++, que leia o numero de minutos decorridos desde a meia noite e mostre esse numero no formato horas:minutos. Por exemplo se o numero lido for 515 deve ser mostrado 8:35, se o numero for 1335 deve ser mostrado 22:15. Tenha atenção que o dia tem 1440minutos.

Bem, eu no teste não tive tempo para o fazer, mas mesmo que consigo n consigo pegar nele =( alguem pode faze-lo? pFF este exercicio vale 3 valores :)

cumpz
madruga
 
Não percebo nada de C++ mas se dividires os 515 por 60 minutos obterás 8,5833333333333333333333333333333 horas.

Agora era pegar neste valor e dizer que as horas são 8(a parte inteira).
Quanto aos minutos (a parte decimal) terias de fazer:

0,5833333333333333333333333333333 x 60 minutos = 35 min.
ou seja se o numero for 515 então passaram 8:35 min.

Serviu para ajudar?
 
Última edição:
essa é a logica do problema! :) essa raciocinio ta certo o prob é que não consigo fazer o programa :'( comecei o c++ a 10 aulas e n m dou bem, vou ler tuturias para ver bem como é isto... mas alguem pode-me resolver o programa sff? :)
 
Darem-te a solução não te vai ajudar em nada.

Mas se queres obter a parte décimal, dou-te uma pista:

procura ajuda por uma função de truncatura
trunca o valor que obtens
subtrai o valor original a esse valor truncado
ficas com a parte décimal.

abraços, HecKel
 
Boas

Ao fim de andar a tentar... cheguei a esta conclusão:

#include <iostream>;
using namespace std;
main ()
{
int M,h,min;
cout<<"introduza o numero de minutos decorridos(Max:1440)";
cout<<'\n';
cin >>M; // O M é o numero de minutos introduzidos
h=M/60; // O h é o numero de horas
min=M%60; // O min é o numero de minutos
if(M>=0 && M<=1440)cout<<h <<":" <<min <<" horas";
else if(M>1440)cout<<"introduza um valor menor a 1440";
else if(M<0)cout<<"introduza um valor superior a 0";
cout <<'\n';
}

o que acham? tabom? o que preciso mudar para correr ainda melhor? :)
 
Boas.

Não percebo de c mas assim por alto diria que devias testar se o parametro está dentro dos limites antes de fazeres os calculos, e talvez fazer os calculos logo na linha (se é que isso é possivel), tipo isto:

if (M>=0 && M<=1440) cout<< M/60 <<":" << M%60 <<" horas";
else if (M>1440) cout<<"introduza um valor menor a 1440";
else if (M<0)cout<<"introduza um valor superior a 0";
cout <<'\n';

EDIT: Quase nem reparava, isso dá-te o num de minutos mal. Lê o post do KOMA, que já estás quase lá. o M%60 já te dá o resto da divisão
 
Última edição:
não percebi bem essa parte do koma... alguem pode alterar então o programa sff? :D


Tens de multiplicar M%60 por 60 para te dar os numero de minutos... dá um numero inteiro se for introduzido um inteiro, mas se for introduzido um float pode dar qq coisa como 35.15 minutos, que não interessa por isso fazes qq coisa como abs((M%60)*60)
 
Back
Topo