Ir ao conteúdo
  • Cadastre-se
HUNTER020

Pascal Alguem sabe me ajudar com esse erro?

Posts recomendados

Estou tento um erro no end final do código e não consigo resolver

program lista_de_exercícios ;
var
   exercicio, exercicio1 : string;
   num1, num2, num3, num4 : real;
   a, b, c, d : char;
   
begin
  writeln('');
  writeln('=========================================');
  writeln('            lista de exercicios          ');
  writeln('=========================================');
  writeln('');
  
  writeln('');
  writeln('=========================================');
  writeln('             1_exercicio 1               ');
  writeln('             2_exercicio 3               ');
  writeln('             3_exercicio 5               ');
  writeln('             4_sair                      ');
  writeln('=========================================');
  writeln('');
  
  repeat
  
    writeln('informe o exercicio (1, 2 ou 3 - press 4 para finalizar o programa): ');
  read(exercicio);
  if(exercicio = '1') then
  begin
    exercicio1 := ('qual dos itens e um dispositivo de entrada?');
  writeln('');
  writeln('=========================================');
  writeln('              a - teclado                ');
  writeln('              b - monitor                ');
  writeln('              c - caixa de som           ');
  writeln('              d - impressora             ');
  writeln('=========================================');
  writeln('digite a resposta (a, b, c ou d): ');
  read(resposta);
  if(resposta = 'a') then
  begin
  writeln('resposta correta!');
  end else
    if(resposta = 'b') then
    begin
    writeln('resposta incorreta');
    end;
begin
    if(resposta = 'c') then
    begin
    writeln('resposta incorreta');
    end;
  begin
    if(resposta = 'd') then
    writeln('resposta incorreta');
    end.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@HUNTER020, olá.

 

1) não use read(), use apenas readln();

 

2) faltou declarar a variável resposta;

 

3) em 2 momentos, em vez de else, usou begin;

 

4) faltou o until do repeat.

 

program lista_de_exercicios;
var
  exercicio, exercicio1  : string;
  num1, num2, num3, num4 : real;
  a, b, c, d : char;
  resposta :string; //faltou declarar
BEGIN
writeln('');
writeln('=========================================');
writeln('            lista de exercicios          ');
writeln('=========================================');
writeln('');
writeln('');
writeln('=========================================');
writeln('             1_exercicio 1               ');
writeln('             2_exercicio 3               ');
writeln('             3_exercicio 5               ');
writeln('             4_sair                      ');
writeln('=========================================');
writeln('');
repeat
  writeln('informe o exercicio (1, 2 ou 3 - press 4 para finalizar o programa): ');
  readln(exercicio);
  if (exercicio = '1') then
    begin
    exercicio1 := ('qual dos itens e um dispositivo de entrada?');
    writeln('');
    writeln('=========================================');
    writeln('              a - teclado                ');
    writeln('              b - monitor                ');
    writeln('              c - caixa de som           ');
    writeln('              d - impressora             ');
    writeln('=========================================');
    writeln('digite a resposta (a, b, c ou d): ');
    readln(resposta);
    if (resposta = 'a') then
      begin
      writeln('resposta correta!');
      end
    else
      if (resposta = 'b') then
        begin
        writeln('resposta incorreta');
        end
    //begin
    else
      if (resposta = 'c') then
        begin
        writeln('resposta incorreta');
        end
    //begin
    else
      if (resposta = 'd') then
        writeln('resposta incorreta');
    //end.
    end;
until exercicio = '4'; //faltou 
END.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

estou tentando aqui mas ainda está dando erro no end do final do código

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 minuto atrás, HUNTER020 disse:

estou tentando aqui mas ainda está dando erro no end do final do código

 

Qual compilador está utilizando? e poste seu código atual para verificarmos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou utilizando o pascalzin

  
 

  writeln('informe o exercicio (1, 2 ou 3 - press 4 para finalizar o programa): ');
  readln(exercicio);
  if(exercicio = '1') then
  begin
    exercicio1 := ('qual dos itens e um dispositivo de entrada?');
  writeln('');
  writeln('=========================================');
  writeln('              a - teclado                ');
  writeln('              b - monitor                ');
  writeln('              c - caixa de som           ');
  writeln('              d - impressora             ');
  writeln('=========================================');
  writeln('digite a resposta (a, b, c ou d): ');
  readln(resposta);
  if(resposta = 'a') then
  begin
  writeln('resposta correta!');
  end else
    if(resposta = 'b') then
    else
    writeln('resposta incorreta');
    end else
    if(resposta = 'c') then
    else
    writeln('resposta incorreta');
    if(resposta = 'd') then
    writeln('resposta incorreta');
    end.
adicionado 1 minuto depois

O objetivo final era esse:


2) Elabore um algoritmo que monte um menu com as seguintes opções:
1 – Exercício 1
2 – Exercício 3
3 – Exercício 5
4 – Fim
Se o usuário executar a opção 1, o algoritmo deve executar o exercício 1 desta lista.
Se o usuário executar a opção 2, o algoritmo deve executar o exercício 3 desta lista.
Se o usuário executar a opção 3, o algoritmo deve executar o exercício 5 desta lista.
Se o usuário executar a opção 4, o algoritmo deve finalizar a execução do algoritmo com a mensagem, “fim de execução - tudo de bom.”.
Caso seja informado um número diferente de 1, 2 3 e 4, o algoritmo deve emitir a mensagem de opção inválida e voltar a pedir uma opção de menu novamente.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está faltando parte do código. Preciso do código completo. Pressione Ctrl+A + Ctrl+C no PascalZim.

 

 

Para postar um código no Fórum, clique antes no botão <>.

 

tag code.PNG

 

 

 

 

Selecione Objective C, como na imagem abaixo:

 

tag code2.jpg

 

Cola o código e insere.

 

No aguardo.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@simon viegas @simon viegas

program lista_de_exercicios ;
var
exercicio, exercicio1 : string;
num1, num2, num3, num4 : real;
a, b, c, d : char;
resposta : string;

begin
  writeln('');
  writeln('=========================================');
  writeln('            lista de exercicios          ');
  writeln('=========================================');
  writeln('');
  
  writeln('');
  writeln('=========================================');
  writeln('             1_exercicio 1               ');
  writeln('             2_exercicio 3               ');
  writeln('             3_exercicio 5               ');
  writeln('             4_sair                      ');
  writeln('=========================================');
  writeln('');
  
  writeln('informe o exercicio (1, 2 ou 3 - press 4 para finalizar o programa): ');
  readln(exercicio);
  if(exercicio = '1') then
  begin
    exercicio1 := ('qual dos itens e um dispositivo de entrada?');
    writeln('');
    writeln('=========================================');
    writeln('              a - teclado                ');
    writeln('              b - monitor                ');
    writeln('              c - caixa de som           ');
    writeln('              d - impressora             ');
    writeln('=========================================');
    writeln('digite a resposta (a, b, c ou d): ');
    readln(resposta);
    if(resposta = 'a') then
    begin
      writeln('resposta correta!');
    end else
    if(resposta = 'b') then
    else
    writeln('resposta incorreta');
  end else
  if(resposta = 'c') then
  else
  writeln('resposta incorreta');
  if(resposta = 'd') then
  writeln('resposta incorreta');
end.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, HUNTER020 disse:

estou tentando aqui mas ainda está dando erro no end do final do código

 

Compilou normal. Não deu erro algum.

 

O programa faz o que colocou para fazer e fecha... coloque o repeat/until.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
agora, HUNTER020 disse:

@Simon Viegas no final do código?

 

Não. repeat/until é uma estrutura de repetição. Você colocar dentro do laço de repetição, o trecho que você quer que repita...

 

No caso, coloque o repeat logo após o begin principal e o until antes do end.

 

obs.: lembre-se que você precisa colocar a condição de parada no until.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Simon Viegas ok, obrigado pela ajuda cara, me salvou aqui

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste o código atual para analisarmos... tem outras coisas para corrigir no código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Simon Viegas não consegui fazer o código repetir a função

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue um esboço:

program lista_de_exercicios ;
var
  menu, exercicio1 : string;
  num1, num2, num3, num4 : real;
  a, b, c, d : char;
  resposta : string;

begin
repeat
  writeln('');
  writeln('=========================================');
  writeln('            lista de exercicios          ');
  writeln('=========================================');
  writeln('');  
  writeln('');
  writeln('=========================================');
  writeln('             1_exercicio 1               ');
  writeln('             2_exercicio 3               ');
  writeln('             3_exercicio 5               ');
  writeln('             4_sair                      ');
  writeln('========================================');
  writeln('');
  writeln('informe o exercicio (1, 2 ou 3 - press 4 para finalizar o programa): ');
  readln(menu);
  if (menu = '1') then
    begin
    exercicio1 := ('qual dos itens e um dispositivo de entrada?');
    writeln('');
    writeln('=========================================');
    writeln('              a - teclado                ');
    writeln('              b - monitor                ');
    writeln('              c - caixa de som           ');
    writeln('              d - impressora             ');
    writeln('=========================================');
    writeln('digite a resposta (a, b, c ou d): ');
    readln(resposta);
    if(resposta = 'a') then
      writeln('resposta correta!')
    else
      if(resposta = 'b') then
        writeln('resposta incorreta')
      else
        if(resposta = 'c') then
          writeln('resposta incorreta')
        else
          if(resposta = 'd') then
            writeln('resposta incorreta')
    end;
until menu = '4';
end.

 

Compare com o seu código e veja o que mudou.  Qualquer dúvida é só perguntar.

 

 

Aí, agora perceba que só existe uma resposta correta, logo, "se resposta igual a 'a', então exiba resposta correta, senão, exiba resposta errada".... ou seja, não precisa dos outros if para verificar se foi 'b', 'c' e 'd', entende?

Altere o código e corrija isso.


No aguardo.

 

 

 

adicionado 9 minutos depois

Outra coisa: acho que não fica lega iniciar uma frase com letra minúscula. Ex.:

 

Em vez de:

3 horas atrás, HUNTER020 disse:

writeln('            lista de exercicios          ');

 

Usar:

writeln('            Lista de exercicios          ');

 

Ou nesse caso como é um título do menu, poderia deixar tudo em maiúsculo.

 

writeln('            LISTA DE EXERCICIOS          ');

 

 

E a lista do menu:

  writeln('=========================================');
  writeln('             1 – Exercício 1             ');
  writeln('             2 – Exercício 3             ');
  writeln('             3 – Exercício 5             ');
  writeln('             4 – Fim                     ');
  writeln('=========================================');

 

 

 

 

 

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@simon viegas

program lista_de_exercicios ;
var
exercicio, exercicio1 : string;
num1, num2, num3, num4 : real;
a, b, c, d : char;
resposta : string;
cont : string;
begin 
 
  repeat
 
  writeln('');
  writeln('=======================================================================');
  writeln('                             lista de exercicios                       ');
  writeln('=======================================================================');
  writeln('');
  
  writeln('');
  writeln('=======================================================================');
  writeln('                                1_exercicio 1                          ');
  writeln('                                2_exercicio 3                          ');
  writeln('                                3_exercicio 5                          ');
  writeln('                                   4_sair                              ');
  writeln('=======================================================================');
  writeln('');
  
  writeln('informe o exercicio (1, 2 ou 3 - press 4 para finalizar o programa): ');
  readln(exercicio);
  if(exercicio = '1') then
  begin
    exercicio1 := ('qual dos itens e um dispositivo de entrada?');
    writeln('');
    writeln('=========================================');
    writeln('              a - teclado                ');
    writeln('              b - monitor                ');
    writeln('              c - caixa de som           ');
    writeln('              d - impressora             ');
    writeln('=========================================');
    writeln('digite a resposta (a, b, c ou d): ');
    readln(resposta);
    if(resposta = 'a') then
    begin
      writeln('resposta correta!');
    end else
    if(resposta = 'b, c, d') then
    else
    writeln('resposta incorreta');
  end;
  writeln('deseja realizar outro exercício? (y/4): ');
  readln(cont);
  
  until(upcase(cont) = '4');
  
  end.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

1#

Para que isso?

 

2 minutos atrás, HUNTER020 disse:

a, b, c, d : char;

 

Basta remover...

 

 

 

2#

3 minutos atrás, HUNTER020 disse:

until(upcase(cont) = '4');

 

Por quê a variável se chamar cont?

Para quê UpCase()?

 

De qualquer forma... retiro o trecho:

6 minutos atrás, HUNTER020 disse:

  writeln('deseja realizar outro exercício? (y/4): ');
  readln(cont);

 

Pois quem controla o laço de repetição é as opções do menu.

 

adicionado 1 minuto depois

*o until vai usar a variável da opção do menu mesmo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Simon Viegas @Simon Viegaswriteln('deseja realizar outro exercício? (y/4): '); Essa eu coloquei pra pessoa saber qual tecla utilizar para permanecer ou sair do programa 

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 minuto atrás, HUNTER020 disse:

@Simon Viegas @Simon Viegaswriteln('deseja realizar outro exercício? (y/4): '); Essa eu coloquei pra pessoa saber qual tecla utilizar para permanecer ou sair do programa 

 

Isso já tem no menu. Não precisa. O programa inicia; aparece o menu; O usuário escolhe um exercício (ou sai, é claro); responde a pergunta (que por sinal não está aparecendo); tem o resultado da resposta; e aí volta para o menu principal novamente. Esse é fluxo

Compartilhar este post


Link para o post
Compartilhar em outros sites
program lista_de_exercicios ;
var
exercicio, exercicio1 : string;
num1, num2, num3, num4 : real;

resposta : string;
cont : string;
begin 
 
  repeat
 
  writeln('');
  writeln('===========================================================================================');
  writeln('                                      lista de exercicios                                  ');
  writeln('===========================================================================================');
  writeln('');
  
  writeln('');
  writeln('================================================================================');
  writeln('                                         1_exercicio 1                          ');
  writeln('                                         2_exercicio 3                          ');
  writeln('                                         3_exercicio 5                          ');
  writeln('                                            4_sair                              ');
  writeln('================================================================================');
  writeln('');
  
  writeln('informe o exercicio (1, 2 ou 3 - press 4 para finalizar o programa): ');
  readln(exercicio);
  if(exercicio = '1') then
  begin
    writeln('qual dos itens e um dispositivo de entrada?');
    writeln('');
    writeln('==============================================================================');
    writeln('                                      a - teclado                             ');
    writeln('                                      b - monitor                             ');
    writeln('                                      c - caixa de som                        ');
    writeln('                                      d - impressora                          ');
    writeln('==============================================================================');
    writeln('digite a resposta (a, b, c ou d): ');
    readln(resposta);
    if(resposta = 'a') then
    begin
      writeln('resposta correta teclado!');
    end else
    if(resposta = 'b, c, d') then
    else
    writeln('resposta incorreta');
  end;
  readln(cont);
  
  until((cont) = '4');
  
  end.

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

1#
Remova a variável cont do programa. Não tem algo a ver com o código. No until deixe a variável exercicio;

 

 

2#

Muda o tipo da variável exercicio e a variável resposta para char, em vez de string.

 

 

3#

Remova as variáveis num1, num2, num3, num4. Não está utilizando para algo.

 

 

4#

Inicie frases com letras maiúsculas! Tudo em minúsculo fica muito estranho.

 

 

5#

Para resposta incorreta NÃO precisa de if.

adicionado 1 minuto depois

Fica assim:

    if (resposta = 'a') then
      writeln('Resposta correta!')
    else
      writeln('Resposta incorreta');

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Falta também fazer:

 

6#

2 horas atrás, HUNTER020 disse:

Se o usuário executar a opção 4, o algoritmo deve finalizar a execução do algoritmo com a mensagem, “fim de execução - tudo de bom.”.

 

 

7#

2 horas atrás, HUNTER020 disse:

Caso seja informado um número diferente de 1, 2 3 e 4, o algoritmo deve emitir a mensagem de opção inválida e voltar a pedir uma opção de menu novamente.

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Simon Viegas Desculpe a falta de experiencia, mas como faço isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites
agora, HUNTER020 disse:

@Simon Viegas Desculpe a falta de experiencia, mas como faço isso?

 

Isso o quê? eu sugeri 7 coisas... :)

 

Faça logo as 5 primeiras.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Simon Viegas as duas ultimas

 

adicionado 0 minutos depois
agora, HUNTER020 disse:

@Simon Viegas as duas ultimas

 

as outras 5 já fiz aqui

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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...

GRÁTIS: minicurso “Como ganhar dinheiro montando computadores”

Gabriel TorresGabriel Torres, fundador e editor executivo do Clube do Hardware, acaba de lançar um minicurso totalmente gratuito: "Como ganhar dinheiro montando computadores".

Você aprenderá sobre o quanto pode ganhar, como cobrar, como lidar com a concorrência, como se tornar um profissional altamente qualificado e muito mais!

Inscreva-se agora!