Логотип - Краткое руководство

Logo - это очень простой и легкий в освоении язык программирования. Он используется для обучения студентов и детей программированию на компьютере.

Зачем нам изучать язык логотипов?

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

Logo - это очень простой и интересный язык программирования для изучения. У него достаточно глубины, чтобы делать что угодно, что можно сделать на любом другом языке программирования.

Как загрузить и установить программное обеспечение MSW Logo?

Если программное обеспечение для программирования логотипов не установлено на компьютере, мы можем получить его бесплатно по следующей ссылке -

www.softronix.com/mswlogo.html

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

Экран логотипа MSW состоит из двух частей:

  • Окно рисования наверху с треугольной ЧЕРЕПАХОЙ в центре.
  • Окно Commander, как показано на следующем снимке экрана.

Мы будем писать команды в командной строке, то есть в текстовом поле в нижней части окна Commander. Чтобы выполнить или запустить эти команды, нажмите Enter или нажмите кнопку Execute. Мы также можем писать и запускать более одной команды одновременно.

История команд появится в сером поле. Щелкните строку в истории, чтобы перейти к соответствующей командной строке, после чего мы сможем внести изменения (при необходимости). Как только это будет сделано, нажмите Enter или нажмите кнопку Execute.

Простые команды рисования логотипа перемещают черепаху вперед и назад, а также поворачивают ее вправо или влево. Команды и их сокращения приведены ниже -

  • fd - вперед
  • bk - назад
  • rt - право
  • lt - слева
  • cs - очистить экран

Можно использовать любую версию этих команд. За исключением команды cs, за каждой из этих команд должно следовать одно значение, вызываемое в качестве аргумента. Аргументами для fd и bk являются единицы; углы rt и lt могут быть любым целым числом. Поворот на 360 - это полный поворот, поэтому поворот на 375 градусов равен 1/15 градусу.

  • forward 60 или же fd 60 означает идти вперед на 60 шагов

  • right 90 или же rt 90 означает поворот вправо на 90 градусов

  • left 90 или же lt 90 означает поворот налево на 90 градусов

  • back 60 или же bk 60 означает вернуться на 60 шагов

  • clearscreen или же csозначает стереть все рисунки. Это ставит черепаху в центр

Графическое окно имеет систему координат. Значения двух координат (обычно называемых x и y) в центре равны 0, 0. В северо-восточном углу они равны 250, 250; в юго-восточном углу - 250, -250. В юго-западном углу они -250, -250; и т. д. Если черепаха пытается уйти на одну сторону экрана, она оборачивается. Правая сторона оборачивается к левой, а верхняя - к нижней.

Многие системы программирования работают на той же двухосной координатной плоскости «xy», с которой мы работаем и в алгебре.

Здесь «0 0» - это центр или начало координат (здесь нет запятых и скобок!). В центральном, «нормальном» состоянии масштабирования экран рисования логотипа показывает область примерно на 150 точек вверх или вниз и на 300 точек вправо или влево от центра.

На черепаху можно направить курс, соответствующий розе ветров: 0 или 360 градусов указывают прямо вверх, 90 градусов прямо вправо и т. Д. Вы можете установить для переменной число от 0 до 360, а затем пройти по этому пути.

Команды черепахи

Теперь попробуем несколько команд. Команды будут выдаваться по одной в каждой строке с последующим возвратом каретки. Некоторые из этих команд могут быть набраны последовательно в командном окне с последующим возвратом каретки. Эффект на черепаху такой же. Однако, если вы наберете команду, для которой требуется один или несколько входных данных, и укажите недостающие входные данные в следующей строке, в логотипе появится ошибка.

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

Команды - fd 50 rt 120 fd 50 rt 120 fd 50 rt 120, заставьте черепаху нарисовать треугольник, как вы можете убедиться, попробовав их.

Эти команды читаются слева направо. Поскольку командаfdтребуется один аргумент, он принимается как следующее значение. Так же,rtтоже принимает аргумент. Таким образом, логотип может дать однозначное значение каждой из этих строк символов. Для некоторых команд логотипа необходимы разделители.

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

Ниже приводится упражнение для проверки ваших способностей на основе того, что вы уже узнали в этой главе.

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

  • pu - penup

  • pd - отложенный

  • ht - черепаха

  • dt - черепаха

  • setpensize

Команды pendown и penup говорят черепахе оставлять чернила на экране при движении или не оставлять чернила соответственно. Вhideturtle и showturtleкоманды скрывают или отображают черепаху, но не влияют на ее способность оставлять чернила при движении. Команда home заставляет черепаху вернуться в центр экрана. Он может оставить чернила, когда черепаха вернется в центр экрана. Команда setpensize определяет размер пера для рисования.

  • penup или же pu означает поднять ручку, чтобы вы могли перемещать черепаху, не оставляя следов.

  • pendown или же pd означает опустить ручку, чтобы вы могли двигать черепаху и оставлять следы.
  • hideturtle или же ht означает спрятать черепаху, чтобы можно было любоваться своим рисунком.

  • showturtle или же st означает показать черепаху, чтобы вы могли продолжить рисование.

  • setpensizeозначает, что с его помощью ручка станет больше, и ее будет легче увидеть. Размер пера по умолчанию - [1 1].

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

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

  • home
  • открытый текст или ct
  • label
  • setxy

Команда label берет одно слово в виде строки в кавычках (например, «a_string») или список слов в [] скобках без кавычек (например, [строка букв]) и печатает их в графическом окне в месте нахождения черепахи. . Давайте рассмотрим следующий код.

В setxyКоманда принимает два аргумента, обрабатывает первый как значение абсциссы (горизонтальная ось), а второй как значение ординаты (вертикальная ось). Он помещает черепаху в эти координаты, возможно, оставляя чернила при достижении этих координат. На следующих трех рисунках мы показали, как можно использовать команду setxy.

Команда открытого текста, сокращенно ct, очищает текстовую область командного окна.

Упражнение

Ниже приводится упражнение для проверки ваших способностей на основе того, что вы уже узнали в этой главе.

Какую фигуру дает следующая последовательность команд?

cs pu setxy -60 60 pd home rt 45 fd 85 lt 135 fd 120

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

Ниже приводится сводная таблица команд.

Имя команды Цель
набор 100

Устанавливает координату x черепахи на +100

Перемещает на 100 пунктов вправо от центра

Без вертикального изменения

setx -200

Перемещает черепаху на 200 пунктов влево от центра.

Без вертикального изменения

Sety 150

Устанавливает y-координату черепахи на 150

Перемещает на 150 пунктов выше центра

Без горизонтального изменения

сеты - 50

Перемещает черепаху на 50 пунктов ниже центра

Без горизонтального изменения

setxy 100 100

Перемещает черепаху в координату xy 100100

показать xcor

показать ycor

Сообщает координату x черепахи

Сообщает координату y черепахи

setheading 0

сет 0

Направляет черепаху прямо вверх, «полдень»

сет 120

Перемещает черепаху на 120 градусов, чтобы указать на четыре часа.

Следующий снимок экрана представляет собой практическую демонстрацию некоторых из приведенных выше команд.

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

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

В приведенном выше примере мы определили две переменные first_name, 100_last_name_200 и инициализировал их значениями Amal и Das используя следующие утверждения -

  • сделать «first_name» Амаль
  • сделать «100_last_name_200» Das

Кроме того, мы распечатали эти две переменные с помощью операторов print: first_name и print: 100_last_name_200.

В следующем примере показано, как определить числовые переменные -

Здесь мы определили две числовые переменные val1 и val2. Мы также использовали их для сложения и вычитания.

В логотипе предусмотрены обычные арифметические операции сложения, вычитания, умножения и деления, обозначаемые символами +, -, *, /. Каждая из этих операций дает результат. Если вы не сделаете что-то с результатом, например распечатаете его, логотип покажет ошибку.

С помощью команды печати результат арифметической операции можно использовать и распечатать в командном окне. Примеры, приведенные на следующем снимке экрана, демонстрируют то же самое.

Другие полезные команды:

  • sqrt - Он принимает один неотрицательный аргумент и возвращает его квадратный корень.

  • power - Он принимает два аргумента, называет их 'a' и 'b' и генерирует степень a в степени b.

  • ln - принимает один аргумент и возвращает его натуральный логарифм.

  • exp - Он берет один аргумент и вычисляет e в этой степени, e - натуральное число 2,718281828.

  • log10 - Для одного аргумента требуется логарифм по основанию 10.

На следующем снимке экрана показан пример приведенных выше команд с соответствующими выходными данными.

Арифметические операторы имеют приоритет, определяющий порядок их вычисления.

Note- напечатайте 60 * sqrt 2 и напечатайте sqrt 2 * 60, чтобы получить разные ответы. Здесь оператор * имеет приоритет перед оператором sqrt. Таким образом, * будет выполнено перед sqrt, если есть выбор, как во втором случае.

По этой причине первый оператор печатает значение, в 60 раз превышающее квадратный корень из 2, а второй оператор печатает квадратный корень из 120, как показано на следующем снимке экрана.

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

Предположим, мы хотим нарисовать квадрат со стороной 100, мы можем сделать это с помощью следующей программы -

fd 100
rt 90
fd 100
rt 90
fd 100
rt 90
fd 100
rt 90

Отметим, что две команды - fd 100 и rt 90 повторяются четыре раза. Не будет ли проще сказать компьютеру, что он должен просто повторить эти две команды четыре раза, а не писать их четыре раза подряд? Мы можем сделать именно это, используя следующую команду -

Это экономит наше время на набор текста, чтобы получить квадрат. Общая форма:repeat number [commands]. Мы должны использовать ключевое слово -repeat за которым следует число, а затем последовательность команд в [квадратных скобках].

Часто нам приходится повторять в пределах повторения. Это называетсяnesting. Давайте посмотрим на это на нескольких примерах.

Ниже приводится упражнение для проверки ваших способностей на основе того, что вы уже узнали в этой главе.

Иногда бывает забавно получить непредсказуемый результат вычислений. В логотипе предусмотрена случайная процедура для генерации случайного числа. Он имеет один аргумент и производит целое число, выбираемое равномерно случайным образом, которое больше или равно 0 и меньше значения его аргумента. Таким образом, если вам нужен случайный угол от 0 до 359 градусов, вы можете использовать командуrandom 360произвести это. Имейте в виду, что логотип покажет ошибку, если вы не сделаете что-то с результатом, например, распечатайте.

Давайте посмотрим на следующий пример -

Мы дали команду - print random 360 несколько раз в приведенном выше командном окне и, если вы заметили, каждый раз генерирует случайный вывод.

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

Процедуры позволяют инкапсулировать набор команд. После создания процедуры ее можно использовать так же, как встроенную команду. «Значение» процедуры - это значение ее отдельных команд.

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

Подпрограмма - это именованная последовательность шагов, которую должна выполнить другая программа. Другие названия подпрограмм - это процедуры и функции. В Logo вы указываете компьютеру, как что-то делать, например:

to square
repeat 4 [fd 100 rt 90]
end

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

Нажмите кнопку с надписью Edall(для редактирования всех), чтобы открыть встроенный редактор логотипа. (Если на вашем логотипе нет кнопки Edall, введите в командной строке edall). Следующий блок кода имеет требуемую структуру подпрограммы.

to procedurename
steps of your procedure here
end

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

Ниже приводится практическая демонстрация приведенного выше примера.

Теперь из командной строки выполните процедуру, используя ее имя «квадрат», как показано ниже -

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

В следующем примере процедура «цветок» вызывает нашу предопределенную процедуру «квадрат» из своего тела.

На следующем снимке экрана показан результат, когда вызывается процедура «цветок» -

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

to square :n
repeat 4 [fd :n rt 90]
end

Мы задаем логотипу значение замены для ': n' в командной строке, как показано ниже.

square 50
square 75
square 100

Вот практическая демонстрация приведенного выше примера -

Теперь давайте обсудим, как передать в процедуру два аргумента. Следующий снимок экрана - это практическая демонстрация того же.

В рекурсивной процедуре будет повторный вызов процедуры внутри процедуры. Давайте рассмотрим следующий код -

to spiral_recur :n
   if :n < 1 [stop]
   fd :n
   rt 20
   spiral_recur 0.95 * :n
end

Процедура spiral_recur была вызвана из самого тела процедуры. На следующем снимке экрана показано выполнение и вывод кода.

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

to spiral
   make "n 1
   while [:n < 100] [
      make "n :n + 5
      fd :n rt 90
   ]
end

В приведенном выше коде показано несколько новых функций синтаксиса логотипа MSW. Мы устанавливаем для переменной новое значение, набирая «make», а затем перед именем переменной ставится двойная кавычка «, а не двоеточие»: », как показано ниже.

make "n 1

Однако мы используем переменную с двоеточием ":" перед ее именем.

while [:n < 100]

Код в квадратных скобках после «while [условие]» выполняется, пока условие истинно. Когда это больше не так, потому что (в этом случае) значение ': n' становится больше 100, выполняется код, следующий за скобкой.

На следующем снимке экрана показано выполнение и вывод вышеуказанного кода.

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

Он также показывает встроенный логотип, который генерирует случайные числа. Заявлениеrandom 3генерирует любое число 0, 1 или 2 произвольно в случайной последовательности. Затем процедура решает, какой путь идти «наугад». Сгенерированное случайное число будет храниться в 'r', а позже, в зависимости от значения переменной 'r', будет выполнен один из операторов if, который будет удовлетворять условию. Таким образом, если -

  • Значение 'r' равно 0, тогда [fd 20] будет выполнен.
  • Значение 'r' равно 1, тогда [rt 90 fd 20] будет выполнен.
  • Значение 'r' равно 2, тогда [lt 90 fd 20] будет выполнен.

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

Любая последовательность буквенно-цифровых символов, например «америка», «emp1234» и т. Д., Является примерами строки. Подсчет символов - самый простой из всех строковых процессов. Ответ на вопросstringlength "abc12ef дается следующей процедурой -

to stringlength :s
   make "inputstring :s
   make "count 0
   while [not emptyp :s] [
      make "count :count + 1
      print first :s
      make "s butfirst :s
   ]
   print (sentence :inputstring "has :count "letters)
end

В приведенной выше процедуре - это переменная, содержащая входную строку. Переменная inputstring содержит копию входной строки. Счетчик переменных инициализируется нулем. В цикле while условие проверяет, стала ли строка пустой или нет. В каждом счетчике цикла переменная увеличивается на 1 для хранения счетчика длины. Заявлениеprint first :s, печатает только первый символ строки, хранящейся в 's'.

Заявление make "s butfirst :s, извлекает подстроку, исключая первый символ. После выхода из цикла while мы напечатали количество символов или длину входной строки. Ниже приводится выполнение и вывод кода.

Компьютерные экраны работают с красной, зеленой и синей составляющими света, поэтому их иногда называют RGB screens.

В меню «Установить логотип» мы можем установить цвет трех элементов экрана -

  • Ручка черепахи
  • Насыпь черепахи (как ведро с краской для вольеров)
  • Фон экрана

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

На левом конце скользящей шкалы стоит ноль (0). На правом конце 255, что для компьютера похоже на 99 (это 2 8 - 1). Таким образом, черный - [0 0 0], красный - [255 0 0], зеленый - [0 255 0], синий - [0 0 255]. Вы можете сделать что угодно между этими цветами, и во всех них есть 256 * 256 * 256 возможных цветов. Это 2 8 * 2 8 * 2 8 или 24 бита цвета - 24-бинарные цифры внутри машины.

Следующие команды дадут вам большую толстую красную ручку -

setpensize [5 5]
setpencolor [255 0 0]

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

show pencolor

На следующем снимке экрана показано выполнение и вывод вышеуказанного кода.

Вы можете сделать цветной квадрат, используя следующие шаги -

Step 1 - Нарисуйте квадрат со стороной 40, используя следующую команду.

repeat 4 [fd 40 rt 90]

Step 2 - Поднимите, используя следующую команду.

pu

Step 3- Подойдите к точке внутри квадрата. Например, поместите черепаху в координату (20, 20), используя следующую команду.

setxy 20 20

Step 4- Залейте квадрат заданным цветом заливки. Например, чтобы установить синий цвет заливки, используйте следующую команду.

setfloodcolor [0 0 255]

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

Команда "Цвет и перо" Назначение команды

setpencolor [rgb]

setpc [rgb]

Устанавливает цвет ручки черепахи

rgb - числа в диапазоне [0, 255]

setfloodcolor [rgb]

setfc [rgb]

Задает цвет одобренной области

setscreencolor [rgb]

setsc [rgb]

Устанавливает цвет фона

показать цвет пера

показать цвет заливки

показать цвет экрана

Задает текущие значения для [rgb] названного элемента.

Заполнить

Выгружает ведро текущего цвета заливки в положение курсора

Заполнить

Выгружает ведро текущего цвета заливки в положение курсора

Попробуйте выполнить следующий набор команд -

  • cs - Очистить экран.

  • home - Привезти черепаху домой.

  • setpensize [5 5] - Установка размера пера.

  • setpencolor [255 0 0] - Установка красного цвета пера.

  • setfloodcolor [0 0 255] - Установка синего цвета заливки.

  • setscreencolor [0 255 0] - Установка зеленого цвета экрана.

  • repeat 4 [fd 40 rt 90] - Нарисуйте квадрат со стороной 40.

  • pu - Ручка вверх.

  • setxy 20 20 - Поместите черепаху в координату (20, 20).

  • fill - Залейте квадрат заданным цветом заливки синим.

  • ht - Скрыть черепаху.

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