Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Voprosy_k_kollokviumu.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
498.91 Кб
Скачать

Вопросы к коллоквиуму по дисциплине “Языки программирования” 1. Понятие алгоритма. Свойства алгоритма

Алгоритм - точное и понятное предписаниe исполнителю совершения последовательности действий, направленных на решение поставленной задачи. Говоря об алгоритме вычислительного процесса, необходимо понимать, что объектами, к которым применялся алгоритм, являются данные. Алгоритм решения вычислительной задачи представляет собой совокупность правил преобразования исходных данных в результатные.

Основными свойствами алгоритма являются:

  1. детерминированность (определенность). Предполагает получение однозначного результата вычислительного процecca при заданных исходных данных. Благодаря этому свойству процесс выполнения алгоритма носит механический характер;

  2. результативность. Указывает на наличие таких исходных данных, для которых реализуемый по заданному алгоритму вычислительный процесс должен через конечное число шагов остановиться и выдать искомый результат;

  3. массовость. Это свойство предполагает, что алгоритм должен быть пригоден для решения всех задач данного типа;

  4. дискретность. Означает расчлененность определяемого алгоритмом вычислительного процесса на отдельные этапы, возможность выполнения которых исполнителем (компьютером) не вызывает сомнений.

Алгоритм должен быть формализован по некоторым правилам посредством конкретных изобразительных средств. К ним относятся следующие способы записи алгоритмов: словесный, формульно-словесный, графический, язык операторных схем, алгоритмический язык.

Наибольшее распространение благодаря своей наглядности получил графический (блок-схемный) способ записи алгоритмов.

Блок-схемой называется графическое изображение логической структуры алгоритма, в котором каждый этап процесса обработки информации представляется в виде геометрических символов (блоков), имеющих определенную конфигурацию в зависимости от характера выполняемых операций.

При всем многообразии алгоритмов решения задач в них можно выделить три основных вида вычислительных процессов:

  • линейный - вычислительный процесс, при котором все этапы решения задачи выполняются в естественном порядке следования записи этих этапов.;

  • ветвящийся - вычислительный процесс, в котором выбор направления обработки информации зависит от исходных или промежуточных данных (от результатов проверки выполнения какого-либо логического условия);

  • циклический - Циклом называется многократно повторяемый участок вычислений. Вычислительный процесс, содержащий один или несколько циклов, называется циклическим..

По количеству выполнения циклы делятся на циклы с определенным (заранее заданным) числом повторений и циклы с неопределенным числом повторений. Количество повторений последних зависит от соблюдения некоторого условия, задающего необходимость выполнения цикла. При этом условие может проверяться в начале цикла — тогда речь идет о цикле с предусловием, или в конце — тогда это цикл с постусловием.

2. Эквивалентность алгоритмов. Критерии качества алгоритмов.

Будем называть два алгоритма эквивалентными, если:

1) множество допустимых входных данных одного из них является множеством допустимых входных данных и для другого; из применимости одного алгоритма к каким-либо входным данным следует применимость и другого алгоритма к этим входным данным.

2) Применение этих алгоритмов к одним и тем же входным данным дает одинаковые цикличность алгоритма результаты.

Эквивалентными являются алгоритмы для вычисления значения многочлена в заданной точке x по формулам (1) и (2). Но алгоритм, задаваемый формулой (2), требует меньше арифметических операций, так как не требует операции возведения в степень xi для всех

Сформулируем критерий качества алгоритма:

- правильность (алгоритм решает поставленную задачу);

- прозрачность (простота, удобочитаемость алгоритма);

- эффективность (быстродействие и краткость).

-связанность(определяется количеством сохраняемых промежуточных результатов).

-объем алгоритма(количество операций (шагов), которые необходимо выполнить для достижения конечного результата).

-длительность решения(определяется как количеством, так и сложностью шагов).

-разветвленность алгоритма – характеризует логическую сложность и определяется количеством путей, по которым может реализовываться алгоритм.– заключается в том, что фактическое количество операций, которые должны быть выполнены, превышает количество операций, содержащихся в записи алгоритма.

Первое правило – при построении алгоритма, прежде всего, необходимо задать множество объектов, с которыми будет работать алгоритм. Закодированное представление этих объектов носит название данных. Алгоритм приступает к работе с некоторым набором данных - входные, и в результате своей работы выдает данные - выходные. Таким образом, алгоритм преобразует входные данные в выходные. Это правило позволяет сразу отделить алгоритмы от “методов” и “способов”. Пока мы не имеем закодированных входных данных, мы не можем построить алгоритм.

Второе правило – для работы алгоритма требуется память. В памяти размещаются входные данные, с которыми алгоритм начинает работать, промежуточные данные и выходные данные, которые являются результатом работы алгоритма. Память является дискретной, т.е. состоящей из отдельных ячеек. Переменная - проименованная ячейка памяти. В теории алгоритмов размеры памяти не ограничиваются, т. е. алгоритму выделяется любой необходимый для работы объем памяти. Практическая работа с алгоритмами (программирование) начинается именно с реализации этих правил. В языках программирования распределение памяти осуществляется декларативными операторами (операторами описания переменных). В языке Бейсик не все переменные описываются, обычно описываются только массивы. Но все равно при запуске программы транслятор языка анализирует все идентификаторы в тексте программы и отводит память под соответствующие переменные.

Третье правило – дискретность. Алгоритм строится из отдельных шагов (действий, операций, команд). Множество шагов, из которых составлен алгоритм, конечно.

Четвертое правило – детерминированность. После каждого шага необходимо указывать, какой шаг выполняется следующим, либо давать команду остановки.

Пятое правило – элементарность действий, то есть каждое правило является настолько простым, что не вызывает сомнений в неоднозначности толкования.

Шестое правило – сходимость (результативность). Алгоритм должен завершать работу после конечного числа шагов. При этом необходимо указать, что считать результатом работы алгоритма.

3. Алгоритмы нахождения наибольшего общего делителя d чисел a и b(выводить)

4. Схема Горнера

Вычислить при заданном значении x значение многочлена

y = a0xn+ a1xn-1 + … + an-1x + an

Входные данные: n – показатель степени многочлена (класс N),

a0, a1 ,…, an-1,an (класс R – вещественное число), xзначение, при котором требуется вычислить многочлен (класс R).

Метод решения.

  1. Вычисление значения многочлена по формуле

(2) Вычисление значения многочлена по схеме Горнера

y = (…((a0x+ a1)x + a2)x+…+ an-1)x + an

Алгоритм 1.

П1. Задать входные данные.

П2. Положить y =a0, i=1.

П3. Пока inвыполнить

заменить yна y+aixi ,

увеличить iна 1.

П4. y - результат.

П5. Прекратить работу.

Алгоритм 2.

П1. Задать входные данные.

П2. Положить y =a0, i=1.

П3. Пока inвыполнить

заменить yна yx+ai ,

увеличить iна 1.

П4. y - результат.

П5. Прекратить работу.

5. Способы описания алгоритмов: словесно-формульный и структурный. Привести примеры

Способы описания алгоритмов

К основным способам описания алгоритмов можно отнести следующие:

  • словесно-формульный;

  • структурный или с помощью схем алгоритмов;

  • с помощью граф-схем;

  • с помощью сетей Петри.

Перед составлением программ чаще всего используются словесно-формульный и структурный способы. Иногда перед составлением программ на низкоуровневых языках программирования типа языка Ассемблера алгоритм программы записывают, пользуясь конструкциями некоторого высокоуровнего языка программирования.

Удобно использовать программное описание алгоритмов функционирования сложных программных систем. Так, для описания принципов функционирования ОС использовался Алголоподобный высокоуровневый язык программирования.

Словесно-формульный способ

При словесно-формульном способе алгоритм записывается в виде текста с формулами по пунктам, определяющим последовательность действий.

Пусть, например, необходимо найти значение следующего выражения:

у = 2а – (х+6).

Словесно-формульным способом алгоритм решения этой задачи может быть записан в следующем виде:

1. Ввести значения аи х.

2. Сложить х и 6.

3. Умножить a на 2.

4. Вычесть из сумму (х+6).

5. Вывести укак результат вычисления выражения.

Структурный метод

Сущность структурного подхода к разработке ПС заключается в декомпозиции (разбиении) системы на автоматизируемые функции, которые в свою очередь делятся на подфункции, на задачи и так далее. Процесс декомпозиции продолжается вплоть до определения конкретных процедур. При этом автоматизируемая система сохраняет целостное представление, в котором все составляющие компоненты взаимосвязаны.

В основе структурного метода лежат такие общие принципы:

  • разбивка системы на множество независимых задач, доступных для понимания и решения;

  • иерархическое упорядочивание, т.е. организация составных частей проблемы в древовидные структуры с добавлением новых деталей на каждом уровне.

К основным принципам относятся:

  • абстрагирование, т.е. выделение существенных аспектов системы и отвлечение от несущественных;

  • формализация, т.е. общее методологическое решение проблемы;

  • непротиворечивость, состоящая в обосновании и согласовании элементов системы;

  • иерархическая структуризация данных.

При структурном описании алгоритм изображается геометрическими фигурами (блоками), связанными по управлению линиями (направлениями потока) со стрелками. В блоках записывается последовательность действий.

Данный способ по сравнению с другими способами записи алгоритма имеет ряд преимуществ. Он наиболее нагляден: каждая операция вычислительного процесса изображается отдельной геометрической фигурой. Кроме того, графическое изображение алгоритма наглядно показывает разветвления путей решения задачи в зависимости от различных условий, повторение отдельных этапов вычислительного процесса и другие детали.

Оформление программ должно соответствовать определенным требованиям. В настоящее время действует единая система программной документации (ЕСПД), которая устанавливает правила разработки, оформления программ и программной документации.

Стандартом определены символы, предназначенные для использования в документации по обработке данных, и приведено руководство по условным обозначениям для применения их в:

  1. схемах данных;

  2. схемах программ;

  3. схемах работы системы;

  4. схемах взаимодействия программ;

5) схемах ресурсов системы.

6. Способы описания алгоритмов с помощью граф-схем. Привести примеры

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]