Strings

Anuncio
Cátedra de COMPUTACIÓN
Carreras: Licenciatura en Matemática – Profesorado en Matemática
Equipo docente: César Orsetti – María del Carmen Varaldo
_________________________________________________________
APUNTES DE CÁTEDRA: STRINGS
DEFINICIÓN DE TIPO STRING
type
nombre = string [14];
linea = string [80];
significa que
nombre es una tira de 14 caracteres como máximo
linea es una tira de 80 caracteres como máximo
FORMA GENERAL
T1=string;
o
T2=string [ long ];
donde 1≤ long ≤ 255
En el primer caso se reserva memoria para una cadena de hasta 255 caracteres
EXPRESIONES STRINGS
Pueden ser:
i) constantes strings,
ii) variables strings,
iii) funciones,
iv) operadores.
El signo más puede ser usado para concatenar strings. Si la longitud del resultado es mayor que 255
ocurre un RUN-TIME error.
EJEMPLOS:
´TURBO ´ + ´PASCAL´ = ´TURBO PASCAL´
´123´ + ´.´ + ´456´ = ´123.456´
´A´ + ´B´ + ´C´ + ´D´ = ´ABCD´
Otra operación que se puede hacer con strings es ordenarlas alfabéticamente. Se emplean para ello las
operaciones de relación. Por ejemplo las comparaciones o relaciones siguientes:
´abcd´ = ´abcd´
´amld´ < ´bbbb´
´abc´ > ´aba´
´jkl´ ≠ ´jlm´
son todas verdaderas.
SENTENCIA DE ASIGNACIÓN
variable := expresión ;
HOJA 1 - STRINGS
EJEMPLOS:
i)
ii)
var c1, c2 : char;
entonces valen
var c1,c2 : char;
st : string [4];
entonces valen
c1 := ´d´;
c2 := c1;
c1 := ´f´;
st[1] := ´3´;
st[2] := c1;
c2 := st [1];
str[4] := st[3];
iii)
var palabra : string [4];
entonces vale
palabra := ´abcd´;
o bien
for i := 1 to 4 do palabra[i] := ´ ´;
iv)
var pal1, pal2 : string[10];
entonces valen
pal1 := ´**********´;
pal2 := pal1;
PROCEDIMIENTOS PARA STRINGS (suministrados por TURBO PASCAL):
DELETE: Borra una substring de una string.
DELETE ( S , Index , Count );
Observaciones:
S es una variable tipo string; Index y Count son expresiones tipo enteras.
Se borran Count caracteres de S comenzando desde la posición Index-ésima.
Si Index es mayor que la longitud de S, no se borra ningún carácter.
Si Index + Count > long(S) se suprimen sólo los caracteres contenidos en S.
Si Index ∉ 1..255 se produce un RUN-TIME error.
Ejemplo:
Si S tiene el valor ´ABCDEFG´ entonces
DELETE(S,2,4) dará a S el valor ´AFG´
DELETE(S,2,10) dará a S el valor ´A´
INSERT: Inserta una substring en una string.
INSERT (Source, S, Index);
Observaciones:
Source es una expresión tipo string.
S es una variable tipo string de cualquier longitud.
Index es una expresión tipo entera.
Insert inserta Source en S a partir de la posición Index-ésima.
Si la string resultante tiene más de 255 caracteres, los caracteres excedentes se truncan.
Si Index ∉ 1..255, se produce un RUN-TIME error.
Ejemplo:
Si S tiene el valor ´ABCDEFG´ entonces
INSERT(´XX´,S,3) dará a S el valor ´ABXXCDEFG´
HOJA 2 - STRINGS
STR: Convierte un valor numérico en su representación como string.
STR (X [: Width [: Decimals ] ], S);
Observaciones:
X es una expresión tipo entera o tipo real.
Width y Decimals son expresiones tipo enteras.
S es una variable tipo string.
Str convierte X a su representación string, de acuerdo a los parámetros de formato
Width y Decimals.
Ejemplo:
Si I toma el valor 1234 entonces
STR ( I:5, S) dará a S el valor ´ 1234´
Si X toma el valor 2.5 E4 entonces
STR (X:10, S) dará a S el valor ´ 2.5E04´ y
STR (X:10:1, S) dará a S el valor ´ 25000.0´
Si no se especifica el campo los números se ajustan a izquierda.
VAL: Convierte el valor string en su representación numérica.
VAL (S, V, Code);
Observaciones:
S es una expresión de tipo string.
V es una variable de tipo entero o real.
Code es una variable de tipo entera.
S debe ser una sucesión de caracteres que formen un nùmero completo con signo
según las
reglas numéricas del Pascal. Val connvierte a S en su representación numérica y guarda el resultado
en V. Si la string es de alguna manera inválida, el índice del carácter extraño es guardado en Code;
en caso contrario Code toma el valor 0.
Ejemplo:
Si S=´234´ entonces
VAL (S, V, Code) dará a V el valor 234 y a Code. el valor 0.
Si S=´12x´ entonces
VAL (S, V, Code) dará a Code el valor 3.
Si S=´2.5E4´ entonces
VAL (S, X, Code) dará a X el valor 25000 y a Code el valor 0.
FUNCIONES PARA STRINGS (suministradas por TURBO PASCAL):
CONCAT: Concatena una sucesión de strings.
CONCAT (S1 [ , S2, .... SN ]) ;
Observaciones:
Cada parámetro es una expresión tipo string.
El resultado es una concatenación de todos los parámetros string.
Si long ( resultado ) > 255 entonces se truncan los caracteres excedentes.
El operador + se puede usar para obtener el mismo resultado.
Ejemplo:
Si S1=´ABX´ y S2=´JKL´ entonces
CONCAT ( S1, S2) devuelve el valor ´ABXJKL´.
HOJA 3 - STRINGS
COPY: Devuelve una substring de una string.
COPY ( S, Index, Count) ;
Observaciones:
S es una expresión tipo string.
Index y Count son expresiones tipo enteras.
Copy devuelve una string que contiene Count caracteres comenzando por el carácter
Index-ésimo de S.
Si Index > long(S), Copy devuelve una string vacía.
Si Index + Count > long (S) entonces sólo se devuelven los caracteres restantes de la string.
Si Index ∉ 1.. 255 se produce un RUN-TIME error.
Ejemplo:
Si S=´ABCDEFG´ entonces
COPY (S ,3, 2) devolverá como valor ´CD´
COPY (S, 4, 10) devolverá como valor ´DEFG´
COPY (S, 4, 2) devolverá como valor ´DE´.
LENGTH: Devuelve la longitud dinámica de una string.
LENGTH ( S) ;
Observaciones: Devuelve la longitud de la string S.
Ejemplo:
Si S = ´123456789´ entonces
LENGTH ( S ) devolverá como valor 9.
POS: Busca una substring dentro de una string.
POS ( Substr , S);
Observaciones:
Substr y S son expresiones tipo string.
Pos busca Substr en S, y devuelve un valor entero que es el índice del primer carácter de Substr
en S.
Si no se encuentra Substr, Pos devuelve cero.
Ejemplo:
Si S = ´ABCDEFG´ entonces
POS ( ´DE´, S ) devolverá el valor 4,
POS (´H´, S) devolverá el valor 0.
Bibliografía:
1) “Manual Turbo Pascal 7.0” - Borland
2) “Programación en Turbo Pascal – Versiones 5.5, 6.0 y 7.0” – Luis Joyanes Aguilar
HOJA 4 - STRINGS
Descargar