sábado, 30 de julio de 2011

Programa Ordenar Matriz C++

Programa que permite ordenar una matriz en forma de espiral, de zigzag horizontal y vertical, y en forma de lluvia, ademas reducir la matriz.


#include <iostream>
#include <stdio.h>
#define max 15
using namespace std;
//Función leer
void leer(int n,int c[max][max])
  {int i,j;
for(j=0;j<n;j++)
for(i=0;i<n;i++)
 {cout<<"Ingrese el elemento c["<<j<<"]["<<i<<"]: ";
cin>>c[j][i];
system("cls");
 }
}
//Función mostrar
void mostrar(int x[max][max],int n)
  {int i,j;
for(j=0;j<n;j++)
{for(i=0;i<n;i++)
 printf("%5d",x[j][i]);
 cout<<endl;
}
}
//Función para pasar arreglo unidimensional a bidimensional
void pasaarreglo(int a[max][max],int b[max], int r)
  {int j,i ,n=0;
for(j=0;j<r;j++)
for(i=0;i<r;i++,n++)
 a[j][i]=b[n];
  }
 //Función para reducir matriz en orden 2 
void reducemat(int x[max][max],int n){
    int i,j, y[max][max];
     for(j=0;j<n-1;j++)
for(i=0;i<n-1;i++)
y[j][i]=(x[j][i]*x[j+1][i+1])-(x[j+1][i]*x[j][i+1]);
    n--;
    cout<<"\nLa Matriz Original reducida es:"<<endl;
    mostrar(y,n);  
         
     }
 //Función para ordenar en espiral 
void ordenaespiral(int t[max][max],int r)
{
 int aux[max*max],aux2[max][max];
 int tope,a,j,i,n=0;
 if(r%2) tope=r/2+1;
 else tope=r/2;
 for(a=0;a<tope;a++)
  {
for(j=a,i=a;i<r-a;i++,n++)
aux[n]=t[j][i];
for(j=a+1,i--;j<r-a;j++,n++)
aux[n]= t[j][i];
for(i--,j--;i>=a;i--,n++)
aux[n]=t[j][i];
for(i++,j--;j>a;j--,n++)
aux[n]=t[j][i];
  }
 pasaarreglo(aux2,aux,r);
 cout<<"\nLa Matriz ordenada en forma de espiral es:"<<endl;
 mostrar(aux2,r);
 }
//Función para ordenar en zigzag horizontal 
void ordenahorizigzag(int c[max][max],int n)
  {int aux[max*max],aux2[max][max];
int i,j,t=0;
for(j=0;j<n;j++)
 {if(j%2==0)
for(i=0;i<n;i++,t++)
aux[t]=c[j][i];
else
for(i=n-1;i>=0;i--,t++)
aux[t]=c[j][i];
 }
pasaarreglo(aux2,aux,n);
cout<<"\nLa Matriz ordenada en forma de zigzag horizontal es:"<<endl;
mostrar(aux2,n);
}
//Función para ordenar en zigzag vertical
 void ordenavertizigzag(int c[max][max],int n)
 { int aux[max*max],aux2[max][max];
int i,j,t=0;
for(j=0;j<n;j++)
 {if(j%2==0)
for(i=0;i<n;i++,t++)
aux[t]=c[i][j];
else
for(i=n-1;i>=0;i--,t++)
aux[t]=c[i][j];
 }
pasaarreglo(aux2,aux,n);
cout<<"\nLa Matriz ordenada en forma de zigzag vertical es:"<<endl;
mostrar(aux2,n);
  }
//Función para ordenar en forma de lluvia comenzando desde la ultima fila  
void ordenalluvia(int c[max][max],int n)
 {int aux[max*max],aux2[max][max];
  int i=0,j,k,t=0,p;
for (j=n-1;j>=0;j--)
 {for(k=j,i=0;k<n;k++,i++,t++)
aux[t]=c[k][i];
}
         for(p=1;p<n;p++)
for(k=0,i=p;i<n;k++,i++,t++)
aux[t]=c[k][i];
    pasaarreglo(aux2,aux,n);
cout<<"\nLa Matriz ordenada en forma de lluvia es:"<<endl;
mostrar(aux2,n);

 }


//Inicio del main()
main(){
  int n;
  int c[max][max];
  do{
cout<<"Ingrese las dimensiones de la Matriz [3,15]: ";
cin>>n;

}while(n<3 || n>15);
  leer(n,c);
  cout<<"La Matriz original es:"<<endl;
  mostrar(c,n);
  ordenaespiral(c,n);
  ordenahorizigzag(c,n);
  ordenavertizigzag(c,n);
  ordenalluvia(c,n);
  reducemat(c,n);
  system("pause");
 }

Captura de Ejecución:
Saludos att: LordRamos.

jueves, 21 de julio de 2011

Programa para ordenar mitad de arreglo C++

Programa que ordena un arreglo de la mitad izquierda de menor a mayor y de la mitad derecha de mayor a menor.Programa compilado en Dev-C++ . Hacer las respectivas modificaciones para compiladores de Borland (TC++).


#include <iostream>
#include <conio.h>
#define max 30
using namespace std;
 main ()
{ int a[max],n,i,j,t,aux;
do{
cout<<"Ingrese las dimensiones del arreglo: ";
cin>>n;
system("cls");
if(n<2 || n>25)
cout<<"Ha ingresado un valor fuera del rango";
 }while(n<2 ||  n>25);
for (i=0;i<n;i++)
{cout<<"Ingrese el elemento nro "<<i+1<<" del arreglo: ";
 cin>>a[i];
 system("cls");
}
cout<<"El arreglo introducido es:"<<endl;
for (i=0;i<n;i++)
cout<<a[i]<<" ";
//Ordenamiento por metodo Burbuja
    //Primera mitad
    do{t=0;
for(i=0;i<n/2-1;i++)
if (a[i]> a[i+1])
 {aux=a[i];
a[i]=a[i+1];
a[i+1]=aux;
t=1;
 }
 }while (t!=0);
   //Segunda Mitad
do{t=0;
for (i=n/2; i<n-1 ; i++)
 if(a[i]< a[i+1])
{aux=a[i];
a[i]= a[i+1];
a[i+1]= aux;
t=1;
}
}while(t!=0);
cout<<"\nEl arreglo ordenado de la mitad izquierda de menor a mayor y de la mitad derecha de mayor a menor es:"<<endl;
for (i=0;i<n;i++)
 cout<<a[i]<<" ";
 getch();
 }

Captura de Ejecución:


Att: LordRamos

miércoles, 20 de julio de 2011

Programa para determinar números primos en un arreglos C++

Programa para determinar cuales son los números primos que se encuentran en un arreglo llenado por el usuario.


#include <iostream> //Colocar.h en TC++
#include <conio.h>
#define max 100
   
     using namespace std; //Eliminar esta linea en TC++
    main (){
    int a[max],b[max],i,j=0,n,div,t=0;
cout<<"Ingrese las dimensiones del arreglo: ";
cin>>n;
system("cls");
for (i=0; i<n;i++)
{
cout<<"Ingrese el  elemento nro "<<i+1<<" del arreglo: ";
cin >>a[i];

}
for(i=0; i<n;i++)
{div=2;
while(div<a[i] && a[i]%div>0) // Determinando si es primo
 div++;
if(div==a[i]){          
       b[j++]=a[i];
       t++; //Contador para saber si encontró al menos un numero primo
       }
}
if(t>0){
    cout<<"\nLos numeros primos de su arreglo son:"<<endl;
    for(i=0;i<j;i++)
    cout<<b[i]<<" ";
    }else cout<<"\nNo hay numeros primos en su arreglo";

 getch();
 }

Captura de Ejecución:
Att: LordRamos

domingo, 17 de julio de 2011

Programa admision Java

Programa de sistema de admisión de la UDO tomando en cuenta nota de Examen presentado y datos personales de un bachiller.

link PruebaAdmision.rar

Captura de Ejecución:



Att: LordRamos.

miércoles, 13 de julio de 2011

Programa para mover figura por teclado y aleatoriamente C++

#include <iostream>
#include <conio.h>
#include <stdlib.h> // libreria para la función rand()
#include <time.h> //libreria para que genere números aleatorios a partir del reloj
#include <windows.h> //libreria para usar la función Sleep

using namespace std; // quitar esta linea en Tc++
 main(){int n,i,j,x=0,y=0,k;
        char c,opc='u', opc2;
    cout<<"Ingrese caracter: ";
    cin>>c;
    do{
       cout<<"Ingrese dimensiones (5-25): ";
       cin>>n;
    }while(n<5 || n>25);
    srand(time(0));  //inicializando la semilla para la función rand() 
    do{
     system("cls"); //limpiado de pantalla
     for(j=0;j<x;j++)
     cout<<endl;
     for(j=0;j<n;j++){
      for(i=0;i<y;i++)
      cout<<" ";
      for(i=0;i<n;i++){
        if(j==0 || i==0 || j==n-1 || i==n-1|| i==j+n/2|| i==j-n/2||j==n/2-i || j==3*n/2-1-i || j==n/2 && i==n/2)
        cout<<c;
        else cout<<" ";}
        cout<<endl;
        }
     //condiciones para volver al menú o presentarlo por primera vez
     if(opc=='u' || opc=='b'&& k==15 || opc=='a' && opc2=='x'){


      k=0;
      opc2='u';
     cout<<"  *Menu*\n a)Para mover figura manualmente\n b)Para que la figura se mueva aleatoriamente \n z)salir \n Opcion: ";
     cin>>opc;
     }
     if(opc=='a'){
      if (opc2=='u')
       cout<<"Para mover figura presione(w/s/a/d/)  x (para volver al menu anterior)";
             
     opc2=getch();
     switch(opc2){
     case 'w': x--;break;
     case 's': if(x<24-n)x++;break;
     case 'a': y--;break;
     case 'd': if(y<79-n)y++;break;
     case 'x': break;
   
     }
     }
     if(opc=='b'){
       k++;
       y=1+rand()%(78-n);
       x=1+rand()%(25);        
       Sleep(600); //pausa de 600 milisegundos
       }
      if(opc!='a' && opc!='b' && opc!='z')
      opc='u';        
     }while(opc!='z');          
     
     }

Captura de Ejecución:


Programa compilado en Dev-c++, hacer las respectivas modificaciones para los que trabajan con TC++.
Att: LordRamos

sábado, 9 de julio de 2011

Mi primer Java Applet

Les dejo este applet  que permite calcular el sueldo de un empleado a partir de su sueldo base y unos datos preestablecidos de seguro social, ley de política habitacional, paro forzoso, entre otros...

link PruebaEmpleados.rar

Captura de Ejecución:


    Att: LordRamos.