funciones alcance variables y para metros

Upload: alexandra-la-cruz

Post on 07-Apr-2018

228 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/6/2019 Funciones Alcance Variables y Para Metros

    1/23

  • 8/6/2019 Funciones Alcance Variables y Para Metros

    2/23

    CONTENIDOCONTENIDO

    InstruccionesInstrucciones breakbreakyycontinuecontinue Importancia delImportancia delusouso dede subalgoritmossubalgoritmos oo

    subprogramassubprogramas

    Definicin deDefinicin de FuncionesFuncionesDefinicin deDefinicin de ProcedimientosProcedimientos

    AlcanceAlcance de las variables:de las variables: GlobalesGlobales yy

    LocalesLocalesComunicacinComunicacin de subprogramas a travsde subprogramas a travs

    del pasaje dedel pasaje deparmetrosparmetros..

    PasoPaso de parmetros porde parmetros porvalorvalory pory porreferenciareferencia..

  • 8/6/2019 Funciones Alcance Variables y Para Metros

    3/23

    InstruccinInstruccin breakbreak

    EnEn ocasionesocasiones eses convenienteconveniente salirsalir deldelbuclebucle sinsin tomartomar enen cuentacuenta lala condicincondicin..EjemploEjemplo::

    whilewhile((((caractercaracter==getchargetchar()) != S )()) != S ){{

    ifif ((caractercaracter = = .)= = .)

    break;break;printfprintf(has introducido %(has introducido %c,caracterc,caracter););

    }}

  • 8/6/2019 Funciones Alcance Variables y Para Metros

    4/23

    InstruccinInstruccin breakbreakSiSi estaesta instruccininstruccin nono sese usausa

    adecuadamente,adecuadamente, puedepuede perturbarperturbar lalaprogramacinprogramacin estructurada,estructurada, ellaella esesrecomendadarecomendada cuandocuando ocurreocurre unauna

    excepcinexcepcin.. UnaUna mejoramejora deldel programaprogramaanterioranterior serasera::

    whilewhile((((caractercaracter==getchargetchar()) != S &&()) != S && caractercaracter !=.)!=.){{

    printfprintf(has introducido %(has introducido %c,caracterc,caracter););

    }}

  • 8/6/2019 Funciones Alcance Variables y Para Metros

    5/23

    InstruccinInstruccin continuecontinueEnEn algunosalgunos casoscasos elel cuerpocuerpo dede unun buclebuclepuedepuede resultarresultar complejocomplejo yy eses posibleposible quequeeventualmenteeventualmente nono sese requierarequiera ejecutarejecutar unaunaparteparte dede laslas instrucciones,instrucciones, aunqueaunque sese deseadesea

    permanecerpermanecer dentrodentro dede ll.. EjemploEjemplo::whilewhile((((caractercaracter==getchargetchar()) != S)()) != S)

    {{

    IfIf (( caractercaracter= = .)= = .)continuecontinue;;

    printfprintf(has introducido %(has introducido %c,caracterc,caracter););

    }}

  • 8/6/2019 Funciones Alcance Variables y Para Metros

    6/23

    InstruccinInstruccin continuecontinue

    UnaUna versinversin mejoradamejorada deldel cdigocdigo anterioranterior eses::

    whilewhile((((caractercaracter==getchargetchar()) != S)()) != S)

    {{

    ifif (( caractercaracter! = .)! = .)

    printfprintf(has introducido %(has introducido %c,caracterc,caracter););

    }}

  • 8/6/2019 Funciones Alcance Variables y Para Metros

    7/23

    Importancia del uso de subalgoritmos oImportancia del uso de subalgoritmos o

    subprogramassubprogramas

    Los subalgoritmos permiten a losprogramadores desarrollar soluciones deproblemas complejos, a travs del mtododescendente (top-down).

    Representan unidades de programasdiseados para ejecutar una tarea

    especfica. Los subprogramas se escriben 1 sola vez,

    pero pueden ser referenciados en

    diferentes puntos de un programa

  • 8/6/2019 Funciones Alcance Variables y Para Metros

    8/23

    Importancia del uso de subalgoritmos oImportancia del uso de subalgoritmos o

    subprogramassubprogramas

    Con el uso de los subprogramas se facilitala localizacin de un error.

    Los programas son ms fciles decomprender, debido a la independenciaentre las unidades de programas.

  • 8/6/2019 Funciones Alcance Variables y Para Metros

    9/23

    Importancia del uso de subalgoritmos oImportancia del uso de subalgoritmos o

    subprogramassubprogramas

    Problema

    SP1 SP2 SP3

  • 8/6/2019 Funciones Alcance Variables y Para Metros

    10/23

    El programa principal invoca al subprogramaEl programa principal invoca al subprograma

    Programa Subprograma

    Primera Llamada

    Retorno 1

    Segunda Llamada

    Retorno 2

  • 8/6/2019 Funciones Alcance Variables y Para Metros

    11/23

    Diferentes niveles de subprogramasDiferentes niveles de subprogramas

    Programa

    Subprograma1

    Subprograma2

    Subprograma1.1

  • 8/6/2019 Funciones Alcance Variables y Para Metros

    12/23

    FuncionesFunciones

    RepresentanRepresentan rutinasrutinas dede programasprogramasqueque sonson invocadasinvocadas desdedesde algnalgn otrootro

    programaprograma..SonSon referenciadasreferenciadas aa travstravs dede unun

    nombrenombre yy unauna listalista dede parmetrosparmetros

    actualesactuales oo realesreales..

  • 8/6/2019 Funciones Alcance Variables y Para Metros

    13/23

    Declaracin de FuncionesDeclaracin de Funciones

    (lista deparmetros)parmetros)

    [declaraciones locales][declaraciones locales]

    inicioinicio

    /*cuerpo de la funcin*/ /*cuerpo de la funcin*/devolver ()

    fin_funcinfin_funcin

    La llamada es mediante una instruccin con la siguienteLa llamada es mediante una instruccin con la siguienteestructura:estructura:

    X=X=nombre_funcinnombre_funcin(lista de parmetros):(lista de parmetros):

  • 8/6/2019 Funciones Alcance Variables y Para Metros

    14/23

    Ejemplo Declaracin de FuncionesEjemplo Declaracin de Funciones

    f(x)=x/(1 +x*x)f(x)=x/(1 +x*x)

    funcin F(x) funcin F(x)inicioinicio

    devolver (x/(1+x*x))devolver (x/(1+x*x))

    fin_funcionfin_funcion

  • 8/6/2019 Funciones Alcance Variables y Para Metros

    15/23

    Ejemplo: Valor absoluto de un nmeroEjemplo: Valor absoluto de un nmero

    Algoritmo Calculo_valor_absolutoAlgoritmo Calculo_valor_absolutovar X,Y enterovar X,Y entero

    inicioinicio

    leer Xleer X

    Y=valor_absoluto(X)Y=valor_absoluto(X)

    escribir El valor absoluto de X es Yescribir El valor absoluto de X es Yfinfin

  • 8/6/2019 Funciones Alcance Variables y Para Metros

    16/23

    Ejemplo: Valor absoluto de un nmeroEjemplo: Valor absoluto de un nmero

    enteroentero valor_abolutovalor_aboluto((entero:Nentero:N))varvar Z enteroZ enteroInicioInicio

    sisi N

  • 8/6/2019 Funciones Alcance Variables y Para Metros

    17/23

    ProcedimientosProcedimientos

    EsEs unun subprogramasubprograma queque ejecutaejecuta ununprocesoproceso especficoespecfico..

    NingnNingn valorvalorestest asociadoasociado concon elel nombrenombre

    deldel procedimientoprocedimiento..CuandoCuando unun procedimientoprocedimiento eses invocadoinvocado

    sese ejecutanejecutan laslas accionesacciones queque lolo definendefinen yy

    luegoluego sese devuelvedevuelve elel controlcontrol aa lalainstruccininstruccin siguientesiguiente aa lala llamadallamada..

    AA diferenciadiferencia dede laslas funcionesfunciones nonodevuelvendevuelven valoresvalores..

  • 8/6/2019 Funciones Alcance Variables y Para Metros

    18/23

    ProcedimientoProcedimiento

    Procedimiento nombreProcedimiento nombre [(lista de parmetros[(lista de parmetrosformales)]formales)]

    Fin_procedimientoFin_procedimiento

    La llamada es mediante una instruccin con laLa llamada es mediante una instruccin con la

    siguiente estructura:siguiente estructura:[[llamar_allamar_a]] nombre [(lista de parmetros)]nombre [(lista de parmetros)]

  • 8/6/2019 Funciones Alcance Variables y Para Metros

    19/23

    Procedimiento. Clculo de la divisinProcedimiento. Clculo de la divisinde dos nmeros para obtener cocientede dos nmeros para obtener cociente

    y restoy resto

    AlgoritmoAlgoritmo calculo_cociente_restocalculo_cociente_resto

    Var M,N,P,Q enteroVar M,N,P,Q enteroinicioinicio

    leer Mleer M

    leer Nleer N

    llamarllamardivisiondivision (M,N,P,Q)(M,N,P,Q)

    finfin

  • 8/6/2019 Funciones Alcance Variables y Para Metros

    20/23

    Procedimiento. Clculo de la divisinProcedimiento. Clculo de la divisinde dos nmeros para obtener cocientede dos nmeros para obtener cociente

    y restoy resto

    ProcedimientoProcedimiento divisiondivision((entero:D,d,C,Rentero:D,d,C,R))

    inicioinicio

    C = DC = D divdiv dd

    R = DR = D--C*dC*describir C,Rescribir C,R

    fin_procedimientofin_procedimiento

  • 8/6/2019 Funciones Alcance Variables y Para Metros

    21/23

    Alcance de VariablesAlcance de Variables

    VariablesVariables localeslocales:: EsEs aquellaaquella declaradadeclarada dentrodentrodede unun subprogramasubprograma yy eses distintadistinta dede laslasvariablesvariables queque tengantengan elel mismomismo nombrenombre enencualquiercualquier parteparte deldel programaprograma principalprincipal.. CuandoCuando

    sese hacehace referenciareferencia aa unauna variablevariable concon elel mismomismonombrenombre queque otraotra dentrodentro dede unun programa,programa, seserefiererefiere aa unauna posicinposicin diferentediferente dede memoriamemoria..

    VariablesVariables GlobalesGlobales

    :: EsEs aquellaaquella queque estestdeclaradadeclarada enen elel programaprograma principalprincipal yy sese puedepuedereferenciarreferenciar desdedesde cualquiercualquier parteparte deldel programa,programa,inclusiveinclusive desdedesde otrosotros subprogramassubprogramas..

  • 8/6/2019 Funciones Alcance Variables y Para Metros

    22/23

    A

    B

    C

    DE

    F

  • 8/6/2019 Funciones Alcance Variables y Para Metros

    23/23

    Paso de ParmetrosPaso de Parmetros

    PorPor valorvalor:: SeSe pasapasa unauna copiacopia deldel parmetroparmetrooriginaloriginal alal subprogramasubprograma llamadollamado.. LosLos cambioscambios aalala copiacopia nono afectanafectan elel valor valor dede lala variablevariable

    originaloriginal enen elel lugarlugar dondedonde sese hacehace lala llamadallamada..

    PorPor referenciareferencia:: ElEl invocador invocador lele dada alal

    subprogramasubprograma llamadollamado lala capacidadcapacidad dede accederaccederdirectamentedirectamente aa lala posicinposicin dede memoriamemoria dondedondesese encuentraencuentra elel datodato yy modificarlomodificarlo sisi sese deseadesea..