Пример 1. Составить схему алгоритма вычисления значения :
Для начала для построения блок –схемы алгоритма опишем последовательность действий, необходимых для решения данной задачи:
Исходя из этого составляем блок-схему алгоритма согласно ГОСТ, используя соответствующие блоки.
Пример 2. Составить схему алгоритма вычисления значения: x=a+b при a>b, x=a*b, при a
Не нашли то, что искали? Воспользуйтесь поиском:
Лучшие изречения: Учись учиться, не учась! 11142 — | 8281 —
или читать все.
При пользовании «Инфоуроком» вам не нужно платить за интернет!
Минкомсвязь РФ: «Инфоурок» включен в перечень социально значимых ресурсов .
Практическая раборта № 1
Построение блок-схем алгоритмов(теория)
Предпочтительнее до записи на алгоритмическом языке представить алгоритм в виде блок-схемы. Для построения алгоритма в виде блок-схемы необходимо знать назначении каждого из блоков. В таблице 1. приводятся типы блоков и их назначение.
Начало или конец
Ввод или вывод данных
Процесс (в частности вычислительный)
Цикл с параметром ( for)
Основные типы алгоритмов
Алгоритмизация выступает как набор определенных практических приёмов, особых специфических навыков рационального мышления в рамках заданных языковых средств. Алгоритмизация вычислений предполагает решение задачи в виде последовательности действий, т.е. решение, представленное в виде блок-схемы. Можно выделить типичные алгоритмы. К ним относятся: линейные алгоритмы, разветвляющиеся алгоритмы, циклические алгоритмы.
Линейный алгоритм является наиболее простым. В нём предполагается последовательное выполнение операций. В этом алгоритме не предусмотрены проверки условий или повторений.
Пример : Вычислить функцию z= (х-у)/x +y 2 .
Составить блок-схему вычисления функции по линейному алгоритму. Значения переменных х , у могут быть любые, кроме нуля, вводить их с клавиатуры.
Решение: Линейный алгоритм вычисления функции задан в виде блок-схемы на рис.1. При выполнении линейного алгоритма значения переменных вводятся с клавиатуры, подставляются в заданную функцию, вычисляется результат, а затем выводится результат.
Рис.1. Линейный алгоритм
Назначение блоков в схеме на рис.1:
Блок 1 в схеме служит в качестве логического начала.
Блок 2 соответствует вводу данных.
Блок 3 представляет арифметическое действие.
Блок 4 выводит результат.
Блок 5 в схеме служит в качестве логического завершения схемы.
Разветвляющийся алгоритм предполагает проверку условий для выбора решения. Соответственно в алгоритме появятся две ветви для каждого условия.
В примере рассматривается разветвляющийся алгоритм, где в зависимости от условия выбирается один из возможных вариантов решений. Алгоритм представляется в виде блок-схемы.
Пример : При выполнении условия x >0 вычисляется функция: z = x + y , иначе, а именно, когда х=0 или x , вычисляется функция: z = x 2 + y 2 .
Составить блок-схему вычисления функции по алгоритму ветвления. Значения переменных х, у могут быть любые, вводить их с клавиатуры.
Решение : На рис.2 представлен разветвляющийся алгоритм, где в зависимости от условия выполнится одна из веток. В блок-схеме появился новый блок 3, который проверяет условие задачи. Остальные блоки знакомы из линейного алгоритма.
Рис.2. Алгоритм ветвления
Пример : Найти максимальное значение из трёх различных целых чисел, введенных с клавиатуры. Составить блок-схему решения задачи.
Решение : Данный алгоритм предполагает проверку условия. Для этого выбирается любая из трёх переменных и сравнивается с другими двумя. Если она больше, то поиск максимального числа окончен. Если условие не выполняется, то сравниваются две оставшиеся переменные. Одна из них будет максимальной. Блок-схема к этой задаче представлена на рис 3.
Рис. 3. Блок-схема поиска максимума
Циклический алгоритм предусматривает повторение одной операции или нескольких операций в зависимости от условия задачи.
Из циклических алгоритмов выделяют два типа:
с заданным количеством циклов или со счётчиком циклов;
количество циклов неизвестно.
Пример : В цикле вычислить значение функции z=x*y при условии, что одна из переменных x меняется в каждом цикле на единицу, а другая переменная у не меняется и может быть любым целым числом. В результате выполнения цикла при начальном значении переменной х=1 можно получить таблицу умножения. Количество циклов может быть любым. Составить блок-схему решения задачи.
Решение : В примере количество циклов задаётся. Соответственно выбирается алгоритм циклов первого типа. Алгоритм этой задачи приводится на рис. 4.
Во втором блоке вводятся количество циклов n и любые целые числа х , y .
В блок-схеме появился новый блок 3, в котором переменная i считает количество циклов, после каждого цикла увеличиваясь на единицу, пока счётчик не будет равен i=n . При i=n будет выполнен последний цикл.
В третьем блоке указывается диапазон изменения счётчика цикла (от i =1 до i=n ).
В четвёртом блоке изменяются значения переменных: z , x .
В пятом блоке выводится результат. Четвёртый и пятый блоки повторяются в каждом цикле.
Рис.4 . Циклический алгоритм со счётчиком циклов
Этот тип циклических алгоритмов предпочтителен, если дано количеством циклов.
Если количество циклов неизвестно, то блок-схемы циклических алгоритмов могут быть представлены в виде рисунков 5, 6.
Пример : Вычислить у=у- x пока y > x , если y =30 , x =4. Подсчитать количество выполненных циклов, конечное значение переменной у . В цикле вывести значение переменной у , количество выполненных циклов. Составить блок-схему решения задачи.
Решение : В примере количество циклов неизвестно. Соответственно выбирается алгоритм циклов второго типа. Алгоритм этой задачи приводится на рис. 5.
Условие проверяется на входе в цикл. В теле цикла выполняется два блока:
2) вывод значений переменных i , y .
Цикл выполняется до тех пор, пока выполняется условие y>x . При условии равенства этих переменных у=х или y цикл заканчивается.
Алгоритм, представленный на рис.5, называется циклический алгоритм с предусловием , так как условие проверяется в начале цикла или на входе в цикл.
Рис.5. Блок-схема циклического алгоритма с предусловием
Во втором блоке вводятся y =30 , x =4.
В третьем блоке проверяется условие y > x на входе в цикл. Если условие выполняется, то переход к блоку 4, иначе на блок 6.
В четвёртом блоке вычисляется значение переменной у , подсчитывается количество выполненных циклов i = i +1 .
В пятом блоке выводится результат:
количество выполненных циклов i .
Пример : Составить блок-схему примера (рисунок 5), проверяя условие выхода из цикла. В этом примере условие задачи не меняется, и результат выведется тот же, но блок-схема будет другой.
Решение : В этом случае проверяется условие на выход из цикла: y . При этом условии цикл не выполняется. Условие в блок-схеме следует перенести в конец цикла, после вывода на печать. Цикл выполняется до тех пор, пока выполняется условие y>x .
Алгоритм, если условие перенести в конец цикла, называется алгоритмом цикла с постусловием . Алгоритм этой задачи приводится на рис. 6.
Во втором блоке вводятся y =30 , x =4 .
В третьем блоке вычисляется значение переменной у , подсчитывается количество выполненных циклов i = i +1 .
В четвёртом блоке выводится результат:
количество выполненных циклов i .
В пятом блоке проверяется условие y x на выход из цикла. Если условие выполняется, то переход к блоку 6, иначе на блок 3 и цикл повторяется.
На этом уроке мы на практике разберём: как составлять алгоритмы различных типов, а также как «читать» алгоритм по готовой блок-схеме.
Конспект
Составление линейных алгоритмов
На предыдущих уроках мы узнали, что такое алгоритм, какие бывают виды алгоритмов, и кто их исполняет.
Сегодня мы попрактикуемся в составлении алгоритмов. Это очень важные навыки. Мы уже неоднократно отмечали, что составить алгоритм, то есть объяснить другому, как выполнять те или иные задачи так, чтобы это было понятно каждому, — очень тяжело. Наша задача – научиться составлять алгоритмы для различных примеров, чтобы впоследствии, когда вы столкнётесь с необходимостью составлять алгоритмы для написания различных программ, это не составляло для вас особого труда.
Начнём мы с самых простых алгоритмов – линейных. Их составление, обычно, не вызывает особого труда. Однако, навыки составления таких алгоритмов чрезвычайно важны.
Пример 1. Составить алгоритм запуска программы Paint в ОС Windows 7.
Вспомним из курса информатики 5 класса порядок действий для запуска программы Paint.
- Войти в меню «Пуск».
- Войти в пункт «Все программы».
- Войти в пункт «Стандартные».
- Выбрать программу «Paint».
Данный алгоритм в виде блок-схемы имеет следующий вид:
Рис. 1. Блок-схема к примеру 1.
Составление алгоритмов с ветвлениями
Рассмотрим пример на составление алгоритмов с ветвлениями.
Пример 2. Составьте алгоритм для перехода дороги на светофоре.
Возможны следующие ситуации: в тот момент, когда мы подошли к дороге горел красный или зелёный свет. Если горел зелёный свет, то можно переходить дорогу. Если же горел красный свет, то необходимо дождаться зелёного – и уже тогда переходить дорогу.
Таким образом, алгоритм имеет следующий вид:
- Подойти к светофору.
- Посмотреть на его свет.
- Если горит зелёный, то перейти дорогу.
- Если горит красный, то подождать, пока загорится зелёный, и уже тогда перейти дорогу.
Блок-схема данного алгоритма имеет вид:
Рис. 3. Блок-схема к примеру 2.
Составление циклических алгоритмов
Рассмотрим пример на составление циклического алгоритма. Мы уже несколько раз обсуждали перевод чисел из десятичной системы в двоичную. Теперь пришло время чётко сформулировать этот алгоритм.
Напомним, что его принцип состоит в делении числа на 2 и записей остатков, получающихся при делении.
Пример 3. Составить алгоритм перевода чисел из десятичной системы в двоичную.
То есть, алгоритм будет выглядеть так:
- Если число равно 0 или 1, то это и будет его двоичное представление.
- Если число больше 1, то мы делим его на 2.
- Полученный остаток от деления записываем в последний разряд двоичного представления числа.
- Если полученное частное равно 1, то его дописываем в первый разряд двоичного представления числа и прекращаем вычисления.
- Если же полученное частное больше 1, то мы заменяем исходное число на него и возвращаемся в пункт 2).
Блок-схема этого алгоритма выглядит следующим образом:
Рис. 4. Блок-схема к примеру 3.
Примечание: подумайте, можно ли как-то упростить приведенную блок-схему.
«Чтение» алгоритмов
Пример 4. По заданной блок-схеме выполнить действия алгоритма для числа 23.
Рис. 5. Блок-схема к примеру 4.
- a=23
- 23+5=28
- 28 35
- 76 – двузначное число
- 76-50=26.
На этом уроке мы разобрали примеры составления алгоритмов, а также пример «чтения алгоритма» по готовой блок-схеме.
На следующем уроке мы обсудим игры и выигрышные стратегии.
Как убить Кощея?
Наверное, все помнят из детства сказку, в которой рассказывается о местонахождении смерти Кощея Бессмертного: «Смерть моя – на конце иглы, которая в яйце, яйцо – в утке, утка – в зайце, заяц в сундуке сидит, сундук на крепкий замок закрыт и закопан под самым большим дубом на острове Буяне, посреди моря-океяна …»
Рис. 6. Кощей Бессмертный и Василиса Премудрая (Источник).
Предположим, вместо Ивана-царевича бороться с Кощеем был брошен Иван-дурак. Давайте поможем Василисе Премудрой составить такой алгоритм, чтобы даже Иван-дурак смог убить Кощея.
- Конечно же, сначала необходимо разыскать остров Буян (на такие вещи, будем считать, Иван-дурак способен).
- Поскольку сундук закопан под самым большим дубом, то сначала необходимо найти самый большой дуб на острове.
- Затем нужно выкопать сам сундук.
- Прежде чем доставать зайца, необходимо сломать крепкий замок.
- Теперь уже можно достать зайца.
- Из зайца нужно достать утку.
- Из утки достать яйцо.
- Разбить яйцо и достать иголку.
- Иголку поломать.
Это тоже линейный алгоритм, хотя и более длинный, чем алгоритм запуска программы Paint.
Его блок-схема выглядит так:
Рис. 7. Блок-схема.
На распутье…
И снова обратимся к сказочным персонажам в поисках примеров различных алгоритмов. Когда речь идёт об алгоритмах с ветвлениями, то, конечно, нельзя не вспомнить о богатыре, стоящем на распутье возле камня.
Рис. 8. Богатырь на распутье (Источник).
На камне написано:
«Направо пойдёшь – коня потеряешь, себя спасёшь; налево пойдёшь – себя потеряешь, коня спасёшь; прямо пойдёшь – и себя и коня потеряешь».
Попробуем составить алгоритм действий, который составил автор надписи на камне для путников?
- Если мы пойдём направо, то потеряем коня. Если же мы не пойдём направо, то у нас остаётся два варианта (мы считаем, что назад возвращаться путник не будет): пойти прямо и налево.
- В случае, если мы пойдём налево, то потеряем себя, а коня спасём.
- Если же мы пойдём прямо, то потеряем и себя, и коня.
Блок-схема этого алгоритма выглядит так:
Рис. 9. Блок-схема.
Репка
Русские народные сказки не оставили нас и без циклического алгоритма. И, как ни странно, спрятался он в одной из самых незамысловатых сказок – «Репке».
Вспомним сюжет сказки: дед тянет-потянет – вытянуть не может. Затем на помощь к деду по очереди подходят новые персонажи – и так до тех пор, пока не приходит мышка.
Попытаемся составить алгоритм действий всех персонажей сказки для того, чтобы они всё-таки смогли вытянуть Репку.
- Изначально к Репке подошёл дед и попытался вытянуть.
- Поскольку вытянуть Репку не получилось, то понадобилась помощь следующего персонажа.
- И так происходит до тех пор, пока не появилась мышка (или, другими словами, до тех пор, пока Репку не вытащили).
В виде блок-схемы этот алгоритм выглядит следующим образом:
Рис. 11. Блок-схема.
Список рекомендованной литературы
- Босова Л.Л. Информатика и ИКТ: Учебник для 6 класса. – М.: БИНОМ. Лаборатория знаний, 2012
- Босова Л.Л. Информатика: Рабочая тетрадь для 6 класса. – М.: БИНОМ. Лаборатория знаний, 2010.
- Босова Л.Л., Босова А.Ю. Уроки информатики в 5-6 классах: Методическое пособие. – М.: БИНОМ. Лаборатория знаний, 2010.
Рекомендованные ссылки на ресурсы интернет
- Интернет портал «Сообщество взаимопомощи учителей» (Источник).
- Интернет портал «Nsportal.ru» (Источник).
- Интернет портал «Фестиваль педагогических идей» (Источник).
Рекомендованное домашнее задание
- §3.3, 3.4 (Босова Л.Л. Информатика и ИКТ: Учебник для 6 класса);
- Постарайся самостоятельно составить линейный алгоритм из 5-6 фигур;
- Составь блок-схему циклического алгоритма выполнения домашнего задания;
Если вы нашли ошибку или неработающую ссылку, пожалуйста, сообщите нам – сделайте свой вклад в развитие проекта.