для программирования какого алгоритма используется блок переключатель
Для программирования какого алгоритма используется блок переключатель
значение1: оператор1;
значение2: оператор2;
значение3: оператор3;
..
else операторN
end;
Значение «выражения» и значения констант («значение1» и т.д.) должны быть порядкового типа.
Выполнение оператора Case:
В заголовке оператора case вместо логического выражения фигурирует переменная или выражение порядкового типа, которую называют селектором. До этого в программе ей присваивается какое-либо значение. По ходу выполнения оператора case, значение переменной-селектора (значение выражения) сравнивается с различными, описанными в нем альтернативами (метками-значениями). Как только совпадение будет найдено, то выполняется блок кода при данной метке и происходит выход в основную ветку программы. Значения-метки являются константами, которые может принимать селектор. Их тип и тип селектора должны быть совместимы по присваиванию.
Если совпадений не будет, то выполняется блок else. Если блок else отсутствует (он является не обязательным), то никакой блок кода в операторе case не выполняется.
Если для разных переменных-селекторов требуется выполнить один и тот же оператор, то можно эти константы перечислить через запятую и после двоеточия указать этот оператор.
Пример 1:
Использование блока «Переключатель». Программирование графиков
Этот файл предназначен для самостоятельной работы для учеников. Самостоятельное программирование учащихся на платформа
Просмотр содержимого документа
«Использование блока «Переключатель». Программирование графиков»
Использование блока «Переключатель».
Краткие теоретические сведения
Яркость– характеристика, равная отношению силы света в определенном направлении к площади проекции светящейся поверхности на плоскость, перпендикулярную этому направлению, и
измеряется в канделах на квадратный сантиметр: кд/см2.
Блок «Большой мотор» ( )-управляет большим мотором. Вы можете включать или выключать мотор, управлять его уровнем мощности или включать мотор на определенное количество времени или оборотов.
Блок «Независимое управление моторами» ( )-может заставлять робота двигаться вперед, назад, поворачиваться или останавливаться. Используйте блок «Независимое управление моторами» для роботизированных транспортных средств, в которых имеются два больших мотора, где один мотор управляет левой стороной транспортного средства, а второй мотор управляет правой
стороной. Можно заставить два мотора вращаться с разными скоростями или в разных направлениях, чтобы ваш робот поворачивался. Режим программирования графика позволяет роботу выполнять действия на основании данных, зарегистрированных во время эксперимента.
Для программирования графика необходимо настроить пороговые зоны. Зона панели программирования используется для создания набора программных блоков, которые будут работать, пока значение датчика находится в пределах данной конкретной зоны. Каждая зона отделена от следующей зоны пороговым значением. Настройте пороговое значение, для этого перетащите пороговую линию вверх или вниз, или введите конкретное число в графу порогового значения.
Задача. Переключатель. Многопозиционный переключатель
Цель данного раздела заключается познакомятся с блоком «Переключатель» и «Многопозиционный переключатель».С помощью переключателя роботу можно задавать различные условия. Это является необходимым для построения больших программ, содержащих сложные алгоритмы и нацеленных на определение роботу сложных задач.
Используя многопозиционный переключатель, мы можем задавать роботу сложные условия.
Общие программы №1 и №2 учащиеся выполняют в группах по два человека на один робот. Самостоятельная работа выполняется каждым индивидуально.
Программа №1. Простой переключатель
В данной программе мы рассмотрим простой переключатель на примере небольшой программы. Напишем программу, в которой робот будет двигаться вдоль черной линии и измерять яркость отраженного света при помощи датчика цвета. Если яркость отраженного света
будет меньше 50 кд, то робот откланяется вправо, если яркость отраженного света будет больше 50 кд, то робот откланяется влево. Действие циклично, пока робот не доедет до конца линии.
Создаем проект. Добавляем в программу блок «Цикл». Далее во вкладке «Управление операторами» выбираем блок «Переключатель»
и добавляем его в цикл Рис. 1
Использование блока «Переключатель». Программирование графиков
Этот файл предназначен для самостоятельной работы для учеников. Самостоятельное программирование учащихся на платформа
Просмотр содержимого документа
«Использование блока «Переключатель». Программирование графиков»
Использование блока «Переключатель».
Краткие теоретические сведения
Яркость– характеристика, равная отношению силы света в определенном направлении к площади проекции светящейся поверхности на плоскость, перпендикулярную этому направлению, и
измеряется в канделах на квадратный сантиметр: кд/см2.
Блок «Большой мотор» ( )-управляет большим мотором. Вы можете включать или выключать мотор, управлять его уровнем мощности или включать мотор на определенное количество времени или оборотов.
Блок «Независимое управление моторами» ( )-может заставлять робота двигаться вперед, назад, поворачиваться или останавливаться. Используйте блок «Независимое управление моторами» для роботизированных транспортных средств, в которых имеются два больших мотора, где один мотор управляет левой стороной транспортного средства, а второй мотор управляет правой
стороной. Можно заставить два мотора вращаться с разными скоростями или в разных направлениях, чтобы ваш робот поворачивался. Режим программирования графика позволяет роботу выполнять действия на основании данных, зарегистрированных во время эксперимента.
Для программирования графика необходимо настроить пороговые зоны. Зона панели программирования используется для создания набора программных блоков, которые будут работать, пока значение датчика находится в пределах данной конкретной зоны. Каждая зона отделена от следующей зоны пороговым значением. Настройте пороговое значение, для этого перетащите пороговую линию вверх или вниз, или введите конкретное число в графу порогового значения.
Задача. Переключатель. Многопозиционный переключатель
Цель данного раздела заключается познакомятся с блоком «Переключатель» и «Многопозиционный переключатель».С помощью переключателя роботу можно задавать различные условия. Это является необходимым для построения больших программ, содержащих сложные алгоритмы и нацеленных на определение роботу сложных задач.
Используя многопозиционный переключатель, мы можем задавать роботу сложные условия.
Общие программы №1 и №2 учащиеся выполняют в группах по два человека на один робот. Самостоятельная работа выполняется каждым индивидуально.
Программа №1. Простой переключатель
В данной программе мы рассмотрим простой переключатель на примере небольшой программы. Напишем программу, в которой робот будет двигаться вдоль черной линии и измерять яркость отраженного света при помощи датчика цвета. Если яркость отраженного света
будет меньше 50 кд, то робот откланяется вправо, если яркость отраженного света будет больше 50 кд, то робот откланяется влево. Действие циклично, пока робот не доедет до конца линии.
Создаем проект. Добавляем в программу блок «Цикл». Далее во вкладке «Управление операторами» выбираем блок «Переключатель»
и добавляем его в цикл Рис. 1
Для программирования какого алгоритма используется блок переключатель
Следующий «слой» конструкций языка программирования – операторы. Они создают то, что в обыденном сознании ассоциируется с понятием алгоритм – описание последовательности действий, выполняемых программой, или логика ее работы. Это, в свою очередь, ассоциируется с понятием «блок-схема», что, в целом, довольно близко к истине. На этом уровне языки программирования проявляют завидное единообразие, поскольку количество видов управляющей логики программы ограничено. В Си/Си++ реализован общий для большинства языков программирования «джентльменский набор» управляющих конструкций:
· линейная последовательность действий ;
· условная конструкция (если-то-иначе);
· конструкция повторения (цикл) ;
· переход (и его разновидности).
Сразу же отметим, что этот набор является функционально избыточным, и для записи любого алгоритма достаточно только три вида.
· элементы блок-схемы соответствуют основным компонентам системы команд компьютера с размещением программы в линейной памяти (см. 1.2) – командам обработки данных, проверки условий и безусловных (условных) переходов;
· блок-схемы являются естественным инструментом технологии «исторического» программирования, базирующейся на развертке процесса выполнения проектируемой программы во времени (см. 3.2).
Блок-схема содержит элементы трех видов:
Принцип вложенности и структурированные блок-схемы
Рис.15.1. Структурированные конструкции и блок-схема
Операторы линейной последовательности действий
for (i=0; i // Обычный цикл
for (i=0; A[i]!=0 && i // Цикл с пустым оператором
Рис.15.2. Линейная последовательность операторов
В соответствии с принципом вложенности элементами последовательности могут быть не только элементарные действия (простые операторы), но и вложенные синтаксические конструкции, которые на текущем уровне также выполняются последовательно друг за другом.
В Си используется другой принцип: если составной частью управляющей конструкции является единственный оператор, то он никак синтаксически не выделяется. Если же составной частью является последовательность операторов, то она заключается в фигурные скобки ( <>) и образует блок.
Условные операторы
Единственный условный оператор имеет две разновидности: с else и без него.
Операторы цикла
for (i=0; i тело цикла для i…
Операторы перехода
· оператор генерации исключения throw используется в Си++ как средство обработки ошибок, выполняя, в том числе, и действия, эквивалентные оператору return (см. 12.2)
for (i=0; i m1: i++) // иллюстрация выполнения continue, break, return
if (A[i]==0) continue; // goto m1;
if (A[i]==-1) return; // goto m2;
if (A[i] break; // goto m3;
Оператор switch
case 1: n=n+2; break; // m1: n=n+2; goto mend;
case 2: n=0; break; // m2: n=0; goto mend;
case 4: n++; break; // m4: n++; goto mend;
default: n=-1; // mdef: n=-1;
sign=0; // Ветвь для значения c, равного ‘+’,
case ‘-‘: sign=1; // для значения ‘-‘
Еще один «джентльменский набор»
Набор управляющих конструкций алгоритма может быть различным и избыточным. Но минимально необходимой является триада: для архитектурно-ориентированной логики – это действие, условие, переход. Структурированные конструкции – последовательность, выбор (ветвление), повторение (цикл) – также обладают необходимой полнотой. Но на практике встречается еще одна, довольно экзотическая триада: последовательность, ветвление и рекурсия. Являясь технологическим приемом программирования (см. 7.1), она способна, как минимум, заменить конструкцию повторения (цикл). Существуют языки программирования (ПРОЛОГ), а также математические формализмы (формальные грамматики, частично-рекурсивные функции), опирающиеся на эту триаду.
Технология структурного программирования
Функциональное программирование (ПРОЛОГ), представление синтаксиса в формальных грамматиках (трансляторы), частично-рекурсивные функции (теория алгоритмов)
Подводные камни
Особенность синтаксиса Си состоит в том, что последовательности управляющих конструкций, отличающиеся буквально на один символ, могут быть синтаксически правильными, но давать различные последовательности выполнения действий в программе. Это касается, прежде всего, тела цикла, где обнаруживается максимальное количество ошибок программирования (но то же самое можно отнести и к составным частям условного оператора). Итак, тело цикла может иметь четыре различных варианта реализации :
· простой (первичный) оператор – выражение, ограниченное символом «;»;
· единственный оператор, имеющий произвольную внутреннюю структуру своего тела – условный, цикл, переключатель;
· составной оператор – блок, содержащий последовательность операторов, объединенную скобками « <>».
Отсюда следует, что символ «точка с запятой» нельзя расставлять «для надежности», он может выступить в качестве пустого оператора, отрезав заголовок цикла от его настоящего тела. Аналогично, при усложнении тела цикла в процессе модификации программы (вместо одного оператора – последовательность из нескольких) не нужно забывать объединять получающиеся последовательности в блоки. Иначе к телу цикла будет отнесен только первый из них.
for (int s=0,i=0; i // Сорок раз по разу
for ( int s =0, i =0; i i ++) ; // Ни разу сорок раз
s = s + A [ i ]; // Один раз – после (со значением A [40] вне массива)
Программные блоки циклов и алгоритмических структур
Управление операторами Lego Education EV3
В оранжевой закладке палитры редактора Lego EV3 находятся блоки «Управление операторами». Это алгоритмические структуры, без которых невозможно создавать программы. С их помощью происходит запуск кода, переключение, прерывание, зацикливание и прочее. Еще их называют блоками последовательности действий. В верхней части пиктограмм расположена узкая оранжевая горизонтальная полоса.
блоки управления операторами Lego Education EV3
Всего во вкладке «Управление операторами» находится пять иконок слева направо:
«Начало»
Он всегда расположен в начале и служит для запуска программы на выполнение. На пиктограмме изображена стрелка зеленого цвета. Без него код работать не будет и другие значки не будут активными. В окне редактора если значка «Начало» нет или он не соединен с другими, остальные фрагменты программы выглядят немного замутненными.
программный блок «Начало»
Если добавить еще одну или несколько пиктограмм «Начало» в окно редактора Lego, то можно создать несколько параллельных программ, работающих независимо друг от друга. При отладке каждую подпрограмму можно запустить отдельно. Но при запуске на выполнение все параллельные ветки работают одновременно и автономно.
«Ожидание»
На значке нарисованы песочные часы. С помощью ожидания можно ждать наступления какого-нибудь события. Если это событие наступит, то происходит переход программы к другой части.
Всего есть тринадцать вкладок с типами сенсоров, кнопками, счетчиками и т.д. в блоке ожидания EV3:
У каждой закладки есть режимы сравнения, изменения или обновления, которые имеют свои подпункты. В целом это мощный инструмент, позволяющий создавать сложные программы, зависящие от конкретных условий.
Для того чтобы повторить нужную последовательность кода определенное число раз при соблюдении нужных условий в редакторе Lego Education EV3 предусмотрен программный блок. Фактически он представляет собой контейнер с визуальным кодом. Проверка условий происходит после однократного выполнения кода. Конструкция «Цикл» является алгоритмической структурой типа «while» с постусловием.
Фрагмент программы внутри контейнера будет повторяться. Блоки, не входящие в него повторяться не будут. По завершению произойдет переход к следующим блокам, которые не входят в цикл. Иконка цикла расположена третьей по счету слева во вкладке «Управление операторами». Управление режимами находится в правом нижнем углу пиктограммы.
программный блок «Цикл» Lego Mindstorms-EV3
Всего есть шестнадцать закладок. Тринадцать из них такие же, как и у блока «Ожидание». Добавлены еще три пункта:
В левой части иконки расположен вывод «Параметры цикла». С его помощью можно выполнить подсчет числа повторений, времени, логического значения, типов сравнения, порогового значения и прочее. Введенное значение зависит от заданного режима или от переданного по шине данных значения от выводов других блоков.
Циклы можно вкладывать друг в друга. Если в конструкцию добавляются фрагменты, то размер значка увеличивается. Также размер пиктограммы можно изменять с помощью маркеров, находящихся на границах изображения. Это очень похоже на изменения размера картинки в документе Word.
«Переключатель»
Находится четвертым слева в оранжевой закладке алгоритмических структур. По сравнению с циклом у него на одну вкладку меньше. Отсутствует пункт «Неограниченный». Он соответствует конструкции «if»… «else» или «если»… «то».
блок «Переключатель» Lego EV3
«Переключатель» может включать в себя 2 и более последовательности блоков. Эти последовательности называют вариантами. В зависимости от выбранной закладки определяется входное значение сенсора или какого-нибудь параметра. Исходя из входного параметра запускается только один из возможных вариантов.
Если нужно чтобы проверка вариантов выполнялась несколько раз, «Переключатель» нужно поместить в циклический блок.
«Прерывания цикла»
Это последний пятый значок во вкладке «Управление операторами». Он предназначен для завершения циклического блока. Имя прерывания выбирается в верхней части пиктограммы и больше никаких настроек нет.
программный блок «Прерывание цикла»
«Прерывание цикла» можно использовать по условиям, можно прерывать цикл, находящийся в цикле, из другой подпрограммы или ветки. После остановки последовательности начнут выполняться блоки, расположенные после циклического.