Está en la página 1de 12

1 / 11 Prof.

CLAUDIA DANIA
Algoritmos
y
Estructuras de Datos
1 Ao
Ingeniera en Sistemas de Informacin
Prof. CLAUDIA DANIA
Analista Universitario de Sistemas
Especialista en Docencia Universitaria
Licenciada en Sistemas de Informacin
UTN - FRRO
2 / 11 Prof. CLAUDIA DANIA
Estructuras
de
Control
Estructuras
de
Datos
aSECUENCIAL
aDECISION lSimple uSI aIf-then-else
lSeleccin uCASO aCase Of
lIncondicional uPARA aFor-do
aREPETICION lPre-Condicional uMIENTRAS aWhile-do
lPos-Condicional uREPETIR aRepeat-Until
aReales
aEnteros
uStandard aCaracter
aString
lSimples aBooleanos
uDefinidos x usuario aEnumerados
aEstticos aSubrango
lEstructurados uArreglos aArray
uRegistros aRecord
uArchivos aFile
aDinmicos uPunteros
MAPA CONCEPTUAL
DE LA MATERI A
q
Algoritmos
q
3 / 11 Prof. CLAUDIA DANIA
E
s

l
a

a
c
t
i
v
i
d
a
d

c
o
g
n
i
t
i
v
a
,

l
a

h
e
r
r
a
m
i
e
n
t
a

m

s

p
o
d
e
r
o
s
a

d
e
l

i
n
t
e
l
e
c
t
o

h
u
m
a
-
n
o

p
a
r
a

l
a

c
o
m
p
r
e
n
s
i

n

d
e

f
e
n

m
e
n
o
s

y

p
r
o
c
e
s
o
s

d
e

m
e
n
o
r

o

m
a
y
o
r

c
o
m
-
p
l
e
j
i
d
a
d
.
C
u
a
n
d
o

s
e

t
r
a
t
a

d
e

l
a

c
o
n
c
e
p
c
i

n

d
e

s
o
l
u
c
i
o
n
e
s

i
n
f
o
r
m

t
i
c
a
s
,

s
e

d
e
b
e
r

h
a
c
e
r

a
b
s
t
r
a
c
c
i

n
,

a

u
n

c
i
e
r
t
o

n
i
v
e
l
,

p
a
r
a

r
e
c
o
n
o
c
e
r
,

e
n
t
r
e

u
n

c
o
n
j
u
n
t
o

d
e
a
c
o
n
t
e
c
i
m
i
e
n
t
o
s

o

d
e

i
n
f
o
r
m
a
c
i
o
n
e
s

l
a
s

g
r
a
n
d
e
s

l

n
e
a
s

c
o
m
u
n
e
s
.
E
n
t
o
n
c
e
s
,

u
s
a
n
d
o

s

l
o

u
n

c
o
n
j
u
n
t
o

d
e

a
c
c
i
o
n
e
s

e
l
e
m
e
n
t
a
l
e
s
,

s
e

l
a
s

e
n
c
a
-
d
e
n
a
r


e
n

e
l


t
i
e
m
p
o

p
a
r
a

o
b
t
e
n
e
r

e
l

r
e
s
u
l
t
a
d
o

d
e
s
e
a
d
o
.
A
s

,

p
a
r
a

e
l
e
g
i
r

a
c
e
r
t
a
d
a
m
e
n
t
e

c
a
d
a

a
c
c
i

n

e
s

e
s
e
n
c
i
a
l

c
o
n
o
c
e
r

e
l

a
c
o
n
t
e
-
c
i
m
i
e
n
t
o

q
u
e

c
a
d
a

u
n
a

d
e

e
l
l
a
s

e
s

c
a
p
a
z

d
e

l
l
e
v
a
r

a

c
a
b
o
.
L
u
e
g
o
,

a
p
o
y
a
d
o
s

e
n


c
i
e
r
t
a
s

t

c
n
i
c
a
s

y

v
a
l
i

n
d
o
s
e

d
e

u
n
a

n
o
t
a
c
i

n

e
s
p
e
c

-
f
i
c
a

s
e

c
o
n
c
l
u
i
r


e
n

e
l

a
l
g
o
r
i
t
m
o
.
C
u
a
n
d
o

s
t
a

e
s

e
l

e
j
e
c
u
t
a
n
t
e
,

e
s

u
n
o

d
e

s
u
s

c
o
m
p
o
n
e
n
t
e
s
,

e
l

p
r
o
c
e
s
a
d
o
r
,
q
u
i
e
n

r
e
c
i
b
e

e
s
t

m
u
l
o
s

a

t
r
a
v

s

d
e

s
e

a
l
e
s

e
l

c
t
r
i
c
a
s

y

p
r
o
d
u
c
e

r
e
s
p
u
e
s
t
a
s
(
h
a
c
e

a
l
g
o
)

d
e

l
a

m
i
s
m
a

m
a
n
e
r
a
,

e
s
t
o
s

e
s
t

m
u
l
o
s

s
o
n

r
d
e
n
e
s
.
D
e
s
d
e

e
l

p
u
n
t
o

d
e

v
i
s
t
a

d
e

l
a

c
o
m
u
n
i
c
a
c
i

n

h
u
m
a
n
a

e
s

s
u
m
a
m
e
n
t
e

d
i
f

c
i
l
e
x
p
r
e
s
a
r

e
l

s
i
s
t
e
m
a

d
e

e
m
i
s
i

n

y

r
e
c
e
p
c
i

n

d
e

s
e

a
l
e
s
;

p
o
r

e
l
l
o

s
e

h
a
n
c
r
e
a
d
o

l
e
n
g
u
a
j
e
s

s
i
m
b

l
i
c
o
s

m
u
y

p
a
r
e
c
i
d
o
s

a
l

d
e

l
o
s

h
u
m
a
n
o
s
,

q
u
e

h
a
c
e
n
p
o
s
i
b
l
e

l
a

i
n
t
e
r
a
c
c
i

n

y

c
o
m
u
n
i
c
a
c
i

n

c
o
n

l
a

c
o
m
p
u
t
a
d
o
r
a
.
U
n

l
e
n
g
u
a
j
e

d
e

p
r
o
g
r
a
m
a
c
i

n

e
s

u
n

s
i
s
t
e
m
a

d
e

s
i
g
n
o
s

y

c

d
i
g
o
s

q
u
e

r
e
p
r
e
-
s
e
n
t
a
n

a

u
n

c
o
n
j
u
n
t
o

f
i
n
i
t
o

d
e

i
n
s
t
r
u
c
c
i
o
n
e
s

q
u
e
,

a

d
i
f
e
r
e
n
c
i
a

d
e

c
u
a
l
q
u
i
e
r
l
e
n
g
u
a
j
e

n
a
t
u
r
a
l
,

n
o

p
e
r
m
i
t
e

s
i
g
n
i
f
i
c
a
d
o
s

a
m
b
i
g
u
o
s


y

t
i
e
n
e

u
n
a

e
s
t
r
u
c
t
u
r
a
g
r
a
m
a
t
i
c
a
l

c
l
a
r
a

y

r

g
i
d
a
.
C
a
d
a

u
n
a

d
e

e
s
a
s

i
n
s
t
r
u
c
c
i
o
n
e
s

n
o

e
s

m

s

q
u
e


e
l

n
o
m
b
r
e

d
e

u
n
a

a
c
c
i

n
.







T
i
e
n
e

q
u
e

h
a
b
e
r

a
l
g
u
i
e
n

q
u
e

l
o

r
e
d
a
c
t
e
T
i
e
n
e

q
u
e

h
a
b
e
r

a
l
g
u
i
e
n

q
u
e

l
o

e
j
e
c
u
t
e
P
R
O
C
E
S
O
P
r
o
g
r
a
m
a
L
a

d
e
s
c
r
i
p
c
i

n

d
e

u
n

p
r
o
c
e
s
o
d
e
b
e
r


s
e
r

e
x
p
r
e
s
a
d
a
e
n

u
n

c

d
i
g
o

a
p
t
o
p
a
r
a

s
e
r

i
n
t
e
r
p
r
e
t
a
d
o
p
o
r

e
l

q
u
e

s
e

e
n
c
a
r
g
u
e
d
e

i
m
p
l
e
m
e
n
t
a
r
l
o
.
A
s

,

u
n

m
i
s
m
o

e
s
q
u
e
m
a

d
e
c
o
m
p
o
r
t
a
m
i
e
n
t
o

p
u
e
d
e

s
e
r
c
o
m
u
n
i
c
a
d
o

m
e
d
i
a
n
t
e
d
i
s
t
i
n
t
o
s

c

d
i
g
o
s
s
e
g

n

q
u
i

n

s
e
a

e
l

e
j
e
c
u
t
a
n
t
e
N
O

H
A
Y

P
R
O
G
R
A
M
A
S
I
N

A
L
G
O
R
I
T
M
O
A
l
g
o
r
i
t
m
o
E
n

e
l

a
n
d
a
r

c
o
t
i
d
i
a
n
o
n
o
s

e
n
c
o
n
t
r
a
m
o
s
,

a

m
e
n
u
d
o
,
c
o
n

l
a

n
e
c
e
s
i
d
a
d

d
e

l
l
e
v
a
r
a

c
a
b
o

a
l
g
u
n
a

a
c
t
i
v
i
d
a
d
,
q
u
e

r
e
q
u
i
e
r
a

l
a

e
j
e
c
u
c
i

n

d
e
c
i
e
r
t
o

p
r
o
c
e
d
i
m
i
e
n
t
o
.
S
e
g
u
r
a
m
e
n
t
e

s
t
e

i
n
v
o
l
u
c
r
a
r

a

u
n

c
o
n
j
u
n
t
o

d
e

a
c
c
i
o
n
e
s
e
s
p
e
c

f
i
c
a
s
,

o
r
g
a
n
i
z
a
d
a
s
s
e
g

n

u
n

e
s
q
u
e
m
a

l

g
i
c
o
,
q
u
e

r
e
s
p
o
n
d
e

a

u
n
a

f
o
r
m
a
d
e

s
o
l
u
c
i
o
n
a
r

l
a

s
i
t
u
a
c
i

n
p
r
o
b
l
e
m

t
i
c
a

p
l
a
n
t
e
a
d
a
.
A
l
g
o
r
t
i
m
o
T

r
m
i
n
o

m
u
y

a
n
t
i
g
u
o

e
n
t
r
e

l
o
s

m
a
t
e
m

t
i
c
o
s
.

P
r
o
v
i
e
n
e

d
e
l

s
a
b
i
o

r
a
b
e

a
l
-
K
h
w
a
r
i
z
m
i

q
u
e

v
i
v
i


e
n

e
l

s
i
g
l
o

I
X

y

c
o
n
t
r
i
b
u
y

,

d
e
s
d
e

E
s
p
a

a
,
a

l
a

c
i
v
i
l
i
z
a
c
i

n

d
e

E
u
r
o
p
a
.

E
n

s
u

s
e
n
t
i
d
o

m

s

a
n
t
i
g
u
o

y

o
r
i
g
i
n
a
l

s
e

r
e
f
i
e
r
e

a
l

m

t
o
d
o

y

n
o
t
a
c
i

n

e
n

l
a
s

d
i
s
t
i
n
t
a
s

f
o
r
m
a
s

d
e

c

l
c
u
l
o
.
A
n

l
i
s
i
s

y

D
i
s
e

o
C
r
i
s
t
i
n
a

A
l
a
r
c

n
G
r
a
c
i
a

G
a
g
l
i
a
n
o
1
2
3
4
1
2
3
4
<
<
4 / 11 Prof. CLAUDIA DANIA
INTRODUCCION
Programacin es la planificacin y ejecucin de una tarea mediante una secuencia de instrucciones,
que indican las acciones que han de ejecutarse. Para desarrollar dicha secuencia, se deben realizar dos
fases:
Anlisis: Comprender el problema.
Fase de resolucin Algoritmo: Es un procedimiento paso a paso, para resolver
del Problema un problema, en una cantidad finita de tiempo pasos,
generalmente se visualiza mediante una representacin
grfica.
Prueba: Seguir los pasos para ver si la solucin resuelve el
problema, llamada prueba de escritorio.
Programa: Traducir el algoritmo a un lenguaje de programacin.
Fase de Prueba : Ejecutarlo: Hacer que el ordenador siga las instrucciones
implementacin y comprobar los resultados.
Uso: Utilizacin del programa (o software) para casos concretos.
ALGORITMO: Es una manera formal y sistemtica de representar la descripcin de un proceso, mediante
una secuencia lgica de pasos discretos. En la ctedra se utilizar los diagramas de Chapn como modelo
de represetnacin algortimica, dado que este esquema es el que mejor representa a la programacin
estructurada.
SEUDOCODIGO: mezcla de lenguaje de programacin y lxico habitual en el que estamos trabajando,
sin conocer lenguajes especficos.
LENGUAJE DE PROGRAMACION: es un conjunto de reglas, smbolos y palabras especiales utilizadas
para construir un programa, que se traduce al lenguaje de mquina mediante un compilador o intrprete.
La primer etapa es la de comprender y analizar un problema, desarrollar la solucin correcta en forma
algortmica y luego implementarla en un lenguaje de programacin adecuado teniendo en cuenta la
sintaxis y la semntica.
SINTAXIS: reglas formales para la construccin de secuencias en un lenguaje especfico.
SEMANTICA: conjunto de reglas que da el significado de una construccin del lenguaje.
La segunda etapa: implementacin de un programa, se realiza en un dispositivo electrnico programable,
que puede almacenar, recuperar y procesar datos, dado que consta de componentes bsicos: unidad
de memoria, unidad aritmtico-lgica, unidad de control y dispositivos de entrada - salida.
UNIDAD DE MEMORIA: Es el almacenamiento interno de datos (datos de entrada, de clculos e
instrucciones de programas). La memoria es una secuencia ordenada de celdas,
cada una contiene un fragmento de informacin, cada celda posicin de
memoria tiene una direccin para poder almacenar y/o recuperar la informacin
all alojada, la cual est codificada en forma binaria (1 -0). Esta codificacin
puede representar un nmero, un carcter una instruccin, pero no es una
funcin de la memoria reconocerlo, sino slo guardarlo.
UNIDAD
ARITMETICO-LOGICA: Ejecuta operaciones aritmticas (suma, resta, multiplicacin y divisin) y
operaciones lgicas (comparaciones de dos valores).
UNIDAD DE CONTROL: Controla acciones de las otras componentes para ejecutar las instrucciones
en secuencia. Estas dos ltimas unidades forman la CPU (unidad central de
procesamiento): la cual interpreta y ejecuta las instrucciones.
DISPOSITIVOS DE
ENTRADA-SALIDA: Es el medio para lograr la comunicacin hombre-mquina.
CPU
Dispositivo Unidad aritmtico-lgica Dispositivo
de entrada Unidad de control de salida
Unidad de memoria
5 / 11 Prof. CLAUDIA DANIA
CONJUNTO DE CARACTERES EN PASCAL
Letras: A .. Z a .. z
Dgitos: 0..9
Smbolos especiales: . : ; , ( ) [] {}
Operadores matemticos: + - * / DIV MOD
Operadores relacionales: = > >= < <= <>
Operadores lgicos: .OR. .AND. .NOT.
Asignacin: := (en chapn !)
Puntero: #
PRECEDENCIA DE OPERADORES
1
er.
nivel (superior) .NOT.
2
do.
nivel * / DIV MOD .AND.
3
er.
nivel + - .OR.
4
to.
nivel (inferior) = > >= < <= <> IN
Dentro de un mismo nivel las operaciones se realizan a medida que aparecen de izquierda a derecha.
PALABRAS RESERVADAS
AND ARRAY BEGIN CASE CONST DIV
DO DOWNTO ELSE END FILE FOR
FUNCTION GOTO LABEL MOD NOT OF
OR PROCEDURE PROGRAM REPEAT THEN TO
TYPE UNTIL VAR WHILE
CONSTANTES IDENTIFICADORES ESTANDAR
MAXINT: especifica el mayor valor que puede ser asumido por una cantidad de tipo entero.
FALSE y TRUE: son los dos valores posibles que puede asumir un dato tipo booleano (tener en cuenta
que ambos represetan un conjunto ordenado donde falso precede a verdadero).
FUNCIONES ESTANDAR o INTERNAS
Dato Resultado
abs(x): valor absoluto de x entero o real entero o real
arctan(x): arcotangente de x entero o real real
chr(x): carcter presentado por x entero o real char
cos(x): coseno de x entero o real real
exp(x): logaritmo neperiano entero o real real
In(x): logaritmo de x (> 0) entero o real real
odd(x): determina si x es par o impar entero bool (verdad. si es impar)
ord(x): entero q' codifica el carcter x char entero
pred(x): predecesor d e x entero, char o bool entero, char o bool
round(x): redondea al prximo entero real entero
sin(x): seno de x entero o real real
sqr(x): cuadrado de x entero o real entero o real
sqrt(x): raiz cuadrada de x entero o real real
succ(x): sucesor de x entero, char o bool entero, char o bool
trunc(x): suprime parte decimal de x real entero
6 / 11 Prof. CLAUDIA DANIA
STANDARD REALES (REAL)
ENTEROS (INTEGER)
CARACTERES (CHAR)
STRING
LOGICOS (BOOL)
DEFINIDOS ENUMERADOS
POR
EL USUARIO SUBRANGO
DATOS CONSTANTES
CONST nombre = valor;
Identificador al cual se le asigna un dato
permanente
durante la ejecucin del programa
DATOS VARIABLES
VAR nombre: tipo;
Identificador que permite
cambiar su valor
durante la ejecucin del programa
SIMPLES
Se asocian a
identificadores
nicos uno a uno
ESTRUCTURADOS
Mltiples elementos
relacionados entre s,
cada grupo se asocia a un
identificador
PUNTERO
Son tipos dinmicos
de datos estructurados,
se identificacn con #
IDENTIFICADORES: Tipos de Datos
El tipo de dato es una descripcin formal del conjunto de valores posibles
que una variable o constante puede presetnar y que operaciones que se le puede aplicar.
ARREGLOS (ARRAY)
REGISTROS (RECORD)
ARCHIVOS (FILE TO)
DATOS
Objetos que son manipulados por las diferentes sentencias o instrucciones de un programa, siendo la
nformacin que procesa y brinda un programa.
ESTRUCTURA DE DATOS: Coleccin de elementos cuya asignacin se caracteriza por las operaciones de
acceso que se usan para almacenar y recuperar los elementos individuales.
7 / 11 Prof. CLAUDIA DANIA
IDENTIFICADORES
Un identificador es el nombre dado a un elemento del programa, tal como una constante, una variable,
procedimiento, funcin, tipo de dato o programa.
Estn formados por letras solas letras y dgitos comenzando siempre con una letra (maysculas o
minsculas es lo mismo), reconocindose solamente los primeros 8 caracteres si el nombre superase
dicha cantidad (los nuevos sistemas operativos no tienen esta restriccin).
Las palabras reservadas no se las puede utilizar como identificadores.
Constantes:
Un identificador se dice constante cuando se le asigna un dato permanente, permanezca inalterable a lo
largo del programa. Debe ser definida antes de que aparezca en alguna sentencia de Pascal.
Se la define como:
CONST nombre = valor;
Ej.: CONST personas = 125;
dias = 7;
Variables:
Es un identificador cuyo valor cambia durante la ejecucin del programa; debe ser declarada antes de
ser utilizada en el programa, especificando su tipo.
Se declara:
VAR suma: real;
bandera: integer;
resp: char;
IDENTIFICADORES ESTANDARD
abs arctan boolean char Cos
dispose eof eoln exp false
get input integer ln maxint
new odd ord output pack
page pred put read readln
real reset rewrite round sin
sqr sqrt succ text true
trunc unpack write writeln
DATOS DE TIPO SIMPLE
Elementos individuales
STANDARD:
Entero (integer): No pueden incluir comas, puntos espacios dentro de un nmero; puede venir
precedido de un signo (+) (-), si no aparece el signo se considera positivo.
El valor mximo es 32767 (MAXINT). Se pueden sumar (+), restar (-), multiplicar (*), dividir ( /
resultado real, DIV resultado entero truncado, MOD resto entero).
Ej.: 0 +12 23 -5280
Real (real): No puede comenzar ni terminar en un punto, ste debe estar comprendido entre dos
dgitos; puede llevar exponente entero (negativo o positivo) como notacin cientfica.
Se pueden sumar (+), restar (-), multiplicar (*), dividir (/).
Ej.: 3.OE+10 -5,026 2E-8 1,66
Carcter (char): en cada variable se admite un solo carcter.
Varan de una mquina a otra segn el conjunto de caracteres de la misma, puede ser CDC-cientfico,
ASCII y EBCDIC. Aunque las ordenaciones sean distintas en cada uno de ellos, en los tres estn
ordenados y se le llama Secuencia de Cotejo.
Ej.: letra = T - signo = ? - numero = 7
No se pueden realizar operaciones matemticas entre variables char, pero si operaciones de
comparacin.
8 / 11 Prof. CLAUDIA DANIA
Booleano o lgico (boolean): son valores que pueden ser ciertos o falsos. No pueden ser ledos.
Se los puede trabajar con operadores lgicos: .AND. .OR. .NOT. y operadores relacionales: = < >=
> <= <>
String: permite procesar cadenas de carateres, con una longitud constante que al momento de ser
declarada puede variar entre 1 y 255. En el caso de longitud 1 es equivalente a la declaracin tipo
Char. En el caso particular de Pascal, no se le declara la longitud mxima permitiendo cargar hasta
255 caracteres.Las operaciones vlidas entre string son la asignacin y la concatenacin.
Ejemplo: var a, b, c: string[10];
a:= 123;
b:=
c:= a + b por lo caul c contendra 123
Se pueden utilizar operadores relacionales para comparar string y los resultados sera:
- para el operador =, si las cadenas son de la misma longitud y contienen los mismos smbolos en el
mismo orden el resultado es verdadero, de lo contrario falso.
- para el operador <>, es lo opuesto a lo anterior.
- para operadores >, <, >=, <=: compara smbolo a smbolo segn a su aparicin el el cdigo ASCII,
ejemplo si se compara sala con sola , se puede decir que sola es mayor que sala dado que la o
aparece despus de la a.
Si es una cadena de caracteres la que deseamos exhibir, sin ser asignada a una variable, debe estar
encerrada entre apstrofos: 'El costo es:' y puede estar formada por letras, dgitos y/o caracteres
especiales. Si dentro de ella se incluye un apstrofo, ste debe escribirse dos veces para que el
primero no sea tomado como fin de la cadena.
Los cuatro tipos de datos (menos el string), tienen dos propiedades en comn: estn formados por
elementos indivisibles y estn ordenados, por estas razones se los llama ESCALARES.
Excepto los REALES, los otros tres tipos tienen una propiedad adicional: cada valor tiene un predecesor
nico excepto el primero y cada valor tiene un sucesor nico excepto el ltimo; estos tipos de datos se
los llama ORDINALES.
FUNCIONES SOBRE ORDINALES
ORD: Devuelve mediante un valor entero la posicin de un valor en su ordenacin segn la secuencia
de cotejo, teniendo en cuenta que la primera posicin es el 0 y no el 1. Para los enteros
devuelve el mismo nmero y para los booleanos el 0 es Falso y el 1 es Verdadero.
PRED: Devuelve el nico valor anterior al del dato ordinal. Se produce un error en tiempo de ejecucin
si el parmetro es el primer valor.
SUCC: Devuelve el valor posterior al dato ordinal, producindose un error en tiempo de ejecucin si el
parmetro es el ltimo elemento del tipo de dato.
CHR: Toma una posicin ordinal entera y devuelve el carcter de esa posicin, se define slo sobre
valores tipo CHAR.
TIPOS DE DATOS ESCALARES DEFINIDOS POR EL USUARIO
Se pueden crear nuevos tipos de datos por medio de una definicin TYPE antes de la seccin VAR.
TIPO DE DATOS ENUMERADOS
Es una secuencia ordenada de identificadores, donde cada uno se interpreta como dato individual,
asociados a un nombre que sirve como identificador de tipo. Esta asociacin se la realiza mediante una
declaracin TYPE.
Debido que los datos tienen una secuencia ordenada, se los puede trabajar con operadores relacionales
o utilizar funciones standard como: pred() succ() para conocer que datos preceden suceden a uno
en particular y ord(): entendiendo que el primer dato tiene asignado el valor ordinal 0. No pueden ser
utilizados en instrucciones de entrada ni de salida.
La forma de definir este conjunto de datos es listar todos los valores posibles que puede tomar una
variable de dicho tipo, separndolos con coma y encerrados entre parntesis. Hay que tener en cuenta
que un identificador de tipo NO puede ser utilizado como variable, sino que se lo debe asignar en la
seccin VAR.
9 / 11 Prof. CLAUDIA DANIA
TYPE nombre = (dato1, dato2,....., datoN);
TYPE semana = (domingo, lunes, martes, miercoles, jueves, viernes, sabado);
lunes < martes. . . verdadero; succ(miercoles) = jueves; ord(martes) = 2;
TYPE Animales = (raton, gato, perro, tigre);
VAR salvajes, domesticos: Animales;
Los tipos enumerados son ordinales por lo tanto se les puede aplicar las funciones de Pred, Succ y Ord.
Adems pueden usarse en las etiquetas de las sentencias CASE, en los bucles FOR y WHILE.
CASE domesticos OF FOR domesticos:= gato TO perro DO ... ;
raton: write ('trampa');
gato: write ('darle comida') domesticos:= gato;
END; WHILE domesticos < tigre DO
domesticos:= Succ (domesticos);
Los identificadores del enumerado deben seguir las mismas reglas que otros identificadores: no pueden
comenzar con un nmero, ni con caracteres especiales, no pueden estar definidos en dos tipos enumerados
al mismo tiempo, no pueden ser leidos, se los debe ingresar como un nmero o una letra (codificados) y
luego traducirlos a su valor real y tampoco pueden ser exhibidos directamente.
Read (dato) CASE domesticos OF
IF dato = G THEN domesticos := gato gato: Write ('gato');
ELSE ......; .......
END;
TIPO DE DATOS SUBRANGO
Es un tipo de datos compuesto de un rango especfico de cualquier tipo ordinal, ordenados y contiguos.
Se define por un valor inicial inferior, dos puntos suspensivos y un valor final superior, segn la ordenacin
del tipo residente, no van encerrados entre parntesis.
Se puede aplicar a cualquier conjunto de datos de tipo simple (entero, char, boolean y enumerado)
excepto los de tipo real. Valen las mismas consideraciones que los enumerados en cuanto a funciones
y operadores relacionales. Unicamente se pueden usar en instrucciones de entrada/salida si son tipo
entero o char, siempre que estn dentro del rango especificado.
Adems de hacer un programa ms legible, nos facilita la comprobacin automtica de rango, detecta
automticamente la asignacin fuera de rango de una variable, por ejemplo si quisiramos asignar una 'F'
a una variable que fue definida con un subrango de 'A' . .'D', se detiene el programa con un mensaje de
error.
TYPE nombre = primer dato . . ultimo dato;
TYPE semana = (domingo, lunes, martes, miercoles, jueves, viernes, sabado);
TYPE trabajo = lunes . . viernes;
TYPE numero = 1 . . 6;
TYPE dias = 1 . . 31;
TYPE nota = 0 . . 10;
VAR calificar : nota;
10 / 11 Prof. CLAUDIA DANIA
DATOS DE TIPO ESTRUCTURADOS
Mltiples elementos relacionados entre s
Arrays (arreglos de una, dos ms dimensiones)
Registros y Arreglos de Registros
Archivos Ficheros
(se vern en sus respectivos captulos).
EXPRESIONES
Una expresin es una coleccin de operandos (nmeros, constantes, variables) enlazados por operadores.
Existen expresiones numricas: que representan un valor numrico como ser:
(b * 4 - 0) / (2 * r)
y expresiones lgicas: que representan una condicin verdadera o falsa, ejemplo:
costo < 25
SENTENCIAS
Sentencia es una instruccin que tiene un modo unvoco de expresin. Un grupo de instrucciones
ordenadas en forma secuencial conforman un programa.
Existen dos tipos de sentencias: simples y estructuradas.
Las primeras son instrucciones nicas e incondicionales:
Asignar un dato a una variable (asignacin)
Acceder a un mdulo (procedimiento)
Transferir el control del programa incondicionalmente a otra parte del programa (GOTO, no ser
dado en la ctedra).
SENTENCIA DE ASIGNACION
(sentencia de asignacin interna)
Es una sentencia de tipo simple para asignar un dato una expresin a una variable, donde el identificador
de la izquierda del signo de asignacin (que nunca puede ser un nmero ni una expresin) := recibe el
valor de la expresin, variable, constante nmero a la derecha del mismo,
variable:= dato;
calculo := 3 * 14 / sqr(x); resul := succ(valor), r:= 5;
SENTENCIA DE ENTRADA / SALIDA
(sentencias de asignacin externa)
Sentencia READ
Se usa para leer datos del archivo de entrada y asignarlos a variables de tipo standard (entero, real o
char) y/o estructuradas (arreglos).
Las variables se separan por comas. Los datos que se leen son asignados a ellas en el mismo orden en
que ingresan. Cada variable debe ser del mismo tipo del dato que se asign (un nmero real debe ser
almacenado en una variable de tipo real; a excepcin de un nmero entero que puede ser almacenado en
una variable real). Las de tipo booleanas no pueden incluirse en la lista de variables de entrada.
Ante dos lecturas sucesivas, el segundo READ comenzar a leer datos en la misma lnea.
Se define como:
READ (variable1, variable2,....,variablen);
Ej.: READ ( a , b , c[1] );
11 / 11 Prof. CLAUDIA DANIA
Sentencia READLN
Al igual que la sentencia READ, se utiliza para leer datos del archivo de entrada y asignarlos a variables
de distintos tipos. La diferencia es que sta hace que la siguiente sentencia READ o READLN comience
leyendo datos de una nueva lnea.
READLN (variable1, variable2,.....,variableN)
Ej.: READLN ( a , b , c[1] )
Sentencia WRITE
Se usa para exhibir datos en el archivo de salida.
WRITE (dato1, dato2,......,datoN)
Los datos pueden ser cadenas, constantes numricas, variables o expresiones; de tipo real, entero, char
o booleano. Los datos se separan por comas y las cadenas de caracteres deben ir entre apstrofos.
Ej.: WRITE (CX=', X); WRITE ('Buenos das, son las', r , 'Horas'); WRITE (a, b);
CX= 22.500 Buenos das, son las 12 Horas 15 25
Sentencia WRITELN
Es idntica a la sentencia WRITE, salvo que luego de exhibir la informacin que contiene, se identifica
que es el fin de lnea y la prxima sentencia WRITE o WRITELN comenzar en nueva lnea. La sentencia
WRITELN vacia puede usarse para generar una linea en blanco (espacios entre textos impresos).
WRITELN (datos de salida); WRITELN ()
Ejemplo: Mediante la utilizacin del diagrama de chapn, siguiendo una estructura secuencial, resolveremos
la metodologa del clculo de descuentos.
EJEMPLO
exhibir (Ingrese el valor actual de la prenda)
leer (actual)
exhibir (ngrese el porcentaje de descuento
leer (porcen)
dscto ! actual * porcen / 100
valor ! actual - dscto
exhibir (se descuentan: ,dscto, pesos)
exhibir (la prenda vale ,valor, pesos)
Resultados en pantalla Ingrese el valor actual de la prenda
62
ingrese el porcentaje de descuento
10
clculos internos dscto = 62 * 10 / 100
valor = 62 - 6,2
Resultados en pantalla se descuentan: 6,2 pesos
la prenda vale 55,8 pesos

También podría gustarte