Home › Fóruns › Programação Básica › Analise dos Exercício 41 e 42
Marcado: EXERCÍCIO 042
- Este tópico contém 18 respostas, 7 vozes e foi atualizado pela última vez 2 meses, 2 semanas atrás por Alexandre Rocha.
-
AutorPosts
-
-
11 de setembro de 2022 às 21:36 #101121MARCIO PAIVAParticipante
Oi Jéssica tudo bem ? gostaria que você de uma analisada nesses exercícios. Eis aqui os códigos: programa { inclua biblioteca Matematica-->M inclua biblioteca Tipos-->t funcao inicio() { escreva("{EXERCÌCIO 041-Cadastro de amigos}") inteiro c = 1 inteiro idade = 0 inteiro st_idades = 0 inteiro tc = 0 inteiro idade_amigo_jovem = 0 inteiro idade_amigo_velho = 0 real m_idades = 0.0 cadeia nome = "" cadeia nome_amigo_jovem = "" cadeia nome_amigo_velho = "" enquanto(verdadeiro){ st_idades = st_idades + idade tc = c - 1 m_idades = t.inteiro_para_real(st_idades) / tc escreva("\n-------------NOVO AMIGO---------------") escreva("\nOBS: Digite ACABOU no nome para parar") escreva("\nNome: ") leia(nome) se(nome == "ACABOU" ou nome == "acabou"){ pare } escreva("Idade: ") leia(idade) se(nome_amigo_jovem == ""){ nome_amigo_jovem = nome idade_amigo_jovem = idade } se(idade<idade_amigo_jovem){ nome_amigo_jovem = nome idade_amigo_jovem = idade }senao se(nome_amigo_velho == ""){ nome_amigo_velho = nome idade_amigo_velho = idade } se(idade>idade_amigo_velho){ nome_amigo_velho = nome idade_amigo_velho = idade } c++ } escreva("\n********INTERROMPIDO********") escreva("\n========RESULTADO============") escreva("\n Total de amigos cadastrados "+tc) escreva("\n Seu amigo mais velho é "+nome_amigo_velho) escreva(",com "+idade_amigo_velho+" anos") escreva("\n Seu amigo mais jovem é "+nome_amigo_jovem) escreva(",com "+idade_amigo_jovem+" anos") escreva("\nA média de idade do grupo é de "+M.arredondar(m_idades,2)) } }
programa { inclua biblioteca Tipos-->t funcao inicio() { escreva("{EXERCÍCIO 042-Cadastro de Funcionários}") inteiro cont = 1 inteiro s_homens = 0 inteiro s_mulheres = 0 inteiro sm_total_m = 0 real sal = 0.0 real m_sal_h = 0.0 real maior_sal_h = 0.0 cadeia nome cadeia sexo cadeia resp enquanto(verdadeiro){ escreva("\nNome: ") leia(nome) escreva("Sexo: [M/F] ") leia(sexo) escreva("Salário R$: ") leia(sal) se(sexo == "M" ou sexo == "m"){ s_homens++ m_sal_h = (m_sal_h + sal) / s_homens se(sal>maior_sal_h){ maior_sal_h = sal } } senao se(sexo == "F" ou sexo == "f"){ s_mulheres++ se(sal>1000){ sm_total_m++ } } escreva("quer continuar [S/N]? ") leia(resp) se(resp == "N" ou resp == "n"){ pare } cont++ } escreva("\n==========RESULTADO=================") escreva("\nTotal de pessoas cadastradas: "+cont) escreva("\nTotal de homens: "+s_homens) escreva("\nTotal de mulheres: "+s_mulheres) escreva("\nMédia salarial dos homens R$: "+m_sal_h) escreva("\nTotal de mulheres que ganham mais de mil: "+sm_total_m) escreva("\nMaior salário entre os homens: "+maior_sal_h) } }
-
12 de setembro de 2022 às 10:43 #101160Tutora JessicaModerador
Olá Marcio,
Perfeito, tudo funcionando conforme o exercício pede!!
Parabéns, continue assim que você vai longe
Bons estudos 🖖-
4 de setembro de 2024 às 14:38 #142670Alexandre RochaParticipante
minha nédia esta dando errado e eu nao sei identificar, o que eu posso fazer
inclua biblioteca Tipos –> t
inclua biblioteca Matematica –> afuncao inicio()
{
cadeia nome=”++”, n_nv=”++”, n_vl=”++”
inteiro id=0, id_nv=100000, id_vl=-100000,c=0, s=0
enquanto(verdadeiro) {
escreva(“\n>>>>>>>>>>>> NOVO AMIGO <<<<<<<<<<<<<<“)
escreva(“\nOBS: Digite [STOP] no nome para parar”)
escreva(“\nNome: “)
leia(nome)
se( nome == “stop” ) {
pare
}
escreva(“\nIdade: “)
leia(id)se( id_nv > id ) {
id_nv = id
n_nv = nome
s += id
}
se( id_vl < id ) {
id_vl = id
n_vl = nome
s += id
}
c++
}
real m = t.inteiro_para_real(s)/c
escreva(“\nTotal de amigos cadastrados:”+c)
escreva(“\nSeu amigo mais velho é “+n_vl+”, com “+id_vl+” anos”)
escreva(“\nSeu amigo mais jovem é “+n_nv+”, com “+id_nv+” anos”)
escreva(“\nA média de idade do grupo é “+m)
}
}
-
-
12 de setembro de 2022 às 21:03 #101185MARCIO PAIVAParticipante
Muito obrigado Jéssica
-
3 de novembro de 2022 às 13:31 #104296Neander FontesParticipante
Olá Jessica, Tudo bem?
Tenho visto que você corrige os exercícios e tenho notado algumas avaliações na execução que me trouxeram algumas dúvidas.
Em alguns exercícios, não sei exatamente dizer quais no momento, mas em principal os que pedem a determinação de maiores e menores valores.
Dentre eles o Exercício 041 Solicitar me fez questionar uma situação que gostaria dessa Ajuda!!
Ao Colocar os Dados Iguais ao vídeo do Professor, seguido da ordem do Nome e da Idade:
1) Nome: Pedro
idade: 13
2) Nome: Demerval “Nossa que nome Difícil”
idade: 85
3) Nome: Ana Claudia
idade: 12
4) Nome: Paulo
idade: 22
5) Nome: Gustavo
idade: 40Código Ok?! Dados Ficam Corretos, Tudo Certo, Porém….
Quando se faz:
2) Nome: Demerval – Não fica atribuído em alguma varável
idade: 85
1) Nome: Pedro
idade: 13
3) Nome: Ana Claudia
idade: 12
4) Nome: Paulo
idade: 22
5) Nome: Gustavo
idade: 40
Os Dados Finais Ficam Errados, Gostaria de Solução para me ajudar no código! 😀 <3programa {/* Módulo03 Aula09 - Repetição com Interrupção "Break" * Portugol Exercício041. * Autor: Neander * Data: 03/11/2022 * Local: Portugal-Braga * Empresa: Estudonauta */ inclua biblioteca Texto --> txt inclua biblioteca Tipos --> tp inclua biblioteca Util --> u funcao inicio() { //Exercício 041: - Cadastro de Amigos escreva("{ EXERCÍCIO 41 - Cadastro de Amigos }") //Obs.: //Declarações de Variáveis: inteiro contador, idadeAmigo, qtAmigo, idadeMenor inteiro idadeMaior, somaIdade real amigoMedia cadeia nomeAmigo, amigoVelho, amigoNovo //Entrada de Dados: escreva("\n\n---------------------------------------") escreva("\n\t Lista de Amigos") escreva("\n---------------------------------------") //Declarações Fixas: contador = 0 qtAmigo = 0 idadeMaior = 0 idadeMenor = 0 amigoMedia = 0.0 somaIdade = 0 amigoVelho = " " amigoNovo = " " //Declarações do Escopo Principal: enquanto (verdadeiro) { escreva("\n============= Novo Amigo ==============") escreva("\nOBS.: Digite ACABOU no nome para parar") escreva("\nNOME: ") leia(nomeAmigo) se (txt.caixa_alta(nomeAmigo) == "ACABOU") { escreva("\t***** INTERROMPIDO *****") pare } escreva("IDADE: ") leia(idadeAmigo) somaIdade += idadeAmigo //Soma das Idades se (qtAmigo == 1) { //Maior ou Menor Número = Idade idadeMaior = idadeAmigo amigoVelho = nomeAmigo idadeMenor = idadeAmigo amigoNovo = nomeAmigo } senao { se (idadeAmigo < idadeMenor) { idadeMenor = idadeAmigo amigoNovo = nomeAmigo } se (idadeAmigo > idadeMaior) { idadeMaior = idadeAmigo amigoVelho = nomeAmigo } } qtAmigo++ //Quantidade de Amigos amigoMedia = tp.inteiro_para_real(somaIdade) / qtAmigo //Média da Idade de todos os Amigos } escreva("\n\n########## RESULTADOS FINAIS ##########") //Declarações Finais: escreva("\nTotal de Amigos cadastrados: " + qtAmigo) escreva("\nA Média de idade do Grupo é de " + amigoMedia + " anos.") escreva("\nSeu Amigo(a) mais novo(a) é " + amigoNovo + " com " + idadeMenor + " anos.") escreva("\nSeu Amigo(a) mais velho(a) é " + amigoVelho + " com " + idadeMaior + " anos.") escreva("\n============================================") escreva("\n\n------------------------ Fim ------------------------") } }
-
3 de novembro de 2022 às 17:56 #104309Tutora JessicaModerador
Ola Neander,
Nesse caso é só você colocar um contador para variável qtAmigo..
Dessa forma:escreva("IDADE: ") leia(idadeAmigo) qtAmigo++ somaIdade += idadeAmigo
Veja se funciona dessa forma.
Bons estudos 🖖 -
10 de dezembro de 2022 às 03:56 #106652Matheus Vidal TenórioParticipante
programa
{funcao inicio()
{
cadeia nome, velho = ” “, jovem = ” ”
inteiro idade, cp = 0, idvelho = 0, idjovem = 0, mediagrupo = 0, acidade = 0
enquanto(verdadeiro){
escreva(“\n————- NOVO AMIGO ————-“)
escreva(“\nOBS: Digite ACABOU no nome para parar.”)
escreva(“\nNome: “)
leia(nome)
se(nome == “ACABOU”){
escreva(“******* INTERROMPIDO *******”)
escreva(“\n========== RESULTADOS ==========”)
pare
}
escreva(“Idade: “)
leia(idade)
cp++
se(cp == 1){
idvelho = idade
velho = nome
idjovem = idade
jovem = nome
}senao{
se(idade > idvelho){
idvelho = idade
velho = nome
}
se(idade < idjovem){
idjovem = idade
jovem = nome
}
}
acidade+=idade
mediagrupo = acidade/cp
}
escreva(“\nTotal de amigos cadastrados: “,cp)
escreva(“\nSeu amigo(a) mais velho(a) é “+velho+”, com “+idvelho+” anos.”)
escreva(“\nSeu amigo(a) mais jovem é “+jovem+”, com “+idjovem+” anos.”)
escreva(“\nA média de idade do grupo é de “+mediagrupo)
}
}` -
10 de dezembro de 2022 às 04:01 #106655Matheus Vidal TenórioParticipante
programa { funcao inicio() { inteiro salario, cp = 0, totm = 0, totf = 0, salariototalhomem = 0, maiorsalariohomem = 0, maiorquemil = 0, qtdmaiorsalariof = 0 cadeia nome, sx, nomeM = " ", nomeF = " " caracter resp enquanto(verdadeiro){ escreva("Nome: ") leia(nome) escreva("Sexo: [M/F]: ") leia(sx) escreva("Salário: R$") leia(salario) se(sx == "m" ou sx == "M"){ totm++ salariototalhomem+= salario se(totm == 1){ nomeM = nome maiorsalariohomem = salario }senao{ se(salario > maiorsalariohomem){ maiorsalariohomem = salario } } }senao{ se(sx == "f" ou sx == "F"){ totf++ se(totf == 1){ nomeF = nome maiorquemil = salario }senao{ se(salario > 1000){ maiorquemil = salario qtdmaiorsalariof++ } } } } cp++ escreva("Quer continuar? [S/N]: ") leia(resp) se(resp=='n' ou resp == 'N'){ escreva("\n====== RESULTADOS ======") pare } } escreva("\nTotal de pessoas cadastradas: ",cp) escreva("\nTotal de Homens: ",totm) escreva("\nTotal de Mulheres: ",totf) escreva("\nMédia Salaria dos homens: R$",(salariototalhomem/totm)) escreva("\nTotal de mulheres que ganham mais que Mil reais: ",qtdmaiorsalariof) escreva("\nMaior salário entre os homens: R$",maiorsalariohomem) } }
eu fiz, mas acredito q esteja certo, rodei apenas para homem, mas confio em mim, se tiver errado dps volto aq.
-
12 de dezembro de 2022 às 09:27 #106819Tutora JessicaModerador
Ola Matheus, para passar para o próximo exercício, seu código deve estar todo funcionando, o objetivo é aprender e principalmente corrigir os erros 🖖🏼
-
5 de janeiro de 2023 às 10:36 #108275Carol ProtásioParticipante
Bom dia!!
Estou no ex. 42, fui codando e verificando os resultados, mas estou sem saber onde estou errando ao calcular o numero de mulheres que ganham mais de mil, meu resultado está bem parecido com o do prof. mas o meu resultado está puxando o numero de homens e mulheres que ganham mais de mil. poderia verificar meu cod? muito obrigadaprograma
{
inclua biblioteca Matematica –> m
inclua biblioteca Tipos –> t
inclua biblioteca Texto –> txt
funcao inicio()
{
inteiro c = 0, totM = 0, totF = 0, totMil = 0
cadeia nome
caracter sexo, res
real sal, medSalM = 0.0, maiorSalM = 0.0, salM = 0.0enquanto(verdadeiro){
escreva(“——————————“)
escreva(“\n Cadastro de Funcionários\n”)
escreva(“——————————\n”)
escreva(“Nome: “)
leia(nome)
escreva(“Sexo [F/M]: “)
leia(sexo)
escreva(“Salário: R$”)
leia(sal)c++
se(sexo == ‘M’ ou sexo == ‘m’){
totM++
salM += sal
se(totM == 1){
maiorSalM = sal
}senao{
se(sal > maiorSalM){
maiorSalM = sal
}
}
}senao se(sexo == ‘F’ ou sexo == ‘f’){
totF++
}se (sal > 1000){
totMil++
}escreva(“Quer continuar? [S/N] “)
leia(res)
se(res == ‘N’ou res == ‘n’){
pare
}}
medSalM = t.inteiro_para_real(salM)/totM
escreva(“====== RESULTADOS ======\n”)
escreva(“Total de pessoas cadastradas, “, c)
escreva(“\nTotal de mulheres: “, totF)
escreva(“\nTotal de homens: “, totM)
escreva(“\nMédia salarial dos homens: “, m.arredondar(medSalM, 2))
escreva(“\nTemos ” ,totMil, ” mulheres que ganham mais de Mil Reais: “)
escreva(“\nMaior salário entre os homens: “, maiorSalM)}
} -
6 de janeiro de 2023 às 11:31 #108313Tutora JessicaModerador
Ola Carol, você só precisa inverter o fechamento do seu senao se.. dessa forma:
}senao se(sexo == 'F' ou sexo == 'f'){ totF++ se (sal > 1000){ totMil++ } }
o SE de (sal > 1000).. precisa estar dentro do SENAO SE, fechando a chave dele após o SE.
-
6 de janeiro de 2023 às 15:48 #108328Carol ProtásioParticipante
Nossa Jessica, valeu pela correção 🙂 muito obrigada!!
-
-
27 de outubro de 2023 às 18:21 #125774Filipe Mamud OliveiraParticipante
Ola 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)}
} -
27 de outubro de 2023 às 19:18 #125778Tutora JessicaModerador
Olá Filipe, a intenção desse exercício é você começar a aprender novas formas, nesse por exemplo é usado o se/senao se…
Dê uma olhada nas explicações acima e tente executar seu exercício usando novas formas, caso tenha dúvidas só retornar ao fórum que iremos lhe ajudar. -
30 de outubro de 2023 às 11:51 #125856Filipe Mamud OliveiraParticipante
Ola 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? -
30 de outubro de 2023 às 12:54 #125857Tutora JessicaModerador
Ola Filipe, dê uma olhada nesse vídeo do curso em vídeo sobre estruturas condicionais , você precisa entender essas estruturas para continuar o curso com ótimo aproveito :
href=”https://youtu.be/_g05aHdBAEY?si=f9kMxMOlzmRmsTsF”>https://youtu.be/_g05aHdBAEY?si=f9kMxMOlzmRmsTsF
- Esta resposta foi modificada 1 ano atrás por Tutora Jessica.
-
30 de outubro de 2023 às 14:50 #125860Filipe Mamud OliveiraParticipante
Ola 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?
-
30 de outubro de 2023 às 16:30 #125861Tutora JessicaModerador
Exatamente, você pode utilizar diversas vezes no código.
O se/senao é usado como condições booleanas (verdadeiro ou falso).
Exemplo:- Estou saindo de casa e esta chovendo (Levo o guarda chuva), senão estiver chovendo (não levo o guarda chuva).
Condição verdadeira (SE): esta chovendo – Leva o guarda chuva
Condição Falsa (SENAO): não esta chovendo – Não leva o guarda chuvaO único ponto a corrigir no exemplo que deu é que “senao se” não é uma variável e sim uma condição de escolha.
-
31 de outubro de 2023 às 15:54 #125901Filipe Mamud OliveiraParticipante
Muito obrigado Jéssica
-
-
AutorPosts
- Você deve fazer login para responder a este tópico.