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 1 ano, 1 mês atrás por Alexandre Rocha. 
- 
		AutorPosts
- 
		
			- 
11 de setembro de 2022 às 21:36 #101121MARCIO PAIVA ParticipanteOi 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 Jessica ModeradorOlá 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 Rocha Participanteminha 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 PAIVA ParticipanteMuito obrigado Jéssica 
- 
3 de novembro de 2022 às 13:31 #104296Neander Fontes ParticipanteOlá 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 Jessica ModeradorOla Neander, 
 Nesse caso é só você colocar um contador para variável qtAmigo..
 Dessa forma:escreva("IDADE: ") leia(idadeAmigo) qtAmigo++ somaIdade += idadeAmigoVeja se funciona dessa forma. 
 Bons estudos 🖖
- 
10 de dezembro de 2022 às 03:56 #106652Matheus Vidal Tenório Participanteprograma 
 {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ório Participanteprograma { 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 Jessica ModeradorOla 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ásio ParticipanteBom 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 Jessica ModeradorOla 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ásio ParticipanteNossa Jessica, valeu pela correção 🙂 muito obrigada!! 
 
- 
- 
27 de outubro de 2023 às 18:21 #125774Filipe Mamud Oliveira ParticipanteOla 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 Jessica ModeradorOlá 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 Oliveira ParticipanteOla 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 Jessica ModeradorOla 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 2 anos atrás por Tutora Jessica. 
 - 
30 de outubro de 2023 às 14:50 #125860Filipe Mamud Oliveira ParticipanteOla 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?
 
- 
		Esta resposta foi modificada 2 anos atrás por 
- 
30 de outubro de 2023 às 16:30 #125861Tutora Jessica ModeradorExatamente, 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 Oliveira ParticipanteMuito obrigado Jéssica 
 
- 
- 
		AutorPosts
- Você deve fazer login para responder a este tópico.
