Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на языке Pascal


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Pascal

Выпуск № 346
от 16.04.2007, 11:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 239, Экспертов: 74
В номере:Вопросов: 1, Ответов: 1


Вопрос № 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
Комментарий оценки:
спасибо большое. вы мне очень помогли!


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.50 (beta) от 15.04.2007
Яндекс Rambler's Top100

В избранное