Линейная блок-схема: ввод, присваивание, вывод

Блок-схема линейного алгоритма: овал, параллелограмм, прямоугольник, стрелки сверху вниз

В тетради задача «найти длину окружности по радиусу» превратилась в столбик фигур со стрелками, а внутри одной из них странная запись pi := 3.14 с двоеточием. Это не опечатка. Это самая важная запись в программировании, и сегодня мы её разберём вместе с фигурами.

Чему научишься. После урока сможешь: нарисовать линейную блок-схему по условию задачи фигурами ГОСТ; записать присваивание через := и объяснить, чем оно отличается от «равно»; протрассировать схему — посчитать по шагам, что лежит в каждой переменной и что выведется.

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

Фигуры по ГОСТ 19.701-90

Блок-схемы в колледже рисуют по стандарту ГОСТ 19.701-90. Названия фигур там официальные, преподаватель может спросить именно их. Для линейного алгоритма хватает трёх фигур.

Пять фигур блок-схемы по ГОСТ 19.701-90: терминатор (овал), данные (параллелограмм), процесс (прямоугольник), решение (ромб), подготовка (шестиугольник)

В тексте уроков фигуры показаны условно, потому что это текст: ( ) — овал, / / — параллелограмм, [ ] — прямоугольник, ‹ › — ромб, ⟨ ⟩ — шестиугольник. На бумаге рисуй настоящие фигуры с картинки выше, преподаватель спросит именно их.

ФИГУРЫ ЛИНЕЙНОЙ БЛОК-СХЕМЫ (ГОСТ 19.701-90)

   ( Начало )        терминатор  — овал: начало и конец алгоритма
       │
   /  ввод R  /      данные      — параллелограмм: ввод с клавиатуры
       │                            или вывод на экран
   [ P := 2·pi·R ]   процесс     — прямоугольник: вычисление,
       │                            присваивание
   /  вывод P /      данные
       │
   ( Конец  )        терминатор

  Стрелки — сверху вниз, одна за другой: это и есть «линейный» —
  ни одна фигура не пропускается и не повторяется.

Линейный алгоритм похож на рецепт без «если» и «пока»: сделал шаг 1, шаг 2, шаг 3, готово. Каждая фигура выполняется ровно один раз, сверху вниз.

Присваивание := — положить в ящик

Переменная похожа на ящик с наклейкой. На наклейке имя (pi, R, P), внутри одно значение. Запись pi := 3.14 читается «положить в ящик pi число 3.14». Двоеточие с равно означает действие «положить», а не утверждение «они равны». Так пишут в Паскале, поэтому здесь везде :=. В тетради встретишь и y = x² — преподаватели пишут по-разному, на экзамене примут оба, но := точнее и совпадает с программой. Квадрат в схеме пишут x · x: так же будет и в Паскале.

Разница видна на записи x := x + 1. В математике запись «x равно x плюс один» лишена смысла, такого x нет. В программировании это нормальный шаг: возьми то, что лежит в ящике x, прибавь единицу, положи обратно. Было 5, стало 6.

ПРИСВАИВАНИЕ  x := x + 1

   было                 считаем правую часть      стало
   ┌───┐                x + 1 = 5 + 1 = 6          ┌───┐
   │ 5 │  ──────────────────────────────────────▶  │ 6 │
   └───┘                                           └───┘
     x                                               x

  Правило: сперва целиком считается ПРАВАЯ часть,
  потом результат кладётся в ящик СЛЕВА. Старое значение стирается.

Разбор 1: длина окружности

Задача из тетради: найти длину окружности P, если задан радиус R. Формула P = 2·π·R. Число π в ящик кладём заранее, радиус спрашиваем у пользователя, считаем, показываем.

ДЛИНА ОКРУЖНОСТИ

      ( Начало )
          │
     [ pi := 3.14 ]        ← константа кладётся в ящик первой
          │
      /  ввод R  /         ← пользователь вводит радиус
          │
   [ P := 2 · pi · R ]     ← вычисление
          │
      /  вывод P /         ← показать результат
          │
      ( Конец  )

Почему pi := 3.14 стоит до ввода R, а не после? Порядок между ними не важен: оба ящика должны быть заполнены до вычисления P. А вот вывести P раньше, чем он вычислен, нельзя: в ящике ещё пусто.

Разбор 2: площадь по формуле Герона

Вторая задача из тетради: площадь треугольника по трём сторонам a, b, c. Формула Герона в два действия: сначала полупериметр p = (a + b + c) / 2, потом S = √(p·(p−a)·(p−b)·(p−c)). Два действия, два прямоугольника. Три числа можно спросить одним блоком ввода.

ПЛОЩАДЬ ПО ГЕРОНУ

           ( Начало )
               │
        /  ввод a, b, c  /
               │
     [ p := (a + b + c) / 2 ]
               │
  [ S := sqrt(p·(p−a)·(p−b)·(p−c)) ]     sqrt — квадратный корень
               │
           /  вывод S /
               │
           ( Конец  )

Трассировка: проверяем схему руками

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

ТРАССИРОВКА «ГЕРОН» ПРИ a = 3, b = 4, c = 5

   блок                        │  a │ b │ c │  p  │  S
  ─────────────────────────────┼────┼───┼───┼─────┼─────
   ввод a, b, c                │  3 │ 4 │ 5 │  —  │  —
   p := (a+b+c)/2              │  3 │ 4 │ 5 │  6  │  —
   S := sqrt(p(p−a)(p−b)(p−c)) │  3 │ 4 │ 5 │  6  │  6
   вывод S                     │           на экране: 6

  Проверка: 6·3·2·1 = 36, √36 = 6.  Треугольник 3-4-5 — прямоугольный,
  его площадь 3·4/2 = 6. Сошлось.

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

Апрямоугольник
Бпараллелограмм
Вромб
Говал

Подсказка: Эта фигура называется «данные» и стоит в схеме окружности дважды: для R и для P.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Какой знак записывает действие «положить значение в переменную» в блок-схемах колледжа и в Паскале?

А==
Б->
В:=
Г=

Подсказка: В тетради этот знак стоит в записи с числом 3.14.

Онлайн-проверка ответа появится позже

Контрольный вопрос. В схеме окружности pi := 3.14 и введено R = 1. Что окажется в ящике P после блока P := 2 · pi · R? Впиши число (дробную часть через точку или запятую).

Подсказка: Подставь оба ящика в правую часть и перемножь.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Выполнены подряд два блока: x := 5, затем x := x + 3. Что лежит в ящике x после второго блока? Впиши число.

Подсказка: Сначала целиком посчитай правую часть со старым значением x, потом положи результат в x.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Схема Герона: ввод a, b, c; p := (a + b + c) / 2; S := sqrt(p · (p − a) · (p − b) · (p − c)); вывод S. После ввода первым вычисляется значение одной переменной. Впиши её имя.

Подсказка: Это полупериметр, без него площадь не посчитать.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Протрассируй схему Герона при a = 5, b = 5, c = 6. Что лежит в ящике p после блока p := (a + b + c) / 2? Впиши число.

Подсказка: Сложи три стороны и раздели пополам.

Онлайн-проверка ответа появится позже

Контрольный вопрос. Схема Герона: p := (a + b + c) / 2; S := sqrt(p · (p − a) · (p − b) · (p − c)). Продолжи трассировку при a = 5, b = 5, c = 6: что выведет схема в блоке «вывод S»? Впиши число.

Подсказка: p ты уже нашёл. Подставь его в p·(p−a)·(p−b)·(p−c) и извлеки квадратный корень: число получится целым.

Онлайн-проверка ответа появится позже

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

      ( Начало )
          │
      /  ввод R  /
          │
   [ P := 2 · pi · R ]
          │
     [ pi := 3.14 ]
          │
      /  вывод P /
          │
      ( Конец  )
АR
БP
Вpi

Подсказка: Пройди схему сверху вниз и у каждого блока спроси: все ли ящики в правой части уже заполнены?

Онлайн-проверка ответа появится позже

Контрольный вопрос. Нужно составить схему «площадь прямоугольника по сторонам a и b». В каком порядке должны идти блоки между «Начало» и «Конец»?

Авывод S → ввод a, b → S := a · b
Бввод a, b → S := a · b → вывод S
ВS := a · b → ввод a, b → вывод S

Подсказка: Сначала ящики a и b должны быть заполнены, вывести можно только уже посчитанное.

Онлайн-проверка ответа появится позже

Задание. Нарисуй на бумаге линейную блок-схему по этой формуле: ввод C, вычисление F, вывод F, фигуры по ГОСТ. Затем протрассируй её при C = 25 и впиши число, которое схема выведет.
Принято, если: (1) число совпало; (2) в схеме есть терминаторы «Начало» и «Конец», параллелограммы для ввода и вывода, прямоугольник с присваиванием через :=; (3) рядом со схемой таблица трассировки с столбцами C и F.

Перевод температуры из градусов Цельсия C в градусы Фаренгейта F:

   F = C · 9 / 5 + 32

Подсказка: Сначала умножение и деление, потом прибавь 32. Схема из трёх блоков между терминаторами, как у окружности без константы.

✅ Готово, если: ответ раскрывает то, что просит критерий приёмки в задании выше.

Онлайн-проверка ответа появится позже

Итог. Линейная схема: фигуры ГОСТ сверху вниз без пропусков и повторов: овал (терминатор), параллелограмм (данные), прямоугольник (процесс). Запись x := выражение значит «посчитать правую часть и положить в ящик x», поэтому x := x + 1 законна. Схему проверяют трассировкой, таблицей «блок → значения ящиков».

Что дальше

Пока схема шла по прямой. В тетради дальше появляется ромб и две дороги: y = x² при x > 0 и y = x − 4 при x ≤ 0. Ветвление разберём в следующем уроке.

← Назад  ·  ↑ В начало урока  ·  ⌂ В начало курса  ·  Вперёд →

Школа Виктора Комлева