jueves, 15 de agosto de 2019

Como Programar en Pascal y Delphi, ejemplo calculadora en Delphi

Que tal amigos, bienvenidos a otra semana de nuestro blog, les quiero platicar acerca de un lenguaje de programación que se llama Pascal, fue creado por Niklaus Wirth entre 1968 y 1970, es un lenguaje enfocado a la programación estructurada, esto se refiere a que se crean funciones o subrutinas y utilizar criterios de selección con if y switch e iteraciones o ciclos con las sentencias for o while.




Les quiero compartir una entrevista de Niklaus Wirth que le realizó él Dr Charles Severance 



Vídeo del canal del Dr Chuck Severance. https://www.youtube.com/channel/UChYfrRp_CWyqOt-ZYJGOgmA
Les recomiendo seguir su canal



Pascal a mi parecer es muy sencillo de aprender yo lo aprendí cuando estaba en la Secundaria y me parece muy bueno, después en la Universidad en la materia de graficación el Académico que me dio clases que es un gran profesor y científico Manuel Martin Ortiz los ejercicios de la materia los realizábamos en Borland Delphi (versión Windows) que es ni mas ni menos que un entorno de desarrollo (programa para escribir programas) para Object Pascal o IDE , que es  entorno de desarrollo para la versión orientada a Objetos de Pascal y que permite generar software con ventanas o pantallas es decir lo hace más gráfico o visual (la explicación de la programación orientada a objetos la pueden ver en la siguiente liga Javascrip)

Para este ejemplo vamos hacer una calculadora pero con una pantalla más amigable que el otro ejemplo que vimos con Progress.

Comencemos con el código 

unit Unit1;

interface


uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdBaseComponent, IdNetworkCalculator;

type

  TForm1 = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Label2: TLabel;
    Label3: TLabel;
    Campo2: TEdit;
    Campo1: TEdit;
    Label4: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var

  Form1: TForm1;
  resultado: Double;
implementation

{$R *.dfm}


procedure TForm1.Button1Click(Sender: TObject);

var
  A : Extended;
  B  : Extended;
begin
       try
           A :=   strtofloat(Campo1.Text)   ;
           B :=   strtofloat(Campo2.Text)   ;
           Edit1.Text := floattostr(A + B) ;
       Except
           on Exception : EConvertError do
           ShowMessage(Exception.Message);
       end;
end;

procedure TForm1.Button2Click(Sender: TObject);

var
  A : Extended;
  B  : Extended;
begin
       try
           A :=   strtofloat(Campo1.Text)   ;
           B :=   strtofloat(Campo2.Text)   ;
           Edit1.Text := floattostr(A - B) ;
       Except
           on Exception : EConvertError do
           ShowMessage(Exception.Message);
       end;

end;


procedure TForm1.Button4Click(Sender: TObject);

var
  A : Extended;
  B  : Extended;
begin
       try
           A :=   strtofloat(Campo1.Text)   ;
           B :=   strtofloat(Campo2.Text)   ;
           Edit1.Text := floattostr(A / B) ;
       Except
           on Exception : EConvertError do
           ShowMessage(Exception.Message);
       end;

end;


procedure TForm1.Button3Click(Sender: TObject);

var
  A : Extended;
  B  : Extended;
begin
       try
           A :=   strtofloat(Campo1.Text)   ;
           B :=   strtofloat(Campo2.Text)   ;
           Edit1.Text := floattostr(A * B) ;
       Except
           on Exception : EConvertError do
           ShowMessage(Exception.Message);
       end;

end;



end.

Explicación del código



Para programar en Pascal debemos seguir algunas normas, cada que terminemos una instrucción debemos colocar el signo de punto y coma (;) 
  • Los tipos de variables que podemos utilizar son:

Nombre Rango Bytes Tipo
char 8
ShortString
AnsiStrings
Widestrings
Byte 0 .. 255 1 Enteros
Shortint -128 .. 127 1 Enteros
Smallint -32768 .. 32767 2 Enteros
Word 0 .. 65535 2 Enteros
Integer smallint o longint 2 o 4 Enteros
Cardinal longword 4 Enteros
Longint -2147483648 .. 2147483647 4 Enteros
Longword 0..4294967295 4 Enteros
Int64 -9223372036854775808 .. 9223372036854775807 8 Enteros
QWord 0 .. 18446744073709551615 8 Enteros
Single 1.5E-45 .. 3.4E38 4 Decimales
Double 5.0E-324 .. 1.7E308 8 Decimales
Extended 1.9E-4932 .. 1.1E4932 10 Decimales
Comp -2E64+1 .. 2E63-1 8 Decimales
Currency -9.22337E+14 8 Decimales
Boolean 1 Lógicos
ByteBool 1 Lógicos
WordBool 2 Lógicos
LongBool 4 Lógicos

  • Cada objeto dentro de la pantalla tiene sus propias características por ejemplo un botón le puedes configurar el tamaño, la letra, el fondo y 




  • Cada que terminemos un segmento de programa debemos colocar end; y cuando es fin de un procedimiento o de todo el programa end.

procedure TForm1.Button3Click(Sender: TObject);
var
  A : Extended;
  B  : Extended;
begin
       try
           A :=   strtofloat(Campo1.Text)   ;
           B :=   strtofloat(Campo2.Text)   ;
           Edit1.Text := floattostr(A * B) ;
       Except
           on Exception : EConvertError do
           ShowMessage(Exception.Message);
       end;

end;


end.

Ejecución del Programa




Les dejó la liga para descargarlo


En lo personal creo que es muy buena opción para desarrollo de aplicaciones, porque una vez que terminas tu desarrollo, generas tu programa executable y lo puedes distribuir sin tener que instalar nada más a menos que tu aplicación lo requiera y no entregas tus programas fuentes o códigos, si no solo el sistema. Tiene varias librerias para poder realizar conexiones con otros sistemas o hacer cosas muy complejas, tiene conectores para conexión de bases de datos, para crear webservice, toda la barra superior son las librerías que tiene




No se si sea un lenguaje muy popular, pero se que si hay empresas que lo utiliza, incluso si filtran en OCC también hay trabajos que requieren este software https://www.occ.com.mx/empleos/de-desarrollador-delphi/

Saludos, espero les haya parecido interesante este post y nos compartan. Hasta el próximo post.

viernes, 9 de agosto de 2019

Como programar en PHP, ejemplo Calcular valor de Hipotenusa

Durante mis practicas profesionales tuve el gusto de conocer a PHP (acrónimo recursivo de PHP: Hypertext Preprocessor) es un lenguaje open free es decir lo que se puede instalar sin costo, no hay que pagar licencia, es un lenguaje Cliente/Servidor y es orientado a objetos, además de ser de los lenguajes más populares y utilizados por Facebook, Tumblr, Slack, Mediawiki, Yahoo.

PHP nos permite realizar consultas al servidor de una base de datos y crear por ejemplo formularios en una página HTML y guardar esos datos en una tabla o en varias tablas realizando cálculos y validación de condiciones. 

Para ejecutar estos programas debes instalar PHP y un servidor por ejemplo Apache (si como los triciclos) y lo mas seguro es que necesites una base de datos yo recomiendo MySQL, en la página de PHP da más detalles https://www.php.net/manual/es/tutorial.requirements.php

Durante mis practicas profesionales lo utilice en una entidad de gobierno donde diseñe y programe un módulo que permitía leer datos desde un archivo de salida de SAP e importarlo de manera manual y permitía crear reportes y gráficas, en el mundo de la programación y saliendo reciente de la carrera fué una muy buena experiencia.

Además de mis practicas lo utilice en un empleo donde vendía varios CRM implementados en varias compañías. Con PHP se hacía todas las interfaces, reportes, incluso campañas comerciales por medio de envió de correos.

Les cuento esto para que vean las cosas que podrían desarrollar con PHP.

Les voy a platicar más acerca de las gráficas, hay una librería que se llama FusionCharts, encontré una pantalla de mi sistema 😁


FusionCharts en su página WEB colocan varios ejemplos de como utilizar la librería en varios lenguajes por ejemplo PHP.


Mi experiencia con este librería es muy buena, me permitió hacer gráficas de manera muy rápida, sin tener que hacer de cero ese programa, eso es lo más padre de la programación orientada a objetos que existen muchas librerías desarrolladas por alguien mas que tu puede utilizar en tus programas.

Bueno y si aun no los convenso de  aprender PHP, se acuerda de la película de The Social Network (La red social) basada en la historia del fundador de Facebook, Mark Zuckerberg comienza a trabajar en un noche para crear su página social en contra de una ex-novia, en la escena se ve código de PHP



En la página de Facebook pueden encontrar ayuda para poder hacer algunas cosas desde PHP y Facebook https://developers.facebook.com/docs/reference/php/

Como referencia el sueldo de un programador junior de PHP es de entre 8000 y 10,000 MXN y alguien con 2 años de experiencia 15,000 MXN pueden buscar las vacantes en OCC.

Ahora veamos un ejemplo de PHP algo más simple para comenzar con este lenguaje:

Objetivo del programa: Calcular la hipotenusa de un triángulo

Primero la formula del teorema de Pitágoras que nos dice como calcular la hipotenusa 

Diseño: Vamos hacer un formulario para que los usuarios del programan ingresen la base y la longitud del triángulo y mostrar el resultado en pantalla. 

Programa:

HTML  Calcular_hipotenusa.html

<html>
    <head>
        <meta charset='utf-8' > 
 <title>Calcular Hipotenusa</title>

    </head>
<body>
La hipotenusa es el lado opuesto al ángulo recto en un triángulo rectángulo, resultando ser su lado de mayor longitud. <br>
De acuerdo al llamado teorema de Pitágoras, el cuadrado de la longitud de la hipotenusa es igual a la suma de los cuadrados <br>
de las respectivas longitudes de los otros dos lados del triángulo rectángulo, denominados catetos.<br>
(https://es.wikipedia.org/wiki/Hipotenusa) <br>
<img src="https://ejemploprogramacionparatodos.000webhostapp.com/hipotenusa.jpg" height="300" width="300" > <br>
<form action="Procesa.php" method="GET">
 Base:  <input type="text" id="vbase"   name="cbase" placeholders="Ingresa el valor de la Base del Triángulo"/>
 Altura: <input type="text" id="valtura" name="caltura" placeholders="Ingresa el valor de la Altura del Triángulo"/>
 <input type="submit" value="Enviar"/>
</form>


</body>

</html>

PHP Procesa.php

 <?php
$base = $_GET["cbase"];
$altura = $_GET["caltura"];
$Hipo = sqrt(pow($base,2) + pow($altura,2));
echo "Valor de Hipotenusa: " . $Hipo;


?>  

Que hace este programa lee los campos del formulario de la página, realiza la operación de pow que es la potencia y sqrt que es la raíz cuadra y muestra el resultado en pantalla para ello concatena o une una cadena de texto y con el simbolo de punto (.) lo une con la variable $Hipo
Ejecución:
Para ejecutar este programa cargue la página en 000webhost para no hacer la instalación de PHP y Apache en mi computadora, igual pueden hacerlo así si no quieren instalar nada solo tienen que crear su cuenta en esa página .

Les muestro las imágenes ejecutando el programa desde mi celular. 


Ustedes pueden ejecutarlo también desde la liga

https://ejemploprogramacionparatodos.000webhostapp.com/Calcular_hipotenusa.html


Espero que les haya gustado este POST y nos dejen sus comentarios y nos compartan.

También para aprender este lenguaje les recomiendo el curso de Web Applications in Coursera  https://www.coursera.org/learn/web-applications-php

jueves, 25 de julio de 2019

Estructuras en programación, ejemplo de Metodo burbuja con Python

Como hemos visto en post anteriores la programación es una abstracción de algo o la simulación o semejanza al comportamiento de un proceso en esta ocasión vamos a ver como es que podemos guardar datos y procesarlos en programación.
Los tipos de estructuras más comunes son:

  • Pila
  • Cola
  • Arboles
  • Arreglos o Matrices unidimensional y N-dimensional
  • Grafos 

Una pila y Cola son como un torre de cubos lo que las diferencia es la forma en que se leen los datos de una Cola se toma el que está hasta arriba y se dice que es el primero en entrar es el primero en salir o un FIFO.


Una Pila es el último en entrar es el primero en salir o LIFO


Para fines prácticos la Cola es como una fila en el supermercado y la pila es como cuando guardan su ropa limpia y se ponen siempre lo último que lavaron.

Estas estructuras nos sirven porque por ejemplo en un banco, supermercado si quisiéramos implementar un sistema de turnos tendríamos que abstraer esto y lo veríamos como una Cola. Para una pila un ejemplo es un sistema de inventarios consumir el material más cercano.

Puede ser más complejo y poner pesos a valor a cada espacio en nuestras estructuras para que no sólo considere la ubicación sino también la que tenga el valor más alto por ejemplo si hiciéramos un sistema de turnos en un hospital hay que tomar en cuenta la gravedad del paciente. 

Los arreglos o las matrices son como una fila en Excel es decir tiene coordenadas que son una letra y un numero y una matriz es cuando hacemos una tabla en Excel es decir n número de filas por m número de columnas. Este es la estructura que mas he utilizado a lo largo de mi vida profesional, en sin número de programas.

Los árboles son semejantes a un árbol con sus ramas y hojas, identificando cuando una tarea es dependiente de otra y como llenar al punto final por ejemplo, nos sirve para Inteligencia artificial.
Para los grafos , son una maravilla nos ayudan a representar rutas por ejemplo cual es la mejor ruta para llegar a un destino, cual es la ruta critica en un Proyecto 

Así vemos a un grafo en la imagen un problema a resolver es como llegar del punto al punto de la manera más fácil. 

Hay grafos no dirigidos y dirigidos, el de la imagen es no dirigido es decir no tiene dirección o no hay flechas en el diagrama.

Hay grafos regulares e irregulares, cuando es regular es que tiene el mismo número de conexiones o valencias en todos los nodos, en el caso de la imagen es un grafo irregular. 

Vamos hacer un ejemplo una cola, recuerdo que en la universidad lo vi con Java, pero eso será en un post más adelante cuando veamos ese lenguaje.

De momento les voy a compartir un ejemplo en Python del algoritmo de ordenamiento donde utilizaremos la estructura de una matriz unidimensional (que es la más sencilla), este ordenamiento se llama Burbuja o Bubble Sort 

Este algoritmo lo que hace es ir recorriendo la matriz y compara el arreglo o matriz en la primera posición vs la segunda y si es menor lo mueve al inicio si no lo deja igual, despues en la segunda iteración compara la primera, segunda y tercera posición para colocar al inicio la mas pequeña, veamos un ejemplo 
Nuestro arreglo es 72,8,86,79,46,10,37,40,19:

La corrida a mano es la siguiente 


El programa en Python es:

def ordburbuja(lista):
    for dato in range(len(lista)-1,0,-1):
        for i in range(dato):
            if lista[i]>lista[i+1]:
                temp = lista[i]
                lista[i] = lista[i+1]
                lista[i+1] = temp

lista = [72,8,86,79,46,10,37,40,19]
ordburbuja(lista)
print(lista)

Ejecución del Programa





Hace algunos años cuando comenzaba mis entrevistas de trabajo, recuerdo que en algún examen me pidieron escribir el seudocodigo de un ordenamiento de burbuja, no es que tengan que memorizar el programa pero si entender la lógica del algoritmo, pueden perder sus programas pero no lo que saben. 

Todos estas estructuras que vimos en el post son ejemplos de paradigmas en la programación o la representación en la programación que simula algo de la vida real, o algún comportamiento,o alguna forma eso quiere decir abstracción, darle una representación a lo "real" por lo menos de esta dimensión. 

Espero les haya sido de utilidad este post, nos dejen sus comentarios o dudas y nos comportan, buena semana programadores.

Entrada destacada

Como Programar en Pascal y Delphi, ejemplo calculadora en Delphi

Que tal amigos, bienvenidos a otra semana de nuestro blog, les quiero platicar acerca de un lenguaje de programación que se llama Pascal, ...