30
Estructuras de datos (Prof. Edgardo A. Franco) 1 Tema 18: Diseño Estructurado (Modularidad) M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom

18 Diseño Estructurado (Modularidad) · 2020. 7. 5. · Introducción •La modularidad es la capacidad que tiene un sistema de ser estudiado, visto o entendido como la unión de

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

  • Estructuras de datos (Prof. Edgardo A. Franco)

    1

    Tema 18: Diseño Estructurado (Modularidad)

    M. en C. Edgardo Adrián Franco Martínez http://[email protected]

    @edfrancom edgardoadrianfrancom

    http://www.eafranco.com/mailto:[email protected]

  • Contenido• Introducción• Diseño Estructurado• Ventajas de modular un problema• Funciones y procedimientos en Programación Estructurada

    • Funciones• Procedimientos

    • Concepto de función en C• Funciones de C

    • Funciones y procedimientos en C• Estructura de una función en C• Llamada a una función• Prototipo o declaración de funciones• Definición de funciones• Ejemplo de programa en C

    • Ámbito de variables• Variables locales• Variables globales

    • Parámetros de una función• Paso por valor• Paso por referencia

    2

    18

    Dis

    eño

    Est

    ruct

    ura

    do

    (M

    od

    ula

    rid

    ad)

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    Pro

    f. Ed

    gard

    o A

    dri

    án F

    ran

    co M

    artí

    nez

  • Introducción• La modularidad es la capacidad que tiene un sistema de ser

    estudiado, visto o entendido como la unión de varias partesque interactúan entre sí y que trabajan para alcanzar unobjetivo común, realizando cada una de ellas una tareanecesaria para la consecución de dicho objetivo.

    • Cada una de esas partes en que se encuentre dividido elsistema recibe el nombre de módulo. Idealmente unmódulo debe poder cumplir las condiciones de caja negra,es decir, ser independiente del resto de los módulos ycomunicarse con ellos (con todos o sólo con una parte) através de unas entradas y salidas bien definidas.

    3

    18

    Dis

    eño

    Est

    ruct

    ura

    do

    (M

    od

    ula

    rid

    ad)

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    Pro

    f. Ed

    gard

    o A

    dri

    án F

    ran

    co M

    artí

    nez

  • Diseño Estructurado• En programación y diseño de algoritmos, el diseño

    estructurado persigue elaborar algoritmos que cumplan lapropiedad de modularidad, para ello, dado un problemaque se pretende resolver mediante la elaboración de unprograma de cómputo, se busca dividir dicho programa enmódulos siguiendo los principios de diseño dedescomposición por refinamientos sucesivos, creación deuna jerarquía modular y elaboración de módulosIndependientes.

    4

    18

    Dis

    eño

    Est

    ruct

    ura

    do

    (M

    od

    ula

    rid

    ad)

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    Pro

    f. Ed

    gard

    o A

    dri

    án F

    ran

    co M

    artí

    nez

  • Ventajas de modular un problema

    • Modular un problema complejo trae muchos beneficios:

    • Entender mejor un problema complejo.

    • Ir aislando de manera especifica cada subproblema.

    • Escribir algoritmos correctos y más eficientes.

    • Producir programas que son más fáciles de mantener.

    • Escribir programas que son reutilizables.

    • En la programación estructurada la modularización deuna solución es posible al emplear funciones yprocedimientos. 5

    18

    Dis

    eño

    Est

    ruct

    ura

    do

    (M

    od

    ula

    rid

    ad)

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    Pro

    f. Ed

    gard

    o A

    dri

    án F

    ran

    co M

    artí

    nez

  • Funciones y procedimientos en Programación Estructurada• La programación estructurada se apoya de los

    conceptos de función y procedimiento para lograr elobjetivo de un diseño estructurado.

    6

    INICIO

    ProcesoA

    FunciónA

    ProcesoB

    FIN

    Principal

    INICIO

    Proceso

    FunciónB

    FIN

    ProcesoA

    INICIO

    Proceso

    FIN

    FunciónA

    INICIO

    Proceso

    FIN

    FunciónB

    18

    Dis

    eño

    Est

    ruct

    ura

    do

    (M

    od

    ula

    rid

    ad)

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    Pro

    f. Ed

    gard

    o A

    dri

    án F

    ran

    co M

    artí

    nez

  • • Lenguajes como Pascal (100% estructurado) loreflejan:

    7

    Procedimiento en Pascal Función en Pascal

    18

    Dis

    eño

    Est

    ruct

    ura

    do

    (M

    od

    ula

    rid

    ad)

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    Pro

    f. Ed

    gard

    o A

    dri

    án F

    ran

    co M

    artí

    nez

  • Funciones

    • Son elementos que realizan una tarea en particulary retornan un valor a la salida.

    • Son utilizadas como expresiones primarias y por lotanto formar parte de expresiones más complejas,es decir, se pueden utilizar para realizar operacionescon el valor que retornan a la salida. Por ejemplo,sumarse, restarse, multiplicarse, dividirse, etc.

    float valor;

    valor = 2*pow(x,y)+sqrt(4.23245)+7*sin(2*3.1416);8

    18

    Dis

    eño

    Est

    ruct

    ura

    do

    (M

    od

    ula

    rid

    ad)

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    Pro

    f. Ed

    gard

    o A

    dri

    án F

    ran

    co M

    artí

    nez

  • Procedimientos

    • Son elementos que realizan una tarea en particularpero que no retornan un valor a la salida y puedenrecibir o no parámetros a la entrada.

    • Son utilizadas como expresiones instrucción y seinvocan cuando se requiere que el programa realiceesa tarea en particular.

    printf( “Imprimir una cadena de caracteres” );

    scanf( “%f”, &x );//Capturar el valor de una variable9

    18

    Dis

    eño

    Est

    ruct

    ura

    do

    (M

    od

    ula

    rid

    ad)

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    Pro

    f. Ed

    gard

    o A

    dri

    án F

    ran

    co M

    artí

    nez

  • Concepto de función en C• Una función en lenguaje C es un miniprograma dentro de un

    programa más general, en otras palabras, una función es unpequeño fragmento de código “funcional” que realiza unatarea especifica.

    Desarrollar un programa utilizando funciones ayuda a:

    • Ahorrar espacio eliminando el código repetido.

    • Hace más fácil la programación.

    • Proporcionan un medio para dividir un proyecto grande enpequeños módulos más entendibles y manejables.

    • Permiten construir nuevos sistemas a partir de otros yadesarrollados.

    • Facilitan la labor de planeación, desarrollo ydocumentación de los programas.

    10

    18

    Dis

    eño

    Est

    ruct

    ura

    do

    (M

    od

    ula

    rid

    ad)

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    Pro

    f. Ed

    gard

    o A

    dri

    án F

    ran

    co M

    artí

    nez

  • Funciones de C• Un programa en C puede constar de una o varias definiciones

    de funciones.

    • Cada una de estas funciones realiza una tarea en particular.

    • Las funciones en C no se pueden anidar, es decir, no se puededeclarar el cuerpo de una función dentro de otra función.

    • En C todas las funciones son externas y globales, es decir,pueden ser invocadas desde cualquier parte del programa,incluso dentro de otra función.

    11

    18

    Dis

    eño

    Est

    ruct

    ura

    do

    (M

    od

    ula

    rid

    ad)

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    Pro

    f. Ed

    gard

    o A

    dri

    án F

    ran

    co M

    artí

    nez

  • Funciones y procedimientos en C• Las funciones en C provienen de las llamadas a

    subrutinas de Fortran, sin embargo, su uso intensivose introdujo con los procedimientos y funciones deAlgol y Pascal.

    • Las funciones en C se pueden utilizar para modelar losconceptos de la modularidad como:

    • Funciones (Retornando un valor “return un tipo de dato no void” y recibiendo o no parámetros)

    • Procedimientos (No retornando ningún valor “return void” y recibiendo o no parámetros)

    12

    18

    Dis

    eño

    Est

    ruct

    ura

    do

    (M

    od

    ula

    rid

    ad)

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    Pro

    f. Ed

    gard

    o A

    dri

    án F

    ran

    co M

    artí

    nez

  • Estructura de una función en C• La estructura de una función es:

    tipo_de_retorno nombreFuncion( listaParámetros ){

    /**Cuerpo de la función*/return expresión;

    }

    Donde:

    • tipo_de_retorno: Es el valor devuelto por la función o lapalabra reservada void por si la función no retorna ningún valor.

    • nombreFuncion: Es el identificador o nombre de la función.

    • listaParametros: Es la lista de parámetros que la funciónrecibe como entrada, separados por comas.

    • Expresión: Es el valor que regresa la función.

    13

    18

    Dis

    eño

    Est

    ruct

    ura

    do

    (M

    od

    ula

    rid

    ad)

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    Pro

    f. Ed

    gard

    o A

    dri

    án F

    ran

    co M

    artí

    nez

  • • Una llamada a una función produce la ejecución delas expresiones del cuerpo de la función y unretorno a la unidad de programa invocadoradespués de que la ejecución de la función hayaterminando, normalmente cuando se encuentra unasentencia return.

    La sentencia return termina inmediatamente la funciónen la se ejecuta.

    tipo_de_retorno nombreFuncion( listaParámetros ){

    /**Cuerpo de la función*/return expresión;

    }14

    18

    Dis

    eño

    Est

    ruct

    ura

    do

    (M

    od

    ula

    rid

    ad)

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    Pro

    f. Ed

    gard

    o A

    dri

    án F

    ran

    co M

    artí

    nez

  • • Nombre o identificador de una función:

    Por convención el nombre de una función debe comenzarcon una letra en mayúscula o con un guión bajo ( _ ) ypuede estar formado de una longitud n se recomienda unalongitud no máxima de 32 caracteres alfanuméricos,mayúsculas, minúsculas y guiones bajos, pero sin espaciosintermedios.

    • Tipo de retorno:

    Una función siempre devuelve un tipo de valor a la salida,este tipo de retorno puede ser uno de los datos simples de Co un apuntador a cualquier tipo de dato, sin embargo, si unafunción no devuelve un resultado, se utiliza el tipo void,que se considera como un tipo de dato nulo.

    15

    18

    Dis

    eño

    Est

    ruct

    ura

    do

    (M

    od

    ula

    rid

    ad)

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    Pro

    f. Ed

    gard

    o A

    dri

    án F

    ran

    co M

    artí

    nez

  • Una función devuelve un único valor, el valor devuelto(expresión) puede ser cualquier tipo de dato conocido en C(simple o estructurado). Sin embargo, también se puederetornar valores múltiples devolviendo un apuntador a unaestructura o un arreglo.

    • Una función puede tener cualquier numero de sentencias return, enel momento que el programa encuentre una de estas sentencias,devolverá el control a la sentencia invocadora.

    • Sí no se encuentra ninguna sentencia return la ejecución de lafunción continuará hasta el final de dicha función, es decir, hasta quese encuentre la llave de cerrado “}”, en ese momento se devolverá elcontrol a la sentencia invocadora.

    16

    18

    Dis

    eño

    Est

    ruct

    ura

    do

    (M

    od

    ula

    rid

    ad)

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    Pro

    f. Ed

    gard

    o A

    dri

    án F

    ran

    co M

    artí

    nez

  • • Parámetros de entrada formales:

    En C sólo se permite el paso de parámetros por valor yúnicamente de los tipos de datos básicos. No obstante, Cutiliza el paso de apuntadores para el paso de parámetrospor referencia, es decir, se puede pasar apuntadores a tiposde datos simples, estructuras, arreglos e incluso a funciones.(Se retomará con el tema de apuntadores).

    El paso de parámetros en una función es opcional, pero si seincluyen, deben estar declarados entre los paréntesis de ladeclaración de la función y separados por comas, es decir,cada parámetro debe tener una declaración independiente.

    17

    18

    Dis

    eño

    Est

    ruct

    ura

    do

    (M

    od

    ula

    rid

    ad)

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    Pro

    f. Ed

    gard

    o A

    dri

    án F

    ran

    co M

    artí

    nez

  • Llamada a una función• Las funciones, para poder ser ejecutadas, han de ser

    llamadas o invocadas. Cualquier instrucción o expresiónpuede tener una llamada a función que redirigirá el controldel programa a la función invocada.

    • Normalmente la invocación a una función ser realiza desdela función principal main(), sin embargo, también puedenser invocadas desde otras funciones, incluso desde ellasmismas “recursividad”.

    • Una función invocada recibe el control del programa, seejecuta y cuando termina (cuando se alcanza una sentenciareturn o la llave de cierre de la función) el control delprograma retorna a la función principal o a la funciónllamadora.

    18

    18

    Dis

    eño

    Est

    ruct

    ura

    do

    (M

    od

    ula

    rid

    ad)

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    Pro

    f. Ed

    gard

    o A

    dri

    án F

    ran

    co M

    artí

    nez

  • Control del flujodel programa

    19

    18

    Dis

    eño

    Est

    ruct

    ura

    do

    (M

    od

    ula

    rid

    ad)

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    Pro

    f. Ed

    gard

    o A

    dri

    án F

    ran

    co M

    artí

    nez

  • Prototipo o declaración de funciones

    • A la declaración de una función se le llama prototipo. Losprototipos de funciones comúnmente van declaradas en lacabecera del código después de la definición de las macros delpreporcesador (directivas #include y #define) pero antes delmétodo main() y con terminación en (;).

    • El prototipo consta de los siguientes elementos:

    tipo_retorno nombre_funcion(lista_prototipos_parametros);

    • tipo_de_retorno: Es el valor devuelto por la función o la palabra reservadavoid por si la función no retorna ningún valor.

    • nombreFuncion: Es el identificador o nombre de la función.

    • lista_prototipos_parametros:Es la lista de parámetros que la funciónrecibe como entrada, separados por comas. Colocar el identificador de losparámetros es opcional, sin embargo se recomienda colocarlos para mejorentendimiento de la función

    20

    18

    Dis

    eño

    Est

    ruct

    ura

    do

    (M

    od

    ula

    rid

    ad)

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    Pro

    f. Ed

    gard

    o A

    dri

    án F

    ran

    co M

    artí

    nez

  • • El prototipo de la función sirve para que el compiladorrealice la comprobación de tipos de dato de retorno y envío.

    • Cuando se realiza una invocación a una función, elcompilador ya conoce cuales son el numero y los tipos dedato que la función debe recibir, confirma que los datosenviados a la función coincidan con los que conocepreviamente y si no coinciden se generara un error entiempo de compilación.

    • El compilador sólo utiliza la información de los tipos de datoque debe recibir una función. Los identificadores de dichosdatos son irrelevantes para tal proceso, sin embargo, serecomienda utilizarlos con propósito de hacer máscomprensible la utilidad de la función.

    21

    18

    Dis

    eño

    Est

    ruct

    ura

    do

    (M

    od

    ula

    rid

    ad)

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    Pro

    f. Ed

    gard

    o A

    dri

    án F

    ran

    co M

    artí

    nez

  • Definición de funciones• La declaración de un prototipo de función es diferente a la

    definición de dicha función.

    • La declaración contiene sólo la cabecera de la función, es decir, su prototipo y se listan sus características.

    • La definición significa colocar el cuerpo de la función, es decir, definir la estructura del código de la función en alguna parte del programa, pero fuera del método principal main().

    • La declaración del prototipo de la función sirve para elcompilador pueda validar que número y el tipo de datos deentrada de la función coincidan con los que se utilizan en lallamada o invocación a dicha función.

    22

    18

    Dis

    eño

    Est

    ruct

    ura

    do

    (M

    od

    ula

    rid

    ad)

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    Pro

    f. Ed

    gard

    o A

    dri

    án F

    ran

    co M

    artí

    nez

  • • Cuando se define el código de la función, es este momento,si es necesario colocar tanto tipo de datos y susidentificadores ya que se le estará indicando al compiladorque utilice dichos identificadores como elementos deprocesamiento para que la función realice la tareaespecificada.

    #include double calcularCuadrado( double );

    int main( void ){

    double x = 11.5;double resultado;resultado = calcularCuadrado( x );printf( "El cuadrado de x es: %8.4lf \n", resultado );return 0;

    }

    double calcularCuadrado( double numero ){

    return numero*numero;}

    Declaración del Prototipode la función sin identificadores en los tipos de dato

    Definición de la función,en este momento secolocan los identificadores en los tipos de dato

    23

    18

    Dis

    eño

    Est

    ruct

    ura

    do

    (M

    od

    ula

    rid

    ad)

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    Pro

    f. Ed

    gard

    o A

    dri

    án F

    ran

    co M

    artí

    nez

  • //Directivas del pre-procesador

    #include

    #include

    #define VALOR 5.7 //Definición de constantes

    //Declaración de prototipos

    double modulo3D(double x, double y, double z);

    //Declaración de variables globales

    double mod3; /* Variable global mod3*/

    //Función principal

    int main(void)

    {

    int x, y, z;

    x=y=z=VALOR;

    mod3=modulo3D(x,y,z);

    printf(“\nEl módulo es: %lf”,mod3);

    return(0);

    }

    //Funciones definidas por el usuario

    double modulo3D(double x, double y, double z)

    {

    return(sqrt(x*x+y*y+z*z));

    }

    24

    Ejemplo de programa en C

    24

    18

    Dis

    eño

    Est

    ruct

    ura

    do

    (M

    od

    ula

    rid

    ad)

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    Pro

    f. Ed

    gard

    o A

    dri

    án F

    ran

    co M

    artí

    nez

  • Ámbito de variables• Existen dos tipos de ámbito en la variables que puede manejar C,

    estas son las variables locales y globales.

    • Variables locales son aquellas que son declaradas dentro delámbito de una función y su uso se restringe dentro de la mismafunción, se dice entonces que la variable es local a esa función.

    • Esto implica que todas las variables que se declaren dentro deuna función sólo van a poder ser manipuladas dentro de dichafunción y no podrán ser referenciadas desde fuera de la función.

    • Cualquier variable que se defina dentro de las llaves del cuerpode una función el compilador la interpretará como una variablelocal a esa función.

    • Si otra función declara otra variable con el mismo identificadorentonces dichas variables serán “tocayas” más no iguales.

    25

    18

    Dis

    eño

    Est

    ruct

    ura

    do

    (M

    od

    ula

    rid

    ad)

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    Pro

    f. Ed

    gard

    o A

    dri

    án F

    ran

    co M

    artí

    nez

  • •Variables globales es aquella que se define fuera delcuerpo de cualquier función, normalmente después de ladefinición de las directivas del preprocesador (#include y#define).

    • El ámbito de una variable global son todas las funciones quecomponen el programa.

    • Cualquier función puede acceder a dichas variables para leer ymodificar su valor. Es decir, se puede hacer referencia a sudirección de memoria en cualquier parte del programa.

    • No puede haber declaración de variables globales con el mismoidentificador.

    • Las variables globales pueden ser inicializadas en el mismoinstante que se declaran.

    • Puede haber variables globales de cualquier tipo de dato quepuede manejar C.

    26

    18

    Dis

    eño

    Est

    ruct

    ura

    do

    (M

    od

    ula

    rid

    ad)

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    Pro

    f. Ed

    gard

    o A

    dri

    án F

    ran

    co M

    artí

    nez

  • Ámbito de variables – variables globales

    • La declaración de las variables globales es la mismaque la declaración de una variable local, es decir:

    #include

    #define PI 3.1416

    ;

    = ;

    int main( void ){

    ...

    }

    • Si una función declara una variable local con elmismo identificador que una variable global(tocayas), entonces, el compilador le dará mayorprioridad al uso de la variable local que la global.

    Constante también tomada Como una variable global a partir de su declaración

    27

    18

    Dis

    eño

    Est

    ruct

    ura

    do

    (M

    od

    ula

    rid

    ad)

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    Pro

    f. Ed

    gard

    o A

    dri

    án F

    ran

    co M

    artí

    nez

  • Parámetros de una función• C siempre utiliza el paso de parámetros por valor, para

    pasar la copia del valor de una variable a una función. Sinembargo, C utiliza el paso de apuntadores para el paso deparámetros por referencia. (Se retomará con el tema deapuntadores).

    Paso de parámetros por valor.El paso por valor o paso por copia, significa que cuando Ccompila la función y el código que hace la llamada a lafunción, la función recibe una copia de los valores de losparámetros, es decir, si se modifica el valor de dichosparámetros dentro de la función, dichos cambios sólo seránvalidos dentro de la función pero no fuera de ella.

    28

    18

    Dis

    eño

    Est

    ruct

    ura

    do

    (M

    od

    ula

    rid

    ad)

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    Pro

    f. Ed

    gard

    o A

    dri

    án F

    ran

    co M

    artí

    nez

  • Parámetros de una función –Paso por valor

    • En la técnica del paso de parámetros por valor, la modificación de lavariable (parámetro recibido) dentro de la función receptora no afecta elvalor original del parámetro enviado al momento de la invocación a dichafunción. Dado este parámetro es una variable local de la propia función ysu valor es local.

    #include double calcularCuadrado( double );

    int main( void ){

    double x = 11.5;double resultado;resultado = calcularCuadrado( x );printf( "El cuadrado de %d es: %8.4lf \n", x, resultado );return 0;

    }double calcularCuadrado( double x ){

    int aux = x;x++;return aux*aux;

    }

    Parámetro enviado

    Parámetro copia delparámetro enviado

    Modificación al valor del parámetro copia

    29

    18

    Dis

    eño

    Est

    ruct

    ura

    do

    (M

    od

    ula

    rid

    ad)

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    Pro

    f. Ed

    gard

    o A

    dri

    án F

    ran

    co M

    artí

    nez

  • Parámetros de una función –Paso por referencia

    • En la técnica del paso de parámetros por referencia, la indirección de la variable(parámetro recibido) dentro de la función receptora permite alterar el valororiginal del la variable enviada por referencia. El parámetro recibido en el pasopor referencia en C es un apuntador a una dirección de memoria de algún tipo devariable.

    #include double calcularCuadrado( double *);

    int main( void ){

    double x = 11.5;double resultado;resultado = calcularCuadrado( &x );printf( "El cuadrado de %d es: %8.4lf \n", x, resultado );return 0;

    }double calcularCuadrado( double* x ){

    int aux = x;(*x)++;return aux*aux;

    }

    Parámetro enviadoDirección de X

    Parámetro copia delparámetro enviadoDirección de X

    Modificación al valor de la dirección recibida

    Al retornar al main() X se incremento

    30

    18

    Dis

    eño

    Est

    ruct

    ura

    do

    (M

    od

    ula

    rid

    ad)

    Alg

    ori

    tmia

    y p

    rogr

    amac

    ión

    est

    ruct

    ura

    da

    Pro

    f. Ed

    gard

    o A

    dri

    án F

    ran

    co M

    artí

    nez