В этом задании, вы познакомитесь более подробно с линейными функциями и напишите свои первые программы на Visual Basic.

ОПЕРАТОР РАВЕНСТВА.

Но сначала мы поговорим о значении знака равенства = в математике и программировании. Пусть у нас есть некоторое выражение А. Например, это может быть выражение «вес груза лежащего на левой чашке весов» (см Рисунок 1). И пусть есть выражение В: «вес груза лежащего на правой чашке весов».

 

 

Рис.1

 

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

На языке математики слово «равен» обозначается знаком « = ». Тогда наше утверждение будет выглядеть так:

вес груза лежащего на левой чашке весов = вес груза лежащего на правой чашке весов.

 

Это же можно записать ещё короче. Если вспомним, что мы обозначили левое выражение буквой А, а правое- буквой В, то

А = В.

 

Часто бывает, что мы не знаем какой точно вес грузов, но знаем, что он может быть равен любому числу из некоторого множества чисел. Например, глядя на рисунок, можно предположить, что вес грузов может быть от 0 kg до 100kg. Тогда, на языке математики можно сказать так: мы обозначили левое выражение переменной a, а правое- переменной b, и у нас a = b.

 

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

 

Например, скорость автомобиля может меняться от 0 до 200 км/час. В данном случае, у нас есть выражение "скорость автомобиля"  и множество возможных значений скорости от 0 до 200 км/час. Поэтому выражение "скорость автомобиля" можно обозначить переменной, например буквой x. Кто является элементами  множества значений выражения "скорость автомобиля"? Элементом этого множества являются любая скорость от 0км/час до  200км/час. Так скорость 60км/час будет элементом множества возможных скоростей, а скорость 210 км/час уже не будет его элементом.  Также в данном случае можно сказать, что множеством значений переменной х будет множество скоростей от 0 до 200 км/час.

 

Но в произвольном случае, выражение может принимать и не численные значения. Например, электрический выключатель может быть или включенным, или выключенным. В данном случае, мы говорим о состояниях электрического выключателя, поэтому у нас есть выражение "состояние электрического выключателя". Его множество значений состоит из всего двух элементов: "включён" и "выключен". Эти элементы не являются числами. Тем не менее, мы можем обозначить выражение "состояние электрического выключателя" переменной, например k. Множеством значений переменной k, в данном случае, будет множество из двух элементов "включён" и "выключен". Приведенный пример с электрическим выключателем является основой вычислительной техники, основанной не на арифметических действиях, а на законах алгебры Буля. Для Булевой алгебры, выражение "состояние электрического выключателя" будет логическим выражением, а его значения будут логическими значениями. Только в Булевой алгебре эти значения принято называть логической единицей и логическим нулём, или "истина" и " ложь".

 

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

 

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

 

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

 

В рассмотренных примерах с весами, знак = обозначает равенство левого и правого выражения, или равенство переменных, между которыми он стоит. Поскольку, равенство = в данном случае означает действие сравнения одной величины с другой, то этот знак ещё называют оператором равенства или оператором сравнения. Любое математическое выражение, в котором используется оператор равенства называется равенством. Если в одной из сторон равенства есть хотя бы одна переменная, то такое равенство называется уравнением.

 

Обратите внимание, для оператора равенства =, из равенства А= В, следует, что верно равенство В = А.

Ведь если вес груза лежащего на левой чашке весов = весу груза лежащего на правой чашке весов, то очевидно, что и вес груза лежащего на правой чашке весов = весу груза лежащего на левой чашке весов.

На языке математики это записывается короче:

если А = В, то и В = А,

или то же самое для переменных будет: если a=b, то b=a.

 

ПЕРЕНОС ПЕРЕМЕННОЙ ЧЕРЕЗ ЗНАК РАВЕНСТВА И УПРОЩЕНИЕ УРАВНЕНИЙ.

Разберем поподробнее случай с весами на Рисунке 1, и заодно попрактикуемся в разговоре на языке математики. Как мы договорились, наша переменная а означает выражение «вес груза лежащего на левой чашке весов». Но этот груз в данном случае состоит из двух кубиков и одного шарика. Значит «вес груза на левой чашке весов равен весу двух кубиков и одного шарика». Обозначим вес кубика переменной с, а вес шарика переменной s. Тогда, то же утверждение на языке математики записывается так:

а= 2*с + s

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

Аналогично утверждение «вес груза на правой чашке весов равен весу трех кубиков» запишется так:

b= 3*с

Поскольку a= b, то

2*с + s = 3*c

Мы получили уравнение, которое можно написать глядя на рисунок. Ведь в переводе с языка математики, оно говорит, что на левую чашку положено 2 кубика и один шарик, а на правую чашку положили 3 кубика. И вес грузов оказался одинаковым. Именно это и изображает рисунок.

 

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

Заменим умножения в обоих частях сложением. Получим:

с+с+s = c+c+c

Теперь уберем с каждой чашки весов по одному кубику. Получим

с+с+s -c = c+c+c -c

 , что после выполнения вычитания даст нам

с+s = c+c

Это соответствует тому, что получилось на рисунке после снятия по кубику с каждой чашки:

 

Рис.2

 

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

с+с+s -c = c+c+c -c

Выполним вычитание в его левой части, а в правой оставим пока как есть. Равенство выражений от этого не изменится, ведь мы по прежнему вычитаем по кубику «с» с каждой стороны. Получим:

с+s = c+c+c -c

Сравним его с исходным уравнением:

с+с+s = c+c+c

 

Глядя на эти два уравнения

с+с+s = c+c+c

с+s = c+c+c -c

мы можем сказать, что второе получилось из первого переносом переменной «с» с левой стороны на правую, со знаком -. Т.е. после переноса, справа в уравнении появилось «». И наоборот, первое уравнение получается из второго переносом переменной «-с» с одной стороны на другую с противоположным знаком. Т.е до переноса было «», после переноса стало «». Это и есть правило переноса переменной через знак равенства. Сформулируем его ещё раз:

 

«Если переменная переносится через знак равенства с одной стороны уравнения на другую, то её знак меняется на противоположный».

 

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

 

Упростим теперь с помощью этого правила наше исходное уравнение 2*c+s=3*c. Для этого нам потребуется ещё одно правило:

 

«Для упрощения уравнений желательно собрать одну из переменных на одной из сторон уравнения».

 

Это правило называется методом разделения перменных. Поясним это правило на нашем примере. Наше исходное уравнение было:

2*с + s = 3*c

Соберем все переменные «с» на правой стороне, с использованием правила переноса через знак равенства. Получим:

s= 3*c-2*c

Выполним вычитание в правой части уравнения. Тогда у нас останется:

s=c

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

 

Правило переноса через знак равенства и метод разделения перменных,  нам понадобятся при разработке алгоритмов в программировании и в вычислениях в физических задачах.

 

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

 

Например у нас есть две переменных х и у, и пусть y=x. Умножим одновременно левую и правую стороны уравнения на 5. Правило говорит, что равенство левой и правой сторон сохранится после такого умножения:

5*y = 5*x

Аналогичный пример для деления. Пусть у нас даны те же две переменные х и у, и пусть 3*y=3*x. Тогда если мы  поделим левую и правую части уравнения на 3, то получим, что

3*y:3=3*x:3

Выполнив деление, получим:

y=x , поскольку

3*y:3=x , и

3*y:3=y

Докажите это  правило с помощью весов.

 

ОПЕРАТОР ПРИСВАИВАНИЯ.

Как это ни странно, но компьютер оператора равенства не понимает. Для компьютера знак = означает оператор присваивания. Т.е. выражение А=В для компьютера означает, что переменной А присваивается значение переменной В, и А равно В, но не наоборот. Например, в математике выражение А=А+1 бессмысленно. Действительно, если мы воспользуемся правилом переноса переменной, то получим:

А-А=1

или, после выполнения вычитания в левой части:

0=1

чего не может быть.

А вот в программировании это имеет смысл и часто используется. В этом случае выражение

А=А+1

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

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

 

Например, вы им пользуетесь в таблицах OpenOffice Spreadsheet, когда, скажем, ячейке D1 присваиваете значение ячейки А1. Тогда вы в ячейке D1 пишите: =А1, и значение ячейки D1 становится равным значению ячейки А1, какое бы число ни было записано в ячейку А1. Но если вы измените значение ячейки D1, записав в неё другое число, то значение ячейки А1 при этом не изменится. Знак = в OpenOffice Spreadsheet является оператором присваивания.

 

ГРАФИКИ ЛИНЕЙНОЙ ФУНКЦИИ.

Чтобы отобразить любую графическую информацию (фильмы, фотографии, рисунки, графики) на экране компьютера, нам потребуется числовая 2-мерная плоскость. Обычно для этого используют Декартовы координаты. Числовые прямые, обозначающие оси, могут обозначаться любыми переменными, но, обычно, принято горизонтальную ось обозначать переменной Х, а вертикальную- переменной Y. Такое обозначение принято и в OpenOffice Spreadsheet. Тем не менее, вы вправе присваивать X и Y значения любых переменных. Надо только помнить, что любые фотографии, рисунки или 2-мерные графики, с точки зрения математики и компьютера- это графики некоторой функции, и в OpenOffice Spreadsheet, в окнах Charts, X обозначает область определения этой функции, а Y- область её значений.

Замечание: О числовых прямых мы будем говорить на следующих занятиях. Сейчас же вам надо знать, что когда мы говорим числовая прямая, то подразумеваем, что это графический способ изображения чисел. Т.е. любое число может быть изображено  соответствующей только ему точкой на прямой, но для этого нам на этой прямой надо задать 0 - точку начала отсчёта, единичный отрезок и положительное направление.  Если не задать или положение нулевой точки, или единичного отрезка, или положительного направления, то это будет просто прямая, на которой есть бесконечно много точек. Но не будет правила, по которому мы находим каждому числу свою точку. Под числовой 2-мерной плоскостью будем понимать плоскость, на которой каждая точка может быть определена с помощью двух простых чисел, координат этой точки. Экран вашего компьютера, для самого компьютера- это тоже числовая 2-мерная плоскость

Чтобы  научиться избражать что-либо на экране, надо сначала научиться  рисовать простые линии с помощью компьютера. Простейшей линией является прямая. Она является графиком линейной функции. Функции y=4*x; y=x+5; y= 0.2*x ; y=3*x - 2; y=3*x+2 -это примеры линейных функций. Построим график линейной функции y=3*x +5. Сначала зададим область определения этой функции, обозначив её через Х. Пусть это будут числа от 0 до 10 с шагом 0.1, и поместим их в колонку А. Затем вычислим значения функции y=3*x +5 для каждого Х, и разместим значения Y в колонке В, как на Рисунке 3 :

 

Рис.3.

 

Мы задали область определения и область значения функции. Теперь построим график  этой функции. У вас должен получиться отрезок прямой, как на Рисунке 4:

 

Рис.4.

 

А что у вас получится, если теперь построить график любой линейной функции, например графики функций

y=4*x;

y=x+5;

y= 0.2*x ;

y=3*x - 2; и

y=3*x+2 ?

Чтобы их построить, можно сохранить ту же область определения (т. е. оставить значения переменной Х без изменений), и вычислить новые значения Y, для каждой функции. Это займет много времени.

Есть более простой способ, с помощью которого можно быстро строить и все эти, и любые другие линейные функции.

Для этого, надо внимательно посмотреть на предложенные к построению уравнения. Все эти уравнения имеют несколько общих для них особенностей. Например, в левой части у них у всех есть только одна переменная y. В правой же части уравнения есть переменная x, которая всегда умножается на некоторое число (в уравнении y=x+5 можно считать, что х умножается на единицу). Назовем это число числом a. Это число еще называют параметром a, или коэффициентом а. Затем, к этому произведению всегда прибавляется другое число ( в уравнении y=4*x ничего не прибавляется, но тогда можно сказать, что прибавляется число 0; в уравнении y=3*x – 2 вычитается число 2. Но это все равно, что прибавляется число -2). Назовем это другое число параметром или коэффициентом b. Получается, что все перечисленные линейные уравнения и вообще любые линейные уравнения можно записать в виде: y=a*x+b, где a и b принимают свои конкретные значения, для каждой линейной функции (каждого линейного уравнения).

 

Запишем теперь функцию y=3*x + 5, через общий вид линейных функций y=a*x+b. У нас получится как на Рисунке 5.

 

 

Рис.5

 

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

Например, построим линейную функцию y=x – 2. У нас получится, как на Рисунке 6:

 

Рис.6

 

Итак, вы можете теперь строить график любой линейной функции. Но пока не видно особенных преимуществ от этого. Только если внимательно приглядеться, то можно увидеть разницу между двумя графиками на Рисунках 5 и 6. В первом ось Y меняется от 0 до 40, а во втором от -4 до 10. Иначе говоря, вы как бы сжали график по оси Y в одном случае, и растянули его и ещё сместили по той же оси в другом. Т.е. вы поменяли масштаб на графиках и сместили начало отсчета. Поэтому вы не видите главного: ваши прямые отрезки двигаются. Чтобы увидеть движение, надо зафиксировать систему координат. В OpenOffice для этого надо зафиксировать минимальное и максимальное значения, которое показываются по осям. Тогда вы зафиксируете всю систему координат: её начало отсчёта, и её масштаб.

 

Для этого выделите мышкой соответствующую ось, затем нажмите правую клавишу мышки и выберите Format Axis, отмените Automatic режим для осей и введите в полях Minimum и Maximum значения -30 и 30 соответственно, как на Рисунке 7. Сделайте так по обеим осям.

 

 

Рис.7.

 

Теперь оси вашего графики зафиксированы, не будут меняться автоматически с изменениями значений функций, и можно будет видеть движение отрезка прямой. Проверьте сказанное. Постройте графики функций y=4*x; y=x+5; y= 0.2*x ; y=3*x - 2; и y=3*x+2 , меняя коэффициенты a и b.

 

Задача 1.

а) Что меняется в положении отрезка если менять параметр а?

б) Каким должен быть параметр а, чтобы отрезок наклонился вниз?

б) Что будет, если параметр а=0, и чему будет равен y в этом случае?

г) Что меняется в положении отрезка если менять параметр b?

д) Какими должны быть параметры a и b, чтобы отрезок лежал точно на оси ОХ?

е) Что меняется в положении отрезка если изменить область определения? Например, задайте Х от 0 до 20 с шагом 1; от 0 до 10 с шагом 1 (оставшиеся в таблице функции лишние пары x,y удалите); от 0 до 10 с шагом 5 (оставшиеся в таблице лишние пары x,y удалите); от 0 до 10 с шагом 10 (опять удалите лишние пары x,y в таблице функции ). Какое минимальное количество пар x,y в таблице функции надо задать, чтобы построить прямой отрезок?

ё) Когда отрезок лежит на оси ОХ, можно сказать, что его точки являются графическим изображением чисел области определения функции. Чтобы увидеть это лучше, верните обратно автоматический масштаб для оси ОХ.

Для этого, выделите ось ОХ, нажмите на правую клавишу и выберете опцию Format Axis/Scale, и установите обратно Automatic режим в полях Minimum и Maximum , как на Рисунке 7, только для оси ОХ. Также в поле Major interval отмените Automatic и введите число 1.

 

Внимание: не забудьте опять отменить Automatic режим для Minimum и Maximum после выполнения задачи.

 

Затем в области определения линейной функции, в ячейках с «А2» по «А22» вводите по очереди числовые ряды с первым числом равным 0 и с шагом 1, потом с шагом 0.5, затем с шагом 0.2, и потом с шагом 0.1. Смотрите, где на отрезке появляются точки соответствующие числам области определения. Они и будут графическим представлением чисел области определения.

Сколько точек вы найдете на вашем отрезке между точками 0 и 1 для случая с шагом 0.5, 0.2, и 0.1?

Как это количество точек связано с величиной шага?

Пусть переменная s обозначает размер шага, а переменная n обозначает количество точек между 0 и 1, которые вы насчитали для этого шага. Составьте таблицу из полученных пар n и s . Эта таблица определяет функцию s от n . Внимательно посмотрите на таблицу и догадайтесь, как эту же функцию можно записать с помощью уравнения, которое выразит s через n (т. е. оно вам позволит вычислять s, если дано n).

Подсказка: Числа 0.5, 0.2, 0.1 дроби и

0.5=5/10=1/2

0.2= 2/10=1/5

0.1=1/10

ж) Почему в предыдущем пункте ё) получается уравнение s=1/(n+1), а не s=1/n? В чём особенность числа n+1: чему оно равно на графике ?

 

Из Задачи 1, вы знаете, что параметр а определяет наклон прямой линии, а параметр b смещает начало отрезка по оси Y. Но во всех этих случаях отрезок лежит в первом (I) и четвертом (IV) квадрантах Декартовой системы координат (см. Рисунок 8).

 

Рис.8

 

Задача 2.

Что надо изменить в функции y=a*x+ b, чтобы отрезок лежал во втором и третьем квадранте?

(Подсказка: во втором и третьем квадранте ось Х меняется от -30 до 0).

 

ПРЯМОЛИНЕЙНОЕ РАВНОМЕРНОЕ ДВИЖЕНИЕ ТЕЛ.

Представим себе, что наша координатная плоскость — это карта поверхности поля, и мы смотрим на поле с верху. Робот находится в точке Р1, с координатами (0, 10), и ему надо доехать до точки Р2, с координатами (20, -10). Робот едет с постоянной скоростью. Наша задача- написать программу симулирующую движение робота, чтобы было видно, куда и как он едет в каждый момент времени. Затем с помощью этой программы надо определить для робота оптимальную траекторию движения.

 

Поскольку кратчайшее расстояние между любыми двумя точками- это расстояние по прямой, то траектория оптимального движения должна быть прямая линия, соединяющая эти точки. Значит траектория робота должна описываться линейным уравнением вида y=a*x + b. Наша задача- найти коэффициенты a и b этой оптимальной траектории.

 

Для этого предположим, что робота можно обозначить, точкой на карте и симулируем движение этой точки. Как с помощью графика изобразить точку? Задав пару чисел (Xo, Yo), которые будут координатами точки и используя XY Scatter Chart Type, Points and Lines (Рисунок 9).

 

 

Рис. 9

 

Восстановим область определения функции y=a*x + b, от 0 до 10 с шагом 0.5, и соответствующую ей область значений (Рисунок 6). Присваивая паре чисел XoYo значения пар чисел XY из восстановленной таблицы функции y=a*x + b, вы сможете двигать точку по траектории описываемой этой функцией:

 

 

Рис. 10

 

ПЕРВАЯ ПРОГРАММА НА BASIC.

 

Пока мы все координаты точки меняли «вручную». Давайте теперь напишем программу на Visual Basic, которая будет это делать за нас, и дополнительно к этому, поможет нам менять скорость движения робота. Сначала запишем в клетки G1 знак t и в G2 число 1000. Величина 1000 будет временем t перемещения робота от одного места к другому.

 

 

Рис. 11.

 

Затем откройте OpenOffice Basic (Рисунок 12).

 

Рис. 12

 

Рис.13

 

Выделите модуль и выберете опцию Edit (Рисунок13). Модуль откроется. Затем создайте программу LinearFunction (название модуля может быть любым), скопировав или переписав следующие коды (следите, чтобы строки с командами сохранялись и не переносились на новые строки):

 

REM ***** BASIC *****

 

Sub LinearFunction

Dim Sheet0 As Object

 

Dim a As Single

Dim b As Single

Dim Xo As Single

Dim Yo As SIngle

 

Dim k As Integer

Dim t As Integer

 

Sheet0 = ThisComponent.Sheets(0)

 

a = Sheet0.getCellRangeByName("C2").Value

b = Sheet0.getCellRangeByName("D2").Value

t = Sheet0.getCellRangeByName("G2").Value

 

For k=0 to 20

Xo=k*0.5

Yo= a*Xo + b

Sheet0.GetCellRAngeByName("E2").Value=Xo

Sheet0.GetCellRAngeByName("F2").Value=Yo

 

Wait t

 

Next k

 

End Sub

 

REM ***** END OF BASIC PROGRAM*****

 

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

 

То, что строки являются командами, а не просто текстом, компьютер узнаёт, прочитав самую первую строку вашей программы: Sub LinearFunction. Она сообщает компьютеру, что далее идет Subroutine, т. е. далее идут строки-команды вашей программы. Поэтому, любая программа на Basic должна начинаться со слова Sub, за которым обязательно следует название программы. По этому имени компьютер сможет найти программу, если она вам понадобится в дальнейшем. Затем компьютер последовательно выполняет строки-команды, одну за другой. Прочитав строку End Sub, компьютер поймет, что программа закончилась.

Если в ваших кодах не будет этой последней команды, то компьютер сообщит об ошибке.

 

Также, в кодах в самой первой и самой последней строках есть команда REM. Она сообщает компьютеру, что все, что стоит в строке после этой команды является комментарием для человека, и не выполняется компьютером. Вместо команды REM можно использовать её эквивалент, обозначаемый одним знаком одинарная ковычка ' . Такие пояснения нужны программистам, чтобы было легче разбираться в сложных кодах. Если эти строки-пояснения не писать, то работа программы и компьютера не изменятся. Они нужны только человеку. Ещё эти команды могут применяться при наладке программы, для отмены других команд, которые временно оказались не нужны.

 

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

 

Рис. 14

 

Чтобы было удобнее наблюдать за точкой, рекомендую организовать ваш график как показано на Рисунке 15.

 

Задача 3.

Объясните, почему так удобнее стало наблюдать.

 

Рис.15.

 

Задача 4

а) Меняйте значения переменных a, b, t в Spreadsheet таблице и исследуйте, как меняется при этом движение точки. Объясните увиденное.

б) Что произойдет, если вы поменяете значения переменной k в первой команде цикла «For..Next »

For k=0 to 20 ?

 

Например, вы можете написать

For k=0 to 40

или

For k=10 to 20

 

Строка-команда «For k=0 to 20 » определяет область изменения переменной k в этом цикле «For..Next ». Командные строки цикла начинаются со слова For и кончаются командой Next. Сначала, первая строка присваивает переменной k значение 0. Затем компьютер выполняет все последующие строки-команды цикла вплоть до строки с командой Next. Строки-команды между For и Next это тело цикла. Команда Next присваивает переменной k следующее значение, т. е. увеличивает значение k на единицу. Первый проход цикла завершен и компьютер идёт выполнять строки-команды цикла по второму разу, опять начиная с первой строки и заканчивая опять строкой-командой Next. После чего k опять увеличивается на 1, и компьютер идёт на новый цикл. И так далее. Только теперь в первой строке значение k не меняется, а лишь сравнивается с максимально допустимой величиной k, которая задаётся этой первой строкой. В нашем цикле она равна 20 . Как только k станет равным 20, то цикл выполняется в последний раз. Тогда компьютер доходит до Next, но уже не выполняет эту команду, а выходит из тела цикла и выполняет строку-команду следующую за Next. Работа цикла проиллюстрирована на Рисунке 16. В этом цикле, k меняется от 0 до 2. Стрелка указывает на строку-команду, которую выполняет компьютер, и показано, как меняется значение переменной k при выполнении компьютером команд цикла.

 

 

Рис. 16

 

Теперь у нас есть программа, которая симулирует движение робота и нам осталось нанести на плоскости точку Р1, с координатами (0, 10), и точку Р2, с координатами (20, -10). Вы сделаете это сами аналогично тому, как вы делали, чтобы показать на графике точку ХоYo. На Рисунке 17 показан один из способов решения этой задачи.

 

Рис. 17

 

Задача 5.

Подберите параметры a,b, и значения переменной k в первой строке цикла вашей Visual Basic программы так, чтобы робот смог проехать из точки Р1 в точку Р2.

 

Задача 6.

Пусть теперь начальная и конечная точки пути робота имеют следующие координаты: P1(-20, -20) и P2(20, 10). Подберите параметры траектории оптимального движения робота в этом случае.

 

Задача 7.

Пусть теперь у вас есть два робота (один пусть будет красным, а другой синим).

Красному надо доехать из точки Pr1(-20, -20) в точку Pr2(20, 10) , а синему из точки Pb1(-20, 20) в точку Pb2(20, -10). Напишите программу симулирующую их оптимальное движение без столкновения роботов.

 

Задача 8.

Пусть у вас есть те же два робота, красный и синий.

Красному опять надо доехать из точки Pr1(-20, -20) в точку Pr2(20, 10), и синему из точки Pb1(-20, 20) в точку Pb2(20, -10). Напишите программу симулирующую их движение , чтобы траектории движения роботов не пересекались.