Plazer-don.ru

Сварочное оборудование
3 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Исполнитель Робот. Циклы

Исполнитель Робот. Циклы.

Решение задачи с циклом

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

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

Т. е мы повторили команду сделай приседание 7 раз. А есть ли смысл писать 7 одинаковых команд? Может проще дать команду сделай 7 приседаний? Конечно проще и правильнее. Это и есть цикл. Вы можете сами вспомнить примеры циклов из жизни — их довольно много.

Таким образом линейный алгоритм, где повторяются одни и те же команды мы можем оформить в виде циклического алгоритма — примерно так:

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

Цикл while (англ. “пока”), он же называется цикл с предусловием, выполняется до тех пор, пока верно указанное условие. Если условие сразу неверно, цикл даже не начнёт свою работу и будет полностью пропущен. Объявляется очень просто: ключевое слово while , далее условие в скобках, и вот уже тело цикла:

Хммм, вам не кажется знакомым действие этого примера? Всё верно, это полный аналог цикла for с настройками (int i = 0; i < 10; i++) . Единственное отличие в том, что на последней итерации i примет значение 10 , так как на значении 9 цикл разрешит выполнение. Ещё интересный вариант, который можно встретить на просторах чужого кода. Работает на основе того факта, что любое число кроме нуля обрабатывается логикой как true :

Читайте так же:
Двухзонный счетчик выгодно или нет

Цикл while тоже удобно использовать как вечный цикл, например, ожидая наступление какого-либо события (нажатие кнопки):

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

Всё, вертимся здесь бесконечно! Если не предусмотрим break , конечно же… Помимо цикла с предусловием есть ещё цикл с постусловием, так называемый do while

Цикл «Для Каждого…»

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

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

Пример 1 — Простой обход таблицы значения

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

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

ИндексЗначение элементаТип элементаАвтомобильКлассВес
СтрокаТаблицыЗначенийСтрокаТаблицыЗначений«KIA»«A Класс»1 100
1СтрокаТаблицыЗначенийСтрокаТаблицыЗначений«Ford»«B Класс»1 300
2СтрокаТаблицыЗначенийСтрокаТаблицыЗначений«BMW»«C Класс»1 400

Теперь реализуем обход по коллекции с помощью цикла Для Каждого.

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

*Данный пример мы привели во внешней обработке.

Пример 2 — Обход массива

Создадим еще одну коллекцию. Массив, в отличии от таблиц значений, можно создать на клиенте тоже.

Взглянем на коллекцию:

ИндексЗначение элементаТип элемента
«Арина»Строка
1«Марина»Строка
2«Карина»Строка

А теперь реализуем обход по коллекции, с помощью цикла Для Каждого:

Читайте так же:
Что такое счетчик просмотров вконтакте

Пример 3 — Оператор «Продолжить»

Еще один пример, где применим оператор Продолжить:

ИндексЗначение элементаТип элемента
3Число
17Число
28Число
39Число

Цикл repeat

Цикл while может не выполниться ни разу, если логическое выражение в заголовке сразу вернуло false. Однако такая ситуация не всегда может быть приемлемой. Бывает, что тело цикла должно выполниться хотя бы один раз, не зависимо оттого, что вернет логическое выражение. В таком случае используется цикл repeat – цикл с постусловием.

В цикле repeat логическое выражение стоит после тела цикла. Причем, в отличие от цикла while, здесь всё наоборот: в случае true происходит выход из цикла, в случае false – его повторение.

В примере, даже если n будет равно 0, одна звездочка все равно будет напечатана.

Нужно создать цикл for, который выводит на экран числа от 0,5 до 1,5 с шагом 0,25 в Pascal

Цикл с параметром — Цикл for C#

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

  1. Инициализация — установка начальных параметров счетчика;
  2. Условие — условие выхода из цикла, как только оно вернет ложь — произойдет выход из цикла;
  3. Порядок выполнения — команда увеличения счетчика.

Действия, выполняемые циклически, называются телом цикла. Рассмотрим наиболее общий пример: поиск факториала числа. Факториал числа вычисляется по формуле:

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

Итак, пользователь вводит любое число. После чего, мы вычисляем факториал по вышеуказанной формуле. Начальное значение факториала необходимо установить в единицу. Цикл начинаем с двойки и повторяем до тех пор, пока счетчик меньше или равен введенному пользователем значению. Если использовать оператор «меньше», мы потеряем умножение на старшее число при вычислении факториала. Порядок выполнения указан как i++, это значит, что на каждой итерации цикла счетчик i увеличивается на единицу. В виде порядка управления может выступать и более сложная математическая формула.

Читайте так же:
Учитывает ли счетчик реактивную мощность

While, или цикл с предусловием

Как вы, наверное, уже поняли из названия, while — это цикл, в котором условие стоит перед телом. Причем тело цикла выполняется тогда и только тогда, когда условие true; как только условие становится false, выполнение цикла прекращается.

While имеет формат:

while < условие> do <оператор 1>;

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

Безусловный цикл

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

Такой алгоритм содержит три обязательных элемента:

  1. Стартовое значение, которое называют параметром цикла, т. к. именно эта переменная изменяется после каждого выполнения цикла и определяет момент его завершения.
  2. Значение, при котором цикл завершается.
  3. Шаг цикла.

что такое циклический алгоритм

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

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

голоса
Рейтинг статьи
Читайте так же:
Ящик для домашнего счетчика
Ссылка на основную публикацию
Adblock
detector