Авторизация |
Структурированные типы данных
Описанные выше типы данных называются скалярными, поскольку каждое из соответствующих им значений есть скалярная, неделимая величина. Однако в языке Паскаль возможно оперировать и более сложными, структурированными типами данных, у которых каждый элемент данного типа представляет собой некую организованную структуру из элементов более простого, основного или определенного ранее типа, являющегося по отношению к данному базовым. К таким типам относятся регулярные типы, объектами которых являются массивы, состоящие из ряда однотипных элементов. Массиву присваивается имя, с помощью которого можно вызвать весь массив; но можно обратиться и к любому элементу массива, для чего кроме имени массива необходимо задать индекс, указывающий относительную позицию элемента в…
Если для данного Массива базовым является тип char, то имеем массив символов: в случае одномерного массива— вектор символов, строку, в случае двумерного — массив, или вектор, строк. Возможность оперировать не только числами, но и символами, последовательностями символов, словами и текстами естественного языка значительно увеличивает мощность языка Паскаль, позволяет применять его для задач не только математических, но и из других областей знаний.
Поскольку один символ занимает один байт, а одна адресуемая позиция памяти ЭВМ (машинное слово) содержит несколько (2.8) байтов, в одном слове может размещаться более одного символа. Для более экономного использования памяти существует системный атрибут packed, упаковывающий заданный массив символов…
К структурированным относятся также комбинированные типы данных, объектами которых являются записи. Записи, как и массивы,— это совокупность данных; но в записях отражены разнотипные данные. Это удобно, когда нужно объединить разнообразную информацию, относящуюся к одному объекту, например, все сведения об ученике: фамилия, имя, дата рождения, класс. В записи информация каждого типа занимает некоторое поле, имеющее свое собственное имя. При объявлении записи перечисляются все поля, имя и тип каждого поля: type имя = record имя поля 1 : тип; . имя поля К . тип end;
Например, данные о книге можно оформить в такую запись:
type книга = record
автор: packed array…
В том случае, когда необходимо описать однотипные, но не полностью идентичные объекты, нет надобности объявлять для каждого из них самостоятельный комбинированный тип. Лучше воспользоваться формой записи с вариантами, где вначале в общей части указаны общие для всех объектов данного типа поля, а далее, в вариантной части — поля, специфичные для каждого объекта. При этом удобно вариантную часть построить аналогично условному оператору case селектор of метки случаев: операторы; но в данном случае в качестве селектора выступает не имя переменной, а некоторый тип, значения которого определяют
вариантные поля. На месте, же операторов после меток случаев*стоят описания этих полей. Внутри одной записи идентификаторы…
Помимо указанных параметров субэкваториальный и субтропический пояса характеризуются контрастностью распределения осадков по временам года, субэкваториальный, тропический и умеренный — активным перемещением воздушных масс, субтропический и умеренный — выделением особых областей, подверженных влиянию муссонов, а кроме того, умеренный климатический пояс включает в себя оценку по степени континентальное™ климата. PROGRAM GEO (INPUT, OUTPUT); CONST KOL1C M 10;
ТУРЕ TEMPER = RECORD SRGOD, AMPL i REAL END;
INDEKS = 1.KOL1C; GRAD = (МАЛ, CP, MH); OBLWL = (МУССОННЫЕ, ОБЫЧНЫЕ); ADW Ж (МУССОНЫ, ПАССАТЬГ, ВЕТРЫ); . REG = (ЭКВ, СУБЭКВ, ТРОП, СУБТР, УМЕР, АРКТ); KL1MAT = RECORD NAME:ARRAY [1.30] OF CHAR; TERM:TEMPER; .¦ DAWL,…
Базовыми типами для записи, как ив случае с массивами, могут быть любые типы данных, кроме файловых.
Задания. 1. Требуется описать имеющиеся в библиотеке книги,
журналы, газеты. Для книг указать такие данные: автор, название!
год издания, издательство, цена. Для журналов: название, год; номер, город издания. Для газет: название, год, месяц, число, город издания.
Каким средством удобно воспользоваться для решения этой задачи и как это сделать?
2. Как задается вариантная часть?
3. Описать классы спортсменов через необходимые каждому виду
спорта психофизиологические качества (баскетбол: рост, прыгучесть,
быстрота, реакция; гимнастика: гибкость, прыгучесть, рост; прыжки:
рост, прыгучесть, гибкость).
Объектами файловых типов данных являются файлы, представляющие собой последовательности однотипных компонент, которые хранятся на устройствах внешней памяти. Причины использования файлов сводятся к тому, что объем оперативной памяти ЭВМ, в которой находятся в данный момент текущая программа, относящиеся к ней данные и промежуточные результаты, ограничен, в нем нельзя сохранять большие массивы данных. Для этой цели гораздо более пригодны внешние носители памяти: накопители на магнитных дисках, накопители на магнитных лентах. К тому же данные, хранимые в файле, могут использоваться и в других программах, поскольку файл сохраняется в памяти независимо от работы в данный момент.
В Паскале используются последовательные файлы, которые можно сравнить…
Файловые типы объявляются таким образом: type имя = file of тип; например, type созвездие = file of звезда; При этом имена файлов, используемых в программе, должны указываться в заголовке после имени программы в скобках:
program имя (файл 1,.файл К); Это относится к входным файлам, которые были созданы до начала работы программы, и к выходным файлам, которые останутся после окончания программы. Если в программе используется файл, имя которого не указано в заголовке, то это временный файл, он создан в ходе работы программы для получения или хранения промежуточных результатов исбудет*потом устранен. Ранее уже говорилось о стандартных файлах ввода и вывода input и…
reset (имя файла) — подготавливает файл к чтению; маркер устанавливается в начало файла, и каждый компонент может быть последовательно считан; файл открыт для чтения, но не для записи;
rewrite (имя файла) — подготавливает файл к записи; все прежнее содержимое файла уничтожается, маркер устанавливается в начало, откуда и будет записано новое содержание; файл открыт для записи, чтение невозможно;
get (имя файла) — переход к очередной компоненте файла и считывание ее; предварительно файл должен быть открыт для чтения; по сути, аргументом этого оператора явдяется не сам файл, а его буфер;
put (имя файла) — запись в файл новой компоненты; для этого файл должен быть открыт для записи и маркер должен находиться после последней компоненты.файла; запись осуществляется только в конец файла; аргументом Также является буферная переменная, принимающая значение нового данного и записываемая в конец файла; длина файла увеличивается на одну компоненту;
eof (имя файла) — проверка наличия признака конца файла; булева функция, принимающая значение 1, когда маркер установлен на признаке конца файла, и 0 в противном случае; эта стандартная функция часто используется в Качестве условия в условном операторе или в операторах цикла, имеющих неопределенное число итераций.
Задания
1. Какие преимущества имеет…
|
|