Смекни!
smekni.com

результатов в файле: I= 36 J= 25

ST= PASCAL

Var CHF : Text;

I,J : integer;

ST : string;

...

I:=36; J:=25; ST:=’PASCAL’;

Assign(CHF,’A:\File2.Dat’);

Rewrite(CHF);

Writeln(CHF,’ Файлсрезультатами’);

Writeln(CHF,’ I=’, I:3, ‘ J=’, J:3);

Writeln(CHF,‘ ST= ’, ST);

Close(CHF);

С процедурами, обеспечивающими чтение и запись информации в файлы, тесно связаны две функции:

12 Множества. Описание множества

Множество - произвольный набор однотипных элементов, понимаемых как единое целое ([1, 3, 5, 7, 9] - множество нечетных цифр). В среде Turbo-Pascal 7.0 существует ряд ограничений на тип и количество элементов составляющих множество:

- тип элементов может быть любой ординальный, но целый задается диапазоном значений;

- количество элементов в множестве не более 256, а порядковые номера лежат в диапазоне 0..255.

Определение типа

TypeMN=setof<тип компонент>;

где Х – идентификатор множества;

VarX: MN; MN- новое имя типа;}

Пример:

VarLET1 : setofchar;{множество символов в диапазоне 0..255}

LET2: setofA’..’Z’;{множество заглавных латинских букв}DAY : setof 1..31;{множество целых чисел, заданных диапазоном}

MONTH: set of (FEB, MAR, APR, MAY);{множество, заданное

перечислением элементов}

...

LET1:=[‘0’, ‘2’, ‘A’, ‘C’];

LET2:=[‘A’, ‘B’, ‘C’, ‘D’];

MONTH:=[MAR,MAY];

DAY:=[ ]; {пустоемножество}

13 Операции над множествами

Рассмотрим допустимые в среде Turbo-Pascal 7.0 операции над множествами, воспользовавшись следующим описанием:

Type MN=set of (‘0’..’9’, ‘A’..’F’);

Var CHIS, CHIS16, LET, RMN : MN;

B: boolean;

X: ‘A’..’F’;

...

Объединение множеств
S1+S2 Результат объединения - множество, которое содержит элементы, либо принадлежащие множеству S1, либо S2 либо тому и другому.

CHIS:=[‘0’..’9’];

LET:=[‘A’..’F’];

RMN:=CHIS + LET; {[‘0’..’9’, ‘A’..’F’]}

Пересечение множеств

S1*S2 Результирующее множество содержит элементы, которые принадлежат как множеству S1,так и множеству S2.

CHIS:=[‘0’..’9’];

CHIS16:=[‘0’..’9’, ‘A’..’F’];

RMN:=CHIS * CHIS16; {[‘0’..’9’]}

LET:=[‘A’..’F’];

RMN:=CHIS * LET; {[ ] -пустоемножество}

Разность множеств

S1-S2 Результирующее множество содержит те элементы множества S1, которые не принадлежат S2.

CHIS:=[‘0’..’9’];

CHIS16:=[‘0’..’9’, ‘A’..’F’];

RMN:=CHIS16 - CHIS; {[‘A’..’F’]}

Равенство - неравенство множеств

S1=S2S1<>S2 Множества S1=S2 тогда и только тогда, когда все элементы множества S1 равны элементам множества S2,иначе S1<>S2. Результат операции Boolean.

CHIS:=[‘0’..’9’];

LET:=[‘A’..’F’];

B:=CHIS = LET; { False }

B:=CHIS<>LET; { True }

Включение множества

S1<=S2 Результат операции True, когда все элементы множества S1 входят в множество S2, в остальных случаях результат операции False.

CHIS:=[‘0’..’9’];

LET:=[‘A’..’F’];

CHIS16:=[‘0’..’9’, ‘A’..’B’];

B:=CHIS<=CHIS16; { True }

B:=LET<=CHIS; { False }

Проверка принадлежности

X in S1 Результат операции True, если Х принадлежит множеству S1 и Falseв противном случае. Тип Х должен совпадать с типом элементов множества S1.

X:=’C’;

CHIS:=[‘0’..’9’];

LET:=[‘A’..’F’];

B:= X in CHIS; { False }

B:= X in LET; { True }

Пример:

{Дан текст из заглавных латинских букв, за которым следует точка. Напечатать первые вхождения букв в текст, сохраняя порядок}

VarLET: setofA’..’Z’;

C : char;

Begin

LET:=[ ]; {множество букв, встречающихся в тексте}

Read(C);

WhileC <> ‘.’ do{ цикл до конца текста}

Begin

if not (C in LET) then { первоевхождение}

Begin

Write(C);

LET:=LET + [C]

end;

Read(C)

end;

Writeln;

end.

Заключение

В процессе выполнения работы мы ознакомились:

- с описанием типизированных файлов;

- с принципами работы с файлами;

- с созданием и открытием на запись нового файла;

- с чтением из файла;

- с открытием существующего файла на чтение;

- с распознаванием конца файла;

- с определением имени файла;

- с закрытием файла;

- с описанием текстовых файлов;

- с чтением из текстовых файлов;

- с записью в текстовый файл;

- с множествами и описанием множества;

- с операциями над множествами;

- приведено множество примеров.


Литература

1. Абрамов С.А., Зима Е.В. Начала программирования на языке Паскаль. - М.: Наука, 1987;

2. Абрамов С.А., Зима Е.В. Начала информатики. - М.: Наука, 1988;

3. Довгаль С.И., Литвинов Б.Ю., Сбитнев А.И. Персональные ЭВМ: Турбо-Паскаль V7.0, Объектное программирование, Локальные сети. (Учебное пособие).- Киев, «Информсистема сервис», 1993;

4. Епанешников А.М., Епанешников В.А. Программирование в среде Turbo-Pascal 7.0 .- М.:, Диалог МИФИ, 1993;

5. Йенсен К., Вирт Н. Паскаль: Руководство для пользователя. /Пер. с англ. М.Л.Сальникова, Ю.В.Сальниковой. - М.:, Компьютер, 1993;

6. Перминов О.Н. Программирование на языке Паскаль. - М.: Радио и связь, 1988;

7. Поляков Д.Б., Круглов Н.Ю. Программирование в среде Турбо-Паскаля. - изд.МАИ., М.:, 1992;

8. Прайс Д. Программирование на языке Паскаль. Практическое руководство. /Пер. с англ. - М.:, Мир, 1987;

9. Семашко Г.Л., Салтыков А.И. Программирование на языке Паскаль. - М.: Наука. Гл. ред. физ.-мат. лит.,1993;

10. Фаронов В.В. Турбо-Паскаль. Начальный курс – 1 кн. Практика программирования –2 кн. Учебное пособие. - М.: «Нолидж»,1997;

11. Эрбс Х.-Э., Штольц О. Введение в программирование на языке Паскаль./Пер. с нем. - М.:, Мир, 1989;