Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Kelvin Dules

[Resolvido] [Pascal] Problema no final do código

Recommended Posts

Olá, esse é meu primeiro post no fórum e espero ser respondido :rolleyes:

 

OK... direto ao assunto...

 

Estou com um problema num código simples de pascal (comecei a estudar pascal ontem à tarde), o objetivo é criar uma calculadora simples, que calcule só dois números (básico) de uma soma,subtraçao,divisao, multiplicaçao etc.. até ai tudo bem. Logo veio a vontade de incrementar um pouco, colocando as funções de produtos notaveis.. quadrado da soma.. diferença etc. O problema é que o End. não ta "servindo" como deveria, ou seja, finalizar o programa, a mensagem que o interpretador me manda é ' . ' não esperado já tentei várias formas mas nao obtive sucesso...

 

Program Calculadora_Especial;
 var //Variaveis
 opcao:integer;
 opcao2:integer;
 resposta1:real;
 resposta2:real;
 num1,num2:real;
 resposta:real;
 termo1:real;
 termo2:real;
 
 Begin //Inicio dos comandos
 writeln('=====--- || CalculaK ®  by Kelvin Dias Dules || ---====='); //Apresentação
 writeln('||								versão 0.5		   ||');
 writeln('||													 ||');
 writeln('||													 ||');
 writeln('---------------------------------------------------------');
 writeln('||Digite o número correspondente à função para começar!||');
 writeln('|||------------------|||');  //Menu de navegação
 writeln('|||[1] Somar');
 writeln('|||[2] Subtrair');
 writeln('|||[3] Multiplicar');
 writeln('|||[4] Dividir');
 writeln('|||[5] Produtos Notáveis');
 writeln('|||[6] Sobre o Programa');
 writeln('|||------------------|||'); 
 read(opcao);
 //Soma
 if opcao=1 then
 begin
 writeln('Digite o primeiro número da soma:');
 read(num1);
 writeln('Digite o segundo número da soma:');
 read(num2); 
 resposta:=(num1+num2);
 writeln('Resposta :',' ',round(resposta));
 end   
 
 //Subtração
 else if opcao=2 then 
 begin
 writeln('Digite o primeiro número da subtração:');
 read(num1);
 writeln('Digite o segundo número da subtração:');
 read(num2);
 resposta:=(num1-num2);
 writeln('Resposta:',' ',round(resposta));
 end
 //Multiplicação
 else if opcao=3 then
 begin
 writeln('Digite o primeiro número da multiplicação:');
 read(num1);
 writeln('Digite o segundo número da multiplicação:');
 read(num2);
 resposta:=(num1*num2);
 writeln('Resposta:',' ',round (resposta));
 end
 
 //Divisão
 else if opcao=4 then
 begin
 writeln('Digite o dividendo (número a ser dividido):');
 read(num1);
 writeln('Digite o divisor (número de partes que o dividendo será dividido)');
 read(num2);
 resposta:=(num1/num2);
 writeln('Resposta:',' ',round (resposta));
 end
 //Sobre o Programa
 else if opcao=6 then
 begin
 writeln('||| ===================Sobre o Programa=====================|||');//Não leiam essa bobagem saiugsiagsyagu
 writeln('||--  Por estar começando agora, esse é o primeiro programa'); 
 writeln('||--  que durou mais de 30min para ser criado, então decidi'); 
 writeln('||--  fazer esse "Sobre o Programa" por organização');
 writeln('||--  O programa se encontra na versão 0.5, ou seja, não está completo,');
 writeln('||--  ele deve chegar à uma versão 2.0 futuramente.');
 writeln('||--  Bugs serão corrigidos e novas funções serão adicionadas como:');
 writeln('||--  *Raiz, Potênciação, Produtos Notáveis etc...'); 
 writeln('||--  Vai ser uma calculadora totalmente completa!'); 
 writeln('||--  [OBS1]Nesta versão, depois de calcular uma operação, deve-se reiniciar o  ||--  programa para realizar uma outra atividade!');
 writeln('||--  [OBS2]Nesta versão, todos os resultados são aredondados no caso de de	 ||-- números decimais');
 writeln('||--  Contato = kelvindules@hotmail.com');
 writeln('||--  Obrigado!!!');
 writeln('================================================================||');
 writeln('		  \\\ || /// Kelvin Dias Dules \\\ || ///				 ');
 writeln('================================================================||'); 
 end;
 
 //Produtos Notáveis
 if opcao=5 then
 begin
 writeln('=====   Produtos Notáveis disponíveis   ====='); //Início Menu
 writeln('=1= Quadrado da Soma (2 termos)|');
 writeln('=2= Quadrado da Diferença (2 termos)|');
 writeln('=3= Quadrado da Soma (3 termos)|');
 writeln('=4= Cubo da Soma (2 termos)|');
 writeln('=5= Cubo da Diferença (2 termos)|');
 writeln('=6= Produto da Soma pela Diferença|');
 writeln('=== Digite o número correspondente à função para calcular ==='); //Fim Menu
 read(opcao2);
 //Quadrado da Soma*
 if opcao2=1 then
 begin
 writeln('Informe o primeiro termo:');
 read(termo1);
 writeln('Informe o segundo termo:');
 read(termo2);
 resposta1:=(termo1+termo2);
 resposta2:=(resposta1*resposta1);
 writeln('O resultado final é:',' ',round(resposta2));
 end
 //Quadrado da Diferença
 else if opcao=2 then
 begin
 writeln('Informe o primeiro termo:');
 read(termo1);
 writeln('Informe o segundo termo:');
 read(termo2);
 resposta1:=(termo1-termo2);
 resposta2:=(resposta1*resposta1);
 writeln('O resultado final é:',' ',round(resposta2));
 end
 //Quadrado da Soma 3t
 else if opcao=3 then
 begin
 writeln('Informe o primeiro termo:');
 read(termo1);
 writeln('Informe o segundo termo:');
 read(termo2);
 writeln('Informe o terceiro termo:');
 read(termo3);
 resposta1:=(termo1+termo2+termo3);
 resposta2:=(resposta1*resposta1);
 writeln('O resultado final é:',' ',round(resposta2));
 end;
 
 readkey; 
 
 End.

 

OBS: Estou usando os if e else if porque não consegui usar os cases http://forum.imasters.com.br/public/style_emoticons/default/pinch.gif

 

 

 

Obrigado pela anteção!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em qual linha o erro ocorre?

 

Se não me falha a memória, Pascal exige um ponto-e-vírgula após os end's dos if's.

 

OBS: Estude funções. Isso facilitará bastante . http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, obrigado por responder!

 

O único erro é na ultima linha : End.

 

Ele diz que o ponto não era esperado como se eu não tivesse terminado a função de cima ¬¬

 

Sim.. exige um ponto e virgula mas antes de else nao pode ter ponto e virgula entao só coloquei no ultimo end...

 

Mais alguem pra ajudar..?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.