Respostas no Fórum
-
AutorPosts
-
Filipe Mamud OliveiraParticipante
Ola Tutoria,
Na resolução do meu exercicio tudo saiu correto mas na hora de mostrar mais de uma pessoa com a maior idade ela mostra somente uma das pessoas, vocês poderiam me ajudar a entender por favor?
programa
{
inclua biblioteca Matematica –> matinclua biblioteca Util –> u
funcao inicio()
{escreva(“———————————————-\n”)
escreva(” { EXERCICIO 063 – Pessoas e Idades } “)
escreva(“\n———————————————-\n”)cadeia nome[6], maiorn = “”
inteiro idade[6], p, maior =0
real midade = 0.0, s = 0.0para (p=0; p<u.numero_elementos(nome); p++) {
faca {
escreva(“Nome da pessoa [“, p, “]: “)
leia(nome[p])
} enquanto (nome[p] == “”)
faca {
escreva(“Idade de “, nome[p], “: “)
leia(idade[p])
s+=idade[p]
se (p==0) {
maior = idade[p]
maiorn = nome[p]
} senao {
se (idade[p] > maior) {
maior = idade[p]
maiorn = nome[p]
}
}} enquanto (idade[p]>= 130 e idade[p] <=0)
}
escreva(“\n———————————————-\n”)
escreva(“\tANALISANDO AS PESSOAS CADASTRADAS”)
escreva(“\n———————————————-\n”)midade = s/ u.numero_elementos(idade)
escreva(“A média de idade é: “, mat.arredondar(midade, 2))
escreva(“\nPessoas acima da média: “)
para (p=0; p<u.numero_elementos(nome); p++) {
se (idade[p]>= midade) {
escreva( “\n–> “, nome[p], ” (“, idade[p], ” anos).”)
u.aguarde(300)
}
}
escreva(“\n———————————————-\n”)
escreva(“Maior idade do grupo: “, maior, ” anos.”)
escreva(“\nPessoa(s) com maior idade no grupo: “)
escreva(“\n–> “, maiorn)
escreva(“\n———————————————-\n”)
}
}11 de janeiro de 2024 às 18:37 em resposta a: Exercicio – 54 estrutura de repetição validadando dados. #130170Filipe Mamud OliveiraParticipanteOla Tutora,
Espero que tudo esteja ocorrendo bem para você.
Eu fiz meu codigo e apareceram dois erros na hora que eu integrei as condições de atribuição para o nome e idades para as pessoas mais velha e nova.
“Erro na compilação”
“Existem trechos do codigo onde a variavel idade pode não ter sido inicializada”
Você poderia me ajudar por favor?programa
{inclua biblioteca Tipos –> ti
inclua biblioteca Texto –> txt
funcao inicio()
{
escreva(” { EXERCICIO 054 – PESSOAS VALIDADAS } “)
escreva(“\n”)inteiro c=0, idade, soma = 0, pessoa =0, anosv =0, anosn =0
cadeia teclado, velha, nova, nome
caracter resposta = ‘ ‘
faca {
enquanto (verdadeiro) {
escreva(“—————————————–\n”)
escreva(“\t\tPESSOA “, c+1, “\n”)
escreva(“—————————————–\n”)
escreva(“NOME: “)
leia(teclado)
se (txt.numero_caracteres(teclado) >3) {
nome = teclado
pare
} senao {
escreva(“<<ERRO>> O nome deveter pelo menos 3 letras!\n”)
}
}
enquanto (verdadeiro) {
escreva(“IDADE: “)
leia(teclado)
se (ti.cadeia_e_inteiro(teclado, 10)) {
idade = ti.cadeia_para_inteiro(teclado, 10)
se (idade>0 e idade <=120) {
pare
} senao {
escreva(“<<ERRO>> Idade invalida!\n”)
}
} senao {
escreva(“<<ERRO>> A idade deve ser um numero inteiro!\n”)
}
}
enquanto (verdadeiro) {
escreva(“Quer continuar? [S/N] “)
leia(teclado)
se (ti.cadeia_e_caracter(teclado)) {
resposta = ti.cadeia_para_caracter(teclado)
se (resposta == ‘S’ ou resposta == ‘s’ ou resposta == ‘N’ ou resposta == ‘n’) {
pare
} senao {
escreva(“<<ERRO>> A resposta deve ser S ou N!\n”)
}
} senao {
escreva(“<<ERRO>> A resposta deve ser uma letra!\n”)
}
}
c++
soma+=pessoa
se ( c==1) {
anosv = idade
velha = nome
anosn = idade
nova = nome
} senao {
se (idade > anosv) {
anosv = idade
velha = nome
}
se (idade < anosn) {
anosn = idade
nova = nome
}
}
} enquanto (resposta == ‘S’ ou resposta == ‘s’)escreva(“\n—————————————–\n”)
escreva(“Ao todo você cadastrou: “, pessoa, ” pessoas.\n”)
escreva(velha, ” é a pessoa mais velha, com “, anosv, ” anos.\n”)
escreva(nova, ” é a pessoa mais nova, com “, anosn, ” anos.\n”)
}
}Filipe Mamud OliveiraParticipanteBom dia à todos,
Estou com duvida no meio do meu codigo (estou resolvendo o exercicio por partes como o professor ensinou) e na hora de colocar a pergunta se o usuario quer continuar ou não estou com um problema, se eu coloco ele dentro do looping ele conta a resposta errada como letras ou numero fora dos limites como um valor ou se coloco fora do looping ele não funciona.
Meu codigo ainda incompleto pois estou indo por etapas, vocês poderiam me ajudar com o “continuar [S/N]” por favor?programa
{inclua biblioteca Tipos –> ti
inclua biblioteca Texto –> tx
funcao inicio()
{
escreva(” { EXERCICIO 053 – Numeros Validados”)
escreva(“\n”)
cadeia resposta, teclado
inteiro valor, c=1enquanto (verdadeiro) {
escreva(“——————————————-\n”)
escreva(“\t\tVALOR “, c, “\n”)
escreva(“——————————————-\n”)
escreva(“Digite um valor (entre 01 e 10): “)
leia(teclado)
se (ti.cadeia_e_inteiro(teclado, 10)) {
valor = ti.cadeia_para_inteiro(teclado, 10)
se (valor >=0 e valor <=10) {
} senao {
escreva(“<<ERRO>> O numero deve estar entre 1 e 10!\n”)
}
} senao {
escreva(“<<ERRO>> O valor deve ser um numero!\n”)
}
c++
}
escreva(“Quer continuar: [S/N] “)
leia(resposta)
se ( resposta == “N” ou resposta == “n”) {
pare
}
}
}Filipe Mamud OliveiraParticipanteOla Jessica,
Eu estava realizando o exercicio e até verifiquei no video do professor e alinhei minha solução a da dele mas não vejo o por que do meu codigo não mostrar o menor valor, você poderia por favor me ajudar?programa
{// sortear varios numeros
// mostrar quantos valores sorteados
// a soma de todos valores
// quantas vezes o valor 5 foi sorteadofuncao inicio()
{
escreva(” { EXERCICIO 044 – Numeros Sorteados }”)
escreva(“\n”)
escreva(“Vou sortear varios numeros.\n”)
escreva(“——————————————–\n”)
inteiro c = 0
, sorteado, soma =0, maior =0, menor =0, cont5 = 0
caracter respfaca {
sorteado = sorteia(1,10)
escreva(“O “, (c+1), “° valor sorteado foi “, sorteado, “\n”)
c++
soma += sorteado
se (c == 0) {
maior = sorteado
menor = sorteado
} senao {
se (sorteado > maior) maior = sorteado
se (sorteado < menor) menor = sorteado
}
se (sorteado == 5) {
cont5++
}
escreva(“Quer sortear mais um numero? [S/N] “)
leia(resp)
} enquanto (resp != ‘N’ e resp != ‘n’)
escreva(“Você me fez sortear “, c, ” valores.\n”)
escreva(“A soma de todos os valores foi igual a “, soma, “\n”)
escreva(“O maior valor foi “, maior, ” e o menor valor foi “, menor, “\n”)
escreva(“O valor 5 foi sorteado “, cont5, ” vezes.\n”)
}
}Filipe Mamud OliveiraParticipanteMuito obrigado Jéssica
Filipe Mamud OliveiraParticipanteOla Jéssica,
Do que eu entendi dos videos foi que a variavel “senao se” introduz uma condicional suplementar e a “senao” termina o caso, ou seja “senao se” pode se repetir diversas vezes como no caso do IMC mas a “senao” é a definição da ultima possibilidade. Estaria este pensamento correto?Filipe Mamud OliveiraParticipanteOla Jéssica,
Eu entendi que minha estrutura estava errada pela tua resposta e vi a correção do exercicio. Porém ainda não entendi quando usar o “senao” e “senao se” dentro de varias formulas, por que para mim por enquanto o “senao” é definitivo, ou seja ele indica a condição final e acaba a variavel. Você poderia me explicar por favor?Filipe Mamud OliveiraParticipanteOla Jéssica,
No exercicio 42 meu codigo correu bem porém na resposta de quantas mulheres foram cadastradas ele deixou de mostrar um dos valores:
1 – Eu coloquei para rodar um ‘f’ minusculo e um ‘F’ maiusculo e ele me ocntabilizou apenas uma das respostas, você poderia me ajudar a solucionar?
2 – O portugol me diz que a variavel salario seria truncado, se eu a declarar como inteiro poderia resultar em um problema caso o usuario marque um salario com decimais, então o declarei real, porém a variavel supho (que representa o salario superior dentre os homens) eu declarei como inteiro e o portugol não o aceita como real, então ele diz que salario sera truncado, porém funciona do jeito correto, mas como eu resolveria o codigo para que o portugol não truncasse a variavel salario ?
codigo :programa
{inclua biblioteca Tipos –> t
inclua biblioteca Matematica –> m
funcao inicio()
{
escreva(” { EXERCICIO 042 – Cadastro de Funcionarios } “)
escreva(“\n”)
caracter r
inteiro c = 1, homens = 0, mulheres = 0, supmu = 0, sho = 0, supho = 0
real mediah, salario
cadeia nome, sexoenquanto (verdadeiro) {
escreva(“Nome: “)
leia(nome)
escreva(“Sexo [F/M]: “)
leia(sexo)
escreva(“Salario: R$”)
leia(salario)escreva(“Quer continuar? “)
leia(r)
se (r == ‘n’ ou r == ‘N’) {
pare
}
se (sexo == “m” ou sexo == “M”) {
sho += salario
homens++
}
se (sexo == “f” ou sexo == “F”) {
mulheres++
}
se (sexo == “f” ou sexo == “F” e salario >= 1000) {
supmu++
}
se (sexo == “m” ou sexo == “M” e c == 1) {
supho = salario
}
se (sexo == “m” ou sexo == “M” e supho < salario) {
supho = salario
}
c++
}
mediah = t.inteiro_para_real(sho) / homensescreva(“\n========= RESULTADOS =========”)
escreva(“\nTotal de pessoas cadastradas: “, c)
escreva(“\nTotal de Homens: “, homens)
escreva(“\nTotal de Mulheres: “, mulheres)
escreva(“\nMédia salarial dos Homens: “, m.arredondar(mediah, 2))
escreva(“\nTotal de Mulheres que ganham mais de Mil Reais: “, supmu)
escreva(“\nMaior salario entre os homens: “, supho)}
}Filipe Mamud OliveiraParticipanteMuito Obrigado Jéssica
Filipe Mamud OliveiraParticipanteOla 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 =====”)
}
}Filipe Mamud OliveiraParticipanteOla 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”)
}
}Filipe Mamud OliveiraParticipanteOlà Jéssica,
Muito obrigado pela dica, fiz a correção e deu tudo certinho, muito obrigado mesmo.Filipe Mamud OliveiraParticipanteOla Jéssica,
Eu verifiquei meu codigo e talvez por falta de atenção estou deixando um erro passar em algum lugar que minha caixa alta não esta funcionando sempre na saida dos valores no final, sempre uma frase não mostra a pessoa mais nova, as vezes no homem, as vezes na mulher, mas sempre que uso o valor “sexo” com minuscula para forçar o caixa_alta, você poderia me ajudar a identificar por favor?
codigo :programa
{inclua biblioteca Texto –> t
funcao inicio()
{
escreva(” { EXERCICIO 038 – Analisando pessoas } “)
inteiro c = 1, idade, novo = 0, velho = 0, nova = 0, velha = 0
cadeia nome, novon = “”, novan = “”, velhon = “”, velhan = “”, sexoenquanto (c <= 5) {
escreva(“\n———————–\n”)
escreva(c, “a PESSOA.\n”)
escreva(“———————–\n”)
escreva(“NOME: “)
leia(nome)
escreva(“SEXO: “)
leia(sexo)
escreva(“IDADE: “)
leia(idade)
se ( c == 1 e t.caixa_alta(sexo) == “M”) {
novo = idade
velho = idade
novon = nome
velhon = nome
} se (c == 1 e t.caixa_alta(sexo) == “F”) {
nova = idade
velha = idade
novan = nome
velhan = nome
}
senao {
se (idade < novo e t.caixa_alta(sexo)== “M”) {
novo = idade
novon = nome
}
se (idade < nova e t.caixa_alta(sexo)== “F”) {
nova = idade
novan = nome
}
se (idade > velho e t.caixa_alta(sexo) == “M”) {
velho = idade
velhon = nome
}
se (idade > velha e t.caixa_alta(sexo) == “F”) {
velha = idade
velhan = nome
}
}
c++
}
escreva(“\n=======================================================\n”)
escreva(“\nA mulher mais jovem é “, novan, ” com “, nova, ” anos.”)
escreva(“\nA mulher mais velha é “, velhan, ” com “, velha, ” anos.”)
escreva(“\nO homem mais jovem é “, novon, ” com “, novo, ” anos.”)
escreva(“\nO homem mais velho é “, velhon, ” com “, velho, ” anos.”)
escreva(“\n=======================================================\n”)
}
}Filipe Mamud OliveiraParticipanteEntão Jessica, mesmo depois de ler pela segunda vez os posts aqui, eu não identifiquei resposta a minha questão.
O resultado do meu programa da 101.0 e o do Guanabara assim como o do rodinei é de 101.39
Eu não estou procurando o arredondamento como ele, eu estou procuranso saber por que minha formula que parece ser boa e correta esta indicando as casas deciamis apos a virgula de maneira diferente dos outros?
Eu quero evitar que o programa rode mas sem a logica correta como o professor explicou em outro video.
Filipe Mamud OliveiraParticipanteOla Jessica,
Espero que você esteja passando um bom dia.
Se você for ver no codigo que eu enviei eu usei a função na variavel DIVISÃO REAL porém ela não foi levada em conta pelo programa.O programa simplesmente dividiu de forma real mas sem apresentar o 0.5 ou seja apresentando o .0
Filipe Mamud OliveiraParticipanteOla moderadores,
estou a algumas horas buscando no forum de Programação basica a solução para o meu problema e gostaria de sugerir uma opção de busca dentro de uma categoria. Eu digo isso pois o sistema de busca funciona fora da categoria “Programação basica” mas uma vez ao interior desta categoria, ja não temos mais o sistema de busca então ficamos vagando por tempo ilimitado buscando saber se não vamos repetir uma questão com uma postagem que seja repetida.Porém aqui vai minha questão.
No exercicio 010 do modulo um a minha linha de codigo da um resultado proimo ao do professor porém o resultado não é exatamente o mesmo, no resultado que ele obtem quanto à estimativa de tempo perdido quanto ao uso do cigarro o resultado de seu codigo da : 101.39 porém o meu da 101.0{
funcao inicio()
{
const inteiro ANOSDIA = 365, DIA = 1440, CIG = 10
inteiro anos, cigdia, cigtotal
real vidadias
escreva(“{EXERCICIO 10 – Não fume}”)
escreva(“\n”)
escreva(“Cada cigarro reduz 10 minutos da sua vida”)
escreva(“\n”)
escreva(“————————————————-“)
escreva(“\n”)
escreva(“Hà quantos anos você fuma? “)
leia(anos)
escreva(“Quantos cigarros por dia você fuma? “)
leia(cigdia)
escreva(“\n”)
escreva(“————————————————-“)
escreva(“\n”)
cigtotal = cigdia*anos*ANOSDIA
vidadias = (cigtotal*CIG)/DIAescreva(“\n”)
escreva(“Ao todo você ja fumou “, cigtotal)
escreva(“\n”)
escreva(“Estima-se que você ja perdeu “, vidadias, ” dias de vida!”)
escreva(“\n”)
}
}Filipe Mamud OliveiraParticipanteprograma
{
inclua biblioteca Tipos –> t
funcao inicio()
{
inteiro n1, n2
escreva(“{ EXCERCICIO 004 – Operações Aritméticas }”)
escreva(“\nDigite um valor: “)
leia(n1)
escreva(“\nDigite outro valor: “)
leia(n2)escreva(“\n———– RESULTADOS ———–“)
escreva(“\nSOMA = “+ (n1+n2))
escreva(“\nDIFERENCA = “+ (n1-n2))
escreva(“\nPRODUTO = “+ (n1*n2))
escreva(“\nDIVISÃO INTEIRA = “+ (n1/n2))
escreva(“\nDIVISÃO REAL = “+ t.inteiro_para_real(n1/n2))
escreva(“\nRESTO DA DIVISÃO = “+ (n1%n2))}
}porém o problema mesmo que eu encontrei é que meu portugol não têm a biblioteca Tipos
Filipe Mamud OliveiraParticipantePerdão é o exercicio 004 🙂
Filipe Mamud OliveiraParticipanteOla à todos;
Estou fazendo o mesmo exercicio, 003 da aula 008 e estou com um problema:
Meu portugol não tem a biblioteca tipo, ou seja não estou conseguindo introduzir o comando de inteiro para real 🙁
Alguém poderia me socorrer por favor? -
AutorPosts