Вопросы к экзамену по предмету «Языки и методы программирования» Специальность «Прикладная математика и информатика» 1 курс, ОФО 1. Понятие системы счисления. Позиционные и непозиционные системы счисления. Понятие базиса. 2. Перевод чисел из одной системы счисления в другую. Частные случаи переводов. 3. Экономичность систем счисления. 4. Прямой, обратный и дополнительный коды двоичных чисел. Выполнение операций над числами в дополнительных кодах. 5. Формы представления чисел в ЭВМ. Сравнительная характеристика различных форм представления чисел. 6. Понятие алгоритма. Полная схема разработки алгоритма и решения задачи на ЭВМ. Понятие алгоритмизации. Основные свойства алгоритмов. 7. Формы записи алгоритмов. Блок-схема как форма записи алгоритма. Базовые алгоритмические структуры. 8. Типы алгоритмов. Циклические алгоритмы. Типы циклов. 9. Структурность алгоритмов. Теорема структурирования. 10. Языки программирования: определение и классификация. Краткие исторические сведения. 11. Понятие транслятора. Компиляторы и интерпретаторы. 12. Обработка программы с использованием компилятора. 13. Сравнительная характеристика компиляторов и интерпретаторов. 14. Понятие транслятора. Обработка программы интерпретатором. Сравнительная характеристика компиляторов и интерпретаторов. 15. Краткий обзор процесса компиляции. Анализ исходной и синтез объектной программы. 16. Порядок работы компилятора. Оптимизация программы. 17. Алфавиты и цепочки. Катенация цепочек и произведение множеств цепочек. Итерация и усеченная итерация множеств цепочек. 18. Формальное определение грамматики и языка. Сентенциальные формы и предложения. 19. Алгоритмический язык Pascal. Особенности и преимущества. Идея структурного программирования. Нисходящее программирование. 20. Описание синтаксиса языков. Бэкуса-Наура формы и синтаксические диаграммы. Рекурсивные определения. 21. Алфавит, синтаксис и семантика. Лексемы и символы-разделители. Диаграммы для понятий «Программа» и «Блок». 22. Данные и информация. Концепция данных. Понятие структуры данных. Иерархии структур данных. 23. Две классификации типов данных. Понятие стандартного и описанного типа. Переопределение типов. Ординальные типы данных. Общая характеристика. 24. Тип Integer и совместимые типы. Типы Boolean и Char. Тип Real и совместимые типы. 25. Концепция действия. Классификация операторов. Операции и операнды. 26. Операторы цикла. Разновидности операторов. Особенности организации циклов. 27. Выбирающие операторы. 28. Перечислимые и диапазонные типы данных. 29. Составные типы данных: общая характеристика и классификация. 30. Регулярный тип данных. Многомерные массивы. 31. Стринги и программные средства их обработки. 32. Комбинированный тип данных. Записи и поля. Селектор записи. 33. Комбинированный тип данных. Записи с вариантами. 34. Оператор присоединения. 35. Множественный тип данных. Понятие конструктора. 36. Операции над множествами. 37. Файловый тип данных и его особенности. Понятие буферной переменной. 38. Понятие файла. Слияние двух отсортированных файлов в один файл. 39. Стандартные средства для работы с типизированными файлами. Логические устройства. 40. Текстовые файлы и их особенности. 41. Процедуры и функции пользователя. Идея использования подпрограмм. Синтаксические диаграммы. 42. Подпрограммы: аппарат аргументов-параметров. Синтаксические диаграммы. 43. Подпрограммы: локальные и глобальные программные объекты; локализация подпрограмм. 44. Рекурсивные объекты и вычисления. Рекомендации по использованию рекурсии. Рекурсивное вычисление факториала и чисел Фибоначчи. 45. Рекурсия и алгоритмы с возвратом. 46. Статические и динамические объекты, механизмы выделения памяти. 47. Понятие данных ссылочного типа. Переменные с указателем. 48. Порождение и уничтожение динамических объектов. Действия над ссылками. Понятие «пустой» ссылки. Цикл «жизни» динамического объекта. 49. Отличительные особенности динамических объектов и их недостатки. 50. Проблема программного «мусора» и «висячих» ссылок. 51. Понятие таблицы. Простая цепочка. 52. Таблица: цепочка с упорядоченными записями. 53. Таблица: дихотомический поиск. 2 54. Таблицы и двоичные деревья (без примера включения записи в таблицу). 55. Рекурсивные объекты и их особенности. Сложные динамические объекты: очереди и стеки. 56. Использование очереди в ОС и в программировании. 57. Использование стека в ОС и в программировании. 58. Реализация очереди на базе массива. Реализация стека на базе массива. 59.Операции над стеком. Реализация операций над стеком. 60. Определение последовательности (очереди). Определение дерева. 61. Деревья: основные понятия. Двоичные и сильно ветвящиеся деревья. 62. Идеально сбалансированные деревья. 63. Двоичные деревья: задача «обхода». 64. Дерево поиска. 65. Сортировка массивов. Понятие прямого метода. 66. Сортировка массивов: метод прямого включения. 67. Сортировка массивов: метод с двоичным включением. 68. Сортировка массивов: метод прямого выбора. 69. Сортировка массивов: метод прямого обмена (пузырьковая сортировка). Преподаватель: А.Г. Смольянов 30.05.2012 г. 3