Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
maxmedeiros

Pascal erro - '$' não especificado

Recommended Posts

Olá galera, estou fazendo um curso e me foi passado um problema ao qual pesquisei muito, porém na hora da execução está dando o seguinte erro:

=>erro sintático na linha 216

=>'$' não especificado!

segue o código para que vocês possam me ajudar. desde já agradeço.

program Calculadora;
//uses Crt;
// {Função: Calcular}
// {Autor: MaxMediros}
// {Data: 18/10/2017}
function sqr( x,y :real ) : real;
var

decidir,decidir2: string;
x, y, valor1, valor2, a, b, c, delta: real;
final: string;
begin
  
  Final := 'Sim';
  
  while (final = 'sim') do
  begin
    writeln ('|Digite 1 Para ADIÇÃO           |');
    writeln ('|Digite 2 Para SUBTRAÇÃO        |');
    writeln ('|Digite 3 Para DIVISÃO          |');
    writeln ('|Digite 4 Para MULTIPLICAÇÃO    |');
    writeln ('|Digite 5 Para BHASKARA         |');
    writeln ('|Digite 6 Para PORCENTAGEM      |');
    writeln ('|Digite 7 Para POTÊNCIA         |');
    writeln ('|Digite 8 Para ÁREAS            |');
    writeln ('|Digite 9 Para RAÍZ             |');
    writeln ('|Digite 10 Para Sair            |');
    readln (decidir);
  end;
  
  ClrScr;
  
  
  if (decidir = '10') then
  begin
    writeln ('Finalizando Programa...');
  end;
  
  if (decidir = '2')  then
  begin
    writeln ('Digite o valor de X:');
    readln (x);
    writeln ('Digite o valor de y:');
    readln (y);
    valor1 := (X - Y);
    writeln ('O resultado é:', valor1);
  end;
  
  if (decidir = '1') then
  begin
    writeln ('Digite o valor de X:');
    readln (x);
    writeln ('Digite o valor de y:');
    readln (y);
    valor1 := (X + Y);
    writeln ('O resultado é:', valor1);
  end;
  if (decidir = '4')  then
  begin
    writeln ('Digite o valor de X:');
    readln (x);
    writeln ('Digite o valor de y:');
    readln (y);
    valor1 := (X * Y);
    writeln ('O resultado é:', valor1);
  end;
  
  if (decidir = '3')  then
  begin
    writeln ('Digite o valor de X:');
    readln (x);
    writeln ('Digite o valor de y:');
    readln (y);
    valor1 := (X / Y);
    writeln ('O resultado é:', valor1);
  end;
  
  if (decidir = '7') then
  begin
    writeln ('Digite o valor de X:');
    readln (x);
    writeln ('Digite o valor do Expoente:');
    readln (y);
    valor1 := ( sqr((y),(Y)));
    writeln ('O resultado é: ', valor1);
  end;
  
  
  if (decidir = '6') then
  begin
    writeln ('Digite a Porcentagem de X:');
    readln (x);
    writeln ('Digite o Valor de X:');
    readln (y);
    Valor1 := (x / 100);
    Valor2 := (Valor1 * y);
    writeln ('O resultado é:', valor2);
  end;
  
  if (decidir = '9') then
  begin
    writeln ('Digite a Raiz:');
    readln (y);
    valor1 := (RaizQ (y));
    writeln ('O resultado é:', valor1);
  end;
  
  if (decidir = '5') then
  begin
    writeln ('Digite o valor de A: ');
    readln (a);
    writeln ('Digite o valor de B: ');
    readln (b);
    writeln ('Digite o valor de C: ');
    readln (c);
    delta :=(bsqr(readln (c),2))-(4*a*c);
    valor1 := ((-b) + (RaizQ(delta)))/(2*a);
    valor2 := ((-b) - (RaizQ(delta)))/(2*a);
    writeln ('Delta:', delta);
    writeln ('x1:', valor1);
    writeln ('X2:', valor2);
  end;
  
  if (Decidir = '8') then
  begin
    writeln ('Qual dessas áreas desejas:');
    writeln (' a) Paralelepípedo;');
    writeln ('  Triângulo;');
    writeln (' c) Quadrado;');
    writeln (' d) Circunferência;');
    writeln (' e) Cubo;');
    writeln (' f) Cone;');
    writeln (' g) Voltar ao menu inicial');
    readln (decidir2);
  end;
  
  if (decidir2 = 'a') then
  begin
    writeln ('Digite o valor de A:');
    readln (a);
    writeln ('Digite o valor de B:');
    readln (b);
    writeln ('Digite o valor de C:');
    readln (c); // {at = 2 (ab + bc + ac)};
    valor1 := (a*b) + (b*c) +  (a*c);
    valor2 := (2 * valor1);
    writeln ('A área total é:', valor2);
  end;
  
  if (decidir2 = 'b') then
  begin
    writeln ('Digite o valor da Base:');
    readln (a);
    writeln ('Digite o valor da Altura:');
    readln (b);
    valor1 := (a*b / 2);           // {V = B * H /2};
    writeln ('A área total é:', valor1);
  end;
  
  if (decidir2 = 'c') then
  begin
    writeln ('Digite o valor do Lado: ');
    readln (a);
    valor1 := (a*a);                    // { Lado²};
    writeln ('Área total:', valor1);
  end;
  
  if (decidir2 = 'd') then
  begin
    writeln ('Digite o valor do Raio:');
    readln (a);
    alor1 := (a*a) * 3.14;         // { At = Pi * Raio²}
    writeln ('Área total:', valor1);
  end;
  
  
  if (decidir2 = 'e') then
  begin
    writeln ('Digite o valor do Lado:');
    readln (a);
    valor1 := (a*a) * 6 ;         // {6*Lado²};
    writeln ('A área total é:', valor1);
  end;
  
  if (decidir2 = 'f') then
  begin
    
    writeln ('Digite o valor do Raio:');
    readln (a);
    writeln ('Digite o valor da Geratriz:');
    readln (b);
    valor1 :=  ((3.14 * a) * (b + a));          // {Pi * r (g+ r)};
    writeln ('A área total é:', valor1);
  end;
  
  
  if ((decidir <> '1') and (decidir <> '2') and (decidir <> '9')
  and (decidir <> '3') and (decidir <> '4')    and(decidir <> '5')
  and (decidir <> '6') and (decidir <> '7') and (decidir <> '8')) then
  begin
    writeln ('Operação inexistente');
  end;
  
  writeln ('Queres continuar?');
  readln (Final);
  
  {Fimenquanto}
  
  writeln ('Finalizando...');
end.

 

Editado por DiF
Inserir o código com o recurso CODE <>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá @maxmedeiros, seja bem vindo ao Fórum do Clube do Hardware.

 

2 horas atrás, maxmedeiros disse:

[...]na hora da execução está dando o seguinte erro:

=>erro sintático na linha 216

=>'$' não especificado!

 

O erro é na hora de compilar ou na hora de executar?  São etapas diferentes.

Qual compilador está utilizando?

 

Aqui, no Free Pascal Compiler (3.0.2), está dando erro:

D:\Simon\_My Portables\Notepad++\Compiladores\FPC\3.0.2\bin\i386-win32\ppc386.exe "D:\Simon\_My Portables\Notepad++\_FCdH.PAS"
Process started >>>
_FCdH.PAS(10,1) Error: Duplicate identifier "x"
_FCdH.PAS(10,4) Error: Duplicate identifier "y"
_FCdH.PAS(31,3) Error: Identifier not found "ClrScr"
_FCdH.PAS(104,16) Error: Identifier not found "RaizQ"
_FCdH.PAS(116,14) Error: Identifier not found "bsqr"
_FCdH.PAS(117,24) Error: Identifier not found "RaizQ"
_FCdH.PAS(118,24) Error: Identifier not found "RaizQ"
_FCdH.PAS(172,5) Error: Identifier not found "alor1"
_FCdH.PAS(210,4) Fatal: Syntax error, ";" expected but "." found
Fatal: Compilation aborted
<<< Process finished. (Exit code 1)
================ READY ================

 

Então, seu código tem muitas funcionalidades implementadas ao mesmo tempo, daí fica mais difícil para corrigir. Não tem necessidade de fazer tudo de vez. Sugiro que faça o programa por partes, e ir avançando a medida que cada etapa fica pronta.

 

 

A orientação seria fazer um programa novo, com apenas esses itens:

  writeln ('|Digite 1 Para ADIÇÃO           |');
  writeln ('|Digite 2 Para SUBTRAÇÃO        |');
  writeln ('|Digite 3 Para DIVISÃO          |');
  writeln ('|Digite 4 Para MULTIPLICAÇÃO    |');
  writeln ('|Digite 10 Para Sair            |');

 

Daí posta o código aqui para analisarmos e onde está com dúvidas...

 

Só após, tente dar continuidade.

 

 

No aguardo.

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






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

×