Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сборник_задач_8_класс.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
989.18 Кб
Скачать

Задание

Познакомьтесь со средой Л-граф.

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

Тема: Алгоритмическая структура повторение. Оператор цикла.

Помните на прошлом занятии мы писали программу рисования квадрата со стороной в 70 черепашьих шагов?

Легко заметить, что команды FORWARD 70 и RIGHT 90 в нашей программе повторяются четыре раза. Чтобы избежать таких повторов, можно и нужно использовать циклическую структуру.

Цикл — это многократно повторяющаяся часть алгоритма. В «Л-ГРАФ» для организации цикла есть команда REPEAT k (повторить k раз). Вызов этой команды осуществляется клавишами <Alt>+<F3>.

Формат команды:

REPEAT k

[

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

]

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

REPEAT 4

[

FORWARD 70

RIGHT 90

]

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

Задания

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

Задание 1.

Задание 2.

З адание 3.

Задание 4*. Задание 5.

Задание 6. Задание 7*

Тема: Понятие процедуры. Процедуры без параметров.

Пример 1.

TO SQUARE REPEAT 4 [ FORWARD 70 RIGHT 90 ] END REPEAT 3 [ SQUARE RIGHT 120 ]

Последовательность команд, заключенная между TO и END, называется процедурой, а имя процедуры SQUARE — это новая команда для черепашки.

Применение процедур позволит Вам:

  1. просто и легко писать программы;

  2. получать понятные и легкочитаемые программы;

  3. быстро находить ошибки в программе;

  4. быстро изменять и совершенствовать Ваши программы.

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

T O KVADRAT REPEAT 4 [ FORWARD 70 RIGHT 90 ] END

TO PEREMESTIS NODRAW RIGHT 90 FORWARD 70 LEFT 90 DRAW END

REPEAT 3 [ KVADRAT PEREMESTIS ]

Задания

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

Задание 1.

Задание 2.

Задание 3.

Задание 4.

Задание 5.

Задание 6.

Задание 7*.

Тема: Использование переменных и арифметических выражений в среде «л-граф», процедуры с параметрами.

Переменная — это величина, значение которой может меняться. Признаком переменной в среде «Л-ГРАФ» является символ ":" (двоеточие).

Имя переменной — это последовательность букв, цифр и знака подчеркивания (не более 32 символов), всегда начинающаяся с двоеточия.

Примеры имен переменных: :A, :A_1, :SPEED, :NUMBER1.

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

Формат команды:

<имя переменной>=<арифметическое выражение>

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

Операции, используемые в арифметических выражениях:

*

умножение

/

деление

+

сложение

-

вычитание

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

В среде «Л-ГРАФ» можно использовать следующие стандартные математические функции:

ARCTAN(X)

арктангенс

COS(X)

косинус

INT(X)

отбрасывание дробной части

SIN(X)

синус

SQR(X)

возведение в квадрат

SQRT(X)

извлечение квадратного корня

Аргумент в функциях COS(X), SIN(X) задается в радианах.

Примеры записи арифметических выражений и команд присваивания:

:A=25 :N=:N+1 :P=175*(:M+1)/200 :X1=INT(:K/2)

Мы описывали процедуру рисования квадрата:

TO KVADRAT REPEAT 4 [ FORWARD 70 RIGHT 360/4 ] END

По команде KVADRAT черепашка всякий раз рисовала на экране квадрат со стороной в 70 черепашьих шагов. А как же получить квадрат другого размера?

Изменим описание процедуры KVADRAT следующим образом:

TO KVADRAT :SIZE REPEAT 4 [ FORWARD :SIZE RIGHT 360/4 ] END

Теперь черепашка будет перемещаться не на 70 шагов, а на некоторую величину :SIZE.

Чтобы нарисовать квадрат со стороной, например, в 20 черепашьих шагов, необходимо задать черепашке команду: KVADRAT 20. При выполнении данной команды происходит обращение к процедуре KVADRAT и вместо величины :SIZE используется значение 20.

Величина :SIZE является параметром нашей новой команды KVADRAT.

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

А параметры, указанные при вызове процедуры, называются фактические (т. е. Фактические значения, с которыми работает черепашка).

Например,

KVADRAT 45

:A=60

KVADRAT :A

:A=:A+10

KVADRAT :A

KVADRAT SQR(:A)

:A=:A*2-40

KVADRAT :A

KVADRAT SQRT(:A)

Рассмотрим задачу построения правильного выпуклого N-угольника.

Пусть значение длины стороны многоугольника определяется параметром :SIZE, а количество сторон — параметром :N. При построении правильного N-угольника черепашка должна :N раз продвинуться вперед на величину :SIZE и повернуться на угол, значение которого равно 360/:N.

Опишем процедуру рисования правильного N-угольника с именем NUGOLNIK и двумя параметрами :SIZE и :N:

TO NUGOLNIK :N :SIZE REPEAT :N [ FORWARD :SIZE RIGHT 360/:N ] END

Меняя значения параметров :N и :SIZE, можно получить бесконечное множество правильных многоугольников с различными длинами сторон:

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

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

TO KVADRAT :SIZE

REPEAT 4

[

FORWARD :SIZE

RIGHT 90

]

END

:A=10

REPEAT 5

[

SQUARE :A

:A=:A+20

]

Понятно, что мы рисуем квадраты с длиной стороны :A, которая каждый раз увеличивается на 20 черепашьих шагов, а длина стороны первого квадрата равна 10.