Программные алгоритмы. Базовые понятия пpогpаммиpования

Авто 23.05.2019
Авто

ОТКРЫТЫЙ УРОК ПО МАТЕМАТИКЕ

«Алгоритм. Программа действий»

2 класс «Школа 2100»

Цели урока: 1. Доказать, что с помощью общего алгоритма, можно выполнять большое количество разных частных заданий; 2. Закрепить умение действовать по алгоритму, выполняя то или иное задание; 3. Закрепить умение различать алгоритмы разных видов: линейный, разветвленный, циклический; 4. На примере доказать присутствие действий по алгоритму в обычной жизни.

Задачи урока: 1. Решение различных видов заданий с помощью алгоритмов действий; 2. Обосновать выбор данного вида алгоритма.

ХОД УРОКА:

Организационный момент – проверка готовности к уроку, настрой на успех.

Проверка домашнего задания – составление алгоритма «Сбор портфеля в школу».

Математическая разминка:

Определить, сколько в числе 534 сотен, десятков и единиц? (В числе 534 – 5 сотен, 53 десятка, 534 единицы). Запишите это число в тетради разными способами.

(534 = 5 сот. 34 ед. = 53 дес. 4 ед. = 534 ед.)

Соберите число по сумме разрядных слагаемых и запишите его.

700 + 30 + 4 = (734) 500 + 6 = (506)

В ряду чисел найдите «лишнее» число и объясните свой выбор.

720, 540, 306, 50, 910, 300.

(Все числа, кроме 50 , - трехзначные; все числа, кроме 306 , - круглые; во всех числах, кроме 300 по одному нулю).

Итак, после небольшой разминки, вы готовы двигаться вперед? Чтобы ваш боевой настрой сохранился до конца урока, наш друг Совушка будет помогать его поддерживать. (Желаю успеха! У вас всё получится!)

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

Что напоминает вам этот совет? Если все действия проговорим по порядку, то что получим? (Алгоритм). А если мы запишем действияи посоветуем кому-нибудь воспользоваться этими записями, то что получим? (Программу действий). В чем отличие алгоритма от программы действий? (Алгоритм – это устный порядок действий, а программа действий – это записанный алгоритм).

Ну что ж, вы готовы назвать тему нашего урока? Чему же он будет посвящен? «Алгоритм. Программа действий». А с какой целью мы будем сегодня говорить об этом и выполнять задания? (Обратить внимание учащихся на цели урока).

Какие задачи мы перед собой ставим, чтобы добиться этих целей? (Обратиться к задачам урока).

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

Перейдем к первому заданию:

- вычислить сумму чисел 517 + 76 (593)

По какому алгоритму будем действовать? («Сложение в столбик с переходом через разряд»).

2 – сложить единицы;

3 – записать единицы под единицами и учесть переход через разряд;

4 – сложить десятки с учетом перехода через разряд;

5 – записать десятки под десятками и учесть переход через разряд

6 – сложить сотни с учетом перехода через разряд;

Действуя по общему алгоритму, мы можем вычислить сумму любых чисел. Докажем это. Самостоятельно вычислите сумму чисел 409 и 298 (707).

- вычислить разность чисел 724 – 235 (489)

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

1 – записать числа столбиком разряд под разрядом;

2 – вычитаем единицы: если можем вычесть, вычитаем и записываем единицы под единицами, если не можем, занимаем 1 десяток и раскладываем его на 10 единиц плюс те единицы, которые уже есть и вычитаем единицы, записываем единицы под единицами;

3 – помним, что занимали 1 десяток, вычитаем десятки: если можем вычесть, вычитаем и записываем десятки под десятками, если не можем, занимаем 1 сотню и раскладываем ее на 10 десятков плюс те десятки, которые уже есть и вычитаем десятки, записываем десятки под десятками;

4 – помним, что занимали 1 сотню, вычитаем сотни и записываем сотни под сотнями; 5 – прочитать полученный результат.

Самостоятельно вычислите разность чисел 961 – 583 (378)

А теперь подтвердите свои умения и выполните сложение и вычитание «сказочных чисел»:

ΨӘ0 + Δ = (ΨӘΔ) Ω00 + ӨΛ = (ΩӨΛ)

ΥφΨ – φΨ = (Υ00) £0§ - £00 = (§)

Какие дополнительные правила помогут вам справиться с этим заданием?

(Если к любому числу прибавить 0, то получим то же самое число; если из любого числа вычесть то же самое число, то получим 0).

Изменился ли алгоритм ваших рассуждений при решении примеров со «сказочными числами»?

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

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

Определите какой вид имеет блок-схема алгоритма сложения трехзначных чисел? (Линейный). Что такое линейный алгоритм? (Алгоритм, в котором все действия следуют друг за другом в определенном порядке. В некоторых случаях порядок действий можно изменять). Какой вид имеет блок-схема алгоритма вычитания трехзначных чисел? (Линейный, разветвленный, циклический). Что такое разветвленный алгоритм? (Алгоритм, содержащий условие и выбор действия). Что такое циклический алгоритм? (Алгоритм, в котором есть возврат к предыдущим действиям). Покажите на 2-ой схеме части каждого вида алгоритмов.

Блок-схема 1 алгоритма Блок-схема 2 алгоритма

ФИЗМИНУТКА

Мы встречаемся с алгоритмами не только при решении примеров. Приведите примеры заданий, в которых также удобно использовать алгоритм. (Уравнения). Проверим нашу гипотезу. Что такое гипотеза? (Научное предположение. Если предположение подтвердится, то оно становится правилом или законом. Если не подтвердится, то выдвигаем новую гипотезу).

Решаем уравнение. Что такое уравнение? (Равенство, в котором есть неизвестная величина, переменная). Что значит решить уравнение? (Найти такое значение переменной, при котором наше равенство будет верным).

Х + 241 = 729

Применяем алгоритм.

1 – смотрим на знак, чтобы определить целое и части;

2 – обозначаем целое и части и подписываем компоненты действия;

3 – определяем, чем является неизвестная величина;

4 – выбираем нужное правило;

5 – записываем способ решения;

6 – вычисляем;

7 – записываем результат;

8 – выполняем проверку.

К какому виду относится этот алгоритм? (К линейному). Опираясь на алгоритм, решаем уравнение.

1 слаг. 2 слаг. сумма

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

Но только ли в математике мы можем встретиться с действиями по алгоритму? Я предлагаю вам построить макет школы «Мир интеллекта», для которого нужен особый строительный материал, который отвечал бы строго определенным требованиям.

Соответствие нашего строительного материала необходимо проверять, пользуясь программой действий. (Работа с блоками Дьенеша).

У меня на столе лежат строительные блоки, но не все из них пригодны для нашей стройки. Нам потребуются только те блоки, которые пройдут отбор. В этом нам поможет программа действий «Архитекторы».

Пользуясь данной программой действий, отобрать несколько блоков. Предложить поучаствовать в отборе гостям. Отобрав несколько блоков, подвести учащихся к выводу, что для стройки нам нужны не красные блоки и не круглые. Отметить, что эту работу мы продолжим и обязательно построим макет школы «Мир интеллекта».

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

А теперь вернемся к нашим целям и задачам урока. (Проанализировать, добились ли мы каждой цели и выполнили ли поставленные задачи – ИТОГ УРОКА).

В качестве оценок за урок, мне бы хотелось вручить вам сертификаты и дипломы за участие в олимпиадах по математике и информатике.

Домашнее задание: составить алгоритм решения задач.

Спасибо за вашу работу на уроке. Урок окончен.

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

Свойства алгоритма:

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

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

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

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

-массовость - пригодность алгоритма для решения задач некоторого класса.

Способы записи алгоритма:

-словесный – способ на естественном языке.

-графический -описания алгоритма с помощью схем.

Процесс выполнения операций или групп операций

ввод исходных данных, вывод результата

Решение-выбор направления выполнения

Модификация-выполнение операций, меняющих команды или группы команд, изменяющих программ.

Соединители линий на одной странице.

Межстраничные соединители.

-язык программирования –удобен для ввода в комп-р.

-псевдокод -это язык, к-ый использует структуру и синтексис достаточно формализованного языка и одновременно допускает конструкции естеств. Языка.

Виды алгоритмов и основные принципы составления алгоритмов.

-Линейный – алгоритм, в кот-ом команды выполняются последовательно друг за другом в порядке их естественного следования независимо от каких-либо условий. S1, s2 , S3…Sn

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

· Полная условная конструкция (полное ветвление)

· Неполное условная конструкция

· Выбор из нескольких

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

· Цикл с параметром

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

· Цикл с постусловием. Выполняется хоть один раз.

Основные принципы алгоритмизации:

1. Выявить исходные данные, результаты и назначить им имена.

2. Метод решения задач.

3. Разбить метод решения задач на этапы.

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

5. В полученной схеме при любом варианте вычислений.

Предусмотреть выдачу результатов или сообщений об их отсутствии.

Обеспечить возможности после выполнение любой операции так или иначе перейти к блоку конец.

40.Основные алгоритмические структуры

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

Рассмотрим основные структуры алгоритмов, а их шесть:

· Следование. Это последовательность блоков (или групп блоков) алгоритма. В программе следование представлено в виде последовательного выполнения операций

·
Разветвление. Данная алгоритмическая структура применяется в том случае, когда в зависимости от условия необходимо выполнить одно или другое действие

·
Обход. Эта структура является частным случаем разветвения, когда в одной из ветвей нет никаких действий.

·
Множественный выбор. Эта структура является обобщением раветвления, когда необходимо выполнить одно из нескольких действий в зависимости от значения переменной A.

Урок математики

«Программа действий. Алгоритм».

Цели: 1)обучающая

Сформировать первоначальные представления о понятиях «блок-схема», «программа

действий», «алгоритм», способность к чтению и составлению простейших программ заданных алгоритмов.

2)развивающая

Развивать мыслительные операции, внимание, память, математическую речь, познавательные процессы, творческие способности, интерес к математике, умения и навыки самостоятельной и групповой работы.

3)воспитывающая

Формировать коммуникативные навыки (воспитание товарищества, взаимопомощи).

1. Самоопределение к деятельности (организационный момент)

2. Актуализация знаний.

Ребята, давайте вспомним, чем мы занимались на прошлом уроке?

(учились находить операцию и результат операции; учились находить операцию обратную данной)

Все эти знания могут нам сегодня пригодиться, чтобы помочь Ивану Царевичу победить злого Кощея и освободить Василису Премудрую.

Хотите со мной отправиться в сказку про «Кощея Бессмертного»?

Ну что ж, в путь! (слайд №1)

Ребята, многие наверное из вас читали эту сказку, кто помнит, где спрятана смерть Кощея Бессмертного?

Давайте мысленно вместе с Иваном Царевичем преодолеем путь и победим злого Кощея.

Какие же препятствия нужно преодолеть на пути? Кто сможет это воспроизвести?

добраться достать догнать сбить достать победить

До дуба cундук зайца утку из моря Кощея

Молодцы! Я думаю, что Иван Царевич поблагодарил бы вас.

Ребята, а как нам показать, что эти действия идут именно в такой последовательности? Какой значок нам придумать? ()

Т.о. мы получили схему действий.

А как бы вы назвали полученную схему действий?

(план, маршрут, путь, путешествие,….)

Вывод: В математике такую схему называют блок-схемой.

В каждом её блоке операция, которую нужно выполнить.

Это наша программа действий.

Поэтому как вы думаете, какова тема нашего урока?

3. «Открытие» детьми нового знания.

Тема: «Программа действий. Алгоритм» (слайд №2)

А чему мы будем учиться сегодня на уроке? Что нового узнаем?

(познакомимся с понятием алгоритм, будем учиться составлять программу действий, пользуясь алгоритмом).

1) -Какая же 1-я операция в нашей программе? (добраться до дуба) (слайд №3)

Ребята, а давайте посмотрим простой ли это дуб? А дуб-то не простой, а с заданием. И только выполнив его, мы сможем добраться до дуба.

Какое же задание нам надо выполнить?

(из 45 вычесть 14, т.е. заполнить пустое окошечко)

А кто думает иначе? Результат операции равен 31.

2) –Итак, до дуба мы добрались! Молодцы!

А сундук-то тоже необычный, а математический (слайд № 5)

Ребята, а как нам здесь-то быть?

Вопрос стоит на первом месте, а результат известен? Что нам делать?

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

3) -Молодцы! Научились выполнять обратную операцию, достали сундук!

Открываем его, а из него выскакивает заяц и убегает (слайд № 6)

Попробуем его догнать. Поэтому на вопросы отвечайте быстро (слайд № 7)

Сосчитайте от 327 до 332, хором 1,2 группы.

А теперь в обратном порядке две другие группы.

Какое круглое число встретилось вам при счёте? (330)

Даёте характеристику этому числу, выложите графическую модель.

(330 – трёхзначное, т.к. в записи этого числа 3 знака, чётное, т.к. оканчивается на 0, соседи этого числа 329 и 331, сумма цифр числа равна 6, его можно представить в виде суммы разрядных слагаемых 330= 300+30, т. д…..)

(1 ученик выкладывает графическую модель этого числа на наборном полотне)

4) -Поймали мы зайца, но из него вылетела утка (слайд № 8)

Кто быстрее собьёт её из ружья?

Давайте, выразим 330см в различных единицах длины (слайд № 9)

Но в начале давайте вспомним, с какими единицами длины мы знакомы? Назовите их в порядке убывания (м, дм, см)

330см=…м…см 330см=…дм 330см=…м…дм

Самыми быстрыми и меткими у нас оказались …

Большое спасибо за работу, но наша-то конечная цель добраться до Василисы Премудрой, давайте пойдём дальше.

5) -Молодцы! Утку, мы сбили, а яйцо упало в море (слайд № 10)

Чтобы достать его нужно подобрать подходящую схему и решить задачу (слайд № 11)

Задача: Иван Царевич проплыл по морю в первый день 12км. А во второй на 4км больше. Сколько километров проплыл Иван Царевич во второй день?

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

Решите задачу самостоятельно на индивидуальных досках.

Иван Царевич предлагает свой вариант ответа. Проверьте, пожалуйста (слайд № 12)

12+4=16(км)

Поднимите руку, у кого из вас такое же решение, как и у Иван Царевича. Кто не согласен,

поспорьте с ним.

Почему вы эту задачу решили действием сложения?

Как ответить на вопрос задачи?

6)- Вот и достали яйцо, осталось сломать иглу и Кощей будет побеждён (слайд № 13)

У вас на столах лежат карточки, на которых показано, как найти путь к Василисе Премудрой.

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

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

3. Постановка проблемы.

Какие операции надо выполнить, чтобы найти Василису Премудрую? (слайд № 14)

(-скакать на коне по лесу;

Плыть по морю на корабле;

Лететь на ковре самолёте через горы)

Что мы с вами составляем?

(план, маршрут, программу действий,…)

1-я группа пообщайтесь с классом, какую программу действий составили вы? (затем слово 2-й, 3-й, 4-й группам)

Почему в начале урока мы быстро составили программу действий, а сейчас не можем?

Почему возникли разные мнения? (мы не знаем порядка действий, не знаем, что за чем идёт)

Вывод: - В математике говорят, мы не знаем алгоритма (слайд № 15)

А без алгоритма, т.е. без порядка действий программу составить трудно.

А важно ли уметь её составлять? (да)

Для чего? (чтобы правильно выполнять действия, прийти к намеченной цели,…)

А часто ли в жизни нам приходится сталкиваться с алгоритмом?

А как нам узнать, правильное ли решение принял Иван Царевич, смогли ли мы ему помочь?

(достаю яйцо, раскрываю его, достаю 4 бумажки, на которых написано:

М Л Г М Л Г МОРЕ ЛЕС ГОРЫ МОРЕ ЛЕС ГОРЫ (слайд № 16)

Сейчас вы получите зашифрованный путь Ивана Царевича к Василисе Премудрой.

Разгадайте этот путь.

Что бы это значило? И выложите у себя на столах. (По заданному алгоритму дети

выкладывают)

(1 представитель от группы выступает)

А кто из вас изначально так составил?

Ребята, а кто составил по другому, это что ваша вина, вы что не хотели спасти Василису Премудрую?

А почему вы не смогли это сделать? (Не знали порядок действий. Не знали алгоритма).

Вывод: - Значит, что мы с вами сейчас составили? (алгоритм) (слайд №17)

А как по - другому можно сказать? (программа действий)

-Какими способами, т.е. чем может быть записана программа действий?

(буквами, словами. Картинками, блок-схемой,…) (слайд № 18)

-Мы свою программу выполнили?

-Вот и уничтожили злого Кощея. Молодцы! (слайд № 19)

-А почему мы смогли её выполнить? (потому что знали алгоритм)

5. Первичное закрепление.

1) -Люди, которые составляют эти программы, т.е. алгоритмы называются программистами.

Вы хотите ими сегодня побыть?

Но так как мы ещё маленькие попробуем составить программу действий с помощью картинок. (4 набора – режим дня)

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

(Дети выкладывают программу на наборное полотно).

Вывод: Каждый организованный человек живёт по режиму дня.

Но как вы поняли мы с вами составили только фрагмент из вашего режима.

Что, вы заметили?

- А можно ли какие-то этапы алгоритма, т.е. операции поменять местами?

Если мы поменяем, что-то от этого изменится?

Вывод: Те операции, которые можно поменять местами наз. перестановочными.

(меняю 2 любых операции)

А эти операции можно поменять местами? (нет)

Значит, как они будут называться, если те были перестановочными?

(неперестановочными)

Вывод: Итак, в программе операции могут быть перестановочны, а могут нет.

Какие ещё операции в этой программе могут быть перестановочны?

2)Работа в группах.

1 группа : Сделай бутерброд.

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

(В разном порядке даны картинки, на которых нарисованы: нож, булка хлеба, масло, отрезанный кусок хлеба, кусок мажут маслом).

Алгоритм «Сделай бутерброд» (предполагаемый вариант)

1) Возьми хлеб.

2) Возьми нож.

3) Отрежь кусок хлеба.

4) Возьми масло.

5) Намажь маслом кусок.

Некоторые операции могут быть перестановочными, дети обговаривают их.

2 группа: «Закопай червонцы».

(Помоги Буратино правильно закопать золотые червонцы на Поле чудес)

Даны карточки с отдельными операциями, дети должны наклеить их в нужном порядке.

Положи деньги в ямку. Скажи: «Крекс, фекс, пекс!» Полей водой. Выкопай ямку. Засыпь ямку землёй.

Алгоритм «Закопай червонцы» (предполагаемый вариант)

1) Выкопай ямку.

2) Положи деньги в ямку.

3) Полей водой.

4) Засыпь ямку землёй.

5) Скажи: «Крекс, фекс, пекс!»)

3 группа: «Помоги Вини-Пуху подкрепиться».

(Расставь события по порядку)

? – Вымой лапы.

? – Открой кран.

? – Сядь за стол.

? – Закрой кран.

? – Вытри лапы полотенцем.

? – Съешь мёд.

? – Возьми ложку.

(Предполагаемый ответ:

1. Открой кран.

2. Вымой лапы.

3. Закрой кран.

4. Вытри лапы полотенцем.

5. Сядь за стол.

6. Возьми ложку.

7. Съешь мёд.)

4 группа : Сборка пирамидки и разборка пирамидки.

а) Составить программу сборки пирамидки

б) Составь программу разборки собранной пирамидки.

(каждая группа защищают свой алгоритм)

Ребята, понравилось вам быть программистами?

Составили мы свои программы действий?

А кому было трудно?

6. Д/з: 1)№9 с.12 – из учебника на повторение;

2) Иван Царевич предлагает своё дифференцированное задание

в конвертах. (1,2 группе – посложнее, 3,4 – полегче)

Вы должны восстановить порядок действий.

1 группа: Приготовь яичницу.

2 группа: «Завари чай».

3 группа: Съешь яблоко».

4 группа: Съешь конфету»

3) по желанию: составить программу своего пути в школу (творческое задание)

(на следующем уроке эту программу удобно использовать на этапе постановки проблемы)

7. Итог урока.

Наш урок подошёл к концу.И вот сегодня в наши знания добавилась ещё одна маленькая деталь. Какая? Чему учились сегодня на уроке?- А, что такое алгоритм?-Кто помогал нам в этом? (Иван Царевич) -Поблагодарим его и пригласим на следующий урок, чтобы он проверил наши знания.-А сейчас оцените свою работу на уроке (на доске рисунок Ивана Царевича на коне)ёжик – если на уроке было трудно и вам нужна помощь;цветок – если можете работать самостоятельно, но ещё в чём-то затрудняетесь;ягодка – могу работать сам и могу помочь другому.-Над чем ещё надо поработать? (наметить цели последующей деятельности).-И я, и Иван Царевич благодарим вас за хорошую работу.Урок окончен!

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

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

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

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

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

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

Алгоритм должен быть понятен (доступен) пользователю и/или машине. Доступность пользователю означает, что он обязан отображаться посредством конкретных формализованных изобразительных средств, понятных пользователю. В качестве таких изобразительных средств используются следующие способы их записи:

  • словесный;
  • формульный;
  • табличный;
  • операторный;
  • графический;
  • язык программирования.

При словесном способе записи содержание последовательных этапов алгоритма описывается в произвольной форме на естественном языке.

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

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

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

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

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

Приведем пример словесного представления алгоритма на примере нахождения произведения п натуральных чисел (с= п = = 1 х 2 х 3 х 4 х... х п).

Этот процесс может быть записан в виде следующей системы последовательных указаний (пунктов):

  • 1. Полагаем с равным единице и переходим к следующему пункту.
  • 2. Полагаем / равным единице и переходим к следующему пункту.
  • 3. Полагаем с равным с=сх/ и переходим к следующему указанию.
  • 4. Проверяем, равно ли /" числу п. Если / = п, то вычисления прекращаем. Если / п, то увеличиваем / на единицу и переходим к пункту 3.

Классификация и свойства алгоритмов

Алгоритмы, в соответствии с которыми решение поставленных задач сводится к арифметическим действиям, называются численными алгоритмами.

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

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

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

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

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

Каждая команда алгоритма должна определять однозначное действие исполнителя. Такое свойство алгоритмов называется определенностью (или точностью) алгоритма.

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

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

Поскольку разработка алгоритмов - процесс творческий, требующий умственных усилий и затрат времени, предпочтительно разрабатывать алгоритмы, обеспечивающие решения всего класса задач данного типа. Например, если составляется алгоритм решения кубического уравнения ах 3 + Ьх 2 + сх + с1 = 0, то он должен быть вариативен, т. е. обеспечивать возможность решения для любых допустимых исходных значений коэффициентов а, Ь, с, с1. Про такой алгоритм говорят, что он удовлетворяет требованию массовости. Свойство массовости не является необходимым свойством алгоритма. Оно, скорее, определяет качество алгоритма; в то же время свойства точности, понятности и конечности являются необходимыми (иначе это не алгоритм).

Запись алгоритмов в виде блок-схем

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

Схема алгоритма - графическое представление алгоритма, дополняемое элементами словесной записи. Каждый пункт алгоритма отображается на схеме некоторой геометрической фигурой или блоком. При этом правило выполнения схем алгоритмов регламентирует ГОСТ 19.002-80 «Единая система программной документации» (табл. 1.28).

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

Таблица 1.28. Основные элементы блок-схем

Наименование

по ГОСТ 19.003-80 (ЕСПД):а = 10,15,20 мм; b = ^, 5а

Блок вычислений

Вычислительные действия или последовательность действий

Логический

Выбор направления выполнения алгоритма в зависимости от некоторого условия

Блок ввода-

  • 1. Общие обозначения ввода (вывода) данных (вне зависимости от физического носителя).
  • 2. Вывод данных, носителем которых является документ

Начало или конец алгоритма, вход в программу или выход из нее

г = а/4

Процесс пользователя (подпрограмма)

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

модификации

Функция выполняет действия, изменяющие пункты (например, заголовок цикла) алгоритма

Соединитель

Указание связи прерванными линиями между потоками информации в пределах одного листа

Межстраничное соединение

Указание связи между информацией на разных листах

Базовые структуры алгоритмов

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


Рис. 1.26. Примеры структур алгоритмов: а - линейный алгоритм; б - алгоритм с ветвлением; в - алгоритм с циклом

Линейными называются алгоритмы, в которых действия осуществляются последовательно друг за другом. Стандартная блок-схема линейного алгоритма приводится на рис. 1.26, а (вычисление суммы двух чисел - А и В).

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

Примером может являться разветвляющийся алгоритм, изображенный в виде блок-схемы (рис. 1.26, б). Аргументами этого алгоритма являются две переменные А, В , а результатом - переменная X. Если условие А > В истинно, то выполняется операция X := А х В, в противном случае выполняется X := А + В. В результате печатается то значение переменной X, которое она получает при выполнении одной из серий команд.

Циклическим называется алгоритм, в котором некоторая последовательность операций (тело цикла) выполняется многократно. Однако «многократно» не означает «до бесконечности». Организация циклов, никогда не приводящая к остановке в выполнении алгоритма, является нарушением требования его результативности - получения результата за конечное число шагов.

В цикл в качестве базовых входят - блок проверки условия и тело цикла. Перед операцией цикла осуществляется начальное присвоение значений тем переменным, которые используются в теле цикла. Если тело цикла расположено после проверки условий Р (цикл с предусловием), то может случиться так, что при определенных условиях тело цикла не выполнится ни разу. Такой вариант организации цикла, управляемый предусловием, называется цикл «ПОКА»/«WHILE» (здесь условие - это условие на продолжение цикла).

Возможен другой случай, когда тело цикла выполняется, по крайней мере, один раз и будет повторяться до тех пор, пока не станет истинным условие. Такая организация цикла, когда его тело расположено перед проверкой условия, носит название цикла с постусловием, или цикла «ДО»/«FOR». Истинность условия в этом случае - условие окончания цикла. Отметим, что возможна ситуация с постусловием и при организации цикла «ПОКА». Итак, цикл «ДО» завершается, когда условие становится истинным, а цикл «ПОКА» - когда становился ложным. Современные языки программирования имеют достаточный набор операторов, реализующих как цикл «ПОКА», так и цикл «ДО».

Рассмотрим пример алгоритма вычисления факториала, изображенный на рис. 1.26 (с циклом «ПОКА»). Переменная N получает значение числа, факториал которого вычисляется. Переменной N, которая в результате выполнения алгоритма должна получить значение факториала, присваивается первоначальное значение 1. Переменной К также присваивается значение 1. Цикл будет выполняться, пока справедливо условие N> К. Тело цикла состоит из двух операций N = N1 х К и К= К + 1.

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

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

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

Контрольные вопросы

  • 1. Дайте классификацию информации.
  • 2. Каковы преимущества цифровой информации по отношению к аналоговой?
  • 3. Перечислите методы кодирования символов.
  • 4. Перечислите методы кодирования численной информации.
  • 5. Переведите число 32 451 10 в шестнадцатеричную и восьмеричную системы счисления.
  • 6. Переведите число 32 451 16 в десятичную и восьмеричную системы счисления.
  • 7. В чем заключаются особенности двоичной арифметики?
  • 8. Подсчитайте произведение 1ГА 16 и 2ВС1 6 по модулю 8.
  • 9. Подсчитайте сумму 457 8 и 375 8 по модулю 3.
  • 10. Перечислите логические элементы ЭВМ.
  • 11. Что такое логические узлы ЭВМ?
  • 12. Составьте таблицы истинности для левого (-1(А д В)) и правого (-И V -,б) выражений 1-го закона де Моргана. Проверьте их на соответствие.
  • 13. Составьте таблицы истинности для левого (-1(А V В)) и правого (-.А V -,б) выражений 2-го закона де Моргана. Проверьте их на соответствие.
  • 14. Последний столбец таблицы истинности для двухместных операций, очевидно, может содержать 16 = 2 4 различных сочетаний «1» и «О». Следовательно, всего может быть определено 16 логических операций над двумя переменными, из которых нами рассмотрены только пять. Составьте таблицу истинности для одной из 9 оставшихся вне рассмотрения функций и попытайтесь построить логическое выражение для этой функции.
  • 15. Перечислите базовые структуры алгоритмов и программ.

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

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

Как создаются алгоритмы действий?

Мы постоянно сталкиваемся с этим в обычной жизни. Какие действия мы совершаем, чтобы пополнить счет своего мобильного телефона? Каждый из нас — разные. Так как способов пополнения счета несколько, следовательно мы все по-разному это делаем. Результат, правда всегда один получается — появление средств на телефоне.

Или еще пример: чтобы скопировать картинку или текст, нажимаем правой кнопкой мыши на картинку, затем выбираем «Копировать», помещаем в нужное место, нажимаем правой кнопкой » Вставить», и результат достигнут.

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

Опишите последовательность действий — это запоминается

Создать алгоритм действий можно, описав или изобразив его последовательность. Знают ли все, что надо сделать, чтобы посадить дерево? Возможно, основные шаги понятны всем, но вот когда деревце поливать, перед посадкой или после, помнит не каждый. Созданный алгоритм позволит все действия выполнить в правильной последовательности.

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

Алгоритм действий в графике — это блок-схема

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

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

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

Блок-схемы применяются в продажах

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

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

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

Сервисы для разработки блок-схем

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

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

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

Создавайте игровые блок-схемы для своих детей

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

Моя блок-схема

Вот какая блок-схема у меня получилась в первый раз. Для того, чтобы увеличить изображение, нажмите на него. После перехода на Cacoo, под записью «просмотр фигуры», нажимайте на картинку. Она откроется в большом окне. Удачи!



Рекомендуем почитать

Наверх