Hola a todos, hoy os vamos a explicar como indicar si una palabra es un panagrama o no.
Un panagrama es una frase que contiene todas las letras de un alfabeto. Esto se suele utilizar para mostrar todas las letras de un alfabeto, por ejemplo, en una fuente. Incluyendo caracteres con acentos.
Un panagrama clásico es el siguiente:
El veloz murciélago hindú comía feliz cardillo y kiwi. La cigüeña tocaba el saxofón detrás del palenque de paja
Si haces un conteo, veras que al menos hay una letra de todas las letras del alfabeto.
La idea es que recorrer nuestra frase y con un arreglo llegar un conteo de cada letra. Si hay al menos uno de cada, significa que es un panagrama.
Lo primero que vamos a necesitar es una variable donde contener todas las letras del alfabeto. Una cadena puede servir.
Proceso panagrama // Definición de variables definir abecedario, frase como cadena; definir contadores, i, j como numero; abecedario <- "abcdefghijklmnopqrstuvwxyzáéíóúü"; Dimension contadores[26]; // inicializamos el arreglo Para i<-0 Hasta Longitud(abecedario) - 1 Con Paso 1 Hacer contadores[i] <- 0; FinPara FinProceso
Ahora pediremos una frase y para cada letra, recorremos la cadena abecedario que contiene todas las letras, cuando encontremos su posición, aumentaremos en 1 su contador.
Esa cadena la pasamos a minúsculas para evitar problemas a la hora de encontrar ese carácter.
Subcadena, nos permite obtener una cadena más pequeña de otra mas grande.
Proceso panagrama // Definición de variables definir abecedario, frase como cadena; definir contadores, i, j como numero; abecedario <- "abcdefghijklmnopqrstuvwxyzáéíóúü"; Dimension contadores[26]; // inicializamos el arreglo Para i<-0 Hasta Longitud(abecedario) - 1 Con Paso 1 Hacer contadores[i] <- 0; FinPara // Pedimos una frase Escribir "Escribe una frase: "; leer frase; frase <- Minusculas(frase); // Comprobamos si existe cada letra de la frase en el abecedario Para i<-0 Hasta Longitud(frase) - 1 Con Paso 1 Hacer caracterFrase <- Subcadena(frase, i,i); Para j<-0 Hasta Longitud(abecedario) - 1 Con Paso 1 Hacer Si caracterFrase = Subcadena(abecedario, j,j) Entonces contadores[j] <- contadores[j] + 1; FinSi FinPara FinPara FinProceso
Comprobamos si hay algún contador a 0, si lo hay no es un panagrama.
Proceso panagrama // Definición de variables definir abecedario, frase como cadena; definir caracterFrase Como Caracter; definir contadores, i, j como numero; definir algunVacio Como Logico; abecedario <- "abcdefghijklmnopqrstuvwxyzáéíóúü"; algunVacio <- Falso; Dimension contadores[26]; // inicializamos el arreglo Para i<-0 Hasta Longitud(abecedario) - 1 Con Paso 1 Hacer contadores[i] <- 0; FinPara // Pedimos una frase Escribir "Escribe una frase: "; leer frase; frase <- Minusculas(frase); // Comprobamos si existe cada letra de la frase en el abecedario Para i<-0 Hasta Longitud(frase) - 1 Con Paso 1 Hacer caracterFrase <- Subcadena(frase, i,i); Para j<-0 Hasta Longitud(abecedario) - 1 Con Paso 1 Hacer Si caracterFrase = Subcadena(abecedario, j,j) Entonces contadores[j] <- contadores[j] + 1; FinSi FinPara FinPara i<-0; // Comprobamos si hay alguna posicion a cero Mientras no algunVacio y i < Longitud(abecedario) Hacer Si contadores[i] = 0 Entonces algunVacio <- Verdadero; FinSi i <- i + 1; FinMientras // Indicamos si es un panagrama o no Si algunVacio Entonces Escribir "No es un panagrama"; SiNo Escribir "Es un panagrama"; FinSi FinProceso
Veamos un ejemplo real:
Os dejo un video donde realizamos paso a paso todo lo explicado:
Y no te olvides que tenemos un curso en udemy de PseInt.
Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.
Deja una respuesta