Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program calcBasica;
- //Objetivo: Calcular as funçoes basicas
- //Responsável: Mateus Gurgel
- //Data:11/09/2014
- uses crt; //Biblioteca necessaria para o comando clrscr
- procedure instrucoes(); // Comandos e instruções do programa
- begin
- writeln('Comandos:');
- writeln;
- writeln(' + : Soma');
- writeln(' - : Subtracao');
- writeln(' / : Divisao');
- writeln(' * : Multiplicacao');
- writeln(' i : Inversao');
- writeln(' p : Potenciacao');
- writeln(' r : Raiz Quadrada');
- writeln;
- writeln(' dec : Ajustar numero de casas decimais (Padrao = 4, Max = 15)');
- writeln(' sair : Sair');
- writeln(' 0 : Limpar memoria');
- writeln(' ? : Instrucoes');
- writeln;
- end;
- //Declaração de variaveis
- var
- num2, resultado, base: real; // Variáveis reais para a maioria das operações
- expoente:integer; // Variável para expoente inteiro
- comando: string; // Variável para escolha de operação
- controle,primVez,inverter : boolean; // Variáveis de controle booleanas
- decimal:integer; // Variável para ajuste de casas decimais
- i:integer; // Variável de controle inteira
- //Inicio do programa
- begin
- //Inicializando variaveis
- controle:=true;
- primVez :=true;
- resultado:=0;
- decimal:=4;
- //Introdução ao usuário
- writeln('Calculadora basica');
- writeln;
- instrucoes();
- //Selecionando função matemática
- while controle do
- begin
- writeln;
- write('Digite um comando: ');
- readln(comando);
- writeln;
- //Comandos
- case(comando)of
- (*Soma*)
- '+':
- begin
- if primVez then
- begin
- primVez:=false;
- write('Digite o primeiro valor: ');
- readln(resultado);
- end;
- write('Digite o segundo valor: ');
- readln(num2);
- resultado:=resultado + num2;
- writeln('Soma = ',resultado:0:decimal);
- end;
- (*Subtração*)
- '-':
- begin
- if primVez then
- begin
- primVez:=false;
- write('Digite o primeiro valor: ');
- readln(resultado);
- end;
- write('Digite o segundo valor: ');
- readln(num2);
- resultado:=resultado-num2;
- writeln('Subtracao = ',resultado:0:decimal);
- end;
- (*Divisão*)
- '/':
- begin
- if primVez then
- begin
- primVez:=false;
- write('Digite o numerador:');
- readln(resultado);
- end;
- write('Digite o denominador: ');
- readln(num2);
- while num2=0 do
- begin
- write('O denominador nao pode ser zero. Por favor digite outro numero: ');
- readln(num2);
- end;
- resultado:=resultado/num2;
- writeln('Divisao = ', resultado:0:decimal);
- end;
- (*Multiplicação*)
- '*':
- begin
- if primVez then
- begin
- primVez:=false;
- write('Digite o primeiro valor:');
- readln(resultado);
- end;
- write('Digite o segundo valor: ');
- readln(num2);
- resultado:=resultado*num2;
- writeln('Multiplicacao = ', resultado:0:decimal);
- end;
- (*Inversao*)
- 'i':
- begin
- if primVez then
- begin
- primVez:=false;
- write('Para inversao, digite o valor: ');
- readln(resultado);
- end;
- if resultado = 0 then
- writeln('Inversao nao permitida. Denominador nao pode ser zero.')
- else
- begin
- resultado:= resultado / sqr(resultado);
- writeln('Inversao = ', resultado:0:decimal);
- end;
- end;
- (*Potenciacao*)
- 'p':
- begin
- if primVez then
- begin
- primVez:=false;
- write('Digite o valor da base:');
- readln(resultado);
- end;
- base:=resultado;
- resultado:=1;
- write('Digite o valor do expoente:');
- readln(expoente);
- if expoente = 0 then
- resultado:=1
- else
- begin
- if expoente < 0 then
- begin
- expoente:=expoente * -1;
- inverter:=true;
- end;
- for i:=1 to expoente do
- begin
- resultado:=resultado * base;
- end;
- if inverter then
- resultado:= resultado / sqr(resultado);
- end;
- writeln('Potenciacao = ', resultado:0:decimal);
- end;
- (*Raiz Quadrada*)
- 'r':
- begin
- if primVez then
- begin
- primVez:=false;
- write('Para raiz quadrada, digite o valor:');
- readln(resultado);
- end;
- resultado:=sqrt(resultado);
- writeln('Raiz quadrada = ',resultado:0:decimal);
- end;
- (*Casas Decimais*)
- 'dec':
- begin
- write('Digite o numero de casas decimais desejado: ');
- readln(decimal);
- repeat
- write('O intervalo de casas decimais possiveis e entre 0 e 15. Digite outro valor: ');
- readln(decimal);
- until(decimal>0) and (decimal<15);
- end;
- (*Limpar Memória*)
- '0':
- begin
- resultado:=0;
- primVez:=true;
- clrscr;
- writeln('A memoria foi limpa com sucesso!');
- end;
- (*Sair Do Programa*)
- 'sair':
- begin
- writeln('Obrigado por usar esse programa! Aperte ENTER para fechar.');
- controle:=false;
- readln;
- end;
- (*Instruçoes*)
- '?':
- begin
- instrucoes();
- end;
- end;
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement