++ | + 1 к переменной |
-- | - 1 к переменной |
+= | сложение |
-= | вычитание |
*= | умножение |
/= | деление |
%= | остаток от деления |
&= | битовое И |
|= | битовое ИЛИ |
Выбор вариантов, управление программой.
Оператор IF проверяет условие в скобках и выполняет последующее выражение или блок в фигурных скобках, если условие истинно.
if (x == 5) // если x=5, то выполняется z=0
z=0;
if (x > 5) // если x > 5, то выполняется блок z=0, y=8;
{ z=0; y=8; }
IF … ELSE позволяет сделать выбор между двух вариантов.
if (x > 5) // если x > 5, то выполняется блок z=0, y=8;
{ z=0; y=8; }
else // в противном случае выполняется этот блок
{ z=0; y=0; }
ELSE IF – позволяет сделать множественный выбор
if (x > 5) // если x > 5, то выполняется блок z=0, y=8;
{ z=0; y=8; }
else if (x > 20) // если x > 20, выполняется этот блок
{ }
else // в противном случае выполняется этот блок
{ z=0; y=0; }
SWITCH CASE - множественный выбор. Позволяет сравнить переменную (в примере это x) с несколькими константами (в примере 5 и 10) и выполнить блок, в котором переменная равна константе.
switch (x) {
case 5 :
// код выполняется если x = 5
break;
case 10 :
// код выполняется если x = 10
break;
default :
// код выполняется если не совпало ни одно предыдущее значение
break;
}
Цикл FOR. Конструкция позволяет организовывать циклы с заданным количеством итераций. Синтаксис выглядит так:
for ( действие до начала цикла;
условие продолжения цикла;
действие в конце каждой итерации ) {
// код тела цикла
}
Пример цикла из 100 итераций.
for ( i=0; i < 100; i++ ) // начальное значение 0, конечное 99, шаг 1
{ sum = sum + I; }
Цикл WHILE. Оператор позволяет организовывать циклы с конструкцией:
while ( выражение )
{
// код тела цикла
}
Цикл выполняется до тех пор, пока выражение в скобках истинно. Пример цикла на 10 итераций.
x = 0;
while ( x < 10 )
{
// код тела цикла
x++;
}
DO WHILE – цикл с условием на выходе.
do
{
// код тела цикла
}
while ( выражение );
Цикл выполняется пока выражение истинно.
BREAK – оператор выхода из цикла. Используется для того, чтобы прервать выполнение циклов for, while, do while.
x = 0;
while ( x < 10 )
{
if ( z > 20 ) break; // если z > 20, то выйти из цикла
// код тела цикла
x++;
}
GOTO – оператор безусловного перехода.
goto metka1; // переход на metka1
………………
metka1:
CONTINUE - пропуск операторов до конца тела цикла.
x = 0;
while ( x < 10 )
{
// код тела цикла
if ( z > 20 ) continue; // если z > 20, то вернуться на начало тела цикла
// код тела цикла
x++;
}
Массивы.
Массив это область памяти, где последовательно хранятся несколько переменных.
Объявляется массив так.
int ages[10]; // массив из 10 переменных типа int
float weight[100]; // массив из 100 переменных типа float
При объявлении массивы можно инициализировать:
int ages[10] = { 23, 54, 34, 24, 45, 56, 23, 23, 27, 28};
Обращаются к переменным массивов так:
x = ages[5]; // x присваивается значение из 5 элемента массива.
ages[9] = 32; // 9 элементу массива задается значение 32
Нумерация элементов массивов всегда с нуля.
Функции.
Функции позволяют выполнять одни и те же действия с разными данными. У функции есть:
· имя, по которому ее вызывают;
· аргументы – данные, которые функция использует для вычисления;
· тип данных, возвращаемый функцией.
Описывается пользовательская функция вне функций setup() и loop().
void setup() {
// код выполняется один раз при запуске программы
}
void loop() {
// основной код, выполняется в цикле
}
// объявление пользовательской функции с именем functionName
type functionName( type argument1, type argument1, … , type argument)
{
// тело функции
return();
}
Пример функции, вычисляющей сумму квадратов двух аргументов.
int sumQwadr (int x, int y)
{
return( x* x + y*y);
}
Вызов функции происходит так:
d= 2; b= 3;
z= sumQwadr(d, b); // в z будет сумма квадратов переменных d и b
Функции бывают встроенные, пользовательские, подключаемые.
Очень коротко, но этих данных должно хватить для того, чтобы начать писать программы на C для систем Ардуино.
Рекомендации по оформлению программ на языке C.
Главная цель внешнего оформления программ — это улучшить читаемость программ, уменьшить число формальных ошибок. Поэтому для достижения этой цели можно смело нарушать все рекомендации.
Имена в языке C.
Имена, представляющие типы данных, должны быть написаны в смешанном регистре. Первая буква имени должна быть заглавная (верхний регистр).
Signal, TimeCount
Переменные должны быть записаны именами в смешанном регистре, первая буква строчная (нижний регистр).
signal, timeCount
Константы должны быть записаны в верхнем регистре. В качестве разделителя нижнее подчеркивание.
MAX_TEMP, RED
Методы и функции должны быть названы глаголами, записанными в смешанном регистре, первая буква в нижнем регистре.
getTime, setTime
Приложение 3.
Дата: 2019-05-28, просмотров: 249.