
- •Билет 2 Лексическая структура языка Pascal.
- •Билет 3 Структура Pascal-программы. Составной оператор. Константы. Переменные.
- •Билет 4. Концепция переменной языка паскаль.
- •Билет 5 Концепция типа данных языка Pascal.
- •Билет 6 Простые типы.
- •Билет 7 Стандартные типы языка Pascal.
- •Билет 8 Тип Boolean
- •Билет 9 Перечисляемый тип.
- •Билет 10. Ограниченные типы (диапазоны).
- •Билет 11 Условный оператор
- •Билет 12 Оператор варианта
- •Билет 13 Оператор цикла с постусловием
- •Билет 14 Оператор цикла с предусловием
- •Билет 15 Оператор цикла с параметром
- •Билет 16 Составные типы
- •Билет 17 Массивы, примеры использования
- •Билет 18 Записи, примеры использования
- •Билет 19 Оператор сцепления
- •Билет 20 Записи с вариантами
- •Билет 21 Множества (определение, примеры, операции).
- •Билет 22 Представления множеств, примеры использования.
- •Билет 22. Представления множеств.
- •Билет 23 Файловые типы
- •Билет 24 Операции с файлами
- •Билет 25 Текстовые файлы
- •Билет 26 Типизированные файла
- •Билет 27 Нетипизированные файлы
- •Билет 28 Процедуры и функции
- •Билет 29 Описание процедур и функций
- •Билет 30 Локальные и глобальные переменные
- •Билет 31 Параметры процедур и функций
- •Билет 32 открытые параметры.
- •Билет 33. Нетипизированные параметры.
- •Билет 34. Необходимость и преимущества модульного программирования. Структура модуля в языке Pascal.
- •Билет 35. Процедурный тип. Передача процедур и функций в качестве параметра.
- •Билет 36. Рекурсия.
- •Билет 37. Рекурсия и итерация.
- •Билет 38. Линейный поиск.
- •Билет 39. Поиск делением пополам.
- •Билет 40. Сортировка.
- •Билет 41. Сортировка простыми включениями.
- •Билет 42. Сортировка бинарными включениями
- •Билет 43. Сортировка простым выбором.
- •Билет 44. Сортировка простым обменом(пузырек).
- •Билет 45. Шейкер-сортировка.
- •Билет 46. Сортировка шелла.
- •Билет 47. Сортировка с разделением(быстрая сортировка).
- •Билет 48. Ссылочные типы.
- •Билет 49. Динамические структуры данных.
- •Билет 50. Создание и уничтожение динамических переменных.
- •Билет 51. Связные списки.
- •Билет 52. Связные списки. Создание очередного элемента. Просмотр списка.
- •Билет 53. Добавление компонента в середину списка.
- •Билет 54. Исключение компонент из середины списка.
- •Билет 55. Рекурсивная обработка списка.
- •Билет 56. Двусвязные кольца.
- •Билет 57. Деревья. Двоичные деревья. Двоичные деревья поиска.
- •Билет 58. Добавление узла к двоичному дереву поиска.
- •Билет 59. Поиск в двоичном дереве.
- •Билет 60. Просмотр двоичного дерева.
- •Билет 61. Удаление из дерева.
- •Билет 62. Деревья общего вида.
Билет 19 Оператор сцепления
Операция сцепления применяется для сцепления нескольких строк в одну результирующую строку. Например:
Выражение |
Результат |
‘А’+‘Т’+‘ ’+‘386’ |
‘АТ 386’ |
‘Турбо ’+‘Паскаль ’+‘7.0’ |
‘Турбо Паскаль 7.0’ |
Следует учитывать, что в операциях сцепления длина результирующей строки должна не превышать 255 символов. Для обработки строковых данных можно использовать специальные процедуры и функции.
Concat(Str1, Str2,…,StrN) – выполняет сцепление строк Str1, Str2,…, StrN в том порядке, в каком они указаны в списке параметров. Сумма символов всех специальных строк не должна превышать 255, например:
Выражение |
Результат |
Concat(‘AA’,’XX’,’Y’) |
‘AAXXY’ |
Concat(‘Индекс ’,’394063’) |
‘Индекс 394063’ |
Билет 20 Записи с вариантами
Записи в Паскале имеют строго определенную структуру. В некоторых случаях это резко ограничивает возможности их применения. Поэтому в языке Паскаль имеется возможность задать тип записи, содержащий произвольное число вариантов структуры. Такие записи называются записями с вариантами. Записи с вариантами обеспечивают средства объединения записей, которые похожи, но не идентичны по форме. Они состоят из фиксированной и вариантной частей.
Использование фиксированной части не отличается от описанного ранее. Вариантная часть формируется с помощью оператора case. Он задает особое поле записи — поле признака, которое определяет, какой из вариантов в данный момент будет активизирован. Значением признака в каждый текущий момент выполнения программы должна быть одна из расположенных далее констант. Константа, служащая признаком, задает вариант записи и называется константой выбора. Формат:
type
Rec = record
case <поле признака> : <имя типа> of <константа выбора1> : (поле,...:тип);
<константа выбора n> : (поле, …: тип)
end;
Компоненты каждого варианта (идентификаторы полей и их типы) заключаются в круглые скобки. У части case нет отдельного end, как этого следовало бы ожидать по аналогии с оператором case. Одно слово end заканчивает всю конструкцию записи с вариантами. Необходимо отметить, что количество полей каждого из вариантов не ограничено.
Объем памяти, необходимый для записи с вариантами, складывается из объемов полей фиксированной части и максимального по объему поля переменной части.
Пример: type
Rec = record Number : byte; Code : integer; case Flag : boolean of
True : (Pricel : integer); False : (Price2 : real) end;
var
PRec : Rec;
Поля Number и Code расположены в фиксированной части записи, они доступны в программе в любой текущий момент независимо от значения поля признака. Поле Pricel может использоваться только в том случае, если значение поля признака Flag равно True. Поле Price2 доступно в противоположном случае, т. е. если значение Flag равно False.
При использовании записей с вариантами необходимо придерживаться следующих правил: все имена полей должны отличаться друг от друга по крайней мере одним символом, даже если они встречаются в разных вариантах; запись может иметь только одну вариантную часть, причем вариантная часть должна размещаться в конце записи; если поле, соответствующее какой-либо метке, является пустым, то оно записывается следующим образом: <метка>: () ;
Обобщая, можно записать синтаксическую диаграмму определения типа записи следующим образом: