viernes, 9 de marzo de 2012

Juego de Pelotas Rebotando Java

Dejo el archivo ejecutable de la versión Beta de una aplicación simple hecha por mi...
Solo debe descomprimir el archivo y hacer doble click en el jar.
Archivo BouncingBallsBeta.rar
Captura de Ejecución:




Saludos att: LordRamos.

lunes, 7 de noviembre de 2011

Programa para ajustar Recta por mínimos cuadrados y punto de corte [Código fuente] C++

Acá esta el Código fuente de un programa que había subido  ( solo el ejecutable)  anteriormente.


#include <iostream>
#include <conio.h>
#include <stdlib.h>
#define max 50

using namespace std;
//Funcion para Leer los datos
void leer(float *x ,float *y,int n)
 {int i;
  for(i=0;i<n;i++,x++)
{cout<<"Ingrese el valor de X n° "<<(i+1)<<": ";
cin>>*x;
system("cls");
}
  for(i=0;i<n;i++,y++)
{cout<<"Ingrese el valor de Y n° "<<(i+1)<<": ";
cin>>*y;
system("cls");
}
 }
//Funcion para calcular la Pendiente ajustada por minimos cuadrados 
void minimos_cuadrados(float *x,float *y,int n)
 {float k=0,t=0,w=0,k2=0,m;
  int i;
  //Efectuando las respectivas sumas y productos requeridos en la ecuacion
  for(i=0;i<n;i++,x++,y++)
{k+=*x;
t+=*y;
w+= (*x)*(*y);
k2+=(*x)*(*x);
}
  //Resolviendo la ecuacion de la Pendiente ajustada a minimos cuadrados
  m=(n*w-k*t)/(n*k2-k*k);
  cout<<"La pendiente ajustada por minimos cuadrados es m= "<<m<<endl;
 }
//Funcion para calcular el punto de corte
void punto(float *x,float *y,int n)
 {float k=0,t=0,w=0,k2=0,b;
  int i;
 //Efectuando las respectivas sumas y productos requeridos en la ecuacion 
  for(i=0;i<n;i++,x++,y++)
{k+=*x;
t+=*y;
w+= (*x)*(*y);
k2+=(*x)*(*x);
}
//Resolviendo la ecuacion para hallar el punto de corte por minimos cuadrados
  b=(t*k2-k*w)/(n*k2-k*k);
  cout<<"\nEl punto de corte por minimos cuadrados es b= "<<b<<endl;
 }
//Función Principal 
int main ()
{int n,i;
 char c;
 float x[max],y[max];
 cout<<"\t\t**PROGRAMA PARA AJUSTAR RECTA POR MINIMOS CUADRADOS**";
 cout<<"\t\t\t\t\tELABORADO POR: JUAN PASTOR RAMOS BOLIVAR"<<endl;
 cout<<"\t\t\t\tUDO-INGENIERIA EN COMPUTACION"<<endl;
 cout<<"\t\t\t\tTODOS LOS DERECHOS RESERVADOS" ;
 for(i=0;i<19;i++) cout<<endl;
 cout<<"\t\t\t\tPresione enter para continuar...";
 getch();
 system("cls");
do{
  do{
cout<<"Ingrese la cantidad de datos a procesar: ";
cin>>n;
system("cls");
if(n<2 || n>max)
cout<<"Ingrese un valor  entre [2,50]"<<endl;

}while(n<2 || n>max);

leer(x,y,n);
minimos_cuadrados(x,y,n);
punto(x,y,n);
do{
cout<<"\n¿Desea realizar otro ajuste por minimos cuadrados? pulse s o n..."<<endl;
c=getch();
system("cls");
 }while(c!='s' && c!='S' && c!='n' && c!='N');
  }while(c=='s' || c=='S');
  if (c=='n' || c=='N')
  return 0;
}
Captura de Ejecución:


El programa fue compilado en Dev-C++.

Saludos att: LordRamos.

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