- •1. Понятие и состав языка программирования. Машинные и символьные языки.
- •2. Особенности процедурных языков программирования. Примеры языков.
- •3. Общая характеристика непроцедурных языков программирования.
- •4. Понятие и состав системы программирования.
- •5. Компилятор. Назначение и состав.
- •7. Описание алгоритмических языков. Формулы бнф.
- •8. Описание алгоритмических языков. Синтаксические диаграммы.
- •9. Типы ошибок в программах. Понятие отладки и отладчиков.
- •10. Операторы ввода из стандартного файла.
- •11. Операторы вывода в стандартный файл.
- •12. Целый тип данных.
- •13. Вещественный тип данных.
- •14. Булевский тип.
- •15. Символьный тип.
- •16. Структура программы на Паскаль. Комментарии.
- •17. Понятие метки. Раздел описания меток.
- •18. Раздел описания констант.
- •19. Раздел описания типов.
- •20. Раздел описания переменных.
- •21. Правила записи выражений. Порядок старшинства операций.
- •22. Понятие оператора. Раздел оператор. Простые и сложные операторы.
- •23. Оператор присваивания. Пустой оператор. Составной оператор.
- •24. Условный оператор if.
- •25. Оператор вариантов.
- •26. Операторы цикла while и repeat.
- •Оператор цикла с предусловием
- •Оператор цикла с постусловием.
- •Оператор цикла с параметром.
- •27. Скалярный тип.
- •28. Ограниченный тип.
- •29. Регулярный тип. Массивы.
- •30. Понятие комбинированного типа.
- •31. Множественный тип.
- •32. Файловый тип. Понятие последовательного файла и файла с прямым доступом.
- •33. Текстовые файлы. Внешние и внутренние файлы.
- •34. Понятие подпрограммы. Процедуры. И 35. Функции. Раздел описания процедур и функций.
- •36. Рекурсия. Основные понятия. Прямая и косвенная рекурсия.
- •37. Динамические переменные. Ссылочный тип.
- •38. Понятие списка. Типы списков: однонаправленные и двунаправленные.
- •39. Иерархические и ассоциативные списки.
- •40. Стеки.
- •41. Очереди.
- •42. Деревья - как структуры данных. Двоичные деревья. Методы их просмотра.
- •43. Упорядоченные двоичные деревья. Операции поиска.
- •44. Включения и удаления элементов из двоичного упорядоченного дерева.
27. Скалярный тип.
Скалярный тип является основным типом данных в Паскале.
Стандартные скалярные типы так же относятся к скалярному типу.
type <имя типа>:=(<имя>,{<имя>});
В качестве таких имен можно использовать любые допустимые идентификаторы.
type <имя типа>:=(white, red, blue, yellow, purple, green, orange, black);
Константы входящие в определение таких типов нумеруются с 0.
Поэтому:
ord (white)=0;
ord (black)=7;
К значениям перечислимого типа применимы: pred, succ.
pred (black)=orange;
succ (white)=red;
Значения перечислимого типа можно сравнивать: C>C1, если ord (C) > ord (C1);
blue>red;
В программе можно определять переменные таких типов, и между переменными одного и того же типа допустима операция присваивания.
Переменные перечислимых типов нельзя вводить или выводить с помощью стандартных операторов ввода/вывода.
В конкретных реализациях переменные перечислимых типов используются для задания значений различных стандартных констант.
Считается, что использование таких типов делает программу более наглядной.
28. Ограниченный тип.
Образуется наложением ограничений на уже определенный тип или стандартный скалярный тип.
Тип, на основе которого строится ограниченный, называется базовым.
В качестве базового может использоваться любой скалярный типа за исключением базового.
Описание:
type <имя типа>=(<константа1> … <константа2>);
Ограничение задает диапазон возможных значений нового типа, который определен отрезком или интервалом, задаваемый константой определяющей min и max значения.
В указанный интервал должно входить хотя бы одно значение.
Во множество возможных значений входят все значения с <константа1> до <константа2> включительно. Две указанных константы должны принадлежать одному и тому же типу.
После определения типов можно использовать переменные этих типов.
Эти переменные можно использовать как соответствующие переменные базового типа.
Переменные этого типа могут сравниваться с помощью операции отношения.
При выполнении операций над некоторыми операндами типов может оказаться, что результат их будет принадлежать соответствующему интервальному типу.
//Структурный тип.
//Характеризуется тем, что они строятся на основе других типов и состоят из компонентов.
//В паскале имеется 4 способа реализации этих типов:
//1. массивы,
//2. записи,
//3. множества,
//4. файлы.
//Массивы и записи могут быть представлены как упакованные структуры, это означает то что компилятор должен экономить память при размещении значений указанной
//При использовании упакованных структурных типов экономится место в оперативной памяти, но увеличивается время доступа к их компонентам.
//Структурный тип может быть упакованным или не упакованным.
29. Регулярный тип. Массивы.
Массив – это набор некоторого числа элементов (однотипные компоненты массива).
Индексы массива могут задаваться выражением, значение которого принадлежит типу индекса.
Синтаксис:
type <имя типа> = array [<тип индекса> {<тип индекса>}] of <тип элемента>;
здесь тип индекса это скалярный или ограниченный тип, который определяет множество допустимых значений соответствующего индекса.
Тип элемента может быть любым скалярным или структурированным типом за исключением файлового.
Количество используемых типов индексов определяет размерность соответствующих массивов. Если тип индекса один, то переменные этого типа будут называться одномерным массивом. Если 2 типа индексов, то – двумерные….
После определения регулярных типов в программе можно определить и использовать переменные этих типов, которые называются массив.
Строка.