0% encontró este documento útil (0 votos)
92 vistas

Unidad III Procesos y Modulos

Este documento presenta apuntes sobre procesos y módulos para las carreras de ingeniería informática, ingeniería en sistemas e ingeniería en redes y telecomunicaciones. Explica conceptos clave como diseño modular, subprogramas, parámetros, funciones, procedimientos y llamadas a subprogramas. Fue elaborado en 2020 por el ingeniero Mario Milton López para la Facultad de Ingeniería en Ciencias de la Computación y Telecomunicaciones.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
92 vistas

Unidad III Procesos y Modulos

Este documento presenta apuntes sobre procesos y módulos para las carreras de ingeniería informática, ingeniería en sistemas e ingeniería en redes y telecomunicaciones. Explica conceptos clave como diseño modular, subprogramas, parámetros, funciones, procedimientos y llamadas a subprogramas. Fue elaborado en 2020 por el ingeniero Mario Milton López para la Facultad de Ingeniería en Ciencias de la Computación y Telecomunicaciones.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 12

FACULTAD DE INGENIERIA EN

CIENCIAS DE LA COMPUTACION
Y TELECOMUNCIACIONES

APUNTES
NOMBRE DE LA ASIGNATURA
INTRODUCCION A LA INFORMATICA

PROCESOS Y MODULOS
CARRERA

INGENIERIA INFORMATICA
INGENIERIA EN SISTEMAS
INGENIERIA EN REDES Y TELECOMUNICACIONES

PERIODO DE ELABORACION
2020

ELABORADO POR
ING. MARIO MILTON LOPEZ WINNIPEG
PROCESOS Y MODULOS
1. Diseño Modular
1.1. Subprogramas
1.2. Parámetros
1.3. Funciones
1.4. Procedimientos
1.5. Llamadas a subprogramas
1.6. Diferencias entre funciones y procedimientos.
1.7. Módulos/Librerías
2. Ejercicios de aplicación
1. DISEÑO MODULAR
El diseño modular es la capacidad que tiene un sistema de ser estudiado, visto o
entendido como la unión de varias partes que interactúan entre sí y que trabajan para
alcanzar un objetivo común, realizando cada una de ellas una tarea necesaria para la
consecución de dicho objetivo.

La programación modular es un paradigma de programación que consiste en dividir un


programa en módulos ó subprogramas con el fin de hacerlo más legible y manejable. Se
presenta históricamente como una evolución de la programación estructurada para
solucionar problemas de programación más grandes y complejos de lo que ésta puede
resolver.

Al aplicar la programación modular, un problema complejo debe ser dividido en varios


subproblemas más simples, y estos a su vez en otros subproblemas más simples. Esto
debe hacerse hasta obtener subproblemas lo suficientemente simples como para poder
ser resueltos fácilmente con algún lenguaje de programación. Ésta técnica se llama
refinamiento sucesivo, divide y vencerás ó análisis descendente (Top-Down).

1.1. SUBPROGRAMAS

Los subprogramas son rutinas, procedimientos o conjuntos de instrucciones que


realizan una labor específica. Los subprogramas o subrutinas nacieron de la
necesidad de no repetir innecesariamente un trabajo ya hecho. Pueden invocarse
desde el cuerpo del programa principal cuantas veces se desee. Constituyen el
núcleo de lo que se denomina programación estructurada, y permiten la
descomposición de un problema complejo en subproblemas más sencillos
abordables de forma independiente. Los subprogramas se dividen en
procedimientos o funciones.

Sintaxis
Definición de subprograma

El nombre de un subprograma que lo identifica aparece por lo menos dos veces en


el programa: en la definición y en la invocación.
1.2. PARAMETROS
Un parámetro es una variable que puede pasar su valor a un procedimiento
desde el principal o desde otro procedimiento. Existen ocasiones en que es
necesario enviar al procedimiento ciertos valores para que este los use en
algún proceso. Estos valores que se pasan del cuerpo principal del programa o
de un procedimiento a otros procedimientos se llaman parámetros.

Existen dos tipos de parámetros:


 Un parámetro por valor tiene un tratamiento similar a una variable
local. Se inicializa en el momento de la invocación del procedimiento con
el valor del parámetro actual. Al terminar la ejecución del procedimiento
la variable asociada al parámetro se destruye y su valor se pierde.

Ejemplo:
( A , B : INTEGER )

 No van precedidos por la palabra reservada VAR.


 Se realiza una copia del valor del parámetro real en una
posición de memoria diferente a la del parámetro real y se
designa esta nueva posición de memoria con el identificador
del parámetro formal.

 Un parámetro por referencia introduce un nuevo nombre para referirse


a la celda de memoria que corresponde al parámetro actual. Esto
significa que un mismo espacio de memoria tiene dos identificadores.
Ejemplo:
( VAR VALOR : INTEGER )

 Van precedidos por la palabra reservada VAR.


 Se designa la posición de memoria del parámetro real con el
identificador del parámetro formal.

Condiciones para la asociación de parámetros o llamadas a subprogramas.


 Debe haber el mismo número de parámetros actuales que de
parámetros formales
 Los tipos de los parámetros actuales y formales deben coincidir. Un
parámetro actual de tipo entero se puede asociar con un parámetro por
valor de tipo real
 Un parámetro actual asociado con un parámetro por variable debe ser
una variable. No puede ser una constante o una expresión.
Ejemplo: Suponiendo los valores de las siguientes variables:
primero = 3,5 segundo = 5,6 cuarto=8,9 x=”A”

Entonces cuando se ejecute el subalgoritmo CALCULAR los espacios de


memoria de dicho algoritmo serán:
A= 3,5 B= 5,6 C= 20 D= 8,9 E=” A” tomando en cuenta lo siguiente:

A/primero ocupan el mismo espacio de memoria


B/Segundo ocupan el mismo espacio de memoria
C ocupa un nuevo espacio de memoria
D ocupa un nuevo espacio de memoria
E ocupa un nuevo espacio de memoria

1.3.FUNCIONES
Las funciones son subprogramas que forman parte de alguna librería del
lenguaje de programación o son definidos o declarados, en cualquiera de los
casos la cabecera tiene la siguiente sintaxis.

FUNCTION MAYOR (A, B: INTEGER): INTEGER;


La declaración de parámetros de una función tiene la siguiente sintaxis

A, B : INTEGER

 Los identificadores dan nombre a los parámetros formales


 La palabra reservada VAR afecta a todos los identificadores posteriores
hasta la definición del tipo.
 Los valores de los parámetros reales de la llamada al procedimiento se
asocian uno a uno con los parámetros formales.
La declaración de variables de una función tiene la siguiente sintaxis

VAR MAY: INTEGER ;

El cuerpo principal de una función o también llamado instrucciones tiene la


siguiente sintaxis

BEGIN
IF A>B THEN
MAY:=A
ELSE
MAY:=B;
MAYOR: =MAY;
END
Las funciones deben utilizarse para calcular un único valor y no deben modificar
sus parámetros reales de entrada. Salvo por motivos de eficiencia, los
parámetros deben ser todos por valor.

Las funciones se utilizan como parte de las expresiones.

Ejemplo: Implementar una función que determine cuál es el mayor valor de dos
números.

FUNCTION MAYOR(A , B : INTEGER) : INTEGER; CABECERA


VAR SUBPROGRAMA
MAY: INTEGER;
BEGIN DECLARACION DE
IF A>B THEN PARAMETROS
MAY:=A
DECLARACION
ELSE
MAY:=B;
INSTRUCCIONES
MAYOR: =MAY;
END;
1.4. PROCEDIMIENTOS
Los procedimientos son subprogramas que forman parte de alguna librería del
lenguaje de programación o son definidos o declarados, en cualquiera de los
casos la cabecera tiene la siguiente sintaxis.

PROCEDURE PEDIR_NUMERO( MSG : STRING ; VAR VALOR:INTEGER);

La declaración de parámetros de un procedimiento tiene la siguiente sintaxis

MSG : STRING ; VAR VALOR:INTEGER

La declaración de variables de un procedimiento tiene la siguiente sintaxis

VAR LINEA: STRING ;


El cuerpo principal de un procedimiento o también llamado instrucciones
tiene la siguiente sintaxis

BEGIN
LINEA:=’-------------------------------------‘;
Writeln(LINEA);
Write(‘Digite un numero ‘);
Readln(Valor);
Writeln(LINEA);
END
Los procedimientos deben usarse para computar uno o más valores, producir
una entrada o salida de datos, es decir provoca un cambio de estado.

Ejemplo: Si bien es cierto que para introducir un valor por teclado la


sentencia solo es una línea, también podríamos considerar otros elementos
como ser el mensaje para la introducción de un dato, el color, el tipo de letra
y otros factores que son exclusivos de la orden que permitiría introducir un
valor numérico, por lo que se propone crear un procedimiento que permita
introducir un numero por teclado.

PROCEDURE Pedir_numero( CABECERA SUBPROGRAMA


msg: String ; var Valor: Integer);
VAR DECLARACION DE
LINEA : STRING; PARAMETROS
BEGIN
LINEA:=’-------------------------------------‘; DECLARACION
Writeln(LINEA);
Write(‘Digite un numero ‘); INSTRUCCIONES
Readln(Valor);
Writeln(LINEA);
END;

1.5. Llamadas a subprogramas


Las llamadas a subprogramas (funciones o procedimientos) deben se realizan
según el tipo de subprograma respetando el nombre del subprograma y el
orden y tipo de datos establecidos en los parámetros de los subprogramas.
Objetivo
 Se suspende la ejecución del programa actual y se pasa el control al
procedimiento invocado.
 Se pasan los valores de los parámetros reales (expresiones) a los
parámetros formales del procedimiento.
 Se ejecuta el código del procedimiento.
 Finalizada la ejecución del procedimiento, devuelve el control al
programa original para que continúe la ejecución en la instrucción que
siguiente a la llamada al procedimiento.
Ejemplo:
Program Ejercicio;
Uses crt;
// definición e implementación de los subprogramas
Var
M,N1, N2 : integer;
BEGIN
Pedir_numero(‘digite un valor ‘,n1);
Pedir_numero(‘digite un valor ‘,n2);
M:=mayor(n1,n2);
Writeln (‘el mayor es ‘,M);
END.

Un procedimiento puede ser invocado desde el programa principal o desde otros


procedimientos o funciones.
1.6. Diferencias entre funciones y procedimientos
 Al procedimiento se le llama mediante una instrucción de llamada al
procedimiento.
 La función se utiliza como parte de una expresión 2. Las funciones deben
devolver un único valor a la unidad del programa que les llamó.
 Los procedimientos pueden no devolver ningún valor (realizar una tarea)
o devolver varios.
 Las funciones devuelven el valor mediante la asignación del valor al
identificador del nombre de la función.
 Los procedimientos devuelven los valores mediante asignaciones (o
lecturas) a los parámetros por variable
1.7. Módulos/ Unidades
Un módulo es cada una de las partes de un programa que resuelve uno de los
subproblemas en que se divide el problema complejo original. Cada uno de
estos módulos tiene una tarea bien definida y algunos necesitan de otros para
poder operar.
En caso de que un módulo necesite de otro, puede comunicarse con éste
mediante una interfaz de comunicación que también debe estar bien definida.

Si bien un módulo puede entenderse como una parte de un programa en


cualquiera de sus formas y variados contextos, en la práctica es común
representarlos con procedimientos y funciones. Adicionalmente, también
pueden considerarse módulos las librerías que pueden incluirse en un
programa o, en programación orientada a objetos, la implementación de un
tipo de dato abstracto.
Las unidades, módulos, librerías o units, como se le conocen en Delphi y Object
Pascal, son importantes ya que nos permiten una mejor estructuración de
nuestro código fuente, facilitando así el almacenamiento de nuestros
procedimientos y funciones en un archivo independiente, lo que facilita de esta
forma su reutilización para futuros proyectos, su sintaxis seria:

Ejemplo: Se debe crear la unidad creando un archivo texto llamado micaja.pas


Unit micaja;
Interface
Uses crt;
Procedure pedir_numero(msg: string; var valor: integer);
Function mayor(a,b:integer):integer;
Implementation
Procedure pedir_numero(msg: string; var valor: integer);
Begin
Writeln(msg);
Readln(valor);
End;
Function mayor(a,b:integer):integer;
Begin
If a>b then may:=a
Else may:=b;
Mayor:=may;
End;
End.
Llamadas a las unidades
Para utilizar una unidad se debe crear un programa principal y en la sección uses
se debe invocar o llamar a la unidad.
Practica
Dado dos números enteros elabore un programa que calcule el mayor valor de
ambos, usando la unidad micaja.

Program Demo;
Uses crt,micaja;
var
M,N1, N2 : integer;
BEGIN
Pedir_numero(‘digite un valor ‘,n1);
Pedir_numero(‘digite un valor ‘,n2);
M:=mayor(n1,n2);
Writeln (‘el mayor es ‘,M);
END.
2. EJERCICIOS
1. Implemente los siguientes subprogramas:

Procedure Crear(var Qvariable: Integer);


// Objetivo colocar en 0 el contenido del parámetro formal Qvariable para que la
// variable con que se invoque este procedimiento tenga el valor 0
Function Numero_digitos( Ddonde: Integer): Byte;
// Objetivo Contar los dígitos que tiene el parámetro Ddonde y retornar dicho valor
Function Digito( DDonde: Integer; QLugar: Byte): Byte;
// Objetivo Obtener el digito que indica el parámetro Qlugar del parámetro DDonde.
Procedure AsignarValor( var AQVariable:Integer;Numero:Integer);
// Objetivo colocar el valor del parámetro Numero en el parámetro AQVariable a fin
// de que la variable que se invoque en el lugar de AQvariable tenga dicho valor.
Function ObtenerValor(DQVariable:Integer): Integer;
// Objetivo obtener el valor esta guardado en DQVariable y Retornar el mismo.
Function EsPrimo(QNumero:Integer):Boolean;
// Objetivo retornar el valor true si Qnumero es primo caso contrario false.

2. Cree la Unidad denominada UNumero y coloque en dicha unidad los


subprogramas indicados en la activida 1.

3. Ejecute el programa determine si un numero N es primo, usando la unidad


denominada UNumero.
Program demo;
Uses crt,unumero;
Var N,K: Integer;
Begin
Crear(N);
Writeln(‘Mostrando el valor de N ‘,obtener_valor(N));
Writeln(‘Digite un numero ‘);
Readln(k);
AsignarValor(N,K);
Writeln(‘Mostrando el nuevo valor de N ‘,obtener_valor(N));
If esprimo(N) then
Writeln(obtener_valor(n),’ SI es un numero primo ‘)
else
Writeln(obtener_valor(n),’ NO es un numero primo ‘);
End.

También podría gustarte