Está en la página 1de 9

MATERIA:

SISTEMAS PROGRAMABLES

TEMA:
COMO SE EVALUA UNA EXPRESION Y SE
DEFINE UNA FUNCION EN P.O.O Y C
ALUMNO:
DAVINSON HERNANDEZ MELENDEZ
ESPECIALIDAD:
ING.SISTEMAS COMPUTACIONALES
CATEDRATICO:

GRUPO:
7O

H.JUCHITAN DE ZARAGOZA, OAX. A 01 DE SEPTIEMBRE DEL 2015


1

Evaluacin de una expresin en programacin


orientada a objetos
Una expresin aritmtica est formada por operandos y operadores. La expresin
x*y - (a+b) consta de los operadores *, -, + y de los operandos x, y, a, b. Los
operandos pueden ser valores constantes, variables o, incluso, otra expresin. Los
operadores son los smbolos conocidos de las operaciones matemticas. La
evaluacin de una expresin aritmtica da lugar a un valor numrico, se realiza
sustituyendo los operandos que son variables por valores concretos y ejecutando las
operaciones aritmticas representadas por los operadores. Si los operandos de la
expresin anterior toman los valores x = 5, y = 2, a = 3, b = 4, el resultado de la
evaluacin es:
5*2 (3+4) = 5*2 7 = 10 7 = 3
La forma habitual de escribir expresiones matemticas es aquella en la que el
operador est entre sus dos operandos. La expresin anterior est escrita de esa
forma, y recibe el nombre de notacin infija. Esta forma de escribir las expresiones
exige, en algunas ocasiones, el uso de parntesis para encerrar subexpresiones con
mayor prioridad.
Los operadores, como es sabido, tienen distintos niveles de precedencia o prioridad
a la hora de su evaluacin. A continuacin se recuerdan estos niveles de prioridad
en orden de mayor a menor:
1.-Parntesis: ( )
2.- Potencia: ^
3.- Multiplicacin/divisin: *, /
4.- Suma/Resta: +, Normalmente, en una expresin hay operadores con la misma prioridad. A igualdad
de precedencia, los operadores se evalan de izquierda a derecha (asociatividad),
excepto la potencia, que es de derecha a izquierda.
Notacin prefija y notacin postfija de unas expresiones aritmtica
La forma habitual de escribir operaciones aritmticas (notacin infija) sita el
operador entre sus dos operandos. Esta forma de notacin obliga, en muchas
ocasiones, a utilizar parntesis para indicar el orden de evaluacin. Las expresiones
siguientes:
r = a*b/(a+c) g = a*b/a+c
Son distintas al no poner parntesis en la expresin g. Igual ocurre con estas otras:
r = (a-b)^c+d g = a-b^c+d

Existen otras formas de escribir expresiones aritmticas, que se diferencian por la


ubicacin del operador respecto de los operandos. La notacin en la cual el
operador se coloca delante de los dos operandos, se conoce como notacin prefija y
se conoce como notacin polaca (en honor del matemtico polaco que la propuso).
Ejemplo
Dadas las expresiones: a*b/(a+c); a*b/a+c; (a-b)^c+d . Escribir las expresiones
equivalentes en notacin prefija.
Se escribe, paso a paso, la transformacin de cada expresin aritmtica en la
expresin equivalente en notacin polaca.
a*b/(a+c) (infija) a*b/+ac *ab/+ac /*ab+ac (polaca)
a*b/a+c (infija) *ab/a+c /*aba+c +/*abac (polaca)
(a-b)^c+d (infija) -ab^c+d ^-abc+d +^-abcd (polaca)
Se observa que no son necesarios los parntesis al escribir la expresin en notacin
polaca. sta es su propiedad fundamental: el orden de ejecucin de las operaciones
est determinado por las posiciones de los operadores y los operandos en la
expresin.
Notacin postfija
Hay ms formas de escribir las expresiones. La tercera notacin ms utilizada se
denomina postfija o polaca inversa y coloca el operador a continuacin de sus dos
operandos.
Ejemplo
Dadas las expresiones: a*b/(a+c); a*b/a+c; (a-b)^c+d, escribir las expresiones
equivalentes en notacin postfija.
Paso a paso, se transforma cada subexpresin en notacin postfija.
a*b/(a+c) (infija) a*b/ac+ ab*/ac+ ab*ac+/ (polaca inversa)
a*b/a+c (infija) ab*/a+c ab*a/+c ab*a/c+ (polaca inversa)
(a-b)^c+d (infija) ab-^c+d ab-c^+d ab-c^d+ (polaca inversa)
Paso a paso, se transforma cada subexpresin en notacin postfija.
a*b/(a+c) (infija) a*b/ac+ ab*/ac+ ab*ac+/ (polaca inversa)
a*b/a+c (infija) ab*/a+c ab*a/+c ab*a/c+ (polaca inversa)
(a-b)^c+d (infija) ab-^c+d ab-c^+d ab-c^d+ (polaca inversa)
Norma
Las diferentes formas de escribir una misma expresin aritmtica dependen de la
ubicacin de los operadores respecto a los operandos. Es importante tener en
3

cuenta que tanto en la notacin prefija como en la postfija no son necesarios los
parntesis para cambiar el orden de evaluacin.
Operadores aritmticos
La mayora de los programas realizan clculos aritmticos. Los operadores
aritmticos se sintetizan en la tabla. Observe el uso de varios smbolos especiales
que no se utilizan en lgebra. El asterisco (*) indica la multiplicacin, y el signo de
porcentaje (%) es el operador residuo, el cual describiremos en breve. Los
operadores aritmticos en la tabla son operadores binarios, ya que funcionan con
los operandos. Por ejemplo, la expresin f + 7 contiene el operador binario + y los
dos operandos f y 7.

La divisin de enteros produce un cociente entero. Por ejemplo, la expresin 7 / 4 da


como resultado 1, y la expresin 17 / 5 da como resultado 3. Cualquier parte
fraccionaria en una divisin de enteros simplemente se descarta (se trunca); no
ocurre un redondeo. Java proporciona el operador residuo, %, el cual produce el
residuo despus de la divisin. La expresin x % y produce el residuo despus de
que x se divide entre y. Por lo tanto, 7 % 4 produce 3, y 17 % 5 produce 2. Este
operador se utiliza ms comnmente con operandos enteros, pero tambin puede
usarse con otros tipos aritmticos.
Parntesis para agrupar subexpresiones
Los parntesis se utilizan para agrupar trminos en las expresiones en Java, de la
misma manera que en las expresiones algebraicas. Por ejemplo, para multiplicar a
por la cantidad b + c, escribimos a * ( b + c )
Si una expresin contiene parntesis anidados, como
((a+b)*c)
Se evala primero la expresin en el conjunto ms interno de parntesis (a + b en
este caso).
4

Reglas de precedencia de operadores


Java aplica los operadores en expresiones aritmticas en una secuencia precisa,
determinada por las siguientes reglas de precedencia de operadores, que casi
siempre son las mismas que las que se utilizan en lgebra:
1. Las operaciones de multiplicacin, divisin y residuo se aplican primero. Si una
expresin contiene varias de esas operaciones, los operadores se aplican de
izquierda a derecha. Los operadores de multiplicacin, divisin y residuo tienen el
mismo nivel de precedencia.
2. Las operaciones de suma y resta se aplican a continuacin. Si una expresin
contiene varias de esas operaciones, los operadores se aplican de izquierda a
derecha. Los operadores de suma y resta tienen el mismo nivel de precedencia.
Estas reglas permiten a Java aplicar los operadores en el orden correcto.1 Cuando
decimos que los operadores se aplican de izquierda a derecha, nos referimos a su
asociatividad. Algunos se asocian de derecha a izquierda. En la tabla muestra como
se sintetiza estas reglas de precedencia de operadores.

Ejemplos de expresiones algebraicas y de java


Ahora consideremos varias expresiones en vista de las reglas de precedencia de
operadores. Cada ejemplo En lista una expresin algebraica y su equivalente en
Java. El siguiente es un ejemplo de una media (promedio) aritmtica de cinco
trminos:

Los parntesis son obligatorios, ya que la divisin tiene una mayor precedencia que
la suma. La cantidad completa (a + b + c + d + e) va a dividirse entre 5. Si por error
se omiten los parntesis, obtenemos a + b + c + d + e / 5, lo cual da como resultado

El siguiente es un ejemplo de una ecuacin de lnea recta:

No se requieren parntesis. El operador de multiplicacin se aplica primero, ya que


la multiplicacin tiene mayor precedencia sobre la suma. La asignacin ocurre al
ltimo, ya que tiene menor precedencia que la multiplicacin o suma.

Los nmeros dentro de los crculos bajo la instruccin indican el orden en el que
Java aplica los operadores.
Las operaciones *, %y / se evalan primero, en orden de izquierda a derecha (es
decir, se asocian de izquierda a derecha), ya que tienen mayor precedencia que + y
-. Las operaciones + y - se evalan a continuacin. Estas operaciones tambin se
aplican de izquierda a derecha. El operador de asignacin (=) se evala al ltimo.
Toma de decisiones: operadores de igualdad y relacinales
Una condicin es una expresin que puede ser verdadera (true) o falsa (false). Esta
seccin presenta la instruccin i f de Java, la cual permite que un programa tome
una decisin, con base en el valor de una condicin. Por ejemplo, la condicin
calificacin es mayor o igual que 60 determina si un estudiante pas o no una
prueba. Si la condicin en una instruccin i f es verdadera, el cuerpo de la
instruccin if se ejecuta. Si la condicin es falsa, el cuerpo no se ejecuta. Veremos
un ejemplo en breve.
Las condiciones en las instrucciones i f pueden formarse utilizando los operadores
de igualdad (== y !=) y los operadores relacinales (>, <, >= y <=) que se sintetizan
en la tabla. Ambos operadores de igualdad tienen el mismo nivel de precedencia,
que es menor que la precedencia de los operadores relacinales. Los operadores
de igualdad se asocian de izquierda a derecha. Todos los operadores relacinales
tienen el mismo nivel de precedencia y tambin se asocian de izquierda a derecha.

Definicin de una funcin en programacin orientada a


objetos
Los mtodos (tambin conocidos como funciones o procedimientos en otros
lenguajes) permiten al programador dividir un programa en mdulos, por medio de la
separacin de sus tareas en unidades autnomas. Usted ha declarado mtodos en
todos los programas que ha escrito. Las instrucciones en los cuerpos de los mtodos
se escriben slo una vez, se ocultan de otros mtodos y se pueden reutilizar desde
varias ubicaciones en un programa.
Una razn para dividir un programa en mdulos mediante los mtodos es el enfoque
divide y vencers, que hace que el desarrollo de programas sea ms fcil de
administrar, ya que se pueden construir programas a partir de piezas pequeas y
simples. Otra razn es la reutilizacin de software (usar los mtodos existentes
como bloques de construccin para crear nuevos programas). A menudo se pueden
crear programas a partir de mtodos estandarizados, en vez de tener que crear
cdigo personalizado.
7

Por ejemplo, en los programas anteriores no tuvimos que definir cmo leer datos
del teclado; Java proporciona estas herramientas en la clase Scanner. Una tercera
razn es para evitar la repeticin de cdigo. El proceso de dividir un programa en
mtodos significativos hace que el programa sea ms fcil de depurar y mantener.
Notas acerca de cmo declarar y utilizar los mtodos
Hay tres formas de llamar a un mtodo:
1. Utilizar el nombre de un mtodo por s solo para llamar a otro mtodo de la misma
clase; como maximoC numerol, numero2, numero3 ) en la lnea 21 de la figura de
abajo.
2. Usar una variable que contiene una referencia a un objeto, seguida de un punto (.)
y del nombre del mtodo para llamar a un mtodo no static del objeto al que se hace
referencia; como la llamada al mtodo en la lnea 13 de la figura 5.10, mi Li
broCalificaci ones. mostrarMensaje O , con lo cual se llama a un mtodo de la clase
LibroCalificaciones desde el mtodo main de PruebaLibroCalificaciones.
3. Utilizar el nombre de la clase y un punto (.) para llamar a un mtodo static de una
clase, como Math.sq rt( 900.0 ) en la figura de abajo.

Bibliografa
Luis, Ignacio (2008). Estructuras de datos en java (1 Edicin). Mg Graw
Hill/Interamericana de Espaa.
Paul, Harvey (2012). Java como programar (9 edicin). Pearson Education:
Mxico.