Основы языка программирования RobotC

Содержание

Слайд 2

Переменные и типы данных Название (имя) - это идентификационная строка, которую

Переменные и типы данных

Название (имя) - это идентификационная строка, которую программист

использует для того, чтобы обратиться к переменной в программе. Имена переменных в RobotC должны быть составлены по следующим правилам:
имена записываются латинскими буквами, цифрами и знаком нижнего подчеркивания;
имена не должны содержать пробелов;
имена не должны содержать специальные символы;
имя не может начинаться с цифры;
имя не может быть зарезервированным словом
имена чувствительны к регистру, например, имена apple и Apple определяют две различных переменных.
Слайд 3

Переменные и типы данных

Переменные и типы данных

Слайд 4

Переменные и типы данных

Переменные и типы данных

Слайд 5

Пример программы _ _ task main () { int n1; //

Пример программы

_ _
task main () {
int n1; // под переменную

n1 выделено 2 байта памяти
n1 = 10; // n1 инициализирована значением 10
{// внутренний блок, в этом блоке n1 имеет значение 10 }
{// второй внутренний блок
int n1;
n1 = -2;
// собственная декларация для n1, до конца блока n1 имеет значение -2 }
// этот блок использует первую декларацию
// n1 имеет значение 10
} }
Слайд 6

Строки '\0' — нуль-символ ''A'' — строка — 2 байта 'A' — символ — 1 байт

Строки
'\0' — нуль-символ
''A'' — строка — 2 байта
'A' — символ —

1 байт
Слайд 7

Инкремент и декремент _ _ int c = 0; int b

Инкремент и декремент

_ _
int c = 0;
int b = 5;

int a;
a = b – c++;
_ _
int a = 0;
int b,c;
b = a++; // b имеет значение 0, a – значение 1
с = --a; // c имеет значение 0, a – значение 0
a=++c; // a имеет значение 1, c – значение 1
b=++c++; // b имеет значение 2, c – значение 3
Слайд 8

Приоритет выполнения операций

Приоритет выполнения операций

Слайд 9

УПРАВЛЯЮЩИЕ КОНСТРУКЦИИ Оператор присваивания _ _ task main () { int

УПРАВЛЯЮЩИЕ КОНСТРУКЦИИ Оператор присваивания

_ _
task main () {
int n1 , n2;

string name = "Joe Strummer ";
string band = "The Clash ";
n1 = 3;
n2 = n1;
n1 = 4;
name = band;
}
Слайд 10

Примеры присваиваний _ _ int count = 0; count = count

Примеры присваиваний

_ _
int count = 0;
count = count + 1;
_ _
int

count = 0;
count += 1;
Слайд 11

Варианты оператора

Варианты оператора

Слайд 12

Операторы сравнения >= - результат будет истинным, если значение в левой

Операторы сравнения

>= - результат будет истинным, если значение в левой части

больше или равно значению в правой, ложным в противном случае.
> - результат будет истинным, если значение в левой части больше, чем в правой, иначе ложно.
== - результат будет истинным, если левая часть равна правой, в противном случае ложно.
<= - результат будет истинным, если значение в левой части меньше или равно значению в правой, иначе ложным.
< - результат будет истинным, если значение в левой части меньше, чем в правой, иначе ложно.
!= - результат будет истинным, если левая сторона не равна правой, в противном случае истинно.
Слайд 13

Пример сравнения _ _ float x=5.2, y=0.0, z =10.0; bool s;

Пример сравнения

_ _
float x=5.2, y=0.0, z =10.0;
bool s;
s = (x

>= y) && (x <= z);
Значение s в конце фрагмента – истина (true).
Слайд 14

Циклы Со счетчиком (for) С предусловием (while) С постусловием (do while)

Циклы

Со счетчиком (for)
С предусловием (while)
С постусловием (do while)

Слайд 15

Цикл с предусловием _ _ while([predicate]){ // тело цикла } _

Цикл с предусловием

_ _
while([predicate]){
// тело цикла
}
_ _
# pragma config(Sensor, S1, trigger,

sensorTouch)
# pragma config(Sensor, S2, light, sensorLightInactive)
task main() {
while (!(SensorValue[ trigger ])) {
nxtDisplayCenteredBigTextLine(2,"%d", SensorValue[light]);
// пока кнопка не нажата,
// выводить значение датчика света
wait10Msec(5);
}}
Слайд 16

Бесконечный цикл # pragma config(Sensor, S1, trigger, sensorTouch) task main(){ int

Бесконечный цикл

# pragma config(Sensor, S1, trigger, sensorTouch)
task main(){
int count =0;

nxtDisplayCenteredBigTextLine(3,"%d",count);
while(1){
while(!(SensorValue[trigger])){}
count++;
while((SensorValue[trigger])){}
eraseDisplay();
nxtDisplayCenteredBigTextLine(3,"%d",count);
}}
Слайд 17

Цикл с постусловием _ _ do{statements} while(expression) Особенность конструкции в том,

Цикл с постусловием

_ _
do{statements} while(expression)
Особенность конструкции в том, что тело цикла

всегда выполняется хотя бы один раз.
_ _
int b = 0;
 do
{ motor[rightMotor] = 50; //запуск правого мотора
motor[leftMotor] = 50; //запуск левого мотора
b++;
  wait1Msec(3000);
}while(b < 3); // проверка предиката
motor[rightMotor] = 0; // остановить правый мотор
motor[leftMotor] = 0; // остановить левый мотор
Слайд 18

Цикл cо счетчиком _ _ for([initialization];[condition];[increment]){ // тело цикла} _ _

Цикл cо счетчиком

_ _
for([initialization];[condition];[increment]){
// тело цикла}
_ _
task main(){
int i;
int

m[10];
for (i=0;i<=9;i++){
m[i] = i*i;
}
}