Программирование программа алгоритм. Алгоритмы в программировании

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

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

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 слаг. сумма

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

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

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

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

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

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

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

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

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

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

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

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

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

Большой набор объектов

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

Справочный материал

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

Достоинства

1. Возможность создавать программы без знаний языка программирования;
2. Большой набор инструментов для создания интерфейса;
3. Удобный и понятный интерфейс;
4. Возможность работать с файлами, папками, реестром и т.д;
5. Русский язык.

Недостатки

1. Алгоритм не предназначен для серьезных проектов;
2. Компилировать проект в.exe можно только на сайте разработчика;
3. Довольно долго работает с графикой.

Алгоритм – это интересная среда разработки, которая подтолкнет вас к изучению языков программирования. Здесь вы сможете проявить фантазию, создать что-то уникальное, а также разобраться с принципом работы программ. Но Алгоритм нельзя назвать полноценной средой – все же это просто конструктор, где вы можете изучить основы. Если с ее помощью вы научитесь разрабатывать проекты, то в дальнейшем сможете перейти к изучению Delphi и C++ Builder.

Программирование

Задача

1.Действие

2. Процесс


3 АЛГОРИТМ инструкцией.

4. ПРОГРАММОЙ

Нижний уровень компилятор или интерпретатор .

Компилятор

Интерпретатор

Входные данные (устройство ввода) -> Память (программа)(внутренние данные) -> <-> Процессор.

Две главные компоненты ЭВМ:

1) ПАМЯТЬ данными

Емкость (размер);

2) ПРОЦЕССОР

Представление данных в памяти ЭВМ. Понятие переменной, константы, типа, диапазона значений.

В алгоритмах и программах данные встречаются в виде констант и переменных.

КОНСТАНТА - это постоянная величина, которая определяется своим значением.

ПЕРЕМЕННАЯ - величина, значение которой может меняться в процессе вычислений.

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

Тип константы определяется формой ее записи. Тип переменной определяется множеством значений, которые она может принимать.

Основными типами, применяемыми в машинных алгоритмах, являются цел , вещ , лог и лит .

Значениями целых переменных являются числа: 0, 1, -1, 2, -2,..., которые в памяти машины представляются точно.

Значениями вещественных переменных являются действительные числа, записываемые в виде десятичных дробей: 0.5, 1.2*10^6. Вещественные числа в памяти представлены с округлением.

Значениями логических переменных являются логические значения: истина (1) и ложь (0).

Значениями литерных переменных являются литеры или цепочки литер из определенных алфавитов - русского, латинского и тп: "упчк!!!11", "х=".

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

Каждая инструкция программы также занимает участок памяти, длина которого зависит от вида инструкции.

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

Основным свойством этих типов данных является неделимость их значений. Каждое значение есть объект, не распадающийся на компоненты. Такие объекты в памяти машины представлены простыми переменными.

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

Требования к качеству программного продукта. Основные критерии качества.

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

К программному продукту предъявляются слудующие требования:

1. Работоспособность - возможность выполнения программы на имеющейся машине.

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

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

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

5. Документированность - наличие инструкции по пользованию и описаний внутренней логики программы.

6. Мобильность - независимость программы от конкретной реализации.

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

8. Читабельность - программа должна быть понятной.

Постановка задачи.

2. Анализ задачи и составление спецификации программы - на этом этапе проводится анализ задачи, уточняется ее постановка и разрабатываются требования, предъявляемые к программе. Создается полное и точное описание программы, называемое ее спецификацией. Уточняются обычно четыре основных момента: вход/выход данные, метод и аномалии. Спецификация задачи – документ. Служит заданием на разработку программы (из нее разработчик программы должен извлечь все, что ему нужно знать о стоящей перед ним задаче); является частью соглашения между заказчиком программы и ее разработчиком, описанием задачи, которое приемлемо для заказчика, не обязательно сведущего в программировании; она должна использоваться для проверки готовой программы (решает ли разработанная программа поставленную задачу).

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

4. Кодирование алгоритма на языке программирования - на этом этапе алгоритм переводится с метаязыка на язык программирования.

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

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

Исполнение программы.

Первые 4 этапа выполняются последовательно. Пятый этап распределяется по всем этапам - каждый завершается составлением документации.

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

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

Технология структурного программирования:

1. Нисходящее проектирование алгоритмов и данных.

2. Строгая последовательность этапов программирования.

3. Выполнение требований к качеству продукта.

Ввод данных

Для ввода исходных данных чаще всего используется процедура ReadLn:

ReadLn(A1,A2,...AK);

Процедура производит чтение К значений исходных данных и присваивает эти значения переменным А1, А2, ..., АК.

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

Значения исходных данных могут отделяться друг от друга пробелами и нажатием клавиш табуляции и Enter.

Не допускается разделение вводимых чисел запятыми!

<оператор #1>;
<оператор #2>;
<оператор #3>;
. . .

Until <условие>

Читается так: "Выполнять оператор #1, оператор #2. : до выполнения условия".

Цикл ПОКА:

while - это цикл, в котором условие стоит перед телом. Причем тело цикла выполняется тогда и только тогда, когда условие true ; как только условие становится false , выполнение цикла прекращается.

While имеет формат:

while < условие> do <оператор 1>; {Пока … делай ….}

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

21. Реализация параметрического цикла в языке Паскаль. Синтаксис и семантика, ограничения при использовании.

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

Операторы цикла используются для многогратного повторения входящих в состав операторов. В языке Турбо паскаль различают операторы цикла типа арифметической прогрессии (оператор цикла со счетчиком FOR) с шагом +1 или -1 и операторы цикла итерационного типа (While и Repeat)

Оператор цикла типа арифметической прогрессии используется, если заранее известно количество повторений цикла и шаг изменния параметра цикла +1 или -1.

For <параметр цикла>:=<выражение1>to <выражение 2> do <оператор(тело цикла>; - шаг изменения параметра цикла +1

Downto - -1

Var f1:text

assign(f1,"file.txt");

reset(f1);

Процедура ввода массива может иметь разную степень универсальности

1) инициализация файлов и ввод длины массива происходит в главной программе;

(как в приведенном ниже примере); а ввод массива – в процедуре;

{вход: f – имя ф.п.,n – длина массива; выход: X - массив}

Procedure Input1_mas (var f: text; n: ind; var X: mas);

2) инициализация файлов происходит в главной программе, а ввод длины массива и самого массива – в процедуре;

{вход: f – имя ф.п.,выход:n – длина массива; X - массив}

Procedure Input2_mas (var f: text; var n:ind; var X: mas);

3) в главной программе вводятся внешние имена файлов, а инициализация файлов и ввод длины массива и самого массива – в процедуре;

{вход: Namef внешнее имя файла,выход:n – длина массива; X - массив}

Procedure Input3_mas (Namef: str8; var n: ind; var X: mas);

4) в процедуре выполняются все операции: вводятся внешние имена файлов, инициализация файлов и ввод длины массива и самого массива

{вход: -- ,выход:n – длина массива; X - массив}

Procedure Input4_mas (var n: ind; var X: mas);

Так как фактический (реальный) массив определяется внешним именем файла Namef и длиной n массива, то именно этими переменными желательно управлять в главной программе. С этой точки зрения наиболее предпочтителен следующий вариант:

5) в главной программе вводятся внешние имена файлов и длины массива, а инициализация файлов и ввод самого массива – в процедуре;

{вход: Namef – внешнее имя файла,n – длина массива; выход: X - массив}

Procedure Input5_mas (Namef: str8; n: ind; var X: mas);

Базовые понятия пpогpаммиpования. Действие, пpоцесс, алгоритм, программа.

Программирование - это способ решения задач с помощью ПК.

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

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

Самое важное понятие - ДЕЙСТВИЕ. Действие совершается над объектом и приводит к определенному результату. Если действие можно разложить на составные части, то оно называется ПРОЦЕССОМ. Если нет - это элементарное действие.

2. Процесс – действие, которое возможно разложить на элементарные действия.


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

ПРОЦЕССОРОМ наз. исполнитель, который выполняет элементарные действия согласно инструкциям (человек, автомат, ЭВМ).

3 . Каждое действие можно описать с помощью языка или системы формул. АЛГОРИТМ - это описание процесса, т.е. описание последовательности элементарных действий, приводящих к определенному результату. Каждое элементарное действие наз. инструкцией.

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

Существует несколько уровней ЯП. Нижний уровень - внутренний язык машины (машинный код: 0 и 1). Программа на ЯП высокого уровня может быть введена в машину, но не может быть выполнена. Программа, которая переводит (транслирует) программу с языка высокого уровня на внутренний язык машины, называется транслятор: компилятор или интерпретатор .

Компилятор - программа, которая транслирует код с языка высокого уровня на язык машины: сначала перевод, потом выполнение программы (Паскаль).

Интерпретатор переводит каждое действие и тут же выполняет, пооператорно (Basic).

2. Функциональная структура ЭВМ. Основные устройства ЭВМ, их функциональные характеристики.

Входные данные (устройство ввода) -> Память (программа)(внутренние данные) -> Выходные данные (устройство вывода). К памяти две стрелки <-> Процессор.

Две главные компоненты ЭВМ:

1) ПАМЯТЬ (запоминающее устройство). В памяти в закодированном виде содержатся объекты, над которыми производятся действия. Эти закодированные объекты наз. данными . Основные характеристики памяти:

Емкость (размер);

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

2) ПРОЦЕССОР - это устройство, которое выполняет 2 основные функции:

Производит действия над данными;

Управляет последовательностью действий в программах.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Термин алгоритм происходит от имени средневекового узбекского математика Аль-Хорезми, который еще в 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. Перечислите базовые структуры алгоритмов и программ.