Home › Fóruns › Programação Básica › Módulo 1 – Exercício 12
Marcado: Md1 - Ex012
- Este tópico contém 27 respostas, 14 vozes e foi atualizado pela última vez 4 meses atrás por Tutora Jessica.
-
AutorPosts
-
-
28 de março de 2021 às 18:03 #63987Paulo Roberto CarneiroParticipante
Boa tarde, não estou conseguindo concluir o exercício 12 do módulo 1, poderia me ajudar por favor??
Muito Obrigado!! -
29 de março de 2021 às 22:36 #64047Tutora MaylaMestre
Paulo, o exercício pede para pegar o primeiro nome a partir do nome completo digitado.
Como sabemos diferenciar o primeiro nome dos demais? “Paulo Roberto” vemos aqui que há um espaço entre os dois nomes, então sabemos que o que está antes do espaço é o primeiro nome e o que está depois é o segundo nome.
A função
posicao_texto
procura dentro de uma cadeia qual a primeira aparição de um determinado caractere. Enquanto a funçãoextrair_subtexto
permite escrever uma cadeia até determinada posição.Sabendo qual função utilizar e o que deve ser encontrado, tente pensar numa lógica onde seja possível escrever apenas o primeiro nome.
Caso a dúvida persista volte a entrar em contato que lhe ajudaremos. -
13 de maio de 2021 às 23:33 #67080MARCOS TADEU DE PAULA LIMAParticipante
olá,
não consigo fazer o exercicio, pode me ensinar como fazeR? já tentei diversas vezes.
programa { inclua biblioteca Texto -->txt funcao inicio() { cadeia nome escreva("Digite seu nome completo: ") leia (nome) //cadeia n1 = txt.posicao_texto(" ", nome,0) //cadeia n2 = txt.extrair_subtexto(nome, 0, 10) escreva("Seu primeiro nome é: " + txt.posicao_texto(" " , nome ,5) ) } }
- Esta resposta foi modificada 3 anos, 7 meses atrás por IcaroFilho. Razão: formatando código do aluno
- Esta resposta foi modificada 3 anos, 7 meses atrás por Tutora Mayla.
-
14 de maio de 2021 às 20:01 #67139Tutora MaylaMestre
Marcos, mesclei o seu tópico com o já existente sobre o assunto.
Aqui há uma explicação minha sobre a questão também, pode vir a lhe ajudar em algo mais apesar da resposta do Icaro já estar bem completa.
Se houver quaisquer outras dúvidas basta entrar em contato que lhe ajudaremos.
Bons estudos!
-
14 de maio de 2021 às 11:23 #67110IcaroFilhoModerador
Bom dia Marcos,
Primeiramente, antes de postar suas duvidas, tente procurar no fórum se a mesma duvida já não foi perguntada. Se houver e ainda continuar com duvidas, poste dentro do mesmo. Isto evita que o fórum fique poluído com muitas postagem do mesmo assunto | exercício.
LINK do mesmo exercício.Referente a sua duvida.
Tem-se que traçar mentalmente o passo-a-passo do que é necessário para realizar.
A questão te pede para exibir apenas o primeiro nome, ou seja, ele te pede para extrair parte de string.
Ao pesquisar na biblioteca encontramos um metodo de extração:
funcao cadeia extrair_subtexto(cadeia cad, inteiro posicao_inicial, inteiro posicao_final)
sabemos que: cad => nome | posicao_inicial ==> 0 | posicao_final => índice final da string
Então nos falta saber qual é este índice. Para descobrirmos temos que saber a posição da ultima letra do primeiro nome.
e como sabemos como separar? simples, toda separação vem com uma coisa em comum, o espaço.
faremos uma busca para encontrarmos onde se tem o primeiro espaçamento pelo metodo:
funcao inteiro posicao_texto(cadeia texto, cadeia cad, inteiro posicao_incial)
sabemos que: texto => ” “ | cad => nome | posicao_inicial => 0
isto nos retornará o índice do espaçamento. Este índice que teremos que informar na extração do texto.
Segue abaixo o código refeito. Tente fazer antes de replica-lo.
programa { inclua biblioteca Texto --> txt funcao inicio() { inteiro pos cadeia nome escreva("Digite seu nome completo: ") leia (nome) pos = txt.posicao_texto(" " , nome ,0) escreva("Seu primeiro nome é: " + txt.extrair_subtexto(nome,0,pos) ) } }
Bons estudos !!
-
24 de junho de 2021 às 18:03 #70007Cristiane Barauna de SouzaParticipante
Boa Noite!
Como seria para pegar o último nome?
Obrigada.
-
25 de junho de 2021 às 18:39 #70071Tutora MaylaMestre
Cristiane, com conhecimento de laço (Programação Básica – Módulo 03: Repetições) é possível escrever um código para que ache todas as vezes que o caractere espaço aparece, sabendo então qual é a ultima vez e conseguindo escrever a cadeia a partir do ultimo caractere espaço, sendo assim o ultimo nome.
Procure no PortugolStudio emBiblioteca>Texto>Pesquisar Texto
o último exemplo do código que é sobre como encontrar o caractere A em todas as posições na palavra, a partir desse exemplo e tendo o conhecimento de laço é possível criar um código para achar o último nome.
Espero ter ajudado, quaisquer dúvidas estamos a disposição.
-
-
12 de março de 2022 às 19:19 #88452Douglas SilvaParticipante
Boa Noite, o meu ficou assim:
( ME CORRIJAM SE ESTIVER ERRADO POR FAVOR)programa { inclua biblioteca Texto --> txt funcao inicio() { cadeia nome escreva("Digite seu nome completo: ") leia(nome) escreva("Seu primeiro nome é " + txt.extrair_subtexto(nome,0,7)) } }
- Esta resposta foi modificada 2 anos, 9 meses atrás por IcaroFilho.
-
13 de março de 2022 às 00:11 #88459IcaroFilhoModerador
Boa noite.
O exercício esta incorreto.
Sempre quanto testar seu código, tente algumas possibilidades.
O seu código só retorna corretamente quando o nome possui 7 letras. No meu caso que possuo 5, ele retorna o nome + espaço + 1 letra do sobrenome.
O botei uma explicação da resolução deste exercício mais acima. de uma lida e tente refazer seu código.
E ao testa-lo. teste com tamanhos de nomes diferentes.
Ex.:
Cidália Trigueiro Marins
Tomás Quinzeiro Bicalho
Yu Mainha Guimarães
Elisabeth Caiado Sanches(todos estes nomes foram obtidos por um gerador de nomes. e todos , com exceção do primeiro, apresentam falha no seu código)
-
19 de março de 2022 às 12:07 #89007Rodrigo Romero Lopes SilveiraParticipante
Boa tarde, tudo bem?
Gostaria de saber se a minha lógica está correta?
programa
{inclua biblioteca Texto –> txt
funcao inicio()
{
cadeia nome_completoescreva(“Digite seu nome completo?”)
leia(nome_completo)
//pos = txt.posicao_texto(” “, nome_completo, 0)escreva(“Seu primeiro nome é: ” + txt.extrair_subtexto(nome_completo, 0 , txt.posicao_texto(” “, nome_completo, 0)))
}
}-
21 de março de 2022 às 09:17 #89114IcaroFilhoModerador
Bom dia,
Está correto sim. Parabéns
Só cuidado ao escrever métodos dentro de métodos pois pode dificultar a leitura.
-
-
4 de junho de 2022 às 23:52 #94798Matheus Vidal TenórioParticipante
FOI UM DIA, QUASE DOIS PARA FINALIZAR. TAVA QUASE NA LÓGICA, SABIA QUE TINHA COMO CONSIDERAR O ESPAÇO UM TEXTO, SÓ QUE ESTAVA ME TRAVANDO. NÃO CONSEGUIA LIGAR AS COISAS, VI O MODO DE FAZER E ENTENDI, MAS TAMBÉM FIZ OUTRO MÉTODO KKKKK.
programa
{inclua biblioteca Texto –> t
funcao inicio()
{
cadeia nome
inteiro ind
escreva(“Digite seu nome completo: “)
leia(nome)ind = t.posicao_texto(” “, nome, 0)
escreva(“Seu primeiro nome é “+ t.extrair_subtexto(nome, 0, ind))
}
}programa { inclua biblioteca Texto --> t funcao inicio() { cadeia nome, sobrenome escreva("Digite seu nome completo: ") leia(nome, sobrenome) escreva("Seu primeiro nome é "+ nome) } }
-
5 de junho de 2022 às 00:08 #94799Matheus Vidal TenórioParticipante
Desculpa ai guanabara, vacilo doido, tava quase lá.
-
-
22 de setembro de 2022 às 17:59 #102011DIEGO D AVILA DE MENEZESParticipante
EXERCÍCIO 012 – SEU NOME
programa { inclua biblioteca Texto --> txt funcao inicio() { // cadeia nome_comp inteiro pos // escreva (" {Exercício 012 - Seu nome }\n") // escreva ("Digite seu nome completo: ") leia (nome_comp) pos = txt.posicao_texto(" " , nome_comp ,0) // escreva ("Seu primeiro nome é: " + txt.extrair_subtexto(nome_comp,0,pos)) // } }
-
29 de novembro de 2022 às 11:16 #106048Pâmela OliveiraParticipante
gostaria de entender onde esta meu erro já fiz varias vezes e o retorno é vazio
inclua biblioteca Texto
–> txtfuncao inicio()
{
inteiro pos
cadeia nome
escreva(“Qual o seu nome? “)
leia (nome)
pos = txt.posicao_texto(“”,nome,0)
escreva(“Seu primeiro nome é: “+ txt.extrair_subtexto(nome,0,pos))
} -
29 de novembro de 2022 às 11:54 #106055Tutora JessicaModerador
Ola Pâmela,
Toda vez que for nos enviar seu código, selecione ele por completo e clique emCODE
, assim seu código já vem identado e mais fácil para visualização.No seu código, você precisa incluir a biblioteca e ao lado da palavra Texto, você deve colocar dessa forma: –> txt, veja abaixo:
inclua biblioteca Texto --> txt
Mesmo assim seu código vai retornar em branco, o que você vai precisar fazer é dar um espaço entre as aspas na variável pos, dessa forma:
pos = txt.posicao_texto(" ",nome,0)
Se atente sempre a esses pequenos detalhes que fazem toda a diferença.
-
2 de janeiro de 2023 às 16:40 #108139RONDINELI CONSONI DA SILVAParticipante
Boa tarde! Uma pequena dúvida. Na correção da aula Portugol ex12, o professor Guanabara comentou sobre colocar um nome entre as aspas.
Exemplo: pos = txt.posicao_texto(“Silva”, nome, 0)Fazendo alguns testes, apareceu as seguintes respostas:
1 – digitando o nome: 123 da Silva 4. Aparece a seguinte resposta: Seu nome é 123 da.
Observação: o nome Silva não aparece
1.1 digitando o nome Julia Tereza Silva. Aparece a seguinte resposta: Seu nome é Julia Tereza.
Observação: o nome Silva não aparece.2 – digitando o nome; Silva Romero. A resposta fica em branco.
Fiquei com a seguinte dúvida: o nome que está entre as aspas devem ou não aparecer?
Obrigado.
-
3 de janeiro de 2023 às 09:24 #108175Tutora JessicaModerador
Ola Rondineli , nos envie seu código por favor.
-
4 de janeiro de 2023 às 08:50 #108213RONDINELI CONSONI DA SILVAParticipante
Bom dia, Jéssica!
Segue abaixo o código solicitado:cadeia nome
escreva(“Digite seu nome competo: “)
leia (nome)
escreva (“\n”)inteiro pos = txt.posicao_texto (” “, nome, 0)
cadeia pnome = txt.extrair_subtexto(nome, 0, pos)escreva (“—–ANALISANDO—–\n”)
escreva (“Seu primeiro nome é: ” +pnome+ “\n”)
escreva (“Seu primeiro nome em letra maiúscula é: ” +txt.caixa_alta(pnome)+ “\n”) -
4 de janeiro de 2023 às 11:08 #108219Tutora JessicaModerador
Ola Rondineli,
Testei todos os seus exemplos e todos foram certinhos, pegando somente o primeiro nome, inclusive no (123 silva 4).
Você não me enviou seu código completo..
Você incluiu a biblioteca Texto?
No teste que fiz, coloquei todos os seus exemplos e outros tambem e todos deram correto. -
4 de janeiro de 2023 às 13:34 #108227RONDINELI CONSONI DA SILVAParticipante
Oi, Jéssica!
Coloquei a biblioteca Texto.
O programa funciona. Entendi a lógica do programa.
A minha dúvida é a seguinte: o nome que está entre ” ” (no caso eu usei o Silva), deve aparecer ou não (p/ mim não aparece)?Segue abaixo o programa completo:
programa
{
inclua biblioteca Texto –> txtfuncao inicio()
{
cadeia nome
escreva(“Digite seu nome competo: “)
leia (nome)
escreva (“\n”)inteiro pos = txt.posicao_texto (“Silva”, nome, 0)
cadeia pnome = txt.extrair_subtexto(nome, 0, pos)escreva (“—–ANALISANDO—–\n”)
escreva (“Seu primeiro nome é: ” +pnome+ “\n”)
escreva (“Seu primeiro nome em letra maiúscula é: ” +txt.caixa_alta(pnome)+ “\n”)}
} -
4 de janeiro de 2023 às 15:44 #108241Tutora JessicaModerador
Ola Rondineli, deixa eu ver se eu entendi.. Ali fica em branco para entrar no caso o primeiro nome que o usuário digitar, ali é para aparecer somente o que o usuário digitar.
Consegui explicar ? Senão tento uma melhor forma. Mas no vídeo o professor Guanabara também dá uma explicação boa . -
4 de janeiro de 2023 às 18:10 #108247RONDINELI CONSONI DA SILVAParticipante
Boa tarde, Jéssica! Dentro das aspas em branco, eu compreendi a explicação. Minha dúvida é com relação quando é colocado um nome dentro das aspas.
Exemplo: com aspas em branco
cadeia nome
inteiro pos
escreva (” { EXERCÍCIO 012 – Seu nome } \n”)
escreva (“Digite seu nome: “)
leia (nome) – JÉSSICA TUTORA
pos = txt.posicao_texto(” “, nome, 0)escreva (“Seu primeiro nome é: ” +txt.extrair_subtexto(nome, 0, pos)+ “\n”)
escreva (“Qual é a primeira letra do seu nome ” +txt.obter_caracter (nome, 0)+ “\n”)
escreva (“Quantos caracteres têm seu nome ” +txt.numero_caracteres (nome)+ “\n”)Resposta: Seu nome é Jéssica – ele me trouxe o seu primeiro nome. Esse eu entendi a explicação do professor.
Exemplo 2: nome dentro das ASPAS.
cadeia nome
inteiro pos
escreva (” { EXERCÍCIO 012 – Seu nome } \n”)
escreva (“Digite seu nome: “)
leia (nome)
pos = txt.posicao_texto(“Jessica”, nome, 0)escreva (“Seu primeiro nome é: ” +txt.extrair_subtexto(nome, 0, pos)+ “\n”)
escreva (“Qual é a primeira letra do seu nome ” +txt.obter_caracter (nome, 0)+ “\n”)
escreva (“Quantos caracteres têm seu nome ” +txt.numero_caracteres (nome)+ “\n”)RESPOSTA: Seu nome é:
– O nome preenchido dentro das aspas não aparece na tela para mim. Daí surge minha dúvida: o nome preenchido dentro das ASPAS deve aparecer ou não? Obrigado.
-
6 de janeiro de 2023 às 11:37 #108315Tutora JessicaModerador
Ola Rondinelli, acho que entendi.
Quando você coloca o nome dentro das aspas, você esta ditando que o nome terá que ser somente JESSICA(como no seu exemplo). Ele não vai aparecer pois você não colocou um escreva para ele.
Dentro dessas aspas, só podem ficar o nome que o usuário digitar, por isso fica em branco (você não dita um nome, o usuário que coloca) e com isso aparece o nome na tela, a partir do seu escreva.
Consegui te explicar? -
8 de janeiro de 2023 às 12:37 #108399RONDINELI CONSONI DA SILVAParticipante
Boa tarde, Jéssica!
Obrigado pelo retorno. Consegui compreender. -
21 de outubro de 2023 às 13:48 #125468Wesley PitaParticipante
Me ajudou muito!
Eu estava com o pensamento de criar um inteiro e cadeia diferentes, no final estava usando a biblioteca errada e sempre dava erro.
Crei o pos acima como sobrenome e deixei aberto, coloquei o Texto a esquerda certo, mas na hora de colocar nos lugares estava no local errado. -
3 de agosto de 2024 às 22:13 #141021kauã rafaelParticipante
pessoal me fiz o desafio de colocar a primeira letra do nome em maiúsculo MAS EU NÃO ESTOU CONSEGUINDO, quando achei que tinha dado certo, não foi . vou mandar o código pra vocês
programa
{inclua biblioteca Texto –> txt
funcao inicio()
{
cadeia nomeescreva(“Digite seu nome completo: “)
leia(nome)inteiro pos = txt.posicao_texto(” “, nome, 0)
cadeia pnome = txt.extrair_subtexto(nome, 1, pos)
cadeia ppnome = txt.extrair_subtexto(pnome, 0, 0)escreva(“Seu primeiro nome é “+ txt.caixa_alta(ppnome)+ pnome)
}
}-
5 de agosto de 2024 às 10:17 #141081Tutora JessicaModerador
Olá Kaua, trouxe sua duvida para uma ja existente do mesmo módulo e exercício, acima você encontra ótimas explicações sobre esse mesmo exercício, dê uma olhada em casa um deles para tentar resolver esse exercício, caso não consiga resolver só retornar ao fórum que iremos tentar lhe ajudar melhor 🖖🏼
-
-
-
AutorPosts
- Você deve fazer login para responder a este tópico.