Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

superdude

Tradutor de unidades de tempo SS para HH:MM:SS

Mensagens Recomendadas

superdude    0
superdude

Este programa é muito básico.

Para quem não souber quantas horas quantos minutos e quantos  segundos são x segundos,

ficam as seguintes linhas de código:

program MinHorSegAtravesDaIntroducaoDosSegundos;
var hor,seg,res: integer;
    min: shortint;
begin
writeln('Introduza o valor de segundos;');
readln(seg);

if (seg=3600) then
begin
   hor:= seg div 3600;
   res:= seg mod 3600;
   if (res>60) then
   begin
        min:= res div 60;
        seg:= res mod 60;
   end
   else
   begin
        min:=0;
        seg:=0;
   end
end
else
begin
     hor:=0;
     if (seg>=60) then
     begin
        min:= seg div 60;
        seg:= seg mod 60;
     end
     else
     begin
          min:= 0;
          seg:= seg;
     end;
end;
writeln('Segundos no formato h:m:s = ',hor,':',min,':',seg);
readln;
end.

:ipool:

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
HoaS    0
HoaS

esse problema saiu num teste da minha escola do ano passado...xD...

eu consegui fazer mas nao fiz dessa maneira...fiz duma maneira mais basica..(por se assim dizer)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
tiagu_m    0
tiagu_m

neste programa ha um pequeno erro, se o pudessem corrigir, pois se usarmos  o valor de 3661s o program irá dar 0:61:1, o que é impossivel, pois nao ha 61 minutos

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Rui Carlos    310
Rui Carlos

Pois... Para qualquer valor superior a 3600 vai dar um resultado errado.

Parece-me que o programa tem ifs a mais, o que só complica e aumenta a probabilidade de se cometerem erros.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
bruno1234    20
bruno1234

Eu tenho um cálculo desses, mas feito em c#, posso mostrar para quem tiver interessado:

            // Valor de Teste
            int segundos = 7280;

            // Cálculo
            int h = segundos / 3600;
            int m = (segundos % 3600) / 60;
            int s = segundos % 60;

            // Comparar Resultados
            Console.WriteLine("{0:00}:{1:00}:{2:00}", h, m, s);
            Console.WriteLine(new TimeSpan(0, 0, segundos));

A última linha é o cálculo feito com a classe timespan do C#, o meu objectivo na altura n era ter isto feito em C#. Era testar o algoritmo para usar numa linguagem sem a classe timespan.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade