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

19 Двумерные массивы в Паскале

A(3,4) индекс

Двумерный массив – структура данных, хранящая прямоугольную матрицу. В матрице каждый элемент определяется номером строки и номером столбца, на пересечении которых он расположен. В Паскале двумерный массив представляется массивом, элементами которого являются одномерные массивы. Два следующих описания двумерных массивов тождественны:

Var a: array [1..10] of array [1.. 20] of real;

Var a: array [1..10, 1..20] of real;

20. Понятие строки и размещение ее в памяти. Описание строки. Посимвольная обработка строк.

Строковый тип данных

Строка представляет собой последовательность символов кодовой таблицы персонального компьютера. При использовании в выражениях строка заключается в апострофы. Количество символов в строке (длина строки) может динамически изменяться от 0 до 255. Идентификатор стро-кового типа данных – слово String. Примеры описания переменных типа String:

Var Str1: String [10];

Var Str2: String;

Var Str3: String [13];

21. Функции и процедуры на строковые переменные

Процедуры и функции для работы с данными строкового типа данных приведены в таблице.

Тип

Вызов

Параметры

Действие

Процедура

Delete(s, p, n)

Var s: String;

P, n: Integer;

Удаляются n символов из строки s, начиная с позиции p

Процедура

Insert (w, s, p)

W: String;

Var S: String;

P: Integer;

В строку S, начиная с позиции p, вставляется строка w

Процедура

Str (v, s)

V: Integer или

V: real;

Var s: string;

Число v преобразуется в строку s

Процедура

Val(s, v, w)

S: String;

Var v: Integer или

Var v: Real;

Var w: Integer;

Если строка s представляет собой правильную запись числа, то это число записывается в переменную v, при этом значение w = 0. В противном случае строка состоит не только из цифр – преобразование не выполняется, w<>0 – признак ошибки

Функция

Concat (s1, s2,…, sm), функция возвращает значение типа String

S1, s2, … sm: String;

Строки s1, s2, …, sm записываются одна за другой. Результат не превышает 255 символов. Можно просто складывать строки s1+s2+…+sm

Функция

Copy(s, p, n)

функция возвращает значение типа String

S: String;

P, n: Integer;

Из строки S, начиная с позиции P, выбираются n символов.

Функция

Length(s)

функция возвращает значение типа Integer

S: String;

Определяется длина s, т.е. число символов, из которых она состоит

Функция

Pos (w, s)

функция возвращает значение типа Integer

W, s: String;

В строке s отыскивается первое вхождение строки w (номер позиции). Если вхождения нет, то функция возвращает значение 0.

22. Понятие множества. Описание м. Базовый тип множества и его элементы. Операции над множествами.

Множества

Множества в Паскале - это наборы элементов перечислимого типа.

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

* Элементы массива могут иметь практически любой тип. Элементы множества обязаны относиться к перечислимому типу.

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

* В массиве может быть сколько угодно элементов с одинаковыми значениями. В множество каждый элемент входит строго один раз.

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

К данным множественного типа можно применять следующие операции

1. Объединение двух множеств А и В (запись А+В) есть новое множество С состоящее из элементов множества А или В или того и другого одновременно

С:=А+В.

[‘A’, ‘C’]+ [‘A’, ‘B’]= [‘A’, ‘B’, ‘C’].

2. Пересечение двух множеств А и В (запись А*В) есть новое множество С состоящее из элементов одновременно входящих и в А и в В

С:=А*В.

[‘A’, ‘C’]+ [‘A’, ‘B’]= [‘A’].

3. Разность двух множеств А и В (запись А-В) есть новое множество С состоящее из элементов множества А отсутствующих в В

С:=А-В.

[1, 2, 5, 8]-[1, 3, 5]=[2, 8].

4. Сравнение:

а) тождественно A=B истина, если A и B имеют одинаковые элементы

[1, 5]=[ 5, 1]=True.

[1, 2, 5]=[ 5, 1]=False.

б) не тождественно A<>B истина, если одно множество содержит хотя бы один элемент не входящий в другое

[‘A’, ‘C’] <> [‘A’, ‘B’]= > True.

5. Проверка на включение:

а) содержится в

Выражение A <=B истина, если все элементы A содержатся в B

[‘A’] <= [‘A’, ‘B’]= > True.

б) содержит (>=)

Выражение A => B истина, если все элементы B являются элементами A

[1, 2, 5, 8] >=-[1, 5, 8].

6. Проверка на принадлежность элемента множеству

E IN A.

‘C’ IN [‘A’, ‘C’, ‘B’, ‘F’]=> True.