Autor Tópico: Ajuda no erro de sintaxe ¬¬  (Lida 4740 vezes)

Offline mazoni

  • Usuário Ubuntu
  • *
  • Mensagens: 104
    • Ver perfil
Ajuda no erro de sintaxe ¬¬
« Online: 23 de Janeiro de 2008, 12:05 »
Olá pessoal to começando a ter aula de pascal e to tentando fazer esse script, só que ta dando um erro de sintaxe que eu não estou conseguindo axar, podem me ajudar a encontrá-lo?
Código: [Selecionar]
program peso;

var

        N1,N2,N3: string[50];
        P1,P2,P3: real;

begin
        write('Digite o nome da 1º pessoa');
        readln(N1);
        write('Digite o peso da pessoa acima');
        readln(P1);
        write('Digite o nome da 2º pessoa');
        readln(N2);
        write('Digite o peso da pessoa acima');
        readln(P2);
        write('Digite o nome da 3º pessoa');
        readln(N3);
        write('Digite o peso da pessoa acima');
        readln(P3);

        begin

        if (P1 > P2) and (P1 > P3) then
                write(N1 + 'pesa' + P1);
                if(P2 > P3) then
                      write(N2 + 'pesa' + P2);
                      write(N3 + 'pesa' + P3);
                   
                else
                      write(N3 + 'pesa' + P3);
                      write(N2 + 'pesa' + P2);
               
                end;

        else
 
        if (P2 > P1) and (P2 > P3) then
                write(N2 + 'pesa' + P2);
                if(P1 > P3) then
                      write(N1 + 'pesa' + P1);
                      write(N3 + 'pesa' + P3);
                else
                      write(N3 + 'pesa' + P3);
                      write(N1 + 'pesa' + P1);
                end;
       
        else

        if (P3 > P1) and (P3 > P2) then
                write(N3 + 'pesa' P3);
                if(P1 > P2) then
                       write(N1 + 'pesa' + P1);
                       write(N2 + 'pesa' + P2);
                else
                       write(N2 + 'pesa' P2);
                       write(N1 + 'pesa' P1);
                end;
        end;

end.

eu estou com dúvida se estou usando o tipo certo de variáveis, pra variável literal estou usando "string[50]" e para numérico to usando "real".Está correto?Ou posso colocar outros tipos que cairiam melhor para esse exercício?

O programa é simples, ele armazena o nome e peso de 3 pessoas que mostra o resultado de forma decrescente.
O erro que aparece no meu terminal é esse:
Código: [Selecionar]
Free Pascal Compiler version 2.0.4 [2007/02/02] for i386
Copyright (c) 1993-2006 by Florian Klaempfl
Target OS: Linux for i386
Compiling peso.pas
[b]peso.pas(30,17) Fatal: Syntax error, ";" expected but "ELSE" found
peso.pas(30,17) Fatal: Compilation aborted
Error: /usr/bin/ppc386 returned an error exitcode (normal if you did not specify a source file to be compiled)[/b]

Agradeço desde já  ;)
Gtalk: outlawwww@gmail.com
Jabber ID: mazoni@jabber.org

Offline brunei

  • Usuário Ubuntu
  • *
  • Mensagens: 97
    • Ver perfil
    • Ubuntu Brasil - Wiki
Re: Ajuda no erro de sintaxe ¬¬
« Resposta #1 Online: 01 de Fevereiro de 2008, 13:23 »
Olá mazoni,

Em pascal, quando você tem um IF com mais de uma linha de comandos, usa-se begin e end. Por exemplo, no teu programa, onde aparece:

Código: [Selecionar]
if(P2 > P3) then
    write(N2 + 'pesa' + P2);
    write(N3 + 'pesa' + P3);
else
    write(N3 + 'pesa' + P3);
    write(N2 + 'pesa' + P2);
end;

ficaria:

Código: [Selecionar]
if(P2 > P3) then
    begin
    write(N2 + 'pesa' + P2);
    write(N3 + 'pesa' + P3);
    end
else
    begin
    write(N3 + 'pesa' + P3);
    write(N2 + 'pesa' + P2);
    end;

Lembrando que o último end usa ponto-e-vírgula. Corrija isso em todos os seus IF's onde existam mais de um comando sendo executado para a mesma condição.

E mais, tem um begin em excesso, pelo que vejo:

Código: [Selecionar]
readln(P3);

begin

if (P1 > P2) and (P1 > P3) then

Para ter certeza, verifique se todo end tem seu begin e que não sobram nem begin's e nem end's.
« Última modificação: 01 de Fevereiro de 2008, 13:30 por brunei »
Bruno Ribeiro

Offline mazoni

  • Usuário Ubuntu
  • *
  • Mensagens: 104
    • Ver perfil
Re: Ajuda no erro de sintaxe ¬¬
« Resposta #2 Online: 01 de Fevereiro de 2008, 21:56 »
vlw!!esse era o erro, muito obrigado!!
Gtalk: outlawwww@gmail.com
Jabber ID: mazoni@jabber.org

Offline brunei

  • Usuário Ubuntu
  • *
  • Mensagens: 97
    • Ver perfil
    • Ubuntu Brasil - Wiki
Re: Ajuda no erro de sintaxe ¬¬
« Resposta #3 Online: 18 de Fevereiro de 2008, 08:39 »
Olá mazzoni,

Só estou lembrando você de alterar o assunto do seu post para incluir a palavra "[resolvido]" para que os demais membros saibam que o problema foi resolvido.

Até mais! :)
Bruno Ribeiro