Professional Documents
Culture Documents
Andrs Arcia Departamento de Computacin Escuela de Ingeniera de Sistemas Facultad de Ingeniera Universidad de Los Andes
13/04/05
Programacin I
La Operacin Asignacin
variable = expresin; La sentencia de asignacin es un modo de darle valores a una variable. La expresin se evala y el resultado es asignado a la variable. La sentencia de asignacin modifica el contenido de una variable.
variable = valor constante; variable = variable; variable = expresin;
13/04/05 Programacin I
x = 3; x = y; x = (y + 1)/2;
2
La Operacin Asignacin
Ejemplos a = b; suma = 60; Cul ser el valor que tomar la variable D tras la ejecucin de las siguientes instrucciones ?
A= B= C= D= 12; A + 5; B - 2; C + (A + B);
13/04/05
Programacin I
Expresiones
Puede ser: Una variable Una constante Una combinacin de operadores y operandos.
13/04/05
Programacin I
Expresiones
Operandos: constantes, variables u otras expresiones. Operadores: Smbolo que indica al compilador que ejecute determinadas operaciones con los elementos sobre los que opera (aritmticos, lgicos, de cadena y relacionales).
13/04/05
Programacin I
Expresiones
Tipos de expresiones
Aritmticas: Los operandos que intervienen en ella son numricos, el resultado es numrico y los operadores son aritmticos. Lgicas: Su resultado es CIERTO FALSO. Se construyen mediante los operadores relacionales y lgicos.
13/04/05
Programacin I
Operadores Aritmticos
Operacin Operador
Suma Resta Multiplicacin Divisin Resto de la Divisin Incremento Decremento + x /
Expresin algebrica
A+3 B-C XxY X/Y X Y I+1 I-1
13/04/05
Programacin I
Operadores Aritmticos
Incremento (++)
Para n = 2, la ejecucin de la sentencia i = n++; // post-incremento asigna el valor 2 a i y despus incrementa el valor de n a 3. i=2 n=3 La ejecucin de la sentencia i = ++n; // pre-incremento incrementa el valor de n a 4 y despus asigna este valor a i. n=4 i=4
13/04/05 Programacin I 8
Operadores Aritmticos
Decremento (--)
Para n = 5, la ejecucin de la sentencia i = n--; // post-decremento asigna el valor 5 a i y despus decrementa el valor de n a 4. i=5 n=4 La ejecucin de la sentencia i = --n; // pre-decremento decrementa el valor de n a 3 y despus asigna este valor a i. n=3 i=3
13/04/05 Programacin I 9
Operadores Aritmticos
Incremento/ decremento
Siempre que pueda, no utilice ++a; o --a; aunque son operaciones vlidas. Puede utilizar incrementos/ decrementos en una expresin, por ejemplo x =5 +y++; Equivalente a x =5 +y; y++; Se utilizan slo con variables enteras.
13/04/05
Programacin I
10
Operadores Aritmticos
Los operadores +, -, *, /, se pueden usar con operandos (constante, variable o expresin) tanto enteros como reales. La divisin de enteros da como resultado un entero. 17/5 = 3 El operador mdulo (%) slo puede ser utilizado con operandos enteros. La expresin a%b da como resultado el resto de la divisin entera de dos nmeros a y b. 17%5 = 2
13/04/05
Programacin I
11
Operadores Aritmticos
Ejemplos
a+b*c (votos/electores) * 100 a*x*x + b*x + c (alto - bajo)/2 horas*3600 + minutos*60 + segundos numero%2
13/04/05
Programacin I
12
Operadores Aritmticos
Los operandos de una expresin aritmtica deben satisfacer las siguientes reglas:
6 6 6
Si ambos operandos son de tipo entero entonces el resultado es de tipo entero. Si uno de los operandos o ambos operandos son de tipo real entonces el resultado es de tipo real. Si la expresin evaluada da como resultado un valor de tipo entero y la variable a la cual se le va a asignar este valor es de tipo real, entonces el resultado ser convertido automticamente al tipo real antes de realizar la asignacin.
Si la expresin evaluada da como resultado un valor de tipo real y la variable a la cual se le va a asignar este valor es de tipo entero, entonces el resultado ser convertido automticamente al tipo entero antes de realizar la asignacin. 6 En general los tipos de datos son promovidos, desde un tipo mas angosto hacia uno ms amplio. Ej: de int a float. 6 Cuando hay conversiones de datos ms grandes a datos ms pequeos, ocurre un truncamiento de los bits mas significativos
6
13/04/05 Programacin I 13
Operadores Aritmticos
Si alguno de los dos operadores es long double, convierta el otro a long double. Si no, si cualquier operador es double, convierta el otro a double. Si no, si cualquier operador es float, convierta el otro a float. Si no, convierta char y short a int. Luego, si algun operador el long, convierta el otro a long.
13/04/05
Programacin I
14
13/04/05
Programacin I
15
13/04/05
Programacin I
16
13/04/05
Programacin I
17
13/04/05
Programacin I
18
13/04/05
Programacin I
20
13/04/05
Programacin I
21
13/04/05
Programacin I
22
13/04/05
Programacin I
23
13/04/05
Programacin I
24
13/04/05
Programacin I
25
13/04/05
Programacin I
26
Algoritmo
0. 1. 2. 3. 4. centi) 5. Fin Inicio Escribir (Introduzca la temperatura Fahrenheit: ) Leer (fahr) centi = (fahr - 32.0) (5.0/9.0) Escribir (Temperatura equivalente en C es ,
13/04/05
Programacin I
27
13/04/05
Programacin I
28
13/04/05
Programacin I
29
13/04/05
Programacin I
30
13/04/05
Programacin I
31
13/04/05
Programacin I
32
13/04/05
Programacin I
33
Inicio Escribir (Introduzca los valores de x1 y x2) Leer (x1, x2) y1 = 3x1 - 1 y2 = 3 x2 - 1 Escribir (x1=, x1, ,, y1=, y1) Escribir (x2=, x2, ,, y2=, y2) Fin
Programacin I 34
13/04/05
Programacin I
35
Operadores de Asignacin en C
Operador Expresin = += -= *= /= %= Expresin abreviada x +=5 y -= z a *= b y /= 2 mes %= 2 a= a+2 x=x+5 y=y-z a=a*b y = y/2 mes = mes % 2
13/04/05
Programacin I
36
Operadores de Asignacin en C
Ejemplos a += b; x -= y; pot *= 2; x /= y + 1; suma %= 4; a = a + b; x = x - y; pot = pot * 2; x = x/(y + 1); suma = suma % 4;
13/04/05
Programacin I
37
Use asignacin mltiple solamente para asignar el mismo valor a diferentes variables.
13/04/05
Programacin I
38
Recuerde
Hemos visto cuatro maneras de asignar valores a las variables. variable = valor constante variable = variable variable = expresin Leer (variable) x=3 x=y x = (y + 1)/2 scanf(%tipo,&x);
13/04/05
Programacin I
39
13/04/05
Programacin I
40
13/04/05
Programacin I
41
13/04/05
Programacin I
42
13/04/05
Programacin I
43
13/04/05
Programacin I
44
13/04/05
Programacin I
45
13/04/05
Programacin I
46
13/04/05
Programacin I
47
13/04/05
Programacin I
48
13/04/05
Programacin I
49
Ejercicio
Si un cuerpo pesa a kp (kilopondios) en un lugar en el que la gravedad es g = 9.8 m/s2, calcular su masa. Una fuerza acta sobre un cuerpo de n kg de masa, pasando la velocidad de ste de v0 a vf m/s en t segundos. Calcular la fuerza.
13/04/05
Programacin I
50
Ejercicio
Calcular la suma de los trminos de una progresin aritmtica que empieza en 2, termina en 602 y tiene razn 2. Frmulas: an = a1 + (n - 1).r S = (an + a1).n
2
13/04/05
Programacin I
51
Ejercicio
Una progresin aritmtica de n trminos empieza en a1 y la suma de sus trminos es S. Calcular la razn. Frmulas: an = a1 + (n - 1).r S = (an + a1).n
2
13/04/05
Programacin I
52