Чтение онлайн

на главную

Жанры

Maple 9.5/10 в математике, физике и образовании

Дьяконов Владимир Павлович

Шрифт:

|for <name>| | from <expr1>| |to <expr3>| | <expr2>| |while <expr4>|

do <statement sequence> od;

Здесь name — имя управляющей переменной цикла, expr1, expr2 и expr3 — выражения, задающие начальное значение, конечное значение и шаг изменения переменной name, expr4 — выражение, задающее условие, пока цикл (набор объектов между словами do и od) будет выполняться.

В ходе выполнения цикла управляющая

переменная меняется от значения expr1 до значения expr2 с шагом, заданным expr3. Если блок by <expr2> отсутствует, то управляющая переменная будет меняться с шагом +1 при expr1<expr2. Это наглядно поясняет следующий пример:

> for i from 1 to 5 do print(i) od;

1
2
3
4
5

В нем выводятся значения переменной i в ходе выполнения цикла. Нетрудно заметить, что она и впрямь меняется от значения 1 до значения 5 с шагом +1 Следующий пример показывает, что границы изменения управляющей переменной можно задать арифметическими выражениями:

> for i from 7/(2+5) to 2+3 do print(i) od;

1
2
3
4
5

А еще один пример показывает задание цикла, у которого переменная цикла меняется от значения 1 до 10 с шагом 2:

> for i from 1 to 10 by 2 do print(i) od;

1
3
5
7
9

В этом случае выводятся нечетные числа от 1 до 9. Шаг может быть и отрицательным:

> for i from 9 to 1 by -2 do print(i) od;

9
7
5
3
1

Следует отметить, что expr1>expr2 задать заведомо невыполнимое условие, например, expr1>expr2 и положительное значение шага, то цикл выполнятся не будет. В цикл можно прервать с помощью дополнительного блока while <expr4>. Цикл с таким блоком выполняется до конца или до тех пор, пока условие expr4 истинно:

> for i from 1 to 10 by 2 while i<6 do print(i) od;

1
3
5

Таким образом, конструкция цикла в Maple-языке программирования вобрала в себя основные конструкции циклов for и while. Есть еще одна, более специфическая конструкция цикла:

|for <name>| |in <expr1>| | while <expr2>| do <statement sequence> od;

Здесь expr1 задает список значений, которые будет принимать управляющая переменная name. Цикл будет выполняться, пока не будет исчерпан список и пока выполняется условие, заданное выражением expr2. Следующий пример иллюстрирует сказанное:

> for i in [1,2,5,-1,7,12] do print(i) od;

1
2
5
– 1
7
12

> for i in [1,2,5,-1,7,12] while i>0 do print(i) od;

1
2
5

В

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

10.2.3. Вложенные циклы и задание с их помощью матриц

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

> M:=array(1..3,1..3);

М:=array(1..3, 1..3, [])

> for i to 3 do for j to 3 do M[i,j]:=0; if i=j then M[i,j]:=1 fi; od od;

> evalm(M);

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

Этот пример имеет не более чем познавательное значение, поскольку дня создания такой матрицы Maple имеет функции identity, с помощью которой функция array позволяет сразу создать единичную матрицу:

> array(1..3,1..3,identity);

10.2.4. Упрощенная конструкция циклов

В заключение отметим, что возможна упрощенная частная конструкция цикла типа while:

while expr do statseq od;

Здесь выражения statseq выполняются, пока выполняется логическое условие expr. Пример такого цикла:

> n:=1;

n:=1

> while n<16 do n:=2*n od;

n:=2
n:=4
n:=8
n:=16

В этом примере идет удвоение числа n с начальным значением n=1 до тех пор, пока значение n меньше 16.

10.2.5. Операторы пропуска и прерывания циклов

Иногда бывает нужным пропустить определенное значение переменной цикла. Для этого используется оператор next (следующий). Приведенный ниже пример иллюстрирует применение оператора next в составе выражения if-fi для исключения вывода значения i=-2:

> for i in [1,2,3,-2,4] do if i=-2 then next else print(i) fi od;

1
2
3
4

Другой оператор — break — прерывает выполнение фрагмента программы (или цикла) Его действие поясняет слегка модифицированный предшествующий пример:

> for i in [1,2,3,-2,4] do if i=-2 then break else print(i) fi od;

1
2
3

В данном случае при значении i=-2 произошло полное прекращение выполнения цикла. Поэтому следующее значение 4 переменной i присвоено не было и это значение на печать не попало.

Поделиться:
Популярные книги

Черный Маг Императора 13

Герда Александр
13. Черный маг императора
Фантастика:
попаданцы
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Черный Маг Императора 13

Последняя Арена 4

Греков Сергей
4. Последняя Арена
Фантастика:
рпг
постапокалипсис
5.00
рейтинг книги
Последняя Арена 4

Маяк надежды

Кас Маркус
5. Артефактор
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Маяк надежды

Великий перелом

Ланцов Михаил Алексеевич
2. Фрунзе
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Великий перелом

Сопротивляйся мне

Вечная Ольга
3. Порочная власть
Любовные романы:
современные любовные романы
эро литература
6.00
рейтинг книги
Сопротивляйся мне

Инквизитор Тьмы 2

Шмаков Алексей Семенович
2. Инквизитор Тьмы
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Инквизитор Тьмы 2

Мастер Разума V

Кронос Александр
5. Мастер Разума
Фантастика:
городское фэнтези
попаданцы
5.00
рейтинг книги
Мастер Разума V

Бандит 2

Щепетнов Евгений Владимирович
2. Петр Синельников
Фантастика:
боевая фантастика
5.73
рейтинг книги
Бандит 2

Истребители. Трилогия

Поселягин Владимир Геннадьевич
Фантастика:
альтернативная история
7.30
рейтинг книги
Истребители. Трилогия

Гардемарин Ее Величества. Инкарнация

Уленгов Юрий
1. Гардемарин ее величества
Фантастика:
городское фэнтези
попаданцы
альтернативная история
аниме
фантастика: прочее
5.00
рейтинг книги
Гардемарин Ее Величества. Инкарнация

Падение Твердыни

Распопов Дмитрий Викторович
6. Венецианский купец
Фантастика:
попаданцы
альтернативная история
5.33
рейтинг книги
Падение Твердыни

"Дальние горизонты. Дух". Компиляция. Книги 1-25

Усманов Хайдарали
Собрание сочинений
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Дальние горизонты. Дух. Компиляция. Книги 1-25

Ох уж этот Мин Джин Хо 2

Кронос Александр
2. Мин Джин Хо
Фантастика:
попаданцы
5.00
рейтинг книги
Ох уж этот Мин Джин Хо 2

Энфис 6

Кронос Александр
6. Эрра
Фантастика:
героическая фантастика
рпг
аниме
5.00
рейтинг книги
Энфис 6