sistemas programables(conpetos)

11
1 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

Upload: deyvid-fifa-che

Post on 13-Dec-2015

212 views

Category:

Documents


0 download

DESCRIPTION

inicioewqeweeeeeeeeeeeeeddd

TRANSCRIPT

Page 1: SISTEMAS PROGRAMABLES(conpetos)

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

1

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

Page 2: SISTEMAS PROGRAMABLES(conpetos)

“Evaluación de una expresión en programación orientada a objetos”

Una expresión aritmética está formada por operandos y operadores. La expresión 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 expresión. Los operadores son los símbolos conocidos de las operaciones matemáticas. La evaluación de una expresión aritmética da lugar a un valor numérico, se realiza sustituyendo los operandos que son variables por valores concretos y ejecutando las operaciones aritméticas representadas por los operadores. Si los operandos de la expresión anterior toman los valores x = 5, y = 2, a = 3, b = 4, el resultado de la evaluación es:

5*2 – (3+4) = 5*2 – 7 = 10 – 7 = 3

La forma habitual de escribir expresiones matemáticas es aquella en la que el operador está entre sus dos operandos. La expresión anterior está escrita de esa forma, y recibe el nombre de notación infija. Esta forma de escribir las expresiones exige, en algunas ocasiones, el uso de paréntesis para encerrar subexpresiones con mayor prioridad.Los operadores, como es sabido, tienen distintos niveles de precedencia o prioridad a la hora de su evaluación. A continuación se recuerdan estos niveles de prioridad en orden de mayor a menor:

1.-Paréntesis: ( )2.- Potencia: ^3.- Multiplicación/división: *, /4.- Suma/Resta: +, -

Normalmente, en una expresión hay operadores con la misma prioridad. A igualdad de precedencia, los operadores se evalúan de izquierda a derecha (asociatividad), excepto la potencia, que es de derecha a izquierda.

Notación prefija y notación postfija de unas expresiones aritmética

La forma habitual de escribir operaciones aritméticas (notación infija) sitúa el operador entre sus dos operandos. Esta forma de notación obliga, en muchas ocasiones, a utilizar paréntesis para indicar el orden de evaluación. Las expresiones siguientes:

r = a*b/(a+c) g = a*b/a+c

Son distintas al no poner paréntesis en la expresión g. Igual ocurre con estas otras:

r = (a-b)^c+d g = a-b^c+d

2

Page 3: SISTEMAS PROGRAMABLES(conpetos)

Existen otras formas de escribir expresiones aritméticas, que se diferencian por la ubicación del operador respecto de los operandos. La notación en la cual el operador se coloca delante de los dos operandos, se conoce como notación prefija y se conoce como notación polaca (en honor del matemático 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 notación prefija.

Se escribe, paso a paso, la transformación de cada expresión aritmética en la expresión equivalente en notación 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 paréntesis al escribir la expresión en notación polaca. Ésta es su propiedad fundamental: el orden de ejecución de las operaciones está determinado por las posiciones de los operadores y los operandos en la expresión.

Notación postfija

Hay más formas de escribir las expresiones. La tercera notación más utilizada se denomina postfija o polaca inversa y coloca el operador a continuación 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 notación postfija.

Paso a paso, se transforma cada subexpresión en notación 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 subexpresión en notación 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)

NormaLas diferentes formas de escribir una misma expresión aritmética dependen de la ubicación de los operadores respecto a los operandos. Es importante tener en

3

Page 4: SISTEMAS PROGRAMABLES(conpetos)

cuenta que tanto en la notación prefija como en la postfija no son necesarios los paréntesis para cambiar el orden de evaluación.Operadores aritméticos

La mayoría de los programas realizan cálculos aritméticos. Los operadores aritméticos se sintetizan en la tabla. Observe el uso de varios símbolos especiales que no se utilizan en álgebra. El asterisco (*) indica la multiplicación, y el signo de porcentaje (%) es el operador residuo, el cual describiremos en breve. Los operadores aritméticos en la tabla son operadores binarios, ya que funcionan con los operandos. Por ejemplo, la expresión f + 7 contiene el operador binario + y los dos operandos f y 7.

La división de enteros produce un cociente entero. Por ejemplo, la expresión 7 / 4 da como resultado 1, y la expresión 17 / 5 da como resultado 3. Cualquier parte fraccionaria en una división de enteros simplemente se descarta (se trunca); no ocurre un redondeo. Java proporciona el operador residuo, %, el cual produce el residuo después de la división. La expresión x % y produce el residuo después de que x se divide entre y. Por lo tanto, 7 % 4 produce 3, y 17 % 5 produce 2. Este operador se utiliza más comúnmente con operandos enteros, pero también puede usarse con otros tipos aritméticos.

Paréntesis para agrupar subexpresiones

Los paréntesis se utilizan para agrupar términos 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 expresión contiene paréntesis anidados, como

( ( a + b ) * c )

Se evalúa primero la expresión en el conjunto más interno de paréntesis (a + b en este caso).

4

Page 5: SISTEMAS PROGRAMABLES(conpetos)

Reglas de precedencia de operadores

Java aplica los operadores en expresiones aritméticas 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 multiplicación, división y residuo se aplican primero. Si una expresión contiene varias de esas operaciones, los operadores se aplican de izquierda a derecha. Los operadores de multiplicación, división y residuo tienen el mismo nivel de precedencia.

2. Las operaciones de suma y resta se aplican a continuación. Si una expresión 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 expresión algebraica y su equivalente en Java. El siguiente es un ejemplo de una media (promedio) aritmética de cinco términos:

5

Page 6: SISTEMAS PROGRAMABLES(conpetos)

Los paréntesis son obligatorios, ya que la división 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 paréntesis, obtenemos a + b + c + d + e / 5, lo cual da como resultado

El siguiente es un ejemplo de una ecuación de línea recta:

No se requieren paréntesis. El operador de multiplicación se aplica primero, ya que la multiplicación tiene mayor precedencia sobre la suma. La asignación ocurre al último, ya que tiene menor precedencia que la multiplicación o suma.

Los números dentro de los círculos bajo la instrucción indican el orden en el que Java aplica los operadores.Las operaciones *, %y / se evalúan 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 evalúan a continuación. Estas operaciones también se aplican de izquierda a derecha. El operador de asignación (=) se evalúa al último.

Toma de decisiones: operadores de igualdad y relaciónales

Una condición es una expresión que puede ser verdadera (true) o falsa (false). Esta sección presenta la instrucción i f de Java, la cual permite que un programa tome una decisión, con base en el valor de una condición. Por ejemplo, la condición “calificación es mayor o igual que 60” determina si un estudiante pasó o no una prueba. Si la condición en una instrucción i f es verdadera, el cuerpo de la instrucción if se ejecuta. Si la condición 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 relaciónales (>, <, >= 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 relaciónales. Los operadores de igualdad se asocian de izquierda a derecha. Todos los operadores relaciónales tienen el mismo nivel de precedencia y también se asocian de izquierda a derecha.

6

Page 7: SISTEMAS PROGRAMABLES(conpetos)

“Definición de una función en programación orientada a objetos”

Los métodos (también conocidos como funciones o procedimientos en otros lenguajes) permiten al programador dividir un programa en módulos, por medio de la separación de sus tareas en unidades autónomas. Usted ha declarado métodos en todos los programas que ha escrito. Las instrucciones en los cuerpos de los métodos se escriben sólo una vez, se ocultan de otros métodos y se pueden reutilizar desde varias ubicaciones en un programa.

Una razón para dividir un programa en módulos mediante los métodos es el enfoque “divide y vencerás”, que hace que el desarrollo de programas sea más fácil de administrar, ya que se pueden construir programas a partir de piezas pequeñas y simples. Otra razón es la reutilización de software (usar los métodos existentes como bloques de construcción para crear nuevos programas). A menudo se pueden crear programas a partir de métodos estandarizados, en vez de tener que crear código personalizado.

7

Page 8: SISTEMAS PROGRAMABLES(conpetos)

Por ejemplo, en los programas anteriores no tuvimos que definir cómo leer datos del teclado; Java proporciona estas herramientas en la clase Scanner. Una tercera razón es para evitar la repetición de código. El proceso de dividir un programa en métodos significativos hace que el programa sea más fácil de depurar y mantener.

Notas acerca de cómo declarar y utilizar los métodosHay tres formas de llamar a un método:1. Utilizar el nombre de un método por sí solo para llamar a otro método de la misma clase; como maximoC numerol, numero2, numero3 ) en la línea 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 método para llamar a un método no static del objeto al que se hace referencia; como la llamada al método en la línea 13 de la figura 5.10, mi Li broCalificaci ones. mostrarMensaje O , con lo cual se llama a un método de la clase LibroCalificaciones desde el método main de PruebaLibroCalificaciones.

3. Utilizar el nombre de la clase y un punto (.) para llamar a un método static de una clase, como Math.sq rt( 900.0 ) en la figura de abajo.

8

Page 9: SISTEMAS PROGRAMABLES(conpetos)

Bibliografía Luis, Ignacio (2008). Estructuras de datos en java (1° Edición). Mg Graw

Hill/Interamericana de España. Paul, Harvey (2012). Java como programar (9° edición). Pearson Education:

México.

9