Home › Fóruns › Programação Básica › exercício 38. programação basica
- Este tópico contém 9 respostas, 3 vozes e foi atualizado pela última vez 2 semanas, 6 dias atrás por
Tutora Jessica.
-
AutorPosts
-
-
1 de fevereiro de 2025 às 22:02 #153301
Kauan Kesley Santana Rocha
Participanteprograma { funcao inicio() { inteiro c = 1, idade, contagem_f = 0, contagem_m = 0, maior_m = 0 inteiro menor_m = 0, maior_f = 0, menor_f = 0 cadeia nome, novo_f = "", novo_m = "", velho_f = "", velho_m = "" caracter sx enquanto (c <= 4) { escreva (c," pessoa\n") escreva ("-------------------------------------------------------\n") escreva ("Digite o nome: ") leia (nome) escreva ("Digite a idade: ") leia (idade) escreva ("Digite o sexo: ") leia (sx) escreva ("===========================================================\n") se (sx == 'm' ou sx == 'M') { // sexo masculino contagem_m++ se (contagem_m == 1) { novo_m = nome menor_m = idade velho_m = nome maior_m = idade }senao { se (idade > maior_m) { maior_m = idade velho_m = nome } se (idade < menor_m) { menor_m = idade novo_m = nome } } }senao se (sx == 'f' ou sx == 'F') { // sexo feminino contagem_f++ se (contagem_f == 1) { novo_f = nome menor_f =idade velho_f = nome maior_f = idade }senao { se (idade > maior_f) { maior_f = idade velho_f = nome } se (idade < menor_f) { menor_f = idade novo_f = nome } } } c++ } escreva ("\n===========================================================\n") escreva ("Ao todo tem ",contagem_m," masculino e ",contagem_f," feminino\n") escreva ("A mulher mais velha é ",velho_f,". Ela tem ",maior_f," anos\n") escreva ("A mulher mais nova é ",novo_f,". ela tem ",menor_f," anos\n") escreva ("O homem mais velho é ",velho_m,". Ele tem ",maior_m," anos\n") escreva ("O homem mais novo é ",novo_m,". Ele tem ",menor_m," anos\n") } }
tá certo?
-
3 de fevereiro de 2025 às 10:03 #153336
Tutora Jessica
ModeradorOla Kauan, você tem alguma duvida?
Seu codigo apresenta algum erro ou não conseguiu fazer alguma parte dele? -
2 de junho de 2025 às 14:04 #158160
RONDINELI CONSONI DA SILVA
ParticipanteJéssica, boa tarde! Estou com problema de lógica nesse programa (já tentei algumas vezes), e consegui fazer funcionar com alguns “erros”.
Exemplo: quando faço com HOMENS e MULHERES, o sistema me entrega os dados normalmente, porém quando só coloco pessoas de um único sexo, a resposta aparece tanto na opção M/F (João, aparece tanto no F/M).
Observação: estou tentando resolver o exercício, o mais parecido com a aula. Verifiquei que no exercício, a OPÇÃO HOMEM MAIS NOVO, aparece ZERADO, porém o professor digitou o nome, sexo e a idade do homem mais novo (não consegui printar a tela no fórum). Estou travado nessa situação. Pode me ajudar com essa dúvida? Obrigado.Segue abaixo o código do programa:
programa
{funcao inicio()
{
inteiro c, id, moco, velho, moca, idosa, fem, mas
cadeia sx, nome, namemoco, namemoca, namevelho, nameidosac = 1
moco = 0
velho = 0
moca = 0
idosa = 0
fem = 0
mas = 0
nome = “”
namemoco = “”
namemoca = “”
namevelho = “”
nameidosa = “”escreva(“{ EXERCÍCIO 038 – Analisando Idades } \n”)
enquanto(c <= 3){
escreva(“————————-\n”)
escreva(c,”ª PESSOA \n”)
escreva(“————————-\n”)
escreva(“NOME: “)
leia(nome)
escreva(“SEXO: [M/F] “)
leia(sx)
escreva(“IDADE: “)
leia(id)se(c == 1){
moco = id
moca = id
velho = id
idosa = id
namemoco = nome
namemoca = nome
namevelho = nome
nameidosa = nome}
se(id < moca e sx == “f” ou sx == “F”){
namemoca = nome
moca = id
fem = fem + 1
}
se(id > idosa e sx == “f” ou sx == “F”){
nameidosa = nome
idosa = id
fem = fem + 1
}senao{
se(id < moco e sx == “m” ou sx == “M”){
namemoco = nome
moco = id
mas = mas + 1
}se(id > velho e sx == “m” ou sx == “M”){
namevelho = nome
velho = id
mas = mas + 1
}
}c = c + 1
}
escreva(“=======================================================\n”)
escreva(“A mulher MAIS NOVA é “,namemoca,” que tem “,moca,” anos. \n”)
escreva(“A mulher MAIS VELHA é “,nameidosa,” que tem “,idosa,” anos. \n”)
escreva(“O homem MAIS JOVEM é “,namemoco,” que tem “,moco,” anos. \n”)
escreva(“O homem MAIS VELHO é “,namevelho,” que tem “,velho,” anos. \n”)}
} -
2 de junho de 2025 às 15:15 #158161
Tutora Jessica
ModeradorOlá Rondineli, você me enviou o código completo?
Estou tentando testar seu código mais ele nem esta deixando eu rodar..
Me informa se ele esta completo e vou pedir para que me envie novamente , colando o código completo, selecionando ele por completo e após clicar emCODE
, assim ele vem todo certinho e identado conforme esta fazendo no seu portugol.
Te aguardo 🖖🏼 -
6 de junho de 2025 às 16:29 #158294
RONDINELI CONSONI DA SILVA
ParticipanteBoa tarde, Jéssica! Sim foi o código completo.
Segue abaixo o código no formato solicitado:
programa
{funcao inicio()
{
inteiro c, id, moco, velho, moca, idosa, fem, mas
cadeia sx, nome, namemoco, namemoca, namevelho, nameidosac = 1
moco = 0
velho = 0
moca = 0
idosa = 0
fem = 0
mas = 0
nome = “”
namemoco = “”
namemoca = “”
namevelho = “”
nameidosa = “”escreva(“{ EXERCÍCIO 038 – Analisando Idades } \n”)
enquanto(c <= 3){
escreva(“————————-\n”)
escreva(c,”ª PESSOA \n”)
escreva(“————————-\n”)
escreva(“NOME: “)
leia(nome)
escreva(“SEXO: [M/F] “)
leia(sx)
escreva(“IDADE: “)
leia(id)se(c == 1){
moco = id
moca = id
velho = id
idosa = id
namemoco = nome
namemoca = nome
namevelho = nome
nameidosa = nome}
se(id < moca e sx == “f” ou sx == “F”){
namemoca = nome
moca = id
fem = fem + 1
}
se(id > idosa e sx == “f” ou sx == “F”){
nameidosa = nome
idosa = id
fem = fem + 1
}senao{
se(id < moco e sx == “m” ou sx == “M”){
namemoco = nome
moco = id
mas = mas + 1
}se(id > velho e sx == “m” ou sx == “M”){
namevelho = nome
velho = id
mas = mas + 1
}
}c = c + 1
}
escreva(“=======================================================\n”)
escreva(“A mulher MAIS NOVA é “,namemoca,” que tem “,moca,” anos. \n”)
escreva(“A mulher MAIS VELHA é “,nameidosa,” que tem “,idosa,” anos. \n”)
escreva(“O homem MAIS JOVEM é “,namemoco,” que tem “,moco,” anos. \n”)
escreva(“O homem MAIS VELHO é “,namevelho,” que tem “,velho,” anos. \n”)}
} -
6 de junho de 2025 às 18:52 #158300
Tutora Jessica
ModeradorOlá Rondineli, o código não veio identado novamente o que dificulta a minha visualização do código, para enviar identado você precisa colar o código, selecionar ele por inteiro e clicar no botão
CODE
que fica na caixinha acima de onde digitamos aqui no fórum, me tira uma dúvida, você conseguiu concluir o exercício 37 ? -
8 de junho de 2025 às 17:23 #158358
RONDINELI CONSONI DA SILVA
ParticipanteBoa tarde, Jéssica! Segue abaixo o programa como solicitado.
Sim, efetuei o 37. Com relação ao 38, eu verifiquei a correção do professor e fiz a leitura de algumas respostas no Fórum (entendi), porém no código que eu estou com dúvida, é que quando eu informo só pessoas de um sexo, o NOME,IDADE,SEXO aparece em ambos os sexos. Revendo a aula percebi que no exercício feito pelo professor os dados do HOMEM mais novo, não apareceu.
Acho que estou errando nas sequência do SE e SENAO.programa { funcao inicio() { inteiro c, id, moco, velho, moca, idosa, fem, mas cadeia sx, nome, namemoco, namemoca, namevelho, nameidosa c = 1 moco = 0 velho = 0 moca = 0 idosa = 0 fem = 0 mas = 0 nome = "" namemoco = "" namemoca = "" namevelho = "" nameidosa = "" escreva("{ EXERCÍCIO 038 - Analisando Idades } \n") enquanto(c <= 3){ escreva("-------------------------\n") escreva(c,"ª PESSOA \n") escreva("-------------------------\n") escreva("NOME: ") leia(nome) escreva("SEXO: [M/F] ") leia(sx) escreva("IDADE: ") leia(id) se(c == 1){ moco = id moca = id velho = id idosa = id namemoco = nome namemoca = nome namevelho = nome nameidosa = nome } se(id < moca e sx == "f" ou sx == "F"){ namemoca = nome moca = id fem = fem + 1 } se(id > idosa e sx == "f" ou sx == "F"){ nameidosa = nome idosa = id fem = fem + 1 } senao{ se(id < moco e sx == "m" ou sx == "M"){ namemoco = nome moco = id mas = mas + 1 }se(id > velho e sx == "m" ou sx == "M"){ namevelho = nome velho = id mas = mas + 1 } } c = c + 1 } escreva("=======================================================\n") escreva("A mulher MAIS NOVA é ",namemoca," que tem ",moca," anos. \n") escreva("A mulher MAIS VELHA é ",nameidosa," que tem ",idosa," anos. \n") escreva("O homem MAIS JOVEM é ",namemoco," que tem ",moco," anos. \n") escreva("O homem MAIS VELHO é ",namevelho," que tem ",velho," anos. \n") } }
-
9 de junho de 2025 às 10:15 #158396
Tutora Jessica
ModeradorOla Rondineli, o problema está realmente no uso do
senao
no seu código. Osenao
é executado se a condição anterior não for verdadeira. No seu caso, se a pessoa for mulher e tiver mais deidosa
anos, o código dentro dosenao
será executado para homens, o que não é o que você espera.Vou compartilhar com você apenas uma forma para você conseguir analisar a lógica e ver se consegue implementar no seu código:
programa { funcao inicio() { inteiro c, id, moco, velho, moca, idosa, fem, mas cadeia sx, nome, namemoco, namemoca, namevelho, nameidosa c = 1 moco = 0 velho = 0 moca = 0 idosa = 0 fem = 0 mas = 0 nome = "" namemoco = "" namemoca = "" namevelho = "" nameidosa = "" escreva("{ EXERCÍCIO 038 - Analisando Idades } \n") enquanto(c <= 3){ escreva("-------------------------\n") escreva(c,"ª PESSOA \n") escreva("-------------------------\n") escreva("NOME: ") leia(nome) escreva("SEXO: [M/F] ") leia(sx) escreva("IDADE: ") leia(id) se(c == 1){ moco = id moca = id velho = id idosa = id namemoco = nome namemoca = nome namevelho = nome nameidosa = nome } se(sx == "f" ou sx == "F"){ fem = fem + 1 se(id < moca){ namemoca = nome moca = id } se(id > idosa){ nameidosa = nome idosa = id } } se(sx == "m" ou sx == "M"){ mas = mas + 1 se(id < moco){ namemoco = nome moco = id } se(id > velho){ namevelho = nome velho = id } } c = c + 1 } escreva("=======================================================\n") se(fem > 0){ escreva("A mulher MAIS NOVA é ",namemoca," que tem ",moca," anos. \n") escreva("A mulher MAIS VELHA é ",nameidosa," que tem ",idosa," anos. \n") } senao { escreva("Não há mulheres cadastradas.\n") } se(mas > 0){ escreva("O homem MAIS JOVEM é ",namemoco," que tem ",moco," anos. \n") escreva("O homem MAIS VELHO é ",namevelho," que tem ",velho," anos. \n") } senao { escreva("Não há homens cadastrados.\n") } } }
Essa versão do código separa as condições para homens e mulheres, evitando o problema do
senao
. Além disso, ela verifica se há homens ou mulheres cadastrados antes de imprimir os resultados.-
Esta resposta foi modificada 3 semanas, 1 dia atrás por
Tutora Jessica.
-
Esta resposta foi modificada 3 semanas, 1 dia atrás por
-
10 de junho de 2025 às 17:33 #158459
RONDINELI CONSONI DA SILVA
ParticipanteBoa tarde, Jéssica! Obrigado pelo retorno. Consegui compreender. Só fiquei com um curiosidade. Você fez um SE para informar o sexo e outro SE para informar a idade. Essa declaração era necessária ou foi para deixar a compreensão mais fácil? Obrigado.
Exemplo abaixo:se(sx == “f” ou sx == “F”){
fem = fem + 1
se(id < moca){
namemoca = nome
moca = id
}-
10 de junho de 2025 às 17:54 #158461
Tutora Jessica
ModeradorOla Rondineli, esse foi um exemplo para compreensão e para mostrar que podemos fazer de diversas formas, eu sugiro a você que quando tiver duvidas desse formato que tente executa las sempre que elas aparecerem, pois dessa forma você começa a enxergar novas formas de criar as lógicas do seu programa e principalmente a encontrar e resolver novos erros que vão aparecendo pelo caminho .. rs
Fico feliz que tenha entendido, qualquer outra duvida só coltar ao fórum que estaremos por aqui para tentar lhe ajudar da melhor forma 🖖🏼
-
-
-
AutorPosts
- Você deve fazer login para responder a este tópico.