Табличные структуры
[Оглавление] [<< страница] [>>страница]


   4. Логически связанные таблицы
 

Информация об одних и тех же объектах задачи может храниться в нескольких логически связанных между собой таблицах. Например, в одной таблице хранятся данные об успеваемости студентов, в другой — анкетные данные, в третьей — данные о состоянии здоровья и т.д. При решении некоторых задач может потребоваться совместная обработка данных из нескольких таблиц. В таких случаях между записями одних и тех же объектов в отдельных таблицах должна существовать некая связь. Это не связь по указателям, как в списках. Она может осуществляться либо по одинаковым индексам, когда в таблицах записи об объектах следуют в одном и том же порядке, либо по некоторому общему полю, имеющемуся в связанных таблицах, например по фамилиям.

Рассмотрим пример работы с двумя связанными последовательными таблицами. Первая — таблица анкетных данных, содержит записи с полями: фамилия, учетный номер, семейное положение, рост, вес. Вторая таблица содержит записи об успеваемости студентов с полями: «Учетный номер», «Структуры и алгоритмы обработки данных в ЭВМ», «Операционные системы», «Теория вычислительных процессов и структур», «Метрология программного обеспечения», «Физическая подготовка». Для связи между записями используется поле учетного номера, состоящего из начальной буквы фамилии и порядкового номера по этой букве (А1, А2, Ж1, Ж2, ...). Таблицы создаются и хранятся в файлах подобно тому, как это было в предыдущем примере.

Необходимо выдать списки холостых студентов, имеющих средний балл по успеваемости не ниже 4,5.
Алгоритм решения задачи заключается в следующем. Считываем таблицы в оперативную память. Последовательно просматриваем записи с анкетными данными и выбираем очередного холостого студента. По его учетному номеру в таблице успеваемости находим соответствующую запись. Вычисляем средний балл по 5 дисциплинам. Если он удовлетворяет заданному условию (≥4.5), то из таблицы анкетных данных извлекаем фамилию, а из таблицы успеваемости - оценки по дисциплинам. Эти Данные плюс средний балл можно выдать на экран или поместить в другую таблицу.

[Оглавление] [<<страница] [>>страница] [В начало ]