You are on page 1of 35

PASCAL y TURBO PASCAL

Programacin I

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

PASCAL: Es un lenguaje de Alto Nivel y propsito


general desarrollado por el prof. suizo Niklaus WIRTH
en 1968.
Caractersticas
Excelente herramienta para aprender programacin
Es un lenguaje de propsito general
Lenguaje procedural (imperativo, orientado a rdenes)
Lenguaje estructurado (soporta while, for y repeat. No
necesita goto)
Lenguaje recursivo
Gran riqueza de tipos de datos predefinidos y definidos
por el usuario
Cdigos ejecutables rpidos y eficientes
Magter. Oscar Adolfo Vallejos
FaCENA - UNNE

TURBO PASCAL: Lanzado en 1983 por


BORLAND International.
Caractersticas adicionales:
Entorno integrado de desarrollo
Editor de texto
Grficos
Gestin de archivos
Compilacin independiente
Gestin de proyectos
Enteros de gran presicin
Programacin orientada a objetos
Bilioteca de objetos
Magter. Oscar Adolfo Vallejos
FaCENA - UNNE

Estructura de un Programa PASCAL

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

Nota: Las declaraciones


de constantes, tipos y
variables tambin se
pueden poner en los
procedimientos y/o
funciones.
Todo objeto referenciado
en un programa debe
haber sido
previamente definido.

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

Identificadores
Para poder manipular datos (I-O), necesitamos tener acceso a las
localidades de memoria donde se encuentran almacenados; esto se
logra por medio de los nombres de los datos o IDENTIFICADORES.
Los identificadores tambin se utilizan para los nombres de los programas,
los nombres de los procedimientos y los nombres de las funciones, as
como para las etiquetas, constantes y variables.
Las reglas para formar los identificadores en Pascal son las siguientes :
1. Pueden estar compuestos de caracteres alfabticos, numricos y el
carcter de subrayado ( _ ).
2. Deben comenzar con un carcter alfabtico o el carcter de subrayado.
3. Puede ser de cualquier longitud (slo los 63 primeros caracteres son
significativos).
4. No se hace distincin entre maysculas y minsculas.
5. No se permite el uso de los IDENTIFICADORES RESERVADOS en los
nombres de variables, constantes, programas o sub-programas.
Magter. Oscar Adolfo Vallejos
FaCENA - UNNE

Identificadores
Identificadores vlidos
Nombre
Cadena
Edad_Maxima
X_Y_Z
Etiqueta2
Identificadores no vlidos
Num&Dias carcter & no vlido
X nombre
Contiene un blanco
begin
es una palabra reservada
eje@s
carcter @ no vlido

La eleccin de identificadores permite una mejor lectura y comprensin


de un programa. No es aconsejable utilizar identificadores que no
sugieran ningn significado.
Magter. Oscar Adolfo Vallejos
FaCENA - UNNE

Declaracin de etiquetas
Si necesitara utilizar la instruccin Goto, deber marcarse con
una etiqueta la lnea a donde desea enviarse el control de
flujo del programa.
La declaracin deber encabezarse con el identificador
reservado: Label, seguido por la lista de etiquetas
separadas por comas y terminada por un punto y coma.
Pascal estndar slo permite etiquetas formadas por nmeros
de 1 a 4 dgitos.
Turbo-Pascal permite la utilizacin de nmeros y/o cualquier
identificador, excepto los identificadores reservados.
Su uso no est recomendado
Magter. Oscar Adolfo Vallejos
FaCENA - UNNE

Definicin de constantes
En la definicin de constantes se introducen identificadores que
sirven como sinnimos de valores fijos.
El identificador reservado Const debe encabezar la
instruccin, seguido por una lista de asignaciones de
constantes. Cada asignacin de constante debe consistir de un
identificador seguido por un signo de igual y un valor
constante, como se muestra a continuacin:

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

Definicin de constantes
Un valor constante puede consistir de un nmero ( entero o real
), o de una constante de caracteres.
La constante de caracteres consiste de una secuencia de
caracteres encerrada entre apstrofes ( ' ), y, en
Turbo-Pascal, tambin puede formarse concatenndola con
caracteres de control ( sin separadores ), por ejemplo :

Las constantes de caracteres pueden estar formadas por un solo carcter de


control, p.ej. :

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

Definicin de constantes
Existen dos notaciones para los caracteres de control en Turbo
Pascal, a saber :
1. El smbolo # seguido de un nmero entero entre 0 y 255
representa el carcter al que corresponde dicho valor decimal
en el codigo ASCII.
2. El smbolo ^ seguido por una letra, representa el
correspondiente carcter de control.
Ejemplos :
#12 decimal 12 ( hoja_nueva o alimentacin de forma)
#$1B valor hexadecimal 1B ( escape ).
^G carcter del timbre o campana.
^M carcter de retorno de carro.
Magter. Oscar Adolfo Vallejos
FaCENA - UNNE

CONSTANTES PREDEFINIDAS

Adems de las constantes literales para los tipos integer y real con
representacin decimal y hexadecimal, y las constantes literales
para el conjunto de caracteres ASCII, ms los caracteres especiales
( no incluidos en el conjunto estndar del ASCII )
Magter. Oscar Adolfo Vallejos
FaCENA - UNNE

Definicin de tipos
El Tipo indica el espacio de memoria en que se almacenarn y que al
mismo tiempo evita el error de tratar de guardar un dato en un espacio
insuficiente de memoria .
Un tipo de dato en Pascal puede ser cualquiera de los tipos predefinidos (
integer, real, byte, boolean, char ), o algn otro definido por el
programador.
Los tipos definidos por el programador deben basarse en los tipos
estndar predefinidos, para lo cual, debe iniciar con el identificador
reservado Type , seguido de una o ms asignaciones de tipo separadas
por punto y coma.
Cada asignacin de tipo debe consistir de un identificador de tipo, seguido
por un signo de igual y un identificador de tipo previamente definido.
La asignacin de tipos a los datos tiene dos objetivos principales:
Detectar errores de operaciones en programas.
Determinar cmo ejecutar las operaciones.
Magter. Oscar Adolfo Vallejos
FaCENA - UNNE

Definicin de tipos
Los tipos definidos por el programador pueden
utilizarse para definir nuevos tipos, por ejemplo :

Tipos Enteros
predefinidos

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

Definicin de tipos
Tipos reales
En el contexto de Pascal, un nmero real es aquel que est
compuesto de una parte entera y una parte decimal, separadas
por un punto. El rango de estos nmeros est dado entre los
valores 1E-38 y 1E+38 .
Deben tomarse en cuenta las siguientes restricciones para los
valores de tipo real:
1. No pueden utilizarse como subindices en las definiciones del tipo
estructurado array.
2. No pueden formar subrangos.
3. No se pueden usar para definir el tipo base de un conjunto (tipo
estructurado set)
4. No deben utilizarse para el control de las instrucciones for y case.
5. Las funciones pred y succ no pueden tomarlos como argumentos.
Magter. Oscar Adolfo Vallejos
FaCENA - UNNE

Definicin de tipos

Los nmeros reales estn siempre


disponibles en Turbo Pascal, pero si su
sistema incluye un coprocesador
matemtico, se dispone adems de otros
tipos de nmeros reales:
real (real)
single (real corto)
comp (entero ampliado)
double (real de doble precisin)
extended (real ampliado)
Magter. Oscar Adolfo Vallejos
FaCENA - UNNE

Definicin de tipos. Real


BOOLEAN : Puede asumir cualquiera de los valores de verdad denotados por los
identificadores true y false, los cuales estn definidos de tal manera que false <
true . Un valor de tipo boolean ocupa UN OCTETO en la memoria.
CHAR : Es cualquier carcter que se encuentre dentro del conjunto ASCII
ampliado, el cual est formado por los 128 caracteres del ASCII ms los 128
caracteres especiales. Los valores ordinales del cdigo ASCII ampliado se
encuentran en el rango de 0 a 255. Dichos valores pueden representarse
escribiendo el carcter correspondiente encerrado entre apstrofes.
Ej.: 'A' < 'a'
CADENA (STRING): Es una secuencia de caracteres de cero o ms caracteres
correspondientes al cdigo ASCII, escrito en una lnea sobre el programa y
encerrado entre apstrofos.
Ej.: 'Turbo Pascal','Tecnolgico', #13#10
Nota:
Una cadena sin nada entre los apstrofos se llama cadena nula o cadena vaca.
La longitud de una cadena es el nmero de carcteres encerrados entre los
apstrofos.

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

Operadores

Los operadores sirven para combinar los trminos


de las expresiones.
En Pascal, se manejan tres grupos de operadores:
1. ARITMTICOS
2. RELACIONALES
3. LGICOS

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

Operadores aritmticos
Sirven para operar trminos numricos.
a. UNARIOS
b. BINARIOS
UNARIOS: trabajan con UN OPERANDO.
Pascal permite el manejo de un operador unario llamado :
MENOS UNARIO
Este operador denota la negacin del operando, y se representa
por medio del signo menos ( - ) colocado antes del operando.
Ej: x = 100; -x dar como resultado -100.
BINARIOS: combinan DOS OPERANDOS , dando como
resultado un valor numrico cuyo tipo ser igual al mayor de
los tipos que tengan los operandos.

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

10

Operadores aritmticos

Observe:
1. Cuando los dos operandos sean del tipo integer, el resultado ser de tipo integer.
2. Cuando cualquiera de los dos operandos, o ambos, sean del tipo real, el resultado ser de tipo
real.
3. Cuando, en la operacin div, OPERANDO-1 y OPERANDO-2 tienen el mismo signo, se obtiene un
resultado con signo positivo; si los operandos difieren en signo, el resultado es negativo y el
truncamiento tiene lugar hacia el cero.
4. La operacin MODULO est definida solamente para OPERANDO-2 positivo. El resultado se dar
como el entero no negativo ms pequeo que puede ser restado de OPERANDO-1 para obtener un
mltiplo de OPERANDO-2
Magter. Oscar Adolfo Vallejos
FaCENA - UNNE

Operadores relacionales
Una RELACIN consiste de dos operandos separados por un operador relacional.
Si la relacin es satisfecha, el resultado tendr un valor booleano true ; si la
relacin no se satisface, el resultado tendr un valor false.
Los operadores deben ser del mismo tipo, aunque los valores de tipo real, integer y
byte pueden combinarse como operandos en las relaciones.

Ejemplos

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

11

Operadores lgicos

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

Expresiones
Las expresiones son secuencias de constantes y/o variables separadas
por operadores vlidos.
Se puede construir una expresin vlida por medio de :
1. Una sola constante o variable, la cual puede estar precedida por un
signo + - .
2. Una secuencia de trminos (constantes, variables, funciones)
separados por operadores.
Adems debe considerarse que:
Toda variable utilizada en una expresin debe tener un valor
almacenado para que la expresin, al ser evaluada, d como resultado
un valor.
Cualquier constante o variable puede ser reemplazada por una llamada
a una funcin. Como en las expresiones matemticas, una expresin
en Pascal se evala de acuerdo a la precedencia de operadores. La
siguiente tabla muestra la precedencia de los operadores en Turbo
Pascal:
Magter. Oscar Adolfo Vallejos
FaCENA - UNNE

12

Expresiones

Las reglas de evaluacin son:


1. Si todos los operadores en una expresin tienen la misma precedencia, la
evaluacin de las operaciones se realiza de izquierda a derecha.
2. Cuando los operadores sean de diferentes precedencias, se evalan primero
las operaciones de ms alta precedencia (en una base de izquierda a derecha
), luego se evalan las de precedencia siguiente, y as sucesivamente.
3. Las reglas 1) y 2) pueden ser anuladas por la inclusin de parntesis en una
expresin.

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

Instrucciones
Aunque un programa en Pascal puede contar con una sola instruccin
(tambin llamada enunciado, sentencia o estatuto), normalmente
incluye una cantidad considerable de ellas. Uno de los tipos de
instrucciones ms importantes lo forman las instrucciones de
asignacin; las cuales asignan a una variable (por medio del
smbolo := ) , el resultado de la evaluacin de una expresin.
La sintaxis para las instrucciones de asignacin es : identificador :=
expresin ;

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

13

Bloques de instrucciones
Es posible utilizar una instruccin compuesta o bloque de instrucciones, el
cual se forma agrupando varias instrucciones simples por medio de los
identificadores begin y end.
No es necesario escribir el punto y coma antes de end ya que el punto y
coma se usa para separar instrucciones, no para terminarlas. begin y
end son delimitadores de bloque.

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

Procedimientos de entrada / salida


Las instrucciones de entrada y salida le ayudan al programa
a comunicarse con un perifrico de la computadora tal
como una terminal, una impresora o un disco.
Las instrucciones de entrada estndar, sirven para leer
carcteres desde el teclado.
Las instrucciones de salida estndar despliegan carcteres
en la pantalla.
En Pascal todas las operaciones de entrada/salida se
realizan ejecutando unidades de programa especiales
denominados procedimientos de entrada/salida que
forman parte del compilador y sus nombres son
identificadores estndar:
Procedimientos de entrada
Procedimientos de salida

Read
Write

ReadLn
WriteLn

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

14

Procedimientos Read y Readln


Base para las instrucciones de entrada estndar.
Proporcionan datos durante la ejecucin de un programa.
Las instrucciones para llamar a los procedimientos son:

Donde : lista_de_variables : es una lista de identificadores de variables


separados por comas, los datos que se pueden leer son : enteros,
caracteres, o cadenas. No se puede leer un boolean o un elemento de tipo
enumerado.

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

Procedimientos Read y Readln


Los datos estructurados , arrays, registros o conjuntos, no se pueden leer globalmente y se suele
recurrir a disear procedimientos especficos.
La accin de la instruccin es obtener, del teclado, tantos valores de datos como elementos hay en
lista_de_variables. Los datos debern ser compatibles con los tipos de las variables.
Cada valor entero o real en el flujo de entrada puede ser representado como una secuencia de
caracteres en alguna de las formas permitidas para tales nmeros, y puede estar
inmediatamente precedido por un signo ms o un signo menos. Cada valor entero o real puede
ser precedido por cualquier cantidad de caracteres blancos o fines de lnea, pero no deber
haber blancos o fines de lnea entre el signo y el nmero.
La diferencia entre las instrucciones Read y ReadLn consiste en que Read permite que la siguiente
instruccin contine leyendo valores en la misma lnea; mientras que, con ReadLn la siguiente
lectura se har despus de que se haya tecleado el carcter de fin de lnea.
Cuando se tienen datos de tipo char en una instruccin Read, los caracteres blancos y los de fin de
lnea son considerados en el conteo de los elementos de las cadenas de caracteres mientras
no se complete el total especificado para cada una de ellas. Cada fin de lnea es tratado como
un carcter, pero el valor asignado a la variable ser un carcter blanco.
Es aconsejable que cada cadena de caracteres se lea en una instruccin Read o ReadLn por
separado, para evitar el tener que ir contando hasta completar la cantidad exacta de caracteres
que forman la cadena ( o de lo contrario se tendrn resultados sorpresivos y frustrantes al
verificar los datos ledos ).

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

15

Procedimientos Read y Readln

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

Procedimientos Write Y Writeln


La salida estndar se realiza en base a estos procedimientos predefinidos,
y las instrucciones para invocarlos toman las siguientes formas :

Donde: lista_de_salida es una lista de


variables, expresiones y/o constantes,
cuyos valores van a ser desplegados
en la pantalla.
El procedimiento Write permite que la
siguiente instruccin se realice en la
misma lnea , mientras que WriteLn
alimenta una nueva lnea, antes de
finalizar. Ej::

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

16

Patrones Lgicos

Secuencia
Seleccin
Iteracin
Hacer Mientras
Hacer Hasta

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

Secuencia

En este caso, las instrucciones se ejecutan una


despus de la otra sin omitir ninguna de ellas.

Begin
N := 0;
Write (Nombrey Apellido, NYA);
N := N + 1
End.

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

17

Seleccin

La seleccin de alternativas en Pascal se


realiza con alguna de las dos siguientes
formas :

1. La sentencia if
2. La sentencia case

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

Seleccin. Sentencia IF THEN - ELSE

Se evala condicin y si el resultado arroja un valor verdadero, se


ejecuta instruccin_1 ; en caso contrario se ejecuta instruccin_2..

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

18

Seleccin. Sentencia IF THEN - ELSE


Omitiendo el ELSE

Usando el ELSE

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

Seleccin. Sentencia IF THEN - ELSE


Nota: Antes de la clusula else no se antepone un punto y coma, si lo
hubiese el compilador producir un mensaje de error, puesto que no
existe ninguna sentencia en Pascal que comience con else. La parte
else es opcional, pero la ejecucin siempre continuar en otra
instruccin.
En lugar de utilizar instrucciones simples, se pueden usar bloques de
instrucciones:

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

19

Seleccin. Sentencia IF THEN - ELSE


Sentencia IF anidadas

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

Seleccin. Sentencia CASE-OF-ELSE

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

20

Seleccin. Sentencia CASE-OF-ELSE

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

Iteracin
Las formas de iteracin sirven para ejecutar ciclos
repetidamente, dependiendo de que se cumplan ciertas
condiciones. Una estructura de control que permite la
repeticin de una serie determinada de sentencias se
denomina bucle1 (lazo o ciclo).
El cuerpo del bucle contiene las sentencias que se repiten.
Pascal proporciona tres estructuras o sentencias de control
para especificar la repeticin:
1. While
2. Repeat
3. For
Magter. Oscar Adolfo Vallejos
FaCENA - UNNE

21

Iteracin. WHILE-DO
La estructura repetitiva while(mientras) es aquella en
la que el nmero de iteraciones no se conoce por
anticipado y el cuerpo del bucle se ejecuta
repetidamente mientras que una condicin sea
verdadera

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

Seleccin. Sentencia CASE-OF-ELSE


Dependiendo del valor que tenga la expresin selector, se ejecutarn las
instrucciones etiquetadas por constante.
Aqu tambin los bloques de instrucciones pueden ser reemplazados por
instrucciones simples.
Conviene tener presente que no debe escribirse punto y coma antes de la palabra
else.
Reglas:
1. La expresin <selector> se evala y se compara con las constantes; las
constantes son listas de uno o ms posibles valores de <selector> separados
por comas. Ejecutadas la(s) <instrucciones>, el control se pasa a la primera
instruccin a continuacin de end (fin de case).
2. La clusula else es opcional.
3. Si el valor de <selector> no est comprendido en ninguna lista de constantes y
no existe la clusula else, no sucede nada y sigue el flujo del programa; si
existe la clusula else se ejecutan la(s) <instrucciones> a continuacin de la
clusula else.
4. El selector debe ser un tipo ordinal ( integer, char, boolean o enumerado). Los
tipos string, longint y word no son vlidos.
5. Todas las constantes case deben ser nicas y de un tipo ordinal compatible con
el tipo del selector.
6. Cada sentencia, excepto la ltima, deben ir seguidas del punto y coma.
Magter. Oscar Adolfo Vallejos
FaCENA - UNNE

22

Iteracin. WHILE-DO
Reglas de funcionamiento:
La condicin se evala antes y despus de cada ejecucin del
bucle. Si la condicin es verdadera, se ejecuta el bucle, y si es
falsa, el control pasa a la sentencia siguiente al bucle.
Si la condicin se evala a falso cuando se ejecuta el bucle por
primera vez, el cuerpo del bucle no se ejecutar nunca.
Mientras la condicin sea verdadera el bucle se ejecutar. Esto
significa que el bucle se ejecutar indefinidamente a menos que
"algo" en el interior del bucle modifique la condicin haciendo
que su valor pase a falso. Si la expresin nunca cambia de valor,
entonces el bucle no termina nunca y se denomina bucle infinito
lo cual no es deseable.

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

Iteracin. WHILE-DO

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

23

REPEAT-UNTIL
La accin de repeat-until es repetir una serie de instrucciones
hasta que se cumpla una determinada condicin .

Reglas de funcionamiento:
1.
La condicin se evala al final del bucle, despus de ejecutarse todas las sentencias.
2.
Si la condicin es falsa, se vuelve a repetir el bucle y se ejecutan todas sus
instrucciones.
3.
Si la condicin es falsa, se sale del bucle y se ejecuta la siguiente instruccin a until.
4.
La sintaxis no requiere begin y end.
Magter. Oscar Adolfo Vallejos
FaCENA - UNNE

REPEAT-UNTIL

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

24

FOR-TO-DO
Cuando se sabe de antemano el nmero de veces que deber
ejecutarse un ciclo determinado, sta es la forma ms conveniente.

Al ejecutarse la sentencia for la primera vez, a contador se le asigna un valor inicial


(expresion.1), y a continuacin se ejecutan las intrucciones del interior del bucle,
enseguida se verifica si el valor final (expresin.2) es mayor que el valor inicial
(expresin.1); en caso de no ser as se incrementa contador en uno y se vuelven a
ejecutar las instrucciones, hasta que el contador sea mayor que el valor final, en cuyo
momento se termina el bucle. Aqu, contador no puede ser de tipo real.
El contador se puede decrementar sustituyendo la palabra to por la palabra downto.

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

FOR-TO-DO

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

25

Tipos de datos
Pascal requiere que todos los tipos de datos sean formalmente
definidos antes de ser utilizados, ya que tal definicin ser
usada por el compilador para determinar cuanto espacio de
memoria se reservar para las variables de cada tipo, as
como para establecer los lmites de los valores que pueden
asignarse a cada variable.
Se establecen las siguientes reglas:
Cada variable debe tener un solo tipo en el bloque donde fue
declarada.
El tipo de cada variable debe ser declarado antes de que la
variable sea utilizada en una instruccin ejecutable.
A cada tipo de dato se le pueden aplicar ciertos operadores
especficos.
Magter. Oscar Adolfo Vallejos
FaCENA - UNNE

Tipos de datos. Clasificacin


Tipos simples. Hasta aqu, hemos considerado los tipos simples
estndar integer, real, boolean, char y byte proporcionados por Turbo
Pascal.
Estos tipos de datos pueden ser utilizados para declarar variables
numricas, de caracteres y/o lgicas. Sin embargo, es posible que
ninguno de ellos satisfaga los requerimientos de un determinado
problema, hacindose necesaria la utilizacin de otros tipos como:
TIPO SUBRANGO:

TIPO ENUMERADOS:

TIPO SUBRANGO:

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

26

Operaciones entre cadenas


Las operaciones bsicas entre cadenas son : asignacin, comparacin y
concatenacin.
Es posible asignar una cadena a otra cadena, incluso aunque sea de longitud
fsica ms pequea en cuyo caso ocurrira un truncamiento de la cadena.

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

Cadenas
TIPO CADENAS (strings) : Turbo Pascal proporciona el tipo string para el procesamiento de
cadenas (secuencias de caracteres ). La definicin de un tipo string debe especificar el
nmero mximo de caracteres que puede contener, esto es, la mxima longitud para las
cadenas de ese tipo. La longitud se especifca por una constante entera en el rango de 1
a 255.

Las variables de cadena se declaran en la


seccin Var o Type.

Una Vez declaradas las variables se pueden realizar


asignaciones u operaciones de lectura/escritura.

El contenido de la cadena se debe encerrar entre


apstrofes.

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

27

Reglas de comparacin de cadenas


Las comparaciones de las cadenas de caracteres se hacen segn el
orden de los caracteres en el cdigo ASCII y con los operadores de
relacin.
'0' < '1' '2' > '1' 'A' < 'B' 'm' > 'l
Las dos cadenas se comparan de izquierda a derecha hasta que se
encuentran dos caracteres diferentes. El orden de las dos cadenas
es el que corresponde al orden de los dos caracteres diferentes. Si
las dos cadenas son iguales pero una de ella es ms corta que la
otra, entonces la ms corta es menor que la ms larga.
Ejemplo :
'Alex' > 'Alas {puesto que 'e' > 'a'}
'ADAN' < 'adan {puesto que 'A' < 'a'}
'Damian' < 'Damiana {'Damian' tiene menos caracteres que
'Damiana'}
Magter. Oscar Adolfo Vallejos
FaCENA - UNNE

Cadenas. concatenacin
Otra operacin bsica es la concatenacin. La concatenacin es un proceso de combinar dos
o ms cadenas en una sola cadena. El signo + se puede usar para concatenar cadenas (
al igual que la funcin concat ), debiendo cuidarse que la longitud del resultado no sea
mayor que 255.
Ejemplos :
'INSTITUTO '+'TECNOLOGICO'='INSTITUTO TECNOLOGICO
'CONTAB'+'.'+'PAS = 'CONTAB.PAS'
Se puede asignar el valor de una expresin de cadena a una variable cadena, por ejemplo :
fecha := 'lunes';
y utilizar la variable fecha en:
frase:='El prximo '+fecha+' inician las clases';
Si la longitud mxima de una cadena es excedida, se pierden los caracteres sobrantes a la
derecha.

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

28

PROCEDIMIENTOS Y FUNCIONES DE CADENA INTERNOS

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

Procedimientos. DELETE

Procedimientos. INSERT

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

29

Procedimientos. STR

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

PROCEDEMINTO VAL

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

30

Funcin Concat, Funcin Copy, Lenght, Pos

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

Arreglos (array)
Un arreglo est formado por un nmero fijo de elementos contguos de un
mismo tipo. Al tipo se le llama tipo base del arreglo.
Los datos individuales se llaman elementos del arreglo.
Para definir un tipo estructurado arreglo, se debe especificar el tipo base y
el nmero de elementos.
Un array se caracterza por:
Almacenar los elementos del array en posiciones de memoria contnua
Tener un nico nombre de variable que representa a todos los
elementos, y stos a su vez se diferencan por un ndice o subndice.
Acceso directo o aleatorio a los elementos individuales del array.
Los arrays se clasifican en :
Unidimensionales (vectores o listas)
Multidimensionales ( tablas o matrices)
Magter. Oscar Adolfo Vallejos
FaCENA - UNNE

31

Arreglos (array)

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

Arrays unidimensionales
Un array de una dimensin (vector o lista) es un tipo de datos estructurado
compuesto de un nmero de elementos finitos, tamao fijo y elementos
homogneos. Supongamos que desea conservar las edades de 10
personas. Para almacenar estas edades se necesita reservar 10 posiciones
de memoria, darle un nombre al array, y a cada persona asignarle su edad
correspondiente.

Nombre del vector edades


Subndice [1],[2],...
Contenido edades[2]= 28
Magter. Oscar Adolfo Vallejos
FaCENA - UNNE

32

Arrays unidimensionales

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

Arrays paralelos
Dos o ms arrays que utilizan el mismo subndice para referirse a trminos
homlogos se llaman arrays paralelos. Basados en el programa anterior se
tienen las edades de 'x' personas, para saber a que persona se refiere
dicha edad se puede usar otro arreglo en forma paralela y asociarle los
nombres de manera simultnea con las edades.

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

33

Arrays bidimensionales (tablas)


Un array bidimensional (tabla o matrz) es un array
con dos ndices, al igual que los vectores que
deben ser ordinales o tipo subrango.

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

34

Arrays multidimensionales
Turbo Pascal no limita el nmero de dimensiones de un array, pero s
que debe estar declarado el tipo de cada subndice.

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

Despus continuamos

Magter. Oscar Adolfo Vallejos


FaCENA - UNNE

35

You might also like