Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача на матрицу и одномерные массивы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Gera
Текст задачи: заданы матрица А, имеющая n строк и m столбцов, вектор X={X1, X2,…, Xn} и r векторов Y, каждый из которых имеет m элементов. Составить программу для вычисления вектора Z={Z1, Z2,..., Zr}, каждый элемент которого вычисляется по формуле: Zi=(A*Yi)*X. Расположить элементы вектора Z в порядке возрастания.
Исходные данные: n=3, m=4, r=3.
X={1;2;3} Y1={1;0;-1;3}
Y2={2;1;0;-1}
Y3={3;-2;1;0}
2 3 4 1
A=( -1 1 2 -4 )
4 -3 -2 0
Проблема даже не в том, чтобы написать всю программу целиком, я приблизительно представляю, как она выглядит. Проблема в другом: задачу надо оформлять в общем виде, а исходные данные для проверки. Я не могу понять, как в общем виде написать алгоритм заполнения векторов Y, ведь у них будет у каждого свое имя (Y1,Y2,...).


for k:=1 to r do
for i:=1 to m do
begin
writeln('Vvedite ',i,' element vektora Y');
readln(y[i])
end;


Так я могу занести элементы только одного вектора, а их r штук. Помогите, пожалуйста!
volvo
Во-первых, создаешь массив векторов Y, потому, как их у тебя несколько, и пользуешься процедурами:
Procedure FillVector(Var X: Vector);
var i: integer;
begin
for i:=1 to m do begin
writeln('Vvedite ',i,' element vektora: ');
readln(X[i]);
end;
end;

{ Основная программа: }
...
for k := 1 to r do begin
writeln('Ввод вектора Y', k);
FillVector(Y[k]);
end;
...
Gera
Спасибо, я поняла, просто, когда нужн о использовать процедуры, до меня всегда туго доходит. smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.