Home Fóruns Programação Básica exer 61

Marcado: 

Visualizando 10 respostas da discussão
  • Autor
    Posts
    • #91364
      Daniel Moreira Garcia
      Participante

      bom dia
      na minha solução do exercício 61 eu declarei a variavel que recebe a primeira letra como cadeia para usar a caixa_alta , e usei o extrair_subtexto.
      funcionou perfeitamente então minha duvida é ….minha solução foi diferente e esta certa ou foi gambiarra.??

      escreva(“\nos nomes abaixo comecam com vogais\n”)
      para (inteiro c=0;c<U.numero_elementos(nom);c++) {
      primeiro1=T.extrair_subtexto(nom[c], 0, 1)
      primeiro1=T.caixa_alta(primeiro1)
      se (primeiro1==”A” ou primeiro1==”E” ou primeiro1==”I” ou primeiro1==”O” ou primeiro1==”U”) {
      escreva(“[“+ c +”]=”+ nom[c] +” “)

    • #91433
      IcaroFilho
      Moderador

      Bom dia Daniel,
      Você não fez nenhuma gambiarra, apenas dividiu em etapas o processo.
      Excelente trabalho e bons estudos.

    • #98067

      A biblioteca de Texto especificamente a função posicao_texto(), me retorna a posição do caracter que eu preciso em um número inteiro. Mas como eu faço para que escreva o nome com o caracter desejado?

    • #98092
      WEYNNE LIMA
      Participante

      Fiz um pouco diferente utilizando cadeia ao invés de caracter, para utilizar a função caixa_alta que funciona apenas com cadeia.

      programa
      {
      	inclua biblioteca Texto --> txt
      	inclua biblioteca Util --> u
      	funcao inicio()
      	{
      		escreva("{ EXERCÍCIO 061 - Analisando Nomes }\n")
      		
      		cadeia nome[6]
      		inteiro tot1 = 0, tot2 = 0, tot3 = 0
      
      		para (inteiro p = 0; p < u.numero_elementos(nome); p++) {
      			escreva("Nome para a posição [" + p + "]: ")
      			leia(nome[p])
      		}
      		u.aguarde(500)
      		escreva("======= " + u.numero_elementos(nome) + " NOMES CADASTRADOS COM SUCESSO =======")
      		u.aguarde(500)
      		escreva("\n------------------ ANALISANDO -----------------")
      		u.aguarde(1000)
      		escreva("\nNomes com menos de 6 letras:\n")
      		para (inteiro p = 0; p < u.numero_elementos(nome); p++) {
      			se (txt.numero_caracteres(nome[p]) < 6) {
      				u.aguarde(500)
      				escreva("[" + p + "] = " + nome[p] + " ")
      				tot1++
      			}
      		}
      		u.aguarde(500)
      		escreva("TOTAL = " + tot1)
      		escreva("\n-----------------------------------------------")
      		u.aguarde(500)
      		escreva("\nNomes que começam com vogal:\n")
      		para(inteiro p = 0; p < u.numero_elementos(nome); p++) {
      			se (txt.extrair_subtexto(txt.caixa_alta(nome[p]), 0, 1) == "A") {
      				u.aguarde(500)
      				escreva("[" + p + "] = " + nome[p] + " ")
      				tot2++
      			}
      			se (txt.extrair_subtexto(txt.caixa_alta(nome[p]), 0, 1) == "E") {
      				u.aguarde(500)
      				escreva("[" + p + "] = " + nome[p] + " ")
      				tot2++
      			}
      			se (txt.extrair_subtexto(txt.caixa_alta(nome[p]), 0, 1) == "I") {
      				u.aguarde(500)
      				escreva("[" + p + "] = " + nome[p] + " ")
      				tot2++
      			}
      			se (txt.extrair_subtexto(txt.caixa_alta(nome[p]), 0, 1) == "O") {
      				u.aguarde(500)
      				escreva("[" + p + "] = " + nome[p] + " ")
      				tot2++
      			}
      			se (txt.extrair_subtexto(txt.caixa_alta(nome[p]), 0, 1) == "U") {
      				u.aguarde(500)
      				escreva("[" + p + "] = " + nome[p] + " ")
      				tot2++
      			}
      		}
      		u.aguarde(500)
      		escreva("TOTAL = " + tot2)
      		escreva("\n-----------------------------------------------")
      		u.aguarde(500)
      		escreva("\nNomes que possuem letra S:\n")
      		para (inteiro p = 0; p < u.numero_elementos(nome); p++) {
      			se (txt.posicao_texto("S", txt.caixa_alta(nome[p]), 0) != -1) {
      				u.aguarde(500)
      				escreva("[" + p + "] = " + nome[p] + " ")
      				tot3++
      			}
      		}
      		u.aguarde(500)
      		escreva("TOTAL = " + tot3)
      		escreva("\n-----------------------------------------------")
      		escreva("\n\n")
      	}
      }

      programa
      {
      inclua biblioteca Texto –> txt
      inclua biblioteca Util –> u
      funcao inicio()
      {
      escreva(“{ EXERCÍCIO 061 – Analisando Nomes }\n”)

      cadeia nome[6]
      inteiro tot1 = 0, tot2 = 0, tot3 = 0

      para (inteiro p = 0; p < u.numero_elementos(nome); p++) {
      escreva(“Nome para a posição [” + p + “]: “)
      leia(nome[p])
      }
      u.aguarde(500)
      escreva(“======= ” + u.numero_elementos(nome) + ” NOMES CADASTRADOS COM SUCESSO =======”)
      u.aguarde(500)
      escreva(“\n—————— ANALISANDO —————–“)
      u.aguarde(1000)
      escreva(“\nNomes com menos de 6 letras:\n”)
      para (inteiro p = 0; p < u.numero_elementos(nome); p++) {
      se (txt.numero_caracteres(nome[p]) < 6) {
      u.aguarde(500)
      escreva(“[” + p + “] = ” + nome[p] + ” “)
      tot1++
      }
      }
      u.aguarde(500)
      escreva(“TOTAL = ” + tot1)
      escreva(“\n———————————————–“)
      u.aguarde(500)
      escreva(“\nNomes que começam com vogal:\n”)
      para(inteiro p = 0; p < u.numero_elementos(nome); p++) {
      se (txt.extrair_subtexto(txt.caixa_alta(nome[p]), 0, 1) == “A”) {
      u.aguarde(500)
      escreva(“[” + p + “] = ” + nome[p] + ” “)
      tot2++
      }
      se (txt.extrair_subtexto(txt.caixa_alta(nome[p]), 0, 1) == “E”) {
      u.aguarde(500)
      escreva(“[” + p + “] = ” + nome[p] + ” “)
      tot2++
      }
      se (txt.extrair_subtexto(txt.caixa_alta(nome[p]), 0, 1) == “I”) {
      u.aguarde(500)
      escreva(“[” + p + “] = ” + nome[p] + ” “)
      tot2++
      }
      se (txt.extrair_subtexto(txt.caixa_alta(nome[p]), 0, 1) == “O”) {
      u.aguarde(500)
      escreva(“[” + p + “] = ” + nome[p] + ” “)
      tot2++
      }
      se (txt.extrair_subtexto(txt.caixa_alta(nome[p]), 0, 1) == “U”) {
      u.aguarde(500)
      escreva(“[” + p + “] = ” + nome[p] + ” “)
      tot2++
      }
      }
      u.aguarde(500)
      escreva(“TOTAL = ” + tot2)
      escreva(“\n———————————————–“)
      u.aguarde(500)
      escreva(“\nNomes que possuem letra S:\n”)
      para (inteiro p = 0; p < u.numero_elementos(nome); p++) {
      se (txt.posicao_texto(“S”, txt.caixa_alta(nome[p]), 0) != -1) {
      u.aguarde(500)
      escreva(“[” + p + “] = ” + nome[p] + ” “)
      tot3++
      }
      }
      u.aguarde(500)
      escreva(“TOTAL = ” + tot3)
      escreva(“\n———————————————–“)
      escreva(“\n\n”)
      }
      }`

    • #98094
      ROSANGELA MENDES
      Participante

      Eu fiz assim e deu certo!

      inteiro totLS =0 //total letras s
      escreva(“Nomes que possuem a letra S… “)
      para (inteiro pos =0; pos < Util.numero_elementos(nome); pos++){
      se (Texto.posicao_texto(“S”, Texto.caixa_alta(nome[pos]),0)!= -1){
      escreva(“[“, pos, “]=”, nome[pos], ” “)
      Util.aguarde(500)
      totLS++
      }
      }
      escreva(“\n—–> TOTAL = “, totLS)

    • #98100

      Obrigado, era só esse exercício que precisava terminar. Cheguei tinha esquecido que dava para usar uma função da biblioteca dentro de outra!

    • #109485
      Tatiana Azer Maluf
      Participante

      Boa noite
      Segue exercício para correção:

      programa
      {
      	
      inclua biblioteca Util
      	inclua biblioteca Texto
      	funcao inicio()
      	{
      		cadeia vet [6]
      		inteiro tot = 0
      
      		para (inteiro pos = 0; pos < Util.numero_elementos (vet); pos++) {
      			escreva ("Nome para a posição [" + pos + "]: ")
      			leia (vet [pos])
      			tot++
      		}
      
      		escreva ("\n===== " + tot + " NOMES CADASTRADOS COM SUCESSO =====")
      		Util.aguarde (300)
      		escreva ("\n\n---------- ANALISANDO ----------")
      		Util.aguarde (300)
      		escreva ("\nNomes com menos de 6 letras: ")
      		Util.aguarde (300)
      
      		para (inteiro pos = 0; pos < Util.numero_elementos (vet); pos++) {
      			se (Texto.numero_caracteres (vet [pos]) < 6) {
      				escreva ("\n[" + pos + "] = " + vet [pos] + " ")
      				Util.aguarde (200)
      			}
      		}
      		escreva ("\n-------------------------------------")
      
      		escreva ("\nNomes que começam com vogal: ")
      
      		para (inteiro pos = 0; pos < Util.numero_elementos (vet); pos++) {
      			se (Texto.obter_caracter (Texto.caixa_alta (vet [pos]), 0) == 'A' ou 
      			Texto.obter_caracter (Texto.caixa_alta (vet [pos]), 0) == 'E' ou 
      			Texto.obter_caracter (Texto.caixa_alta (vet [pos]), 0) == 'I' ou
      			Texto.obter_caracter (Texto.caixa_alta (vet [pos]), 0) == 'O' ou
      			Texto.obter_caracter (Texto.caixa_alta (vet [pos]), 0) == 'U') {
      				escreva ("\n[" + pos + "] = " + vet [pos] + " ")
      				Util.aguarde (300)
      			}
      		}
      
      		escreva ("\n-------------------------------------")
      		escreva ("\nNomes que possuem a letra S: ")
      
      		para (inteiro pos = 0; pos < Util.numero_elementos (vet); pos++) {
      			se (Texto.posicao_texto ("S", Texto.caixa_alta (vet [pos]), 0) != -1) {
      				escreva ("\n[" + pos + "] = " + vet [pos] + " ")
      				Util.aguarde (300)
      			}
      		}
      
      		escreva ("\n\n")
      	}
      }
    • #109486
      Tatiana Azer Maluf
      Participante

      Perdão, segue com os totais:

      programa
      {
      	
      inclua biblioteca Util
      	inclua biblioteca Texto
      	funcao inicio()
      	{
      		cadeia vet [6]
      		inteiro tot = 0, tot1 = 0, tot2 = 0, tot3 = 0
      
      		para (inteiro pos = 0; pos < Util.numero_elementos (vet); pos++) {
      			escreva ("Nome para a posição [" + pos + "]: ")
      			leia (vet [pos])
      			tot++
      		}
      
      		escreva ("\n===== " + tot + " NOMES CADASTRADOS COM SUCESSO =====")
      		Util.aguarde (300)
      		escreva ("\n\n---------- ANALISANDO ----------")
      		Util.aguarde (300)
      		escreva ("\nNomes com menos de 6 letras: ")
      		Util.aguarde (300)
      
      		para (inteiro pos = 0; pos < Util.numero_elementos (vet); pos++) {
      			se (Texto.numero_caracteres (vet [pos]) < 6) {
      				escreva ("\n[" + pos + "] = " + vet [pos] + " ")
      				Util.aguarde (200)
      				tot1++
      			}
      		}
      		escreva ("  Total = " + tot1)
      		escreva ("\n-------------------------------------")
      
      		escreva ("\nNomes que começam com vogal: ")
      
      		para (inteiro pos = 0; pos < Util.numero_elementos (vet); pos++) {
      			se (Texto.obter_caracter (Texto.caixa_alta (vet [pos]), 0) == 'A' ou 
      			Texto.obter_caracter (Texto.caixa_alta (vet [pos]), 0) == 'E' ou 
      			Texto.obter_caracter (Texto.caixa_alta (vet [pos]), 0) == 'I' ou
      			Texto.obter_caracter (Texto.caixa_alta (vet [pos]), 0) == 'O' ou
      			Texto.obter_caracter (Texto.caixa_alta (vet [pos]), 0) == 'U') {
      				escreva ("\n[" + pos + "] = " + vet [pos] + " ")
      				Util.aguarde (300)
      				tot2++
      			}
      		}
      		escreva ("  Total = " + tot2)
      		escreva ("\n-------------------------------------")
      		escreva ("\nNomes que possuem a letra S: ")
      
      		para (inteiro pos = 0; pos < Util.numero_elementos (vet); pos++) {
      			se (Texto.posicao_texto ("S", Texto.caixa_alta (vet [pos]), 0) != -1) {
      				escreva ("\n[" + pos + "] = " + vet [pos] + " ")
      				Util.aguarde (300)
      				tot3++
      			}
      		}
      		escreva ("  Total = " + tot3)
      		escreva ("\n\n")
      	}
      }
    • #109586
      Tutora Jessica
      Moderador

      Ola Tatiane, esta com alguma dúvida?

    • #109593
      Tatiana Azer Maluf
      Participante

      Meu código ficou um pouco diferente do professor, está correto assim?

    • #109595
      Tutora Jessica
      Moderador

      Olá Tatiana, se esta funcionando conforme pedido pelo exercício, sim esta correto.
      Cada um tem sua própria forma de programar, e nenhuma esta errada.
      Se atente sempre a fazer exatamente o que o exercício manda e veja os vídeos com os exercícios sendo feitos para ter ideia de outras formas de código.

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