Ir ao conteúdo
  • Cadastre-se

Ajuda Dev-pascal a executar um Algoritmo


deadhorse23

Posts recomendados

Primeiramente gostaria de dizer boa noite a todos do forum, sou novato no forum e a minha dúvida é a seguinte:

Comecei a fazer um curso sobre programação, e o professor solicitou que transformássemos um algoritmo que estava sendo executado no hall para pascal, e fazer o seu pseudocódigo, só que não consegui executar o algoritmo no pascal e não fiz o pseudocódigo, se puderem ajudar, ver onde está errado, ficaria agradecido. Desde já agradeço a atenção de Todos. Segue abaixo o código em Hall e o Pascal(que não estou conseguindo executar).

Fazer um algoritmo para calcular o numero de dias decorridos entre duas datas (considerar também a ocorrência de anos bissextos), sabendo-se que:

a) cada par de datas é lido numa linha, a última linha contem o número do dia negativo

B) a primeira data na linha é sempre a mais antiga e o ano está digitado com 4 dígitos.

algoritmo()

{

declare DIA1: inteiro;

declare MES1: inteiro;

declare ANO1: inteiro;

declare DIA2: inteiro;

declare MES2: inteiro;

declare ANO2: inteiro;

declare DIFE: inteiro; // numero de dias entre as duas datas

declare BISSEXTO:inteiro;

declare AUX: inteiro;

// recebendo as datas

leia ( "(data 1) informe o dia: ", dia1 );

leia ( " informe o mes : ", mes1 );

leia ( " informe o ano : ", ano1 );

leia ( "(data 2) informe o dia : ", dia2 );

leia ( " informe o mes : ", mes2 );

leia ( " informe o ano : ", ano2 );

// inicializando os acumuladores

DIFE := 0;

// acumulando os anos

AUX := ANO1;

repita ateque ( AUX == ANO2 )

{

BISSEXTO := Resto ( AUX, 4 );

se ( BISSEXTO == 0 )

{

DIFE := DIFE + 366;

}

senao

{

DIFE := DIFE + 365;

}

AUX := AUX + 1;

}

escreva ( "A diferenca em dias entre ", DIA1, "/", MES1, "/", ANO1, " e ", DIA2, "/",

MES2, "/", ANO2, " ‚ ", DIFE );

/* ainda esta incompleto ... */

}

Abaixo esta em pascal, porém não consigo compilar:

Program Dias;

Uses crt;

Var

dia1: integer;

mes1: integer;

ano1: integer;

dia2: integer;

mes2: integer;

ano2: integer;

dife: integer; { numero de dias entre as duas datas}

bissexto:integer;

aux: integer;

begin

{recebendo as datas}

write('(data 1) Informe o Dia : ');

readln(dia1);

write('Informe o Mes : ');

readln(mes1);

write('Informe o Ano : ');

readln(ano1);

write('(data 2) Informe o Dia : ');

readln(dia2);

write('Informe o Mes : ');

readln(mes2);

write('Informe o Ano : ');

readln(ano2);

{inicializando os acumuladores}

dife := 0;

{acumulando os anos}

aux := ano1;

repeat until ( aux = ano2 );

begin

bissexto := mod ( aux, 4 );

if ( bissexto == 0 )

begin

dife := dife + 366;

end

else

begin

dife := dife + 365;

end.

Faltou o resto do codigo:

aux := aux + 1;

end

writeln ( 'a diferenca em dias entre ', dia1, '/', mes1, '/', ano1, ' e ',

dia2, '/', mes2, '/', ano2, ' ‚ ', dife );

(* ...ainda esta incompleto ... *)

End.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...