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, 6 meses atrás por
Filipe Mamud Oliveira.
-
AutorPosts
-
-
1 de outubro de 2021 às 16:25 #76691
João Victor
ParticipanteEssa 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, 6 meses atrás por
IcaroFilho.
-
Este tópico foi modificado 3 anos, 6 meses atrás por
-
3 de outubro de 2021 às 11:30 #76756
IcaroFilho
ModeradorEsta 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 #76781
João Victor
ParticipanteObrigado!
-
9 de janeiro de 2023 às 17:00 #108456
Tatiana Azer Maluf
ParticipanteOlá. 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 #108457
Tutora Jessica
ModeradorOla 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 #113098
Miguel Júnior Zua Mendes Adão
ParticipanteJé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 #113137
Tutora Jessica
ModeradorOla 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 #113727
Matheus Marques Portela
ParticipanteJessica, 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 #113738
Tutora Jessica
ModeradorOla Matheus, a proposta desse exercício é vocês usarem o escolha/caso.
-
18 de julho de 2023 às 18:23 #120136
Gustavo Baister Dantas de Souza
ParticipanteJesus 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 #120139
Tutora Jessica
ModeradorOla 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 #125722
Filipe Mamud Oliveira
ParticipanteOla 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 #125753
Tutora Jessica
ModeradorOlá 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 #125766
Filipe Mamud Oliveira
ParticipanteMuito Obrigado Jéssica
-
-
-
AutorPosts
- Você deve fazer login para responder a este tópico.