lunes, 27 de febrero de 2012

Curso gratuito de programación para principiantes en java. (3.Expresiones.)


1.1 Objetivos del tema. 
Hemos visto en el tema anterior que en un programa uno de los apartados a utilizar son los datos. 

Los datos en si no son nada si no se utilizan, y la forma de utilizarlos es en expresiones, dentro de una instrucción, o de forma aislada, vamos a ver que son las expresiones y su evaluación. 

1.2 Introducción. 
Las instrucciones es la forma de hacer que un programa haga la tarea para la cual lo estamos escribiendo, pero esas instrucciones tienen que manejar datos, y al final lo que hacemos es escribir expresiones que se evalúan y que producen un resultado que permite resolver o tomar una decisión. 

Para utilizar los datos necesitamos crear esas expresiones, las expresiones las crearemos utilizando los datos y los operadores que me permiten dar sentido a esa expresión para que produzca un resultado. 


1.3 Expresiones. 
Las expresiones están compuestas por datos, y los datos en un programa se almacenan en variables. 
Las denominamos de esa forma porque su valor cambia a lo largo de la ejecución del programa, cuando un dato está almacenado en una variable y su valor es estático, por ejemplo declaramos la variable Pi = 3,1415, entonces la denominamos constante. 

Las variables, como ya se comentó antes, almacenan datos, y los datos hemos quedado que básicamente eran de dos tipos numéricos y alfanuméricos. 

Con las variables alfanuméricas almacenamos datos de texto, para el uso que sea pertinente en el programa. 

Con las variables numéricas almacenamos datos de valor numérico, con las que podemos realizar operaciones de cálculo. 

Si las variables son numéricas, en realidad, y recordando el cuadro de posibles valores del tema anterior, las variables numéricas en realidad podrán ser: 
    Byte Integer Long Real

Hay que tener presente que el nombre de los tipos cambiará en función del lenguaje utilizado, por ejemplo el Real también podemos encontrarlo como simple y doble precisión. 

La expresión es la unión de una serie de variables unidas por operadores que expresan una condición, un cálculo, una comparación. 

En estas expresiones los operadores se evalúan en el siguiente orden: 

    Paréntesis, de dentro a fuera. Signo. Potencia. Productos y divisiones. Suma y restas. Concatenación. Relacionales. Negación. Conjunción. Disyunción.

Cuando hay expresiones que contienen operadores de más de una categoría, se resuelven antes las que tienen operadores aritméticos, a continuación las que tienen operadores de comparación y por último las de operadores lógicos. 

Los operadores de comparación tienen todos la misma prioridad; es decir, se evalúan de izquierda a derecha, en el orden en que aparecen. Los operadores lógicos y aritméticos se evalúan en el siguiente orden de prioridad: 

 

En cada lenguaje de programación cada operador tiene un símbolo asignado, en la mayoría coinciden, pero hay algunos que cambian de forma significativa, por lo que cuando se entre en cada lenguaje se expondrán los mismos. 

Cuando hay multiplicación y división en la misma expresión, cada operación se evalúa a medida que aparece, de izquierda a derecha. Del mismo modo, cuando se presentan adiciones y substracciones en una misma expresión, cada operación se evalúa tal como aparecen de izquierda a derecha. Es posible usar paréntesis para saltar el orden de 
preferencia y forzar que algunas partes de una expresión se evalúen antes que otras. Las operaciones entre paréntesis se realizan antes que las de fuera. Sin embargo, dentro de los paréntesis, la precedencia de los operadores se mantiene. 

El operador de concatenación de cadenas (&) o (+) no es realmente un operador aritmético, pero en orden de prioridad se encuentra a continuación de todos los operadores aritméticos y antes que todos los operadores de comparación. 

1.4 ¿Como se distinguen los tipos de variable.? 
La diferenciación entre un tipo y otro de variables, se realiza de dos formas básicamente: 

    En la creación a la hora de definirlas se les asigna un tipo, pero el nombre no lleva ningún carácter identificativo. En la creación a la hora de definirlas se les asigna un tipo y además el nombre lleva un carácter que la identifica como tal tipo, si se utiliza el sistema de notación hungara.


NOTA: 

La notación hungara, consiste en prefijos en minúsculas que se añaden a los nombres de las variables, y que indican su tipo. 
El resto del nombre indica, lo más claramente posible, la función que realiza la variable. 



1.5 Operadores. 
Indican que tipo de acción se ha de realizar con dos variables. 
Hemos quedado que las variables contienen datos. 

Los datos son para manejarlos y obtener otros datos a partir de ellos. 
Para eso hay que realizar distintos tipos de operaciones y cada operación ha de estar representada por un operador. 
Los operadores se dividen por el tipo de operación que realizan. 

Las distintas operaciones que se pueden realizar en un programa son: 

Aritméticas: Sumas restas ... 
Lógicas: Condición And Condición, o Condición Or Condición. 
Relacionales: Mayor o Igual, >=, <=, =, >, < 

Que se corresponde con los tipos de operadores descritos anteriormente. 
Luego para cada tipo de operación son necesarios unos símbolos que identifiquen la acción que se desea realizar. 

A continuación exponemos los operadores en un formato que suele ser habitual, pero que después habrá que volver a ver en el lenguaje correspondiente. 

Con el fin de poder realizar los ejemplos, se han utilizado los símbolos que se utilizan en Visual Basic

1.5.1 Aritméticos. 
Para indicar cálculos de tipo matemático. 

    Suma + Resta - Multiplicación * División /, División entera, o DIV Resto división Mod Raíz cuadrada Sqr Exponenciación ^


Ejemplos: 

    Variable = Variable + 1 Suma y además es un Contador. Variable = Variable + OtraVariable Suma, y lo llamamos Acumulador. Variable = Variable * 3 + OtraVariable

1.5.2 Lógicos. 
And, Or, Not, Xor, Imp. Eqv 
Los operadores lógicos unen dos o más condiciones para formar una única expresión. 

1.5.2.1 And. 
Se utiliza para efectuar una conjunción lógica de dos expresiones. 

Sintaxis 

    resultado = expresión1 And expresión2


La sintaxis del operador And consta de las siguientes partes: 

    Parte = resultado Obligatorio Descripción = cualquier variable numérica.


NOTA: 

Si y sólo si ambas expresiones se evalúan como True, el resultado es True. Si cualquiera de las expresiones es False, el resultado es False. La siguiente tabla ilustra cómo se determina el resultado: 
La tabla de verdad es: 
 

El operador And ejecuta también una comparación bit a bit para identificar los bits de dos expresiones numéricas que tienen la misma posición y establece el bit correspondiente en el resultado según la siguiente tabla de decisión lógica: 
La tabla de verdad es: 
 


1.5.2.2 Or. 
Se utiliza para ejecutar una disyunción lógica sobre dos expresiones. 

Sintaxis 

    resultado = expresión1 Or expresión2


La sintaxis del operador Or consta de las siguientes partes: 
Parte = resultado Obligatorio; 
Descripción = cualquier variable numérica. 

NOTA: 
Si cualquiera de las expresiones, o ambas, es True, el resultado es True. La siguiente tabla indica cómo se determina el resultado: 
La tabla de verdad es: 
 

El operador Or ejecuta una comparación bit a bit para identificar los bits de dos expresiones numéricas que tienen la misma posición y establece el bit correspondiente en el resultado según la siguiente tabla de decisión lógica: 
La tabla de verdad es: 
 



1.5.2.3 Not.
Se utiliza para ejecutar una negación lógica sobre una expresión.
Sintaxis 

    resultado = Not expresión

La sintaxis del operador Not consta de las siguientes partes:
    Parte -------------------- Descripción resultado Obligatorio; cualquier variable numérica. expresión Obligatorio; cualquier expresión.


NOTA:
La siguiente tabla muestra cómo se determina el resultado: 
 

Además, el operador Not invierte los valores de bit de cualquier variable y establece el bit correspondiente en 
resultado, de acuerdo con la siguiente tabla de decisión lógica: 
La tabla de verdad es: 
 


1.5.2.4 Xor.
Se utiliza para realizar una exclusión lógica entre dos expresiones.
Sintaxis 
    [resultado =] expresión1 Xor expresión2

La sintaxis del operador Xor consta de las siguientes partes: 

    Parte------------------- Descripción resultado Obligatorio; cualquier variable numérica.


NOTA: 

Si una y sólo una de las expresiones es True, el resultado es True. Sin embargo, si cualquiera de las expresiones es Null, el resultado es también Null. Cuando ninguna de las expresiones es Null, el resultado se determina de acuerdo con la siguiente tabla:
La tabla de verdad es:


El operador Xor funciona como operador lógico y bit a bit. Ejecuta una comparación bit a bit para identificar los bits de dos expresiones utilizando lógica de O exclusivo para obtener el resultado, según la siguiente tabla de decisión lógica:
La tabla de verdad es:
 




1.5.2.5 Imp.
Se utiliza para efectuar una implicación lógica de dos expresiones.
Sintaxis

    resultado = expresión1 Imp expresión2

La sintaxis del operador Imp consta de las siguientes partes:

    Parte------------------- Descripción resultado Obligatorio; cualquier variable numérica.


NOTA: 

La siguiente tabla ilustra cómo se determina el resultado:
La tabla de verdad es:


El operador Imp ejecuta una comparación bit a bit para identificar los bits de dos expresiones numéricas que tienen la misma posición y establece el bit correspondiente en el resultado según la siguiente tabla de decisión lógica:
La tabla de verdad es:
 

1.5.2.6 Eqv.
Se utiliza para efectuar una equivalencia lógica de dos expresiones.
Sintaxis

    resultado = expresión1 Eqv expresión2

La sintaxis del operador Eqv consta de las siguientes partes:

    Parte ------------------ Descripción resultado Obligatorio; cualquier variable numérica.


NOTA: 

Si cualquiera de las expresiones es de tipo Null, el resultado es también Null. Si ninguna de las expresiones es
Null, el resultado se determina según la siguiente tabla:
La tabla de verdad es:

1.5.3 Cadenas, strings.
El símbolo utilizado habitualmente es el + y el &, que no representa una suma, sino la concatenación o unión de dos variables alfanuméricas, creando una nueva con el contenido de ambas.

1.5.4 Relacionales
>, >=, <>, <, <=, =.
Son los símbolos que se usan en una comparación para indicar como
hacerla, si A ha de ser mayor que B, etc.…



1.6 Vídeo de refuerzo.
Por último dejamos un vídeo de refuerzo por si algún concepto no ha quedado claro.




1.6 Ejercicios propuestos.
En la evaluación de las expresiones, se ha subrayado la parte de la expresión que se va a evaluar y después su resultado en negrita.



El ejemplo completo.


Siempre se llega a una expresión simple.
Dadas las siguientes variables y constantes.



Evaluar las siguientes expresiones, para los valores anteriores.

     2 * X + 0.5 * Y - 1/5 * Z 
     Pi * X 2 > Y OR 2 * Pi * x < = Z 
     E (X - 1) / ( X * Z ) / ( X / Z) 
     “Don ” + “Juan”= “Don Juan” Or “A”= “a”
     X - Y + Z + Pi - E + 2.576689
     ( - 3 ) * X + 2 * Y - 1 / 2 * z 
     2 * Y 2 - 6 * Y + 12
     (2 * Y) 2 - 6 * Y + 12 
     (Y(2*X) - 6 * (Z / 10 ) ) / 2 
    10º X>3 AND Y = 4 or X + Y <= Z 
    11º X>3 AND (Y= 4 or X + Y >= Z) 
    12º NOT “METODO”+”LOGIA” = “LOGIA”+”METODO”


1.7 Solución a los ejercicios propuestos.

Ejercicio 1º:

Código:
Se escribe 2 * X + 0.5 * Y - 1/5 * Z
Se evalúa 2 * X + 0.5 * Y - 1/5 * Z
2 + 0.5 * Y - 1/5 * Z
2 + 2 - 1/5 * Z
2 + 2 - 0,2 * Z
2 + 2 - 2
4 - 2
Resultado [b]2[/b]

Ejercicio 2º:

Código:
Se escribe Pi * X^2 > Y OR 2 * Pi * x < = Z
Se evalúa Pi * X^2 > Y OR 2 * Pi * x < = Z
Pi * 1 > Y OR 2 * Pi * x < = Z
3,141592 > Y OR 2 * Pi * x < = Z
3,141592 > Y OR 6.283184 < = Z
False OR 6.283184 < = Z
False OR True
Resultado [b]True[/b]

Ejercicio 3º:

Código:
Se escribe E( X - 1 ) / ( X * Z ) / ( X / Z)
Se evalúa E( X - 1 ) / ( X * Z ) / ( X / Z)
E 0 / ( X * Z ) / ( X / Z)
E 0 / 10 / ( X / Z)
E 0 / 10 / 0,1
1 / 10 / 0,1
0,1 / 0,1
Resultado [b]1[/b]

Ejercicio 4º:
Código:
Se escribe "Don " + "Juan"= "Don Juan" Or "A= "a
Se evalúa "Don  + "Juan= "Don Juan Or "A= "a
"Don Juan= "Don Juan Or "A= "a
True Or "A= "a
True Or False
Resultado [b]True[/b]

Ejercicio 5º:
Código:
Se escribe X - Y + Z + Pi - E + 2.576689
Se evalúa X - Y + Z + Pi - E + 2.576689
-3 + Z + Pi - E + 2.576689
+7 + Pi - E + 2.576689
10,141592 - E + 2.576689
7,423311 + 2.576689
Resultado [b]10[/b]

Ejercicio 6º:
Código:
Se escribe (-3) * X + 2 * Y - 1 / 2 * Z
Se evalúa (-3) * X + 2 * Y - 1 / 2 * Z
-3 + 2 * Y - 1 / 2 * Z
-3 + 8 - 1 / 2 * Z
-3 + 8 - 0.5 * Z
-3 + 8 - 5
5 - 5
Resultado [b]0[/b]

Ejercicio 7º:
Código:
Se escribe 2 * Y ^ 2 - 6 * Y + 12
Se evalúa 2 * Y ^ 2 - 6 * Y + 12
2 * 16 - 6 * Y + 12
32 - 6 * Y + 12
32 - 24 + 12
8 + 12
Resultado [b]20[/b]

Ejercicio 8º:
Código:
Se escribe (2 * Y) 2 - 6 * Y + 12
Se evalúa (2 * Y )2 - 6 * Y + 12
82 - 6 * Y + 12
64 - 6 * Y + 12
64 - 24 + 12
40 + 12
Resultado [b]52[/b]

Ejercicio 9º:
Código:
Se escribe (Y(2*X) - 6 * (Z / 10 ) ) / 2
Se evalúa (Y(2*X) - 6 * (Z / 10 ) ) / 2
(Y 2 - 6 * (Z / 10 ) ) / 2
(Y 2 - 6 * 1) / 2
(16 - 6 * 1) / 2
(16 - 6) / 2
10 / 2
Resultado [b]5[/b]

Ejercicio 10º:
Código:
Se escribe X > 3 AND Y = 4 OR X + Y < = Z
Se evalúa X > 3 AND Y = 4 OR X + Y < = Z
X > 3 AND Y = 4 OR 5 < = Z
False AND Y = 4 OR 5 < = Z
False AND True OR 5 < = Z
False AND True OR True
False OR True
Resultado [b]True[/b]

Ejercicio 11º:
Código:
Se escribe X > 3 AND (Y= 4 OR X + Y > = Z)
Se evalúa X > 3 AND (Y= 4 OR X + Y > = Z)
X > 3 AND (Y= 4 OR 5 > = Z)
X > 3 AND (True OR 5 > = Z)
X > 3 AND (True OR False)
X > 3 AND True
False AND True
Resultado [b]False[/b] 

Ejercicio 12º:
Código:
Se escribe NOT "METODO+LOGIA = "LOGIA+METODO
Se evalúa NOT "METODO+LOGIA = "LOGIA+METODO
NOT "METODOLOGIA = "LOGIA+METODO
NOT "METODOLOGIA = "LOGIAMETODO
NOT False
Resultado [b]True[/b]
El símbolo +, se usa como concatenación.




Autor del curso: Casiopea

No hay comentarios:

Publicar un comentario