MOD 03 EX 038

Home Fóruns Programação Básica MOD 03 EX 038

Visualizando 8 respostas da discussão
  • Autor
    Posts
    • #64057

      Bom Dia! Onde não estou conseguindo visualizar o ajuste desse código? Valeu!

      programa
      {/* EXERCÍCIO 038 – Analisando idades */
      inclua biblioteca Texto –> txt
      funcao inicio()
      {
      inteiro c, id, idvelha, idnova, idvelho, idnovo
      idvelha = 1000
      idnova = 1000
      idvelho = 1000
      idnovo = 1000
      c = 1

      cadeia nome, nomevelha, nomejovem, nomevelho, nomenovo, sx
      nomevelha = ” ”
      nomejovem = ” ”
      nomevelho = ” ”
      nomenovo = ” ”

      enquanto(c <= 5){
      escreva(“—————————“)
      escreva(“\n”,c,”° PESSOA”)
      escreva(“\n—————————“)
      escreva(“\nNOME: “)
      leia(nome)
      escreva(“SEXO: “)
      leia(sx)
      escreva(“IDADE: “)
      leia(id)
      sx = txt.caixa_alta(sx)

      se (c == 1) {
      idvelha = id
      idnova = id
      idvelho = id
      idnovo = id
      nomejovem = nome
      nomevelha = nome
      nomenovo = nome
      nomevelho = nome

      }senao se (idvelha < id e sx == “F”) {
      idvelha = id
      nomevelha = nome

      }senao se (idnova > id e sx == “F”) {
      idnova = id
      nomejovem = nome

      }senao se (idvelho < id e sx == “M”) {
      idvelho = id
      nomevelho = nome

      }senao se (idnovo > id e sx == “M”) {
      idnovo = id
      nomenovo = nome
      }

      c++
      }
      escreva(“\nA mulher mais jovem é a ” , nomejovem,” que tem “, idnova,” anos”)
      escreva(“\nA mulher mais velha é a “, nomevelha, ” que tem “, idvelha,” anos”)
      escreva(“\nO homem mais jovem é o “, nomenovo, ” que tem “, idnovo, ” anos”)
      escreva(“\nO homen mais velho é o “, nomevelho, ” que tem “, idvelho, ” anos\n\n”)
      }
      }

    • #64075
      IcaroFilho
      Moderador

      Bom dia Wilson,
      Vou tentar te ajudar a partir da minha linha de pensamento.
      No primeiro teste (recurso disponível na ferramenta Portugol Studio, recomendo que sempre use pois te ajuda a visualizar e entender melhor os códigos que escreve) de mesa vc já pode perceber que você esta atribuindo todos os primeiros dados a primeira pessoa:

      se (c == 1) {
             idvelha = id
             idnova = id
             idvelho = id
             idnovo = id
             nomejovem = nome
             nomevelha = nome
             nomenovo = nome
             nomevelho = nome

      ou seja, se eu escrever apenas pessoas de um sexo, o sexo oposto será preenchido.
      Então a primeira peneira seria separar por sexo.

      se (sx == "F"){
           Bloco
      }
      se (sx == "M"){
           Bloco
      }

      dentro de cada bloco sim, vc deve comparar se é a primeira entrada ou não. a partir dai você pode fazer por dois métodos.

      1º Metodo – Contador

      Cria um contador para cada sexo.
      O motivo é que se utilizar um único contador, quando fizer a primeira entrada de homem, o seu contador que iniciou com 1 fara a comparação e receberá mais 1. Quando for fazer a primeira entrada da mulher, seu contador será diferente de 1, logo nao fara a primeira entrada feminina e o codigo desanda.
      Logo dentro de cada bloco vc irá utilizar o contador correspondente.
      ex.: inteiro c_masc = 0, c_fem = 0

      2º Metodo – nomes
      vc pode usar o nome para saber se é a primeira entrada ou não.
      quando seu programa inicializar, eles terão os nomes vazios (nomevelha,nomejovem…)
      Ou seja, sempre que seu nome nao possuir valor, será a primeira entrada.
      Então pode criar um checador para saber se esta vazio ou não. Caso esteja vazio você pode atribuir o valor do nome ao nome mais velho e mais novo.

      Depois de ter as primeiras entradas atribuídas, terá apenas que checar as proximas idades serão maior ou menor que as atuais. (lembrando que isso ocorrerá dentro do seu respectivo bloco M/F)

      PS: vc atribuiu valores 1000 as idades. isto não é necessário tendo em vista que você esta atribuindo os valores da idade velho/novo na primeira checagem.

      Veja bem, eu postei 2 métodos de se fazer. vc estava pelo método 1, eu vou postar pelo método 2.
      depois dessas correções tente refaze-lo pelo seu método de contador.
      Abaixo deixo meu codigo para que posso visualizar melhor a ideia que tentei passar.

      
      programa
      {
      	inclua biblioteca Texto	--> txt
      	funcao inicio()
      	{
      		
      		cadeia nome = "vazio", nome_mulher_jovem = "vazio", nome_mulher_velha = "vazio", nome_homem_jovem = "vazio", nome_homem_velho = "vazio", sx
      		inteiro idade = 0, m_mais_velha = 0, m_mais_jovem = 0 , contador = 1 , h_mais_velho = 0, h_mais_jovem = 0, rep
      		
      		escreva("Quantas pessoas serão cadastradas? ")
      		leia(rep)
      		
      		enquanto (contador <= rep){
      			escreva(contador,"ª PESSOA\n")
      			escreva("NOME: ")
      			leia(nome)
      			escreva("SEXO: ")
      			leia(sx)
      			sx = txt.caixa_alta(sx)
      			escreva("IDADE: ")
      			leia(idade)
      
      			escreva("--------------------\n")
      
      			se (sx =="F"){
      			
      				se (nome_mulher_jovem == "vazio"){
      					nome_mulher_jovem = nome
      					m_mais_jovem = idade
      				} 
      					se ( idade < m_mais_jovem ){
      						nome_mulher_jovem = nome
      						m_mais_jovem = idade
      					}
      					se (nome_mulher_velha == "vazio"){
      						nome_mulher_velha = nome
      						m_mais_velha = idade
      					}
      					se ( idade > m_mais_velha ){
      						nome_mulher_velha = nome
      						m_mais_velha = idade
      				}								
      			}
      			se (sx =="M"){
      			
      				se (nome_homem_jovem == "vazio"){
      						
      					nome_homem_jovem = nome
      					h_mais_jovem = idade
      				} 	se ( idade < h_mais_jovem ){
      						nome_homem_jovem = nome
      						h_mais_jovem = idade
      					}
      					se (nome_homem_velho == "vazio"){
      						nome_homem_velho = nome
      						h_mais_velho = idade
      					}
      					se ( idade > h_mais_velho ){
      						nome_homem_velho = nome
      						h_mais_velho = idade
      				}								
      			}
      			
      		contador += 1
      		}
      		
      		escreva("\n----------------------------------------------------------------------")
      		escreva ("\nA mulher mais jovem é a ",nome_mulher_jovem," com ",m_mais_jovem," anos.")
      		escreva ("\nA mulher mais velha é a ",nome_mulher_velha," com ",m_mais_velha," anos.")
      		escreva ("\nO homem mais jovem é o ",nome_homem_jovem," com ",h_mais_jovem," anos.")
      		escreva ("\nO homem mais velho é o ",nome_homem_velho," com ",h_mais_velho," anos.")
      	}
      }
      
    • #64090
      Tutora Mayla
      Mestre

      Wilson, o aluno Icaro explicou perfeitamente os pontos a se levar em consideração no seu código!
      Se ainda houver dúvidas entre em contato novamente que lhe ajudaremos.

    • #64690

      Boa noite pessoal, estava travado nesse exercício porém agora com os teste de mesa consegui evoluir. Minha dúvida é sobre o primeiro método como faço para fazer desse jeito não consegui entender a parte de adicionar dois contadores.

      • #64710
        IcaroFilho
        Moderador

        Bom dia Antônio.
        Assim fica meio vaga para eu conseguir te ajudar.
        1º – Poste aqui o seu código (de preferencia formatado (copie e cole o código do Portugal Studio e selecione ele todo aqui. Em seguida clique em “CODE” na aba de formatação de texto. Já saira formatado com os espaços))

        2º vamos ver se consigo te ajudar.
        A respeito de criar os 2 contadores individuais, vc lembra que terá que testar se é ou não a primeira entrada para cada sexo, correto?
        Logo essas variáveis serão postas dentro de cada sexo para contar individualmente a entrada.
        elas são variáveis acumuladoras var = var + var2, no caso, c_masc = c_masc + 1, c_fem = c_fem + 1.
        Sua única função aqui será checar se é ou não a primeira entrada ( ou saber quantas pessoas de cada sexo foram inseridas, td depende do que deseja fazer)

        se (sx =="F"){
        	c_fem += 1
        	se (c_fem == 1){
        		nome_mulher_jovem = nome
        		m_mais_jovem = idade
        	} senao {
        		BLOCO

        Novamente, se continuar com duvidas, pose seu código aqui que tento te explicar em cima dele.

    • #64894

      ícaro, bom dia!
      cara show de bola. Acredito ter chegado ao objetivo do exercício, muito obrigado irmão!!

      programa
      {
      	
      	funcao inicio()
      	{
      		inteiro c=1
      		inteiro c_masc = 1
      		inteiro c_fem = 1
      		
      		escreva("{ EXERCÍCIO 038 - Analisando Idades }\n")
      		
      		cadeia nome="vazio"
      		cadeia mulhernova = "vazio"
      		cadeia mulhervelha = "vazio"
      		cadeia homenovo = "vazio"
      		cadeia homevelho = "vazio"
      		
      		caracter sx
      		caracter sxmulhervelha 
      		caracter sxmulhernova
      		caracter sxmascnovo
      		caracter sxmascvelho
      		
      		inteiro idade
      		inteiro idadenova = 0
      		inteiro idadevelha = 0
      		inteiro idadenovo = 0
      		inteiro idadevelho = 0
      
      		enquanto(c <= 5){
      			escreva("---------------\n")
      			escreva(c, "º PESSOAS")
      			escreva("\n---------------")
      			escreva("\nNOME: ")
      			leia(nome)
      			escreva("SEXO: ")
      			leia(sx)
      			escreva("IDADE: ")
      			leia(idade)
      			escreva("\n")
      			
      			se(sx == 'F' ou sx == 'f'){
      				
      				se(c_fem == 1){
      					mulhernova = nome
      					idadenova = idade
      					sxmulhernova = sx
      					
      				}
      				c_fem++
      				}
      				
      			se(sx == 'f' ou sx == 'F'){
      						se(idade > idadevelha){
      							mulhervelha = nome
      							idadevelha = idade
      							sxmulhervelha = sx
      						}
      						
      						se(idade < idadenova){
      							mulhernova = nome
      							idadenova = idade
      							sxmulhernova = sx
      						}
      					}
      
      					//
      			se(sx == 'm' ou sx == 'M'){
      				se(c_masc == 1){
      					homenovo = nome
      					idadenovo = idade
      					sxmascnovo = sx
      					
      				}
      				c_masc++
      			}
      
      			se(sx == 'm' ou sx == 'M'){
      				se(idade > idadevelho){
      					homevelho = nome
      					idadevelho = idade
      					sxmascvelho = sx
      					
      				}
      
      				se(idade < idadenovo){
      					homenovo = nome
      					idadenovo = idade
      					sxmascnovo = sx
      				}
      			}
      						
      			c++
      		}
      		escreva("\nQuem é a mulher mais jovem é a ", mulhernova, " que tem ", idadenova, " anos.")
      		escreva("\nQuem é a mulher mais velha é a ", mulhervelha, " que tem ", idadevelha, " anos.\n")
      		escreva("\nQuem é o homem mais novo é o ",  homenovo, " que tem ", idadenovo, " anos.")
      		escreva("\nQuem é o homem mais velho é o ", homevelho , " que tem ", idadevelho , " naos.")
      		escreva("\n\n")
      	}
      }
      • #65055
        Tutora Mayla
        Mestre

        Antonio, que bom que conseguiu entender com a ajuda do aluno Icaro!
        Acrescento aqui que não é necessário testar 2 vezes se é mulher(ou se é homem), basta, como o Icaro sugeriu, fazer a lógica toda da mulher(ou homem) dentro do seu próprio se.

        Por exemplo:

        
        se( sx == f ) {
            se(c_fem == 1) {...} //aqui vai entrar na primeira mulher digitada
            senao {...} //aqui nas demais mulheres
        } senao se (sx == m) {
            se(c_masc == 1) {...} //aqui no primeiro homem digitado
            senao {...} //aqui nos demais homens
        }
        

        Espero ter ajudado, quaisquer outras dúvidas estamos a disposição.

    • #65216

      Boa tarde Mayla
      Obrigado pela ajuda, vou revisar o código nas aulas com a resposta do professor.

    • #65645
        Essa é minha Solução, se te ajudar a entender segue meu código!
      programa
      {
      	inclua biblioteca Texto --> t
      	
      	funcao inicio()
      	{
      		cadeia nome = "", h_velho = "", h_jovem = "", m_velha = "", m_jovem = "", sexo = ""
      		inteiro idade = 0, h_id_mvelho = 0, h_id_mjovem = 0, m_id_mvelha = 0, m_id_mjovem = 0, h = 0, f = 0, c = 1
      
      		enquanto (c <= 5) {
      			escreva("------------------------\n")
      			escreva(c, "º PESSOA:\n")
      			escreva("Nome: ")
      			leia(nome)
      			escreva("Sexo [M/F]: ")
      			leia(sexo)
      			escreva("Idade: ")
      			leia(idade)
      			sexo = t.caixa_alta(sexo)
      			se (sexo == "F") {
      				f++
      				se (f == 1) {
      					m_velha = nome
      					m_jovem = nome
      					m_id_mvelha = idade
      					m_id_mjovem = idade
      				} senao se(idade > m_id_mvelha) {
      					m_id_mvelha = idade
      					m_velha = nome
      				} senao se (idade < m_id_mjovem) {
      					m_id_mjovem = idade
      					m_jovem = nome
      				}
      			} senao se (sexo == "M") {
      				h++
      				se (h == 1) {
      					h_velho = nome
      					h_jovem = nome
      					h_id_mvelho = idade
      					h_id_mjovem = idade
      				} senao se (idade > h_id_mvelho) {
      					h_velho = nome
      					h_id_mvelho = idade
      				} senao se (idade < h_id_mjovem) {
      					h_jovem = nome
      					h_id_mjovem = idade
      				}
      			}
      			c++
      		}
      		escreva("==================================================\n")
      		escreva("Ao todo tivemos ", h, " homen(s) e ", f, " mulhere(s).\n")
      		escreva("O homem mais jovem é ", h_jovem, " com ", h_id_mjovem, " ano(s).\n")
      		escreva("O homem mais velho é ", h_velho, " com ", h_id_mvelho, " ano(s).\n")
      		escreva("A mulher mais jovem é ", m_jovem, " com ", m_id_mjovem, " ano(s).\n")
      		escreva("A mulher mais velha é ", m_velha, " com ", m_id_mvelha, " ano(s).\n")
      		escreva("==================================================\n\n")
      	}
      }
      • #65944
        Tutora Mayla
        Mestre

        Rafael, parabéns pela sua resposta, está correta! Continue se dedicando assim e será cada vez um programador melhor!
        Obrigada por compartilha-la com a comunidade, assim construímos juntos uma comunidade cada dia melhor!

    • #68111
      programa
      {
      /*	Estudonauta
      	Modúlo	-	003
      	Exercício	-	038
      	
      	Objetivo: Receber o nome idade e sexo de 5 pessoas logo após isso, o programa deve apresentar qual e o individuo mais jovem e o 
      				mais velho de cada sexo 
      	
      	Autor da Resolução:	Antonio Cesar
       */
      	
      	//Biblíotecas
      	inclua biblioteca	Texto	-->	t
      	
       	funcao inicio()
      	{
      		//Declaração de Variaveis
      		cadeia nome,	maisjovem	=	" ",	maisvelha	=	" ",	maisjovem_m
      	=	" "/*homem mais jovem*/,	maisvelho	=	" "
      		cadeia sexo
      		inteiro idade,	idadenova	=	0,	idadevelha	=	0,	idadenovo	=	0,	idadevelho	=	0
      		inteiro contador	=	1	
      
      		//Interface
      		escreva("=====================================\n\tExercício - 038\n=====================================\n")
      
      		enquanto(contador	<=	5)
      		{
      			//Entrada de dados
      			escreva("----------\n",	contador,	"ª pessoa\n----------\n")
      			escreva("Nome: "	 )
      			leia(nome)
      			
      			escreva("Sexo[F/M]: ") 
      			leia(sexo)
      			
      			sexo	=	t.caixa_alta(sexo)
      
      			escreva("Idade: "	 )
      			leia(idade)
      
      			
      			//Inicializando a comparação
      			se(contador	==	1	e	sexo	==	"F")
      			{
      				maisjovem		=	nome
      				idadenova		=	idade
      				
      				maisvelha		=	nome
      				idadevelha	=	idade	
      			}
      			
      			senao 
      			{	
      				se(contador	==	1	e	sexo	==	"M")
      			
      				{
      					maisjovem_m	=	nome
      					idadenovo		=	idade
      
      					maisvelho		=	nome
      					idadevelho	=	idade		
      				}
      				
      				senao
      				{	//Atribui a idade e o nome da pessoa mai jovens  do sexo Feminino
      					se(idade	<	idadenova		e	sexo	==	"F")
      					{
      						maisjovem		=	nome
      						idadenova		=	idade	
      					}
      					//Atribui a idade e o sexo da pessoa mais velha do sexo Feminino
      					se(idade	>	idadevelha	e	sexo	==	"F")
      					{
      						maisvelha		=	nome
      						idadevelha	=	idade		
      					}
      					
      					senao
      					{	//Atribui a idade e o sexo da pessoa mais nova do sexo masculino BuGGGGGGAQUIII
      						se(idade	<	idadenovo			e	sexo	==	"M")
      						{
      							maisjovem_m		=	nome
      							idadenovo			=	idade
      						}
      						//Atribui a idade e o sexo da pessoa mais velha do sexo masculino
      						se(idade		>	idadevelho	e	sexo	==	"M")
      						{
      							maisvelho		=	nome
      							idadevelho	=	idade
      						}	
      					}
      					
      					
      				}
      			}//Fim senao
      					
      			contador		+=	1
      		}//Fim Enquanto 		
      
      		//Saída
      		escreva("\n\n=====================================================\n")
      		escreva("A mulher mais jovem é ",	maisjovem		,	" que tem\t",	idadenova	,	" anos\n")
      		escreva("A mulher mais velha é ",	maisvelha		,	" que tem\t",	idadevelha,	" anos\n")
      
      		escreva("O Homem  mais jovem é ",	maisjovem_m	,	" que tem\t",	idadenovo	,	" anos\n")
      		escreva("O Homem  mais velho é ",	maisvelho		,	" que tem\t",	idadevelho,	" anos\n")						
      		escreva("=====================================================\n") 		
      	}
      }

      Não faço a menor ideia do porque a variavel maisjovem_m e idadenovo não estão inicializando na decisão

      • #68168
        Tutora Mayla
        Mestre

        Antonio, vamos analisar a seguinte parte do seu código:

        
        se(contador	==	1	e	sexo	==	"F")
        			{
        				maisjovem		=	nome
        				idadenova		=	idade
        				
        				maisvelha		=	nome
        				idadevelha	=	idade	
        			}
        			
        			senao 
        			{	
        				se(contador	==	1	e	sexo	==	"M")
        			
        				{
        					maisjovem_m	=	nome
        					idadenovo		=	idade
        
        					maisvelho		=	nome
        					idadevelho	=	idade		
        				}
        				
        

        Imagino que aqui sua vontade tenha sido inicializar tanto o primeiro homem quanto a primeira mulher, porém desta forma isto não é possível já que não há como a primeira entrada de dados ser F e M ao mesmo tempo.
        se(contador == 1 e sexo == "F")
        se(contador == 1 e sexo == "M")
        Aqui o teste feito é se a primeira entrada é F ou se a primeira entrada é M, se na primeira entrada se inicializa o F a partir das demais(contador > 1) não será inicializado o M e vice versa.
        Uma das soluções para resolver isto é criar mais 2 contadores que serão responsáveis por contar o número de F e de M, um exemplo seria:
        se(contadorF == 0 e sexo == "F")
        se(contadorM == 0 e sexo == "M")
        Assim não se fica restrito a primeira iteração do programa e sim a primeira entrada de dados F e M. Já que sempre um será lido antes do outro. E a variável contador fica responsável apenas por limitar a entrada a 5. E as variáveis contadorF e contadorM servem apenas para verificar se é a primeira mulher e se é o primeiro homem, ou seja se está como 0 ou não. Ressalto que é apenas um exemplo de como resolver, exercite sua lógica e pense em outras formas de se chegar a uma solução.

        Outro ponto que causa erro no seu código em decorrência do erro anterior é: idadenovo = 0
        Se não houvesse o erro anterior essa parte do código estaria correta, mas por conta do erro anterior aqui vira um erro também.
        O que acontece é que como temos que o valor inicial é 0, não há como uma idade inserida ser menor que 0, logo acontece o erro relatado de não sair um valor referente ao homem mais novo. Já para o homem mais velho funciona pois está sendo testado se o valor é maior que 0. É importante notar aqui que o erro só acontece no homem mais novo pois a primeira entrada de dados foi uma mulher, caso a primeira entrada seja um homem o erro seria na mulher mais nova.
        Ao realizar testes busque sempre utilizar dados distintos em ordens distintas assim garantimos que está funcionando para vários casos, e conseguimos achar os casos onde não funciona se existirem.

        Espero ter ajudado, se a dúvida persistir ou houver quaisquer outras dúvidas basta entrar em contato.
        E parabéns pelo seu código, apesar dessa pequena falta de atenção ele está bom, continue se dedicando e será um programador cada vez melhor.

      • #68239

        muito obrigado!!

    • #68474
      Bruno Antunes
      Participante

      Boa noite!
      Ícaro, excelente explicação me ajudou bastante! Senhores, apenas compartilhando minha solução…

      
      programa
      {	
      	inclua biblioteca Texto --> t
      	funcao inicio()
      	{
      		escreva("{ EXERCÍCIO 038 - Analisando idades }\n")
      		inteiro c, idade, maior_m, menor_m, maior_f, menor_f
      
      		c = 1
      		idade = 0
      		maior_m = 0
      		menor_m = 0
      		maior_f = 0
      		menor_f = 0
      		
      		cadeia nome, nome_maior_f, nome_menor_f,nome_maior_m, nome_menor_m, sexo
      
      		sexo = " "
      		nome_maior_f = " "
      		nome_menor_f = " "
      		nome_maior_m = " "
      		nome_menor_m = " "
      
      		enquanto( c <= 5){
      		escreva("-----------\n")
      		escreva(c + "a Pessoa\n")
      		escreva("-----------\n")
      		escreva("Nome: ")
      		leia(nome)
      		escreva("Sexo: ")
      		leia(sexo)
      		sexo = t.caixa_baixa(sexo)
      		escreva("Idade: ")
      		leia(idade)
      
      		se (sexo == "f"){
      			se (nome_menor_f == " "){
      				nome_menor_f = nome
      				menor_f = idade
      			}
      			se (idade < menor_f){
      				nome_menor_f = nome
      				menor_f = idade
      			}
      			se (nome_maior_f == " "){
      				nome_maior_f = nome
      				maior_f = idade
      			}
      			se (idade > maior_f){
      				nome_maior_f = nome
      				maior_f = idade
      			}
      			}
      		
      		se (sexo == "m"){
      			se (nome_menor_m == " "){
      				nome_menor_m = nome
      				menor_m = idade
      			}
      			se (idade < menor_m){
      				nome_menor_m = nome
      				menor_m = idade
      			}
      			se (nome_maior_m == " "){
      				nome_maior_m = nome
      				maior_m = idade
      			}
      			se (idade > maior_m){
      				nome_maior_m = nome
      				maior_m = idade
      			}
      		}
      
      		c++
      	}
      		escreva("\n============================================================================")
      		escreva("\nA mulher mais jovem é a " + nome_menor_f + " que tem " + menor_f + " anos.")
      		escreva("\nA mulher mais velha é a " + nome_maior_f + " que tem " + maior_f + " anos ")
      		escreva("\nO homem mais jovem é o " + nome_menor_m + " que tem " + menor_m + " anos.")
      		escreva("\nO homem mais velhor é o " + nome_maior_m + " que tem " + maior_m + " anos.")
      		
      	}
      }
      
      • #68544
        Tutora Mayla
        Mestre

        Bruno, parabéns pelo seu código! Continue se dedicando e será um programador cada vez melhor!
        Se houver quaisquer dúvidas basta entrar em contato que lhe ajudaremos.

Visualizando 8 respostas da discussão
  • Você deve fazer login para responder a este tópico.