Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 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); { круг } end

17. Тип множество: описание, ввод, вывод, операции над множествами


Диапазон значений множественного типа представляет собой мощность множества для определенного порядкового типа (базового типа). Каждое возможное значение множественного типа является подмножеством возможных значений базового типа. Переменная множественного типа может принимать как все зна- чения множества, так и ни одного. ------ ----- ----------------- тип множество --->¦ set +--->¦ of +--->¦ порядковый тип +---> L------ L----- L----------------- Базовый тип не должен иметь более 256 возможных значений, и порядковые значения верхней и нижней границы базового типа должны не превышать диапазона от 0 до 255. В силу этого базовый тип мно- жества не может быть коротким целым (Shortint), целым (Integer), длинным целым (Longint) или словом (Word). Примечание: Операции над множественными типами описыва- ются в разделе "Операции над множествами" в Главе 6. В раз- деле "Описатели множеств" показано, как определять значения множества. Любой множественный тип может принимать значение [], которое называется пустым множеством.

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; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.01 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию