На Горох
Информатика

Раньше-позже. Если бусины нет

"Информатика", Рудченко Т.А., Семёнов А.Л. / Под ред. Семёнова А.Л.

Объяснение темы

Кратко о теме

Цепочка бусин — последовательность, в которой важны и состав, и порядок элементов. Если читать её слева направо, можно определить, какая из найденных бусин стоит раньше, а какая позже. Отдельная проверка отвечает на другой вопрос: есть ли в цепочке бусина нужного цвета или вида. Условие «бусины нет» позволяет выбрать действие: например, добавить отсутствующую бусину. Чтобы не ошибиться, цепочку проверяют целиком, а порядок сравнивают только у тех бусин, которые действительно найдены.

Объяснение темы

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

Определения и обозначения

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

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

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

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

Как это устроено

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

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

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

Условие определяет, выполнять ли связанную с ним команду. Если проверка «красной бусины нет» дала истинный результат, команду добавить красную бусину выполняют. Если красная бусина уже есть, условие ложно, поэтому именно эту команду пропускают. Так правило не добавляет бусину повторно и учитывает состояние цепочки.

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

Проверка цепочки и выбор действия

Что проверяемРезультат проверкиВывод или действие
Есть ли в цепочке бусина заданного видаБусина найденаУсловие «бусины нет» ложно; команду для отсутствующей бусины не выполняем
Есть ли в цепочке бусина заданного видаБусина не найдена после проверки всей цепочкиУсловие «бусины нет» истинно; выполняем связанную команду
Проверка отсутствия бусиныУсловие выполненоВыполняем действие, заданное условной командой
Какая из двух бусин стоит раньшеОбе бусины найденыСравниваем, какая встречается первой при чтении в заданном направлении

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

Разбор задач

Какая бусина стоит раньше?

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

  1. Просматриваем цепочку слева направо: сначала красная, затем синяя, потом зелёная.
  2. Находим синюю бусину: она стоит второй. Зелёная находится после неё, на третьем месте.
  3. Сравниваем позиции: в выбранном направлении раньше встречается синяя бусина.

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

Есть ли красная бусина?

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

  1. Идём по цепочке от начала до конца и сравниваем каждую бусину с красной.
  2. Обнаруживаем, что все бусины белые или чёрные; красной среди них нет. Значит, условие «красной бусины нет» истинно.
  3. Выполняем связанную команду и добавляем красную бусину в конец цепочки.

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

Применяем несколько правил

Условие: если жёлтая бусина стоит раньше синей, добавить белую; если жёлтой бусины нет — добавить чёрную; иначе ничего не менять. Рассмотрим цепочки «жёлтая, синяя», «синяя, жёлтая» и «синяя, белая». Для каждой сначала проверяем правила в заданном порядке и отличаем сравнение порядка от проверки отсутствия.

  1. В цепочке «жёлтая, синяя» обе бусины найдены, и жёлтая встречается первой. Первое условие истинно, поэтому добавляем белую.
  2. В цепочке «синяя, жёлтая» обе бусины есть, но жёлтая стоит позже синей. Первое условие ложно, а жёлтая присутствует, поэтому второе условие тоже ложно; цепочку не меняем.
  3. В цепочке «синяя, белая» жёлтой бусины нет. Первое сравнение порядка выполнить нельзя, а условие отсутствия истинно, поэтому добавляем чёрную.

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

Типичные ошибки

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

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

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

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

Связь с другими темами

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

Что запомнить

  • Положение бусины определяют относительно направления чтения цепочки.
  • «Раньше» и «позже» описывают порядок элементов.
  • Отсутствие бусины устанавливают проверкой всей цепочки.
  • Условная команда выполняется только при выполнении условия.
  • Наличие бусины и её положение — разные характеристики.
  • При нескольких условиях важно соблюдать заданный порядок проверок.

Частые вопросы по теме

Как понять, какая бусина стоит раньше?

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

Что означает условие «бусины нет»?

Это проверка, которая показывает, отсутствует ли в цепочке бусина заданного цвета или вида. Если после проверки всей цепочки её не нашли, условие истинно.

Нужно ли проверять всю цепочку, чтобы убедиться в отсутствии бусины?

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

Что делать, если условие не выполнилось?

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

Можно ли сравнить порядок двух бусин, если одной из них нет?

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

Спросить по теме параграфа

Раньше-позже. Если бусины нет

Учебник

Оглавление →
Предмет
Информатика
Учебник
"Информатика", Рудченко Т.А., Семёнов А.Л. / Под ред. Семёнова А.Л.