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

Для того, чтобы компьютер выровнял все строки программы (привел программу в «приличный» вид), можно нажать клавишу F6 или щелкнуть по кнопке на панели инструментов.

Когда программа готова, запишите ее на диск, нажав клавишу F2 или кнопку на панели инструментов. В ответ на это при первой записи файла на диск появляется окно для ввода имени файла, где вам надо ввести любое имя и затем щелкнуть на кнопку ОК. При записи файла в следующий раз имя уже известно, поэтому система переименует старую версию, сделав у нее расширение *.bak, а новую запишет с тем же именем.

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

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

Если ошибок нет, но Робот не выполнил задание, в программе есть логическая ошибка. Для ее обнаружения воспользуйтесь режимом отладки: при нажатии на клавишу F8 исполнитель выполняет одну строку программы и останавливается. Такой режим называется пошаговым. Таким образом, можно определить, в какой строчке программа начинает выполняться не так, как вам хочется. Обнаружив ошибку, нажмите клавишу Esc для выхода из режима отладки. Когда все получилось, запишите новый вариант на диск и закончите работу, щелкнув по кнопке в правом верхнем углу окна или нажав клавиши Alt+F4.

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

Если программа не доделана и записана на диск, вы сможете в следующий раз загрузить старую программу, нажав на клавишу F3 или щелкнув по кнопке . Чтобы начать новую программу и очистить поле редактора, щелкните по кнопке .

Задачи

1.  Определите, чего не хватает в условии этой задачи. Дополните условие и решите задачу.

2.  Известно, что Робот вышел из некоторой точки А и туда же пришел после выполнения задания. Восстановить недостающую строчку (или строчки) в программе.

Вокруг

{

вперед ( 2 );

...

вперед ( 2 );

налево;

}

 

Вокруг2

{

вперед ( 2 );

...

налево;

вперед ( 3 );

}

 

3. Известна программа перехода Робота из одной клетки в другую. Составить программу обратного хода Робота.

4. Перевести Робота на Базу всеми возможными способами из трех команд. Можно ли сделать это в 2 шага ( в 5 шагов? 10 шагов? 15 шагов? 1991 шаг?).

5. Составить и решить свою задачу для Робота (придумать интересное название).

3.  Циклы

2  Что такое цикл (задача z2-3.maz)?

Часто исполнителю надо выполнить какую-то последовательность команд несколько раз. Например, в задаче на рисунке Робот должен подойти к ряду клеток, которые надо закрасить, и затем выполнить 6 раз команды вперед(1) и посади.

В данном случае эти команды надо повторить только 6 раза и можно легко 6 раз написать одинаковые команды. Но представьте, что надо сделать одинаковые операции 100 или 200 раз! В программировании в таких случаях используется специальная команда (оператор цикла), которая говорит исполнителю, что какую-то часть программы надо сделать несколько раз.

¨  Цикл — это многократное повторение одинаковых действий

¨  Тело цикла ­– это команды, которые выполняются несколько раз.

¨  Шаг цикла ­– это однократное выполнение тела цикла.

Для нашей задачи подходит цикл повтори (или repeat), в котором с известным числом шагов. Программа с использованием оператора цикла выглядит так:

Ряд

{

вперед ( 1 ); /* подойти к месту работы */

повтори ( 6 )

{

вперед ( 1 );

посади;

}

}

2  Правила использования оператора цикла

1.  Цикл повтори (или repeat) используется тогда, когда число шагов заранее известно или может быть вычислено.

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

3.  Тело цикла начинается открывающей фигурной скобкой { и заканчивается закрывающей }.

4.  Если тело цикла включает всего один оператор, скобки можно не ставить.

5.  Для того, чтобы легче разбираться в программе, применяют специальную систему записи с отступами: тело цикла смещают вправо на 2-3 символа — это позволяет сразу видеть, где начинается и где заканчивается цикл. Для того, чтобы компьютер автоматически сделал отступы в программе, можно нажать клавишу F6.

2  Вложенные циклы (задача z3-3.maz)

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

Как бы такая задача решалась в реальных условиях? Можно предложить такой вариант: Робот сначала сажает цветы в первом (верхнем) ряду, затем во втором и т. д.

Для обработки одного ряда можно использовать цикл повтори(4). В программе надо обработать 3 ряда, то есть написать три одинаковых цикла. Тогда получается, что можно снова использовать цикл повтори(3) для трех рядов, но внутри него также будет находиться цикл.

¨  Вложенный цикл – это такой цикл, который находится внутри другого цикла.

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

4.  Алгоритмы с обратной связью

2  Что такое обратная связь и зачем она нужна?

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

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

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

Действие обратной связи можно описать такой схемой:

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

2  Как Робот использует обратную связь?

Робот имеет датчики, которые позволяют ему получать информацию об обстановке. Датчики определяют, например, есть ли стена в каком-то направлении. Чтобы использовать эту информацию в программе, в СКИ Робота есть специальные логические команды.

¨  Логическая команда – это условие, которое может быть верным (истинным) или неверным (ложным).

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

справа_стена справа_клумба справа_свободно

слева_стена слева_клумба слева_свободно

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

сзади_стена сзади_клумба сзади_свободно

грядка база

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

Пример 1 (задача z4-3.maz). Роботу надо придти на Базу, которая расположена на краю стенки. Расстояние от Робота до стенки и длина стенки неизвестны.

Сначала Роботу надо подойти к стенке. Если бы мы управляли Роботом вручную, то надо было бы поступать так:

1)  выдать запрос впереди_свободно;

2)  если Робот получил от датчиков ответ “нет”, то он выполнил задание и находится у стены;

3)  если получен ответ “да”, то сделать шаг вперед и повторить весь процесс.

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

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

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

Тем не менее, есть четкое условие, по которому Робот должен закончить работу: если перед ним оказывается стена. Таким образом, Робот должен выполнять цикл пока впереди свободно. Для этой цели служит специальный вид цикла – цикл пока (или while, от английского while – пока). Такой вид цикла называется циклом с условием, поскольку он заканчивается, когда нарушается условие в заголовке цикла.

Для того, чтобы придти на Базу, в программе используется цикл пока не база. Это условие истинно (верно), если Робот еще на пришел на Базу и надо двигаться дальше. Если Робот вступил в клетку, где находится База, условие база стало истинным, а условие не база – ложным, поэтому цикл закончится.

2  Правила использования цикла пока

1.  Цикл пока используется тогда, когда число повторений цикла заранее неизвестно, но ограничено каким-то условием.

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

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

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

5.  В цикле выполняются все операторы, заключенные в фигурные скобки;

Если тело цикла включает всего один оператор, скобки можно не ставить.

5.  Для того, чтобы легче разбираться в программе, все команды, входящие в цикл, смещают вправо на 2-3 символа – это позволяет сразу видеть, где начинается и где заканчивается цикл.

Пример 2. При такой программе в той же задаче, что и в примере 1, Робот не будет ничего делать, так как сейчас справа от него нет стенки, и условие справа_стена не выполняется.

Ничего

{

пока ( справа_стена )

вперед ( 1 );

}

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

Пример 3. В этом примере программа для Робота составлена так, что он врежется в стенку и сообщит об ошибке “НЕ МОГУ”.

Диверсия

{

пока ( впереди_свободно )

{

вперед ( 2 );

}

}

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

Пример 4. Эта программа приводит к зацикливанию, так как условие справа_стена выполняется всегда и Робот не меняет своего места.

Зацикливание

{

пока ( справа_стена )

{

кругом; кругом;

}

}

Использование цикла пока позволяет нам решать задачи, в которых некоторые данные (например, длина стенок) заранее неизвестны.

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

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

Поскольку при обработке каждой из 4-х стенок Роботу надо выполнять одинаковые команды, здесь можно использовать цикл повтори ( 4 ). Тогда цикл пока становится вложенным циклом.

Контур

{

пока ( впереди_свободно )

вперед(1); /* подойти к стене */

налево;

пока ( справа_стена )

назад(1); /* в левый нижний угол */

повтори ( 4 )

{

вперед (1); /* теперь справа стена */

посади; /* угловая клетка */

направо;

}

 

пока ( справа_стена )

{

посади;

вперед(1);

}

 
 

}

2  Задачи

1. Посадить цветы во всех грядках клетках между стенками и вернуться обратно. Толщина стены – 1 клетка, остальные размеры считать неизвестными.

2. Посадить цветы во всех грядках. Толщина стены – 1 клетка, остальные размеры считать неизвестными. Все размеры считать неизвестными.

5.  Условный оператор

2  Что такое условный оператор (задача z5-3.maz)?

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


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

Словами это можно сформулировать так: если есть проход (условие есть проход выполняется), то выполни одну группу команд, если нет – выполни другие команды. В программе для этой цели используется специальный условный оператор если

Выбор

{

вперед(1); направо; вперед(1); /* подойти к началу стены */

пока ( впереди_свободно )

{

вперед(1);

если ( слева_свободно )

{ /* войти в проход */

налево; вперед(1);

посади;

назад(1); направо;

}

иначе

{ посади; }

 

направо;

вперед(1);

}

}

Таким образом, мы определили два варианта действий Робота - первый работает тогда, когда обнаружен проход, а второй – когда справа стена.

2  Правила использования условного оператора

1.  Условный оператор состоит из двух частей; первая часть начинается ключевым словом если или if (от английского “если”), после которого в скобках записывается условие.

2.  Если это условие верно (или истинно), то выполняется группа команд, стоящая ниже в фигурных скобках (блок-если).

3.  Вторая часть (блок-иначе) начинается со слова иначе или else (от английского “иначе”) и выполняется в том случае, когда условие в скобках ложно.

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

5.  Условие ставится только в заголовке блока-если.

6.  Блок-иначе может отсутствовать, если он не нужен; в этом случае мы говорим, что условный оператор записан в сокращенной форме.

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

2  Сокращенная форма

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

Таким образом, в блоке-иначе не осталось ни одной команды – если прохода нет, ничего делать не надо. Поэтому можно использовать сокращенную форму условного оператора – без второй части:

Сад2

{

вперед ( 1 ); направо; вперед ( 1 );

пока ( впереди_свободно )

{

вперед(1);

если ( слева_свободно )

{

налево; вперед(1);

посади;

назад(1); направо;

}

 

}

}

2  Что такое сложные условия (задача z6-3.maz)?

Рассмотрим еще одну задачу для Робота. Ему нужно пройти через коридор с проходами и придти на Базу. Сложность состоит в том, что в обеих стенках есть проходы, сколько их – неизвестно.

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

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

Посадка

{

пока ( слева_стена или справа_стена )

вперед (1);

 
вперед(1);

налево;

вперед(2);

налево;

пока ( не база ) вперед ( 1 );

}

¨  Сложное условие – это условие, состоящее из простых условий и логических операций:

НЕ отрицание

И логическое умножение

ИЛИ логическое сложение

2  Правила использования сложных условий

1.  Простейшими условиями являются логические команды исполнителей (например, слева_стена) и логические отношения между значениями[1].

> < больше, меньше т > 5, 2+n < x

>= больше или равно a >= 2* x+5

<= меньше или равно c+2*d <= 5*v

== равно d = = 2+c

<> не равно a != b

2.  В условии “равно” ставится два знака равенства; чтобы не запутаться, надо запомнить, что если переменная изменяется (оператор присваивания), то надо ставить один знак “=“, а если не меняется (логическое отношение), то два.

3.  Сложные условия составляются из нескольких простых; простые условия объединяются с помощью логических операций.

4.  Операция "И" требует одновременного выполнения двух условий, например:

сверху_стена И снизу_стена

5.  Операция "ИЛИ" обозначается требует выполнения хотя бы одного из двух условий (или обоих вместе), например:

сверху_стена ИЛИ снизу_стена

6.  Иногда удобно использовать логическую операцию “НЕ”, которая отрицает значение логического выражения, например условия

a < b и НЕ (b >= a)

означают одно и то же.

7.  Устанавливается такой приоритет (старшинство) логических отношений и операций:

· сначала выполняются операции в скобках, затем...

· операции “НЕ”, затем...

· логические отношения (>, <, >=, <=, ==, !=), затем...

· операции “И” и в последнюю очередь

· операции “ИЛИ”.

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

6.  Переменные и арифметические выражения

2  Зачем нужны переменные (задача z7-3.maz)?

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

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

1.  Длина «строки» хранится в ячейке памяти.

2.  В самом начале в эту ячейку записывается длина первой «строки».

3.  В заголовке цикла повтори вместо числа подставляется значение, взятое из этой ячейки.

4.  При переходе к следующей строке значение ячейки увеличивается на 1.

Посмотрим, как решается приведенная выше задача.

Ряд

{

int n; /* выделить место в памяти */

направо;

n = 1; /* присвоить значение переменной */

повтори ( 6 ) /* всего 6 строк */

{

повтори ( n ) /* длина строк меняется! */

{

вперед ( 1 );

посади;

}

направо;

вперед ( 1 );

налево;

назад ( n );

n = n + 1; /* увеличить переменную n на 1*/

}

}

Подумайте, как можно решить эту задачу, используя цикл пока вместо повтори?

Пример 2. Рассмотрим еще одну задачу: Роботу требуется обойти стенку и придти на Базу, которая находится точно под ним, но... с другой стороны стенки, длина которой неизвестна. Логическую команду база использовать нельзя (отказал датчик).

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

Чтобы решить эту задачу, надо в тот момент, когда Робот спустится вниз до стенки, каким-то образом запомнить, где он стоит, то есть запомнить расстояние от него до края стенки. Единственный способ сделать это – считать, сколько шагов сделает Робот вдоль стенки до края, чтобы затем сделать столько же шагов обратно, уже под стенкой.

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

ВнизСквозьСтену

{

int n = 0; /* объявление переменной */

/* выделение ячейки памяти */

/* присвоение начального значения */

пока ( впереди_свободно ) /* вниз до стенки */

вперед (1);

направо;

пока ( слева_стена ) /* выйти влево за край стены */

{

вперед (1);

n = n + 1; /* увеличиваем счетчик шагов на 1 */

}

налево; вперед ( 2 ); налево;

вперед ( n ); /* идем на нужное число шагов */

}

2  Что такое переменная?

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

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

2  Объявление переменных

1.  В начале процедуры все используемые переменные необходимо объявлять, при этом компьютер выделяет под них место в памяти и запоминает имена переменных. Если переменная не объявлена, то возникает ошибка “НЕ ПОНИМАЮ”;

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

int целые числа (сокращение от англ. integer - целый)

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

3.  Справа от типа указывают имена переменных этого типа, списком через запятую, например:

int a, b, n1, mmm;

float c2d, fg, qwerty;

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

5.  При объявлении мы может присвоить начальные значения некоторым переменным – после выделения памяти компьютер поместит эти числа в соответствующие ячейки, например:

int d, b = 4, cbn, a = 6;

float c, gh = 4.5, mmm = 7.89;

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

2  Правила работы с переменными

Для того, чтобы использовать переменные, надо уметь выполнять две основные операции

1.  Считывать из памяти и использовать значение переменной.

2.  Изменять значение переменной.

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

¨  Чтобы изменить значение переменной, надо использовать оператор присваивания: знак = показывает, что мы хотим изменить значение переменной, слева стоит имя переменной, которая изменяется, а справа - то, что мы хотим записать в эту ячейку, ее новое значение (при этом старое значение стирается!!!).

Например:

n = 5;

При этом в переменную n будет записано значение 5. Справа от знака = в операторе присваивания может стоять какое-то арифметическое выражение, в котором участвуют другие переменные и числа, например:

 

a = b + 5;

 

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

1.  прочитать значение переменной b из памяти;

2.  вычислить значение выражения b+5;

3.  результат записать в ячейку a; при этом содержимое ячейки b не меняется, а старое содержимое ячейки a теряется безвозвратно.

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

 

n = n + 1;

 

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

1.  прочитать старое значение переменной n из памяти;

2.  вычислить значение выражения n+1;

3.  результат записать в ту же ячейку n; при этом фактически содержимое ячейки n увеличивается на единицу.

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

2  Арифметические выражения

Арифметическим выражением называют запись, которая содержит элементы четырех типов

·  числа

·  имена переменных

·  знаки арифметических действий

·  вызовы функций

·  скобки для изменения порядка выполнения действий

4  Правила записи арифметических выражений[2]

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

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

3.  Для обозначения умножения используется знак *, деления /, возведения в степень ^.

4.  Знак операции умножения обязателен, например 4*a.

5.  Дробная и целая части числа отделяются точкой.

6.  Устанавливается приоритет (старшинство) операций:

· сначала выполняются операции в скобках, затем...

· вызовы функций

· возведение в степень, затем...

· умножение и деление слева направо, затем...

· сложение и вычитание слева направо;

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

Запишем в машинном виде выражение

С учетом правил записи выражений результат будет такой:

x=(2*a+4*d)/((c-2*d)*(5-7*c)^2)+5*a/(4*d*c);

Некоторые стандартные функции уже заложены в память компьютера и для их использования надо только вызвать их по имени. Мы рассмотрим только две функции:

abs ( x ) вычисление модуля (абсолютного значения) числа x

sqrt ( x ) вычисление квадратного корня от x

Запишем в машинном виде формулу

С использованием стандартных функций это выражение запишется так

x = sqrt( (a+2*b+1)/((c-3*d)*(2*a-d)) +

abs ((15*a^2+3*b)/(5*c*(b-a))) );

2  Цикл с параметром[3]

Зачем нам еще один вид цикла?

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5