Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Verifica Mês Se é 31, 30, 29, 28


Martinsrj

Pergunta

Olá pessoal, beleza?

Gostaria apenas de uma dica. Como fazer um programa em pascal que verifique o mês digitado pelo usúário se é 30, 31, 29 ou 28 dias.

Obs.: Ainda eu não dei no curso matrizes, vetores.

Estou inciando da seguinte forma, porem não exibe a quantida de dias do mês digitado pelo usuário.

program verifica_mes;
uses 
crt;
procedure leitura (var mes: string);
begin
    writeln ('Programa verifica se o mˆs ‚ 28, 29, 30, 31');
    writeln ('Janeiro, Fevereiro, Março, Abril, Maio, Junho, Julho, Agosto, Setembro, Outubro, Novembro, Dezembro');
    writeln ('Digite um mês do ano:');
    readln (mes);
end;
procedure calculo (mes:string; var Janeiro, Abril : string);
begin
    if (mes) = Janeiro then
    writeln ('Possui 31 dias');
        if (mes) = Abril then
        writeln ('Possui 30 dias');
end;

var {variavel global}
    mes_do_ano, J, A: string;

begin
clrscr;
    leitura (mes_do_ano);
    calculo (mes_do_ano, J, A);
readkey;
end.

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

você Não pode usar o "case" não??

program verifica_mes;
uses
crt;
procedure leitura (var mes: string);
begin
    writeln ('Programa verifica se o mˆs ‚ 28, 29, 30, 31');
    writeln ('Janeiro, Fevereiro, Março, Abril, Maio, Junho, Julho, Agosto, Setembro, Outubro, Novembro, Dezembro');
    writeln ('Digite um mês do ano:');
    readln (mes);
end;
procedure calculo (mes:string);
begin
    case mes of

    "Janeiro" : writeln ("esse mês possui 31 dias")
    "Fevereiro" : writeln ("esse mês possui 28 dias")
    "Março" : writeln ("esse mês possui 31 dias")
    "Abril" : writeln ("esse mês possui 30 dias")
    "Maio" : writeln ("esse mês possui 31 dias")
    "Junho" : writeln ("esse mês possui 30 dias")
    "Julho" : writeln ("esse mês possui 31 dias")
    "Agosto" : writeln ("esse mês possui 31 dias")
    "Setembro" : writeln ("esse mês possui 30 dias")
    "Outubro" : writeln ("esse mês possui 31 dias")
    "Novembro" : writeln ("esse mês possui 30 dias")
    "Dezembro" : writeln ("esse mês possui 31 dias")
  else
    writeln ("Mês Invalido")
end;

var {variavel global}
    mes_do_ano, J, A: string;

begin
clrscr;
    leitura (mes_do_ano);
    calculo (mes_do_ano, J, A);
readkey;
end.

Link para o comentário
Compartilhar em outros sites

  • 0

Realmente Rafael o Case é a melhor, porem ainda eu não dei no curso.

Consegui rodar sem colocar a condição para o Mês de Fevereiro, porem quando eu adiciono a condição para o mês de fereiro da o seguinte erro na compilação no Turbo pascal: Error 57: THEN expected.

Até o momento aprendi os seguinte comandos: if, while, for e o repeat.

CODIGO ABAIXO:

program verifica;
uses
crt;
procedure leitura (var ver_mes, ver_ano: integer);
begin
     writeln ('Programa verifica se o mˆs ‚ 28, 29, 30 ou de 31 dias');
     writeln ('1: Janeiro, 2: Fevereiro, 3: Mar‡o, 4: Abril, 5: Maio,6:Junho');
     writeln ('7: Julho, 8: Agosto, 9: Setembro, 10: Outubro, 11: Novembro, 12: Dezembro');
     writeln ('Digite o N£mero do mˆs e o ano');
     readln (ver_mes, ver_ano);
end;
procedure calculo_imprime (ver_mes, ver_ano: integer);
begin
     if ver_mes = 1 then
        writeln ('Mˆs de Janeiro possui 31 Dias');
     if ver_mes = 2 and ver_ano mod 4 = 0 then
        writeln ('Mˆs de Fevereiro possui 29 dias (Ano Bissexto!!!)
        else
            writeln ('Mˆs de fevereiro possui 28 dias.');
     if ver_mes = 4 then
        writeln ('Mˆs de Abril possui 30 dias');
end;

var
verifica_mes, verifica_ano: integer;
begin
clrscr;
repeat
     leitura (verifica_mes, verifica_ano);
     calculo_imprime (verifica_mes, verifica_ano);
until verifica_mes < 1;
readkey;
end.
você Não pode usar o "case" não??
program verifica_mes;
uses
crt;
procedure leitura (var mes: string);
begin
    writeln ('Programa verifica se o mˆs ‚ 28, 29, 30, 31');
    writeln ('Janeiro, Fevereiro, Março, Abril, Maio, Junho, Julho, Agosto, Setembro, Outubro, Novembro, Dezembro');
    writeln ('Digite um mês do ano:');
    readln (mes);
end;
procedure calculo (mes:string);
begin
    case mes of

    "Janeiro" : writeln ("esse mês possui 31 dias")
    "Fevereiro" : writeln ("esse mês possui 28 dias")
    "Março" : writeln ("esse mês possui 31 dias")
    "Abril" : writeln ("esse mês possui 30 dias")
    "Maio" : writeln ("esse mês possui 31 dias")
    "Junho" : writeln ("esse mês possui 30 dias")
    "Julho" : writeln ("esse mês possui 31 dias")
    "Agosto" : writeln ("esse mês possui 31 dias")
    "Setembro" : writeln ("esse mês possui 30 dias")
    "Outubro" : writeln ("esse mês possui 31 dias")
    "Novembro" : writeln ("esse mês possui 30 dias")
    "Dezembro" : writeln ("esse mês possui 31 dias")
  else
    writeln ("Mês Invalido")
end;

var {variavel global}
    mes_do_ano, J, A: string;

begin
clrscr;
    leitura (mes_do_ano);
    calculo (mes_do_ano, J, A);
readkey;
end.

Link para o comentário
Compartilhar em outros sites

  • 0

tente assim

if ver_mes = 2 then
            if ver_ano mod 4 = 0 then
                 writeln ('Mˆs de Fevereiro possui 29 dias (Ano Bissexto!!!);
           else
                 writeln ('Mˆs de fevereiro possui 28 dias.')
         end; {esse end é em relação ao primeiro ao if Ver_mes = 2...}

inclua apenas na parte de Fevereiro

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Rapael!!!

Continua dando erro (Error 42: Error in expression) no código abaixo:

OBS: Utilizo o Turbo Pascal.

program verifica;
uses
crt;
procedure leitura (var ver_mes, ver_ano: integer);
begin
     writeln ('Programa verifica se o mˆs ‚ 28, 29, 30 ou de 31 dias');
     writeln ('1: Janeiro, 2: Fevereiro, 3: Mar‡o, 4: Abril, 5: Maio,6:Junho');
     writeln ('7: Julho, 8: Agosto, 9: Setembro, 10: Outubro, 11: Novembro, 12: Dezembro');
     writeln ('Digite o N£mero do mˆs');
     readln (ver_mes);
     writeln ('Digite o Ano');
     readln (ver_ano);
end;
procedure calculo_imprime (ver_mes, ver_ano: integer);
begin
     if ver_mes = 1 then
        writeln ('Mˆs de Janeiro possui 31 Dias');
     if ver_mes = 2 and then
        if ver_ano mod 4 = 0 then
           writeln ('Mˆs de Fevereiro possui 29 dias (Ano Bissexto!!!)')
        else
            writeln ('Mˆs de fevereiro possui 28 dias.');
     end;
     if ver_mes = 4 then
        writeln ('Mˆs de Abril possui 30 dias');
     if ver_mes = 5 then
        writeln ('Mˆs de Maio possui 31 Dias');
     if ver_mes = 6 then
        writeln ('Mˆs de Junho possui 30 Dias');
     if ver_mes = 7 then
        writeln ('Mˆs de Julho possui 31 Dias');
     if ver_mes = 8 then
        writeln ('Mˆs de Agosto possui 31 Dias');
     if ver_mes = 9 then
        writeln ('Mˆs de Setembro possui 30 Dias');
     if ver_mes = 10 then
        writeln ('Mˆs de Outubro possui 31 Dias');
     if ver_mes = 11 then
        writeln ('Mˆs de Novembro possui 30 Dias');
     if ver_mes = 12 then
        writeln ('Mˆs de Dezembro possui 31 Dias');

end;

var
verifica_mes, verifica_ano: integer;
begin
clrscr;
repeat
     leitura (verifica_mes, verifica_ano);
     calculo_imprime (verifica_mes, verifica_ano);
until verifica_mes < 1;
readkey;
end.

Link para o comentário
Compartilhar em outros sites

  • 0

cara desculpa n tem o end, o correto é esse

if ver_mes = 2 then
        if ver_ano mod 4 = 0 then
           writeln ('Mˆs de Fevereiro possui 29 dias (Ano Bissexto!!!)')
        else
            writeln ('Mˆs de fevereiro possui 28 dias.');

depois do if Ver_mes = 2 ( tem que remover o and tb)

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...