jueves, 27 de junio de 2019

Matemáticas en Programación con ejemplo Calculadora en Progress 4gl

Hola :

Bienvenidos a otra semana en el blog, hasta ahorita llevamos 10 post, donde espero les haya gustado y funcionado los ejemplos ya sea para el trabajo. la escuela o por hobby.



Esta semana antes de seguir platicando de otros lenguajes de programación, quiero que veamos un poco de análisis de datos y de instrucciones matemáticas que nos sirven de base para cualquier lenguaje. Como vimos en el post de SQL esta basado en Álgebra relacional.

Las matemáticas vamos a pensar que es como el  amigo mas honesto y sincero que tengamos, es decir las matemáticas no mienten nos dicen siempre la mismo resultado y siempre son de la misma manera.

En la programación haremos uso de ellas siempreeee, pensemos en las matemáticas básicas: sumar, restar, multiplicar, dividir 

Para estas operaciones en cada lenguaje tendremos los símbolos 

suma = símbolo aditivo +
restar = símbolo 
multiplicar = símbolo *
dividir = símbolo /

Y tendremos variables por lo menos 2, para poder realizar los cálculos es decir 

c =a + b
c =a - b
c =a * b
c = a / b  

La ultima instrucción puede llegar a causar errores en los programas, porque los lenguajes pueden decirnos que no pueden dividir valores en cero por ejemplo si les decimos

c = 10 / 0  

Los lenguajes se vuelven locos, pensando como hago eso, eso no es posible por lo que debemos evitar dar esas instrucciones o ponerlas entre bloques de excepciones, que es decirle si encuentras este caso has esta otra instrucción y no enloquezcas.

Tenemos otras operaciones que son:

Residuo o Modulo = símbolo %, Mod 

Lo que nos da es el residuo o la diferencia en las divisiones por ejemplo 10/5 = 2 su modulo es cero, 3/2 = 1 y su modulo es 1 .

Raíz Cuadra         = símbolo SQRT
Exponencial         = símbolo EXP, POW
Logaritmos          = simbolo LOG

Ejemplo

En Progress 4gl 


DEF VAR A AS INT INITIAL 0.
DEF VAR B AS INT INITIAL 0.
UPDATE A B.

DISPLAY SKIP.

DISPLAY "SUMA          "  A + B SKIP.
DISPLAY "RESTA         " A - B SKIP.
DISPLAY "MULTIPLICACION" A * B SKIP .
DISPLAY "DIVISION      "  A / B SKIP.
DISPLAY "MODULO        "    A MOD B SKIP.
DISPLAY "RAIZ CUADRADA " SQRT(A) SKIP.
DISPLAY "EXPONENCIAL   "   EXP(A,B) SKIP.

DISPLAY "LOGARITMOS    "    LOG(A) SKIP.

Es importante decirles que en Progress  deben dejar un espacio entre la variable y el operador si no les va a marcar error
Unknown Field or Variable name - A+B.

En Progress 4gl, para agregar comentarios que código que no se va a ejecutar o que son textos que nos sirven de referencia porque después de que acaben un programa crean me no se van acordar bien que programaron, porque va cambiando la forma en que programamos con el tiempo. 
/*comentarios ente estos signos*/

Ejecutamos el programa y nos va a pedir 2 números:

Ingreso de datos en Progress

El resultado


Vamos  a causarle un error con la división en cero
Como pueden ver marco un erro en la división con valor ? , que es un nulo o NULL o Nill

Practica.

Imaginen que les piden un programa que pueda calcular el promedio de varios números, lo que pueden hacer es realizar es un programa que pida la lista de 10 datos, los suma y van guardando el valor en la variable C y al final la dividen entre 10, intenten hacer ese programa en el lenguaje que se sientan más cómodos para programar, puede ser en Macro o en Javascript.

Si van iniciando también pueden  hacer su primera calculadora. 

Les comparto mi ejemplo de Calculadora en Progress 4gl, vamos a utilizar las instrucciones CASE, WHEN and OTHERWISE que es el equivalente a SWITCH en JAVA o .NET, el objetivo de esta instrucción es plantear el uso de un menú y de acuerdo a la opción seleccionada realizar una actividad, en este caso tenemos 1 pantalla con la instrucción FORM y 2 numeros de entrada A y B, escribí el MENU y para leer el valor le coloque la variable OPE , dentro del programa con la opción de CASE valido que dato ingresa el usuario y en base a ello realizó la operación.

DEF VAR A AS INT INITIAL 0.

DEF VAR B AS INT INITIAL 0.

DEF VAR OPE AS CHAR INITIAL "SUMA".


FORM
  SKIP(1)
  A    COLON 15 LABEL "Data 1"
  B    COLON 15 LABEL "Data 2"
  "***CALCULADORA***"   COLON 15
  "SUMA"           COLON 15
  "RESTA"          COLON 15
  "MULTI"          COLON 15
  "DIV"            COLON 15
  "MODULO"         COLON 15 
  "RAIZ"           COLON 15
  "EXPO"           COLON 15
  SKIP(1)
  OPE                COLON 15 LABEL "OPERACION"
WITH FRAME a SIDE-LABELS NO-ATTR-SPACE WIDTH 80.

REPEAT:
UPDATE A B OPE WITH FRAME a.

CASE OPE:
WHEN "SUMA"           THEN  DISPLAY "SUMA          "  A + B SKIP.
WHEN "RESTA"          THEN  DISPLAY "RESTA         " A - B SKIP.
WHEN "MULTI"          THEN  DISPLAY "MULTIPLICACION" A * B SKIP .
WHEN "DIVISION"       THEN  DISPLAY "DIVISION      "  A / B SKIP.
WHEN "MODULO"         THEN  DISPLAY "MODULO        "    A MOD B SKIP.
WHEN "RAIZ"           THEN  DISPLAY "RAIZ CUADRADA " SQRT(A) SKIP.
WHEN "EXPONENCIAL"    THEN  DISPLAY "EXPONENCIAL   "   EXP(A,B) SKIP.
WHEN "LOGARITMO"      THEN  DISPLAY "LOGARITMOS    "    LOG(A) SKIP.
OTHERWISE DISPLAY "OPCION INCORRECTA" SKIP.
END.

END.

Ejecución del programa Calculadora en Progress 4gl

Lectura de Datos, presentar Menú


Calculator in Progress 4gl
Resultado



Vieron que no fue complicado? No tengan miedo las matemáticas no lastiman (mucho jajaja) y solo es práctica y práctica, recuerdan el comentario al inicio del post imaginen el amigo mas honesto que tengan bueno no le dejan de hablar por esto o si?

https://www.programacionparatodos.com

No hay comentarios.:

Publicar un comentario