1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

50
1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria

Transcript of 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

Page 1: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

1

Programación en Pascal

Sesión 3 y 4

Universidad Técnica Federico Santa Maria

Page 2: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

2

Contenido

• Estructura de un Programa pascal

• Declaraciones

• Tipos de datos simples

• Sentencias básicas de Entrada / Salida.

Page 3: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

3

Estructura de un programa

Page 4: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

4

Ejemplo simple:

Page 5: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

5

Programa pascal (diagrama conway)

;

;

;

Page 6: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

6

Estructura de un programa

• La estructura de un programa en pascal consta de un encabezamiento y un bloque.

• En el encabezamiento se especifica nombre del programa, y los nombres de los ficheros externos que se usan para entrada de datos y salida de resltados.

Page 7: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

7

Estructura de un programa

• En el bloque esta dividido en dos partes:

• Parte de declaraciones: donde se declaran todos los datos y las rutinas.

• Sección ejecutable: que contiene todas las sentencias ejecutables.

• Sintacticamente un programa empieza con Program y termina con ( . )

Page 8: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

8

Reglas sintácticas

• El punto y coma ( ; ) y el punto ( . ) son delimitadores en Pascal.

• ( ; ): separa sentencias consecutivas, también se usa para terminar encabezamiento de un programa y las declaraciones de los datos.

• ( . ): indica final del programa.

Page 9: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

9

Reglas sintácticas

• BEGIN y END son delimitadores no son sentencias, con ellas se indica el inicio y el final de la sección ejecutable.

• Comentarios: { } o (* *)

Page 10: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

10

Identificadores

• En las mayorías de los programas es necesario manejar datos de entradas y salidas, los cuales necesitan almacenarse en memoria principal del computador en el tiempo de ejecución. Para poder manipular dichos datos se necesita tener acceso a la memoria, donde están almacenados y se logra mediante nombre de datos o IDENTIFICADORES.

Page 11: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

11

Reglas para formar identificadores

• Pueden estar compuestos de caracteres alfabéticos, numéricos, y el carácter de subrayado ( _ ).

• Deben comenzar con un carácter alfabético o carácter de subrayado.

• Pueden ser de cualquier longitud (solo los 63 caracteres son significativos)

• No se hace distinción entre mayúsculas y minúsculas.• No se permite el uso de identificadores reservados en

los nombres de variables, constantes, programas o subprogramas.

Page 12: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

12

Ejemplos de identificadores

• Identificadores validos:• Nombre• Cadena• Edad_maxima• x_y_z• Etiqueta1• Identificadores no validos• Num&dias (carácter & no valido) • X nombre (contiene un carácter blanco) • begin (es una palabra reservada)• eje@s (carácter @ no valido)

Page 13: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

13

Ámbito y alcance de los identificadores

Page 14: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

14

Descripción:

• Una variable declarada en chequear solo es conocida allí.

• Una variable declarada en altas es conocida altas, leer, chequear, mostrar, ingresar, pero no es conocida en las demás.

• Una variable declarada en actualizar es conocida en todos los procedimientos.

Page 15: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

15

Encabezamiento:

program Identificador ( identificador

,

) ;

Page 16: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

16

Declaraciones:

Sección declaraciones:• Todas las entidades definidas por el usuario que se usan

en un programa debe ser declarados en esta sección, indicando un identificador y lo que representa:

Etiquetas ( Label )

Constantes ( const )

Tipos (Type )

Variables ( var )

Procedimientos ( procedure )

Funciones ( function )

Page 17: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

17

Declaraciones

• No es necesario que un programa contenga declaraciones en toda sus categorías anteriores.

• Ejemplos:

• Type estaciones =(primavera, verano, otoño, invierno);• Var letra : char;• Const pi = 3.1416;• Label 100,200,300;

Page 18: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

18

expresiones

• Es una combinación de variables, constantes y literales de tipos compatibles entre sí, estos elementos están combinados mediante operadores válidos; la expresión más simple está formada por un único elemento (variable, literal o constante) sin ningún operador. Es posible tener expresiones aritméticas (combinando expresiones de tipo entero y/o real), expresiones lógicas (combinando expresiones de tipo lógico) y expresiones de tipo carácter.

Page 19: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

19

Tipos de Datos simplesTipos de datos

simples

Tipos datos definidos por

el usuario

subintervalo

predefinidos

enumerados booleano carácter entero real

ordinales No ordinales

Page 20: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

20

Tipos de Datos

En Pascal hay cuatro tipos categóricos de datos.1) Los ordinales: Integer (números enteros)Char (caracteres)Boolean (valores lógicos TRUE y FALSE)EnumerativosSubcampo

Page 21: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

21

Tipos de Datos2) Reales:

Real (números reales)

3) Estructurados:

Array (tablas)

Record (registros)

File (secuencias)

Set (conjuntos)

4) Punteros

Page 22: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

22

Tipos ordinales

• Los valores de un tipo ordinal tienen una correspondencia biunívoca con el conjunto de enteros positivos. Tales valores están ordenados de manera que a cada uno le corresponde un valor ordinal único que indica su posición en la lista de todos los valores posibles de ese tipo.

Page 23: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

23

Programa 01: funciones ordinales

Program demo2;

Uses crt;

Var a,b:integer;

Begin

clrscr;

writeln(‘ingrese un valor para obtener ordinal, sucesor y predecesor’);

readln(a);

writeln;

b:= ord(a); writeln(‘el ordinal: ’,b);

b:= succ(a); writeln(‘El sucesor: ’,b);

b:= pred(a); writeln(‘El predecesor: ’,b);

Readln;

End.

Page 24: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

24

ordinales -integer

Page 25: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

25

ejemplos: ordinales - integer

Valores enteros:

32

100

54

0

Page 26: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

26

Operadores aritméticos

Page 27: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

27

Ejemplos: ordinales - char

• Sus valores posibles son cada uno de los elementos de los caracteres ASCII, ocupan 8 bits en memoria.

Se especifica una constante de tipo char:

‘A’ ‘?’ ’Z’ ‘0’ ‘.’

Page 28: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

28

Ejemplo

{ programa lee el primer carácter e imprime 10 veces}

Program demo2;

Uses crt;

Var A: char;

Begin

clrscr;

writeln(‘ingrese una palabra’);

readln(A);

for i:= 1 to 10 do writeln(A);

readln;

End.

Page 29: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

29

Tipos booleanos

Page 30: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

30

Tipos enumerativos

Es un conjunto de valores constantes ordenados representados por identificadores.

Sintaxis:

( { identificador }, …………..)

Ejemplo:

(primavera, verano, otoño, invierno )

Estos tipos quedan ordenados según su posición en la lista.

Page 31: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

31

Tipos subcampo

Especifica una parte limitada de otro tipo ordinal, para ser usado como un tipo distinto. El programador lo define.

Sintaxis:

lim_inf .. lim_sup

lim_inf: expresión constante que establece limite inferior del subcampo o subrango.

lim_sup: expresión constante que establece limite superior del subcampo o subrango.

Page 32: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

32

ejemplos

‘0’..’9’

‘A’..’M’

1..31

enero .. marzo

1 .. 366

Page 33: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

33

Ejemplos: ordinales - reales

(en pascal)Var total : realy los valores correctos serian:

3.14 97.45

0.07.

.12

Page 34: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

34

Tipos reales

Page 35: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

35

Precedencia de operadores

• El orden de aplicación de precedencia puede alterarse mediante el paréntesis

• Resumen de prioridades:

Page 36: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

36

Asignación

Page 37: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

37

Literales

Page 38: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

38

Operadores relacionales

• Una relación consiste en dos operandos separados por un operador relacional. Si la relación es satisfecha, el resultado tendrá un valor booleano True; si la relación no es satisfecha el resultado tendra un valor booleano False.

Page 39: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

39

Operadores relacionales

Ejemplos

Page 40: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

40

Funciones aritméticas

Page 41: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

41

Ejemplos de definiciones:

Const

long = 35;

Type

cadena = string[ long ];

Var

nombre: cadena;

Page 42: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

42

Tipos estructurados

Tipos de datosestructurales

Predefinidos

string

Definidos por el usuario

set array record file

Page 43: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

43

Tipos estructurados

• Los tipos estructurados pueden contener mas de un componente a la vez, a diferencia de los tipos ordinales y reales.

• Cada componente puede ser de tipo ordinal, real, estructurado o puntero.

• Se puede tener acceso a cada uno de los componentes y procesar la estructura completa.

Page 44: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

44

Tipos estructurados

• Las estructuras fundamentales son cuatro:

ARRAY (tabla)

RECORD (registro)

SET (conjunto)

FILE (secuencia)

Page 45: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

45

Array

•Es una estructura homogénea que esta constituido por componentes del mismo tipo, llamado tipo base.

Sintaxis:

Type T = ARRAY [ I ] of To

Definición de un tipo array T especifica un tipo base To y un tipo indice I.

Page 46: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

46

Ejemplos Tipos

Type

Vector = ARRAY[1..5] OF INTEGER;

Vec_1 = ARRAY[1..5] OF REAL;

Linea = ARRAY[1..80] OF CHAR;

nombres = array[1..30] OF CHAR;

Var

v1 : Vector ;

a : Vec_1;

L : Linea;

name : nombres;

Page 47: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

47

Ejemplos Tipos{programa que inicializa un vector de 0..5 elementos}Program demo7;Uses crt;Type vector = array[1..5] of integer;Var a : vector; i : integer;Begin clrscr; for i:=0 to 5 do begin a[ i ] := 0; writeln(‘Vector ’, ‘ a[ ’, i,’ ] ’,’ ’, a[ i ] ); end;Readln;End.

Page 48: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

48

Ejemplo: 1

•ENUNCIADO:

Calcule los coeficientes de una recta trabajando con coordenadas homogéneas de la forma: L= [ A B 1 ]T

Debe leer dos puntos en coordenadas homogéneas ( x, y, 1)

Y reportar los coeficientes A B C => AX + BY + C

( Implemente el producto cruz para el calculo)

Construya el seudocódigo.

Construya el programa en Pascal. { en clase }

Verifique este ejemplo:

Lee M1 = [ 2 6 1 ]

Lee M2 = [ -1 6 1 ]

Debe resultar: [ 0 -3 18 ]

Page 49: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

49

Ejercicios

• Se darán en clases …!

Page 50: 1 Programación en Pascal Sesión 3 y 4 Universidad Técnica Federico Santa Maria.

50

Referencias: