Home › Fóruns › Programação Básica › Exercício 39 Lendo dados
- Este tópico contém 9 respostas, 7 vozes e foi atualizado pela última vez 1 ano atrás por Tutora Jessica.
-
AutorPosts
-
-
16 de junho de 2021 às 22:43 #69595Bruno RODRIGUES DOS REIS ROSSI SERRAParticipante
Ola´,
consegui resolver, no entanto tentei colocar mais informações como o menor valor, no entanto não esta funcionando direito.
será que alguém` tem alguma orientação?
programa
{
inclua biblioteca Matematica–>mfuncao inicio()
{
inteiro n = 0, soma = 0, valor =1
real media
,menor=0, maior=0, totn = 0
escreva(“Lendo dados\n”)
escreva(“———-\n”)enquanto(n!=9999){
escreva(valor, “o. 9999 faz parar\n”)
escreva(“Número “)
leia(n)se(n!=9999){
soma+=n
totn++
valor++
}se(valor == 1){
maior = n
menor = n
}senao{
se(n!=9999 e n<maior)
menor = n}se (n!=9999 e n>maior){
maior=n
}}
media = m.arredondar(soma/totn, 2)
escreva(“Ao todo você digitou “+totn+” valores\n”)
escreva(“A soma entre eles foi “+soma+”\n”)
escreva(“A média foi “+media+”\n”)
escreva(“o maior foi “+maior+”\n”)
escreva(“o menor valor foi “+menor)
}
} -
17 de junho de 2021 às 10:20 #69611IcaroFilhoModerador
Bom dia, vamos as modificações que fiz.
-
Bibliotecas utilizadas:
- Adicionei a biblioteca Tipos, que será usada para conversão de inteiro para real (executado na media)
-
Alterações nas variáveis:
- Transferia as variáveis
maior
emenor
para tipo inteiro, tendo em vista serão atribuições den
, que é um numero do tipo inteiro. - Removi a variavel
valor
, estava sendo mal empregada.
-
Alterações estruturais.
- Alterado contador numérico:
escreva(valor, “o. 9999 faz parar\n”)
–>escreva(totn+1, "o. 9999 faz parar\n")
- Alterado algoritmo de media.
media = m.arredondar(soma/totn, 2)
–>media = m.arredondar(t.inteiro_para_real(soma)/totn, 2)
-
Aqui a comparação esta errada, por isso não pega o menor valor.
se(n!=9999 e n > maior) menor = n
Deve-se alterar para:
se(n!=9999 e n < menor) menor = n
-
Extra:
- Não sei se aprender pare, mas caso tenha, pode fazer para diminuir a quantidade de testes logicos , deixando de fazer:
se(n!=9999 e n<maior) se (n!=9999 e n>maior)
- com a reestruturação completa ficaria:
programa { inclua biblioteca Tipos --> t inclua biblioteca Matematica --> m funcao inicio() { inteiro n = 0, soma = 0, maior = 0, menor = 0, totn = 0 real media escreva("Lendo dados\n") escreva("----------\n") enquanto(n != 9999){ escreva(totn+1, "o. 9999 faz parar\n") escreva("Número ") leia(n) se(n==9999){ pare }senao{ soma+=n totn++ } se(totn == 1){ maior = n menor = n }senao { se (n < menor){ menor = n }senao se (n > maior){ maior = n } } } media = m.arredondar(t.inteiro_para_real(soma)/totn, 2) escreva("Ao todo você digitou "+totn+" valores\n") escreva("A soma entre eles foi "+soma+"\n") escreva("A média foi "+media+"\n") escreva("o maior foi "+maior+"\n") escreva("o menor valor foi "+menor) } }
-
2 de novembro de 2022 às 19:00 #104243Neander FontesParticipante
Olá!! Tudo bem pessoal?
Alguém poderia me ajudar? Na verdade é mais curiosidade, o meu código está funcionando!
Porém eu gostaria dentro das opções saber qual é o menor valor digitado, e eu não consegui nesse caso atribuir para alguma variável.
Poderia me ajudar na linha e raciocínio do meu código? Obrigado!!programa {/* Módulo03 Aula08 - Repetição com Flag * Portugol Exercício038. * Autor: Neander * Data: 02/11/2022 * Local: Portugal-Braga * Empresa: Estudonauta */ inclua biblioteca Tipos --> tp inclua biblioteca Matematica --> mat funcao inicio() { //Exercício 039: - Lendo Dados escreva("{ EXERCÍCIO 39 - Lendo Dados }") //Obs.: //Declarações de Variáveis: inteiro contador, num, numSoma inteiro numMaior, numMenor, qtNum real numMedia //Entrada de Dados: escreva("\n\n==================== Exercício ====================\n") //Declarações Fixas: contador = 1 num = 0 qtNum = 0 numSoma = 0 numMedia = 0.0 numMaior = 0 numMenor = 0 //Declarações do Escopo Principal: enquanto (num != 9999) { escreva("------------") escreva("\n#### [Digite 9999 para Sair]: ####") escreva("\n" + contador + "º Valor: ") leia(num) escreva("------------") se (num != 9999) { qtNum++ numSoma += num numMedia = tp.inteiro_para_real(numSoma) / qtNum } se (num > numMaior e num != 9999) { numMaior = num } se (num < numMenor e num != 9999) { numMenor = num } contador++ } escreva("\n\n########## RESULTADOS FINAIS ##########") //Declarações Finais: escreva("\nAo todo você digitou " + qtNum + " valores.") escreva("\nA Soma entre eles é = " + numSoma) escreva("\nA Média dos valores é = " + mat.arredondar(numMedia, 2)) escreva("\nO Maior valor digitado é = " + numMaior) escreva("\n============================================") escreva("\n\n------------------------ Fim ------------------------") } }
-
3 de novembro de 2022 às 10:09 #104268IcaroFilhoModerador
Bom dia Neander Fontes,
Movi seu tópico para esta postagem tendo em vista que pertence ao mesmo exercício.
Sempre que tiver algum problema / dúvida, veja se já não existe um tópico referente ao mesmo exercício, assim mantemos um fórum mais limpo e mais fácil para outros alunos acharem resoluções por questão.Quanto a sua dúvida, você deve fazer com que o primeiro valor digitado seja tanto o maior quanto menor número registrado.
A partir deste momento que você fará as verificações se o número digitado é maior/menor que o registrado.Dá pra analisar o código que editei baseado no do Bruno.
Caso ainda possua dúvidas, é só postar aqui mesmo.
-
-
21 de março de 2023 às 18:07 #112533Marcos MissoneParticipante
Boa Noite
Peco analise do Ex039
inclua biblioteca Matematica --> mat funcao inicio() { //VAR inteiro fl = 0, maior = 0, menor = 0 inteiro c = 1, num = 0, soma = 0, media = 0 //ITERACAO enquanto(fl != 9999 ou c <= num){ se(fl != 9999){ soma += fl } //ENTRADA DE DADOS //DIFICULDADE: Os numeros digitados tem mais valores. escreva("\n", c , "º VALOR [9999 faz parar]") escreva("\n--------------------------------") escreva("\nNUMERO: ") leia(fl) escreva("---------------------------------") //TESTANDO O NUMERO MAIOR E MENOR //DIFICULDADE: Como tirar o flag do maior numero se(c == 1){ maior = fl menor = fl }senao{ se(fl > menor){ maior = fl } se(fl < maior){ menor = fl } } c++ } //RESULTADO media = soma/c escreva("\nAo todo voce digitou " , c , " valores") escreva("\nA soma entre eles foi " , soma) escreva("\nE a media foi de ",mat.arredondar(media, 3)) escreva("\nO maior valor digitado foi " , maior) escreva("\nO menor valor digitado foi " , menor) } }
-
21 de março de 2023 às 18:23 #112534Tutora JessicaModerador
Ola Marcos, seu código precisa de atenção, ele não esta fazendo a contagem de números certo.
Dê uma olhada na explicação acima do Ícaro e veja se consegue arrumar seu código, caso não consiga retorne ao fórum dizendo qual sua dúvida.
Bons estudos 🖖 -
26 de março de 2023 às 21:00 #112785Miguel Júnior Zua Mendes AdãoParticipante
Jéssica, ajuda – me , por favor!
O maior número está aparecendo o 9999
E os números digitados está contalizando o 9 sendo que só digitei 7 números.funcao inicio()
{
inteiro n = 0, valor = 1, soma = 0, media = 0, maior = 0
enquanto (n != 9999){soma += n
media = soma / valorescreva(“————–“)
escreva(“\n” + valor + ” ª VALOR [9999 faz parar]”)
escreva(“\n————-“)
escreva(“\nNÚMERO: “)
leia(n)
escreva(“—————“)
se ( n == 9999){}
se (n > valor){
valor ++
}
se( n > maior){
maior = n}
}
escreva(“\n=========== RESULTADO FINAL ===========”)
escreva(“\n”)
escreva(“\nAo todo você digitou ” + valor + ” valores.”)
escreva(“\nA soma entre eles foi ” + soma)
escreva(“\nE a média foi ” + media)
escreva(“\n”)
escreva(“O maior valor digitado foi ” + maior )
}}
-
27 de março de 2023 às 11:03 #112815Tutora JessicaModerador
Ola Miguel, dê uma olhada na explicação acima do Ícaro, te sugiro refazer o seu código, ele esta faltando algumas informações importantes para o funcionamento do seu código.
A explicação acima do Ícaro vai lhe ajudar a sanar algumas dessas informações que precisam ser colocadas no seu código. -
26 de outubro de 2023 às 17:20 #125720Filipe Mamud OliveiraParticipante
Ola Jéssica,
Espero que o teu dia esteja indo bem, eu consegui realizar o exercicio, porém um pequeno detalhe escapou do meu codigo e não consigo sanar ele sem fazer “gambiarra” e gostaria da tua ajuda, a execução do meu programa mostra nas respostas os valores digitados porém inclue o valor do flag, ou seja se você digitar 5 valores e o sexto for o flag ele mostra que foram 6 valores digitados. Você poderia me esclarecer por favor?programa
{inclua biblioteca Matematica –> m
inclua biblioteca Tipos –> t
funcao inicio()
{
inteiro v = 0, c = 1, soma = 0, maior = 0
real media
escreva(” { EXERCICIO 039 – Lendo Dados } “)
escreva(“\n”)
enquanto (v != 9999) {
escreva(“————————\n”)
escreva(c, “° VALOR [9999 faz parar]”)
escreva(“\n————————\n”)
escreva(“NUMERO: “)
leia(v)
se (v != 9999) {
soma += v
c++
}
se (v> maior e v != 9999) {
maior = v
}media = t.inteiro_para_real(soma) / c
escreva(“=========== FLAG DIGITADO ===========\n”)
escreva(“Ao todo você digitou “,c, ” valores\n”)
escreva(“A soma entre eles é “, soma, “\n”)
escreva(“A média entre eles é “, m.arredondar(media, 2), “\n”)
escreva(“O maior valor digitado foi: “, maior, “\n”)
}
} -
29 de outubro de 2023 às 19:52 #125836Tutora JessicaModerador
Ola Filipe, te peço desculpas por ter deixado passar essa sua dúvida, você conseguiu resolver ? Ou ainda tem dúvidas?
-
-
AutorPosts
- Você deve fazer login para responder a este tópico.