Jump to content
BulForum.com

pascal


Amigo

Recommended Posts

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 :cry

 

 

 

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

А двете матрици еднакви ли са по размерност, май не са, защото се въвеждат по отделно и за А и за Б размерности, тогава какви сборове искаш на всяка матрица по отделно ли или ред на А с ред на Б, но ако е второто трябва да са с еднакъв брой редове

Дай разяснения и ако не бързаш много ще я имаш задачата B)

Link to comment
Share on other sites

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

Pregledai si koi sa ti globalnite i koi lokalnitepromenlivi.

type Mat2=array[integer,integer]of integer;

go napravi

const max:=500

type 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 <max
if n>max then begin

writeln:=('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 begin

writeln:=('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

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

Само че добави и отстъпи, щото даскалите се заяждат по принцип и мен лично също ме дразни без.

Искаш да кажеш да се различават редовете, едно навътре, втори ред два интервала навътре и т.н. ли? Защото ако е така аз уж го копирах с интервали отпред, ама не зная защо не се получи тук. То наистина си е утрепия така да разбереш какво става :)

Link to comment
Share on other sites

С риск да 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 B)

Link to comment
Share on other sites

  • 1 year later...

Не намерих друга тема.Та искам да помоля ако някой може да реши следната задача.

 

Да се състави програма,която въвежда елементите на двумерен масив А(4,3),намира и извежда в едномерен масив В(4) сумите от елементи на масива А по редове.Да се определи и изведе номеpа на реда с най-голяма сума.

 

Благодаря предварително! :punk

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...