
- •Билет 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. Деревья общего вида.
Билет 1 Языки программирования. Язык Pascal. Описание синтаксиса языка программирования.
Императивные языки программирования были разработаны после машины Фон-Неймана, чтобы абстрагироваться от компонентов и действий машины для облегчения вычислений.
В 1970 году Николасом Виртом был разработан язык Pascal, он оказался очень удобен для решения многих прикладных задач, он прекрасно обеспечивал применение методов структурного программирования, что стало необходимо при создании больших программных систем. Pascal является ЯВУ, средства которого допускают описание задачи в наглядном, легко воспринимаемом виде.
Для описания нотаций языка (внешней формы) она должна быть синтаксически определимой. Кроме того, смысловое содержание языка, семантика, которая при обучении языку первоначально воспринимается интуитивно, посредством ассоциаций с известным, всё же требует точного описания, чтобы:
- не возникало трудностей с пониманием и толкованием языка.
- было возможным писать трансляторы.
- можно было делать теоретические высказывания о программах.
Существует несколько способов формального описания синтаксиса языка:
Формула Бекуса-Наура (БНФ). В ней конструкции обозначаются словами, отражающими их природу и смысл и заключёнными в угловые скобки. Если конструкция в метаскобках, то будет повторяться 0 и более раз.
Например, <программа>::=<заголовок><блок>
Снтаксические диаграммы. Овалы, прямоугольники и стрелочки.
Билет 2 Лексическая структура языка Pascal.
Лексема - Минимальная единица языка, имеющая самостоятельный смысл. В Паскале существуют следующие подмножества ASCII символов:
Пары символов: <= >= := .. (* *) (. .)
Зарезервированные слова и стандартные директивы.
Служебное слово представляет собой не делимое образование смысл которого фиксирован в языке, причем данные служебные слова нельзя использовать для обозначения переменных, констант… функций в программе.
Директивы – команды (export, import, far)
Идентификаторы – любые слова любой длины, но значимыми являются только первые 63 символы. Они должны начинаться с буквы, или символа.
Числа: Используются 16-ричная и 10-ичная системы. Для записи 16-ричного числа используют символ $ (напр. $А3В112). Также используют инженерную нотацию (напр. 7Е-2, 2.24Е+6).
Диапазон: Напр. 32462156543459248544
Символы: Строка символов – последовательность из 0 и более символов, записанная в одну линию в программе и ограниченная апострофами. Если необходимо использовать символ не имеющий изображения, то используют # и код символа (например, #12).
Комментарии: Фрагмент пояснительного характера, не влияющий на смысл программы, и не изменяющий ее выполнения. Т.е., это любой текст, помещённый между символами { } или (* *). Компилятор не обращает внимание на эти фрагменты. Одна строка программы равна 126 символам.
Билет 3 Структура Pascal-программы. Составной оператор. Константы. Переменные.
Программа:
Program <имя>; <Блок>;
Блок:
<Раздел описаний> <Раздел операторов>
Раздел описаний:
<Метки> <Константы> <Типы переменных> <переменные> <процедуры и функции> < экспортируемые процедуры>
Составной оператор – последовательность произвольных операторов, заключённых в операторные скобки, которыми являются зарезервированные слова Begin … End. Составные операторы – важный инструмент Паскаля, дающий возможность писать программы по современной технологии структурного программирования.
Язык Pascal не накладывает никаких ограничений на состав операторов, входящих в состав составного. Среди них могут быть и другие вложенные.
Фактически, весь раздел операторов, обрамлённый словами begin…end представляет собой единый оператор.
Константа – это идентификатор, обозначающий величину. В Паскале в качестве констант могут использоваться целые, вещественные, шестнадцатеричные числа, логические константы, строки символов, символы, конструкторы множеств и признак неопределённого указателя NIL. Существуют также типизированные константы, например:
Digits: array [0..9] of char=’0123456789’
Переменная – центральное понятие императивных языков программирования. Она характеризуется своими атрибутами: имя, месторасположения, значение, тип (и, как следствие, множество операций, допустимых над переменной), время связывания, область связывания, время жизни.
Значение переменной определяется и может изменяться в процессе выполнения программы.
Адрес глобальной переменной определяется во время загрузки программы, а адрес локальных при входе в процедуру. Значение переменной может быть изменено в любой момент выполнения программы.
Время жизни переменной может быть локальным (все время работы программы), или локальным (время работы процедуры, или функции). Переменные ссылочного типа имеют время жизни с момента команды распределения памяти (new) до момента освобождения памяти (dispose).