Lenguaje C - Programacion

download Lenguaje C - Programacion

of 65

Transcript of Lenguaje C - Programacion

  • 8/16/2019 Lenguaje C - Programacion

    1/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    Manual de Programación en el Lenguaje C Manual de Programación en el Lenguaje C 

    Presentación

    El Presente documento ha sido elaborado con la finalidad, de proveer a los estudiantes, de unrecurso ágil y fácil de comprender por aquellos que inician su estudio en la programación dellenguaje C.¿Por qu decid! escribir este manual"#encillo, cuando en la universidad empe$amos a estudiar C, nos pidieron que, si pod!amos,compráramos un libro te%to para apoyar las clases, o buscáramos un manual en la &nternet... yoopt por la segunda opción, ya que como todos sabrán los libros de programación son muycaros, pero me encontr con dos grandes problemas'

    (. )os *anuales que bajaba estaban incompletos, es decir+ las e%plicaciones, los ejemplosy la información en general era muy pobre, por no decir escasa.

    2. si al dado caso, encontraba algn manual que estuviera completo, ten!a muchoserrores, en sus ejemplos -errores de sinta%is, de ejecución y hasta de lógica o en lae%plicación que se daba. )o cual al yo cometer esos ejemplos, mis profesores me lohac!an saber.

    Por esas ra$ones y para evitar que, otros estudiantes les suceda lo mismo que a m!, y as! lesevitar gastos en impresiones innecesarios.Cabe recalcar que, no soy un e%perto programador... todav!a sigo estudiando, pero quierocolaborar de una manera desinteresada, a la formación de las personas.Espero que, este peque/o manual les sirva de mucho y sobre todo, le saquen mucho provecho.

    CAPITULO I “MARCO INTRODUCTORIO”Marco Conceptual

    #e muy bien, que usted, querido lector+ está muy ansioso por comen$ar a programar, peroconsidero que es importante+ conocer un poco del lenguaje C, tanto de sus or!genes como desus ventajas, pero no se preocupen, ser breve en esta introducción teórica. 0demás que esimportante conocer o recordar algunos conceptos que, son importantes al momento deprogramar.

    • ComputadoraComponentes de Una Computadora1emos definido una, computadora como una máquina que recibe datos y órdenes, que al

    ejecutarlas produce cierta información+ dicha información se presenta en un 2idioma3 codificado+por que ha de saberse que las computadoras no entienden nuestro idioma, o cualquier otro enel mundo. 4icho 2idioma3 está compuesto nicamente por dos elementos los ceros y los unos.*ejor conocido como código inario! con el cual se representan los datos, que arroja lacomputadora.En una forma más general, y creo que más sencilla, una computadora se comprende por dosgrandes grupo' El 1ard5are y el #oft5are."ard#areEl 1ard5are de un computador es un conjunto de elementos f!sicos, que la componen.

    1

  • 8/16/2019 Lenguaje C - Programacion

    2/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    6eámoslo gráficamente'

    Podr!amos entrar en detalle de cada una de las partes descritas anteriormente, pero ese, no esel objetivo de estas insignificantes páginas+ sino que esto es una mera introducción teórica, por ello sólo dar una breve e%plicación.En la 7nidad Central de Proceso -o CP7, por sus siglas en ingles 8Central Proccessing 7nit9se contiene la Unidad de Control! que su función es organi$ar y clasificar las instruccionesrecibidas+ mientras que la Unidad Aritm$tica % Lógica! #e encarga de ejecutar dichasinstrucciones. Los uses! son los mecanismos de intercone%ión en el CP7.

    La memoria Principal! Es el lugar donde se cargan todas las instrucciones, programas, etc quese están ejecutando.

    &o't#are

    4ebemos entender el soft5are como la parte lógica de la computadora... ¿un poco dif!cil decomprender, verdad"+ es decir, que el soft5are, es lo que dota a los componentes f!sicos depoder reali$ar tareas determinadas. Ejemplo, para poder utili$ar una computadora, esta debetener instalado un sistema operativo. Para poder imprimir algn trabajo, aparte de poseer unimpresor, en la computadora, debo tener un soft5are que me permita imprimir dicha acción-generalmente las impresoras traen un cd, son su respectivo soft5are de instalación.

     0burrido"...Es necesario, que empiece con tanta palabrer!a+ por que es necesario, para el lector tener enclaro estos conceptos.

     0hora vamos a hablar de algo un poco más interesante, como lo es el lenguaje deprogramaciónUn lengua(e de Programación Es un conjuntos de palabras, reglas, con las cuales se le indicaa la computadora las funciones que debe reali$ar . 7n lenguaje de programación puede ser'

    (. )enguajes *áquinas' se trata de lenguaje cuyas instrucciones son directamentecomprendidas por el ordenador o computador en el que se ejecuta el programa.

    2

  • 8/16/2019 Lenguaje C - Programacion

    3/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    :. )enguaje de ;ajo

  • 8/16/2019 Lenguaje C - Programacion

    4/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    *structura de Un programa en C

    Ja estamos apunto de entrar a lo más interesante, a la programación en s!+ pero es necesario,primero+ mencionar algunos de los errores t!picos al programar, para que el lector sepa como

    identificarlos y as! los pueda corregir.1. *RROR D* &INTA+I&) Estos errores son producidos, cuando se hace mal uso de lasreglas del lenguaje de programación, y se violan las normas de sinta%is, de ese lenguaje-en nuestro caso C+ estos errores son fáciles de detectar por que generalmente es elcompilador, que los identifica -J hasta muestra la l!nea donde se encuentra dicho error,pero eso depende de la versión del compilador que estemos usando. En este curso heusado ?urbo C, en su versión : y =.

    2. *RROR*& D* *,*CUCI-N) Estos errores se producen, cuando le indicamos a lacomputadora, reali$ar una determinada acción, y esta la comprende, pero no puedeejecutarla. Por ejemplo, indicarle a la computadora una división entre cero, sumar dosvariables a las cuales no se les ha signado valor alguno, etc.

    3. *RROR*& D* L-.ICA) *uchas veces, cuando estamos programando, el compilador no nos indica errores de sinta%is, ni de lógica+ pero el resultado de nuestro programa,esta fuera del rango esperado, esto es producto de un error de lógica en el código denuestro programa. Este tipo de errores son muy dif!ciles de identificar y por supuesto decorregir, ya que generalmente hay que revisar l!nea por l!nea de nuestro programa.Ejemplo' El sueldo negativo de un empleado, etc.

    )a estructura de un programa en C, consta de algunas partes esenciales' las cuales son uno omás módulos llamadas funciones, siendo main- la primera función que es llamada cuandoempie$a la ejecución del programa .Cada función debe contener'K4irectivas de pre9procesador -instrucciones que se le dan al compilador

    Linclude antes de compilar Ldefineejemplo'Linclude Mstdio.hK

    )o que se le esta indicando, es que de las librer!as, 2&ncluya3 en nuestro programa la directivastdio.h, la cual contiene las funciones de entrada y salida de datos -standar input output, eningls. #i necesitamos las funciones matemáticas, debemos especificarlo con la declaratoria'Linclude /math.h0#i necesitamos las funciones de cadenas'

    Linlcude /stlib.h0Es necesario aclarar que esto se hace al inicio del programa, y las declaratorias deben llevar els!mbolo de numeral -L seguido de la sentencia 2include3, y entre signos de mayor y menor que-MK el nombre de la directiva.

    K4eclaraciones NlobalesPueden ser'

    4

  • 8/16/2019 Lenguaje C - Programacion

    5/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    IPrototipos de >unciones' ?ambin llamadas declaraciones de funciones, lo cual se tratará másadelante

    I4eclaraciones de 6ariables

    Cabe destacar, que esto se hace seguido de los Linclude y los Ldefine.K>unción Principal main-Esta es la función principal de nuestro programa, su cuerpo, por ello

  • 8/16/2019 Lenguaje C - Programacion

    6/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    *(ercicios4efina los siguientes conceptos'

    (. Programa'WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 

     WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW :. CP7'WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 

     WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 

    =. #oft5are'WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW  WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 

    . *emoriaPrincipal'WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 

     WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 

    F. )enguaje deProgramación'WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 

     WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 

    &ndique que tipo de error -Error de sinta%is, error de ejecución o error lógico, en cada uno delos siguientes enunciados

    (. 7tili$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 . 7n programa no puede ser ejecutado por el computador, mientras tenga este tipo de

    errores'WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW F. estos errores no son detectados por el compilador, ni tampoco son errores de

    ejecución'WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 

    *encione y E%plique, la estructura general de un programa en C'

    Capitulo II) “Lengua(e de Programación *structurado C”

    ¿Por qu programación estructurada"#i el lector recuerda, en el cap!tulo anterior, se hablaba de las caracter!sticas del lenguaje C, yen una de ellas se dec!a que, el )enguaje de Programación C, permite la programaciónestructurada. Esto implica que, haremos uso de una tcnica llamada Lógica *structurada! yesto no es más ni menos que una de las técnicas básicas y fundamentales de la programaciónestructurada, su objetivo es diseñar soluciones “correctas” y confiables a los problemas,ignorando al principio consideraciones de eficiencia como la minimización del uso de memoria y el tiempo de su respuesta.

    6

  • 8/16/2019 Lenguaje C - Programacion

    7/65

  • 8/16/2019 Lenguaje C - Programacion

    8/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    c5 La Directi7a 8includePermite que, el pre9procesador, incluya funciones proporcionadas por el fabricante, a nuestroprograma. Ejemplo'

     Linclude Mstdio.hK I le decimos al compilador que incluya la librer!astdio.h I

    d5 la directi7a 8de'inePermite definir constantes simbólicas. Pero hasta ahora ha sido poco lo que hemos habladoacerca de las constantes, es por ello que aprovechando, este espacio+ dedicar unas cuantasl!neas para aclarar ello.)as variables pueden cambiar de valor, durante la ejecución del programa, por eso es que sellaman variables. J las constantes como su nombre lo indica, son valores que permanecenconstantes durante toda la ejecución del programa, un ejemplo de ello, es el valor de π -pi queequivale a =.((FA....

    En C e%isten diferentes tipos de variables, entre ellas tenemos'23 Constates Num$ricas)#on valores numricos, enteros o de reales -de punto flotante. #e permiten tambin constantesoctales y he%adecimales.93 Constantes &im6ólicas))as constantes simbólicas tienen un nombre -identificador, y en esto se parecen a lasvariables. #in embargo, no pueden cambiar de valor a lo largo de la ejecución del programa. EnC, se pueden definir mediante el preprocesador.  -?omado del *anual “Aprenda enguaje A!"# $ como si estuviera en %rimero” Escuelasuperior de &ngenieros &ndustriales. 7niversidad de ebrero de (AAH.

    *(emplo)Ldefine < (Ldefine P& =.((GLdefine ; F

    Esta directiva -Ldefine va, inmediatamente despus de los Linclude. #e escribe la directiva, sedeja un espacio y se escribe el identificador de la constante, otro espacio y su valor.

    e5 &ignos de Puntuación % de &eparación

    !  U X V I - 9 Y OQ Z[ T + ' MK ¿ .

    '5 Todas las Instrucciones o sentencias del programa terminan con un punto %coma :;5

      0l momento de programar en C, esta es una regla de oro, y la causa por la cual nuestroprograma puede darnos muchos errores de sinta%is, cuando se omite, al final de cada sentenciaun punto y coma -+. Ja que con ello le indicamos al compilador que ha finali$ado una sentencia.

  • 8/16/2019 Lenguaje C - Programacion

    9/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    @ecordemos el ejemplo (.(, y vea que al final de cada sentencia lleva su correspondiente puntoy coma'

    Linclude Mstdio.hK

    Linclude Mconio.hKmain-  O  float radio, area+  printf-R@adioSTnR+  scanf-RUfR, Vradio+  areaS=.((FAIradioIradio+  printf-REl 0rea es UfTnTnR, area+  getch-+  return +  Q

     g5 Todo lonea se pueden escri6ir m?s de una instrucción separada por unpunto % coma

    Esto es posible, porque con el punto y coma, le estamos indicando al compilador el fin de unasentencia o instrucción.Ejemplo'b S c Y d+ d S :I\+

    9

  • 8/16/2019 Lenguaje C - Programacion

    10/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    Tipos de Datos en C

    7n tipo de dato, se define como un conjunto de valores &ue puede tener una variable, junto conciertas operaciones &ue se pueden realizar con ellas.

    I?&PD# 4E 40?D# P@E4E>&&

  • 8/16/2019 Lenguaje C - Programacion

    11/65

  • 8/16/2019 Lenguaje C - Programacion

    12/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    *(emplo)const int diaSB+const float piS=.((FA+const char caracterS `m_+

    const char fechaZ[S3:F de diciembre3+

    Caso *special Constantes &im6ólicas)as constantes simbólicas, se declaran mediante la directiva Ldefine, como se e%plicóanteriormente. >uncionan de la siguiente manera, cuando C, encuentra el s!mbolo querepresenta a la constante, lo sustituye por su respectivo valor.Ejemplo'Ldefine < (FLdefine P& =.((GLdefine P F

  • 8/16/2019 Lenguaje C - Programacion

    13/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    6eamos un ejemplo'Programa que espera que se presiona una tecla, la muestra en pantalla, y además muestra elcarácter siguiente'Ejemplo :.('

    Linclude Mstdio.hKLinclude Mconio.hKmain-O  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 %+ I4eclaramos % 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

    *ntrada 1 &alida de Cadenas7na Cadena, es una frase, compuesta por varias palabras. En C, podemos hacer uso de lascadenas, mediante, la sentencia'Bgets:5) )ee una cadena de carácter introducido por el teclado. #e puede introducir caractereshasta que se de un retorno de carro, -enter+ el cual no es parte de la cadena+ en su lugar secoloca un terminador nulo T.Bputs:5) &mprime en pantalla, el argumento guardado en la variable que se manda a impresión.

    Ejemplo :.=4ise/e un programa en C, que lea su nombre+ lo salude y mande a impresión su nombre,usando gets e y puts

    Linclude Mstdio.hKLinclude Mconio.hKmain-  O  char nombreZ[+  puts-Rdigite su nombre'R+  gets-nombre+

    13

  • 8/16/2019 Lenguaje C - Programacion

    14/65

  • 8/16/2019 Lenguaje C - Programacion

    15/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    variable. Es importante recalcar, que en la posición que coloquemos el formato es dondeaparecerá el valor de la variable en este caso, (.

    Ejemplo'

    Char nombreZB[S3*anuel3+printf-2Us es en creador de este manual3, nombre+

  • 8/16/2019 Lenguaje C - Programacion

    16/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    printf-2El valor de % es U.:fTtTn3,%+  printf-2Tt J el valor de pi es U.:fTnTn3, pi+

    *ntrada Desde Teclado

    #e reali$a mediante la función scanf-, su formato es'scan':2Cadena de control3, 4irección y nombre de la variable 5;Ejemplo :.4ise/e un programa que guarde y muestre la nota del e%amen final de = alumnosLinclude Mstdio.hKLinclude Mconio.hKmain-  O  float n(, n:, n=+  char nom(Z([, nom:Z([, nom=Z([+  printf-R&ntrodu$ca el inalmente el ultimo alumno es'TnR+  scanf-RUsR, nom=+  printf-RJ su nota es'TnR+  scanf-RUfR, Vn=+  getch-+  return +  Q

    *4plicación)Primero, iniciamos con las directivas del preprocesador'Linclude Mstdio.hKLinclude Mconio.hKCon la cual le indicamos al compilador, que de su librer!a a/ada a nuestro programa lasfunciones estándar de entrada y salida+ as! como las entradas y salidas por consola -stadio.h yconio.h, respectivamente.)uego declaramos la variables, que contendrán 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 contendrán las notas, caba aclarar que al momento de lasdeclaraciones las podemos hacer en el orden que deseemos, pueden ser primeros los tipo char y luego los float, o viceversa, pero teniendo el cuidado que las variables que contendrán lasnombres lleven la longitud má%ima entre corchetes, para nuestro caso, (. - Z([ .Posteriormente, mostramos en pantalla, un mensaje con el cual le indicamos al usuario queintrodu$ca los datos respectivos'

    16

  • 8/16/2019 Lenguaje C - Programacion

    17/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    printf-R&ntrodu$ca el

  • 8/16/2019 Lenguaje C - Programacion

    18/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    F 0;CEs) 0, ; y C son los nicos caracteres que puede leer al encontrar uno diferente, finali$acon un valor nulo.F 09 Es) ?ambin pueden ser rangos de carácter en este caso sólo acepta maysculas.

    I7END &

  • 8/16/2019 Lenguaje C - Programacion

    19/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    H. ¿Para que sirve a declaratoriaLdefine"'WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 

     WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW A. Para que sirve el punto y coma -+ en

    C'WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW  WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW (. 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'WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 

     WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 

    *(ercicios)(. 1aciendo uso de las funciones gets y puts, dise/e un programa en C, que se lea el

    nombre del usuario y lo muestre en pantalla junto con un saludo.:. 4ise/e un programa en C, que lea y muestre en pantalla el valor de tres variables de tipo

    Entero.=. 4ise/e un programa que muestre, los diferentes tipos de datos, usados en C. Primero,debe indicársele al usuario que introdu$ca un valor, de un tipo dado+ luego y despus dehaber introducido valores en todas las variables, debe imprimirse el contenido de ellas,

     junto con un mensaje que indique, el tipo de dato'

    . 4ise/e un programa, en el cual se introdu$can el nombre y el peso y de un alumno, yluego la muestre en pantalla. El

  • 8/16/2019 Lenguaje C - Programacion

    20/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    Capitulo III “Operadores! *4presiones % *structuras”

    1asta ahora, prácticamente hemos visto, como el protocolo esencial, para reali$ar unprograma en C+ y algunas funciones muy importantes, como son las funciones de lectura e

    impresión -scanf y printf, respectivamente. 0hora veremos, otros aspectos fundamentales, como lo son los operadores, que puedenser' lógicos, matemáticos, relacionales, etc. )as e%presiones, y las estructuras' desecuenciación, de selección y de iteración.

    Operadores7n operador, es un s!mbolo que indica al compilador que se lleve a cabo ciertasmanipulaciones matemáticas o lógicas.

    Operadores Aritm$ticosOperador Propósito

    Y #umaG @estaB *ultiplicación 1 4ivisiónF @esto de la división entera

    ?0;)0 =.(

    ?odos estos operadores se pueden aplicar a constantes, variables y e%presiones. El resultadoes el que se obtiene de aplicar la operación correspondiente entre los dos operandos. -?omadode 20prenda )enguaje 0

  • 8/16/2019 Lenguaje C - Programacion

    21/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    Operadores de Relaciónales! Lógicos % UnariosEstos Dperadores, los podemos dividir, en varios tipos, entre los cuales están'

    (. DPE@04D@E# 7

  • 8/16/2019 Lenguaje C - Programacion

    22/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    MS *enor o igual queK *ayor que

    KS *ayor o igual queSS &gual que -Para las comparaciones

    !S

  • 8/16/2019 Lenguaje C - Programacion

    23/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    Operador *4plicaciónYS E%presión(YSe%presión:. Equivale a' e%presión(Se%presión(

    Y e%presión:9S i9S(. equivale a' iSi9(

    IS IS:. Equivale a' jSjI:S Sm, equivale a' \S\mUS PUn. Equivale a' pSpUn

    ?0;)0 =.

    )os Dperadores de asignación tiene menos procedencia que el resto de los operadores ytienen asociatividad de i$quierda a derecha.Ejemplo =.:Programa que calcula el valor de la e%presión X:YY(Linclude Mstdio.hKLinclude Mconio.hK

    main-  O  float %, y, $+  clrscr-+  printf-RTtP@DN@0*0 7E C0)C7)0 E) 60)D@ 4E )0 EC70C&D< X:YY(TnTnR+  printf-R&ntrodu$aca el valor de %'TnR+  scanf-RUfR, V%+  yS%I%+  $SyY%Y(+  printf-RIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIITnR+  printf-RIIEl valor de la e%presin es' U.:fIITnR, $+

      printf-RIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIITnR+  getch-+  return +  Q

    ,erara de OperadoresCategor>a del Operador Operador  (. Dperadores 7narios 9, YY, 99, !:.Dperadores 0ritmticos'

    :.( *ultiplicación,división y @esto

    entero:.: #uma y @esta

    I, , U

    Y,9

    =. Dperadores @elacionales M, MS, K, KS. Dperadores de &gualdad SS, !SF. Dperadores )ógicos VV -J )ógico, -

  • 8/16/2019 Lenguaje C - Programacion

    24/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    (. #e ejecuta primero el operador de más alta jerarqu!a:. Dperadores que tienen igual jerarqu!a se evalan de i$quierda a derecha=. si e%isten e%presiones encerradas entre parntesis, estas se evalan primero.. si e%isten parntesis anidados se evalan primero los parntesis más internos.

    *+PR*&ION*&

    -?omado de 20prenda 0

  • 8/16/2019 Lenguaje C - Programacion

    25/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    printf-RTtP@DN@0*0 7E C0)C7)0 E) C704@04D J E) C7;D 4E = P BUy @enta (U, estos descuentos son sobre el salario, y es sueldo neto es la diferencia entre elsalario y el total de las retenciones'Linclude Mstdio.hKLinclude Mconio.hKmain-  O  float sueldo, afp, isss, renta, sn+  char nombreZF[+  clrscr-+  printf-R&ntrodu$ca el

  • 8/16/2019 Lenguaje C - Programacion

    26/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    return +  Q

    *(emplo 3K

    4ise/e un programa que calcule el promedio y la suma de tres nmeros ingresados por elusuario'

    Linclude Mstdio.hKLinclude Mconio.hKmain-  O  float %, y, $, sum, prom+  clrscr-+  printf-REl Primer nkmero es'TnR+  scanf-RUfR, V%+

      printf-R0hora el segundo nkmero'TnR+  scanf-RUfR, Vy+  printf-REl 7ltimo numero es'TnR+  scanf-RUfR, V$+  sumS%YyY$+  promSsum=+  printf-RIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIITnR+  printf-RII)a suma es U.:f y el promedio es U.:fITnR, sum, prom+  printf-RIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIITnR+  getch-+  return +  Q

    *structuras &electi7as)os peque/os programas que hemos dise/ada hasta el momento, han sido del tipo secuencial,es decir, una sentencia se ejecuta despus de otra, hasta el final del programa.Pero en la vida diaria muchas veces debemos elegir entre un camino y otro para llegar anuestro destino. )o mismo pasa en programación, al reali$ar alguna actividad, nuestroprograma debe ser capa$ de elegir uno u otro camino, a seguir dependiendo del valor de algunacondición evaluada.Para ello C, dispone de tres tipos de = tipos de estructuras selectivas, la cuales son'

    • Estructura #electiva #imple•

    Estructura #electiva 4oble• Estructura #electiva *ltiple

    • E#?@7C?7@0 #E)EC?&60 #&*P)E>unciona de la siguiente manera' se evala una condición, de ser cierta efecta una acción, delo contrario, contina con la ejecución normal del programa.#u sinta%is es la siguiente'I':condición5 Acción;D tambin'

    26

  • 8/16/2019 Lenguaje C - Programacion

    27/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    I':Condición5  Acción;4onde'Condición' Es una e%presión lógica que es evaluada por el compilador 

     0cción' es la 0cción o 0cciones que reali$ará el programa de resultar cierta la condiciónunciona, de la siguiente manera si condición, al evaluarla resulta cierta, reali$a la acción +. delo contrario, es decir+ si al evaluar la condición resulta falsa, reali$a la acción .#e debe tener en cuenta la condición puede ser compuesta, es decir haciendo uso de losoperadores VV y - J lógico y

  • 8/16/2019 Lenguaje C - Programacion

    28/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    #e desea saber si un nmero es par o impar. 4ise/e un programa en el cual el usuario, ingreseel nmero y el programa muestre con un mensaje, si ste es par o no.Linclude Mstdio.hKLinclude Mconio.hK

    main-  Oint num+

      printf-R&ngrese el nkmero'TnR+  scanf-RUdR, Vnum+  if-numU:SS

      printf-RE# P0@TnTnR+  else

      printf-RE# &*P0@TnTnR+  getch-+  return +

      Q*(emplo 34ise/e un programa, que dada la nota de alumno, imprima en la pantalla un comentario sobreesa nota. El criterio para los comentarios es el siguiente'#i nota es mayor o igual a A 2E%celente3#i nota es mayor o igual a H 2*uy ;ueno3#i nota es mayor o igual a B 2;ueno3#i nota es mayor o igual a G 2@egular3#i nota es menor que G 2

  • 8/16/2019 Lenguaje C - Programacion

    29/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    Q

    Este ejemplo, muestra que C, permite hacer anidamientos, es decir, una selección dentro deotra, ya sea del lado del cierto, o del falso o de ambos.

    El lector, puede tratar de hacer sus propias conclusiones, además de buscar otras posiblessolucione para este mismo problema. Por ejemplo, ¿que pasar!a si iniciamos con la condicióndel G.". ¿u pasar!a si el usuario digita una neta negativa" ¿Cómo podr!as darle solución aeste problema". Como programadores, debemos hacernos muchas preguntas al momento dedise/ar nuestros programas, ya que estos

  • 8/16/2019 Lenguaje C - Programacion

    30/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    if-estaturaK(.F VV peso KS(=O  dosisS-.:FIestaturaY-.BFIpeso+  printf-R)a dosis de esta alumna debe ser de U.:f gramosTnTnR, dosis+

    Q  else

    O  dosisS-.=FIestaturaY-.GFIpeso+  printf-R)a dosis de esta alumna debe ser de U.:f gramosTnTnR, dosis+Q

      Q  getch-+  return +  Q

    • #E)ECC&< *)?&P)EComo su nombre lo indica, permite seleccionar entre varios caminos para llegar al final. En estecaso se pueden elegir un camino o acción a ejecutar de entre varios posibles que se debe deevaluar, llamada selector. #inta%is's#itc=:selector 5    case Etiqueta 0'

     0cción 0+  6reaQ;  case Etiqueta ;'

      0cción ;+  6reaQ;  case Etiqueta n'

     0cción n+  6reaQ;  de'ault)  E%cepción+  6reaQ;

    En donde'

    &elector) 6ariables, e%presiones simples de tipo ordinal, -enteros y caracteres 8int y char9*ti

  • 8/16/2019 Lenguaje C - Programacion

    31/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    Linclude Mconio.hKmain-  O  int n+

      clrscr-+  printf-REl

  • 8/16/2019 Lenguaje C - Programacion

    32/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    =. En un cine se e%hiben, pel!culas para mayores de edad, dise/e un programa que dada laedad, 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 decolores. #i el cliente saca una bolita color a$ul, tiene un descuento del :U, si la bolita es

    roja, se aplica un descuento del =U y si saca una bolita color blanca, no se aplicaningn descuento. 4ise/e un programa que a partir del importe de la compra y el color de la bolita, muestre lo que debe pagar dicho cliente.

    F. #e procesan las notas de F, alumnos, de las cuales se desea saber cual es el promediode esas F notas, y cual fue la nota mayor y menor, además de imprimir al final el nombrey la nota de cada alumno en forma de tabla.

    G. un estudiante desea saber cuál fue su promedio en matemática &, para ello dispone de lasiguiente información' tiene = e%ámenes, con una ponderación del :U cada uno y :laboratorios con una ponderación del =U cada uno. 4ise/e un programa que dadas lasnotas calcule el promedio del alumno y muestre en pantalla si el alumno esta reprobadoo no -para aprobar esta materia se requiere de una nota mayor o igual a G..

    B. En un estacionamiento, se cobra de la siguiente manera' los primeros ( minutos songratis, los siguientes = minutos tiene un valor de .= y la hora .G. dise/e unprograma que reciba tanto minutos como horas y muestre lo que debe cancelar elcliente. ?omando en cuenta que si es *artes y #ábado se hace un descuento del (:.FGUsobre el monto total.

    H. 4ise/e un programa que al introducir un d!gito del a A, muestre como se lee.A. 4ise/e un peque/a calculadora que, al digitar un código realice una operación

    espec!fica' si el código es (, la operación es la suma, si es :, @esta. =, multiplicación y división. #i el usuario a escrito otro código inválido, mostrar un mensaje de error.

    (.Construya un programa que dado el salario de un empleado, permita aplicarle unaumento de (U si el salario es inferior a F, si es mayor se le aumentará un HU.)uego debe aplicar una retención del .AGU en concepto de @enta a ambos casos.

    ((.#e desea calcular el sueldo de un trabajador, a partir de las horas trabajadas en lasemana y la clase a la que pertenece' ?rabajadores Clase 203, se les paga B por hora.?rabajadores clase 2;3, se paga F por hora. ?rabajadores clase 2C3, se les paga por hora y los de clase 243, =.F por hora.

    (:.7n comerciante se dedica a la venta de sillas nicamente. 6ende tres tipos de sillas' tipo 0, tipo ; y ?ipo C los precios son F., B. y (. respectivamente. Por cada cincosillas compradas del tipo 0, del tipo ; o del tipo C los clientes reciben un descuento de=U, FU y BU, las demás se cobran a precio normal. 4ise/e un programa que imprima enforma de factura, con el nombre, precio unitario, precio total, nombre de la tienda, etc loque debe cancelar cada cliente en concepto de la compra.

    4escubre donde está el error.El siguiente código, es de un programa que a partir de una nota determina si un alumno esta ono reprobado, y este puede presentar algunos errores de lógica, de sinta%is o de ejecución.¿Puedes descubrirlos y modificarlos"L&nclude Mstdio.hKLincluide Mconio.hKmain-  O

    32

  • 8/16/2019 Lenguaje C - Programacion

    33/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    float nota+  printf-24igite la nota'Tn3  scanf-2Uf3, nota+  if-notaKSG.

      printf-20probadoTnTn+  else  printf-@eprobadoTnTn+  getch-+  return +  Q

    Capitulo I “Ciclos”

    IntroducciónBB

    Es muy comn encontrar en los programas operaciones que se deben ejecutar un nmerorepetido de veces en per!odos más o menos espaciados. #i bien las instrucciones son lasmismas, los datos sobre los que operan var!an. 0 nuestro alrededor, encontramos problemasque presentan esas caracter!sticas, por ejemplo' el cálculo de la nota final de los estudiantes deProgramación &, se reali$ará tantas veces como alumnos hayan inscritos en dicha asignatura, elcálculo del salario de los empleados de una empresa, etc. En estos casos la solución que sedise/e para un solo grupo de datos se debe repetir tantas veces como sea necesario -deacuerdo al nmero de estudiantes y de empleados para los ejemplos anteriores.)os cálculos simples o la manipulación de peque/os conjuntos de datos se pueden reali$ar fácilmente a mano, pero las tareas grandes o repetitivas son reali$adas con mayor eficacia por 

    una computadora, ya que estas están especialmente preparadas para ello.Para repetir varias veces un proceso determinado haremos uso de los ciclos repetitivos, a loscuales se les conoce con el nombre de estructura repetitiva, estructura iterativa, la$o o bucle.-?omado de )os guiones de clase de &ntroducción a la &nformática. 7niversidad de El #alvador.

     0/o :FEn C, podemos encontrar tres tipos de ciclos'

    • Entrada 0segurada -5hile• Ciclo Controlado Por Contador -for• 1acer *ientras -do.. 5hile

    Este ultimo, no está lógicamente estructurado, por tanto no haremos mucho hincapi en l.

    Conceptos .eneralesuncionamiento de Un Ciclo7n ciclo, funciona de la siguiente manera' Evala una condición de resultar cierta, reali$a unaacción o bloque de acciones, luego vuelve a evaluar la condición y si nuevamente resulta cierta,reali$a la -s acción -es. Cuando la condición de cómo resultado falso, se sale del ciclo ycontina con la ejecución normal del programa.Acumulador)

    33

  • 8/16/2019 Lenguaje C - Programacion

    34/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    Es una variable, que , como su nombre lo indica se encarga de acumular valores. Esto sevuelve muy til, por ejemplo, cuando queremos encontrar la suma de los nmeros del al A, enel acumulador, vamos guardando los valores de dichas cifras. Puede ser tanto real comoentera. #u valor inicial, en la mayor!a de los casos es cero.

    Contador)Es una variable de tipo entero, que nos ayuda, en el programa a contabili$ar el nmero deejecuciones de una misma acción, de un grupo de alumnos etc. 7n acumulador tiene tresvalores distintos'

    • 6alor &nicial' es el valor con el cual iniciamos nuestro contador. Neneralmente es cero.Esta asignación puede hacerse cuando se declara la variable.

    • 6alor >inal' despus de la ejecución del ciclo, el valor del contador, será distinto a suvalor inicial, este puede ser mayo o menor que el mismo, todo depende si fue una cuentacreciente o decreciente.

    • 6alor de Cambio' Es el valor Constante! en el cual se irá incrementando nuestrocontador, este puede ser positivo o negativo+ es decir, si la cuanta se reali$a de manera

    ascendente o descendente.unciona de la siguiente manera' primero evala la condición, si da como resultado ciertareali$a la acción, luego vuelve a evaluar la condición, si su resultado es falso, se sale del ciclo ycontina con la ejecución del programa.1ay que tener mucho cuidado, cuando trabajamos con ciclos, ya que podemos caer en un cicloinfinito, es decir que nunca se sale de l. )o cual no es un error de sinta%is sino de lógica. Por locual en las acciones debemos siempre colocar algo que haga que se modifique el resultado dela condición, lo cual puede ser una bandera, un contador o un acumulador.

    *(emplo J324ise/e un Programa que imprima los primeros ( nmeros.Linclude Mstdio.hKLinclude Mconio.hKmain-  O  int iS(+ I4eclaramos nuestro contador con su 6alor &nicialI  5hile-iMS( I*ientras i sea menor o igual a ('I

      O

    34

  • 8/16/2019 Lenguaje C - Programacion

    35/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    printf-RUdTtR, i+I&mprimir el valor de iI  iYS(+I0umentar el contador en (I  Q

      getch-+

      return +  Q

    *(emplo J39#e desea conocer el promedio de los nmeros mayores que cero, en una serie de nmerosingresados por el usuario. 4e los cuales no se sabe la cantidad, haciendo uso de una bandera,dise/e un programa en el cual el usuario ingrese los nmeros que desee.Linclude Mstdio.hKLinclude Mconio.hKmain-  O

      int iS, sumS, banS(, n+  float prom+  5hile-banSS(

     O  printf-R&ngrese un nkmero por >avor'TnR+  scanf-RUdR, Vn+  if-nK

    O  iSiY(+  sumYSn+Q

      printf-R4esea &ngresar Dtro

  • 8/16/2019 Lenguaje C - Programacion

    36/65

  • 8/16/2019 Lenguaje C - Programacion

    37/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    main-  O  int i+  for-iS(+ iMS(+ iYY

      printf-RUdTtR, i+  getch-+  return +  Q

    *(emplo J3K4ise/e un programa en C, que calcule las compras totales, reali$adas por un grupo de : amasde casa. )uego con esa información obtenga la media.Linclude Mstdio.hKLinclude Mconio.hKmain-

      O  int i+ float compra, desvia, prom, varin$a, sumS+ for-iS(+ iMS(+ iYY  O

    printf-R&ngrese la cantidad que gast la ama de casa Ud'TnR, i+scanf-RUfR, Vcompra+5hile-compraM  O  printf-RE@@D@, la compra debe ser mayor que cero, vuelva a intentarlo'TnR+  scanf-RUfR, Vcompra+  QsumSsumYcompra+

      Q promSsum(:+ 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 asignarleun valor grande a nuestra variable de control y luego irla disminuyendo hasta un valor determinado.

    *(emplo J3En un cine, se tienen = diferentes clases de boletos. #e pide que dise/e un programa en elcual'

    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

    37

  • 8/16/2019 Lenguaje C - Programacion

    38/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

     0demás 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

  • 8/16/2019 Lenguaje C - Programacion

    39/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    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@, 6uelva a intentarloTnTnR+  brea\+

      Q

      Q  clrscr-+  if-sum=Msum: VV sum=Msum(

      printf-R)os ;oletos que se vendieron menos fueron los boletos numero 7

  • 8/16/2019 Lenguaje C - Programacion

    40/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    7oid main-O  int anio+  c=ar  respuesta+

      printf-RTnTnTn&ernando *u/o$)edesma. Practica =, ejercicio F.

    Cuestionario(. ¿qu es y cómo funciona un ciclo"

     WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW  WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 

    :. Cuál es la diferencia entre un contador y unacumulador'WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 

     WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW =. ¿cuál es la mejor manera de validar

    datos"'WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW  WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 

    . ¿cómo se evita un cicloinfinito"'WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 

     WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW F. ¿u diferencia e%iste entre un ciclo de entrada asegurada y el do...

    5hile"'WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 

    4escubre donde está el error.El siguiente código muestra la serie'(X:Y:X:Y=X:....nX:en el cual hay errores de lógica, de sinta%is o hasta de ejecución, puedes descubrirlos ycorregirlos"Linclude Mstdio.hKLinclude Mconio.hKmain-

    40

  • 8/16/2019 Lenguaje C - Programacion

    41/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    O  int n i, %, sumS+  printf-R&nrtrodu$ca el valor de n'TnR+  scanf-RUdR, Vn+

      5hile-nMO  printf-RError, vuelva a digitar el valor de n'TnR+  scanf-RUdR, n+Q

      for-iS(+ iMSn, iYY  %SiIi+

     sumYSn+ printf-REl valor de la suma es'UdTnTnR, sum

      getch-+  return +

      Q*(ercicios

    (. #e desea conocer la suma de los nmeros enteros, positivos menores que n, el cual esun dato dado por el usuario.

    :. *uestre un programa en c, que imprima en pantalla los nmeros desde un valor inicial,hasta un valor final, ingresados por el usuario, tanto en forma descendente comoascendente.

    =. 4ise/e un programa que imprima la serie de >ugonacci, as!' ( ( : = F H (=.... hasta unnmero n dado por el usuario.

    . Calcule el promedio de edades de un grupo de estudiantes, de los cuales no se conocela cantidad.

    F. 4ise/e un programa que obtenga, la calificación mayor y la calificación menor, de ungrupo de estudiantes, además 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 obtenidospor los partidos pol!ticos en dicha región. 4ise/e un programa en c, que lea las actasde las B provincias, muestre que partido ganó las elecciones y en caso de empate, loespecifique con un mensaje.

    B. en un supermercado, hay = departamentos -de ropa, comestibles y perfumer!a, en locuales se reali$an un descuento de FU, =.FU y HU respectivamente, por las comprastotales mayores de (.. dise/e un programa que dado el monto de la compra,realice los descuentos pertinentes por departamento, le indique al usuario a cuantoasciende 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 dehoras e%tras aun grupo de n empleados. #e sabe que una hora e%tra diurna, se paga eldoble que una hora normal. J una hora e%tra nocturna se paga el doble de una horanormal más el :FU. 0demás que todos los empleados tiene sueldos diferentes, muestreel nuevo sueldo de cada uno de ellos y lo que tendrá que pagar la empresa en conceptode horas e%tra.

    A. 7na compa/!a de telfonos, cobra .= por minuto la llamada nacional local, .G por la llamada de larga distancia nacional y .( la llamada de larga distancia internacional.

    41

  • 8/16/2019 Lenguaje C - Programacion

    42/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    4ise/e un programa que calcule las facturas mensuales de los clientes, sabiendo que, silas llamadas fueron reali$adas por la ma/ana tienen un doble valor, y si los ( primerosminutos de llamadas locales son gratis, en cualquier horario.

    Capitulo ) unciones en C)a modulari$ación, es una tcnica usada por los programadores para hacer sus códigos máscortos, ya que consiste en reducir un gran problema complejo, en peque/os problemitas mássencillos, concentrándose en la solución por separado, de cada uno de ellos.En C, se conocen como funciones a&uellos trozos de códigos utilizados para dividir un

     programa con el objetivo &ue, cada blo&ue realice una tarea determinada.En las funciones juegan un papel muy importe las variables, ya que como se ha dicho estaspueden ser locales o globales.aria6les .lo6ales) Estas se crean durante toda la ejecución del programa, y son globales, yaque pueden ser llamadas, le!das, modificadas, etc+ desde cualquier función. #e definen antes

    del main-.aria6les Locales) Estas, pueden ser utili$adas nicamente en la función que hayan sidodeclaradas.)a sinta%is de una función es la siguiente'Tipodedatos nom6redela'uncion:tipo % nom6re de argumentos5  acciones

    donde'• Tipodedatos) Es el tipo de dato que devolverá esa función, que puede ser real,

    entera, o tipo void-es decir que no devolverá ningn valor.• Nom6redela'uncion) Es el identificador que le damos a nuestra función, la cualdebe cumplir las reglas que definimos en un principio para los identificadores.

    • Tipo % nom6re de argumentos) son los parámetros que recibe la función. )osargumentos de una función no son más que variables locales que reciben un valor. Estevalor se lo enviamos al hacer la llamada a la función. Pueden e%istir funciones que noreciban argumentos.

    • Acciones) Constituye el conjunto de acciones, de sentencias que cumplirá la función,cuando sea ejecutada. Entre ellas están'

    (. 0signaciones:. )ecturas

    =. &mpresiones. Cálculos, etc

    7na función, termina con la llave de cerrar, pero antes de esta llave, debemos colocarle lainstrucción return! con la cual devolverá un valor espec!fico. Es necesario recalcar que si lafunción no devuelve ningn valor, es decir, es tipo void, no tiene que ir la sentencia return, yaque de lo contrario, nos dará un error.Pero, es válido que nos hagamos la siguiente pregunta'Cómo es

  • 8/16/2019 Lenguaje C - Programacion

    43/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

     0 menudo, utili$amos el adjetivo de 2#ubprogramas3, para referirnos a las funciones, as! que, ellector debe familiari$arse tambin con este trmino.)os subprogramas se comunican con el programa principal, que es el que contiene a lasfunciones, mediante parámetros, que estos pueden ser' Parámetros >ormales y Parámetros

     0ctuales.Cuando se da la comunicación los parámetros actuales son utili$ados en lugar de losparámetros formales.

    Paso de Par?metrosE%isten dos formas de pasar parámetros, las cuales son'

    A5 Paso por alor ?ambin conocido como parámetros valor. )os valores se proporcionan en el orden de cálculosde entrada.)os parámetros se tratan como variables locales y los valores iniciales se proporcionancopiando los valores de correspondientes argumentos.

    )os parámetros formales9)ocales de una función reciben como inicilaes los valores de losparámetros actuales y con ellos se ejecutan las acciones descritas en el subprograma.*(emplo)

     0SF+;SB+CSproc(-0, (H, ;I=Y+Proc(-, J, E%plicación'4onde, se encuentra c, se está llamando la función, denominada proc(, en la cual se estánenviando como parámetros el valor de 0, que es cinco+ el cual es recibido por la variable , enla definición de la función proc(+ en la misma función, J tendrá el valor de (H+ por que ese es elvalor del parámetro formal, mientras que , tendrá un valor inicial de :F, ya que ese es elresultado del tercer parámetro que resulta ser una e%presión aritmtica.

    unciones De'inidas Por *l Usuario en C7na función, como ya se ha dicho, es un bloque de código dentro del programa que se encargade reali$ar una tarea determinada. Por lo tanto un programa en c debe constar de una o másfunciones, y por su puesto no puede faltar la función principal main45.7n viejo adagio dice' #epara y vencerás, lo cual se acopla perfectamente cuando tenemos unprograma que es bastante grande+ podemos separarlos en peque/os subprogramas-funciones, y concentrarnos en la solución por separados de cada uno de ellos y as! resolver un gran problemas, en unos cuantos problemitas más peque/os.

    43

  • 8/16/2019 Lenguaje C - Programacion

    44/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    #i un programa, está constituido por más de una función, las llamadas a la misma, puedenreali$arse desde cualquier parte del programa, y la definición de ellas debe ser independienteunas de otras.

    Por lo tanto ser!a un grave error el tratar de definir una función dentro de otra.7na función puede ser llamada desde cualquier parte del programa no sólo una ve$, y cuandoes llamada, empie$a a ejecutar las acciones que están escritas en código.Para mayor comodidad del lector vamos a ver varios ejemplos, del uso de funciones y a medidaque vayamos avan$ando se volverán más complejos.El orden será el siguiente'

    (. >unciones que no devuelven ningn valor :. >unciones que devuelven un valor entero=. >unciones que devuelven un valor @eal. >unciones combinadasF. >unciones en las que usamos *en.

    23 unciones

  • 8/16/2019 Lenguaje C - Programacion

    45/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    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

    De'inición de la unción)a función 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 definición de la función y con ella leindicamos al compilador que está en presencia de una función. #u formato es el siguiente'Tipodedato nom6redela'unción :tipo % nom6re de los argumentos5

    :. Cuerpo de la función#e inicia con una llave 2O2, y en ella, se pueden reali$ar asignaciones, cálculos, impresiones, as!como la declaración de las variables locales. Puede estar constituidas por estructurassecuenciales, selectivas, iterativas, anidamientos, se pueden llamar otras funciones, etc+ finali$acon 2Q3. Puede devolver uno o ningn valor.

    *(emplo K394ise/e un Programa en C, que 4ado un nmero entero y mayor que cero, 4etermine si es o noun nmero Primo. Djo, los nmeros primos sólo son divisibles por el mismo y por la unidad -(.Linclude Mstdio.hKLinclude Mconio.hKvoid primo -int numero+main-  O  int numero, banS(+  clrscr-+  5hile-banSS(  O  printf-R&ntrodu$ca el nkmero por favor'TnR+  scanf-RUdR, Vnumero+  5hile-numeroM  O

      printf-RE@@D@, el valor del nkmero debe ser mayor que ceroTnR+  scanf-RUdR, Vnumero+

      Q

    45

  • 8/16/2019 Lenguaje C - Programacion

    46/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    primo-numero+

      printf-RDtro nkmero -siS( y

  • 8/16/2019 Lenguaje C - Programacion

    47/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    Para declarar un prototipo de una función se indicara el tipo de dato que regresará la función, elnombre de lafunción y entre parntesis la lista del tipo de los parámetros de acuerdo al orden que aparecenen la definición de la

    función. Por ejemplo'int longcad-int n+ )o anterior declara una función llamada longcad que regresa un valor entero yacepta otro valor entero como parámetro.-?omado de 2*anual de C3 de 1ctor ?ejada 6illela*(emplo K34ise/e un programa, que dado un nmero entero y mayor que cero, muestre su factorial. -Elfactorial de F es (:+ F%%=%:%(S(:Linclude Mstdio.hKLinclude Mconio.hKint factorial -int num+main-

      O  int num, banS(+  clrscr-+  5hile-banSS(  O  printf-R&ngrese el valor del nkmero por favor'TnR+  scanf-RUdR, Vnum+  5hile-numM

    O  printf-RE@@D@, el valor del nkmero debe ser mayor que cero'TnR+

      scanf-RUdR, Vnum+Q

      printf-REl valor del factorial es UdTnTnR, factorial -num+  printf-R4esea @eali$ar otro calculo"#iS( y

  • 8/16/2019 Lenguaje C - Programacion

    48/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    debe precederle el tipo de dato. En el lugar, donde llamamos la función, es que aparecerá elvalor que nos devuelva, como valor de retorno. En nuestro ejemplo, en una impresión. J almomento de definirla, no se nos debe olvidar, colocarle la sentencia return456 ya que, medianteesta declaratoria, está retornando el valor calculado.

    Pero, que sucede cuando se está trabajando, con valores bastante grandes, al utili$ar solamente el int, se producirá un error lógico+ ya que como valor de retorno podr!a ser un cero ouna cifra negativa. Por tanto debemos usar el tipo de dato 2long int3.

    *(emplo K3J4ise/e un programa, que dada una cifra entera y mayor que cero, sea elevada a una potenciaintroducida por el usuario, la cual. -Ejemplo' FX:S:F.Linclude Mstdio.hKLinclude Mconio.hKlong int potencia -int base, int e%ponente+main-

      O  int base, e%ponente+  clrscr-+  printf-R)a ;ase es'TnR+  scanf-RUdR, Vbase+  5hile -baseM

    O  printf-RE@@D@, el dato debe ser mayor que cero'TnR+

      scanf-RUdR, Vbase+Q

      printf-REl E%ponente es'TnR+  scanf-RUdR, Ve%ponente+  printf-RUd X Ud es UldTnTnR, base, e%ponente, potencia-base,e%ponente+  getch-+  return +  Q  long int potencia -int base, int e%ponente  O  long int sumS, i,%+  for-iS(+ iMe%ponente+ iYY

    O  %SbaseIbase+  sumSsumY%+

    Q  return -sum+  Q

    Este mtodo es un poco complejo y puede reali$arse de manera más fácil, haciendo uso de lasfunciones predefinidas en C, de las cuales hablaremos a continuación.

    3 unciones

  • 8/16/2019 Lenguaje C - Programacion

    49/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

     0ntes que nada, trataremos las funciones predefinidas en C. Ja que C, posee ciertas funcionesque nos ayudan hacer nuestros programas más fáciles y utili$ar menos código.

    El lenguaje c, cuenta con una serie de funciones de bibliotecas que reali$an operaciones ycálculos de uso frecuente.Para acceder a una función, se reali$a mediante el nombre seguido de los argumentos que leservirán a la función a reali$ar la tarea espec!fica.Nom6re:arg2! arg9!333argn5;

    Bunciones Matem?ticasPara acceder a ellas, se debe colocar la directiva Linclude Mmath.hK en el encabe$ado delprograma.

    unción :&inta4is5 Tipo de Dato Propósitoacos-d double 4evuelve el arco coseno de dasin-d double 4evuelve el arco seno de datan-d double 4evuelve el arco tangente de datan-d(, d: double 4evuelve el arco tangente de d(d:ceil-d double 4evuelve el valor redondeado por  

    e%ceso, al siguiente entero mayor cos-d double 4evuelve el coseno de d

    cosh-d double 4evuelve coseno hiperbólico de de%p-d double Eleva a la potencia dfabs-d double 4evuelve el valor absoluto de dfloor-d double 4evuelve el valor redondeado por  

    defecto al entero menor más cercanolog-d double 4evuelve el logaritmo natural de dlog(-d double 4evuelve el lo. -base( de dpo5-d(, d: double 4evuelve d( elevado a la potencia d:sin-d 4ouble 4evuelve el seno de dsinh-d double #eno hiperbólico de dsqrt-d double @a!$ cuadrada de d

    ?an-d double 4evuelve la tangente de dtanh-d double 4evuelve la tangente hiperbólica de d

    )as siguientes funciones se encuentran en las librer!as' stdid.h ó stdlib.h'unción :sinta4is5 Tipo Propósitoabs-i int 4evuelve el valor absoluto de iran- int 4evuelve un entero aleatoriosrand-u void &niciali$a el generador de nmeros aleatoriosdiv-d(d: 4ouble 4evuelve el cociente y el resto de la división

    49

  • 8/16/2019 Lenguaje C - Programacion

    50/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    intatuf-s 4ouble Convierte la cadena a una cantidad de doble

    precisiónatoi-s int Convierte cadenas a un entero

    atol-s long Convierte cadenas a un entero largo

    1ay muchas otras funciones, pero para ahondar más, debes saber cuál es la versión de C,instalada en tu máquina y as! verificar cuáles funcionan correctamente+ pero por lo general,estas funciones son muy estándar para la mayor!a de compiladores.

     0 continuación, pasaremos a desarrollar una serie de ejercicios, en los cuales haremos uso dela funciones predefinidas en c, as! como la modulari$ación, es decir+ el uso de funcionesdefinidas por el usuario.

    *(emplo K3K#e desea conocer el resultado de las siguientes operaciones'

    (.   √aYb:. a9b=. 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

  • 8/16/2019 Lenguaje C - Programacion

    51/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    return -y+  Q  double valorWabsoluto-float a, float b  O

      float %+  double y+  %Sa9b+  ySfabs-%+  return -y+  Q  double e%ponente -float a, float b  O  double %+  %Spo5-a,b+  return -%+

      Q#upongo que, este ejemplo no requiere mayor e%plicación. Pero me gustar!a que el lector,comprenda la gran cantidad de usos que podemos darle, a aquellas funciones matemáticas,

     junto con las funciones definidas por el usuario, esta es una gran ayuda, ya que ¿se imaginan lacantidad de código que deber!amos colocar, para determinar cosas tan elementales como elvalor absoluto"+ con estas funciones matemáticas, C, nos ahorra mucho trabajo y código.

    J3 unciones Com6inadas 0 continuación veremos un ejemplo de un programa en el cual utili$amos dos funciones dediferente tipo de dato.*(emplo K3KEl valor del nmero e se puede apro%imar sumando n trminos de la serie' e S ( Y (( Y (: Y(= Y ... Escribir un programa que solicite el nmero de trminos de la serie a sumar e informe

    del valor apro%imado de e. ?ngase en cuenta que el termino i de la anterior serie se obtienedividiendo por -i9(. -)a e%clamación es el factorial.Linclude Mstdio.hKLinclude Mconio.hKLinclude Mstdlib.hK

    7oid calculodatos-int numero+dou6le factorial-int dato+

    51

  • 8/16/2019 Lenguaje C - Programacion

    52/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    7oid main-7oidO  int numero+  c=ar  respuesta+

      printf-RTnTnTn&

  • 8/16/2019 Lenguaje C - Programacion

    53/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    El ejemplo anterior ha sido tomado de 2Practicas de C3, de >ernando *u/o$ )edesma.ledesmafernandomsn.com J as! como este ejemplo, podemos reali$ar muchas otras combinaciones de funciones, segnnecesitemos y lo solicite nuestro programa.

      K3 unciones en las

  • 8/16/2019 Lenguaje C - Programacion

    54/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    brea\+  case =' tangente -angulo+

      brea\+ Q

      printf-R1ay mas datos" -siS( y noSTnR+  scanf-RUdR,Vban+  Q  getch-+  return +

      Q  void seno -float angulo  O

     float y+ ySsin -angulo+ printf-REl seno de Uf es UfTnTnR, angulo, y+

      Q  void coseno -float angulo  O

     float y+ yScos-angulo+ printf-REl coseno de Uf es UfTnTnR, angulo, y+

      Q  void tangente -float angulo  O

      float y+  yStan-angulo+  printf-R)a 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'WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 

     WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW  WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW  WWWWWW 

    :. ¿Cuál es la diferencia entre las funciones predefinidas en c y las funciones definidas porel usuario"

     WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW  WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW  WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 

    =. ¿En que consiste el paso deparámetros"'WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 

     WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW  WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 

    54

  • 8/16/2019 Lenguaje C - Programacion

    55/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    . ¿Cuál es la diferencia entre parámetros formales yactuales"'WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 

     WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW  WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 

     WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW F. En que se diferencias las variables locales a lasglobales'WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 

     WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW  WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW  WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW 

    *(ercicios(. @ealice una peque/a calculadora, utili$ando funciones:. 4ise/e un programa que permita calcular la serie Y (= Y Y ... (n.=. 4ise/e 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 nmeros. 0s! como la suma de dichos valores

    F. #e desea conocer la permutación de dos nmeros distintos. 7sando funciones. 4ise/eun programa que resuelva dicho problema. -

  • 8/16/2019 Lenguaje C - Programacion

    56/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    7n arra% es un identificador que referencia un conjunto de datos del mismo tipo. &maginaun tipo de dato int+ podremos crear un conjunto de datos de ese tipo y utili$ar uno u otro consolo cambiar el !ndice que lo referencia. El !ndice será un valor entero y positivo. En ^C^ los

    arrays comien$an por la posición S.ectores7n 7ector  es un array   unidimensional , es decir, solo usa un !ndice para referenciar a

    cada uno de los elementos.

    #u declaración será' tipo nom6re tama@oE;

    El tipo puede ser cualquiera de los ya conocidos y el tama/o indica el nmero de elementos delvector -se debe indicar entre corchetes E. En el ejemplo puedes observar que la variable i esutili$ada como !ndice, el primer 'or  sirve para rellenar el vector y el segundo para visuali$arlo.Como ves, las posiciones van de S a  -total ( elementos.

    -?omado de 2&ntroducción al lenguaje de programación de CCYY3. #ergio Pacho*(emplo)int numZ([+ I0rreglo de tipo entero compuesto de ( posicionesI

    char nomZH[+ I?e%to de H caracteresI

    float %Z(:[+ Iarreglo de (: elementos punto flotantes I

    Constante &im6ólica1ace más sencillo o más fácil modificar un programa que utili$a arreglos. Ja que todas lasreferencias al tama/o del arreglo pueden ser alteradas, cambiando el valor de la constantesimbólica.

    *(emplo 324ise/e un programa que lea un vector de ( posiciones, luego determine si la quinta posiciónes positiva, si la primera posición es negativa y si la ultima posición es cero.Linclude Mstdio.hKLinclude Mconio.hKLdefine < (main-  O  float %Z

  • 8/16/2019 Lenguaje C - Programacion

    57/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    Q  if-%Z[M  O

     printf-R)a ( Posicin es

  • 8/16/2019 Lenguaje C - Programacion

    58/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    7n vector, solo puede ser argumento formal, es decir+ por el momento, no podemos enviarlocomo valor de retorno., digo por el momento por que cuando hablemos de punteros, veremosque si se pueden enviar.J dicho proceso se reali$a de la siguiente manera'

    •Declaración o Prototipo)  ?ipoWdeWdato nombre de la funcion -tipoWdeWdatoZ[+

    • Llamado de la unción 

  • 8/16/2019 Lenguaje C - Programacion

    59/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    void mayor -int numeros Z

  • 8/16/2019 Lenguaje C - Programacion

    60/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    int matri$Z>[ZC[, i,j, vector Z>[SO,,,,,Q+  for-iS+ iM>+ iYY

     for-jS+ jMC+ jYY  O

    printf-R&ngrese el elemento >SUd y ColumnaSUd de la matri$'TnR, i,j+scanf-RUdR, Vmatri$Zi[Zj[+vectorZi[SvectorZi[Ymatri$Zi[Zj[+

      Q  printf-R)a *atri$ generada es'TnTnR+  for-iS+ iM>+ iYY  O

     for-jS+ jMC+ jYY  O

    printf-RIUdIR, matri$Zi[Zj[+  Q

     printf-RTnR+  Q  printf-RJ el vector suma de las filas es'TnTnR+  for-iS+ iM>+ iYY

     printf-RUdTtR, vectorZi[+  getch-+  return +  Q

    Creo que no hay mucho por e%plicar, el uso de una matri$ en C, es bastante parecido al de unvector, pero con las diferencias que en un vector tenemos nicamente una dimensión y en lasmatrices tenemos dos.

     0 continuación desarrollaremos un ejemplo, el cual es bastante significativo para mi, ya que fuemi primer proyecto, cuando curs la *ateria de Programación & en la 7niversidad, espero queles guste'

    *(emplo 3JEscriba un programa que visualice un cuadro mágico de orden impar

  • 8/16/2019 Lenguaje C - Programacion

    61/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    7n mtodo de generación consiste en situar en el centro de la primera fila, el nmero siguienteen la casilla situada por encima y a la derecha, y as! sucesivamente ... el cuadro es c!clico, lal!nea encima de la primera, es de hecho, la ltima y la columna a la derecha de la ultima es laprimera. En caso de que el nmero generado caiga en una casilla ocupada, se elige la casilla

    situada de bajo del nmero que acaba de ser situado.-7n poco complicado de entender... ¿verdad"... no te preocupes, a mi me costó un poco detiempo entenderlo, para darle soluciónLinclude Mstdio.hKLinclude Mconio.hKLdefine < ((Ldefine * ((int comprueba -int Z

  • 8/16/2019 Lenguaje C - Programacion

    62/65

  • 8/16/2019 Lenguaje C - Programacion

    63/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    Q  if-sumSconsmagic

    magicS+  if-magicSS

      consmagicS+  return -consmagic+  Q  void impresion -int cuadradoZ

  • 8/16/2019 Lenguaje C - Programacion

    64/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    *(ercicios(. En una escuela se tiene el listado de = alumnos con sus respectivas notos, dise/e un

    programa que muestre las notas de los alumnos que tuvieron una nota mayor que elpromedio.

    :. 4ise/e un programa que dado un vector de magnitud , busque y muestre la posiciónen la que se encuentra un valor IC, e indique la diferencia matemática entre ambos resultados.

    H. En una tiemda, hay H departamentos y se tiene el registro de las ventas del a/o pasadode cada departamento por mes. #e desea conocer' el departamento que tuvo mayoresventas a lo largo de a/o. El departamento que tuvo menores ventas en el a/o. El mes enque se vendió más en el departamento nmero = y los meses y el departamento quesuperó las ventas promedios as! como el total de lo vendido a lo largo de a/o.

    A. #e tienen dos *atrices de tama/o %, se pide escriba un programa en el cual,.*ediante un men, se puedan sumar, multiplicar o dividir las matrices.

    (. El departamento de polic!a de la ciudad de #an #alvador ha acumulado informaciónreferente a las infracciones de los l!mites de velocidad durante un determinado periodo detiempo. El departamento ha dividido la ciudad en cuatro cuadrantes y desea reali$ar unaestad!stica de las infracciones a los l!mites de velocidad en cada uno de ellos. Para cadainfracción se ha preparado una tarjeta que contiene la siguiente información'

    numero de registro del veh!culo+ cuadrante en el que se produjo la infracción limite de velocidad en milla por hora

     4ise/e un programa para producir : informes+ el (o. ue contiene una lista de la multa develocidad recolectadas, donde la multa se calcula como la suma del costo de la corte-:, mas (,:F por cada mph que e%ceda la velocidad limite. Prepare una tabla conlos siguientes resultados'

    &@0CC&D

  • 8/16/2019 Lenguaje C - Programacion

    65/65

      Manual de ProgramaciónManual de Programación Lenguaje C Lenguaje C  

    Este informe debe ser seguido de un segundo en el cual se proporcione un análisis de lasinfracciones por cuadrante. Para cada uno de los cuadrantes mencionados, debe darse elnumero de infracciones y la multa promedio.

    Dedicatoria inalEspero que estas te sean de mucha utilidad, para esta etapa de tu vida como programador...#i tienes alguna duda, comentario o sugerencia, puedes hacerla a mi correo'percygon$alesahotmail.com

    “os sueños no son para los soñadores, sino para los &ue trabajan por (acerlos realidad”  0nimo J no te desalientes, sigue siempre adelante

    mailto:[email protected]:[email protected]