Как увеличить скорость черепахи в кумире
Перейти к содержимому

Как увеличить скорость черепахи в кумире

  • автор:

Кумир черепаха информатика

Как сделать звезду черепахой в кумире? Можете пожалуйста написать алгоритм?

Лучший ответ

ПОВТОРИ 5 РАЗ
ВПЕРЕД 100
НАПРАВО 144
>

VersaceGirlГуру (4032) 1 месяц назад

а как сделать 6-ти конечную звезду не подскажете?

Владимир Втюрин Гений (93677) VersaceGirl, Если Вы имеете в ввиду шестиконечную звезду Давида, то вот вариант

VersaceGirlГуру (4032) 1 месяц назад

Остальные ответы

Похожие вопросы

Ваш браузер устарел

Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.

Ускорение рисунка turtle

Я делаю фрактал Леви на Python с помощью turtle. У меня получается но рисуется очень медленно. Мне надо завтра сдать эту работу но не хочется, чтобы учитель долго стоял и смотрел как она рисуется. Вот код:

import turtle def draw(n): if n == 0: turtle.forward(10) else: turtle.left(45) draw(n - 1) turtle.right(45) turtle.right(45) draw(n - 1) turtle.left(45) draw(20) 

Отслеживать
788 6 6 серебряных знаков 25 25 бронзовых знаков
задан 22 ноя 2021 в 18:33
11 1 1 золотой знак 2 2 серебряных знака 5 5 бронзовых знаков
Код необходимо прикреплять в качестве текста
22 ноя 2021 в 18:49
А где часть, где фрактал? Там нужно тормоза искать. тут тормозов нет.
22 ноя 2021 в 20:06

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

В таких случаях я вызываю в начале кода функцию tracer() из модуля turtle, а когда нужно отрисовать, вызываю функцию update() из того же модуля. В примере отрисовка производится всего 100 раз на более чем 200тыс движений

turtle.tracer(0) t = turtle.Turtle() for i in range(1000): t.goto(0, 0) t.lt(1.001) for j in range(100): t.fd(i) t.color('white') if i % 2 else t.color('black') t.lt(173) if not i % 10: turtle.update() 

Отслеживать
68k 221 221 золотой знак 79 79 серебряных знаков 222 222 бронзовых знака
ответ дан 11 июн 2022 в 14:48
21 2 2 бронзовых знака

Чтобы ускорить черепашку, используйте команду turtle.speed (n) , n– скорость черепашки. n должно быть целым числом больше или равным нулю. Ноль – самая большая скорость, доступная для использования. То есть, вот ваша программа:

import turtle def draw(n): if n == 0: turtle.forward(10) else: turtle.left(45) draw(n - 1) turtle.right(45) turtle.right(45) draw(n - 1) turtle.left(45) turtle.speed(0) draw(20) 

Быстрее нельзя, это и так самая быстрая черепашка

начало ответа взято отсюда

Досрочный ЕГЭ по информатике 2023 (Задания 1-10)

Сегодня разберём, что было на досрочном ЕГЭ по информатике, который прошёл 06.04.23.

Реальный экзамен, как правило, очень похож на досрочный экзамен по информатике. Поэтому очень важно прорешать и проанализировать данные задачи.

Ещё лучше подготовится к ЕГЭ по информатике, Вы можете по материалам сайта Code-Enjoy.

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

На рисунке справа схема дорог Н-ского района изображена в виде графа, в таблице содержатся сведения о длинах этих дорог (в километрах).

Досрочный ЕГЭ по информатике 2023 - Задание 1

Так как таблицу и схему рисовали независимо друг от друга, то нумерация населённых пунктов в таблице никак не связана с буквенными обозначениями на графе. Определите, какова длина дороги из пункта Г в пункт К.

Особой точкой является город Г. Только к этому городу ведут ровно три дороги. Это точка будет пункт П2.

Теперь нужно найти соседа пункта П2, к которому ведут ровно две дороги. Это и будет точка К.

Соседи пункта П2: П1 (к нему ведут две дороги), П4 (4 дороги), П6 (5 дорог). Мы выбираем П1 — это точка К.

Длина дороги из пункта Г в пункт К будет равна 45. Это число находится на пересечении П1 и П2 в таблице.

Логическая функция F задаётся выражением

На рисунке приведён фрагмент таблицы истинности функции F, содержащий все наборы аргументов, при которых функция F ложна. Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных w, x, y, z.

Досрочный ЕГЭ по информатике 2023 - Задание 2 (Таблица)

В ответе напишите буквы w, x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала – буква, соответствующая первому столбцу; затем – буква, соответствующая второму столбцу, и т.д.) Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.

Решать будем с помощью шаблона на Python.

print('x y z w') for x in range(0, 2): for y in range(0, 2): for z in range(0, 2): for w in range(0, 2): if (x or not(y)) and not((y == z)) and not(w): print(x, y, z, w)

Получим следующий результат:

Досрочный ЕГЭ по информатике 2023 - Задание 2 (Решение)

Переменная w может быть только в последнем столбце, т.к. в остальных столбцах есть хотя бы одна единица.

Переменная y может быть только в третьем столбце, т.к. в остальных столбцах минимум 2 единицы, а у переменой y в столбце только одна единица.

В строке, где у переменной y единица, так же единица и у переменной x. Поэтому переменной x достаётся первый столбец.

По остаточному принципу переменной z достаётся второй столбец.

Ответ: xzyw

В файле приведён фрагмент базы данных «Кондитерские изделия» о поставках конфет и печенья в магазины районов города. База данных состоит из трёх таблиц.

Таблица «Движение товаров» содержит записи о поставках товаров в магазины в течение первой половины августа 2021 г., а также информацию о проданных товарах. Поле Тип операции содержит значение Поступление или Продажа, а в соответствующее поле Количество упаковок, шт внесена информация о том, сколько упаковок товара поступило в магазин или было продано в течение дня. Заголовок таблицы имеет следующий вид.

ID
операции
Дата ID
магазина
Артикул Количество
упаковок,
шт.
Тип операции

Таблица «Товар» содержит информацию об основных характеристиках каждого товара. Заголовок таблицы имеет следующий вид.

Артикул Отдел Наименование товара Ед_изм Количество
в упаковке
Цена за упаковку

Таблица «Магазин» содержит информацию о местонахождении магазинов. Заголовок таблицы имеет следующий вид.

ID
магазина
Район Адрес

На рисунке приведена схема указанной базы данных.

Досрочный ЕГЭ по информатике 2023 - Задание 3 (Таблица)

Используя информацию из приведённой базы данных, определите, на сколько увеличилось количество упаковок пряников тульский с начинкой имеющихся в наличии в магазинах Заречного района, за период со 2 по 15 августа включительно.

В ответе запишите только число.

Найдём артикул товара «пряник тульский с начинкой».

Открываем вкладку «Товар», кликаем в ячейку F1, выбираем кнопку на вкалдке «Главная» -> Сортировка и фильтр -> Фильтр.

Задание 3 досрочный ЕГЭ по информатике 2023 - решение через фильтры

Кнопка Фильтр может находится и на главной панели. Теперь можно отфильтровать товар только «пряник тульский с начинкой».

Досрочный ЕГЭ по информатике 2023 - Задание 3 (Решение)

Получается номер артикула: 57.

Аналогично отфильтровываем магазины Заречного района. Получаются номера ID: M3, M9, M11, M14, M17.

После этого, переходим на вкладку «Движение товаров». Так же включаем фильтры и оставляем только нужный артикул пряника тульского с начинкой и нужные ID магазинов.

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

Досрочный ЕГЭ по информатике 2023 - Задание 3 (Решение) 2

Выделяем ячейки столбца Количество упаковок и внизу смотрим сумму этих ячеек. Получается 2000 упаковок.

Здесь нельзя пользоваться стандартной функцией СУММ, потому что она суммируем ещё и скрытые ячейки. А так мы получаем сумму выделенных ячеек.

Аналогично находим, сколько товаров было продано. В столбце «Тип операции» отфильтровываем по типу «Продажа».

Получается, продали 1545 упаковок. Все даты вновь подходят.

Следовательно, увеличилось на 2000 — 1545 = 455 упаковок пряников тульских с начинкой в указанных магазинах за период со 2 по 15 августа включительно.

Для кодирования некоторой последовательности, состоящей из букв 10 букв решили использовать неравномерный двоичный код, удовлетворяющий условию, что никакое кодовое слово не является началом другого кодового слова. Это условие обеспечивает возможность однозначной расшифровки закодированных сообщений. Известны кодовые слова для букв:

Досрочный ЕГЭ по информатике 2023 - Задание 4

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

Примечание. Условие Фано означает, что никакое кодовое слово не является началом другого кодового слова. Это обеспечивает возможность однозначной расшифровки закодированных сообщений.

Расположим уже известные буквы на дереве Фано.

Досрочный ЕГЭ по информатике 2023 - Задание 4 (решение)

У нас единственное место на дереве осталось — 1011.

Досрочный ЕГЭ по информатике 2023 - Задание 4 (решение) 2

Ответ: 1011

На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.

1. Строится двоичная запись числа N.

2. Далее эта запись обрабатывается по следующему правилу:

а) если N делится на 3, то в конец этой записи дописывается три последние цифры двоичной записи.

б) если N не делится на 3, то остаток при делении на 3 числа N умножается на 3, переводится в двоичную запись и дописывается в конец двоичной записи числа N.

Полученная таким образом запись является двоичной записью искомого числа R.

Например, для исходного числа 1210 = 11002 результатом является число 11001002 = 10010, а для исходного числа 410 = 1002 результатом является число 100112 = 1910.

Укажите минимальное число N, после обработки которого с помощью этого алгоритма получается число R, не меньшее 100. В ответе запишите это число в десятичной системе счисления.

Решим задачу на языке Python.

for n in range(4, 1000): s=format(n, 'b') if n%3==0: s = s + s[-3] + s[-2] + s[-1] else: s = s + format((n%3)*3, 'b') r=int(s, 2) if r>=100: print(n)

Перебираем числа для переменной n от 4 до 999.

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

С помощью функции format() переводим в двоичную систему. Получаем результат в виде строки.

Чтобы обратится к последнему символу строки, можно использовать конструкцию s[-1]. Чтобы обратится к предпоследнему — s[-2], к предпредпоследнему — s[-3].

Мы начинаем перебирать переменную n c 4, т.к. например, тройка в двоичной системе имеет только две цифры (11), и мы никак не сможем обратится к третьей цифре с конца.

С помощью функции int() переводим из строки в двоичной системе обратно в число в десятичной системе.

Наименьшее число, которое выведет программа равно 12.

Исполнитель Черепаха действует на плоскости с декартовой системой координат. В начальный момент Черепаха находится в начале координат, её голова направлена вдоль положительного направления оси ординат, хвост опущен. При опущенном хвосте Черепаха оставляет на поле след в виде линии. В каждый конкретный момент известно положение исполнителя и направление его движения. У исполнителя существует 4 команд: Поднять хвост, означающая переход к перемещению без рисования; Опустить хвост, означающая переход в режим рисования; Вперёд n (где n – целое число), вызывающая передвижение Черепахи на n единиц в том направлении, куда указывает её голова; Направо m (где m – целое число), вызывающая изменение направления движения на m градусов по часовой стрелке.

Запись Повтори k [Команда1 Команда2 … КомандаS] означает, что последовательность из S команд повторится k раз.

Черепахе был дан для исполнения следующий алгоритм:

Направо 45 Повтори 7 [Вперёд 5 Направо 45 Вперёд 10 Направо 135]

Определите, сколько точек с целочисленными координатами будут находиться внутри области, ограниченной линией, заданной данным алгоритмом. Точки на линии учитывать не следует.

Решим задачу в программе Кумир от НИИСИ РАН. Как решать данное задание в программе Кумир, мы говорили в этой статье.

использовать Черепаха алг нач опустить хвост вправо(45) нц 7 раз вперед(5) вправо(45) вперед(10) вправо(135) кц кон 

Необходимо настроить масштабирование на 1.

Досрочный ЕГЭ по информатике 2023 - Задание 6 (Рисунок в программе Кумир масштабирование)
Досрочный ЕГЭ по информатике 2023 - Задание 6 (Подсчитываем точки)

Получается 27 точек.

Голосовое сообщение длительностью 90 секунд, записанное в формате стерео с частотой дискретизации 48 000 измерений в секунду, битовой глубиной 16 бит, передаётся через канал связи с пропускной способностью 3200 бит/c. За сколько секунд передастся данное сообщение?

Найдём информационный объём голосового сообщения по формуле.

ЕГЭ по информатике - задание 7 (Формула дискретизации)
Досрочный ЕГЭ по информатике 2023 - задание 7 (Решение)

Найдём, за сколько передастся файл при скорости передачи 3200 бит/c.

Досрочный ЕГЭ по информатике 2023 - задание 7 (Решение) 2

Ответ: 43200

Все четырёхбуквенные слова, в составе которых могут быть только буквы А, Б, З, И записаны в алфавитном порядке и пронумерованы начиная с 1. Ниже приведено начало списка.

1. АААА
2. АААБ
3. АААЗ
4. АААИ
5. ААБА
6. ААББ
7. ………

Под каким номером в списке идёт слово ИЗБА?

Решим задачу на языке Python. Совсем недавно добавил в статью по 8 заданию примеры, как решать задачи со списками с помощью программирования.

k=0 for x1 in 'АБЗИ': for x2 in 'АБЗИ': for x3 in 'АБЗИ': for x4 in 'АБЗИ': s=x1+x2+x3+x4 k=k+1 if s=='ИЗБА': print(k)

Ответ получается 229.

Откройте файл электронной таблицы, содержащей в каждой строке пять натуральных чисел. Определите количество строк таблицы, содержащих числа, для которых выполнены оба условия:

— в строке все числа различны;

— удвоенная сумма максимального и минимального числа не меньше суммы трёх других чисел.

В ответе запишите только число.

Решение:

Расставим единицы напротив тех строчек, которые подходят под первое условие.

В ячейку F1 пропишем формулу:

=ЕСЛИ(И( A1 <> B1 ; A1 <> C1 ; A1 <> D1 ; A1 <> E1 ; B1 <> C1 ; B1 <> D1 ; B1 <> E1 ; C1 <> D1 ; C1 <> E1 ; D1 <> E1 ); 1; 0)

Здесь просто перебрали все варианты между парами. Распространим эту формулу на весь столбец.

Досрочный ЕГЭ по информатике 2023 - задание 9 (Решение)

Так же расставим единицы напротив тех строчек, которые подходят по второму условию.

В ячейке G1 напишем формулу для удвоенной суммы минимального и максимального числа:

Распространим формулу на весь столбец.

В ячейке H1 напишем формулу для суммы трёх оставшихся чисел:

Здесь мы из суммы всех пяти чисел отнимаем максимальное и минимальное число.

Распространим формулу на весь столбец.

В ячейке I1 расставим единицы для строчек, которые подходят по второму условию:

В ячейке J1 расставим единицы для тех строчек, которые удовлетворяют двум условиям одновременно:

Распространим формулу на весь столбец.

Чтобы ответить на вопрос задачи, достаточно найти сумму столбца J. Выделим столбец J и посмотрим сумму в правом нижним углу.

Досрочный ЕГЭ по информатике 2023 - задание 9 (Решение) 2

Ответ получается 2410.

Ответ: 2410

Текст произведения Куприна «Поединок» представлен в виде файла различных форматов. Откройте его и определите, сколько раз, не считая сносок, встречаются в тексте сочетание букв «удар» или «Удар», например «ударник», «ударил». Отдельные слова «Удар» и «удар» учитывать не следует.

Решение:

Найдём, сколько раз встречаются сочетания букв «удар» или «Удар» в тексте.

На вкладке «Главная» находится кнопка «Найти«. Кликаем по чёрному треугольнику возле этой кнопки и выбираем «Расширенный поиск«.

ЕГЭ по информатике - задание 10 (Расширенный поиск в текстовом редакторе)

Далее, нажимаем кнопку «Больше>>«.

ЕГЭ по информатике - задание 10 (Расширенный поиск)

Теперь у нас есть все инструменты, чтобы решить 10 задание из ЕГЭ по информатике.

В поле «Найти» пишем наше слово «удар«.

Нажимаем Область поиска -> «Основной документ».

ЕГЭ по информатике - задание 10 (Расширенный поиск)

Получается 56 совпадений.

Теперь найдём, сколько отдельных слов «удар» или «Удар» в тексте. Поставим галочку Только слово целиком.

Нажимаем область поиска -> «Основной документ».

Получается 6 отдельных слов.

Чтобы ответить на вопрос задачи нужно из 56 вычесть 6.

Учебные исполнители Робот, Удвоитель и др. как примеры формальных исполнителей.

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

Настройка среды Кумир для исполнителя Робот.

Запущенная программа Кумир выглядит так.

Среда Кумир, исполнитель Робот

Первым делом мы должны раскомментировать первую строку нашей программы, убрав символ |

Раскомментируем первую строку

Таким образом, программа станет выглядеть так:

использовать Робот

алг

нач

кон

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

Но перед началом, нам необходимо задать стартовую обстановку Робота и познакомиться с простыми командами исполнителя Робот.

Стартовая обстановка Робота

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

Что такое стартовая обстановка?

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

Стартовая обстановка 1

Стартовая обстановка 1

Стартовая обстановка 2

Стартовая обстановка 2

Отличаются они только тем, что в стартовой обстановке 2 справа от Робота находится стена.

Если наша программа начнется с команды, которая переместит Робота на одну клетку вправо (о простых командах Робота), то в первом случае (стартовая обстановка 1) Робот выполнит эту команду, а во втором программа завершится аварийно, так как Робот не может ходить сквозь стены. Получается, что одна и та же программа в первом случае работает, а во втором приводит к ошибке. Именно поэтому так важно задавать стартовую обстановку для Робота.

Как задать стартовую обстановку?

Запустив среду Кумир в меню Инструменты выбираем пункт Редактировать стартовую обстановку Робота

Редактировать стартовую обстановку Робота

Откроется окно с синим фоном. Это и есть стартовая обстановка Робота. И мы ее можем изменить.

По-умолчанию, размер окна 10 на 15 клеток. Если нам необходимо изменить количество строк и столбцов, то щелкаем Обстановка -> Новая обстановка и задаем необходимые значения

Задаем размер поля

  • чтобы переместить Робота в новую позицию, щелкаем по нему левой кнопкой мыши и не отпуская ее тащим Робота в нужное место.
  • чтобы добавить/удалить стену, щелкаем левой кнопкой мыши по границе клетки.
  • чтобы закрасить/очистить клетку, щелкаем по ней левой кнопкой мыши
  • чтобы добавить или убрать точку в клетку щелкаем по клетке, удерживая клавишу Ctrl

После того, как мы задали нужную стартовую обстановку, ее необходимо сохранить (Обстановка -> Сохранить или Обстановка -> Сохранить как). После этого закрываем окно Обстановка и в основном окне программы выбираем Робот -> Сменить стартовую обстановку

Сменить стартовую обстановку Робота

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

Показать окно Робота

Если в окне с зеленым фоном (текущая обстановка Робота) вы увидите вашу обстановку, то можно переходить к написанию алгоритма, используя простые команды Робота.

Исполнитель Робот. Простые команды.

У нашего Робота тоже есть система команд. Сегодня мы рассмотрим простые команды Робота. Всего их 5:

вверх

влево

вправо

закрасить

Результат выполнения этих команд понятен из их названия:

вверх — переместить Робота на одну клетку вверх

вниз — переместить Робота на одну клетку вниз

влево — переместить Робота на одну клетку влево

вправо — переместить Робота на одну клетку вправо

закрасить — закрасить текущую клетку (клетку в которой находится Робот).

Эти команды можно писать с клавиатуры, а можно использовать горячие клавиши (нажав их команды будут вставляться автоматически):

вверх — Escape, Up (стрелка вверх)

вниз — Escape, Down (стрелка вниз)

влево — Escape, Left (стрелка влево)

вправо — Escape, Right (стрелка вправо)

закрасить — Escape, Space (пробел)

Обратите внимание, что набирать нужную комбинацию горячих клавиш нужно не привычным нам способом! Мы привыкли нажимать клавиши одновременно, а здесь их нужно нажимать последовательно.

Теперь мы готовы написать первый алгоритм для Робота. Предлагаю начать с простого — нарисуем квадрат со стороной 3 клетки. Поехали!

Запускаем Кумир, настраиваем его. Можно начинать писать программу? Конечно нет! Мы же не задали стартовую обстановку! Делаем это. Предлагаю использовать вот такую:

Стартовая обстановка Робота

Вот теперь все готово. Начинаем писать программу. Пока она выглядит так

Первая программа для Робота

Удаляем символ «|» и называем наш алгоритм «Квадрат»

Алгоритм квадрат

Предлагаю рисовать квадрат, двигаясь по часовой стрелке. Для начала закрасим текущую клетку, дав команду закрасить. Потом делаем шаг вправо и опять закрашиваем клетку. И еще раз шаг вправо и закрасить.

Первые шаги

Попробуем запустить программу и посмотреть что же получилось. Для запуска нажимаем F9 или же кнопку на панели инструментов

выполнить программу

В результате мы должны увидеть вот такую картину

Первый результат

Если такое окно Робота у вас не появилось, то на панели инструментов щелкните «Показать окно Робота» или в меню Робот выберите пункт “Показать окно Робота”. Продолжаем дальше.

Теперь мы будем двигаться вниз и закрашивать правую сторону квадрата:

Потом пойдем влево, закрашивая нижнюю границу квадрата

У нас осталась одна незакрашенная клетка. Закрасим ее

Все готово! В итоге наша программа выглядит так:

использовать Робот

алг Квадрат

нач

закрасить

вправо

закрасить

вправо

закрасить

вниз

закрасить

вниз

закрасить

влево

закрасить

влево

закрасить

вверх

закрасить

кон

А результат ее работы вот так

Результат работы программы

Итак, сегодня мы с вами написали программу, используя простые команды Робота. Рекомендую попрактиковаться самостоятельно — придумать себе задание и написать программу. Это могут быть самые различные фигуры, узоры, буквы. К примеру, попробуйте написать программу, рисующую букву П, Р, Ш, Щ, М. А если получится и захотите поделиться — комментируйте и прикрепляйте результат к комментарию.

Исполнитель Робот. Циклы.

Итак, что такое цикл? Представьте, что мы находимся на уроке физической культуры и перед нами стоит задача сделать 7 приседаний. Это задание можно оформить в виде линейного алгоритма и тогда оно будет выглядеть примерно так:

Т. е мы повторили команду сделай приседание 7 раз. А есть ли смысл писать 7 одинаковых команд? Может проще дать команду сделай 7 приседаний? Конечно проще и правильнее. Это и есть цикл. Вы можете сами вспомнить примеры циклов из жизни — их довольно много.

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

Вот так, на придуманном нами языке мы оформили цикл. У исполнителя Робот тоже есть возможность записывать циклы. Причем, циклы бывают разные. Тот вариант, который мы только что рассмотрели называется цикл со счетчиком или цикл с параметром.

Виды циклов.

Цикл со счетчиком.

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

Для того, чтобы написать цикл со счетчиком для исполнителя необходимо знать его синтаксис. А он такой:

Здесь мы должны указать количество повторений (число) и команды, которые будут повторяться. Команды, которые повторяются в цикле называют телом цикла.

Давайте рассмотрим это на примере.

Закрасим 7 клеток, как на рисунке. Рекомендую почитать про стартовую обстановку Робота и про его простые команды.

Задание на цикл со счетчиком

Изначально Робот находился в левой верхней клетке.

Давайте для начала решим задачу линейно. В этом случае мы будет закрашивать текущую клетку и перемещаться на 1 клетку вправо и программа будет выглядеть так:
использовать Робот
алг
нач

Как видим, команды закрасить и вправо повторяются 7 раз. Давайте теперь перепишем программу с использованием цикла. Кстати, чтобы вставить цикл в свою программу можно в меню Вставка выбрать пункт нц-раз-кц или нажать одну из комбинаций клавиш Esc, Р (русская буква Р) или Esc, H (латинская буква H). Причем клавиши надо нажимать последовательно — сначала Esc, отпустить ее и только потом Р или H.

Так вот, наша программа с циклом будет выглядеть так:

использовать Робот

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

В качестве разминки и закрепления предлагаю самостоятельно написать программу для Робота, которая нарисует квадрат со стороной 7 клеток. Естественно, используя цикл. Жду решения в комментариях.

Цикл с условием.

Вернемся к физкультуре и изменим задачу. Ведь кто-то может и не сделать 7 приседаний, а другой способен сделать 27. Можно ли учесть это при создании цикла? Конечно. Только теперь мы будем использовать не счетчик (количество повторений), а условие. К примеру, пока не устал, делай приседания. В этом случае человек будет делать не конкретное число приседаний, а приседать до тех пор, пока не устанет. И наш цикл на абстрактном языке примет такой вид:

пока не устал

Слова не устал в нашем случае — это условие. Когда оно истинно, цикл выполняется. Если же оно ложно (устал) тело цикла не будет выполнено. У исполнителя Робот есть несколько условий

сверху свободно

снизу свободно

слева свободно

справа свободно

сверху стена

снизу стена

слева стена

справа стена

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

Давайте сначала сформулируем словесный алгоритм — т. е. опишем словами что нужно делать Роботу. Этот алгоритм будет звучать примерно так:

«Пока справа свободно делай шаг вправо и закрашивай клетку»

В результате Робот пробежит по всем клеткам вправо и будет их закрашивать до тех пор, пока справа не окажется стена.

Исходный код нашей программы для Робота будет примерно такой:

использовать Робот

нц пока справа свободно

В результате выполнения этой программы мы увидим вот такую картину:

Задание для Робота цикл с условием

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

Решение задачи с циклом

Для закрепления прошу написать программу, которая будет делать рамку вокруг рабочего поля Робота независимо от его размера. Конечно же с использованием циклов с условием. В итоге должно получиться так:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *