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

jueves, 20 de junio de 2019

Como Programar en Javascript validar Edad

Hola bienvenidos a otra semana en nuestro blog, esta semana quiero platicarles acerca de un lenguaje llamado Javascript de Netscape Communications Corp, Mozilla Fundation es orientado a objetos es decir que el lenguaje busca una definición general de un ente en base a una clase, propiedades y métodos. Para mi es mas claro con un ejemplo para entenderlo, imaginen una casa para la programación orientada a objetos, la casa es el objeto y la casa tiene características como de que color es, cuanto mide, cuantas ventanas tiene, eso son propiedades. Bueno y la casa tiene actividades o tareas, por ejemplo construir la casa, limpiarla, repararla, venderla esos serian sus métodos. Les comparto una imagen para ejemplificarlo.
programación orientada a objetos ejemplo
Agregar leyenda


Para un poco más de teoría o detalle de Javascript pueden ver la liga https://developer.mozilla.org/es/docs/Web/JavaScript


Con Javascript podemos hacer programas que nos permitan regresar información en páginas WEB y tener procesos cliente/servidor, es decir convierte a una página en algo interactivo donde podemos ingresar datos por ejemplo en un formulario y obtener información de regreso, o ejemplo podemos utilizar códigos predefinidos de páginas como Paypal, Google, Twiter que tienen su propio desarrollo de código, les comparto las ligas:
Javascript es un lenguaje que tiene una simbiosis con HTML , es decir se necesitan mutuamente, Javascript necesita estar en el código de una página WEB para funcionar y HTML para no ser tan plano o solo presentador de datos necesita lenguajes que lo complemente y Javascript es uno de varios ya platicaremos después de CSS, PHP entre otros.

Vamos hacer un ejemplo de un programa que nos realice la validación si somos mayores de edad en javascript para permitirnos ingresar a una pagina ingresando nuestra fecha de nacimiento:

Código:

<html>
 <head>
   <title>ejemplo Javascript</title>
 </head>
 <body>

</head>

<body>
<H1>Ejemplo</H1>
   Fecha Nacimiento 
   <input type="date" name="user_date" id="user_date"/>
   <button type="button" onclick="calculateAge()">Validar</button>
   <p id="result">Resultado</p>
<script>
function calculateAge() {
var d = document.getElementById("user_date").value;
    var inDate = new Date(d);
    var anio = inDate.getFullYear();
    var fec_actual = new Date() ; 
var fec_anio = fec_actual.getFullYear() ;
    var edad   =  fec_anio -anio ;
    if (edad >= 18) {
       document.getElementById("result").innerHTML = edad + " Bienvenido al blog www.programacionparatodos.com";
    } else
    {
    document.getElementById("result").innerHTML = "ACCESO NO VALIDO";
    }
}
</script>
</body>
</html>

También pueden ver la página en:
https://www.programacionparatodos.com/p/eje.html

Pueden practicar su código en https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_getfullyear

Ejecución del programa


leer fecha javascript

Ingrese mi fecha de nacimiento

Ingrese una fecha menor
programar en javascript


Pareciera un programa simple, pero la verdad con falta de practica en este lenguaje si me tomo un rato preparar el ejemplo, esto porque hay muchas cosas que considerar cuando escribimos un programa en Javascript:

  • Los formatos que manejan las variables
  • Las clases que tiene un lenguaje orientado a objetos
  • Los arreglos o matrices en que indice inician, hay lenguajes como Javascript, Visual Basic, Python que inician en el cero y hay otros como Progress 4gl que inician en "1".
  • En mi caso quería hacer la resta entre fechas pero la verdad se me complico y al final decidí solo obtener la resta entre la fecha actual y el año de nacimiento ingresado porque lo que me interesaba eran los años.
  • No me acordaba que no tiene un validador de sintaxis (de instrucciones) hasta que probaba la página si no escribía nada era la forma en que me daba cuenta que algo estaba mal.
  • El terminador de cada linea es punto y coma ";" cada lenguaje tiene su terminador de línea para indicar que terminamos una instrucción.
  • Javascript es case sensitive, es decir es sensible a mayúsculas y minúsculas, por lo que las palabras propias del lenguaje deben escribirse tal cual y si creamos variables las debemos de llamar siempre igual.
  • Cada navegador WEB tiene su traductor, así que hay funciones que en Chrome  funcionan bien, pero en FireFox no.
Platiqué este ejemplo con una amiga y ella pensó en solucionarlo restando a la fecha actual 18 y si el año ingresado es menor al resultado entonces no dar acceso, pueden intentarlo programar así para practicar o desarrollar una solución diferente.

Si quieren aprender mas pueden inscribirse a cursos en 
https://www.w3schools.com
https://www.uv.es/jac/guia/jscript/javascr.htm

Nos leemos la próxima semana programadores, dejen sus comentarios de que quieren aprender y compartan este post saludos.


https://www.programacionparatodos.com

jueves, 13 de junio de 2019

Como Programar HTML,Como crear página WEB, HTML para principiantes

Hola programadores

Esta semana voy a escribir acerca de como programar con HTML (HyperText Markup Language) , el cual es un lenguaje de etiquetas es decir sus 'comando' están entre los signos '<>' y tienen un inicio y fin cada segmento, este lenguaje es muy popular y lo utilizamos todos los días, porque es el lenguaje en que esta Internet, si están en Google Chrome y presionan las teclas Ctrl + U , verán el código fuente (así es como se le llama en el mundo de la computación cuando no tiene una presentación para humanos jajajaja o usuarios) 

o si presionan Ctrl + Mayus + I , Google muestra el diseño de la página los errores y warnings que hay en el código, esto les puede servir para revisar su página antes de publicarla


HTML surgió por ahí de 1991 es propiedad de World Wide Web Consortium (W3C) , incluso encontré la liga de la pantente en 1997 https://patentimages.storage.googleapis.com/10/69/bc/a4e3e496c82e5b/US20070050703A1.pdf , la ultima versión es HTML5.3


Las etiquetas básicas en HTML son:

  • html : marca el inicio y fin de una pagina 
  • head: marca el encabezado
  • title: es la etiqueta para colocar el titulo de una página y va dentro del head
  • meta: son metadatos, aquí se ponen los datos de búsqueda, también va en el head
  • body: es el cuerpo de la página
  • table: es para crear una tabla
  • tr: es para indicar una fila en una tabla
  • td: es para crear una columna en una tabla
  • a: para referenciar una liga o para abrir otra página
  • img: para referenciar a una imagen
  • br: salto de línea

Ejemplo de pagina WEB con HTML


Bueno vamos hacer un ejemplo de una página que sea acerca de Mascotas que tenga una tabla de 5 filas y 3 columnas con los datos de perritos en adopción y sus fotos .

Código

<html>
 <head>
   <title>Mascotas</title>
 </head>
 <body>
      <H1>Mascotas</H1>
      <p>Acontinuación la lista de nuestros perritos en adopción</p>
      <br>
      <table style="width:100%";  border=1 cellspacing=0 cellpadding=2 bordercolor="666633" >
        <tr>
          <td>Nombre</td>
          <td>Descripcion</td>
          <td>Foto</td>
        </tr>
        <tr>
          <td>Cielo</td>
          <td>Perrito macho de 3 a 7 meses, jugueton</td>
          <td><img src="https://estaticos.muyinteresante.es/media/cache/760x570_thumb/uploads/images/article/5c3871215bafe83b078adbe3/perro.jpg" height="100" width="100"></td>
        </tr>
        <tr>
          <td>Flaco</td>
          <td>Pero macho adulto de 5 años, obediente</td>
          <td><img src="https://d1dxvryen9goi5.cloudfront.net/wp-content/uploads/2019/02/EC9-696x684.jpg" height="100" width="100"></td>
        </tr>
        <tr>
          <td>Bolita</td>
          <td>Perrita hembra de 2 años muy tierna</td>
          <td><img src="https://misanimales.com/wp-content/uploads/2017/06/perrita-no-est%C3%A1-embarazada.jpg" height="100" width="100"></td>
        </tr>
      </table>
 </body>
</html>

Para poder escribirlo vamos a utilizar un bloc de notas


Al finalizar vamos a guardar con extensión .html
Para ver nuestra página web, vamos a dar click derecho sobre el archivo y decirle abrir con nuestro navegador o movemos nuestro archivo al navegador 

La página pueden verla en 
https://www.programacionparatodos.com/p/blog-page.html

También pueden agregar botones de paypal, el código se los proporciona paypal, solo tienen que crear una cuenta, por ejemplo yo agregue lo siguiente


<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_donations" />
<input type="hidden" name="business" value="EVKBEC28G9VMU" />
<input type="hidden" name="item_name" value="Huertoencasayjardin.com" />
<input type="hidden" name="currency_code" value="MXN" />
<input type="image" src="https://www.paypalobjects.com/es_XC/MX/i/btn/btn_donateCC_LG.gif" border="0" name="submit" title="PayPal - The safer, easier way to pay online!" alt="Donar con el botón PayPal" />
<img alt="" border="0" src="https://www.paypal.com/es_MX/i/scr/pixel.gif" width="1" height="1" />

</form>


Como agregar la imagen de Paypal

<img src="https://www.paypalobjects.com/webstatic/es_MX/mktg/logos-buttons/redesign/btn_10.png" alt="PayPal" />
<script src="https://www.paypal.com/sdk/js?client-id=sb"></script>
 <script>paypal.Buttons().render('body');</script>



Ahora que ya saben como hacer su página web, les tengo que decir que muy pocas veces sera necesario que lo hagan de cero, porque ya existen muchas platillas o templates o páginas dedicadas para que puedas crear tus propias páginas web por mencionar algunos:
Incluso con Word, puede crear un documento y guardarlo con HTML

Después de crear su página(s) lo que hay que hacer es encontrar un servidor para publicarlo o subirlo para que sea visible por mas personas, puede ser Internet, puede ser en la red del trabajo.

Bueno aparte de nuestro bloc de notas y word, hay otros editores de HTML 
  • Visual Studio Code
  • Notepad++
  • Kompozer
  • Microsoft Visual Studio
  • JetBrains
  • Netbeans
  • https://www.w3schools.com/tryit/
Otros ejemplos de páginas WEB dinamicas los pueden encontrar en nuestros siguientes post:



Espero les haya gustado el post y nos compartan.

Si también les interesa que les coticen la creación de sus páginas escriban a zelideth27@gmail.com

https://www.programacionparatodos.com

jueves, 6 de junio de 2019

Como Programar en SQL /ejemplo de inner join, ejemplo SUM Group by

Hola amigos, bienvenidos a otra semana del blog www.programacionparatodos.com:

Esta semana quiero platicarles de un lenguaje de base de datos muuuyyy conocido que es SQL, sus siglas quieren decir Structured Query Language, que nos sirve para extraer información de bases de datos, esta basado en álgebra y calculo relacional, hay una imagen que me gusta en lo personal, porque explica el uso de las uniones entre datos

SQL

Si quieren profundizar mas en el álgebra relacional, les recomiendo el documento de Jaime Elizondo https://www.unirioja.es/cu/arjaime/Temas/04.Anexo.pdf

Este lenguaje es fundamental si comienzan sus días laborales, ya que la mayoría de los desarrollos tienen bases de datos en SQL Server de Microsoft, hay una versión Express que pueden descargar para poder hacer sus practicas o sus propios desarrollos. 

Vamos hacer un ejemplo para tomar los datos de facturas recibidas de una base demo, relacionado con la tabla de receptores, esto es un inner join, es decir solo la conjunción de ambas tablas.

select * 
from documento 
inner join receptorcfdi on receptorcfdi.id = documento.receptorCfdiId
where FechaRecepcion >= '01-01-2019'


  • Lo que hacemos es la instrucción select, es decirle que nos muestre o seleccione los datos de cierta tabla que cumpla con ciertas condiciones.
  • El from es indicar de que tabla va tomar los datos
  • La parte del inner join, es decirle con que tabla se debe unir
  • El Where indica que condiciones debe cumplir, aquí le estoy colocando que la fecha de recibo sera de mayor o igual al 1 de enero de 2019

Vamos hacer ahora la suma de las facturas por código de proveedor, ahora utilizaremos la tabla de emisores

select sum(Total),RFC
from documento 
inner join Emisor on emisor.id = documento.EmisorId
where FechaRecepcion >= '01-01-2019'
group by RFC

Para hacer la suma , utilizamos la palabra reservada sum y entre parentesis la columna que queremos sumar aun lado la columna que queremos ver como resultado y al final la sentencia group by , esto es para decirle no me sumes tomo , si no muestrame por cada RFC la suma de los registros



Espero les haya gustado este post y nos compartan, saludos .

También hay otro ejemplo de SQL en el blog :

leer datos de una base desde una Macro de Excel para que puedan ver otros ejemplos de querys de SQL 
Sumatoria en SQL y Progress 4gl