Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2008, 19:57   #1
Mysia
 
Регистрация: 04.05.2008
Сообщений: 3
По умолчанию # Delphi - Задача по массивам.

Сгенерировать матрицу размерности n на m из случайных целых чисел лежащих в диапазоне от q до p. Найти столбец содержаший наибольший элемент, делящийся без остатка на число r. Поменять местами две строки, имеющие наибольшие числа, делящиеся без остатка на заданное число r.
Mysia вне форума Ответить с цитированием
Старый 04.05.2008, 22:40   #2
-=<[Evklidd]>=-
Форумчанин Подтвердите свой е-майл
 
Аватар для -=<[Evklidd]>=-
 
Регистрация: 22.01.2008
Сообщений: 161
По умолчанию

Что конкретно непонятно? Вы сами пытались что-то сделать?
-=<[Evklidd]>=- вне форума Ответить с цитированием
Старый 04.05.2008, 22:50   #3
Mysia
 
Регистрация: 04.05.2008
Сообщений: 3
По умолчанию

Ну я генерацию сделала...а вот дальше не знаю как делать...не получается...
Mysia вне форума Ответить с цитированием
Старый 04.05.2008, 23:56   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Mysia, ну, раз генерацию сделала, значит циклы по строчкам/столбцам уже делать умеешь. ;-)

первая часть задачи совсем простая:
Цитата:
Сообщение от Mysia
Найти столбец содержаший наибольший элемент, делящийся без остатка на число r.
Тогда кратенько описание алгоритма (ну, типа программа!):
Код:
{переменные, где будем сохранять 
  найденное максимальное число 
  и столбец, в котором нашлось это число 
  - вначале установим в "пустые" - начальные значения }
ColumnWithMax := -1; {такого столбца нет}
MaxValue := q - 1;   {это значение заведомо меньше, чем любое число в массиве}
for i:= 1 to M do {цикл по всем столбцам}
  for j:=1 to N do {в каждом столбце пройдёмся по всем строчкам}
    begin 
       {(Mas[j,i] mod r) = 0 - признак делимости без остатка на r}
       if (Mas[j,i]>MaxValue) and ((Mas[j,i] mod r) = 0) then
       begin
         {запомнили найденное число}
         MaxValue := Mas[j,i];
         {и столбец}
         ColumnWithMax := i;
       end;
    end;

if  ColumnWithMax = -1 Then
  WriteLn('Нет столбца с числом, делящимся нацело на r ')
else 
  begin
    WriteLn('Столбец с наибольшим числом, делящимся нацело на r = ',ColumnWithMax:1);
    WriteLn('Максимальное число, делящееся нацело на r = ',MaxValue:1)ж
  end;
а по поводу строк - не совсем понял... ;-(
Похоже нужно заводить две переменные (ну или массив) где фиксировать два максимальных числа и, соответственно два номера строк, в которых эти максимальные элементы найдены...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.05.2008, 17:39   #5
Mysia
 
Регистрация: 04.05.2008
Сообщений: 3
По умолчанию

Большое спасибо
Mysia вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
# Delphi - Задача по массивам. forumu Помощь студентам 5 02.04.2010 20:37
Задача по массивам grerg Помощь студентам 1 30.10.2007 08:25