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

Исполнитель - объект, который выполняет алгоритм.

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

Компьютер – автоматический исполнитель алгоритмов.

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

Каждый исполнитель характеризуется средой («местом обитания») и системой команд .

Основными характеристиками исполнителя являются: среда, система команд, элементарные действия, отказы.

Среда (или обстановка) - это "место обитания", множество объектов, которые окружают исполнителя.

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

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

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

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

Есть много различных учебных исполнителей, придуманных для занятий по информатике. У них разные, часто забавные названия: Черепашка, Робот, Чертежник, Кенгуренок, Пылесосик, Муравей, Кукарача и др. Одни исполнители создают рисунки на экране, другие складывают слова из кубиков с буквами, третьи перетаскивают предметы из одного места в другое. Все эти исполнители управляются программным путем. Любому из них свойственна определенная среда деятельности, система команд управления, режимы работы. С помощью каждого из таких исполнителей можно учиться строить алгоритмы управления.

Основные виды алгоритмов (алгоритмических структур):

1. Линейный алгоритм (еще называют следование);

2. Циклический алгоритм;

3. Разветвляющийся алгоритм;

ТЕМА 8. ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ

8.1. Понятие об алгоритме и исполнителе алгоритмов. Свойства алгоритмов

"Алгоритм" является фундаментальным понятием информатики. Представление о нем необходимо для эффективного применения вычислительной техники к решению практических задач. Алгоритм - это предписание исполнителю (человеку или автомату) выполнить точно определенную последовательность действий, направленных на достижение заданной цели. Алгоритм - это сформулированное на некотором языке правило, указывающее на действия, последовательное выполнение которых приводит от исходных данных к искомому результату. Значение слова алгоритм очень схоже со значением слов рецепт, процесс, метод, способ . Однако любой алгоритм, в отличие от рецепта или способа, обязательно обладает следующими свойствами.
Свойства алгоритма (отличающие его от любых других предписаний): понятность (для конкретного исполнителя); дискретность (команды последовательны, с точной фиксацией моментов начала и конца выполнения команды); точность (после выполнения каждой команды точно известно, завершено ли исполнение алгоритма или же какая команда должна выполниться следующей); результативность (после конечного числа шагов задача решается или же становится ясно, что процесс решения не может быть продолжен): массовость (алгоритм единым образом применяется к любой конкретной формулировке задачи, для которой он разработан).
1. Дискретность - разбиение алгоритма на ряд отдельных законченных действий - шагов. Выполнение алгоритма разбивается на последовательность законченных действий - шагов. Каждое действие должно быть закончено исполнителем алгоритма прежде, чем он приступит к исполнению следующего действия.
2. Точность - однозначные указания. На каждом шаге однозначно определено преобразование объектов среды исполнителя, полученной на предыдущих шагах алгоритма. Если алгоритм многократно применяется к одному и тому же набору исходных данных, то на выходе он получает каждый раз один и тот же результат. Запись алгоритма должна быть такой, чтобы на каждом шаге его выполнения было известно, какую команду надо выполнять следующей.
3. Понятность - однозначное понимание и исполнение каждого шага алгоритма его исполнителем. Алгоритм должен быть записан на понятном для исполнителя языке.
4. Результативность - обязательное получение результата за конечное число шагов. Каждый шаг (и алгоритм в целом) после своего завершения дает среду, в которой все объекты однозначно определены. Если это по каким-либо причинам невозможно, то алгоритм должен сообщать, что решение задачи не существует. Работа алгоритма должна быть завершена за конечное число шагов. Информатика оперирует только с конечными объектами и конечными процессами, поэтому вопрос о рассмотрении бесконечных алгоритмов остается за рамками теории алгоритмов. 5. Массовость - применение алгоритма к решению целого класса однотипных задач.
Система команд исполнителя - точно описанная обстановка, включающая формулировку решаемой задачи, перечень объектов, вовлекаемых в условие задачи и в ее решение, и возможности исполнителя: свойства объектов, которые он может узнать и действия, которые он может совершить. Формальное исполнение алгоритма производит компилятор или интерпретатор, проверяя семантику.

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

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

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

Если решение задачи сложное и достаточно длинное, то алгоритм может получиться очень большим. Избежать этого можно, заменив некоторую законченную последовательность шагов алгоритма блоками, которые будут являться вспомогательными алгоритмами. Блок обычно не элементарен, его размеры выбираются в зависимости от необходимости, однако если он правильно составлен, то обладает всеми необходимыми признаками алгоритмического шага: имеет точку входа (четко выделенное начало) и может быть условным или безусловным. Разные блоки алгоритма связаны друг с другом только через точки входа и выхода, поэтому если блок верно решает свою задачу, то его внутренняя структура несущественна для остальной части алгоритма. Такое блочное представление особенно удобно на первых этапах решения сложных задач, когда детализация блоков производится позднее и, возможно, другими разработчиками.
Язык программирования - язык, используемый для формальной записи алгоритмов. Большинство языков программирования относятся к алгоритмическим языкам. Запись алгоритма на алгоритмическом языке называют программой.
Язык, используемый для формальной записи алгоритмов, называется алгоритмическим языком . При описании любого языка (в том числе естественного, например, русского, английского и т.д.) используются следующие понятия: алфавит, синтаксис и семантика .
Алфавит языка - это множество простейших знаков, которые могут быть использованы в текстах этого языка. Последовательность символов алфавита называют словом . Правила, согласно которым образуются слова из алфавита, называются грамматикой. Сам же язык - это множество всех слов, записываемых в данном алфавите согласно данной грамматике.
Синтаксис - это набор правил, определяющих возможные сочетания (конструкции) из букв алфавита. Для описания синтаксиса языка, как правило, используют другой язык (метаязык) или синтаксические диаграммы.
Семантика - это набор правил, определяющих значение (смысл) отдельных конструкций языка.
Одним из самых распространенных алгоритмических языков является язык Pascal, который полезен как для начинающих, так и для опытных программистов. Обучение программированию чаще всего основывается на этом языке.

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

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

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

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

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

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

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

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


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

8.4. Линейный алгоритм

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


8.5. Разветвляющийся алгоритм

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


8.6. Циклический алгоритм

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


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


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


Вопросы для самоконтроля

  1. Понятие алгоритма. Свойства алгоритма. Пример алгоритма. Понятие "переменная".
  2. Оператор присваивания. Примеры.
  3. Стили программирования (логический, функциональный).
  4. Понятие подпрограммы, модуля и объекта
  5. Что такое переменная? Правила наименования переменных в Паскале. Примеры.
  6. Оператор присваивания. Запись выражений в Паскале. Примеры. Объяснить, как действует оператор x:=x+1;
  7. Операторы ввода и вывода в Паскале. Примеры. Форматированный вывод.
  8. Условный оператор (if ). Пример. Сравнить с оператором case .
  9. Оператор выбора. Пример. Сравнить с оператором if .
  10. Логические выражения. Операции or, and и not . Примеры. Таблица истинности.
  11. Числовые типы переменных в языке Паскаль. Правила преобразования типов. Примеры.
  12. Логический тип данных. Пример использования в программе. Символьный тип данных. Пример. Функции chr и ord , succ и pred .
  13. Массивы. Определение. Индексы массивов. Объявления массивов. Обращения к элементам массива. Одномерные и двумерные массивы. Примеры. Сходство и различие массивов и строк.
  14. Процедуры. Определение. Зачем нужны процедуры? Примеры. Правила описания процедур. Сравнить процедуры и функции.

Теоретическая справка

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

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

1. Дискретность (алгоритм должен состоять из конкретных действий, следующих в определенном порядке);

2. Детерминированность (любое действие должно быть строго и недвусмысленно определено в каждом случае);

3. Конечность (каждое действие и алгоритм в целом должны иметь возможность завершения);

4. Массовость (один и тот же алгоритм можно использовать с разными исходными данными);

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

Виды алгоритмов:

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

2. Циклический алгоритм (описание действий, которые должны повторятся указанное число раз или пока не выполнено задание);

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

Примеры решения задач

Исполнитель Чертёжник перемещается на координатной плоскости, оставляя след в виде линии. Чертёжник может выполнять команду Сместиться на (a, b) (где a,b – целые числа), перемещающую Чертёжника из точки c координатами (x, y) в точку с координатами (x + a, y + b). Если числа a, b положительные, значение соответствующей координаты увеличивается; если отрицательные – уменьшается.

Например, если Чертёжник находится в точке с координатами (9, 5), то команда Сместиться на

(1, -2) переместит Чертёжника в точку (10, 3).

Повтори k раз

Команда1 Команда2 Команда3

Конец

означает, что последовательность команд Команда1 Команда2 Команда3 повторится k раз. Чертёжнику был дан для исполнения следующий алгоритм:

Повтори 3 раз

Сместиться на (-2, -3) Сместиться на (3, 2) Сместиться на (-4, 0)

Конец

На какую одну команду можно заменить этот алгоритм, чтобы Чертёжник оказался в той же точке, что и после выполнения алгоритма?

1) Сместиться на (-9, -3)

2) Сместиться на (-3, 9)

3) Сместиться на (-3, -1)

4) Сместиться на (9, 3)

Решение:

Такое задание лучше всего решать последовательно.

В цикле Чертёжник выполняет последовательность команд

– Сместиться на (-2, -3)

– Сместиться на (3, 2)

– Сместиться на (-4, 0),

которую можно заменить одной командой Сместиться на (-2+3-4, -3+2+0), т.е. Сместиться на (-3, -1).

Так как цикл повторяется 3 раза, то полученная команда Сместиться на (-3, -1) выполнится 3 раза. Значит цикл можно заменить командой Сместиться на (-3*3, -1*3), т.е. Сместиться на (-9, -3). Таким образом, получаем команду Сместиться на (-9, -3) на которую можно заменить весь алгоритм.

Задачи для тренировки

1. Исполнитель Чертёжник пе­ре­ме­ща­ет­ся на ко­ор­ди­нат­ной плоскости, остав­ляя след в виде линии. Чертёжник может вы­пол­нять команду Сместиться на (a, b) (где a, b - целые числа), пе­ре­ме­ща­ю­щую Чертёжника из точки с координатами (x, у) в точку с ко­ор­ди­на­та­ми (x + а, у + b). Если числа a, b положительные, зна­че­ние соответствующей ко­ор­ди­на­ты увеличивается; если отрицательные, уменьшается.

Например, если Чертёжник на­хо­дит­ся в точке с координатами (4, 2), то ко­ман­да Сместиться на (2, −3) пе­ре­ме­стит Чертёжника в точку (6, −1).

Повтори k раз

Команда1 Команда2 Ко­ман­даЗ

Конец

означает, что по­сле­до­ва­тель­ность команд Команда1 Команда2 КомандаЗ по­вто­рит­ся k раз.

Чертёжнику был дан для ис­пол­не­ния следующий алгоритм:

Повтори 2 раз

Сместиться на (−6, −4)

После вы­пол­не­ния этого ал­го­рит­ма Чертёжник вер­нул­ся в ис­ход­ную точку. Какую ко­ман­ду надо по­ста­вить вместо ко­ман­ды Команда1 ?

1) Сместиться на (−2, −1)

2) Сместиться на (1, 1)

3) Сместиться на (−4, −2)

4) Сместиться на (2, 1)

2. Сместиться на (a, b)

Например, если Чертёжник на­хо­дит­ся в точке с ко­ор­ди­на­та­ми (4, 2), то ко­ман­да Сме­стить­ся на(2, −3) пе­ре­ме­стит Чертёжника в точку (6, −1).

Повтори k раз

Команда1 Команда2 Ко­ман­даЗ

Конец

Команда1 Команда2 КомандаЗ по­вто­рит­ся k раз.

Повтори 4 paз

Команда1 Сме­стить­ся на (3, 3) Сме­стить­ся на (1,−2) Конец

Сместиться на (−8, 12)

Команда1 ?

1) Сместиться на (−2, −4)

2) Сместиться на (4,−13)

3) Сместиться на (2, 4)

4) Сместиться на (−8, −16)

3. Исполнитель Чертёжник пе­ре­ме­ща­ет­ся на ко­ор­ди­нат­ной плоскости, остав­ляя след в виде линии. Чертёжник может вы­пол­нять ко­ман­ду Сместиться на (a, b) (где a, b - целые числа), пе­ре­ме­ща­ю­щую Чертёжника из точки с координатами (x, у) в точку с ко­ор­ди­на­та­ми (x + а, у + b). Если числа a, b положительные, зна­че­ние со­от­вет­ству­ю­щей ко­ор­ди­на­ты увеличивается; если отрицательные, уменьшается.

Повтори k раз

Команда1 Команда2 Ко­ман­даЗ

Конец

означает, что по­сле­до­ва­тель­ность ко­манд Команда1 Команда2 КомандаЗ по­вто­рит­ся k раз.

Чертёжнику был дан для ис­пол­не­ния сле­ду­ю­щий алгоритм:

Повтори 3 paз

Сместиться на (3, 9)

После вы­пол­не­ния этого ал­го­рит­ма Чертёжник вер­нул­ся в ис­ход­ную точку. Какую ко­ман­ду надо по­ста­вить вме­сто ко­ман­ды Команда1 ?

1) Сместиться на (3, 4)

2) Сместиться на (−5, −10)

3) Сместиться на (−9, −12)

4) Сместиться на (−3, −4)

4. Исполнитель Чертёжник пе­ре­ме­ща­ет­ся на ко­ор­ди­нат­ной плоскости, остав­ляя след в виде линии. Чертёжник может вы­пол­нять ко­ман­ду Сместиться на (a, b) (где a, b - целые числа), пе­ре­ме­ща­ю­щую Чертёжника из точки с координатами (x, у) в точку с ко­ор­ди­на­та­ми (x + а, у + b). Если числа a, b положительные, зна­че­ние со­от­вет­ству­ю­щей ко­ор­ди­на­ты увеличивается; если отрицательные, уменьшается.

Например, если Чертёжник на­хо­дит­ся в точке с ко­ор­ди­на­та­ми (4, 2), то ко­ман­да Сме­стить­ся на (2, −3) пе­ре­ме­стит Чертёжника в точку (6, −1).

Повтори k раз

Команда1 Команда2 Ко­ман­даЗ

Конец

означает, что по­сле­до­ва­тель­ность ко­манд Команда1 Команда2 КомандаЗ по­вто­рит­ся k раз.

Чертёжнику был дан для ис­пол­не­ния сле­ду­ю­щий алгоритм:

Повтори 3 paз

Команда1 Сме­стить­ся на (3, 2) Сме­стить­ся на (2, 1) Конец

Сместиться на (−9, −6)

После вы­пол­не­ния этого ал­го­рит­ма Чертёжник вер­нул­ся в ис­ход­ную точку. Какую ко­ман­ду надо по­ста­вить вме­сто ко­ман­ды Команда1 ?

1) Сместиться на (−6, −3)

2) Сместиться на (4, 3)

3) Сместиться на (−2, −1)

4) Сместиться на (2, 1)

5. Исполнитель Чертёжник пе­ре­ме­ща­ет­ся на ко­ор­ди­нат­ной плоскости, остав­ляя след в виде линии. Чертёжник может вы­пол­нять ко­ман­ду Сместиться на (a, b) (где a, b - целые числа), пе­ре­ме­ща­ю­щую Чертёжника из точки с координатами (x, у) в точку с ко­ор­ди­на­та­ми (x + а, у + b). Если числа a, b положительные, зна­че­ние со­от­вет­ству­ю­щей ко­ор­ди­на­ты увеличивается; если отрицательные, уменьшается.

Повтори k раз

Команда1 Команда2 Ко­ман­даЗ

Конец

означает, что по­сле­до­ва­тель­ность ко­манд Команда1 Команда2 КомандаЗ по­вто­рит­ся k раз.

Чертёжнику был дан для ис­пол­не­ния сле­ду­ю­щий алгоритм:

Повтори 2 paз

Команда1 Сме­стить­ся на (3, 3) Сме­стить­ся на (1, −2) Конец

Сместиться на (4, −6)

После вы­пол­не­ния этого ал­го­рит­ма Чертёжник вер­нул­ся в ис­ход­ную точку. Какую ко­ман­ду надо по­ста­вить вме­сто ко­ман­ды Команда1 ?

1) Сместиться на (6, −2)

2) Сместиться на (−8, 5)

3) Сместиться на (−12, 4)

4) Сместиться на (−6, 2)

6. Исполнитель Чертёжник пе­ре­ме­ща­ет­ся на ко­ор­ди­нат­ной плоскости, остав­ляя след в виде линии. Чертёжник может вы­пол­нять ко­ман­ду Сместиться на (a, b) (где a, b - целые числа), пе­ре­ме­ща­ю­щую Чертёжника из точки с координатами (x, у) в точку с ко­ор­ди­на­та­ми (x + а, у + b). Если числа a, b положительные, зна­че­ние со­от­вет­ству­ю­щей ко­ор­ди­на­ты увеличивается; если отрицательные, уменьшается.

Например, если Чертёжник на­хо­дит­ся в точке с координатами (4, 2), то ко­ман­да Сме­стить­ся на (2, −3) пе­ре­ме­стит Чертёжника в точку (6, −1).

Повтори k раз

Команда1 Команда2 Ко­ман­даЗ

Конец

означает, что по­сле­до­ва­тель­ность ко­манд Команда1 Команда2 КомандаЗ по­вто­рит­ся k раз.

Чертёжнику был дан для ис­пол­не­ния сле­ду­ю­щий алгоритм:

Повтори 4 paз

Команда1 Сме­стить­ся на (1, 3) Сме­стить­ся на (1, −2) Конец

Сместиться на (−4, −12)

После вы­пол­не­ния этого ал­го­рит­ма Чертёжник вер­нул­ся в ис­ход­ную точку. Какую ко­ман­ду надо по­ста­вить вме­сто ко­ман­ды Команда1 ?

1) Сместиться на (1,−2)

2) Сместиться на (12, 4)

3) Сместиться на (2, 11)

4) Сместиться на (−1, 2)

7. Исполнитель Чертёжник пе­ре­ме­ща­ет­ся на ко­ор­ди­нат­ной плоскости, остав­ляя след в виде линии. Чертёжник может вы­пол­нять ко­ман­ду Сместиться на (a, b) (где a, b - целые числа), пе­ре­ме­ща­ю­щую Чертёжника из точки с координатами (x, у) в точку с ко­ор­ди­на­та­ми (x + а, у + b). Если числа a, b положительные, зна­че­ние со­от­вет­ству­ю­щей ко­ор­ди­на­ты увеличивается; если отрицательные, уменьшается.

Например, если Чертёжник на­хо­дит­ся в точке с координатами (4, 2), то ко­ман­да Сме­стить­ся на (2, −3) пе­ре­ме­стит Чертёжника в точку (6, −1).

Повтори k раз

Команда1 Команда2 Ко­ман­даЗ

Конец

означает, что по­сле­до­ва­тель­ность ко­манд Команда1 Команда2 КомандаЗ по­вто­рит­ся k раз.

Чертёжнику был дан для ис­пол­не­ния сле­ду­ю­щий алгоритм:

Повтори 4 paз

Команда1 Сме­стить­ся на (3, 2) Сме­стить­ся на (2, 1) Конец

Сместиться на (−12, −8)

После вы­пол­не­ния этого ал­го­рит­ма Чертёжник вер­нул­ся в ис­ход­ную точку. Какую ко­ман­ду надо по­ста­вить вме­сто ко­ман­ды Команда1 ?

1) Сместиться на (−8, −4)

2) Сместиться на (−2, −1)

3) Сместиться на (7, 5)

4) Сместиться на (2, 1)

8. Вперёд n Направо m

Повтори 9 [Вперёд 50 На­пра­во 60]

1) правильный шестиугольник

2) правильный треугольник

3) незамкнутая ло­ма­ная линия

4) правильный девятиугольник

9. Исполнитель Че­ре­паш­ка пе­ре­ме­ща­ет­ся на экра­не компьютера, остав­ляя след в виде линии. В каж­дый кон­крет­ный мо­мент из­вест­но по­ло­же­ние ис­пол­ни­те­ля и на­прав­ле­ние его движения. У ис­пол­ни­те­ля су­ще­ству­ет две команды: Вперёд n (где n - целое число), вы­зы­ва­ю­щая пе­ре­дви­же­ние Че­ре­паш­ки на n шагов в на­прав­ле­нии движения; Направо m (где m - целое число), вы­зы­ва­ю­щая из­ме­не­ние на­прав­ле­ния дви­же­ния на m гра­ду­сов по ча­со­вой стрелке. За­пись Повтори k [Команда1 Команда2 КомандаЗ] означает, что по­сле­до­ва­тель­ность ко­манд в скоб­ках по­вто­рит­ся k раз.

Черепашке был дан для ис­пол­не­ния сле­ду­ю­щий алгоритм: Повтори 7 [Вперёд 70 На­пра­во 120] . Какая фи­гу­ра по­явит­ся на экране?

1) правильный шестиугольник

2) незамкнутая ло­ма­ная линия

3) правильный се­ми­уголь­ник

4) правильный треугольник

10. Исполнитель Че­ре­паш­ка пе­ре­ме­ща­ет­ся на экра­не компьютера, остав­ляя след в виде линии. В каж­дый кон­крет­ный мо­мент из­вест­но по­ло­же­ние ис­пол­ни­те­ля и на­прав­ле­ние его движения. У ис­пол­ни­те­ля су­ще­ству­ет две команды: Вперёд n (где n - целое число), вы­зы­ва­ю­щая пе­ре­дви­же­ние Че­ре­паш­ки на n шагов в на­прав­ле­нии движения; Направо m (где m - целое число), вы­зы­ва­ю­щая из­ме­не­ние на­прав­ле­ния дви­же­ния на m гра­ду­сов по ча­со­вой стрелке. За­пись Повтори k [Команда1 Команда2 КомандаЗ] означает, что по­сле­до­ва­тель­ность ко­манд в скоб­ках по­вто­рит­ся k раз.

Черепашке был дан для ис­пол­не­ния сле­ду­ю­щий алгоритм: Повтори 9 [Вперёд 70 На­пра­во 90] . Какая фи­гу­ра по­явит­ся на экране?

2) правильный девятиугольник

3) правильный восьмиугольник

4) правильный четырёхугольник

11. Исполнитель Че­ре­паш­ка пе­ре­ме­ща­ет­ся на экра­не компьютера, остав­ляя след в виде линии. В каж­дый кон­крет­ный мо­мент из­вест­но по­ло­же­ние ис­пол­ни­те­ля и на­прав­ле­ние его движения. У ис­пол­ни­те­ля су­ще­ству­ет две команды: Вперёд n (где n - целое число), вы­зы­ва­ю­щая пе­ре­дви­же­ние Че­ре­паш­ки на n шагов в на­прав­ле­нии движения; Направо m (где m - целое число), вы­зы­ва­ю­щая из­ме­не­ние на­прав­ле­ния дви­же­ния на m гра­ду­сов по ча­со­вой стрелке. За­пись Повтори k [Команда1 Команда2 КомандаЗ] означает, что по­сле­до­ва­тель­ность ко­манд в скоб­ках по­вто­рит­ся k раз.

Черепашке был дан для ис­пол­не­ния сле­ду­ю­щий алгоритм: Повтори 5 [Вперёд 80 На­пра­во 60] . Какая фи­гу­ра по­явит­ся на экране?

1) правильный пятиугольник

2) правильный треугольник

3) правильный ше­сти­уголь­ник

4) незамкнутая ло­ма­ная линия

12. Исполнитель Че­ре­паш­ка пе­ре­ме­ща­ет­ся на экра­не компьютера, остав­ляя след в виде линии. В каж­дый кон­крет­ный мо­мент из­вест­но по­ло­же­ние ис­пол­ни­те­ля и на­прав­ле­ние его движения. У ис­пол­ни­те­ля су­ще­ству­ет две команды: Вперёд n (где n - целое число), вы­зы­ва­ю­щая пе­ре­дви­же­ние Че­ре­паш­ки на n шагов в на­прав­ле­нии движения; Направо m (где m - целое число), вы­зы­ва­ю­щая из­ме­не­ние на­прав­ле­ния дви­же­ния на m гра­ду­сов по ча­со­вой стрелке. За­пись Повтори k [Команда1 Команда2 КомандаЗ] означает, что по­сле­до­ва­тель­ность ко­манд в скоб­ках по­вто­рит­ся k раз.

Черепашке был дан для ис­пол­не­ния сле­ду­ю­щий алгоритм: Повтори 5 [Вперёд 80 На­пра­во 90] . Какая фи­гу­ра по­явит­ся на экране?

1) незамкнутая ло­ма­ная линия

2) правильный девятиугольник

3) правильный пятиугольник

4) правильный четырёхугольник


Теоретическая справка

Примеры решения задач

Задачи для тренировки


Теоретическая справка

Примеры решения задач

Задачи для тренировки


Теоретическая справка

Примеры решения задач

Задачи для тренировки


Теоретическая справка

Примеры решения задач

Задачи для тренировки


Теоретическая справка

Примеры решения задач

Задачи для тренировки


Теоретическая справка

Примеры решения задач

Задачи для тренировки


Теоретическая справка

Примеры решения задач

Задачи для тренировки


Теоретическая справка

Примеры решения задач

Задачи для тренировки


Теоретическая справка

Примеры решения задач

Задачи для тренировки

>> Типы алгоритмов

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

Линейные алгоритмы;
алгоритмы с ветвлениями;
алгоритмы с повторениями.

Линейные алгоритмы

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

Например, линейным является следующий алгоритм посадки дерева:

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

С помощью блок-схемы данный алгоритм можно изобразить так:

Алгоритмы о ветвлениями

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

Логику принятия решения можно описать так:

ЕСЛИ <условие> ТО <действия 1> ИНАЧЕ <действия 2>

Примеры:

ЕСЛИ хочешь бытьздоров , ТО закаляйся, ИНАЧЕ валяйся весь день на диване;
ЕСЛИ низко ласточки летают, ТО будет дождь, ИНАЧЕ дождя не будет;
ЕСЛИ уроки выучены, ТО иди гулять, ИНАЧЕ учи уроки.

В некоторых случаях <действия 2> могут отсутствовать;

ЕСЛИ <условие> ТО <действия 1>

Пример :

ЕСЛИ назвался груздем, ТО полезай в кузов.

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

Изобразим в виде блок-схемы последовательность действий ученика 6 класса Мухина Васи, которую он представляет себе так: "Если Павлик дома, будем решать задачи по математике. В противном случае следует позвонить Марине и вместе готовить доклад по биологии. Если же Марины нет дома, то надо сесть за сочинение."

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

Из трёх монет одинакового достоинства одна фальшивая (более легкая). Как ее найти с помощью одного взвешивания на чашечных весах без гирь?

Алгоритмы с повторениями

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

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

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

Рассмотрим пример из математики.

Натуральное число называют простым, если оно имеет только два делителя: единицу и само это число1.

2, 3, 5, 7 - простые числа; 4, 6, 8 - нет. В III веке до нашей эры греческий математик Эратосфен предложил следующий алгоритм для нахождения всех простых чисел, меньших заданного числа n:

1) выписать все натуральные числа от 1 до n;
2) вычеркнуть 1;
3) подчеркнуть наименьшее из неотмеченных чисел;
4) вычеркнуть все числа, кратные подчеркнутому на предыдущем шаге;
5) если в списке имеются неотмеченные числа, то перейти к шагу 3, в противном случае все подчеркнутые числа - простые.

Это циклический алгоритм. При его выполнении повторение шагов 3-5 происходит, пока в исходном списке остаются неотмеченные числа.

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

Напомним, что число 1 не относят ни к составным (имеющим более двух делителей), ни к простым числам.

Самое главное

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

> линейные алгоритмы;
> алгоритмы с ветвлениями;
> алгоритмы с повторениями.

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

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

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

Вопросы и задания

1. Какие алгоритмы называют линейными?
2. Приведите пример линейного алгоритма,
3. Исполнитель «Вычислитель» умеет выполнять только две команды: умножать на 2 и прибавлять Придумайте для него наиболее короткий план получения из О числа 50.
4. Какая форма организации действий называется ветвлением?
5. Какие условия должна была выполнить героиня скази «Гуси-лебеди»?
6. Приведите пример алгоритма, содержащего ветвление»
7. Прочитайте отрывок из стихотворения Дж. Родари «Чем пахнут ремесла?»:

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

Перефразируйте
о профессиях с помощью слов «ЕСЛИ... ТО»/

8. Вспомните, герои каких русских народных сказок совершают выбор, определяющий их судьбу.
9. Из 9 монет одинакового достоинства одна фальшивая (более легкая). За сколько взвешиваний на чашечных весах без гирь вы можете ее определить?
10. Какая форма организации действий называется повторением?
11. Приведите пример алгоритма, содержащего повторение.
12. В каких известных вам литературных произведениях имеет место циклическая форма организации действий?
13. Где окажется исполнитель, выполнивший 16 раз подряд следующую группу команд?

пройти 10 метров вперед

повернуть на 90° по часовой стрелке

14. Какую группу действий и сколько раз следует повторить при решении следующей задачи?

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

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

Используя эту блок-схему, разработайте рациональные алгоритмы получения из числа 0 чисел 1024 и 500.

Босова Л. Л. Информатика: Учебник для 6 класса / Л. Л. Босова. - 3-е изд., испр. и доп. - М.: БИНОМ. Лаборатория знаний, 2005. - 208 с.: ил.

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