» »

C++ Matrike

C++ Matrike

uporabnik111 ::

Mene zanima zakaj mi ta koda ne deluje kot bi morala. Ko zaženem program mi deluje samo tako dolgo , da lahko vpišem dolžino in širino.
#include<iostream.h>
int odstevanje(long A[10][10], long B[10][10],long dolzina , long sirina,long Nova[10][10])
{
	int stevilo=10;
	for(int i=0; i < dolzina; i++)
	{
		for(int j=0; j < sirina; i++)
		Nova[i][j]=0;
		{
			for(int k=0; k < stevilo;k++)
			Nova[i][j]= A[i][k] * B[k][j] + Nova[i][j];
		}
	}
	return 0;
}
int main()
{
    long a[10][10];
    long b[10][10];
	long Nova[10][10];
    long x,y;
    cout<<"Vpisi dolzino stolpca matrike"<<endl;
    cin>>x;
	cout<<"Vpisi sirino stolpca matrike"<<endl;
	cin>>y;
	odstevanje(a,b,x,y,Nova);
    return 0;
}

uporabnik111 ::

Tako približno naj bi izgledal celoten program , ampak jaz ne morem dalje od vpisa dolžine in širine:
#include<iostream.h>
void mnozenje(long A[10][10], long B[10][10],long dolzina , long sirina,long Nova[10][10])
{
	int stevilo=10;
	for(int i=0; i < dolzina; i++)
	{
		for(int j=0; j < sirina; i++)
		Nova[i][j]=0;
		{
			for(int k=0; k < stevilo;k++)
			Nova[i][j]= A[i][k] * B[k][j] + Nova[i][j];
		}
	}
}
void odstevanje(long A[10][10], long B[10][10],long dolzina , long sirina,long Nova[10][10])
{
	int stevilo=10;
	for(int i=0; i < dolzina; i++)
	{
		for(int j=0; j < sirina; i++)
		Nova[i][j]=0;
		{
			for(int k=0; k < stevilo;k++)
			Nova[i][j]= A[i][j] - B[i][j];
		}
	}
}
void sestevanje(long A[10][10], long B[10][10],long dolzina , long sirina,long Nova[10][10])
{
	int stevilo=10;
	for(int i=0; i < dolzina; i++)
	{
		for(int j=0; j < sirina; i++)
		Nova[i][j]=0;
		{
			for(int k=0; k < stevilo;k++)
			Nova[i][j]= A[i][j] + B[i][j];
		}
	}
}

int main()
{
    long a[10][10];
    long b[10][10];
	long Nova[10][10];
    long x,y;
    cout<<"Vpisi dolzino stolpca matrike"<<endl;
    cin>>x;
	cout<<"Vpisi sirino stolpca matrike"<<endl;
	cin>>y;
	mnozenje(a,b,x,y,Nova);
	odstevanje(a,b,x,y,Nova);
	sestevanje(a,b,x,y,Nova);
    return 0;
}

Zgodovina sprememb…

lebdim ::

kaj bi rad dobil na koncu? programček za računanje matrik? najprej moraš seveda vedeti, kako se matrike sešteva, odšteva in množi iz algebre. to znanje pa potem uporabiš pri programiranju.

uporabnik111 ::

Ja program za računanje matrik moram narediti. Drugače pa imam napisano kako se sešteva , odšteva in množi. Mene zanima zakaj ne gre dalje od vnosa dolžine in širine.

Zgodovina sprememb…

Kockica ::

Funkcije nič ne vrnejo?

amacar ::

Dej malo poglej kakšno skropucalo si napisal.
1. V vsaki funkciji pri dveh for loopih imaš i++ in greš izven polja, valda da crashne.
2. Pri seštevanju pa odštevanju ne rabiš 3 for loopov.
3. če maš matriko 3x3 ne boš množil do 3x10 (stevilo=10)
4. V drugem for loopu j sploh ni prepoznan, ker to kar si napisal ni for loop v for loopu (napačno uporabiš {,})
for(int j=0; j < sirina; i++)
Nova[i][j]=0;
{
   for(int k=0; k < stevilo;k++)
   Nova[i][j]= A[i][k] * B[k][j] + Nova[i][j];
}

5. Verjetno sem še kaj pozabil, ampak probaj malo pogledat, preden spišeš to kar ni ničemur podobno.

uporabnik111 ::

Prva funkcija je prepisana direkt iz predavanj...

čuhalev ::

Nauk: ne prepisuj

Pri šestevanju in odštevanju je ena zanka preveč.

lebdim ::

poskusi napisati sam programček. če boš prepisoval, se ničesar ne boš naučil.

jizzer ::

Saj ni nič narobe s tem da je prepisoval... Dostikrat se da kaj naučit iz zgledov. Če je to res direkt prepisano, menim da je precej sporno. Negre mi glih v glavo da bi napačne funkcije pisali na predavanjih.

Ampak ja prepisuj programov ne, če neznaš vsake linije razložit in zastopit kaj dela, ko pa znaš razložit pa probaj še sam isti program na drugačen način napisat (vedno se da) :)

uporabnik111 ::

Mi je uspelo narediti . Če kdo potrebuje tukaj je koda. Pomagal sem si z to stranjo http://www.programmingsimplified.com/

 #include<iostream>
using namespace std;
void matrikaA(int A[10][10],int B[10][10],int Nova[10][10],int n)
{
	cout << "Vnesi stevilke za prvo matriko"<<endl;
    cout<<endl;
	for (int i = 0 ; i < n ; i++ )
	{
		for (int j = 0 ; j < n ; j++ )
		{
			cin >> A[i][j];
		}
	}
}
void matrikaB(int A[10][10],int B[10][10],int Nova[10][10],int n)
{
	cout << "Vnesi stevilke za drugo matriko"<<endl;
    cout<<endl;
	for (int i = 0 ; i < n ; i++ )
	{
		for (int j = 0 ; j < n ; j++ )
		{
			cin >> B[i][j];
		}
	}
}
void sestevanje(int A[10][10],int B[10][10],int Nova[10][10],int n)
{
	for (int i = 0 ; i < n ; i++ )
	{
		for (int j = 0 ; j < n ; j++ )
		{
			Nova[i][j] = A[i][j] + B[i][j];
		}
	}
	cout << "Vsota matrike A in B je ="<<endl;
    cout<<endl;
    for ( i = 0 ; i < n ; i++ )
    {
		for (int j = 0 ; j < n ; j++ )
        cout << Nova[i][j] << "\t"; // \t je tabulator
		cout << endl;
	}
}
void odstevanje(int A[10][10],int B[10][10],int Nova[10][10],int n)
{
	for (int i = 0 ; i < n ; i++ )
    for (int j = 0 ; j < n ; j++ )
    Nova[i][j] = A[i][j] - B[i][j];
	cout << "Razlika matrike A in B je ="<<endl;
    cout<<endl;
    for ( i = 0 ; i < n ; i++ )
    {
		for (int j = 0 ; j < n ; j++ )
        cout << Nova[i][j] <<"\t";  // \t je isto kot da bi stisno tabulator noter tabulator
		cout << endl;
	}
}
void mnozenje(int A[10][10],int B[10][10],int Nova[10][10],int n)
{
	for (int i=0 ; i<n ; i++ )
	{
		for (int j=0 ; j<n ; j++ )
		{
			for(int k=0; k<n; k++)
			{
				Nova[i][j]=A[i][k]*B[k][j];
			}
		}
	}
	cout << "Mnozenje matrik A in B je ="<<endl;
	cout<<endl;
	for ( i=0 ; i<n ; i++ )
	{
		for (int j=0 ; j<n ; j++ )
		cout << Nova[i][j] <<"\t";  // \t je isto kot da bi stisno tabulator noter tabulator
		cout << endl;
	}
}

int main()
{
   int m,A[10][10], B[10][10], Nova[10][10];
   cout << "Vnesi dolzino in sirino matrike "<<endl;
   cin >> m ;
   cout<<endl;
   matrikaA(A,B,Nova,m);
   matrikaB(A,B,Nova,m);
   sestevanje(A,B,Nova,m);
   odstevanje(A,B,Nova,m);
   mnozenje(A,B,Nova,m);
} 

Zgodovina sprememb…



Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

(težava) long long v C

Oddelek: Programiranje
5860 (616) technolog
»

[C#] Domača naloga - osnove

Oddelek: Programiranje
372345 (1562) 11tomi12
»

C# (strani: 1 2 )

Oddelek: Programiranje
9711434 (8269) Ericssony
»

[Java] Quicksort

Oddelek: Programiranje
6669 (505) MrBrdo
»

Generiranje CRC-ja

Oddelek: Programiranje
71050 (849) kriko1

Več podobnih tem