Цикл: туда и обратно
В задаче требовалось сделать "циклический" переключатель между несколькими состояниями, например,
модель кнопки, у которой больше 2 состояний и она переключает режимы своей работы по закону
1-2-3-2-1-2-3-2-1-...
, то есть, состояния переходят "туда и обратно". У меня в коммуникаторе, скажем,
подобная экранная кнопка отвечает за управления тремя уровнями яркости подсветки.
Самым простым и очевидным решением кажется смена знака у переменной приращения аргумента d
при достижении верхней
или нижней границы изменения счётчика.
В представленном примере на консольном Си цикл выполняется до нажатия любой клавиши.
#include <stdio.h> #include <bios.h> void main () { int n1=1,n2=3, //Верхняя и нижняя границы счетчика n=n1, //Счетчик, начинаем от нижней границы d=1; //Шаг изменения счетчика do { printf ("%d ",n); n+=d; if (n==n1 || n==n2) d=-d; } while (!bioskey(1)); }
07.05.2012, 09:36 [8831 просмотр]