Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Алгоритмизация как обязательный этап разработки программы. Свойства алгоритмов

Содержание:

ВВЕДЕНИЕ 3

1 ПОНЯТИЕ АЛГОРИТМА 5

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

1.2 Формы представления 6

1.3 Основные виды и типы алгоритмов 12

2.ТЕХНОЛОГИЯ ИСПОЛЬЗОВАНИЯ АЛГОРИТМОВ 15

2.1 Пример использования линейных алгоритмов 15

2.2 Пример использования разветвляющегося алгоритма 16

2.3 Пример использования циклических алгоритмов 18

2.4 Обоснование необходимости создания алгоритмов 19

ЗАКЛЮЧЕНИЕ 20

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 22

ВВЕДЕНИЕ

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

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

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

Темой курсовой работы было «Алгоритмизация как обязательный этап разработки программы».

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

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

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

Стояли задачи:

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

Пояснительная записка к курсовой работе состоит из двух разделов:

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

Во втором разделе выполнена постановка задачи для обоснования алгоритмизации как обязательного этапа разработки программы [5], [7], [8].

Оформление отчета в текстовом редакторе согласно требованиям стандартов и ГОСТ Р 7.0.5-2008 (Библиографическая ссылка); ГОСТ 7.32-2001 в ред. Изменения №1 от 01.12.2005, ИУС №12, 2005 (Отчет о научно-исследовательской работе); ГОСТ 7.1-2003 (Библиографическая запись. Библиографическое описание. Общие требования и правила составления)[1],[2],[3].

1 ПОНЯТИЕ АЛГОРИТМА

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

Алгоритмизация является техникой разработки алгоритма для решения задач на ЭВМ.

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

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

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

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

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

-выделим в слагаемых разряды единиц и сложим единицы;

-при получении суммы меньшей 10 запишем ее в разряде единиц под нижним числом;

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

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

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

Можно выделить следующие основные свойства алгоритмов:

1) Понятность для исполнителя - т.е. исполнитель алгоритма должен знать, как его выполнять.

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

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

4) Результативность (или конечность). Это свойство состоит в том, что алгоритм должен приводить к решению задачи за конечное число шагов.

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

    1. Формы представления

Существуют различные способы описания алгоритмов.

Приведем основные из них:

- словесный (пошаговое описание);

-табличный и в виде формул;

-графический (в виде схем);

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

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

Пример словесной записи алгоритма.

Записать алгоритм нахождения наибольшего общего делителя (НОД) двух натуральных чисел.

Алгоритм:

1) задать два числа;

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

3) определить большее из чисел;

4) заменить большее из чисел разностью большего и меньшего из чисел;

5) повторить алгоритм с шага 2.

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

Словесный способ не имеет широкого распространения, поскольку такие описания:

а) строго не формализуемы;

б) страдают многословностью записей;

в) допускают неоднозначность толкования отдельных предписаний.

Пример записи алгоритма в виде псевдокода:

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

Алгоритм:

1) задать два числа x и y;

2) ЕСЛИ x=y, ТО НОД=x и КОНЕЦ;

3) ЕСЛИ x>y, ТО x=x-y, ИНАЧЕ y=y-x;

4) ПЕРЕЙТИ в пункт 2.

Пример графической записи алгоритма:

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

Графическая форма записи алгоритма

Рисунок 1.1 - Графическая форма записи алгоритма

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

Частным (и наиболее популярным) графическим способом является блок-схема, где алгоритм изображается в виде функциональных блоков, логически связанных между собой. При этом каждому отдельному действию соответствует своя геометрическая фигура. Определение этих фигур можно найти в ГОСТ 19.701-90 (ИСО 5807-85) «Единая система программной документации». Наиболее распространенные символы приведены на рисунке 1.2:

- «Начало алгоритма» и «Конец алгоритма» - применяются для обозначения начала, конца, а также прерывания процесса обработки данных или же исполнения программы;

Операторы блок-схем

Рисунок 1.2 - Операторы блок-схем

- «Ввод (вывод) данных» - применяется с целью преобразования данных в форму, которая пригодна для отображения или обработки результатов. Различным устройствам ввода/вывода компьютера соответствует различная геометрическая форма данного блока, при этом принято отображать тип используемого устройства или файла с данными, а также тип используемой информации и вид операции обмена;

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

Рисунок 1.3 – Пример графического представления алгоритма

Пример записи алгоритма в виде таблицы:

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

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

Таблица 1 - Пример табличной записи алгоритма

№ шага

Входные данные

Результат

Примечания

a

b

S

1

5

7

Ввод данных

2

35

Вычисление площади

3

Вывод результата S = 35

    1. Основные виды и типы алгоритмов

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

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

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

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

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

В зависимости от типа и числа проверяемых условий различают:

- ветвление с простым условием (условие - выражение отношения);

- ветвление с составным условием (условие - логическое выражение);

- сложное ветвление (несколько условий).

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

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

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

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

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

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

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

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

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

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

На приведенных ниже рисунках показаны примеры циклических процессов.

Рисунок 1.4 – Виды алгоритмов

2.ТЕХНОЛОГИЯ ИСПОЛЬЗОВАНИЯ АЛГОРИТМОВ

На ЭВМ могут решаться задачи различного характера: научно-инженерные; разработки системного программного обеспечения; обучения; управления производственными процессами и т. д. В процессе подготовки и решения на ЭВМ научно-инженерных задач можно выделить следующие этапы:

-· постановка задачи;

-· математическое описание задачи;

-· выбор и обоснование метода решения;

-· алгоритмизация вычислительного процесса;

-· составление программы;

-· отладка программы;

-· решение задачи на ЭВМ и анализ результатов.

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

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

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

  • Этап 1 . Математическое описание решения задачи.
  • Этап 2 . Определение входных и выходных данных.
  • Этап 3 . Разработка алгоритма решения задачи.

2.1 Пример использования линейных алгоритмов

Задача: Разработать алгоритм вычисления гипотенузы прямоугольного треугольника по известным значениям длин его катетов a и b.

На примере данной задачи рассмотрим все три этапа разработки алгоритма решения задачи:

Этап 1. Математическое описание решения задачи.

Математическим решением задачи является известная формула:

Формула,

где с-длина гипотенузы, a, b – длины катетов.

Этап 2. Определение входных и выходных данных.

Входными данными являются значения катетов a и b. Выходными данными является длина гипотенузы – c.

Этап 3. Разработка алгоритма решения задачи.

    1. Пример использования разветвляющегося алгоритма

Задача: Разработать алгоритм вычисления наибольшего числа из двух чисел x и y.

Этап 1. Математическое описание решения задачи.

Из курса математики известно, если x > y, то наибольшее число x, если x < y, то наибольшее число y, если x = y, то число x равно числу y.

Этап 2. Определение входных и выходных данных.

Входными данными являются значения чисел x и y. Выходным данными являются:

  • наибольшее число
  • любое из чисел, если числа равны

Для решения задачи нам необходимо знать значения x и y.

Этап 3. Разработка алгоритма решения задачи.

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

В рассматриваемом алгоритме (рис.3) имеются три ветви решения задачи:

  • первая: это элементы 1, 2, 3, 4, 8.
  • вторая: это элементы 1, 2, 3, 5, 6, 8
  • третья: это элементы 1, 2, 3, 5, 7, 8.

Выбор ветви определяется значениями x и y в элементах 3 и 5, которые являются условиями, определяющими порядок выполнения элементов алгоритма. Если условие (равенство), записанное внутри символа «решение», выполняется при введенных значениях x и y, то следующими выполняется элементы 4 и 8. Это следует из того, что они соединены линией с надписью «да» и направление (последовательность) вычислений обозначена стрелочкой.

Если условие в элементе 3 не выполняется, то следующим выполняется элемент 5. Он соединен с элементом 3 линией с надписью «нет». Если условие, записанное в элементе 5, выполняется, то выполняется элементы 6 и 8, в противном случае выполняются элементы 7 и 8.

    1. Пример использования циклических алгоритмов

Задача: Разработать алгоритм вычисления суммы натуральных чисел от 1 до 100.

Этап 1. Математическое описание решения задачи.

Обозначим сумму натуральных чисел через S. Тогда формула вычисления суммы натуральных чисел от 1 до 100 может быть записана так:

сумма натуральных чисел

где Xi – натуральное число X c номером i, который изменяется от 1 до n, n=100 – количество натуральных чисел.

Этап 2. Определение входных и выходных данных.

Входными данными являются натуральные числа: 1, 2, 3, 4, 5, …, 98, 99, 100.

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

Параметр цикла – величина, определяющая количество повторений цикла. В нашем случае i – номер натурального числа.

Подготовка цикла заключается в задании начального и конечного значений параметра цикла.

  • начальное значение параметра цикла равно 1,
  • конечное значение параметра цикла равно n,
  • шаг цикла равен 1.

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

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

S=S+i;              I=I+1;

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

Этап 3. Разработка алгоритма решения задачи.

Введем обозначения: S – сумма последовательности, i – значение натурального числа.

Начальное значение цикла i=1, конечное значение цикла i =100, шаг цикла 1.

    1. Обоснование необходимости создания алгоритмов

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

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

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

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

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

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

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

ЗАКЛЮЧЕНИЕ

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

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

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

Стояли задачи:

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

Поставленная цель и задачи успешно достигнуты.

Требования, которым удовлетворяет разработанные алгоритмы:

  • надёжность;
  • эффективность;
  • понятность пользователю;
  • защита информации;
  • мобильность;

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

Цели и задачи курсового проекта достигнуты полностью.

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

  1. ГОСТ Р 7.0.5-2008 Система стандартов по информации, библиотечному и издательскому делу БИБЛИОГРАФИЧЕСКАЯ ССЫЛКА Общие требования и правила составления
  2. ГОСТ 7.32-2001 в ред. Изменения №1 от 01.12.2005, ИУС №12, 2005 (Отчет о научно-исследовательской работе);
  3. ГОСТ 7.1-2003 (Библиографическая запись. Библиографическое описание. Общие требования и правила составления).
  4. https://spravochnick.ru/programmirovanie// - Справочник 24. Алгоритмизация. Понятие алгоритма. Свойства и способы описания алгоритмов.
  5. Лекции по информатике. Алгоритмизация и программирование.
  6. Turbopro.ru - Aлгоритмы. Разработка алгоритма решения задачи
  7. Кормен или Т., или Лейзерсон или Ч., или Ривест или Р. или Алгоритмы: или построение или и или анализ. или М.:МЦМНО, или 1999. или – или 960 или с.
  8. Скиена или С. или Алгоритмы. или Руководство или по или разработке. или – или 2-е или изд. или – или СПб.:БХВ-Петербург, или 2011. или – или 720 или с.
  9. Окулов или С.М. или Программирование или в или алгоритмах. или – или 3-е или изд. или – или М.: или БИНОМ.Лаборатория или знаний, или 2007. или – или 383 или с.
  10. Кулаков А. Г., Ландо С. К. Алгоритмика. 5--7 кл.: Метод, рекомендации для учителя: Решение задач. -- М.: Дрофа, 1997.