Sei sulla pagina 1di 12

A.L.I.

DAW-DAM Mdulo de Programacin.

Pgina:

2.- ELEMENTOS DE UN PROGRAMA.


2.- ELEMENTOS DE UN PROGRAMA.....................................................................................1 1.- Datos y tipos de datos........................................................................................................................1 1.1.- Datos numricos............................................................................................................................2 1.2.- Datos carcter o alfanumrico......................................................................................................2 1.3.- Datos lgicos o booleanos. ..........................................................................................................2 2.- Tipos de datos fundamentales de C++ y Java.................................................................................2 2.1.- C++...............................................................................................................................................2 2.2.- Java...............................................................................................................................................3 2.- Identificadores, constantes y variables............................................................................................3 2.1.- Identificador..................................................................................................................................3 2.2.- Constante.......................................................................................................................................4 2.2.1.- Literales enteros.....................................................................................................................4 2.2.2.- Literales de nmeros reales....................................................................................................5 2.2.3.- Literales char..........................................................................................................................5 2.2.4.- Literales boolean....................................................................................................................5 2.2.5.- Literales String.......................................................................................................................5 2.3.- Variable.........................................................................................................................................5 2.3.1.- Nombre de la variable............................................................................................................6 2.3.2.- Tipo de la variable.................................................................................................................6 3.- Expresiones y Operadores.................................................................................................................6 3.1.- Operadores aritmticos.................................................................................................................6 3.2.- Operadores de relacin.................................................................................................................7 3.3.- Operadores lgicos. ......................................................................................................................7 3.4.- Operadores que actan a nivel de bits...........................................................................................8 3.5.- Operadores alfanumricos............................................................................................................8 3.6.- Operadores de incremento y decremento......................................................................................8 3.7.- Operadores de asignacin y expresiones......................................................................................9 3.8.- Operador condicional....................................................................................................................9 4.- Conversin de tipos..........................................................................................................................10 5.- Precedencia y orden de evaluacin de los operadores..................................................................11

1.- Datos y tipos de datos.


El primer objetivo de todo ordenador es el manejo de la informacin. Un dato es la expresin general que describe los objetos con los cuales opera un ordenador, es decir, son los valores con los que opera, no tiene ninguna informacin. La accin de las instrucciones ejecutables de los ordenadores se reflejan en los cambios en los valores de las partidas de datos. Los datos de entrada se transforman, despus de las etapas intermedias, en los datos de salida.
Un tipo de dato es un atributo de una parte de los datos que indica al ordenador (y/o al programador)

A.L.I.

DAW-DAM Mdulo de Programacin.

Pgina:

algo sobre la clase de datos que se va a procesar. Existen dos tipos de datos fundamentales: Simples y Compuestos. Los simples son los siguientes: numrico, carcter y lgico. Los datos compuestos o estructurados son conjuntos de datos simples relacionados entre s, es una forma de organizar un conjunto de datos elementales con el objetivo de facilitar su manipulacin. Un dato elemental es la mnima informacin que se tiene en un sistema.

1.1.- Datos numricos. El tipo numrico es el conjunto de los valores numricos. Pueden representarse de dos formas:

Numrico entero (byte, short, int, long): es un subconjunto finito de los nmeros enteros. Son nmeros completos, sin parte fraccionaria y pueden ser positivos y negativos. Ejemplos de datos numricos enteros son: 5, 7, 23, 123, 214, 0, -8, -45, -98 etc. Numrico real (float, double): es un subconjunto de los nmeros reales. Tienen parte decimal (y punto decimal) y tambin pueden ser positivos y negativos. Ejemplos de datos numricos reales son: -0.234, -67.0, 87.34, 3.14E5, etc.

1.2.- Datos carcter o alfanumrico. Es el conjunto finito y ordenado de los caracteres del ordenador. Los ordenadores suelen reconocer los siguientes tipos de caracteres:

Alfabticos: A, B, ... , a, b, ... Numricos: 0, 1, 2, ... Especiales: ., +, *, <, %, ...

Una cadena de caracteres es una sucesin de caracteres que se encuentran delimitados por una comilla (apstrofe) o dobles comillas. Su longitud es el nmero de caracteres que estn encerrados entre las comillas: 'A', 'Pepe', "Lus", '1 de Enero de 1993', etc. 1.3.- Datos lgicos o booleanos. El tipo de dato booleano es aquel que puede tomar uno de dos valores posibles: cierto o verdadero (true) o falso (false).Este tipo de dato se usa para representar las alternativas a determinadas condiciones. Por ejemplo, cuando se pide determinar si un valor entero es par, la respuesta es verdadera o falsa segn sea par o impar.

2.- Tipos de datos fundamentales de C++ y Java.


2.1.- C++.
C++ tiene los siguientes tipos fundamentales:

char int

float

Un octeto (8 bits), capaz de contener un elemento del juego de caracteres ASCII. Slo se imprimen los positivos. [signed|unsigned] char Un entero (16 bits o 32 bits), normalmente del tamao de los enteros de la mquina donde se ejecuta. [signed|unsigned] [short|long] int En general: Tamao(short) <= Tamao(int) Tamao(int) <= Tamao(long) Un nmero decimal en punto flotante de precisin normal (32 bits). float

A.L.I.

DAW-DAM Mdulo de Programacin.

Pgina:

Un nmero decimal en punto flotante de doble precisin (64 bits). [long] double Una lista de enteros que pueden ser tomados por una variable de ese tipo. Los valores del tipo enumerado se representan con identificadores, que sern las constantes del nuevo tipo. void Usado para la declaracin de funciones que no retornan ningn valor o para declarar punteros a un tipo no especificado. Existen, adems, una serie de cualificadores (modificadores) que se pueden aplicar a los tipos bsicos modificando su rango de valores y/o su tamao (pueden proporcionar diferentes tamaos a los tipos de datos): short Se aplica al tipo de datos int. Si se usa slo, se asume que es un tipo de datos int. long Se aplican a los tipos de datos enteros y reales de doble precisin. Si se usa slo, se asume que es un tipo de datos int. signed, unsigned Se aplican a los tipos de datos int, char, long y short. Los unsigned son positivos o 0 y los signed son positivos, negativos o 0. Si se usan sin ningn tipo de dato, se asume que es int. Por omisin, todos los tipos de datos son con signo. 2.2.- Java. Los tipos primitivos de Java se resumen a continuacin: El tipo boolean no es un valor numrico: slo admite los valores true o false. El tipo boolean no se identifica con el igual o distinto de cero, como en C/C++. El resultado de la expresin lgica que aparece como condicin en un bucle o en una bifurcacin debe ser boolean. El tipo char contiene caracteres en cdigo UNICODE (que incluye el cdigo ASCII), y ocupan 16 bits por carcter. Comprende los caracteres de prcticamente todos los idiomas. Los tipos byte (8 bits), short (16 bits), int (32 bits) y long (64 bits) son nmeros enteros que pueden ser positivos o negativos, con distintos valores mximos y mnimos. Los tipos float (32 bits) y double (64 bits) son valores de punto flotante (nmeros reales) con 6-7 y 15 cifras decimales equivalentes, respectivamente. Se utiliza la palabra void para indicar la ausencia de un tipo de variable determinado. A diferencia de C/C++, los tipos de variables en Java estn perfectamente definidos en todas y cada una de las posibles plataformas y tampoco hay enteros unsigned.

double enum

2.- Identificadores, constantes y variables.


Los programas de ordenador contienen ciertos valores que no pueden cambiar durante la ejecucin del programa. Tales valores se llaman constantes. De igual forma, existen otros valores que si pueden cambiar durante la ejecucin del programa; a estos valores se les llama variables. Para nombrarlos, lo hacemos mediante identificadores. 2.1.- Identificador. En un ordenador los datos necesitan ser manejados mediante herramientas que permitan almacenarlos en memoria, leerlos, operar con ellos, etc. En los lenguajes de alto nivel se necesitan nombres para identificar los objetos que se deseen manipular: variables, constantes, funciones, clases,

A.L.I.

DAW-DAM Mdulo de Programacin.

Pgina:

objetos, etc. Los identificadores son los nombres que se designan para dicho propsito. Estos permiten elegir nombres significativos que sugieran lo que representan. Los identificadores se construyen de acuerdo a las reglas de sintaxis del lenguaje especfico. Estas bsicamente son: Deben comenzar con una letra, un subrayado o un smbolo de dlar . El segundo carcter y posteriores puede ser letra, dgito o el carcter de subrayado. Java (no en C++) permite el uso de cualquier carcter del cdigo Unicode para definir identificadores, de esta forma, el identificador Ao es totalmente vlido en Java. No hay lmites en cuanto a su extensin aunque para el compilador slo son significativos los primeros 32 caracteres. No se puede usar como identificador una palabra clave del lenguaje.

Se debe tener cuidado al escribir los identificadores, porque Java y C++ distinguen entre maysculas y minsculas, de este modo, Nombre y nombre son dos variables diferentes. Habitualmente se utiliza el word-mixing (EsteEsUnEjemploDeWordMixing), que, aunque es una sugerencia y no una norma, es conveniente seguirla. Para las clases la primera letra se escribe en mayscula (class CuentaCorriente), y no se utilizan los signos subrayado ni dlar como primer carcter de un identificador. Para los nombres de variables, objetos y mtodos, aunque se utiliza word-mixing, comienzan con una minscula, por ejemplo: dameSaldo(), miCuenta. Otra buena practica es la de utilizar en los identificadores de variables la inicial del tipo de dato al que pertenece la variable: iSaldo (tipo int), bEncontrado (tipo boolean). 2.2.- Constante. Las constantes son partidas de datos (objetos) que permanecen sin cambios durante todo el desarrollo del algoritmo o durante toda la ejecucin del programa. Existen constantes lgicas, enteras, reales, carcter y cadena. En lenguaje Java las constantes se declaran as final tipoDeDato IDCONSTANTE = valor; y en el lenguaje C++ const tipoDeDato IDCONSTANTE = valor; 2.2.1.- Literales enteros Existen 3 maneras de representar el valor de un nmero entero. Si se escribe el nmero solamente, ste representa un nmero en base decimal. Si tiene un cero delante estamos escribiendo octales y si tiene el prefijo "0x" el valor est representado en base hexadecimal. Por ejemplo: Base de numeracin Decimal Octal Hexadecimal valor 100 0100 valor decimal 100 64

0x100 256

En Java, para indicarle al compilador que un valor dado es de tipo long debemos incluir el sufijo L o l. En C++ se usan los sufijos L(long), U(unsigned int) o UL(unsigned long int). long largo= 800L;

A.L.I.

DAW-DAM Mdulo de Programacin.

Pgina:

2.2.2.- Literales de nmeros reales Al tratar con nmeros reales introducimos el punto decimal o utilizamos la notacin cientfica. Por ejemplo: double v = 300000.0; // notacin normal double v = 3.0e+5; // Notacin -cientfica. Significa 3.0 * 105. En Java, para determinar si estamos hablando de float o double, al nmero se le agrega un sufijo: F o f para float y D o d para double. Si no colocamos un sufijo el compilador lo toma como double. En C++ tambin tiene siempre el tipo double, a no ser que se usen los sufijos F(float) o L(long double). 2.2.3.- Literales char Una variable de tipo char almacena un carcter Unicode (Java). Este sistema de codificacin ampla la escasez de opciones que tiene la codificacin ASCII (C++) para incluir otros alfabetos. Podemos escribir en griego, hebreo o en vietnamita sin que el compilador proteste. Un literal de tipo char se expresa encerrando el carcter entre comillas simples: char caracter = 'z'; Otra forma de representar un carcter es indicando el cdigo Unicode en hexadecimal, anteponiendo los smbolos \u, todo entre comillas simples. De esta manera el smbolo arroba ( @ ) se escribe: char arroba = '\u0040'; El primer byte de la codificacin Unicode es la misma que en ASCII. 2.2.4.- Literales boolean Sencillamente true o false (verdadero o falso) sin comillas y en minscula. En Java no tienen correlacin con ningn nmero como ocurre en el lenguaje C++ que tenemos al 0 como false y al 1 como true. 2.2.5.- Literales String El tipo String no es un tipo de dato primitivo pero se comporta como si lo fuera. Para indicar una cadena de caracteres se encierran entre comillas dobles. String cadena = "El tiempo es oro"; 2.3.- Variable
En programacin, las variables son espacios reservados en la memoria que, como su nombre indica,

pueden cambiar su valor durante el desarrollo del algoritmo o ejecucin del programa.
Las variables se representan con identificadores que hacen referencia a un lugar de la memoria del programa en donde se almacena un dato. Una variable est asociada a un tipo de dato, el cual y en funcin del tamao del mismo determina la cantidad de bytes que sern necesarios para almacenar la variable.

Para que una variable est bien definida debemos especificar el Nombre de la Variable, su

A.L.I.

DAW-DAM Mdulo de Programacin.

Pgina:

Tipo de Dato y, opcionalmente, el Valor inicial que toma. En general, tanto en lenguaje Java como C++ la forma de declarar variables se realiza mediante la siguiente sentencia:
Tipo_Dato Nombre_Variable [= Valor];

2.3.1.- Nombre de la variable.


El nombre debe ser nico en el contexto del programa y tiene que seguir las reglas descritas para los identificadores y no puede ser una palabra reservada (1)(2) del lenguaje (palabras usadas internamente por el lenguaje de programacin) o un literal booleano (true o false). Debemos recordar que el identificador elegido

debe ser significativo, como pueden ser los casos siguientes: nombre: representa nombres de personas. precios: representa precios de diferentes artculos. notas: representa las notas de una clase. 2.3.2.- Tipo de la variable.
Cada variable debe tener un tipo de dato predefinido determinando el rango de valores que puede almacenar y qu operaciones se pueden realizar. Dependiendo del lenguaje hay diferentes tipos de datos para definir el tipo de variables, pero generalmente son enteras, reales, carcter, lgicas y cadena. Una variable que es de un cierto tipo puede tomar valores nicamente de ese tipo. Una variable carcter, por ejemplo, puede tomar como valor slo caracteres, mientras una variable entera puede tomar slo valores enteros.

Ejemplos de declaraciones de variables son las siguientes: int contador = 23; // Variable entera. float area = 803.45; // Variable real. bool encontrado = true; // Variable lgica.

3.- Expresiones y Operadores.


En programacin, una expresin es una combinacin de constantes, variables, operadores y funciones especiales que es interpretada (evaluada) de acuerdo a las normas particulares de precedencia y asociacin para un lenguaje de programacin en particular. Las mismas ideas son utilizadas en notacin matemtica

tradicional. Por ejemplo en la expresin a(b+3)/ c los parntesis indican el orden de clculo, de asociacin, y ( c) representa la funcin raz cuadrada de 'c'. Cada expresin toma un valor que se determina tomando los valores de las variables y constantes implicadas y la ejecucin de las operaciones indicadas. Una expresin consta de operandos y operadores. Segn sea el tipo de objetos que manipulan, se clasifican en:

Aritmticas: construidas con los operadores aritmticos. Lgicas: construidas con operadores lgicos y relacionales. Carcter: construidas con operadores alfanumricos.

El resultado de la expresin aritmtica es de tipo numrico; el de una expresin lgica es de tipo lgico; el de una expresin carcter es de tipo carcter.

A.L.I.

DAW-DAM Mdulo de Programacin.

Pgina:

3.1.- Operadores aritmticos. Las expresiones aritmticas son anlogas a las frmulas matemticas. Las variables y constantes son numricas (real o entera) y las operaciones son las aritmticas. Los operadores aritmticos son los siguientes: + * / % Suma Resta Multiplicacin Divisin Mdulo (resto de la divisin)

3.2.- Operadores de relacin. Una expresin lgica es aquella que slo puede tomar dos valores diferentes: verdadero (true) o falso (false). Se forman combinando constantes y variables lgicas y los operadores relacionales. Los operadores relacionales permiten realizar comparaciones de igualdad, desigualdad y relacin de menor o mayor. Estos operadores se utilizan con mucha frecuencia para expresar las condiciones de las bifurcaciones y de los bucles. Los operadores relacionales son los siguientes: < > == <= >= != Menor que Mayor que Igual que Menor o igual que Mayor o igual que Distinto de

El formato general para una operacin de comparacin es: EXPRESION1 OPERADOR RELACIONAL EXPRESION2 y el resultado de la operacin ser verdadero o falso. Para realizar comparaciones de datos tipo carcter, se requiere una secuencia de ordenacin de los caracteres, similar al orden creciente o decreciente. Esta ordenacin suele ser alfabtica, tanto maysculas como minsculas, considerndolas de modo independiente, pero si se consideran caracteres mixtos, se debe recurrir a un cdigo normalizado como es el ASCII.

Los valores de los caracteres que representan a los dgitos estn en su orden natural. Esto es '0'<'1'<'2'<...<'9'. Las letras maysculas 'A' a 'Z' siguen el orden alfabtico. ('A'<'B'<'C'<...<'Z'). Las letras minsculas estn en el mismo orden alfabtico. ('a'<'b'<'c'<...<'z').

Ej.:Si A='PEPE' y B='LUIS' entonces A<B es falso y B<A es verdadero. 3.3.- Operadores lgicos. Los operadores lgicos o booleanos bsicos son NOT (no, !), AND (y, &&) y OR (o, ||). Los operadores lgicos se utilizan para construir expresiones lgicas, combinando valores lgicos (true y/o

A.L.I.

DAW-DAM Mdulo de Programacin.

Pgina:

false) o los resultados de los operadores relacionales. Debe notarse que en ciertos casos el segundo operando no se evala porque ya no es necesario (si ambos tienen que ser true y el primero es false, ya se sabe que la condicin de que ambos sean true no se va a cumplir). Esto puede traer resultados no deseados y por eso en Java se han aadido los operadores (&) y (|) que garantizan que los dos operandos se evalan siempre.

En las expresiones lgicas se pueden mezclar operadores relacionales y operadores lgicos. As, por ejemplo: (1<5) y (5<10) es verdadera (5>10) o ('A'<'B') es verdadera. 3.4.- Operadores que actan a nivel de bits. Disponemos tambin de un conjunto de operadores que actan a nivel de bits. Las operaciones de bits se utilizan con frecuencia para definir seales o flags, esto es, variables de tipo entero en las que cada uno de sus bits indican si una opcin est activada o no. Los operadores son los siguientes:

3.5.- Operadores alfanumricos. Son las que producen resultados de tipo alfanumrico. Se construyen mediante los operadores alfanumricos. Slo tenemos un operador alfanumrico, '+', usado para unir variables o expresiones alfanumricas; esta operacin se denominada concatenacin. 3.6.- Operadores de incremento y decremento. Hay dos operadores para incrementar o decrementar variables (slo pueden aplicarse a variables, nunca a expresiones): ++ Suma uno al operando. A++ es equivalente a A A + 1. -Resta uno al operando. A es equivalente a A A - 1. La caracterstica fundamental de estos dos operadores es que se pueden usar como prefijos

A.L.I.

DAW-DAM Mdulo de Programacin.

Pgina:

(delante del operando, ++i) o como sufijos (detrs del operando i--). En ambos caso el efecto producido sobre la variable es el mismo, incremento o decremento de la misma en una unidad; sin embargo, existe una diferencia: cuando se aplica como prefijo (++i), modifica el valor de la variable antes de usar su valor y cuando se aplica como sufijo (i--), modifica el valor de la variable despus de usar su valor. Esto significa que en el contexto donde se utilice el valor y no slo su efecto, ++i e i++ son distintos. 3.7.- Operadores de asignacin y expresiones. El operador de asignacin (dar valor a variables) es el signo = y el formato general de la sentencia de asignacin es: variable = Expresin; Adems, en las expresiones donde la variable receptora del valor tambin forma parte de la expresin, esta se puede simplificar. Si Identificador es una variable y Expresin una expresin vlida, entonces Identificador op= Expresion es equivalente a Identificador = (Identificador) op (Expresion) Los parntesis implican asociacin: x *= y + 1 ===> x = x * (y + 1) La mayor parte de los operadores binarios disponen del correspondiente operador op=, donde op es: +, -, *, /, %, <<, >>, &, ^, |.

Usar sentencias de asignacin de esta forma hace que el compilador genere un cdigo ejecutable mas eficiente y normalmente ayuda a la comprensin de las sentencias. Los operadores de asignacin pueden aparecer en expresiones, aunque debe evitarse en la medida de lo posible. 3.8.- Operador condicional. En la expresin "expresionBoolean e1 ? e2 : e3" primero se evala e1. Si es cierta, se evala la expresin e2, siendo este el valor de la expresin condicional. En otro caso, se evala e3, y ste ser su valor. E1 ? E2 : E3 es equivalente a "si E1 entonces E2 si no E3". Si E2 y E3 son de diferente tipo de dato, el tipo del resultado se establece por las reglas de conversin. Ejemplo. La sentencia z = (a > b) ? a : b;

A.L.I.

DAW-DAM Mdulo de Programacin.

Pgina:

10

es equivalente a la siguiente: Si a > b entonces z=a si no z=b

4.- Conversin de tipos.


Cuando usamos una expresin aritmtica, tal como a + b, cuando a y b son de diferente tipo, en general, el operando de tipo de dato inferior es ascendido al tipo de dato superior antes de evaluar la expresin y el resultado es del tipo superior. Slo se realizan aquellas que tienen sentido. Java al igual que C admite el moldeado de tipo ( casting) o conversin de tipos, lo que nos permite convertir un tipo de dato en otro. Lo que se suele utilizar principalmente para cambiar el tipo de dato devuelto por una funcin para que coincida con el tipo de dato esperado por otra a la que se lo vamos a pasar como parmetro. Para realizar el moldeado de tipo (casting), se coloca el tipo que desea entre parntesis a la izquierda del valor que vamos a convertir. (Nombre_de_tipo) expresin int precioBase= 100; float precioFinal; precioFinal= (float)precioBase * 18/100; Las conversiones tambin tienen lugar en asignaciones; el valor de la derecha se convierte al tipo de la izquierda, que es el tipo del resultado. Cuando el tipo de dato de la variable que recibe el valor es de un tipo igual o superior, no hay variacin en el valor de la variable o expresin asignada. Si es al contrario, se truncar el valor, redondeando o eliminando los bits ms significativos. A la hora de convertir unos datos a otros, puede perderse informacin dependiendo de la capacidad de almacenamiento que uno y otro tipo de dato tengan. Si deseamos convertir un tipo de dato cuya capacidad de almacenamiento es de 64 bits (por ejemplo un long) en otro de menor capacidad (por ejemplo un int, con 32 bits), es muy posible que en la conversin perdamos informacin. Esto ocurrir si los bits altos (aquellos que estn a la izquierda en una representacin binaria del nmero) del dato long tenan informacin (lo que ocurre con toda seguridad para nmeros muy grandes). Otro caso distinto de prdida de informacin es el que ocurre cuando se moldea un double para convertirlo en un long. Aunque la capacidad de almacenamiento de ambos sea de 64 bits, el tipo double tiene parte entera y parte fraccionaria, mientras que el long slo tiene parte entera. Todo esto se debe tener muy presente cuando se vaya a realizar una conversin de tipo, ya que estos errores a veces son difciles de detectar y nos pueden dar ms de un quebradero de cabeza. A continuacin se presentan las conversiones en las que no puede haber prdida de informacin (conversiones seguras). Moldeado sin Prdida de Informacin Tipo fuente Tipo Destino byte short, char, int, long, float, double short int, long, float, double char int, long, float, double int long, float, double long float, double foat Double

A.L.I.

DAW-DAM Mdulo de Programacin.

Pgina:

11

5.- Precedencia y orden de evaluacin de los operadores.


Cuando en una sentencia aparecen varios operadores el compilador deber de elegir en qu orden aplica los operadores. A esto se le llama precedencia. Los operadores con mayor precedencia son evaluados antes que los operadores con una precedencia relativa menor. Cuando en una sentencia aparecen operadores con la misma precedencia: Los operadores de asignacin son evaluados de derecha a izquierda. Los operadores binarios, (menos los de asignacin) son evaluados de izquierda a derecha. Se puede indicar explcitamente al compilador de Java cmo se desea que se evale la con parntesis balanceados ( ). Para hacer que el cdigo sea ms fcil de leer y mantener, es preferible ser explcito e indicar con parntesis que operadores deben ser evaluados primero. La siguiente tabla muestra la precedencia asignada a los operadores de Java. Los operadores de la tabla estn listados en orden de precedencia: cuanto ms arriba aparezca un operador, mayor es su precedencia. Los operadores en la misma lnea tienen la misma precedencia: postfix operators unary operators creation or cast multiplicative additive shift relational equality bitwise AND bitwise exclusive OR bitwise inclusive OR logical AND logical OR conditional assignment [] . (params) expr++ expr-++expr --expr +expr -expr ~ ! new (type)expr */% +<< >> >>> < > <= >= instanceof == != & ^ | && || ?: = += -= *= /= %= &= ^= |= <<= >>= >>>=

En Java, todos los operadores binarios, excepto los operadores de asignacin, se evalan de izquierda a derecha. Los operadores de asignacin se evalan de derecha a izquierda, lo que significa que el valor de la derecha se copia sobre la variable de la izquierda. Por ejemplo, la siguiente expresin produce un resultado diferente dependiendo de si se realiza la suma o divisin en primer lugar: x + y / 100 Si no se indica explcitamente al compilador el orden en que se quiere que se realicen las operaciones, entonces el compilador decide basndose en la precedencia asignada a los operadores. Como el operador de divisin tiene mayor precedencia que el operador de suma el compilador evaluar \100 primero.

A.L.I.

DAW-DAM Mdulo de Programacin.

Pgina:

12

As: x + y / 100 Es equivalente a: x + (y / 100) En lenguaje C++ es prcticamente igual, no hay grandes diferencias. Ejercicios. 1.- Evaluar las siguientes expresiones: a) 4 * 3 + 5 b) 7 * 10 - 15 mod 3 * 4 + 9 c) (7 * (10 - 5) mod 3) * 4 + 9 d) - 4 * 7 + 2 ** 3 / 4 - 5 17 79 17 -31

2.- Convertir en expresiones aritmticas de algoritmos las siguientes expresiones algebraicas:


5(x + y)
x2 + y2

x y(z + w)

x+ y w n+ a
x= - b b2 - 4ac 2a

3.- Evaluar las siguientes expresiones aritmticas: a) (a + b) / PVP + 2 Valores: a = 6, b = 8, PVP = 7 b) iva * iva - 4 * tasa * pvp Valores: iva = 7, tasa = 3, pvp = 2 c) (a + 7 * c) / (b + 2 - a) + 2 * b Valores: a = 3, b = 6, c = 4 d) (a + 5) * 3 / 2 * b - b Valores: a = 3, b = 6 4.- Evaluar las siguientes expresiones: Valores: a= 1, b = 4, c = 10. a) a > 3 y b = 4 a + b <= c c) a > 3 y (b = 4 a + b <= c) d) (1 > 0) y (3 = 3) e) no (z > 14)

4 25 18.2 66

V F V V si Z<=14

Potrebbero piacerti anche