lunes, 22 de marzo de 2010

Photoscape

Es un excelente programa para los que les gusta hacer modificaciones a sus fotos


descargar

domingo, 21 de marzo de 2010

Agenda Electronica en C++

Este programa simula una agenda electronica, lo hice en C++, aqui les va el codigo fuente:

//Agenda Electronica
//Programador Daniel Jimenez "El Italiano"

#include
#include
using namespace std;

class agenda
{
 private:
  class personas
  {
    public:   
    char nombre[60];
    char cel[15];
    char curso[40];
    char seccion[2];
    char email[30];
   };
   int found,num,salir,sale;
   bool bandera,bo;
   public:
    personas per[100],temp[0];
    int menu();
    void ingresar();
    void mostrar();
    void buscar();
    void modificar();
    void grabar();
    void borrar();
};
int opcion;
agenda agen;

int main()
{
 do
 {
  system ("cls");
  opcion=agen.menu();
  switch(opcion)
  {
   case 1:
    agen.ingresar();
    break;
   case 2:
    agen.mostrar();
    break;
   case 3:
    agen.buscar();
    break;
   case 4:
    agen.modificar();
    break;
   case 5:
    agen.grabar();
    break;
   case 6:
    agen.borrar();
    break;
   case 7:
    break;
   default:
    cout<<"Error vuelva a escoger!!"<
    system ("pause");
    break;
   }
  }while (opcion!=7);
  return 0;
}

int agenda::menu()
{
 int op;  
 system ("cls");
 system ("color 0A");
 cout<<"\n\n \t\t\t\t AGENDA ELECTRONICA";
 cout<<"\n________________________________________________________________________________";
 cout<<"\n________________________________________________________________________________";
 cout<<"\n\n 1) Ingresar";
 cout<<"\n 2) Mostrar";
 cout<<"\n 3) Buscar";
 cout<<"\n 4) Modificar";
 cout<<"\n 5) Grabar";
 cout<<"\n 6) Borrar";
 cout<<"\n 7) Salir";
 cout<<"\n\n Escoja su opcion: ";
 cin>>op;
 return (op);
}

 void agenda::ingresar()
 {
  system ("cls");
  num=0;
  do
  {   
   cout<<"\n\n \t\t\t\t Datos"<
   cout<<"________________________________________________________________________________";
   cin.get();
   cout<<"\n Nombre:             ";
   cin.getline(per[num].nombre,60);
   cout<<"Telefono o celular: ";
   cin.getline(per[num].cel,15);
   cout<<"Curso:              ";
   cin.getline(per[num].curso,40);
   cout<<"Seccion:            ";
   cin.getline(per[num].seccion,2);
   cout<<"Email:              ";
   cin.getline(per[num].email,30);
   cout<
   cout<<"Desea ingresar otro si=1, no=2: ";
   cin>>salir;
   num++;
   cout<
   cout<<"________________________________________________________________________________";
   cout<
  }while(salir!=2);
 }

  void agenda::mostrar()
  {
   system ("cls");
   cout<<"\n\n \t\t\t\t Datos"<
   cout<<"________________________________________________________________________________";
   for (int i=0;i
   {
    cout<<"\n Nombre:             "<<
    cout<<"Telefono o celular: "<<
    cout<<"Curso:              "<<
    cout<<"Seccion:            "<<
    cout<<"Email:              "<<
    cout<
    cout<<"________________________________________________________________________________";
    cout<
    cout<
   }
   system ("pause");
 }
 
  void agenda::buscar()
  {
  do
  {    
  system ("cls");
  cout<<"\n\n \t\t\t\t Busqueda"<
  cout<<"________________________________________________________________________________";
  bandera=false;
  bo=false;
  cin.get();
  cout<<"\n Nombre de persona a buscar: ";
  cin.getline(temp[0].nombre,60);
  for (int e=0;e
  {
   if (strcmp(per[e].nombre,temp[0].nombre)==0)
   {
    bandera=true;
    bo=true;
    found=e;
    break;
   }
   else
   {
    bandera=false;
    bo=false;
    }
  }
   system ("cls");
  if (bandera)
  {
   cout<<"\n\n \t\t\t\t Datos"<
   cout<<"________________________________________________________________________________";
   cout<<"\n Nombre:          "<<
   cout<<"Telefono o celular: "<<
   cout<<"Curso:              "<<
   cout<<"Seccion:            "<<
   cout<<"Email:              "<<
  }
  else
  cout<<"No se encuentra!"<
  system ("pause");
  cout<
  cout<
  cout<<"Desea buscar otro si=1, no=2: ";
  cin>>salir;
  cout<
  cout<<"________________________________________________________________________________";
  cout<
  }while(salir!=2);
 }

  void agenda::modificar()
  {
   system ("cls");
   do
   {
    system ("cls"); 
    buscar();
    if (bo)
    {
     cout<<"Desea modificar el registro encontrado si=1, no=2: ";
     cin>>sale;
     if (sale!=2)
     {
      if (bandera)
      {
      cout<<"\n\n \t\t\t\t Datos"<
      cout<<"\n________________________________________________________________________________";          
      system ("cls");
      for (int q=found;q
      {
       cin.get();
       cout<<"Nombre:             ";
       cin.getline(per[q].nombre,60);
       cout<<"Telefono o celular: ";
       cin.getline(per[q].cel,15);
       cout<<"Curso:              ";
       cin.getline(per[q].curso,40);
       cout<<"Seccion:            ";
       cin.getline(per[q].seccion,2);
       cout<<"Email:              ";
       cin.getline(per[q].email,30);
       cout<
       cout<
       }
      }
     }
    }
    cout<
     cout<<"Desea modificar otro si=1, no=2: ";
     cin>>sale;
    }while (sale!=2);
    cout<
    system ("pause");
  }
  
   void agenda::grabar()
   {
    system ("cls");
    ofstream fs("Agenda Electronica.txt");
    fs<<"\n\n \t\t\t\t AGENDA ELECTRONICA";
    fs<<"\n________________________________________________________________________________";
    fs<<"\n________________________________________________________________________________";
    fs<<"\n\n \t\t\t\t Datos"<
    fs<<"________________________________________________________________________________"<
    for (int i=0;i
    {
     fs<<"Nombre:            | "<<
     fs<<"________________________________________________________________________________"<
     fs<<"Telefono o celular:| "<<
     fs<<"________________________________________________________________________________"<
     fs<<"Curso:             | "<<
     fs<<"________________________________________________________________________________"<
     fs<<"Seccion:           | "<<
     fs<<"________________________________________________________________________________"<
     fs<<"Email:             | "<<
     fs<<"________________________________________________________________________________"<
     fs<<"\n\n";
    }
    fs.close();
   }
  
     void agenda::borrar()
     {
      do
      {
       system ("cls");
       buscar();
       cout<<"\n\n";
       if (bo)
       {
        cout<<"Desea Borrar el registro encontrado si=1, no=2: ";
        cin>>sale;
        if (sale!=2)
        {
         if (bandera)
         {
          for (int u=found;u
          per[u]=per[u+1];
          num-=1;
          cout<<"\n";
          cout<<"Registro borrado!!"<
          cin.get();
          }
         }
        }
        cout<<"\n\n";
        cout<<"Desea borrar otro registro si=1,no=2: ";
        cin>>sale;
       }while(sale!=2);
       cout<
       system ("pause");
     }
 

Programa de registros en C++

Este programa crea registros y los guarda en un documento de notepad .text,
 aqui les dejo el codigo fuente, (Esta heco en C++).

 //Registro de Empleados
//Programador Daniel Jimenez "Italiano o Italy"

#include
#include
using namespace std;
int opcion,sale,found,num=0;
bool bandera;
int menu();
void ingresar();
void mostrar();
void buscar();
void modificar();
void borrar();
void grabar();

struct datosp
{
 char nombre[30];
 char apellido[30];
 char estadocivi[15];
 char telefono[10];
 struct formacion
 {
  char primaria[50];
  char secundaria[50];
  char universitaria[50];
 }formacion;
}dato;
struct domicilio
{
 char departamento[30];
 char ciudad[30];
 char barrio[30];
 char calle[30];
 char avenida[30];
}domi;
struct observaciones
{
 char idioma[80];
 char referencia[30];
 char antecedentes[30];
 char bonificaciones[30];
}obs;
struct empresa
{
 char direccion[30];
 char puesto[30];
 char antiguedad[30];
 char tel[10];
 char numseguro[20];
 double sueldo;
}emp;
struct empleados
{
 datosp dato;
 domicilio domi;
 observaciones obs;
 empresa emp;
}person[100],per[0];

int main()
{
 do
 {
  system ("cls");
  system ("color 0c");
  opcion=menu();
  switch (opcion)
  {
   case 1:
    ingresar();
    break;
   case 2:
    mostrar();
    break;
   case 3:
    grabar();
    break;
   case 4:
    buscar();
    break;
   case 5:
    modificar();
    break;
   case 6:
    borrar();
    break;
   case 7:
    break;
   default:
    system ("cls");
    cout<<"ERROR!! VUELVA A ESCOGER!!!!"<
    system ("pause");
    break;
   }
 }while(opcion!=7);
 return 0;
}

int menu()
{
 int op;
 system ("cls");
 cout<<"\n \t\t\t\t Menu Principal"<
 cout<<"\n\n \t\t\t //***Registro de Empleados***\\\\"<
 cout<<"\n";
 cout<<"________________________________________________________________________________"<
 cout<<"________________________________________________________________________________"<
 cout<<"\n\n\n";
 cout<<"\n\n  1) Ingresar Datos"<
 cout<<"  2) Mostrar Datos"<
 cout<<"  3) Grabar Datos"<
 cout<<"  4) Buscar Datos"<
 cout<<"  5) Modificar Datos"<
 cout<<"  6) Borrar Datos"<
 cout<<"  7) Salir"<
 cout<<"\n Escriba su opcion [1-7]: ";
 cin>>op;
 return (op);
}

void ingresar()
{
 do
 {  
  system ("cls");
  cout<<"\n \t\t\t //***Ingresar Datos de Empleados***\\\\"<
  cout<<"\n";
  cout<<"________________________________________________________________________________"<
  cout<<"________________________________________________________________________________"<
  cout<<"\n\n\n";
  cout<<"Registro #"<<
  cout<<"\n\n";
 
  cout<<"\t **Datos Personales**";
  cout<<"________________________________________________________________________________"<
  cout<<"\n\n";
  cin.get();
  cout<<"  Nombre:        ";
  cin.getline(person[num].dato.nombre,30);
  cout<<"  Apellido:      ";
  cin.getline(person[num].dato.apellido,30);
  cout<<"  Estado Civil:  ";
  cin.getline(person[num].dato.estadocivi,15);
  cout<<"  Telefono fijo: ";
  cin.getline(person[num].dato.telefono,10);
  cout<<"\n";
  cout<<"\t *Formacion*";
  cout<<"\n\n";
  cout<<"Primaria: ";       
  cin.getline(person[num].dato.formacion.primaria,50);
  cout<<"Secundaria: ";
  cin.getline(person[num].dato.formacion.secundaria,50);
  cout<<"Universitaria: ";
  cin.getline(person[num].dato.formacion.universitaria,50);
  cout<<"\n\n";
 
  cout<<"\t **Domicilio**";
  cout<<"\n\n";
  cout<<"  Departamento: ";
  cin.getline(person[num].domi.departamento,30);
  cout<<"  Ciudad:      ";
  cin.getline(person[num].domi.ciudad,30);
  cout<<"  Barrio:      ";
  cin.getline(person[num].domi.barrio,30);
  cout<<"  Calle:       ";
  cin.getline(person[num].domi.calle,30);
  cout<<"  Avenida:     ";
  cin.getline(person[num].domi.avenida,30);
  cout<<"\n\n";       
 
  cout<<"\t **Observaciones**";
  cout<<"\n\n";
  cout<<"  Que idiomas habla?: ";
  cin.getline(person[num].obs.idioma,80);
  cout<<"  Referencias:        ";
  cin.getline(person[num].obs.referencia,30);
  cout<<"  Antecedentes:       ";
  cin.getline(person[num].obs.antecedentes,30);
  cout<<"  Bonificaciones:     ";
  cin.getline(person[num].obs.bonificaciones,30);
  cout<<"\n\n";       
 
  cout<<"\t **Empresa**";
  cout<<"\n\n";
  cout<<"  Direccion:   ";
  cin.getline(person[num].emp.direccion,30);
  cout<<"  Puesto:      ";
  cin.getline(person[num].emp.puesto,30);
  cout<<"  Antiguedad:  ";
  cin.getline(person[num].emp.antiguedad,30);
  cout<<"  Sueldo:      ";
  cin>>person[num].emp.sueldo;
  cin.get();
  cout<<"  Telefono:    ";
  cin.getline(person[num].emp.tel,10);
  cout<<"  # de Seguro: ";
  cin.getline(person[num].emp.numseguro,20);
  cout<<"\n\n";
 
  cout<<" Desea ingresar otro registro si=1, no=2: ";
  cin>>sale;
  num++;
 }while (sale!=2);
}

void mostrar()
{
 system ("cls");
 cout<<"\n ";
 cout<<"\t\t\t //***REGISTRO DE EMPLEADOS***\\\\"<
 cout<<"\n ";
 cout<<"________________________________________________________________________________"<
 cout<<"________________________________________________________________________________"<
 cout<<"\n\n\n";
 for (int i=0;i
 {
  cout<<"Registro #"<<
  cout<<"\n\n";
 
  cout<<"\t **Datos Personales**";
  cout<<"\n\n";
  cout<<"  Nombre:       " <<
  cout<<"  Apellido:      "<<
  cout<<"  Estado Civil:  "<<
  cout<<"  Telefono fijo: "<<
  cout<<"\n";
  cout<<"\t *Formacion*";
  cout<<"\n\n";
  cout<<"Primaria:      "<<
  cout<<"Secundaria:    "<<
  cout<<"Universitaria: "<<
  cout<<"\n\n";       
 
  cout<<"\t **Domicilio**";
  cout<<"\n\n";
  cout<<"Departamento:     "<<
  cout<<"Ciudad:           "<<
  cout<<"Barrio:           "<<
  cout<<"Calle:            "<<
  cout<<"Avenida:          "<<
  cout<<"\n\n";       
 
  cout<<"\t **Observaciones**";
  cout<<"\n\n";
  cout<<"Que idiomas habla?: "<<
  cout<<"Referencias:        "<<
  cout<<"Antecedentes:       "<<
  cout<<"Bonificaciones:     "<<
  cout<<"\n\n";       
 
  cout<<"\t **Empresa**";
  cout<<"\n\n";
  cout<<"Direccion:   "<<
  cout<<"Puesto:      "<<
  cout<<"Antiguedad:  "<<
  cout<<"Sueldo:      "<<
  cout<<"Telefono:    "<<
  cout<<"# de Seguro: "<<
  cout<<"\n\n\n\n";
 }
 system ("pause");
}

void buscar()
{
 system ("cls");
 cout<<"\n \t\t Buscar Datos de Empleados"<
 cout<<"\n ";
 cout<<"________________________________________________________________________________"<
 cout<<"________________________________________________________________________________"<
 cout<<"\n\n\n";
 cin.get();
 cout<<"Nombre de empleado a buscar: ";
 cin.getline(per[0].dato.nombre,30);
 for (int f=0;f
 {
  if (strcmp(person[f].dato.nombre,per[0].dato.nombre)==0)
  {
   bandera=true;
   found=f;
   break;
  }
  else
  bandera=false;
 }
 if (bandera)
 {
  cout<<"\n ";
  cout<<"\t\t\t //***REGISTRO DE EMPLEADOS***\\\\"<
  cout<<"\n ";
  cout<<"________________________________________________________________________________"<
  cout<<"________________________________________________________________________________"<
  cout<<"\n\n\n";
  cout<<"Registro #"<<
  cout<<"\n\n";
 
  cout<<"\t Datos Personales";
  cout<<"\n\n";
  cin.get();
  cout<<"  Nombre:       " <<
  cout<<"  Apellido:      "<<
  cout<<"  Estado Civil:  "<<
  cout<<"  Telefono fijo: "<<
   cout<<"\n";
  cout<<"\t Formacion";
  cout<<"\n\n";
  cout<<"Primaria:      "<<
  cout<<"Secundaria:    "<<
  cout<<"Universitaria: "<<
  cout<<"\n\n";       
 
  cout<<"\t Domicilio";
  cout<<"\n\n";
  cout<<"Departamento:     "<<
  cout<<"Ciudad:           "<<
  cout<<"Barrio:           "<<
  cout<<"Calle:            "<<
  cout<<"Avenida:          "<<
  cout<<"\n\n";       
 
  cout<<"\t Observaciones";
  cout<<"\n\n";
  cout<<"Que idiomas habla?: "<<
  cout<<"Referencias:        "<<
  cout<<"Antecedentes:       "<<
  cout<<"Bonificaciones:     "<<
  cout<<"\n\n";       
 
  cout<<"\t Empresa";
  cout<<"\n\n";
  cout<<"Direccion:   "<<
  cout<<"Puesto:      "<<
  cout<<"Antiguedad:  "<<
  cout<<"Sueldo:      "<<
  cout<<"Telefono:    "<<
  cout<<"# de Seguro: "<<
  cout<<"\n\n\n\n";
  system ("pause");
 }
 else
  cout<<"NO SE ENCUENTRA!!"<
  cin.get();
}

void grabar()
{
  system ("cls");
  ofstream fs ("Registro de Empleados.txt");
  fs<<"\t\t\t //***REGISTRO DE EMPLEADOS***\\\\"<
  fs<<"\n";
  fs<<"________________________________________________________________________________"<
  fs<<"________________________________________________________________________________"<
  fs<<"\n\n\n";
  for (int i=0;i
 {
  fs<<"Registro #"<<
  fs<<"\n\n";
 
  fs<<"\t **Datos Personales**";
  fs<<"\n\n";
  fs<<"  Nombre:       " <<
  fs<<"  Apellido:      "<<
  fs<<"  Estado Civil:  "<<
  fs<<"  Telefono fijo: "<<
  fs<<"\n";
  fs<<"\t *Formacion*";
  fs<<"\n\n";
  fs<<"Primaria:      "<<
  fs<<"Secundaria:    "<<
  fs<<"Universitaria: "<<
  fs<<"\n\n";       
 
  fs<<"\t **Domicilio**";
  fs<<"\n\n";
  fs<<"Departamento:     "<<
  fs<<"Ciudad:           "<<
  fs<<"Barrio:           "<<
  fs<<"Calle:            "<<
  fs<<"Avenida:          "<<
  fs<<"\n\n";       
 
  fs<<"\t **Observaciones**";
  fs<<"\n\n";
  fs<<"Que idiomas habla?: "<<
  fs<<"Referencias:        "<<
  fs<<"Antecedentes:       "<<
  fs<<"Bonificaciones:     "<<
  fs<<"\n\n";       
 
  fs<<"\t **Empresa**";
  fs<<"\n\n";
  fs<<"Direccion:   "<<
  fs<<"Puesto:      "<<
  fs<<"Antiguedad:  "<<
  fs<<"Sueldo:      "<<
  fs<<"Telefono:    "<<
  fs<<"# de Seguro: "<<
  fs<<"\n\n\n\n";
 }
}

void modificar()
{
do
{
  system ("cls");
  buscar();
  cout<<"Desea modificar el registro encontrado si=1, no=2: ";
  cin>>sale;
  if (sale!=2)
  {
   if (bandera)
   {
    system ("cls");
    for (int q=found;q
    {
     cout<<"\n \t\t\t //***Ingresar Datos de Empleados***\\\\"<
     cout<<"\n";
     cout<<"________________________________________________________________________________"<
     cout<<"________________________________________________________________________________"<
     cout<<"\n\n\n";
     cout<<"Registro #"<<
     cout<<"\n\n";
 
     cout<<"\t **Datos Personales**";
     cout<<"\n\n";
     cin.get();
     cout<<"  Nombre:        ";
     cin.getline(person[q].dato.nombre,30);
     cout<<"  Apellido:      ";
     cin.getline(person[q].dato.apellido,30);
     cout<<"  Estado Civil:  ";
     cin.getline(person[q].dato.estadocivi,15);
     cout<<"  Telefono fijo: ";
     cin.getline(person[q].dato.telefono,10);
     cout<<"\n";
     cout<<"\t *Formacion*";
     cout<<"\n\n";
     cout<<"Primaria: ";       
     cin.getline(person[q].dato.formacion.primaria,50);
     cout<<"Secundaria: ";
     cin.getline(person[q].dato.formacion.secundaria,50);
     cout<<"Universitaria: ";
     cin.getline(person[q].dato.formacion.universitaria,50);
     cout<<"\n\n";       
 
    cout<<"\t **Domicilio**";
    cout<<"\n\n";
    cout<<"  Departamento: ";
    cin.getline(person[q].domi.departamento,30);
    cout<<"  Ciudad:      ";
    cin.getline(person[q].domi.ciudad,30);
    cout<<"  Barrio:      ";
    cin.getline(person[q].domi.barrio,30);
    cout<<"  Calle:       ";
    cin.getline(person[q].domi.calle,30);
    cout<<"  Avenida:     ";
    cin.getline(person[q].domi.avenida,30);
    cout<<"\n\n";       
 
    cout<<"\t **Observaciones**";
    cout<<"\n\n";
    cout<<"  Que idiomas habla?: ";
    cin.getline(person[q].obs.idioma,80);
    cout<<"  Referencias:        ";
    cin.getline(person[q].obs.referencia,30);
    cout<<"  Antecedentes:       ";
    cin.getline(person[q].obs.antecedentes,30);
    cout<<"  Bonificaciones:     ";
    cin.getline(person[q].obs.bonificaciones,30);
    cout<<"\n\n";       
 
    cout<<"\t **Empresa**";
    cout<<"\n\n";
    cout<<"  Direccion:   ";
    cin.getline(person[q].emp.direccion,30);
    cout<<"  Puesto:      ";
    cin.getline(person[q].emp.puesto,30);
    cout<<"  Antiguedad:  ";
    cin.getline(person[q].emp.antiguedad,30);
    cout<<"  Sueldo:      ";
    cin>>person[q].emp.sueldo;
    cin.get();
    cout<<"  Telefono:    ";
    cin.getline(person[q].emp.tel,10);
    cout<<"  # de Seguro: ";
    cin.getline(person[q].emp.numseguro,20);
    cout<<"\n\n";
    }
   }
  }
  cout<<"Desea modificar otro si=1, no=2: ";
  cin>>sale;
 }while (sale!=2);
 cout<
 system ("pause");
}

void borrar()
{
 do
 {
  system ("cls");
  buscar();
  cout<<"\n\n";
  cout<<"Desea Borrar el registro encontrado si=1, no=2: ";
  cin>>sale;
  if (sale!=2)
  {
   if (bandera)
   {
    for (int u=found;u
    person[u]=person[u+1];
    num-=1;
    cout<<"\n";
    cout<<"Registro borrado!!"<
    cin.get();
   }
  }
  cout<<"\n\n";
  cout<<"Desea borrar otro registro si=1,no=2: ";
  cin>>sale;
 }while(sale!=2);
 cout<
 system ("pause");
}  

Programa que resuelve una ecuacion de grado 2

Este programa lo hice en visual basic 6.0, resuelve una ecuacion de grado 2 usando la formula cuadratica, acontinuacion les dejo el codigo fuente y el link para q bajen el instalador.


 
'codificado por Daniel Jiménez Martínez                                                III BTC “1”       

Dim a, b, c As Double
Dim x1, x2, p1, p2, p3, p4, p5, p6, p7, z1, z2, r1, r2, w1, w2, t1, t2 As Double

Private Sub cmdlimpiar_Click() ' Limpia los textbox
  txta.Text = " "
  txtb.Text = " "
  txtc.Text = " "
End Sub

Private Sub cmdresolver_Click()
   ' si los textbox estan vacios manda un mensaje diciendo que inserte numero en las casillas
   If ((Len(Trim(txta.Text)) = 0) And (Len(Trim(txtb.Text)) = 0) And (Len(Trim(txtc.Text)) = 0)) Then
     MsgBox "Introdusca valor a, b, c", vbExclamation, "ERROR"
     txta.SetFocus
     GoTo noo
     'si los textboxs de "b" y "c" estan vacias manda mensaje diciendo que inserte numeros en las casillas "b" y "c"
  ElseIf ((Len(Trim(txtb.Text)) = 0) And (Len(Trim(txtc.Text)) = 0)) Then
    MsgBox "Introdusca valor b, c", vbExclamation, "ERROR"
    txtb.SetFocus
 End If

 On Error GoTo noo
   ' guarda los valores de los textboxs en variables
 a = Val(txta.Text)
 b = Val(txtb.Text)
 c = Val(txtc.Text)
 
 If a = 0 Then ' si en la casilla se inserta cero manda un mensaje diciendo que en casilla a no puede insertar cero
   MsgBox "El valor de ""a"" no puede ser 0 ingrese otro numero", vbExclamation, "ERROR"
   txta.Text = " "
   txta.SetFocus
 End If
 p1 = ((b * b) - (4 * a * c))   'Saca la discriminante

  If (p1 < 0) Then 'No tiene solucion
    MsgBox "La ecuacion " & a & "X^2 + " & b & "X + " & c & " no tiene solucion", vbExclamation, "ERROR"

  ElseIf (p1 = 0) Then   ' Tiene una solucion
    p2 = 2 * a
    p3 = -1 * b
    p4 = p3 Mod p2
    If (p4 = 0) Then   ' verifica si la respuesta es un entero
      x1 = p3 / p2
      MsgBox "La solucion a la ecuacion " & a & "X^2 + " & b & "X + " & c & " es X: " & x1, vbInformation, "RESPUESTA"
   Else
     ' simplificacion de fracciones
     Dim q As Integer
     For q = 9 To 1 Step -1
       z1 = p3 Mod q
       z2 = p2 Mod q
       If ((z1 = 0) And (z2 = 0)) Then
         w1 = p3 / q
         w2 = p2 / q
         Exit For
       End If
     Next
     MsgBox "La solucion a la ecuacion " & a & "X^2 + " & b & "X + " & c & " es X: " & w1 & "/" & w2, vbInformation,      "RESPUESTA"
   End If
 
ElseIf (p1 > 0) Then ' Tiene dos soluciones
   p2 = Sqr(p1) ' elimina la raiz
   p3 = 2 * a
   p4 = (-1 * b) + p2
   p5 = (-1 * b) - p2
   p6 = p4 Mod p3
   p7 = p5 Mod p3
   If ((p6 = 0) And (p7 = 0)) Then ' verifica si las dos soluciones son enteros
     x1 = p4 / p3
     x2 = p5 / p3
     MsgBox "La solucion a la ecuacion " & a & "X^2 + " & b & "X + " & c & " es X1: " & x1 & "  X2: " & x2, vbInformation, "RESPUESTA"
   ElseIf ((p6 = 0) And (p7 <> 0)) Then ' una solucion es fraccion y otra entero
    x1 = p4 / p3
     fracminx2  ' llama a funcion que reduce fracciones
     MsgBox "La solucion a la ecuacion " & a & "X^2 + " & b & "X + " & c & " es X1: " & x1 & "  X2: " & t1 & "/" & t2, vbInformation, "RESPUESTA"
   ElseIf ((p6 <> 0) And (p7 = 0)) Then ' una solucion es fraccion y otra entero
     x2 = p5 / p3
     fracminx1  ' llama a funcion que reduce fracciones
     MsgBox "La solucion a la ecuacion " & a & "X^2 + " & b & "X + " & c & " es X1:  " & w1 & "/" & w2 & "  X2: " & x2, vbInformation, "RESPUESTA"
   Else ' ambas respuestas son fracciones
     fracminx1  ' llama a funcion que reduce fracciones
     fracminx2  ' llama a funcion que reduce fracciones
     MsgBox "La solucion a la ecuacion " & a & "X^2 + " & b & "X + " & c & " es X1: " & w1 & "/" & w2 & "  X2:   If"
   End If
 End If
noo:
End Sub


Private Sub mnu_acerca_Click()
frmAbout.Show
End Sub

Private Sub mnu_salir_Click()
 End
End Sub

Sub fracminx1() ' simplifica fracciones
Dim g As Integer
 For g = 9 To 1 Step -1
  z1 = p4 Mod g
  z2 = p3 Mod g
  If ((z1 = 0) And (z2 = 0)) Then
   w1 = p4 / g
   w2 = p3 / g
   Exit For
  End If
 Next
End Sub

Sub fracminx2() 'simplifica fracciones
 Dim f As Integer
   For f = 9 To 1 Step -1
    r1 = p5 Mod f
    r2 = p3 Mod f
    If ((r1 = 0) And (r2 = 0)) Then
      t1 = p5 / f
      t2 = p3 / f
      Exit For
    End If
   Next
End Sub

Private Sub txta_KeyPress(KeyAscii As Integer) ' hace que el texbox "a" solo acepte numeros, punto y menos
  If InStr("-0123456789." & Chr(8) & Chr(13), Chr(KeyAscii)) = 0 Then
    KeyAscii = 0
  End If
End Sub

Private Sub txtb_KeyPress(KeyAscii As Integer) ' hace que el texbox "b" solo acepte numeros, punto y menos
  If InStr("-0123456789." & Chr(8) & Chr(13), Chr(KeyAscii)) = 0 Then
    KeyAscii = 0
  End If
End Sub

Private Sub txtc_KeyPress(KeyAscii As Integer) ' hace que el texbox "c" solo acepte numeros, punto y menos
  If InStr("-0123456789." & Chr(8) & Chr(13), Chr(KeyAscii)) = 0 Then
    KeyAscii = 0
  End If
End Sub