[Оглавление] | [<< страница] | [>>страница] |
4. Логически связанные таблицы
Информация об одних и тех же объектах задачи может храниться в нескольких логически связанных между собой таблицах. Например, в одной таблице хранятся данные об успеваемости студентов, в другой — анкетные данные, в третьей — данные о состоянии здоровья и т.д. При решении некоторых задач может потребоваться совместная обработка данных из нескольких таблиц. В таких случаях между записями одних и тех же объектов в отдельных таблицах должна существовать некая связь. Это не связь по указателям, как в списках. Она может осуществляться либо по одинаковым индексам, когда в таблицах записи об объектах следуют в одном и том же порядке, либо по некоторому общему полю, имеющемуся в связанных таблицах, например по фамилиям.
Рассмотрим пример работы с двумя связанными последовательными таблицами. Первая — таблица анкетных данных, содержит записи с полями: фамилия, учетный номер, семейное положение, рост, вес. Вторая таблица содержит записи об успеваемости студентов с полями: «Учетный номер», «Структуры и алгоритмы обработки данных в ЭВМ», «Операционные системы», «Теория вычислительных процессов и структур», «Метрология программного обеспечения», «Физическая подготовка». Для связи между записями используется поле учетного номера, состоящего из начальной буквы фамилии и порядкового номера по этой букве (А1, А2, Ж1, Ж2, ...). Таблицы создаются и хранятся в файлах подобно тому, как это было в предыдущем примере.
Необходимо выдать списки холостых студентов, имеющих средний балл по успеваемости не ниже 4,5.
Алгоритм решения задачи заключается в следующем. Считываем таблицы в оперативную память. Последовательно просматриваем записи с анкетными данными и выбираем очередного холостого студента. По его учетному номеру в таблице успеваемости находим соответствующую запись. Вычисляем средний балл по 5 дисциплинам. Если он удовлетворяет заданному условию (≥4.5), то из таблицы анкетных данных извлекаем фамилию, а из таблицы успеваемости - оценки по дисциплинам. Эти Данные плюс средний балл можно выдать на экран или поместить в другую таблицу.
[Оглавление] | [<<страница] | [>>страница] | [В начало ] |