Задание: Имеются данные о детях работников предприятия, представленные в виде двумерного массива A. Каждая строка массива содержит информацию о работнике предприятия и его детях: номер подразделения, табельный номер работника, год рождения ребенка, месяц рождения ребенка, дата рождения ребенка. Если у работника двое детей, то эти данные пишутся на следующей строке.
Необходимо разработать алгоритм и программу для расчета общего количества подарков к Новому году для детей по каждому подразделению и по предприятию в целом.
Пример массива А приведен в виде таблицы 1.
Таблица 1. Пример данных массива А.
Номер подразделения
Табельный номер
Год рождения ребенка
Месяц рождения ребенка
Дата рождения ребенка
20.03.2011
09.09.2009
23.01.2012
И т.д.
Решение.
1. Словесный алгоритм информационно-справочной системы
3) Если К=1, то вычислить общее количество подарков по предприятию (для всех работников предприятия i=1..N) путем сложения колонки 3 (j=3) по всему массиву (cумма Ai,3 для всех строк i).
4). Если K=2, то вычислить общее количество подарков по подразделению (S2), номер отдела вводится пользователем в переменную M2.
Для этого работников предприятия (при i=1..N), складываем значения столбца 3 (j=3), т.е. cумма Ai,3 для всех строк i, но только в том случае, если работник работает в указанном подразделении M2.
Алгоритм представлен в виде 4 последовательно выполняемых этапов. Блок 2 — ввод параметра, Блок 1 — подпрограмма ввода массива, Блоки 3,4 — реализуют запрос пользователя.
Перед написанием алгоритма и программы составим таблицу переменных.
Таблица 2. Список переменных алгоритма и программы
№
Обозначение переменной в алгоритмах и программе
Наименование переменной
Содержание
1.
A
Имя массива
Данные о детях работников предприятия. номер подразделения, табельный номер работника, год рождения ребенка, месяц рождения ребенка, дата рождения ребенка.
2.
N
Размер массива А по первому индексу
Количество работников предприятия.
3.
i
Текущий первый индекс массива А
Номер текущей строки массива A с данными об очередном работнике.
4.
j
Второй индекс массива A
Номер столбца массива А. Ai,1 — номер подразделения, где работает; Ai,2 – табельный номер работника (идентификатор работника); Ai,3 – год рождения ребенка работника из i-й строки; Ai,4 – месяц рождения ребенка работника из i-й строки. Ai,5 – дата рождения ребенка работника из i-й строки.
5.
S1
Количество детей по предприятию (подарков)
6.
S2
Количество детей по подразделению (подарков)
7.
M2
Номер подразделения
Переменная содержит номер рассматриваемого подразделения