Задание. В двумерном массиве B, состоящем из N строк и M столбцов,
находятся размеры начисленной заработной платы N работников предприятия за
M месяцев, т. е. B[ I, K ] – это заработная плата работника предприятия с
номером I за месяц с номером K.
Составить программу, позволяющую выполнить:
ввести с клавиатуры количество работников и количество месяцев, а также
размеры заработной платы, для ввода исходных размеров заработной платы
использовать подпрограмму-процедуру;
определить наименьшую заработную плату за месяц с номером 1;
Исходные данные:
N – количество работников предприятия (целое число);
M – количество месяцев (целое число);
B[ I, K ] (I = 1, 2, 3,…, N; K = 1, 2, 3,…, M) – массив значений заработной
платы (значения вещественного типа);
Требуется определить:
MIN – наименьшую заработную плату за месяц с номером 1 (число с
дробной частью);
Формализация задачи
Значения заработной платы представляют собой конечный набор (N´M
значений) однотипных данных. Для их хранения можно использовать двумерный
массив В, состоящий из N строк и M столбцов ( B [ 1, 1 ] – заработная плата
работника номер 1 за первый месяц, B [ 1, 2 ] – заработная плата работника
номер 1 за второй месяц, B [ 2, 1 ] – заработная плата работника номер 2 за
первый месяц и т.д.
Абстрагируясь от физического смысла значений элементов массива,
сформулируем задачу обработки абстрактного двумерного массива B.
Для начала, предлагаю описать подпрограмму-процедуру для ввода исходных данных с клавиатуры:
```
Процедура ВводРазмеровЗарплаты(Var B: array of array of real; Var N, M: integer)
Начало
Вывести("Введите количество работников:")
Ввод(N)
Вывести("Введите количество месяцев:")
Ввод(M)
Вывести("Введите размеры заработной платы:")
Для i = 1 до N Шаг 1 Выполнить
Для j = 1 до M Шаг 1 Выполнить
Вывести("Введите заработную плату работника ", i, " за месяц ", j, ":")
Ввод(B[i, j])
Конец Для
Конец Для
Конец Процедуры
```
Теперь перейдем к основной части программы, где необходимо решить задачу определения наименьшей заработной платы за месяц с номером 1:
```
Алгоритм ОпределениеНаименьшейЗарплаты(Var B: array of array of real; N, M: integer; Var MIN: real)
Начало
MIN := B[1, 1] // Присваиваем начальное значение минимальной заработной платы
Для i = 1 до N Шаг 1 Выполнить
Если B[i, 1] < MIN Тогда
MIN := B[i, 1] // Обновляем значение минимальной заработной платы
Конец Если
Конец Для
Вывести("Наименьшая заработная плата за месяц 1: ", MIN)
Конец Алгоритма
```
Теперь можем объединить эти две подпрограммы в основной код:
```
ОсновнаяПрограмма()
Начало
Переменные
N, M: integer // Количество работников и месяцев
B: array of array of real // Двумерный массив с размерами зарплаты
MIN: real // Минимальная заработная плата за месяц 1
ВводРазмеровЗарплаты(B, N, M) // Ввод исходных размеров зарплаты
ОпределениеНаименьшейЗарплаты(B, N, M, MIN) // Определение минимальной заработной платы за месяц 1
Конец ОсновнойПрограммы
```
Таким образом, данная программа позволяет пользователю ввести количество работников и месяцев, а также размеры заработной платы для каждого работника за каждый месяц. Затем программа находит наименьшую заработную плату за месяц с номером 1 и выводит результат.