IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Задача на матрицу и одномерные массивы, Проблема с количеством векторов
Gera
сообщение 18.02.2007 13:14
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Женский

Репутация: -  0  +


Текст задачи: заданы матрица А, имеющая 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 штук. Помогите, пожалуйста!


--------------------
Errare humanum est.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 2)
volvo
сообщение 18.02.2007 13:23
Сообщение #2


Гость






Во-первых, создаешь массив векторов 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
сообщение 18.02.2007 14:28
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Женский

Репутация: -  0  +


Спасибо, я поняла, просто, когда нужн о использовать процедуры, до меня всегда туго доходит. smile.gif


--------------------
Errare humanum est.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 18:12
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"