PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje...

35
1 Magter. Oscar Adolfo Vallejos FaCENA - UNNE PASCAL y TURBO PASCAL Programación I Magter. Oscar Adolfo Vallejos FaCENA - UNNE PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH en 1968. Características Excelente herramienta para aprender programación Es un lenguaje de propósito 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 Códigos ejecutables rápidos y eficientes

Transcript of PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje...

Page 1: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

1

Magter. Oscar Adolfo VallejosFaCENA - UNNE

PASCAL y TURBO PASCAL

Programación I

Magter. Oscar Adolfo VallejosFaCENA - UNNE

PASCAL: Es un lenguaje de Alto Nivel y propósitogeneral desarrollado por el prof. suizo Niklaus WIRTHen 1968.

Características

Excelente herramienta para aprender programaciónEs un lenguaje de propósito generalLenguaje procedural (imperativo, orientado a órdenes)Lenguaje estructurado (soporta while, for y repeat. Nonecesita goto)Lenguaje recursivoGran riqueza de tipos de datos predefinidos y definidospor el usuarioCódigos ejecutables rápidos y eficientes

Page 2: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

2

Magter. Oscar Adolfo VallejosFaCENA - UNNE

TURBO PASCAL: Lanzado en 1983 porBORLAND International.

Características adicionales:

Entorno integrado de desarrolloEditor de textoGráficosGestión de archivosCompilación independienteGestión de proyectosEnteros de gran presiciónProgramación orientada a objetosBilioteca de objetos

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Estructura de un Programa PASCAL

Page 3: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

3

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Nota: Las declaracionesde constantes, tipos yvariables también sepueden poner en losprocedimientos y/ofunciones.

Todo objeto referenciadoen un programa debehaber sidopreviamente definido.

Page 4: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

4

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Identificadores

Para poder manipular datos (I-O), necesitamos tener acceso a laslocalidades de memoria donde se encuentran almacenados; esto selogra por medio de los nombres de los datos o IDENTIFICADORES.

Los identificadores también 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 alfabéticos, numéricos y elcarácter de subrayado ( _ ).

2. Deben comenzar con un carácter alfabético o el carácter de subrayado.3. Puede ser de cualquier longitud (sólo los 63 primeros caracteres son

significativos).4. No se hace distinción entre mayúsculas y minúsculas.5. No se permite el uso de los IDENTIFICADORES RESERVADOS en los

nombres de variables, constantes, programas o sub-programas.

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Identificadores

Identificadores válidos• Nombre• Cadena• Edad_Maxima• X_Y_Z• Etiqueta2

Identificadores no válidos• Num&Dias carácter & no válido• X nombre Contiene un blanco• begin es una palabra reservada• eje@s carácter @ no válido

La elección de identificadores permite una mejor lectura y comprensiónde un programa. No es aconsejable utilizar identificadores que nosugieran ningún significado.

Page 5: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

5

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Declaración de etiquetas

Si necesitara utilizar la instrucción Goto, deberá marcarse conuna etiqueta la línea a donde desea enviarse el control deflujo del programa.

La declaración deberá encabezarse con el identificadorreservado: ”Label”, seguido por la lista de etiquetasseparadas por comas y terminada por un punto y coma.

Pascal estándar sólo permite etiquetas formadas por númerosde 1 a 4 dígitos.

Turbo-Pascal permite la utilización de números y/o cualquieridentificador, excepto los identificadores reservados.

Su uso no está recomendado

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Definición de constantes

En la definición de constantes se introducen identificadores quesirven como sinónimos de valores fijos.

El identificador reservado Const debe encabezar lainstrucción, seguido por una lista de asignaciones deconstantes. Cada asignación de constante debe consistir de unidentificador seguido por un signo de igual y un valorconstante, como se muestra a continuación:

Page 6: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

6

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Definición de constantes

Un valor constante puede consistir de un número ( entero o real), o de una constante de caracteres.

La constante de caracteres consiste de una secuencia decaracteres encerrada entre apóstrofes ( ' ), y, en

Turbo-Pascal, también puede formarse concatenándola concaracteres de control ( sin separadores ), por ejemplo :

Las constantes de caracteres pueden estar formadas por un solo carácter decontrol, p.ej. :

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Definición de constantes

Existen dos notaciones para los caracteres de control en TurboPascal, a saber :

1. El símbolo # seguido de un número entero entre 0 y 255representa el carácter al que corresponde dicho valor decimalen el codigo ASCII.

2. El símbolo ^ seguido por una letra, representa elcorrespondiente carácter de control.

Ejemplos :

#12 decimal 12 ( hoja_nueva o alimentación de forma)#$1B valor hexadecimal 1B ( escape ).^G carácter del timbre o campana.^M carácter de retorno de carro.

Page 7: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

7

Magter. Oscar Adolfo VallejosFaCENA - UNNE

CONSTANTES PREDEFINIDAS

Además de las constantes literales para los tipos integer y real conrepresentación decimal y hexadecimal, y las constantes literalespara el conjunto de caracteres ASCII, más los caracteres especiales( no incluidos en el conjunto estándar del ASCII )

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Definición de tipos

El Tipo indica el espacio de memoria en que se almacenarán y que almismo tiempo evita el error de tratar de guardar un dato en un espacioinsuficiente de memoria .

Un tipo de dato en Pascal puede ser cualquiera de los tipos predefinidos (integer, real, byte, boolean, char ), o algún otro definido por elprogramador.

Los tipos definidos por el programador deben basarse en los tiposestándar predefinidos, para lo cual, debe iniciar con el identificadorreservado Type , seguido de una o más asignaciones de tipo separadaspor punto y coma.

Cada asignación de tipo debe consistir de un identificador de tipo, seguidopor un signo de igual y un identificador de tipo previamente definido.

La asignación de tipos a los datos tiene dos objetivos principales: Detectar errores de operaciones en programas. Determinar cómo ejecutar las operaciones.

Page 8: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

8

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Definición de tiposLos tipos definidos por el programador pueden

utilizarse para definir nuevos tipos, por ejemplo :

Tipos Enterospredefinidos

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Definición de tipos

Tipos reales

En el contexto de Pascal, un número real es aquel que estácompuesto de una parte entera y una parte decimal, separadaspor un punto. El rango de estos números está dado entre losvalores 1E-38 y 1E+38 .

Deben tomarse en cuenta las siguientes restricciones para losvalores de tipo real:

1. No pueden utilizarse como subindices en las definiciones del tipoestructurado 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.

Page 9: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

9

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Definición de tipos

Los números reales están siempredisponibles en Turbo Pascal, pero si susistema incluye un coprocesadormatemático, se dispone además de otrostipos de números reales:

• real (real)• single (real corto)• comp (entero ampliado)• double (real de doble precisión)• extended (real ampliado)

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Definición de tipos. RealBOOLEAN : Puede asumir cualquiera de los valores de verdad denotados por los

identificadores true y false, los cuales están definidos de tal manera que false <true . Un valor de tipo boolean ocupa UN OCTETO en la memoria.

CHAR : Es cualquier carácter que se encuentre dentro del conjunto ASCIIampliado, el cual está formado por los 128 caracteres del ASCII más los 128caracteres especiales. Los valores ordinales del código ASCII ampliado seencuentran en el rango de 0 a 255. Dichos valores pueden representarseescribiendo el carácter correspondiente encerrado entre apóstrofes.Ej.: 'A' < 'a'

CADENA (STRING): Es una secuencia de caracteres de cero o más caracterescorrespondientes al código ASCII, escrito en una línea sobre el programa yencerrado entre apóstrofos.Ej.: 'Turbo Pascal','Tecnológico', #13#10

Nota:• Una cadena sin nada entre los apóstrofos se llama cadena nula o cadena vacía.• La longitud de una cadena es el número de carácteres encerrados entre los

apóstrofos.

Page 10: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

10

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Operadores

Los operadores sirven para combinar los términosde las expresiones.

En Pascal, se manejan tres grupos de operadores:

1. ARITMÉTICOS2. RELACIONALES3. LÓGICOS

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Operadores aritméticos

Sirven para operar términos numéricos.a. UNARIOSb. BINARIOS

UNARIOS: trabajan con UN OPERANDO.

Pascal permite el manejo de un operador unario llamado :MENOS UNARIO

Este operador denota la negación del operando, y se representapor medio del signo menos ( - ) colocado antes del operando.Ej: x = 100; -x dará como resultado -100.

BINARIOS: combinan DOS OPERANDOS , dando comoresultado un valor numérico cuyo tipo será igual al mayor delos tipos que tengan los operandos.

Page 11: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

11

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Operadores aritméticos

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 tiporeal.3. Cuando, en la operación div, OPERANDO-1 y OPERANDO-2 tienen el mismo signo, se obtiene unresultado con signo positivo; si los operandos difieren en signo, el resultado es negativo y eltruncamiento tiene lugar hacia el cero.4. La operación MODULO está definida solamente para OPERANDO-2 positivo. El resultado se darácomo el entero no negativo más pequeño que puede ser restado de OPERANDO-1 para obtener unmúltiplo de OPERANDO-2

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Operadores relacionales

Una RELACIÓN consiste de dos operandos separados por un operador relacional.Si la relación es satisfecha, el resultado tendrá un valor booleano true ; si larelación no se satisface, el resultado tendrá un valor false.

Los operadores deben ser del mismo tipo, aunque los valores de tipo real, integer ybyte pueden combinarse como operandos en las relaciones.

Ejemplos

Page 12: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

12

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Operadores lógicos

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Expresiones

Las expresiones son secuencias de constantes y/o variables separadaspor operadores válidos.

Se puede construir una expresión válida por medio de :1. Una sola constante o variable, la cual puede estar precedida por un

signo + ó - .2. Una secuencia de términos (constantes, variables, funciones)

separados por operadores.

Además debe considerarse que:

Toda variable utilizada en una expresión debe tener un valoralmacenado para que la expresión, al ser evaluada, dé como resultadoun valor.

Cualquier constante o variable puede ser reemplazada por una llamadaa una función. Como en las expresiones matemáticas, una expresiónen Pascal se evalúa de acuerdo a la precedencia de operadores. Lasiguiente tabla muestra la precedencia de los operadores en TurboPascal:

Page 13: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

13

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Expresiones

Las reglas de evaluación son:1. Si todos los operadores en una expresión tienen la misma precedencia, la

evaluación de las operaciones se realiza de izquierda a derecha.2. Cuando los operadores sean de diferentes precedencias, se evalúan primero

las operaciones de más alta precedencia (en una base de izquierda a derecha), luego se evalúan las de precedencia siguiente, y así sucesivamente.

3. Las reglas 1) y 2) pueden ser anuladas por la inclusión de paréntesis en unaexpresión.

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Instrucciones

Aunque un programa en Pascal puede contar con una sola instrucción(también llamada enunciado, sentencia o estatuto), normalmenteincluye una cantidad considerable de ellas. Uno de los tipos deinstrucciones más importantes lo forman las instrucciones deasignación; las cuales asignan a una variable (por medio del

símbolo := ) , el resultado de la evaluación de una expresión.

La sintaxis para las instrucciones de asignación es : identificador :=expresión ;

Page 14: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

14

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Bloques de instruccionesEs posible utilizar una instrucción compuesta o bloque de instrucciones, el

cual se forma agrupando varias instrucciones simples por medio de losidentificadores begin y end.

No es necesario escribir el punto y coma antes de end ya que el punto ycoma se usa para separar instrucciones, no para terminarlas. begin yend son delimitadores de bloque.

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Procedimientos de entrada / salida

Las instrucciones de entrada y salida le ayudan al programaa comunicarse con un periférico de la computadora talcomo una terminal, una impresora o un disco.

Las instrucciones de entrada estándar, sirven para leercarácteres desde el teclado.

Las instrucciones de salida estándar despliegan carácteresen la pantalla.

En Pascal todas las operaciones de entrada/salida serealizan ejecutando unidades de programa especialesdenominados procedimientos de entrada/salida queforman parte del compilador y sus nombres sonidentificadores estándar:

Procedimientos de entrada Read ReadLnProcedimientos de salida Write WriteLn

Page 15: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

15

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Procedimientos Read y Readln

Base para las instrucciones de entrada estándar. Proporcionan datos durante la ejecución de un programa. Las instrucciones para llamar a los procedimientos son:

Donde : lista_de_variables : es una lista de identificadores de variablesseparados por comas, los datos que se pueden leer son : enteros,caracteres, o cadenas. No se puede leer un boolean o un elemento de tipoenumerado.

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Procedimientos Read y Readln

Los datos estructurados , arrays, registros o conjuntos, no se pueden leer globalmente y se suelerecurrir a diseñar procedimientos específicos.

La acción de la instrucción es obtener, del teclado, tantos valores de datos como elementos hay enlista_de_variables. Los datos deberán ser compatibles con los tipos de las variables.

Cada valor entero o real en el flujo de entrada puede ser representado como una secuencia decaracteres en alguna de las formas permitidas para tales números, y puede estarinmediatamente precedido por un signo más o un signo menos. Cada valor entero o real puedeser precedido por cualquier cantidad de caracteres blancos o fines de línea, pero no deberáhaber blancos o fines de línea entre el signo y el número.

La diferencia entre las instrucciones Read y ReadLn consiste en que Read permite que la siguienteinstrucción continúe leyendo valores en la misma línea; mientras que, con ReadLn la siguientelectura se hará después de que se haya tecleado el carácter de fin de línea.

Cuando se tienen datos de tipo char en una instrucción Read, los caracteres blancos y los de fin delínea son considerados en el conteo de los elementos de las cadenas de caracteres mientrasno se complete el total especificado para cada una de ellas. Cada fin de línea es tratado comoun carácter, pero el valor asignado a la variable será un carácter blanco.

Es aconsejable que cada cadena de caracteres se lea en una instrucción Read o ReadLn porseparado, para evitar el tener que ir contando hasta completar la cantidad exacta de caracteresque forman la cadena ( o de lo contrario se tendrán resultados sorpresivos y frustrantes alverificar los datos leídos ).

Page 16: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

16

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Procedimientos Read y Readln

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Procedimientos Write Y Writeln

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

Donde: lista_de_salida es una lista devariables, expresiones y/o constantes,cuyos valores van a ser desplegadosen la pantalla.

El procedimiento Write permite que lasiguiente instrucción se realice en lamisma línea , mientras que WriteLnalimenta una nueva línea, antes definalizar. Ej::

Page 17: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

17

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Patrones Lógicos

• Secuencia• Selección• Iteración

– Hacer Mientras– Hacer Hasta

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Secuencia

En este caso, las instrucciones se ejecutan unadespués de la otra sin omitir ninguna de ellas.

Begin

N := 0;

Write (“Nombrey Apellido”, NYA);

N := N + 1

End.

Page 18: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

18

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Selección

La selección de alternativas en Pascal serealiza con alguna de las dos siguientesformas :

1.La sentencia if2.La sentencia case

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Selección. Sentencia “IF – THEN - ELSE”

Se evalúa condición y si el resultado arroja un valor verdadero, seejecuta instrucción_1 ; en caso contrario se ejecuta instrucción_2..

Page 19: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

19

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Selección. Sentencia “IF – THEN - ELSE”

Omitiendo el “ELSE” Usando el “ELSE”

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Selección. Sentencia “IF – THEN - ELSE”

Nota: Antes de la cláusula else no se antepone un punto y coma, si lohubiese el compilador producirá un mensaje de error, puesto que noexiste ninguna sentencia en Pascal que comience con else. La parteelse es opcional, pero la ejecución siempre continuará en otrainstrucción.

En lugar de utilizar instrucciones simples, se pueden usar bloques deinstrucciones:

Page 20: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

20

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Selección. Sentencia “IF – THEN - ELSE”

Sentencia IF anidadas

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Selección. Sentencia CASE-OF-ELSE

Page 21: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

21

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Selección. Sentencia CASE-OF-ELSE

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Iteración

Las formas de iteración sirven para ejecutar ciclosrepetidamente, dependiendo de que se cumplan ciertascondiciones. Una estructura de control que permite larepetición de una serie determinada de sentencias sedenomina bucle1 (lazo o ciclo).

El cuerpo del bucle contiene las sentencias que se repiten.Pascal proporciona tres estructuras o sentencias de controlpara especificar la repetición:

1. While2. Repeat3. For

Page 22: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

22

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Iteración. WHILE-DO

La estructura repetitiva while(mientras) es aquella enla que el número de iteraciones no se conoce poranticipado y el cuerpo del bucle se ejecutarepetidamente mientras que una condición seaverdadera

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Selección. Sentencia CASE-OF-ELSEDependiendo del valor que tenga la expresión selector, se ejecutarán las

instrucciones etiquetadas por constante.Aquí también 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 expresión <selector> se evalúa y se compara con las constantes; las

constantes son listas de uno o más posibles valores de <selector> separadospor comas. Ejecutadas la(s) <instrucciones>, el control se pasa a la primerainstrucción a continuación de end (fin de case).

2. La cláusula else es opcional.3. Si el valor de <selector> no está comprendido en ninguna lista de constantes y

no existe la cláusula else, no sucede nada y sigue el flujo del programa; siexiste la cláusula else se ejecutan la(s) <instrucciones> a continuación de lacláusula else.

4. El selector debe ser un tipo ordinal ( integer, char, boolean o enumerado). Lostipos string, longint y word no son válidos.

5. Todas las constantes case deben ser únicas y de un tipo ordinal compatible conel tipo del selector.

6. Cada sentencia, excepto la última, deben ir seguidas del punto y coma.

Page 23: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

23

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Iteración. WHILE-DO

Reglas de funcionamiento:

La condición se evalúa antes y después de cada ejecución delbucle. Si la condición es verdadera, se ejecuta el bucle, y si esfalsa, el control pasa a la sentencia siguiente al bucle.

Si la condición se evalúa a falso cuando se ejecuta el bucle porprimera vez, el cuerpo del bucle no se ejecutará nunca.

Mientras la condición sea verdadera el bucle se ejecutará. Estosignifica que el bucle se ejecutará indefinidamente a menos que"algo" en el interior del bucle modifique la condición haciendoque su valor pase a falso. Si la expresión nunca cambia de valor,entonces el bucle no termina nunca y se denomina bucle infinitolo cual no es deseable.

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Iteración. WHILE-DO

Page 24: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

24

Magter. Oscar Adolfo VallejosFaCENA - UNNE

REPEAT-UNTIL

La acción de repeat-until es repetir una serie de instruccioneshasta que se cumpla una determinada condición .

Reglas de funcionamiento:1. La condición se evalúa al final del bucle, después de ejecutarse todas las sentencias.2. Si la condición es falsa, se vuelve a repetir el bucle y se ejecutan todas sus

instrucciones.3. Si la condición es falsa, se sale del bucle y se ejecuta la siguiente instrucción a until.4. La sintaxis no requiere begin y end.

Magter. Oscar Adolfo VallejosFaCENA - UNNE

REPEAT-UNTIL

Page 25: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

25

Magter. Oscar Adolfo VallejosFaCENA - UNNE

FOR-TO-DO

Al ejecutarse la sentencia for la primera vez, a contador se le asigna un valor inicial(expresion.1), y a continuación se ejecutan las intrucciones del interior del bucle,enseguida se verifica si el valor final (expresión.2) es mayor que el valor inicial(expresión.1); en caso de no ser así se incrementa contador en uno y se vuelven aejecutar las instrucciones, hasta que el contador sea mayor que el valor final, en cuyomomento 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.

Cuando se sabe de antemano el número de veces que deberáejecutarse un ciclo determinado, ésta es la forma más conveniente.

Magter. Oscar Adolfo VallejosFaCENA - UNNE

FOR-TO-DO

Page 26: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

26

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Tipos de datos

Pascal requiere que todos los tipos de datos sean formalmentedefinidos antes de ser utilizados, ya que tal definición seráusada por el compilador para determinar cuanto espacio dememoria se reservará para las variables de cada tipo, asícomo para establecer los límites de los valores que puedenasignarse a cada variable.

Se establecen las siguientes reglas:

Cada variable debe tener un solo tipo en el bloque donde fuedeclarada.

El tipo de cada variable debe ser declarado antes de que lavariable sea utilizada en una instrucción ejecutable.

A cada tipo de dato se le pueden aplicar ciertos operadoresespecíficos.

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Tipos de datos. Clasificación

Tipos simples. Hasta aquí, hemos considerado los tipos simplesestándar integer, real, boolean, char y byte proporcionados por TurboPascal.

Estos tipos de datos pueden ser utilizados para declarar variablesnuméricas, de caracteres y/o lógicas. Sin embargo, es posible queninguno de ellos satisfaga los requerimientos de un determinadoproblema, haciéndose necesaria la utilización de otros tipos como:

TIPO SUBRANGO: TIPO ENUMERADOS:

TIPO SUBRANGO:

Page 27: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

27

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Operaciones entre cadenas

Las operaciones básicas entre cadenas son : asignación, comparación yconcatenación.

Es posible asignar una cadena a otra cadena, incluso aunque sea de longitudfísica más pequeña en cuyo caso ocurriría un truncamiento de la cadena.

Magter. Oscar Adolfo VallejosFaCENA - UNNE

CadenasTIPO CADENAS (strings) : Turbo Pascal proporciona el tipo string para el procesamiento de

cadenas (secuencias de caracteres ). La definición de un tipo string debe especificar elnúmero máximo de caracteres que puede contener, esto es, la máxima longitud para lascadenas de ese tipo. La longitud se especifíca por una constante entera en el rango de 1a 255.

Las variables de cadena se declaran en lasección Var o Type.

Una Vez declaradas las variables se pueden realizarasignaciones u operaciones de lectura/escritura.

El contenido de la cadena se debe encerrar entreapóstrofes.

Page 28: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

28

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Reglas de comparación de cadenas

Las comparaciones de las cadenas de caracteres se hacen según elorden de los caracteres en el código ASCII y con los operadores derelación.

'0' < '1' '2' > '1' 'A' < 'B' 'm' > 'l

Las dos cadenas se comparan de izquierda a derecha hasta que seencuentran dos caracteres diferentes. El orden de las dos cadenases el que corresponde al orden de los dos caracteres diferentes. Silas dos cadenas son iguales pero una de ella es más corta que laotra, entonces la más corta es menor que la más 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 VallejosFaCENA - UNNE

Cadenas. concatenación

Otra operación básica es la concatenación. La concatenación es un proceso de combinar doso más cadenas en una sola cadena. El signo + se puede usar para concatenar cadenas (al igual que la función concat ), debiendo cuidarse que la longitud del resultado no seamayor que 255.

Ejemplos :

'INSTITUTO '+'TECNOLOGICO'='INSTITUTO TECNOLOGICO‘'CONTAB'+'.'+'PAS‘ = 'CONTAB.PAS'

Se puede asignar el valor de una expresión de cadena a una variable cadena, por ejemplo :

fecha := 'lunes';

y utilizar la variable fecha en:

frase:='El próximo '+fecha+' inician las clases';

Si la longitud máxima de una cadena es excedida, se pierden los caracteres sobrantes a laderecha.

Page 29: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

29

Magter. Oscar Adolfo VallejosFaCENA - UNNE

PROCEDIMIENTOS Y FUNCIONES DE CADENA INTERNOS

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Procedimientos. DELETE

Procedimientos. INSERT

Page 30: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

30

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Procedimientos. STR

Magter. Oscar Adolfo VallejosFaCENA - UNNE

PROCEDEMINTO VAL

Page 31: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

31

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Función Concat, Función Copy, Lenght, Pos

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Arreglos (array)

Un arreglo está formado por un número fijo de elementos contíguos de unmismo 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 número de elementos.

Un array se caracteríza por:

Almacenar los elementos del array en posiciones de memoria contínua Tener un único nombre de variable que representa a todos los

elementos, y éstos a su vez se diferencían por un índice o subíndice. Acceso directo o aleatorio a los elementos individuales del array.

Los arrays se clasifican en :

Unidimensionales (vectores o listas) Multidimensionales ( tablas o matrices)

Page 32: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

32

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Arreglos (array)

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Arrays unidimensionales

Un array de una dimensión (vector o lista) es un tipo de datos estructuradocompuesto de un número de elementos finitos, tamaño fijo y elementoshomogéneos. Supongamos que desea conservar las edades de 10personas. Para almacenar estas edades se necesita reservar 10 posicionesde memoria, darle un nombre al array, y a cada persona asignarle su edadcorrespondiente.

Nombre del vector edadesSubíndice [1],[2],...Contenido edades[2]= 28

Page 33: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

33

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Arrays unidimensionales

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Arrays paralelos

Dos o más arrays que utilizan el mismo subíndice para referirse a términoshomólogos se llaman arrays paralelos. Basados en el programa anterior setienen las edades de 'x' personas, para saber a que persona se refieredicha edad se puede usar otro arreglo en forma paralela y asociarle losnombres de manera simultánea con las edades.

Page 34: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

34

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Arrays bidimensionales (tablas)

Un array bidimensional (tabla o matríz) es un arraycon dos índices, al igual que los vectores quedeben ser ordinales o tipo subrango.

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Page 35: PASCAL y TURBO PASCALexa.unne.edu.ar/informatica/programacion1/public... · PASCAL: Es un lenguaje de Alto Nivel y propósito general desarrollado por el prof. suizo Niklaus WIRTH

35

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Arrays multidimensionales

Turbo Pascal no limita el número de dimensiones de un array, pero síque debe estar declarado el tipo de cada subíndice.

Magter. Oscar Adolfo VallejosFaCENA - UNNE

Después continuamos …