• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

jorgeBarata

Duvidas no meu programa.

2 mensagens neste tópico

No final do bloco principal do programa tenho um erro que não sei como poderei resolver...

dá-me o 'Erro 85: ";" expected.

já tentei várias maneiras e não consigo resolver.

gostaria que me podessem ajudar.

obrigado desde já.

program exemplo_menus;
uses CRT;
var    opcao, operacao, letra: char;
       num1, num2 : integer;
       num3, num4, num5, resultado, igual :real;
       nome, apelido : string[30];
       ok : boolean;


{ Declarar procedimentos para cada uma das opcoes...
Pode tambem, em vez de escrever procedimentos, colocar blocos de c¢digo
depois dos dois pontos, lembre-se de colocar "begin" e "end" no final de
cada um deles }

Procedure numeromaior;
var num1, num2 : integer;
begin
          clrscr;
          writeln('Numero maior ');
          Writeln;
          Writeln('Digite dois n£meros: ');
          readln(num1,num2);
          if num1>=num2 then
             writeln('O n£mero maior ‚: ',num1)
          else
             writeln('O n£mero maior ‚: ',num2);
end;
Procedure quocientede2numeros;
var num3, num4, num5, resultado: real;
begin
          clrscr;
          writeln('Quociente de dois numeros');
          Writeln;
          writeln('Insira dois n£meros para a divisÆo: ');
          readln(num3,num4);
          resultado := num3/num4;
          writeln('O quociente do primeiro n£mero pelo segundo ‚: ',resultado:0);
end;
Procedure quadradode1numero;
var num5, resultado : real;
begin
          clrscr;
          writeln('Quadrado de um numero');
          writeln;
          writeln('Insira um n£mero: ');
          readln(num5);
          resultado := sqr(num5);
          writeln('O quadrado do n£mero inserido ‚: ',resultado:0);
end;

Procedure sucessorde1numero;
var num1, resultado : real;
begin
          clrscr;
          writeln('Sucessor de um numero');
          writeln;
          writeln('Insira um n£mero: ');
          readln(num1);
          resultado := num1+1;
          writeln('O n£mero seguitne ‚: ',resultado:0);
end;

Procedure calculocomIVA;
var num1, resultado : real;
begin
          clrscr;
          writeln('Calculo de valor com IVA');
          writeln;
          writeln('Insira um valor: ');
          readln(num1);
          resultado := num1*1.21;
          writeln('O valor com IVA ‚: ',resultado:0);
end;

Procedure olanomeapelido;
var nome, apelido : string[30];
begin
          clrscr;
          writeln('Ol  nome e apelido');
          writeln;
          writeln('Insira o seu nome e apelido: ');
          readln(nome);
          readln(apelido);
          writeln('Ol  Sr(a).' ,nome,' ',apelido);
end;

Procedure calculadora;
var num1, num2 : real;
begin
Repeat
  begin
  Repeat
   clrscr;
   gotoxy(10 , 10);
   writeln('Insira um n£mero: ');
   readln(num1);
   gotoxy(10 , 12);
   writeln('Insira a opera‡ao (+,-,*,/,r,q): ');
   readln(operacao);
   gotoxy(10 , 14);
      if (operacao<>'r') and (operacao<>'q') then
     begin
       writeln('Insira outro n£mero: ');
       readln(num2);
     end;
   if (operacao='/') and (num2=0) then
     begin
      ok := false;
      writeln('!!!Erro na opera‡ao pretendida!!!');
      readln;
     end
   else
      ok := true;
  Until ok ;
   ok:=true;
   case operacao of
     '+' :igual := num1 + num2;
     '-' :igual := num1 - num2;
     '*' :igual := num1 * num2;
     '/' :igual := num1 / num2;
     'r' : if num1 < 0 then
             begin
               ok := false;
               writeln('RAIZ NéMERO NEGATIVO??????');
            end
          else
            igual := sqrt(num1);
     'q' :igual := sqr(num1);
   Else
      gotoxy(10 , 16);
     writeln('C lculo errado!!!!');
     ok:=false;
   end;
   if  ok then
     begin
       {writeln('C culo igual a: ',igual:2);}
       gotoxy(10 , 18);
       if (operacao<>'r') and (operacao<>'q') then
          writeln(num1:3:2,'  ',operacao,'  ',num2:3:2,' = ',igual:3:2)
       else
          writeln(num1:3:2,'  ',operacao,' = ',igual:3:2)
     end;
      Repeat
          writeln;
          writeln('Insira a letra S(para continuar) ou letra N(para sair): ');
          readln(letra)
      Until (letra='S') or (letra='s') or (letra='N') or (letra='n');
     readln;
  end;
{ bloco de codigo principal do programa: }
begin
repeat
clrscr;
writeln ('------------ Menu -----------');
writeln ('[1] numeromaior');
writeln ('[2] quocientede2numeros');
writeln ('[3] quadradode1numero');
writeln ('[4] sucessorde1numero');
writeln ('[5] calculocomIVA');
writeln ('[6] Olanomeapelido');
writeln ('[7] calculadora');
writeln ('[8] Terminar');
opcao := readkey;
Until (opcao >= '1') and (opcao <= '8');
repeat
Case opcao of
'1' : numeromaior;
'2' : quocientede2numeros;
'3' : quadradode1numero;
'4' : sucessorde1numero;
'5' : calculocomIVA;
'6' : olanomeapelido;
'7' : calculadora;
'8' : begin
       clrscr;
       Writeln('A processar .....');
       Delay(1000);        { For 200 ms }
       writeln('Terminar sessao');
       readln;
       end;
Until (opcao = '8');
end.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso é um erro de sintaxe, falta-te um ; numa linha.

A mensagem de erro costuma dar mais informações, como o numero da linha onde foi detectado o erro.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora