Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Algoritmizatsia.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
131.43 Кб
Скачать

13. Строки. Операции над строковыми переменными.

Определяет последовательность символов произвольной длины, записанную в одной строке программы и заключенную в одиночные кавычки (апострофы). Строка символов, ничего не содержащая между апострофами, называется пустой строкой. Два последовательных апострофа в строке символов обозначают один символ-апостроф.

В стандарте языка строковый тип имеет фиксированный или динамический атрибут длины, но в любом случае длина строки не может превышать 255 символов.

Константы строкового типа

Объявления типизированной константы строкового типа сожержит максимальную длину строки и ее начальное значение/

Операции со строковыми типами

Язык паскаль позволяет использовать знак операции + для объединения 2х строковых операндов. Результатом операции S+T, где S и T имеют строковый тип, будет конкатенация S и T. Результат будет совместим с любым строковым типом (но не с символьным). Операции отношения =,<,>,<>,<= или >= применяются для сравнения строк в соответствии с порядком расширенного набора символов кода ASCII.

Пустые строки могут быть равны только другим пустым строкам, и они являются строками с наименьшим значением. Значения символьного типа совместимы со значениями строкового типа, и при их сравнении символьное значение обрабатывается как строковое значение длиной1.

14. Строковые процедуры и функции.

Строковые процедуры

val(s,n,i) — переводит строку s в число (вещественное или целое, согласно типу переменной n), если строка s не является изображением числа соответствующего типа по правилам Паскаля, то значение переменной i будет отлично от нуля, при удачной конвертации значение i равно нулю;

str(i,s) — переводит число в его строковое представление;

delete(s,i,n) — удаляет из строки s n символов, начиная с символа с номером i;

insert(s1,s,i) — вставляет в строку s подстроку s1, перед символом с номером i

Строковые функции

copy(s,i,n) — выделяет из строки s подстроку длиной n, начиная с символа i;

concat(s1,s2,…,sN) — выполняет сцепление (конкатенацию) строк s1,s2,…,sN в одну строку;

length(s) — определяет реальную длину строки; результат – значение целого типа;

pos(s1,s) — выдает целое число – номер позиции в строке s, с которой начинается подстрока s1; если подстрока не найдена, то выдает ноль

15. Понятие множества.

Диапазон значений типа Множество – множество всевозможных сочетаний объектов заданного порядкового типа.

В этом случае, заданный порядковый тип называется базовым типом. Каждое возможное значение типа Множество является подмножеством возможных значений базового типа. Переменная типа Множество может принимать как все значения множеств, так и ни одного. В Паскаде множества могут быть только конечными. В Турбопаскале множество может содержать от 0 до 255 элементов.

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

Конкретные значения множества задаются с помощью конструктора множеств, который представляет собой список. заключенный в квадратные скобки. Сами элементы могут быть либо константами, либо выражениями базового типа.

Например: [3,7,9,12,13] – множество состоит из 5 элементов; [1..100] – множество состоит из элементов от 1 до 100, элементы-целые числа; [‘a’,’b’,’c’] – множество содержит три литеры a, b, с; [‘a’..’z’,’?’,’!’] – множество содержит все строчные латинские буквы, а так же знаки ? и ! ; [] – пустое множество.

Не имеет значения порядок записи элементов множества внутри конструктора, т.е.[1,2,3] и [3,2,1] – эквивалентны.

Каждый элемент во множестве учитывается только 1 раз, поэтому [1,2,3,4,2,3,5,1] эквивалентно [1..5].

Нельзя присвоить значения во множественную переменную оператором ввода и выводить оператором вывода. Она может получить конкретное значение только операцией присваивания.

16) операции над множествами.

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

  1. Объединение

  2. Перечисление

  3. Разность множеств, причем

в этих операциях операнды и результаты являются множественными величинами одинакового базового типа

а) объединение множеств

Объединением 2 множеств a и b называется множество состоящее из элементов, входящих хотябы в одно из множеств a или b

Знак операции объединения «+»

A+B

Например:

{1,2,3,4}+{3,4,5,6}={1..6}

Б) перечисление множеств

Перечислением 2-ух множеств A и B называется множество, состоящее из элементов одновременно входящих во множество A и во множество B

Обозначение

*

A*B

{1,2,3,4}*{3,4,5,6}=[3,4}

В) Разность 2-ух множеств A и B называется множеством, состоящее из элементов множества A не входящих во множество B

{1,2,3,4}-{3,4,5,6}={1,2)

{3,4,5,6}-{1,2,3,4}={5,6}

Первые 2 операции – перестановочные

Последняя не перестановочная

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

Множество можно сравнивать между собой т.е. выполнять операции отношения

Результатом таких операций будет логическая величина True или False

Ко множествам применяемые во всех операций отношения, за исключением «<”;”>»

Операции отношения

Результат

True

False

A=B

Если множества A и B совпадают

В противном случае

A<>B

Множества A и B не совпадают

В противном случае

A<=B

Все элементы A принадлежат B

В противном случае

A>=B

Все элементы B принадлежат A

В противном случае

17) примеры использования множеств.

Например:

Var M:set of Byte;

M:={3,4,7,9};

Задание: определить истинность отношений

M={3,4,7,9} – true

M<>{7,9,3,4} – false

{3,4}<=M – true

M>={1..10} – false

M<={1..9) – true

Операции вхождения

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

Если X такая скалярная величина, а m множество, то операция вхождения записывается X IN M

Результатом является логическая величина true, если значения Х входит в M и false в противном случае

Например:

4 in M – true

5in M – false

18)файлы. Файловые переменные.

В паскале, понятие файла употребляется в 2-ух смыслах

  1. Как именованная информация на внешнем устройстве (внешний файл)

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

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

С элементами файла можно выполнить только 2 операции:

  1. Читать из файла

  2. Записывать в файл

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

Структура описания файловой переменной

Var<имя программы>:file of <тип элемента>;

Где тип элемента может быть любым, кроме файлового

Например:

Var

FiiFile of integer;

Fr:File of read;

Fc:File of Char;

Файл можно представить как последнюю цепочку элементов пронумерованных от нуля и заканчивающуюся специальным кодом маркером конца

Количество элементов хранящихся в данный момент в файле называется его ТЕКУЩЕЙ ДЛИНО

Существует специальная ячейка памяти, которая хранит адрес элемента файла, предназначенного для текущей обработки (запись, чтение)

Этот адрес называется указателем или окном файла

Для того, чтобы начать запись в файл его следует ОТКРЫТЬ ДЛЯ ЗАПИСИ

Rewrite, где FV это файловая переменная

При этом указатель файла устанавливающихся на начало фала, а если в нем была информация то она исчезает

Запись в файл осуществляется процедурой write (FV,V) где V переменная того же типа, что и файл FV

Запись происходит в то место, на которое установлен указатель

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

Если новый элемент записывает в конец файла, то сдвигается маркер конца

Для чтения элементов файла, с его начала следует открыть файл, для чтения. Это делается процедурой Reset (FV)

В результате указатель устанавливается на начало файла, при этом вся информация в файле сохраняется

Чтение из файла осуществляется процедурой Read( FV, V) где V переменная то го же типа, что и файл FV.

Значение текущего элемента в файл записывается в переменную V, указатель смещается к следующему элементу

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

Принцип последовательного доступа

Для того, чтобы прочитать N-ую запись файла, сначала нужно прочитать все предыдущие записи с первой по n-1

Функция Fof (FV) – проверяет маркер конца файла

Это логическая функция, которая получает значение true, указатель установлен на маркер конца, в противном случае False

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]