
Ответы к экзамену по программированию
1)Введение в программирование и основы алгоритмизации. Предмет курса, основные понятия и определения. Алгоритмизация, алгоритм, свойства алгоритма, алгоритмический язык, язык программирования, программа, данные, оператор, переменная, свойства переменной, система программирования, транслятор, интерпретатор, компилятор.
Предметом курса являются методы и средства составления алгоритмов и программ с целью решения задач на ЭВМ.
Алгоритмизация – процесс построения алгоритма задачи, результатом которой является выделение этапов процесса обработки данных, формальная запись содержания этих этапов и определение порядка их выполнения.
Алгоритм – точное предписание, определяющее вычислительный процесс, ведущий от варьируемых начальных данных к искомому результату.
Свойства алгоритма:
Детерминированность – точность указаний, исключающее их произвольное толкование.
Дискретность – возможность расчленения вычислительного процесса на отдельные элементарные операции, возможность выполнения которых не вызывает сомнений
Результативность – прекращение процесса через определенное число шагов с выдачей искомых результатов или сообщения о невозможности продолжения вычислительного процесса
Массовость – пригодность алгоритма для решения всех задач заданного класса.
Алгоритмический язык — набор символов и система правил для задания алгоритмов.
Язык программирования – язык, предназначенный для реализации программ на ЭВМ.
Программа - алгоритм, записанный в форме, воспринимаемой машиной. Программа содержит описание данных команды, в какой последовательности, над какими данными и какие операции должна выполнять машина, а также в какой форме следует получить результат. Это обеспечивают различные операторы.
Данные – факты и идеи, представленные в формализованном виде, позволяющем передавать и обрабатывать эти идеи с помощью некоторого процесса.
Оператор – совокупность символов, указывающих операцию и значения, либо местонахождение ее элементов.
Переменная – объект, который в ходе выполнения команды может менять свое значение.
Свойства переменной:
Переменная называется неопределенной до тех пор пока она не получает значение вводом извне.
В каждый момент времени переменная может иметь любое значение либо быть неопределенной.
Последующее значение уничтожает, предыдущее.
Система программирования – средство автоматизации программирования, включающая язык программирования, транслятор этого языка, документацию, а также средства подготовки и выполнения программ.
Транслятор – программа, которая переводит с одного языка на другой.
Интерпретатор – программа, которая сразу выполняет переводимые программы.
Компилятор – программа, которая переводит конструкции алгоритмического языка в машинные коды.
2)Синтаксис и семантика алгоритмического языка программирования. Средства изображения алгоритмов. Классификация языков программирования. Базовые канонические структуры алгоритмов.
Синтаксис алгоритмического языка — совокупность правил, позволяющая:
формально проверить текст программы
разбить эти программы на составляющие конструкции.
Семантика алгоритмического языка — соответствие между синтаксически правильными программами и действиями абстрактного исполнителя, позволяющее определить, какие последовательности действий абстрактного исполнителя будут правильны.
Основными изобразительными средствами алгоритмов являются следующие способы их записи:
Словесный - содержание этапов вычислений задается на естественном языке в произвольной форме с требуемой детализацией. При этом способе отсутствует наглядность вычислительного процесса, т.к. нет достаточной формализации.
формульно-словесный - задание инструкций с использованием математических символов и выражений в сочетании со словесными пояснениями. При использовании этого способа может быть достигнута любая степень детализации.
блок-схемный - это графическое изображение логической структуры алгоритма, в котором каждый этап процесса переработки данных представляется в виде геометрических фигур (блоков), имеющих определенную конфигурацию в зависимости от характера выполняемых операций. Блок-схемы могут быть традиционные и структурированные.
структурные диаграммы - могут использоваться в качестве структурных блок-схем, для показа межмодульных связей, для отображения структур данных, программ и систем обработки данных.
языки программирования - изобразительные средства для непосредственной реализации программы на ЭВМ.
Программа – алгоритм, записанный в форме, воспринимаемой ЭВМ.
Классификация языков программирования:
Если язык близок к естественному языку программирования, то он называется языком высокого уровня, если ближе к машинным командам, – языком низкого уровня.
Машинно-ориентированные языки – это языки, которые существенно зависят от особенностей ЭВМ (внутреннего языка, структуры памяти и т.д.).
Машинно-независимые языки – средства написания алгоритмов, решения задач и обработки информации. Операторы языка описывают действия, которые должна выполнить система после трансляции программы на машинный язык.
Объектно-ориентированные языки (высокого уровня) – программы представляющие собой описание объектов, их свойств (атрибутов) в совокупности (классах) отношений между ними, способами их взаимодействия и операциями над объектами (методы).
Классификация машинно-ориентированных языков по степени автоматизации программы:
Машинный язык – система команд конкретной вычислительной машины, которая интерпретирует процессом или микропрограммой этой вычислительной машины.
Языки символического кодирования (командные) – представляющие собой последовательность двоичных или восьмеричных кодов. Цифры заменены на символы(идентификаторы).
Автокоды – языки, включающие в себя все возможные языки символического кодирования посредством расширения введ. макрокоманд.
Ассемблеры – развитые автокоды.
Макрос – язык является средством для замены последовательных символов, описывающих выполнение действий ЭВМ, на более сжатую форму.
Классификация машинно-независимых языков:
Процедурные – программа явно описывает действия, которые необходимо выполнить, а результат задается только способом получения его при помощи некоторой процедуры, которая представляет собой определенную последовательность действий.
Непроцедурные – построенные на описании данных и искомого результата.
Функциональные – позволяет задавать программы в виде совокупности определений, функций. Функции обмениваются между собой данными без использования промежуточных переменных и присваиваний. Переменные, однажды получив значение, не изменят его.
Логические – позволяют выполнять описание проблемы в терминах, актах и логических формах. Решение проблемы выполняет система с помощью механизмов логического вывода.
Базовые канонические структуры алгоритмов.
Доказано, что любую программу можно написать с использованием трех управляющих структур:
следования, или последовательности операторов;
развилки, или условного оператора;
повторения, или оператора цикла.
Регулярная программа - программа, составленная из канонических структур (имеет 1 вход и 1 выход). Управление в такой программе передается сверху-вниз. Снабженные комментариями, такие программы хорошо читабельны.