152) Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.
заменить (v, w)
нашлось (v)
Дана программа для исполнителя Редактор:
НАЧАЛО
ПОКА нашлось (4444) ИЛИ нашлось (777)
ЕСЛИ нашлось (4444)
ТО заменить (4444, 77)
ИНАЧЕ заменить (777, 4)
КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
Какая строка получится в результате применения приведённой выше программы к строке, со-стоящей из 197 идущих подряд цифр 4? В ответе запишите полученную строку.
на предыдущих уроках мы установили среду кумир, настроили ее для дальнейшей работы и научились задавать стартовую обстановку робота. теперь перейдем непосредственно к составлению алгоритмов для робота с использованием простых команд.
если вам больше нравится информация в формате видеоуроков, то на сайте есть видеоурок робот. простые команды.
у любого исполнителя должна быть система команд (ски — система команд исполнителя). система команд исполнителя — совокупность всех команд, которые может выполнить исполнитель. в качестве примера рассмотрим дрессированную собаку. она умеет выполнять некоторые команды — «сидеть», «лежать», «рядом» и т. п. это и есть ее система команд.
простые команды робота
у нашего робота тоже есть система команд. сегодня мы рассмотрим простые команды робота. всего их 5:
вверх
вниз
влево
вправо
закрасить
результат выполнения этих команд понятен из их названия:
вверх — переместить робота на одну клетку вверх
вниз — переместить робота на одну клетку вниз
влево — переместить робота на одну клетку влево
вправо — переместить робота на одну клетку вправо
закрасить — закрасить текущую клетку (клетку в которой находится робот).
эти команды можно писать с клавиатуры, а можно использовать горячие клавиши (нажав их команды будут вставляться автоматически):
вверх — escape, up (стрелка вверх)
вниз — escape, down (стрелка вниз)
влево — escape, left (стрелка влево)
вправо — escape, right (стрелка вправо)
закрасить — escape, space (пробел)
незнаю правильно или нет,если нет то сорян.
Пример 1:
i:=5;
while i<=4 do begin writeln('Привет'); i:=i-1; end;
Цикл не сработает ни разу, т.к. условие с самого начала неверное!
Пример 2:
i:=5;
while i<=5 do begin writeln('Привет'); i:=i-1; end;
Условие верное, программа "заходит в цикл", выполняет вывод текста, а затем уменьшает значение i на 1, т.е. i=4. Далее идет автоматическая проверка условия цикла, и оно снова верное: 4<=5!
Идет снова выполнение всех операторов цикла, и опять уменьшение i на 1, то есть i=3. И снова условие цикла верное: 3<=5!
И так далее. Теперь каждое следующее значение параметра i меньше предыдущего, а значит, и условие цикла всегда верное! Цикл никогда не остановится!
Пример 3:
i:=5;
while i<=6 do begin writeln('Привет'); i:=i-1; end;
И даже если вместо многоточия поставить число более 5, получим аналогичный результат: условие верное, программа "заходит в цикл", выполняет вывод текста, а затем уменьшает значение i на 1, т.е. i=5. Далее идет автоматическая проверка условия цикла, и оно снова верное: 5<=5!
Идет снова выполнение всех операторов цикла, и опять уменьшение i на 1, то есть i=4. И снова условие цикла верное: 4<=5!
И так далее. Теперь каждое следующее значение параметра i меньше предыдущего, а значит, и условие цикла всегда верное! Цикл никогда не остановится!
Возможно, ошибка в условии цикла? Если записать while i>=3 do..., то цикл сработает 3 раза: при i, равном 5, 4, 3. Либо неверно указано действие в цикле: i:=i-1. Если записать i:=i+1, а вместо многоточия поставить i<=7, то цикл также сработает ровно 3 раза, т.к. i будет менять свое значение 5, 6, 7.