Sei sulla pagina 1di 7

Operadores Aritmticos El lenguaje cuenta con los operadores aritmeticos bsicos, ms los operadores parntesis () para dar cierta

prioridad a operaciones que lo requieran. ( + , , * , / ) = (adicin , sustraccin , multiplicacin , divisin)

*nota : % = operador mdulo o resto de la divisin.

( en algoritmos puede aparecer como MOD() o como RESTO() ) int result, a = 8, b = 2; result = a % b; /* result = 0 */ result = a b; /* result = 6 */ b = 3; result = a % b; /* 8 % 3 > result = 2 */ result = a / 5; /* 8 / 5 > result = 1 */ * Notar que la sentencia de asignacin, termina con un punto y coma, y las variables se declaran slo una vez (caso de la variable b).

Diferencias de la divisin segn el tipo de los operandos a) Si uno o ms de los operandos es una variable de tipo punto flotante (double, float), entonces la divisin es real. b) Si los dos operandos son variables enteras (int, long,short,byte), entonces la divisin es entera. Tipo de Divisin int / int int / double double / int double / double Resultado int double double double Ejemplo 3/2=1 3.0 / 2.0 = 1.5 1.0 / 2 = 0.5 6.0 / 5.0 = 1.2

Ejercicio : Cual es el valor final de a y de b int a = 3; double b = 2.0;

a = 3 / b; /* a vale 1 o 1.5 ? */ b = 3 / 2; /* ? */ Operador de post y pre incremento Generalmente en un programa, se tienen que hacer incrementos o decrementos de una unidad para variables enteras de la manera : var = var + 1; o var = var 1; En Java como tambin en otros lenguajes de programacin, se ha incluido el operador ++ y

para realizar estas asignaciones de manera ms corta. variable++ , ++variable : variable = variable + 1

variable , variable : variable = variable 1 La mayor diferencia de estos mtodos, se encuentra en la asignacin de variables. En primer lugar, veremos este tipo de asignacin cuando en la sentencia no existe otra variable involucrada. Ej : int a = 5; /* la variable a, toma como valor 5*/ a++; /* la variable se post incrementa y toma el valor 6 */ ++a; /* la variable se pre incrementa y toma el valor 7*/ El post y pre incremento en estas condiciones, producen el mismo efecto. Tambin es vlido para var y var y slo es vlido para variables de tipo entero. Ahora bien, cuando este tipo de incrementos no son independientes, o sea hay otra(s) variable(s) involucrada(s) se deben seguir ciertas reglas, que se ejemplifican a continuacin : post-incremento int a = 7, b; /* a = 7 y b = 0 */ b = a++; /* primero b = 7 y luego a = a + 1 > 8 */ La variable b toma el valor de a (o sea b = 7). Luego de la asignacin, la variable a se incrementa, tomando un valor final de 8. pre-incremento a = 8; b = ++a; En este caso , lo primero que se hace es incrementar la variable a (a = 8) , para luego asignar ese valor, a la variable b (o sea b = 9 ). * Todo lo anterior es vlido para variables enteras y para el operador de decremento Ejercicios Hacer la traza de los siguientes segmentos de cdigo a) int a = 3, b = 4, c; a++; b = ++a; c = b / 2; c; b = c++; b; valores finales : a = 5, b = 0, c = 2.

b) int x, y = 3, z = 6;

z; x = z + y++; x++; z = y + z;

valores finales : x = 9, y = 3, z = 8

Operadores de asignacin aritmtica Continuando con la idea de contraer ciertas operaciones aritmticas, se usan abreviaciones para la asignacin de una variable,cuando est involucrada como operador. Expresin a += b; a -= b; a *= b; a /= b; a %= b; Ejemplo : int a = 2, b = 3; /* Se declaran dos variables enteras a = 2, b = 3 */ Equivalente a = a + b; a = a b; a = a * b; a = a / b; a = a * b;

a += b; /* a = a + b = 2 + 3 = 5 */ *nota : Para mayor orden en el seguimiento de los valores, se escribe la expresin equivalente y a continuacin se evalan los valores. b *= 5; /* b = b * 5 = 3 * 5 = 15 */

a = ++b; /* b = b + 1 = 15 + 1 = 16 ; a = b = 16 */ Como existe una variable que se est pre-incrementando, lo primero que se hace es modificar el valor de esa variable. Despus de haber hecho esto, se evalan los valores. b += a + 5; /* a = a 1 = 16 1 = 15 ; b = b + a + 5 = 16 + 15 + 5 = 36 */ Despus de incrementar la variable a, se escribe y evala la expresin equivalente. a += b; /* a = a + b = 15 + 36 = 51 ; b = b 1 = 36 1 = 35 */ Como ahora b, se est post-incrementando, lo primero que se hace es evaluar la expresin equivalente, y despus finalmente incrementar la variable b. Valores finales : a = 51 , b = 35. Ejercicios Determinar los valores finales para los siguientes segmentos de cdigo a) int a = 2, b = 3, c = 5; a++; b += a; c *= b;

b -= 3; a %= 2; c /= 5; Los valores finales : a = 1 , b = 3, c = 6

b) int a = 1; int b = 2; b++; b = ++a; a *= 2; b += a; a = ++b + 2; Los valores finales son : a = 9 , b = 7

Operadores Relacionales Los siguientes operadores son fundamentales para implementar las condiciones de las sentencias de control. El resultado de una comparacin es un valor true o false. Operador < <= >= == != Descripcin menor menor o igual mayor o igual igual distinto Ejemplo a<b a++ mayor x > 5 * b++ p >= 0.01 a%2 == 0 t != true

Ejemplo : 5 > 1 /* true */ 1 >= 5 /* false */ 2 == 2 /* true */ 2 != 2 /* false */ Ejercicio : determinar si las siguientes relaciones son true o false. a) 7 6 c) 3 != 5 d) a == a + 1 e) b++ != b++

Operadores Lgicos Java proporciona operadores lgicos que se usan para simular los conceptos Y, O y NO del

lgebra de Boole. Estos se conocen con el nombre de conjuncin, disyuncin y negacin respectivamente, y los operadores correspondientes son &&, || y!.La precedencia de la conjuncin y la disyuncin es lo suficientemente baja como para que no sea necesario utilizar parntesis. El operador && tiene mayor precedencia que el operador ||, mientras que ! se agrupa con los dems operadores.Los argumentos y resultados de estos operadores lgicos son valores de tipo boolean. Operador Descripcin Ejemplo && AND (y) f > 0.0 && f 7 || 8 > 0 && 1 == 2) resp : a = true, b : false , c : false, d : true

PRCTICA 8
Un programa que determina el ganador de un concurso de ventas introducira el nmero de unidades vendidas por cada vendedor. El vendedor que vende ms unidades gana el concurso. Escriba un programa en Java que introduzca una serie de 10 valoes y determine el ms grande de ellos.

PRCTICA 7
Una empresa familiar de zapatos, fabrica 3 modelos de zapatos para caballero con los siguientes precios de venta: 1.- Modelo Ejecutivo.345.50 2.- Modelo Premier298.70 3.- Modelo Emperador246.00

Los 3 modelos son fabricados nicamente en talla 8. La empresa planea fabricar los tres modelos tambin en tallas 9 y 10, y desea un programa que calcule los precios de venta para estas nuevas tallas. Se sabe que por cada nmero que se aumente en la talla del zapato, su precio de venta deber incrementarse 10 pesos, esto significa que si el modelo Emperador cuesta 246.00 pesos en medida nmero 8, su costo en nmero 9 ser 256.00 y en 10 es 266.00 Escribe un programa que pida el modelo del zapato (a, b c) y la medida (8,9 10) e imprima en pantalla su precio de venta correspondiente.

PRCTICA 6
Crear una clase Equipo que contenga los atributos Partidos_Ganados , Puntos_a_Favor y Puntos_En_Contra, crear 5 equipos y darle valores a sus atributos,ordenar por partidos ganados de mayor a menor y en el caso de que hubiese equipos con los mismos partidos ganados se mirara el criterio de Puntos_a_favor para saber cual esta primero y si en los puntos a favor tambien estan empatados se miraran los puntos en contra.

PRCTICA 4
Un Empresario ha realizado una reunion para recortar gastos en la empresa, por lo tanto ha tomado la decision de despedir los empleados con menor taza de exito, a los empleados se les tomara en cuenta 3 factores Ganancia Generadas, Horas de Trabajo Diario y Sueldo, en base a esto el Empresario a decidido que despedira a los empleados que sean menos efectivos que otro. El Empresario medira esto de la siguiente manera: Si un empleado A Genera mas ganancia, trabaja mas tiempo diario y tiene un menor sueldo que un empleado B, el empleado B sera despedido.

-> La cantidad de empleados sera entre 1 y 1,000 ->Las Ganancias no sobrepasaran 1,000,000. ->Las horas diarias trabajadas no sobrepasaran las 24 horas. ->El sueldo no sera menor o igual a 0 ni mayor a 1,000,000. ->Solo se permitiran numeros enteros.

=>Valores de entrada, cantidad de empleados, luego cada valor (Ganancia, Horas de Trabajo, Sueldo), separadas por 1 espacio. =>Valor de Salida, la cantidad de empleados despedidos.

Ejemplo: Cdigo: Cantidad de Empleados: 5 Empleado 1: 500 12 300 Empleado 2: 400 14 400 Empleado 3: 100 10 500 #Este sera Despedido. Empleado 4: 450 11 1000000 Empleado 5: 50 1 10000 #Este tambien sera Despedido.

Cantidad de Empleados Despedidos: 2

TORRES DE HANOI include <conio.h> #include <stdio.h>

void torres(int, char ,char,char); int n; char A,B,C; main() { clrscr();

printf(" Proporcione el numero de discos a utilizar, menos de 10\n"); scanf( "%d",&n); torres(n,'A','C','B'); getch(); } void torres(int n, char frompeg,char topeg,char auxpeg) { if(n==1){ printf("\n%s %c %s %c", "Mover de la varilla Inicial",frompeg ,"A la final",topeg); printf("\n"); return; } torres(n-1,frompeg,auxpeg,topeg); printf("n %s %d %s %c %s %c", "Mover disco", n, "De Varilla inicial ", frompeg, "A la varilla Final",topeg); printf("\n"); torres(n-1,auxpeg,topeg,frompeg); }

he aqu el problema resuelto, de pura casualidad lo vi, y estaba aburrido, jajajaja no, no es cierto tambin me lo dejaron, pero como no lo encontr tuve que hacerlo. Fuente(s): estructuras de datos con c y c++ By S@ntes

Potrebbero piacerti anche