curso completo de c para recien iniciados

Upload: daniel-orellana

Post on 06-Jul-2018

227 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    1/59

    Curso completo de c para recien iniciados+Compilador

    Curso completo de c para recien iniciados

    primero un compilador http://downloads.sourceforge.net/project/dev-cpp/Binaries/Dev-C%2B%2B%2!.".".2/devcpp-!.".".2#setup.e$euse#mirror&ufpr

    '()*,( C

    (l lenguaje C es uno de los ms rpidos potentes 0ue ha ho en d1a. ,lgunosdicen 0ue est desfasado 0ue el futuro es ava. )o se si tendr futuro pero

    est claro 0ue presente si tiene. )o ha ms 0ue decir 0ue el sistema operativo'inu$ est desarrollado en C en su prctica totalidad. ,s1 0ue creo 0ue no slono perdemos nada aprendiendolo sino 0ue ganamos mucho. 3ara empe4ar nosservir como 5ase para aprender C++ e introducirnos en el mundo de laprogramacin 6indows. 7i optamos por 'inu$ e$iste una 5i5lioteca llamada gt89o li5rer1a como pre;eras< 0ue permite desarrollar aplicaciones estilo windowscon C.

    )o de5emos confundir C con C++ 0ue no son lo mismo. 7e podr1a decir 0ueC++ es una e$tensin de C. 3ara empe4ar en C++ conviene tener una slida5ase de C.

    ($isten otros lenguajes como =isual Basic 0ue son mu sencillos de aprender de utili4ar. )os dan casi todo hecho. 3ero cuando 0ueremos hacer algocomplicado o 0ue sea rpido de5emos recurrir a otros lenguajes 9c++delphi...

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    2/59

    lenguajes como el C. )os permiten escri5ir un programa de manera 0ue seafcil entenderlo por una persona 9el cdigo fuente

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    3/59

    Iinclude Jstdio.hK

    int main9< L

    printf9Hola mundoMn

    return

    N

    )ota: Ha mucha gente 0ue programa en 6indows 0ue se 0ueja de 0uecuando ejecuta el programa no puede ver el resultado. 3ara evitarlo se puedeaOadir antes de return la siguiente l1nea:

    sstem93,7(

    7i esto no funciona prue5a a aOadir getch9

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    4/59

    L

    7on las llaves 0ue indican el comien4o de una funcin en este caso la funcinmain.

    /S ,0u1 va el cuerpo del programa S/

    (sto es un comentario no se ejecuta. 7irve para descri5ir el programa.Conviene acostum5rarse a comentar los programas. n comentario puedeocupar ms de una l1nea. 3or ejemplo el comentario:

    /S (ste es un comentario

    0ue ocupa dos ;las S/

    es perfectamente vlido.

    printf9 Hola mundoMn

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    5/59

    3rimero de5emos crear el cdigo fuente del programa. 3ara nuestro primerprograma el cdigo fuente es el del listado anterior. ,rranca el programa creaun nuevo ;chero o proecto elige la opcion Console ,pplication llmalo porejemplo primero.c. copia el cdigo anterior.

    ,hora tenemos 0ue compilar ejecutar el programa 9T"7

    'os comentarios se pueden poner casi en cual0uier parte. ($cepto en medio deuna instruccin. 3or ejemplo lo siguiente no es vlido:

    pri/S (sto es un comentario S/ntf9 Hola mundo

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    6/59

    7i lo compilamos posi5lemente o5tendremos un error 0ue nos indicar 0ue nohemos de;nido la funcin R3rintfR. (sto es por0ue no hemos inclu1do la dichosadirectiva RIinclude Jstdio.hKR. 9(n algunos compiladores no es necesarioincluir esta directiva pero es una 5uena costum5re hacerlo

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    7/59

    N

    5tendremos:

    Cadena7egunda

    (ste ejemplo nos muestra cmo funciona printf. 3ara escri5ir en la pantalla seusa un cursor 0ue no vemos. Cuando escri5imos algo el cursor va al ;nal delte$to. Cuando el te$to llega al ;nal de la ;la lo siguiente 0ue pongamos ir a la;la siguiente. 7i lo 0ue 0ueremos es sacar cada una en una l1nea de5eremosusar Mn. (s el indicador de retorno de carro. 'o 0ue hace es saltar el cursor deescritura a la l1nea siguiente:

    Iinclude Jstdio.hK

    int main9<

    L

    printf9 CadenaMn

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    8/59

    (sto es e$traOo

    7i para ello hacemos:

    printf9 (sto es e$traOo

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    9/59

    int main9<

    L

    goto$9 2 F

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    10/59

    return

    N

    (ste mAtodo slo vale para compiladores 0ue incluan el ;chero stdio.h.

    (jercicio F: Busca los errores en el programa.

    Iinclude Jstdio.hK

    int main9<L

    Clr7cr9

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    11/59

    Iinclude Jstdio.hK

    Iinclude Jconio.hK

    int main9<

    L

    clrscr9

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    12/59

    int main9<

    L

    clrscr9

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    13/59

    poner signos de admiracin ni de interrogacin... (l nom5re de una varia5lepuede contener n@meros pero su primer carcter no puede serlo.

    (jemplos de nom5res vlidos:

    camiones

    numero

    5u\er

    aF

     jFhola2"

    num#alumnos

    (jemplos de nom5res no vlidos:

    Fa5c

    nom5re

    num/alumnos

     Gampoco valen como nom5res de varia5le las pala5ras reservadas 0ue usa elcompilador. 3or ejemplo: for main do while.

    3or @ltimo es interesante seOalar 0ue el C distingue entre ma@sculas min@sculas. 3or lo tanto:

    )om5re

    nom5re

    )EB?(

    ser1an tres varia5les distintas.

    (' G>3 int

    (n una varia5le de este tipo se almacenan n@meros enteros 9sin decimales

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    14/59

    compilador 0ue 0ueremos crear una varia5le ha 0ue indicarle de 0uA tipo.3or ejemplo:

    int numero

    (sto hace 0ue declaremos una varia5le llamada numero 0ue va a contener un

    n@mero entero.

    P3ero dnde se declaran las varia5les

     Genemos dos posi5ilidades una es declararla como glo5al otra como local.3or ahora vamos a decir 0ue glo5al es a0uella varia5le 0ue se declara fuera dela funcin main local la 0ue se declara dentro:

    =aria5le *lo5al =aria5le 'ocal

    Iinclude Jstdio.hK

    int $

    int main9<

    L

    N

    Iinclude Jstdio.hK

    int main9<

    L

    int $

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    15/59

    N

    'a diferencia prctica es 0ue las varia5les glo5ales se pueden usar en cual0uierprocedimiento. 'as varia5les locales slo pueden usarse en el procedimiento enel 0ue se declaran. Como por ahora slo tenemos el procedimiento 9o funcino rutina o su5rutina como pre;eras< main esto no de5e preocuparnos muchopor ahora. Cuando estudiemos cmo hacer un programa con ms funcionesaparte de main volveremos so5re el tema. 7in em5argo de5es sa5er 0ue es5uena costum5re usar varia5les locales 0ue glo5ales. Ua veremos por 0uA.

    3odemos declarar ms de una varia5le en una sola l1nea:

    int $

    Eostrar varia5les por pantalla

    =amos a ir u poco ms all con la funcin printf. 7upongamos 0ue 0ueremos

    mostrar el contenido de la varia5le $

    por pantalla:

    printf9 %i $

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    16/59

     Gam5iAn podemos me4clar te$to con enteros:

    printf9 (l valor de $ es %i ^0ue 5ien_Mn $

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    17/59

    Cua salida ser:

    (l valor inicial de $ es F

    ,hora el valor es `

    >mportante_ 7i imprimimos una varia5le a la 0ue no hemos dado ning@n valorno o5tendremos ning@n error al compilar pero la varia5le tendr un valorcual0uiera. 3rue5a el ejemplo anterior 0uitando

    int $ & F

    3uede 0ue te imprima el valor F o puede 0ue no.

    (l tipo Char

    'as varia5les de tipo char sirven para almacenar caracteres. 'os caracteres sealmacenan en realidad como n@meros del al 2``. 'os F2[ primeros 9 a F2]<

    son el ,7C>> estndar. (l resto es el ,7C>> e$tendido depende del idioma delordenador. Consulta la ta5la ,7C>> en el ane$o.

    3ara declarar una varia5le de tipo char hacemos:

    char letra

    (n una varia5le char slo podemos almacenar solo una letra no podemosalmacenar ni frases ni pala5ras. (so lo veremos ms adelante 9stringscadenas> de la letra R,R es el Y`.

    3ara imprimir un char usamos el s1m5olo %c 9c de character&caracter eninglAs

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    18/59

     Gam5iAn podemos imprimir el valor ,7C>> de la varia5le usando %i en ve4 de%c:

    letra & R,R

    printf9 (l n@mero ,7C>> de la letra %c es: %i. letra letra > de la letra , es Y`.

    Como vemos la @nica diferencia para o5tener uno u otro es el modi;cador 9%c %i< 0ue usemos.

    'as varia5les tipo char se pueden usar 9 de hecho se usan mucho< paraalmacenar enteros. 7i necesitamos un n@mero pe0ueOo 9entre -F2] F2]<podemos usar una varia5le char 9[5its< en ve4 de una int 9FY5its

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    19/59

    unsigned char varia5le

    (sta varia5le en ve4 de tener un rango de -F2[ a F2[ pasa a tener un rango de a 2``.

    (l tipo Tloat

    (n este tipo de varia5le podemos almacenar n@meros decimales no sloenteros como en los anteriores. (l rango de posi5les valores es del W!(-W[ alW!(W[.

    Declaracin de una varia5le de tipo oat:

    oat numero

    3ara imprimir valores tipo oat samos %f.

    oat num&!Y.[

    printf9 (l valor de num es : %f num

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    20/59

    dou5le numero

    3ara imprimir se usan los mismos modi;cadores 0ue en oat.

    Cmo calcular el m$imo valor 0ue admite un tipo de datos

    'o primero 0ue tenemos 0ue conocer es el tamaOo en 5tes de ese tipo dedato. =amos a ver un ejemplo con el tipo >)G. Hagamos el siguiente programa:

    Iinclude Jstdio.hK

    int main9<

    L

    int numF

    printf9 (l tipo int ocupa %i 5tesMn si4eof9int<

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    21/59

    !. Dividimos entre 2.

    verow: QuA pasa cuando nos saltamos el rango

    (l overow es lo 0ue se produce cuando intentamos almacenar en una varia5leun n@mero maor del m$imo permitido. (l comportamiento es distinto para

    varia5lesde n@meros enteros para varia5les de n@meros en coma otante.

    Con n@meros enteros

    (n mi ordenador usando D*33 5ajo Dos el tamaOo del tipo int es de!5tes9!S[&W25its

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    22/59

    Con estos n@meros tam5iAn e$iste otro error 0ue es el underow. (ste error seproduce cuando almacenamos un n@mero demasiado pe0ueOo 9W!(-W[ enoat

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    23/59

    Iinclude Jstdio.hK

    int main9<

    L

    int n@mero

    n@mero & 2

    return

    N

    7olucin: 'os nom5res de varia5les no pueden llevar acentos luego al compilarn@mero dar error.

    Iinclude Jstdio.hK

    int main9<

    L

    int numero

    numero & 2

    printf9 (l valor es %i )umero

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    24/59

    7olucin: Talta la coma despuAs de (l valor es %i. ,dems la segunda ve4numero est escrito con ma@sculas.

    Constantes con nom5re

    'as constantes son a0uellos datos 0ue no pueden cam5iar a lo largo de laejecucin de un programa.

    Iinclude Jstdio.hK

    int main9<

    L

    int radio perimetro

    radio & 2

    perimetro & 2 S W.F!FY S radio

    printf9 (l per1metro es: %i perimetro

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    25/59

    esto usamos las constantes con nom5re. ,l de;nir una constante con nom5reestamos dando un nom5re al valor a W.F!FY le llamamos 3>.

    (stas constantes se de;nen de la manera siguiente:

    Ide;ne nom5re#de#la#constante valor#de#la#constante

    (jemplo:

    Iinclude Jstdio.hK

    Ide;ne 3> W.F!FY

    int main9<

    L

    int radio perimetro

    radio & 2

    perimetro & 2 S 3> S radio

    printf9 (l per1metro es: %i perimetro lo sustituirpor W.F!FY.

    , una constante no se le puede dar un valor mientras se ejecuta no se puedehacer 3> & 2. 7lo se le puede dar un valor con Ide;ne slo una ve4.

     Gampoco podemos usar el scanf para dar valores a una constante:

    Ide;ne C)7G,)G( F!

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    26/59

    int main9<

    L

    ...

    scanf9 %i C)7G,)G(

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    27/59

    PQuien entiende lo 0ue 0uiere decir este programa (s dif1cil si no imposi5le.Hagmoslo de otra forma.

    Iinclude Jstdio.hK

    Ide;ne C,,7 !

    Ide;ne )>D,D(7#3?#C,, 2`

    Ide;ne 3?(C>#3?#)>D,D F

    Ide;ne >E3(7G7 F.FY

    int main9<

    L

    int precio

    precio & 9 C,,7 S )>D,D(7#3?#C,, S 3?(C>#3?#)>D,D < S9 >E3(7G7

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    28/59

    Ide;ne )>D,D(7#3?#C,, 2`

    Ide;ne 3?(C>#3?#)>D,D F

    Ide;ne 3?(C>#3?#C,, )>D,D(7#3?#C,, S 3?(C>#3?#)>D,D

    Ide;ne >E3(7G7 F.FY

    int main9<

    L

    int precio

    precio & 9 C,,7 S 3?(C>#3?#C,, < S 9 >E3(7G7

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    29/59

    o

    a & 5 /S 'e damos el valor de una varia5le S/

    3odemos dar valores a varias varia5les a la ve4:

    a & 5 & c & F /S Damos a las varia5les a5c el valor F S/

     Gam5iAn podemos asignar a varias varia5les el valor de otra de un slo golpe:

    a & 5 & c & d /S a5c toman el valor de d S/

    peradores aritmAticos

    'os operadores aritmAticos son a0uellos 0ue sirven para reali4ar operacionestales como suma resta divisin multiplicacin.

    7i 0uieres sa5er cmo usar funciones matemticas ms complejas9e$ponentes ra1ces trigonomAtricas< vete al cap1tulo correspondiente.

    perador 9+< : 7uma

    (ste operador permite sumar varia5les:

    Iinclude Jstdio.hK

    int main9<

    L

    int a & 2

    int 5 & W

    int c

    c & a + 5

    printf 9 ?esultado & %iMn c

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    30/59

    3or supuesto se pueden sumar varias varia5les o varia5les ms constantes:

    Iinclude Jstdio.hK

    int main9<

    L

    int a & 2

    int 5 & W

    int c & F

    int d

    d & a + 5 + c + !

    printf 9 ?esultado & %iMn c

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    31/59

    & `

    $ +& 2

    printf9 $ & %iMn $

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    32/59

    7e puede poner antes o despuAs de la varia5le.

    perador 9-< : ?esta/)egativo

    (ste operador tiene dos usos uno es la resta 0ue funciona como el operadorsuma el otro es cam5iar de signo.

    ?esta:

    $ & $ - `

    3ara la operacin resta se aplica todo lo dicho para la suma. 7e puede usartam5iAn como: $ -& `.

    3ero tam5iAn tiene el uso de cam5iar de signo. 3oniendolo delante de unavaria5le o constante e0uivale a multiplicarla por -F.

    Iinclude Jstdio.hK

    int main9<

    L

    int a 5

    a & F

    5 & -a

    printf9 a & %i 5 & %iMn a 5

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    33/59

    (ste operador sirve para multiplicar funciona de manera parecida a losanteriores.

     Gam5iAn sirve para de;nir utili4ar punteros pero eso lo veremos ms tarde.

    perador 9/< : Divisin

    (ste funciona tam5iAn como los anteriores pero ha 0ue tener cuidado. 7idividimos dos n@mero en coma otante 9tipo oat< tenemos las divisin con suscorrespondientes decimales. 3ero si dividimos dos enteros o5tenemos unn@mero entero. (s decir 0ue si dividimos !/W tenemos como resultado F. (lredondeo se hace por truncamiento simplemente se eliminan los decimales se deja el entero.

    7i dividimos dos enteros el resultado es un n@mero entero aun0ue luego losa0uemos por pantalla usando %f o %d no o5tendremos la parte decimal.

    Cuando dividimos dos enteros si 0ueremos sa5er cual es el resto 9o mdulo

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    34/59

    peradores de comparacin

    'os operadores de condicin se utili4an para compro5ar las condiciones de lassentencias de control de ujo 9las estudiaremos en el cap1tulo sentencias

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    35/59

    peradores lgicos

    (stos son los 0ue nos permiten unir varias comparaciones: FK` Y&&Y. 'osoperadores lgicos son: ,)D 9 ? 9

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    36/59

     Ua hemos visto 0ue un 5te son ocho 5its. 3ues 5ien con los operadores de 5itspodemos manipular las varia5les por dentro. 'os diferentes operadores de 5itsson:

    perador Descripcin

    ? 9<

    ,)D 9U<

    b ? 9 e$clusivo<

    Complemento a uno o negacin

    KK Despla4amiento a la derecha

    JJ Despla4amiento a la i40uierda

    perador 9?

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    37/59

    perador 9,)D

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    38/59

    printf9 (l resultado de la operacin F`2 es: %iMn F`2

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    39/59

    )G,: n despla4amiento a la i40uierda e0uivale a dividir por dos. (sto es muinteresante por0ue el despla4amiento es ms rpido 0ue la divisin. 7i0ueremos optimi4ar un programa esta es una 5uena idea. 7lo sirve paradividir entre dos. 7i hacemos dos despla4amientos ser1a dividir por dos dosveces no por tres.

    perador JJ 9Despla4amiento a la i40uierda

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    40/59

    tros operadores

    ($isten adems de los 0ue hemos visto otros operadores. 7in em5argo averemos en sucesivos cap1tulos lo 0ue signi;ca cada uno.

    rden de evaluacin de peradores

    De5emos tener cuidado al usar operadores pues a veces podemos tenerresultados no esperados si no tenemos en cuenta su orden de evaluacin.=amos a ver la lista de precedencias cuanto ms arri5a se eval@a antes:

    3recedencia

    9< -K .

    _ ++ -- 9molde< S si4eof 9(l S es el de puntero<

    S / % 9(l S de a0u1 es el de multiplicacin<

    + -

    JJ KK

    J J& K K&

    && _&

    b

    :

    & +& -& S& /&

    3or ejemplo imaginemos 0ue tenemos la siguiente operacin:

    F S 2 + `

    7i vamos a la ta5la de precedencias vemos 0ue el S tiene un orden superior al+ por lo tanto primero se hace el producto FS2&2 luego la suma2+`&2`. =eamos otra:

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    41/59

    F S 9 2 + ` <

    ,hora con el parAntesis cam5ia el orden de evaluacin. (l 0ue tiene maorprecedencia ahora es el parAntesis se ejecuta primero. Como dentro delparAntesis slo ha una suma se eval@a sin ms 2+`&]. Ua solo 0ueda lamultiplicacin FS]&]. tro caso:

    F S 9 ` S 2 +W <

    Como antes el 0ue maor precedencia tiene es el parAntesis se eval@aprimero. Dentro del parAntesis tenemos producto suma. Como sa5emos a seeval@a primero el producto `S2&F. 7eguimos en el parAntesis nos 0ueda lasuma F+W&FW. Hemos aca5ado con el parAntesis ahora al resto de lae$presin. Cogemos la multiplicacin 0ue 0ueda: FSFW&FW.

    tro detalle 0ue de5emos cuidar son los operadores ++ --. (stos tienenmaor precedencia 0ue las dems operaciones aritmAticas 9+ - S / %

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    42/59

    (ste ejemplo en unos compiladores dar a & Y 5 & ` en otros a & Y 5 & Y.3or favor si podeis escri5idme diciendo 0uA valores os salen a vosotros 0uAcompilador usais.

    3ara asegurarse lo mejor ser1a separar la l1nea donde se usa el ++ el &:

    Iinclude Jstdio.hK

    int main9<

    L

    int a 5

    a & `

    a++

    5 & a

    printf9 a & %i 5 & %iMn a 5

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    43/59

    N

    7olucin:

    Cuando calculamos el valor de RcR sumamos a+` 9 &F < al valor de RcR. 3eroresulta 0ue RcR no ten1a ning@n valor indicado por nosotros. (stamos usando la

    varia5le RcR sin ha5erle dado valor. (n algunos compiladores el resultado serinesperado. (ste es un fallo 5astante ha5itual usar varia5les a las 0ue nohemos dado ning@n valor.

    (jercicio 2: PCual ser el resultado del siguiente programa

    Iinclude Jconio.hK

    Iinclude Jstdio.hK

    int main9<

    L

    int a 5 c

    a & `

    5 & ++a

    c & 9 a + ` S 2 < S 9 5 + Y / 2 < + 9 a S 2

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    44/59

    char pala5raF

    int a

    a & F2!

    if 9 a % 2 && <

    printf9 %d es parMn a

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    45/59

    peradores aritmAticos

    'os operadores aritmAticos son a0uellos 0ue sirven para reali4ar operacionestales como suma resta divisin multiplicacin.

    7i 0uieres sa5er cmo usar funciones matemticas ms complejas

    9e$ponentes ra1ces trigonomAtricas< vete al cap1tulo correspondiente.

    perador 9+< : 7uma

    (ste operador permite sumar varia5les:

    Iinclude Jstdio.hK

    int main9<

    L

    int a & 2

    int 5 & W

    int c

    c & a + 5

    printf 9 ?esultado & %iMn c

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    46/59

    int d

    d & a + 5 + c + !

    printf 9 ?esultado & %iMn c

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    47/59

    $ & `

    $ & F

    perador 9++< : >ncremento

    (ste operador e0uivale a sumar uno a la varia5le:

    Iinclude Jstdio.hK

    int main9<

    Lint $ & `

    printf 9 =alor de $ & %iMn $

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    48/59

    3ero tam5iAn tiene el uso de cam5iar de signo. 3oniendolo delante de unavaria5le o constante e0uivale a multiplicarla por -F.

    Iinclude Jstdio.hK

    int main9<

    L

    int a 5

    a & F

    5 & -a

    printf9 a & %i 5 & %iMn a 5

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    49/59

    7i dividimos dos enteros el resultado es un n@mero entero aun0ue luego losa0uemos por pantalla usando %f o %d no o5tendremos la parte decimal.

    Cuando dividimos dos enteros si 0ueremos sa5er cual es el resto 9o mdulo<usamos el operador % 0ue vemos ms a5ajo.

    perador 9%< : ?esto

    7i con el anterior operador o5ten1amos el mdulo o cociente de una divisinentera con Aste podemos tener el resto. )o funciona ms 0ue con enteros novale para n@meros oat o dou5le.

    Cmo se usa:

    Iinclude Jstdio.hK

    int main9<

    L

    int a 5

    a & F[

    5 & `

    printf9 ?esto de la divisin: %d Mn a % 5

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    50/59

    J menor 0ue se cumple si el primero es menor 0ue el segundo

    K& maor o igual 0ue se cumple si el primero es maor o igual 0ue el segundo

    J& menor o igual 0ue se cumple si el primero es menor o igual 0ue el segundo

    =eremos la aplicacin de estos operadores en el cap1tulo 7entencias. 3eroahora vamos a ver unos ejemplos:

    Iinclude Jstdio.hK

    int main9<

    L

    printf9 F K ` da como resultado %iMn FK`

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    51/59

    (n esta seccin vo a descri5ir lo 0ue son los 5tes los 5its. )o vo adescu5rir nada nuevo as1 0ue la maor1a se podrn saltar esta seccin.

    7upongo 0ue todo el mundo sa5e lo 0ue son los 5tes los 5its pero por siacaso all va. 'os 5its son la unidad de informacin ms pe0ueOa digamos 0ueson la 5ase para almacenar la informacin. 7on como los tomos a lasmolAculas. 'os valores 0ue puede tomar un 5it son F. 7i juntamos ocho 5itstenemos un 5te.

    n 5te puede tomar 2`Y valores diferentes 9de a 2``maginemos nuestro amante 5te con sus ocho 5its. 7upongamos 0uelos ocho 5its valen cero. Ua tenemos el valor en el 5te. ,hora vamos a darleal @ltimo 5te el valor F.

    F -K F

    (ste es el uno para el 5te. ,hora vamos a por el dos el tres:

    F -K 2

    FF -K W

    as1 hasta 2``. Como vemos con ocho 5its podemos tener 2`Y valoresdiferentes 0ue en 5te corresponden a los valores entre 2``.

    peradores de 5its

     Ua hemos visto 0ue un 5te son ocho 5its. 3ues 5ien con los operadores de 5itspodemos manipular las varia5les por dentro. 'os diferentes operadores de 5its

    son:

    perador Descripcin

    ? 9<

    ,)D 9U<

    b ? 9 e$clusivo<

    Complemento a uno o negacin

    KK Despla4amiento a la derecha

    JJ Despla4amiento a la i40uierda

    perador 9?

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    52/59

    int main9<

    L

    printf9 (l resultado de la operacin 2W` F!W es: %iMn 2W` F!W

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    53/59

    F] -K FFFF

    F`` -K FFFFF

    FW[ -K FFF

    perador b 9?

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    54/59

    Iinclude Jstdio.hK

    int main9<

    L

    printf9 (l resultado de la operacin F` KK 2 es: %iMn F`2

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    55/59

    int main9<

    L

    int varia5le

    printf9 GamaOo de la varia5le: %iMn si4eof varia5le

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    56/59

    J J& K K&

    && _&

    b

    :

    & +& -& S& /&

    3or ejemplo imaginemos 0ue tenemos la siguiente operacin:

    F S 2 + `

    7i vamos a la ta5la de precedencias vemos 0ue el S tiene un orden superior al+ por lo tanto primero se hace el producto FS2&2 luego la suma2+`&2`. =eamos otra:

    F S 9 2 + ` <

    ,hora con el parAntesis cam5ia el orden de evaluacin. (l 0ue tiene maorprecedencia ahora es el parAntesis se ejecuta primero. Como dentro delparAntesis slo ha una suma se eval@a sin ms 2+`&]. Ua solo 0ueda lamultiplicacin FS]&]. tro caso:

    F S 9 ` S 2 +W <

    Como antes el 0ue maor precedencia tiene es el parAntesis se eval@aprimero. Dentro del parAntesis tenemos producto suma. Como sa5emos a seeval@a primero el producto `S2&F. 7eguimos en el parAntesis nos 0ueda lasuma F+W&FW. Hemos aca5ado con el parAntesis ahora al resto de lae$presin. Cogemos la multiplicacin 0ue 0ueda: FSFW&FW.

    tro detalle 0ue de5emos cuidar son los operadores ++ --. (stos tienenmaor precedencia 0ue las dems operaciones aritmAticas 9+ - S / %

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    57/59

    3uede parecer 0ue primero se ejecutar la multiplicacin luego el ++. 3ero sivamos a la ta5la de precedencias vemos 0ue el ++ est por encima de S 9demultiplicacin

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    58/59

    printf9 a & %i 5 & %iMn a 5

  • 8/17/2019 Curso Completo de c Para Recien Iniciados

    59/59

    a & `

    5 & ++a

    c & 9 a + ` S 2 < S 9 5 + Y / 2 < + 9 a S 2