Практическая работа № 2
По теме «Алгоритмизация вычислительной задачи и программирование»
Цель работы:
1. Уметь формулировать словесный алгоритм вычислительной задачи.
2. Научиться представлять алгоритмы решений простейших задач в виде блок-схем и писать по ним программы.
Студент должен выполнить:
1. Выполнить словесный алгоритм и записать его результат.
2. Составить таблицу переменных
3. Представить алгоритм в виде блок-схемы.
4. Представить контрольный пример
5. Составить трассировочную таблицу для данного алгоритма и контрольного примера.
6. Написать программу.
7. Выполнить программу для заданных данных, привести результаты.
Задание: Имеются данные о детях работников предприятия, представленные в виде двумерного массива A. Каждая строка массива содержит информацию о работнике предприятия и его детях: "номер подразделения", "табельный номер работника", "год рождения ребенка", "месяц рождения ребенка", "дата рождения ребенка". Если у работника двое детей, то эти данные пишутся на следующей строке.
Необходимо разработать алгоритм и программу для расчета общего количества подарков к Новому году для детей по каждому подразделению и по предприятию в целом.
Пример массива А приведен в виде таблицы 1.
Таблица 1. Пример данных массива А.
Номер подразделения
| Табельный номер
| Год рождения ребенка
| Месяц рождения ребенка
| Дата рождения ребенка
|
|
|
|
| 20.03.2011
|
|
|
|
| 09.09.2009
|
|
|
|
| 23.01.2012
|
И т.д.
|
|
|
|
|
Решение.
1. Словесный алгоритм информационно-справочной системы
1) Ввести количество работников на предприятии N, массив А.
2) Ввести номер задачи K.
3) Если К =1, то вычислить общее количество подарков по предприятию (для всех работников предприятия i =1.. N) путем сложения колонки 3 (j =3) по всему массиву (cумма A i,3 для всех строк i).
4). Если K=2, то вычислить общее количество подарков по подразделению (S2), номер отдела вводится пользователем в переменную M2.
Для этого просматриваем всех работников предприятия (при i =1.. N), складываем значения столбца 3 (j =3), т.е. cумма A i,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
| Номер подразделения
| Переменная содержит номер рассматриваемого подразделения
|
8.
| Y
| Текущий год
|
|
Блок-схема алгоритма информационно-справочной системы
Представим блок-схему программы в укрупненном виде, состоящей из нескольких подпрограмм, как показано на рисунке 1.
Расчет кол-во подарков по предприятию
|
Расчет кол-во подарков по подразделению
|
Рисунок 1. Блок-схема алгоритма информационно-справочной системы
3.1. Блок-схема алгоритма подсистемы "Ввод массива A"
Приведена на рисунке 2.
Рисунок 2. Блок-схема алгоритма подпрограммы "Ввод массива А"
3.2. Блок-схема алгоритма подсистемы "Расчет общего количества подарков по предприятию"
Приведена на рисунке 3.
«Общее кол-во подарков по предпр.», S1
|
Рисунок 3. Блок-схема алгоритма подсистемы "Расчет общего количества подарков по предприятию "
3.3. Блок-схема алгоритма подсистемы "Расчет общего количества подарков по подразделению"
Приведена на рисунке 4.
Ввод номера подразделения M2
|
Рисунок 4. Блок-схема алгоритма подсистемы "Расчет общего количества подарков по подразделению"
Данных по указанному условию не найдено
|
«Общее кол-во подарков по подразделению», M2, «равно », S2
|
Продолжение рисунка 4