Ir ao conteúdo
  • Cadastre-se
uchoa84

pls! erro de sintase ==> ":=" não esperado

Recommended Posts

gente, peço a ajuda de vocês pra me ajudar nesse programa.

quando ele vai compilar, quando é vai nessa linha:

f1:=A_triang(b,h);

dá um erro de sintase, dizendo ":=" não esperado!

repeat

write('Digite o valor do lado da base do triangulo:');

read(B);

write('Agora digite o valor da altura do triangulo:');

read(h);

clrscr;

until (h>B);

f1:=A_triang(b,h);

writeln('A area do triangulo é: ',f1,'m2');

Compartilhar este post


Link para o post
Compartilhar em outros sites

Código original

repeat
write('Digite o valor do lado da base do triangulo:');
read(;
write('Agora digite o valor da altura do triangulo:');
read(h);
clrscr;
until (h>;
f1:=A_triang(b,h);
writeln('A area do triangulo é: ',f1,'m2');

1) Só para constar: use a tag CODE (símbolo #) para posta códigos neste fórum!!!

2) Use "radln();" em vez de "read();"

No pascal tem diferença de uma para o outro. (visualmente são iguais, mas em terminadas situações o uso do "read();" pode causar problemas difíceis de se detectar no código!"

É mais ou menos assim, o read() lê somente até a parte onde a variável consegue armazenar, e deixa o resto para ser lido no próximo "read", sendo "ln" ou não !!!!. Não tenho certeza plena de como funciona um e outro, mas na dúvida use sempre "readLN", pois como dito antes, pode ocorrer erros de lógica com o "read" em alguns casos... com "ln" não... (se a lógica exigir "read" você com certeza saberá que deve usar "read", ou simplesmente não usaria esta lógica... sacou?)

3) Essa lógica de ler os lados dos triângulos está um pouco confusa:

Porquê deve digitar os valores em ordem de tamanho? Porquê não podem ser iguais?... outra coisa interessante é informar, dentro do laço, como deve ser digitado os valores... senão o usuário vai ficar digitando valores até a sorte permitir que sai do laço... (ou digite uma letra, ou algo do tipo)

4) f1 é uma variável? E como disse nosso colega "thiago_m", "A_triang" está declarado como "function" ou "procedure"...

OBS: "Function" é exatamente mesma coisa de "procedure"... só muda que o um valor na "function" deve ser obrigatoriamente retornado na função (ou não, mas ela terá um valor sempre)... no resto não muda nada. Tudo, sim, tudo que se faz com uma faz com a outra, mas a "function" tem vantagem que você pode imprimir ela, usar diretamente numa expressão... etc

5) Voltando ao ponto 3... e se o cara digitar "0" e "1', não existe esse triângulo...

6) Após corrigir o erro, você poderá mudar o código para imprimir diretamente

{f1:=A_triang(b,h);}

writeln('A area do triangulo é: ',A_triang(b,h), 'm2');

Espero ter ajudado

PS: Mesmo se achar a solução das tuas dúvidas, poste-as para servir se experiência para nós e para os visitantes que tenham a mesma dúvida!!!

PS2: Se você quiser ajudamos você a definir as validações para um triângulo qualquer... inclusive com métodos otimizados para validar a leitura dos dados... existem vários formas, inclusive não dando erro ao ler "letras" num "variável numérica"

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

×