tp 5
Cadena de Caracteres
LONGITUD(S) | Cantidad de caracteres de la cadena S |
MAYUSCULAS(S) | Retorna una copia de la cadena S con todos sus caracteres en mayúsculas |
MINUSCULAS(S) | Retorna una copia de la cadena S con todos sus caracteres en minúsculas |
SUBCADENA(S,X,Y) | Retorna una nueva cadena que consiste en la parte de la cadena S que va desde la posición X hasta la posición Y. Empieza desde 0 y no desde 1. |
CONCATENAR(S1,S2) | Retorna una nueva cadena resulta de unir las cadenas S1 y S2. |
Las dos más sencillas son las que permiten convertir un texto a mayúsculas y a minúsculas:
Proceso 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) FinProceso
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:
Proceso Cadenas02a Escribir "Dime tu nombre" Leer texto Escribir "Su longitud es:" Escribir Longitud(texto) Escribir "Su primera letra es:" Escribir Subcadena(texto, 1, 1) FinProceso
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:
Proceso 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 "" FinProceso
(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 Proceso 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 FinProceso
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").
:(
ResponderEliminar