Помощь - Поиск - Пользователи - Календарь
Полная версия: Обработка массивов
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Старающийся
Будьте любезны горит задание.Завтра сдавать,не могли бы посмотреть,я написал прогу но ничего в программировании не понимаю.Писал чисто по образцам.Не могли бы проверить.Вот само задание.
Ввести массив А[5].Сформировать массив В[5,5],где B[i,j]=i+j,если i<j;иначе B[i,j]=(i-j)/(i+1).Найти массив С=А*В.Упорядочить массив С в порядке возрастания абсолютных значений его элементов.
Программа:
Program lab3;
Uses CRT;
const n=5;m=5;
Var A[1..n],B[1..m,1..n],C[1..n]
of real;
i,j:integer;
r,S:real;
Begin
clrscr;
writeln('Vvedite massiv A [',n,']:');
for i:=1 to n do
read(A[i]);
for i:=1 to m do
begin
for j:=1 to n do
read (B[i,j];
if i<j then B[i,j]:=i+j else
B[i,j]:=(i-j)/i+1;
end;
for i:=1 to m do
begin
for j:=1 to n do
write(B[i,j],' ');
end;
for j:=1 to n do
begin
S:=0
for i:=1 to m do
S:S+A[i]*B[i,j];
end;
C[j]:=S;
for j:=1 to n do
write(C[j],' ');
for j:=1 to n-1 do
for i:=n down to j+1 do
begin
if abs(C[i-1])<abs(C[i]) then
r:=C[i];
C[i]:=C[i-1];
C[i-1]:=r;
end;
for i:=1 to n do
begin
write(C[i],' ');
end;
readkey
END.


М
с тегами красивее, правда?..
мисс_граффити

Старающийся
Да лучше.Но у меня к великому сожалению прога из за этого все равно не запустится.=(
Perfez
Цитата(Старающийся @ 9.04.2007 20:05) *

Найти массив С=А*В


Старающийся,ты хоть сообрази как это возможно.... norespect.gif если
Цитата
A[5]
и
Цитата
B[5,5]
...
volvo
Perfez, про перемножение сцепленных матриц слышал?

Массивы. Матрицы. Типичные задачи.

Вот так, примерно:


Program lab3;
Uses CRT;
const
n = 5;
m = 5;
Var
A: array[ 1 .. n] of real;
B: array[1 .. n, 1 .. m] of real;
C: array[ 1 .. m] of real;

i, j, k: integer;
T: real;


Begin
clrscr;
writeln('Vvedite massiv A [',n,']:');
for i := 1 to n do readln(A[i]);

for i:=1 to m do
for j := 1 to n do
if i < j then B[i, j] := i + j
else B[i, j] := (i - j) / (i + 1);

for i := 1 to m do begin
for j := 1 to n do
write(B[i,j]:5:2);
writeln;
end;

for j := 1 to m do begin
C[j] := 0;
for k := 1 to n do
C[j] := C[j] + A[k] * B[k, j];
end;

writeln('C before sort:');
for i := 1 to m do write(C[i]:7:2);
writeln;

for i := 1 to m do
for j := m downto i + 1 do
if Abs(C[j - 1]) > Abs(C[j]) then begin
T := C[j - 1]; C[j - 1] := C[j]; C[j] := T
end;

writeln('C after sort:');
for i := 1 to m do write(C[i]:7:2);
writeln;

end.

Старающийся
Спасибо большое за помощь.Я понял свои ошибки!=)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.