БлогNot. "Универсальная" блок-схема и 3 типовых алгоритма :)

"Универсальная" блок-схема и 3 типовых алгоритма :)

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

ГОСТовские "перевёртыши" на практике крайне неудобны, классическое изображение с помощью "ромбика" часто сбивает начинающих с толку похожестью на обычное ветвление (плюс они забывают делать шаг в конце тела цикла), а вот значок "цикла с параметром", если отказаться от паскалевского шага, непременно равного единице, удобен и нормально воспринимается.

I Алгоритм табулирования (составление списка или таблицы)
Алгоритм табулирования (составление списка или таблицы)
Алгоритм табулирования (составление списка или таблицы)

Что писать в фигурках вместо цифр?

1. Примем, что управляющая переменная цикла называется x, а здесь зададим её начальное (x1) и конечное (x2) значения, а также шаг изменения dx. Это можно записать присваиванием x1=0,x2=1,dx=0.1 или поставить вместо прямоугольника параллелограмм (оператор ввода) с подписью "ввод x1,x2,dx";

2. Обычно внутри значка "цикл с параметром" (цикл, пределы изменения и шаг управляющей переменной которого известны) пишут что-то вроде псевдокода: "для x от x1 до x2 шаг dx" или то же самое в форме x=x1,x1+dx..x2 или просто x=x1,x2,dx ;

3. Для очередного x вычислить y=f(x). Этот шаг может включать несколько действий и предполагать вставку дополнительных блоков "расчёт" или условных операторов;

4. Вывести строку таблицы: вывод x, f(x)

II. Алгоритм вычисления суммы, количества или произведения нужных элементов последовательности
Алгоритм вычисления суммы, количества или произведения нужных элементов последовательности
Алгоритм вычисления суммы, количества или произведения нужных элементов последовательности

Вместо цифр в элементах блок-схему указываем:

1. Для каждой искомой величины задать по переменной и присвоить ей начальные значения: сумме s=0, количеству k=0, произведению p=1 (на самом деле, это не совсем корректно, но для обсуждаемого уровня сойдёт);

2. Выполняется как в задаче I;

3. Считаем очередной элемент последовательности y=f(x), с тем же замечанием, что к задаче I;

4-5. Если y отвечает условию задачи (проверка на шаге 4), сумма на шаге 5 ищется в виде s=s+f(x), количество в виде k=k+1, произведение в виде p=p*f(x). При нескольких искомых величинах блок вида 4-5 может повторяться несколько раз;

6. По выходе из цикла выводим найденную величину или величины.

III. Алгоритм поиска максимума или минимума

Блок схема задачи II годится и для этого случая.

1. Для каждого максимума или минимума задать по переменной (примем, что минимум обозначен min, а максимум - max) и присвоить каждой переменной начальные значения: максимуму – заведомо малое значение (например, -1030, оператор будет иметь вид Max=-1030) или первый элемент последовательности (массива); минимуму присвоить заведомо большое значение (например, 1030) или первый элемент последовательности;

2-3. Выполняются как в задачах I-II, с теми же замечаниями.

4-5. Для поиска максимума проверяется условие 4 f(x)>max, выполняется действие 5 вида max=f(x), дли минимума проверяется условие 4 f(x)<min и выполняется действие 5 вида min=f(x). С чем сравнивали max или min, то им и присваиваем.Могут понадобиться дополнительные условия, связанные логической операцией "И" либо "ИЛИ" с основным, например, поиск максимального из отрицательных элементов предполагает проверку y<0 and y>max;

6. По выходе из цикла выводим найденную величину или величины.

Несмотря на обилие средств для рисования блок-схем, удобнее простого Paint из Win7 и выше для этой цели ничего пока не придумали :)

IV. Схема ввода и обработки элементов одномерного массива

Как правило, ввод, обработка или вывод одномерного массива (вектора, списка) выполняется поэлементно с помощью цикла с параметром (цикла "for"). Счётчиком цикла служит номер элемента в массиве (обычно применяется нумерация с единицы). Ниже показаны ввод и обработка массива x из 6 элементов.

Схема ввода и обработки элементов одномерного массива
Схема ввода и обработки элементов одномерного массива
V. Реализация алгоритма в кратных (вложенных) циклах

Основное отличие – все действия над матрицей (таблицей) выполняются поэлементно в двойном цикле следующего вида:

Блок-схема двойного цикла с параметром
Блок-схема двойного цикла с параметром

Здесь показан ввод матрицы A из 6 строк и 4 столбцов, а счётчиками внешнего и внутреннего цикла с параметром служат номера строки (i) и столбца (j) в матрице. Обработка и вывод элементов матрицы могут быть реализованы аналогичными конструкциями, часто, если элементы обрабатываются последовательно и независимо друг от друга, ввод и обработку или обработку и вывод можно объединить.

31.10.2016, 21:46 [12835 просмотров]


теги: графика учебное алгоритм

показать комментарии (2)