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

Upload: ascencion-pinero

Post on 23-Jan-2016

239 views

Category:

Documents


0 download

TRANSCRIPT

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: