Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
202106_C4466_otvety_k_gosekzamenu_po_programmir....doc
Скачиваний:
2
Добавлен:
15.04.2019
Размер:
146.94 Кб
Скачать
  1. Множества, описание множества, конструктор множества, операции над множествами.

Множество - это совокупность однотипных элементов, рассматриваемых как единое целое. Количество элементов, входящих в множество, может меняться в пределах от 0 до 256 (множество, не содержащее элементов, называется пустым). Множества отличаются от массивов непостоянством количества своих элементов, а также элементы множества не пронумерованы и неупорядочены. Действия могут выполняться только над множеством в целом.

Тип элементов множества называется базовым типом. Базовый тип м.б. любым порядковым (целым, логическим, символьным, интервальным, перечисляемым). Элементы множества задаются в [] (например: [3,4,5], [1..10], [‘a’,’c’], [ ]-пустое множество). Порядок записи элементов множества не имеет значения: [1,2,3]=[3,1,2]

Описание множеств:

- в разделе переменных:

VAR <идентификатор>: set of <базовый тип>;

Н-р: VAR a: set of OF REAL;

VAR b: set of ‘a’..’z’;

- в разделе типов:

TYPE <имя типа> = set of <базовый тип>;

VAR <идентиф.множества> : <идентиф.типа>;

Н-р: TYPE vec = set of integer;

VAR a, b: vec;

Нельзя пользоваться операциями ввода/вывода для множественных переменных. Множественная переменная может получить конкретное значение в результате выполнения оператора присваивания (<множеств.переменная>:=<множеств.выражение>; например: a:=[1,2,3])

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

1.объединение множеств; результат содержит элементы первого множества, дополненные недостающими  элементами из второго множества ([1,2,5,4,6]+[2,4,7,8]=[1,2,4,5,6,7,8])

2.пересечение множеств; результат содержит элементы, общие для обоих множеств ([1,2,4,7]+[3,8,2,6]=[2])

3.разность множеств; результат содержит элементы из первого множества, которые не принадлежат второму ([1,2,5]+[2,5,6]=[1])

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

Множества можно сравнить между собой. Результат – истина или ложь. Можно применять все операции, кроме < и >.

A=B – множества совпадают.

A<>B – множества не совпадают.

A<=B –все элементы множества А принадлежат множеству В.

A>=B –все элементы множества B принадлежат множеству A.

5.операция вхождения устанавливает связь между множеством и скалярной величиной, тип которой совпадает с базовым типом множества (x IN M, где x-скалярная величина, M-множество), например: 4 IN M

Вывод множеств

1.можно из множества сформировать строку, а потом ее вывести

For c:=’a’ to ‘z’ do

If (c in M) then writeln(c);

2. вывод по символам

  1. Понятие файла и файловой переменной, внешние файлы в turbo- pascal 7.0 (определение, общие принципы работы: создание и обработки)

Введение файлового типа в язык Паскаль вызвано необходимостью обеспечить возможность работы с периферийными (внешними) устройствами ЭВМ, предназначенными для ввода, вывода и хранения данных.

Файл – совокупность данных, записанная во внешней памяти под определенным именем.

Файловый тип переменной – структурированный тип, представляет собой совокупность однотипных элементов, количество которых заранее не определено.

Турбо Паскаль поддерживает три файловых типа:

- типизированные файлы – файлы, состоящие из компонентов одного типа, число которых заранее не определено;

- безтиповые файлы – файлы, где информация записывается и считывается блоками определенного размера, в них могут храниться данные любого вида и структуры;

- текстовые файлы – файлы, состоящие из любых символов. Они организуются по строкам, каждая из которых заканчивается символом «конец строки». В конце файла ставиться символ «конец файла». Информацию текстового файла можно просмотреть с помощью любого текстового редактора.

Понятие файла в Паскале употребляют в двух смыслах:

1.как поименованная область данных на внешнем носители (внешний файл)

2.как переменная файлового типа (внутренний файл)

В программе между этими объектами устанавливают связь и все, что в процессе выполнения программы происходит с внутр. файлом, дублируется во внешний. Над элементами файла можно делать только 2 операции: читать с файла, записывать в файл.

Обработка типизированных файлов

1. Переменную файлового типа описывают одним из двух способов:

- Var <имя файл.переменной>:file of <тип элементов>;

Тип может быть любым, кроме файлового.

- type <имя типа>=file of <тип элементов>;

Var <имя файла>: <имя типа>; Стандартные процедуры и функции

Assign(f, x) - связывает файловую переменную f с физическим файлом, полное имя которого задано в строке x. Установленная связь будет действовать до конца работы программы, или до тех пор, пока не будет сделано переназначение.

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

Reset(f) открывает для чтения файл, с которым связана файловая переменная f. После успешного выполнения процедуры Reset файл готов к чтению из него первого элемента.

Если f - типизированный файл, то процедурой reset он открывается для чтения и записи одновременно.

Rewrite(f) открывает для записи файл и очищает его.

Close(f) закрывает открытый до этого файл с файловой переменной f. EOF(f) возвращает значение TRUE, когда при чтении достигнут конец файла.

Rename(f, NewName)позволяет переименовать физический файл на диске, связанный с файловой переменной f. Переименование возможно после закрытия файла.

Erase(f)уничтожает физический файл на диске, который был связан с файловой переменной f. Файл к моменту вызова процедуры Erase должен быть закрыт.

Чтение из текстового файла:

Read(f, список переменных); ReadLn(f, список переменных);

Процедуры читают информацию из файла f в переменные. Способ чтения зависит от типа переменных, стоящих в списке. Отличие ReadLn от Read в том, что в нем после прочтения данных пропускаются все оставшиеся символы в данной строке, включая метку конца строки. Если список переменных отсутствует, то процедура ReadLn(f) пропускает строку при чтении текстового файла.

Запись в текстовый файл:

Write(f, список переменных); WriteLn(f, список переменных);

Процедуры записывают информацию в текстовый файл. WriteLn от Write отличается тем, что после записи всех значений из переменных записывает еще и метку конца строки (формируется законченная строка файла).