Strona 1 z 1

Mnożenie macierzy przez skalar - pascal

: 30 kwie 2010, o 20:26
autor: Natasha
Mam napisać program jak w temacie. Jak na razie mam tyle i nie mam pomysłu co tu jest źle.

Kod: Zaznacz cały

program mnozenie_przez_skalar;
var
a,w,k,i,j,m,n:integer;
x:array[1..10,1..10] of real;

begin
writeln('podaj ilosc wierszy macierzy A: ');
readln(w);
writeln('podaj ilosc kolumn macierzy A: ');
readln(k);

begin
for i:=1 to w do
begin
for j:=1 to k do begin
writeln('A[',i,',',j,']: ');
readln(A[i][j]);
end;
end;
end;

begin
writeln('podaj liczbe przez ktora pomnozyc macierz: ');
readln(a);
begin
writeln;
for i:=1 to w do begin
for j:=1 to k do begin
iloczyn;=0;
for i:=1 to w do
for j:=1 to k do
begin
iloczyn:=iloczyn+a*A[i][j];
x[m,n]:=iloczyn;
end;
end;
end;

begin
fori:=1 to w do
begin
for j:=1 to k do begin
writeln('macierz wynikowa:  ');
writeln(x[m,n]:0:0, '  ');
readln;
end;
end;
end;
end.
proszę o poprawienie.

Mnożenie macierzy przez skalar - pascal

: 30 kwie 2010, o 21:07
autor: kadiii
Ty to piszesz z palca, nie posiadasz kompilatora? Już na pierwszy rzut oka widac, że chociażby używasz zmiennych, których nie zadeklarowałaś. Poza tym mnożenie macierzy przez stałą to jedynie przemnożenie każdej komórki przez tą wartość - stała * A[i,j] dla każdej pary (i,j). Ale na poczatku to odpal kompilator bo inaczej to ani rusz.

Mnożenie macierzy przez skalar - pascal

: 2 maja 2010, o 14:37
autor: Natasha
Odpalałam kompilator już milion razy.
Poprawiłam trochę, ale nadal nie mnoży kazdego elementu, ale jakiś wynik się pojawia. Proszę o poprawienie, bo już naprawde nie mam pomyslu, jak zrobić, zeby mi się pojawila cala wynikowa macierz na ekranie.

Kod: Zaznacz cały

program mnozenie_przez_skalar;
var
a,w,k,i,j,m,n:integer;
x:array[1..10,1..10] of real;
B:array[1..10,1..10] of real;

begin
writeln('podaj ilosc wierszy macierzy B: ');
readln(w);
writeln('podaj ilosc kolumn macierzy B: ');
readln(k);

begin
for i:=1 to w do
for j:=1 to k do begin
writeln('B[',i,',',j,']: ');
readln(B[i,j]);
end;
end;

begin
writeln('podaj liczbe przez ktora pomnozyc macierz: ');
readln(a);
for i:=1 to w do
for j:=1 to k do
x[m,n]:=a*B[i,j];
writeln('macierz wynikowa:  ',x[m,n]:0:0);
readln;
end;
end.

Mnożenie macierzy przez skalar - pascal

: 2 maja 2010, o 17:41
autor: kadiii
Odpalałam kompilator już milion razy.
Warto też czasem poczytać co nam ten kompilator wypisuje, często stara się zwyczajnie podpowiedzieć aby "nasze życie było prostsze".
Pan kompilator pisze:Variable "m" does not seem to be initialized
Pan kompilator pisze:Variable "n" does not seem to be initialized
I wszystko staje sie jasne.

Kod: Zaznacz cały

x[m,n]:=a*B[i,j]; !!!

Proszę:

Kod: Zaznacz cały

program mnozenie_przez_skalar;
var
a,w,k,i,j:integer;
x:array[1..10,1..10] of real;
B:array[1..10,1..10] of real;

begin
writeln('podaj ilosc wierszy macierzy B: ');
readln(w);
writeln('podaj ilosc kolumn macierzy B: ');
readln(k);

begin
for i:=1 to w do
for j:=1 to k do begin
writeln('B[',i,',',j,']: ');
readln(B[i,j]);
end;
end;

begin
writeln('podaj liczbe przez ktora pomnozyc macierz: ');
readln(a);
writeln('nasza pierwotna macierz');
for i:=1 to w do 
begin
  for j:=1 to k do
   write(B[i,j]:0:0,' ');
 writeln;
end;
writeln;
for i:=1 to w do
  for j:=1 to k do
   x[i,j]:=a*B[i,j];
writeln('macierz wynikowa');
for i:=1 to w do 
begin
  for j:=1 to k do
   write(x[i,j]:0:0,' ');
 writeln;
end;
readln;
end;
end.