Asi se deberia visualizar el ejecutable :
Practicas o tareas que piden los profesores de progra que nos pueden servir bastante para estudiar y aprender con el código fuente
sábado, 1 de junio de 2013
Gauss Jordan C++ , nxn sin errores y "validado"
Etiquetas:
codigo gauss jordan c++,
descargar cpp gauss jordan,
esime,
esime ipn,
gauss jordan c++ codigo,
gauss jordan n x n,
gauss jordan nxn,
ipn,
n x n,
progra
¨No consideres el estudio como un deber, sino como la oportunidad de entrar al maravilloso mundo del saber
Suscribirse a:
Comentarios de la entrada (Atom)
Creo que tiene un error la validación si ponemos "-" con eso truena el programa.
ResponderBorrarPero dime como se le hace para validar en estos casos a) ". " b) "- " c) "-. " No puedo! Gracias
igual checa las funciones guion y punto ... con esas ya puedes usar decimales y negativos
BorrarAbajo te respondi
Borrarya lo volvi a checar y no tiene esos errores , mira descargate el cpp , esta mas actualizado , incluso le puse como plus la opcion decorregir algun dato antes de hacer el metodo ...
ResponderBorrarpero ve lo que hice es "fusionar" el recorrido de la cadena con un contador, es decir que si cualquier caracter es diferente a "." , "-", y los numeros del 0 al 9 sume uno , el "-." o ".-" no tiene caso ya que con la restriccion del "." y el "-" es suficiente ya que el recorrido de la cadena es caracter por caracter ....
previo a esto borras todo el contenido de tu char , con la funcion "inicia"
Me imagino que lo que quieres saber es la validacion para la captura de solo numeros ... si ese es el caso seria esto:
#include
#include
#include
#include
using namespace std;
char inicia (char *op)
{
int c;
for(c=0 ; c<50; c++)
{
op[c]=' '; //aqui es el "borrado"
}
return *op;
}
int csymletras(char *op)
{
int o,c,r;
o=0;
for(c=0; c<50; c++)
{
//en esta condicion recorres tu cadena en busca
//de caracteres dif a los num , eso inluye el
// . y el - , si es diferente se suma la unidad
//a "o" para esto tambien es importante que
//previmente este igualada la o a 0, sino te sale
// un numerote , que es la posicion de memoria
//Continuando si es igual a los numeros pues sumas 0
// y por ultimo te regresa el valor de o ,
//te recuerdo que o es el contador.
if(op[c] != '1' && op[c] != '2' && op[c] != '3' && op[c] != '4' && op[c] != '5' && op[c] != '6' && op[c]!='7' && op[c] != '8' && op[c]!='9' && op[c]!='0' && op[c]!= ' ')
{
r=1 ;//
}
else
{
r=0;
}
o=o+r;
}
return o;
}
int main ()
{
int b;
char a[50];
inicia(a);
cout<<"\nCaptura un numero entero positivo :\n";
cin>>a;
b=csymletras(a);
if (b>1)
{
cout<<"\n\n NO ES un numero entero positivo";
}
else
{
cout<<"\n\n Si ES un numero entero positivo" ;
}
getch();
return 0;
}
Espero te ayude Suerte
Hola! Muchas gracias por tomarte la molestia de contestar. Acabo de descargar el .cpp y a continuación (en el link)lo que sucede cuando ingreso "." o "-". A eso me refería espero se visualice correctamente http://s1127.photobucket.com/user/cenipe/media/WP_20130528_001.mp4.html (disculpa si no me explique correctamente), alguna solución? Gracias nuevamente...
ResponderBorrarOrale , si , ya le revise , tienes razon , el error esta en la funcion captura() , lo que pasa es que en el momento de capturar la constante , no utilize una cadena de caracteres osea un dato tipo char para hacer la validacion , osea la captura fue directa al arreglo dauble , ya que de lo contrio si funcionaria y se tomaria al igual que en las capturas de las variables como 0 , porque "-" seria como "-0" que asu ves es solo cero , ó "." seria como "0.0" ,".0" ....
Borrarahora lo que debes hacer es agregar la validacion a la funcion "void captura(double a[50][50],int n)" :
quedaria asi :
void captura(double a[50][50],int n)
{
int c,f,v;
char A[5000];
for(c=0;c>A;
v=validacion(A);
}while (v<1);
a[c][f]=atof(A);
}
else
{
do{ // Agregas este do para que regrese a este punto
system("cls");
inicia(A); // Haces que el contenido de la cadena char sea " "
cout<<"\n\n\n\n Captura de la matriz :";
cout<<"\n\n Constante = ";
cin>>A; // Capturas una cadena tipo char asi, ya no truena
v=validacion(A); // Validas
}while (v<1);
a[c][f]=atof(A); // Conviertes a numero y lo guardas en una ubicacion del double
}
}
}
}
y ya asi no debe tener problemas ...
ahora que si quieres que no acepte el "." y el "-" sin numeros , me dices y la hago , obien como dato puedes hacer un buscador como el de la funcion punto es decir hacer un recorrido a lo largo del char y y ver si hay numeros , para hacer in contador y despues poner un while ....
me avisas , si no puedes la hago en el fin de semana !!
Suerte !!
No se puede descargar el codigo:(
ResponderBorrar