Forum » Programiranje » 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…
- spremenilo: uporabnik111 ()
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…
- spremenilo: uporabnik111 ()
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š {,})
5. Verjetno sem še kaj pozabil, ampak probaj malo pogledat, preden spišeš to kar ni ničemur podobno.
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.
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) :)
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…
- spremenilo: uporabnik111 ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | (težava) long long v COddelek: Programiranje | 941 (697) | technolog |
» | [C#] Domača naloga - osnoveOddelek: Programiranje | 2508 (1725) | 11tomi12 |
» | C# (strani: 1 2 )Oddelek: Programiranje | 12089 (8924) | Ericssony |
» | [Java] QuicksortOddelek: Programiranje | 742 (578) | MrBrdo |
» | Generiranje CRC-jaOddelek: Programiranje | 1114 (913) | kriko1 |