USO DE CARACTERES Y CADENAS DE CARACTERES EN PROGRAMACIÓN
En muchas situaciones se requiere trabajar con
valores que no son numéricos, para lo cual es necesario el uso de variables
tipo carácter, o como una cadena de caracteres.
El tipo de variables string o cadena de
caracteres nace de la necesidad frecuente de los programadores de resolver
situaciones problemicas que incluyen palabras o frases enteras del lenguaje
común, uno de los mas comunes es cuando se trabaja con los nombres de personas
como datos en un programa, un ejemplo típico de un programa que maneja datos
textuales es el procesador de texto con el cual se ha elaborado este escrito.
Para trabajar con textos los programadores
inicialmente trabajaban con arreglos
donde cada elemento del arreglo correspondía al código de una letra o
carácter, los códigos de caracteres inicialmente establecidos obedecían a
estándares EBCDIC o ASCII, donde a cada carácter se le asigna un código
hexadecimal. Basic utiliza el estándar ASCII, por ejemplo
para almacenar la palabra BIENVENIDO el
arreglo quedaría un arreglo así:
A=
|
B
|
I
|
E
|
N
|
V
|
E
|
N
|
I
|
D
|
O
|
Donde A(1)=”B”, A(2)=”I”, A (3)= “E” y así
sucesivamente.
Con mucha frecuencia la situación exigía al
programador generar códigos para solucionar situaciones como dividir la frase
en subconjuntos de caracteres, cambiar o modificarla parcialmente o en su
totalidad, armar frases nuevas a partir de otras existentes, buscar si cierta
palabra o carácter formaba parte de ella etc.
Ese tipo de tareas se dificultan cuando trabajas con arreglos comunes,
debido a que el manejo de los subíndices puede resultar complejo, por lo cual
los creadores de los compiladores y las herramientas de programación incluyeron
los strings como un nuevo tipo de variable mucho mas práctica y sencilla para
su uso en el manejo de textos. En Basic
para declarar este tipo de variables se usa la instrucción Dim de las
siguientes maneras:
CADENAS DE LONGITUD FIJA
DIM [NOMBRE
DE VARIABLE] AS STRING * n%
Que se
utiliza para declarar una variable como cadena de caracteres de longitud n%
fija, donde n% es un número entero o una variable de tipo entero.
Por
ejemplo:
DIM letrero AS STRING * 10
Donde
se declaró la variable letrero como una cadena
de caracteres de longitud fija 10, si le asignas un texto de mas de 10 caracteres
este será truncado, es decir no aparecerán los caracteres qe están de la
posición 11 en adelante.
CADENAS
DE LONGITUD VARIABLE
DIM [NOMBRE
DE VARIABLE] AS STRING
Esta
línea de código permite declarar strings, cuya dimensión no es fija, y puede asignársele
cadenas de caracteres de cualquier tamaño sin problemas.
También
se puede definir una variable como cadena de caracteres de longitud variable si
se usa al finalizar el nombre el prefijo $.
ASIGNACIÓN
Para asignar
textos a variables que son cadenas de caracteres se efectúa desde el teclado
con la instrucción Input; los valores textuales también se pueden asignar con
el carácter =, cuando estos son constantes deben enmarcarse entre comillas
dobles (“). De igual manera deben utilizarse comillas en constantes textuales
cuando aparecen dentro de condiciones.
El siguiente
segmento de código Basic entrega como respuesta el letrero “la encontré”.
CLS
DIM
NOMBRE as STRING
NOMBRE=”Yaneth”
IF
(NOMBRE = “Yaneth”) THEN
PRINT “la encontré”
ELSE
PRINT “no es ella”
END
IF
END
Nóte
que Basic en este caso si diferencia entre minúsculas y mayúsculas, debido a
que el código ASCII de las letras mayúsculas es diferente al de las letras
minúsculas.
PRINCIPALES
FUNCIONES PARA EL MANEJO DE STRINGS:
LEN:
Retorna el número de caracteres o letras que contiene una cadena, o el número
de bytes que ocupa en la memoria una variable.
Sintaxis:
LEN(cadena$)
LEN(nombrevariable)
Ejemplo:
CLS
DIM
NOMBRE as STRING
DIN
LONGITUD as INTEGER
NOMBRE=”Yaneth”
LONGITUD
= LEN (NOMBRE)
PRINT
“la cantidad de letras es:” LONGITUD
END
La
respuesta que entrega es el letrero: la
cantidad de letras es: 6. que corresponde al numero de letras de la palabra Yaneth.
Donde
cadena$ es una cadena de caracteres constante o el nombre de una variable de
tipo carácter; nombrevariable es el nombre de una variable que no es tipo
string,
LEFT$ y RIGHT$: Retornan cierta cantidad de caracteres desde el extremo
izquierdo o derecho de una cadena.
Sintaxis:
LEFT$(cadena$,n%)
RIGHT$(cadena$,n%)
Donde cadena$,
es una expresión entre comillas dobles o el nombre de una variable tipo
string, y n% es la cantidad de caracteres que se va a retornar la función.
Ejemplo:
CLS
DIM NOMBRE, PRINOM, SEGNOM as
STRING
NOMBRE=”Katherine Yamile”
PRINOM=LEFT$(NOMBRE,9)
SEGNOM=RIGHT$(
NOMBRE,6)
PRINT
“El primer nombre es:” ;PRINOM
PRINT
“El segundo nombre es:”;SESGNOM
END
MID$: La
función MID$ devuelve un SUBSTRING o una SUBCADENA.
Cuando
actúa como instrucción MID$ permite reemplazar
una parte de la cadena con otra cadena de caracteres.
MID$(cadena$,inicio%[,longitud%])
MID$(cadena$,inicio%[,longitud%])=cadena$
Donde cadena$ se refiere a cadenas de
caracteres.
Inicio% La posición del primer carácter
de la Subcadena dentro del string original
longitud% Cantidad de caracteres en la
subcadena. Si no se coloca, toma toda la subcadena que va
hasta el último carácter de la cadena original.
Ejemplo:
CLS
DIM NOMBRE, PRINOM, SEGNOM as
STRING
NOMBRE=”María
Angel”
PRINOM=MID$(NOMBRE,1,5)
SEGNOM=RIGHT$(
NOMBRE,7,5)
PRINT
“El primer nombre es:” ;PRINOM
PRINT
“El segundo nombre es:”;SESGNOM
MID$(NOMBRE,
7)= “Gabriela”
PRINT
“El nuevo nombre es:”;NOMBRE
END
OTRAS
FUNCIONES QUE USAN STRING.
DATE$:
Retorna la fecha del sistema en formato dd/mm/aa, o dd/mm/aaaa. Cuando actúa
como instrucción permite asignarle la fecha al sistema desde un string.
INKEY$:
Lee un carácter (código ASCII) desde el teclado.
STRING$:
Devuelve una cadena de longitud específica en la cual aparece un carácter o
string repetido varias veces.
LCASE$
y UCASE$: Convierte una cadena en letras minúsculas o letras mayúsculas.
STR$:
Convierte un valor numérico en cadena de caracteres.
VAL:
Convierte una cadena de caracteres numéricos en un valor numérico.
ORDENACIÒN QUICK SORT EN:
ORDENACIÒN QUICK SORT EN:
Comentarios
Publicar un comentario