Escolar Documentos
Profissional Documentos
Cultura Documentos
Presentacindelaunidad
Unidad6.Funciones
Presentacindelaunidad
Hastaestaetapadelcurso,hasaprendidoa
utilizarlasestructurasdecontrolparadisear
solucionesdeproblemassimples.Tambin
hasconocidodiferentesformasde
representarlosdatosinvolucradosenun
problema,desdesimpleshastaestructurados
(comoarreglos,cadenasyestructuras).Sin
embargo,todaslassolucionespropuestas
constannicamentedeunmdulo(funcin),
llamadoprincipal(enC,main)locualno
esconvenientecuandosetratadeproblemas
complejosquerequierandeunaseriede
tareasparalograrsusolucin,puessta
seramuygrandey,porlotanto,difcilde
corregiromodificar.
Daclicenlaflechaparacontinuar.
http://aulatres.unadmexico.mx/av20151/pluginfile.php/427/mod_scorm/content/1/00_FPR_U6_Presentacion/00_FPR_U6_Presentacion_p1.html
1de4
1/1
27/3/2015
Presentacindelaunidad
Unidad6.Funciones
Presentacindelaunidad
Lorecomendableescrearmdulos
independientesquerealicencadaunadelas
tareasespecficasyqueenconjunto
implementenlasolucindelproblema.A
estametodologaselellamadiseo
modular,yestinspiradoenlaestrategia
divideyvencers.
Enestaunidadseexplicarnlasfunciones,
quesonelmedioporelcualseimplementan
losmdulosenlenguajeC.Sepresentarla
sintaxisparacrearunafuncinylaformaen
laqueseutilizan.Adems,seresolverun
problemautilizandoeldiseomodularpara
ejemplificareltema.
Daclicenlasflechasparaavanzaroretroceder.
http://aulatres.unadmexico.mx/av20151/pluginfile.php/427/mod_scorm/content/1/00_FPR_U6_Presentacion/00_FPR_U6_Presentacion_p2.html
2de4
1/1
27/3/2015
Propsitosdelaunidad
Unidad6.Funciones
Propsitosdelaunidad
Enestaunidad:
Identificarslossubproblemasenquese
puededividirunproblema.
Disearsalgoritmosmodularespara
solucionarunproblema.
ConstruirsfuncionesenlenguajeCque
realicentareasespecficas.
Daclicenlasflechasparaavanzaroretroceder.
http://aulatres.unadmexico.mx/av20151/pluginfile.php/427/mod_scorm/content/1/00_FPR_U6_Presentacion/00_FPR_U6_Presentacion_p3.html
3de4
1/1
27/3/2015
Competenciaespecfica
Unidad6.Funciones
Competenciaespecfica
Implementarfuncionespararesolverproblemas
atravsdeldesarrollodeprogramasmodulares
escritosenlenguajeC.
Paracomenzarlaunidad,dacliceneltema6.1.Diseodescendente.
http://aulatres.unadmexico.mx/av20151/pluginfile.php/427/mod_scorm/content/1/00_FPR_U6_Presentacion/00_FPR_U6_Presentacion_p4.html
4de4
1/1
27/3/2015
6.1.Diseodescendente
Unidad6.Funciones
6.1.Diseodescendente
Ladescomposicindeunprogramaen
mdulosmspequeosseconocecomoel
mtododedivideyvencers(divideand
conquer)odiseodescendente(top
down).Consisteendividirunproblemaen
unidadesmspequeassucesivashasta
queseandirectamenteejecutadasporel
procesador,enotraspalabras,lasolucin
delproblemasedivideunayotravezhasta
queestexpresadaentrminosde
estructurasdecontrol,cadaunodelos
nivelesopasossucesivosseconocecomo
refinamiento(stepwise).
Daclicenlaflechaparacontinuar.
http://aulatres.unadmexico.mx/av20151/pluginfile.php/427/mod_scorm/content/1/01_FPR_U6_6_1/01_FPR_U6_Tema_6_1_p1.html
1de5
1/1
27/3/2015
6.1.Diseodescendente
Unidad6.Funciones
6.1.Diseodescendente
Lametodologadeldiseodescendenteconsisteenefectuarunarelacinentrelasetapasde
estructuracindemaneraqueserelacionenentresatravsdeentradasysalidasdedatos.
Esdecir,sedescomponeelproblemaenetapasdeestructuracinjerrquicas,deformaque
sepuedaconsiderarcadaestructuradesdedospuntosdevista:quhace?ycmolo
hace?
Conloanteriorpodemosdecirque:unmdulosecaracterizaporrealizarunatarea
especfica,poseesuspropiosdatosdeentradallamadosparmetrosdeentradaysu
resultadollamadosalidaovalorderetorno.Eldiseodecadamdulodebeser
independientedelosotrossiesnecesarioqueexistacomunicacinentreellos,sta
nicamentepodrrealizarseatravsdelosparmetrosdeentradaydelvalorderetorno.En
estesentido,puedeservisto,porotrosmdulos,comounacajanegraquehaciaelexterior
slomuestraquhaceyqunecesita,peronocmolohace.
Daclicenlasflechasparaavanzaroretroceder.
http://aulatres.unadmexico.mx/av20151/pluginfile.php/427/mod_scorm/content/1/01_FPR_U6_6_1/01_FPR_U6_Tema_6_1_p2.html
2de5
1/1
27/3/2015
6.1.Diseodescendente
Unidad6.Funciones
6.1.Diseodescendente
Daclicenlasflechasparaavanzaroretroceder.
http://aulatres.unadmexico.mx/av20151/pluginfile.php/427/mod_scorm/content/1/01_FPR_U6_6_1/01_FPR_U6_Tema_6_1_p3.html
3de5
1/1
27/3/2015
6.1.Diseodescendente
Unidad6.Funciones
6.1.Diseodescendente
Noexisteunmtodoparasaberencuntosmdulossedebedividirunproblema,sin
embargoesimportantetenerencuentalossiguientesprincipiosdeldiseomodular:
Laspartesaltamenterelacionadasdebenperteneceraunmismomdulo.
Laspartesnorelacionadasdebenresidirenmdulosdiferentes.
Paraejemplificarestaformaderesolverproblemasycmoimplementarla,sepresentala
siguientesituacin:
DaclicenelconoparadescargarelEjemplo6.1.
Daclicenlasflechasparaavanzaroretroceder.
http://aulatres.unadmexico.mx/av20151/pluginfile.php/427/mod_scorm/content/1/01_FPR_U6_6_1/01_FPR_U6_Tema_6_1_p4.html
4de5
1/1
Fundamentos de Programacin
Unidad 6. Funciones
6.1. Diseo descendente
Problema 6.1: Realiza el anlisis y diseo de un programa que lea las temperaturas promedio mensuales
registradas en una ciudad a lo largo de un ao y calcule el promedio anual. Adems, debe convertir las
temperaturas mensuales dadas en grados Celsius a grados Fahrenheit al igual que el promedio.
Empecemos por hacer un bosquejo de los pasos que se tienen que realizar para llegar al resultado deseado.
1. Leer las doce temperaturas promedio mensuales
2. Calcular el promedio anual de las temperaturas
3. Convertir las temperaturas promedio mensuales de Celsius a Fahrenheit
4. Convertir el promedio anual de temperaturas a Fahrenheit
5. Imprimir las temperaturas mensuales en grados Fahrenheit y el promedio anual de las temperaturas,
en Celsius y Fahrenheit.
Para registrar las temperaturas mensuales proponemos utilizar un arreglo de tamao 12. Y de acuerdo con
lo anterior, proponemos tres mdulos: El primero encargado de leer las temperaturas mensuales dadas en
grados Celsius, este mdulo necesita el nombre del arreglo donde va a almacenar los datos. Otro mdulo
encargado de calcular el promedio de las temperaturas, que recibe como parmetros de entrada el arreglo
con las temperaturas mensuales y devuelve el promedio en grados Celsius. El ltimo mdulo slo convierte
grados Celsius a grados Fahrenheit. Esta informacin se resume en el diagrama modular que se muestra a
continuacin.
Principal
Datos entrada:
temps[ ]
Salida:
tempsF[ ], promeF y promC
leerTemps
Parmetros Entrada:
temps[ ] (arreglo donde
leer los datos)
Valor de retorno:
Ninguno (actualiza los
temps[ ])
promTemps
Parmetros Entrada:
temps[ ]
Valor de retorno:
prom
aFahrenheit
Parmetros Entrada:
tempC
Valor de retorno:
tempF
Fundamentos de Programacin
Unidad 6. Funciones
6.1. Diseo descendente
Mdulo leerTemps(temp[ ])
Inicio
Desde mes 1 mientras mes 12,
mes mes + 1
Imprimir Proporciona la
temperatura del
mes, mes
Leer temps[mes-1]
Fin_Desde
Fin
Fundamentos de Programacin
Unidad 6. Funciones
6.1. Diseo descendente
Mdulo promTemps(temp[])
Inicio
suma 0
Desde mes 0 mientras mes 11,
mes mes + 1
suma suma + temps[mes]]
Fin_Desde
Regresa (suma/12)
Fin
Fundamentos de Programacin
Unidad 6. Funciones
6.1. Diseo descendente
Mdulo Principal
Inicio
/* Lectura de las temperaturas, invocando al mdulo leerTemps */
Imprimir Ingresa los promedios de temperaturas mensuales
leerTemps(temps[])
/* Clculo del promedio utilizando el mdulo promTemps */
promC promTemps(temps[])
/* Conversin del promedio a grados Fahrenheit, invocando al mdulo aFahrenheit */
promF aFahrenheit(promC)
/* Conversin de las temperaturas mensuales a grados Fahrenheit */
Desde mes 0 mientras mes 11, mes mes + 1
tempsF[mes] aFahrenheit(temps[mes])
Fin_Desde
/* Impresin de temperaturas mensuales en Fahrenheit */
Desde mes 1 mientras mes 12, mes mes + 1
Imprimir Temperatura en Fahrenheit del mes, mes, es: , tempF[mes-1]
Fin_Desde
Fin
Algoritmo 6.4: Algoritmo del mdulo principal del problema 6.1 (pseudocdigo)
Por esta ocasin se te deja como ejercicio que realices las representaciones en diagrama de flujo del mdulo
principal, considerando que el smbolo que se utiliza para llamar a mdulos que no devuelven ningn valor,
como es el caso de leerTemps , se muestra a continuacin:
leerTemps(temp[])
Esto no es caso, del resto de los mdulos secundarios que s devuelven un valor, as que se utiliza el smbolo
de proceso (rectngulo).
27/3/2015
6.1.Diseodescendente
Unidad6.Funciones
6.1.Diseodescendente
Conelejemplo,resaltanvariasventajasqueproporcionaundiseomodular:
1.
Esposiblereutilizarcdigo,staesindudablementeunadelasmsimportantesya
quenoesnecesarioescribirelmismocdigocadavezquedeseamosrealizarunatarea
semejante.Porejemplo,elmduloaFahrenheitseutiliza13veces(12enelcicloyuna
paraconvertirelpromedio)yslobastdefinirlounavez.
2.
Fcildeteccinycorreccindeerrores,dadoqueelproblemafuedividoen
pequeosmduloscadaunoresponsabledeunatarea,sienalgnmomentoexistiera
unerrorenlasolucinglobal,bastaidentificarculdelastareaseslaquenoseest
resolviendoadecuadamenteycorregirnicamenteaquellosmdulosinvolucrados.
3.
Fcilmodificacinoextensin,siserequieremodificarunatareadelproblemao
agregarunanueva,nosernecesariorediseartodoelalgoritmo,bastaconhacerlas
modificacionesenlosmdulospertinentes.
Unproblemasevuelvemssencillodesolucionarsipensamosdemaneramodular.
DaclicenlaActividad1.Foro:Funciones.
http://aulatres.unadmexico.mx/av20151/pluginfile.php/427/mod_scorm/content/1/01_FPR_U6_6_1/01_FPR_U6_Tema_6_1_p5.html
5de5
1/1
27/3/2015
Actividad1.Foro:Funciones
Unidad6.Funciones
Actividad1.Foro:Funciones
Esteforoesunespaciodondeentreestudiantespodrncompartirideas,experiencias,dudas,
hallazgosylogrosentornoalasFuncionesenLenguajeCylasventajasdeldiseo
descendente.
Indicaciones:
Apartirdelasolucinmodulardelproblemaqueplanteasteenlasunidadesanteriores,
reflexionasobrelasventajasdeldiseodescendenteylasfuncionesenLenguajeC.
Comparteentusreflexionesyconformeavanceseneldiseomodulardetuproblema,
ingresatuscomentariosenelForo.
Paraingresaralforo:Enlaruta(partesuperiorizquierdadelaula)daclicenFundamentos.
SeenlistarnlasactividadesdelaUnidaddaclicenlaActividad1.ForoFunciones.
Alterminartuparticipacinenelforo,daclicenelTema6.2.Definicin,declaracine
invocacindefuncionesenC.
http://aulatres.unadmexico.mx/av20151/pluginfile.php/427/mod_scorm/content/1/02_FPR_U6_Actividad1/02_FPR_U6_Actividad1_p1.html
1de1
1/1
27/3/2015
6.2.Definicin,declaracineinvocacindefuncionesenC
Unidad6.Funciones
6.2.Definicin,declaracineinvocacindefuncionesenC
EnelcasoparticulardeC,unmduloseimplementacomounafuncin,recuerdaqueenla
unidad3seexplicqueunprogramaenCestintegradodevariasfunciones,dondeuna
funcinsedefinecomounaporcindecdigo(unconjuntodeinstruccionesagrupadaspor
separado)enfocadoarealizarunatareaenespecfico,resaltandolafuncinprincipalmain.
Aligualquelafuncinprincipal,cadaunadelasfuncionesexistedemaneraindependiente,
tienesuspropiasvariables,instruccionesyunnombrequelasdistinguedelasotras.
Ademsdelosparmetrosdeentrada(tambinllamadosargumentos)querecibeyeltipo
dedatoqueregresa.
Daclicenlaflechaparacontinuar.
http://aulatres.unadmexico.mx/av20151/pluginfile.php/427/mod_scorm/content/1/03_FPR_U6_6_2/03_FPR_U6_Tema_6_2_p1.html
1de5
1/1
27/3/2015
6.2.Definicin,declaracineinvocacindefuncionesenC
Unidad6.Funciones
6.2.Definicin,declaracineinvocacindefuncionesenC
El<tipodedatoretorno>indicaeltipodedatoquelafuncindevuelve(puedeser
cualquieradelostiposbsicos),paralocualseutilizalapalabrareservadareturn.Cuando
lafuncinnovaadevolverningndatoseespecificamedianteeltipovoidynodebeincluir
lapalabrareservadareturn.
El<identificadordelafuncin>eselnombrequelevamosadaralafunciny
medianteelcualvamosahacerreferenciaaella.Sedebenseguirlasmismasreglasquelos
identificadoresdelasvariablesyserecomiendaqueseanemnicos.Enseguidadelnombrey
entreparntesisvalalistadeparmetros,queconsistedeunalistadedeclaracionesde
variableslocalesquevanacontenerlosdatosdeentradaparalafuncin,sedebeespecificar
explcitamenteeltipoynombreparacadauno,separadosporcomas,ancuandoseandel
mismotipo:tipo1param1,tipo2param2,,tipoNparamN.Porltimo,lasinstruccionesdel
cuerpodelafuncinvanentrellaves.
Daclicenlasflechasparaavanzaroretroceder.
http://aulatres.unadmexico.mx/av20151/pluginfile.php/427/mod_scorm/content/1/03_FPR_U6_6_2/03_FPR_U6_Tema_6_2_p2.html
2de5
1/1
27/3/2015
6.2.Definicin,declaracineinvocacindefuncionesenC
Unidad6.Funciones
6.2.Definicin,declaracineinvocacindefuncionesenC
Laprimeralneadeladefinicindeunafuncinseconocecomoencabezadodelafuncin
(eninglsheader).
Parailustraresto,acontinuacinsemuestralacodificacindelmduloaFahrenheitdefinido
eneltemaanterior.
floataFahrenheit(floattempC)
{
return((9.0/5.0)*tempC+32)
}
Programa6.1:CodificacindelmduloaFahrenheit
Daclicenlasflechasparaavanzaroretroceder.
http://aulatres.unadmexico.mx/av20151/pluginfile.php/427/mod_scorm/content/1/03_FPR_U6_6_2/03_FPR_U6_Tema_6_2_p3.html
3de5
1/1
27/3/2015
6.2.Definicin,declaracineinvocacindefuncionesenC
Unidad6.Funciones
6.2.Definicin,declaracineinvocacindefuncionesenC
Lallamadaoinvocacinaunafuncinserealizacuandoserequierequeseejecutenlas
instruccionesdelcuerpoconvaloresdeentradadeterminados.Parainvocaraunafuncinse
tienequeescribirelnombreseguidodelosvaloresquedebencoincidirconelorden,nmero
ytipodelosparmetrosdeentradadadosenladefinicindelafuncinydebenestar
encerradosentreparntesis.
Lasintaxisgeneralparainvocarunafuncinyaseapredefinidaodefinidaporelprogramador,
eslasiguiente:
<identificadordelafuncin>(<listadevalores>)
Losparmetrosdeentradadeunafuncinsonvalores,porloquepuedenestardeterminados
por:valoresconstantes(8,a,5.2,cadenaconstante),unavariable(loquerealmentese
pasaalafuncineselvaloralmacenado)ounaexpresin(elparmetrodeentradarealesel
resultadodelaevaluacin).Porejemplo,lallamadaalafuncinquedefinimosseremarcaen
lasiguienteinstruccin:
promF=aFahrenheit(promC)
Daclicenlasflechasparaavanzaroretroceder.
http://aulatres.unadmexico.mx/av20151/pluginfile.php/427/mod_scorm/content/1/03_FPR_U6_6_2/03_FPR_U6_Tema_6_2_p4.html
4de5
1/1
27/3/2015
6.2.Definicin,declaracineinvocacindefuncionesenC
Unidad6.Funciones
6.2.Definicin,declaracineinvocacindefuncionesenC
Aligualquelasvariablesunafuncindebedeserdeclaradaantesdeutilizarse,esdecir,
antesdeinvocarla.Ladeclaracindeunafuncinserealizaescribiendoelprototipodela
funcin.Elprototipodeunafuncincoincideconelencabezadodelamismaterminandocon
puntoycoma()Elprototipodeunafuncinsloindicaalcompiladorqueexisteycmoes,
msnoloquehaceporlotantosedebedefinirdespus.Porejemplo,elprototipodela
funcinantesdefinidasera:
floataFahrenheit(floattempC)
Cabesealarqueenelprototipodelasfuncionessepuedeomitirlosidentificadoresdelos
parmetros,msnolostipos.
Parailustrartodoloanterior,daclicaquyobservalacodificacindelalgoritmomodular
diseadoenlaseccinanterior.
DaclicenlaActividad2.Funciones.
http://aulatres.unadmexico.mx/av20151/pluginfile.php/427/mod_scorm/content/1/03_FPR_U6_6_2/03_FPR_U6_Tema_6_2_p5.html
5de5
1/1
Unidad 6. Funciones
6.2. Definicin, declaracin e invocacin de funciones en C
Codificacin del algoritmo modular promedioTemp.c
/* Programa: promedioTemp.c
* Descripcin: Calcula el promedio de las temperaturas promedio
* mensuales registrada a lo largo de un ao*/
/* Biblioteca */
#include<stdio.h>
#include<stdlib.h>
/* Variables globales */
int meses = 12;
/* Prototipos de las funciones */
/* Funcin que lee las temperaturas promedio mensuales registradas en
un ao*/
void leerTemps( float temps[]);
/* Funcin que calcula el promedio de las temperaturas promedio mensuales
registradas en un ao*/
float promTemps( float temps[]);
/* Funcin que convierte de grados Celsius a grados Fahrenheit */
float aFahrenheit(float tempC);
/* Funcin principal */
main()
{
/* Declaracin de variables locales a main */
float temps[12], tempsF[12], promF, promC;
int mes;
/* Lectura de las temperaturas, invocando a leerTemps*/
printf(Ingresa los promedios de temperaturas mensuales\n);
leerTemps(temps);
/* Clculo del promedio utilizando la funcin promTemps*/
promC = promTemps(temps);
27/3/2015
Actividad2.Funciones
Unidad6.Funciones
Actividad2.Funciones
Enestaactividadpresentarsunaversinpreliminardelprogramaquehastrabajadocomo
partedelasevidenciasdeaprendizajeanteriores,elcual,ahoradebeincorporarmdulos
parahacermseficientesufuncionamiento.
1.
Retomaelprogramaqueenviastecomoevidenciaenlaunidadanterioryrealizauna
propuestaparadividirloenmdulos.Justificaporqudecidisteproponercadamdulo.
2.
Realizaunaprimeraversindelalgoritmoenpseudocdigoodiagramadeflujoy
envaloatuFacilitador(a).
Paraenviartudocumento:Enlaruta(partesuperiorizquierdadelaula)daclicen
Fundamentos.Seenlistarnlasactividadesdelaunidad,daclicenlaActividad2.
Funciones.
Alconcluirlaactividaddacliceneltema6.3.Alcancedelasvariables.
http://aulatres.unadmexico.mx/av20151/pluginfile.php/427/mod_scorm/content/1/04_FPR_U6_Actividad2/04_FPR_U6_Actividad2_p1.html
1de1
1/1
27/3/2015
6.3.Alcancedelasvariables
Unidad6.Funciones
6.3.Alcancedelasvariables
Elalcancedelasvariableseslapartedelprogramadentrodelacualsepuedenutilizar.
Cuandosondeclaradasfueradelcuerpodecualquierfuncinsedenominanvariables
globalesypuedenserutilizadasencualquierpuntodelprogramaapartirdellugardonde
fuerondeclaradas,encambiocuandosondeclaradasdentrodelcuerpodealgunafuncinse
denominanvariableslocales,esdecirslodentrodeesafuncinpuedenserutilizadas.
Lasvariableslocalesquetienenelmismonombreperofuerondeclaradasendiferentes
funciones,notienenrelacin,sonespaciosdememoriatotalmenteindependientesunode
otro.Podemosdecirque,soncomodospersonasdiferentesquetienenelmismonombre.
Lasvariablesqueseponencomoargumentosenladeclaracindeunafuncinseconsideran
localesastas.
Daclicaquparaverunejemplo.
Daclicenlaflechaparacontinuar.
http://aulatres.unadmexico.mx/av20151/pluginfile.php/427/mod_scorm/content/1/05_FPR_U6_6_3/05_FPR_U6_Tema_6_3_p1.html
1de3
1/1
27/3/2015
6.3.Alcancedelasvariables
Unidad6.Funciones
6.3.Alcancedelasvariables
Alutilizarvariablesglobalestodaslasfuncionespuedenmanipularlas,susvalores
permanecenmientraselprogramaestenejecucin.Sinembargo,suusopuedepromover
erroresdetipolgico,yaquealmodificarelvalordeunavariabledentrodeunafuncinpuede
afectarelresultadodeotra.
Porejemplo,supongamosquelafuncininicializaA()modificaelvalordelavariable
TAMquealmacenaelnmerodeelementosdelarregloA,estecambiorepercutirenlos
ciclosdelafuncinmain,loscualesimprimenelarregloA.Enestecasoseproducirun
errorenlaejecucin,puessielvaloresmenoracinconoseimprimirntodoslosvaloresyse
esmayorentonceshabrelementosindefinidos.Detectarycorregirestetipodeerrores
puedeserunatareanadafcil,porloquenoserecomiendaelusodevariablesglobales,lo
cualnoocurresisonconstantes.
Daclicenlasflechasparaavanzaroretroceder.
http://aulatres.unadmexico.mx/av20151/pluginfile.php/427/mod_scorm/content/1/05_FPR_U6_6_3/05_FPR_U6_Tema_6_3_p2.html
2de3
1/1
27/3/2015
6.3.Alcancedelasvariables
Unidad6.Funciones
6.3.Alcancedelasvariables
Lasvariableslocalesporotraparte,favorecenmucholareutilizacindecdigoyla
modularidad,yaquecadafuncindeclaraymanipulasuspropiasvariablessindependerdelo
queocurraenotrasfunciones,estonosignificaquealutilizarsolamentevariableslocalesno
seaposiblecompartirdatosentrelasdiferentesfunciones,estosehacemediantesusdatos
deentradayretorno,unaposibledesventajaesqueelvalordelasvariableslocalessepierde
cadavezquelafuncintermina.
Dacliceneltema6.4.Pasodeparmetros.
http://aulatres.unadmexico.mx/av20151/pluginfile.php/427/mod_scorm/content/1/05_FPR_U6_6_3/05_FPR_U6_Tema_6_3_p3.html
3de3
1/1
27/3/2015
6.4.Pasodeparmetros
Unidad6.Funciones
6.4.Pasodeparmetros
Elpasodeparmetrosserefierealaformaenlaquesetransfierencomoparmetrouna
variableaunafuncin,esencialmente,siseleotorganonopermisosparamodificarlos
valoresoriginales.Cuandonoseleotorgapermisosparaquelamodifiquesedicequees
pasodeparmetrosporvalor,puesenestecasoslosetransfiereelvalordelavariable,el
cualsealmacenaenunavariablelocaldelafuncinqueseestllamando.
Encambio,cuandolafuncinpuedemodificarelvalordelavariablesedicequeesunpaso
deparmetroporreferencia,puesenestecasonosepasasloelvalorsinoladireccinde
memoriaquelecorrespondealavariable.
Enlossiguientessubtemasseexplicamsadetallelosdostiposdepasodeparmetro.
Daclicenelsubtema6.4.1.Porvalor.
http://aulatres.unadmexico.mx/av20151/pluginfile.php/427/mod_scorm/content/1/06_FPR_U6_6_4/06_FPR_U6_Tema_6_4_p1.html
1de1
1/1
27/3/2015
6.4.1.Porvalor
Unidad6.Funciones
6.4.1.Porvalor
Cuandoserealizaunallamadaaunafuncinporvaloryenstaapareceunavariablecomo
unodelosargumentos,enrealidadnoseestpasandolavariablesinounacopiadelvalor
questacontiene,locualimplicaquesidentrodelafuncinsemodificaelargumentoestono
severeflejadoenelprogramadesdeelcualsehizolallamada,puessonlocalidadesde
memoriadiferentes(recuerdaqueencadallamadaaunafuncinsecreannuevasvariablesy
sedestruyenunavezfinalizalaejecucin).
DaclicenelconoparadescargarlailustracindelPrograma6.3.
Daclicenelsubtema6.4.2.Porreferencia.
http://aulatres.unadmexico.mx/av20151/pluginfile.php/427/mod_scorm/content/1/07_FPR_U6_6_4_1/07_FPR_U6_Tema_6_4_1_p1.html
1de1
1/1
Fundamentos de Programacin
Unidad 6. Funciones
6.4.1. Por valor
27/3/2015
6.4.2.Porreferencia
Unidad6.Funciones
6.4.2.Porreferencia
Lallamadaaunafuncinporreferenciasmodificaelvalordelavariable,puesloque
realmenteseestpasandoesladireccindememoriaasignadaalavariableparaquela
funcinpuedamodificarelvalor.
EnClosarreglossiempresepasanporreferencia,yaqueelnombredelarregloenrealidad
almacenaladireccindememoriadondeseencuentraalmacenadoelprimerelementodel
arreglo.Deestamaneracuandoserealizaunallamadaaunafuncinyseescribeel
identificadordeunarreglocomoparmetro,seestpasandoladireccin.
ParaejemplificarloanteriorsemuestralaejecucindelprogramapasoReferencia.cquese
presentenunsubtemaanterior.
DaclicenelconoparadescargarlailustracindelPrograma6.4.
Daclicenlaflechaparacontinuar.
http://aulatres.unadmexico.mx/av20151/pluginfile.php/427/mod_scorm/content/1/08_FPR_U6_6_4_2/08_FPR_U6_Tema_6_4_2_p1.html
1de2
1/1
Fundamentos de Programacin
Unidad 6. Funciones
6.4.2. Por referencia
27/3/2015
6.4.2.Porreferencia
Unidad6.Funciones
6.4.2.Porreferencia
Finalmente,cabemencionarquepararealizarlallamadaporreferenciadeunavariablede
tipobsicoenlenguajeCesnecesariopasarladireccindelavariableparalocualseutiliza
eloperador&seguidodelnombredelavariable(&nombre),comosehaceenlafuncin
scanf,esteoperadorregresaladireccindememoriaquelecorrespondealavariable
indicada.
Porotraparte,paraalmacenarladireccindememoriadeunavariableseutilizaunavariable
detipoapuntador.Unavariableapuntadorseencargadealmacenarunadireccinde
memoria,ladeclaracindeunavariableapuntadoressimilaraladecualquierotravariable,
conladiferenciaquesedebeescribirunasteriscoentreeltipodelavariableyelidentificador.
Eltemadelosapuntadoresesmuyinteresante,sinembargo,noesunodelosobjetivosde
estecurso.
DaclicenlaAutoevaluacin.
http://aulatres.unadmexico.mx/av20151/pluginfile.php/427/mod_scorm/content/1/08_FPR_U6_6_4_2/08_FPR_U6_Tema_6_4_2_p2.html
2de2
1/1
27/3/2015
Autoevaluacin
Unidad6.Funciones
Autoevaluacin
IngresaalcuestionariodeAutoevaluacin,ycontestacadaunadelaspreguntasquesete
plantean.Consideravolverarepasaralgunostemassitusrespuestascorrectassonmenos
quelasincorrectas.
Paraingresaralaautoevaluacin:Enlaruta(partesuperiorizquierdadelaula)daclicen
Fundamentos.Seenlistarnlasactividades,daclicencuestionarioAutoevaluacin.
DaclicenlaEvidenciadeaprendizaje.EvidenciadeAprendizaje:ProgramaenC.Versin
Modular.
http://aulatres.unadmexico.mx/av20151/pluginfile.php/427/mod_scorm/content/1/09_FPR_U6_Autoev/09_FPR_U6_Autoevaluacion_p1.html
1de1
1/1
27/3/2015
EvidenciadeAprendizaje:ProgramaenC.VersinModular
Unidad6.Funciones
EvidenciadeAprendizaje:ProgramaenC.VersinModular
Despusdehaberestudiadoestaunidadyacuentasconloselementosparadisearuna
solucinmodularparaelproblemaqueplanteasteenlaEvidenciadeAprendizajedela
Unidad2ydelcualyahasdesarrolladounasolucinnomodularizada,ademsdela
propuestamodularinicialhechaenlaActividad2.
Paraestaocasindebesproponerlasolucinmodularfinalqueconstede,almenos,dos
mdulossecundarios(funciones)ademsdelmduloprincipal(funcinmain).
Daclicenlaflechaparacontinuar.
http://aulatres.unadmexico.mx/av20151/pluginfile.php/427/mod_scorm/content/1/10_FPR_U6_EA/10_FPR_U6_EA_p1.html
1de4
1/1
27/3/2015
EvidenciadeAprendizaje:ProgramaenC.VersinModular
Unidad6.Funciones
EvidenciadeAprendizaje:ProgramaenC.VersinModular
Realizalosiguiente:
1. EnunarchivodeWord,realizaeldiagramamodulardescribiendoculessonlos
parmetrosdeentradadecadamdulo,culeslasalida(valorderetorno)ylatareaque
realizarcadaunodeellos.Recuerdaquelatareaquerealizacadamdulodebeestar
biendelimitada.
2. Enelmismoarchivorealizaelalgoritmodecadaunodelosmdulospropuestos,paraello
puedesutilizardiagramasdeflujoopseudocdigo(noesnecesarioqueenestepunto
representeselalgoritmodelasdosformas).Aliniciodeestearchivo,agregala
descripcindelproblemayelanlisisquerealizasteenlasEvidenciasdeAprendizajede
lasunidades2y3.
3. GuardatutrabajoconelnombreFPR_U6_EA_XXYZ.doc,envaloyesperaaquetu
Facilitador(a)retroalimentetutrabajo.Atiendeloqueseteindiqueyhazlosajustes
necesariosparamejorartuEvidencia.
Daclicenlasflechasparaavanzaroretroceder.
http://aulatres.unadmexico.mx/av20151/pluginfile.php/427/mod_scorm/content/1/10_FPR_U6_EA/10_FPR_U6_EA_p2.html
2de4
1/1
27/3/2015
EvidenciadeAprendizaje:ProgramaenC.VersinModular
Unidad6.Funciones
EvidenciadeAprendizaje:ProgramaenC.VersinModular
4. Despusdequeel(la)facilitador(a)teenvesuscomentariosyteaseguresquetu
algoritmoescorrecto,enelmismoarchivorealizalarepresentacinquetefalta,estoes,el
diagramadeflujosilohicisteenpseudocdigo,obien,elpseudocdigosianteslo
entregasteendiagramadeflujo.
5. Unavezqueestsseguro(a)dequetualgoritmoescorrecto,codifcaloenlenguajeCy
guardatuprogramaconelnombreFPR_U6_EA_XXYZ.c.Posteriormentecomplaloy
ejectalocondiferentesdatosdeentradaparavalidarquefuncionaadecuadamente.
6. Envalaversincorregidadetutrabajo,incluyendolosiguienteenunacarpeta
comprimidallamadaFPR_U6_EA_XXYZ.zip:
Algoritmoenpseudocdigoydiagramadeflujo.
Programafuente(.c).
Archivoejecutable(.exe).
Daclicenlasflechasparaavanzaroretroceder.
http://aulatres.unadmexico.mx/av20151/pluginfile.php/427/mod_scorm/content/1/10_FPR_U6_EA/10_FPR_U6_EA_p3.html
3de4
1/1
27/3/2015
EvidenciadeAprendizaje:ProgramaenC.VersinModular
Unidad6.Funciones
EvidenciadeAprendizaje:ProgramaenC.VersinModular
ConsultaatuFacilitador(a)paraconocerlafechalmiteenlaquepuedesenviarlasegunda
versindetutrabajo.
Porltimo,noolvidesrevisarlaescaladeevaluacinparaqueconozcasloslineamientosque
setomarnencuentaalmomentodecalificartuevidencia.
DacliceneliconoparaverlaEscaladeevaluacin.
Paraenviartuevidencia:Enlaruta(partesuperiorizquierdadelaula)daclicen
Fundamentos.Seenlistarnlasactividadesdelaunidad,daclicenlaEvidenciade
Aprendizaje:ProgramaenC.VersinModular.
AlterminarlaEvidenciadeAprendizaje:ProgramaenC.VersinModular,esimportante
hacertuAutorreflexin.Paraello,IngresaalforodePreguntasdeAutorreflexinyapartirde
laspreguntaspresentadasportuFacilitador(a),realizatuejercicioysbeloenlaseccin
Autorreflexiones.
Alconcluirlaevidenciadeaprendizaje,daclicenCierredelaunidad.
http://aulatres.unadmexico.mx/av20151/pluginfile.php/427/mod_scorm/content/1/10_FPR_U6_EA/10_FPR_U6_EA_p4.html
4de4
1/1
27/3/2015
Cierre
Unidad6.Funciones
Cierredelaunidad
Felicidades!,aquconcluyeelestudiodelaUnidad6.Funcionestambindelaasignatura
deFundamentosdeprogramacinyconellapartedeunciclodeaprendizaje,desarrollo
profesionalypersonalnico.
Esperamosqueloscontenidosyactividadesalolargodelaunidadhayanpermitido
implementarfuncionespararesolverproblemasatravsdeldesarrollodeprogramas
modularesescritosenlenguajeC.Sirequieresprofundizaroresolveralgunadudasobreel
temanodudesenconsultaratuFacilitador(a).
Continaconentusiasmo,disciplinayempeoeltercerCuatrimestredetuformacin
profesional!
Paraconcluirelestudiodelaunidad,daclicenFuentesdeconsulta.
http://aulatres.unadmexico.mx/av20151/pluginfile.php/427/mod_scorm/content/1/11_FPR_U6_Cierre/11_FPR_U6_Cierre_p1.html
1de1
1/1
27/3/2015
Fuentesdeconsulta
Unidad6.Funciones
Fuentesdeconsulta
DeitelH,M.,&DeitelP,J.CmoprogramarenC/C++.Mxico:PrenticeHall.
Joyanes,L.,&Zohanero,I.(2005).ProgramacinenC.Metodologa,algoritmosy
estructurasdedatos.aspao:McGrawHill.
Kernighan,B.,&Ritchie,D.(1991).EllenguajedeprogramacinC.Mxico:Prentice
HallHispanoamericana.
Lpez,L.(2005).ProgramacinestructuradaenlenguajeC.Mxico:Alfaomega.
Prez,H.(1992).FsicaGeneral(PrimeraEdicined.).Mxico:PublicacionesCultura.
Felicidades!Hasconcluidoelestudiodelaasignatura.
http://aulatres.unadmexico.mx/av20151/pluginfile.php/427/mod_scorm/content/1/12_FPR_U6_FC/12_FPR_U6_FC_p1.html
1de1
1/1