Всем привет! Вчера, как Вы знаете, вышел видеоурок для подготовки 14-ого задания ОГЭ по информатике. И, как Вы знаете, в конце каждого урока предлагается выполнить в виде домашнего задания по 10 различных задачек.
Сами же задачи обычно берутся на сайте fipi.ru, которые приходится тщательно решать и анализировать, чтобы записать в систему онлайн тестирования верные и проверенные ответы.
В этом деле на помощь мне пришла самописная программа, которую я реализовал на php. Данный скрипт решает 14 задание ОГЭ по информатике за 1 секунду. Может и Вам он пригодится.
Давайте вспомним типовую задачу 14 задания из ОГЭ по информатике:
У исполнителя Вычислитель две команды, которым присвоены номера:
1. умножь на 4
2. вычти 1
Первая из них увеличивает число на экране в 4 раза, вторая уменьшает его на 1.
Составьте алгоритм получения из числа 3 числа 39, содержащий не более 5 команд. В ответе запишите только номера команд.
(Например, 11221 – это алгоритм:
умножь на 4
умножь на 4
вычти 1
вычти 1
умножь на 4,
который преобразует число 1 в 56.)
Если таких алгоритмов более одного, то запишите любой из них.
Самым надёжным методом решения данной задачи является построение вот такой схемы:

Т.е. от каждого числа мы проводим две стрелки, от которых "рождаются" новые числа, благодаря нашим двум операциям: умножению на 4 и вычитанию 1. Таким образом, мы точно не пропустим правильный ответ.
В нашей программе мы заключим данные операции (т.е. приём числа, создание новых двух чисел посредством исполнения наших двух операций) в функцию, и будем вызывать эту функцию рекурсивно. Соответственно, если наше число совпало с искомым, то необходимо вывести результат. А результат мы получаем в виде текстовой строчки, которая формируется посредством вызова наших функций. Также необходимо сделать, чтобы глубина была не более 5 команд.
Ну лучше посмотреть код, чем прочитать 1000 строк объяснений.
$a = 3; $b = 39; $r = 0; $s = ''; rs($a, $s, $r, $b); function rs($a, $s, $r, $b) { if($r<=5) { $r++; if($a == $b) { echo $s; return; } rs($a*4, $s."1", $r, $b); rs($a-1, $s."2", $r, $b); } else { return; } }
Переменная $a - начальное число, $b - число, которое необходимо получить, $r - используется для подсчёта выполненных команд, $s - строка, где формируется ответ.
Сами операции (умножение на 4 и вычитание 1) задаются в строчках:
rs($a*4, $s."1", $r, $b); rs($a-1, $s."2", $r, $b);
Результат работы программы: 12212
Перепишите данную программу на своём любимом языке программирования! Надеюсь, она Вам поможет при подготовке к ОГЭ по информатике. Пока!
Оставить коментарий: