lunes, 23 de diciembre de 2013

Recursividad



Saludos Amig@s:
En el día de hoy tocare el tema de Recursividad, para complacer algunos de mis lectores que me han pedido alguna explicación sobre este particular.
Pues bien, antes de adentrarnos en lo que es la recursividad, debemos decir, que en programación se utilizan los ciclos repetitivos, como su nombre lo indica, nos permite repetir n cantidad de veces una o varias acciones. Y es exactamente ese, el objetivo de la recursividad, pero sin utilizar ciclos repetitivos, tales como for, do while, etc.
En pocas palabras Recursividad, es la capacidad que tiene un método o function para llamarse a sí misma.
Veamos un ejemplo:
Imaginemos que deseamos imprimir los número del 24 al 1, es decir, que iniciando en 24 y restando 1 a cada número por lo que el resultado debe ser algo como esto:
24
23
22
21
20
19
18
  .
  .
  .
1
Pues bien esto lo podemos hacer perfectamente con un for de la siguiente manera.
       class dmRecursividad
       {
 
        
        static void Main(string[] args)
        {
            for (int n=24;n>0;n--)
              {
                  Console.WriteLine(n + " ");
              }
            Console.ReadKey();
           
        }






Ahora veremos cómo logramos exactamente lo mismo utilizando un método recursivo, sin la necesidad de utilizar un ciclo for.
    class dmRecursividad
    {
       void imprimir(int x)
        {
        if (x>0)
        {
            Console.WriteLine(x + " ");
           imprimir(x-1);
        }    
       }
        static void Main(string[] args)
        {
            dmRecursividad re = new dmRecursividad();
            re.imprimir(24);
            Console.ReadKey();
           
        }


Para el ejemplo anterior declaramos un método llamado imprimir, el cual recibe un entero  X y luego la función se llama a sí misma y va restando 1 al resultado.
Esto es un ejemplo sencillo, pero puede servir de base para que ustedes sigan con este interesante tema.


lunes, 16 de diciembre de 2013

Videos Tutorias de Sql Server 2008

Saludos Amig@s
En el dia de hoy, les traigo un conunto de videos, mostrando de forma simple lo que podemos hacer con Sql Server 2008  y  C#.

Creando Stored Procedure con Sql Server 2008



Creando una función en Sql Server 2008:

Haciendo un login utilizando c# y Sql Server:


Uniendo tablas en Sql Server:





Este blog no tiene patrocinio, por lo que tus donaciones serán siempre bien recibidas, si consideras que te fueron útiles estos vides o el contenido de mi blog, aporta con tu donaciones a nuestra cuenta, los fondos seran utilizado para la creación de nuestro instituto virtual, el cual tiene como objetivo principal formar a los jóvenes en el desarrollo de software.
Bancos:

BHD cuenta:  12175200013
Banco Popular Dominicano: 762341634 

jueves, 21 de noviembre de 2013

Reloj En Tiempo Real en Java


Saludos Amig@s !! Después de una pausa en mi blog por compromisos personales, aprovecho para iniciar nuevamente con un tema super divertido, consiste en la creación de un reloj digital, utilizando a java.

Es importante decir que para tales fines utilizo los hilos de java, para los que como yo son principiante en java un hilo  es una secuencia de instrucciones que está controlada por un planificador que se comporta como un flujo de control secuencial.
El planificador gestiona el tiempo de ejecución del procesador y asigna de alguna manera dicho tiempo a los diferentes hilos actualmente presentes.
Nota no solamente esta definición es valida para Java, otros lenguajes también manejan hilos, como c# por poner solo un ejemplo.

Bien Vamos a trabajar!!!

1) Creamos un nuevo proyecto en NetBeans de nombre Reloj

2) Una vez creado agregamos un paquete llamado reloj





3) Agregamos un JFrame dando clic derecho sobre el paquete > Nuevo > Formulario JFrame y le ponemos como nombre Principal


4) Agregamos ahora una label al formulario que utilizaremos como contenedor para crear nuestro reloj digital. Podemos aplicarle diferente formato o apariencia a este objeto, como por ejemplo tamaño de letra, color etc, simplemente ubícate en el label y pulsa clic derecho y podrás modificar todas las propiedades.



5) cambiamos el nombre del label, para ello pulsamos clic derecho en el objeto label y seleccionamos cambiar nombre de variable, para nuestro ejemplo le ponemos lblHora.

Bien!!! ahora vamos a la programación!!
En Netbeans tenemos un modo diseño y otro fuente, pulsamos clic en este ultimo y escribimos los siguientes imports

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

en la definición de la clase indicamos que implementa la interfaz Runnable, esto debido a que tenemos que trabajar con hilos si queremos que nuestro reloj muestre la hora en tiempo real. 
ejemplo: public class Principal extends javax.swing.JFrame implements Runnable{

public class Principal extends javax.swing.JFrame implements Runnable {

    /** Declaramos las variables que van a contener los resultados de salida */
    int hora, minutos, segundos;
    Calendar calendario;
    Thread h1;

    public Principal() {
        initComponents();
        h1 = new Thread(this);
        h1.start();
        setLocationRelativeTo(null);//para centrar la ventana
        setVisible(true);
    }

/** Al realizar lo anterior el compilador nos indicará que es necesario implementar el método run(), así que lo agregamos de la siguiente manera: */
    
    @Override
    public void run() {
        Thread ct = Thread.currentThread();
        while (ct == h1) {
            calcula();
            lblHora.setText(hora + ":" + minutos + ":" + segundos);
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
            }
        }
    }
/** Ahora Escribimos el metodo que se encargara de alimentar las variables que declaramos para luego ser mostrada por el label */

 public void calcula() {
        Calendar calendario = new GregorianCalendar();
        hora =calendario.get(Calendar.HOUR_OF_DAY);
        minutos = calendario.get(Calendar.MINUTE);
        segundos = calendario.get(Calendar.SECOND);
    }
  }

debemos crear una clase que haga instancia  del frame Principal en la clase Reloj
para ello, en el paquete pulsamos clic derecho, nuevo clase y escribimos el nombre de la clase, para nuestro ejemplo será Reloj

ahora escribimos el siguiente codigo para hacer la instancia.
package reloj;

/**
 * @author
 * :Diogenes Amaury Martinez : ::
 */
public class Reloj {

    public static void main(String[] args) {
        new Principal();
    }
}


Pues bien ya hemos finalizado y al ejecutar nuestro programa podremos ver un reloj digital que estara sincronizado con el de tu computador.


Espero que este articulos sirva de motivación y que publiquen en mi blog nuevas mejoras para hacer lo mismo, recuerden que desde el momento que creemos que sabemos, a partir de ese mismo momento dejamos de aprender.
Att.
Diógenes Amaury Martínez Silverio

martes, 24 de septiembre de 2013

Combinar Correspondencia


Saludo@s
En el día estaremos hablando de como crear una combinación de correspondencia en Microsoft Word, pero antes de sumergimos en el proceso de explicación, debemos definir lo que es una combinación de correspondencia.

Una Combinación de correspondencia es la unión de dos archivos con la finalidad de crear un tercero con los datos combinados de los dos primeros.
Por ejemplo imagine que tiene una circular con una información x (Primer archivo) y una lista de personas que recibirán esa información (Segundo archivo), el objetivo final sera unir esto archivo y obtener el tercer archivo con la combinación de los dos archivos anteriores.

 Porque para mi la teoria sin practica  es irrelevante, procedo a mostrar en este video como logramos hacer una combinacion de correspondencia de forma simple.

Video Para Crear Combinar Correspondencia

Att.
Diogenes Amaury
e mail: diogenesystem@gmail.com


domingo, 7 de julio de 2013

Entity Framework.


Entity Framework.


Con el SP1 de Visual Studio 2008 se lanzo oficialmente Entity Framework.  se trata del  modelo de acceso a datos propuesto por Microsoft dentro de ADO.NET, que implementa el patrón ORM en el que los objetos de base de datos se mapean con entidades del modelo conceptual de objetos.
A continuación les  dejo unos enlaces con un pequeño tutorial de introducción a la tecnología. http://www.scip.be/index.php?Page=ArticlesNET12#EntityFramework

Aunque están en ingles entiendo que por los ejemplos seran de gran utilidad, adelante vamos aprender una nueva técnica de programación que nos evitara menos código en nuestra aplicaciones, acompáñenme en el proceso de aprendizaje de esta nueva técnica, al menos para mi, porque ya tiene unos años.
Diogenes Amaury MS





sábado, 15 de junio de 2013

Guardar un registro en asp.net

Guardar un registro en asp.net
By Diógenes Amaury MS

Saludos amigo@s

Hoy veremos como guardar un registro desde asp.net, para ello utilizaremos a sql server 2008 como manejador de base de datos.

Primero debemos crear una base de datos que en mi caso la nombre ControlEstudiante, una tabla llamada Estudiantes con la siguiente estructura:

       [MATEST] [varchar](15) NOT NULL
[NOMEST] [varchar](50) NULL
[APEEST] [varchar](50) NULL
[DIREST] [varchar](100) NULL





Como pueden observar en la gráfica anterior tenemos creada la interfaz con los siguientes textbox:
txtmatest
txtnomest
txtapeest
txtdirest

Ahora vamos a la propiedad Enabled de cada uno de los objetos y la cambiamos a false.
Para hacer esto simplemente seleccione el objeto y valla a la ventana de propiedades, en caso de que no este disponible pulse la tecla F4.

En el botón Nuevo agregue el siguiente código:
        Session("esnuevo") = "si"
        txtmatest.Enabled = True
        txtnomest.Enabled = True
        txtapeest.Enabled = True
        txtdirest.Enabled = True

Lo que hicimos fue declarar una variable de sesión para controlar luego si insertamos o actualizamos el registro.

agregamos la instancia con la base de datos que deseamos trabajar, para nuestro ejempoo es sql server.

Imports System.Data
Imports System.Data.SqlClient

Declaramos la conexion a la base de datos.

 Dim conexion As New SqlConnection("Data Source=USER-PC\SQLEXPRESS;Initial Catalog=ControlEstudiante;Integrated Security=True")

En el botón guardar declaramos el siguiente código.

 Dim QUERY As String
 If Session("esnuevo") = "si" Then
            QUERY = "INSERT INTO ESTUDIANTES (MATEST,NOMEST,APEEST,DIREST)" & _
                "VALUES(" & Val(txtmatest.Text) & ",'" & _
                txtnomest.Text & "','" & _
                 txtapeest.Text & "','" & _
                 txtdirest.Text & "')"
 Else
          QUERY = "UPDATE  ESTUDIANTES SET NOMEST ='" & txtnomest.Text & "', APEEST ='" & txtapeest.Text & "', DIREST = '" & txtdirest.Text & "' WHERE  MATEST LIKE '" & txtmatest.Text & "'"
        End If
        conexion.Open()
        Dim cmd1 As New SqlCommand()
        cmd1.Connection = conexion
        cmd1.CommandType =
        cmd1.CommandText = QUERY

        cmd1.ExecuteNonQuery()
        conexion.Close()
        'txtmatest.Enabled = False
        'txtnomest.Enabled = False
        'txtapeest.Enabled = False
        'txtdirest.Enabled = False
        Session("esnuevo") = "NO"





Noten que utilizamos  Session("esnuevo") para determinar si insertamos o actualizamos el registro, luego utilizamos la variable QUERY que será alimentada dependiendo del valor Session("esnuevo").
SqlCommand se encarga de ejecutar dicha sentencia sql.

hasta la próxima.








martes, 4 de junio de 2013

Hacer Login en .Net



By Diógenes Amaury MS

Hoy explicaremos la forma de hacer login en .Net, es importante destacar que este código puede ser utilizado tanto en aplicaciones de escritorios (windowsForm) como en aplicaciones web(webForm) con prácticamente el mismo código.
En el día de hoy realizaremos un login en asp.net, de manera que cuando el usuario escriba su usuario y contraseña tenga acceso a al sistema.
Código en vb.net
Importamos la clase  Data para poder conectarnos a un base de datos

Imports System.Data
Imports System.Data.SqlClient

Rem Declaramos una variable que almacenara la conexion a la base de datos.

Dim conexion As New SqlConnection("Data Source=SERVER\SQLEXPRESS;Initial Catalog=Datos;Integrated Security=True")

Rem Realizamos el código  en el botón entrar.

Protected Sub btnentrar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnentrar.Click
  Dim dt As New DataTable
  Dim csql As String
  csql = " Select * from USUARIO_M where NOMUSU ='" & TXTUSUARIO.Text & "' AND CLAUSU ='" & _ 
     TXTCLAVE.Text & "'"        
       
  Dim da As New SqlDataAdapter(csql, conexion.ConnectionString)
  conexion.Open()
  da.Fill(dt)
   If dt.Rows.Count > 0 Then
      Session("auntentico") = "si"
      Session("USUARIO") = dt.Rows.Item(0)("NOMBRE").ToString
      Response.Redirect("menu.aspx")

    Else
     lblerror.Text = "Usuario no autorizado Incorrecta"
     Session("auntentico") = "no"
   End If
   conexion.Close()     
End Sub



Código para c#
En este ejemplo utilizaremos los parámetros para conectarnos, esta misma forma la podemos utilizar en vb.net por seguridad cuando trabajamos con base de datos en la web para evitar las inyecciones sql de usuarios no autorizados.

using System.Data;
using System.Data.SqlClient;

string cadena = @"Data Source=SERVERMIT2\SQLEXPRESS;Initial Catalog=Carros;Integrated Security=True";
SqlConnection conexion = new SqlConnection(cadena);
string strsql = " Select *  from USUARIO_M where NOMUSU =@usuario AND CLAUSU =@clave";
SqlCommand cmd = new SqlCommand(strsql, conexion);
cmd.Parameters.AddWithValue("@usuario", TXTUSUARIO.Text );
cmd.Parameters.AddWithValue("@clave", TXTCLAVE.Text);
conexion.Open();
SqlDataReader rdr = cmd.ExecuteReader();
if (rdr.HasRows)
   while (rdr.Read())
    {
     // Obteniendo el resultado de la variable que contiene el nombre de usuario
     Session["usuario"] = rdr["USUASI"];
     Response.Redirect("menu.aspx");
          
    }
else
   {
                       
    lblmensaje.Text = "Error de clave o Usuario";
  }
  conexion.Close();
           

domingo, 3 de febrero de 2013

Mostrar el contenido de una variable de forma inversa


Saludos Amig@s
Hoy mostraremos la forma de hacer que una variable muestre su contenido de forma inversa utilizando la función Substring.





en el primer texbox escribiremos lo que deseamos mostrar de forma invertida.
Nombre de los componentes utilizados.
txtnombre
txtinverso
btnmostrar

Procederemos ahora  a programar el botón btnmostrar, de forma tal que cuando se puse clic en dicho botón  el contenido del textbox txtnombre se muestre de forma invertida en el textbox txtinverso.

A continuación el código que contiene dicho botón:
          
            string letras;
            string inicio;
            letras = "";
            inicio=txtnombre.Text;
            for (int i = inicio.Length - 1; i >= 0; i--)
            {
                letras = letras + inicio.Substring(i, 1);
            }
            txtinverso.Text = letras;


Como puede observar, utilizamos un ciclo for para recorrer el string y luego concatenamos el resultado, para ser mostrado finalmente en el textbox txtinverso.


Hasta una próxima entrega, se despide Diógenes Amaury MS.
Existe una forma de aprender a programar...    
... Programando!!!