Jump to content

Algumas Duvidas, em relogio


Firewall
 Share

Recommended Posts

Olá pessoal.

Como eu nunca mechi com data do sistema,com pascal, não sei a lógica disto.

o with não estas a fazer sua lógica? não me encontrei neste contexto!

program relogio_sistema;
uses crt, dos;

var tempo : record
          relogio : record
                  hora : word;
                  minuto : word;
                  segundo : word;
                  centesimo_segundo : word;
          end;
          data : record
               ano : word;
               mes : word;
               dia : word;
               dia_semana : word;
          end;
    end;

begin
     with tempo do begin
          with relogio do begin
               gettime(hora, minuto, segundo, centesimo_segundo);
               // determina a hora do sistema
          end;
          with data do begin
               getdate(ano, mes, dia, dia_semana);
               // determina a data do sistema
          end;
     end;
     // …
end.

ele acaba de se auto-chamar, chama eventualmente o relogio,mas e agora algumas duvidas pendendtes.

-oque fazer para o usuario final conseguir ver a data e hora? ( minha lógica não bateu aqui  😁 )

-haveria como dar 1 freeze(congelar,parar), o relogio e pegar a hora e data que fora pego exmeplo:

teria alguma forma de quando eu acabar de registrar 1 veiculo, o programa paraçe o relogio, pegasse os dados, da data e relogio e salva-se, posteriormente,quando o usuario final, fosse olhar,ele iria ver a data e hora,dia,mes ano... que fora efectuado o reistro.

[

Link to comment
Share on other sites

-oque fazer para o usuario final conseguir ver a data e hora? ( minha lógica não bateu aqui  😁 )

program relogio_sistema;
uses crt, dos, sysutils;

type TDataHora : record
          relogio : record
                  hora : word;
                  minuto : word;
                  segundo : word;
                  centesimo_segundo : word;
          end;
          data : record
               ano : word;
               mes : word;
               dia : word;
               dia_semana : word;
          end;
    end;

procedure GuardaDataHora(var datahora : TDataHora)
begin
  with datahora.relogio do begin
    gettime(hora, minuto, segundo, centesimo_segundo);
    // determina a hora do sistema
  end;
  with datahora.data do begin
    getdate(ano, mes, dia, dia_semana);
    // determina a data do sistema
  end;
end;

var
  tempo_registo : TDataHora;
begin
  GuardaDataHora(tempo_registo);
  with tempo_registo.relogio, tempo_registo.data do
    writeln(Format('%2d/%2d/%4d - %2d:%2d:%2d',[dia,mes,ano,hora,minuto,segundo]));
   // …
end.

-haveria como dar 1 freeze(congelar,parar), o relogio e pegar a hora e data que fora pego exmeplo:

A variável tempo_registo fica com a data/hora da altura em que foi inicializada pelo procedimento GuardaDataHora. Se chamares esse procedimento com outras variáveis...

Link to comment
Share on other sites

O comando with ... do não tem nada a ver directamente com o relogio.

Ele é usado aqui para aceder aos campos dos records sem necessidade de colocar o nome da variável.

Por este motivo, esta serie de with's encadeados acaba por não fazer muito sentido (não estando mal, é desnecessário, e confuso até).

begin
     with tempo.relogio, tempo.data do begin  // Insere-se aqui, separados por virgula, os dois records
               gettime(hora, minuto, segundo, centesimo_segundo);
               // determina a hora do sistema
          
               getdate(ano, mes, dia, dia_semana);
               // determina a data do sistema
     end;
     // …
end.

Ao executar o código acima, ele irá guardar nas variaveis do registo a data e hora do momento em que aquele código foi executado, ou seja, o tal freeze que pedes já está feito por ti.

Só terás agora de copiar esses valores para o registo da tua base de dados. Ou seja, a variavel record onde guardas os veiculos terá de incluir uma variável com as mesmas características desta "tempo" que tens aqui.

Por sinal, até bastava que ela estivesse lá dentro do registo de veiculos. Não precisas dela para mais nada, aparentemente.

Assim, quando gravares a informação do veiculo no ficheiro, a data e hora de inserção também irão ser gravadas, juntamente com os restantes dados do veiculo.

Na hora de mostrar os dados, pegas nesses valores e colocas num writeln ou como preferires mostrar ao utilizador. Podes escrever manualmente as variáveis desejadas, tipo:

with tempo.data,tempo.hora do
    writeln(ano,'-',mes,'-',dia,'  ',hora,':',minuto,':',segundo,'.',centesimo_segundo);

Ou então usar uma função de formatação da data (para aparecer tudo direitinho), como mostrou o bsccara:

with tempo.data,tempo.hora do
    writeln(Format('%2d-%2d-%4d - %2d:%2d:%2d.%2d',[ano,mes,dia,hora,minuto,segundo,centesimo_segundo]));

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Link to comment
Share on other sites

@nunopicado

tú teves um conflito de pensamento agora

with tempo.data,tempo.hora do
    writeln(ano,'-',mes,'-',dia,'  ',hora,':',minuto,':',segundo,'.',centesimo_segundo);

e no with que me passares

begin
     with tempo.relogio, tempo.data do begin  // Insere-se aqui, separados por virgula, os dois records
               gettime(hora, minuto, segundo, centesimo_segundo);
               // determina a hora do sistema
          
               getdate(ano, mes, dia, dia_semana);
               // determina a data do sistema
     end;
     // …
end.

na hora de compilar o a IDE FreePascal, acusou varios erros neste encadeamento.

após,revisar me apercebi,que, as variaveis não estavam de acordo em seu chamado.

como eu iria invocar, relogio e data, sendo que após voçê utilizou data,hora

Acho, que estavas,concentrado no script, que o bscara,havia efectuado;  😁

mas já estás resolvido, mudei respectivamente conforma na invocação acima 😁

Agora algumas dúvidinhas.

Já que invoquei  a variavel tipo word em minha record de registrar veiculos,e o vetor que estou utilizandoi : integer para esta record.

Acabei raciocinado,como o programa,irá automaticamente,gravar todas os registros,e todos os dados do tempo.data e tempo.hora. // acho que por lógica não =) , não tem nenhum vetor, array, que irá fazer este trabalho, haveeria como todas trabalharem junta sna mesma record?

como eu teria que fazer para gravar, exemplo, apos terminar 1 registro,ele salva a hora e data, no registro 1, depois ele no registro 2 , ele irá slavar do registro 2. e quando eu querer ver estas data e horas,só olhar no banco de dados, do registro numero 1 e ver a hora de data que fora feito! haveria possibilidade?

acho que se usar 1 vetor nas records relogio e data , ele faria isto?

Link to comment
Share on other sites

Acho, que estavas,concentrado no script, que o bscara,havia efectuado;  😄

mas já estás resolvido, mudei respectivamente conforma na invocação acima 😉

😄 :D Pois, foi mais ou menos isso! 😛😄

Eu, er... era só pra ver se estavas atento!  😁 :cheesygrin:

á que invoquei  a variavel tipo word em minha record de registrar veiculos,e o vetor que estou utilizandoi : integer para esta record.

A variável i pode ser do tipo Word, visto que não precisas de valores negativos para o nº de registo. Mas não és obrigado a isso!

Acabei raciocinado,como o programa,irá automaticamente,gravar todas os registros,e todos os dados do tempo.data e tempo.hora. // acho que por lógica não =) , não tem nenhum vetor, array, que irá fazer este trabalho, haveeria como todas trabalharem junta sna mesma record?

Exactamente. A variavel onde guardas os dados da data e relogio deverá estar inserida no record que usas para os restantes dados do veiculo. Assim, para cada um, terás essa informação.

Ex.:

type
   TTempo=Record  // Define-se um tipo de dados para a data e relogio chamado TTempo.
      data:record
         ano,mes,dia,dia_semana:word;
      end;
      relogio:record
         hora,minuto,segundo,centesimo_segundo:word
      end;
   end;
   TVeiculos=record
      marca,
      Modelo:String;
      Tempo:TTempo;  // Variável Tempo vai ter todos os campos definidos em TTempo;
      .
      .
      .
      .
   end;

Assim, cada veiculo poderá conter informações sobre data e relogio.

Depois, com uma função, tratamos da atribuição dos valores:

function VeDataHora:TTempo;
var
   DataHora:TTempo;  // Variável temporaria apenas para receber os valores das funções gettime e getdate
begin
   with DataHora.Data, DataHora.Relogio DO
      begin
         gettime(hora, minuto, segundo, centesimo_segundo);  // atribui os valores de relogio
         getdate(ano, mes, dia, dia_semana);  // atribui os valores de data
      end;
   VeDataHora:=DataHora;  // Retorna os valores encontrados
end;

Com isto, depois quando estiveres a ler os dados, antes de os gravares no ficheiro farias o seguinte:

.
.
.
reg.Tempo:=LeDataHora;  // Isto irá atribuir todos os dados de data e relogio ao registo de veiculos.
write(arquivo,reg);
.
.
.

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Link to comment
Share on other sites

😉  😛 era só pra ver se estavas atento! 😁 :cheesygrin: 

De facto,bem no que pensei

ahaha  😁

Com isto, depois quando estiveres a ler os dados, antes de os gravares no ficheiro farias o seguinte:

Poxa,fiste voçê entender,que eu utilizava ficheiros, sinceras desculpas, eu me coloquei errado em minhas perguntas, que acabou você pensando estraviadamente.

Não,utilizo ficheiros,porquê ainda não o aprendi, infelizmente,bem que queria..., estou tentando aprender mas a complexidade, es muito alta.

poderia ser assim a declaração ?:

type 
    TTempo=Record  // Define-se um tipo de dados para a data e relogio chamado TTempo.
      data:record
         ano,mes,dia,dia_semana:word;
      end;
      relogio:record
         hora,minuto,segundo,centesimo_segundo:word
      end;
    end;
    tipo_reg = record              
      modeloCar : string;  
      anoCar : real;      
      estoqueCar : real; 
      precoCar : real;  
      porcentagemCar : real; 
      precoTotal : real; // valor Total do Carro , juntamente com a Porcentagem
     end;
  

 

e não entendi, está function, apesar de nao ter me acostumado com ela

function VeDataHora:TTempo;
var
   DataHora:TTempo;  // Variável temporaria apenas para receber os valores das funções gettime e getdate
begin
   with DataHora.Data, DataHora.Relogio DO
      begin
         gettime(hora, minuto, segundo, centesimo_segundo);  // atribui os valores de relogio
         getdate(ano, mes, dia, dia_semana);  // atribui os valores de data
      end;
   VeDataHora:=DataHora;  // Retorna os valores encontrados
end;

como eu faria para invocar isto? e apesar, não acha que teriamos,que implementar uma array? ou ela vai  utilizaro vetor i: integer?//igual  ao que eu fiz no registor de carros

Link to comment
Share on other sites

Poxa,fiste voçê entender,que eu utilizava ficheiros, sinceras desculpas, eu me coloquei errado em minhas perguntas, que acabou você pensando estraviadamente.

Não? Então confundi...

Mas não é assim tão dificil, se quiseres aprender a trabalhar com ficheiros, não é preciso muito. Começa com o tutorial do Thoga31 que está aqui no forum, que rapidamente conseguirás.

poderia ser assim a declaração ?:

Quase... Tens de adicionar uma variável do tipo TTempo dentro do registo do tipo_Reg, como aqui:

type 
    TTempo=Record  // Define-se um tipo de dados para a data e relogio chamado TTempo.
      data:record
         ano,mes,dia,dia_semana:word;
      end;
      relogio:record
         hora,minuto,segundo,centesimo_segundo:word
      end;
    end;
    tipo_reg = record              
      modeloCar : string;  
      anoCar : real;      
      estoqueCar : real; 
      precoCar : real;  
      porcentagemCar : real; 
      precoTotal : real; // valor Total do Carro , juntamente com a Porcentagem
      Tempo:TTempo;  // Esta tem de ficar aqui, para ligar os dados da data e relogio ao registo de cada carro.
     end;
  

 

Agora a função.

Quando estás a ler os dados do utilizador, fazes por exemplo:

write('Modelo: ');
readln(reg.modeloCar);

Algo deste género, para cada campo do registo.

Como passaste a ter mais um campo Tempo, tens também de lhe adicionar os dados, neste caso, da data e relogio.

Podes usar o gettime e o getdate como estavas a fazer, no local onde lês os restantes campos:

write('Modelo: ');
readln(reg.modeloCar);
with reg.Tempo.Data, reg.Tempo.Relogio DO
      begin
         gettime(hora, minuto, segundo, centesimo_segundo);  // atribui os valores de relogio
         getdate(ano, mes, dia, dia_semana);  // atribui os valores de data
      end;

ou então, para não colocar esta operação no meio da leitura, colocas aquela função no inicio do programa, e depois chamas assim:

write('Modelo: ');
readln(reg.modeloCar);
reg.Tempo:=VeDataHora;  // Isto iria preencher automaticamente todos os campos da variável Tempo

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Link to comment
Share on other sites

báh,agora complicamos  :wallbash:

olha o meu registro todo.

for i:=UltimoRegistroEfectuado to 250 do begin
                                 repeat
                                   clrscr; corRed;
                                   writeln('REALIZANDO REGISTRO DE NUMERO ',i); corPreto;
                                   writeln;
                                   writeln('Nome do Automovel'); readln(registro[i].modeloCar);
                                     repeat
                                       if (registro[i].anoCar <= -1 ) then
                                         begin
                                           writeln; corRed;
                                           writeln('PorFavor, Informe Apenas Numeros Positivos'); corPreto;
                                         end;
                                       writeln('Ano do Automovel'); readln(registro[i].anoCar);
                                     until (registro[i].anoCar >= 0 ); // s¢ vai repetir se o anoCar For Menor que 0 ( ex:  -1, -250)
                                     repeat
                                       if (registro[i].estoqueCar <= -1 ) then
                                         begin
                                           writeln; corRed;
                                           writeln('PorFavor, Informe Apenas Numeros Positivos'); corPreto;
                                         end;
                                       writeln('Informe a Quantidade de Carros Que Possui no Estoque'); readln(registro[i].estoqueCar);
                                     until (registro[i].estoqueCar >= 0); // s¢ vai repetir se o estoqueCar for menor que 0;
                                     repeat
                                       if (registro[i].precoCar <= -1 ) then
                                         begin
                                           writeln; corRed;
                                           writeln('PorFavor, Informe Apenas Numeros Positivos'); corPreto;
                                         end;
                                       writeln('Informe o Pre‡o unico destes Automoveis'); readln(registro[i].precoCar);
                                     until (registro[i].precoCar >= 0 ); // s¢ vai repetir se precoCar for menor que 0
                                     repeat
                                       RefazPorcentagem:
                                       if (registro[i].porcentagemCar <= -1 ) then
                                         begin
                                           writeln; corRed;
                                           writeln('PorFavor, Informe Apenas Numeros Positivos'); corPreto;
                                         end;
                                       writeln('Informe a Porcentagem que Deseja Aumentar: '); readln(registro[i].porcentagemCar);
                                     until (registro[i].porcentagemCar >= 0); // só vai repetir quando o porcentagemCar for menor que 0
                                     registro[i].precoTotal := (registro[i].precoCar * (100 + registro[i].porcentagemCar) /100); //porcentagem
                                     clrscr; //limpa a tela
                                     writeln('-------------------------------------------------------------');
                                     write('Pre‡o do automovel: '); corRed;
                                     write(registro[i].precoCar:1:0); corPreto;
                                     writeln;
                                     writeln('-------------------------------------------------------------');
                                     write('Porcentagem Informada: '); corRed;
                                     write(registro[i].porcentagemCar:1:0); corPreto;
                                     writeln;
                                     writeln('-------------------------------------------------------------');
                                     write('Valor Total do Carro(com Porcentagem): '); corRed;
                                     write(registro[i].precoTotal:1:0); corPreto;
                                     writeln;
                                     writeln('-------------------------------------------------------------');
                                     writeln;
                                     writeln('Deseja Refazer a porcentagem?');   corRed;
                                     writeln('Digite [s] - Para Refazer o a Porcentagem');
                                     writeln('Digite [N] - Para Continuar o Registro do Automovel'); corPreto;
                                     readln(refazerPorcentagem);
                                     refazerPorcentagem := upcase(refazerPorcentagem);
                                     if (refazerPorcentagem = 'S') then
                                       begin
                                         goto RefazPorcentagem;
                                       end;
                                     clrscr; //limpa tela
                                     writeln('-------------------------------------------------------------');
                                     write('Nome do Automovel: '); corRed;
                                     write(registro[i].modeloCar); corPreto;
                                     writeln;
                                     writeln('-------------------------------------------------------------');
                                     write('Ano do Automovel: '); corRed;
                                     write(registro[i].anoCar:1:0); corPreto;
                                     writeln;
                                     writeln('-------------------------------------------------------------');
                                     write('Quantidade no Estoque: '); corRed;
                                     write(registro[i].estoqueCar:1:0); corPreto;
                                     writeln;
                                     writeln('-------------------------------------------------------------');
                                     write('Pre‡o do automovel: '); corRed;
                                     write(registro[i].precoCar:1:0); corPreto;
                                     writeln;
                                     writeln('-------------------------------------------------------------');
                                     write('Porcentagem Informada: '); corRed;
                                     write(registro[i].porcentagemCar:1:0); corPreto;
                                     writeln;
                                     writeln('-------------------------------------------------------------');
                                     write('Valor Total do Carro(com Porcentagem): '); corRed;
                                     write(registro[i].precoTotal:1:0); corPreto;
                                     writeln;
                                     writeln('-------------------------------------------------------------');
                                     writeln;
                                     writeln('Deseja Refazer todos estes da dados?');   corRed;
                                     writeln('Digite [s] - Para Refazer Todos os Dados');
                                     writeln('Digite [N] - Para Continuar Processo'); corPreto;
                                     readln(refazerRegistro);
                                     refazerRegistro := upcase(refazerRegistro);
                                 until (refazerRegistro = 'N');
                                 clrscr;
                                 j := j+1; // contador  faz com que acumule a quantidade de registros que foram efetuados com sucesso
                                 UltimoRegistroEfectuado := i + 1;   // o ciclo ter  depois de come‡ar no seguinte (i+1) e nÆo exatamente no ¡ndice onde parou
                                 {with tempo.relogio,tempo.data do
                                      writeln(Format('%2d-%2d-%4d - %2d:%2d:%2d.%2d',[ano,mes,dia,hora,minuto,segundo,centesimo_segundo]));            }
                                 writeln('Deseja Adicionar um Novo automovel?'); corRed;
                                 writeln('Digite [s] - Para Adicionar um Novo Carro');
                                 writeln('Digite [N] - Para Voltar ao Menu Principal'); corPreto;
                                 readln(addCarSN);
                                 addCarSN := upcase(addCarSN);
                                 if ( addCarSN = 'S') then
                                   begin
                                   end
                                 else
                                   begin
                                     break; //QUEBRA o ciclo FOR,e volta para o menu principal
                                   end;
                               end;
                             end;
                          end;

agora.

write('Modelo: ');
readln(reg.modeloCar);

Acho eu, que isto, seria meu

writeln('Nome do Automovel'); readln(registro[i].modeloCar);

o IDE FreePascal, está acusando,que isto é qualificado como ilegal, ouseja não está de acordo com a IDE;

veja:

with reg.Tempo.Data, reg.Tempo.Relogio DO
      begin
         gettime(hora, minuto, segundo, centesimo_segundo);  // atribui os valores de relogio
         getdate(ano, mes, dia, dia_semana);  // atribui os valores de data
      end;

por mais que eu ,tivesse,revisado,não consegui ter encontrado o porque deste error.

Link to comment
Share on other sites

with registo[i].Tempo.Data, registo[i].Tempo.Relogio DO
      begin
         gettime(hora, minuto, segundo, centesimo_segundo);  // atribui os valores de relogio
         getdate(ano, mes, dia, dia_semana);  // atribui os valores de data
      end;

No teu caso, seria mais assim...

Não conheço o programa todo, pelo que os pedaços de código que vou dando são genéricos. Tens depois de os ajustar à realidade do teu programa.

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Link to comment
Share on other sites

@nunopicado

No teu caso, seria mais assim...

Não conheço o programa todo, pelo que os pedaços de código que vou dando são genéricos. Tens depois de os ajustar à realidade do teu programa.

poxa,eu estava muito fora de mim quando fiz aquela perguunta idiota, ?

Obrigado, por não me matar quando fiz esta pergunta,(ah, agora estou lá em baixo kkkkkk)

@thoga31

Opa, a quanto tempo.

Se acalme,que eu já conheço este vicio de programação, e estou de acordo,mas quando tu viestes a ver meu script no GERAL, irá perceber, que fora, feito o minimo necessário de LABEL'S;

isto foi apenas feito para um eventual consumo de linhas;(mas, que que,não esta nem medio, nem exagerado);

irei postar o script, logo após a apresentação do trabalho,nesta sexta-feira a noite já estarei disponibilizando =)

ai tú e varios, poderão, dar as broncas necessárias 😉

Tanks,a todos que ajudaram, com isto Tópic Resolved

Link to comment
Share on other sites

@nunopicado, comentas isto? 🙂

errr.... tem mesmo de ser? 😉

É assim, Firewall. O uso do conjunto Label ... Goto é algo que é geralmente tido como desaconselhado, porque é fácil criar erros e programas de dificil leitura.

Uma das fontes desses erros é exactamente usar esses comandos em blocos diferentes, que é o que estás a fazer (label dentro do repeat, goto fora).

Há inclusivamente compiladores que dão a opção de desactivar o goto, tal é a relação utilidade - fiabilidade da instrução.

Note-se que geralmente, esses problemas não são criados directamente pela instrução, mas sim pelo seu mau uso. Mas somos todos humanos (alguns mais que outros 😕😄 ) e é fácil cairmos em erro, especialmente em programas de dificil leitura, que por coincidencia (ou talvez não) é outra das consequencias do goto.

Exemplo prático: Imagina que enquanto estás a fazer o programa, te deparas com a necessidade de inicializar umas variáveis antes daquele repeat.

Ao fazeres o goto para dentro dele, essas inicializações não serão feitas, e é extremamente complicado descobrir depois o porque dos comportamentos estranhos que apareçam.

O ideal será achares uma alternativa para o goto, seja pelo uso de um ciclo que comece e acabe no sitio certo, ou pela implementação de uma função que possas chamar recorrentemente se for necessária.

À parte disto, soou-me estranha outra coisa:

  if (addCarSN = 'S') then
  begin
  end
  else
  begin
    break; // QUEBRA o ciclo FOR,e volta para o menu principal
  end;

Não seria mais claro inverter o processo, já que não fazes nada com o S?

  if (addCarSN <> 'S') then break;  // QUEBRA o ciclo FOR,e volta para o menu principal

EDIT: Só agora vi a resposta do Firewall: 🙂

Eu não mato ninguém! 🙂 Sou da paz!

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Link to comment
Share on other sites

@nunopicado

leia a resposta que eu acabei d emandar antes dessa. 🙂

if (addCarSN <> 'S') then break;  // QUEBRA o ciclo FOR,e volta para o menu principal

agora vem a parte, eu sabia que dava pra fazer isso ?  ?

pois bem,é como o diatado: É viver para Aprender

aprendi mais 1 coisinha eheheh;

obrigado pela atenção, sem voçês,não teria conseguido 1 relógio =)

Aprecio a paciencia que voçês possuem; é admiravel. 😉

Link to comment
Share on other sites

Program relogio_digital ;
uses crt;
var i,j,hora,minuto,segundo:integer;
Begin
writeln(' ---------------------------------- ');
writeln('|                                  |');
writeln('|      Configurar hora...   :  :   | ');
writeln('|                                  | ');
writeln('|        Relogio Digital           | ');
writeln(' ----------------------------------  ');
gotoxy(26,3);
readln(hora);
gotoxy(30,3);
readln(minuto);
gotoxy(33,3);
readln(segundo);
for j:=1 to 24 do
for i:=1 to 60 do begin
segundo:=segundo+1;
if segundo=60 then begin
minuto:=minuto+1;
segundo:=0;
end;
if minuto=60 then begin
hora:=hora+1;
minuto:=0
end;
if hora=24 then
hora:=0;
clrscr;
writeln(hora,':',minuto,':',segundo);
delay (1000);
end;

End.
Edited by thoga31
Tags code + GeSHi
Link to comment
Share on other sites

Mas em defesa do Pedro, teve como primeiro post uma proposta de resolução de um problema...

🙂 Bem vindo Pedro.

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Link to comment
Share on other sites

Mas em defesa do Pedro, teve como primeiro post uma proposta de resolução de um problema...

Nada contra, e é óptimo ter este espírito. Há só dois senãos:

1) A exumação de tópicos não é uma actividade muito apoiada;

2) Não se deve dar exercícios resolvidos. Claro que, neste caso, o tópico é mais velho que o buço da Ti'Jaquina, pelo que não há problema, mas convém não ser um hábito. Nós ajudamos a chegar à solução, não damos hóstias.

Bem-vindo, Pedro (nem reparei que era a 1ª mensagem, lol... 😄 )

Edited by thoga31

Knowledge is free!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.