Как составить линейный алгоритм в кумире

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

Алгоритмы решения таких задач получили название линейных алгоритмов. Линейный алгоритм реализуется на языке КуМир следующим образом:

  1. Ввод исходных данных производится или с использованием команды присваивания, или команды ввод.
  2. Получение промежуточных данных, искомых результатов производится при помощи команды при-сваивания.
  3. Искомый результат выводится на экран дисплея при помощи команды вывод.

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

Пример 1.

Записать два числа в переменные a и b. Поменять местами содержимое a и b. Результат вывести на экран.

Решение 1.

Для решения поставленной задачи мы можем использовать вспомогательную переменную c. В c записать значение a, в a записать значение b, и b записать значение c.

алг Обмен_1

нач

. цел a

. цел b

. цел c

. вывод «a= «

. ввод a

. вывод «b= «

. ввод b

. c:=a

. a:=b

. b:=c

. вывод «a= «,a,нс

. вывод «b= «,b

кон

Решение 2.

Если задаться целью решить задачу без использования дополнительной переменной, то программа будет иной:

алг Обмен_2

нач

. цел a,b

. вывод «a= «

. ввод a

. вывод «b= «

. ввод b

. a:=a+b

. b:=a-b

. a:=a-b

. вывод «a= «,a,нс

. вывод «b= «,b

кон

Предположим, что мы в переменную a записали число 3, а в переменную b — 7. После выполнения команды

a:=a+b

в a будет записано число 10, а в b останется 7. После выполнения команды

b:=a-b

в переменную b будет записано число 3.

После выполнения команды

a:=a-b

в переменную a будет записано число 7.

Пример 2.

Дана десятичная дробь. Округлить её с точностью до двух знаков после десятичной точки.

Решение.

Пусть нам дано, например, число 4.6238. Умножим это число на 100. Получим 462.38. Прибавим 0.5, получим 462.88. Отбросим дробную часть и разделим на 100. Получаем нужный результат округления. Можно показать, что применительно к любой десятичной дроби описанный алгоритм дает требуемый результат. Отбросить дробную часть числа можно при помощи функции int (вспомните описание этой функции). На языке КуМир этот алгоритм запишется следующим образом:

алг Округление

нач

. вещ a,b

. вывод «a= «

. ввод a

. b:=a*100

. b:=b+0.5

. b:=int(b)

. b:=b/100

. вывод «b= «,b

кон

Пример 3.

Найти наибольшее и наименьшее из двух заданных чисел a и b.

Решение.

Решить эту задачу нам поможет описанная выше функция abs. Для записи наибольшего из данных чисел выделим переменную макс, а наименьшего – мин. Легко проверить, что макс определится по формуле

Действительно, если a ≥ b, то a-b ≥ 0 и |a-b| = a-b. Тогда

Если a < b, то a-b < 0, |a-b| = -(a-b) = b-a и

Наименьшее из заданных чисел определится по формуле

Проверка правильности этого утверждения производится подобно тому, как было сделано выше. На языке КуМир соответствующий алгоритм записывается следующим образом:

алг Наибольшее_и_наименьшее

нач

. вещ a,b

. вещ макс,мин

. вывод «a= «

. ввод a

. вывод «b= «

. ввод b

. макс:=(abs(a-b))+a+b)/2

. мин:=(a+b-abs(a-b))/2

. вывод «Макс= «,макс,нс

. вывод «Мин= «,мин

кон

Пример 4.

Вспомните рассказ А.П.Чехова «Репетитор». Репетитор, гимназист 7 класса Егор Зиберов задает своему ученику Пете Удодову задачу – «Купец купил 138 аршин чёрного и синего сукна за 540 рублей. Спрашивается, сколько аршин купил он того и другого, если синее стоило 5 рублей за аршин, а чёрное 3 рубля?» – и сам не может с ней справиться. Отец Пети щелкает на счётах и у него получается 75 и 63, что и нужно было. Предположим, что в распоряжении Петиного отца имеется компьютер, на котором он хочет осуществить ту же последовательность действий, что и на счётах. Как составить соответствующую программу на языке Кумир?

Решение.

Давайте представим себе, как рассуждал Удодов — старший. Если бы всё купленное сукно было синим, то ему пришлось бы заплатить 138×5=690 руб., т.е. переплатить 690-540=150 руб. За каждый аршин он переплачивал бы 5-3=2 руб. Следовательно, чёрного сукна было 150/2=75 аршин, а синего 138-75=63 аршин.

Соответствующая программа на языке Кумир имеет вид

алг Задача

нач

. вещ k,a,b,c,x,y,c1,c2

. вещ макс,мин

. вывод «Количество закупленного сукна — аршин: «

. ввод k

. вывод «Стоимость одного аршина синего сукна: «

. ввод a

. вывод «Стоимость одного аршина черного сукна: «

. ввод b

. вывод «Стоимость купленного сукна: «

. ввод c

. c1:=a*k

. c2:=c1-c

. x:=c2/(a-b)

. y:=k-x

. вывод «Черного сукна закуплено — аршин: «,x,нс

. вывод «Синего сукна закуплено — аршин: «,y

кон

Переделайте программу без использования переменных c1 и c2.

Задачи для самостоятельного решения

Задача 1.

В языке Кумир, кроме обычных арифметических операций, имеется ещё одна, предназначенная для вычисления остатка от деления целого числа a на целое число b. Обозначается оно так:

mod(a,b)

Например, если в a мы запишем 9, и b – 4, а в x – mod(a, b), то в x будет записано число 1. Используя описанную операцию, определите число единиц, десятков и сотен заданного трёхзначного целого числа.

Задача 2. (Старинная задача)

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

Сколько штук картофеля подала хозяйка?

Сколько из оставшихся 8 штук картофеля взял средний и сколько взял младший брат?

Составьте компьютерную программу решения этой задачи.

Задача 3.

– Почему ты так печален? – спросил прохожий старика, ехавшего медленно на старой лошади.

– Да как же мне не печалиться? – ответил старик. – Половину моего табуна и ещё пол-лошади угнали на юг, половину остатка и еще пол-лошади забрали на восток, половина нового остатка и ещё пол-лошади ушли на запад; наконец, половину последнего остатка и ещё пол-лошади я продал на север, и только моя старая кляча Карагез осталась со мной.

Сколько лошадей было первоначально в табуне старика?

Наверх

Скачать материал

Линейные алгоритмы в КуМир.

Скачать материал

  • Сейчас обучается 28 человек из 18 регионов

  • Сейчас обучается 89 человек из 28 регионов

Описание презентации по отдельным слайдам:

  • Линейные алгоритмы в КуМир.

    1 слайд

    Линейные алгоритмы в КуМир.

  • Какие операторы неправильные?2	алг Ошибки
 нач	
   цел a, b
	  вещ x, y
	  a...

    2 слайд

    Какие операторы неправильные?
    2
    алг Ошибки
    нач
    цел a, b
    вещ x, y
    a := 5
    10 := x
    y := 7,8
    b := 2.5
    x := 2*(a + y)
    a := b + x
    кон
    имя переменной должно быть слева от знака :=
    целая и дробная часть отделяются точкой
    нельзя записывать вещественное значение в целую переменную

  • Что будет выведено?3цел a = 1, b = 3
вывод &quot;a+&quot;, b, &quot;=a+b&quot;a+3=a+bцел a = 1, b...

    3 слайд

    Что будет выведено?
    3
    цел a = 1, b = 3
    вывод «a+», b, «=a+b»
    a+3=a+b
    цел a = 1, b = 3
    вывод a, «=F(«, b, «)»
    1=F(3)
    цел a = 1, b = 3
    вывод «a=F(«, b, «);»
    цел a = 1, b = 3
    вывод a+b, «>», b, «!»
    цел a = 1, b = 3
    вывод «F(«, b, «)=X(«, a, «)»
    a=F(3)
    4>3!
    F(3)=X(1)

  • Как записать оператор «вывод»?4цел a = 1, b = 3
вывод &quot;X(&quot;, b, &quot;=&quot;, aX(3)=14=...

    4 слайд

    Как записать оператор «вывод»?
    4
    цел a = 1, b = 3
    вывод «X(«, b, «=», a
    X(3)=1
    4=1+3
    f(1)>f(3)
    <1<>3>
    1+3=?
    цел a = 1, b = 3
    вывод a+b, «=», a, «+», b
    цел a = 1, b = 3
    вывод «f(«, a, «)>f(«, b, «)»
    цел a = 1, b = 3
    вывод «<«, a, «<>», b, «>»
    цел a = 1, b = 3
    вывод a, «+», b, «=?»

  • Блок-схема линейного алгоритма5началоконецдействиевводблок «начало»блок «ввод...

    5 слайд

    Блок-схема линейного алгоритма
    5
    начало
    конец
    действие
    ввод
    блок «начало»
    блок «ввод»
    блок «процесс»
    блок «вывод»
    блок «конец»
    вывод

  • По данной блок-схеме вычисления значения некоторой функции, восстановите усло...

    6 слайд

    По данной блок-схеме вычисления значения некоторой функции, восстановите условие задачи; напишите формулу вычисления значения функции.

    начало
    ввод: A
    вывод: Y
    конец
    B = A2
    D = C2
    E = D / 7
    Y = E +5
    C = B + 4

  • Постановка задачи:
         Составить программу вычисления площади треугольни...

    7 слайд

    Постановка задачи:
    Составить программу вычисления площади треугольника, если заданы координаты его сторон: x1, y1; x2, y2; x3,y3.
    2. Математическая модель:
    ФОРМУЛА ГЕРОНА:

    Где a, b, c – длины сторон треугольника, p — полупериметр
    Формула Герона
    (x2, y2)
    (x1, y1)
    (x3, y3)
    a
    b
    c
    Длина стороны вычисляется
    по формуле:

  • НАЧАЛОВвод координат вершин треугольника
x1, y1, x2, y2, x3, y3Построение алг...

    8 слайд

    НАЧАЛО
    Ввод координат вершин треугольника
    x1, y1, x2, y2, x3, y3
    Построение алгоритма
    P=(a+b+c)/2
    Вывод значения S
    конец

  • Домашнее задание
Составить блок –схему и программу для решения следующей зада...

    9 слайд

    Домашнее задание

    Составить блок –схему и программу для решения следующей задачи:
    Двум переменным А и В заданы разные значения. Поменяйте эти значе-ния местами
    1) с использованием третьей переменной,
    2) без использования других переменных.

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 265 387 материалов в базе

  • Выберите категорию:

  • Выберите учебник и тему

  • Выберите класс:

  • Тип материала:

    • Все материалы

    • Статьи

    • Научные работы

    • Видеоуроки

    • Презентации

    • Конспекты

    • Тесты

    • Рабочие программы

    • Другие методич. материалы

Найти материалы

Другие материалы

«Информатика (изд.

«Информатика (изд.

«Информатика (изд.

«Информатика (изд.

  • 25.03.2018
  • 1220
  • 15
  • 25.03.2018
  • 743
  • 4

«Информатика», Босова Л.Л., Босова А.Ю.

Рейтинг:
5 из 5

  • 25.03.2018
  • 3888
  • 43

Рейтинг:
4 из 5

  • 25.03.2018
  • 528
  • 0

«Информатика», Босова Л.Л., Босова А.Ю.

Вам будут интересны эти курсы:

  • Курс повышения квалификации «Внедрение системы компьютерной математики в процесс обучения математике в старших классах в рамках реализации ФГОС»

  • Курс повышения квалификации «Организация работы по формированию медиаграмотности и повышению уровня информационных компетенций всех участников образовательного процесса»

  • Курс повышения квалификации «Специфика преподавания информатики в начальных классах с учетом ФГОС НОО»

  • Курс повышения квалификации «Применение MS Word, Excel в финансовых расчетах»

  • Курс профессиональной переподготовки «Теория и методика обучения информатике в начальной школе»

  • Курс повышения квалификации «Современные языки программирования интегрированной оболочки Microsoft Visual Studio C# NET., C++. NET, VB.NET. с использованием структурного и объектно-ориентированного методов разработки корпоративных систем»

  • Курс повышения квалификации «Применение интерактивных образовательных платформ на примере платформы Moodle»

Алгоритмические конструкции

в Кумир

Алгоритм на языке КуМир записывается так:

алг квадрат

нач

  • опустить перо

  • сместиться на вектор (0,2)

  • сместиться на вектор (2,0)

  • сместиться на вектор (0,-2)

  • сместиться на вектор (-2,0)

  • поднять перо

кон

Без этой конструкции или за пределами ее программа не может выполнить алгоритм.

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

использовать ИМЯ_ИСПОЛНИТЕЛЯ (слово использовать с маленькой буквы, имя исполнителя с заглавной буквы).

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

Вспомогательные алгоритмы

Вспомогательный алгоритм — это фрагмент программного кода (подпрограмма), к которому можно обратиться из любого места основной программы. Эта подпрограмма обычно имеет входные и выходные данные.

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

Вспомогательные алгоритмы пишутся под основным, т.к программа Кумир считает основным алгоритмом первую конструкцию алг-нач-кон.

Пример программы со вспомогательным алгоритмом

использовать Черепаха

алг забор | Основной алгоритм

нач

звено | Обращение к вспомогательному алгоритму

звено

звено

звено

звено

кон

алг звено |Вспомогательный алгоритм

нач

вперед(50)

вправо(45)

вперед(15)

вправо(90)

вперед(15)

вправо(45)

вперед(50)

вправо(180)

кон

Метод последовательной детализации

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

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

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

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

Описанный метод называется сборочным программированием.

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

Типы алгоритмических структур

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

Графическое представление алгоритмической конструкции «следование» приведено на рисунке справа.

Пример программы (линейный алгоритм)

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

алг закрашивание клетки

нач

  • вниз

  • вправо

  • влево

  • вверх

  • закрасить

кон

Ветвление — алгоритмическая конструкция, в которой в зависимости от результата проверки условия («да» или «нет») предусмотрен выбор одной из двух последовательностей действий (ветвей). Алгоритмы, в основе которых лежит структура «ветвление», называют разветвляющимися.

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

Графическое представление и общий вид алгоритмической конструкции «ветвление» приведено на рисунке справа.

неполная форма ветвление (обход)

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

В зависимости от способа организации повторений различают три типа циклов:

    1. цикл с заданным числом повторений;

    2. цикл с заданным условием продолжения работы;

    3. цикл с заданным условием окончания работы.

Цикл с заданным числом повторений

Цикл со счётчиком (РАЗ) — цикл, в котором указывается количество повторений тела цикла.

Цикл со счётчиком (ДЛЯ) — цикл, в котором некоторая переменная изменяет своё значение от заданного начального значения до конечного значения с некоторым шагом, и для каждого значения этой переменной тело цикла выполняется один раз.

Цикл с заданным условием продолжения работы

Цикл с предусловием (ПОКА) — цикл, который выполняется пока истинно некоторое условие, указанное перед его началом. Это условие проверяется до выполнения тела цикла, поэтому тело может быть не выполнено ни разу (если условие с самого начала ложно).

Цикл с заданным условием окончания работы

Цикл с постусловием (ДО) — цикл, в котором условие проверяется после выполнения тела цикла. Отсюда следует, что тело всегда выполняется хотя бы один раз.

Пример программы (следование)

Пример программы (ветвление полное)

Пример программы (ветвление обход)

Пример программы (цикл РАЗ)

Пример программы (цикл ДЛЯ)

Пример программы (цикл ПОКА)

Загрузка…

Кто такой исполнитель Робот?

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

кумир

Видео на тему: КуМир. Робот. Знакомство

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

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

кумир

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

кумир

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

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

алг

нач

кон

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

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

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

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

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

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

кумир

кумир

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

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

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

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

кумир

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

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

кумир

Далее,

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

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

Как работать в программе Кумир

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

Как работать в программе Кумир

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

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

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

вверх

вниз

влево

вправо

закрасить

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

кумир

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

Как работать в программе Кумир

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

Как работать в программе Кумир

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

Как работать в программе Кумир

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

Как работать в программе Кумир

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

Как работать в программе Кумир

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

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

вниз

закрасить

вниз

закрасить

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

влево

закрасить

влево

закрасить

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

вверх

закрасить

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

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

алг Квадрат

нач

закрасить

вправо

закрасить

вправо

закрасить

вниз

закрасить

вниз

закрасить

влево

закрасить

влево

закрасить

вверх

закрасить

кон

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

Как работать в программе Кумир

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

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

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

сделай приседание

сделай приседание

сделай приседание

сделай приседание

сделай приседание

сделай приседание

сделай приседание

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

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

повторяй 7 раз

сделай приседание

конец цикла

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

Виды циклов.

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

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

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

нц <количество повторений> раз

<команда 1>

<команда 2>

<команда n>

кц

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

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

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

Как работать в программе Кумир

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

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

закрасить

вправо

закрасить

вправо

закрасить

вправо

закрасить

вправо

закрасить

вправо

закрасить

вправо

закрасить

вправо

кон

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

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

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

алг

нач

нц 7 раз

закрасить

вправо

кц

кон

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

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

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

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

пока не устал

сделай приседание

конец цикла

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

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

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

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

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

сверху стена

снизу стена

слева стена

справа стена

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

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

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

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

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

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

алг

нач

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

вправо

закрасить

кц

кон

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

Как работать в программе Кумир

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

Как работать в программе Кумир

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

Как работать в программе Кумир

Дорогой читатель! Добавьте этот сайт в закладки своего браузера и поделитесь с друзьями ссылкой на этот сайт! Мы стараемся показывать здесь всякие хитрости и секреты. Пригодится точно.

Это тоже интересно:

Язык программирования Pascal для новичков: Основные понятия.

Как установить Java и работать в языке программирования Java.

Как работать в Delphi: конкретные уроки.

GO программирование: самое начало работы.

Статистика


Онлайн всего: 1

Гостей: 1

Пользователей: 0


Урок 3. Линейные алгоритмы

Прежде чем начинать наш следующий урок, рекомендуем обновить систему
КуМир. В настоящее время доступны следующие версии:

  • КуМир 1.7.3 — для ОС Windows XP/Vista/7 (32-bit), OpenSUSE 11.3,
    Fedora 13, Mandriva 2010.1;
  • КуМир 1.7.2 — для Linux Ubuntu (32-bit).

Более подробную информацию о версиях КуМир можно получить на
официальном сайте http://niisi.ru/kumir/dl.html.

Знакомимся с командами исполнителя Робот

Система команд исполнителя Робот:

  1. 5 команд действия: вправо,
    влево, вниз, вверх, закрасить. При выполнении каждой из
    первых четырех Робот перемещается на одну клетку.
  2. 10 команд проверки условий: 
    • слева свободно, слева стена,
      справа свободно, справа стена, снизу свободно, снизу стена, сверху
      свободно, сверху стена
      .
    • клетка закрашена, клетка чистая.
      Подробнее о командах проверки условий мы узнаем позже.
  3. 2 команды измерения: температура,
    радиация
    .

Алгоритм и программа

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

Программа — запись алгоритма на
формальном языке.

Иными словами, алгоритм, представленный на языке программирования,
называется программой.

Мы будем придерживаться привычного названия программа, процедура, функция, так как система КуМир
подходит, по нашему мнению, под определение языка программирования. В
официальном же описании языка КуМир алгоритм объявлен основной
структурной единицей. Программа на этом языке в простейшем случае
состоит из нескольких алгоритмов, следующих один за другим. Алгоритмы
делятся на алгоритмы-процедуры и алгоритмы-функции.

Обстановка Робота

Исполнитель Робот существует на прямоугольном поле, разбитом на клетки.
Между клетками могут стоять стены, сквозь которые Робот пройти не
может. Обстановка, в которой Робот находится в настоящий момент,
называется текущей
(временная). Программа, управляющая Роботом, должна начинаться со
строки использовать Робот. При
выполнении этой строки КуМир помещает исполнителя Робот в
заранее определенную обстановку, которая называется стартовой. По умолчанию стартовая
обстановка такова: Робот в левом верхнем углу, стен и закрашенных
клеток на поле нет. Стартовую обстановку можно задать. Для этого
используется пункт меню Робот —
Редактировать стартовую обстановку
. Стартовая обстановка может
быть сохранена в файле с расширением .fil.

Для редактирования стартовой обстановки используется мышь:

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

Линейная программа

Линейная структура состоит из последовательности команд, которые
выполняются последовательно одна за другой.

Задача: Закрасить
квадрат 2х2 клетки.

Обычно в постановке задачи следует указать стартовую обстановку поля
для Робота. В нашем случае Робот может находиться где-то в центре поля.
Зададим стартовую обстановку, выполнив Робот — Редактировать стартовую
обстановку. Сохранять обстановку в файл не обязательно.

Составим программу, после чего выполним ее. На рисунке представлена
система КуМир после выполнения программы.

 Каждая команда начинается с новой строки. В системе КуМир
допускается написание нескольких команд в одной строчке, отделяя
команды точкой с запятой, т.е.

Результат выполнения программы будет прежним.

Предлагаем для закрепления решить следующие задачи:

1. Переместить Робот по коридору (т.е. в клетку с меткой):

2. Составить программу закраски периметра квадрата 4х4 клетки.

3. Составить программу, результатом выполнения которой будет следующее

Удачи!

  • 1
  • 2
  • 3
  • 4
  • 5

Категория: Кумир | Добавил: vens (11.03.2011)

Просмотров: 7134
| Теги: Исполнитель, Программирование, Кумир, робот
| Рейтинг: 5.0/2

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

[

Регистрация

|

Вход

]

Понравилась статья? Поделить с друзьями:
  • Как найти наименьшее значение функции sin
  • Как в инсте найти друга по телефону
  • Как исправить ошибку в адресе сайта
  • Как найти ускорение через длину маятника
  • Как правильно найти фирму