
- •13. (Химанализ.)
- •Уш.З. Иерархия типов данных
- •15. (К годовому отчету.) в каждой компоненте файла ста-тистика-по-рапо содержатся следующие сведения:
- •16. (Обработка файла платежи,- Формирование новых файлов.) в каждой компоненте файла платежи содержатся следующие сведения:
- •17. (Итоги экзаменационной сессии.) Каждая компонента файла сессия содержит следующие данные из экзаменационной ведомости:
- •18. (Контроль ключевого поля.) в каждой компоненте файла кадры содержится:
- •19. (Обработка файла поставки. - Упорядоченные файлы.) Каждая компонента файла поставки содержит:
- •20. (Поквартальный план.) Каждая компонента исходного файла поквартальный-план, имеющего отношение к выпуску обуви некоторым предприятием, содержит:
- •21. (Подписная компания.) Каждая компонента файла подписные издания содержит:
- •1.2. При составлении одношаговых заданий рекомендуется рассмотреть следующие виды наборов данных:
Составители В.С.Кугураков, Р.К.Самитов
Настоящая работа предназначена для студентов, изучающих программирование на современных ЭВМ, а также для преподавателей, ведущих практические занятия по программированию. Учебный материал представлен задачами для программирования, которые рекомендуется использовать при изучении следующих тем: ЗАПИСИ, ФАЙЛЫ, ЯЗЫК управления ЗАДАНИЕМ.
Только философы имеют дело с реальным миром.
И.Флорес, Структуры и управление данными [7] . Проектировщик вычислительной системы пытается ь реальный мир путем структуризации данных. И.Флорес, там же.
УШ. ЗАПИСИ
ЗАПИСИ (record 'ы - в Паскале и Аде, struct ^ ы - в Алголе-68), как и МАССИВЫ, - это составные объекты, т.е. совокупности компонент. Принципиальное различие между массивами и записями обусловлено различиями в правилах построения этих объектов и способах идентификации компонент:
Массив - это регулярная (однородная) структура: все компоненты (элементы) массива должны быть одного типа. Доступ к тому или иному элементу массива осуществляется путем указания индекса (номера) соответствующего элемента (заметим, что в определении массива устанавливается некоторая нумерация его элементов) .
Запись - это комбинированная структура: компоненты (поля) записи могут быть неоднородными, т.е. различных типов. Доступ к тому или иному полю записи осуществляется путам указания имени соответствующего поля (в определении записи все ее поля должны быть снабжены явными именами).
Общее свойство массивов и записей заключается в том, что это - структуры с произвольным доступом: возможен непосредственный (прямой) доступ к любой компоненте. Запись - более универсальная структура по сравнению с массивом, поскольку ее компоненты могут иметь разные типы. С другой стороны, массив-более гибкая и динамичная структура: переход от одного элемента массива к другому (например, в цикле) может быть легко осуществлен путем изменения вычисляемого индекса, тогда как структура записи таких возможностей не предоставляет: имена полей - это фиксированные (постоянные) идентификаторы, а не вычисля-
- 3 -
емые значения.
Массивы и записи можно комбинировать, получая целую иерархию структур типа "массив записей", "запись с компонентами-массивами" и пр., а также использовать для моделирования таких динамических информационных структур, как стеки, очереди, линейные связанные списки, деревья и пр. Отметим также, что компонентами файлов обычно являются записи.
УШ.1. Использование ЗАПИСЕЙ для представления простейших математических объектов
1. (Возврат.) Вернуться к задачам 4-11 (о треугольнике на плоскости) и 57-60 (о комплексных числах) из [б ] .
Мотивация: использование записей для представления таких объектов, как точки на плоскости и комплексные числа.
2. (Алгебра квартенионов.) Кватернион q может быть
представлен в виде
(*
)
где
-
действительные (вещественные) числа,
I
- обычная
единица, а
-
специальные
кватернионы (т.н. ква-тернионные единицы),
подчиняющиеся следующим правилам
умножения:
Операции
над кватернионами выполняются естественным
образом (но, конечно, с учетом соотношений
для единиц
I,
i,j,k
).
Например,
если
и
,
тo
называется
сопряженным к кватерниону
.
Кватернион
.
Действительное число
называется
нормой кватерниона
. Отметим,что
.
Оформить в виде подпрограмм основные операции над кватернионами : вычисление
- 4 -
а)
-
сопряженного к
кватерниона;
б)
+
-
суммы кватернионов
и
;
в)
-
произведения кватернионов
и
(заметим, что произведение не коммутативно);
г)
-
нормы кватерниона
;
д)
-
обратного к кватерниону
.
Замечание. Кватернионы, введенные У.Гамильтоном в 1843 году, тесно связаны с векторным исчислением, и исторически последнее возникло из кватернионов. Интересно отметить (хотя это и не относится к существу нашей задачи), что множество H кватернионов является единственным расширением поля С комплексных чисел, которое образует некоммутативную алгебру с делением над полем R действительных чисел. Согласно теореме Фробениуса над полем R существуют лишь три конечномерные ассоциативные алгебры с делением: R, С и Н .
3.
(Аналитическая геометрия в пространстве.)
Точки трехмерного евклидова пространства
задаются радиус-векторами
,
которые
в декартовой системе координат
представлены тройками
вещественных
чисел.
а) Реализовать следующие операции над Векторами, оформляя их в виде подпрограмм:
1)
вычисление модуля
вектора
;
2)
умножение вектора
на скаляр
;
3)
сложение векторов
и
;
4)
вычисление скалярного произведения
(
)
векторов
и
;
5)
вычисление векторного произведения
векторов
и
.
Напомним необходимые формулы:
- 5 -
б) Вычислить:
1)
S
—
площаць параллелограмма, построенного
на векторах
и
2)
V
-
объем параллелепипеда, построенного
на векторах
,
и
3)
-
объем
тетраэдра, вершины которого заданы
векторами
в)
Установить, лежат ли три точки
, заданные
радиус-векторами
,
на одной прямой. (Ответ положителен
тогда и только тогда, когда
г)
Установить, лежат ли четыре, точки
,
заданные
радиус-векторами
,
в одной плоскости. (Ответ положителен
тогда и только тогда, когда
д)
Плоскость задана параметрическим
уравнением
(
-
радиус-вектор
произвольной точки плоскости;
для
задания плоскости достаточнадать
векторы
,
и
). Вычислить
расстояние
от точки
,
заданной радиус-вектором
,
до плоскости по формуле
е)
Положение точки
в трехмерном пространстве может быть
задано не только декартовыми координатами
(x,y,z),
но
и другими способами. На рис.1, наряду с
декартовыми координатами, показаны
также цилиндрические координаты
(,,z)
и сферические координаты
(r,,
)
=
(полярный радиус, широта, долгота).
1) Для точки , заданной декартовыми координатами, вычислить ее цилиндрические и сферические координаты.
2) Выполнить обратное преобразование: переход от цилиндрических и сферических координат к декартовым.
- 6 -
Рис. I. Системы координат: декартова (x,y,z), цилиндрическая (,,z) и сферическая (r,,).
ж) Для городов А и Б (на поверхности геоида, т.е. земного шара) известны их координаты - широта и долгота. Вычислить расстояние d между городами.
Указание.
Для векторов
и
,
задающих точки А и Б, перейти от сферических
координат к декартовым. После этого
можно вычислить (в радианах ) угол
между
векторами, учитывая, что
.
Но
тогда
где
R-
радиус
земного шара. Это
-
идея. Потребуется, однако,
заглянуть
в учебник географии, чтобы уточнить,
как задаются координаты точек на земной
поверхности. В рекомендуемом подходе
к решению задачи, конечно, присутствует
элемент абстрагирования от реальной
действительности: земной шар не является
ни правильным шаром, ни даже эллипсоидом.
4.
(Рациональные числа.) Всякое рациональное
число есть дробь
,
где p
,q
-
целые числа, q
>0
,
и может быть представлено парой
(p
,q
).
Оформить в виде подпрограмм основные операции над рациональными числами (арифметика, приведение к несократимым).
Мотивация: точные вычисления.
5. (Многочлены. - Возврат к задачам 62 и 65 из [б] .) 'Оформить в виде подпрограмм основные операции над многочлена-
- 7 -
ми с вещественными коэффициентами.
Указание. Всякий многочлен может быть представлен парой ( n,a ), где n - степень многочлена, а a - массив, используемый для размещения коэффициентов многочлена. Длина массива a выбирается с некоторым запасом, поскольку степень многочлена может увеличиваться. Так, при перемноженчи многочленов степеней k и L получается многочлен степени k+L .
УД.2. Обработка простых документов. Операции над таблицами
Рисунки, приводимые в данном и следующем подразделах, поясняют структуру документов - записей, которые необходимо
обработать.
6. (Описание структуры.) Описать переменную для данных
следующей структуры:
КУРС |
СПЕЦИАЛЬНОСТЬ
|
ЗАЧЕТЫ (не более семи названий предметов) |
ЭКЗАМЕНЫ (не более четырех названий предметов)
|
7. (Требование на книгу.) Бланк требования на книгу в библиотеке и карточка книжного каталога изображены на рис.2.
а) Используя карточку каталога, заполнить требование на книгу, указав конкретные сведения о читателе и дату
заказа.
б) Требование на книгу дополнить графой "куда", значением которой может быть "абонемент" или "чит.зал". Задание предыдущего пункта (заполнение требования) необходимо теперь выполнить лишь в том случае, если год издания книги >= 1886 или же книга запрашивается в читальный зал, (Чтобы сохранить уникальный книжный фонд, книги с годом издания < = 1885 на дом не выдают.) 6. (Телефонные разговоры.) Бланк извещения о телефонном разговоре изображен на рис.3. Используя заполненный бланк, вы-
- 8 -
СВЕДЕНИЯ О КНИГЕ СВЕДЕНИЯ О ЧИТАТЕЛЕ номер _____________ номер читательского автор_______________ билета____________________________ название___________ Фамилия__________________________
дата заказа_______________________
|
СВЕДЕНИЯ О КНИГЕ ВЫХОДНЫЕ ДАННЫЕ номер_________________ место издания________________ автор_________________ издательство__________________ название_____________ год издания____________________
|
Рис.2 ( к задаче 7). Бланк требования на книгу в библиотеке и карточка книжного каталога.
Номер телефона_____________ СВЕДЕНИЯ ОБ АБОНЕНТЕ СВЕДЕНИЯ О РАЗГОВОРЕ фамилия__________________ дата_______________________ адрес______________________ город______________________ номер счета_____________ время разговора_________ |
Рис.3 (к задаче 8). Бланк извещения о телефонном разговоре.
СВЕДЕНИЯ О ЖКО СВЕДЕНИЯ О ЖИЛЬЦЕ название организации_ адрес__________________ ___________________________ фамилия_______________ номер счета_____________ СВЕДЕНИЯ ОБ ОПЛАТЕ за какой месяц___________________________ год_______________ сумма___________________________________________________________ пени_____________________________________________________________ всего____________________________________________________________
|
Рис.4 (к задаче 9). Квитанция об оплате за коммунальные услуги.
- 9 -
заполнить следующее задание:
Если номер телефона равен 999999, то сформировать значение переменной квитанция, содержащее:
- сведения об абоненте;
- стоимость разговора ( по 15 коп. за I мин.).
9. (Коммунальные услуги.) Квитанция об оплате за коммунальные услуги изображена на рис.4.
а) Ввести (например, с перфокарт) значения полей, кроме "пени" и "всего".
б) Вычислить значения полей "пени" и "всего". Способ подсчета: пени начисляется в размере 2% от указанной суммы, за каждый просроченный месяц (считая от текущей даты) .
10. (Продажа тканей.) 10 магазинов представили сведения о продаже ткани в метрах по следующей форме:
-
МАГАЗИН
ШЕРСТЬ
Х/Б
ЛЕН
СИНТЕТИКА
а) Подсчитать, сколько ткани каждого вида продано всеми, магазинами.
б) Подсчитать, сколько ткани заданного вида продано магазином с заданным названием.
11. (Составление отчета.)
а) Описать таблицу из 50 строк следующей структуры:
-
НАИМЕНОВАНИЕ ПРОДУКТА
ПЛАН
Выполнено
ПРОЦЕНТ
ВЫПОЛНЕНИЯ
б) Заполнить первые три графы таблицы, вводя данные с перфокарт.
в) Заполнить графу ПРОЦЕНТ ВЫПОЛНЕНИЯ.
г) Сформировать таблицу такой же структуры, но содержащую данные только о тех продуктах, по которым имеется невыполнение плана.
д) Напечатать таблицу.
е) Напечатать только данные из граф НАИМЕНОВАНИЕ ПРОДУКТА и ПРОЦЕНТ ВЫПОЛНЕНИЯ.
- 10 -
12. (Платежи.)
а) Описать таблицу из 100 строк следующей структуры:
ФАМИЛИЯ
1 |
НАЧИСЛЕНО 2 |
УДЕРЖАНО 3 |
УПЛАЧЕНО 4 |
ДОЛГ
5 |
б) Заполнить первую, вторую и пятую графы таблицы, вводя данные с перфокарт.
в) Заполнить третью и четвертую графы, изменяя при необходимости пятую графу. Придерживаться следующих правил расчета. Пусть m2,m3, m4,m5-значения соответствующих граф таблицы. Тогда, если m2>=m5), то положить m3=m5, m4=m2-m5, m5=0; если m2 m<m5 ,то положить m3 = m5 , m4=0 , m5=m5-m2.
г) Напечатать таблицу.
д) Напечатать только данные из граф ФАМИЛИЯ, УДЕРЖАНО, УПЛАЧЕНО.
е) Напечатать только те строки, для которых графа ДОЛГ имеет ненулевое значение.
13. (Химанализ.)
а) Описать таблицу ХИМАНАЛИЗ, содержащую 20 строк следующей структуры:
НАИМЕНОВАНИЕ ПОКАЗАТЕЛЯ |
УСТАНОВЛЕННАЯ ВЕЛИЧИНА ПОКАЗАТЕЛЯ |
ОСОБЫЕ ОТМЕТКИ |
б) Описать таблицу НОРМАТИВ, содержащую 20 строк следующей структуры:
НАИМЕНОВАНИЕ ПОКАЗАТЕЛЯ |
ВЕРХНИЙ НОРМАТИВ ПОКАЗАТЕЛЯ |
НИЖНИЙ НОРМАТИВ ПОКАЗАТЕЛЯ |
в) Заполнить первые две графы таблицы ХИМАНАЛИЗ, вводя данные с перфокарт.
г) Проверить согласованность таблиц ХИМАНАЛИЗ и НОР-
- II -
МАТИВ - одинаковый порядок перечисления показателей.
д) Считая, что таблицы ХИМАНАЛИЗ и НОРМАТИВ согласованы, заполнить графу ОСОБЫЕ ОТМЕТКИ, устанавливая значения "норма/ниже нормы/выше нормы".
е) Сформировать таблицу, содержащую данные химического анализа только по тем показателям, которые оказались вне нормы.
Уш.З. Иерархия типов данных
14. (Зачетка.) Описать структуру зачетной книжки студента.
Указание: заглянуть в собственную зачетку.
15. (Расписание.) Описать структуру расписания занятий:
а) считая собственно данными только:
- аудитория;
- предмет:
- преподаватель,
а остальную информацию закодировать положением в структуре;
б) включая в собственно данные:
- аудитория;
- предмет;
- преподаватель;
- время занятия;
- номер группы.
16. (Месячный план.) План выпуска деталей может быть сведен в таблицу, изображенную на рис.5. Выполнить следующие операции над таблицей:
а) Ввести с перфокарт значения полей, кроме поля "всего штук" (для ТОО различных деталей).
б) Заполнить графу "всего штук".
в) Отдельно для каждого из дней (1,2,...,31) вычислить общий вес деталей, запланированных для изготовления.
17. (Затребовано и отпущено.) Требование на заготовки деталей изображено на. рис.6. Обработать полностью заполненное требование:
- 12 -
ШИФР ЦЕХА____________________ МЕСЯЦ_____________ГОД________ |
|||||||
ШИФР ДЕТАЛИ |
ВЕС ДЕТАЛИ |
ВСЕГО ШТУК |
КОЛИЧЕСТВО ПО ДНЯМ |
||||
1 |
2 |
. . . |
30 |
31 |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис.5 (к задаче 16). Таблица, отражающая месячный план выпуска деталей цехом.
УЧАСТОК_____________________ ДАТА_________________________ |
||||
ЗАГОТОВКИ |
СМЕНА |
КОЛИЧЕСТВО |
||
ШИФР |
ЕДИНИЦА ИЗМЕРЕНИЯ |
ЗАТРЕБОВАНО |
ОТПУЩЕНО |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис.6 (к задаче 17). Требование на заготовки деталей.
КОД ОСНОВНОГО СЧЕТА______________________ КОД СКЛАДА___________________________________ |
||||||||
КОД МАТЕРИАЛА |
ЕДИНИЦА ИЗМЕРЕНИЯ |
ЦЕНА В РУБ. ЗА ЕДЕНИЦУ ИЗМЕРЕ НИЯ |
ВХОДЯ ЩИЙ ОСТАТОК |
ПРИХОД |
РАСХОД |
|||
1 |
2 |
3 |
4 |
5 |
6 |
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис.7 (к задаче 18). Оборотная ведомость по учету материальных ценностей. В графах 1,3,5 записываются количества материала ( в единицах измерения), а в графах 2,4,6 - соответствующие суммы ( в рублях).
- 13 -
а) Сформировать сведения о заготовках, недополученных сменой №1,
включая данные:
-
заготовка (шифр, единица измерения)
недопущено (в единицах измерения)
. . .
-
заготовка (.............................................) недопущено (........................................)
и общие сведения:
-
участок
дата
смена
б) Сформировать сведения о недополученных заготовках с шифром ДII5МЗ, включая данные:
-
единица измерения
смена
недополучено
....
-
единица измерения
смена
недополучено
и общие сведения:
-
участок
дата
шифр заготовки
18. (Учет.) Оборотная ведомость по учету материальных ценностей изображена на рис.7. Выполнить следующие операции над ведомостью:
а) Ввести значения граф, кроме граф "сумма" (2,4,6).
б) Заполнить графы "сумма" (2,4,6).
в) Сформировать учетную ведомость, предусматривая в ней следующие графы:
- код материала;
- единица измерения;
- цена;
- исходящий остаток (с подграфами "количество" и "сумма").
Если в графе "исходящий остаток" получается отрицательное количество, то напечатать сообщение по форме:
-
код основного счета
код склада
код материала
19. (Экзаменационная ведомость.)
а) Описать структуру экзаменационной ведомости, со-
- 14 -
держащую следующие сведения:
- номер группы;
- наименование предмета;
- дата экзамена;
- фамилия экзаменатора;
- 25 строк с полями: фамилия студента, номер зачетной книжки, отметка о зачете (есть, нет или TRUE, FALSE ), оценка по экзамену (отлично, хорошо, удовлетворительно, неудовлетворительно, недопущен, неявка);
- итоговые данные по экзамену (сколько оценок "отлично", "хорошо", "удовлетворительно" и "неудовлетворительно", сколько недопущенных и неявившихся).
б) Заполнить ведомость частично: ввести с перфокарт фамилии студентов и оценки, полученные ими на экзамене.
в) Подвести итоги экзамена: подсчитать, сколько получено отличных оценок, ... , сколько неявок.
г) Напечатать таблицу, содержащую 25 строк (т.е. столько, сколько студентов в группе): в очередной строке печатать фамилию очередного студента и полученную им оценку на экзамене.
д) Полностью обработать экзаменационную ведомость: заполнить все графы ведомости и напечатать ее по надлежащей форме.
В отличие от внешних файлов для локальных файлов предполагается, что они существуют только во время выполнения программы. Другими словами, локальные файлы предназначены для хранения промежуточной информации предположительного большого объема, служащей целям вычислительного алгоритма. Внешние файлы предназначены для связи между программой и внешним миром и используются для организации длительного хранения информации. Внешние файлы как параметры передаются в программу через заголовок программы.
IX.I. Операции над файлами
1. (Длина файла.) Длиной файла называется число его компонент.
Вычислить длину заданного файла.
2. (Копия.) Создать копию файла.
3. (Расщепление.) Образовать из заданного файла F целых чисел два новых файла – P и N. В файл Р поместить все положительные числа из F ,а в N -остальные числа.
4. (Конкатенация.) Конкатенацией файлов
F=<
>
и
G=<
>
называется файл
<
,
>.
По
заданным файлам F
и
G
создать новый файл
-конкатенацию
файлов F
и
G
.
5.
(Генерирование.) Сгенерировать
(сформировать, создать) файл
целых
чисел.
Варианты задания (правила образования компонент файла):
1)
;
2)
;
,
,где
a,b,c,m–заданные
(натуральные) числа.
6. (Статистическая обработка.)
а) Для файла вещественных чисел вычислить:
1) значения минимальной и максимальной компонент;
2) сумму компонент;
- 18 -
3)
среднее значение m
и стандартное отклонение S
. (Пояснение:
если длина файла равна n
-
и его компоненты суть
,
то
,
.)
б) Предположим, что числа в файле сгруппированы в наборы. Признаком конца набора служит нуль - число 0.0, которое само к набору не относится. В конце последнего набора помещен дополнительный нуль - признак конца всех наборов. Требуется вычислить и напечатать среднее значение и стандартное отклонение для каждого из наборов.
7. (Копирование с предварительной обработкой.) Создать копию текстового файла (с компонентами типа CHAR ), заменяя при этом каждую последовательность подряд стоящих пробелов одним пробелом.
Р.
(Генерирование файла, образованного
словами Фибоначчи.) Генерировать
текстовый файл F
,
последовательность компонент которого
совпадает с последовательностью букв
слова
.
Здесь
-
слова Фибоначчи, образуемые по пра-вилу:
для
m
3
Указание:
при построении файла
можно использо-вать
вспомогательные файлы.
9.
(Печать текста книги.) В файле
записан
текст книги. Каждая компонента файла
-
это запись
(
),
состоя-щая
из двух полей: в поле СТРОКА записана
очередная строка книги, содержащая
ровно
60
символов; в поле УПРСИМВОЛ записан
управляющий символ.
Напечатать текст книги, придерживаясь правил:
1) Текст разбивается на страницы, каждая из которых содержит ровно 40 строк, при печати обрамляется рамкой и нумеруется.
2)
При печати очередной строки соответствующий
ей управляющий символ игнорируется,
исключая случай, когда это
-
символ "
".
Последний означает, что остаток текущей
страницы должен быть заполнен пустыми
строками (и, следовательно, очередная
строка книги будет напечатана уже с
новой страницы).
- 19 -
10.
(Моделирование последовательного файла
с помощью массива.) Файл
-
это потенциально бесконечная
последовательность однотипных компонент
(записей), размещенная во внешней памяти.
Введем ограничение, что длина файла
(т.е. число его компонент) не превос-ходит
заданного числа
.
Если
не слишком велико, то мы можем разместить
файл в оперативной памяти, пред-ставляя
его массивом.
Составить подпрограммы для выполнения основных опе-раций над файлом, представленным массивом. (Речь идет о моделировании операций над файлами, предусмотренных в Паскале.)
11.
(Упорядоченные файлы.) Файл
назы-вается упорядоченным, если
а)
Слить два упорядоченных файла в один
упорядоченный файл. (Поясняющий пример:
при слиянии файлов
и
будет получен файл
)
б) Пусть - массив упорядоченных файлов. Слить файлы из в один упорядоченный файл.
в)
Пусть
и
-
упорядоченные файлы. Слить
их
в один упорядоченный файл
так, чтобы он удовлетворял условию
. Варианты
условия
:
1) В не включаются компоненты, одновременно содержащиеся как в , так и в .
2) В включаются только различные компоненты, встречающиеся как в , так и в .
3) В включаются различные компоненты, встречающиеся в или в .
Поясняющий
пример к п. в): Пусть
и
.Тогда
1)
;
2)
;
3)
.
12.
(
-Цепочки: площадки, лестницы н пр.) Пусть
заданы:
-
файл целых чисел длины
;
-булевская
функция от целых аргументов
и
,
.
Подфайл (т.е. часть файла
)
длины
,
где
и
,
назовем
-цепочкой,
если выполнены
сле-дующие
условия:
-20 -
(1)
для-всех
;
(2)
;
(3)
,
причем
проверка условий
(2)
и
(3)
осуществляется соответственно при
и
.
Установить:
а) сколько - цепочек содержится в ;
б) сколько из них имеет длину 2 ;
в) какова длина самой длинной - цепочки. Поясняющий пример. Пусть задан файл,
;
Кроме
того, пусть
и
суть предикаты
и
(т.е.
тогда и только тогда, когда
,
и
тогда
и только тогда, когда
).
Тогда в
содержится всего
12
-
цепочек (они надчеркнуты),
причем
3
-цепочки
имеют длину
,
а наибольшая из них имеет длину
5.
В
содержится
также
12
-
цепочек (они подчеркнуты); среди них
3
цепочки имеют наибольшую длину, равную
3.
Замечание. Рассмотренные в примере и - цепочки было бы естественно назвать площадками и лестницами, (Почему?)
13. (Инвертирование.) Инвертировать (обратить) файл: последняя компонента файла становится первой, предпоследняя - второй и т.д.
IX.2. Обработка деловой информации
14. (Обработка файла АБИТУРИЕНТ.) В каждой компоненте файла АБИТУРИЕНТ содержится:
- фамилия абитуриента;
- номер экзаменационного листа;
- оценки ("З", "4" или "5") по каждому из предметов:
- - математика;
- - русский язык;
- - физика. Выполнить следующие операции над файлом:
- 21 -
а) (Значения и наименования полей.) Напечатать для каждого абитуриента фамилию, оценку по математике, а для двух оставшихся предметов - наименования только тех, по которым получена оценка "5".
б) (Среднее по горизонтали.) Напечатать для каждого абитуриента фамилию, номер экзаменационного листа и среднюю оценку (усреднение по всем предметам).
в) (Среднее по вертикали.) Напечатать для каждого предмета наименование и среднюю оценку (усреднение по всем абитуриентам) .
г) (Распределение значений.) Напечатать общее количество оценок "З", "4" и "5" (отдельно), полученных всеми абитуриентами по математике.
д) (Распределение полей.) Напечатать общее количество оценок "5", полученных абитуриентами по каждому предмету.
е) (Выборка компонент.) Сформировать файл, содержащий полные данные только о тех абитуриентах, которые набрали не менее 12 баллов. Обеспечить печать этих данных.
ж) (Выборка поля.) Ввести наименование предмета и напечатать для каждого абитуриента фамилию, номе; экзаменационного листа и оценку по этому предмету.
з) (Другая выборка поля.) Напечатать для каждого абитуриента, имеющего хотя бы одну оценку "5", фамилию, номер экзаменационного листа и наименование предмета, по которому получена оценка "5" (предпочтение отдается предмету, расположенному в списке раньше).