Курсовая работа: Виды алгоритмов и их представление при решении задач различных структур

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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

Шаг первый: Р присваивается значение один.

Шаг второй: i присваивается значение один.

Шаг третий: при i равном единице проверяем условие один меньше или равен пяти, да, условие истинно, значит Р присваивается значение один умноженное на один, будет два. Для i: один плюс один, будет два.

Шаг четвертый: при i равном двум проверяем условие два меньше или равен пяти, да, условие истинно, значит Р присваивается значение 2 умноженное на один, будет 2. Для i: два плюс один, будет три.

Шаг пятый: при i равном трем проверяем условие три меньше или равен пяти, да, условие истинно, значит Р присваивается значение два умноженное на три, будет шесть. Для i: три плюс один, будет четыре.

Шаг шестой: при i равном четырем проверяем условие четыре меньше или равен пяти, да, условие истинно, значит Р присваивается значение шесть умноженное на четыре, будет двадцать четыре. Для i: четыре плюс один, будет пять.

Шаг седьмой: при i равном пяти проверяем условие пять меньше или равен пяти, да ,условие истинно, значит Р присваивается значение двадцать четыре умноженное на пять, будет сто двадцать. Для i: пять плюс один, будет шесть.

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

Program Pr1;Var i: integer;BeginP:=1;i:=1;While i<=5 do begin P:=P*i; i:=i+1; end;Write (`P=', P);end.

Для цикла с постусловием построим блок-схему и трассировочную таблицу.

В результате получаем последнее значение равное сто двадцати на седьмом шаге

И для Цикла с параметром построим блок-схему и трассировочную таблицу.

В результате получаем последнее значение равное сто двадцати на шестом шаге

5. Вспомогательный алгоритм

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

Пример. У нас есть вспомогательный алгоритм factorial, который вычисляет значение факториала целого числа k. Составить блок-схему алгоритма вычисления значения выражения 1! + 2! + … + n!. Вспомним, что k! = 1 * 2 * … * k.

Рис. 10

Пример:

Имеется два одномерных числовых массива произвольной длины. Необходимо выполнить сортировку массивов в порядке возрастания значений их элементов.

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

Будем сортировать массив "методом пузырька". Суть этого метода состоит в следующем. Совершается проход по всем парам соседних элементов массива. Если пара не отсортирована, то значения ее элементов меняются местами. Если при проходе была совершена хотя бы одна перестановка, то совершается новый проход и перестановка неотсортированных пар. Процесс производится до тех пор, пока при очередном проходе не будет выполнено ни одно перестановки. Это является сигналом, что массив отсортирован.

Рис. 11

Процедура имеет имя Sort и два формальных параметра: n - длина массива, z - имя массива. Сортировка осуществляется при помощи структуры вложенных циклов. Наружным циклом являются блоки 2 - 8. Внутренний цикл образован блоками 3 - 7. Один виток наружного цикла представляет собой отдельный проход по массиву при сортировке. Внутренний блок предназначен для перебора соседних пар массива при таком проходе.

В начале наружного цикла в блоке 2 логической переменной b присваивается значение true. Под этим мы будем понимать, что до прохода по парам, мы предполагаем, что массив отсортирован. Далее выполняется внутренний цикл блоков 3 - 7. В нем переменная цикла i меняется от 1 до n-1, поскольку, если число элементов равно n, то соседних пар будет n-1. Для каждой текущей пары соседних элементов z[i] и z[i+1] проверяется условие 4. Если оно выполняется, то значит эту пару надо переставлять и зафиксировать тот факт, что массив оказался неотсортированным, что фиксируется оператором блока 5. Перестановка пары происходит в блоке 6 посредством обращения к процедуре Perm. Если же условие не выполнилось, то пара отсортирована и операторы фиксации и перестановки надо обойти и уйти в конец цикла к блоку 7, который вернет управление к началу цикла 3. После выхода из цикла 3 - 7 в блоке 8 осуществляется проверка значения переменной b. Если она истинна, то в цикле не было перестановок, то есть массив отсортирован, и процедуру следует закончить. Если же b ложно, то имели место перестановки, и нужно совершать новый проход по парам, для чего следует отправить управление процессом на блок 2. Таким образом, за несколько проходов по массиву, он будет отсортирован.

Рис. 12

В данном алгоритме сначала вводятся длины массивов n и m, затем сами массивы x и y. В блоке 3 обращением к процедуре Sort сортируется массив x, а в блоке 8 - массив y. В блоке 5 массивы выводятся на печать.

алгоритм циклический блок-схема

Список используемой литературы

1. «Современные информационные технологии» авторы преподаватели центра «Турбо»

2. «Алгоритмы и исполнители» Поляков К.

3. «Основы алгоритмизации и программирования» Т.А. Жданова; Ю.С. Бузыкова

4. С и С++: Алгоритмы и приемы программирования: пер с англ. / А. Фридман, Л. Кландер, М. Михаэлис, Г. Шилдт; под ред. В. Тимофеева. -- М.: Бином: Бином-пресс, 2003. -- 560 с.

Источник: https://otherreferats.allbest.ru/download/1295347/