jueves, 20 de junio de 2013

Lenguaje de programación

Un lenguaje de programación" es un lenguaje diseñado para describir el conjunto de acciones consecutivas que un equipo debe ejecutar. Por lo tanto, un lenguaje de programación es un modo práctico para que los seres humanos puedan dar instrucciones a un equipo.Por otro lado, el término "lenguaje natural" define un medio de comunicación compartido por un grupo de personas (por ejemplo: inglés o francés).Los lenguajes que los equipos usan para comunicarse entre ellos no tienen nada que ver con los lenguajes de programación; se los conoce como protocolos de comunicación. Se trata de dos conceptos totalmente diferentes. Un lenguaje de programación es muy estricto:
A CADA instrucción le corresponde UNA acción de procesador.
El lenguaje utilizado por el procesador se denomina lenguaje máquina. Se trata de datos tal como llegan al procesador, que consisten en una serie de 0 y 1 ( datos binarios).
El lenguaje máquina, por lo tanto, no es comprensible para los seres humanos, razón por la cual se han desarrollado lenguajes intermediarios comprensibles para el hombre. El código escrito en este tipo de lenguaje se transforma en código máquina para que el procesador pueda procesarlo.
El ensamblador fue el primer lenguaje de programación utilizado. Es muy similar al lenguaje máquina, pero los desarrolladores pueden comprenderlo. No obstante, este lenguaje se parece tanto al lenguaje máquina que depende estrictamente del tipo de procesador utilizado (cada tipo de procesador puede tener su propio lenguaje máquina). Así, un programa desarrollado para un equipo no puede ser portado a otro tipo de equipo. El término "portabilidad" describe la capacidad de usar un programa de software en diferentes tipos de equipos. Para poder utilizar un programa de software escrito en un código ensamblador en otro tipo de equipo, ¡a veces será necesario volver a escribir todo el programa!
Por lo tanto, un lenguaje de programación tiene varias ventajas:
  • Es mucho más fácil de comprender que un lenguaje máquina:
  • Permite mayor portabilidad, es decir que puede adaptarse fácilmente para ejecutarse en diferentes tipos de equipos.
Lenguajes de programación imperativos y funcionales

Los lenguajes de programación generalmente se dividen en dos grupos principales en base al procesamiento de sus comandos:
  • Lenguajes Imperativos.
  • Lenguajes Funcionales.

Lenguaje de Programación Imperativo

Un lenguaje imperativo programa mediante una serie de comandos, agrupados en bloques y compuestos de órdenes condicionales que permiten al programa retornar a un bloque de comandos si se cumple la condición. Estos fueron los primeros lenguajes de programación en uso y aún hoy muchos lenguajes modernos usan este principio.
No obstante, los lenguajes imperativos estructurados carecen de flexibilidad debido a la secuencialidad de las instrucciones.

Lenguaje de Programación Funcional

Un lenguaje de programación funcional(a menudo llamado lenguaje procedimental) es un lenguaje que crea programas mediante funciones, devuelve un nuevo estado de resultado y recibe como entrada el resultado de otras funciones. Cuando una función se invoca a sí misma, hablamos de recursividad.

Interpretación y compilación

Los lenguajes de programación pueden, en líneas generales, dividirse en dos categorías:
  • Lenguajes interpretados.
  • Lenguajes compilados.

Lenguaje Interpretado

Un lenguaje de programación es, por definición, diferente al lenguaje máquina. Por lo tanto, debe traducirse para que el procesador pueda comprenderlo. Un programa escrito en un lenguaje interpretado requiere de un programa auxiliar (el intérprete), que traduce los comandos de los programas según sea necesario.

Lenguaje Compilado

Un programa escrito en un lenguaje "compilado" se traduce a través de un programa anexo llamado compilador que, a su vez, crea un nuevo archivo independiente que no necesita ningún otro programa para ejecutarse a sí mismo. Este archivo se llama ejecutable.
Un programa escrito en un lenguaje compilado posee la ventaja de no necesitar un programa anexo para ser ejecutado una vez que ha sido compilado. Además, como sólo es necesaria una traducción, la ejecución se vuelve más rápida. 
Sin embargo, no es tan flexible como un programa escrito en lenguaje interpretado, ya que cada modificación del archivo fuente (el archivo comprensible para los seres humanos: el archivo a compilar) requiere de la compilación del programa para aplicar los cambios.
Por otra parte, un programa compilado tiene la ventaja de garantizar la seguridad del código fuente. En efecto, el lenguaje interpretado, al ser directamente un lenguaje legible, hace que cualquier persona pueda conocer los secretos de fabricación de un programa y, de ese modo, copiar su código o incluso modificarlo. Por lo tanto, existe el riesgo de que los derechos de autor no sean respetados. Por otro lado, ciertas aplicaciones aseguradas necesitan confidencialidad de código para evitar las copias ilegales (transacciones bancarias, pagos en línea, comunicaciones seguras...).

Lenguajes intermediarios

Algunos lenguajes pertenecen a ambas categorías (LISP, Java, Python...) dado que el programa escrito en estos lenguajes puede, en ciertos casos, sufrir una fase de compilación intermediaria, en un archivo escrito en un lenguaje ininteligible (por lo tanto diferente al archivo fuente ) y no ejecutable (requeriría un interprete). Los applets Java, pequeños programas que a menudo se cargan en páginas web, son archivos compilados que sólo pueden ejecutarse dentro de un navegador web (son archivos con la extensión .class).

Algunos ejemplos de lenguajes ampliamente usados

A continuación, encontrará una breve lista de los lenguajes de programación actuales:
Lenguaje
Principal área de aplicación
Compilado/interpretado
ADA
Tiempo real
Lenguaje compilado
BASIC
Programación para fines educativos
Lenguaje interpretado
C
Programación de sistema
Lenguaje compilado
C++
Programación de sistema orientado a objeto
Lenguaje compilado
Cobol
Administración
Lenguaje compilado
Fortran
Cálculo
Lenguaje compilado
Java
Programación orientada a Internet
Lenguaje intermediario
MATLAB
Cálculos matemáticos
Lenguaje interpretado
Cálculos matemáticos
Cálculos matemáticos
Lenguaje interpretado
LISP
Inteligencia artificial
Lenguaje intermediario
Pascal
Educación
Lenguaje compilado
PHP
Desarrollo de sitios web dinámicos
Lenguaje interpretado
Inteligencia artificial
Inteligencia artificial
Lenguaje interpretado
Perl
Procesamiento de cadenas de caracteres
Lenguaje interpretado


lunes, 17 de junio de 2013

Hola Mundo en C# (Consola)

Este es el primer programa (Consola) con el que la mayoría de los programadores comenzaron, el famoso “Hola mundo” en pantalla. Por que romper con lo tradicional, asi que aquí les va el código del programa en modo consola.

Programa01: C_Sharp_2010__Consola__HolaMundo_01

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace C_Sharp_2010__Consola__HolaMundo_01
{
   class Program
   {
     static void Main(string[] args)
     {
        //Salida
        Console.WriteLine("Hola Mundo");

        // Pausa
        Console.WriteLine("\n\n Presione una tecla para Salir del Programa....");
        Console.ReadKey();
     }
   }
}

El Codigo que permite mostrar el famoso "Hola mundo" por pantalla es este:

//Salida
Console.WriteLine(" Hola Mundo");

y el codigo siguiente:

//Pausa
Console.WriteLine("\n\n Presione una tecla para Salir del Programa....");
Console.ReadKey();

permite que pueda observarse el mensaje de salida "Hola Mundo", esto debido a que el ordenador realiza los procesos tan rápidos que se nos es prácticamente imposible llegar a visualizar el mensaje, es por esta razón que añadimos el código para realizar una Pausa como indica el comentario.

Cabe aclarar que después de  //  cualquier texto o numero que se escriba, el compilador lo reconoce como comentario y no lo toma en cuenta a la hora de realizar operaciones.

Resultado del Programa:








El Lenguaje de Programación C#

¿Qué es C#?


C# o C Sharp es un lenguaje de programación que está incluido en la Plataforma .NET y corre en el Lenguaje Común en Tiempo de Ejecución (CLR, Common Language Runtime). El primer lenguaje en importancia para el CLR es C#, mucho de lo que soporta la Plataforma .NET está escrito en C#.

C# intenta ser el lenguaje base para escribir aplicaciones .NET

C# deriva de C y C++, es moderno, simple y enteramente orientado a objetos, simplifica y moderniza a C++ en las áreas de clases, namespaces, sobrecarga de métodos y manejo de excepciones. Se elimino la complejidad de C++ para hacerlo más fácil de utilizar y menos propenso a errores.
Algunas características de C# son:

  • C# provee el beneficio de un ambiente elegante y unificado.
  • No soporta herencia múltiple, solamente el runtime .NET permite la herencia múltiple en la forma de interfaces, las cuales no pueden contener implementación.
  • No maneja apuntadores, para emular la función de los apuntadores se utiliza delegates el cual provee las bases para el .NET event model.
  • Por default trabaja con código administrado.
  • La Plataforma .NET provee un colector de basura que es responsable de administrar la memoria en los programas C#.
  • El manejo de errores está basado en excepciones.
  • Soporta los conceptos como encapsulación, herencia y polimorfismo de la programación orientada a objetos.
  • El Modelo completo de clases está construido en la cima del .NET Virtual Object System (VOS). El modelo de objetos es parte de la infraestructura y ya no forma parte del lenguaje de progrmación.
  • No existen funciones globales, variables o constantes. Todo deber ser encapsulado dentro de la clase, como un miembro de la instancia (accesible via una instancia de clase) o un miembro estático (via el tipo).
  • Los métodos que se definen en las clases son por default no virtuales (no pueden ser sobre escritos al derivar clases)
  • Soporta los modificadores de acceso private, protected, public y agrega un cuarto modificador internal.
  • Solamente se permite una base clase, si se requiere herencia múltiple es posible implementar intefaces.
  • No es posible utilizar variables no inicializadas.
  • No es posible hacer el cast de un entero a un tipo de referencia (objeto).
  • Los parámetros que son pasados son type-safe.
  • El soporte de versiones lo provee el CLR.
  • Permite acceder a diferentes APIs a través de .NET Common Language Specification, el cual define el estádar de interoperabilidad entre lenguajes que se adhieran a este estándar.
  • La Plataforma .NET provee un acceso transparente a COM.
  • Soporta OLE
  • Permite la interoperabilidad con APIs al estilo C y DLLs, esta característica para acceder a APIs nativas es llamada Platform Invocation Services (PInvoke)
  • Por default el código es safe mode, pero es posible declarar clases o sólo métodos unsafe, esta declaración permite utilizar apuntadores, estructuras y almacenamiento de arreglos estáticos.
  • C# depende del runtime que provee la Plataforma .NET, el runtime administra la ejecución de código.



Hallar el mayor y menor de cuatro números ingresados por teclado en C#

El Siguiente Ejemplo Permite ingresar cuatro números por teclado, para luego hallar el mayor de los números ingresados como el numero menor.  

// Variables
int num, i, menor=999, mayor = -999;

Console.WriteLine("\n");

for (i = 1; i <= 4; i++)
{
  // Entrada
   Console.Write(" Ingrese Un Número: ");
   num = Int32.Parse(Console.ReadLine());

//Proceso
   if (num < menor)
   {
      menor = num;
   }
   if (num > mayor)
   {
      mayor = num;
   }
}

// Salida
Console.WriteLine("\n El menor es: " + menor);
Console.WriteLine("\n El Mayor es: " + mayor);

// Espera
Console.WriteLine("\n\n Presione una tecla para Salir del Programa....");
Console.ReadKey();


Resultado de la aplicación:




Nota: El Ejemplo mencionado No contempla si se ingresa todos los números iguales, reales (con decimal), así como también si se ingresa texto u otro carácter diferente de un numero entero.






sábado, 15 de junio de 2013

Conexión de C# con Access, Mediante código




Dentro del proyecto se crea una nueva clase. En este caso la clase se llamará ConexionAccess2007 y se le asignan los siguientes using:

Código:
using System.Data.OleDb;
using System.Data;

Después de esto tendremos que crear todos los métodos que vamos a requerir para la conexión a la base de datos asi como los siguientes elementos:

Código:
static string CadenaConexion;
static OleDbConnection Conex;
static OleDbDataAdapter Adaptador;
static OleDbCommandBuilder Constructor;
static DataTable Tabla;
static BindingSource Fuente;

Creamos el método para conectarnos a la base de datos:

Código:
public static void Conectar()
{
   CadenaConexion = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\DarkVenom\Documents\Compumax.accdb;Persist Security Info=False";
   Conex = new OleDbConnection(CadenaConexion);
   Conex.Open();
}

Donde Source es la ruta donde se encuentra la base de datos de Access.
Ahora un método para desconectarse de la base de datos:

Código:
public static void Desconectar()
{
   Conex.Close();
}

Y por último un método para realizar una consulta a una tabla de esa base de datos:

Código:
public static void Consultar(string tabla, string campos, string orden)
{
   string Consulta = "SELECT " + campos + " FROM " + tabla + " ORDER BY " + orden + ";";
   Adaptador = new OleDbDataAdapter(Consulta, Conex);
   Constructor = new OleDbCommandBuilder(Adaptador);
   Tabla = new DataTable(tabla);
   Adaptador.Fill(Tabla);
   Fuente = new BindingSource();
   Fuente.DataSource = Tabla;
}

Este método lo que hace es recibir como parámetros la tabla a la cual se desea hacer la consulta, los campos que se requieren y el orden en el que se desean mostrar los datos. Con estos parámetros se crea la consulta, la cual es pasada al adaptador que recibe como parámetros una consulta y la conexión con la que se quiere trabajar.
Lo siguiente es crear la propiedad Source para poder guardar los datos de la consulta y usarlos en el Form1.

Código:
public static BindingSource Source
{
get
{
   return Fuente;
}
}

En el Form1 simplemente se agrega un DataGridView para cargar los datos de la consulta en él, y en el evento Load del Form1 se manda a llamar a los métodos de la clase ConexionAccess2007:

Código:
private void FrmConexionAccess2007_Load(object sender, EventArgs e)
{
ConexionAccess2007.Conectar();
ConexionAccess2007.Consultar("producto", "*", "id_producto");
DataGridView.DataSource = ConexionAccess2007.Source;
ConexionAccess2007.Desconectar();
}