AnteriorPosterior

11.- Funciones de cadenas de texto

Por: Nacho Cabanes
Actualizado: 16-04-2019 08:51
Tiempo de lectura estimado: 5 min.

 

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").

197786 visitas desde el 15-04-2019

AnteriorPosterior