Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Порядковые типы. Перечисляемый тип
Определить перечисляемый тип — это значит перечислить все значения, которые может принимать переменная, относящаяся к данному типу. В общем виде объявление перечисляемого типа выглядит так: Тип =(Значение1, Значение2,... Значение i) где: тип — имя перечисляемого типа данных; Значение i — символьная константа, определяющая одно из значений, которое может принимать переменная типа Тип. Примеры:
TDayOfWeek = (MON,TUE,WED,THU,FRI,SAT,SUN);
TColor = (Red,Yellow,Green);
Примечание Согласно принятому в Delphi соглашению, имена типов должны начинаться с буквы Т (от слова Туре — тип). После объявления типа можно объявить переменную, относящуюся к этому типу, например:
type TDayOfWeek = (MON,TUE,WED,THU, FRI,SAT,SUN); var ThisDay, LastDay: TDayOfWeek;
Помимо указания значений, которые может принимать переменная, описание типа задает, как значения соотносятся друг с другом. Считается, что самый левый элемент списка значений является минимальным, а самый правый — максимальным. Для элементов типа DayOfWeek справедливо:
MON < TUE < WED < THU < FRI < SAT < SUN Свойство упорядоченности элементов перечисляемого типа позволяет использовать переменные перечисляемого типа в управляющих инструкциях, например, так: if (Day = SAT) OR (Day = SUN) then begin { действия, если день — суббота или воскресенье } end;
Приведенную инструкцию можно записать и так:
if Day > FRI then begin { действия, если день — суббота или воскресенье } end; 15. Тип массив (статический): описание, ввод, вывод
Массивы содержат фиксированное число элементов одного типа, так называемого типа элемента. На приводимой ниже синтаксической диаграмме тип элемента следует за словом of. В индексных типах, по одному для каждой размерности массива, указывается число элементов. Допустимыми индексными типами являются все порядковые типы, за исключением длинного целого и поддиапазонов длинного целого. Массив может быть проиндексирован по каждой размерности всеми значениями соответствующего индексного типа; число элементов поэтому равно числу значений в каждом индексном типе. Число размерностей не ограничено. Приведем пример типа массив:
array[1..100] of Real
Если тип элемента в типе массив также является массивом, то результат можно рассматривать как массив массивов или как один многомерный массив. Например, array[boolean] of array[1..100] of array[Size] of Real
интерпретируется компилятором точно так же, как массив:
array[boolean,1..10,Size] of Real
Ввод: For i:=1 to 10 do readln(massiv[i]); Вывод: тоже, но witeln 16. Тип запись: описание, ввод, вывод. Оператор With Тип запись содержит установленное число элементов или полей, которые могут быть различных типов. Описание типа запись указыва- ет тип каждого поля и идентификатор, который именует поле. --------- ------ тип запись --->¦ record +--T---------------->¦ end +--> L--------- ¦ --------- ^ L------ L->¦ список +-- ¦ полей ¦ L--------- список ------------- полейT->¦ фиксирован-+-T----------------------------T----------> ¦ ¦ ная часть ¦ ¦ ---- ------------- ^ ¦ ---- ^ ¦ L------------- L->¦; +--->¦ вариантная +-- L->¦; +-- ¦ L---- ^ ¦ часть ¦ L---- L--------------------------- L------------- ------------------ ---- ------ фиксированная ---->¦ список +-->¦: +--->¦ тип +--T--> часть ^ ¦ идентификаторов ¦ L---- L------ ¦ ¦ L------------------ ¦ ¦ ¦ ¦ ---- ¦ L------------+; ¦<------------------------- L---- Фиксированная часть типа запись содержит список фиксирован- ных полей вместе с идентификатором и типом для каждого поля. Каж- дое поле содержит информацию, которая всегда отыскивается одним и тем же способом. Приведем пример типа запись: record year: integer; { год } month: 1..12; { месяц } day: 1..31; { число } end В вариантной части, изображенной на синтаксической диаграмме описания типа запись, память распределяется более чем для одного списка полей, поэтому доступ к информации может быть осуществлен более чем одним способом. Каждый список полей является вариантом. Варианты налагаются друг на друга в памяти, поэтому в любое время возможен доступ ко всем полям во всех вариантах. вариантная часть ¦ ----- --------- --- -------- L->¦case+-T------------------->¦тип поля+->¦of+---->¦вариант+-T> L----- ¦ ^ ¦признака¦ L--- ^ L-------- ¦ ¦ -------- ---- ¦ L--------- ¦ ---- ¦ L>¦иденти-+>¦: +-- L----+; ¦<---- ¦фикатор¦ L---- L---- L-------- ----------------- тип поля ---->¦ идентификатор +----> признака ¦порядкового типа¦ L----------------- ---------- ---- ---- ---- вариант ---->¦константа+-T->¦: +->¦ (+-T------------->¦) +--> ^ L---------- ¦ L---- L---- ¦ ^ L---- ¦ ---- ¦ ¦ ¦ L----+, ¦<----- ¦ ------- ¦ L---- L->¦список+-- ¦полей ¦ L------- Вы можете видеть на диаграмме, что каждый вариант идентифи- цирован по крайней мере одной константой. Все константы должны быть отличными друг от друга и иметь порядковый тип, совместимый с типом поля признака. Доступ к вариантным и фиксированным полям один и тот же. В вариантной части можно указать необязательный идентифика- тор - идентификатор признака поля. При наличии идентификатора признака поля он становится идентификатором дополнительного фик- сированного поля записи - поля признака. Программа может исполь- зовать значение поля признака для указания, какой вариант являет- ся активным в настоящий момент. Без указания поля признака программа выбирает вариант по другому критерию. Ниже приводятся несколько примеров типов запись: record firstName,lastName: string[40]; birthDate: Date; case citizen: boolean of True: (birthPlace: string[40]); False: (country: string[20]; entryPort: string[20]; entryDate: Date; exitDate: Date); end record x,y: real; case kind: Figure of rectangle: (height,wigth: real); { прямоугольник } triangle: (size1,side2,angle: real); { треугольник } circle: (radius: real); { круг } end17. Тип множество: описание, ввод, вывод, операции над множествами 18. Текстовый файл: описание, основные операции. Использование параметров программы для передачи программе имен файлов Текстовый файл – совокупность строк (последовательностей символов) переменной длины, заканчивающихся специальным символом eoln (конец строки; на клавиатуре набирается нажатием клавиши Enter):
Описание файловой переменной: var <ф.п.>: TextFile; или просто Text;
Первоначально любой файл данных создается как текстовый. Набранные на клавиатуре данные представляют собой стандартный входной файл. Содержимое дисплея при просмотре любого файла – стандартный выходной файл. Эти файлы используются при задании и просмотре данных. Для хранения данных последние записываются в файл на внешнем запоминающем устройстве (диске).
В консольном приложении можно использовать стандартные файловые переменные – input (по умолчанию связан со стандартным входным текстовым файлом – клавиатурой) и output (по умолчанию связан со стандартным выходным текстовым файлом – дисплеем). Ввод/вывод можно перенаправить в другие текстовые файлы. Например, переопределим выходной файл:
Когда файлов несколько, или вы создаете не консольное приложение, необходимо создавать собственную файловую переменную. Далее во всех задачах этого семестра будем использовать собственные файловые переменные и осуществлять ввод и вывод через нестандартные текстовые файлы. В них кириллица выводится корректно.
¨ Основные операторы для работы с текстовыми файлами: assignFile(<ф.п.>,’<имя файла>’) – связывает файловую переменную с файлом; rewrite(<ф.п.>) – создание и открытие нового файла для записи; reset (<ф.п.>) – открытие существующего текстового файла (файла, связанного с файловой переменной <ф.п.>) для чтения; append(<ф.п.>) – открытие существующего текстового файла (файла, связанного с файловой переменной <ф.п.>) для до записи в конец; closeFile(<ф.п.>) – закрытие открытого файла. Операторы ввода-вывода: read(<ф.п.>,<список ввода > ) – чтение данных; элемент списка ввода для текстового файла – число или символ или строка string; write(<ф.п.>,<список вывода >) - запись данных согласно списку вывода; элемент списка вывода для текстового файла – число или символ или строка string. readln(<ф.п.>,<список ввода >) - чтение данных согласно списку ввода и переход на следующую строку; если в строке данных остались данные, не вошедшие в список ввода, они игнорируются writeln(<ф.п.>,<список вывода >) - запись данных в файл согласно списку вывода с добавлением в конце выведенной строки маркера конца строки (переход на следующую строку).
Date: 2015-12-12; view: 537; Нарушение авторских прав |