Este documento describe las cadenas y funciones básicas para manipular cadenas en lenguajes de programación. Explica que una cadena es un conjunto de caracteres y presenta funciones como length(), substring(), asqui(), chartoval() y otras para obtener la longitud de una cadena, extraer subcadenas, convertir entre caracteres y valores numéricos. También incluye ejemplos de pseudocódigo para resolver problemas como convertir una cadena a minúsculas y cambiar vocales en palabras específicas de una cadena.
Instrucciones del procedimiento para la oferta y la gestión conjunta del proceso de admisión a los centros públicos de primer ciclo de educación infantil de Pamplona para el curso 2024-2025.
1. Cadenas (Lic. Menfy Morales)
Hasta este momento hemos desarrollado nuestros algoritmos usando estructuras de datos
numéricas, principalmente números enteros y reales, traducidos en 4 áreas de estudio, como
ser; series, sumatorias, descomposición – composición, lotes y otros.
Otra estructura de datos son los caracteres, al conjunto de caracteres le llamamos cadena. Por
lo tanto un carácter es un elemento alfabético, numérico, operador, carácter de puntuación o
cualquier elemento que puede ser almacenado. Como ejemplos tenemos algunos caracteres
comunes que usamos:
A-Z 25 caracteres
a-z 25 caracteres
0-9 10 caracteres
Y otros.
Para el manejo de cadenas usamos algunas funciones primitivas que la mayoría de los
lenguajes de programación usan:
length(): Devuelve la longitud de una cadena. Devuelve un valor numérico
Por ejemplo:
b “hola a todos”; // le asignamos esa cadena a la variable b
ele length(b); // en la variable ele almacenamos la longitud de la cadena b
substring(): Devuelve una subcadena, desde la posición X, y de longitud Y.
Por ejemplo:
b “hola a todos”; // le asignamos esa cadena a la variable b
b1 substring(b,1,4); //subcadena de b desde posición 1, longitud 4
b2 substring(b,6,5); //subcadena de b desde posición 8, longitud 5
b3 substring(b,9,1); //subcadena de b desde posición 9, longitud 1
asqui(): Devuelve el valor numérico asqui de un carácter.
Por ejemplo:
b “HOLA A TODOS”;
b1 substring(b,4,1);
c asqui(b1);
chartoval(): Convierte un valor de tipo cadena a valor numérico
Por ejemplo:
b ele
“hola a todos” 12
b b1 b2 b3
“hola a todos” “hola” “todos” “o”
b b1 c
“HOLA A TODOS” “A” 65
2. b “estamos en la 20 de octubre”;
b1 substring(b,15,2); //la subcadena es “20”
d val(b1); // se convierte a valor numérico 20
d1 d +10; // ahora puedes hacer operaciones aritméticas
char(): Devuelve el carácter de un valor numérico que representa el asqui.
Por ejemplo:
a1 66;
a2 char(a1):
valtochar(): Convierte un valor numérico a carácter.
Por ejemplo:
a1 456: //valor numérico
a2 valtochar(a1); // se convierte a cadena
a3 a2 + “87”; // se concatenan dos cadenas
a4 a1 +10; // operación aritmética
De hecho pueden haber muchas más funciones para trabajar cadenas, pero estamos
representando las más primitivas o básicas.
Ejer.1. Dada una frase convertir a minúsculas .
Ejemplo: Entrada: “HOLA A TODOS”
Salida: “hola a todos”
Desarrollo:
El asqui de “A” es 65, le sumo 32 y obtengo 97, que representa el asqui de “a”, bajo ese criterio
resolvemos este ejercicio, es decir, sacamos carácter por carácter usando substring,
encontramos el asqui del carácter, le sumamos 32 y obtenemos su equivalente carácter, luego
concatenamos estos nuevos caracteres para obtener la frase resultante.
Pseudo
1. Inicio
2. leer (b); // lee la cadena en mayúsculas
3. ele=length(b); //sacamos la longitud
4. w=””; //preparamos variables
5. for(i=1 to ele)
6. { y = substring(b,i,1); //sacamos carácter por carácter
7. If (y <> “ ”) then { a asqui(y); // saca el asqui del carácter
b b1 d d1
“estamos en la 20 de octubre” “20” 20 30
a1 a2
66 “B”
a1 a2 a3 a4
456 “456” “45687” 466
3. 8. a1 a + 32; // le suma 32
9. y char(a1); //saca el char, su minúscula
10. }
11. w = w + y; //concatena cada carácter
12. }
13. print (w); //muestra la cadena en minúsculas
14. Fin
El correspondiente diagrama de flujo:
Ejercicio 2. Dada una cadena, cambiar las vocales por la siguiente vocal, solo en las palabras
extremas.
Por ejemplo:
b = “procedimientos para llegar a un común acuerdo”
la salida es: “prucidomointus para llegar a un común ecairdu”
Solución:
Podemos usar módulos específicos que permitan realizar tareas específicas como:
Contar palabras en una cadena, siguiente vocal en una palabra, ver si es vocal un carácter,
sacar una palabra, entonces nuestros módulos son: contarpal, sigtevoc, esvocal, sacarpal.
inicio
ele length(b), w “”
b
i 1, ele
y substring( b, i, 1 )
y < > ” ”
a asqui(y)
a1 a + 32
y char(a1)
w w +y
w
fin
4. Evaluamos los módulos:
El diseño modular queda:
Por lo tanto realizamos el diseño botton up, es decir de abajo hacia arriba:
La función esvocal():
Módulo Tipo Entradas Salidas
contarpal Función 1 1
sacarpal Función 2 1
sgtevoc Función 1 1
esvocal Función 1 1
cadena
contarpal sacarpal sgtevoc
esvocal
esvocal ( w )
w=”a” o w=”e” o w=”i” o
o w=”i” o w=”o” o w=”u”
k 1
k 0
return ( k )
5. La Función contarpal():
La función sacarpal():
contarpal ( b )
b b +” ”, c 0
ele length(b)
i 1, ele
y substring( b, i, 1 )
y = ” ”
c c + 1
w v
return ( c )
sacarpal ( b, k )
b b + “ ”, c 0
ele length(b), v ””
i 1, ele
y substring( w, i, 1 )
y = ” ”
c c + 1
v v + y
return ( w )
c=k
v “”
6. La función sgtevoc():
sgtevoc ( v )
ele length( v )
w = “”
i 1, ele
y substring( v, i, 1 )
esvocal( y ) = 1
“a”
return ( w )
y
“e” “i” “o” “u”
y“e” y“i” y“o” y“u” y“a”
w w + y
7. El programa principal es el siguiente:
inicio
cp contarpal( b ), w “”,v””
b
i 1, cp
v sacarpal ( b, i )
w w + v +” ”
w
fin
i=1 o i = cp
v sgtevoc( v )