programacion-lenguaje-c-2013-2014.doc

Embed Size (px)

Citation preview

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    1/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    www.monografias.com

    Manual de Programacin en el Lenguaje C

    1. Presentacin

    2. Marco introductorio3. Lenguaje de Programacin Estructurado C4. Operadores, Expresiones Estructuras!. Ciclos". #unciones en C$. Estructuras de %atos

    1

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    2/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    PresentacinEl Presente documento ha sido elaborado con la finalidad, de proveer a los estudiantes, de un recursogil y fcil de comprender por aquellos que inician su estudio en la programacin del lenguaje C.Por qu! decid" escribir este manual#$encillo, cuando en la universidad empe%amos a estudiar C, nos pidieron que, si pod"amos,

    comprramos un libro te&to para apoyar las clases, o buscramos un manual en la 'nternet... yo opt! porla segunda opcin, ya que como todos sabrn los libros de programacin son muy caros (al menos aqu"en El $alvador), pero me encontr! con dos grandes problemas*

    +. os -anuales que bajaba estaban incompletos, es decir las e&plicaciones, los ejemplos y lainformacin en general era muy pobre, por no decir escasa.

    /. si al dado caso, encontraba alg0n manual que estuviera completo, ten"a muchos errores, en susejemplo(errores de sinta&is, de ejecucin y hasta de lgica) o en la e&plicacin que se daba. ocual al yo cometer esos ejemplos, mis profesores me lo hac"an saber.

    Por esas ra%ones decid" escribir mi propio manual, para evitar que, otros estudiantes les suceda lo mismoque a m", y as" les evitar! gastos en impresiones innecesarios.Cabe recalcar que, no soy un e&perto programador... todav"a sigo estudiando, pero quiero colaborar deuna manera desinteresada, a la formacin de las personas.Espero que, este peque1o manual les sirva de mucho y sobre todo, le saquen mucho provecho.

    C&P'()LO ' *M&+CO '(+O%)C(O+'O-Marco Conceptual

    $e muy bien, que usted, querido lector est muy ansioso por comen%ar a programar, pero considero quees importante conocer un poco del lenguaje C, tanto de sus or"genes como de sus ventajas, pero no sepreocupen, ser! breve en esta introduccin terica. 2dems que es importante conocer o recordaralgunos conceptos que, son importantes al momento de programar.

    ComputadoraComponentes de )na Computadora3emos definido una, computadora como una mquina que recibe datos y ordenes, que al ejecutarlasproduce cierta informacin dicha informacin se presenta en un 4idioma5 codificado por que ha desaberse que las computadoras no entienden nuestro idioma, o cualquier otro en el mundo. 6icho 4idioma5

    est compuesto 0nicamente por dos elementos los ceros y los unos. -ejor conocido como cdigoinario, con el cual se representan los datos, que arroja la computadora.En una forma ms general, y creo que ms sencilla, una computadora se comprende por dos grandesgrupo* El 3ardware y el $oftware./ard0areEl 3ardware de un computador es un conjunto de elementos f"sicos, que la componen.7emoslo grficamente*

    2

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    3/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    Podr"amos entrar en detalle de cada una de las partes descritas anteriormente, pero ese, no es elobjetivo de estas insignificantes pginas sino que esto es una mera introduccin terica, por ello slodar! una breve e&plicacin.En la 8nidad Central de Proceso (o CP8, por sus siglas en ingles 9Central Proccessing 8nit:) secontiene la )nidad de Control, que su funcin es organi%ar y clasificar las instrucciones recibidasmientras que la )nidad &ritmtica Lgica, $e encarga de ejecutar dichas instrucciones. Los uses,son los mecanismos de intercone&in en el CP8.La memoria Principal, Es el lugar donde se cargan todas las instrucciones, programas, etc que se estnejecutando.

    ot0are6ebemos entender el software como la parte lgica de la computadora... un poco dif"cil de comprender,verdad# es decir, que el software, es lo que dota a los componentes f"sicos de poder reali%ar tareasdeterminadas. Ejemplo, para poder utili%ar una computadora, esta debe tener instalado un sistemasoperativo. Para poder imprimir alg0n trabajo, aparte de poseer un impresor, en la computadora, debotener un software que me permita imprimir dicha accin (generalmente las impresoras traen un cd, son surespectivo software de instalacin).

    2burrido#...Es necesario, que empiece con tanta palabrer"a por que es necesario, para el lector tener en claro estosconceptos.

    2hora vamos a hablar de algo un poco ms interesante, como lo es el lenguaje de programacin)n lenguaje de Programacin Es un conjuntos de palabras, reglas, con las cuales se le indica a lacomputadora las funciones que debe reali%ar. 8n lenguaje de programacin puede ser*

    +. enguajes -quinas* se trata de lenguaje cuyas instrucciones son directamente comprendidaspor el ordenador o computador en el que se ejecuta el programa./. enguaje de ;ajo

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    4/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    determinado de utilidades y asistentes que ahorran tiempo y trabajo al programador. 6entro deestos lenguajes tenemos* 7isual >o&pro, 7isual ;asic.

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    5/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    Lenguaje CEl lenguaje C, fue dise1ado por 6ennies @itchie en +AB, en los laboratorios ;ell de Estados 8nidos.Este lenguaje presenta varias caracter"sticas, entre las cuales estn*

    +. enguaje de programacin de propsitos generales/. Permite la Programacin Estructurada

    =. 2bundancia de Dperadores y ?ipos de 6atos.

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    6/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    K6irectivas de pre:procesador (instrucciones que se le dan al compiladorLinclude antes de compilar)

    Ldefineejemplo*Linclude Mstdio.hK

    o que se le esta indicando, es que de las librer"as, 4'ncluya5 en nuestro programa la directiva stdio.h, lacual contiene las funciones de entrada y salida de datos (standar input output, en ingl!s). $i necesitamoslas funciones matemticas, debemos especificarlo con la declaratoria*Linclude 9math.h:$i necesitamos las funciones de cadenas*Linlcude 9stlib.h:Es necesario aclarar que esto se hace al inicio del programa, y las declaratorias deben llevar el s"mbolode numeral (L) seguido de la sentencia 4include5, y entre signos de mayor y menor que (MK) el nombre dela directiva.K6eclaraciones Nlobalespueden ser*IPrototipos de >unciones* ?ambi!n llamadas declaraciones de funciones, lo cual se tratar ms adelante

    I6eclaraciones de 7ariablescabe destacar, que esto se hace seguido de los Linclude y los Ldefine.K>uncin Principal main()Esta es la funcin principal de nuestro programa, su cuerpo, por ello

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    7/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    e indicamos al compilador, que usaremos las bibliotecas Mstdio.hK y Mconio.hK, por qu! Mconio.hK#,por que esta biblioteca, contiene las funciones getche(), getch(), etc, y de una de ellas hacemos uso eneste peque1o ejemplo.uego, le indicamos a nuestro programa el incio de nuestro programa (funcin main() ).6eclaramos, como valores reales, las variables radio y area (de esto se hablar ms adelante). uego,

    con la instruccin printf(), mostramos en pantalla el mensaje (@adioS) y scanf se encarga de leer el valordigitado por el usuario. Posteriormente area, es igual al la multiplicacin de pi (=.++FA), el radio alcuadrado. $e muestra en pantalla ese resultado, luego el programa espera que se presiones cualquiertecla (getch() ) y no retorna ning0n valor (return ).

    Ejercicios6efina los siguientes conceptos*

    +. Programa*WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

    /. CP8*WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

    =. $oftware*WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

    . -emoriaPrincipal*WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

    WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

    F. enguaje deProgramacin*WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

    WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

    'ndique que tipo de error (Error de sinta&is, error de ejecucin o error lgico), en cada uno de lossiguientes enunciados

    +. 8tili%ar una variable antes de asignarle un valor*WWWWWWWWWWWWWWWWWWWW/. asignarle un valor real a una variable declarada como entero*WWWWWW=. al cometer este error, los resultados arrojados por el programa no son los que se

    esperaban*WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW. 8n programa no puede ser ejecutado por el computador, mientras tenga este tipo de

    errores*WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWF. estos errores no son detectados por el compilador, ni tampoco son errores de

    ejecucin*WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

    -encione y E&plique, la estructura general de un programa en C*

    Capitulo '' * Lenguaje de Programacin Estructurado C-Por qu! programacin estructurada#$i el lector recuerda, en el cap"tulo anterior, se hablaba de las caracter"sticas del lenguaje C, y en una deellas se dec"a que, el enguaje de Programacin C, permite la programacin estructurada. Esto implicaque, haremos uso de una t!cnica llamada Lgica Estructurada, y esto no es ms ni menos que una delas tcnicas bsicas y fundamentales de la programacin estructurada, su objetivo es disear soluciones

    correctas y confiables a los problemas, ignorando al principio consideraciones de eficiencia como la

    minimizacin del uso de memoria y el tiempo de su respuesta.

    7

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    8/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    o que significa que, haremos uso de esa t!cnica para crear programas correctos esta es una t!cnicaque ayuda al programador (un tanto a la fuer%a), a ser ordenado, al momento de programar.os frutos de !sta t!cnica se reflejan cuando, queremos darle mantenimiento al programa, es ms fcilhacerlo ya que hemos programado de una manera lgica y ordenada. 2l igual que al momento decorregir errores de sinta&is y lgica, esta t!cnica nos facilita el trabajo.

    2hora iniciemos, de una ve% por todas, lo que el lector est esperando*

    intaxis de &lgunos Elementos de )n Programa en Ca< identiicadores

    como su nombre lo indica, estos son los nombres, con los que identificamos las variables, constantes,funciones, vectores, etc, de nuestro programa. Para ello debemos tener presente algunas reglas*Kpueden tener de + hasta un m&imo de =+ caracteresK6ebe de iniciar con una letra o subrayadoEjemplo*(Correctos)c/

    Wc/( 'ncorrectos)

    /c/ c

    K

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    9/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    as variables pueden cambiar de valor, durante la ejecucin del programa, por eso es que se llamanvariables. J las constantes como su nombre lo indica, son valores que permanecen constantes durantetoda la ejecucin del programa, un ejemplo de ello, es el valor de (pi) que equivale a =.++FA....En C e&isten diferentes tipos de variables, entre ellas tenemos*1. Constates umricas

    $on valores num!ricos, enteros o de reales (de punto flotante). $e permiten tambi!n constantes octales yhe&adecimales.2. Constantes im=licaslas constantes simblicas tiene un nombre (identificador), y en esto se parecen las variables. $inembargo, no pueden cambiar de valor a lo largo de la ejecucin del programa. En C, se pueden definirmediante el preprocesador. (?omado del -anual Aprenda enguaje A!"# $ como si estuviera en %rimero Escuela superior de'ngenieros 'ndustriales. 8niversidad de ebrero de +AAH).

    EjemploLdefine < +Ldefine P' =.++GLdefine ; F

    Esta directiva (Ldefine) va, inmediatamente despu!s de los Linclude. $e escribe la directiva, se deja unespacio y se escribe el identificador de la constante, otro espacio y su valor.

    e< ignos de Puntuacin de eparacin

    ! U X V I () : Y OQ Z[ T * MK .

    < (odas las 'nstrucciones o sentencias del programa terminan con un punto coma@Aormato*Tipo_de_dato nombre_de_la_variable;

    EjemplosI6eclare una variable de tipo entero y otra de tipo real, una con el nombre de 4&5 y otra con el identificador4y5*int &float y

    I6eclare una variable de tipo entero llamada moon, e inicial"cela con un valor de /int & S /

    I6eclare una variable de tipo real, llamada Pi, e inicial"cela con una valor de =.++Ffloat piS=.++F

    I6eclare una variable de tipo caracrter y as"gnele el valor de 4-5char car S _-_

    I6eclare una variable llamada nombre, que contenga su nombre*char nombreZB[S5-anuel5

    ExplicacinEn el apartado anterior, se e&plic, que C, no tiene el tipo de dato llamado string, o mejor conocido comocadenas de te&to, pero nosotros podemos hacer uso de ellas, por medio de un arreglo, (de lo cual

    hablaremos con ms detalle, posteriormente) pero para declarar este tipo de datos colocamos el tipo dedatos, es decir la palabra reservada c(ar luego el nombre, e inmediatamente abrimos, entre corchetes, vael n0mero de letras, que contendr dicha variable. Es muy importante que al momento de declarar eltama1o, sea un n0mero mayor, al verdadero n0mero de letras por ejemplo, la palabra 4-anuel5, solotiene G letras, pero debemos declararlo para B letras Por qu!#.7emoslo grficamente, en la memoria, C crea un variable llammada nombre y esta posee la palabra-anuel, as"*

    en realidad, hay B espacios, pero la cuanta llega hasta G, por que c, toma la primera posicin como laposicin cero, y para indicar el final de la cadena lo hace con un espacio en blanco.

    %eclaracin de Constantesas constantes, como su nombre lo indica, son valores &ue se mantiene invariables durante la ejecucindel programa.

    $u formato es el siguiente*const tipoWdeWdato nombreS valordonde const, es una palabra reservada, para indicarle al compilador que se esta declarando unaconstante.

    11

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    12/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    Ejemploconst int diaSBconst float piS=.++FAconst char caracterS `m_const char fechaZ[S5/F de diciembre5

    Caso Especial Constantes im=licasas constantes simblicas, se declaran mediante la directiva Ldefine, como se e&plic anteriormente.>uncionan de la siguiente manera, cuando C, encuentra el s"mbolo que representa a la constante, losustituye por su respectivo valor.Ejemplo*Ldefine < +FLdefine P' =.++GLdefine P F

    unciones de E $ ms simples son getchar() que lee un carcter del teclado, espera un retorno decarro (), es decir un enter y el eco aparece. Es decir la tecla presionada.Hputcar@

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    13/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    char car clrscr() I$e encarga de borrar la pantalla por eso se llama claer screenI carSgetchar() putchar(carY+) getch()

    return Q

    Ejemplo /./*Linclude Mstdio.hKLinclude Mconio.hKmain()O char & I6eclaramos & como caracterI printf(RPara >inali%ar Presione cualquier ?ecla*R) &S getchar()ICaptura y muestra el caracter presionadoI getch()IEspera a que se presione cualquier otra tecla para finali%arI return

    Q

    Entrada ; alida de Cadenas8na Cadena, es una frase, compuesta por varias palabras. En C, podemos hacer uso de las cadenas,mediante, la sentencia*Hgets@

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    14/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    alida /acia Pantalla Iprint@

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    15/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    U./f KK'mprime el valor con slo dos decimales

    ecuencias de Escapes'ndica que debe ejecutar algo e&traordinario.

    Carcter deEscape

    Explicacin

    Tn $imula un Enter. $e utili%a para dejar una l"nea de por medioTt ?abulador hori%ontal. -ueve el cursor al pr&imo tabulador Tv ?abulador vertical.Ta 3ace sonar la alarma del sistemaTT 'mprime un carcter de diagonal invertidaT# 'mprime el carcter del signo de interrogacinT5 'mprime una doble comilla

    ?2;2 /.=

    Ejemplos*+) printf(4-anuel Tn 2ntonio Tn Drte%TnTn)

    /) int &S+F printf(4El 7alor de la variable es UdTnTn5, &)

    =) float &SH.FGHA, piS=.++G printf(4El valor de & es U./fTtTn5,&) printf(4Tt J el valor de pi es U./fTnTn5, pi)

    Entrada %esde (eclado$e reali%a mediante la funcin scanf(), su formato es*scan@4Cadena de control5, 6ireccin y nombre de la variableinalmente el ultimo alumno es*TnR) scanf(RUsR, nom=) printf(RJ su nota es*TnR) scanf(RUfR, Vn=) getch() return

    15

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    16/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    Q

    ExplicacinPrimero, iniciamos con las directivas del preprocesador*

    Linclude Mstdio.hKLinclude Mconio.hKCon la cual le indicamos al compilador, que de su librer"a a1ada a nuestro programa las funcionesestndar de entrada y salida as" como las entradas y salidas por consola (stadio.h y conio.h,respectivamente).uego declaramos la variables, que contendrn las notas como reales (o de punto flotante*float n+, n/, n=Ja que, las notas pueden ser deciamales, por ejemplo A.G, H.F etc.uego declaramos las variables, que contendrn las notas, caba aclarar que al momento de lasdeclaraciones las podemos hacer en el orden que deseemos, pueden ser primeros los tipo char y luegolos float, o viceversa, pero teniendo el cuidado que las variables que contendrn las nombres lleven lalongitud m&ima entre corchetes, para nuestro caso, +. ( Z+[ ).Posteriormente, mostramos en pantalla, un mensaje con el cual le indicamos al usuario que introdu%ca

    los datos respectivos*printf(R'ntrodu%ca el

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    17/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    scanf(), finali%a la captacin de la cadena al encontrar un espacio en blanco o fin de l"nea.Ejemplo* char cadenaZ+F[ printf(R6igite la cadena*TnTnR) scanf(RUsR, cadena)

    Casos EspecialesI8END 6E '

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    18/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

    B. J la directiva Mconio.hK#WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

    WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWH. Para que sirve a declaratoria

    Ldefine#*WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

    A. Para que sirve el punto y coma () enC*WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

    WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW+. En C, no e&iste el tipo de dato string sin embargo, podemos hacer uso de las cadenas de

    te&to, Por qu!#.E&plique*WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

    WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

    Ejercicios

    +. 3aciendo uso de las funciones gets y puts, dise1e un programa en C, que se lea el nombre delusuario y lo muestre en pantalla junto con un saludo.

    /. 6ise1e un programa en C, que lea y muestre en pantalla el valor de tres variables de tipo Entero.=. 6ise1e un programa que muestre, los diferentes tipos de datos, usados en C. Primero, debe

    indicrsele al usuario que introdu%ca un valor, de un tipo dado luego y despu!s de haberintroducido valores en todas las variables, debe imprimirse el contenido de ellas, junto con unmensaje que indique, el tipo de dato*

    . 6ise1e un programa, en el cual se introdu%can el nombre y el peso y de un alumno, y luego lamuestre en pantalla. El

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    19/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    3asta ahora, prcticamente hemos visto, como el protocolo esencial, para reali%ar un programa en Cy algunas funciones muy importantes, como son las funciones de lectura e impresin (scanf y printf,respectivamente).

    2hora veremos, otros aspectos fundamentales, como lo son los operadores, que pueden ser* lgicos,matemticos, relacionales, etc. as e&presiones, y las estructuras* de secuenciacin, de seleccin y

    de iteracin.

    Operadores8n operador, es un s"mbolo que indica al compilador que se lleve a cabo ciertas manipulacionesmatemticas o lgicas.

    Operadores &ritmticosOperador Propsito

    Y $uma @estaH -ultiplicacin; 6ivisinK @esto de la divisin entera

    ?2;2 =.+

    ?odos estos operadores se pueden aplicar a constantes, variables y e&presiones. El resultado es el quese obtiene de aplicar la operacin correspondiente entre los dos operandos. (?omado de 42prendaenguaje 2

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    20/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    Printf(4Ud5, YYi)Printf(4Ud5, : :i)

    Estos operadores, el incremento y el decremento, pueden utili%arse de dos maneras, eso depende delorden de aparicin de los mismos*

    :$i el operador precede al operando el valor del operando se modifica antes de ser utili%ado.:$i el operador aparece despu!s del operando, este se modifica despu!s de ser utili%ado.

    Ejemplo =.+*8tili%ando los operadores 8narios*Linclude Mstdio.hKLinclude Mconio.hKmain() O int &SF printf(RTtP@'-E@D D;$E@72@E-D$ E @E$8?26D 6E YYTnTnR) printf(RUdTnR, YY&) printf(RUdTnR, YY&)

    printf(RUdTnR, YY&) printf(RTt23D@2 D;$E@72@E-D$ E @E$8?26D 6E ::TnTnR) printf(RUdTnR, ::&) printf(RUdTnR, ::&) printf(RUdTnR, ::&) printf(RTtE @E$8?26D 6E YY E$*TnTnR) printf(RUdTnR, &YY) printf(RUdTnR, &YY) printf(RTtJ E 6E :: E$*TnTnR) printf(RUdTnR, &::) printf(RUdTnR, &::) getch()

    return Q

    /. DPE@26D@E$ @E2C'D

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    21/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    printf( R@esultado* UiR, (+SS+ VV FK/ )

    Dperador (D@, en castellano D)* 6evuelve un + si se cumple una de las dos condiciones.Dperador (

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    22/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    printf(RIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIITnR) printf(RIIEl valor de la e&presin es* U./fIITnR, %) printf(RIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIITnR) getch() return

    Q

    6erarBuDa de OperadoresCategorDa del Operador Operador +. Dperadores 8narios :, YY, ::, !/.Dperadores 2ritm!ticos*

    /.+ -ultiplicacin,divisin y @estoentero

    /./ $uma y @esta

    I, , U

    Y,:

    =. Dperadores @elacionales M, MS, K, KS. Dperadores de 'gualdad SS, !S

    F. Dperadores gicos VV (J gico), (

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    23/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    $e les denomina as", por que son estructuras en un programa, que despu!s de ejecutar una instruccino sentencia, contin0an con la otra, hasta llegar al final del programa. os ejemplos que hemos vistoanteriormente, son ejemplos de estructuras secuenciales. 7eamos otros ejemplos*Ejemplo =.=6ise1e un programa que calcula el cuadrado y el cubo de tres n0meros introducidos por el usuario.

    Linclude Mstdio.hKLinclude Mconio.hKmain() O int &, &+, &/, y, y+, y/, %, %+, %/ clrscr() printf(RTtP@DN@2-2 8E C2C82 E C826@26D J E C8;D 6E = P BU y @enta +U, estosdescuentos son sobre el salario, y es sueldo neto es la diferencia entre el salario y el total de lasretenciones*Linclude Mstdio.hKLinclude Mconio.hKmain()

    O float sueldo, afp, isss, renta, sn char nombreZF[ clrscr() printf(R'ntrodu%ca el

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    24/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    rentaSsueldoI.+ snSsueldo:(afpYisssYrenta) printf(REl empleado UsTnR, nombre) printf(RPosee un sueldo neto de U./fTnR, sn) getch()

    return Q

    Ejemplo 3.!6ise1e un programa que calcule el promedio y la suma de tres n0meros ingresados por el usuario*

    Linclude Mstdio.hKLinclude Mconio.hKmain() O float &, y, %, sum, prom clrscr() printf(REl Primer nkmero es*TnR)

    scanf(RUfR, V&) printf(R2hora el segundo nkmero*TnR) scanf(RUfR, Vy) printf(REl 8ltimo numero es*TnR) scanf(RUfR, V%) sumS&YyY% promSsum= printf(RIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIITnR) printf(RIIa suma es U./f y el promedio es U./fITnR, sum, prom) printf(RIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIITnR) getch() return

    QEstructuras electi>asos peque1os programas que hemos dise1ada hasta el momento, han sido del tipo secuencial, es decir,una sentencia se ejecuta despu!s de otra, hasta el final del programa.Pero en la vida diaria muchas veces debemos elegir entre un camino y otro para llegar a nuestro destino.o mismo pasa en programacin, al reali%ar alguna actividad, nuestro programa debe ser capa% de elegiruno u otro camino, a seguir dependiendo del valor de alguna condicin evaluada.Para ello C, dispone de tres tipos de = tipos de estructuras selectivas, la cuales son*

    Estructura $electiva $imple Estructura $electiva 6oble Estructura $electiva -0ltiple

    E$?@8C?8@2 $EEC?'72 $'-PE>unciona de la siguiente manera* se eval0a una condicin, de ser cierta efect0a una accin, de locontrario, contin0a con la ejecucin normal del programa.$u sinta&is es la siguiente*'@condicin< &ccinAD tambi!n*'@Condicin< &ccinA6onde*

    24

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    25/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    Condicin* Es una e&presin lgica que es evaluada por el compilador2ccin* es la 2ccin o 2cciones que reali%ar el programa de resultar cierta la condicinunciona, de la siguiente manera si condicin, al evaluarla resulta cierta, reali%a la accin +. de locontrario, es decir si al evaluar la condicin resulta falsa, reali%a la accin .$e debe tener en cuenta la condicin puede ser compuesta, es decir haciendo uso de los operadores VVy ( J lgico y

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    26/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    if(numU/SS) printf(RE$ P2@TnTnR)

    else printf(RE$ '-P2@TnTnR)

    getch()

    return Q

    Ejemplo 3.N6ise1e un programa, que dada la nota de alumno, imprima en la pantalla un comentario sobre esa nota.El criterio para los comentarios es el siguiente*$i nota es mayor o igual a A 4E&celente5$i nota es mayor o igual a H 4-uy ;ueno5$i nota es mayor o igual a B 4;ueno5$i nota es mayor o igual a G 4@egular5$i nota es menor que G 4

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    27/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    KK $i son varones, y su estatura es mayor a +.G, y su peso es mayor o igual a +F lb, su dosis, sern*/U de la estatura y HU de su peso. 6e lo contrario, la dosis ser la siguiente* =U de la estatura yBU de su peso.KK $i son mujeres, y su estatura es mayor de a +.F m y su peso es mayor o igual a += lb, su dosisser* /FU de la estatura y BFU de su peso. 6e lo contrario, la dosis ser* =FU de la estatura y GFU de su

    peso. a dosis debe ser e&presada en gramos.Linclude Mstdio.hKLinclude Mconio.hKmain() O float peso, estatura, dosis char se&o printf(R'ntrodu%ca el se&o del alumno(a)M3-K*TnR) scanf(RUcR, Vse&o) printf(RPeso*TnR) scanf(RUfR, Vpeso) printf(Ra estatura es de*TnR) scanf(RUfR, Vestatura)

    if(se&oSS^3^ se&oSS^h^) O if(estaturaK+.G VV peso KS+F)

    O dosisS(./Iestatura)Y(.HIpeso) printf(Ra dosis de este alumno ser * U./f gramosTnTnR, dosis)Q

    elseO dosisS(.=Iestatura)Y(.BIpeso) printf(Ra dosis de este alumno sera U./f gramosTnTnR, dosis)Q

    Q else O if(estaturaK+.F VV peso KS+=)

    O dosisS(./FIestatura)Y(.BFIpeso) printf(Ra dosis de esta alumna debe ser de U./f gramosTnTnR, dosis)

    Q else

    O dosisS(.=FIestatura)Y(.GFIpeso) printf(Ra dosis de esta alumna debe ser de U./f gramosTnTnR, dosis)

    Q Q getch() return Q

    $EECC'< -?'PE

    27

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    28/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    Como su nombre lo indica, permite seleccionar entre varios caminos para llegar al final. En este caso sepueden elegir un camino o accin a ejecutar de entre varios posibles que se debe de evaluar, llamadaselector. $inta&is*s0itc@selector<

    case Etiqueta 2*2ccin 2

    =reaQA case Etiqueta ;* 2ccin ; =reaQA case Etiqueta n*

    2ccin n =reaQA deault E&cepcin =reaQAR

    En donde*elector 7ariables, e&presiones simples de tipo ordinal, (enteros y caracteres 9int y char:)EtiBueta ?iene que ser del mismo tipo de datos de selecto. Estas deber ser constantes 0nicas ydiferentes de otras.Excepcin Es opcional.

    Ejemplo 3.1S6ise1e un programa en C, que dado un n0mero del + al =, muestre en pantalla y en letras, el mismon0mero*Linclude Mstdio.hKLinclude Mconio.hK

    main() O int n clrscr() printf(REl

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    29/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    Cuestionario+. -encione las diferencias entre las e&presiones y los

    operadores*WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

    /. ue tipo de datos son vlidos para los operadores

    aritm!ticos*WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW=. E&plique, el resultado de los operadores incremento y decremento, dependiendo de su

    posicin*WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

    . u! son y para que sirven los operadoresunarios#*WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

    WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWF. E&plique, el funcionamiento de los operadores de

    asignacin*WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

    Ejercicios+. 6ise1e un programa que dados tres n0meros indique cual es el mayor de ellos./. 6ise1e un programa que dados tres n0meros indique cual de ellos es el menor.=. En un cine se e&hiben, pel"culas para mayores de edad, dise1e un programa que dada la edad,

    indique si la persona puede o no ver la pel"cula.. En un supermercado, se reali%an descuentos por las compras a partir de unas bolitas de colores.

    $i el cliente saca una bolita color a%ul, tiene un descuento del /U, si la bolita es roja, se aplicaun descuento del =U y si saca una bolita color blanca, no se aplica ning0n descuento. 6ise1eun programa que a partir del importe de la compra y el color de la bolita, muestre lo que debepagar dicho cliente.

    F. $e procesan las notas de F, alumnos, de las cuales se desea saber cual es el promedio de esasF notas, y cual fue la nota mayor y menor, adems de imprimir al final el nombre y la nota de cada

    alumno en forma de tabla.G. un estudiante desea saber cul fue su promedio en matemtica ', para ello dispone de lasiguiente informacin* tiene = e&menes, con una ponderacin del /U cada uno y / laboratorioscon una ponderacin del =U cada uno. 6ise1e un programa que dadas las notas calcule elpromedio del alumno y muestre en pantalla si el alumno esta reprobado o no (para aprobar estamateria se requiere de una nota mayor o igual a G.).

    B. En un estacionamiento, se cobra de la siguiente manera* los primeros + minutos son gratis, lossiguientes = minutos tiene un valor de .= y la hora .G. dise1e un programa que recibatanto minutos como horas y muestre lo que debe cancelar el cliente. ?omando en cuenta que sies -artes y $bado se hace un descuento del +/.FGU sobre el monto total.

    H. 6ise1e un programa que al introducir un d"gito del a A, muestre como se lee.A. 6ise1e un peque1a calculadora que, al digitar un cdigo realice una operacin espec"fica* si el

    cdigo es +, la operacin es la suma, si es /, @esta. =, multiplicacin y divisin. $i el usuario a

    escrito otro cdigo invlido, mostrar un mensaje de error.+. Construya un programa que dado el salario de un empleado, permita aplicarle un aumento de+U si el salario es inferior a F, si es mayor se le aumentar un HU. uego debe aplicar unaretencin del .AGU en concepto de @enta a ambos casos.

    ++. $e desea calcular el sueldo de un trabajador, a partir de las horas trabajadas en la semana y laclase a la que pertenece* ?rabajadores Clase 425, se les paga B por hora. ?rabajadores clase4;5, se paga F por hora. ?rabajadores clase 4C5, se les paga por hora y los de clase 465, =.Fpor hora.

    +/. 8n comerciante se dedica a la venta de sillas 0nicamente. 7ende tres tipos de sillas* tipo 2, tipo ;y ?ipo C los precios son F., B. y +. respectivamente. Por cada cinco sillas compradas

    29

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    30/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    del tipo 2, del tipo ; o del tipo C los clientes reciben un descuento de =U, FU y BU, las dems secobran a precio normal. 6ise1e un programa que imprima en forma de factura, con el nombre,precio unitario, precio total, nombre de la tienda, etc lo que debe cancelar cada cliente enconcepto de la compra.

    6escubre donde est el error.El siguiente cdigo, es de un programa que a partir de una nota determina si un alumno esta o noreprobado, y este puede presentar algunos errores de lgica, de sinta&is o de ejecucin. Puedesdescubrirlos y modificarlos#L'nclude Mstdio.hKLincluide Mconio.hKmain() O float nota printf(46igite la nota*Tn5) scanf(4Uf5, nota) if(notaKSG.) printf(42probadoTnTn)

    else printf(@eprobadoTnTn) getch() return Q

    Capitulo 'G *Ciclos-'ntroduccinHHEs muy com0n encontrar en los programas operaciones que se deben ejecutar un n0mero repetido deveces en per"odos ms o menos espaciados. $i bien las instrucciones son las mismas, los datos sobrelos que operan var"an. 2 nuestro alrededor, encontramos problemas que presentan esas caracter"sticas,

    por ejemplo* el clculo de la nota final de los estudiantes de Programacin ', se reali%ar tantas vecescomo alumnos hayan inscritos en dicha asignatura, el clculo del salario de los empleados de unaempresa, etc. En estos casos la solucin que se dise1e para un solo grupo de datos se debe repetirtantas veces como sea necesario (de acuerdo al n0mero de estudiantes y de empleados para losejemplos anteriores).os clculos simples o la manipulacin de peque1os conjuntos de datos se pueden reali%ar fcilmente amano, pero las tareas grandes o repetitivas son reali%adas con mayor eficacia por una computadora, yaque estas estn especialmente preparadas para ello.Para repetir varias veces un proceso determinado haremos uso de los ciclos repetitivos, a los cuales seles conoce con el nombre de estructura repetitiva, estructura iterativa, la%o o bucle.(?omado de os guiones de clase de 'ntroduccin a la 'nformtica. 8niversidad de El $alvador. 21o /F)En C, podemos encontrar tres tipos de ciclos*

    Entrada 2segurada (while)

    Ciclo Controlado Por Contador (for) 3acer -ientras (do.. while)

    Este ultimo, no est lgicamente estructurado, por tanto no haremos mucho hincapi! en !l.

    Conceptos 8enerales#uncionamiento de )n Ciclo8n ciclo, funciona de la siguiente manera* Eval0a una condicin de resultar cierta, reali%a una accin obloque de acciones, luego vuelve a evaluar la condicin y si nuevamente resulta cierta, reali%a la (s)

    30

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    31/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    accin (es). Cuando la condicin de cmo resultado falso, se sale del ciclo y contin0a con la ejecucinnormal del programa.&cumuladorEs una variable, que , como su nombre lo indica se encarga de acumular valores. Esto se vuelve muy 0til,por ejemplo, cuando queremos encontrar la suma de los n0meros del al A, en el acumulador, vamos

    guardando los valores de dichas cifras. Puede ser tanto real como entera. $u valor inicial, en la mayor"ade los casos es cero.ContadorEs una variable de tipo entero, que nos ayuda, en el programa a contabili%ar el n0mero de ejecuciones deuna misma accin, de un grupo de alumnos etc. 8n acumulador tiene tres valores distintos*

    7alor 'nicial* es el valor con el cual iniciamos nuestro contador. Neneralmente es cero. Estaasignacin puede hacerse cuando se declara la variable.

    7alor >inal* despu!s de la ejecucin del ciclo, el valor del contador, ser distinto a su valor inicial,este puede ser mayo o menor que el mismo, todo depende si fue una cuenta creciente odecreciente.

    7alor de Cambio* Es el valor Constante, en el cual se ir incrementando nuestro contador, estepuede ser positivo o negativo es decir, si la cuanta se reali%a de manera ascendente odescendente.

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    32/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    return Q

    Ejemplo 4.2$e desea conocer el promedio de los n0meros mayores que cero, en una serie de n0meros ingresados

    por el usuario. 6e los cuales no se sabe la cantidad, haciendo uso de una bandera, dise1e un programaen el cual el usuario ingrese los n0meros que desee.Linclude Mstdio.hKLinclude Mconio.hKmain() O int iS, sumS, banS+, n float prom while(banSS+)

    O printf(R'ngrese un nkmero por >avor*TnR) scanf(RUdR, Vn) if(nK)

    O iSiY+ sumYSnQ

    printf(R6esea 'ngresar Dtro

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    33/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    Q if(notaKSG.) jSjY+ if(notaKmayor) mayorSnota

    if(notaMmenor) menorSnota iSiY+ sumaSsumaYnotaQ

    promSsuma+ printf(REl Promedio es U./fTnTnR, prom) printf(REl total de 2probados es UdTnR, j) printf(Ra -ayor nota fue U./fTnR, mayor) printf(RU./f corresponde a la nota menorTnR, menor) getch() return Q

    Ciclo Controlado por contador.En algunas ocasiones, sabemos a ciencia cierta el n0mero de veces que se tiene que repetir una mismaaccin o bloque de acciones. J para ello es que nos sirve, esta estructura. $u sinta&is es la siguiente*or@ valor inicial condicin incremento< accion6onde*7alor inicial* es el valor con el cual iniciali%amos nuestra variable de control.Condicin* si la cumple, ejecuta la accin o acciones e incrementa o decrementa la variable de control,sino la cumple la condicin, se sale del ciclo.'ncremento que puede ser positivo o negativo (decremento).7eamos un ejemplo sencillo*

    Ejemplo 4.46ise1e un programa que imprima los primeros + n0meros*Linclude Mstdio.hKLinclude Mconio.hKmain() O int i for(iS+ iMS+ iYY)

    printf(RUdTtR, i) getch() return Q

    Ejemplo 4.!6ise1e un programa en C, que calcule las compras totales, reali%adas por un grupo de / amas de casa.uego con esa informacin obtenga la media.Linclude Mstdio.hKLinclude Mconio.hKmain() O

    int ifloat compra, desvia, prom, varin%a, sumSfor(iS+ iMS+ iYY)

    33

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    34/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    Oprintf(R'ngrese la cantidad que gast la ama de casa Ud*TnR, i)scanf(RUfR, Vcompra)while(compraM) O

    printf(RE@@D@, la compra debe ser mayor que cero, vuelva a intentarlo*TnR) scanf(RUfR, Vcompra) QsumSsumYcompra

    QpromSsum+/printf(REl promedio de las compras es U./fTnTnTaR, prom)getch()return

    Q

    Cabe, mencionar que, en el ciclo for, podemos hacer cuentas decrecientes, es decir asignarle un valor

    grande a nuestra variable de control y luego irla disminuyendo hasta un valor determinado.

    Ejemplo 4."En un cine, se tienen = diferentes clases de boletos. $e pide que dise1e un programa en el cual*

    a) se lea el precio de las = clase de boletosb) $e lea el numero de boletos vendidos de cada tipoc) Calcular cual boleto es el que se vendi menosd) El total recaudado en taquilla

    2dems se sabe que durante el d"a se reali%aron un total de n ventas.Linclude Mstdio.hKLinclude Mconio.hKmain()

    O float preciob+, preciob/, preciob=, sumS, sum+S, sum/S, sum=S int n, i, boletos+, boletos/, boletos=, boleto clrscr() printf(RTtTt;'E

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    35/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    printf(RE@@D@TnR) scanf(RUfR, Vpreciob=)Q

    printf(RCu ntas ventas se reali%aron este da#*TnR) scanf(RUdR, Vn)

    while(nM)O printf(RE@@D@TnR)

    scanf(RUdR, Vn)Q

    for(iS+ iMSn iYY) O

    printf(R'ngrese el ;oleto*TnR) scanf(RUdR, Vboleto) switch(boleto) O case +* printf(R'ngrese la cantidad de boletos vendidos*TnR)

    scanf(RUdR, Vboletos+) sum+YSboletos+ sumSsumY(boletos+Ipreciob+) brea\

    case /* printf(R'ngrese la cantidad de boletos vendidos*TnR) scanf(RUdR, Vboletos/) sum/YSboletos/ sumSsumY(boletos/Ipreciob/) brea\

    case =* printf(R'ngrese la cantidad de boletos vendidos*TnR) scanf(RUdR, Vboletos=) sum=YSboletos=

    sumSsumY(boletos=Ipreciob=) brea\ default* printf(RE@@D@, 7uelva a intentarloTnTnR)

    brea\ Q

    Q clrscr() if(sum=Msum/ VV sum=Msum+)

    printf(Ros ;oletos que se vendieron menos fueron los boletos numero 8

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    36/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    >ormato * doO sentencia . .

    Q 0ile(Me&pK)a diferencia fundamental, entre el ciclo while y do...while, es que en este ultimo, las sentencias sereali%arn por lo menos una ve%, en cambio, con while, solo se cumplirn mientras se cumpla lacondicin, lo cual puede ser nunca.Ejemplo 4.$Programa que determina si un a1o es bisiesto o no. J un a1o es bisiesto si es m0ltiplo de cuatro, peroe&cluyendo aquellos que son m0ltiplos de + pero no de Linclude Mstdio.hKLinclude Mconio.hK>oidmain()O intanio carrespuesta

    printf(RTnTnTn''< 6E P@DN@2-2TnTnTnR)Q

    ernando -u1o% edesma.Practica =, ejercicio F.

    Cuestionario+. qu! es y cmo funciona un ciclo#

    WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

    /. Cul es la diferencia entre un contador y unacumulador*WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

    WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW=. cul es la mejor manera de validardatos#*WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

    WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW. cmo se evita un ciclo

    infinito#*WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

    F. u! diferencia e&iste entre un ciclo de entrada asegurada y el do...while#*WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

    36

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    37/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    6escubre donde est el error.El siguiente cdigo muestra la serie*+X/Y/X/Y=X/....nX/en el cual hay errores de lgica, de sinta&is o hasta de ejecucin, puedes descubrirlos y corregirlos#Linclude Mstdio.hK

    Linclude Mconio.hKmain() O int n i, &, sumS printf(R'nrtrodu%ca el valor de n*TnR) scanf(RUdR, Vn) while(nM)

    O printf(RError, vuelva a digitar el valor de n*TnR) scanf(RUdR, n)Q

    for(iS+ iMSn, iYY) &SiIi

    sumYSnprintf(REl valor de la suma es*UdTnTnR, sum)

    getch() return Q

    Ejercicios+. $e desea conocer la suma de los n0meros enteros, positivos menores que n, el cual es un dato

    dado por el usuario./. -uestre un programa en c, que imprima en pantalla los n0meros desde un valor inicial, hasta un

    valor final, ingresados por el usuario, tanto en forma descendente como ascendente.=. 6ise1e un programa que imprima la serie de >ugonacci, as"* + + / = F H +=.... hasta un n0mero

    n dado por el usuario.. Calcule el promedio de edades de un grupo de estudiantes, de los cuales no se conoce lacantidad.

    F. 6ise1e un programa que obtenga, la calificacin mayor y la calificacin menor, de un grupo de estudiantes, adems de los nombres de dichos alumnos.

    G. En un pa"s hubieron elecciones para elegir al presidente. El pa"s consta de B provincias oregiones, de las cuales se han levantado actas que contiene el total de votos obtenidos por los partidos pol"ticos en dicha regin. 6ise1e un programa en c, que lea las actas de las B provincias,muestre que partido gan las elecciones y en caso de empate, lo especifique con un mensaje.

    B. en un supermercado, hay = departamentos (de ropa, comestibles y perfumer"a), en lo cuales sereali%an un descuento de FU, =.FU y HU respectivamente, por las compras totales mayores de+.. dise1e un programa que dado el monto de la compra, realice los descuentospertinentes por departamento, le indique al usuario a cuanto asciende su nuevo monto e indique,

    cuanto fue lo recaudado al final del d"a.H. a Empresa, el porvenir s.a de c.v desea conocer lo que debe pagar en concepto de horas e&trasaun grupo de n empleados. $e sabe que una hora e&tra diurna, se paga el doble que una horanormal. J una hora e&tra nocturna se paga el doble de una hora normal ms el /FU. 2dems quetodos los empleados tiene sueldos diferentes, muestre el nuevo sueldo de cada uno de ellos y loque tendr que pagar la empresa en concepto de horas e&tra.

    A. 8na compa1"a de tel!fonos, cobra .= por minuto la llamada nacional local, .G por lallamada de larga distancia nacional y .+ la llamada de larga distancia internacional. 6ise1e unprograma que calcule las facturas mensuales de los clientes, sabiendo que, si las llamadas

    37

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    38/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    fueron reali%adas por la ma1ana tienen un doble valor, y si los + primeros minutos de llamadaslocales son gratis, en cualquier horario.

    Capitulo G #unciones en Ca modulari%acin, es una t!cnica usada por los programadores para hacer sus cdigos ms cortos, ya

    que consiste en reducir un gran problema complejo, en peque1os problemitas ms sencillos,concentrndose en la solucin por separado, de cada uno de ellos.En C, se conocen como funciones a&uellos trozos de cdigos utilizados para dividir un programa con elobjetivo &ue, cada blo&ue realice una tarea determinada.

    En las funciones juegan un papel muy importe las variables, ya que como se ha dicho estas pueden serlocales o globales.Garia=les 8lo=ales Estas se crean durante toda la ejecucin del programa, y son globales, ya quepueden ser llamadas, le"das, modificadas, etc desde cualquier funcin. $e definen antes del main().Garia=les Locales Estas, pueden ser utili%adas 0nicamente en la funcin que hayan sido declaradas.a sinta&is de una funcin es la siguiente*(ipoTdeTdatos nom=reTdeTlaTuncion@tipo nom=re de argumentos< acciones

    R

    donde* (ipoTdeTdatos Es el tipo de dato que devolver esa funcin, que puede ser real, entera, o tipo

    void(es decir que no devolver ning0n valor). om=reTdeTlaTuncion Es el identificador que le damos a nuestra funcin, la cual debe cumplir

    las reglas que definimos en un principio para los identificadores. (ipo nom=re de argumentos son los parmetros que recibe la funcin. os argumentos de

    una funcin no son ms que variables locales que reciben un valor. Este valor se lo enviamos alhacer la llamada a la funcin. Pueden e&istir funciones que no reciban argumentos.

    &cciones Constituye el conjunto de acciones, de sentencias que cumplir la funcin, cuandosea ejecutada. Entre ellas estn*

    +. 2signaciones/. ecturas=. 'mpresiones. Clculos, etc

    8na funcin, termina con la llave de cerrar, pero antes de esta llave, debemos colocarle la instruccinreturn, con la cual devolver un valor espec"fico. Es necesario recalcar que si la funcin no devuelvening0n valor, es decir, es tipo void, no tiene que ir la sentencia return, ya que de lo contrario, nos dar unerror.Pero, es vlido que nos hagamos la siguiente pregunta*UCmo es Bue uncionan los u=programasV

    2 menudo, utili%amos el adjetivo de 4$ubprogramas5, para referirnos a las funciones, as" que, el lectordebe familiari%arse tambi!n con este t!rmino.os subprogramas se comunican con el programa principal, que es el que contiene a las funciones,

    mediante parmetros, que estos pueden ser* Parmetros >ormales y Parmetros 2ctuales.Cuando se da la comunicacin los parmetros actuales son utili%ados en lugar de los parmetrosformales.

    Paso de ParmetrosE&isten dos formas de pasar parmetros, las cuales son*

    &< Paso por Galor?ambi!n conocido como parmetros valor. os valores se proporcionan en el orden de clculos deentrada.

    38

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    39/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    os parmetros se tratan como variables locales y los valores iniciales se proporcionan copiando losvalores de correspondientes argumentos.os parmetros formales:ocales de una funcin reciben como inicilaes los valores de los parmetrosactuales y con ellos se ejecutan las acciones descritas en el subprograma.Ejemplo

    2SF;SBCSproc+(2, +H, ;I=Y)Proc+(, J, )E&plicacin*6onde, se encuentra c, se est llamando la funcin, denominada proc+, en la cual se estn enviandocomo parmetros el valor de 2, que es cinco el cual es recibido por la variable , en la definicin de lafuncin proc+ en la misma funcin, J tendr el valor de +H por que ese es el valor del parmetro formal,mientras que , tendr un valor inicial de /F, ya que ese es el resultado del tercer parmetro que resultaser una e&presin aritm!tica.

    #unciones %einidas Por El )suario en C8na funcin, como ya se ha dicho, es un bloque de cdigo dentro del programa que se encarga de

    reali%ar una tarea determinada. Por lo tanto un programa en c debe constar de una o ms funciones, ypor su puesto no puede faltar la funcin principal main45.8n viejo adagio dice* $epara y vencers, lo cual se acopla perfectamente cuando tenemos un programaque es bastante grande podemos separarlos en peque1os subprogramas (funciones), y concentrarnosen la solucin por separados de cada uno de ellos y as" resolver un gran problemas, en unos cuantosproblemitas ms peque1os.

    $i un programa, est constituido por ms de una funcin, las llamadas a la misma, pueden reali%arsedesde cualquier parte del programa, y la definicin de ellas debe ser independiente unas de otras.Por lo tanto ser"a un grave error el tratar de definir una funcin dentro de otra.8na funcin puede ser llamada desde cualquier parte del programa no slo una ve%, y cuando esllamada, empie%a a ejecutar las acciones que estn escritas en cdigo.Para mayor comodidad del lector vamos a ver varios ejemplos, del uso de funciones y a medida quevayamos avan%ando se volvern ms complejos.

    El orden ser el siguiente*+. >unciones que no devuelven ning0n valor/. >unciones que devuelven un valor entero=. >unciones que devuelven un valor @eal. >unciones combinadasF. >unciones en las que usamos -en0.

    1. #unciones Bue no de>uel>en ningWn >alor.

    39

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    40/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    Cmo se ha dicho las funciones pueden o no devolver alg0n valor, para mi parecer, este tipo de funcionesson las ms sencillas, ya que cuando se llama la funcin, esta reali%a lecturas, asignaciones, clculos oimpresiones, finali%a la ejecucin de la funcin y el programa contin0a normalmente.Ejemplo F.+6ise1e un programa que dados dos n0meros enteros determine la suma y cual de ellos es mayor, usando

    dos funciones diferentes.Linclude Mstdio.hKLinclude Mconio.hKvoid suma (int a, int b) I6eclaracin de la funcinIvoid mayor (int a, int b) I?ipo de dato, nombre de la funcin y el tipo y nombre de los argumentosImain() O int a, b printf(R'ngrese el valor de a*TnR) scanf(RUdR, Va) printf(R'ngrese el valor de b*TnR) scanf(RUdR, Vb) suma(a,b) Ilamado de la funcinI

    mayor(a,b) I8nicamente el nombre de la funcin y de los par metrosI getch() return Q void suma(int a, int b) I6efinicin de la funcinI O I2brimos llaves al inicio de la definicinI int sum I6eclaracin de las variables localesI sumSaYb printf(REl valor de la suma es Ud*TnTnR, sum) Q I>in de la funcin sumaI void mayor(int a, int b) O

    if(aSSb) printf(R$on igualesTnTnR) else O

    if(aKb) printf(REl valor de a es mayor que el de bTnTnR)else printf(REl valor de b es mayor que el de aTnTnR)

    Q Q

    %einicin de la #uncina funcin ha sido declarada, ha sido llamada y por lo tanto deber haber sido definida. o cual consta de

    dos partes, las cuales son*+. a Primera "neaue como su nombre lo indica, es la primera l"nea de la definicin de la funcin y con ella le indicamos alcompilador que est en presencia de una funcin. $u formato es el siguiente*(ipoTdeTdato nom=reTdeTlaTuncin @tipo nom=re de los argumentosuel>en un Galor +eal2ntes que nada, trataremos las funciones predefinidas en C. Ja que C, posee ciertas funciones que nos

    ayudan hacer nuestros programas ms fciles y utili%ar menos cdigo.

    El lenguaje c, cuenta con una serie de funciones de bibliotecas que reali%an operaciones y clculos deuso frecuente.Para acceder a una funcin, se reali%a mediante el nombre seguido de los argumentos que le servirn ala funcin a reali%ar la tarea espec"fica.

    om=re@arg1, arg2,...argn

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    45/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    atoi(s) int Convierte cadenas a un enteroatol(s) long Convierte cadenas a un entero largo

    3ay muchas otras funciones, pero para ahondar ms, debes saber cul es la versin de C, instalada entu mquina y as" verificar cules funcionan correctamente pero por lo general, estas funciones son muy

    estndar para la mayor"a de compiladores.2 continuacin, pasaremos a desarrollar una serie de ejercicios, en los cuales haremos uso de lafunciones predefinidas en c, as" como la modulari%acin, es decir el uso de funciones definidas por elusuario.

    Ejemplo !.!$e desea conocer el resultado de las siguientes operaciones*

    +. aYb/. a:b=. ab

    as variables a y b, son de tipo real, y pueden ser positivas o negativas.Linclude Mstdio.hKLinclude Mconio.hKLinclude Mmath.hKdouble rai%(float a, float b)double valorWabsoluto(float a, float b)double e&ponente (float a, float b)main() O float a, b clrscr() printf(RTtTt;'E

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    46/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    Q double e&ponente (float a, float b) O double & &Spow(a,b)

    return (&) Q

    $upongo que, este ejemplo no requiere mayor e&plicacin. Pero me gustar"a que el lector, comprenda lagran cantidad de usos que podemos darle, a aquellas funciones matemticas, junto con las funcionesdefinidas por el usuario, esta es una gran ayuda, ya que se imaginan la cantidad de cdigo quedeber"amos colocar, para determinar cosas tan elementales como el valor absoluto# con estas funcionesmatemticas, C, nos ahorra mucho trabajo y cdigo.

    4. #unciones Com=inadas2 continuacin veremos un ejemplo de un programa en el cual utili%amos dos funciones de diferente tipode dato.Ejemplo !.!El valor del n0mero e se puede apro&imar sumando n t!rminos de la serie* e S + Y ++ Y +/ Y += Y ...Escribir un programa que solicite el n0mero de t!rminos de la serie a sumar e informe del valorapro&imado de e. ?!ngase en cuenta que el termino i de la anterior serie se obtiene dividiendo por (i:

    +). (a e&clamacin es el factorial).Linclude Mstdio.hKLinclude Mconio.hKLinclude Mstdlib.hK

    >oidcalculodatos(intnumero)dou=lefactorial(intdato)

    >oidmain(>oid)O intnumero carrespuesta

    printf(RTnTnTn'

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    47/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    calculodatos(numero)

    printf(RTnTn6esea introducir mas datosT#TnTnR) respuestaSgetch()

    system(RclsR) Q 0ile(respuestaSS^s^ respuestaSS^$^) printf(RTnTnTnTtTtR) printf(RTnTtTt >'< 6E P@DN@2-2 R) printf(RTnTtTtTnTnTnR)Q

    >oidcalculodatos(intnumero)O registerinti registerdou=leeS+.

    or(iS+iMSnumeroiYY) O

    eSeY+.factorial(i)

    Q printf(RTnTnEl valor de e para Ud terminos es Uf.R,numero,e) Q

    dou=lefactorial(intdato)O registerinti registerdou=leresultadoS+

    or(iSdatoiKi::) resultadoSresultadoIi

    returnresultadoQ

    El ejemplo anterior ha sido tomado de 4Practicas de C5, de >ernando -u1o% edesma.ledesmafernandomsn.com J as" como este ejemplo, podemos reali%ar muchas otras combinaciones de funciones, seg0nnecesitemos y lo solicite nuestro programa.

    !. #unciones en las Bue usamos MenW En la prctica, muchas veces debemos dise1ar programas, que nos permitan elegir la accin o accionesa reali%ar, es decir haciendo uso de un men0. El cual, no es ms ni menos que la aplicacin de unselector m0ltiple. 8n s7itc(.7eamos un ejemplo.

    Ejemplo !."6ise1e un programa, que dado un ngulo, muestre su seno, coseno o tangente seg0n lo desee elusuario.Linclude Mstdio.hKLinclude Mconio.hKLinclude Mmath.hKvoid seno (float angulo)void coseno (float angulo)void tangente (float angulo)main()

    47

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    48/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    O float angulo int opcion, banS+ clrscr() while(banSS+)

    O printf(RTtTt;'E

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    49/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    printf(Ra tangente de Uf es UfTnTnR, angulo, y) getch()

    Q

    Cuestionario

    +. -encione y e&plique, las parte en las que se componen las funciones definidas por el usuario enC*WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

    WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

    /. Cul es la diferencia entre las funciones predefinidas en c y las funciones definidas por elusuario#

    WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

    =. En que consiste el paso deparmetros#*WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

    WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

    . Cul es la diferencia entre parmetros formales yactuales#*WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

    WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

    F. En que se diferencias las variables locales a lasglobales*WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

    WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

    Ejercicios

    +. @ealice una peque1a calculadora, utili%ando funciones/. 6ise1e un programa que permita calcular la serie Y += Y Y ... +n.=. 6ise1e un programa, que muestre el mayor y el menor de tres introducidos por el usuario.. $e desea conocer el logaritmo natural y el logaritmo base + de una serie de n0meros. 2s" como

    la suma de dichos valoresF. $e desea conocer la permutacin de dos n0meros distintos. 8sando funciones. 6ise1e un

    programa que resuelva dicho problema. (

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    50/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    +. En una empresa de repuestos de automvil, poseen + tipos de repuestos identificados con losn0meros de + al +. durante la semana se reali%an diferentes ventas de los repuestos. $e deseasaber la cantidad de repuestos que se deben comprar, para actuali%ar el inventario. El cual sereali%a cada cinco d"as, y se procede de la siguiente manera* cada d"a se contabili%an el total defacturas, en las cuales se muestran la cantidad de art"culos vendidos as" como el total de la

    venta. Con esos datos, indique al usuario cuantos y de que tipo, son los repuestos que se debencomprar as" como la ganancia.

    Capitulo G' *Estructuras de %atos-8n arraes un identificador que referencia un conjunto de datos del mismo tipo. 'magina un tipo

    de dato int podremos crear un conjunto de datos de ese tipo y utili%ar uno u otro con solo cambiar el"ndice que lo referencia. El "ndice ser un valor entero y positivo. En ^C^ los arrayscomien%an por laposicin S.Gectores

    8n >ectores un arrayunidimensional, es decir, solo usa un "ndice para referenciar a cada uno delos elementos.

    $u declaracin ser* tipo nom=re ItamaFoJA

    El tipo puede ser cualquiera de los ya conocidos y el tama1o indica el n0mero de elementos del vector(se debe indicar entre corchetes I J). En el ejemplo puedes observar que la variable ies utili%ada como"ndice, el primer orsirve para rellenar el vector y el segundo para visuali%arlo. Como ves, las posicionesvan de Sa (total + elementos).(?omado de 4'ntroduccin al lenguaje de programacin de CCYY5. $ergio Pacho)

    Ejemploint numZ+[ I2rreglo de tipo entero compuesto de + posicionesI

    char nomZH[ I?e&to de H caracteresI

    float &Z+/[ Iarreglo de +/ elementos punto flotantes IConstante im=lica3ace ms sencillo o ms fcil modificar un programa que utili%a arreglos. Ja que todas las referencias altama1o del arreglo pueden ser alteradas, cambiando el valor de la constante simblica.

    Ejemplo ".16ise1e un programa que lea un vector de + posiciones, luego determine si la quinta posicin es positiva,si la primera posicin es negativa y si la ultima posicin es cero.Linclude Mstdio.hKLinclude Mconio.hKLdefine < +main()

    O float &Z

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    51/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    printf(Ra quinta Posicin es PositivaTnTnR) Q if(&Z[M) O

    printf(Ra + Posicin es ectorINJ.$i solo rellenamos los F primeros, hasta >ectorI4J, debemos asignar el carcter nulo a>ectorI!J. Es muy sencillo* >ectorI!JS^T^

    2hora veremos un ejemplo de como se rellena un vector de tipo c(ar. Podemos ver que en el for seencuentran dos condiciones*1.:ue no se hayan rellenado todos los elementos (i91).

    2.:ue el usuario no haya pulsado la tecla E

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    52/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    Llamado de la #uncin

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    53/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    El lector, debe preguntarse, que pasar"a si e&isten dos valores e&actamente iguales que sean los valoresm&imos y que por ende, est!n en diferentes posiciones, que solucin le dar"as como programador#...este tipo de preguntas debe hacerse siempre que ha finali%ado un programa, y nunca dejar nada sinresolver, por que recordemos que los programas que dise1amos son para que otras personas los usen.

    Matricesas matrices se declaran de forma anloga, con corchetes independientes para cadasub"ndice. a forma general de la declaracin es*tipo nombreZnumeroWfilas[ZnumeroWcolumnas[donde tanto las filas como las columnas se numeran tambi!n a partir de . a forma deacceder a los elementos de la matri% es utili%ando su nombre, seguido de las e&presionesenteras correspondientes a los dos sub"ndices, entre corchetes.En C tanto los vectores como las matrices admiten los tipos de las variables escalares(char, int, long, float, double, etc.),as matrices en C se almacenan por filas, en posiciones consecutivas de memoria. Encierta forma, una matri% se puede ver como un vector de vectores8fila. $i una matri% tiene iYY) O

    for(jS jMC jYY) Oprintf(RIUdIR, matri%Zi[Zj[)

    Qprintf(RTnR)

    Q printf(RJ el vector suma de las filas es*TnTnR) for(iS iM> iYY)

    printf(RUdTtR, vectorZi[) getch()

    53

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    54/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    return Q

    Creo que no hay mucho por e&plicar, el uso de una matri% en C, es bastante parecido al de un vector,pero con las diferencias que en un vector tenemos 0nicamente una dimensin y en las matrices tenemos

    dos.2 continuacin desarrollaremos un ejemplo, el cual es bastante significativo para mi, ya que fue mi primerproyecto, cuando curs! la -ateria de Programacin ' en la 8niversidad, espero que les guste*

    Ejemplo ".4Escriba un programa que visualice un cuadro mgico de orden impar

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    55/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    cSdim/ cuadradoZf[Zc[S+ for(iS/ iMSdimIdim iYY)

    O f::

    cYY if(fM VV cSSdim) O

    fS+ cSdim:+

    Q if(fM) fSdim:+

    if(cSSdim) cS

    if(cuadradoZf[Zc[S)O c:: fSfY/Q

    cuadradoZf[Zc[SiQ

    printf(Ra constante m gica es* UdTnTnR, comprueba (cuadrado, dim)) impresion(cuadrado, dim) getch() return Q

    int comprueba (int cuadrado Z

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    56/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    if(sumSconsmagic)magicS

    sumS for((iSdim:+) iKS i::) O

    jSjY+sumSsumYcuadradoZi[Zj[

    Q if(sumSconsmagic)

    magicS if(magicSS)

    consmagicS return (consmagic) Q void impresion (int cuadradoZ

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    57/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    +. En una escuela se tiene el listado de = alumnos con sus respectivas notos, dise1e un programaque muestre las notas de los alumnos que tuvieron una nota mayor que el promedio.

    /. 6ise1e un programa que dado un vector de magnitud , busque y muestre la posicin en la quese encuentra un valor

  • 5/22/2018 programacion-lenguaje-c-2013-2014.doc

    58/58

    Manual de ProgramacinManual de Programacin Lenguaje CLenguaje C

    os sueos no son para los soadores, sino para los &ue trabajan por (acerlos realidad

    2nimo J no te desalientes, sigue siempre adelante

    2utor*r. Manuel &ntonio OrteZmemeboi/Bhotmail.com

    58

    mailto:[email protected]:[email protected]