Способы записи алгоритмов - Урок информатики для 8 класса
📚 Информатика 8 класс

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

Давайте разберёмся, как можно "записать" алгоритм так, чтобы его понял и человек, и компьютер. Это как научиться говорить на разных языках — каждый способ записи имеет свои преимущества!

Один алгоритм — много способов его записать

Почему это важно?

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

🎯 Три основных способа записи алгоритмов

  1. Словесное описание (на обычном языке)
  2. Графический способ (блок-схемы)
  3. На языках программирования (код, который понимает компьютер)

💡 Интересный факт

Советский учёный Андрей Андреевич Марков (младший) ещё в середине XX века доказал, что алгоритмы должны содержать два типа предписаний:

  • Функциональные операторы — команды, которые преобразуют информацию
  • Логические операторы — команды, которые определяют, что делать дальше (как развилки на дороге)

Именно эти два типа команд лежат в основе всех способов записи алгоритмов.

3.2.1. Словесные способы записи алгоритма

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

✅ Плюсы словесного описания

  • Понятно любому человеку
  • Не нужны специальные знания
  • Минимум ограничений

⚠️ Минусы словесного описания

  • Может быть двусмысленным
  • Слишком длинный и запутанный
  • Недостаточно формализован

📘 Словесное описание

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

Пример 1: Алгоритм Евклида

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

Шаг за шагом находим наибольший общий делитель

Шаг за шагом находим наибольший общий делитель

📝 Словесное описание алгоритма Евклида

«Чтобы найти НОД двух чисел, составьте таблицу из двух столбцов и назовите столбцы X и Y. Запишите первое из заданных чисел в столбец X, а второе — в столбец Y. Если данные числа не равны, замените большее из них на результат вычитания из большего числа меньшего. Повторяйте такие замены до тех пор, пока числа не окажутся равными, после чего число из столбца X считайте искомым результатом».

Построчная запись

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

📋 Правила построчной записи

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

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

🔢 Пример 2: Алгоритм Евклида (построчная запись)

  1. Обозначить первое из заданных чисел X, второе обозначить Y.
  2. Если X = Y, то перейти к п. 8.
  3. Если X > Y, то перейти к п. 4, иначе перейти к п. 6.
  4. Заменить X на X − Y.
  5. Перейти к п. 2.
  6. Заменить Y на Y − X.
  7. Перейти к п. 2.
  8. Считать X искомым результатом.

💭 Обрати внимание

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

3.2.2. Блок-схемы

Графические способы записи алгоритмов более наглядны, чем словесные. Самый распространённый среди них — блок-схема.

Блок-схема — это визуальная карта алгоритма

Блок-схема — это визуальная карта алгоритма

📊 Что такое блок-схема?

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

Основные элементы блок-схем

Каждая фигура в блок-схеме имеет своё значение. Давай разберёмся, что означает каждая из них.

Овал

🔵 Начало / Конец

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

Параллелограмм

📥 Ввод / Вывод данных

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

Прямоугольник

⚙️ Обработка данных

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

Ромб

❓ Проверка условия

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

Комментарий

💬 Пояснения

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

➡️ Направления линий связи

Линии связи бывают двух типов:

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

Пример 3: Блок-схема алгоритма Евклида

Давай посмотрим, как выглядит тот же алгоритм Евклида в виде блок-схемы.

Так выглядит алгоритм Евклида в виде блок-схемы

Так выглядит алгоритм Евклида в виде блок-схемы

⚠️ Важное замечание

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

3.2.3. Языки программирования

Языки программирования — это способ общения с компьютером. Это формальные языки, которые компьютер может понять и выполнить.

Языки программирования — способ общения с компьютером

Языки программирования — способ общения с компьютером

💻 Что такое язык программирования?

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

🔤 Каждый язык программирования характеризуется

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

Какие бывают языки программирования?

Языков программирования очень много. На уроках информатики в 8–9 классах вы по своему выбору сможете познакомиться с одним из языков программирования Pascal (Паскаль) или Python (Питон); их основы изложены в двух следующих главах учебника.

📚 Школьный алгоритмический язык

Кроме того, желающие смогут попробовать свои силы в программировании на Школьном (учебном) алгоритмическом языке, который также называют русским алгоритмическим языком или алгоритмическим языком КуМир.

Академик А.П. Ершов — основоположник школьной информатики

Академик А.П. Ершов — основоположник школьной информатики

👨‍🔬 Андрей Петрович Ершов (1931–1988)

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

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

Как работает Школьный алгоритмический язык

📝 Служебные слова

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

  • алг (алгоритм)
  • нач (начало)
  • кон (конец)
  • и другие

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

💾 Общий вид программы

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

алг <название алгоритма>
нач
    <последовательность команд>
кон

🤖 Исполнители в КуМир

С основными конструкциями Школьного алгоритмического языка вы познакомитесь, работая с Роботом, Черепахой, Чертёжником и другими исполнителями, встроенными в систему программирования КуМир.

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

Пример 4: Алгоритм переливания

Давайте посмотрим на практический пример алгоритма, записанного на псевдокоде.

Пошаговое решение задачи с переливанием

Пошаговое решение задачи с переливанием

🥤 Задача

Алгоритм на псевдокоде, позволяющий из полного сосуда ёмкостью 12 л отлить половину, пользуясь двумя пустыми сосудами ёмкостью 8 и 5 л:

алг переливания
нач
    наполнить сосуд ёмкостью 8 л из сосуда ёмкостью 12 л
    наполнить сосуд ёмкостью 5 л из сосуда ёмкостью 8 л
    вылить всё из сосуда ёмкостью 5 л в сосуд ёмкостью 12 л
    вылить всё из сосуда ёмкостью 8 л в сосуд ёмкостью 5 л
    наполнить сосуд ёмкостью 8 л из сосуда ёмкостью 12 л
    долить из сосуда ёмкостью 8 л в сосуд ёмкостью 5 л
    вылить всё из сосуда ёмкостью 5 л в сосуд ёмкостью 12 л
кон

💡 Преимущества псевдокода

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

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

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

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

🤔 Проверь себя

Проверь, как хорошо ты усвоил материал!

1. Какие основные способы записи алгоритмов ты теперь знаешь?

Назови их и скажи, в чём главное отличие каждого способа.

2. Зачем вообще нужны разные способы записи алгоритмов?

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

3. Придумай свою задачу и запиши алгоритм её решения двумя способами

а) с помощью разложения чисел на простые множители

б) через НОД (как в примере с алгоритмом Евклида)

4. Задача про арбузы и весы

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

5. Задача про монеты

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

6. Напиши на псевдокоде

Напиши на псевдокоде алгоритм построения окружности заданного радиуса r, проходящей через заданные точки A и B.

7. Работа в КуМир

В системе программирования КуМир напиши и выполни алгоритм переливаний из примера 4 для исполнителя Водолей.

8. "Прочитай" блок-схему

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

9. Подумай и объясни

В чём основное отличие словесного описания алгоритма от описания на формальном языке? Приведи пример, когда словесное описание может привести к путанице.

10. Биография А.А. Маркова (младшего)

Подготовь краткую биографическую справку об А. А. Маркове (младшем). Что ещё интересного ты узнал об этом учёном?

🎯 Практические задания

Попробуй применить полученные знания на практике!

✍️ Задание 1: Алгоритм из жизни

Выбери одно действие из своей повседневной жизни (например, "Приготовление бутерброда" или "Сборы в школу") и опиши его тремя способами:

  • Словесным описанием
  • Построчной записью
  • Блок-схемой

🔍 Задание 2: Анализ алгоритмов

Найди в интернете или учебнике любой алгоритм (например, сортировки или поиска) и определи:

  • Каким способом он записан?
  • Какие преимущества у этого способа?
  • Попробуй переписать его другим способом

🎨 Задание 3: Создай блок-схему

Используя онлайн-сервисы (например, draw.io или Lucidchart), создай блок-схему для алгоритма "Определение, является ли число чётным или нечётным".

🔄 Задание 4: Псевдокод

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

Теперь ты знаешь, как записывать алгоритмы разными способами!

Теперь ты знаешь, как записывать алгоритмы разными способами!

🚀 Отличная работа! Теперь ты знаешь, как можно записывать алгоритмы разными способами. Это как владеть несколькими языками — можешь выбрать тот, который удобнее в конкретной ситуации. Удачи в изучении алгоритмизации!

Информатика — твой билет в цифровое будущее