Алгоритм с условием примеры блок схема

Урок 8. Блок-схема оператора if

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

Ветвления

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

Ветвление используется в двух случаях:

  1. Когда требуется пропустить определенную команду или группу команд.
  2. Когда нужно записать выбор тех или иных действий в зависимости от условия.

В блок-схеме условие ветвления изображается в ромбе, из которого обязательно выходят ДВЕ стрелки – первая (стрелка «Да») указывает на команды, которые будут выполняться в случае, если условие соблюдено; вторая (стрелка «Нет») – на команды, которые будут выполнены, если условие не соблюдено. Даже если команда, на которую указывает одна из стрелок (Чаще всего «Нет») отсутствует, стрелка все равно имеет место быть.

Алгоритм с ветвлением, представленный в виде блок-схемы.

В словесной формулировке запись ветвления выглядит так:

Реализация ветвления в Паскаль.

Как же реализовать ветвление в Паскаль? Проще, чем вы думаете:
if then else

Запомните! Перед else никогда не ставят точку с запятой!

Давайте поговорим об условии выбора. Понятно, что этологическое выражение. Если оно является правдой, то выполняется главная ветвь, если ложь, то боковая ветвь.

Задачи из блока if.

Рассмотрим несколько задач из сборника М.Э.Абрамяна «1000 задач по программированию».

If1. Дано целое число. Если оно является положительным, то прибавить к нему 1; в противном случае не изменять его. Вывести полученное число.

В данной программе даже не надо реализовывать боковую ветвь.

If2. Дано целое число. Если оно является положительным, то прибавить к нему 1; в противном случае вычесть из него 2. Вывести полученное число.

If3. Дано целое число. Если оно является положительным, то прибавить к нему 1; если отрицательным, то вычесть из него 2; если нулевым, то заменить его на 10. Вывести полученное число.

Для того чтобы решить эту задачу мы должны использовать вложенный if.

Мы работаем в PascalABC.NET. Только в этой СР есть возможность написать а -= 2.

If5. Даны три целых числа. Найти количество положительных и количество отрицательных чисел в исходном наборе.

If30. Дано целое число, лежащее в диапазоне 1–999. Вывести его строку-описание вида «четное двузначное число», «нечетное трехзначное число» и т. д.

Вот и все! Не забывайте кликать по кнопочкам и добавлять наш сайт в закладки!

Источник

ОАиП | БФЭК

Учебное пособие

Составление блок-схем алгоритмов

Блок-схемы используются для визуального представления алгоритмов.

Определение:

Алгоритм — это последовательность шагов, ведущая к решению задачи

Определение:

Блок-схема — это схематическое изображение, иллюстрирующее последовательность операторов, которые необходимо выполнить для достижения результата

Инструкции изображаются, используя специальные символы. Символы связываются между собой стрелками, для указания порядка выполнения.

Блок-схемы широко используются при написании программ, так как они:

  • Гораздо проще для понимания, чем запись в виде команд.
  • Упрощают процесс отладки.
  • Позволяют составить эффективную программную документацию.
  • Облегчают процесс демонстрации и обсуждения программы.

Блоки, из которых составляются блок-схемы, представлены на Рисунке 1.

Рассмотрим работу с блок-схемами на примере. Для этого нарисуем блок-схему программы нахождения суммы двух чисел:

Блок-схема, показанная на Рисунке 2, иллюстрирует линейную логику. Здесь нет повторений и ветвления.

Способность сравнивать значения и исполнять, в зависимости от полученного результата, различные участки программы превращает компьютер из большого калькулятора в мощное средство решения различных практических задач. Операторы выбора применяются для:

  • Сравнения данных
  • Выбора одного из альтернативных путей решения задачи.

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

Определение:

Ветвление — это процесс выбора из двух, или более альтернативных путей вычисления. Рассмотрим ветвление на следующих примерах:

Пример 1. Посмотрим на то, как будет выглядеть блок-схема алгоритма проверки чисел на четность:

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

Пример 2. Рассмотрим блок-схему алгоритма, определяющего максимальное из 3-х чисел (см. рис. 4):

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

Основные типы блок-схем, использующих ветвление, представлены на Рисунке 5:

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

На Рисунке 5(b) представлен полный вариант условного ветвления. Здесь, в зависимости от выбранного маршрута движения, выполняется одна или другая последовательность вычислений, после чего маршруты вновь сливаются.

Определение:

Цикл — это многократно выполняемый участок алгоритма.

Тело цикла-это последовательность выполняемых в цикле операторов.

Итерация — однократное выполнение тела цикла.

  • С фиксированным числом итераций
  • С переменным числом итераций

Рассмотрим различия между этими двумя типами на следующих примерах:

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

Рисунок 6 иллюстрирует цикл с фиксированным числом итераций — число месяцев в году известно и последовательность вычислений не может быть повторена более 12 раз.

Мы читаем расходы за один месяц и добавляем их к общему результату. После этого номер месяца сравнивается с 12.

Если номер месяца равен 12, то цикл завершается, и выводятся данные о расходах за год. В противном случае цикл повторяется для следующего месяца.

Пример 4. Пусть есть информация о каждом жителе города (имя, возраст, пол и т.д.). Необходимо составить список жителей старше 50 лет. Блок-схема соответствующего алгоритма будет иметь вид:

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

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

РАЗДЕЛЕНИЕ БЛОК-СХЕМ НА ЧАСТИ

При работе с блок-схемами мы часто сталкиваемся со следующими проблемами:

  • Блок-схема может не поместиться на одной странице.
  • Может оказаться сложным связать все элементы блок-схемы друг с другом непосредственно.

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

Соединительный элемент имеет свой собственный, уникальный номер и состоит из двух частей. Эти части изображаются в местах разрыва соединительных линий. Для определения принадлежности частей соединительному элементу, номер элемента записывается на каждой из частей.

Например, разбив на 2 части блок-схему, изображенную на Рисунке 2 мы получим:

  • Соединители вставляются в местах разрыва блок-схемы. Расположение каждого объединения указывается с помощью уникального номера.
  • В блок-схеме может быть только одна вершина Начало и только одна вершина Конец.
  • Используйте машинно-независимые элементы.
  • Не обязательно представлять в блок-схеме каждый шаг программы. Можно ограничиться наиболее важными блоками.
  • Желательно использовать наглядные названия переменных и блоков.
  • Помните, программа должна быть написана так, чтобы любой другой программист смог бы легко понять ее.

МЕТОД ПРОГОНКИ

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

ТАБЛИЦА ПОШАГОВОГО ПРОГОНА

X Y М
Начальные значения 10 5 0
после шага 5 10 5 65
после шага 6 10 9 65
после шага 7 10 9 74

Таким образом, на 8-м шаге на экран будет выведено: 10, 9 и 74.

Источник

Блок-схемы. Графическая реализация алгоритмов

Занятие 4. Графическая реализация циклического алгоритма

В рассмотрении циклического алгоритма следует выделить несколько понятий.

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

Итерация – это единичное выполнение тела цикла.

Переменная цикла – это величина, изменяющаяся на каждой итерации цикла.

Каждый цикл должен содержать следующие необходимые элементы:

  1. первоначальное задание переменной цикла,
  2. проверку условия,
  3. выполнение тела цикла,
  4. изменение переменной цикла.

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

В цикле с постусловием сначала выполняется тело цикла, а потом проверяется условие. Циклический алгоритм с постусловием представлен на рис. 2.10.

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

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

Приведем простейшие примеры, соответствующие циклическому алгоритму.

Пример 7. Вася звонит Пете, но у Пети может быть занята линия. Составить блок-схему действий Васи в этом случае.

Решение. Когда телефонная линия занята, то необходимо снова и снова набирать номер, пока Петя не закончит предыдущий разговор, и телефонная линия не окажется вновь свободной. Блок-схема представлена на рис. 2.11.

Здесь тело цикла состоит из одного действия «Набрать номер Пети», т.к. именно это действие следует повторять, пока линия будет занята. Под итерацией цикла понимается очередная попытка дозвониться до Пети. Как таковой переменной цикла здесь нет, т.к. ситуация взята из жизни. Выход из цикла происходит в тот момент, когда условие «У Пети занято» стало неверным, т.е. телефонная линия свободна – действительно, нет необходимости больше набирать номер Пети. В данном примере применен цикл с постусловием, т.к. сначала необходимо набрать номер Пети, ведь иначе мы не можем ответить на вопрос – занята ли линия у Пети.

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

Решение. Действия ученика в данном примере очевидны: когда он приходит в первый и любой последующий магазины, то возможны два варианта – учебник имеется в наличии или учебника нет в продаже. Если учебника нет в продаже, то ученику следует пойти в другой книжный магазин и спросить данный учебник, и т.д. пока учебник не будет куплен, т.к. перед учеником стоит конечная цель – купить учебник. Мы будем использовать цикл с предусловием, т.к. сначала требуется найти магазин, имеющий в наличии данный учебник. Цикл будет выполняться, пока условие «В данном магазине нет учебника» будет верным, а выход из цикла осуществится, когда условие станет ложным, т.е. когда ученик придет в магазин, в котором есть данный учебник. Действительно, в этом случае ученик купит нужный ему учебник и не будет больше искать книжные магазины. Результат блок-схемы представлен на рис. 2.12.

Здесь тело цикла состоит из одного действия «Найти другой книжный магазин». Переменной цикла в явном виде нет, но можно подразумевать номер магазина, в который пришел ученик в очередной раз. Как любой другой цикл с предусловием, данный цикл может ни разу не выполниться (не иметь итераций), если в первом же магазине окажется нужный учебник.

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

Пример 9. Даны числа . Известно, что число меняется от -10 до 10 с шагом 5, и не изменяется. Вычислить сумму и разность чисел и для всех значений и .

Решение. В отличие от примеров 3 и 6 здесь число меняется от -10 до 10 с шагом 5. Это означает, что число является переменной цикла. Сначала равно -10 – это первоначальное задание переменной цикла. Далее будет изменяться с шагом 5, и т.д. пока не будет достигнуто значение 10 – это соответствует изменению переменной цикла. Итерации надо повторять, пока выполняется условие ««. Итак, будет принимать следующие значения: -10, -5, 0, 5, 10. Число не будет являться переменной цикла, т.к. и не изменяется по условию задачи. Результат блок-схемы (с предусловием) представлен на рис. 2.13.

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

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

Приведем блок-схему, использующую цикл с постусловием, на рис. 2.14.

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

Источник

Оцените статью
REMNABOR
Adblock
detector