Ir para conteúdo

Arquivado

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

NChaves

Algoritmo de calculadora

Recommended Posts

Faca um algoritmo para criar uma calculadora que tenha as operações de: soma subtração, multiplicação e divisão. A calculadora terá um menu mostrando as opções das operações e uma opção SAIR. Depois de mostrar o resultado da operação, o menu tem que aparecer de novo para o usuário fazer outra operação ou sair.

Cada operação da calculadora tem q ser em modulo separado. E o algoritmo só deve finalizar quando o usuário digitar a opção SAIR.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Legal, vai usar "repita" (while), "escolha/caso" (switch), e limpatela pra ficar bonito.

 

Pode começar pesquisando em outros tópicos.

 

 

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem, o que eu ja consegui fazer foi isso:

 

algoritmo "calculadora"
// Função :
// Autor :
// Data : 1/8/2011
// Seção de Declarações
var
n1:inteiro
n2:inteiro
o:inteiro
r:real
inicio
escreval (" Escreva um número. ")
leia(n1)
escreval (" Escreva outro número. ")
leia(n2)
escreval ("-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-")
escreval (" Entre com o número da opção abaixo ")
escreval (" 1- soma ")
escreval (" 2- subitração")
escreval (" 3- multiplicação ")
escreval (" 4- divisão ")

escreval("5-sair")
escreval ("-.-.-.-.-.-")
leia(o)
escolha o
caso 1
r<-n1+n2
caso 2
r<-n1-n2
caso 3
r<-n1*n2
caso 4
r<-n1/n2
outrocaso
escreval (" Opção inválida! ")
r<-o
fimescolha
escreval ("-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-")
escreval (" O resultado é ",r)

fimalgorimo



ah, importante que a linguagem é em portugol viu, me ajudem a colocar essa opcao sair no menu, tipo o caso 5, e quando o usuario escolher qualquer umas das 4 operacoes, o menu tera que aparecer d novo com as opcoes, so finalizara o algorimo quando ele digitar sair



Se puderem também, me ajudem no outro tópico de vetor de 20 notas !

Compartilhar este post


Link para o post
Compartilhar em outros sites
Algoritmo calculadora

var

n1,n2,operac:inteiro

result:real

inicio

escreval (" Escreva um número. ")

leia(n1)

escreval (" Escreva outro número. ")

leia(n2)

escreval ("____________________________")

escreval (" Entre com o número da opção abaixo ")

escreval (" 1- soma ")

escreval (" 2- subitração")

escreval (" 3- multiplicação ")

escreval (" 4- divisão ")

escreval ("5- sair")

escreval ("_________________________________")

leia(operac)

escolha operac

caso 1

result<-n1+n2

caso 2

result<-n1-n2

caso 3

result<-n1*n2

caso 4

result<-n1/n2

caso 5

escreval("SAIR DO MENU, OBRIGADO")

outrocaso

escreval("opcao invalida")

fimescolha

escreval ("__________________________________")

escreval (" O resultado é ",result)


fimalgoritmo






Me ajudem a fazer com que o algoritmo repita o menu novamente quando o usuario digitar qualquer numero 1,2,3,4, o menu tem que aparecer sempre, so terminara quando ele digitar 5, e sairá do menu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça um:

 

 

resposta : CARACTER

ENQUANTO (resposta <> 's') FACA

   //seu código ...

   ESCREVAL ("Sair do programa? S/N")
   LEIA (resposta)
FIMENQUANTO

ps: Não lembro muito bem a sintaxe do portugol, mas a lógica é essa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem, fiz essa parada aqui rapidinha, ve se eh isso q vc quer...

 

 

algoritmo "semnome"
// Autor: ORION
var
n1,n2,r:real
operacao:inteiro
inicio
repita
repita
escreval ("1. Multiplicação ")
escreval ("2. Divisão ")
escreval ("3. Subtração ")
escreval ("4. Soma ")
escreval ("5. Sair ")
leia (operacao)
se ( operacao = 5 ) entao
fimalgoritmo
fimse
limpatela
escreva ("Diga o primeiro numero: ")
leia ( n1 )
ate ( operacao >= 1 ) e ( operacao <= 5 )
se ( operacao <= 4 ) e ( operacao >= 1 ) entao
escreva ("Diga o segundo numero: ")
leia (n2)
fimse
escolha operacao
caso 1
r:=n1*n2
caso 2
r:= n1/n2
caso 3
r= n1-n2
caso 4
r:= n1+n2
outrocaso
escreva ("escolha incorreta")
fimescolha
limpatela
escreval ("O resultado é: ", r)
escreval ("")
ate ( operacao = 5 )
fimalgoritmo

Compartilhar este post


Link para o post
Compartilhar em outros sites
var

NUM1,NUM2:INTEIRO

RESULT:REAL

OPERADOR:CARACTER


INICIO

ESCREVA("INFORME UM NUMERO: ")

LEIA(NUM1)

ESCREVA("INFORME SEGUNDO NUMERO: ")

LEIA(NUM2)

ESCREVA("INFORME O OPERADOR ( - + * / ) ")

LEIA(OPERADOR)


SE OPERADOR="-" ENTAO

RESULT <- (NUM1-NUM2)

FIMSE

SE OPERADOR="+" ENTAO

RESULT <- (NUM1+NUM2)

FIMSE

SE OPERADOR="*" ENTAO

RESULT <- (NUM1*NUM2)

FIMSE

SE OPERADOR="/" ENTAO

RESULT <- (NUM1/NUM2)

FIMSE

ESCREVAL("O RESULTADO E :", RESULT)


fimalgoritmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

var

NUM1,NUM2,OPCAO:INTEIRO

MENU,OPERACAO,S,bla:CARACTER

inicio


REPITA

ESCREVAL("´´´¶¶¶¶´´´´´´´´´´s¶¶¶¶¶´´´´´´´´´´´s¶¶¶ ")

ESCREVAL("´´´´¶¶¶¶¢´´´´´7¶¶¶¶¶¶¶¶¶¶¶¶¶´´´´´´´¶¶¶¶ ")

ESCREVAL("´´´7¶¶¶¶¢´´´¢¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´´´´s¶¶¶¶s ")

ESCREVAL("´´¶¶¶¶¶¶¶¶´ø¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶1´¶¶¶¶¶¶¶¶ ")

ESCREVAL("´´¢øs$¶¶¶¶1¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶´¶¶¶¶¢¢$$ ")

ESCREVAL("´´´´´´´´7¢ø¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶s´ø ")

ESCREVAL("´´´´´´´´´´¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶¶ ")

ESCREVAL("´´´´´´´´´´1¶¶¶¶ø´´7¶¶¶¶¶1´ø¶¶¶¶¶s ")

ESCREVAL("´´´´´´´´´´´¶¶´´´´´´´¶¶¶´´´´´´s¶¶ ")

ESCREVAL("´´´´´´´´´´1¶¶´´´´´´$¶¶¶1´´´´´´¶¶1 ")

ESCREVAL("´´´´´´´´´´´¶¶¶´´s¶¶¶´´ø¶¶s´´¶¶¶¶ ")

ESCREVAL("´´´´´´´´´´´7¶¶¶¶¶¶¶¶´´´¶¶¶¶¶¶¶¶1 ")

ESCREVAL("´´´´´´´´´´´´´¶¶¶¶¶¶¶s$s¶¶¶¶¶¶ ")

ESCREVAL("´´´´´´´´´´´ø¶´¶s¶¶¶¶¶¶¶¶¶¶¶´¶´¶s ")

ESCREVAL("´´´´7´´´´$¶¶¶´¶´´´´´´´´´´´$´¶¶¶¶¶ ")

ESCREVAL("´1¶¶¶¶¶¶¶¶¶¶ø´¶´¶¶$¶¶$¶¶$¶7¶1´¶¶¶¶¶¶¶¶¶¶¶ ")

ESCREVAL("´´¶¶¶¶¶¶¶¶´´´´¶¶¶¶¶¶¶¶¶¶¶¶¶¶1´´´¶¶¶¶¶¶¶¶¶ ")

ESCREVAL("´´´ø¶¶¶¶¶´´´´´´1¶¶¶¶¶¶¶¶¶¶¢´´´´´´¶¶¶¶¶¶¶ ")

ESCREVAL("´´´´´s¶¶ø´´´´´´´´´$¶¶¶¶¶s´´´´´´´´1¶¶¶ ")



ESCREVAL(" MENU ")

ESCREVAL(" 1- SOMAR ")

ESCREVAL(" 2- SUBTRAÇÃO ")

ESCREVAL(" 3- MULTIPLICAÇÃO ")

ESCREVAL(" 4- DIVISÃO ")

ESCREVAL(" 5- LIMPATELA ")

ESCREVAL(" 6- SAIR ")



ESCREVAL("DESEJA REALIZAR AS OPERAÇÕES S (SIM) N (NÃO) ")

LEIA(OPERACAO)

SE (OPERACAO<>"S")E(OPERACAO<>"N")ENTAO

REPITA

ESCREVA("OPÇÃO INCORRETA :DIGITE S OU N: ")

LEIA(OPERACAO)

ATE (OPERACAO="S")OU(OPERACAO="N")

FIMSE


SE OPERACAO="N" ENTAO

FIMALGORITMO

FIMSE

SE (OPERACAO="S") ENTAO


ESCREVA("INFORME 1° NUMERO ")

LEIA(NUM1)

ESCREVA("INFORME 2° NUMERO ")

LEIA(NUM2)


ESCREVAL(" ESCOLHA UMA DAS OPERAÇÕES : 1(+) 2(-) 3(*) 4(/) 5(CLEAR) 6(EXIT)")

LEIA(OPCAO)



ESCOLHA OPCAO



CASO 1


ESCREVAL("O RESULTADO É :",NUM1+NUM2)

ESCREVAL("TECLE ENTER PARA RETORNAR")

LEIA(BLA)

LIMPATELA



CASO 2

ESCREVAL("O RESULTADO É :",NUM1-NUM2)

ESCREVAL("TECLE ENTER PARA RETORNAR")

LEIA(BLA)

LIMPATELA

CASO 3

ESCREVAL("O RESULTADO É :",NUM1*NUM2)

ESCREVAL("TECLE ENTER PARA RETORNAR")

LEIA(BLA)

LIMPATELA

CASO 4

ESCREVAL("O RESULTADO É :",NUM1/NUM2)

ESCREVAL("TECLE ENTER PARA RETORNAR")

LEIA(BLA)

LIMPATELA

CASO 5

LIMPATELA

CASO 6

FIMALGORITMO

ATE OPCAO=6

FIMESCOLHA

FIMSE

FIMREPITA

FIMALGORITMO


Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso me lembra quando eu estudava Pascal e Portugol hausauhs toda semana era uma calculadora pra fazer...cada vez mais chatinha

Qualquer nova dúvida que surgir posta aí

Compartilhar este post


Link para o post
Compartilhar em outros sites
Gente é o seguinte , quando vou executar o programa ele fica dando erro na linha 37. Não sei mais o que fazer...se alguém puder me ajudar ficarei grata.







Program case_exe;

var

op:char ;

n1,n2:integer;

s:real;


Begin

s:=0;

writeln ('**************');

writeln ('* CALCULADORA*');


BEGIN

writeln ('**************');


begin

writeln ('+ para somar');

writeln ('- para subtrair');


begin

writeln ('* para multiplicar');

writeln ('/ para dividir');


begin

writeln ('digite opção');

read(op);

writeln ('digite o 1° numero');

read(n1);

writeln ('digite o 2° numero');

read (n2);


case op of


'+':s:=n1+n2;

'-':s:=n1-n2;

'*':s:=n1*n2;

'/':s:=n1/n2;

writeln(' o resultado da operação é :' , s) ;



end.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente na proxima colocar o codigo entre as tags:[ code ] [ /code] para ficar mais organizado ^^

se você está tentando executar no visualg ou no pascal, esses 'Begin' varias vezes irá resulta em erro.
Removendo ficará assim:

Program case_exe;

 var
op:char   ;
n1,n2:integer;
s:real;


 Begin
 s:=0;
  writeln ('**************');
  writeln ('* CALCULADORA*');
  writeln ('**************');

  writeln ('+ para somar');

  writeln ('- para subtrair');
  writeln ('* para multiplicar');

  writeln ('/ para dividir');
  writeln ('digite opção');

  read(op);
 writeln ('digite o 1° numero');
 read(n1);
writeln ('digite o 2° numero');
read (n2);

  case op of

  '+':s:=n1+n2;
  '-':s:=n1-n2;
  '*':s:=n1*n2;   
   '/':s:=n1/n2;  
writeln(' o resultado da operação é :' , s) ;

end.

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.