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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2022, 07:08   #1
valentun11231
 
Регистрация: 17.11.2022
Сообщений: 4
По умолчанию PASCAL. Используя двумерные массивы, составить программу.

Имеется массив A измеримостью m на n. Найти строчку с наибольшей суммой элементов. Массив, номер строки и значение суммы выводятся на экран.

Только начал изучать паскаль,и что-то трудновато,не подскажите ?
valentun11231 вне форума Ответить с цитированием
Старый 08.12.2022, 07:45   #2
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Код:
program Abc;

uses SysUtils; // На всякий случай, но должно работать и без этого модуля.

VAR
  A: array of array of Integer;
  i, j, k, l, n, m, s: Integer;

BEGIN
  // Тут вводите значения n и m (попробуйте написать сами)

  // ------------------
  SetLength(A, n, m);
  // Тут вы сами пишите код для ввода данных в массив (попробуйте написать сами по аналогии с выводом массива)

  // ------------------
  // Дальше ищем строку
  k := 0; // Максимальное значение суммы (будет вычислено, а пока пусть будет 0)
  l := Low(A) - 1; // Индекс строки с максимальной суммой (будет вычислено, а пока признак отсутствия значения суммы: индекс вне диапазона массива)
  for i := Low(A) to High(A) do begin
    s := 0; // Текущая сумма (будет вычислено, а пока пусть будет 0)
    for j := Low(A[i]) to High(A[i]) do inc(s, A[i, j]); // Подсчет суммы элементов строки
    if (l < Low(A)) or (k < s) then begin // Проверка: еще не зафиксирована максимальная сумма или значение максимальной суммы меньше суммы в текущей строке
      k := s;
      l := i;
    end;
  end;
  // Выводим требуемые данные: массив
  for i := Low(A) to High(A) do begin
    for j := Low(A[i]) to High(A[i]) - 1 do Write(A[i, j], " ");
    WriteLn(A[i, High(A[i])]);
  end;
  // Сумма элементов строки и индекс (нумерация с 0 для динамического массива)
  WriteLn("Summa = ", k, " v stroke c indeksom ", l);
END.

Последний раз редактировалось macomics; 08.12.2022 в 07:54.
macomics вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PASCAL. Используя одномерные массивы, составить программу. valentun11231 Помощь студентам 6 20.11.2022 04:05
Составить программу на одномерные массивы и двумерные(матрицу) в Паскале. Элиза12345 Паскаль, Turbo Pascal, PascalABC.NET 0 10.12.2012 23:12
составить программу,используя оператор While / repeat и протабулировать функцию(Turbo Pascal) Dina 85 Помощь студентам 4 10.10.2012 17:18
составить программу использую циклы но не используя массивы Naruto_026 Помощь студентам 0 01.11.2011 19:18