Sie sind auf Seite 1von 12

1 / 11 Prof.

CLAUDIA DANIA
Algoritmos
y
Estructuras de Datos
* Estructuras de Control
* Programacin Pascal
Prof. CLAUDIA DANIA
Analista Universitario de Sistemas
Especialista en Docencia Universitaria
Licenciada en Sistemas de Informacin
UTN - FRRO
2 / 11 Prof. CLAUDIA DANIA
Pseudocdigo
Esquemtico
Chapn
Accin 1
Accin 2
.
.
Accin n
Inicio del programa
Accin 1
Accin 2
.
Accin n
fin del programa
i
i
i
i
Accin 1
Accin 2
Accin n
SECUENCIA
ESTRUCTURAS DE CONTROL
Estas estructuras se usan en todos los programas que tengan que repetir un conjunto de instrucciones
cumpliendo con una condicin lgica cuando se debe elegir un grupo de sentencias entre varias
posibles.
Cuando NO se conoce el nmero preciso de repeticin se lo llama Bucle condicional.
Cuando SI se conoce el nmero de repeticin se lo llama Bucle incondicional.
Cuando se presente la necesidad de efectuar una decisin lgica para ver cual es la accin a realizar
entre dos posibles se denomina ejecucin condicional y cuando se elige un grupo de sentencias entre
varios grupos posibles se llama seleccin.
En cualquiera de las estructuras de control se pueden utilizar operadores relacionales (= < <= => > <>)
combinados no, con operadores lgicos (.OR. , .AND. , .NOT.).
3 / 11 Prof. CLAUDIA DANIA
Pseudocdigo
Esquemtico
Chapn
definir (variable)
variable
Comenzar el programa
definir (variable)
SI variable ENTONCES acciones verdaderas
SINO acciones falsas
fin del SI
Fin del programa
Evalua
la variable
de
decisin
Ejecutar acciones
por la alternativa
VERDADERA
i
DECISION (entre dos alternativas)
SI / IF THEN ELSE
Verdadera
i
Falsa
i
Ejecutar acciones
por la alternativa
FALSA
i
Av1
Av2
.
Avk
Af1
Af2
.
Afn
verdadera falsa
Pascal 1) IF expresin lgica THEN sentencia;
IF expresin lgica THEN BEGIN sentencia1,
sentencia2;
....;
sentenciaN
END;
2) IF expresin lgica THEN sentenciaA ELSE sentenciaB;
Sintaxis IF Condicin THEN Sentencia
ELSE Sentencia
La sentencia en el caso 1) se ejecuta si la expresin es verdadera, en el 2) se ejecuta una de las dos
sentencias (nunca las dos). En caso de tener una sola salida programada debe ser la del verdadero.
Tanto en el verdadero como en el falso se puede ejecutar una nica sentencia, por lo tanto si hay ms
de una se las debe comprender entre BEGIN - END. No debe aparecer un punto y coma (;) entre la
sentencia del verdadero y la palabra ELSE, debido a que interpretara como fin del IF y nunca ejecutara
el falso.
g g g g
g
$
#
g
4 / 11 Prof. CLAUDIA DANIA
Pseudocdigo
Definir (N)
PARA Indice = 1 a N hacer
Accin 1
Accin 2
.
Accin k
Comenzar el programa
definir (N)
hacer N veces
accin 1
accin 2
.
accin k
fin del hacer
Fin del programa
i
Se repiti
N veces?
i
Ejecutar todas las
acciones del bucle
i
g
REPETICION INCONDICIONAL
(cantidad conocida de veces)
PARA / FOR - DO
Pascal FOR variable de control:= valor1 TO / DOWNTO valor2 DO sentencia;
FOR variable de control:= valor1 TO valor2 DO BEGIN
sentencia1;
sentencia2;
....;
sentenciaN
END;
Sintaxis
Variable Valor TO Valor
FOR de := DO BEGIN Sentencia END
control Inicial DOWNTO Final
;
Permite que una accin se repita un nmero especfico de veces, debiendo incorporar BEGIN - END a ms
de una sentencia (situacin similar al WHILE-DO).
La variable de control debe ser una variable de cualquier tipo menos real debido a que cuenta cantidades
exactas, se la puede usar dentro del proceso de repeticin sin modificarla, pero finalizada la repeticin,
no puede utilizrsela sin redefinirla.
Dicha variable de control se puede incrementar (TO) o decrementar (DOWNTO) de uno en uno.
- Si valor1 es igual a valor2, la sentencia se ejecuta una sola vez.
- Si valor1 es menor que valor2 en DOWNTO la sentencia no se ejecutar nunca.
- Si valor1 es mayor que valor2 en el caso del TO, la sentencia no se ejecutar nunca.
Esquemtico
Chapn
g g
f f
$ #
g g
g
g g g g
g
g
g
5 / 11 Prof. CLAUDIA DANIA
Pseudocdigo Esquemtico
Definir (condicin)
MIENTRAS condicin HACER
Accin 1
Accin 2
.
Definir (condicin)
Comenzar el programa
definir (condicin)
MIENTRAS condicin HACER
accin 1
accin 2
.
definir (condicin)
fin del MIENTRAS
Fin del programa
i
Evalua la
condicin
Ejecutar todas las
acciones del bucle
i
f
REPETICION PRE - CONDICIONAL
(cantidad desconocida de veces)
MIENTRAS / WHILE DO
Verdadera
i
Falsa
Chapn
Pascal WHILE expresin lgica DO sentencia;
WHILE expresin lgica DO BEGIN sentencia1;
sentencia2;
....;
sentenciaN
END;
Sintaxis WHILE Condicin DO Sentencia
WHILE Condicin DO BEGIN Sentencia END
;
Las sentencias se ejecutan repetidamente en tanto la expresin lgica sea verdadera. Primero, verifica
y luego ejecuta, por lo cual puede no ejecutarse el grupo de sentencias si en la primera validacin sali
por falso. Debido a que despus del DO ejecuta una nica sentencia, si sta es compuesta (ms de 1
instruccin), se las debe programar comprendidas entre BEGIN - END. Debe tener una sentencia de
asignacin externa (lectura) o interna (:=) de la variable interviniente en la decisin, externa a la
estructura al comienzo y otra interna (en la estructura) para que no entre en loop.
g g g g
g g g g g g
f f
$ #
6 / 11 Prof. CLAUDIA DANIA
Pseudocdigo Esquemtico
Definir (condicin)
Accin 1
Accin 2
.
Accin k
HASTA condicin
Comenzar el programa
REPETIR
definir (condicin)
accin 1
accin 2
.
accin k
HASTA condicin
Fin del programa
Evalua la
condicin
Ejecutar todas las
acciones del bucle
i
REPETICION POS-CONDICIONAL
(cantidad desconocida de veces)
REPETIR - HASTA / REPEAT - UNTIL
Verdadera
i
Falsa
i
g
Chapn
Pascal REPEAT
sentencia 1;
sentencia 2;
....;
....;
sentencia n
UNTIL expresin lgica;
Sintaxis
REPEAT Sentencia UNTIL Condicin
;
La secuencia de sentencias se ejecutar repetidamente hasta que la expresin lgica sea verdadera, por
lo cual primero ejecuta y luego compara (a la inversa del WHILE-DO), ejecutndose al menos una vez
todas las sentencias. Esta estructura no necesita del BEGIN - END debido a que REPEAT - UNTIL actan
como corchetes, sealando comienzo y fin de la secuencia de repeticin.
g g g
f f
g
$
#
7 / 11 Prof. CLAUDIA DANIA
Pseudocdigo Esquemtico
definir (variable)
variable
Comenzar el programa
definir (condicin)
en CASO condicin SEA IGUAL
posibilidad 1: acciones posibilidad 1
posibilidad 2: acciones posibilidad 2
.
posibilidad n: acciones posibilidad n
otras: acciones para otras posibilidades
fin de CASO DE SELECCION
Fin del programa
Evalua
la variable
de
decisin
DECISION o SELECCION
(ejecucin condicional, entre varias alternativas)
SELECCION MULTIPLE / CASE
i
Ejecutar
acciones
para
posibilidades
no propuestas
i
acciones de
posibilidades
no previstas
posibilidad 1
Ejecutar
acciones
=
posibilidad 1
Ejecutar
acciones
=
posibilidad n
. . . . .
acciones
para variable
=
posibilidad 1
posibilidad 2
otras
posibilidades posibilidad n
. . .
acciones
para variable
=
posibilidad 2
acciones
para variable
=
posibilidad n
Chapn
Ejecutar
acciones
=
posibilidad 2
Pascal CASE expresin OF
lista de rtulo1 : sentencia1;
lista de rtulo2 : sentencia2;
....;
lista de rtuloN : sentenciaN
END;
Sintaxis
CASE Selector OF Etiqueta Case : Sentencia END
,
;
Permite la seleccin de un grupo particular de sentencias entre varios grupos posibles, la seleccin se
hace sobre el valor de una expresin denominada selector.
La expresin no puede ser real, generalmente es una variable simple.
Cada rtulo es uno de los valores posibles de la expresin, no deben respetar un orden determinado. Si
las sentencias son estructuradas (ms de una) se las debe especificar entre BEGIN - END.
Se permiten sentencias nulas. Si el valor de la expresin no coincide con ningn rtulo, la accin a
realizar estar indefinida (algunas versiones Pascal incluyen la clasula OTHERWISE que especifica que
hacer en dicho caso).
CASE puede ser una alternativa de la estructura IF -THEN -ELSE.
A diferencia de sta, las comparaciones se hacen slo por igualdad.
g g g g
$
#
g g
$
#
g
!
! !
!
8 / 11 Prof. CLAUDIA DANIA
Todas estas estructuras de control se pueden anidar, ya sean del mismo tipo o distintas. Ejemplo
Sentencia de Lectura (read readln)
Sentencia de Asignacin (:=)
expresin
Rot.1 Rot.2 Rot.3 ....... Rot N
Funcin
FOR variab.
expresin
V F
Procedimiento
Sentencia de Escritura (write writeln)
Ejemplos:
1) Dado el ingreso de la altura actual del ro, determinar si supera el valor de la media anual.
exh (ingrese el valor medio anual)
leer (medio)
exh (ngrese medida actual)
leer (actual)
actual > medio
exh (supera) exh (no supera)
2) Dado el ingreso de la altura actual del ro, durante 30 das, determinar da por da, si supera el valor de
la media anual.
exh (ingrese el valor medio anual)
leer (medio)
para dias = 1 a 30
exh (ngrese medida actual)
leer (actual)
actual > medio
exh (supera) exh (no supera)
9 / 11 Prof. CLAUDIA DANIA
3) Dado el ingreso por da, de la altura actual del ro, considerando altura = 0 como fin de datos,
determinar da por da, si supera el valor de la media anual.
exh (ingrese el valor medio anual)
leer (medio)
exh (ngrese medida actual)
leer (actual)
Mientras actual <> 0
actual > medio
exh (supera) exh (no supera)
exh (ngrese medida actual)
leer (actual)
4) Dado el ingreso por da, de la altura actual del ro, considerando altura = tope como ltimo dato a
procesar, determinar da por da, si supera el valor de la media anual.
exh (ingrese el valor tope)
leer (tope)
exh (ingrese el valor medio anual)
leer (medio)
exh (ngrese medida actual)
leer (actual)
actual > medio
exh (supera) exh (no supera)
hasta actual = tope
5) Dado el ingreso de la altura actual del ro, compararla con las ltimas 4 estadsticas y establecer con
cual de ellas coincide
exh (ingrese estadstica 1)
leer (e1)
exh (ingrese estadstica 2)
leer (e2)
exh (ingrese estadstica 3)
leer (e3)
exh (ingrese estadstica 4)
leer (e4)
exh (ingrese el valor actual)
leer (actual)
actual
e1 e2 e3 e4 otros
exh exh exh exh exh
(coincide con 1) (coincide con 2) (coincide con 3) (coincide con 4) (NO coincide)
10 / 11 Prof. CLAUDIA DANIA
INTRODUCCION A LA PROGRAMACION
Hasta aqu hemos aprendido los principios bsicos de la Diagramacin Estructurada, donde cada algoritmo
est compuesto por una serie de estructuras lgicas que en conjunto tienen un nico comienzo y un
nico final. Con dichas estructuras se puede resolver cualquier tipo de problemas y ellas son: secuencia
- decisin - repeticin.
La diagramacin estructurado permite limitar el diseo del software a un pequeo nmero de operaciones,
facilitando de esta manera su legibilidad, prueba y mantenimiento.
Para lograr sto, no hemos valido de una herramienta grfica de presentacin de algoritmos como el
Diagrama de Chapn, que no nos permite violar los principios de la Programacin Estructurada y podemos
visualizar claramente el flujo de control del programa.
Sin embargo esta es slo una forma de representar un algoritmo, para poder programarlo en una
computadora debemos escribirlo de otra manera, es decir en algn lenguaje de programacin orientado
al tipo de problema que queremos resolver.
Estudiaremos Pascal como un medio para aplicar los principios de la Programacin Estructurada.
PRESENTACION DE UN PROGRAMA PASCAL
Un programa Pascal consta de dos partes esenciales: una descripcin de acciones que deben realizarse
y una descripcin de los datos que son manipulados por esas acciones.
Las acciones se describen por las llamadas sentencias y los datos por las definiciones y declaraciones.
1. Cabecera (PROGRAM)
2. Bloque
a) Declaraciones de etiquetas (LABEL) (no se usarn)
Definiciones de Constantes (CONS)
Definiciones de Tipo (TYPE)
Definiciones de Variables (VAR)
Procedimientos y Funciones (PROCEDURE / FUNCTION)
b) Sentencias.
1. LA CABECERA: est constituida por una lnea que comienza con la palabra PROGRAM, seguida del
nombre del programa y las referencias a los archivos de entrada y salida, las cuales van encerradas entre
parntesis y separados por coma. Utilizaremos INPUT, OUTPUT para referirnos al teclado y a la pantalla
respectivamente.
2. EL BLOQUE: consiste de una parte declarativa (a) y una parte ejecutable (b). Las definiciones deben
presentarse en el orden arriba establecido, aunque no es obligatorio que aparezcan todas en un programa.
La parte ejecutable debe estar comprendida entre BEGIN END. .
a) Definicin de Constantes: Sirve para darle un nombre simblico (identificador) a un valor numrico
o una cadena que permanecer inalterable a lo largo del programa.
Definicin de Tipos: Es para definir a un identificador por un tipo standard o un tipo definido por el
usuario (ej.: subrango, enumerado). Este identificador no puede usarse como variable, sino que le
asigna un tipo de dato a una variable.
Definicin de Variables: Se le da un nombre al identificador y se le asigna un tipo (no un dato
concreto). Deben estar todas las variables que se utilicen en el programa.
Procedimientos y Funciones: Estos dos tipos de estructuras se declaran antes del inicio del programa.
En su interior se lo escribe con las mismas condiciones que un programa principal (declaracin de
constantes, tipos, variables y procedimientos - funciones si es que internamente los invocan) y sus
sentencias deben estar comprendidas entre BEGIN ... END; (con un punto y coma final). No existen
prioridades de programacin entre Procedimientos y Funciones, salvo el caso de que un procedimiento
llame a otro/s procedimientos o funciones, stos deben estar declarados previamente.
b) Sentencias se deben seguir las condiciones establecidas segn las estructuras de control y de
asignacin. Este grupo de sentencias se la debe pensar como una nica gran sentencia, por lo cual
deben estar comprendidas entre BEGIN ... END. , ste ser el nico END que tenga un punto indicando
fin del programa.
11 / 11 Prof. CLAUDIA DANIA
Las reglas de puntuacin son las siguientes:
a) EL PUNTO y COMA se usa como separador (no como terminacin), entre sentencias y/o estructuras
sucesivas.
b) BEGIN ... END son llaves que indican comienzo y fin de una sentencia compuesta, es por eso que no
necesita del punto y coma despus del BEGIN.
c) UN PUNTO y COMA innecesarios se interpretara como una sentencia nula (sentencia vacia).
Generalmente no tendr efecto apreciable en la ejecucin del programa, aunque hay situaciones en la
que puede alterar la lgica del mismo.
d) TODO PROGRAMA debe terminar con un punto en la ltima instruccin END.
Como complemento de programacin existen los denominados SEPARADORES, a saber:
- COMENTARIOS: Son mensajes, no ejecutables, para aclarar distintas etapas en el transcurso del
programa. Los mismos pueden aparecer entre (*....*) {....}.
- BLANCOS: Son los espacios que se deben colocar dentro de una instruccin para poder separar las
palabras y as reconocerlas.
- RETORNO: Se utiliza para poder pasar de una instruccin a la siguiente, cambiando de rengln,
cuando se est tipeando el programa en la computadora.
- SENTENCIA DE ASIGNACION: es una sentencia simple, que asigna un dato a una variable, se
presenta con dos puntos mas un signo igual (:=).
PROGRAM modelo (INPUT,OUTPUT):
(* Declaracin de constantes *)
CONST factor = 0.5;
pi = 3.1415926;
cartel = 'Nombre usuario',
(* Declaracin de tipos *)
TYPE dias = (lunes,martes,miercoles,jueves,viernes);
color = (rojo,azul,amarillo);
letra ='A'.. Z';
(* Declaracin de variables*)
VAR cont: INTEGER;
z: BOOLEAN;
suma: REAL,
remera: COLOR;
vec: ARRAY [1 .. 10] OF REAL;
val: ARRAY [dias] OF INTEGER;
(* Declaracin de procedimientos o funciones *)
PROCEDURE XX (parametros);
VAR j : INTEGER;
BEGIN
......
END;
FUNCTION prueba (parametros): tipo de la funcin;
BEGIN
.....
END;
(*Comienzo del programa principal*)
BEGIN
....;
XX (...) ;
SUMA := prueba (..) + 32.25 ;
....
(* Ultima instruccin del programa principal *)
END.

Das könnte Ihnen auch gefallen