MODULARIDAD PROCEDIMIENTOS FUNCIONES INTRODUCCIÓN A LA PROGRAMACIÓN.
-
Upload
lolita-martinez -
Category
Documents
-
view
233 -
download
4
Transcript of MODULARIDAD PROCEDIMIENTOS FUNCIONES INTRODUCCIÓN A LA PROGRAMACIÓN.
![Page 1: MODULARIDAD PROCEDIMIENTOS FUNCIONES INTRODUCCIÓN A LA PROGRAMACIÓN.](https://reader036.fdocument.pub/reader036/viewer/2022062500/5665b4341a28abb57c8ff382/html5/thumbnails/1.jpg)
MODULARIDAD
PROCEDIMIENTOS
FUNCIONES
INTRODUCCIÓN A LA PROGRAMACIÓN
![Page 2: MODULARIDAD PROCEDIMIENTOS FUNCIONES INTRODUCCIÓN A LA PROGRAMACIÓN.](https://reader036.fdocument.pub/reader036/viewer/2022062500/5665b4341a28abb57c8ff382/html5/thumbnails/2.jpg)
DIVIDE Y VENCERÁS Recordemos que cuando nos encontramos frente a
un gran problema, lo mejor que podemos hacer para solucionarlo es dividirlo en pequeños problemas.
Gran
problema
P2
P1
P3P4
P5
![Page 3: MODULARIDAD PROCEDIMIENTOS FUNCIONES INTRODUCCIÓN A LA PROGRAMACIÓN.](https://reader036.fdocument.pub/reader036/viewer/2022062500/5665b4341a28abb57c8ff382/html5/thumbnails/3.jpg)
DIVIDE Y VENCERÁS Ahora tenemos que solucionar pequeños
problemas mucho más fáciles de resolver.
P1S1
P2S2
PnSn
............
![Page 4: MODULARIDAD PROCEDIMIENTOS FUNCIONES INTRODUCCIÓN A LA PROGRAMACIÓN.](https://reader036.fdocument.pub/reader036/viewer/2022062500/5665b4341a28abb57c8ff382/html5/thumbnails/4.jpg)
DIVIDE Y VENCERÁS Finalmente debemos juntar los “pedazos” de
solución y obtendremos nuestro problema resuelto.
![Page 5: MODULARIDAD PROCEDIMIENTOS FUNCIONES INTRODUCCIÓN A LA PROGRAMACIÓN.](https://reader036.fdocument.pub/reader036/viewer/2022062500/5665b4341a28abb57c8ff382/html5/thumbnails/5.jpg)
L ec tu ra d e l R ad io C á lcu lo d e S u p erfic ie C á lcu lo d e L on g itu d V isu a liza r R esu ltad os
P rog ram a P rin c ip a l
DIVIDE Y VENCERÁS
Por ejemplo: Leer el radio de un círculo y calcular e imprimir su superficie y longitud
La resolución de un problema comienza con una descomposición modular
![Page 6: MODULARIDAD PROCEDIMIENTOS FUNCIONES INTRODUCCIÓN A LA PROGRAMACIÓN.](https://reader036.fdocument.pub/reader036/viewer/2022062500/5665b4341a28abb57c8ff382/html5/thumbnails/6.jpg)
¿CÓMO MODULARIZAR EN PASCAL?
Disponemos de dos tipos de módulos:Procedimientos:Deben realizar una tarea específica. Pueden recibir cero o más valores del programa que llama y devolver cero o más valores a dicho programa llamador. Se los invoca como una sentencia.
Funciones:
También realizan una tarea específica
Devuelven un valor a la unidad de programa que los referencia.
Se los invoca utilizando alguna sentencia que nos permita recibir el valor devuelto.
![Page 7: MODULARIDAD PROCEDIMIENTOS FUNCIONES INTRODUCCIÓN A LA PROGRAMACIÓN.](https://reader036.fdocument.pub/reader036/viewer/2022062500/5665b4341a28abb57c8ff382/html5/thumbnails/7.jpg)
¿CÓMO MODULARIZAR EN PASCAL?
Tanto procedimientos como funciones pueden ser:
•Estándar: vienen incorporados con el lenguaje. Por ejemplo el procedimiento:
° ClrScr: borrar la pantalla.
O la función:
°Length(s:string):byte: devuelve la longitud de un String.
![Page 8: MODULARIDAD PROCEDIMIENTOS FUNCIONES INTRODUCCIÓN A LA PROGRAMACIÓN.](https://reader036.fdocument.pub/reader036/viewer/2022062500/5665b4341a28abb57c8ff382/html5/thumbnails/8.jpg)
¿CÓMO MODULARIZAR EN PASCAL?
Los Procedimientos y Funciones también pueden ser:
•Definidos por el usuario:
Recordemos que es muy importante hacer que un módulo, función o procedimiento, se dedique a realizar
una tarea específica
![Page 9: MODULARIDAD PROCEDIMIENTOS FUNCIONES INTRODUCCIÓN A LA PROGRAMACIÓN.](https://reader036.fdocument.pub/reader036/viewer/2022062500/5665b4341a28abb57c8ff382/html5/thumbnails/9.jpg)
Declaración de un Procedimiento:
Formato 1:
Procedure nombreproc;
declaraciones locales y subprogramas
begin
cuerpo del procedimiento
end;
![Page 10: MODULARIDAD PROCEDIMIENTOS FUNCIONES INTRODUCCIÓN A LA PROGRAMACIÓN.](https://reader036.fdocument.pub/reader036/viewer/2022062500/5665b4341a28abb57c8ff382/html5/thumbnails/10.jpg)
Declaración de un Procedimiento:
Formato 2:
Procedure nombreproc (lista parámetros formales);
declaraciones locales y subprogramas
begin
cuerpo del procedimiento
end;
![Page 11: MODULARIDAD PROCEDIMIENTOS FUNCIONES INTRODUCCIÓN A LA PROGRAMACIÓN.](https://reader036.fdocument.pub/reader036/viewer/2022062500/5665b4341a28abb57c8ff382/html5/thumbnails/11.jpg)
Program DemoProc;
Var
X, Y : integer;
procedure Resta; {nombre (cabecera) del procedimiento}begin
X := X - 1; {bloque del procedimento}Y := Y - 1;
end;
beginX := 5;Y := 10;Resta; {llamada al procedimiento}
end.
Llamada al Procedimiento:
![Page 12: MODULARIDAD PROCEDIMIENTOS FUNCIONES INTRODUCCIÓN A LA PROGRAMACIÓN.](https://reader036.fdocument.pub/reader036/viewer/2022062500/5665b4341a28abb57c8ff382/html5/thumbnails/12.jpg)
Program DemoProc2;
Var
X, Y, Q, W : integer;
procedure Resta (A : integer; var B : integer);
beginA := A - 1;B := B - 1;
end;
beginX := 5;Y := 10;Q := 1;W := 4;Resta(X, Y);Resta(Q, W)
end.
Lista de parámetros actuales
Lista de parámetros formales
Llamada al Procedimiento:
![Page 13: MODULARIDAD PROCEDIMIENTOS FUNCIONES INTRODUCCIÓN A LA PROGRAMACIÓN.](https://reader036.fdocument.pub/reader036/viewer/2022062500/5665b4341a28abb57c8ff382/html5/thumbnails/13.jpg)
Lista de parámetros formalesPARÁMETROS POR REFERENCIA
Cuando se pasa una variable a un procedimiento como parámetro por referencia, loscambios que se efectúan sobre dicha variable dentro del procedimiento se mantienen,incluso después de que haya finalizado el procedimiento. Los cambios producidos enparámetros por referencia son permanentes, ya que Turbo Pascal no pasa al procedimientoel valor de la variable sino la dirección de la memoria de la variable. Es decir, la variableque hay dentro del procedimiento y la que se pasa al procedimiento como parámetro porreferencia comparten la misma dirección. Por tanto, un cambio en la primera se refleja en lasegunda.
PARÁMETROS POR VALOR
Los parámetros por valor son diferentes de los parámetros por referencia. Cuando sepasa un parámetro por valor a un procedimiento se guarda en memoria una copia temporalde la variable. Dentro del procedimiento sólo se utiliza la copia. Cuando se modifica elvalor del parámetro sólo afecta al almacenamiento temporal; la variable actual fuera delprocedimiento no se toca nunca.
![Page 14: MODULARIDAD PROCEDIMIENTOS FUNCIONES INTRODUCCIÓN A LA PROGRAMACIÓN.](https://reader036.fdocument.pub/reader036/viewer/2022062500/5665b4341a28abb57c8ff382/html5/thumbnails/14.jpg)
¿Por valor o por referencia?
•Si modifico el parámetro dentro del módulo, me pregunto:
¿Debe salir modificado? Por referencia
¿No debe salir modificado? Por valor
![Page 15: MODULARIDAD PROCEDIMIENTOS FUNCIONES INTRODUCCIÓN A LA PROGRAMACIÓN.](https://reader036.fdocument.pub/reader036/viewer/2022062500/5665b4341a28abb57c8ff382/html5/thumbnails/15.jpg)
Declaración de una función:Formato:
function Nombre (p1,p2....):tipo
{declaraciones locales y subprogramas}
begin
<cuerpo de la Función>
Nombre:= valor de la función
end;
•p1,p2..lista de parámetros formales
•Tipo: tipo de dato del resultado que devuelve la función
![Page 16: MODULARIDAD PROCEDIMIENTOS FUNCIONES INTRODUCCIÓN A LA PROGRAMACIÓN.](https://reader036.fdocument.pub/reader036/viewer/2022062500/5665b4341a28abb57c8ff382/html5/thumbnails/16.jpg)
Ejemplo de una función:
Function Promedio (a,b: Real): Real; {Promedio de dos números reales}
Begin
Promedio:= (a+b)/2;
End;
![Page 17: MODULARIDAD PROCEDIMIENTOS FUNCIONES INTRODUCCIÓN A LA PROGRAMACIÓN.](https://reader036.fdocument.pub/reader036/viewer/2022062500/5665b4341a28abb57c8ff382/html5/thumbnails/17.jpg)
Uso de funcionesProgram Funciones1;Var
X,Y,Z: Real;Function Promedio (a,b: Real): Real;
BeginPromedio:= (a+b)/2;
End; Begin
X:= 5,89;
Y:= 9,23;
Z:= Promedio (X,Y);Writeln (‘el promedio de ‘,X,’ e’,Y,’ es: ‘,Z);End.
![Page 18: MODULARIDAD PROCEDIMIENTOS FUNCIONES INTRODUCCIÓN A LA PROGRAMACIÓN.](https://reader036.fdocument.pub/reader036/viewer/2022062500/5665b4341a28abb57c8ff382/html5/thumbnails/18.jpg)
Uso de funcionesProgram Funciones2;Var
X,Y,Z: Real;Function Promedio (a,b: Real): Real;
BeginPromedio:= (a+b)/2;
End; Begin
x:= 5,89;
Y:= 9,23;Writeln (‘el promedio de ‘,X,’ e’,Y,’ es: ‘, Promedio (X,Y));End.
![Page 19: MODULARIDAD PROCEDIMIENTOS FUNCIONES INTRODUCCIÓN A LA PROGRAMACIÓN.](https://reader036.fdocument.pub/reader036/viewer/2022062500/5665b4341a28abb57c8ff382/html5/thumbnails/19.jpg)
Ambito de las variables
Program Ejemplo
varX : integer;
procedure A;var
Y : integer;procedure B;var
Z : integer;
begin;end;
beginend;
begin { Ejemplo }end.
Ambito dela variable
XAmbito de lavariable Y
Ambitode la
variableZ
![Page 20: MODULARIDAD PROCEDIMIENTOS FUNCIONES INTRODUCCIÓN A LA PROGRAMACIÓN.](https://reader036.fdocument.pub/reader036/viewer/2022062500/5665b4341a28abb57c8ff382/html5/thumbnails/20.jpg)
Variables locales y globales
Según visto podemos definir un procedimiento dentro de otro. Entonces:
•Las variables globales del programa pueden ser usadas en cualquier procedimiento o función.
•Las variables definidas en un módulo pueden ser usadas por cualquier módulo definido dentro de este módulo
![Page 21: MODULARIDAD PROCEDIMIENTOS FUNCIONES INTRODUCCIÓN A LA PROGRAMACIÓN.](https://reader036.fdocument.pub/reader036/viewer/2022062500/5665b4341a28abb57c8ff382/html5/thumbnails/21.jpg)
Consideraciones especiales
Si utilizamos variables globales en los módulos corremos el riesgo que en un módulo “A” se modifique una variable global que el módulo “B” necesita sin modificar. Por tanto la “convivencia” puede ser difícil.
POR ESO SE RECOMIENDA NO HACER USO DE VARIABLES GLOBALES
![Page 22: MODULARIDAD PROCEDIMIENTOS FUNCIONES INTRODUCCIÓN A LA PROGRAMACIÓN.](https://reader036.fdocument.pub/reader036/viewer/2022062500/5665b4341a28abb57c8ff382/html5/thumbnails/22.jpg)
Ventajas de utilizar módulos
•Facilita el diseño descendente
•Ahorra tiempo de programación
•Se pueden utilizar en otros programas
•Facilita la división de tareas en un equipo de programadores
•Integran librerías específicas