Publicado el 26 de Abril del 2020
968 visualizaciones desde el 26 de Abril del 2020
146,7 KB
25 paginas
Creado hace 13a (26/08/2010)
Introducción a los subalgoritmos o subprogramas
• Soluciona problemas complejos al dividirlos en subprogramas y
luego dividirlos estos en otros mas simples, hasta que estos sean
mas fáciles de resolver. Esta técnica se llama “divide y vencerás” .
Introducción a los subalgoritmos o subprogramas
• Se dice que el programa principal invoca al subprograma, el
subprograma ejecuta la tarea y luego devuelve el control al
programa.
Introducción a los subalgoritmos o subprogramas
• Un programa puede llamar a su ves a sus
propios subprogramas
COMUNICACIÓN CON SUBPROGRAMAS: Parámetros
La lista de parámetros esta compuesta de los nombres de
los mismos y del tipo de datos que representan, los del
mismo tipo se separan con comas "," y cada tipo diferente
se separa con punto y coma ";".
Procedure Ejemplo(a, b : Integer; c, d : String);
Para llamar a un procedimiento que utiliza parámetros se
pueden utilizar como tales otras variables o constantes,
siempre y cuando sean del mismo tipo que los declarados.
Ejemplo(1, 2, 'Hola', 'Adios');
Funciones y Procedimientos: Subprogramas
Los parámetros
•
•
•
•
•
•
Son canales de comunicación para pasar datos ente programas y subprogramas en
ambos sentidos.
Estan asociados a variables. constantes, expresiones, etc., y por tanto, se indican
mediante los correspondientes identificadores o expresiones.
Se utilizan en la llamada o invocación al subprograma se denominan parámetros
actuales, reales o argumentos, y son los que entregan la información al subprograma.
Los parámetros que la reciben en el subprograma se denominan parámetros formales o
ficticios y se declaran en la cabecera del subprograma.
Los parámetros son opcionales y si no se necesitan no se deben usar. Para utilizarlos
es necesario declararlos: PROCEDURE nombre (lista de parámetros);
En una llamada a un subprograma tiene que verificarse que:
–
El número de parámetros formales debe ser igual al de actuales.
Los parámetros que ocupen el mismo orden en cada una de las Listas deben ser compatibles
–
en tipo.
Ej. Programa que use parametros ..
PROGRAM Parametros;
VAR
Saludo : String;
PROCEDURE Imprime_5 (a : String);
VAR
Contador : Integer;
BEGIN
FOR contador := 1 to 5 DO
{Imprime 5 veces la cadena almacenada }
WriteLn(a);
{en la variable "a", que es la información}
END;
{que llega como parámetro }
BEGIN
Saludo := 'Bienvenidos al programa';
Imprime_5 (Saludo);
{llama al procedimiento Imprime_5, usando como}
{parámetro la variable Saludo }
Imprime_5 ('Fin');
{Utiliza la cadena "fin" como parámetro }
END.
Creación de los procedimientos
1.- Que debe hacer el procedimiento
2.- Declaramos el procedimiento, despues de haber declarado variables y
constantes, antes del cuerpo del programa principal.
PROCEDURE Titulo;
BEGIN
WriteLn ('Programa de Turbo Pascal');
END;
Uso de los procedimientos
Una vez declarado el procedimiento es posible utilizarlo como una instrucción
de Turbo Pascal. Al uso de un procedimiento se le conoce como llamada al
procedimiento.
PROGRAM Procedimientos;
PROCEDURE Titulo;
BEGIN
WriteLn ('Programa de Turbo Pascal');
END;
BEGIN
WriteLn ('Programa ejemplo del uso de procedimientos');
Titulo;
{Llama al procedimiento}
WriteLn;
Titulo;
{Vuelve a llamar al procedimiento}
END;
Variables locales y globales
En Pascal cada
identificador tiene un
campo de acción,
solo dentro de éste
campo es posible
utilizarlo. Ej.: Las
variables, que pueden
ser globales o locales.
PROGRAM Variables;
VAR
Hola : String;
PROCEDURE prueba;
VAR
Adios : String;
BEGIN
{En esta sección si es posible usar la variable Hola}
Adios := 'Adios, que les vaya bien';
WriteLn (Adios);
END;
BEGIN
{En esta sección no se reconoce a la variable Adios}
Hola := 'Hola, bienvenidos al programa';
WriteLn (Hola);
WriteLn (Adios);
{Al compilar el programa se generará un error ya}
prueba;
END.
ÁMBITO: VARIABLES LOCALES Y GLOBALES
Las variables utilizadas en los principales y subprogramas se clasifican en dos
tipos:
· Variables locales.
· Variables globales.
Una variable local es aquella que está declarada y definida dentro de un
subprograma, en el sentido de que está dentro de ese subprograma y es
distinta de las variables con el mismo nombre declaradas en cualquier parte
del programa principal. El significado de una variable se confina al
procedimiento en el que está declarada.
Una variable global es aquellas que está declarada para el programa o
algoritmo principal, del que dependen todos los subprogramas.
La parte del programa/algoritmo en que una variable se define se conoce como
ámbito (scope, en inglés)
Ventajas de variables locales: Hace a los subprogramas independientes, con la
comunicación entre el programa principal y los subprogramas manipulados
estructuralmente a través de la lista de parámetros.
ÁMBITO: VARIABLES LOCALES Y GLOBALES
ÁMBITO: VARIABLES LOCALES Y GLOBALES
Definición de las funciones
Las funciones son, al igual que los procedimientos, un conjunto de sentencias
que se ejecutan constantemente, la diferencia entre éstas y los
procedimientos es que las funciones regresan un valor.
FUNCTION nombre(parámetros) : tipo_de_datos;
FUNCTION Promedio (a, b : Real) : Real; {Promedio de dos números reales}
BEGIN
Promedio := (a + b) / 2;
END;
Uso de las funciones
Como las funciones devuelven
un valor específico la forma
más usual de utilizarlas es
por medio de asignaciones
de una variable a la
función.
PROGRAM Funciones;
VAR
X, Y, Z : Real;
FUNCTION Promedio (a, b : Real) : Real;
{Promedio de dos números reales}
BEGIN
Promedio := (a + b) / 2;
END;
BEGIN
X := 5.89;
Y := 9.23;
Z := Promedio (X, Y);
{Iguala Z al valor devuelto por la función
Promedio}
WriteLn('El promedio de ',X,' y ',Y,' es:
',Z);
END.
Procedimieto HALT
El procedimiento HALT ya se habia revisado anteriormente, pero se tomó
como una instrucción, siendo que es realmente un procedimiento
predefinido de Turbo Pascal que nos permite terminar nuestro programa en
cualquier punto del mismo.
El procedimiento EXIT provoca la salida del procedimiento que se está
ejecutando y nos regresa al lugar de donde fue llamado.
Procedimientos INC y DEC
El procedimiento INC incrementa en 1 el contenido de cualquier variable de
tipo entero, es lo mismo en un programa teclear:
Variable := Variable + 1;
o telcear:
Inc(Variable);
El procedimiento DEC decrementa en 1 el valor de cualquier variable de
tipo entero que se le indique, se usa igual que INC:
DEC (Variable);
Procedimiento versus función
Los procedimientos y funciones son subprogramas cuyo diseño y misión son
similares, sin embargo, existen unas diferencias esenciales entre ellos:
1. Un procedimiento es llamado desde el algoritmo o programa principal
mediante su nombre y una lista de parámetros actuales, o bien con la
instrucción llamar_a (call).
Al llamar al procedimiento se detiene momentáneamente el programa que
se estuviera realizando y el control pasa al procedimiento llamado.
Después de que las acciones del procedimiento se ejecutan, se regresa a
la acción inmediatamente siguiente a la que se llamó.
2. Las funciones devuelven un valor, los procedimientos pueden devolver 0,1 o
n valores y en forma de lista de parámetros.
3. El procedimiento se declara igual que la función, pero su nombre no está
asociado a ninguno de los resultados que obtiene.
Programacion Estructurada
• Los avances tecnológicos no necesariamente están acompañados por
una evolución en las técnicas de construcción de programas.
• Se requieren programas mas complejos y de gran tamaño.
• Diseño Descendente o Diseño Top-Down
• Las técnicas de desarrollo y diseño de programas, que se utilizan en la
programación convencional o lineal, tienen inconvenientes, sobre todo a
la hora de verificar y modificar programas.
• Técnicas que facilitan la la comprensión del programa: Programación
estructurada
• Pioneros de esta metodología: Dijkstra, Warnier, Jackson, Chapin y
Bertini; y de los Lenguajes de Programación Estructurada Niklaus Wirth,
Dennis Ritchie y Kenneth Thompson.
Estructura: Es la descomposición ordenada de las partes de un todo.
Conjunto de elementos interrelacionados que forman un todo.
Programación Estructurada: Consiste en el diseño, escritura y prueba
de un programa, construido con estructura, o sea con una organización
ordenada del todo en partes interdependientes.
Herramientas. Estructuras Básicas. Figuras Lógicas.
Teorema de la Estructura
Aporte de BOHN y JACOPINI (1966). Matemáticamente todo problema puede
resolverse con tres figuras lógicas (secuencia, alternativa y repetitiva o
iterativa).
La programación estructurada se consigue mediante la descomposición en
partes, segmentos, rutinas o subproblemas interdependientes; que pueden
ser considerados como las unidades razonablemente pequeñas, que deben
representar por si mismas un contenido lógico, coherente y completo.
Esta segmentación debe realizarse de lo general a lo particular, organizando
por niveles con grado de detalle creciente, hasta lograr que todos los
tratamientos hayan sido explícitamente considerados.
Esto se puede esquematizar de distintas maneras (conjuntos, segmentos,
llaves).
Este procedimiento recibe el nombre de refinamiento paso a paso, el lema
didáctico es: “divide y será fácil”.
Teorema de la Estructura
Se basa en el concepto de diagrama o programa
propio, el mismo consiste en que toda estructura
tenga un solo punto de entrada y un solo punto
de salida.
Un diagrama es estructurado si tiene únicamente
como figuras lógicas: secuencia, capacidad de
decisión y capacidad de repetición; y si además
está construido con estructura.
Métodos
Con la filosofía de la programación estructurada distintos autores han desarrollados trabajos
que varían unos de otros en el método, pero todos tienen como bases los conceptos
teóricos de Dijkstra.
Método Jackson. La filosofía del mismo tiene caracterí
Comentarios de: Introducción a los subalgoritmos o subprogramas (0)
No hay comentarios