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.
Este Blog ha sido creado con la finalidad de suministrar información a los Estudiantes de Ingeniería en Computación e Ingeniería en Sistemas de la Universidad de Oriente de Venezuela, Núcleo de Anzoategui. Principalmente en el ámbito de programación en lenguajes como C++ y Java. Todos los programas de este blog son elaborados por mi. Saludos Att: LordRamos.
viernes, 9 de marzo de 2012
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.
#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");
}
#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
#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
Suscribirse a:
Entradas (Atom)