"Информатика", Рудченко Т.А., Семёнов А.Л. / Под ред. Семёнова А.Л.
Цепочка бусин — последовательность, в которой важны и состав, и порядок элементов. Если читать её слева направо, можно определить, какая из найденных бусин стоит раньше, а какая позже. Отдельная проверка отвечает на другой вопрос: есть ли в цепочке бусина нужного цвета или вида. Условие «бусины нет» позволяет выбрать действие: например, добавить отсутствующую бусину. Чтобы не ошибиться, цепочку проверяют целиком, а порядок сравнивают только у тех бусин, которые действительно найдены.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Цепочка бусин — последовательность бусин, в которой важны их порядок и состав. Например, красная, синяя и зелёная бусины образуют цепочку из трёх элементов. Это понятие нужно, чтобы описывать не просто набор цветов, а расположение бусин друг за другом.
Порядок бусин — положение каждой бусины в цепочке относительно остальных. Чтобы определить, какая бусина раньше, а какая позже, сначала выбирают направление чтения, например слева направо. Это помогает однозначно описать расположение элементов и сравнить две найденные бусины.
Условие «бусины нет» — проверка того, присутствует ли в цепочке бусина заданного цвета или вида. Если после просмотра всей цепочки такую бусину не нашли, условие выполняется. Такая проверка нужна, чтобы выбирать действие именно для цепочки, в которой элемента не хватает.
Условная команда — команда, которую выполняют только тогда, когда проверяемое условие истинно, то есть верно. Например, команду добавить бусину можно связать с условием её отсутствия. Это позволяет алгоритму выбирать дальнейшее действие в зависимости от того, что обнаружено в цепочке.
Чтение слева направо задаёт общее направление, относительно которого определяется слово «раньше». Мы просматриваем элементы в этом направлении и отмечаем, какая из сравниваемых бусин встретилась первой. Она стоит раньше, а встретившаяся следом — позже. Без выбранного направления описание может стать неоднозначным: при чтении справа налево порядок встреч был бы обратным.
У цепочки есть две разные характеристики: состав и порядок. Состав отвечает на вопрос, какие бусины в ней присутствуют, а порядок — где расположены найденные элементы. Их нужно разделять, потому что наличие красной бусины само по себе ничего не говорит о том, стоит ли она раньше синей. И наоборот, расположение бусин нельзя сравнить, пока не установлено, что обе они есть.
Наличие бусины проверяют поиском по всей последовательности: каждую бусину сопоставляют с заданным цветом или видом. Положительный результат означает, что подходящий элемент найден хотя бы один раз. Отрицательный результат означает не то, что бусина не попалась на глаза, а то, что её нет после полного просмотра цепочки. Поэтому проверка должна доходить до конца.
Условие определяет, выполнять ли связанную с ним команду. Если проверка «красной бусины нет» дала истинный результат, команду добавить красную бусину выполняют. Если красная бусина уже есть, условие ложно, поэтому именно эту команду пропускают. Так правило не добавляет бусину повторно и учитывает состояние цепочки.
Если правил несколько, важно проверять их в заданном порядке. Сначала устанавливают результат первого условия, затем переходят к следующему, если это предусмотрено правилом. Проверка отсутствия отвечает на вопрос о составе, а сравнение «раньше-позже» — о расположении, поэтому одно не заменяет другое. Записывая отдельно результат каждой проверки, проще не перепутать причину выбранного действия.
| Что проверяем | Результат проверки | Вывод или действие |
|---|---|---|
| Есть ли в цепочке бусина заданного вида | Бусина найдена | Условие «бусины нет» ложно; команду для отсутствующей бусины не выполняем |
| Есть ли в цепочке бусина заданного вида | Бусина не найдена после проверки всей цепочки | Условие «бусины нет» истинно; выполняем связанную команду |
| Проверка отсутствия бусины | Условие выполнено | Выполняем действие, заданное условной командой |
| Какая из двух бусин стоит раньше | Обе бусины найдены | Сравниваем, какая встречается первой при чтении в заданном направлении |
Сначала найдите в таблице нужный вопрос, затем сопоставьте его с результатом проверки. Вывод относится только к этому результату: например, наличие бусины не позволяет сравнивать её порядок с бусиной, которой в цепочке нет. Перед выбором команды убедитесь, что просмотрели последовательность полностью.
Условие: в цепочке красная, синяя, зелёная бусины. Определите, какая бусина стоит раньше: синяя или зелёная. Считаем, что цепочку читают слева направо, как она записана. Нужно сравнить только положение двух названных бусин.
Ответ: синяя бусина стоит раньше зелёной. Красная бусина в сравнении не участвует, потому что в вопросе названы только синяя и зелёная. Если бы направление чтения было задано иначе, его следовало бы учесть перед сравнением.
Условие: дана цепочка из белых и чёрных бусин. Нужно определить, есть ли в ней красная бусина, и применить правило: если красной нет — добавить её в конец. В условии не указан точный порядок белых и чёрных бусин, но для проверки отсутствия это не мешает. Важно просмотреть каждый элемент цепочки.
Ответ: красной бусины в исходной цепочке нет, поэтому её нужно добавить в конец. Если при полном просмотре красная бусина нашлась бы, условие оказалось бы ложным и добавлять ещё одну по этому правилу не следовало бы. Результат зависит от проверки, а не от того, какие цвета кажутся наиболее заметными.
Условие: если жёлтая бусина стоит раньше синей, добавить белую; если жёлтой бусины нет — добавить чёрную; иначе ничего не менять. Рассмотрим цепочки «жёлтая, синяя», «синяя, жёлтая» и «синяя, белая». Для каждой сначала проверяем правила в заданном порядке и отличаем сравнение порядка от проверки отсутствия.
Ответ: к первой цепочке добавляем белую, вторую оставляем без изменений, к третьей добавляем чёрную. Для третьей цепочки нельзя утверждать, что жёлтая стоит раньше или позже синей: жёлтой бусины нет. Именно поэтому отдельная проверка отсутствия нужна наряду со сравнением порядка.
Считать бусину отсутствующей после беглого просмотра. Так ошибаются, когда пропускают элемент или просматривают только часть цепочки. Проверьте себя: проследите последовательность от первого элемента до последнего, не перескакивая через бусины. Отсутствие подтверждается только после полного просмотра.
Путать «раньше» с «левее» без учёта направления чтения. Слово «раньше» относится к порядку встреч при чтении, а не всегда к стороне на рисунке. Ошибка возникает, если направление не задано или его забыли. Перед сравнением назовите направление и только после этого определите, какая бусина встретилась первой.
Выполнять условное действие независимо от результата проверки. Команду могут выполнять по привычке, не установив, истинно ли условие. Но условная команда действует только при выполненном условии. Для самопроверки запишите результат проверки, затем решите, следует ли команда из этого результата.
Сравнивать порядок, если одной бусины нет. Иногда считают, что любая пара названных бусин обязательно присутствует в цепочке. Однако порядок сравнивают только у найденных элементов. Сначала проверьте наличие обеих бусин; если одной нет, отметьте отсутствие, а сравнение «раньше-позже» не выполняйте.
Перед этой темой полезно уметь читать последовательности слева направо и находить в них элементы по заданному признаку. Такой навык позволяет не пропустить бусину и правильно установить её место. Проверка условий и выбор действия используются в алгоритмах с ветвлением: алгоритм выбирает дальнейший шаг в зависимости от результата проверки. С тем же принципом работают исполнители, выполняющие команды по правилам.
Как понять, какая бусина стоит раньше?
Сначала установите направление чтения цепочки. Если читаем слева направо, раньше стоит та бусина, которую встретили первой. Сравнивать можно только бусины, которые есть в цепочке.
Что означает условие «бусины нет»?
Это проверка, которая показывает, отсутствует ли в цепочке бусина заданного цвета или вида. Если после проверки всей цепочки её не нашли, условие истинно.
Нужно ли проверять всю цепочку, чтобы убедиться в отсутствии бусины?
Да, нужно просмотреть цепочку от начала до конца. Пока не проверены все бусины, нужная может оказаться в ещё не просмотренной части.
Что делать, если условие не выполнилось?
Условную команду, связанную с этим условием, не выполняют. Дальше действуют по следующему правилу, если оно задано, или оставляют цепочку без изменений.
Можно ли сравнить порядок двух бусин, если одной из них нет?
Нет, сравнение порядка возможно только для двух найденных бусин. Если одной бусины нет, нельзя сказать, что она стоит раньше или позже другой.
Раньше-позже. Если бусины нет