Home › Fóruns › Programação Básica › Dúvida Exercício 40 (Repetições)
- Este tópico contém 13 respostas, 8 vozes e foi atualizado pela última vez 1 ano atrás por Filipe Mamud Oliveira.
-
AutorPosts
-
-
1 de outubro de 2021 às 16:25 #76691João VictorParticipante
Essa resolução está correta?
programa { inclua biblioteca Util --> u funcao inicio() { inteiro num1, num2, opcao = 0, soma1, sub, sub2, mult escreva("==== CALCULADORA ====") escreva("\nOperando 1 :") leia(num1) escreva("\nOperando 2: ") leia(num2) escreva("-------------------------") enquanto (opcao != 5) { escreva("\n===== ESCOLHA UMA OPÇÃO ======") escreva("\n[1] ADIÇÃO") escreva("\n[2] SUBTRAÇÃO") escreva("\n[3] MULTIPLICAÇÃO") escreva("\n[4] ENTRAR COM NOVOS DADOS") escreva("\n[5] SAIR") escreva("\n>>>>> SUA OPÇÃO:") leia(opcao) escreva("----------------------------------") se (opcao == 1) { soma1 = num1 + num2 escreva( "\nCalculando " + num1 + " + " + num2) escreva(" = " + soma1) } se (opcao == 2 e num2 > num1) { sub = num2 - num1 escreva( "\nCalculando " + num1 + " - " + num2) escreva(" = " + sub) } senao se (opcao == 2 e num1 > num2 ou opcao == 2 e num1 == num2) { escreva( "\nCalculando " + num1 + " - " + num2) sub2 = num1 - num2 escreva(" = " + sub2) } se (opcao == 3) { escreva("\nCalculando " + num1 + " * " + num2) mult = num1 * num2 escreva(" = " + mult) } se (opcao ==4) { escreva("\n==== CALCULADORA ====") escreva("\nOperando 1 :") leia(num1) escreva("\nOperando 2 :") leia(num2) }se (opcao <0 ou opcao >5) { escreva("\nOpção Inválida") escreva("\nDigite Novamente") } } escreva("\n===== SAINDO =====") escreva("\n===== VOLTE SEMPRE =====") } }
- Este tópico foi modificado 3 anos, 1 mês atrás por IcaroFilho.
-
3 de outubro de 2021 às 11:30 #76756IcaroFilhoModerador
Esta correto, podemos apenas melhorar alguns pontos quanto a subtração:
No código atual tempos:
ENTRADA:num1 = 9, num2 = 17
SAIDA:Calculando 9 - 17 = 8
, sendo que esta equação tem resultado negativo.
Além do fato do do uso de memória sempre checandoopcao == 2
podemos resolver pondo uma condição aninhada a outra.se (opcao == 2){ se (num1 > num2){ escreva( "\nCalculando " , num1 , " - " , num2 , " = " , num1 - num2) } senao { escreva( "\nCalculando " , num2 , " - " , num1 , " = " , num2 - num1) }
Uma observação:
nas opções vc pode escreve-las como condições compostas.
A razão é que se tratando do seu código atual, ele irá testar cada possibilidade mesmo a anterior já retornando verdadeira, agora quando escrevemos com condições compostasse ( ... ) { ... } senao se ( ... ) { ... }
, só será averiguado as próximas condições caso a anterior retorno falso. -
3 de outubro de 2021 às 21:14 #76781João VictorParticipante
Obrigado!
-
9 de janeiro de 2023 às 17:00 #108456Tatiana Azer MalufParticipante
Olá. Fiz um pouco diferente do colega acima na opção inválida. Precisei pedir novamente ao usuário que digitasse os 2 valores, caso contrário o programa oferece escolher a opção, mas como não tem os valores, não faz qualquer cálculo.
Pergunto: está correta essa análise?
Segue o código:programa { funcao inicio() { escreva ("{ EXERCÍCIO 040 - Calculadora }\n") inteiro n1, n2, soma, sub, mult, op = 0 escreva ("\nPrimeiro número: ") leia (n1) escreva ("Segundo número: ") leia (n2) enquanto (op != 5) { escreva ("===== ESCOLHA UMA OPERAÇÃO =====") escreva ("\n[1] Adição") escreva ("\n[2] Subtração") escreva ("\n[3] Multiplicação") escreva ("\n[4] Entrar com novos dados") escreva ("\n[5] Sair") escreva ("\n>>>>> SUA OPÇÃO: ") leia (op) soma = n1 + n2 sub = n1 - n2 mult = n1 * n2 se (op == 1) { escreva ("---------------------------") escreva ("\n" + n1 + " + " + n2 + " = " + soma) escreva ("\n---------------------------") } se (op == 2) { escreva ("---------------------------") escreva ("\n" + n1 + " - " + n2 + " = " + sub) escreva ("\n---------------------------") } se (op == 3) { escreva ("---------------------------") escreva ("\n" + n1 + " * " + n2 + " = " + mult) escreva ("\n---------------------------") } se (op == 4) { escreva ("\nPrimeiro número: ") leia (n1) escreva ("Segundo número: ") leia (n2) } se (op == 5) { escreva (" ==== SAINDO ====") escreva ("\n ====VOLTE SEMPRE ====") } se (op > 5) { escreva ("\nOpção inválida") escreva ("\nDigite novamente\n") escreva ("\nPrimeiro número: ") leia (n1) escreva ("Segundo número: ") leia (n2) } escreva ("\n\n") } } }
-
9 de janeiro de 2023 às 17:44 #108457Tutora JessicaModerador
Ola Tatiana, nessa forma que você fez não esta errado, você inclusive encontrou uma solução para o seu “problema”, caso queira deixar o código menor, você pode usar o escolha/caso.
-
2 de abril de 2023 às 19:00 #113098Miguel Júnior Zua Mendes AdãoParticipante
Jéssica pode dar uma olha no meu código está um pouquinho extenso, mas funciona.
funcao inicio()
{
inteiro n1= 0, n2 = 0, adicao, subtracao, mult, op = 1enquanto (op != 9999){
escreva(“Operando 1: “)
leia(n1)
escreva(“Operando 2: “)
leia(n2)escreva(“\n\n”)
escreva(“======= ESCOLHA UMA OPÇÃO ======”)
escreva(“\n[ 1 ] Adição”)
escreva(“\n[ 2 ] Subtração”)
escreva(“\n[ 3 ] Multiplicação”)
escreva(“\n[ 4 ] Entrar com novos dados”)
escreva(“\n[ 5 ] Sair”)
escreva(“\n==================”)
escreva(“\n>>>>> SUA OPÇÃO: ” )
leia(op)se(op == 1){
adicao = n1 + n2
escreva(“\n———————————-“)
escreva(“\nCalculando ” + n1 + ” + ” + n2 + ” = ” + adicao)
escreva(“\n———————————-“)
escreva(“\n\n”)
escreva(“======= ESCOLHA UMA OPÇÃO ======”)
escreva(“\n[ 1 ] Adição”)
escreva(“\n[ 2 ] Subtração”)
escreva(“\n[ 3 ] Multiplicação”)
escreva(“\n[ 4 ] Entrar com novos dados”)
escreva(“\n[ 5 ] Sair”)
escreva(“\n==================”)
escreva(“\n>>>>> SUA OPÇÃO: ” )
leia(op)}
se(op == 2){
subtracao = n1 – n2
escreva(“\n———————————-“)
escreva(“\nCalculando ” + n1 + ” – ” + n2 + ” = ” + subtracao)
escreva(“\n———————————-“)
escreva(“\n\n”)
escreva(“======= ESCOLHA UMA OPÇÃO ======”)
escreva(“\n[ 1 ] Adição”)
escreva(“\n[ 2 ] Subtração”)
escreva(“\n[ 3 ] Multiplicação”)
escreva(“\n[ 4 ] Entrar com novos dados”)
escreva(“\n[ 5 ] Sair”)
escreva(“\n==================”)
escreva(“\n>>>>> SUA OPÇÃO: ” )
leia(op)
}se (op == 3){
mult = n1 * n2
escreva(“\n———————————-“)
escreva(“\nCalculando ” + n1 + ” x ” + n2 + ” = ” + mult)
escreva(“\n———————————-“)
escreva(“\n======= ESCOLHA UMA OPÇÃO ======”)
escreva(“\n[ 1 ] Adição”)
escreva(“\n[ 2 ] Subtração”)
escreva(“\n[ 3 ] Multiplicação”)
escreva(“\n[ 4 ] Entrar com novos dados”)
escreva(“\n[ 5 ] Sair”)
escreva(“\n==================”)
escreva(“\n>>>>> SUA OPÇÃO: ” )
leia(op)
}se ( op == 4 e op == 9999){
escreva(“Operando 1: “)
leia(n1)
escreva(“Operando 2: “)
leia(n2)
escreva(“\n\n”)
escreva(“======= ESCOLHA UMA OPÇÃO ======”)
escreva(“\n[ 1 ] Adição”)
escreva(“\n[ 2 ] Subtração”)
escreva(“\n[ 3 ] Multiplicação”)
escreva(“\n[ 4 ] Entrar com novos dados”)
escreva(“\n[ 5 ] Sair”)
escreva(“\n==================”)
escreva(“\n>>>>> SUA OPÇÃO: ” )
leia(op)}
se (op == 5){
escreva(“==== SAINDO ====”)
escreva(“\n==== VOLTE SEMPRE ====”)
pare
}se (op == 7){
escreva(“==== OPÇÃO INVÁLIDA ====”)}
}
}
-
3 de abril de 2023 às 12:06 #113137Tutora JessicaModerador
Ola Miguel, seu código esta funcionando direitinho, mas é válido que estude mais sobre estruturas de repetição.
O que exercício aborda é você testar seus conhecimentos dessas estruturas.
Bons estudos 🖖 -
11 de abril de 2023 às 10:16 #113727Matheus Marques PortelaParticipante
Jessica, poderia verificar se está correto a estrutura do programa.
programa
{funcao inicio()
{
inteiro n1 = 0, n2 = 0, adi = 0, sub = 0, multi = 0
inteiro n3 = 0escreva(“Operando 1: “)
leia(n1)
escreva(“Operando 2: “)
leia(n2)enquanto ( n3 != 5){
escreva(“\n======== ESCOLHA UMA OPERAÇÃO ========\n”)
escreva(“[ 1 ] Adição\n”)
escreva(“[ 2 ] Subtração\n”)
escreva(“[ 3 ] Multiplicação\n”)
escreva(“[ 4 ] Entrar com novos dados\n”)
escreva(“[ 5 ] Sair\n”)
escreva(“>>>>> SUA OPÇÂO: “)
leia(n3)se (n3 == 1){
adi = n1 + n2
escreva(“———————————–\n”)
escreva(“Calculando “,n1, ” + “, n2, ” = “, adi)
escreva(“\n———————————–\n”)
}
senao se (n3 == 2){
sub = n1 – n2
escreva(“———————————–\n”)
escreva(“Calculando “,n1, ” – “, n2, ” = “, sub)
escreva(“\n———————————–\n”)
}
senao se (n3 == 3){
multi = n1 * n2
escreva(“———————————–\n”)
escreva(“Calculando “,n1, ” x “, n2, ” = “, multi)
escreva(“\n———————————–\n”)
}
senao se (n3 == 4){
escreva(“\nOperando 1: “)
leia(n1)
escreva(“Operando 2: “)
leia(n2)}
se (n3 > 5){
escreva(“\n======== OPÇÃO INVÁLIDA ========\n”)}
}
escreva(” ======== SAINDO ========\n”)
escreva(” ======== VOLTE SEMPRE ========\n”)}
} -
11 de abril de 2023 às 12:04 #113738Tutora JessicaModerador
Ola Matheus, a proposta desse exercício é vocês usarem o escolha/caso.
-
18 de julho de 2023 às 18:23 #120136Gustavo Baister Dantas de SouzaParticipante
Jesus amado, o meu programa tá em looping infinito por causa do enquanto e nao sei como sair dele, já até tentei criar outra variável e tentar inverter a ordem, mas nao tem como ;-;
Embaixo segue o modelo doq fiz
inteiro opc = 0
caracter n
enquanto(opc != 5)escreva(“\n====== ESCOLHA UMA OPERAÇAO ====”)
escreva(“\n[ 1 ] Adiçao”)
escreva(“\n[ 2 ] Subtraçao”)
escreva(“\n[ 3 ] Multiplicaçao”)
escreva(“\n[ 4 ] Entrar com novos dados”)
escreva(“\n[ 5 ] Sair”)
escreva(“\n>>>>> SUA OPÇAO: “)
leia(n)se (n == ‘1’){
inteiro soma = op1 + op2
escreva(“\n—————————————-“)
escreva(“\nCalculando “, op1, ” + “, op2,” = “, soma)
escreva(“\n—————————————-“)
} -
18 de julho de 2023 às 18:54 #120139Tutora JessicaModerador
Ola Gustavo, trouxe a sua dúvida para uma já existente no fórum, peço para que sempre que for postar sua dúvida analise se já não tem criado uma do mesmo exercício, para que possamos deixar nosso fórum mais organizado e assim ajudar outros alunos.
Veja se nos exemplos e explicações acima você consegue encontrar o problema do seu código, se caso não consiga encontrar só retornar o contato por aqui que iremos lhe ajudar.
Bons estudos 🖖 -
26 de outubro de 2023 às 18:59 #125722Filipe Mamud OliveiraParticipante
Ola novamente Jéssica,
Eu fiz o exercicio e ele não carece de logica além de os resultados serem exatos, porém meu codigo foi diferente dos demais. Vou coloca-lo aqui e se você tiver algum conselho por favor me diga :
programa
{funcao inicio()
{
escreva(” { EXERCICIO 40 – Calculadora } “)
inteiro op1, op2, nescreva(“\n”)
escreva(“Operando 1: “)
leia(op1)
escreva(“Operando 2: “)
leia(op2)
escreva(“\n===== ESCOLHA UMA OPERACÃO =====”)
escreva(“\n[1] \tAdição”)
escreva(“\n[2] \tSubtração”)
escreva(“\n[3] \tMultiplicação”)
escreva(“\n[4] \tEntrar com novos dados”)
escreva(“\n[5] \tSair”)
escreva(“\n>>>>> Sua Opção: “)
leia(n)enquanto (n!=5) {
se (n == 1 ) {
escreva(“Calculando: “, op1, ” + “, op2, ” = “, (op1 + op2), “\n”)
}
se (n == 2 ) {
escreva(“Calculando: “, op1, ” – “, op2, ” = “, (op1 – op2), “\n”)
}
se (n == 3 ) {
escreva(“Calculando: “, op1, ” * “, op2, ” = “, (op1 * op2), “\n”)
}
se (n == 4 ) {
escreva(“\n”)
escreva(“Operando 1: “)
leia(op1)
escreva(“Operando 2: “)
leia(op2)
}
se (n > 5) {
escreva(“===== Opção Invalida =====\n”)
}
escreva(“\n===== ESCOLHA UMA OPERACÃO =====”)
escreva(“\n[1] \tAdição”)
escreva(“\n[2] \tSubtração”)
escreva(“\n[3] \tMultiplicação”)
escreva(“\n[4] \tEntrar com novos dados”)
escreva(“\n[5] \tSair”)
escreva(“\n>>>>> Sua Opção: “)
leia(n)}
escreva(“\n===== SAINDO =====”)
escreva(“\n===== VOLTE SEMPRE =====”)
}
} -
27 de outubro de 2023 às 10:35 #125753Tutora JessicaModerador
Olá Filipe, testei e seu código esta funcionado perfeitamente, não precisa ficar igual a todos, o importante é você entender.
Bons estudos 🖖🏻-
27 de outubro de 2023 às 15:24 #125766Filipe Mamud OliveiraParticipante
Muito Obrigado Jéssica
-
-
-
AutorPosts
- Você deve fazer login para responder a este tópico.