• No se han encontrado resultados

Clase Programación 17

N/A
N/A
Protected

Academic year: 2021

Share "Clase Programación 17"

Copied!
81
0
0

Texto completo

(1)

Programación

Clase 17. Módulos en C++ (2)

Prof. Gonzalo Müller [email protected]

Facultad de Ingeniería

Programación

(2)

Clase Anterior



Datos Agrupados de Diferentes Tipos → Estructura



UML



Estructura en C++:

 1º Se debe definir la estructura: struct

 Nombre de la estructura.  Nombre de la estructura.

 Tipos de variables contenidas.

 Nombres de las variables contenidas.

 Antes de las declaraciones de módulos y de variables

(3)

Clase Anterior



Manejo de una variable estructura:

 Campos de una estructura.

 Operador miembro . .

 Asignación de una variable estructura.



Módulos con estructuras:



Módulos con estructuras:

 Estructura como parámetro.

 Estructura como retorno.

(4)

Programación Modular



Acoplamiento de datos Estándar → Parámetros:

Datos que permiten la comunicación con el módulo.

 Parámetros de Entrada: datos únicamente de entrada al módulo.  Subrutinas. Módulo … Parámetro1  Subrutinas.  Funciones.

 Parámetros de Retorno o Salida o Modificables: datos retornados por el módulo.

 Solo Subrutinas.

ParámetroK

Subrutina

(5)

Programación Modular

Módulo

Parámetros

de Entrada

Salidas

Parámetros de Retorno

Valores utilizados dentro del algoritmo

de Entrada

Salidas

Retorno

Valor utilizado dentro del algoritmo

Valor utilizado fuera del algoritmo

(6)

Programación Modular

Subrutina Parámetros

de Entrada Valor utilizado fuera del algoritmoSalidas

Varios Resultados

Valores utilizados dentro del algoritmo

Función Parámetros

de Entrada

(7)

Parámetros de Entrada

 Parámetros de entrada → Parámetro por valor

Los parámetros por valor constituyen valores de

entrada al módulo. El valor del argumento utilizado

en la llamada del módulo es asignado al parámetro

de éste, es decir el parámetro recibe una copia del

de éste, es decir el parámetro recibe una copia del

argumento.

(8)

Parámetros de Entrada

 Parámetros de entrada → Parámetro por valor

Los parámetros por valor constituyen valores de

entrada al módulo. El valor del argumento utilizado

en la llamada del módulo es asignado al parámetro

de éste, es decir el parámetro recibe una copia del

de éste, es decir el parámetro recibe una copia del

argumento.

(9)

Parámetros de Entrada

 Parámetros de entrada → Parámetro por valor

Los parámetros por valor constituyen valores de

entrada al módulo. El valor del argumento utilizado

en la llamada del módulo es asignado al parámetro

de éste, es decir el parámetro recibe una copia del

de éste, es decir el parámetro recibe una copia del

argumento.

Módulo

A

A = 2

(10)

Parámetros de Entrada

 Parámetros de entrada → Parámetro por valor

Los parámetros por valor constituyen valores de

entrada al módulo. El valor del argumento utilizado

en la llamada del módulo es asignado al parámetro

de éste, es decir el parámetro recibe una copia del

de éste, es decir el parámetro recibe una copia del

argumento.

Módulo

A

B=2

A = 2

B: parámetro

(11)

Parámetros de Entrada en C

Declaración y Definición

Se indica el tipo y el nombre del parámetro por valor:

… nombre(

tipo

parámetro1,

tipo

parámetro2, …)

Llamada

… nombre(argumento1, argumento2, …)

(12)

Parámetros de Entrada en C

Los parámetros de entrada es como se ha venido trabajando hasta ahora se ha venido trabajando hasta ahora con los parámetros en los módulos

(13)

Parámetros de Entrada en C

Ejemplo:

double cubo(double numero) {

return numero*numero*numero; }

Parámetro por valor

Parámetro por valor

cubo

numero

numero3

void escribeResultado(double resultado) {

printf("Cubo: %lf", resultado);

(14)

Parámetros de Entrada en C

Ejemplo:

main() {

double digito, resultado;

… resultado = cubo(digito); Argumento Variable resultado = cubo(digito); … resultado = cubo(3.0); … resultado = cubo(digito + 3.0); … } Argumento Constante Argumento Expresión Reutilización del

(15)

Parámetros de Entrada en C

Ejemplo: … resultado = cubo(3.0) … numero = 3.0 Llamada 1

Asigna el valor del argumento (3.0) al parámetro (numero)

double cubo(double numero) {

return numero*numero*numero; }

numero = 3.0 (3.0) al parámetro (numero) antes de continuar la ejecución

(16)

Parámetros de Entrada en C

Ejemplo: … resultado = cubo(3.0) … numero = 3.0 2

double cubo(double numero) { return numero*numero*numero; } numero = 3.0 Continua la ejecución el módulo correspondiente

(17)

Parámetros de Entrada en C

Ejemplo: … resultado = cubo(3.0) … numero = 3.0

double cubo(double numero) {

return numero*numero*numero; }

numero = 3.0

(18)

Parámetros de Entrada en C

Ejemplo: … resultado = cubo(3.0) … numero = 3.0 27.0 Retorno 4 Regresa y continua la

double cubo(double numero) { return numero*numero*numero; } numero = 3.0 27.0 3.0*3.0*3.0 Regresa y continua la ejecución del algoritmo

(19)

Parámetros de Entrada en C

Ejemplo: … resultado = cubo(3.0) … numero = 3.0 27.0 Retorno 4 Regresa y continua la resultado = 27.0

double cubo(double numero) { return numero*numero*numero; } numero = 3.0 27.0 3.0*3.0*3.0 Regresa y continua la ejecución del algoritmo

(20)

Parámetros de Entrada en C

Ejemplo: digito = 4.0; … resultado = cubo(digito) … numero = 4.0 Llamada 1

Asigna el valor del argumento (4.0) al parámetro (numero)

double cubo(double numero) {

return numero*numero*numero; }

numero = 4.0 (4.0) al parámetro (numero) antes de continuar la ejecución

(21)

Parámetros de Entrada en C

Ejemplo: digito = 4.0; … resultado = cubo(digito) … numero = 4.0 2

double cubo(double numero) { return numero*numero*numero; } numero = 4.0 Continua la ejecución el módulo correspondiente

(22)

Parámetros de Entrada en C

Ejemplo: digito = 4.0; … resultado = cubo(digito) … numero = 4.0

double cubo(double numero) {

return numero*numero*numero; }

numero = 4.0

4.0*4.0*4.0 3 Operaciones

Se ejecutan todas las sentencias del módulo

(23)

Parámetros de Entrada en C

Ejemplo: digito = 4.0; … resultado = cubo(digito) … numero = 4.0 64.0 Retorno 4 Regresa y continua la

double cubo(double numero) { return numero*numero*numero; } numero = 4.0 64.0 4.0*4.0*4.0 Regresa y continua la ejecución del algoritmo

(24)

Parámetros de Entrada en C

Ejemplo: digito = 4.0; … resultado = cubo(digito) … numero = 4.0 64.0 Retorno 4 Regresa y continua la resultado = 64.0

double cubo(double numero) { return numero*numero*numero; } numero = 4.0 64.0 4.0*4.0*4.0 Regresa y continua la ejecución del algoritmo

(25)

Parámetros de Entrada en C

Ejemplo: digito = 4.0; … resultado = cubo(digito + 3) … numero = 7.0 Llamada 1

Asigna el valor del argumento (7.0) al parámetro (numero)

double cubo(double numero) {

return numero*numero*numero; }

numero = 7.0 (7.0) al parámetro (numero) antes de continuar la ejecución

(26)

Parámetros de Entrada en C

Ejemplo: digito = 4.0; … resultado = cubo(digito + 3) … numero = 7.0 2

double cubo(double numero) { return numero*numero*numero; } numero = 7.0 Continua la ejecución el módulo correspondiente

(27)

Parámetros de Entrada en C

Ejemplo: digito = 4.0; … resultado = cubo(digito + 3) … numero = 7.0

double cubo(double numero) {

return numero*numero*numero; }

numero = 7.0

(28)

Parámetros de Entrada en C

Ejemplo: digito = 4.0; … resultado = cubo(digito + 3) … numero = 7.0 343.0 Retorno 4 Regresa y continua la

double cubo(double numero) { return numero*numero*numero; } numero = 7.0 343.0 7.0*7.0*7.0 Regresa y continua la ejecución del algoritmo

(29)

Parámetros de Entrada en C

Ejemplo: digito = 4.0; … resultado = cubo(digito + 3) … numero = 7.0 343.0 Retorno 4 Regresa y continua la resultado = 343.0

double cubo(double numero) { return numero*numero*numero; } numero = 7.0 343.0 7.0*7.0*7.0 Regresa y continua la ejecución del algoritmo

(30)

Parámetros de Retorno



Parámetros de retorno → Parámetro por referencia

El parámetro por referencia constituye una variable

que entra al módulo. La variable del argumento

utilizada en la llamada pasa al módulo con el nombre

del parámetro de éste, es decir el parámetro y la

del parámetro de éste, es decir el parámetro y la

variable son la misma, no es una copia.

(31)

Parámetros de Retorno



Parámetros de retorno → Parámetro por referencia

El parámetro por referencia constituye una variable

que entra al módulo. La variable del argumento

utilizada en la llamada pasa al módulo con el nombre

del parámetro de éste, es decir el parámetro y la

del parámetro de éste, es decir el parámetro y la

variable son la misma, no es una copia.

(32)

Parámetros de Retorno



Parámetros de retorno → Parámetro por referencia

El parámetro por referencia constituye una variable

que entra al módulo. La variable del argumento

utilizada en la llamada pasa al módulo con el nombre

del parámetro de éste, es decir el parámetro y la

del parámetro de éste, es decir el parámetro y la

variable son la misma, no es una copia.

(33)

Parámetros de Retorno



Parámetros de retorno → Parámetro por referencia

El parámetro por referencia constituye una variable

que entra al módulo. La variable del argumento

utilizada en la llamada pasa al módulo con el nombre

del parámetro de éste, es decir el parámetro y la

del parámetro de éste, es decir el parámetro y la

variable son la misma, no es una copia.

(34)

Parámetros de Retorno



Parámetros de retorno → Parámetro por referencia

El parámetro por referencia constituye una variable

que entra al módulo. La variable del argumento

utilizada en la llamada pasa al módulo con el nombre

del parámetro de éste, es decir el parámetro y la

del parámetro de éste, es decir el parámetro y la

variable son la misma, no es una copia.

(35)

Parámetros de Retorno



Parámetros de retorno → Parámetro por referencia

El parámetro por referencia constituye una variable

que entra al módulo. La variable del argumento

utilizada en la llamada pasa al módulo con el nombre

del parámetro de éste, es decir el parámetro y la

del parámetro de éste, es decir el parámetro y la

variable son la misma, no es una copia.

(36)

Parámetros de Retorno



Parámetros de retorno → Parámetro por referencia

El parámetro por referencia constituye una variable

que entra al módulo. La variable del argumento

utilizada en la llamada pasa al módulo con el nombre

del parámetro de éste, es decir el parámetro y la

del parámetro de éste, es decir el parámetro y la

variable son la misma, no es una copia.

Módulo

(37)

Parámetros de Retorno



Parámetros de retorno → Parámetro por referencia

El parámetro por referencia constituye una variable

que entra al módulo. La variable del argumento

utilizada en la llamada pasa al módulo con el nombre

del parámetro de éste, es decir el parámetro y la

del parámetro de éste, es decir el parámetro y la

variable son la misma, no es una copia.

Módulo

A

(38)

Parámetros de Retorno



Parámetros de retorno → Parámetro por referencia

El parámetro por referencia constituye una variable

que entra al módulo. La variable del argumento

utilizada en la llamada pasa al módulo con el nombre

del parámetro de éste, es decir el parámetro y la

del parámetro de éste, es decir el parámetro y la

variable son la misma, no es una copia.

Módulo

A

A = 2

(39)

Parámetros de Retorno



Parámetros de retorno → Parámetro por referencia

El parámetro por referencia constituye una variable

que entra al módulo. La variable del argumento

utilizada en la llamada pasa al módulo con el nombre

del parámetro de éste, es decir el parámetro y la

del parámetro de éste, es decir el parámetro y la

variable son la misma, no es una copia.

Módulo

A

(40)

Parámetros de Retorno



Parámetros de retorno → Parámetro por referencia

El parámetro por referencia constituye una variable

que entra al módulo. La variable del argumento

utilizada en la llamada pasa al módulo con el nombre

del parámetro de éste, es decir el parámetro y la

del parámetro de éste, es decir el parámetro y la

variable son la misma, no es una copia.

Módulo

A

A = 2

B es A

Si B se le asigna 5,

B = 5

(41)

Parámetros de Retorno



Parámetros de retorno → Parámetro por referencia

El parámetro por referencia constituye una variable

que entra al módulo. La variable del argumento

utilizada en la llamada pasa al módulo con el nombre

del parámetro de éste, es decir el parámetro y la

del parámetro de éste, es decir el parámetro y la

variable son la misma, no es una copia.

Módulo

A

(42)

Parámetros de Retorno



Parámetros de retorno → Parámetro por referencia

 Los parámetros de salida se utilizan cuando se

requiere:

 Obtener más de un resultado.  “Sólo en Subrutinas”.

(43)

Parámetros de Retorno en C++

Declaración y Definición

Utilizando el operador referencia & se declara un

parámetro como parámetro por referencia:

Parámetro referencia Parámetro referencia

… nombre(

tipo

&parámetro1,

tipo

&parámetro2, …)

Operador referencia Operador referencia

(44)

Parámetros de Retorno en C++

Declaración y Definición

Utilizando el operador referencia & se declara un

parámetro como parámetro por referencia:

Parámetro referencia Parámetro referencia

… nombre(

tipo

&parámetro1,

tipo

&parámetro2, …)

Parámetro referencia Parámetro referencia

Los parámetros por referencia son sólo válidos en C++

(45)

Parámetros de Retorno en C++

Ejemplo: Construir un módulo que devuelva el mayor y menor de un conjunto de datos.

(46)

Parámetros de Retorno en C++

Ejemplo: Construir un módulo que devuelva el mayor y menor de un conjunto de datos.

2 valores de retorno → Subrutina con parámetros de retorno

(47)

Parámetros de Retorno en C++

Ejemplo: Construir un módulo que devuelva el mayor y menor de un conjunto de datos.

2 valores de retorno → Subrutina con parámetros de retorno

void maymen(double &mayor, double &menor)

{

unsigned char N, k, x;

printf("Cantidad de Números:"); scanf("%hhu", &N);

(48)

Parámetros de Retorno en C++

Ejemplo: Construir un módulo que devuelva el mayor y menor de un conjunto de datos.

2 valores de retorno → Subrutina con parámetros de retorno

void maymen(double &mayor, double &menor)

{

Parámetro por referencia

unsigned char N, k, x;

printf("Cantidad de Números:"); scanf("%hhu", &N);

mayor = x; menor = x; while(k < N)

(49)

Parámetros de Retorno



Llamada: Cuando se realiza una llamada con

parámetros de referencia SIEMPRE se debe utilizar

como argumento una VARIABLE, ya que ésta es la

encargada de almacenar el valor correspondiente al resultado.

… nombre(variable1, variable2, …)

(50)

Parámetros de Retorno en C++

Ejemplo:

main() {

double mayor1, menor1;

maymen(mayor1, menor1); maymen(mayor1, menor1);

printf("[%f,%f]", menor1, mayor1); …

(51)

Parámetros de Retorno en C++

Ejemplo:

main() {

double mayor1, menor1;

maymen(mayor1, menor1);

Argumento Variable

maymen(mayor1, menor1);

printf("[%f,%f]", menor1, mayor1); …

(52)

Parámetros de Retorno en C++

Ejemplo:

maymen(mayor1, menor1);

printf("[%f,%f]", menor1, mayor1); …

void maymen(double &mayor, double &menor)

mayor es mayor1, menor es menor1

Llamada

1

void maymen(double &mayor, double &menor)

{

unsigned char N, k, x;

printf("Cantidad de Números:"); scanf("%hhu", &N);

mayor = x; menor = x;

Se establece la correspondencia de los argumentos (mayor1, menor1) con los parámetros (mayor, menor) antes de

(53)

Parámetros de Retorno en C++

Ejemplo:

maymen(mayor1, menor1);

printf("[%f,%f]", menor1, mayor1); …

void maymen(double &mayor, double &menor)

mayor es mayor1, menor es menor1

void maymen(double &mayor, double &menor)

{

unsigned char N, k, x;

printf("Cantidad de Números:"); scanf("%hhu", &N);

Continua la ejecución el módulo

correspondiente

(54)

Parámetros de Retorno en C++

Ejemplo:

maymen(mayor1, menor1);

printf("[%f,%f]", menor1, mayor1); …

void maymen(double &mayor, double &menor)

mayor es mayor1, menor es menor1

void maymen(double &mayor, double &menor)

{

unsigned char N, k, x;

printf("Cantidad de Números:"); scanf("%hhu", &N);

mayor = x; menor = x;

Operaciones

3

Se ejecutan todas las

lectura de N y x’s

N=3 x1=4, x2=6, x3=0 …

(55)

Parámetros de Retorno en C++

Ejemplo:

maymen(mayor1, menor1);

printf("[%f,%f]", menor1, mayor1); …

void maymen(double &mayor, double &menor)

mayor es mayor1, menor es menor1

void maymen(double &mayor, double &menor)

{

unsigned char N, k, x;

printf("Cantidad de Números:"); scanf("%hhu", &N);

(56)

Parámetros de Retorno en C++

Ejemplo:

maymen(mayor1, menor1);

printf("[%f,%f]", menor1, mayor1); …

void maymen(double &mayor, double &menor)

mayor es mayor1, menor es menor1 mayor1 = 6

menor1 = 0

void maymen(double &mayor, double &menor)

{

unsigned char N, k, x;

printf("Cantidad de Números:"); scanf("%hhu", &N);

… mayor = x; menor = x; lectura de N y x’s N=3 x1=4, x2=6, x3=0 …

(57)

Parámetros de Retorno en C++

Ejemplo:

maymen(mayor1, menor1);

printf("[%f,%f]", menor1, mayor1); …

void maymen(double &mayor, double &menor)

mayor es mayor1, menor es menor1 mayor1 = 6

menor1 = 0

[6,0]

void maymen(double &mayor, double &menor)

{

unsigned char N, k, x;

printf("Cantidad de Números:"); scanf("%hhu", &N);

(58)

Representación de Algoritmos Modulares



Definición de una subrutina con parámetros de referencia DF nombre(&parámetro1, &parámetro2, …) DRE Fin nombre(&parámetro1, &parámetro2, …) …

(59)

Metodología de la Programación Modular



Tabla de Módulos: Una vez desarrollados los algoritmos de todos los módulos es de utilidad para la posterior implementación en el lenguaje construir una tabla donde se listen todos los módulos, sus tipos y parámetros. Modulo Parámetros de Entrada Parámetros de Retorno Retorno Tipo Nombre del módulo Lista de parámetros Lista de parámetros Valor retornado Subrutina o Función

(60)

Programación Modular en C++

Ejemplo: Construir un programa modular en C++ con acoplamiento de datos estándar para obtener el mayor y menor de N conjunto de datos.

(61)

Parámetros de Retorno

Formas en que podemos utilizar los módulos:

# Retornos Usar 0 Subrutina con parámetros de entrada parámetros de entrada 1 Función 2 ó más Subrutina con parámetros de retorno

(62)

Parámetros de Retorno

Formas en que podemos utilizar los módulos que manejan estructuras:

# Retornos Usar

0 Subrutina con parámetros de

entrada

(Uso de estructuras) no son

estructura

(Uso de estructuras)

1 Función

(Uso de estructuras)

1 ó más Subrutina con parámetros de

retorno (Modificación de estructuras) 1 Estructura Función no son modificadas, ni creadas estructura estructura estructura

(63)

Combinación de Parámetros en C



Es posible utilizar en un módulo una combinación de

parámetros por valor y parámetros por referencia:

Declaración de parámetros por valor y referencia:

void nombre(tipo param1,tipo &param2,…) void nombre(tipo param1,tipo &param2,…) {

(64)

Combinación de Parámetros en C

Ejemplo: Construir un módulo que devuelva las raíces reales de una ecuación cuadrática.

(65)

Combinación de Parámetros en C

Ejemplo: Construir un módulo que devuelva las raíces reales de una ecuación cuadrática.

2 valores de retorno → Subrutina con parámetros de retorno

(66)

Combinación de Parámetros en C

Ejemplo: Construir un módulo que devuelva las raíces reales de una ecuación cuadrática.

2 valores de retorno → Subrutina con parámetros de retorno rre a b c x y c

(67)

Combinación de Parámetros en C

Ejemplo: Construir un módulo que devuelva las raíces reales de una ecuación cuadrática.

2 valores de retorno → Subrutina con parámetros de retorno rre a b c x y

void rre(float a,float b,float c,float &x,float &y) {

float D;

D = sqrt(b^2-4*a*c);

(68)

Combinación de Parámetros en C

Ejemplo: Construir un módulo que devuelva las raíces reales de una ecuación cuadrática.

2 valores de retorno → Subrutina con parámetros de retorno rre a b c x y Parámetros Entrada Parámetros Salida

void rre(float a,float b,float c,float &x,float &y) { float D; D = sqrt(b^2-4*a*c); x = (D - b) / (2*a); y = -(D + b) / (2*a); c

Es recomendable colocar primero los parámetros de entrada y luego los parámetros de salida al definir un módulo que posee ambos tipos de

(69)

Combinación de Parámetros en C

Ejemplo:

rre(coefA, coefB, coefC, raiz1, raiz2); printf("1:%f\n2:%f", raiz1, raiz2);

1 Llamada

a = 1, b = 5, c = 6, x es raiz1, y es raiz2 coefA = 1, coefB = 5, coefC = 6

void rre(float a,float b,float c,float &x,float &y) {

float D;

D = sqrt(b^2-4*a*c); x = (D - b) / (2*a);

(70)

Combinación de Parámetros en C

Ejemplo:

rre(coefA, coefB, coefC, raiz1, raiz2); printf("1:%f\n2:%f", raiz1, raiz2);

coefA = 1, coefB = 5, coefC = 6

a = 1, b = 5, c = 6, x es raiz1, y es raiz2

void rre(float a,float b,float c,float &x,float &y) { float D; D = sqrt(b^2-4*a*c); x = (D - b) / (2*a); y = -(D + b) / (2*a); Continua la ejecución el módulo correspondiente 2

(71)

Combinación de Parámetros en C

Ejemplo:

rre(coefA, coefB, coefC, raiz1, raiz2); printf("1:%f\n2:%f", raiz1, raiz2);

coefA = 1, coefB = 5, coefC = 6

a = 1, b = 5, c = 6, x es raiz1, y es raiz2

void rre(float a,float b,float c,float &x,float &y) { float D; D = sqrt(b^2-4*a*c); x = (D - b) / (2*a); D = 1 x = –2

(72)

Combinación de Parámetros en C

Ejemplo:

rre(coefA, coefB, coefC, raiz1, raiz2); printf("1:%f\n2:%f", raiz1, raiz2);

coefA = 1, coefB = 5, coefC = 6

a = 1, b = 5, c = 6, x es raiz1, y es raiz2

void rre(float a,float b,float c,float &x,float &y) { float D; D = sqrt(b^2-4*a*c); x = (D - b) / (2*a); y = -(D + b) / (2*a); D = 1 x = –2 raiz1= –2 y = –3 raiz2= –3 Operaciones 3

(73)

Combinación de Parámetros en C

Ejemplo:

rre(coefA, coefB, coefC, raiz1, raiz2); printf("1:%f\n2:%f", raiz1, raiz2);

coefA = 1, coefB = 5, coefC = 6

a = 1, b = 5, c = 6, x es raiz1, y es raiz2 raiz1 = –2

raiz2 = –3

void rre(float a,float b,float c,float &x,float &y) { float D; D = sqrt(b^2-4*a*c); x = (D - b) / (2*a); D = 1 x = –2 raiz1= –2

(74)

Combinación de Parámetros en C

Ejemplo:

rre(coefA, coefB, coefC, raiz1, raiz2); printf("1:%f\n2:%f", raiz1, raiz2);

coefA = 1, coefB = 5, coefC = 6

a = 1, b = 5, c = 6, x es raiz1, y es raiz2 raiz1 = –2

raiz2 = –3

1: –2 2: –3

void rre(float a,float b,float c,float &x,float &y) { float D; D = sqrt(b^2-4*a*c); x = (D - b) / (2*a); y = -(D + b) / (2*a); D = 1 x = –2 raiz1= –2 y = –3 raiz2= –3

(75)

Acoplamiento de datos Estándar

El algoritmo se construye utilizando todos los bloques del diagrama Top-Down.

Programa

Inicialización Entrada Proceso Salida

Validación Tarea 1

(76)

Acoplamiento de datos Estándar



Subrutinas:

 Pueden tener Parámetros de Entrada.

 Se utilizan cuando:

 No se necesita resultado.

 Se necesitan 2 ó más resultados, se utiliza …

 Se necesitan 2 ó más resultados, se utiliza

parámetros de retorno.



Funciones:

 Pueden tener Parámetros de Entrada.

 Se utilizan cuando:

(77)

Programación Modular en C

Ejemplo: Construir un programa modular en C++ con acoplamiento de datos estándar para obtener todas las raíces de una ecuación cuadrática.

(78)

Parámetros por Valor



Una vez tomado su valor pueden ser empleados como

variables locales, sin afectar las variables externas.

Ejemplo: … resultado = cubo(3.0) resultado = cubo(x) resultado = cubo(x) …

double cubo(double numero) {

double res;

res = numero*numero*numero; numero = 8;

return res;

Cambio en parámetro por valor que no afecta variables externas, ejemplo: x no se ve afectada.

(79)

Ejercicio

Construir un programa modular en C++ con acoplamiento de datos estándar para calcular el máximo, mínimo y promedio de N cuartetos.

Fase 1: Diseño y Análisis: DTD

DES, DRE ó DF y LV de Módulos y TM.

DES, DRE ó DF, LV y CF de Bloque Principal.

(80)

Resumen



Acoplamiento de datos estándar:

 Parámetros de entrada → Parámetro por valor.

 Parámetros de retorno o salida → Parámetro por

referencia.

 Obtener más de un resultado.  Obtener más de un resultado.  Operador referencia &.

 Llamada: SIEMPRE se debe utilizar como

argumento una VARIABLE

(81)

Resumen



Acoplamiento de datos estándar:

 Subrutinas  No se necesita resultado.  Se necesitan 2 ó más resultados.  Funciones  Funciones  Se retorna 1 resultado.



Representación de Algoritmos Modulares:

Referencias

Documento similar

Los valores alcanzados para cada una de las fases son en este caso similares a los esperados en base a la concentración de nitrógeno soluble inerte del influente, no

Hay un segundo requisito para que la expresión esté bien formada: los valores proporcionados como parámetros (que denominaremos parámetros reales) deben ser del mismo

&gt; Para cumplir con todo el campo de posibilidades para el cálculo de los valores de los parámetros es necesario desarrollar el programa de cálculo de parámetros para el modelo

Cuando se declaren variables de este tipo hay que especificar obligatoriamente el valor del campo discriminante (excepto en la declaración de parámetros formales); una vez

En este capítulo, se introducirá el control óptimo para el oscilador, para ello se necesitará resolver las ecuaciones de los parámetros de la función valor.. Como se observa en

1. Metodología de estudio. Tratamiento de los datos. Estudio del espectro frecuencial de la TMF. Defectos en los rodamientos:.. Pérdida de aislamiento:. Relación entre la amplitud y

2- Programación del coordinador Zigbee MiMo para, una vez establecida una conexión por un canal de frecuencia y puerto de antena, medir diferentes

Parámetros seleccionados para el análisis del caso real 1.. Parámetros estadísticos del caso