Busqueda

Resultados

martes, 27 de octubre de 2009

STRING (Cadena de caracteres)

El tipo de datos STRING guarda información de texto. Una variable STRING puede tener de 1 a 255 caracteres de longitud, aunque ocupa un byte más que su longitud definida.

Por ejemplo, si se declara una variable STRING de 10 caracteres de longitud (cad:string[10];) la variable ocupa 11 bytes de memoria. Esto se debe a que el primer byte (byte de longitud) de cada variable STRING guarda la longitud de la cadena que en ese momento está contenida en la variable.

Si una variable STRING de 10 caracteres contiene la palabra "hola" el primer byte de memoria tendra el valor binario 4, indicando que la variable contiene cuatro caracteres. En ese caso, los últimos seis caracters de la variable son ignorados por los procedimientos de manipulación de cadenas de turbo pascal.

0 1 2 3 4 5 6 7 8 9 10
4 h o l a } # - X ¬ %

(00000100)Observe que el primer byte (el byte 0) no es el caracter "4", sino el número 4 en binario y que los últimos seis bytes contienen datos aleatorios.

Veamos algunos ejemplos visto en clases con manipulación de cadenas:

(* Funcion que devuelve la posición de un caracter en la cadena especificada *)
function poscar(cadena : string; cual : char) : byte;
var
pos, (* para devolver la posición de la cadena *)
i : byte; (* para recorrer cada caracter de la cadena *)
encontrado : boolean; (* para determinar si encontro el caracter buscado *)
begin
pos := 0;
encontrado := false;
i := 1;
(* ord(cadena[0]) devuelve la longitud de la cadena *)
while (not encontrado) and (i<ord(cadena[0])) do
begin
if (cadena[i]<>cual)
then begin
pos := i;
encontrado := true;
end
else i := i + 1;
end;
poscar := pos; (* retorna el valor de la funcion *)
end;

(* Funcion que cuenta cuantas veces se repite un caracter en una cadena*)
function contarcar(cadena : string; cual : char) : byte;
var
contador, (* para contar el caracter *)
i : byte; (* para recorrer cada caracter de la cadena *)
begin
contador := 0;
(* ord(cadena[0]) devuelve la longitud de la cadena *)
for i := 1 to ord(cadena[0]) do
begin
if (cadena[i]=cual)
then contador := contador + 1
else (* nada que hacer*);
end;
contarcar := contador; (* retorna el valor de la funcion *)
end;

Función Length

Para conocer la longitud de una cadena utilizamos la función Length, la longitud es la cantidad de caracteres que contiene la cadena en un momento determinado.

Su sintaxis es: Length (cadena);

La función regresa un valor entero.


Función Concat

La función concat produce los mismos resultados que la concatenación, es posible incluir cualquier número de cadenas que se necesiten concatenar.

La suma de las cadenas no deberá sobrepasar la longitud que la variable, a la cual se asignará dicha suma, puede manejar. Ejemplo:

Cadena := Concat (Cad1, cad2, cad3);


Función Pos

La función Pos nos sirve para localizar una determinada cadena dentro de otra, en otras palabras para verificar si una cadena es subcadena de otra segunda.

Los parámetros que requiere son: la cadena que se buscará y la cadena donde se buscará la primera:

Pos (Cadena1, Cadena2);

Ejemplo:
Cadena := 'Domingo Lunes Martes Miercoles Jueves Viernes Sabado';
WriteLn(Cadena);
WriteLn(Pos('Lunes', Cadena)); {Muestra 9}
WriteLn(Pos('Jueves', Cadena)); {Muestra 32}
WriteLn(Pos('Ayer', Cadena)); {Muestra 0}

Función Copy

La función copy regresa una subcadena de una variable o constante dada como parámetro. Su sintaxis es:

Copy (Cadena, Inicio, Cantidad);

Donde Cadena es la fuente de la subcadena, Inicio es la posición desde la cual se obtendrá la subcadena y Cantidad es el número de caracteres que se extraerán.

Los valores de Inicio y Cantidad deben ser de tipo entero.

Ejemplo:
Cadena := "Nuevos horizontes";
WriteLn (Copy(Cadena, 8, 10)); {Visualiza: horizontes}

Fución Insert

El procedimiento Insert sirve para insertar una cadena dentro de otra en alguna posición determinada. Sintaxis:

Insert (Cadena1, Cadena2, Posición)

Donde Cadena1 es la que se insertará, Cadena2 es donde se insertará y Posición es el lugar donde se insertará. El parámetro Posición debe ser de tipo entero.

Procedimiento Delete

Este procedimiento elimina un determinado número de caracteres de una cadena. Su sintaxis es:

Delete (Cadena, Inicio, Número)

Cadena es la variable en la cual se eliminarán los caracteres, Inicio es la posición del primer caracter a eliminar y Número es la cantidad de caracteres que se borrarán.

Fución UpCase

La función UpCase regresa la letra mayuscula correspondiente al caracter dado como parámetro. Es muy común trabajando con cadenas que se quiera convertir una que contiene un número a su valor numérico, para poder utilizarlo en operaciones matemáticas, así como convertir un número a su equivalente en una cadena.

Procedimiento Str

El procedimiento Str obtiene una cadena a partir de un valor numérico. Su sintaxis es:

Str(Valor, Cadena)

Donde valor es el número a convertir y Cadena es la variable donde se almacenará la cadena ya convertida.

Procedimiento Val

Este procedimiento convierte una cadena en un valor de tipo numérico, el problema con esta función es que si la cadena no esta formada exclusivamente de números siguiendo las reglas para el tipo de datos que se vallan a obtener se generará un error. Sintaxis:

Val (Cad, Num, Código)

Cadena contiene la cadena que será procesada, Num es la variable de tipo numérico donde se guardará el valor de la cadena y Código es una variable de tipo entero (Integer) que contendrá el valor de 0 si no hubo errores y un valor diferente en caso de que no se haya podido convertir la cadena, el valor de Código representa la posición de la cadena donde ocurrio el error.

5 comentarios:

  1. Publicare algunos ejercicios propuestos tipo examen, para que los desarrollen y practiquen y tomem fortalesas. Esten pendientes de ellos.

    Otra asunto estoy esperando que envien la practica, tienen chance hasta hoy martes 27 de octubre, de ahi no se puede más.

    ResponderEliminar
  2. Es un tipo de dato que almacena cacactere que van de 256 hasta 10,dependiendo su limite
    ejemplo
    algoritmo: string[]9]

    ResponderEliminar
  3. MARIA SEIJAS EXP 22305 "_"MARU

    LAS CADENAS O STRING ES UN TIPO DE DATOS DE ALMACENAMIENTO DE TEXTOS O DE NUMEROS DEPENDIENDO DE LA FUNTCION QUE LE INDIQUEMOS, ELLA VA DEL 1 HASTA 255 CARACTERES Y CUANSO SE EMPIEZA A CONTAR SIEMPRE SE IMPIEZA DESDE EL MISMO ES DECIR SI SON 20 CARTARERES SERIAN 21 PORQ QUE SE CUENTA EL PRIMER BYTE EN ESTE CASO EL 20.

    EJEMPLO:

    1 2 3 4 5
    M A R I A
    EN ESTE CASO SE CONTARAN 6 CARACTERES Y TAMBIEN SE PUEDE NOTAR QUE SON TEXTOS..EN ELLA SE DIRAN EN QUE ESPACIO SE ENCUENTRA LO QUE QUERRAMOS AEN ESTE CASO...SI HACEMOS UN PROGRAMA QUE NOS ENCUENTRE LAS "A" QUE EXISTEN EN ESA CADENA ELLA AUTOMATICAMENTE CON LA FUNCION QUE LE DAREMOS LAS BUSCARA NO DIRA "A" Y "A" SINO QUE LAS CONTARA DEL SITIO DONDE ESTA EN ESTE CASO EL 2 Y EL 5.

    ResponderEliminar
  4. MARIA SEIJAS EXP 22305 ":"MARU

    ENTRE LAS CADENAS EXISTEN VARIOS TIPOS DE FUNCIONES DARE MI CONCEPTO PROPIO DE CADA UNA DE ELLAS..

    FUNCION LENGTH: ES AQUELLA QUE SE UTILIZA PARA SABER CUANTO CARCATRERES AHI EN UNA CADENA..
    LENGTH(CADENA);

    FUNCION CONCAT: ES LA QUE SE UTILIZA PARA CONTAR LAS CADENAS TAMBIEN PEINSO QUE SIRVEN PARA CONTAR EN CASOS DE QUE SE REPITA UN CARACTER DEL MISMO TIPO.
    CADENA:=CONCAT(CAD1,CAD2,CAD3);

    FUNCION POS: ES AQUEKLLA QUE UTILIZAMOS PARA SABER DONDE SE ENCUENTRA UN CARACTER EN ESPECIFICO
    POS(CADENA1,CADENA2);

    FUNCION COPY: ES AQUELLA QUE UTILIZAMOS PARA VOLVER UN CARCTER A SYU INCIO O AL NUMERO QUE QUERRAMOS QUE SE UBIQUE
    COPY(CADENA,INICIO,CANTIDAD);
    (COPY(CADENA,8,10));

    FUNCION INSERT: ESTA FUNCION LA UTILIZAMOS PARA INSERTAR UNA CADENA EN OTRA OTRA POSICION ESPECIFICA
    INSERT(CADENA4,CADENA5,POSICION);EN DONDE CADENA 4 ES DONDE ACTUALENTE SE ENCUENTRA LA CADENA Y CADENA 5 ES A DONDE SE VA A INSERTAR

    FUNCION UPCASE: ESTA FUNCION REALIZA EL CAMBIO DE LA LETRA MINUSCULA A MAYUSCULA CORRESPONDIENTE AL CARCATER QUE LE INDIQUEMOS O EN DONDE SE VALLA A REALIZAR LA FUNCION
    EJEMPLO:
    maRIa = MARIA

    FUNCION STR: ESTA FUNCION LA UTILIZAMOS PARA CONVERTIR NUMEROS, EL CUAL SE PIDE EL NUMERO AL QUE SE LE VAMOS A HACER LA CONVERSION Y Y LA CADENA QUE SERA LA VARIABLE EN DONDE SE GUSRDARA YA CONVERTIDO.

    STR(VALOR,CADENA);

    ResponderEliminar