Programacion Unidad 3 y 4

download Programacion Unidad 3 y 4

of 45

Transcript of Programacion Unidad 3 y 4

  • 8/18/2019 Programacion Unidad 3 y 4

    1/45

    !"#$%$ ###

    '(  )*+,-./+012 ,/3 4/+5*-6/

    71.8/0/+9:- /28/9;

     %90:?:,-,/2 ,/ -8=/+,:@-6/>

    A#A4#BCD%)#%>

    "#  $%&' ()*+,-' ./%&0+1# 2%,3+4-,5)' 3- 61)/1+4+7&8,# .0/)1&54)'9 :'51%75%1+ 3-;+5)' * -5)'# [email protected] CD$$# :'E+F+ GHHI#

    G#  ()'J K+'7),7-0)' L+,5&00M,# D,51)3%77&8, + 0+ 7)4E%5+7&8,# 6%=0&7+7&),-' N%05%1+0#?JO&7) GHHH#

    I#  @%&00-14) $-P&,- @%5&-11-Q# D,51)3%77&8, + 0+ 7)4E%5+7&8, * + 0+ 61)/1+4+7&8,:'51%75%1+3+# [email protected]$$# ?JO&7) "STU#

    U#  6+51&7&+ V%&1)/+# .1W%&5-75%1+ 3- N)4E%5+3)1+'# .0X+)4-/+# Y%-,)' .&1-' GH"H#Z#  (+&4- ?+15[,-Q @+1Q+9 ()1/- ./%'5&,

  • 8/18/2019 Programacion Unidad 3 y 4

    2/45

    E-14&5&1M &,70%&1 -, -0 4&'4) +17_&P)' 3- 7+=-7-1+ W%- + '% P-Q 7),'5+1M 3- X%,7&),-' *3+5)' E1-3-X&,&3)' -, -00)'#

    $+ -'51%75%1+ 5[E&7+ 7)4E0-5+ 3- %, E1)/1+4+ -, N`

    U:+93*,/  a20,:1(G b .17_&P) 3- 7+=-7-1+20,:1(G

    :+0 .-:+ V W N+=-7-1+ 3- X%,7&8,

    c ])4=1- 3- 0+ X%,7&8,

    ………. 

    d

    U:+93*,/ ;&1-75&P+' 3-0E1-E1)7-'+3)1U,/

  • 8/18/2019 Programacion Unidad 3 y 4

    3/45

      ;-70+1+7&),-' /0)=+0-'  $+ X%,7&8, .-:+ V W    2%,7&),-' 3-X&,&3+' E)1 -0 %'%+1&)  N)4-,5+1&)' 3-0 E1)/1+4+ e%5&0&Q+3)' -, '% 5)5+0&3+3f#

    ^, ->-4E0) 3- %, E1)/1+4+ '-,7&00) -, N#

     gh $&'5+3) ;:?

  • 8/18/2019 Programacion Unidad 3 y 4

    4/45

    $+ '-O5+ 0[,-+ 7),5&-,- 0+ '-,5-,7&+ =/0*=+ _ # -'5+ '-,5-,7&+ 5-14&,+ 0+ ->-7%7&8, 3-0E1)/1+4+ * 3-P%-0P- -0 7),51)0 +0 '&'5-4+ )E-1+5&P) 3- 0+ 7)4E%5+3)1+# :0 ,m4-1) _  '-%5&0&Q+ E+1+ '-F+0+1 W%- -0 E1)/1+4+ _+ 5-14&,+3) 7)11-75+4-,5- e7), JO&5)f#

    :0 E%,5) * 7)4+ V`W  +0 X&,+0 3- 0+ W%&,5+ * '-O5+ 0[,-+ '&/,&X&7+ W%- N 1-W%&-1- W%- 7+3+'-,5-,7&+ 5-14&,- 7), %, E%,5) * 7)4+# ]) -' ,-7-'+1&) W%- -'5- +0 X&,+0 3- %,+ 0[,-+ #L- E%-3-, E),-1 P+1&+' '-,5-,7&+' -, 0+ 4&'4+ 0[,-+ * '- E%-3- _+7-1 W%- %,+ '-,5-,7&+'- -O5&-,3+ ')=1- P+1&+' 0[,-+'#

    $#DI7a#b%c $I4 JDIJDB7Ic%$BD

    J=/8=19/2-,1= ̀ -, %, E1)/1+4+ -, N '- E%-3- 7),'&3-1+1 7)4) %, -3&5)1 3- 5-O5)&,5-0&/-,5- W%- 7),'5+ 3- 3&1-75&P+' e&,'51%77&),-' +0 7)4E&0+3)1 +,5-' 3- W%- '- 7)4E&0--0 E1)/1+4+ E1&,7&E+0f# $+' 3)' 3&1-75&P+' 4+' %'%+0-' '), U:+93*,/ * U,/

  • 8/18/2019 Programacion Unidad 3 y 4

    5/45

     U:+93*,/  a20,:1(G bU:+93*,/  a20=:+5(G b

    :0 )13-, ,) &4E)15+ 7), 5+0 3- W%- '- &,70%*+, +,5-' 3- W%- '- %5&0&7-, 0+' X%,7&),-'7)11-'E),3&-,5-'#$+ 3&1-75&P+ U:+93*,/  E%-3- +3)E5+1 %,) 3- 0)' '&/%&-,5-' X)14+5)'`

    U:+93*,/  a,)4=1- 3-0 +17_&P)bU:+93*,/   “nombre del archivo”  

    U,/

  • 8/18/2019 Programacion Unidad 3 y 4

    6/45

    .-:+VW

    X#############

    Y

    )*+9:H+ e%#" VW

    N+3+ E1)/1+4+ N 5&-,- %,+ X%,7&8, .-:+VW  W%- -' -0 E%,5) 3- -,51+3+ +0 E1)/1+4+# L%-'51%75%1+ -'`

    e-:+VW

    X ########### =0)W%- 3- '-,5-,7&+'Y

    $+' '-,5-,7&+' &,70%[3+' -,51- 0+' 00+P-' e#######f '- 3-,)4&,+, =0)W%-# ^, E1)/1+4+ 3-=-5-,-1 %,+ X%,7&8, .-:+VW(  .3-4M' 3- 0+ X%,7&8, .-:+VW  %, E1)/1+4+ N 7),'5+ 3- %,+7)0-77&8, 3- X%,7&),-'#

    !+- %,5) 3- P+0)1-') 1-+0&Q+ %,+ 5+1-+ -'E-7[X&7+ 5+0 7)4) :gL#

    $+' P+1&+=0-' * 7),'5+,5- /0)=+0-' '- 3-70+1+, * 3-X&,-, X%-1+ 3- 0+ 3-X&,&7&8, 3- 0+'X%,7&),-'9 /-,-1+04-,5- -, 0+ 7+=-7-1+ 3-0 E1)/1+4+9 +,5-' 3- .-:+VW 9 4&-,51+' W%- 0+'P+1&+=0-' * 7),'5+,5-' 0)7+0-' '- 3-70+1+, * 3-X&,-, -, 0+ 7+=-7-1+ 3-0 7%-1E) ) =0)W%- 3-0+ X%,7&8, E1&,7&E+09 ) -, 0+ 7+=-7-1+ 3- 7%+0W%&-1 =0)W%-# $+' '-,5-,7&+' '&5%+3+' -, -0&,5-1&)1 3-0 7%-1E) 3- 0+ X%,7&8, E1&,7&E+09 ) -, 0+ 7+=-7-1+ 3- 7%+0W%&-1 =0)W%-# $+''-,5-,7&+' '&5%+3+' -, -0 &,5-1&)1 3-0 7%-1E) 3- 0+ X%,7&8, .-:+VWO   ) 7%+0W%&-1 )51+X%,7&8,9 3-=-, 5-14&,+1 -, E%,5) * 7)4+#

    7DI%7#B" $I !" JDBCD%e%

    $)' E+')' E+1+ 71-+1 %, E1)/1+4+ -, N '-1[+,`

    "#  ^5&0&Q+1 %, -3&5)1 3- 5-O5) E+1+ -'71&=&1 -0 E1)/1+4+ * /1+=+10) -, %, +17_&P)#:'5- +17_&P) 7),'5&5%*- -0 783&/) X%-,5- 3- %, E1)/1+4+#

    G#  N)4E&0+1 -0 783&/) X%-,5-# L- 51+3%7- -0 783&/) X%-,5- -, %, 783&/) )=>-5)e-O5-,'&8, #)=>f# ^, +17_&P) )=>-5) 7),5&-,- &,'51%77&),-' 3- 0-,/%+>-4MW%&,+ W%- '- E%-3-, ->-7%5+1 E)1 %,+ 7)4E%5+3)1+# $)' +17_&P)' -'5M,3+1N * 0)' 3- 7+=-7-1+ 3-X&,&3)' E)1 -0 %'%+1&) '), &,70%&3)' ej&,70%3-f -, '%783&/) X%-,5- E)1 -0 E1-E1)7-'+3)1# $)' +17_&P)' 3- 7+=-7-1+ 7),5&-,-,

  • 8/18/2019 Programacion Unidad 3 y 4

    7/45

    &,X)14+7&8, ,-7-'+1&+ E+1+ 0+ 7)4E&0+7&8, 7)4) -' -0 7+') 3-0 '53&)#_ W%-7),5&-,- &,X)14+7&8, 3- '7+,Xef * 3- E1&,5Xef#

    I#  :,0+Q+1 -0 783&/) )=>-5) 7), 0+' =&=0&)5-7+' 7)11-'E),3&-,5-'# ^,+ =&=0&)5-7+ N7),5&-,- 783&/) )=>-5) 3- %,+ 7)0-77&8, 3- 1%5&,+' ) X%,7&),-' W%- 1-+0&Q+,5+1-+'9 7)4) P&'%+0&Q+1 &,X)14+7&8, -, 0+ E+,5+00+ ) 7+07%0+1 0+ 1+[Q 7%+31+3+ 3-%, ,m4-1)# :0 -,0+7- 3-0 783&/) )=>-5) 3-0 E1)/1+4+ 7), -0 )=>-5) 3- 0+'X%,7&),-' %5&0&Q+3+' * 7%+0W%&-1 )51) 783&/) -4E0-+3) -, -0 -,0+7-9 E1)3%7&1M%, 783&/) ->-7%5+=0-# ^, E1)/1+4+ N 7),'5+ 3- %, ,m4-1) 3&X-1-,5- 3-+17_&P)' )=>-5) * +17_&P)' 3- =&=0&)5-7+#

    6+1+ 71-+1 %, E1)/1+4+ '- %5&0&Q+, 0+' '&/%&-,5-' -5+E+'̀

    "#  3-X&,&1 '% E1)/1+4+G#  3-X&,&1 3&1-75&P+' 3-0 E1-E1)7-'+3)1I#  3-X&,&7&8, 3- 3-70+1+7&),-' /0)=+0-'U#  71-+1 4+&,ef

    Z#  N1-+1 -0 7%-1E) 3-0 E1)/1+4+\#  N1-+1 '%' E1)E&+' X%,7&),-' 3-X&,&3+' E)1 -0 %'%+1&)o#  N)4E&0+19 -,0+Q+19 ->-7%5+1 * 7)4E1)=+1 -0 E1)/1+4+T#  %5&0&Q+1 7)4-,5+1&)'

    Proceso de creación de un ejecutable.

    Para crear un programa ejecutable, es necesario únicamente cambiar el destino decompilación, en lugar de que sea a memoria, se genere a disco, y por consiguiente, se

    genera un archivo .EXE.

    E(E J-3-K=-2 =/2/=?-,-2E(L D/8=/2/+0-9:H+ ,/ ,-012 KM2:912E(N   $/93-=-9:H+ ,/ ?-=:-K3/2O 71+20-+0/2O J=19/,:.:/+012 P

    )*+9:1+/2E(Q B8/=-9:1+/2 -=:0.R0:9-2O 3H5:9-2 P =/3-9:1+-3/2(E(S $:2/T1O I,:9:H+O 71.8:3-9:H+ P I6/9*9:H+ ,/ 8=15=-.-2

    VARIABLES, OPERADORES, TIPOS DE DATOS Y EXPRESIONES

    VARIABLES (IDENTIFICADORES)

  • 8/18/2019 Programacion Unidad 3 y 4

    8/45

    Un identificador es un conjunto de caracteres alfanuméricos de cualquier longitudque sirve para identificar las entidades del programa (clases, funciones, variables,tipos compuestos, Etc.) Los identificadores pueden ser combinaciones de letras ynúmeros. Cada lenguaje tiene sus propias reglas que definen como pueden estarconstruidos. En el caso de C++, son las que se indican a continuación. Cuando un

    identificador se asocia a una entidad concreta, entonces es el "nombre" de dichaentidad, y en adelante la representa en el programa. Por supuesto puede ocurrirque varios identificadores se refieran a una misma entidad.

    Los identificadores C++ pueden contener las letras a a z y A a Z, el guión bajo "_"("Underscore") y los dígitos 0 a 9.

      El primer carácter debe ser una letra o el guión bajo. El Estándar establece que losidentificadores comenzando con guión bajo y mayúscula no deben ser utilizados.Este tipo de nombres se reserva para los compiladores y las Librerías Estándar.

    Tampoco se permite la utilización de nombres que contengan dos guiones bajosseguidos.

      El estándar ANSI establece que como mínimo serán significativos los 31primeros caracteres, aunque pueden ser más, según la implementación Esdecir, para que un compilador se adhiera al estándar ANSI, debe considerarcomo significativos, al menos, los 31 primeros caracteres.

    Los identificadores distinguen mayúsculas y minúsculas, así que Sum, sum y suM sondistintos para el compilador.

     Aunque los nombres de los identificadores pueden ser arbitrarios (dentro de lasreglas señaladas), se produce un error si se utiliza el mismo identificador dentrodel mismo ámbito compartiendo el mismo espacio de nombres. Los nombresduplicados son legales en diferentes espacios de nombres con independencia delas reglas de ámbito.

    Un identificador no puede coincidir con una palabra clave o con el de ningunafunción de biblioteca.

    Los identificadores pueden ser más largos; de hecho en C++ pueden ser de cualquier

    longitud, pero el compilador solo considera los n primeros; es decir: considera igualesaquellos identificadores cuyos n primeros caracteres coinciden. C++Builder establece pordefecto que son significativos los primeros 250 caracteres, pero este valor puede sermodificado utilizando la opción -in, donde n es un número entre 8 y 250; además el 0significa el valor máximo.

    Los programas de computadora contienen ciertos valores que no deben cambiardurante la ejecución del programa. Tales valores se llaman constantes. De igual

  • 8/18/2019 Programacion Unidad 3 y 4

    9/45

    forma, existen otros valores que cambiarán durante la ejecución del programa, aestos valores se les llama variables.

    7B"ca%"aIc

    Una constante es una partida de datos (objetos) que permanecen sin cambios durante eldesarrollo del algoritmo o durante la ejecución del programaConstantes reales válidas Constantes reales no válidas

    1,752.63 (comas no permitidas)- 0.143682 (normalmente contiene puntodecimal, aunque existen lenguajes

    que lo admiten sin punto)

    Una constante de tipo carácter o constante de caracteres consiste en un carácter válidoencerrado dentro de apóstrofos; por ejemplo:

    ‘B’  ‘+’  ‘4’  ‘;’ 

    Si se desea incluir el apóstrofo en la cadena, entonces debe aparecer como un par deapóstrofos, encerrados dentro de simples comillas: ‘´ ´ ‘ 

    Una secuencia de caracteres se denomina normalmente una cadena y una constante tipocadena es una cadena encerrada entre apóstrofos. Por consiguiente:

    ‘ Juan Jiménez’ 

    y

    ‘Pepe Luis García’ 

    son constantes de cadena válidas. Nuevamente, si un apóstrofo es uno de los caracteresen una constante de cadena, debe aparecer como un par de apóstrofos:

    ‘Juan’’s’ 

    Constantes lógicas (boolean)Sólo existen dos constantes lógicas o boolean:

    Verdadero Falso

    La mayoría de los lenguajes de programación permiten diferentes tipos de constantes:enteras, reales, caracteres y boolean o lógicas, y representan datos de esos tipos.

     b%D#%A4IcUna variable es un objeto o partida de datos cuyo valor puede cambiar durante eldesarrollo del algoritmo o ejecución del programa.

  • 8/18/2019 Programacion Unidad 3 y 4

    10/45

    Dependiendo del lenguaje, hay diferentes tipos de variables, tales como enteras, reales,carácter, lógicas y de cadena.

    Una variable que es de un cierto tipo puede tomar únicamente valores de ese tipo. Unavariable de carácter, por ejemplo, puede tomar como valor sólo caracteres, mientras queuna variable entera puede tomar sólo valores enteros.

    Si se intenta asignar un valor de un tipo a una variable de otro tipo se producirá un errorde tipo.

    Una variable se identifica por los siguientes atributos:

      nombre que lo asigna y  tipo que describe el uso de la variable.

    Los nombres de las variables, a veces conocidos como identificadores, suelen constar devarios caracteres alfanuméricos, de los cuales el primero normalmente es letra. No sedeben utilizar – aunque lo permita el lenguaje – como nombres de identificadores palabras

    reservadas del lenguaje de programación.

    Nombres válidos de variables:

     A510NOMBRESNOTASNOMRE_APELLIDOS (Algunos lenguajes de programación admiten como válido elcarácter subrayado o guión bajo en los identificadores.

    Los nombres de las variables elegidas para el algoritmo o el programa deben sersignificativos y tener relación con el objeto que representan, como pueden ser los casos

    siguientes:

    NOMBRE para representar nombres de personasPRECIOS para representar los precios de diferentes artículosNOTAS para representar las notas de una clase.

    Existen lenguajes – C – en los que es posible darles nombre a determinadas constantestípicas utilizadas en cálculos matemáticos, financieros, etc. Por ejemplo, las constantesPI = 3.141592... y e = 2.7182818 (base de los logaritmos naturales) se les pueden dar losnombres PI y E.

    Dentro de las variables nos encontramos con dos tipos que son muy usados

    dentro de los algoritmos:ACUMULADORES

    El acumulador es una variable, que se incrementa en una cantidad variable. Esuna estructura que permite introducir, a una variable, un nuevo valor, tomando enconsideración el valor que ya estaba dentro de ella.

    CONTADORES

  • 8/18/2019 Programacion Unidad 3 y 4

    11/45

     Un contador es una variable que se incrementa en una cantidad variable. Es unaestructura para llevar una cuenta. La variable utilizada se le suma o se le restauna cantidad constante, que normalmente es +1 o –1.

    Ejemplos:

    VarContador : integer;

     Acumulador, Precio: real;Esta_lloviendo: boolean;Opcion : char;nombre : string [15];a,b,c :integer;

    TIPOS DE DATOS FUNDAMENTALES (Modificadores de datos)En la siguiente tablea se muestran los principales tipos de datos básicos osimples, sus tamaños en bytes y el rango de valores que puede almacenar.

    TIPO EJEMPLO TAMAÑOEN BYTES

    RANGOMÍNIMO..MÁXIMO

    char ‘C’  1 0..255short -15 2 -128..127int 1024 2 -32768…32767 unsigned int 42325 2 0..65535Long 262144 4 -2147483648..2147483637Float 10.5 4 3.4 *(10- )..3.4 * (10  

    Double 0.00045 8 1.7 * (10-

    )..1.7 * (10 )Long double Le-8 8 Igual que double

    Los tipos de datos fundamentales en C son:

      enteros: (números completos y sus negativos), de tipo int .  variantes de enteros: tipos short , long  y unsigned .  reales: números decimales, tipos float , double  o long double .  caracteres: letras, dígitos, símbolos y signos de puntuación, tipo char .

    cha r, int , float   y double   son palabras reservadas, o más específicamente,

    especificadores de tipos . Cada tipo de dato tiene su propia lista de atributos quedefinen las características del tipo y pueden variar de una máquina a otra. Lostipos char , int   y double   tienen variaciones o modificadores de tipos de datos,tales como short , long , signed  y unsigned , para permitir un uso más eficiente delos tipos de datos.

    Existe el tipo adicional enum  (constante de enumeración ). En C++, sin embargo,cada tipo enumerado es su propio tipo independiente. Esto significa que C++ no

  • 8/18/2019 Programacion Unidad 3 y 4

    12/45

    permite que un valor int  se convierta automáticamente a un valor enum. Sinembargo, un valor enumerado se puede utilizar en lugar de un int.

    Ejemplo:enum lugar{primero,segundo,tercero};lugar pepe=primero; //correctoint vencedor=pepe; //correctolugar juan=1; //incorrecto

    ENTEROS (int )

    Probablemente el tipo de dato más familiar es el entero, o tipo int . Los enteros sonadecuados para aplicaciones que trabajen con datos numéricos. Los tipos enterosse almacenan internamente en 2 bytes (o 16 bits) de memoria. La Tabla siguienteresume los tres tipos enteros básicos, junto con el rango de valores y el tamaño enbytes usual, dependiendo de cada máquina.

    TIPO C RANGO DE VALORES USO RECOMENDADOint -32.768.. +32.767 Aritmética de enteros, bucles, for ,

    conteoUnsigned int 0..65.535 Conteo bucles for , índicesShort int -128..+127 Aritmética de enteros, bucles for ,

    conteo.

    Operadores, operandos y expresiones.

    Los programas C constan de datos, sentencias de programas y expresiones. Una

    expresión es, normalmente, una ecuación matemática, tal como 3 +5. En estaexpresión, el símbolo más (+) es el operador de suma, y los números 3 y 5 sellaman operandos. En síntesis, una expresión es una secuencia de operaciones yoperandos que especifica un cálculo.

    Cuando se utiliza el + entre números (o variables) se denomina operador binario,debido a que el operador + suma dos números. Otro tipo de operador de C es eloperador unitario («

  • 8/18/2019 Programacion Unidad 3 y 4

    13/45

     Una expresión es un elemento de un programa que toma un valor. En algunoscasos puede también realizar una operación.

    Las expresiones pueden ser valores constantes o variables simples, tales como 25

    o 'Z’; pueden ser valores o variables combinadas con operadores(a++,m==n, etc.);o bien pueden ser valores combinados con funciones tales como toupper (‘b’). 

    OPERADOR DE ASIGNACiÓN

    El operador = asigna el valor de la expresión derecha a la variable situada a suizquierda.

    codigo = 3467;fahrenheit = 123.456;coordX = 525;coordY = 725;

    Este operador es asociativo por la derecha, eso permite realizar asignacionesmúltiples. Así,

    a = b = c = 45;equivale a

    a=(b=(c=45));

    o dicho de otro modo, a las variables a, by c se asigna el valor 45.

    Esta propiedad permite inicializar varias variables con una sola sentencia

    int a, b, c;a = b = c = 5; /* se asigna 5 a las variables a, by c */

     Además del operador de asignación =, C proporciona cinco operadores deasignación adicionales. En la Tabla siguiente aparecen los seis operadores deasignación.

    Estos operadores de asignación actúan como una notación abreviada paraexpresiones utilizadas con frecuencia. Así, por ejemplo, si se desea multiplicar 10por i, se puede escribir

    i = i * 10;

    OPERADORES DE ASIGNACIÓN DE C

  • 8/18/2019 Programacion Unidad 3 y 4

    14/45

      SÍMBOLO USO DESCRIPCIÓN

    = a = b  Asigna el valor de b a a.

    *= a *= b Multiplica a por b y asigna el resultado a la

    variable a.

    / = a / = b Divide a entre b y asigna el resultado a la

    variable a.

    %= a %= b Fija a al resto de a/b

    += a += b Suma b y a y lo asigna a la variable a.

    - = a - = b Resta b de a y asigna el resultado a la

    variable a.

    C proporciona un operador abreviado de asignación (* = ) , que realiza unaasignación equivalente i *= 10; equivale a i = i * 10;

    EQUIVALENCIA DE OPERADORES DE ASIGNACIÓN

    Operador Sentencia Sentenciaabreviada no abreviada

    += m += n m = m + n;-= m -= n m = m – n;*= m *= n m = m * n;/= m /= n m = m / n;%= m %= n m = m % n;

    Estos operadores de asignación no siempre se utilizan, aunque algunosprogramadores C se acostumbran a su empleo por el ahorro de escritura quesuponen.

    OPERADORES ARITMÉTICOS

    Los operadores aritméticos sirven para realizar operaciones aritméticas básicas.Los operadores aritméticos C siguen las reglas algebraicas típicas de jerarquía oprioridad. Estas reglas especifica la precedencia de las operaciones aritméticas.

    Considere la expresión3+5*2

  • 8/18/2019 Programacion Unidad 3 y 4

    15/45

     ¿ Cuál es el valor correcto, 16 ( 8 * 2) o 13 (3 + 1 O ) ? De acuerdo a las citadasreglas, la multiplicación se realiza antes que la suma. Por consiguiente, laexpresión anterior equivale a:

    3 + (5 * 2)En C las expresiones interiores a paréntesis se evalúan primero; a continuación,se realiza los operadores unitarios, seguidos por los operadores de multiplicación,división, resto, suma y resta.

    OPERADORES ARITMÉTICOS

    Operador Tipos enteros Tipos reales Ejemplo* Producto Producto x * y

    / División entera: cociente División en coma flotante b / 5

    + Suma Suma x + y

    - Resta Resta b - c

    % División entera: resto b %. 5

    Prioridad de operadores, evaluación de expresiones.

    PRECEDENCIA DE OPERADORES MATEMÁTICOS BÁSICOS.

    Operador Operación Nivel de precedencia+, - +25, -6.745 1

    *, /, % 5*5 es 25 225/5 es 525%6 es 1

    +, - 2+3 es 5 32-3 es -1

    Ejemplo

    ¿Cuál es el resultado de la expresión: 7 * 10-5 % 3 * 4 + 9?

    Existen tres operadores de prioridad más alta (*, % Y *)70 - 5 % 3 * 4 + 9La asociatividad es de izquierda a derecha, por consiguiente se ejecuta acontinuación %

  • 8/18/2019 Programacion Unidad 3 y 4

    16/45

    70 - 2 * 4 + 9y la segunda multiplicación se realiza a continuación, produciendo70 - 8 + 9Las dos operaciones restantes son de igual prioridad y como la asociatividad es aizquierda, se realizará la resta primero y se obtiene el resultado

    62 + 9y, por último, se realiza la suma y se obtiene el resultado final de71

    Los paréntesis se pueden utilizar para cambiar el orden usual de evaluación deuna expresión determinada por su prioridad y asociatividad. Las subexpresionesentre paréntesis se evalúan en primer lugar según el modo estándar y losresultados se combinan para evaluar la expresión completa. Si los paréntesisestán «anidados» -es decir, un conjunto de paréntesis contenido en otro- seejecutan en primer lugar los paréntesis más internos. Por ejemplo, considérese laexpresión

    (7 * (10 - 5) % 3)* 4 + 9

    La subexpresión (10 - 5) se evalúa primero, produciendo -~(7 * 5 % 3) * 4 + 9

     A continuación se evalúa de izquierda a derecha la subexpresión (7 * 5 % 3)(35 % 3) * 4 + 9

    seguida de2 * 4 + 9

    Se realiza a continuación la multiplicación, obteniendo8 + 9

    y la suma produce el resultado final17

    A:K3:10/9-2 /20M+,-=/2 ,/ 7

    El lenguaje C es muy simple. Carece de tipos y servicios que forman parte de otroslenguajes. No tiene tipo booleano, ni manejo de cadenas, ni manejo de memoriadinámica.

    No obstante, el estándar de C define un conjunto de bibliotecas  de funciones, quenecesariamente vienen con todo entorno de compilación de C y que satisfacen estosservicios elementales.

    Las interfaces de estos servicios vienen definidas en unos ficheros cabeceras ( headerfiles ). El nombre de estos ficheros suele terminar en .h 

  • 8/18/2019 Programacion Unidad 3 y 4

    17/45

     Algunos de los servicios proporcionados por las bibliotecas estándares son:

      entrada y salida de datos (stdio.h)  manejo de cadenas (string.h)  memoria dinámica (stdlib.h)  rutinas matemáticas (math.h)

    CONSTRUCCIÓN DE EXPRESIONES

    Los datos se manipulan mediante expresiones, que sirven para calcular valores.

    Una expresión combina varias operaciones y devuelve un valor.Los operadores *, /  y % tienen precedencia sobre la suma y la resta.Se pueden utilizar paréntesis para agrupar subexpresiones.

    #(F( I6/.8312 ,/ /f8=/2:1+/2>

    12+24 + 6/2(4+6) / 2( 3*5 + 12 ) % 7

    Ejemplo1. ¿Cuál es el resultado de la expresión: 6 + 2 * 3 - 4/2?

    6 + 2 * 3 - 4/26 + 6 - 4/26+6 - 212 - 210

    2. ¿Cuáles el resultado de la expresión: 5 *5(5+(6-2)+1)?

    5 * (5 + (6-2) + 1)5 * (5 + 4 + 1)5 * 1050

     ACTIVIDAD

    Suponiendo los siguientes valores paralas variables:X=2; y=6; z=9; r=100; s=10; a=15; b=3;¿Cuales son los valores correctos decada expresión?

    Usar expresiones para lassiguientes, usando operadoresmixtos.

    Evaluar las siguientesexpresiones. Siendo:x = 10; y = 20; z = 30;

    a) x += 10;!  12!  10

    a) x = 10 + x – y;!  x += 10 – y!  x -= y + 10

    a) z = x – y, t = z – y;

    !  z =- 10, t=-30

  • 8/18/2019 Programacion Unidad 3 y 4

    18/45

    !  11

    b) s *= b;!  9!  13!  30

    c) r /= 0;!  infinito!  1!  error

    d) y += x + 10;!  8!  12!  18

    e) z -= a*b;!  -36!  -18!  36

    !  x += 10 + y

    b) r = 100* r;!  r *= 100* r!  r *= 100!  r += 100

    c) y = y/(10+x);

    !  y /= 10*x!  y /= 10 + y/x!  y/= 10+x

    d) z = 3 * x + 6;!  z +=6!  z *=3!  no es

    posible

    !  t = 10!  z = 30, t=-30

    b) (x < 10) && (y> 15)

    !  true!

      false

    c) (x

  • 8/18/2019 Programacion Unidad 3 y 4

    19/45

      gh n&5%0)` ;-4)i%,) E)1 ?1# ?+15&,-Q hg

  • 8/18/2019 Programacion Unidad 3 y 4

    20/45

    :, +0/%,)' E1)/1+4+' +,5-1&)1-'9 '- _+ E1)E)17&),+3) %, P+0)1 3-,)4&,+3) P+0)1 &,&7&+09+ %,+ P+1&+=0- 7%+,3) '- 3-70+1+# :0 X)14+5) /-,-1+0 3- %,+ 3-70+1+7&8, 3- &,&7&+0&Q+7&8,-'`

    n&E) ,)4=1-iP+1&+=0- y -OE1-'&8,

    :OE1-'&8, -' 7%+0W%&-1 -OE1-'&8, PM0&3+ 7%*) P+0)1 -' 3-0 4&'4) 5&E) W%- 5&E)#])5+# :'5+ '-,5-,7&+ 3-70+1+ * E1)E)17&),+ %, P+0)1 &,&7&+0 + %,+ P+1&+=0-#

    $+' P+1&+=0-' '- E%-3-, &,&7&+0&Q+1 + 0+ P-Q W%- '- 3-70+1+,9 ) =&-,9 &,&7&+0&Q+1'- 3-'E%J'3-70+1+7&8,# :0 E1&4-1 4J5)3) -' E1)=+=0-4-,5- -0 4->)1 -, 0+ 4+*)1[+ 3- 0)' 7+')'9 *+W%- 7)4=&,+, 0+ 3-X&,&7&8, 3- 0+ P+1&+=0- 7), 0+ +'&/,+7&8, 3- '% P+0)1 &,&7&+0#

    7_+1 1-'E%-'5+k }L}k&,5 7),5+3)1 y "k

    X0)+5 E-') y "Z\#UZk&,5 +,*) y "SSIk

    :'5+' +77&),-' 71-+, P+1&+=0-' 1-'E%-'5+9 7),5+3)19 E-') * +,*)9 W%- +04+7-,+, -,4-4)1&+ 0)' P+0)1-' 1-'E-75&P)' '&5%+3)' + '% 3-1-7_+#

    :0 '-/%,3) 4J5)3) 7),'&'5- -, %5&0&Q+1 '-,5-,7&+' 3- +'&/,+7&8, 3&X-1-,5-' 3-'E%J' 3-3-X&,&1 0+ P+1&+=0-9 7)4) -, -0 '&/%&-,5- 7+')`

    7_+1 =+11+k=+11+ y }g}k

    $I74%D%7#g" B $I)#"#7#g"

    $+ 3&X-1-,7&+ -,51- 3-70+1+7&8, * 3-X&,&7&8, -' '%5&0# ^,+ 3-70+1+7&8, &,51)3%7- %, ,)4=1-3- %,+ P+1&+=0- * +')7&+ %, 5&E) 7), 0+ P+1&+=0-# ^,+ 3-X&,&7&8, -' %,+ 3-70+1+7&8, W%-+'&/,+ '&4%05M,-+4-,5- 4-4)1&+ + 0+ P+1&+=0-#

    3)%=0- Ok gh 3-70+1+ -0 ,)4=1- 3- 0+ P+1&+=0- O 3- 5&E) 3)%=0- hg

    7_+1 7iP+1k gh 3-70+1+ 7iP+1 3- 5&E) 7_+1 hg&,5 &k gh 3-X&,&3) E-1) ,) &,&7&+0&Q+3) hg&,5 & y Hk gh 3-X&,&3) - &,&7&+0&Q+3) + 7-1)#hg

    $!D%7:g" $I !"% b%D#%A4I

  • 8/18/2019 Programacion Unidad 3 y 4

    21/45

     

    ;-E-,3&-,3) 3-0 0%/+1 3),3- '- 3-X&,+, 0+' P+1&+=0-' 3- N9 J'5+' '- E%-3-, %5&0&Q+1 -, 0+5)5+0&3+3 -0 E1)/1+4+9 3-,51) 3- %,+ X%,7&8, ) E%-3-, -O&'5&1 '80) 5-4E)1+04-,5- 3-,51)3- %, =0)W%- 3- %,+ X%,7&8,# $+ Q),+ 3- %, E1)/1+4+ -, 0+ W%- %,+ P+1&+=0- -'5M +75&P+'- 3-,)4&,+9 ,)14+04-,5-9 M4=&5) ) +07+,7- €a'7)E- f#

    :0 M4=&5) e+07+,7-f 3- %,+ P+1&+=0- '- -O5&-,3- _+'5+ 0)' 0[4&5-' 3- 0+ 3-X&,&7&8, 3- '%=0)W%-# $)' 5&E)' =M'&7)' 3- P+1&+=0-' -, N '),`

      P+1&+=0-' 0)7+0-'k  P+1&+=0-' /0)=+0-'k  P+1&+=0-' 3&,M4&7+'#

     b%D#%A4Ic 4B7%4Ic

    $+' P+1&+=0-' 0)7+0-' '), +W%J00+' 3-X&,&3+' -, -0 &,5-1&)1 3- %,+ X%,7&8, * '), P&'&=0-' '80)-, -'+ X%,7&8, -'E-7[X&7+# $+' 1-/0+' E)1 0+' W%- '- 1&/-, 0+' P+1&+=0-' 0)7+0-' '),`

    "#  :, -0 &,5-1&)1 3- %,+ X%,7&8,9 %,+ P+1&+=0- 0)7+0 ,) E%-3- '-1 4)3&X&7+3+ E)1,&,/%,+ '-,5-,7&+ -O5-1,+ + 0+ X%,7&8,#

    G#  $)' ,)4=1-' 3- 0+' P+1&+=0-' 0)7+0-' ,) _+, 3- '-1 m,&7)'# ;)'9 51-' ) 4M'X%,7&),-' E%-3-,3-X&,&1 P+1&+=0-' 3- ,)4=1- D,5-11%E5)g` N+3+ P+1&+=0- -' 3&'5&,5+ * E-15-,-7- + 0+X%,7&8, -, W%- -'5M 3-70+1+3+#

    I#  $+' P+1&+=0-' 0)7+0-' 3- 0+' X%,7&),-' ,) -O&'5-, -, 4-4)1&+ _+'5+ W%- '- ->-7%5+0+ X%,7&8,# :'5+ E1)E&-3+3 E-14&5- +_)11+1 4-4)1&+9 *+ W%- E-14&5- W%- P+1&+'X%,7&),-' 7)4E+15+, 0+ 4&'4+ 4-4)1&+ E+1+ '%' P+1&+=0-' 0)7+0-' eE-1) ,) + 0+P-Qf#

    6)1 0+ 1+Q8, 3+3+ -, -0 E%,5) I9 0+' P+1&+=0-' 0)7+0-' '- 00+4+, 5+4=&J, +%5)4M5&7+' )+%5)9 *+ W%- 3&7_+' P+1&+=0-' '- 71-+, +%5)4M5&7+4-,5- -, 0+ -,51+3+ + 0+ X%,7&8, * '-0&=-1+, 5+4=&J, +%5)4M5&7+4-,5- 7%+,3) '- 5-14&,+ 0+ ->-7%7&8, 3- 0+ X%,7&8,#

    &,70%3- a'53&)#_b&,5 4+&,efc

    &,5 +9 =9 79 '%4+9 ,%4-1)k ghP+1&+=0-' 0)7+0-' hgE1&,5Xe~N%+,5)' ,m4-1)' + '%4+1`~fk'7+,Xe~u3~9w,%4-1)fk'%4+ y + x = x Nk

  • 8/18/2019 Programacion Unidad 3 y 4

    22/45

    1-5%1, Hkd

     b%D#%A4Ic C4BA%4Ic

    $+' P+1&+=0-' /0)=+0-' '), P+1&+=0-' W%- '- 3-70+1+, X%-1+ 3- 0+ X%,7&8, * E)1 3-X-75)e)4&'&8,f '), P&'&=0-' + 7%+0W%&-1 X%,7&8,9 &,70%*-,3) 4+&, e f #

    j&,70%3- a'53&)#_b&,5 +9 =9 Nk gh 3-70+1+7&8, 3- P+1&+=0-' /0)=+0-' hg&,5 4+&,efc

    &,5 P+0)1k gh 3-70+1+7&8, 3- P+1&+=0- 0)7+0hg

    printf("Tres valores: “fk

    '7+,Xe~u3 u3 u3~9w+9w=9w7fk gh +9=97 P+1&+=0-'/0)=+0-' hgP+0)1 y +x=x7k######

    d

    n)3+' 0+' P+1&+=0-' 0)7+0-' 3-'+E+1-7-, 7%+,3) 5-14&,+ '% =0)W%-# ^,+ P+1&+=0- /0)=+0-'#^,+ P+1&+=0- /0)=+0 1 P&'&=0- 3-'3- -0 E%,5) -, W%- '- 3-X&,- _+'5+ -0 X&,+0 3-0 E1)/1+4+e+17_&P) X%-,5-f#

    $+ 4-4)1&+ +'&/,+3+ + %,+ P+1&+=0- /0)=+0 E-14+,-7- +'&/,+3+ + 51+PJ' 3- 0+ ->-7%7&8,3-0 E1)/1+4+9 5)4+,3) -'E+7&) PM0&3) '-/m, '- %5&0&7-# 6)1 -'5+ 1+Q8,9 '- 3-=- -P&5+1%5&0&Q+1 4%7_+' P+1&+=0-' /0)=+0-' 3-,51) 3- %, E1)/1+4+#

  • 8/18/2019 Programacion Unidad 3 y 4

    23/45

    3-,51) 3- 4+&,9 7)4) .9 '), 0)7+0-' + 4+&,# 6)1 7),'&/%&-,5-9 '80) 0+' '-,5-,7&+'&,5-1&)1-' + 4+&, E%-3-, %5&0&Q+1 .#

    j&,70%3- a'53&)#_b&,5 Vk .07+,7- ) M4=&5) /0)=+0Vk P+1&+=0- /0)=+0&,5 4+&,efc&,5 .k $)7+0 + 4+&,

     .9 P+1&+=0- 0)7+0 . y "GUkV y "k

    c&,5 Yk 61&4-1 '%=,&P-0 -, 4+&,

    Y9 P+1&+=0- 0)7+0Y y "GUk

     . y UZokV y Gkc

    &,5 7k L%=,&P-0 4M' &,5-1,) 3- 4+&,N9 P+1&+=0- 0)7+0

    N y "GUkY y UZok

     . y oTTkV y Ik

    dd

    d

    7B$#)#7%4B % 4I"C!%kI 7 4Bc c#C!#I"aIc IkID7#7#Bc

    "#  :'71&=&1 %, +0/)1&54) W%- '%4- 3)' ,m4-1)'`

    + y U = y I

    G#  :'71&=&1 %, +0/)1&54) W%- '%4-9 1-'5-9 4%05&E0&W%- * 3&P&3+ 3)' ,m4-1)'`

    O y "H * y G

    I#  :'71&=&1 %, +0/)1&54) W%- 7+07%0- -0 M1-+ 3- %, 1-75M,/%0)`

    0+3)" y I 0+3)G y UM1-+ 3-0 1-75M,/%0)y0+3)" h 0+3)G

  • 8/18/2019 Programacion Unidad 3 y 4

    24/45

    U#  :'71&=&1 %, +0/)1&54) W%- 7+07%0- -0 M1-+ 3- %, 51&M,/%0)`

    =+'- y o +05%1+ y U M1-+ 3-0 51&M,/%0) y e=+'- h +05%1+fgG

    Z#  :'71&=&1 %, +0/)1&54) W%- 7+07%0- 0+ 0),/&5%3 * -0 M1-+ 3- %,+ 7&17%,X-1-,7&+`

    1+3&) y U 0),/&5%3 3- 0+ 7&17%,X-1-,7&+ y G h 6D h 1+3&)M1-+ 3- 0+ 7&17%,X-1-,7&+ y 6D h 1+3&)G 

    \#  :'71&=&1 %, +0/)1&54) W%- 7+07%0- 0+ P-0)7&3+3 3- %, E1)*-75&0 W%- 1-7)11- G ‚4 -, Z4&,%5)'# :OE1-'+1 -0 1-'%05+3) -, 4-51)' * '-/%,3)#

     K-0)7&3+3 y -'E+7&)g5&-4E)

    o#  :'71&=&1 %, +0/)1&54) W%- 7+07%0- -0 P)0%4-, 3- %,+ -'X-1+`

    1+3&) y I P)0%4-, 3- 0+ -'X-1+ y UgI h 6D h 1+3&)I 

    T#  :'71&=&1 %, +0/)1&54) W%- -P+0m- 0+ '&/%&-,5- -OE1-'&8,`

    e+xoh7fge=xGR+fxGh= + y I9= y \97 y U

    S#  :'71&=&1 %, +0/)1&54) W%- -P+0m- 0+ '&/%&-,5- -OE1-'&8,`

    e+xZf h I g G h = R = + y I9= y \

    "H# :'71&=&1 %, +0/)1&54) W%- -P+0m- 0+ '&/%&-,5- -OE1-'&8,`

    eR= x 1+[Q7%+31+3+e=GRUh+h7fgeGh+fe-' 0+ ')0%7&8, E)'&5&P+ 3- %,+ -7%+7&8, 3- Gƒ /1+3)f

    ""# :'71&=&1 %, +0/)1&54) W%- 7+07%0- -0 M1-+ * -0 P)0%4-, 3- %, 7&0&,31)`

     . y eG h e6D h 1Gff x eeG h 6D h 1f h _f K y e6D h 1Gf h _

    "G# :'71&=&1 %, +0/)1&54) W%- 7+07%0- -0 M1-+ * -0 P)0%4-, 3- %, _-O+-31)

     . y e0h0f h \ K y 0I

    "I# :'71&=&1 %, +0/)1&54) W%- 7+07%0- -0 M1-+ * -0 P)0%4-, 3- %, E1&'4+

     . y eG he0" h 0Gff x eG h e0" h 0Iff x eGhe0G h 0Iff

     K y 0" h 0G h 0I"U# :'71&=&1 %, +0/)1&54) W%- 7+07%0- -0 M1-+ * -0 P)0%4-, 3- %, 5-51+-31)

     . y +G h 1+[Q7%+31+3+eIf K y e+I g"Gf h 1+[Q7%+31+3+ eGf

    "Z# :'71&=&1 %, +0/)1&54) W%- 7+07%0- -0 M1-+ * -0 P)0%4-, 3- %, )75+-31)

  • 8/18/2019 Programacion Unidad 3 y 4

    25/45

     . y G h +G h 1+[Q7%+31+3+eIf Kye+I gIf h 1+[Q7%+31+3+eGf

    "\# :'71&=&1 %, +0/)1&54) W%- 7+07%0- -0 M1-+ * -0 P)0%4-, 3- %, 7),)

     . y e6D h 1 h 0fx e6D h 1Gf

     K y e6D h 1G

     h _fgI"o# :'71&=&1 %, +0/)1&54) W%- 7+07%0- -0 P)0%4-, - %, -0&E')&3-

     K y eUgIf h 6D h + h = h7

    "T# :'71&=&1 %, +0/)1&54) W%- 7+07%0- %,+ -7%+7&8, 3- Gƒ /1+3)

    "S# :'71&=&1 %, +0/)1&54) W%- 7+07%0- -0 M1-+ * -0 P)0%4-, 3- %, 7&0&,31)`

    1+3&) y I+05%1+ y U

    GH# :'71&=&1 %, +0/)1&54) W%- 7+07%0- 0+ _&E)5-,%'+ 3- %, 51&M,/%0) 1-75M,/%0)

    7+5-5) " y Z7+5-5) G y Z

    G"# :'71&=&1 %, +0/)1&54) W%- 7+07%0+ -0 -W%&P+0-,5- -, /1+3)' 2+_1-,_-&5 ) N-0'&%' 3- 0+''&/%&-,5-' 5-4E-1+5%1+'#

    n-4E-1+5%1+ " y IGƒ 2+_1-,_-&5n-4E-1+5%1+ G y "H ƒ N-0'&%'

    cA-/0+ 3- I` N-0'&%' g Z y e2+_1-,_-&5 – IGf Sd

    GG# :'71&=&1 %, +0/)1&54) W%- 7+07%0- -0 ,m4-1) 3- _)1+'9 4&,%5)' * '-/%,3)' W%- _+* -, IoHH'-/%,3)'#

    GI# :'71&=&1 %, +0/)1&54) W%- 7+07%0- -0 7+E&5+0 E1)3%7&3) E)1 %, 7+E&5+0 3- "#HHH#HHH 3-E-'-5+'9 +0 7+=) 3- %, +F) 3-E)'&5+3) + %, &,5-1J' 3-0 Gu#

    GU# :'71&=&1 %, +0/)1&54) W%- 7+07%0+ 0+ '&/%&-,5- -OE1-'&8, 51&/),)4J51&7+ E+1+ %, P+0)1+,/%0+' 3- SHƒ

    e'-, O h 7)' Ofge5+, Of

    GZ# :'71&=&1 %, +0/)1&54) W%- 7+07%0- -0 -W%&P+0-,5- -, E&-' 3- %,+ 0),/&5%3 3- "H 4-51)'#

    " 4-51) RRRRRRRRRRRRR  IS#Go E%0/+3+'"G E%0/+3+' RRRRRRRR  " E&-

    G\# :'71&=&1 %, +0/)1&54) W%- 7+07%0- -0 M1-+ 3- %, 1-75M,/%0) + E+15&1 3- '%' 7))13-,+3+'`

    O" y "H OG y GH*" y "H *G y GH

  • 8/18/2019 Programacion Unidad 3 y 4

    26/45

    Go# ^, 7)7_- '- 4%-P-9 E+15&-,3) 3-0 1-E)')9 7), %,+ +7-0-1+7&8, 7),'5+,5- 3- T 4g' G# :'71&=&1 %, +0/)1&54) W%- 7+07%0-`

    +f  $+ P-0)7&3+3 &,'5+,5M,-+ +0 7+=) 3-Z '-/%,3)'#=f  $+ P-0)7&3+3 4-3&+ 3%1+,5- 0)' E1&4-1)' Z '-/%,3)' 3-0 1-7)11&3)#

    P-0)7&3+3 &,'5+,5M,-+ y P-0)7&3+3 &,&7&+0 x +7-0-1+7&8, h 5&-4E)P-0)7&3+3 4-3&+ y eP-0)7&3+3 &,&7&+0 x P-0)7&3+3 X&,+0fgG

    GT# ^, 7)_-5- '- 0+,Q+ P-15&7+04-,5- 7), %,+ P-0)7&3+3 3- ZHH 4o' 7+07%0+1 0+ P-0)7&3+3 +07+=) 3- UH '-/%,3)' 4-3&+,5- %, +0/)1&54)

    P-0)7&3+3 &,'5+,5M,-+ y eP-0)7&3+3 &,&7&+0f – e+7-0-1+7&8, 3- 0+ /1+P-3+3 h 5&-4E)f

    A-+0&Q+1 0)' '&/%&-,5-' ->-17&7&)' 7),X)14- + 0) W%- '- 5- ')0&7&5+

    "# „N%M0 -' 0+ '+0&3+ 3-0 '&/%&-,5- E1)/1+4+z

    j&,70%3- a'53&)#_b&,5 4+&,efc

    char pax [] = “Juan Sin Miedo”; printf(“%s %s/n”, pax, &pax [4] ); E%5' eE+OfkE%5' ewE+O {U| fk1-5%1, Hk

    d

    G#R :'71&=&1 * ->-7%5+1 %, E1)/1+4+ W%- &4E1&4+ '% ,)4=1- * 3&1-77&8,I#R :'71&=&1 * ->-7%5+1 %, E1)/1+4+ W%- &4E1&4+ %,+ EM/&,+ 3- 5-O5) 7), ,) 4M' 3- UH

    7+1+75-1-' E)1 0[,-+U#R ;-E%1+1 -0 E1)/1+4+ '&/%&-,5-`

    j&,70%3- a')3&)#_bP)&3 4+&,efc

    printf(“el lenguaje de programación C”) 

    Z#R :'71&=&1 %, E1)/1+4+ W%- &4E1&4+ 0+ 0-51+ Y 7), +'5-1&'7)'

    hhhhhh hh hh hhhhhhh hh hh hhhhhh 

  • 8/18/2019 Programacion Unidad 3 y 4

    27/45

    I+0=-,- P 2-3:,-

    $)' E1)/1+4+' &,5-1+75m+, 7), -0 -O5-1&)19 + 51+PJ' 3- 3+5)' 3- -,51+3+ ) 3+5)' 3- '+0&3+#$+ =&=0&)5-7+ N E1)E)17&),+ X+7&0&3+3-' E+1+ -,51+3+ * '+0&3+9 E+1+ 0) W%- 5)3) E1)/1+4+3-=-1M 5-,-1 -0 +17_&P) 3- 7+=-7-1+ '53&)#_# :, N 0+ -,51+3+ * '+0&3+ '- 0-- * -'71&=- 3-

    0)' 3&'E)'&5&P)' -'5M,3+1 3- -,51+3+ * '+0&3+9 '- 3-,)4&,+, '53&, * '53)%51-'E-75&P+4-,5-# $+ '+0&3+9 ,)14+04-,5-9 -' + E+,5+00+ 3- 0+ 7)4E%5+3)1+9 0+ -,51+3+ '-7+E5+ 3-0 5-70+3)#

    :, -0 +17_&P) '53&)# _ -'5M, 3-X&,&3+' 4+71)'9 7),'5+,5-'9 P+1&+=0-' * X%,7&),-' W%-E-14&5-, &,5-17+4=&+1 3+5)' 7), -0 -O5-1&)1# . 7),5&,%+7&8, '- 4%-'51+, 0+' 4M'_+=&5%+0-' * XM7&0-' 3- %5&0&Q+1#

    c%4#$%

    $+ '+0&3+ 3- 3+5)' 3- %, E1)/1+4+ '- E%-3- 3&1&/&1 + 3&P-1')' 3&'E)'&5&P)'9 E+,5+00+9&4E1-')1+9 +17_&P)'#

    $+ '+0&3+ W%- '- 51+5+ + 7),5&,%+7&8, P+ + '-1 + E+,5+00+9 +3-4M' '-1M X)14+5-+3+# $+X%,7&8, E1&,5Xe f P&'%+0&Q+ -, 0+ E+,5+00+ 3+5)' 3-0 E1)/1+4+9 51+,'X)14+ 0)' 3+5)'9 W%--'5M, -, 1-E1-'-,5+7&8, =&,+1&+9 + .LNDD '-/m, 0)' 783&/)' 51+,'4&5&3)'# .'[9 E)1 ->-4E0)9

    '%4+ y )k'%4+ y '%4+x"HkE1&,5Xe~u' u3~9~L%4+ y ~9'%4+fk

    P&'%+0&Q+

    L%4+ y "H

    :0 ,m4-1) 3- +1/%4-,5)' 3- E1&,5Xef -' &,3-X&,&3)9 E)1 0) W%- '- E%-3-, 51+'4&5&1 7%+,5)'3+5)' '- 3-'--# .'[9 '%E),&-,3) W%-`

    & y Z > y "G 7 y }.} , y UH#oS"Z"G0+ '-,5-,7&+

    E1&,5Xe~u3 u3 u7 uX~9&9>979,fkP&'%+0&Q+1M -, E+,5+00+

    Z "G . UH#oS"Z"G

    $+ X)14+ /-,-1+0 W%- 5&-,- 0+ X%,7&8, E1&,5X ef

    E1&,5X e7+3-,+i3-i7),51)09 3+5)"9 3+5)G9 ###f

    7+3-,+i3-i7),51)0 7),5&-,- 0)' 5&E)' 3- 0)' 3+5)' * X)14+ 3-4)'51+10)'#

  • 8/18/2019 Programacion Unidad 3 y 4

    28/45

    3+5)09 3+5HG ### P+1&+=0-'9 7),'5+,5-'9 3+5)' 3- '+0&3+#

    E1&,5Xef 7),P&-15-9 3+ X)14+ 3- '+0&3+ + 0)' 3+5)' * 0)' -'71&=- -, E+,5+00+# $+ 7+3-,+ 3-7),51)0 7),5&-,- 783&/)' 3- X)14+5) W%- '- +')7&+, %,) + %,) 7), 0)' 3+5)'# N+3+ 783&/)7)4&-,Q+ 7), -0 7+1M75-1 u9 + 7),5&,%+7&8, E%-3- -'E-7&X&7+1'- -0 +,7_) 4[,&4) 3-0 3+5)* 5-14&,+ 7), -0 7+1M75-1 3- 7),P-1'&8,# .'[9 '%E),&-,3) W%-

    & y "" > y "G 7 y }.} , y UH#oS"Z"G

    E1&,5Xe~uO uI3 u7 u#IX~9&9>979,fkP&'%+0&Q+1M -, E+,5+00+

    Y "G . UH#oSG:0 E1&4-1 3+5) -' "" -, _-O+3-7&4+0 euOf9 -0 '-/%,3) -' -0 ,m4-1) -,5-1) "G -, %,+,7_) 0- '&/%- -0 7+1M75-1 . *9 E)1 m05&4)9 -0 ,m4-1) 1-+0 , 1-3),3-+3) + I 7&X1+'3-7&4+0-' eu# I Xf# ^, '&/,) 4-,)' + 7),5&,%+7&8, 3- u &,3&7+ W%- -0 3+5) '- +>%'5- + 0+&QW%&-13+ -, P-Q 3-0 +>%'5- + 0+ 3-1-7_+ E)1 3-X-75)#

    E1&,5Xe~u"Z'~9~C

  • 8/18/2019 Programacion Unidad 3 y 4

    29/45

      u"X :0 3+5) '- 7),'&3-1+ 3- 5&E) 3)%=0-#

    N %5&0&Q+ '-7%-,7&+' 3- -'7+E- E+1+ P&'%+0&Q+1 7+1+75-1-' W%- ,) -'5M, 1-E1-'-,5+3)' E)1'[4=)0)' 51+3&7&),+0-'9 5+0-' 7)4) l +9 l=9 -57# $+' '-7%-,7&+' 3- -'7+E- 70M'&7+' '-4%-'51+, -, 0+ n+=0+ '&/%&-,5-#

    $+' '-7%-,7&+' 3- -'7+E- E1)E)17&),+, X0-O&=&0&3+3 -, 0+' +E0&7+7&),-' 4-3&+,5- -X-75)'-'E-7&+0-'#

    E1&,5Xe~l, :11)1 R 6%0'+1 %,+ 5-70+ E+1+ 7),5&,%+1 l,~fkE1&,5Xe~l,~fk gh '+05+ + %,+ ,%-P+ 0[,-+ hgE1&,5Xe~r) -'5)* E1-)7%E+3)l, ,) E)1 -0 l, '&,) E)1 5l,~f k

    0+ m05&4+ '-,5-,7&+ P&'%+0&Q+ r) -'5)* E1-)7%E+3),) E)1 -0

    '&,) E)1 5

    3-=&3) + W%- 0+ '-7%-,7&+ 3- -'7+E-} l,} '&/,&X&7+ ,%-P+ 0[,-+ ) '+05) 3- 0[,-+#

  • 8/18/2019 Programacion Unidad 3 y 4

    30/45

     :>-4E0)

    :0 0&'5+3) L:N:LN# N %5&0&Q+ '-7%-,7&+' 3- -'7+E-9 5+0-' 7)4) -4&5&1 '),&3)' eE&5&3)'f -, -05-14&,+0 3)' P-7-' * + 7),5&,%+7&8, E1-'-,5+1 3)' 1-51)7-')' 3- -'E+7&)' -, =0+,7)#

     gh 61)/1+4+`L:N:LN#N61)E8'&5)` ?)'51+1 X%,7&),+4&-,5) 3- '-7%-,7&+' 3- -'7+E-hg

    j&,70%3- a'53&)#_ b&,5 4+&, e fc

    7_+1 '),&3)'y}l+}k gh '-7%-,7&+ 3- -'7+E- +0+14+ -,'),&3)' hg

    7_+1 ='y}l=}k gh +04+7-,+ '-7%-,7&+ -'7+E-1-51)7-') -, ='

    E1&,5Xe~u7u7~9'),&3)'9'),&3)'fk gh -4&5- -0 '),&3) 3)' P-7-' hg

    E1&,5Xe~ˆˆ~fk gh &4E1&4- 3)' 7+1+75J1-' hgE1&,5Xe~u7u7~9='9='fk gh 4%-P- -0 7%1'+1 +0 E1&4-1 7+1M75-1}ˆ} hg

    1-5%1, Hkd

    I"aD%$%

    $+ -,51+3+ 3- 3+5)' + %, E1)/1+4+ E%-3- 5-,-1 3&P-1'+' X%-,5-'9 5-70+3)9 +17_&P)' -,3&'7)# $+ -,51+3+ W%- 7),'&3-1+4)' +_)1+ -' + 51+PJ' 3-0 5-70+3)9 +')7&+3) +0 +17_&P)-'5M,3+1 3- -,51+3+ '53&,# $+ X%,7&8, 4+' %5&0&Q+3+9 E)1 '% P-1'+5&0&3+39 E+1+ -,51+3+X)14+5-+3+ -' '7+,Xef #

    :0 +17_&P) 3- 7+=-7-1+ ' 5 3& ) # _ 3- 0+ =&=0&)5-7+ N E1)E)17&),+ 0+ 3-X&,&7&8, e-0 E1)5)5&E)f3- '7+,X ef9 +'[ 7)4) 3- )51+' X%,7&),-' 3- -,51+3+ ) 3- '+0&3+# $+ X)14+ /-,-1+0 W%-5&-,- 0+ X%,7&8, '7+,Xef#

    '7+,Xe7+3-,+i3-i7),51)09 P+1"9 P+1G9 P+1I9###f

    7+3-,+i3-i7),51)0 7),5&-,- 0)' 5&E)' 3- 0)' 3+5)' * '& '- 3-'-+ '%+,7_%1+#

     K+1"9 P+1G ### P+1&+=0-' 3-0 5&E) 3- 0)' 783&/)' 3- 7),51)0#

    $)' 783&/)' 3- X)14+5) 4M' 7)4%,-' '), 0)' *+ &,3&7+3)' -, 0+ '+0&3+# L- E%-3-, +F+3&197)4) '%X&>) 3-0 783&/)9 7&-15)' 4)3&X&7+3)1-' 7)4) " ) $# :0 '&/,&X&7+3) -' €0+1/)9+E0&7+3) + X0)5+ eu"Xf &,3&7+ 5&E) 3)%=0-9 +E0&7+3) + &,5 eu"3f &,3&7+ -,5-1) 0+1/)#

    &,5 , k 3)%=0- O k'7+,Xe~u3 u"X~9w,9wOf k

    $+ -,51+3+ 5&-,- W%- '-1 3- 0+ X)14+

  • 8/18/2019 Programacion Unidad 3 y 4

    31/45

     "IU R"#U:RU

    :, -'5- 7+') 0+ X%,7&8, '7+,X ef 3-P%-0P- ,y"IU OyR"#U:RU e-, 3)=0- E1-7&'&8,f# $)'+1/%4-,5)' P+109 P+1G ### 3- 0+ X%,7&8, '7+,X ef '- E+'+, E)1 3&1-77&8, ) 1-X-1-,7&+ + '-14)3&X&7+3)' E)1 0+ X%,7&8, E+1+ 3-P)0P-1 0)' 3+5)'# 6)1 -00) ,-7-'&5+, -0 )E-1+3)1 3-3&1-77&8,9 -0 E1-X&>) w# ^, -11)1 X1-7%-,5- '- E1)3%7- +0 -'71&=&19 E)1 ->-4E0)9

    3)%=0- O k'7+,Xe~u"X~9Of k

    -, P-Q 3-

    '7+,Xe~u"X~9wOfk

    $+' P+1&+=0-' W%- '- E+'+, + '7+,X ef '- 51+,'4&5-, E)1 1-X-1-,7&+ E+1+ E)3-1 '-1

    4)3[X&7+3+' * 51+,'4[5[1 0)' 3+5)' 3- -,51+3+9 E+1+ -00) '- _+7-, E1-7-3-1 3- w#

    ^, ->-4E0) 5[E&7) -' -0 '&/%&-,5-`

    E1&,5Xe~D,51)3%Q7+ P" * PG`~fk'7+,Xe~u3 uX~9wP09wPGfk gh0-75%1+ P+0)1-' P" * PG

    hg

    E1&,5Xe~E1-7&) 3- P-,5+ +0 Em=0&7)~fk'7+,Xe~uX~9w61-7&)iP-,5+fk

    printf{"Base y altura: “); '7+,Xe~uX uX~9w=9w_fk

    $+ X%,7&8, '7+,X ef 5-14&,+ 7%+,3) _+ 7+E5+3) 5+,5)' 3+5)' 7)4) 783&/)' 3- 7),51)0 '-_+, -'E-7[X&7+3)9 ) 7%+,3) %, 3+5) ,) 7)&,7&3- 7), -0 783&/) 3- 7),51)0 -'E-7&X&7+3)#

    :>-4E0)

    „N%M0 -' 0+ '+0&3+ 3-0 '&/%&-,5- E1)/1+4+9 '& '- &,51)3%7-, E)1 5-70+3) 0+' 0-51+' $(z

    j&,70%3- a'53&)#_b

    &,5 4+&,efc7_+1 E1&4-1)9 %05&4)kE1&,5Xe~D,51)3%Q7+ '% E1&4-1+ * m05&4+ &,&7&+0`~fk'7+,Xe,u7 u7,9wE1&4-1)9w%05&4)fkE1&,5Xe,C)0+9 u7 # u7 #l,~9E1&4-1)9%05&4)fk1-5%1, H

    d

  • 8/18/2019 Programacion Unidad 3 y 4

    32/45

     c%4#$% $I 7%$I"%c $I 7%D%7aIDIc

    N), 0+ X%,7&8, E1&,5X ef '- E%-3- 3+1 '+0&3+ + 7%+0W%&-1 3+5)9 +')7&M,3)0) -0 783&/) W%- 0-7)11-'E),3-# :, E+15[7%0+19 E+1+ 3+1 '+0[3+ + %,+ 7+3-,+ 3- 7+1+75-1-' '- %5&0&Q+ -0 783&/)u'# .'[9

    7_+1 +1=)0 {| y ~.7-=)~kE1&,5Xe~u'l,~9+1=)0fk

    6+1+ '+0&3+ 3- 7+3-,+'9 0+ =[=0&)5-7+ N E1)E)17[),+ 0+ X%,7[8, -'E-7[X&7+ E%5' e f # 00-,- %,')0) +1/%4-,5)9 W%- -' %,+ 7+3-,+ 3- 7+1+75-1-'# :'71&=- 0+ 7+3-,+ -, 0+ '+0&3+ -'5M,3+1eE+,5+00+f * +F+3- -0 X&, 3- 0[,-+# .'[9

    E%5'e+1=)0fk

    4%-'51+ -, E+,5+00+ 0) 4&'4) W%- E1&,5X e~u'l,~9 +1=)0f k

    :>-4E0)

    „ N%M0 -' 0+ '+0&3+ 3-0 '&/%&-,5- E1)/1+4+z

    j&,70%3- a'53&)#_bj3-X&,- n ~n+4=)1 3- _)>+0+5+#~&,5 4+&,efc

    7_+1 '5{G"|y~n)3) E%-3- _+7-1'-#~E%5' enfkE%5'e~6-14&') E+1+ '+0&1 -, 0+ X)5)#~fkE%5'e'5fkE%5' ew'5 {T| fk1-5%1, Hk

    d

    I"aD%$% $I 7%$I"%c $I 7%D%7aIDIc

    $+ -,51+3+ 3- %,+ 7+3-,+ 3- 7+1+75-1-' '- _+7- 7), 0+ X%,7&8, 4M' /-,-1+0 '7+,X ef * -0783&/) u'# .'[9 E)1 ->-4E0)9

    7_+1 ,)4=1-{Z"|‰

    E1&,5Xe~])4=1- 3-0 +50-5+` ~fk'7+,Xe~u'~9,)4=1-fkE1&,5Xe~])4=1- &,51)3%7&3)` u'~9,)4=1-fk

    $+ -,51+3+ 3-0 ,)4=1- E)31[+ '-1

    (%,&E-1) L-11+

  • 8/18/2019 Programacion Unidad 3 y 4

    33/45

    $+ '+0&3+

    ])4=1- &,51)3%7&3)` (%,&E-1)

    '7+,X ef 7), -0 783&/) u' 7+E5+ E+0+=1+'9 -0 71&5-1&) 3- 5-14&,+7&8, -' -0 -,7),51+1'- %,=0+,7)9 ) =&-, X&, 3- 0[,-+#

    n+4=&J, 7)4-,5+1 W%- ,)4=1- ,) 5&-,- W%- &1 E1-7-3&3) 3-0 )E-1+3)1 3- 3&1-77&8, w# :,N -0 &3-,5&X&7+3)1 3- %, +11+*9 ,)4=1- 0) -'9 5&-,- 0+ 3&1-77&8, 3-0 +11+*9 E)1 0) W%- -,'7+,X ef '- 51+,'4&5- 0+ 3&1-77&8, 3-0 +11+* ,)4=1-#

    $+ =&=0&)5-7+ 3- N 5&-,- %,+ X%,7&8, -'E-7[X&7+ E+1+ 7+E5+1 %,+ 7+3-,+ 3- 7+1+75-1-'9 0+X%,7&8, /-5' e f # N+E5+ 3-0 3&'E)'&5&P) -'5M,3+1 3- -,51+3+ %,+ 7+3-,+ 3- 7+1+75-1-'95-14&,+ 0+ 7+E5+7&8, 7), %, 1-5)1,) 3- 7+11)# :0 '&/%&-,5- ->-4E0) 4%-'51+ 784) 7+E5+1%,+ 0[,-+ 3- 7)4) 4MO&4) TH 7+1+75-1-'#

    7_+1 0&,-+{T"|9

    E%5'e~])4=1- * 3&1-77&8,~fk/-5'e0&,-+fk

    $+ X%,7&8, /-5' ef 5&-,- %, ')0) +1/%4-,5)9 %,+ P+1&+=0- 5&E) 7+3-,+# N+E5+ 0+ 7+3-,+ 3--,51+3+* 0+ 3-P%-0P- -, 0+ P+1&+=0- E+'+3+ 7)4) +1/%4-,5)#

    /-5'eP+1&+=0-i7+3-,+fk

    n+,5) 7), '7+,X ef 7)4) 7), /-5' e f9 -0 E1)/1+4+ &,'-15+ +0 X&,+0 3- 0+ 7+3-,+ -0 7+1M75-1W%- &,3&7+ X&, 3- 7+3-,+9 -0 7+1M75-1 ,%0)9 lH# L&-4E1- _+* W%- 3-X&,&1 0+' 7+3-,+' 7), %,-'E+7&) 4M' 3-0 E1-P&'5) 7)4) 4MO&4+ 0),/&5%3 E+1+ -0 7+1M75-1 X&, 3- 7+3-,+#

    OTRAS FUNCIONES DE ENTRADA Y SALIDA

    La biblioteca de C++ proporciona facilidades para entrada y salida que son másconvenientes qwue las funciones de biblioteca clásica. En C++ la entrada y salida se leey escribe en flujos (stream). Cuando iostream.h se incluye en un programa, diferentesflujos estándar son definidos automáticamente. El flujo cin, se utiliza para entrada, quenormalmente se lee de teclado. El flujo cout se utiliza para salida y, normalmente, seenvía a la pantalla del usuario.

    SALIDA (cout)

    El operador de inserción,

  • 8/18/2019 Programacion Unidad 3 y 4

    34/45

    Esto es una cadena

    Es posible utilizr una serie de operaciones n; cin >> x;

    Los operadores de extracción e inserción, >, apuntan en la dirección del flujo dedatos,

    cout > v1>>v2;cout Precio_venta;

    DIcB4bID 4Bc c#C!#I"aIc JDBA4Ie%c I" JcI!$B7B$#CBh 4I"C!%kI 7(

    "#  :'71&=&1 %, +0/)1&54) W%- '%4- 7%+51) ,m4-1)' &,51)3%7&3)' E)1 5-70+3)

    G#  :'71&=&1 %, +0/)1&54) W%- '%4-9 1-'5-9 4%05&E0&W%- * 3&P&3+ 3)' ,m4-1)' &,51)3%7&3)' E)15-70+3)

    I#  :'71&=&1 %, +0/)1&54) W%- 7+07%0- -0 M1-+ 3- %, 1-75M,/%0) &,51)3%7&-,3) 0)' P+0)1-' E)1

    5-70+3)`

    2)14%0+` M1-+ 3-0 1-75M,/%0) y 0+3)" h 0+3)G

    U#  :'71&=&1 %, +0/)1&54) W%- 0-+ %, ,m4-1) * -'71&=+ '% 7%+31+3)

    Z#  :'71&=&1 %, +0/)1&54) W%- '%4-9 1-'5-9 4%05&E0&W%- * 3&P&3+ 3)' ,m4-1)' &,51)3%7&3)' E)15-70+3)

  • 8/18/2019 Programacion Unidad 3 y 4

    35/45

    \#  :'71&=&1 %, +0/)1&54) W%- 7+07%0- * -'71&=+ 0+ '%4+ 3-0 7%+31+3) 3- I ,%4-1)'

    o#  :'71&=&1 %, +0/)1&54) W%- 0-+ %, ,m4-1) * -'71&=+ '% 7%+31+3)

    T#  :'71&=&1 %, +0/)1&54) W%- 0-+ 3-'3- 5-70+3) -0 &4E)15- =1%5) 3- %,+ X+75%1+ * 3-5-14&,- -0&4E)15- ,-5) '-/m, 0)' '&/%&-,5-' 71&5-1&)'#

    D4E)15- =1%5) 4-,)1 3- GH#HHH Rb '&, 3-'7%-,5)D4E)15- =1%5) 4+*)1 3- GH#HHH Rb "Zu 3- 3-'7%-,5)

    !"#$%$ #b

    E(  I20=*90*=-2 ,/ $/9:2:H+ P 71+0=13

    71.8/0/+9:- /28/9;

     %90:?:,-,/2 ,/ -8=/+,:@-6/>

    A#A4#BCD%)#%>

    o#  $%&' ()*+,-' ./%&0+1# 2%,3+4-,5)' 3- 61)/1+4+7&8,# .0/)1&54)'9 :'51%75%1+ 3-;+5)' * -5)'# [email protected] CD$$# :'E+F+ GHHI#

    T#  ()'J K+'7),7-0)' L+,5&00M,# D,51)3%77&8, + 0+ 7)4E%5+7&8,# 6%=0&7+7&),-' N%05%1+0#?JO&7) GHHH#

    S#  @%&00-14) $-P&,- @%5&-11-Q# D,51)3%77&8, + 0+ 7)4E%5+7&8, * + 0+ 61)/1+4+7&8,:'51%75%1+3+# [email protected]$$# ?JO&7) "STU#

    "H# 6+51&7&+ V%&1)/+# .1W%&5-75%1+ 3- N)4E%5+3)1+'# .0X+)4-/+# Y%-,)' .&1-' GH"H#""# (+&4- ?+15[,-Q @+1Q+9 ()1/- ./%'5&,

  • 8/18/2019 Programacion Unidad 3 y 4

    36/45

     CONTROL SECUENCIALLas estructuras de control secuencial son las que se dan las instrucciones seguidas una auna sin tener un birfucación ni una toma de decisión. (Este tema se vió en la unidadanterior).

    ESTRUCTURAS SELECTIVAS.

    PROPOSICION IF - ELSE 

    Esta proposición sirve para ejecutar ciertas sentencias de programa , si una expresiónresulta CIERTA ú otro grupo de sentencias, si aquella resulta FALSA. Su interpretaciónliteral sería : SI es CIERTA tal cosa , haga tal otra , si no lo es salteéla

    El caso más sencillo sería :

    if(expresión)

    sentencia ;óif(expresión) sentencia ;

    Cuando la sentencia que sigue al IF es única, las dos formas de escritura expresadasarriba son equivalentes . La sentencia sólo se ejecutará si el resultado de "expresión" esdistinto de cero (CIERTO) , en caso contrario el programa salteará dicha sentencia ,realizando la siguiente en su flujo.

    Veamos unos ejemplos de las distintas formas que puede adoptar la "expresión" dentrode un IF :

    if( a > b ) if( (a > b) != 0 ) las dos expresiones son idénticas, aunque aveces resulta más claro expresarla de lasegunda manera, sobre todo en losprimeros contactos con el lenguaje.

    if(a) if(a != 0)

    if(!a) if(a == 0 ) Las dos superiores son idénticas entre sí , aligual que las dos inferiores Obsérvese que(!a) dará un valor CIERTO sólo cuando asea FALSO. (ver operador NEGACION en el

    capítulo anterior )if( a == b )

    if( a = b ) /* Error */ La primera es una expresión correcta , el IFse realizará sólo si a es igual a b. En cambiola segunda es un error , ya que no se estácomparando a con b , sino ASIGNANDO elvalor de esta a aquella . Sin embargo, aveces puede usarse como un truco (un poco

  • 8/18/2019 Programacion Unidad 3 y 4

    37/45

    sucio) de programación , ya que primero serealiza la asignación y luego se evalúa elresultado de esta para realizar el IF , esentonces equivalente a escribir :

    a = b ;

    if(a) .................... con el ahorro de una línea de programa ( acosta de la legibilidad del mismo ).

    En casos más complejos que los anteriores , la proposición IF puede estar seguida por unbloque de sentencias :

    if(expresión) if(expresión) {{ sentencia 1 ;sentencia 1 ; sentencia 2 ;sentencia 2 ; ...............

    ............. }}

    Las dos maneras son equivalentes , por lo que la posición de la llave de apertura delbloque queda librada al gusto del programador . El indentado de las sentencias (sangría)es también optativo , pero sumamente recomendable ,sobre todo para permitir la lecturade proposiciones muy complejas ó anidadas , como se verá luego. El bloque se ejecutaráen su conjunto si la expresión resulta CIERTA. El uso del ELSE es optativo , y suaplicación resulta en la ejecución de una , ó una serie de sentencias en el caso de que laexpresión del IF resulta FALSA.

    Su aplicación puede verse en el ejemplo siguiente :

    if(expresión) if(expresión){ {sentencia 1 ; sentencia 1 ;sentencia 2 ; sentencia 2 ;} }sentencia 3 ; elsesentencia 4 ; {sentencia 5 ; sentencia 3 ;

    sentencia 4 ;}sentencia 5 ;

    En el ejemplo de la izquierda no se usa el ELSE y por lo tanto las sentencias 3 , 4 y 5 seejecutan siempre . En el segundo caso , las sentencias 1 y 2 se ejecutan solo si laexpresión es CIERTA , en ese caso las 3 y 4 NO se ejecutarán para saltarse directamentea la 5 , en el caso de que la expresión resulte FALSA se realizarán las 3 y 4 en lugar delas dos primeras y finalmente la 5 La proposición ELSE queda siempre asociada al IF máscercano , arriba de él. Es común también , en caso de decisiones múltiples , el uso deanidamientos ELSE-IF de la forma indicada abajo:

  • 8/18/2019 Programacion Unidad 3 y 4

    38/45

    if(exp.1) if(exp.1)sentencia1 ; sentencia1 ;

    else if(exp.2) else if(exp.2)sentencia2 ; sentencia2 ;

    else if(exp.3) else if(exp.3)sentencia3 ; sentencia3 ;

    else elsesentencia5 ; sentencia5 ;

    Si bien se suele escribir según la modalidad de la izquierda , a la derecha hemosexpresado las asociaciones entre los distintos ELSE é IF por medio del indentado deltexto.

    PROPOSICION SWITCH

    El SWITCH es una forma sencilla de evitar largos , tediosos y confusos anidamientos deELSE-IF

    Supongamos que estamos implementando un Menú , con varias elecciones posibles . Elesqueleto de una posible solución al problema usando if-else podría ser el siguiente :

    #include main(){int c ;printf("\nMENU :") ;printf("\n A = ADICIONAR A LA LISTA ") ;printf("\n B = BORRAR DE LA LISTA ") ;printf("\n O = ORDENAR LA LISTA ") ;printf("\n I = IMPRIMIR LA LISTA ") ;printf("\n\nESCRIBA SU SELECCION , Y LUEGO : ") ;if( (c = getchar()) != '\n' ){if( c == 'A')printf("\nUD. SELECCIONO AGREGAR") ;

    elseif( c == 'B')printf("\nUD. SELECCIONO BORRAR") ;elseif( c == 'O' )printf("\nUD. SELECCIONO ORDENAR") ;

    elseif( c == 'I' )printf("\nUD. SELECCIONO IMPRIMIR") ;elseprintf("\n\a\aUD. APRETO UN CARACTER ILEGAL" ) ;

    }else

  • 8/18/2019 Programacion Unidad 3 y 4

    39/45

      printf("\n¡ UD. NO HA SELECCIONADO NADA !" ) ;}

    Como es fácil de ver , cuando las opciones son muchas, el texto comienza a hacersedifícil de entender y engorroso de escribir

    El mismo programa, utilizando un SWITCH , quedaría mucho más claro de leer, y sencillode escribir, como se aprecia en el EJEMPLO siguiente.

    #include #include main(){int c ;printf("\nMENU :") ;printf("\n A = ADICIONAR A LA LISTA ") ;printf("\n B = BORRAR DE LA LISTA ") ;printf("\n O = ORDENAR LA LISTA ") ;printf("\n I = IMPRIMIR LA LISTA ") ;printf("\n\nESCRIBA SU SELECCION , Y LUEGO : ") ;c = getchar() ;switch (c){case 'A' :printf("\nUD. SELECCIONO AGREGAR") ;break ;

    case 'B' :printf("\nUD. SELECCIONO BORRAR") ;

    break ;case 'O' :printf("\nUD. SELECCIONO ORDENAR") ;break ;

    case 'I' :printf("\nUD. SELECCIONO IMPRIMIR") ;break ;

    case '\n':printf("\n¡ UD. NO HA SELECCIONADO NADA !" ) ;break ;

    default :printf("\n\a\aUD. APRETO UN CARACTER ILEGAL" ) ;

    break ;}

    }

    El SWITCH empieza con la sentencia : switch (expresión) . La expresión contenida por losparéntesis debe ser ENTERA , en nuestro caso un carácter ; luego mediante una llaveabre el bloque de las sentencias de comparación . Cada una de ellas se representa por la

  • 8/18/2019 Programacion Unidad 3 y 4

    40/45

    palabra clave "case" seguida por el valor de comparación y terminada por dos puntos .Seguidamente se ubican las sentencias que se quieren ejecutar , en el caso que lacomparación resulte CIERTA . En el caso de resultar FALSA , se realizará la siguientecomparación , y así sucesivamente

    Prestemos atención también a la sentencia BREAK con la que se termina cada CASE.

    Una característica poco obvia del SWITCH , es que si se eliminan los BREAK delprograma anterior , al resultar CIERTA una sentencia de comparación, se ejecutarán lassentencias de ese CASE particular pero TAMBIEN la de todos los CASE por debajo delque ha resultado verdadero. Quizás se aclare esto diciendo que , las sentencias propiasde un CASE se ejecutarán si su comparación ú otra comparación ANTERIOR resultaCIERTA . La razón para este poco "juicioso" comportamiento del SWITCH es que así sepermite que varias comparaciones compartan las mismas sentencias de programa , porejemplo :

    .................case 'X' :case 'Y' :

    case 'Z' :printf(" UD. ESCRIBIO X , Y , ó Z ") ;break ;

    ..................

    La forma de interrumpir la ejecución luego de haber encontrado un CASE cierto es pormedio del BREAK , el que da por terminado el SWITCH

     Al final del bloque de sentencias del SWITCH , aparece una optativa llamada DEFAULT ,que implica : si no se ha cumplido ningún CASE , ejecute lo que sigue. Es algo superfluoponer el BREAK en este caso , ya que no hay más sentencias después del DEFAULT ,sin embargo , como el orden en que aparecen las comparaciones no tiene importanciapara la ejecución de la instrucción, puede suceder que en futuras correcciones delprograma se agregue algún nuevo CASE luego del DEFAULT , por lo que es convenientepreverlo , agregando el BREAK , para evitar errores de laboriosa ubicación.

  • 8/18/2019 Programacion Unidad 3 y 4

    41/45

     

    #( Ic7aD!7a!D%c $I 7B"aDB4 cI4I7a#b%c DIcB4bID 4Bc c#C!#I"aI I"!"7#%$Bc I"JcI!$B7g$#CB h 7B$#)#7%D4Bc % 4I"C!%kI 7(

    1. Escribir un programa que introduzca el número de un mes (1 a 12) y el año y visualice el número de días del

    mes.2. Cuatro enteros entre 0 y 100 presentan las puntuaciones de un estudiante de un curso de

    informática. Escribir un programa para encontrar la media de estas puntuaciones y visualizar una tabla denotas de acuerdo al siguiente cuadro:

    Media Puntuación90-100

    80-90

    70-80

    60-70

    0-60

     A

    B

    C

    D

    E

    3. Escribir un programa que lea dos números enteros y visualice el menor de los dos.4. Escribir un programa que resuelva la ecuación cuadrática (ax2 + bx + c = 0).5. Escribir un programa que lea tres enteros y emita un mensaje que indique si están o no en orden numérico.6. Escribir y ejecutar un programa que simule un calculador simple. Lee dos enteros y un carácter. Si el

    carácter es un +, se visualiza la suma; si es un -, se visualiza la diferencia; si es un * se visualiza el producto;si es un /, se visualiza el cociente; si es un % se imprime el resto.

    7. Construir un programa que indique si el número introducido por teclado es positivo, igual a cero o negativo.8. Se desea leer las edades de 3 hijos de un matrimonio y escribir la edad mayor, la menor y la media de las 3

    edades.9. Escribir un programa que acepte fechas escritas de modo usual y las visualice como 3 números. Por ejemplo,

    la entrada 15, de febrero 1989 producirá la salida 15 02 1989.

    ##( IkID7#7#Bc $I IcaD!7a!D%c $I 7B"aDB4 cI4I77#g" el4a#J4I   DIcB4bID 4Bc c#C!#I"aII"!"7#%$Bc I" JcI!$B7g$#CB h 7B$#)#7%D4Bc % 4I"C!%kI 7(

    10. Escribir un programa que visualice un menú con las siguientes opciones :1. Círculo (radio)2. Cuadrado (lado)3. Rectángulo (base y altura)4. Triángulo equilátero (lado)5. Salir

    Leer únicamente los datos que se te indican en cada opción y para todos calcular el perímetro y área. El

    menú no debe aceptar otras opciones que no sean del 1 al 5 y debe regresar al mismo menú después deejecutar cada opción exceptuando la de salir.

    11. Escribir un programa que visualice un menú con las siguientes opciones :1. Leer 2 números2. Sumarlos3. Restarlos4. Multiplicarlos5. Dividirlos6. Intercambiarlos7. Salir

  • 8/18/2019 Programacion Unidad 3 y 4

    42/45

    ESTRUCTURAS DE REPETICIÓN.

    Repetir mientras Selectiva simple (si).

    LA ITERACION WHILE (MIENTRAS)

    El WHILE es una de las tres iteraciones posibles en C . Su sintaxis podría expresarse dela siguiente forma :

    while(expresion) ó while(expresión) {proposición 1 ; proposición 1 ;

    proposición 2 ;...............proposición n ;}

    Esta sintaxis expresada en palabras significaría: mientras (expresión) dé un resultado

    CIERTO ejecútese la proposición 1 , en el caso de la izquierda ó ejecútese el bloque desentencias , en el caso de la derecha

    Por lo general , dentro de la proposición ó del bloque de ellas , se modifican términos dela expresión condicional , para controlar la duración de la iteración .

    Repetir hasta.

    LA ITERACION DO  – WHILE (REPETIR HASTA)

    Su sintaxis será :

    do {proposición 1 ;proposición 2 ;...............

    } while (expresión) ;Expresado en palabras , esto significa : ejecute las proposiciones , luego repita laejecución mientras la expresión dé un resultado CIERTO . La diferencia fundamental entreesta iteración y la anterior es que el DO-WHILE se ejecuta siempre AL MENOS una vez ,sea cual sea el resultado de expresión. 

    Repetir desde.

    ITERACION FOR (REPETIR DESDE)

    El FOR es simplemente una manera abreviada de expresar un WHILE , veamos susintaxis :

    for ( expresión1 ; expresión2 ; expresion3 ) {proposición1 ;

  • 8/18/2019 Programacion Unidad 3 y 4

    43/45

      proposición2 ;..............

    }Esto es equivalente a :expresión1 ;while ( expresión2 ) {

    proposición1 ;proposición2 ;..............expresion3 ;

    }

    La expresión1 es una asignación de una ó más variables , (equivale a una inicializaciónde las mismas ) , la expresión2 es una relación de algun tipo que , mientras dé un valorCIERTO , permite la iteración de la ejecución y expresión3 es otra asignación , quecomúnmente varía alguna de las variables contenida en expresión2

    Todas estas expresiones , contenidas en el paréntesis del FOR deben estar separadaspor PUNTO Y COMA y NO por comas simples.

    No es imprescindible que existan TODAS las expresiones dentro del paréntesis del FOR ,pudiéndose dejar en blanco algunas de ellas , por ejemplo :

    for ( ; exp2 ; exp3) ófor (exp1 ; ; ) ófor ( ; ; )

    Estas dos últimas expresiones son interesantes desde el punto de vista de su falta detérmino relacional , lo que implica que el programador deberá haber previsto algunamanera alternativa de salir del lazo ( probablemente mediante BREAK ó RETURN comoveremos más adelante ) ya que sino , la ejecución del mismo es infinita ( ó tan larga como

    se mantenga encendida la computadora ) .

    LA SENTENCIA BREAK

    El BREAK , ya brevemente descrito con el SWITCH , sirve también para terminar loopsproducidos por WHILE , DO-WHILE y FOR antes que se cumpla la condición normal determinación . En el EJEMPLO siguiente vemos su uso para terminar un WHILEindeterminado.

    #include

    #include main(){char c ;printf("ESTE ES UN LOOP INDEFINIDO ") ;while(1) {printf( "DENTRO DEL LOOP INDEFINIDO (apriete una tecla):" ) ;if( (c = getch()) == 'Q' )break ;

  • 8/18/2019 Programacion Unidad 3 y 4

    44/45

      printf( "\nNO FUE LA TECLA CORRECTA PARA ABANDONAR EL LOOP ") ;}printf("\nTECLA CORRECTA : FIN DEL WHILE ") ;

    }

    Obsérvese que la expresión while(1) SIEMPRE es cierta , por lo que el programa correráimparable hasta que el operador oprima la tecla "secreta" Q . Esto se consigue en el IF ,ya que cuando c es igual al ASCII Q se ejecuta la instrucción BREAK ,dando porfinalizado el WHILE

    El mismo criterio podría aplicarse con el DO-WHILE ó con FOR , por ejemplo haciendo

    for (;;) { /* loop indefinido */............if( expresión )break ; /* ruptura del loop cuando expresión sea verdadera */

    }

    LA SENTENCIA CONTINUE 

    La sentencia CONTINUE es similar al BREAK con la diferencia que en vez de terminarviolentamente un loop , termina con la realización de una iteración particular y permitiendoal programa continuar con la siguiente.

    ##(  IcaD!7a!D%c $I 7B"aDB4 DIJIa#a#b%c   DIcB4bID 4Bc c#C!#I"aI I"!"7#%$Bc I"JcI!$B7g$#CB h 7B$#)#7%D4Bc % 4I"C!%kI 7(

    1. Escriba un programa que calcule y visualice 1+2+3+….+(n -1)+n, en donde n es un valor de un datopositivo.

    2. Escribir un programa que visualice la siguiente salida:

    1

    21 2 31 2 3 41 2 3

    21

    3. Diseñar e implementar u n programa que lea un total de 10 números y cuente el número de sus entradasque son positivos.

  • 8/18/2019 Programacion Unidad 3 y 4

    45/45

    4. Diseñar e implementar un programa que solicite al usuario un valor no negativo n y visualice la siguientesalida (ejemplo n=6):

    2 3 4 5 61 2 3 4 52 3 41 2 3

    21

    5. Escribir un programa que lea un límite máximo entero positivo y visualice todas las potencias de la base,menores que el valor especificado límite máximo.

    6. Diseñar un programa que sume los m=30 primero números pares.