>>> Перейти на полный размер сайта >>> Учебник для 10 класса ИНФОРМАТИКА§ 29. Комбинированный тип данныхВсе структурные типы данных, с которыми вы уже познакомились (массивы, строки), представляют собой совокупности однотипных величин. Комбинированный тип данных — это структурный тип, состоящий из фиксированного числа компонентов (полей) разных типов. Комбинированный тип объявляется в программе в разделе типов:
Поля могут иметь любые типы, в том числе и комбинированный тип. Например, данные о результатах экзаменов, полученных учеником по трем предметам, могут быть представлены одной величиной комбинированного типа:
После этого в разделе переменных следует описание:
Величина комбинированного типа называется записью. Элементы записи идентифицируются составными именами следующей структуры: <имя переменной>.<имя поля> Например: exam.family, exam.rus В программе может использоваться массив, элементами которого являются записи. Пример 1. На экзаменационном листе содержатся сведения о результатах экзаменов, сданных 30 учениками класса. Ввести эти данные в компьютер и получить список всех отличников. В программе используется описание комбинированного типа results, приведенное выше. Исходные данные организуются в массив следующей структуры.
После ввода в этот массив исходных данных следует фрагмент программы:
Программа отбирает записи, в которых все поля с оценками равны 5, и выводит соответствующие поля фамилий. А теперь обсудим проблему: как наиболее удобным способом организовать ввод данных в этой программе? Вводить с клавиатуры неудобно из-за большого объема данных. При каждом повторном запуске программы нужно начинать ввод сначала. А при отладке это наверняка придется делать многократно. Гораздо удобнее подготовить файл с исходными данными с помощью текстового редактора. После этого без проблем можно повторять ввод многократно. Так и поступим. Подготовим текстовый файл следующего вида:
Таблица содержит данные с фамилиями и оценками 30 учеников класса. Обратите внимание на то, что фамилии записываются в отдельных строках. Необходимость этого связана с реализацией алгоритма (см. далее): при вводе символьной строки прочитывается полностью очередная строка текстового файла до признака EOLN. При этом фамилии должны содержать не более 15 символов, а первые оценки (по русскому языку) — располагаться не раньше 16-й позиции в своей строке. Сохраним этот файл в корневом каталоге логического диска Е под именем 10_a.txt. Составим программу с вводом таблицы успеваемости и выводом списка отличников. Фамилии отличников выведем на экран и сохраним в файле с именем Best.txt .
Пример 2. Решая рассмотренную задачу с оценками, можно обойтись без массива записей. Кроме того, можно не ставить ограничения на число учеников в классе. Их число выяснится в процессе чтения файла с таблицей успеваемости. Составим программу, которая кроме вывода списка фамилий отличников подсчитает их количество и процент отличников по отношению к полному составу класса.
В этой программе переменная I используется как счетчик числа учеников, а переменная К — как счетчик числа отличников. Стандартная логическая функция EOF (end of file) примет значение True, когда процесс чтения из файла дойдет до его конца. В результате выполнения программы кроме списка отличников на экран выведется строка:
Система основных понятий
Вопросы и задания
|