Internet Account Manager V1.2

miércoles, 30 de mayo de 2012

Logo

Hola a todos ya hace tiempo publique la primera versión de mi aplicación Internet Account Manager que es un administrador de cuentas de internet sencillo y fácil de usar para tener todas nuestras cuentas de internet seguras y así no tengamos que estar recordando las contraseñas de todas nuestras cuentas.

Pues esta semana estuve haciéndole algunas mejoras a la aplicación así que ya esta lista la nueva versión.

Que trae de nuevo esta versión.

1- Le cambie un poco el diseño.

2- Ahora el password lo que tanto cuidamos de nuestras cuentas de internet lo manejo de una manera mas segura y se encripta para protegerlo y solo se recupera cuando es necesario.

3- También le agregue autocompletado al nombre de inicio de sesión.

4- Mejore el código para un funcionamiento mejor.

5- La aplicación la hice portable no necesita instalación.

6- Cada usuario que utilize la aplicación tiene que ingresar una key que se utiliza par encriptar y desencriptar los datos, por lo cual la aplicación es mas segura ya que a cada usuario se le encriptara de manera diferente la informacion.

Algunas imágenes.


crear usuario

Inicio

principal

registro


Requisitos
Los requisitos son los mismos framework 3.5 o superior windows xp, vista o seven

Eso es todo les dejo el link de descarga, recordandoles que el programa no necesita instalación es totalmente portable solo tenemos que ejecutar el archivo InternetAccountManager.exe y ya funciona, tambien les recuerdo que la aplicación que cuenta con una manual para que no tengan problemas con su uso.

Descargar Internet Account Manager V1.2

Pasar Datos de Formulario Hijo a Padre C#

domingo, 27 de mayo de 2012

Hola a todos ahora les traigo un ejemplo que puede ser útil para muchos, a veces es necesario pasar información entre formularios la mayoría de veces se pasan datos del formulario padre al hijo, pero a veces tambien es necesario pasar datos del formulario hijo al padre y eso es lo que veremos ahora.

La forma que les mostrare quizás es la forma mas sencilla de hacerlo y consiste en mostrar el formulario hijo como un formulario de dialogo.

Para empezar creemos 2 formularios con un textbox y un botón el form1 sera el padre y el form2 sera el hijo.

diseño

Cuando ya tengamos los 2 formulario lo que aremos es que al botón del formulario 2 le pondremos la propiedad DialogResul en OK

boton

Ahora si a programar empezaremos por el formulario 2(hijo) pondremos el siguiente código.
public string varf2; //variable para pasar informacion

private void button1_Click(object sender, EventArgs e)
{
varf2 = textBox1.Text; //asignamos a la variable lo capturado en el textbox
}

Lo único que aremos aquí es declarar una variable publica a nivel de clase que sera la que utilizaremos para pasar la información como solo pasare un dato solo utilizare una variable.
Y en el evento click del botón lo único que aremos es asignar a la variable el dato capturado en el textbox.

Ahora nos vamos al formulario 1(padre) y en el evento click del botón pondremos lo siguiente.
private void button1_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2(); //creamos un objeto del formulario 2
DialogResult res = f2.ShowDialog(); //abrimos el formulario 2 como cuadro de dialogo modal

if (res == DialogResult.OK)
{
//recuperando la variable publica del formulario 2
textBox1.Text = f2.varf2; //asignamos al texbox el dato de la variable
}

}

Aquí lo que hacemos es mostrar el formulario 2(hijo) como un formulario de dialogo y luego recuperamos la variable del formulario 2 y se la asignamos al textbox del formulario 1.

captura

captura

Eso es todo sencillo verdad, les dejo el proyecto para que lo descarguen.

Descargar Proyecto

Ordenar Los Datos de una Matriz de Mayor a Menor C++

sábado, 26 de mayo de 2012

Ayer me pidieron ayuda para ordenar los datos de una matriz de mayor a menor.

Así que les dejo el código de como lo hice talvez les sirve a alguien mas.

/***************************************************
Ordenar Los Datos de una Matriz de Mayor a Menor

Hecho por Cristian Torres

****************************************************/

#include <iostream>

using namespace std;

int main()
{
int f=2,c=2,mayor=0;
int matriz[f][c];
//lleno la matriz
for(int i=0; i<f; i++)
{
for(int j=0; j<c; j++)
{
cout<<"introducir datos:";
cin>>matriz[i][j];
}
}
//imprimo la matriz como se lleno
cout<<"\nLos Datos De La Matriz Fuero Introducidos Asi"<<endl;
for(int i=0; i<f; i++)
{
for(int j=0; j<c; j++)
{
cout<<matriz[i][j]<<" ";
}
cout<<endl;
}

//ordeno la matriz de mayor a menor
for(int i=0; i<f; i++)
{
for(int j=0; j<c; j++)
{
for(int x=0; x<f;x++)
{
for(int y=0; y<c; y++)
{
if(matriz[i][j]>matriz[x][y])
{
mayor=matriz[i][j];
matriz[i][j]=matriz[x][y];
matriz[x][y]=mayor;
}

}
}
}
}

//imprimo la matriz como ordenada
cout<<"\nLos Datos De La Matriz Fueron Ordenados de Mayor a Menor"<<endl;
for(int i=0; i<f; i++)
{
for(int j=0; j<c; j++)
{
cout<<matriz[i][j]<<" ";
}
cout<<endl;
}

return 0;
}

Lo hice con una matriz de 2*2 pero puede funcionar con el numero de columnas y filas que uno quiera solo es de cambiar la declaración de la matriz o pedir al usuario el numero de filas y columnas.

Linea 17 a 24 lleno la matriz.
Linea 27 a 34 imprimo la matriz como se lleno.
Linea 37 a 55 ordeno la matriz lo que hice aquí es implementar el conocido método de la burbuja el cual consiste en ir comparando los datos en este caso de mayor a menor y los va ordenando.
Linea 59 a 66 imprimo nuevamente la matriz solo que esta vez ya esta ordenada.

Diseño


Eso es todo por ahora espero les sea de utilidad.

Inicio De Sesion Usando El Control Login Asp.Net

viernes, 18 de mayo de 2012

Buscando en Internet me he dado cuenta que existe poca información(o al menos en español) de como usar el control login de asp.net con una base de datos propia.

De hecho la manera que les mostrare tambien puede ser usada creando nosotros mismos los controles de login.

El proyecto fue desarrollado usando Visual Estudio 2010 y SqlExpress.

La base de datos que usare para este ejemplo llamada Database y solo cuenta con una tabla usuarios y con los campos usuario y contraseña.

Bueno lo primero que aremos es crear un proyecto web vació con lenguaje de programación c# (esto ya lo tienen que saber hacer por eso no pongo imágenes).

Una vez hecho esto se creara el proyecto con la pagina default y el archivo de configuración(web.config) en el cual agregaremos lo siguiente.











Lo primero seria la conexión a la bd y en el segundo bloque estamos configurando para que todo el sitio este bajo una autentificación por medio de forms.
También establecemos cual sera la pagina por defecto y cual la de login, de esta manera si el usuario no esta logueado se redirecciona a la pagina de login.

Una ves que hayamos hecho esto lo anterior, agregaremos una clase a nuestro proyecto llamada Autentificacion.cs

clase

Y el código que tendrá nuestra clase sera el siguiente.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.SqlClient;
using System.Configuration;

public static class Autentificacion
{
public static bool Autenticar(string usuario, string password)
{
//consulta a la base de datos
string sql = @"SELECT COUNT(*)
FROM Usuarios
WHERE usuario = @user AND contraseña = @pass";
//cadena conexion
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["default"].ToString()))
{
conn.Open();//abrimos conexion

SqlCommand cmd = new SqlCommand(sql,conn); //ejecutamos la instruccion
cmd.Parameters.AddWithValue("@user", usuario); //enviamos los parametros
cmd.Parameters.AddWithValue("@pass", password);

int count = Convert.ToInt32(cmd.ExecuteScalar()); //devuelve la fila afectada

if (count == 0)
return false;
else
return true;

}
}

}

Como pueden observar lo único que se hace es crear un método estático de tipo bool que hace la validación del usuario y devuelve false si no se autentifico y true si se autentifico correctamente.

Ahora lo que aremos es agregar un nuevo web form al cual llamaremos login y dentro de el ponemos el control login.

login

Ahora nos vamos al código de la pagina login y ponemos lo siguiente.
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
if (Autentificacion.Autenticar(Login1.UserName, Login1.Password))
{
FormsAuthentication.RedirectFromLoginPage(Login1.UserName, Login1.RememberMeSet);

}
}

Lo que se hace es usar el evento Authenticate del control Login1 y dentro hacemos una validación de nuestro método Autenticar de la clase Autentificacion, pasandole como parámetros los datos del control Login1, si la validación se hace correctamente lo redireccionamos a la pagina default.

Ahora en nuestra pagina default lo único que aremos es agregar un botón con el nombre btncerrar que lo único que ara es cerrar la autenticacion. nos vamos al código de nuestra pagina default y ponemos lo siguiente.
protected void Page_Load(object sender, EventArgs e)
{
//si se autentica mostramos mensaje y nombre de usuario
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
Response.Write("Bienvenido : " + User.Identity.Name);
}
}
protected void btncerrar_Click(object sender, EventArgs e)
{
//se borra la cookie de autenticacion
FormsAuthentication.SignOut();

//se redirecciona al usuario a la pagina de login
Response.Redirect(Request.UrlReferrer.ToString());
}

Lo que se hace en este código es mostrar el mensaje bienvenido y el nombre del usuario autentificado en el evento load de la pagina, y luego en el evento del botón lo que se hace es cerrar el inicio de sesión y redireccionarlo a la pagina de login nuevamente.

Importante que en los códigos cs de las paginas login y default tiene que ponerse el siguiente espacio de nombres al principio.
using System.Web.Security;


Eso seria todo si ejecutamos nuestro proyecto nos tendría que funcionar.

login

default


Para probar el login el usuario es user y la contraseña 123.

Descargar Proyecto

Sumar Datos De Una Lista Python

jueves, 17 de mayo de 2012

Esta vez les traigo un ejemplo de como sumar los datos de una lista obviamente la lista tiene que tener valores numéricos.

Aprenderemos como llenar una lista, como imprimir los valores de la lista, y como ya lo dije antes veremos como sumar todos los datos de la lista.

Veamos el código.

#-------------------------------------------------------------------------------
# Name: Sumar Datos de Una Lisa
#
# Author: Cristian Torres
#-------------------------------------------------------------------------------
class Lista:
lista = []
suma = 0
def llenarlista(self):
x= int (raw_input("Ingrese Tamaño De La Lista:"))
for i in range(x):
#llenar lista
self.lista.append(int(raw_input("Ingrese Numero:")))
#imprimir lista
for i in self.lista:
print i

def sumar(self):
for i in self.lista:
self.suma+= i
print "La Suma De Los Datos Es:",self.suma

obj = Lista()
obj.llenarlista()
obj.sumar()


captura

Linea 6 empezamos creando una clase.
Linea 7 declaramos la lista vacía.
Linea 8 declaramos la variable suma que nos servirá para sumar los datos
Linea 9 creamos un método que se encargara de llenar la lista.
Linea 11-13 llenamos la lista según el tamaño que aya indicado el usuario.
Linea 15 y 16 recorremos la lista e imprimimos los datos.
Linea 18 creamos un método que servirá para sumar los datos de la lista.
Linea 19-21 recorremos la lista para sumar los datos en la variable suma, y luego la imprimimos.
Linea 23 creamos una instancia de nuestra clase Lista.
Linea 24 y 25 invocamos los 2 métodos que hemos creado.

Eso es todo por ahora espero les sirva para algo.

Saludos desde El Salvador...

Sistema Para Control de Reserva de Aviones

miércoles, 16 de mayo de 2012

Buscando entre mis archivos encontré, un programa que hice en C++ en el 2009 fue el trabajo final del primer año de la universidad en la materia de programación 1.

Es un programa que controla la reserva de los asientos de 3 aviones.

La descripción del programa es mas o menos así (porque no me acuerdo muy bien jeje).

Son 3 aviones cada avión tiene 50 asientos divididos en 2 clases, la primera clase del asiento 0 al 14 y la segunda clase del 15 al 49.

El usuario tiene las opciones de reservar, confirmar reserva, cancelar reserva y consultar el estado de los aviones.

Hay algunas condiciones para hacer esto.
1- Puede reservar un asiento siempre y cuando el asiento este vació.
2- Para confirmar la reserva antes tiene que haber reservado el asiento.
3- Y solo puede cancelar la reserva si aun no la a confirmado.

Capturas







Diseño
Codigo
//
/******************************************

Programa Para Control De Reserva de Aviones

Autor: Cristian Torres

Fecha: 2009

Pais: El Salvador

*******************************************/

#include <iostream>
#include <conio.h>
#include <stdlib.h>


// codigos
// asiento vacio = 0
// asiento reservado = 1
// asiento confirmado = 2

using namespace std;

int main()

{

int av=0,c=0,asiento=0,m=0,av1[49],av2[49],av3[49],i;

char opcion;

for (i=0;i<49;i++)

av1[i]=0;

for (i=0;i<49;i++)

av2[i]=0;

for (i=0;i<49;i++)

av3[i]=0;

cout<<"TODOS LOS ASIENTOS ESTAN DISPONIBLES....";

getch();

do

{ system("cls");

cout<<"\n\n\t Seleccione Una Opcion Del Menu\n";

cout<<"\n\n\t 1. Reservar\n";

cout<<"\n\n\t 2. Confirmar Reserva\n";

cout<<"\n\n\t 3. Cancelar Reserva\n";

cout<<"\n\n\t 4. Estado del Avion\n";

cout<<"\n\n\t 5. Salir\n";

cout<<"\nIntroduzca el Numero de la Opcion:";

cin>>opcion;

switch(opcion)

{

case '1':

cout<<"\nDesea Vijar En:""\n""Avion 1""\n""Avion 2""\n""Avion 3""\n""Eliga el Numero Correspondiente al Avion Deseado: ";

cin>>av;

cout<<"\nEn que Clase Desea Viajar: ""\n""1-Primera Clase""\n""2-Segunda Clase\n";

cin>>c;

if (c==1)

{

do {

cout<<"\nIntodusca Un Numero De Asiento Entre 0 y 14: ";

cin>>asiento;

if ((asiento<0)||(asiento>14))

cout<<"\n Dato De Asiento No Valido....";

} while ((asiento<0)||(asiento>14));

}

else

{cout<<"Elija Un Asiento Entre 15 y 49:";

do {

cout<<"\nIntroduzca El Numero De Asiento: ";

cin>>asiento;

if ((asiento<15)||(asiento>49))

cout<<"\nDato De Asiento No Valido....";

} while ((asiento<15)||(asiento>49));

}

if (av==1)

{ if (av1[asiento]==0)

{av1[asiento]=1;

cout<<"su operacion se realizo con exito...";

}

else

cout<<"El Asiento No Esta Disponible....";

}

if(av==2)

{ if (av2[av==2]==0)

{av2[asiento]=1;

cout<<"su operacion se realizo con exito...";

}

else

cout<<"El Asiento No Esta Disponible....";

}

if(av==3)

{ if (av3[av==3]==0)

{av3[asiento]=1;

cout<<"su operacion se realizo con exito...";

}

else

cout<<"El Asiento No Esta Disponible....";

}

break;

case '2':

cout<<"\nPara Confirmar Su Reserva:""\n""Ingrese El Numero De Avion En Que Reservo:";

cin>>av;

cout<<"\nIngrese El Numero De Asiento:";

cin>>asiento;

if (av==1)

{ if (av1[asiento]==1)

{av1[asiento]=2;

cout<<"su confirmacion se realizo con exito...";

}

else

cout<<"El Asiento No Ha Sido Reservado Aun Por Favor Reservelo Antes....";

}

if(av==2)

{ if (av2[av==2]==1)

{av2[asiento]=2;

cout<<"su confirmacion se realizo con exito...";

}

else

cout<<"El Asiento No Ha Sido Reservado Aun por Favor Reservelo Antes....";

}

if(av==3)

{ if (av3[av==3]==1)

{av3[asiento]=2;

cout<<"su confirmacion se realizo con exito...";

}

else

cout<<"El Asiento No Ha Sido Reservado Aun por Favor Reservelo Antes....";

}

break;

case '3':

cout<<"\nPara Cancelar Su Reserva:""\n""Ingrese El Numero De Avion En Que Reservo:";

cin>>av;

cout<<"\nIngrese El Numero De Asiento:";

cin>>asiento;

if (av==1)

{if (av1[asiento]==0)

cout<<"\nEl Asiento No Ha Sido Reservado Aun Por Favor Reservelo Antes....";

{if (av1[asiento]==2)

cout<<"El Asiento Ya No Se Puede Cancelar Gracias....";

else

{if (av1[asiento]==1)

av1[asiento]=0;

cout<<"\nSu Reserva Ha Sido Cancelada.";

}

}

}

if(av==2)

{ if (av2[av==2]==2)

av2[asiento]=0;

else

cout<<"El Asiento Ya No Se Puede Cancelar Gracias....";

}

if(av==3)

{ if (av3[av==3]==2)

av3[asiento]=0;

else

cout<<"El Asiento Ya No Se Puede Cancelar Gracias....";

}

break;

case '4':

cout<<"\nQue avion Desea Verificar Avion 1, Avion 2 o Avion 3:";

cin>>av;

cout<< "\nQue Desea Veriaficar:""\n""1-Reservas""\n""2-Reservas Confirmadas""\n""3-Asientos Vacios""\n""Eliga La Opcion a Verificaar: ";

cin>>m;

if ((av==1)&&(m==1))

{ cout<<"Los Asientos Reservados Son: \n";

for (i=0;i<=49;i++)

{ if(av1[i]==1)

cout<<i<<"-"; }

}

else

if ((av==1)&&(m==2))

{ cout<<"Los Asientos Confirmados Son: \n";

for (i=0;i<=49;i++)

{ if(av1[i]==2)

cout<<i<<"-"; }

}

else

if ((av==1)&&(m==3))

{ cout<<"Los Asientos Vacios Son: \n";

for (i=0;i<=49;i++)

{ if(av1[i]==0)

cout<<i<<"-"; }

}

if ((av==2)&&(m==1))

{ cout<<"Los Asientos Reservados Son: \n";

for (i=0;i<=49;i++)

{ if(av2[i]==1)

cout<<i<<"-"; }

}

else

if ((av==2)&&(m==2))

{ cout<<"Los Asientos Confirmados Son: \n";

for (i=0;i<=49;i++)

{ if(av2[i]==2)

cout<<i<<"-"; }

}

else

if ((av==2)&&(m==3))

{ cout<<"Los Asientos Vacios Son: \n";

for (i=0;i<=49;i++)

{ if(av2[i]==0)

cout<<i<<"-"; }

}



if ((av==3)&&(m==1))

{ cout<<"Los Asientos Reservados Son: \n";

for (i=0;i<=49;i++)

{ if(av3[i]==1)

cout<<i<<"-"; }

}

else

if ((av==3)&&(m==2))

{ cout<<"Los Asientos Confirmados Son: \n";

for (i=0;i<=49;i++)

{ if(av3[i]==2)

cout<<i<<"-"; }

}

else

if ((av==3)&&(m==3))

{ cout<<"Los Asientos Vacios Son: \n";

for (i=0;i<=49;i++)

{ if(av3[i]==0)

cout<<i<<"-"; }

}

break;

case '5':

break;

default:

cout<<"\n ";

}

getch();

} while (opcion != '5');

cout<<"\nHa Decidido Salir Del Menu...";

getch();

return 0;

}

//



Descargar Código

Saludos desde El Salvador

Dll Para Validar Datos .Net

lunes, 14 de mayo de 2012

Como programadores nos damos cuenta que a veces hacemos cosas rutinarias y para ahorrar tiempo en escribir el código miles de veces, es mejor crear dll con las funciones que hacemos rutinariamente hacia nos ahorramos tiempo en estar reescribiendo el código, ya que al crear la dll solo es necesario agregarla a los proyectos donde la necesitamos y hacemos uso de ella.

Así que esta vez comparto con ustedes esta pequeña dll que hice que sirve para validar datos numéricos y para validar texto(que solo incluya letras de la a-z en minúscula o mayúscula)

La dll cuenta con la clase Validar y con los métodos IsNumeric que es para validar los datos numéricos y el método IsString para validar el string.

La dll se puede usar con C# y VB.NET.

Descargar Dll

Veamos como usarla.

Cree esta pequeña aplicación para que vean como funciona.

Diseño

Lo primero que tenemos que hacer es agregar la dll al proyecto en la que la usaremos para eso solo damos click en referencias y luego buscamos la dll.

Agregar Referencia

Buscar dll

Tambien agregamos el namespace de la dll. (para el caso de vb.net seria import en ves de using)
using ValidarDatos;


Veamos como validar que los textbox solo acepten valores numéricos, para validar los datos numéricos usaremos el método IsNumeric de la clase Validar de nuestra dll. creamos el evento click del botón.
//creamos objeto de la clase validar de la dll
Validar obj = new Validar();
private void btnvalidar_Click(object sender, EventArgs e)
{
//verificamos si los valores de los textbox son numericos
//usando el metodo IsNumeric de la clase Validar
if (obj.IsNumeric(textBox1.Text) && (obj.IsNumeric(textBox2.Text)))
{
//aqui va el codigo si los valores son numericos
MessageBox.Show("Valores Ingresados Correctamente");
}
else
{
//aqui va el codigo que queremos mostrar si los valores no son numericos
MessageBox.Show("Debe Ingresar Valores Numericos");
}
}


Ahora veamos como validar el texto que solo contenga letras de la a-z ya sea en minúscula o mayúscula, para esto usaremos el método IsString de la clase Validar de nuestra dll. creamos el evento click del botón.
private void btnvalidarstring_Click(object sender, EventArgs e)
{
//verificamos si los valores de los textbox son letras
//usando el metodo IsString de la clase Validar
if (obj.IsString(textBox3.Text) && (obj.IsString(textBox4.Text)))
{
//aqui va el codigo si los valores son letras
MessageBox.Show("Correcto");
}
else
{
//aqui va el codigo si los valores no son letras
MessageBox.Show("Ingrese Solo Texto");
}
}


numerico

string

Pueden descargar el proyecto de ejemplo aquí.
Descargar Proyecto

Cualquier consulta pueden hacérmela.

Saludos desde El Salvador.

Calculadora Grafica en Java

miércoles, 9 de mayo de 2012

Esta vez les traigo una calculadora en java con las operaciones básicas suma, resta, división y multiplicación.

La hecho a puro código nada de netbeans ni eclipse, la hice en jcreator usando la librería swing.

calculadora

calculadora

calculadora

Les dejo el código.

/****************************
* Calculadora application
*
* Author: Cristian Torres
*
***************************/
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

public class Calculadora extends JFrame implements ActionListener{
private JButton btn1,btn2,btn3,btn4,btn5;
private JTextField val1,val2,resul;

//metodo donde creo y añado los controles
public void Controles(){
//obtener panel de contenido y establecer su esquema
Container contenedor = getContentPane();
contenedor.setLayout( new FlowLayout(FlowLayout.CENTER) );
//crear controles y añadir
Label lbl1 = new Label("Numero");
contenedor.add(lbl1);
val1 = new JTextField(10);
contenedor.add(val1);
Label lbl2 = new Label("Numero");
contenedor.add(lbl2);
val2 = new JTextField(10);
contenedor.add(val2);
btn1 = new JButton("+");
contenedor.add(btn1);
btn1.addActionListener(this);
btn2 = new JButton("-");
contenedor.add(btn2);
btn2.addActionListener(this);
btn3 = new JButton("x");
contenedor.add(btn3);
btn3.addActionListener(this);
btn4 = new JButton("/");
contenedor.add(btn4);
btn4.addActionListener(this);
btn5 = new JButton("Limpiar");
contenedor.add(btn5);
btn5.addActionListener(this);
resul = new JTextField(10);
contenedor.add(resul);
}

public Calculadora(){
//titulo ventana
super("Calculadora");
//cargo controles
Controles();
//tamaño ventana y mostrar y centrar
setSize(380,150);
setLocationRelativeTo(null);//centrar
setVisible(true);
}

//eventos botones
public void actionPerformed(ActionEvent e) {
double num1,num2,resu;
String resultado;
if (e.getSource()==btn1) {
if(val1.getText().equals("") || val2.getText().equals("")){
JOptionPane.showMessageDialog(null, "Los datos Están Incompletos",
"Error",JOptionPane.ERROR_MESSAGE);
}
else{
num1=Double.parseDouble(val1.getText());
num2=Double.parseDouble(val2.getText());
resu=num1+num2;
resultado=String.valueOf(resu);
resul.setText(resultado);
}
}
if (e.getSource()==btn2) {
if(val1.getText().equals("") || val2.getText().equals("")){
JOptionPane.showMessageDialog(null, "Los datos Están Incompletos",
"Error",JOptionPane.ERROR_MESSAGE);
}
else{
num1=Double.parseDouble(val1.getText());
num2=Double.parseDouble(val2.getText());
resu=num1-num2;
resultado=String.valueOf(resu);
resul.setText(resultado);
}
}
if (e.getSource()==btn3) {
if(val1.getText().equals("") || val2.getText().equals("")){
JOptionPane.showMessageDialog(null, "Los datos Están Incompletos",
"Error",JOptionPane.ERROR_MESSAGE);
}
else{
num1=Double.parseDouble(val1.getText());
num2=Double.parseDouble(val2.getText());
resu=num1*num2;
resultado=String.valueOf(resu);
resul.setText(resultado);
}
}
if (e.getSource()==btn4) {
if(val1.getText().equals("") || val2.getText().equals("")){
JOptionPane.showMessageDialog(null, "Los datos Están Incompletos",
"Error",JOptionPane.ERROR_MESSAGE);
}
else{
num1=Double.parseDouble(val1.getText());
num2=Double.parseDouble(val2.getText());
try{
resu=num1/num2;
resultado=String.valueOf(resu);
resul.setText(resultado);
}
catch(ArithmeticException ex){
JOptionPane.showMessageDialog(null, "No se Puede Dividir Entre 0",
"Error",JOptionPane.ERROR_MESSAGE);
}

}
}
if (e.getSource()==btn5){
val1.setText("");
val2.setText("");
resul.setText("");
}
}

public static void main(String[] args) {
JFrame.setDefaultLookAndFeelDecorated(true);
Calculadora calc = new Calculadora();//Instanciamos la clase que creamos
calc.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//cerrar ventana
}
}


Cualquier duda o consulta sobre el código no duden en preguntar.

Saludos desde El Salvador...

Sumar Arreglos Java

lunes, 7 de mayo de 2012

He tenido la tarde libre y me puse a practicar un poco en java, Les traigo este ejemplo de como sumar 2 vectores en otro vector.
El Programa Funciona así.

Le pedimos al usuario que introduzca el tamaño de 2 vectores y tambien le pedimos los datos para llenar los 2 vectores, luego en un 3 vector tenemos que sumar las posiciones de los 2 vectores que el usuario lleno.
Ejemplo: supongamos que el primer vector es de tamaño 3 y el vector 2 es de tamaño 5.

Vector 1 |2|5|7|
Vector 2 |3|4|1|4|10|
Vector 3 |5|9|8|4|10| Este vector nosotros lo tenemos que calcular

Veamos el código.

/**
* Sumar Vectores application
* @author: Cristian Torres
*/
import java.util.Scanner;
public class SumarVectores {
public static void main(String[] args) {
Scanner leer = new Scanner(System.in);
//variables que seran el tamaño de los vectores
int v1,v2,v3;
System.out.print("Ingrese tamaño del vector 1:");
v1 = leer.nextInt();
//creamos el primer vector con tamaño del usuario
int vec1[] = new int[v1];
//recorremos vector para llenarlo
for(int i1=0; i1<vec1.length; i1++){
System.out.print("\nIngrese Numero Entero de la Posicion"+" " +i1+":");
vec1[i1]=leer.nextInt();
}
System.out.print("\nIngrese tamaño del vector 2:");
v2 = leer.nextInt();
//creamos el segundo vector con tamaño del usuario
int vec2[] = new int[v2];
//recorremos vector para llenarlo
for(int i2=0; i2<vec2.length; i2++){
System.out.print("\nIngrese Numero Entero de la Posicion"+" " +i2+":");
vec2[i2]=leer.nextInt();
}
//determinamos cual vector de los 2 es mas grande
//para que el vector 3 tenga el tamaño del mas grande
v3=v1;
if (v2 > v1)
v3=v2;
//declaramos vector 3
int[] vec3 = new int[v3];
//recorremos vector 3 para hacer la suma
for(int i3=0; i3<vec3.length; i3++){
int valv1 = 0;
if (vec1.length > i3){
valv1 = vec1[i3];
}
int valv2 = 0;
if (vec2.length > i3){
valv2 = vec2[i3];
}
//hacemos la suma de las posiciones de los vectores 1 y 2
//en las posiciones del vector 3
vec3[i3]=valv1+valv2;
System.out.println("\nLa Suma de la Posicion"+" "+i3+" "+ "es:"+vec3[i3]);
}
}
}

Pueden ver que el código esta comentado para que lo comprendan mejor, pero les daré una breve explicación.

Linea 10 empezamos declarando 3 variables enteras que nos serán el tamaño de los 3 vectores.
Linea 11 y 12 pedimos el ingreso del tamaño de primer vector y capturamos el valor.
Linea 14 declaramos el primer vector con el tamaño que capturamos anteriormente.
Linea 16 a 19 recorremos el primer vector y pedimos los datos para llenarlo.
Linea 20 a 28 hacemos lo mismo que las lineas 11 a 19 solo que con el vector 2.
Linea 31 a 33 aquí calculamos el tamaño del vector 3.
Linea 37 a 49 recorremos el vector 3 y dentro de el calculamos la suma de las posiciones de los primeros 2 vectores.


resultado


Eso es todo por hoy saludos desde El Salvador...

Leer Informacion De Archivos .txt Desde C#

sábado, 5 de mayo de 2012

Completando el tema anterior donde vimos como guardar datos en un archivo .txt ahora veremos como leer información de un archivo .txt desde C#.

Veamos el código.

using System;
using System.IO;

namespace Abrir_Txt
{
class Program
{
static void Main(string[] args)
{
try
{
using (StreamReader sr = new StreamReader("D:\\prueba.txt", false))
{
string line;
while ((line = sr.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
}
catch (Exception)
{
Console.WriteLine("El archivo no se puede leer");
}
Console.ReadKey();
}
}
}

La explicación igual que la anterior es sencilla.

Primeramente creamos un bloque try-catch para controlar cualquier problema que pueda pasar a la hora de leer el archivo txt.
Linea 12 creamos una instancia de la clase StreamReader (que sirve para la lectura de archivos) tambien especificamos donde se encuentra el archivo que queremos leer.
Linea 14 declaramos una variable string que servira para leer las lineas del archivo.
Linea 15 usamos un while para leer y mostrar las lineas del archivo.
Y por ultimo si ocurre algún problema a la hora de leer el archivo se mostrara un mensaje.

resultado

resultado

Saludos desde El Salvador

Guardar Datos de Arreglo en un Archivo txt

viernes, 4 de mayo de 2012

Esta ves les traigo un ejemplo en C# sobre como guardar los archivos de un Arreglo en un archivo de txt (archivo de bloc de notas).

Veamos el código.

using System;
using System.IO;

namespace Guardad_txt
{
class GuardarTxt
{
static void Main(string[] args)
{
Console.Write("Ingrese Tamaño del Arreglo:");
int tamaño = int.Parse(Console.ReadLine());
int[] arreglo = new int[tamaño];
using (StreamWriter writer = new StreamWriter("D:\\prueba.txt", false))
{
for (int i = 0; i < arreglo.Length; i++)
{
Console.Write("\nDigite Numeros Enteros:");
arreglo[i] = int.Parse(Console.ReadLine());
}
for (int i = 0; i < arreglo.Length; i++)
{
Console.WriteLine(" "+"-");
Console.WriteLine(" "+arreglo[i]);
writer.WriteLine(arreglo[i].ToString());
}
}
Console.ReadKey();
}
}
}

La explicación es muy sencilla.

Linea 10 y 11 pedimos el tamaño del arreglo y capturamos el valor.
Linea 12 definimos un arreglo de enteros con el tamaño que el usuario ingreso.
Linea 13 creamos una instancia de la clase StreamWriter (que sirve para escribir sobre archivos), tambien creamos un archivo txt llamado prueba en el disco D.
Linea 15 a 19 recorremos el arreglo para llenarlo.
Linea 20 a 25 volvemos a recorrer el arreglo para imprimir los datos y guardarlos en el archivo txt, importante la linea 24 se utiliza el método Write de la clase StreamWriter para escribir los datos del arreglo en archivo de texto txt.

resultado

resultado

Eso es todo por ahora saludos desde El Salvador...

Calcular Cuantos Numeros son Positivos, Negativos y 0

jueves, 3 de mayo de 2012

Bueno esta Vez les traigo este pequeño programa que lo que hace es, pide al usuario una cantidad de números a evaluar y luego calcula cuantos son 0 cuantos positivos y negativos en C++.

Veamos el código.

//Programa que calcula cuantos numeros ingresados son 0
#include <iostream>

using namespace std;

int main()
{
int num,positivo,negativo,cero,cant,i;
positivo=0;
negativo=0;
cero=0;
cout<<"Introduzca Cantidad de Numeros a Evaluar:";
cin>>cant;
for(i=1; i<=cant;i++)
{
cout<<"Introduzca un Numero Entero:";
cin>>num;
if (num>0)
{
positivo+=+1;
}
else
if(num<0)
{
negativo+=+1;
}
else
cero+=+1;
}

cout<<"\nLa Cantidad de Positivos Son:"<<positivo<<endl;
cout<<"\nLa Cantidad de Negativos Son:"<<negativo<<endl;
cout<<"\nLa Cantidad de Ceros Son:"<<cero<<endl;
return 0;
}


Como puede verse en las primeras lineas declaramos las variables que vamos a necesitar num que sera donde guardaremos los números ingresados por el usuario, positivo que sera el acumulador de los números positivos, negativo el acumulador de los negativos, cero el acumulador de los ceros, cant capturara la cantidad de números a evaluar, i que sera el indice de nuestro bucle.

Lineas 12 y 13 pedimos el ingreso de la cantidad de números y guardamos el dato en la variable cant que nos servirá para determinar el tamaño de nuestro bucle.

Linea 14 declaramos nuestro bucle, pueden ver que aquí hacemos uso de la variable cant ya que el bucle se ejecutara las veces que el usuario halla indicado.

Linea 16 y 17 pedimos el ingreso de los números y capturamos el valor en la variable num.

Linea 18, 23 y 27 aquí evaluamos si el numero ingresado es positivo, negativo o cero y dentro de cada condición incrementamos los acumuladores en 1 para que al final nos muestre la cantidad de positivos, negativos y ceros ingresados.

Linea 31, 32 y 33 imprimimos fuera del bucle la cantidad de números.

Diseño


Saludos desde El Salvador...

Determinar Tipo de Triangulo (Varios Lenguajes)

miércoles, 2 de mayo de 2012

Ayer una amiga que recién empieza a programar me pidió ayuda con un ejercicio, y cuando tengo tiempo libre me gusta practicar con los otros lenguajes que domino, ya que si bien es cierto C# es el lenguaje que mas domino y que mas uso (por estudios y practica), tambien domino otros lenguajes (claro a un nivel mas bajo que c#).

Bueno el ejemplo es sencillo sirve para determinar un tipo de triangulo, se le pide al usuario el ingreso de los 3 lados del triangulo y luego se calcula si es equilatero, isoceles o escaleno.

C#
using System;
namespace Tipo_Triangulos
{
class Program
{
static void Main(string[] args)
{
double l1, l2, l3;
Console.Write("Introduzca el Valor Numerico del 1 Lado:");
l1 = Convert.ToDouble(Console.ReadLine());
Console.Write("Introduzca el Valor Numerico del 2 Lado:");
l2 = Convert.ToDouble(Console.ReadLine());
Console.Write("Introduzca el Valor Numerico del 3 Lado:");
l3 = Convert.ToDouble(Console.ReadLine());
if (l1 == l2 && l2 == l3)
Console.WriteLine("\nEl Triangulo es Equilatero");
else
{
if (l1 == l2 || l1 == l3 || l2 == l3)
Console.WriteLine("\nEl Triangulo es Isoceles");
else
{
if (l1!=l2 || l1!=l3 || l3!=l2)
Console.WriteLine("\nEl Triangulo es Escaleno");
}
}
Console.ReadKey();
}
}
}


C++

//programa que determina tipo de triangulo
#include <iostream>
using namespace std;

int main()
{
float l1,l2,l3;
cout<<"Introduzca el Valor Numerico del 1 Lado:";
cin>>l1;
cout<<"Introduzca el Valor Numerico del 2 Lado:";
cin>>l2;
cout<<"Introduzca el Valor Numerico del 3 Lado:";
cin>>l3;
if (l1==l2 and l2==l3)
cout<<"\nEl Triangulo es Equilatero";
else
{
if (l1==l2 or l1==l3 or l3==l2)
cout<<"\nEl Triangulo es Isoceles";
else
{
if (l1!=l2 or l1!=l3 or l3!=l2)
cout<<"\nEl Triangulo es Escaleno";
}
}

return 0;
}


Java
//programa que determina tipo de triangulo
import java.io.*;
import java.util.Scanner;
public class TipoTriangulos {

public static void main(String[] args) {

Scanner lector = new Scanner(System.in);
double l1,l2,l3;
System.out.print("Introduzca el Valor Numerico del 1 Lado:");
l1 = lector.nextDouble();
System.out.print("Introduzca el Valor Numerico del 2 Lado:");
l2 = lector.nextDouble();
System.out.print("Introduzca el Valor Numerico del 3 Lado:");
l3 = lector.nextDouble();
if (l1==l2 && l2==l3)
System.out.println("\nEl Triangulo es Equilatero\n");
else
{
if (l1==l2 || l1==l3 || l2==l3)
System.out.println("\nEl Triangulo es Isoceles");
else
{
if (l1!=l2 || l1!=l3 || l3!=l2)
System.out.println("\nEl Triangulo es Escaleno");
}
}
}

}



Python
#//programa que determina tipo de triangulo
def main():
l1 = float(input("Introduzca el Valor Numerico del 1 Lado:"))
l2 = float(input("Introduzca el Valor Numerico del 2 Lado:"))
l3 = float(input("Introduzca el Valor Numerico del 3 Lado:"))
if(l1==l2 and l2==l3):
print "\nEl Triangulo es Equilatero"
elif(l1==l2 or l1==l3 or l2==l3):
print "\nEl Triangulo es Isoceles"
elif (l1!=l2 or l1!=l3 or l2!=l3):
print "\nEl Triangulo es Escaleno"

if __name__ == '__main__':
main()


El resultado en todos los lenguajes sera el siguiente.

Diseño

Diseño

Pueden notar que la solución del problema esta en las comparaciones lógicas de cada lado del triangulo ya lo demás es solo cuestión de lógica y de mostrar los mensajes necesarios, una ves conociendo la solución de un problema es fácil pasarlo a un lenguaje de programación claro que para eso hay que conocer la sintaxis del lenguaje.

Siempre es bueno conocer diferentes tipos de lenguaje si bien es cierto todos tenemos un lenguaje preferido pero es bueno conocer otras alternativas.

Saludos desde El Salvador...