Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano -...

56
Lenguaje Pascal: Ana Laur Lenguaje Pascal: Ana Laur eano_UAM-A eano_UAM-A Lenguajes de Lenguajes de Programación Programación Pascal Pascal Profesora Ana Lilia Laureano - Cruces Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Universidad Autónoma Metropolitana - Azcpotzalco Azcpotzalco

Transcript of Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano -...

Page 1: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

Lenguajes de ProgramaciónLenguajes de Programación

PascalPascalProfesora Ana Lilia Laureano - CrucesProfesora Ana Lilia Laureano - Cruces

Universidad Autónoma Metropolitana - AzcpotzalcoUniversidad Autónoma Metropolitana - Azcpotzalco

Page 2: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

PascalPascal Pascal es un lenguaje de programación Pascal es un lenguaje de programación

desarrollado por Niklaus Wirth a principios de desarrollado por Niklaus Wirth a principios de los 80s. los 80s.

Fue desarrollado con fines didácticos, pero Fue desarrollado con fines didácticos, pero debido a su claridad y capacidad pronto se debido a su claridad y capacidad pronto se convirtió en un lenguaje de desarrollo. convirtió en un lenguaje de desarrollo.

Es un lenguaje multi-paradigma: su estructura Es un lenguaje multi-paradigma: su estructura esta basada en programación estructurada y las esta basada en programación estructurada y las últimas versiones aceptan programación últimas versiones aceptan programación orientada a objetos.orientada a objetos.

Herederos de esta claridad y capacidad son los Herederos de esta claridad y capacidad son los lengujaes Modula Eiffel y Delphi.lengujaes Modula Eiffel y Delphi.

Page 3: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

PascalPascal La estructura de un programa en Pascal La estructura de un programa en Pascal

es de la siguiente forma:es de la siguiente forma:PROGRAMPROGRAM nombre del programanombre del programa

expresionesexpresiones declarativasdeclarativassubprogramas internossubprogramas internos

BEGINexpresiones expresiones de de ejecuciónejecución

ENDEND..

Los enunciados son la base del programa y Los enunciados son la base del programa y a excepción del enunciado de asignación, a excepción del enunciado de asignación, todos empiezan con una palabra clave.todos empiezan con una palabra clave.

Page 4: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

PascalPascal Los comentarios se escriben encerrando Los comentarios se escriben encerrando

el texto entreel texto entre (* (* Comentario Comentario *)*)

{ { ComentarioComentario }}

Tipos de Datos: Se dividen en 2 clases, Tipos de Datos: Se dividen en 2 clases, los numéricos (los numéricos (integerinteger y y realreal) y los no ) y los no numéricos (numéricos (character, stringcharacter, string y y logicallogical). ).

Page 5: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

PascalPascal Asociado al tipo existen varias clases de ellos, de acuerdo Asociado al tipo existen varias clases de ellos, de acuerdo

al número de bits disponible para su almacenamiento, por al número de bits disponible para su almacenamiento, por lo que puede haber 2 clases de enteros: lo que puede haber 2 clases de enteros: shortintshortint y y longintlongint..

Variables:Variables: son aquellos valores que toman diferentes son aquellos valores que toman diferentes valores durante la ejecución del programa.valores durante la ejecución del programa.

Constantes:Constantes: usadas para denominar los valores de un tipo usadas para denominar los valores de un tipo en particular y cuyo valor no cambia a lo largo de la en particular y cuyo valor no cambia a lo largo de la ejecución del progrma.ejecución del progrma.

Identificadores:Identificadores: utilizados para los nombres de las utilizados para los nombres de las variables y constantes. Consiste entre 1 y 63 caracteres variables y constantes. Consiste entre 1 y 63 caracteres alfanuméricos y deben empezar con una letra, no es alfanuméricos y deben empezar con una letra, no es sensible a mayúsculas o minúsculas, esto es, sensible a mayúsculas o minúsculas, esto es, MINOMBRE significa lo mismo que MiNombre.MINOMBRE significa lo mismo que MiNombre.

Page 6: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

Una regla de oroUna regla de oro

En Pascal no se puede utilizar En Pascal no se puede utilizar nadanada que que no haya sido previamente declarado.no haya sido previamente declarado.

NadaNada equivale a: 1) constantes, 2) equivale a: 1) constantes, 2) variables, 3) tipos derivados y definidos variables, 3) tipos derivados y definidos por el usuario y 4) abstracciones por el usuario y 4) abstracciones procedurales y funcionales.procedurales y funcionales.

Page 7: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

Programa alumno (mòdulo 100)

Const

Type

Var x,y,z,a,b,c,d : real;

Procedure nom1 (Var x,y,z: integer, d:real);ConstTypeVar Procedure (argumentos) Function (argumentos)Begin

End:

Function nom2 (x,y,z: real): Real;ConstTypeVar Procedure (argumentos) Function (argumentos)Begin

End;

Begin (* programa principal*) Procedure nom1 (x,y,z,d); C:= nom2 (a,b,c); End. (* alumno*)

Page 8: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

PascalPascal Asignación numérica:Asignación numérica: El propósito es calcular el El propósito es calcular el

valor de una expresión numérica y asignarla a valor de una expresión numérica y asignarla a una variable. Su forma general es:una variable. Su forma general es:

variablevariable = = exprexpr x x :=:= a + b a + b Entradas y salidas de datos:Entradas y salidas de datos:

Cuenta con formato libre, en ambos casos:Cuenta con formato libre, en ambos casos:Read o ReadLnRead o ReadLn y tiene la forma: y tiene la forma:

ReadRead (list); (list);ReadlnReadln (list); (list);

donde donde listlist es una lista de variables separadas es una lista de variables separadas por comas:por comas: Read Read (A, B, C); (A, B, C);

Page 9: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

PascalPascalLa declaración La declaración Write/WriteLnWrite/WriteLn, se utiliza para la salida de datos. Su , se utiliza para la salida de datos. Su

forma general es: forma general es:

Write Write ((list)list)

WriteLn WriteLn ((list)list)

Donde Donde listlist puede ser una lista de constantes, variables, expresiones y puede ser una lista de constantes, variables, expresiones y cadenas de caracteres separadas por comas:cadenas de caracteres separadas por comas:

WriteWrite (‘la raiz cuadrada de’, 2, ‘es’, sqrt(2.0)) (‘la raiz cuadrada de’, 2, ‘es’, sqrt(2.0))

También podemos usar la declaración También podemos usar la declaración mascaras para los reales mascaras para los reales WriteLn WriteLn (ExpresionReal:AnchoTotal:Decimales);(ExpresionReal:AnchoTotal:Decimales);

X := 78.291X := 78.291

WriteLn (x:0:1);WriteLn (x:0:1); 78.378.3 {con cero aseguro que no hay blancos}{con cero aseguro que no hay blancos}

WriteLn (x:0:2);WriteLn (x:0:2); 78.2978.29 {que preceden al numero}{que preceden al numero}

WriteLn (x:0:0);WriteLn (x:0:0); 7878

WriteLn (‘x= ‘,x:0:3);WriteLn (‘x= ‘,x:0:3); x= 78.291x= 78.291

WriteLn (x:0:4);WriteLn (x:0:4); 78.291078.2910

Page 10: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

Tipos de variablesTipos de variables

VarVar a: integer;a: integer; b: real;b: real; opcion: char;opcion: char; apellido: stringapellido: string Encontre: booleanEncontre: boolean

El tipo string puede almacenar hasta 255 El tipo string puede almacenar hasta 255 caracterescaracteres

Page 11: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

Tipos derivadasTipos derivadas

Un tipo de variable derivada es aquel que Un tipo de variable derivada es aquel que se basa en los tipos básicos.se basa en los tipos básicos.

Arreglos Arreglos RegistroRegistro ConjuntoConjunto Definidos por el usuarioDefinidos por el usuario

Page 12: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

ArreglosArreglos

En Pascal el tipo En Pascal el tipo ARRAYARRAY sirve para sirve para almacenar elementos del almacenar elementos del mismo tipomismo tipo de de forma secuencial. Los datos tipo ARRAY forma secuencial. Los datos tipo ARRAY pueden ser: pueden ser: uniunidimensionales, dimensionales, bibidimensionales,dimensionales, tri tridimensionales dimensionales nn--dimensionales.dimensionales.

Page 13: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

ArreglosArreglos

VarVar X : array [1..5] of integer;X : array [1..5] of integer; X : array [1..5] of real;X : array [1..5] of real; X : array [1..5] of boolean;X : array [1..5] of boolean; X : array [1..5] of char;X : array [1..5] of char; X : array [1..5] of string;X : array [1..5] of string;

Page 14: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

Array n-dimensionalArray n-dimensional

Const Const TamMax = 30;TamMax = 30;

TypeType (*(* Tipos definidos por el usuario*)Tipos definidos por el usuario*) Ventas : array [1..TamMax, 1..5] of integer;Ventas : array [1..TamMax, 1..5] of integer;

VarVar Ventas : tipoventas;Ventas : tipoventas;

Page 15: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

El Tipo RegistroEl Tipo Registro Este tipo de datos permite agrupar datos de diferente Este tipo de datos permite agrupar datos de diferente

tipo. En Pascal se designan como RECORD.tipo. En Pascal se designan como RECORD. Type Type (* Tipos definidos por el usuario*)(* Tipos definidos por el usuario*)

Record Record RegPersRegPers = = RecordRecord Nombre: string Nombre: string [20];[20]; NumTel: string [9];NumTel: string [9];

Sexo : char;Sexo : char; EndEnd; (RegPers); (RegPers)VarVar personapersona : : RegPersRegPers;; MuchasPerMuchasPer: array [1..TamMax] of : array [1..TamMax] of RegPersRegPers;;

Page 16: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

Cómo accesar los campos de un Cómo accesar los campos de un registroregistro

Laura 5761-2779 f

nombre numtel sexo

Emiliano 5561-8779 m

Javier 7561-5779 m

Laura 4561-2759 f

Pedro 3461-2379 m

Ana 3061-2279 f

Mauricio 9161-2979 m

1

n

.

.

.

Persona

MuchasPer

Page 17: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

PersonaPersona..Nombre := ‘Laura’;Nombre := ‘Laura’; PersonaPersona..NumTel := ‘5761-2779’;NumTel := ‘5761-2779’; PersonaPersona..Sexo := ‘f’;Sexo := ‘f’;

WithWith Persona Persona DODO BeginBegin

Nombre := ‘Laura’;Nombre := ‘Laura’; NumTel := ‘5761-2779’;NumTel := ‘5761-2779’; Sexo := ‘f’;Sexo := ‘f’;

EndEnd; (*with*); (*with*)

Page 18: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

El tipo ConjuntoEl tipo Conjunto

Este tipo permite agrupar un conjunto de valores Este tipo permite agrupar un conjunto de valores que se conocen como que se conocen como tipo basetipo base..

TypeType identificadorTipo = identificadorTipo = SetSet Of TipoBase; Of TipoBase;

TypeType Monedas = (penny, nickel, dime, quarter);Monedas = (penny, nickel, dime, quarter); TipoConjMon = TipoConjMon = set ofset of monedas; monedas;

VarVar ConjMoneda : TipoConjMon;ConjMoneda : TipoConjMon; Vocales, mayusculas : Vocales, mayusculas : set ofset of char; char;

Page 19: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

Inicialización de las variables tipo Inicialización de las variables tipo conjuntoconjunto

Una vez que se ha declarado una Una vez que se ha declarado una variable tipo conjunto es necesario variable tipo conjunto es necesario inicializarla.inicializarla.

ConjMoneda := [ nickel, dime];ConjMoneda := [ nickel, dime]; Vocales := [‘a’, ‘e’, ‘i’, ‘o’, ‘u’];Vocales := [‘a’, ‘e’, ‘i’, ‘o’, ‘u’]; mayuscuas := [‘A’..’Z’];mayuscuas := [‘A’..’Z’];

Page 20: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

Pertenencia a un ConjuntoPertenencia a un Conjunto

Se usa la palabra reservada Se usa la palabra reservada in in para para probar si un valor particular es miembro probar si un valor particular es miembro de un conjunto.de un conjunto.

EjemplosEjemplos If If charchar in in vocales vocales thenthen …; …; IfIf quartes quartes inin ConjMon ConjMon thenthen …; …; If If g g inin [‘a’,’b’,’c’,’d’] [‘a’,’b’,’c’,’d’] thenthen …; …;

Page 21: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

Operaciones con conjuntosOperaciones con conjuntos

La uniónLa unión X X + + YY [1,2,5,6] [1,2,5,6] ++ [1,2,4,7] = [1,2,4,5,6,7] [1,2,4,7] = [1,2,4,5,6,7]

La intersecciónLa intersección X X ** Y Y [1,2,5,6] [1,2,5,6] ** [1,2,4,7] = [1,2] [1,2,4,7] = [1,2]

La diferenciaLa diferencia X X – – Y: todos los elementos de X que no están en YY: todos los elementos de X que no están en Y [1,2,5,6] [1,2,5,6] - - [1,2,4,7] = [5,6][1,2,4,7] = [5,6]

Page 22: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

Conjunto vacíoConjunto vacío

El conjunto vacío representado por El conjunto vacío representado por [ ],[ ], es es un conjunto sin elementos.un conjunto sin elementos. [‘a’..’z’] * [‘A’.. ‘Z’] = [‘a’..’z’] * [‘A’.. ‘Z’] = [ ][ ] También sirve para inicializar una variable, También sirve para inicializar una variable,

antes de iniciar un ciclo al cual se le agregan antes de iniciar un ciclo al cual se le agregan elementos de un conjunto.elementos de un conjunto.

Los Los operadores relacionalesoperadores relacionales se pueden se pueden aplicar a los conjuntos.aplicar a los conjuntos.

Page 23: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

Conjuntos y Operadores Conjuntos y Operadores relacionalesrelacionales

X X == Y es Y es truetrue cuando los conjuntos son cuando los conjuntos son iguales.iguales.

X X <><> Y es Y es truetrue cuando los conjuntos no cuando los conjuntos no son iguales.son iguales.

XX<=<=Y es Y es truetrue cuando X es un subconjunto cuando X es un subconjunto de Y.de Y.

X X >=>=Y es Y es truetrue cuando Y es un cuando Y es un subconjunto de X.subconjunto de X.

Page 24: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

Pascal: ciclo de progresión Pascal: ciclo de progresión aritméticaaritmética

For For i i ::== jj toto k k dodo[Begin][Begin]

block;block;[End][End]

donde i es una variable de tipo enumerado, j y k son donde i es una variable de tipo enumerado, j y k son expresiones discretasexpresiones discretas, y block es cualquier número de , y block es cualquier número de declaraciones, las cuales se ejecutan repetidamente declaraciones, las cuales se ejecutan repetidamente dependiendo del valor de j y k.dependiendo del valor de j y k.

For For i i :=:= 1 1 toto 10 10 dodo WriteWrite (i); (i);

Page 25: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

Pascal: condición sencillaPascal: condición sencilla Decisiones: Declaración Decisiones: Declaración IF-THEN-ELSEIF-THEN-ELSE

IF IF (expresión-lógica)(expresión-lógica) THENTHEN

[Begin][Begin]

block 1;block 1;

[End][End]

[[ELSEELSE

[Begin][Begin]

block E; block E; ]]

[End][End] La expresión La expresión ConstConst::

se utiliza como expresión de inicialización de constantesse utiliza como expresión de inicialización de constantes

ConstConst

pi = 3.141593;pi = 3.141593;

dos = 2;dos = 2;

Page 26: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

Pascal: operadores relacionalesPascal: operadores relacionales

Operadores relacionales:Operadores relacionales:

<< menor quemenor que a a << 5 5

< =< = menor o igual quemenor o igual que b b < =< = 4 4

== igualigual b b == 3 3

< >< > diferentediferente a a < >< > 0 0

>> mayor quemayor que b b >> 4 4

> => = mayor o igual quemayor o igual que x x > => = 0 0 Operadores lógicos:Operadores lógicos:

notnot Negación lógicaNegación lógica

andand Intersección lógicaIntersección lógica

oror Unión lógicaUnión lógica

xorxor OrOr ExcluyenteExcluyente

Page 27: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

Operadores Booleanos: andOperadores Booleanos: and

pp qq p and qp and q

VV VV VV

VV FF FF

FF VV FF

FF FF FF

Page 28: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

Operadores Booleanos: orOperadores Booleanos: or

pp qq p or qp or q

VV VV VV

VV FF VV

FF VV VV

FF FF FF

Page 29: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

Operadores Booleanos xor: Operadores Booleanos xor: ssi p o q es verdaderassi p o q es verdaderapp qq p xor qp xor q

VV VV FF

VV FF VV

FF VV VV

FF FF FF

Page 30: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

EjemplosEjemplos

65 <= estatura <= 7565 <= estatura <= 75 if (estatura >= 65) and (estatura <= 75) if (estatura >= 65) and (estatura <= 75)

then …then …

if (calif > 65) and (calif2 > 65) thenif (calif > 65) and (calif2 > 65) then write (‘contratado’)write (‘contratado’)

elseelse write (‘rechazado’)write (‘rechazado’)

Page 31: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

Precedencia de operadoresPrecedencia de operadores

PrecedenciaPrecedencia Operadores Operadores numèricosnumèricos

Operadores Operadores lógicos y lógicos y

relacionalesrelacionales

MáximaMáxima Menos unuarioMenos unuario NotNot

SegundaSegunda *,/, div, mod*,/, div, mod AndAnd

TerceraTercera +, -+, - Or, xorOr, xor

MínimaMínima <,>,>=,<=,<>,=<,>,>=,<=,<>,=

Page 32: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

Precedencia de operadoresPrecedencia de operadores

Cuando se encuentran dos operadores Cuando se encuentran dos operadores con la con la misma precedenciamisma precedencia, la evaluación , la evaluación se lleva a cabo de izq a der.se lleva a cabo de izq a der.

Para Para alterar la precedenciaalterar la precedencia es necesario es necesario el uso de paréntesis.el uso de paréntesis.

Page 33: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

Estructuras de SelecciónEstructuras de Selección Construcción Construcción CASECASE::

Similar a Similar a IF-THEN-ELSEIF-THEN-ELSE, permite seleccionar entre un , permite seleccionar entre un número de situaciones o casos basados en un número de situaciones o casos basados en un SELECTORSELECTOR, este debe ser de tipo ordinal. La , este debe ser de tipo ordinal. La (expr)(expr) debe dar como resultado un tipo ordinal.debe dar como resultado un tipo ordinal.

CASECASE ( (exprexpr))

SELECTOR1SELECTOR1:: ((BEGINBEGIN))

block 1;block 1; ((ENDEND););SELECTOR2SELECTOR2: :

block 2block 2[[ELSEELSE] ]

block dblock dENDEND; ;

Page 34: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

PascalPascal Ejemplo:Ejemplo:

ReadLn (ch);ReadLn (ch);

CASE (ch)CASE (ch)

‘‘a’, ‘e’, ‘i’, ‘o’, ‘u’:a’, ‘e’, ‘i’, ‘o’, ‘u’:

WriteLn (‘vocal’)WriteLn (‘vocal’)

ElseElse

WriteLn (‘consonante u otro WriteLn (‘consonante u otro caracter’)caracter’)

END;END;

Page 35: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

Pascal: ciclos condiconalesPascal: ciclos condiconales Repite:Repite:

RepeatRepeatblockblock

Until Until (expr-lógica(expr-lógica = verdadera)= verdadera)

Mientras:Mientras: WhileWhile (expr-lógica(expr-lógica = verdadera)= verdadera)[begin][begin]

blockblock[end][end]

Page 36: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

PascalPascalinvitado := 0;invitado := 0;

REPEATREPEAT

invitado := invitado + 1;invitado := invitado + 1;

WriteLnWriteLn (‘tu invitado: ’); (‘tu invitado: ’);

ReadLn ReadLn (nombre);(nombre);

UNTIL UNTIL (invitado == 10)(invitado == 10)

WHILEWHILE (invitado < 10)(invitado < 10) DODO

beginbegin

invitado := invitado + 1;invitado := invitado + 1;

WriteLnWriteLn (‘tu invitado: ’); (‘tu invitado: ’);

ReadLn ReadLn (nombre);(nombre);

endend

END DO;END DO;

Page 37: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

Comparación entre los ciclos Comparación entre los ciclos condicionales: condicionales: repeat y whilerepeat y while

El cuerpo de acciones del El cuerpo de acciones del repeatrepeat siempre siempre se ejecuta al menos una vez.se ejecuta al menos una vez.

Lo anterior implica que la expresión lógica Lo anterior implica que la expresión lógica que controla el que controla el repeat repeat se encuentra al se encuentra al final.final.

Y que las variables involucradas en la Y que las variables involucradas en la expresión lógica que controla el expresión lógica que controla el whilewhile deben haber sido inicializadas antes de deben haber sido inicializadas antes de que sean instanciadas.que sean instanciadas.

Page 38: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

Tanto el Tanto el repeat repeat como el como el whilewhile sirven para sirven para modelar una tarea iterativa controlada por una modelar una tarea iterativa controlada por una condición.condición.

La diferencia entre las expresiones lógicas que La diferencia entre las expresiones lógicas que controlan a la condición, es que una es la controlan a la condición, es que una es la negaciónnegación de la otra. de la otra.

En el caso de los ciclos En el caso de los ciclos NO_CondicionalesNO_Condicionales, es , es claro que se utilizan cuando se conoce el claro que se utilizan cuando se conoce el número de veces que se desea se repita el número de veces que se desea se repita el conjunto de instrucciones que se encuentran conjunto de instrucciones que se encuentran anidadas.anidadas.

Page 39: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

PascalPascal Los Programas diseñados con los principios de Los Programas diseñados con los principios de

programación estructurada y un diseño modular programación estructurada y un diseño modular descendente son estructurados por medio de descendente son estructurados por medio de abstracciones abstracciones procedurales y funcionalesprocedurales y funcionales. Estos . Estos procedimientos se comunican con el programa principal procedimientos se comunican con el programa principal de manera específica, de manera específica, a través del paso de datosa través del paso de datos y son y son invocados o llamados desde éste.invocados o llamados desde éste.

Existen dos formas de estructurar el programa a través Existen dos formas de estructurar el programa a través de : de : funcionesfunciones (abstracciones-funcionales) y (abstracciones-funcionales) y procedimientosprocedimientos (abstracciones-procedurales). (abstracciones-procedurales).

El paso de datos se conoce como paso de parámetros, El paso de datos se conoce como paso de parámetros, estos pueden ser pasados por estos pueden ser pasados por referenciareferencia o por o por valorvalor. .

Page 40: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

PascalPascal

Paso de parámetros Paso de parámetros por referencia:por referencia: Es un mecanismo que permite el paso de un Es un mecanismo que permite el paso de un

parámetro utilizando parámetro utilizando una dirección de una dirección de memoriamemoria con el fin de facilitar ya sea el con el fin de facilitar ya sea el retorno al programa principal de un valor retorno al programa principal de un valor producidoproducido por un subprograma o el retorno al por un subprograma o el retorno al programa principal de un valor programa principal de un valor modificadomodificado por por el subprograma.el subprograma.

Ejemplo:Ejemplo: Var a,b: integer; ! Var a,b: integer; ! Producido o Producido o ! ! modificadomodificado

Page 41: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

PascalPascal

Parámetros Parámetros por valor:por valor: Es un mecanismo que permite el paso de un Es un mecanismo que permite el paso de un

parámetro utilizando parámetro utilizando su valorsu valor con el fin de evitar su con el fin de evitar su modificación, de esta forma al terminar de ejecutarse modificación, de esta forma al terminar de ejecutarse el subprograma y retornar el control al programa el subprograma y retornar el control al programa principal el valor de ese parámetro continúa siendo el principal el valor de ese parámetro continúa siendo el mismo. En otras palabras mismo. En otras palabras el valorel valor de este parámetro de este parámetro sólo puede ser utilizado.sólo puede ser utilizado.

a, b: integer; a, b: integer; ! Sólo puede ser utilizado! Sólo puede ser utilizado

Page 42: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

Diseño Modular Descendente

Abstracci—n Procedural 1 Abstracci—n Procedural 2 Abstracci—n Funcional 1

Programa Principal

Page 43: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

PascalPascal Ejemplo de abstracción funcional (Ejemplo de abstracción funcional (functionfunction):):

PROGRAMPROGRAM cubo cubo{ se usa una función definida por el programador para elevar al cubo}{ se usa una función definida por el programador para elevar al cubo}

varvar

num, cubo : longint;num, cubo : longint; FunctionFunction encubo (n:integer):longint; {parametros formales} encubo (n:integer):longint; {parametros formales} beginbegin

encubo := n*n*nencubo := n*n*n end; end; {encubo}{encubo}

beginbegin {programa_principal} {programa_principal} write (‘escriba un entero: ’);write (‘escriba un entero: ’); readln (num);readln (num);

cubo := encubo (num);cubo := encubo (num); {parametros actuales} {parametros actuales} writeln (num,’al cubo es: ‘, cubo) writeln (num,’al cubo es: ‘, cubo) end. end. {programa_principal}{programa_principal}

Page 44: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

PascalPascal Ejemplo de abstracción procedural (Ejemplo de abstracción procedural (procedureprocedure):):

PROGRAMPROGRAM cubo cubo{ se usa una función definida por el programador para elevar al cubo}{ se usa una función definida por el programador para elevar al cubo}

varvar

num, cubo : longint;num, cubo : longint; ProcedureProcedure encubo (n:integer; var cubo:longint); {parametros formales} encubo (n:integer; var cubo:longint); {parametros formales} beginbegin

cubo := n*n*ncubo := n*n*n end; end; {encubo}{encubo}

beginbegin {programa_principal} {programa_principal} write (‘escriba un entero: ’);write (‘escriba un entero: ’); readln (num);readln (num); encubo (num, cubo);encubo (num, cubo); {parametros actuales} {parametros actuales}

writeln (num,’al cubo es: ‘, cubo) writeln (num,’al cubo es: ‘, cubo) end. end. {programa_principal}{programa_principal}

Page 45: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

PascalPascal RecursiónRecursión: Muchas funciones matemáticas : Muchas funciones matemáticas

pueden estar definidas recursivamente, es decir pueden estar definidas recursivamente, es decir que están definidas en términos de casos más que están definidas en términos de casos más simples de ellas mismas.simples de ellas mismas.

Para implementarlas es necesario que una Para implementarlas es necesario que una función se invoque a sí misma. en Pascal esto función se invoque a sí misma. en Pascal esto es posible tanto para abstracciones funcionales es posible tanto para abstracciones funcionales como procedurales. Y estas son funciones o como procedurales. Y estas son funciones o procedimeintos que se llaman a si mismos.procedimeintos que se llaman a si mismos.

Page 46: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

PascalPascal

Ejemplo de función recursiva:Ejemplo de función recursiva:

function function factfact (n:integer): longinteger; (n:integer): longinteger;

BeginBegin

if if n = 1n = 1 then then

factfact := 1 := 1

elseelse

factfact := n * := n * factfact (n-1) (n-1)

End; End; {fact}{fact}

Page 47: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

Ejemplo de procedimiento recursivo:Ejemplo de procedimiento recursivo:

programprogram proced_recur; proced_recur;

procedure procedure tareatarea (n:integer); (n:integer);

BeginBegin

if if n = 1n = 1 then then

writelnwriteln (‘n = 1 Regresa’) (‘n = 1 Regresa’)

elseelse

beginbegin

writeln writeln (n, ‘hola’);(n, ‘hola’);

tareatarea (n-1); (n-1);

writelnwriteln (n, ‘adios’) (n, ‘adios’)

endend; {else} ; {else}

endend; {tarea}; {tarea}

begin begin

tarea tarea (4)(4)

end.end.

PascalPascal

Page 48: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

Pascal: compilación separadaPascal: compilación separada Unidades:Unidades: son contenedores físicos que son contenedores físicos que

permiten albergar expresiones declarativas o permiten albergar expresiones declarativas o abstracciones procedurales o funcionales. Estos abstracciones procedurales o funcionales. Estos módulos pueden ser compilados por separado o módulos pueden ser compilados por separado o pueden estar dentro de un programa:pueden estar dentro de un programa:

Puede contener más de una abstracción funcional o Puede contener más de una abstracción funcional o procedural, oprocedural, o

Puede tener expresiones declarativas y/o de Puede tener expresiones declarativas y/o de especificación accesibles a todas las unidades del especificación accesibles a todas las unidades del programa.programa.

Page 49: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

PascalPascal Las Unidades son un cierto tipo de Las Unidades son un cierto tipo de programa externoprograma externo..

UnitUnit (nombre); (nombre); Interface {p’ublicos}Interface {p’ublicos}

{declaraciones uses, const, type, o var, si existen}{declaraciones uses, const, type, o var, si existen} {encabezados de procedimientos y funciones}{encabezados de procedimientos y funciones}

ImplementationImplementation {declaraciones completas de los procedimientos y funciones}{declaraciones completas de los procedimientos y funciones}

EndEnd.. Los identificadores declarados en la parte de Los identificadores declarados en la parte de interfazinterfaz, son , son

públicos públicos lo que significa que pueden ser leídos por cualquier lo que significa que pueden ser leídos por cualquier programa o unidad que declara esta unidad.programa o unidad que declara esta unidad.

En la sección implementación, aquí se detallan las definiciones En la sección implementación, aquí se detallan las definiciones completas de los subprogramas con el encabezado repetido. El completas de los subprogramas con el encabezado repetido. El último debe terminar en último debe terminar en ;;

Page 50: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

PascalPascal

Precaución: debe utilizar el mismo Precaución: debe utilizar el mismo identificador para el nombre de la unidad y identificador para el nombre de la unidad y del archivo en el que guardará el código.del archivo en el que guardará el código.

Ejem. Ejem. UnitUnit InfoMat, el archivo debe InfoMat, el archivo debe llamarse llamarse InfoMat.pasInfoMat.pas

Page 51: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

PascalPascal UNITUNIT InfoMat InfoMat InterfaceInterface

UsesUses ConstConst

MaxLongVect = 50;MaxLongVect = 50; TypeType

Tipo1: integer;Tipo1: integer; TipoDeElemento = TipoDeElemento = RecordRecord NumFil,NumFil, NumCol: integer;NumCol: integer; Info: array [1..maxlogvec] of Tipo1;Info: array [1..maxlogvec] of Tipo1; EndEnd;;

ImplementationImplementation End.End.

Page 52: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

PascalPascal UnitUnit Matriz; Matriz; USESUSES InfoMat; InfoMat; InterfaceInterface

FunctionFunction InicMatriz (n,m:integer): TipoDeElemento; InicMatriz (n,m:integer): TipoDeElemento; FunctionFunction AsignaMatriz (mat: TipoDeElemento, i1,i2:integer; val:Tipo1): AsignaMatriz (mat: TipoDeElemento, i1,i2:integer; val:Tipo1):

TipoDeElemento;TipoDeElemento; FunctionFunction ElemMatriz (mat: TipoDeElemento, i1,i2:integer): Tipo1; ElemMatriz (mat: TipoDeElemento, i1,i2:integer): Tipo1; FunctionFunction FilasMatriz (mat: TipoDeElemento): integer; FilasMatriz (mat: TipoDeElemento): integer; FunctionFunction ColMatriz (mat: TipoDeElemento): integer; ColMatriz (mat: TipoDeElemento): integer; FunctionFunction SumaMatriz (mat1,mat2: TipoDeElemento): TipoDeElemento; SumaMatriz (mat1,mat2: TipoDeElemento): TipoDeElemento; FunctionFunction RestaMatriz (mat1,mat2: TipoDeElemento): TipoDeElemento; RestaMatriz (mat1,mat2: TipoDeElemento): TipoDeElemento; FunctionFunction Transpuesta (mat: TipoDeElemento): TipoDeElemento; Transpuesta (mat: TipoDeElemento): TipoDeElemento; FunctionFunction Multiplica (mat1,mat2: TipoDeElemento): TipoDeElemento; Multiplica (mat1,mat2: TipoDeElemento): TipoDeElemento;

Page 53: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

PascalPascal

ImplementationImplementation Function InicMatriz (n,m:integer):TipoDeElemento;Function InicMatriz (n,m:integer):TipoDeElemento; VarVar

i:integer; mat: TipoDeElemento;i:integer; mat: TipoDeElemento; BeginBegin

mat.NumFil:= n; mat.NumCol:= m;mat.NumFil:= n; mat.NumCol:= m; For i: =1 to MaxLongVecFor i: =1 to MaxLongVec

Mat.info[i] := 0;Mat.info[i] := 0; InicMatriz := mat;InicMatriz := mat;

End;End;

Page 54: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

Function AsignaMatrizFunction AsignaMatriz (mat: TipoDeElemento, i1,i2:integer; val:tipo1):(mat: TipoDeElemento, i1,i2:integer; val:tipo1): TipoDeElemento;TipoDeElemento;

BeginBegin Mat.info[(i2-1)*mat.NumFil) + i1] := val;Mat.info[(i2-1)*mat.NumFil) + i1] := val; AsignaMatriz := mat;AsignaMatriz := mat;

End;End;

Function ElemMatriz (mat:TipoDeElemento; i1,i2:integer):Tipo1;Function ElemMatriz (mat:TipoDeElemento; i1,i2:integer):Tipo1; BeginBegin

ElemMatriz := mat.info[((i2-1) * mat.NumFil) + i1;ElemMatriz := mat.info[((i2-1) * mat.NumFil) + i1; End;End; .. .. End.End.

Page 55: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

Pascal: uso de el TAD MatrizPascal: uso de el TAD Matriz

Program Matrices;Program Matrices; Uses Matriz, InfoMat;Uses Matriz, InfoMat;

Var: Var: mat1,mat2,MatSum,MatRes,MatMul,MatTTramat1,mat2,MatSum,MatRes,MatMul,MatTTransp: TipoElemento;nsp: TipoElemento;

Op: integer;Op: integer;......

Page 56: Lenguaje Pascal: Ana Laureano_UAM-A Lenguajes de Programación Pascal Profesora Ana Lilia Laureano - Cruces Universidad Autónoma Metropolitana - Azcpotzalco.

Lenguaje Pascal: Ana Laureano_UALenguaje Pascal: Ana Laureano_UAM-AM-A

finfin