Amigo Posted May 18, 2004 Share Posted May 18, 2004 iskam da pomolq ako nqkoi razbira ne6to ot pascal moje li da poopravim ne6tata v tova malko progi program matrix; uses wincrt; type Matr=array[0..10, 0..10] of double; var s:double; i,j,t,k,m,n,l :integer; A,B,C,D:Matr; begin write('Zadai broi stalbove za A n=' );read(n); write('Zdai broi redove za A m=');read(m); write('Zadai broi stalbove za B l=' );read(l); write('Zdai broi redove za B k=');read(k); for i:=1 to n do begin for j:=1 to m do begin write('A[',i,',',j,']= ');read(A[i,j]); end; {for za j} end; {end za i} for i:=1 to l do begin for j:=1 to k do begin write('B[',i,',',j,']= ');read(B[i,j]); end; {for za j} end; {end za i} for t:=1 to k do begin for i:=1 to n do begin s:=0; for j:=1 to m do begin s:=s+A[i,j]*B[j,t]; end; {za j} C[i,t]:=s; end; {za i} end; {za t} for i:=1 to n do begin for j:=1 to k do begin writeln('C[',i,',',j,']= ',C[i,j]); end; {for za j} end; {end za i} for i:=1 to n do begin for j:=1 to k do begin D[i,j]:=A[i,j]+B[i,j]; writeln('D[',i,',',j,']= ',D[i,j]); end; {for za j} end; {end za i} end. vyprosa mi e moje li nqkoi da go poopravi taka 4e da se izpolzvat proceduri i funkcii programkata si raboDi perfect vyprosa e 4e neznam kak da obosobq otdelnite procedurki i da gi izvikam ako nqkoi znae pls help zada4ata e: da se sastavim progr. na pask. za vavegdane na vhodni danni ot klaviaturata za dva dvumerni masiva. i da se dade sumata po redove. az sym vmyknal i umnojenie po pogre6ka ako nqkoi znae pls da pomogne Link to comment Share on other sites More sharing options...
Jorkis Posted May 18, 2004 Share Posted May 18, 2004 А двете матрици еднакви ли са по размерност, май не са, защото се въвеждат по отделно и за А и за Б размерности, тогава какви сборове искаш на всяка матрица по отделно ли или ред на А с ред на Б, но ако е второто трябва да са с еднакъв брой редове Дай разяснения и ако не бързаш много ще я имаш задачата Link to comment Share on other sites More sharing options...
Amigo Posted May 18, 2004 Author Share Posted May 18, 2004 lo6oto e 4e byrza moq 4ovek a az samo do tuk stignah s ob6ti usiliq:) zada4ata e: da se sastavim progr. na pask. za vavegdane na vhodni danni ot klaviaturata za dva dvumerni masiva. i da se dade sumata po redove. az sym vmyknal i umnojenie po pogre6ka ako nqkoi znae pls da pomogne zada4kata e taq type Mat2=array[integer,integer]of integer; procedure EnterMat(var p:integer,var H:Mat2); var i,j:integer; begin for i:=1 to p do begin for j:=1 to p do begin repeat writeln('dai mi a[',i,',',j,']element'); readln(H[i,j]); until(type(H[i,j])=real); end; end; end; function Sum(var i:integer,var p:integer,var H:Mat2):real; var j:integer; summe:real; begin summe:=0; for j:=1 to p do summe:=summe+H[i,j]; Sum:=summe; end; procedure DisplayResult(var p:integer,var H:Mat2); var i:integer; begin for i:=1 to p do writeln('sumata ot red nomer',i,'e ',Sum(i,p,H)); end; var n,m:integer; N,M:Mat2; begin writeln('dai mi razmera na parvata matrica'); readln(n); EnterMat(n,N); DisplayResult(n,N); writeln('dai mi razmera na vtorata matrica'); readln(m); EnterMat(m,M); DisplayResult(m,M); readln; end. eto o6te edin varqnt no ne6to neiska da se compilira? Link to comment Share on other sites More sharing options...
Igniter Posted May 18, 2004 Share Posted May 18, 2004 Pregledai si koi sa ti globalnite i koi lokalnitepromenlivi. type Mat2=array[integer,integer]of integer; go napravi const max:=500type Mat2=array[1..max,1..max] of real; Kato po-dolu, mejdu readln(n);EnterMat(n,N); si vkarai syotvetnite proverki n i m da sa <maxif n>max then beginwriteln:=('Programata raboti s matrici po-malki ot',n,'! Vyvedete nova stoinost za rameryt na pyrvata matrica'); read(n); end; i za vtorata na syotvetnoto mqsto: if m>max then beginwriteln:=('Programata raboti s matrici po-malki ot',m,'! Vyvedete nova stoinost za rameryt na vtorata matrica');br />read(m); end; Link to comment Share on other sites More sharing options...
Amigo Posted May 18, 2004 Author Share Posted May 18, 2004 10x a ne6to za procedurite? Link to comment Share on other sites More sharing options...
Jorkis Posted May 18, 2004 Share Posted May 18, 2004 program Matrici; const max=50; type matrix=array[1..max,1..max]of real; type matrix1=array[1..max]of real; procedure Insert(var mat:matrix; irow, icol:integer); var i,j:integer; begin for i:=1 to irow do for j:=1 to icol do begin writeln('Vuvedi chislo'); readln(mat[i,j]); end; end; procedure View(matr:matrix1; icol:integer); var i:integer; begin for i:=1 to icol do writeln(matr[i]:6:2); end; function rowsum (mat:matrix; irow, icol:integer):real; var i:integer; sum:real; begin sum:=0; for i:=1 to icol do sum:=sum+mat[irow,i]; rowsum:=sum; end; var A,B:matrix; C:matrix1; i,row,col1,col2:integer; BEGIN repeat writeln('Insert number of rows'); readln(row); until row<=50; repeat writeln('Insert number of columns for first matrix'); readln(col1); until col1<=50; repeat writeln('Insert number of columns for second matrix'); readln(col2); until col2<=50; writeln('Insert first matrix'); Insert(A,row,col1); writeln('Insert second matrix'); Insert(B,row,col2); for i:=1 to row do C[i]:=rowsum(A,i,col1)+rowsum(B,i,col2); View(C,row); END. Link to comment Share on other sites More sharing options...
sMARTBomber Posted May 19, 2004 Share Posted May 19, 2004 Само че добави и отстъпи, щото даскалите се заяждат по принцип и мен лично също ме дразни без. Link to comment Share on other sites More sharing options...
Jorkis Posted May 19, 2004 Share Posted May 19, 2004 Само че добави и отстъпи, щото даскалите се заяждат по принцип и мен лично също ме дразни без. Искаш да кажеш да се различават редовете, едно навътре, втори ред два интервала навътре и т.н. ли? Защото ако е така аз уж го копирах с интервали отпред, ама не зная защо не се получи тук. То наистина си е утрепия така да разбереш какво става Link to comment Share on other sites More sharing options...
sMARTBomber Posted May 19, 2004 Share Posted May 19, 2004 Procedure Vij_kak_se_pravi; Var Razbral : Boolean; Begin if Razbral then Halt(1) else Showmessage('То си има бутон ама кой да гледа...'); end; Link to comment Share on other sites More sharing options...
Jorkis Posted May 19, 2004 Share Posted May 19, 2004 С риск да flood-na, iskam da probwam program Matrici; const max=50; type matrix=array[1..max,1..max]of real; type matrix1=array[1..max]of real; procedure Insert(var mat:matrix; irow, icol:integer); var i,j:integer; begin for i:=1 to irow do for j:=1 to icol do begin writeln('Vuvedi chislo'); readln(mat[i,j]); end; end; ....... Можело значи , ама аз можех и без да го поствам това, да пробвам, ако се бях сетил за бутончето preview, sorry И благодаря sMARTBomber Link to comment Share on other sites More sharing options...
sMARTBomber Posted May 20, 2004 Share Posted May 20, 2004 нп Можеше направо да Edit-неш горепост-натата програма и още не е късно... Link to comment Share on other sites More sharing options...
sasho_1989 Posted December 6, 2005 Share Posted December 6, 2005 Не намерих друга тема.Та искам да помоля ако някой може да реши следната задача. Да се състави програма,която въвежда елементите на двумерен масив А(4,3),намира и извежда в едномерен масив В(4) сумите от елементи на масива А по редове.Да се определи и изведе номеpа на реда с най-голяма сума. Благодаря предварително! Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.