Jump to content

Calculadora Básica


Kermi
 Share

Recommended Posts

Boa Tarde Pessoal!

Eu estou num curso de Informática e tenho promgramação.

Tive de fazer uma especie de calculadora por isso para quem precise esta aqui o codigo:

Sintam-se Livres para utilizar, e modificar o codigo!

Program Study1;

var num1, num2, Op, Op2, VClose : Integer;

BEGIN

gotoxy (10,5);
writeln ('Introduza Dois Numeros Inteiros: ');
gotoxy (10,7);
Readln (Num1);
gotoxy (10,9);
Readln (num2);
gotoxy (10,11);
writeln ('Escolha Uma Operação para Fazer com os Numeros'); {O Menu começa Aqui}
gotoxy (10,13);
writeln ('1- Adição');
gotoxy (10,15);
writeln ('2- Subtração');
gotoxy (10,17);
writeln ('3- Multiplicação');
gotoxy (10,19);
writeln ('4- Divisão (Inteira)');
gotoxy (14,21);
Writeln ('Opção: ');
gotoxy (21,21);
Read (Op);
{Repeat Global, Para Voltar a Fazer O Programa}
Repeat
//Se escolher Opção Nao existente ira voltar a aprecer o Menu

If (Op<0) or (Op>4)
Then
{Primeiro Ciclo}
Begin
Repeat
ClrScr;
gotoxy (10,9);
Writeln ('A sua Escolha é Invalida!!!');
gotoxy (10,11);
writeln ('Escolha Uma Operação para Fazer com os Numeros');
gotoxy (10,13);
writeln ('1- Adição');
gotoxy (10,15);
writeln ('2- Subtração');
gotoxy (10,17);
writeln ('3- Multiplicação');
gotoxy (10,19);
writeln ('4- Divisão (Inteira)');
gotoxy (14,21);
Writeln ('Opção: ');
gotoxy (21,21);
Read (Op);
Until (Op>=0) And (Op<=4);
End;

{A seleção da Operação}

Case Op of
1: Begin
gotoxy (10,23);
writeln ('O Resultado da Adição é: ',num1+num2);
End;

2: Begin
gotoxy (10,23);
writeln ('O Resultado da Subtração é: ',num1-num2);
End;

3: Begin
gotoxy (10,23);
writeln ('O Resultado da Multiplicação é:',num1*num2);
End;

4: Begin
gotoxy (10,23);
writeln ('O Resultado da Divisão é: ',num1 DIV num2);
End;
End;
//Aqui é o Repeat Para Fechar ou Repetir
Repeat
gotoxy (10,25);
writeln ('Para Fazer Outra Opção Prima 1 (Um), Para Sair Prima 2 (Dois)');
gotoxy (10,27);
Read (Op2);

If (Op2=1)
Then

Begin
Repeat
ClrScr;
gotoxy (10,9);
writeln ('Escolha Uma Operação para Fazer com os Numeros');
gotoxy (10,11);
writeln ('1- Adição');
gotoxy (10,13);
writeln ('2- Subtração');
gotoxy (10,15);
writeln ('3- Multiplicação');
gotoxy (10,17);
writeln ('4- Divisão (Inteira)');
gotoxy (14,19);
Writeln ('Opção: ');
gotoxy (21,19);
Read (Op);
Until (Op>0) And (Op<=4);
Case Op of
1: Begin
gotoxy (10,23);
writeln ('O Resultado da Adição é: ',num1+num2);
End;

2: Begin
gotoxy (10,23);
writeln ('O Resultado da Subtração é: ',num1-num2);
End;

3: Begin
gotoxy (10,23);
writeln ('O Resultado da Multiplicação é:',num1*num2);
End;

4: Begin
gotoxy (10,23);
writeln ('O Resultado da Divisão é: ',num1 DIV num2);
End;
End;
End;

Until (Op2=2);
If (Op2=2)
Then VClose := 0;
Until (VClose=0);
CLRSCR;
End.

Edited by thoga31
GeSHi
Link to comment
Share on other sites

use variáveis reais

<irony> Uma boa solução para evitar a divisão por zero... </irony>

Como o @pwseo disse, a solução passa por controlar se num2 é zero. Isto porquê? Porque num2 é o divisor em num1/num2. 0/num2 dá 0, mas num1/0 dá erro. Conclusão: uso de um if.

Knowledge is free!

Link to comment
Share on other sites

sim sim,eu não entendi o que ele queria por isso coloquei essa de variáveis reais,quando vi um 0 e divisão na mesma frase veio essa confusão

Mas é uma conclusão errada. Muito embora em Pascal o resultado possa estar definido para números reais (seria +Inf ou -Inf), na matemática o resultado da divisão por zero é indefinido seja para números inteiros, seja para números reais -- não faz sentido. Podemos falar de limites quando o divisor tende para zero, mas não podemos falar de divisões por zero como tendo resultados reais.

Link to comment
Share on other sites

bem vcs não estão em minha mente para saber o que pensei na hora que fui escrever,então não tentem me rebaixar com indiretas de (ele não sabe a questão)

o todo da confusão foi que crie uma calculadora de expressões em pascal,que tinha poderia ter divisão por 0 em uma expressão digitada,lembro de ter declarado algumas variáveis como reais ,mas não foi só com isso que resolvi o problema então na hora que fui da a resposta não tentei compreender de todo o enunciado e por isso coloquei tal resposta

Link to comment
Share on other sites

De facto não estamos na tua mente, mas ninguém te está a rebaixar. Apenas comentamos com base na informação que temos, e a informação que temos é 1) eu propus um controlo da divisão por zero, 2) o OP perguntou como, e 3) tu disseste "usa variáveis reais". Portanto, com base nisto, estamos a dizer que isto não resolve o problema. Se sabes que não resolve o problema, isso não sabemos. Demonstraste isso na altura? Não. Disseste que te tinhas confundido com a frase do OP. Assumimos que a confusão veio na mesma do facto de, aparentemente, teres assumido que as variáveis reais resolviam a questão.

Portanto, da mesma forma que nós não estamos na tua mente, vais-me agora dizer que estás tu nas nossas para saberes que estamos a rebaixar-te com indirectas?... É que se estás, lamento, mas estás a sintonizar as mentes erradas, muda a frequência da bola de cristal.

Edited by thoga31

Knowledge is free!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.