Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Arreglos y sus problemas

Estas en el tema de Arreglos y sus problemas en el foro de C/C++ en Foros del Web. Buen día, les pido me puedan explicar por que me deja cierto error este programa que he hecho en c++. # Código: include <iostream> using ...
  #1 (permalink)  
Antiguo 25/04/2012, 18:46
 
Fecha de Ingreso: abril-2012
Mensajes: 2
Antigüedad: 12 años
Puntos: 0
Exclamación Arreglos y sus problemas

Buen día, les pido me puedan explicar por que me deja cierto error este programa que he hecho en c++.

#
Código:
include <iostream>

using namespace std;

typedef double** matriz;

matriz crear_matriz(int m, int n)
{
	matriz M=0;
	M = new double* [m];
	for (int i = 0; i < m; i++) 
	{
		M[i]=new double [n];
	}
	return M;
}

matriz impr_matriz(int m, int n, matriz M)
{
	for (int i = 0; i < m; i++) 
	{
		for (int j = 0; j < n; j++) 
		{
				if(j==n-1)
		{
			cout<<M[i][j]<<" "<<endl;
		}
		else 
		{
			cout<<M[i][j]<<" ";
		}
		}	
	}
}

matriz entrar_salir(matriz A, int m, int n)
{
	
	int f;
	int g;
	char s;
	cout<<"¿Cuál es el pivote? (m,n): ";
	cin>>f>>s>>g;
	cout<<f<<s<<g<<endl;
	double y_st=A[f-1][g-1];
	
	for (int k = 0; k < n; k++) 
	{
		A[f-1][k]/=y_st;
	}
	
	for (int i= 0; i < m; i++) 
	{
		if(i!=(f-1))
		for (int j = 0; j < n; j++) 
		{
			A[i][j]=A[i][j]-(A[i][g-1]*A[f-1][j]);
		}
		else 
		{
			i++;
		}
		
	}
	return A;
}


matriz rellena_matriz(int m, int n, matriz M)
{
	for (int i = 0; i < m; i++) 
	{
		for (int j = 0; j < n; j++) 
		{
			cout<<"Ingresa el elemento a_"<<i+1<<j+1<<" = ";
			cin>>M[i][j];
		}
	}
	return M;
}

int main() {
	
	char l=0;
	do
	{
	matriz A=NULL;
	
	cout<<"Algoritmo para entrar y salir de la base"<<endl;
	cout<<"Ingresa la matriz en su form canónica (o en la forma estándar)"<<endl;
	cout<<"Introduce el tamaño de la matriz A en la froma m,n: ";
	int n;
	int m;
	char s;
	cin>>m>>s>>n;
	
	cout<<"Ingresa los datos de la matriz A: "<<endl;
			A=crear_matriz(m,n);
			rellena_matriz(m,n, A);
			cout<<endl;
			impr_matriz(m,n,A);
			cout<<endl;
			
	entrar_salir(A, m, n);

	impr_matriz(m, n, A);	
	cout<<"Wanna do it again? Press Y/y if you want to, or another key to quit ";
		cin>>l;
	}
	while (l=='Y'|| l=='y'); 
	}
Las dudas son las siguientes: como es la "movida" en los arreglos, ciertamente tengo mucha confusión. El algoritmo en si es solo seleccionar un elemento Aij de la matriz y reducirlo a una forma en que pueda ser introducido a una base, es decir, el elemento seleccionada sea 1 y los demas de las misma columna sean cero. Esto lo hago dividiendo toda la fila entre el pivote y despues ir haciendo el codigo que tengo en entrar_salir, pero en si no me ejecuta nada de la resta si elijo no se, digamos el A21 no ejecuta nada para j>1, para las demas columnas.

Etiquetas: arreglos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:49.