Вопрос № 81982: уважаемые эксперты. помогите пожалуйста с задачкой. заранее благодарна.
а) Сформировать из столбцов В матрицу С, в которой столбцы расположены в порядке возрастания сумм их элементов;
б) в матрице С вычислить суммы элементов строк, номера ко...
Вопрос № 81.982
уважаемые эксперты. помогите пожалуйста с задачкой. заранее благодарна.
а) Сформировать из столбцов В матрицу С, в которой столбцы расположены в порядке возрастания сумм их элементов;
б) в матрице С вычислить суммы элементов строк, номера которых задаются целочисленным вектором.
Отправлен: 10.04.2007, 21:28
Вопрос задал: Kathy (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 3)
Отвечает: Verena
Здравствуйте, Kathy!
Вот программа (не компилировала). Суммы по столбцам сохраняем в отдельном векторе, а потом оттуда выбираем минимальные значения и записываем соответствующий столбец в С. По второй задаче вектор номеров строк вводим (поскольку в задании никакого иного способа формирования не указано), потом считаем суммы и сразу выводим на экран.
var b, c: array [1..10, 1..10] of integer;
a, sum: array [1..10] of integer;
i, j, min, s, r: integer;
begin
readln (m,n); {получаем входные данные}
for i:=1 to m do
for j:=1 to n do
readln (b[i, j]);
{формируем массив сумм элементов столбцов}
for j:=1 to n do {цикл по столбцам}
begin
s:=0; {сумму обнуляем}
for i:=1 to m do {цикл по строкам, считаем сумму}
s:= s+b[i,j];
sum [j]:=s; {присваиваем подсчитанное значение соответствующему элементу}
end;
{формируем матрицу С}
for j := 1 to n do {цикл по столбцам}
begin
min := j;
for i:= 1 to n do
if (sum[min] > a[i]) and (sum[i]>0) then min := i; {находим индекс минимальной суммы среди неиспользованных}
for i:=1 to m do
c[i, j]:=b[i, min]; {переписываем в с элементы соответствующего столбца b}
sum [min]:=-1; {использованную сумму заменяем на -1}
end;
read (r); {считываем исходные данные для второй части}
for i:=1 to r do read (a[i]);
for i:=1 to r do
begin
s:=0;
for j:=1 to n do
s:= s+c[a[i], j]; {ищем сумму элементов необходимых строк и сразу выводим на экран}
writeln (a[i], ': ', s);
end;
end.
Удачи!
--------- Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: 9-ый класс)
Ответ отправлен: 10.04.2007, 23:19 Оценка за ответ: 5 Комментарий оценки: спасибо большое. вы мне очень помогли!