11.- Funciones de cadenas de texto
Versión en video (3:27 min):
Pseudocódigo
11.- Funciones de cadenas de texto
Desde octubre de 2012, PseInt incluye ciertas funciones de manejo de cadenas de texto que es habitual encontrar en casi cualquier lenguaje de programación.
Las dos más sencillas son las que permiten convertir un texto a mayúsculas y a minúsculas:
Algoritmo Cadenas01
Escribir "Dime tu nombre"
Leer nombre
Escribir "En mayúsculas quedaría:"
Escribir Mayusculas(nombre)
Escribir "En minúsculas quedaría:"
Escribir Minusculas(nombre)
FinAlgoritmo
Para resolver problemas reales de computación, hay otras dos funciones que dan mucho más juego: una nos dicen la longitud de una cadena y otra permite extraer una subcadena, desde cierta posición inicial hasta cierta posición final:
Algoritmo Cadenas02a
Escribir "Dime tu nombre"
Leer texto
Escribir "Su longitud es:"
Escribir Longitud(texto)
Escribir "Su primera letra es:"
Escribir Subcadena(texto, 1, 1)
FinAlgoritmo
Como ejemplo de su uso real, es posible mostrar un texto incluyendo un espacio en blanco adicional entre cada letra y la siguiente, si se crea un programa como éste:
Algoritmo Cadenas02b
Escribir "Dime tu nombre"
Leer texto
Escribir "Con espacios adicionales, quedaría:"
Para x <- 1 Hasta Longitud(texto) Hacer
Escribir Sin Saltar Subcadena(texto, x, x)
Escribir Sin Saltar " "
FinPara
Escribir ""
FinAlgoritmo
(Si usamos la configuración normal de PseInt, las posiciones dentro de la cadena se empezarán a contar desde uno; ya sabemos, como vimos en el apartado sobre "Matrices", que en muchos otros lenguajes de programación se empieza a contar desde cero; PseInt también se puede configurar para trabajar así).
También es posible "concatenar" dos cadenas, es decir, formar una nueva cadena a partir de la unión de esas dos. Por ejemplo, el resultado de Concatenar("1a", "2b") sería la cadena de texto "1a2b". Así, el ejemplo del rectángulo de asteriscos se podría hacer, de forma alternativa, creando primero una cadena que fuera la fila de asteriscos y luego mostrándola varias veces, así:
// Rectángulo formado por asteriscos
// Versión concatenando cadenas.
// No funciona con versiones de PseInt de antes de Octubre de 2012
Algoritmo Rectangulo2
Escribir Sin Saltar "Introduce el ancho: "
Leer ancho
Escribir Sin Saltar "Introduce el alto: "
Leer alto
// Creamos una final formada por asteriscos
filaDeAsteriscos <- ""
Para columna <- 1 Hasta ancho Hacer
filaDeAsteriscos <- Concatenar( filaDeAsteriscos, "*" )
FinPara
// Y la mostramos varias veces
Para fila<-1 Hasta alto Hacer
Escribir filaDeAsteriscos
FinPara
FinAlgoritmo
Ejercicio de repaso propuesto 11.1: Crea un programa que pida su nombre al usuario y lo escriba al revés (de la última letra a la primera: a partir de "Nacho" escribiría "ohcaN").
Ejercicio de repaso propuesto 11.2: Crea un programa que pida su nombre al usuario y lo escriba alternando letras mayúsculas y minúsculas (por ejemplo, "nAcho" se mostraría como "NaChO".
Ejercicio de repaso propuesto 11.3: Crea un programa que pida su nombre al usuario y diga cuántas vocales contiene (por ejemplo, "Aurora" tiene 4 vocales).
Ejercicio de repaso propuesto 11.4: Crea un programa que pida su nombre al usuario y diga qué vocales contiene (en orden y sin repetir: por ejemplo, para "Aurora" deberá responder "aou").
Ejercicio de repaso propuesto 11.5: Crea un programa que pida una frase al usuario y diga cuántas palabras contiene (pista: puedes contar los espacios, prestando atención en que no estén repetidos).
Ejercicio de repaso propuesto 11.6: Crea un programa que pida al usuario su nombre y apellidos y los muestre con las mayúsculas y minúsculas correctas (aparecerán en mayúsculas la primera letra y la que haya tras cada espacio; las demás aparecerán en minúsculas. Por ejemplo, si introduce "nAcho cabaNes", es escribirá "Nacho Cabanes").