Студопедия

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

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






Над множествами Паскаля определены общепринятые в математике операции: пересечение (*), объединение (+) и вычитание (-). В скобках указан знак операции. Кроме этого, определены следующие операции отношения:

1) равенство множеств (=);

2) неравенство множеств (< >);

3) левый операнд - подмножество правого операнда (< =);

4) правый операнд - подмножество левого операнда (> =);

5) принадлежность элемента множеству (in).

Логическое выражение «Символ сh - латинская буква» может быть компактно записано с помощью операции проверки принадлежности элемента множеству: сh in [‘a’..‘z’, ‘A’..‘Z’].

Для совместимости типов множество в операциях достаточно совместимости базовых типов множеств. Это условие выполняется, если базовые типы одинаковы, или один из них - поддиапазон другого, или оба являются поддиапазонами одного и того же типа.

В операции проверки принадлежности элемента множеству левый операнд должен иметь тип, совместимый с базовым типом множества, которое является правым операндом.

Приоритеты операций в порядке убывания:

1) пересечение;

2) объединение и вычитание;

3) операции отношения.

Для совместимости множеств по присваиванию необходима совместимость типов и присваиваемое значение должно быть подмножеством базового типа переменной.

Пример. Программа для решения следующей задачи. С клавиатуры вводятся символы. Признак конца ввода - точка. Вывести те символы, которые встречались во входной последовательности по одному разу.

Program single_char;

var c: char;

s, sd: set of char;

begin

s: =[ ]; {Инициализация множества входных символов}

sd: =[ ]; {Инициализация множества повторяющихся символов}

repeat

read(c);

if c in s

then sd: =sd+[c] {Накопление множества повторяющихся символов}

else s: =s+[c]; {Накопление множества всех символов}

until c='.';

s: =s-sd-[‘.’]; {Получение множества неповторяющихся символов}

writeln(‘ Неповторяющиеся символы входной последовательности: ’)

for c: =#33 to #255 do

if (c in s) then write(c: 3)

end.

 

25. ФАЙЛЫ

До сих пор исходные данные при выполнении программы вводились с клавиатуры, а результаты выводились на дисплей, то есть использовался стандартный ввод-вывод. Язык Паскаль предоставляет возможность обмена информацией с файлами. На физическом уровне файлом является поименованная область памяти на внешнем носителе. С точки зрения программиста, файл - это информация, хранящаяся в этой области.

Ввод из файла удобен, если число исходных данных велико. Данные можно подготовить заранее, проверить. К данным, хранящимся в файле, могут обращаться разные программы. Данные, записанные в файл, сохраняются и после завершения работы программы. Файлы удобно использовать для временного хранения информации, если данных много и все они одновременно не могут быть размещены в оперативной памяти.

По способу хранения информации файлы подразделяются на два вида: текстовые и двоичные. Текстовые могут быть созданы с помощью текстового редактора, они представляют собой последовательность символов. Их можно выводить на дисплей и на принтер. Двоичные файлы предназначены для обработки компьютером. Устройства ввода и вывода рассматриваются как текстовые файлы, они, так же как и обычные файлы, имеют имена, например: con - консоль, prn - принтер.

Файл состоит из последовательности записей. Записью называется порция данных. Разбиение файла на записи определяется способом его обработки и может меняться в зависимости от целей обращения к файлу.

По способу доступа к записям выделяют последовательные файлы и файлы прямого доступа.

Последовательный файл обрабатывается сначала. Нельзя обработать n-ю запись, не обработав (n-1)-ю. Обработка представляет собой или только чтение или только запись.

Файл прямого доступа позволяет обращаться к записи по ее номеру.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.