01 informacion unidad 3 - c++

43
Unidad 3. Introducción al lenguaje C Contenido  Presentación de la Unidad ..................................................................................................................  2 3.1. Componentes de un programa ....................................................................................................  4 Tipos de operadores .......................................................................................................................  4 Actividad 1. Introducción al lenguaje C ‐ Presentación ......................................................................  6 Actividad 1. Introducción al lenguaje C ‐ Ejercicio A ...........................................................................  7 3.1.1. Instrucciones .............................................................................................................................  8 Instrucciones en C ...........................................................................................................................  8 3.1.2. Comentarios ..............................................................................................................................  9 3.1.3. Palabras reservadas ................................................................................................................  10 3.1.4. Estructura general de un programa ........................................................................................  11 Actividad 1. Introducción al lenguaje C  Ejercicio B ........................................................................  13 3.2. Tipos de datos ................................................................................................................................ 14 3.3. Variables y constantes ...................................................................................................................  16 3.3.1. Identificadores ........................................................................................................................  17 3.3.2. Declaración e inicialización de variables .................................................................................  18 3.3.3. Tipos de constantes ................................................................................................................  20 3.3.4. Declaración de constantes ......................................................................................................  22 Evidencia de Aprendizaje: Programa en C. Análisis del problema ....................................................  23 3.4. Expresiones matemáticas ..............................................................................................................  24 3.4.1. Tipos de operadores ...............................................................................................................  25 3.4.2. Evaluación de expresiones ......................................................................................................  27 Autoevaluación de la Unidad 3 .........................................................................................................  28 3.5. Bibliotecas y funciones ...................................................................................................................  29 3.5.1. Funciones matemáticas. .........................................................................................................  30 Actividad 2. Funciones de entrada y salida .......................................................................................  34 3.6. Codificación de algoritmos .............................................................................................................  35 Actividad 1. Introducción al lenguaje C  Ejercicio C ........................................................................  39 Actividad 3. Análisis, diseño y codificación de un programa en C ........................................................  40 Cierre de la Unidad ...............................................................................................................................  41 Fuentes de consulta ..............................................................................................................................  42    

Upload: kokein

Post on 22-Nov-2015

29 views

Category:

Documents


3 download

DESCRIPTION

Informacion de basica de programacion de C++, esta explicado por etapas y se consideran las partes basicas de sintaxis y orden para la programacion.El contenido es tomado de la UNAD MX,

TRANSCRIPT

  • Unidad 3.Introduccin al lenguaje C ContenidoPresentacindelaUnidad..................................................................................................................23.1.Componentesdeunprograma....................................................................................................4Tiposdeoperadores.......................................................................................................................4

    Actividad1.IntroduccinallenguajeCPresentacin......................................................................6Actividad1.IntroduccinallenguajeCEjercicioA...........................................................................73.1.1.Instrucciones.............................................................................................................................8InstruccionesenC...........................................................................................................................8

    3.1.2.Comentarios..............................................................................................................................93.1.3.Palabrasreservadas................................................................................................................103.1.4.Estructurageneraldeunprograma........................................................................................11Actividad1.IntroduccinallenguajeCEjercicioB........................................................................13

    3.2.Tiposdedatos................................................................................................................................143.3.Variablesyconstantes...................................................................................................................163.3.1.Identificadores........................................................................................................................173.3.2.Declaracineinicializacindevariables.................................................................................183.3.3.Tiposdeconstantes................................................................................................................203.3.4.Declaracindeconstantes......................................................................................................22EvidenciadeAprendizaje:ProgramaenC.Anlisisdelproblema....................................................23

    3.4.Expresionesmatemticas..............................................................................................................243.4.1.Tiposdeoperadores...............................................................................................................253.4.2.Evaluacindeexpresiones......................................................................................................27AutoevaluacindelaUnidad3.........................................................................................................28

    3.5.Bibliotecasyfunciones...................................................................................................................293.5.1.Funcionesmatemticas..........................................................................................................30Actividad2.Funcionesdeentradaysalida.......................................................................................34

    3.6.Codificacindealgoritmos.............................................................................................................35Actividad1.IntroduccinallenguajeCEjercicioC........................................................................39

    Actividad3.Anlisis,diseoycodificacindeunprogramaenC........................................................40CierredelaUnidad...............................................................................................................................41Fuentesdeconsulta..............................................................................................................................42

  • Unidad 3.Introduccin al lenguaje C PresentacindelaUnidad

    EnlaUnidadanteriortepresentamosunconjuntodeinstruccionesqueunaardilla(ficticia)podrarealizarytemostramoscmo,atravsdestas,laardillapodaresolvervariosproblemassiempreycuandosedefinieraunalgoritmo.Ahoraveamosqurelacinhayentreelmundodelaardillaylascomputadoras:laardillarepresentalacomputadora,queslopuedeejecutarunconjuntodeinstruccionesdefinidas;aligualquelaardilla,lacomputadoraporsmismaesincapazderesolverproblemas,parahacerlonecesitaunprogramaquepuedaseguir(ejecutar)paraobtenerelresultadodeseado,ascomolaardillanecesitabaunalgoritmoqueleindicaracmorealizarunatareaespecfica.

    Paracomenzararesolverproblemassimplespormediodelacomputadora,enestaUnidadaprenderemoslaformaenquesecreanlosprogramasenellenguajedeprogramacinC,desarrolladoporDennisM.Ritcheenelaode1972enloslaboratoriosBelldeAT&TyqueposteriormentefueestandarizadoporuncomitdelANSI(porsussiglaseninglsAmericanNationalStandardInstitute)dandolugaralANSIC,atravsdelcualsegarantizaquecualquierprogramacreadobajoesteestndarpuedaserejecutadoencualquiercomputadora(Kernighan&Ritchie,1991).LoselementosbsicosdellenguajedeprogramacinCqueestudiaremosenlaUnidadson:Tiposdedatos,variablesyconstantesExpresionesaritmticasFuncionesmatemticasFuncionesdeentradaysalida

    DistinguirslaestructuradeunprogramaenlenguajeC.Declararslasvariablesyconstantesquese

    utilizanenunalgoritmoenlenguajeC.Codificarsexpresionesmatemticasen

    lenguajeC.Utilizarsfuncionesdelabiblioteca

    estndardeCparacodificarinstruccionesdeentradaysalidayfuncionesmatemticas.UtilizarsunentornodetrabajodeCpara

    escribir,compilaryejecutarprogramasescritosenC.

  • Unidad 3.Introduccin al lenguaje C

    UtilizaellenguajedeprogramacinCpararesolverproblemasatravsdelaimplementacindealgoritmossecuenciales.

  • Unidad 3.Introduccin al lenguaje C 3.1.Componentesdeunprograma

    Engeneral,unprogramaesunasecuenciadeinstruccionesmediantelascualesseejecutandiferentesaccionesdeacuerdoconlosdatosqueseestnprocesando(Lpez,2005).

    EnlaUnidad1seexplicqueunprogramapuedeserejecutadoporunacomputadorasolamentesiestescritoenlenguajedemquina,peroescribirlosprogramaseneselenguajepuederesultarunalaboraltamentecomplicada,esporesoqueexistenloslenguajesdeprogramacin,quesonfcilesdeentenderparalossereshumanosyatravsdeellossepuedenescribirprogramasmslegiblesconocidoscomoprogramasfuenteenClosprogramasfuentetienenextensin.c,quesontraducidosalenguajedemquinamediantecompiladoresotraductores.EnelcasodeC,setratadeunlenguajecompilado,porloquesegeneraunprogramaejecutableconextensin.exe,quepuedeserejecutadocadavezquesedeseesinnecesidaddevolveracompilarelprogramafuente,amenosqueserealicealgncambio.DeacuerdoconsucreadorunprogramafuenteenC,cualquieraqueseasutamao,constadefuncionesyvariables.Unafuncincontieneunconjuntodeinstrucciones,tambinllamadaspreposicionesoenunciados,queespecificanlasoperacionesquelacomputadoradeberealizar;entanto,lasvariablessonlosespaciosdememoriadondesealmacenanlosvaloresutilizadosendichasoperaciones(Kernighan&Ritchie,1991,p.6).Acontinuacinseexplicanlaspartesquecomponenunprograma.TiposdeoperadoresParaexplicarloscomponentesdeunprograma,analizaremoslaestructuradelprogramahola_mundo.c,queeselprimerprogramaqueportradicinserealizacuandoseaprendeaprogramarenunnuevolenguajedeprogramacin.Apartirdeesteejemploserevisarlaestructuradeunprogramayloselementosquelointegran.Acontinuacinsemuestralaestructurageneral:Programahola_mundo.c/*Directivasdepreprocesador*/#include/*DefinicindefuncinPrincipal*/main(){printf(Holamundo\n);}Elprogramahola_mundo.csolotieneunafuncin:main;generalmentesepuededarcualquiernombrealasfuncionesquesedefinanenunprograma,sinembargo,mainesunafuncinespecialquesiempredebeaparecerenalgnlugardelprograma,yaqueeselpuntodesdeelcualseinicialaejecucin(equivalealainstruccindeiniciodeunalgoritmo).Losparntesis()queaparecendespusdelapalabramainindicanquesetratadeunafuncin;lasinstruccionesqueformanpartedesta,llamadascuerpodelafuncin,vanencerradasentrellaves{},sealandoelinicioyfindelamisma,respectivamente.Lasinstruccionesquecomienzancon/*yterminancon*/,sellamancomentarioseindicanquetodoloqueestescritoentreesossmbolosnosoninstruccionesquelacomputadoradebeejecutarsinoinformacindeintersparaelprogramador;porejemplolaprimeralneadecdigo:/*Directivasdepreprocesador*/

  • Unidad 3.Introduccin al lenguaje C Otrotipodeinstruccionesespecialessonlasdirectivasdelpreprocesador,quesoninstruccionesqueserealizanantesdelacompilacindelprograma,unejemploes:#includeSedistinguenporqueinicianconelcarctergato#,enestecasoestainstruccinleindicaalcompiladorquedebeincluirlainformacinqueestdefinidaenelarchivodebibliotecastdio.h,enelcualseencuentrantodaslasfuncionesdesalidayentrada,comoprintf.LoscompiladoresdelenguajeCofrecendistintasdirectivas,sinembargolasqueutilizaremosson:

    #define,quesirveparadefinirdeconstantesy/omacros #include,queseutilizaparaincluirotrosarchivos Enelcuerpodelafuncinmain,delprograma3.1,sloapareceunainstruccinquees

    lainvocacinalafuncinprintfconelargumentoHolamundo\n printf(Holamundo\n); Invocamosollamamosunafuncincuandorequerimosqueseejecuteconunconjuntode

    datosespecficos,aloscualesllamamosargumentos.Unafuncinseinvocaollamaalnombrarla,esdecir,escribiendosunombreseguidodelalistadeargumentos,separadosporcomasyencerradosentreparntesis.Enotraspalabras,losargumentossonlosvaloresqueunafuncinnecesitapararealizarlatareaquetieneencomendada,porejemplo,lafuncinprintftienecomofinimprimirlacadenadecaracteresquerecibecomoparmetro,enestecasoparticularimprimirlafraseHolamundoseguidadeunsaltodelnea,queesloquerepresentalasecuenciadecaracteres\n.

  • Unidad 3.Introduccin al lenguaje C Actividad1.IntroduccinallenguajeCPresentacinComosabes,laintencindeestaasignaturaesqueaprendasadisearprogramasenCqueteseandeutilidadpararesolverproblemaspormediodelacomputadora.Paralograrlo,esnecesarioqueperseveresypractiquesconstantementehastahabituarteenelmanejodeloselementosdeC;conesepropsito,durantetodaestaUnidadylasquesiguen,tepresentaremosvariosejerciciosquedebersrealizarcomocomplementodelasdemsActividadesyEvidenciasdeAprendizaje,losejerciciospropuestosparaestaUnidadson:

    EjercicioA:Holamundo.Debersescribir,compilaryejecutarelprogramahola_mundo.cycompartirtuexperienciaenelforodestinadoparalaactividad.

    EjercicioB:Estructurageneraldeunprograma.ConsisterealizarlomismoqueenelanteriorperoaplicadoaunprogramamscomplejoenelqueidentificarslaestructurageneraldeunprogramaenC.

    EjercicioC:Bibliotecasyfunciones.CuandoestudieseltemadeBibliotecasyfuncionescodificarsyejecutarsunpequeoprogramaqueimplementeesoselementos.

    Parapublicartusdudasycomentariosrelacionadosconlarealizacindeesosejercicios,cuentasconlabasededatosllamadaIntroduccinallenguajeC,endondetodos(Facilitador(a)ycompaeros(as)degrupo)podremosintercambiarideasparamejorarlosprogramasrealizados.Paraingresaralabasededatos:Enlaruta(partesuperiorizquierdadelaula)daclicenFundamentos.SeenlistarnlasactividadesdelaUnidad3yahdaclicenlaActividad1.IntroduccinallenguajeC.

  • Unidad 3.Introduccin al lenguaje C Actividad1.IntroduccinallenguajeCEjercicioAhola_mundoElprimerejercicioconsisteenlaelaboracindelprogramahola_mundo.c.Realizalosiguiente:1.Busca,descargaeinstalaelcompiladorDevC++,elcualeselsoftwarelibrequeutilizaremosdurantetodoloquerestadelcursoparacompilarlosprogramasqueserealicen.

    Paraconocercmofuncionaelcompilador,buscainformacinalrespecto.2.Escribe,compila(conDevC++)yejecutaelprogramahola_mundo.c.

    Encasodequeelcompiladorenveerrores,tesugerimosverificarquehayascopiadocorrectamenteelprograma.

    3.Ahorareflexiona: Tequedclarotodo? Comprendisteperfectamentetodoloquehicisteyporqu? Tienesalgunadudarelacionadaconalgunodeloscomponentesdelprograma?

    4.Ingresaalabasededatosycompartetureflexincontuscompaeros(as),sieselcaso,expnlasdudasopreguntasquetesurjanparaqueentretodospodamosdarlesrespuesta.Noesnecesarioquesubastusarchivosamenosqueaslorequierasparapresentartucomentario.

  • Unidad 3.Introduccin al lenguaje C 3.1.1.Instrucciones

    UnainstruccinoenunciadoenlenguajeCsepuededefinircomounaexpresinquetienealgunaconsecuencia,generalmentestasevereflejadaenelcambiodelvalorqueestalmacenadoenlasvariables.Deacuerdoconsuestructurasintcticasepuedenclasificarendostipos:simplesycompuestas.

    InstruccionesenCInstruccionessimplesycompuestas.LasinstruccionessimplessedistinguenporqueterminanconpuntoycomaLasintaxises:;Comoejemplodeinstruccionessimplestenemosladeclaracindevariables,lallamadadefuncionesylaasignacin.intx;x=2*y;printf(Hola);EncambiolasinstruccionescompuestassonunconjuntodeinstruccionesqueseescribenentrellavesLasintaxises:{;;;}

  • Unidad 3.Introduccin al lenguaje C 3.1.2.Comentarios

    Loscomentariossontextosquesirvencomoinformacinalprogramadorynosonprocesadosporelcompilador,esdecir,nosoninstruccionesquedeberealizarlacomputadorayporlotanto,nosontraducidosalenguajedemquina.Paraqueuntextoseaconsideradocomocomentariodebeestarentrelossmbolos/*(marcaelcomienzo)y*/(marcaelfinaldelcomentario).Puedenirencualquierpartedelprograma

    Un(a)buen(a)programador(a)debecomentarsusprogramasparaqueotraspersonaspuedanentenderlalgicadestos;incluso,loscomentariospuedenserdeutilidadal(ala)programador(a)cuandoenuntiempofuturorequierarealizarcambios.Esrecomendableincluiraliniciodestos:NombredelprogramaNombredelprogramadorBrevedescripcindelatareaquerealizaFechasdecreacinydelaltimamodificacin

    Todoloanteriorencerradoentrecomentarios.

    Porejemplo,aliniciodelprogramahola_mundo.cseraconvenienteincluirelcomentarioquesemuestraenlaimagendelladoderecho.Loscomentariostambinsepuedenincluiralladodeunainstruccinparadescribirdequsetrata,porejemplo:printf(Holamundo);/*ImprimeelmensajeHolamundoenlapantalla*/

    Comentarioenelprogramahola_mundo.c

  • Unidad 3.Introduccin al lenguaje C 3.1.3.Palabrasreservadas

    Laspalabrasreservadas decualquierlenguajedeprogramacin,sellamanasporquetienenunsignificadoespecialparaelcompilador,ellenguajeCtiene32palabrasreservadas(27fuerondefinidasenlaversinoriginalycincoaadidasporelcomitdelANSI:enum,const,signed,voidyvolatile),todasellasescritasconminsculas .

    EnlasiguientetablasemuestrantodaslaspalabrasclavesoreservadasdelenguajeC.Esimportantequelastengasencuentaalahoraderealizartusprogramas.

    PalabrasreservadasdeC

  • Unidad 3.Introduccin al lenguaje C 3.1.4.Estructurageneraldeunprograma

    AhoraqueyasehandescritolosdiferenteselementosqueintegranunprogramadelenguajeC,podemosdescribirsuestructurageneral.Siobservaselprogramahola_mundo.c,versquelaprimerainstruccinenelprogramaesladirectivaalpreprocesador,seguidadelafuncinmainylasinstruccionesquelaintegran.Estaestructuracorrespondealosprogramasmssimples,peroessimilaraladecualquierprogramaenC.Laformageneraldeunprogramaenestelenguajeeslaquesemuestraenelsiguientecuadro:

    Comosehamencionado,sepuedenincluircomentariosencualquierpartedelcdigo.Paradejarmsclaroesto,acontinuacinsepresentaunprogramaquecalculaelreadeunacircunferenciadadalamedidadesuradio.

    Porelmomento,bastaconqueobserveslaestructuradelprograma,sobretodoenlapartedeloscomentarios;elsignificadodecadaunadelaslneasdelcdigoseirdefiniendoenlassiguientessecciones.Paracerrarestaseccinenlasiguientefigurasemuestralaejecucindelprogramaconlaentradaradio=3.

  • Unidad 3.Introduccin al lenguaje C

    Figura3.1:EjecucindelprogramaareaCircunferencia.cutilizandoDevC++

  • Unidad 3.Introduccin al lenguaje C Actividad1.IntroduccinallenguajeCEjercicioBEstructurageneralyejecucindeunprogramaRealizalosiguiente:

    1. EscribeelprogramaareaCircunferencia.c2. ComplaloconDevC++yejectalodandodiferentesvaloresparaelradio.3. Ingresaalabasededatosparacomentartuexperiencia,tusdudas,opararesponderalos

    comentariosdetuscompaeros.Paraingresaralabasededatos:Enlaruta(partesuperiorizquierdadelaula)daclicenFundamentos.SeenlistarnlasactividadesdelaUnidad3yahdaclicenlaActividad1.IntroduccinallenguajeC

  • Unidad 3.Introduccin al lenguaje C 3.2.TiposdedatosEnlaUnidad1semencionquetodoslosdatosquesonprocesadosporunacomputadorasealmacenanenlamemoriaprincipaly,noimportadequtiposean,serepresentanpormediodeunosyceros;sinembargo,notodossepuedenrepresentarconelmismonmerodebits,estosdependedeltipodedatoquesetrate.Porejemplo,loscaracterescomo:a,@,Z,entreotros,serepresentanutilizando8bits,encambiopararepresentarunnmerodecimalseutilizan,almenos,32bits;porloque,cuandosecreaunespaciodememoria,esnecesarioindicarqutipodedatosedeseaalmacenarah,paraquesereservelacantidaddeceldasdememoriaquesenecesitanylasoperacionesquesepuedenrealizarconellos.Engeneral,lostiposdedatosqueexisten,independientementedellenguajedeprogramacinutilizado,sepuedenclasificardelasiguienteforma:

    Tabla3.2:TiposdedatosPorelmomento,slonosenfocaremosenlostiposdedatossimplesdefinidosenelestndardeC,enlaUnidad5seestudiarnlosdatosestructurados.

  • Unidad 3.Introduccin al lenguaje C EnlasiguientetablasemuestranlostiposdedatossimplesenC:

    Tabla3.3:TiposbsicosenCEsposibleaumentarodisminuirlacapacidadderepresentacindelosnmerosutilizandolosmodificadoreslong,shortyunsigned.DeestamaneralascombinacionesqueseajustanalestndarANSI,juntoconsusrangosmnimos,sonlasquesemuestranaqu.UnavezqueconocemoslostiposdedatosquesepuedenrepresentarenlenguajeC,esconvenientesabercmosereservanespaciosdememoriadondesonalmacenados,estoesjustoloqueseexplicaenelsiguienteTema.

  • Unidad 3.Introduccin al lenguaje C 3.3.Variablesyconstantes

    TantolasvariablescomolasconstantesenlenguajeCseutilizanparaalmacenarvalores,ladiferenciaqueexisteentreellasesqueenunaelvaloralmacenadopuedecambiarseencualquierinstantedelprogramayenlaotrano.Enseguidaloexplicamos.

    AlolargodeestetemadescubrirscmopuedesconstruirvariablesyconstantesenlenguajeC.Avanzaalprimersubtemaparacontinuar.

  • Unidad 3.Introduccin al lenguaje C 3.3.1.IdentificadoresEnlenguajeChayunaseriederestriccionesencuantoalosnombresoidentificadores,yaseadevariables,constantesofunciones.stasson:

    1. Losidentificadoresseintegranporletrasydgitosperoesnecesarioqueelnombresiemprecomienceconunaletra,porejemplo:enteroA,arco3,S184.

    2. Nopuedencontenercaracteresespeciales,porejemplo,acentos(,),laletraee(),gato(#),guin(),etc.Elcaracterdesubrayado_eselnicocaracterespecialquepuedeutilizarse,generalmenteseusaparadarleunamejorlegibilidadalnombredeunavariable,porejemplo:entero_A,area_Circulo,i_elemento.

    3. Nopuedencontenerespaciosenblanco.4. Nopuedenserpalabrasreservadas.5. Sedistingueentreletrasmaysculasyminsculas,estosignificaquelossiguientes

    identificadoressondistintos:area,Area,AREA.6. Aunquenoesunaregla,serecomiendaquelosidentificadoresseansignificativos,esdecir,

    queelnombreindiquequdatoseestalmacenandoah.7. Ejemplo3.1:8. 1)Serequiereunavariableparaalmacenarelradiodeuncrculo.9. Lasopcionessugeridasson:radio,radioCirculo,radio_circulo.10. 2)Serequiereunidentificadorparaunavariablequealmaceneelpromediodeventas

    anualesdeunatiendadepartamental.11. Opcionessugeridas:promedioVentas,prom_Ventas,promAnual.12. 3)Paraalmacenarelnmerotelefnicodeunapersona.13. Comoopcionessugeridastenemos:tel,telefono,nTel.14. Ahoraqueyaconoceslasreglasparaescribirlosnombresdelasvariablesylas

    caractersticasbsicasquepuedentener,estslisto(a)paradescubrircmosecreanlasvariablesenlenguajeC.Aestaaccinseledenominadeclaracindevariables.

  • Unidad 3.Introduccin al lenguaje C 3.3.2.Declaracineinicializacindevariables

    Ladeclaracindeunavariableesunainstruccinqueproporcionainformacindelavariablealcompilador,paraquestereserveenmemoriaelespacioadecuadoylareferencia(identificador)parateneraccesoaella.Lasdeclaracionesengeneraltienenlasiguientesintaxis:

    ;DondeserefiereauntipobsicodeCyelserefierealnombreconelcualseidentificarelespaciodememoriareservado,puedesercualquiernombresiempreycuandoserespetenlasreglasvistaspreviamente.Veamoslossiguientesejemplos:intedad;/*declaraunavariabledetipoenteroconelidentificadoredad*/floatarea;/*declaraunavariabledetipofloatalacualidentificarporarea*/Tambinesposibledeclararunalistadevariablesdeunmismotiposeparandolosnombresconcomas,:

    ,,;Podemosverunejemplodeestetipodedeclaracinenelprogramaquecalculaelreadeunacircunferencia,cuandodeclaramoslasvariableslocalesalafuncinmain:

    floatradio,area;/*declaradosvariables(radioyarea)detipofloat*/Siempreesposibleasignarlesunvalorinicialalasvariablescuandolasdeclaramos,aestaoperacinseconocecomoinicializacin.Lasintaxises:

    =;Delmismomodo,podemosinicializarvariasvariables:

    =,,=;Parailustraresto,sepresentanlossiguientesejemplosdevariablesinicializadas:intedad=18;floatradio=3.0,area=0.0;

  • Unidad 3.Introduccin al lenguaje C

    Enlafigura3.2semuestraunarepresentacingrficadeestasdeclaracioneseinicializacionesquepuedeayudaradarteunaideageneraldeloquesucedeenlamemoria:LascolumnasdeDireccinrepresentanladireccinfsicadelosregistrosenlamemoriaRAM,sihasidoasignadaunavariableseescribesuidentificadorjuntoaladireccin,enContenidosemuestraeldatoqueestalmacenadoparaesavariable.Elestadodeunavariablehacereferenciaalvalordeldatoquehayalmacenadoenunmomentodeterminado.

    Figura3.2:Memoriaydeclaracineinicializacindevariables

    Deloanteriortenemosque:alavariableedadlecorrespondeladireccindememoria02ysuestadoes18;alavariableradiolecorrespondeladireccin51ysuestadoes3.0;yporltimo,alavariablearealecorrespondeladireccin54yelestadoes0.0.

    Figura3.2:Memoriaydeclaracineinicializacindevariables

  • Unidad 3.Introduccin al lenguaje C 3.3.3.Tiposdeconstantes

    Comoyasemencionantes,lasconstantessonexpresionesconunsignificadoinvariable,puedenclasificarseendostipos:literalesysimblicas.Lasconstantesliteralessonvaloresdeundeterminadotipo,escritosdirectamenteenunprogramaypuedenserdelossiguientestipos:

    a)Constantesnumricas,quesonnmerosrepresentadosensistemadecimal,algunasvecesseestilaescribirunaletraqueindiqueeltamaootipodelaconstantenumrica:Enteros:Porejemplo123,2006,38EnterosLargos:Seconsiderannmerosenterosquesuperanunentero(int)generalmentevaloresmayoresa32,000;seleagregalossufijosloLporejemplo:123456789L.EnterossinSigno:Aqusedefinequeelvalordelaconstantesevaaconsiderarcomounnmeropositivoomayoracero,enestoscasosseagregaelsufijoUouasporejemplopodemosescribir:123456789LU.Flotantes:Losvaloresnumricosqueimpliquenprecisindecimalsepuedenescribirdedosformas,laprimerasera:14324.9833.1416.Tambinsepuedeexpresarenrepresentacinexponencial(en),porejemplo:1.1434E2o1.1432e5.TambinseocupanlossufijosfoFyloLparaespecificarlostiposdouble.Comopuedesobservar,lasconstantesrealesconrepresentacinexponencial,tienencomovalorunaparteenteraorealenformadecimal,seguidaporlaletraEoseguidadeunaconstanteentera,queseinterpretacomoexponentedelabase10.

    b)Constantescarcter,serepresentainternamenteporellenguajeCcomounnmeroenterocorto(shortint).Unaconstantecarctersiempredebeirentreapstrofes,porejemplo:x,A.

    TambinexistenconstantescarcterqueaparentansercompuestasperoslosonrepresentacionesdecaracteresdeformatoocaracteresespecialesyenCselesconocecomosecuenciasdeescape.

    \nSaltodelnea\tTabulador\bEspaciohaciaatrs\f Saltodepgina\Comillas\\Barrainvertida

    Tabla3.5:Secuenciasdeescape

    Fuentebasadaen(Kernighan&Ritchie,1991,pg.42)

    c)Constantescadena,sonunasecuenciadecaracteresentrecomillas,incluyendosecuenciasdeescape,porejemplo:hola,holamundo\n.Lasconstantessimblicasrepresentandatospermanentesquenuncacambian.

  • Unidad 3.Introduccin al lenguaje C Lasconstantesdeestetiposonrepresentadasporunnombre(simblico)enelcdigodelprograma.Delmismomodoenqueocurreconlasconstantesliteralesstasnopuedencambiarsuvalor,sinembargoparautilizarelvalorconstanteseutilizaelnombresimblicoquelehasidootorgado.Estetipodeconstantesmantienendosventajasmuyclarassobrelasconstantesliterales,unaesquelaescrituradelcdigoesmsclarayotraquefacilitalaedicindelosvalorescontenidosenelcdigodelprograma.Enelsiguientesubtemaahondaremosenesto.

  • Unidad 3.Introduccin al lenguaje C 3.3.4.Declaracindeconstantes

    EnCexistendosformasdedeclararunaconstantesimblica.Laprimeraesutilizandoladirectivadepreprocesador#define,lacualasociaunidentificadoraunvalorconstante,sinreservarespacioenmemoria,porloquenopodemosdecirestrictamentequesedeclara,slosedefine.Lasintaxisgeneraleslasiguiente:

    #definePorejemplo:

    #definePI3.1416Conestainstruccin,cadavezqueenelprogramaseescribaelidentificadorPI,stesersustituidoporelcompiladorconelvalorde3.1416(nosealmacenaelvalor3.1416enningnespaciodememoriaslosehaceunasustitucintextualenelmomentodecompilacin).Lasegundaformadedeclararunaconstantesimblicaesreservandoespaciodememoriaquetengalarestriccindeslolectura,paraimpedirqueelvalorseacambiado,enestecasosladeclaramos.Lasintaxisgeneralessimilaralaformadedeclararunavariablesloqueseanteponealtipolapalabrareservadaconstyesobligatorioasignarunvalor:

    const=;Porejemplo:

    constfloatPI3.1416;Ladirectiva#definedebeescribirsealprincipiodelprogramaantesdelmain,encambio,ladeclaracindeunaconstantemedianteconstpuedeserescritadentroofueradelasfuncionesaligualquelasdeclaracionesdevariables.Serecomiendaescribirelnombredeunaconstanteconletrasmaysculasparadiferenciarlasdelasvariables,perolasreglassonexactamentelasmismasqueparalosidentificadoresdelasvariables.

  • Unidad 3.Introduccin al lenguaje C EvidenciadeAprendizaje:ProgramaenC.Anlisisdelproblema

    HallegadolahoraderetomareldesarrollodelprogramaenCqueestsrealizandocomopartedelaEvidenciadeAprendizaje,hastaelmomentoyadebescontarcontuproblemaperfectamentedelimitado.Loquecorrespondeparaestaunidadesimplementarlafasedosdelproceso,queconsisteenhacerelanlisisdelproblemaparaqueenlasiguienteunidadsepuedacomenzareldiseodelalgoritmoenpseudocdigoodiagramadeflujo.Realizalosiguiente:

    1. EnunarchivodeWord,analizacuidadosamenteelproblemaplanteado,paraelloconsidera: Losdatosquesenecesitarncomoentradaysalidadelprograma,esdecir,qunecesitar

    ingresarelusuario,yquseesperaquedevuelvaelprogramacomoresultadofinal. Lametodologaqueseguirspararesolverelproblema,esdecir,quelementosde

    programacinnecesitarelprogramapararesolverelproblema.Porahoranonecesitasdelimitarlomuyadetalle,yaqueconformeavancesenelestudiodelasunidadessiguientes,aprendersnuevoselementosquesepuedenincorporaralprograma.Loimportanteenestepuntoesqueplanteesunaestructurageneralquepodraservirparaelalgoritmo.

    Enelmismodocumento,realizaunesbozodelalgoritmoenlenguajenatural(nonecesitashacerloendiagramadeflujonipseudocdigo)parapresentarlaestructurageneralquetendrtentativamentetuprograma.

    GuardatutrabajoconelnombreFPR_U3_EA_XXYZ.docyenvalomedianteelPortafoliodeevidencias;esperaaquetuFacilitador(a)devuelvaloscomentariosatutrabajo,atiendeloqueseteindiqueyhazlosajustesnecesariosparamejorartuEvidencia.

    Nota:ElplazolmiteparaenviarlasegundaversindelaEvidenciadeAprendizajeeshastaqueacabelaUnidad(consultaal(ala)Facilitador(a)paramayorinformacin).Paraconocerloslineamientosdeevaluacindeestaevidencia,descargaelsiguientedocumento.Paraenviartuevidencia:Enlaruta(partesuperiorizquierdadelaula)daclicenFundamentos.SeenlistarnlasactividadesdelaUnidad3ydaclicenlaEvidenciadeAprendizaje:ProgramaenC.Anlisisdelproblema.

  • Unidad 3.Introduccin al lenguaje C

    3.4.ExpresionesmatemticasLasexpresionesmatemticasrepresentanunadelaspartesimportantesdelaprogramacinenC,yaqueatravsdeellassepuedenresolverproblemasdedistintasclases.staspuedenserunnmero,unavariable,unaconstanteolacombinacindeoperadoresytodaslasanteriores.Todaexpresinalserevaluadaproduceunvalor.Sedividenendostiposdeacuerdoaltipodedatosquedevuelvencuandosonevaluadas:

    Expresionesaritmticascuandoelresultadodelaevaluacinesunnmero.Expresionesbooleanascuandoelresultadodelaevaluacinesunvalorbooleano(verdaderoo

    falso).EnestepuntoesimportantedestacarqueelmodoenqueellenguajeCmanejalosvaloresbooleanosespormediodevaloresenteros:ceroequivaleafalsoycualquierenterodistintodecerorepresentaverdadero.Lasexpresionesmatemticaspermitenmodelarsituacionesreales;porejemplo,mediantelasexpresionesaritmticaspodemosmodelarlaformadecalcularelreadecualquierfigura,tambinpodemosrepresentarlaformadecalcularlasracesdeunpolinomiodesegundogrado,ocalcularelmontodeunaventa,etc.Encambiolasexpresionesbooleanassonlabaseparaconstruirprogramasquepuedentomardecisiones.Observalossiguientesejemplos:Ejemplo3.2a)Lahipotenusaesigualalarazcuadradadelasumadeloscuadradosdecatetos.

    Expresinaritmtica: CodificacinenC:c=sqrt(a*a+b*b);b)xesunnmeropar?Sabemosqueunnmeroesparsiesdivisibleentre2,enotraspalabras,sielresiduodeladivisinentredosescero,locualsepuedeexpresarconeloperadordemdulo,quedevuelveelresiduodeunadivisin.

    Expresinbooleana: CodificacinenC:x%2==0EnelprximosubtemasepresentanlosoperadoresbsicosdellenguajeC,tantoaritmticoscomobooleanos.

  • Unidad 3.Introduccin al lenguaje C 3.4.1.Tiposdeoperadores

    Losoperadoressonpalabrasosmbolosquepermitenrealizaroperacionesconlosdatosdeunprograma,paracadatipodedatoshayunaseriedeoperadoresdefinidos.Entretodoslosoperadoressedistingueeloperadordeasignacin=,quesepuedeleercomoguardaunvalorenlavariableindicada,elvalorpuedeserunaconstanteliteraloelresultadodeunaexpresin.Cabesealarqueesteoperadorenpseudocdigoodiagramadeflujolohemosrepresentadoconunaflechaapuntadohacialaizquierda.Veamosalgunosejemplos:radio=3.0;/*modificaelestadodelavariableradioconelvalor3.0*/area=PI*radio*radio;/*modificaelestadodelavariableporelresultadodeevaluarlaexpresinPI*radio*radio*/MencionamosyaqueexistendostiposdeoperadoresbsicosquesepuedenutilizarenellenguajeC,acontinuacinlosexplicamos:LosoperadoresaritmticosdefinidosenCson:+(suma),(resta),*(multiplicacin),/(divisin)y%(mdulo).Esteltimorepresentaelresiduodedividirdosnmerosenteros,porejemplosirealizamosladivisinde6entre15(15/6),elcocientees2yelresiduoes3,alaplicareloperadormduloaestosvalorestenemos:

    15%6321%41

    EnCtambinexistenlosoperadoresdeincremento++ydecremento,stostienenelefectodeaumentarodisminuirenunaunidadelvalordeunavariable,supongamosqueestamostrabajandoconlavariablex:x++;/*equivaleahacer:x=x+1;*/x;/*equivaleahacer:x=x1;*/Porejemplo,sielvalordexes5elresultadodeaplicar++yes:x++;6x;4Losoperadoresquepermitenconstruirexpresionesbooleanasson:

    Operadoresrelacionalesquemanipulanexpresionesaritmticasyson:>(mayorque),=(mayoroigual),

  • Unidad 3.Introduccin al lenguaje C operadordeasignacinysusignificadoestotalmentedistinto.Encuantoalosoperadoresbooleanos,susignificadoeselsiguiente:

    Negacin!,esunoperadorunarioquecambiaelvalordeverdaddelaexpresinalacualseleaplica.Porejemplo,sielvalordeverdaddeexpresinesverdaderoentoncesdevuelvefalso,yviceversa.Porejemplo,six=2,y=3,z=5

    !(z>x)!(5>2)!(1)0(falso)!(x>y)!(2>3)!(0)1(falso)EnpseudocdigoodiagramadeflujoserepresentaconlapalabraeninglsNOT

    Conjuncin&&,esunoperadorbinarioqueseevalacomoverdaderoslocuandolasdosexpresionesinvolucradassonverdaderas,encasocontrariodevuelvefalso.Porejemplo,sievaluamoslassiguientesexpresionesenelestadolasvariablesx=2,y=3,z=5

    (x>y)&&(z>y)(2>3)&&(5>3)0&&10(falso)!(x>y)&&(z>y)!(2>3)&&(5>3)!(0)&&11&&11(verdadero)

    EnpseudocdigoydiagramadeflujoserepresentaconlapalabraeninglsAND Disyuncin||,esunoperadorbinarioquedevuelvenicamentefalsosilosdos

    operadoressonfalsos,encasocontrariodevuelveverdadero.Nuevamente,tomemoselmismoestadodelasvariablesx=2,y=3,z=5

    (x>y)||(z>y)(2>3)||(5>3)0||11(verdadero)(x>y)||(y>z)(2>3)||(3>5)0||00(falso)EnpseudocdigoydiagramadeflujoserepresentaconlapalabraeninglsORAdemsdelosoperadoresmencionados,enCexistenotrosquesepuedenutilizar,sinembargo,suestudiosuperalosobjetivosdeestecursoporloquenolosrevisaremos.SideseassabermsalrespectopuedesconsultareltextodeJoyanes&Zohanero(2005).

  • Unidad 3.Introduccin al lenguaje C 3.4.2.Evaluacindeexpresiones

    Laevaluacindelasexpresionesdependedetrescosas,principalmenteelestadodelasvariablesqueaparecenenlaexpresin,elsignificadodelosoperadoresysuprecedencia.Estaltimaserefierealaprioridaddelosoperadores,esdecir,elordenenelqueseevalan,eliminandoconestolaambigedaddelasexpresiones,porejemplo,sitenemoslaexpresin:

    2+3*5Podramosevaluarladedosdiferentesformas:laprimeraeshacerprimerolasuma2+3(=5)ydespusmultiplicarelresultadopor5.Detalmaneraobtendramoscomoresultadofinal25.Otramaneraserarealizarprimerolamultiplicacin3*5(=15)ysumarelresultadoa2,obteniendo17comoresultadofinal.Perosabemosqueenmatemticasprimeroserealizalamultiplicacinydespuslasuma,enotraspalabras,tienemayorprioridadlamultiplicacinquelasuma.Porlotanto,elresultadocorrectodelaexpresin2+3*5es17.EnlasiguientetablasemuestralaprecedenciadeoperadoresdelenguajeCquesehanpresentado.

    Tabla3.6:PrioridaddeoperadoresLosoperadoresqueseencuentranenelmismoniveldeprecedenciaseejecutandeizquierdaaderechasegnaparecenenlaexpresin.Daclicaquparaobservarunpardeejemplos.

  • Unidad 3.Introduccin al lenguaje C AutoevaluacindelaUnidad3

    1. Realizalasiguienteactividadqueteservirparaautoevaluartuconocimiento,estoconelfindequepuedasverificarqutantohasaprendidolostemasvistoshastaahorapuesnecesitarstenerunbuenmanejodelosmismosparacomprenderlostemassiguientesypararealizartusprximasactividades.

    2. IngresaalcuestionarioAutoevaluacindelaUnidad3ycontestacadaunadelaspreguntasqueseteplantean.Consideravolverarepasaralgunostemassitusrespuestascorrectassonmenosquelasincorrectas.

    Paraingresaralcuestionario:Enlaruta(partesuperiorizquierdadelaula)daclicenFundamentos.SeenlistarnlasactividadesdelaUnidad,daclicenAutoevaluacindelaUnidad3.

  • Unidad 3.Introduccin al lenguaje C 3.5.BibliotecasyfuncionesEllenguajeCenrealidadesunlenguajereducido,encomparacinconotroslenguajesdeprogramacin,porejemplo,notieneinstruccionesdeentradaysalida,tampococuentaconoperadoresofuncionesparacalcularlarazcuadradadeunnmeroosupotencia,entreotras.Sinembargo,paracompensaresto,ellenguajeCofreceunvastoconjuntodebibliotecasdefuncionesqueparafinesprcticossepuedenconsiderarcomopartedeC.Ademssepuedendefinirnuevasbibliotecas.Noobstante,parafinesdeestecursolasbibliotecasdeusofrecuentedellenguajesonmsquesuficientes,porloquenoseestudiarnmsquestas,porahora. Lasfuncionesquemsseutilizanestnagrupadasenbibliotecasestndar,declaradascomoarchivosdecabecera,detalmaneraqueparautilizarlassedebeescribirladirectiva#includeseguidadelnombredelarchivoencerradoentre.Lasbibliotecasestndarqueusaremosenestecursoson:

    stdio.henestabibliotecaseencuentrandefinidaslasfuncionesestndardeentradaysalidaquerepresentanlatercerapartedelabiblioteca,porejemplo,declaralafuncinprintfquesirveparaimprimirdatosenpantallayscanfqueseutilizaparaleerdatosingresadosmedianteelteclado.

    stdlib.hincluyefuncionesparaconversinnumrica,asignacindememoriaytareassimilares,llamadasfuncionesdeutilera.Enestabibliotecasedeclaralafuncinsystemmediantelacualseenvanmensajesalsistemaoperativoparaqueejecuteunatarea.

    math.hdeclarafuncionesmatemticas,comolafuncinsqrtquecalculalarazcuadradadeunnmero.

    ctype.hdeclarafuncionesparapruebadeclasificacindecaracteres,porejemplo,siesundgitoouncarcter.

    Observaquetodaslasbibliotecasestndartienenextensin.h.

  • Unidad 3.Introduccin al lenguaje C 3.5.1.Funcionesmatemticas.Porelmomento,conozcamoslasfuncionesdeclaradasenlabibliotecamath.h;siaprendesautilizarstas,tambinpodrsutilizarotrasfuncionesdelrestodelaslibreras.Observalasiguientetabla:

    Tabla3.7:FuncionesmatemticasConestainformacinesposiblecodificaralgoritmosquerequieranestetipodeoperaciones.Porejemplo,lafrmulaparacalcularelreadeunacircunferencia,queapareceenelprograma3.2.area=PI*radio*radio;Sepuedecodificardelasiguientemanera:area=PI*pow(radio,2);

  • Unidad 3.Introduccin al lenguaje C 3.5.2.Funcionesdeentradaysalida

    Enlosprogramasquehemosvistoaparecelafuncindesalidaestndarprintf,queseencargadeimprimirunmensajeenlapantalla.Lasintaxisgenerales:

    printf(,);Donderepresentaelmensajedetextoquesedeseadesplegarenelmonitorysiempretienequeirencomillas,opcionalmentepuedeincluirsecuenciasdeescapeoespecificadoresdecontrol;esunalistaconlosidentificadoresdelasvariablesolasexpresionesqueserndesplegadas,separadasporcomas.Losespecificadoresdeconversinseutilizanparaimprimirvaloresdentrodelacadenadecontrolespecificadosporunavariable,unaconstanteounaexpresin.Enlasiguientetablasemuestranlosquemsseusan.

    Tabla3.8:Especificadoresdeconversin

    Daclicaquparaverunejemplodeuso.

    Ejemplo3.5.Suponiendoqueelestadodelasvariableses:radio=3yarea=28.27,printf(Elareadelcirculoconradio%des%f\n,radio,area);Lasalidadelainstruccinanteriorsera:Elareadelcirculoconradio3es28.27

    Observaqueseimprimeeltextotalcualperoenvezdeimprimirelespecificadordeconversin%dseimprimeelvalordelaprimeravariablequeesradioyenellugardel

  • Unidad 3.Introduccin al lenguaje C especificador%fseimprimeelvalordelsiguienteargumentoqueeslavariable area.Ahora,sitenemoslainstruccin:printf(Elperimetroes%.2f\n,PI*2*radio);Lasalidasera:Elperimetroes18.85Enestecasoenellugardelconvertidor%.2fseimprimeelresultadodeevaluarlaexpresinPI*2*radioqueeselsegundoargumento,elnmero.2queapareceenelconvertidorindicaqueslodebenimprimirsedosdecimales.

    EnlenguajeClalecturadedatospormediodeltecladoserealizaconlafuncinscanf,enlacualsedebendeespecificardeantemanolostiposdedatosquesedeseanrecibir,ademsdelosidentificadoresdelasvariablesdondesedeseanalmacenar.

    Lasintaxisdeestafuncines:scanf(,);

    Dondeesunacadenaconloscdigosquecontrolarnlaformacomoserecibirnlosdatosdesdetecladoylaesunalistaconlaslocalidadesdememoriadelasvariablesdondesealmacenarnlosdatosqueelusuariodelprogramaintroduzcaatravsdelteclado.Dosobservacionesimportantes:enlaespecificacindelacadenadecontrolseutilizanlosmismosespecificadoresdeconversinqueparalafuncinprintfencerradosentrecomillasyenlalistadedireccioneslosidentificadoresdelasvariables,anteponindolesacadaunounsmbolodeampersand&,enelmismoordenquelosespecificadoresdetiposquelescorresponden.Daclicaquparaobservarunejemplo.

    Ejemplo3.6.Suponiendoquesedesealeerlabaseylaalturadeunrectnguloyguardarlasenlasvariablesdetipointllamadasbaseyaltura,detalmaneraqueelusuarioingreselosvaloresseparadosporunacoma,digamos5,2entonceslainstruccinsera:scanf(%d,%d,&base,&altura);Nota:Esfrecuentequelaspersonasolvidenescribirel&antesdelidentificadordeunavariable,alutilizarlafuncinscanf,cuestinquenoessupervisadaporelcompiladorygeneraunerrorenelmomentoqueseejecutaelprograma.

  • Unidad 3.Introduccin al lenguaje C

  • Unidad 3.Introduccin al lenguaje C Actividad2.FuncionesdeentradaysalidaRealizaunprogramaenCqueresuelvaelproblemaqueteproporcionartuFacilitador(a).Utilizafuncionesdeentradaysalida.

    1. Analizaelproblemaypropnunasolucinenpseudocdigoodiagramadeflujo,gurdaloconelnombreFPR_U3_A2_XXYZ,laextensindelarchivopuedesercualquieradelassiguientes,dependiendodelprogramaquehayasdecididoutilizar:.doc,.ppt,.pdf,.jpg,.bmp,.gif,.vsd.

    2. Realizaunapruebadeescritorioyposteriormente,sistahasidosatisfactoria,escribeel

    programaenlenguajeC.Nota:PuedesingresaralforoIntroduccinallenguajeCparacompartirtusdudasoparaayudararesolverlasdetuscompaeros.Esprobablequesitienesalgunadificultadenelprocesodedesarrollodetuprogramaalguiendelgrupotepuedaayudararesolverla,opuedeserquetsepaslasolucinalproblemadeotro(a).

    3. Complaloyejectaloparaverificarquefuncionacorrectamente.o Encasodequeelcompiladorenveerrores,verificadndeestelerrorycorrigelo

    4. GurdaloconelnombreFPR_U3_A2_XXYZ.c

    5. AgregalossiguientesarchivosaunacarpetacomprimidallamadaFPR_U3_A2_XXYZ.zip:o Algoritmoenpseudocdigoodiagramadeflujo

    o Programafuente(.c)

    o Archivoejecutable(.exe)

    6. Envalacarpetacomprimidaatufacilitador(a)mediantelaSeccindetareas.

    Paraenviartudocumento:Enlaruta(partesuperiorizquierdadelaula)daclicenFundamentos.SeenlistarnlasactividadesdelaUnidad3ydaclicenlaActividad2.Funcionesdeentradaysalida.

  • Unidad 3.Introduccin al lenguaje C 3.6.CodificacindealgoritmosParaconcluirestaUnidad,desarrollemosunprogramaenCqueincluyalaimplementacindeloquehemosestudiadohastaelmomento.Veamoscmoserealizalacodificacindelosalgoritmosconunpocomsdedetalle.Paralocualrealizaremosunprogramaqueresuelvaelproblemaqueacontinuacinsepresenta.

    Serequiereunprogramaqueseencarguedelaventadeboletosenuncine.Elsistemadebecalcularelmontoquesedebepagarporunacantidaddeterminadadeboletostomandoencuentaqueelcostodecadaboletoesde45pesos.Tambinseencargardecobrar,esdecir,dadoelpago,debecalcularelcambioindicandoeltipoynmerodebilletesomonedasquedevolverdecadadenominacin.Paraevitarseproblemasdecambio,losejecutivosdeCineESADhandecididonoaceptarmonedasdedenominacinmenora1pesoytampocobilletesdedenominacinmayora500pesos.Tambinsedebesuponerquesiemprehaysuficientesbilletesymonedasdecualquierdenominacinparadevolverelcambio.

    Losdatosdeentradasonelnmerodeboletos(nboletos)yelmontodelpago(pago),lasalidadelprogramaeselmontoquesedebepagarporlosboletos(total)yelmontodelcambio(cambio),indicandoeltipoynmerodecadaunodelosbilletesomonedasquesedevolvern.Notemosqueelpreciodelosboletossiempreeselmismo,asquesepuededeclararcomounaconstante,llammoslaPRECIO.Asqueparacalcularelmontoqueelclientedebepagartenemoslasiguientefrmula:total=nboletos*PRECIOYelmontodelcambiosecalculaconlasiguientefrmula:cambio=pagototalParacalcularcuntosbilletesomonedassetienenquedevolver,seutilizarnlosoperadoresdemduloydivisin.Porejemplo,sielcambioes360sepuedecalcularelnmerodebilletesde100

  • Unidad 3.Introduccin al lenguaje C dividiendo360entre100,locualresultaser3quecorrespondealnmerodebilletes,elrestodelcambioesiguala360mdulo100,enestecasoes60.Porltimo,losbilletesslopuedenserde$500,$200,$100,$50y$20ylasmonedasslosonde$10,$5,$2y$1.Porelmomentosupondremosqueelusuariosiempreingresadatoscorrectos.Enlasiguientetablasemuestraelalgoritmoqueresuelveelproblema.Constantes:PRECIO=45Variables:nboletos:entero,representaelnmerodeboletosquequiereelcliente.total:entero,eslacantidaddedineroqueelclientedebepagar.pago:entero,montodelpagodelcliente.cambio:entero,montodelcambio.

    Algoritmo:ventaBoletos(pseudocdigo)

    Siquieresdescargarelalgoritmodaclicenelicono:

    Nota:Observaquenoesnecesarioutilizarvariablesparaelnmerodebilletesomonedasdelasdiferentesdenominaciones,puessloseutilizaunavezelresultadodelclculoasquesepuedeimprimirdirectamenteelresultadodelmismo.

  • Unidad 3.Introduccin al lenguaje C InicioImprimirProporcionaelnmerodeboletosLeernboletostotal=nBoletos*PRECIOImprimirProporcionatupagoLeerpagocambio=pagototalImprimirTucambioes,cambioImprimirElnmerodebilletesde200pesoses,cambio/200cambio=cambiomdulo200ImprimirElnmerodebilletesde100pesoses,cambio/100cambio=cambiomdulo100ImprimirElnmerodebilletesde50pesoses,cambio/50cambio=cambiomdulo50ImprimirElnmerodemonedasde10pesoses,cambio/10cambio=cambiomdulo10ImprimirElnmerodemonedasde5pesoses,cambio/5cambio=cambiomdulo5ImprimirElnmerodemonedasde2pesoses,cambio/2cambio=cambiomdulo2ImprimirElnmerodemonedasde1pesoes,cambioFin

  • Unidad 3.Introduccin al lenguaje C Paraverificarqueelalgoritmofunciona,acontinuacinserealizaunapruebadeescritorioconsiderandoquelosdatosdeentradason5boletosyelmontodelpagoson500pesos.Enlaprimeracolumnaaparecelainstruccinqueseejecuta,enlasiguienteeldatoquesuponemosseingresa,despusestnlasoperacionesqueserealizanenlaALU,enlacuartacolumnasemuestranlosvaloresdelasvariablesdespusdequeseharealizadolainstruccinyenlaltimacolumnaseindicaelmensajequeseimprimirenlapantalla,cuandoseaelcaso.Porotrolado,incluimosenlatabladeestadodelamemorialaconstantePRECIOsombreandoelespaciocorrespondienteparaindicarquenopuedesermodificado.

    Dacliceneliconoparadescargarlapruebadeescritorio.Porltimo,slorestacodificarelalgoritmoenlenguajeC,compilarloyejecutarlo.EnelsiguientedocumentosetepresentaelalgoritmoenC.

    Dacliceneliconoparadescargareldocumento.Unavezcompiladoelresultadoqueseobtieneeselsiguiente:

  • Unidad 3.Introduccin al lenguaje C Actividad1.IntroduccinallenguajeCEjercicioCBibliotecasyfunciones1.Escribe,compilayejecutaelprogramaventaBoletos.cqueacabamosestudiar.Parahacerlo,consideralosiguiente:

    AnalizacondetalleelalgoritmoenCeidentificasuscomponentes Seteocurreotraformadehacerlomismo?Sis,intntalo. Selepuedenaadirnuevasfuncionesalprograma? Qupartedelprocesosetecomplicms?

    2.Piensaenunproblemasencilloquepodraresolverseconloquesabemoshastaahora,publcaloenlabasededatoseintentaresolverlo.Siloprefieres,ingresaastaytrataderesolveralgunodelosproblemaspropuestosportuscompaeras(os)degrupo.

    Puedespedirayudapararesolverlo,obien,ayudaraotrosaresolversusproblemas.Paraingresaralabasededatos:Enlaruta(partesuperiorizquierdadelaula)daclicenFundamentos.SeenlistarnlasactividadesdelaUnidad3yahdaclicenlaActividad1.IntroduccinallenguajeC.

  • Unidad 3.Introduccin al lenguaje C Actividad3.Anlisis,diseoycodificacindeunprogramaenCRealizaunprogramaenCqueresuelvaelproblemaqueteproporcionartuFacilitador(a).Utilizaloquehasaprendidohastaahoraparadiseartualgoritmo.

    1. EnunarchivodeWord,realizaelanlisisdelproblema(datosdeentrada,salidayelmtodoqueseguirspararesolverlo).

    2. Posteriormente,enelmismoarchivo,escribeelalgoritmorepresentadoendiagramadeflujooenpseudocdigo.GurdaloconelnombreFPR_U3_A3_XXYZ.doc

    3. RealizaunapruebadeescritorioeinclyelaenelmismoarchivodeWordycompruebaquetualgoritmoentreguelasalidaindicada.

    Nota:PuedesingresaralforoIntroduccinallenguajeCparacompartirtusdudasoparaayudararesolverlasdetuscompaeros(as).Esprobablequesitienesalgunadificultadenelprocesodedesarrollodetuprogramaalguiendelgrupotepuedaayudararesolverla,opuedeserquetsepaslasolucinalproblemadeotro(a).

    4. Finalmente,codificatualgoritmoenlenguajeCutilizandoDevC++yguardaelarchivoconelnombreFPR_U3_A3_XXYZ.c.Despuscomplaloyejectaloconlosmismosdatosdelapruebadeescrito.

    5. AadeaunacarpetacomprimidallamadaFPR_U3_A3_XXYZ.zip,elarchivodeWord,elprogramafuente(.c)yelejecutable(.exe).Envalosatufacilitador(a)medianteelSeccindetareas.Esperayatiendeloscomentariosquetehagaalrespecto.

    *SustituyelasXXporlasdosprimerasletrasdetuprimernombre,laYporlainicialdetuapellidopaternoylaZporlainicialdetuapellidomaterno.Paraenviartudocumento:Enlaruta(partesuperiorizquierdadelaula)daclicenFundamentos.SeenlistarnlasactividadesdelaUnidad3ydaclicenlaActividad3.Anlisis,diseoycodificacindeunprogramaenC.AlterminarlaActividad3.Anlisis,diseoycodificacindeunprogramaenCesimportantehacertuAutorreflexin.Paraello,IngresaalforodePreguntasdeAutorreflexinyapartirdelaspreguntaspresentadasportuFacilitador(a),realizatuejercicioysbeloenlaseccinAutorreflexiones.

  • Unidad 3.Introduccin al lenguaje C CierredelaUnidadExcelente!YavamosalamitaddelcursoycomenzamosarealizarprogramaspararesolverproblemassimpleshaciendousodelasfuncionesdeC,sinembargo,annosfaltaaprendervariascosasquepodemosimplementarparaquenuestrosprogramasresuelvanproblemascadavezmscomplejos.EnlasiguienteUnidadaprenderemosautilizarlasestructurasdecontrolparaquelosprogramasquerealicemospuedanrepetirciclosdeinstruccionesoslorealizarlassisecumplenonodeterminadascondiciones.Esimportantequenodejesdepracticarparaquepuedasdetectartodaslasdudasofallasquetengasalahoradeprogramarconlasfuncionesquehastaahoraconoces.EnloslibrosdeJoyanes,L.,&Zohanero,I.(2005)yLpez.L.(2005)seencuentrandisponiblesmsejerciciosquepuedesrealizarparapracticar.Adelante!.

  • Unidad 3.Introduccin al lenguaje C FuentesdeconsultaBibliografageneral

    Bhm,C.,&Jacopini,G.(1966).Flowdiagrams,Turingmachines,andlanguagesonlywithtwoformationrules.CommunicationsoftheACM.

    Cair,O.(2005).Metodologadelaprogramacin:Algoritmos,diagramasdeflujoyprogramas.Mxico:Alfaomega.

    Guerrero,F.(s.f.).mailxmail.com.Recuperadoel15deagostode2010de:http://www.mailxmail.com/cursointroduccionlenguajec

    Joyanes,L.,&Zohanero,I.(2005).ProgramacinenC.Metodologa,algoritmosyestructurasdedatos.Espaa:McGrawHill.

    Kernighan,B.,&Ritchie,D.(1991).EllenguajedeprogramacinC.Mxico:PrenticeHallHispanoamericana.

    Lpez,L.(2005).ProgramacinestructuradaenlenguajeC.Mxico:Alfaomega. Reyes,A.,&Cruz,D.(2009).Notasdeclase:Introduccinalaprogramacin.Mxico:UACM. Villela,H.T.ManualdeC.Recuperadoel15deagostode2010de:

    http://www.fismat.umich.mx/mn1/manual/

  • Unidad 3.Introduccin al lenguaje C