Professional Documents
Culture Documents
Clase Anterior
Programacin estructurada. Programacin modular. Algoritmo: Bloque principal, llamadas, 20 lneas. Mdulos. Clases. Tipos: Subrutinas y Funciones. Representacin de Algoritmos Modulares Definicin: subrutinas, funciones. Llamada: subrutinas, funciones.
Programacin Prof. Gonzalo Mller Clase 10 GM - 2
Clase Anterior
Metodologa de la Programacin Modular Diseo Modular: Diagrama Top-Down. DRE, DF, PC y CF. Tabla de Mdulos. Caractersticas: Acoplamiento y Cohesin. Acoplamiento de datos bsico. Solo bloques terminales del DTD. Subrutinas: No generan resultado. Funciones: Generan 1 resultado. Beneficios: reutilizacin, cambios, errores y tiempo.
Programacin Prof. Gonzalo Mller Clase 10 GM - 3
Programacin Modular
El uso de mdulos consta de tres pasos: 1. Declaracin. 2. Definicin. 3. Llamada.
Programacin Modular
1. Declaracin: hace pblico el modulo para su uso en programa.
Programacin Modular
1. Declaracin: hace pblico el modulo para su uso en programa. 2. Definicin: le da la forma al mdulo, es la que le da vida en el programa.
Programacin Modular
1. Declaracin: hace pblico el modulo para su uso en programa. 2. Definicin: le da la forma al mdulo, es la que le da vida en el programa. 3. Llamada: cuando se le da uso al modulo en el programa.
Programacin Modular
1. Declaracin: hace pblico el modulo para su uso en programa. Sin la declaracin, el modulo no podra ser utilizado por el programa 2. Definicin: le da la forma al mdulo, es la que le da vida en el programa. Sin la definicin, el modulo no funcionara 3. Llamada: cuando se le da uso al modulo en el programa. Sin llamadas, el modulo no tiene razn de existir
Programacin Prof. Gonzalo Mller Clase 10 GM - 8
Declaracin
Presenta al programa el encabezado del mdulo, Nombre y Parmetros que recibe, lo que se conoce como prototipo. Nombre(parmetro1, parmetro2, ) Dando a conocer el mdulo para poder hacer uso de este a lo largo de todo el programa.
A igual que las variables, los mdulos deben ser declarados antes de ser utilizados.
Programacin Prof. Gonzalo Mller Clase 10 GM - 9
Definicin
Constituye la Codificacin del Algoritmo del mdulo, es decir, el conjunto de sentencias necesarias para que ste realice la tarea a la que est destinado.
Nombre(parmetro1, parmetro2, ) Fin
Correctos
Incorrectos
Diferentes
// Algoritmo //
// Algoritmo //
Ejemplo: Declarar y Definir subrutina para escribir en la salida el encabezado del programa:
Sin Parmetro function escribeEncabezado() { document.write(COLARA 1.0<br/>2080<br/>); }
Programacin Prof. Gonzalo Mller Clase 10 GM - 24
// Algoritmo //
// return valor; }
Programacin Prof. Gonzalo Mller Clase 10 GM - 26
// Algoritmo //
// Algoritmo //
c=n3
n c
cubo(n)
c = n*n*n retorna c
c=n3
cubo
Funcin
Variables
c
n c
cubo(n)
c = n*n*n retorna c
c=n3
cubo
Funcin
Encabezado de la funcin
Variables
c
} </script>
Programacin Prof. Gonzalo Mller Clase 10 GM - 34
n c
cubo(n)
c = n*n*n retorna c
c=n3
cubo
Funcin
Variables
c
} </script>
Programacin Prof. Gonzalo Mller Clase 10 GM - 35
n c
cubo(n)
c = n*n*n retorna c
c=n3
cubo
Funcin
Variables
c
} </script>
Programacin Prof. Gonzalo Mller Clase 10 GM - 36
n c
cubo(n)
c = n*n*n retorna c
c=n3
cubo
Funcin
Variables
c
n c
cubo(n)
c = n*n*n retorna c
c=n3
cubo
Funcin
Variables
c
Llamada
Pone en ejecucin el mdulo. Se coloca el nombre del mdulo. Seguido de los argumentos separados por comas entre parntesis. Nombre(Argumento1, Argumento2, )
Llamada
Llamada de una Subrutina: se pone en ejecucin a travs una sentencia de llamada: Nombre(Argumento1, Argumento2, );
Llamada
Llamada de una Subrutina: se pone en ejecucin a travs una sentencia de llamada: Nombre(Argumento1, Argumento2, ); Ejemplo:
escribeEncabezado(); escribeResultado(s);
Programacin Prof. Gonzalo Mller Clase 10 GM - 44
Llamada
Llamada de una Funcin: una funcin retorna un valor, por lo que la llamada formar parte de una: Sentencia a Asignacin:
Variable = Nombre(Argumento1, Argumento2, );
Llamada
Llamada de una Funcin: una funcin retorna un valor, por lo que la llamada formar parte de una: Sentencia a Asignacin:
Variable = Nombre(Argumento1, Argumento2, );
Expresin Lgica:
(Nombre(Argumento1, Argumento2, ) != )
Llamada
Llamada de una Funcin: una funcin retorna un valor, por lo que la llamada formar parte de una: Sentencia a Asignacin:
Variable = Nombre(Argumento1, Argumento2, );
Expresin Lgica:
(Nombre(Argumento1, Argumento2, ) != )
Expresin Aritmtica:
+ Nombre(Argumento1, Argumento2, ) / 2
Llamada
Llamada de una Funcin: una funcin retorna un valor, por lo que la llamada formar parte de una: Sentencia a Asignacin:
Variable = Nombre(Argumento1, Argumento2, );
Expresin Lgica:
(Nombre(Argumento1, Argumento2, ) != )
Expresin Aritmtica:
+ Nombre(Argumento1, Argumento2, ) / 2
Llamada
Sentencia a Asignacin: Ejemplo:
s = cubo(a);
Llamada
Sentencia a Asignacin: Ejemplo: Ejemplo:
s = cubo(a);
Expresin Lgica:
(cubo(a) > 10)
Llamada
Sentencia a Asignacin: Ejemplo: Ejemplo: Ejemplo:
s = cubo(a);
Expresin Lgica:
(cubo(a) > 10)
Expresin Aritmtica:
(cubo(a) + 2)/cubo(b)
Llamada
Sentencia a Asignacin: Ejemplo: Ejemplo: Ejemplo: Ejemplo:
s = cubo(a);
Expresin Lgica:
(cubo(a) > 10)
Expresin Aritmtica:
(cubo(a) + 2)/cubo(b) Argumento cubo(a + cubo(b))
Argumento escribeResultado(cubo(a))
Programacin Prof. Gonzalo Mller Clase 10 GM - 52
Ejercicio
Construir una pagina web con Javascript con acoplamiento de datos bsicos para calcular el mximo Al menos 3 mdulos: de 2 nmeros. lectura, proceso y Fase 1: Diseo y Anlisis: DES, DTD escritura DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal.
Identificar parmetros, variables y variables de retorno
Llamada
Funcionamiento de los parmetros de entrada: Suponga un mdulo con dos entradas:
Entrada 1
Mdulo
Caja Negra
Entrada 2
Declaracin y Definicin:
Modulo(parametro1, parametro2) ...
Programacin Prof. Gonzalo Mller Clase 10 GM - 54
Llamada
Mdulo
parametro1 parametro2
Internamente
Llamada
El mdulo puede ser llamado con 2 constantes: 8 y 9
Mdulo
8 9
Llamada
Mdulo
8 9
Llamada:
Modulo(8, 9)
Programacin Prof. Gonzalo Mller Clase 10 GM - 57
Llamada
Internamente, el mdulo maneja los parmetros 1 y 2, con los valores 8 y 9, respectivamente.
Mdulo
parametro1 parametro2
parametro1=8 parametro2=9
Programacin Prof. Gonzalo Mller Clase 10 GM - 58
Llamada
Mdulo
parametro1 parametro2
Llamada
El mdulo puede ser llamado con 2 variables: A y B
Mdulo
Variable A Variable B
Llamada
Mdulo
Variable A Variable B
Llamada:
Modulo(A, B)
Programacin Prof. Gonzalo Mller Clase 10 GM - 61
Llamada
Internamente, el mdulo maneja los parmetros 1 y 2, con los valores de A y B, respectivamente.
Mdulo
parametro1 parametro2
parametro1=valor de A parametro2=valor de B
Programacin Prof. Gonzalo Mller Clase 10 GM - 62
Llamada
Mdulo
parametro1 parametro2
Llamada
El mdulo puede ser llamado con 2 variables: X y Y
Mdulo
Variable X Variable Y
Llamada
Mdulo
Variable X Variable Y
Llamada:
Modulo(X, Y)
Programacin Prof. Gonzalo Mller Clase 10 GM - 65
Llamada
Nuevamente, el mdulo maneja los parmetros 1 y 2, ahora con los valores de X y Y, respectivamente.
Mdulo
parametro1 parametro2
parametro1=valor de X parametro2=valor de Y
Programacin Prof. Gonzalo Mller Clase 10 GM - 66
Llamada
Mdulo
parametro1 parametro2
Llamada
El mdulo puede ser llamado con dos expresiones como argumento.
Mdulo
Expresin 1 Expresin 2
Llamada
Mdulo
Expresin 1 Expresin 2
Llamada:
Modulo(Expresin 1, Expresin 2)
Programacin Prof. Gonzalo Mller Clase 10 GM - 69
Llamada
Nuevamente, el mdulo maneja los parmetros 1 y 2, ahora con los valores resultados de las expresiones.
Mdulo
parametro1 parametro2
Llamada
Mdulo
parametro1 parametro2
Llamada
Mdulo
parametro1 parametro2
Llamada
Ejemplo: Llamadas:
... a = cubo(6.7); Llamada a la escribeResultado(a); misma funcin con ... diferentes valores b = cubo(a); escribeResultado(b); ... escribeResultado(12); ... ulNumero = cubo(a + b); escribeResultado(ulNumero+1);
Programacin Prof. Gonzalo Mller Clase 10 GM - 73
Llamada
function cubo(n) { // Declaraciones locales // Internamente var c; siempre ser n // Algoritmo // c = n*n*n; // return c; }
Llamada
Llamadas:
... a = cubo(6.7); escribeResultado(a); ... b = cubo(a); escribeResultado(b); ... escribeResultado(12); ... ulNumero = cubo(a + b); escribeResultado(ulNumero+1);
Programacin Prof. Gonzalo Mller Clase 10 GM - 75
Llamada
Definicin:
function escribeResultado(resultado) { document.write(Cubo:, resultado); } Internamente siempre ser resultado
Ejercicio
Construir una pagina web con Javascript con acoplamiento de datos bsicos para calcular el cubo de Al menos 3 mdulos: 3 nmeros. lectura, proceso y Fase 1: Diseo y Anlisis: DES, DTD escritura DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal.
Identificar parmetros, variables y variables de retorno
Ejercicio
Construir una pagina web con Javascript con acoplamiento de datos bsicos para calcular el cubo de Al menos 3 mdulos: N nmeros. lectura, proceso y Fase 1: Diseo y Anlisis: DES, DTD escritura DES, DRE DF y LV de Mdulos y TM. DES, DRE DF, LV y CF de Bloque Principal.
Identificar parmetros, variables y variables de retorno
mbito Global
Funcion1()
Subrutina1()
mbito Global
datoGlobal Algoritmo principal datoGlobal puede ser empleada en cualquiera de estos bloques
Funcion1()
Subrutina1()
mbito Global
<script> function funcion1() { } datoGlobal puede function subrutina1() ser empleada en { cualquiera de estos bloques } </script> <script> En Javascript las variables del bloque </script> principal son variables globales
Programacin Prof. Gonzalo Mller Clase 10 GM - 83
mbito Local
mbito Local
datoMain slo es vlido dentro del algoritmo principal datoFuncion1 slo es vlido dentro de Funcion1 datoSubrutina1 slo es vlido dentro de Subrutina1
mbito Local
<script> function funcion1() datoFuncion1 slo { var datoFuncion1; es vlido dentro de Funcion1 } function subrutina1() datoSubrutina1 slo { var datoSubrutina1; es vlido dentro de Subrutina1 } </script> <script> datoMain slo es var datoMain; vlido dentro del algoritmo principal </script>
Programacin Prof. Gonzalo Mller Clase 10 GM - 86
mbito Local
Ejemplo:
<script> function funcion1() { var datoFuncion1; datoFuncion1 = 11; } function subrutina1() { var datoSubrutina1; datoFuncion1 = 12; } </script> <script> var datoMain; datoFuncion1 = 13; </script>
ERROR!
ERROR!
mbito Local
<script> function funcion1() { var dato1; dato1 de Funcion1 } function subrutina1() { var dato1; dato1 de Subrutina1 } </script> <script> var dato1; dato1 del algoritmo principal </script>
Programacin Prof. Gonzalo Mller Clase 10 GM - 88
mbito Local
Ejemplo:
<script> function funcion1() { var dato1; dato1 = 11; return dato1; } function subrutina1() { var dato1; dato1 = 12; document.write(subrutina + dato1); } </script>
<script> var dato1; dato1 = 13; document.write(funcion: + funcion1()); subrutina1(); document.write(principal: + dato1); </script>
Programacin Prof. Gonzalo Mller Clase 10 GM - 89
Ejercicios
Construir una pagina web para: 1) Calcular f(x) = sen(2*x)+x4 para N puntos. 2) Determinar las distancias entre N maquinas. Fase 1: Diseo y Anlisis: DES, DTD DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal.
Identificar parmetros, variables y variables de retorno
Ejercicios
Construir una pagina web para: 3) Calcular el factorial de N nmeros. 4) Dado un conjunto de N nmeros, establecer cuales son nmeros compuestos. Fase 1: Diseo y Anlisis: DES, DTD DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal.
Identificar parmetros, variables y variables de retorno
Ejercicios
Construir una pagina web para: 5) Promediar los pares y promediar los impares de los nmeros entre A y B. 6) Dado N intervalos, calcular la sumatoria de los nmeros que contiene cada intervalo. Fase 1: Diseo y Anlisis: DES, DTD DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal.
Identificar parmetros, variables y variables de retorno
Ejercicios
Construir una pagina web para: 7) Dado un conjunto de puntos en R2 por el usuario determinar cuales se encuentra por encima, por debajo y sobre una recta dada por el usuario. 8) Encontrar por Newton 1 solucin para f(x) = 0. Fase 1: Diseo y Anlisis: DES, DTD DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal.
Identificar parmetros, variables y variables de retorno
Ejercicios
Construir una pagina web para: 9) Encontrar 1 Mnimo de f(x) por 1+1. Fase 1: Diseo y Anlisis: DES, DTD DES, DRE DF y LV de Mdulos y TM. DRE DF, LV y CF de Bloque Principal.
Identificar parmetros, variables y variables de retorno
Resumen
Programacin Modular 1. Declaracin. 2. Definicin. 3. Llamada. Declaracin y Definicin en Javascript: function Bloque <script> de declaracin en <head> Reglas para identificadores Subrutina Funcin: return
Variable retorno
Programacin Prof. Gonzalo Mller Clase 10 GM - 96
Resumen
Llamada: Subrutina: Sentencia de Llamada. Funcin: Asignacin, Expresin, Argumento. Parmetros de entrada: variables, constantes o expresiones. mbito: Local y Global local predomina sobre el global.