lunes, 29 de abril de 2013

Práctica 14.  Realizar un programa que emplee clases, basado en POO (programación orientada a objetos) para calcular el perímetro y el área de un rectángulo. Deben verificar que longitud y ancho contengan números reales  y que el valor de ancho sea menor o igual que veinte, de lo contrario mostraran el valor de cero.
El programa debe mostrar una salida en pantalla como la siguiente:

Las formulas para usar son: Área =base*altura, Perímetro =Lado+Lado+Lado+Lado.

La clase utiliza estas variables a= altura, b=ancho o base. 


class rectangulo {
      float a,b;
      float Area,Perimetro;
public:
     void area(float a,float b);
     void perimetro(float a,float b);
};




miércoles, 24 de abril de 2013

Práctica 13. Consiste en sumar y restar números complejos de la forma a(x,y) donde "x" es la parte real y "y" la parte imaginaria, ejemplo: a(1,1) y b(2,2) el resultado de la suma seria c(3,3) y de la resta c(-1,-1), utiliza función constructora, punteros, funciones miembro, clases y objetos.

Editar el programa en turbo c++ y corregir errores sin ayuda del Profesor.

#include<iostream.h>
#include<conio.h>
//SUNMA Y RESTA DE NUMEROS COMPLEJOS DE LA FORMA a(x,y)
class complejo{
  double real;
  double comp;
public:
  complejo();
  complejo(double);
  complejo(double,double);
  complejo *suma(complejo&);
  complejo *resta(complejo&);
  double getreal();
  double getcomp();
};

complejo::complejo()
{
 real=0;
 comp=0;
}

complejo::complejo(double real)
{
 this->real=real;
 comp=0;
}

complejo::complejo(double real,double comp)
{
 this->real=real;
 this->comp=comp;
}

complejo *complejo::suma(complejo &otro)
{return new complejo(this->real+otro.real,this->comp+otro.comp);}

complejo *complejo::resta(complejo &otro)
{return new complejo(this->real-otro.real,this->comp-otro.comp);}

double complejo::getreal()
{return this->real;}

double complejo::getcomp()
{return this->comp;}

void main()
{clrscr();
 double x,y,x1,y1;
 cout<<"Dame los 2 valores del numero complejo a(x,y)"<<endl;
 cin>>x>>y;
 cout<<"Dame los 2 valores del numero complejo b(x1,y1)"<<endl;
 cin>>x1>>y1;
 complejo a(x,y);
 complejo b(x1,y1);
 cout<<"Estos son los numeros complejos a("<<a.getreal()<<","<<a.getcomp()
 <<") y b("<<b.getreal()<<","<<b.getcomp()<<")\n\n";
 complejo *s=a.suma (b);
 cout<<"La suma es:("<<s->getreal()<<","<<s->getcomp()<<")\n\n";
 complejo *r=a.resta (b);
 cout<<"La resta es:("<<r->getreal()<<","<<r->getcomp()<<")";
 delete s,r;
 getch();
}

domingo, 21 de abril de 2013

Este es el código de la práctica 12 Método de búsqueda Binaria

#include<iostream.h>
#include<conio.h>
#define max 50 //este valor depende del usuario

void ingresarArreglo(float A[max],int n)
{ int i;
  for(i=0;i<n;i++)
  { cout<<"A["<<i+1<<"]=";
    cin>>A[i];
  }
  cout<<endl;
}
void reportarVector(float V[max],int n)
{ int i;
  for(i=0;i<n;i++)//recorre el arreglo
  { cout<<V[i]<<" ";
  }
  cout<<endl;
}
//función de ordenación por el método de selección
void ordenarSeleccion(float V[max],int n)
{  int i,j,k;
   float temp;
    for(i=0;i<n-1;i++)
    {  k=i;
       temp=V[i];//el primer valor del arreglo lo asignamos a un temporal
//para luego compararlo con los demás valores del arreglo hasta encontrar el menor valor
       for(j=i+1;j<n;j++)
       { if(V[j]<temp)//si encontramos un valor que sea menor que el primer valor del arreglo (temp)
//entonces intercambiamos de posición,los mismos pasos se repetirán hasta que arreglo sea ordenado completamente
{ k=j;
  temp=V[j];
}
       }
       V[k]=V[i];
       V[i]=temp;
    }
}
//funcion de busqueda binaria,solo funciona para arreglos ordenados
int busquedaBinaria(float V[max],int n ,int dato)
{ int mitad,izq,der;
  izq=0;
  der=n-1;
  while(izq<=der)//el elemento que esta ala izquierda debe de ser menor que el de la derecha
  { mitad=(izq+der)/2;//calculamos el elemento central del arreglo hasta encontrar el valor buscado
    if(dato>V[mitad])//si el elemento buscado es mayor que el centro entonces buscamos en la segunda mitad del arreglo
     izq=mitad+1;//el primer valor del arreglo pasa hacer la mitad mas 1
    else if(dato<V[mitad])//si el elemento buscado buscado es menor que la mitad entonces buscamos en la primera mitad del arreglo
     der=mitad-1;
    else
     return mitad; //retornamos el elemento encontrado
  }
  return -1;//el elemento no existe en el arreglo
}

void main()
{  float A[max];
   int n,dato;
   int pos;
   clrscr();
   cout<<"Ingrese numero de elementos: ";
   cin>>n;
   ingresarArreglo(A,n);
   cout<<"Vector ingresado"<<endl;
   reportarVector(A,n);
   cout<<endl;
   ordenarSeleccion(A,n);
   cout<<"El vector ordenado: "<<endl;
   reportarVector(A,n);
   cout<<endl;
   cout<<"Ingrese numero a buscar: ";
   cin>>dato;
   pos=busquedaBinaria(A,n,dato);
   {  if(pos==-1)
cout<<"El dato no esta en el arreglo"<<endl;
      else
cout<<"El dato se encontro en la posicion: "<<pos+1<<endl; //Se imprime la posición del elemento
   }                                                                                                //encontrado
   getch();
}
Este es el código del programa de la práctica 11 Método de búsqueda secuencial 

#include<iostream.h>

#include<conio.h>
#define max 50 //este valor depende del usuario

void ingresarArreglo(int A[max],int n)
{ int i;
  for(i=0;i<n;i++)
  { cout<<"A["<<i+1<<"]=";
    cin>>A[i];
  }
  cout<<endl;
}
void reportarVector(int V[max],int n)
{ int i;
  for(i=0;i<n;i++)//recorre el arreglo
  { cout<<V[i]<<" ";
  }
  cout<<endl;
}
//funcion de ordenacion por el metodo de seleccion
void ordenarSeleccion(int V[max],int n)
{  int i,j,k;
   float temp;
    for(i=0;i<n-1;i++)
    {  k=i;
       temp=V[i];//el primer valor del arreglo lo asignamos a un temporal
//para luego compararlo con los demas valores del arreglo hasta encontrar el menor valor
       for(j=i+1;j<n;j++)
       { if(V[j]<temp)//si encontramos un valor que sea menor que el primer valor del arreglo (temp)
//entonces intercambiamos de posicion,los mismos pasos se repetira hasta que arreglo sea ordenado completamente
{ k=j;
  temp=V[j];
}
       }
       V[k]=V[i];
       V[i]=temp;
    }
}
//funcion de busqueda secuencial, solo funciona para arreglos ordenados y desordenados
int busquedaSecuencial(int A[max], int n, int dato)
{ int i;
  for(i=0;i<n;i++) //Buscar por todo el arreglo
  { if (A[i]==dato) //si el elemento del arreglo es igual al dato buscado
     return i; //regresa la posicion del elemento buscado
  }
  return -1; //Si no error
}

void main()
{  int A[max];
   int n,dato;
   int pos;
   clrscr();
   cout<<"Ingrese numero de elementos: ";
   cin>>n;
   ingresarArreglo(A,n);
   cout<<"Vector ingresado"<<endl;
   reportarVector(A,n);
   cout<<endl;
   ordenarSeleccion(A,n);
   cout<<"El vector ordenado: "<<endl;
   reportarVector(A,n);
   cout<<endl;
   cout<<"Ingrese numero a buscar: ";
   cin>>dato;
   pos=busquedaSecuencial(A,n,dato);
   {  if(pos==-1)
cout<<"El dato no esta en el arreglo"<<endl;
      else
cout<<"El dato se encontro en la posicion: "<<pos+1<<endl; //Se imprime la posición del elemento  
   }                                                                                                //encontrado
   getch();
}


miércoles, 10 de abril de 2013

Lista de programas y practicas de la UNIDAD 2

  1. pract5.cpp  Estos son los demás programas del obj. 1.2.1
  2. pract6.cpp
  3. barra.cpp
  4. ventana.cpp
  5. pract7.cpp
  6. pract8.cpp
  7. pract9.cpp   Estos son  los métodos de ordenamiento
  8. pract10.cpp -----------------------------------------
  9. pract11.cpp  Estos son los métodos de búsqueda 
  10. pract12.cpp  ----------------------------------------
  11. construc.cpp
  12. destruc.cpp
  13. pract13.cpp Suma y resta de números complejos
  14. conspara.cpp
  15. conspar2.cpp
  16. pract14.cpp  Calcula Área y Perímetro de un rectángulo 
  17. inline.cpp
  18. mult.cpp


Lista de programas de repaso y practicas de la UNIDAD 1

  1. dias.cpp   Estos son los programas que deben tener hasta ahora en el obj. 1.1.1
  2. trescal.cpp
  3. octal.cpp
  4. peligro.cpp
  5. if.cpp
  6. while.cpp
  7. contador.cpp
  8. conta10.cpp
  9. for1.cpp
  10. for10.cpp
  11. fact.cpp
  12. sumas.cpp
  13. ecuacion.cpp
  14. tabla.cpp
  15. dowhile.cpp
  16. mat.cpp
  17. pract1.cpp   Estos son los programas de las practicas realizadas obj. 1.2.1
  18. pract2.cpp
  19. pract3.cpp
  20. pract4.cpp