- •Методическое материалы по курсу
 - •Cанкт-Петербург
 - •Оглавление
 - •Введение.
 - •Задание: Разобраться в коде и вывести на консоль еще одну фразу: "It's a first program"
 - •Типы данных и правила их применения:
 - •Операции
 - •Управляющие операторы
 - •Задание: в данном примере реализуйте операции умножения и деления Оператор цикла for (;;)
 - •Оператор цикла do-while
 - •Задание: к примеру добавьте перегруженную функцию для суммирования чисел типа double, и проверьте ее работу
 - •Модульная организация программы
 - •Массивы
 - •Задание: добавьте еще один элемент в массив при инициализации и посмотрите его размерность. В цикле увеличьте значение всех элементов массива на 10 и напечатайте его заново. Работа со строками
 - •Ссылочный тип данных
 - •Задание: Объявить еще одну переменную-ссылку на I и, изменив ее значение, пронаблюдать, как изменилось значение переменной I Работа с файлами
 - •Взаимодействие с ассемблером
 - •Обработка ошибок и исключений
 - •Директивы препроцессора: Макросы и Условные директивы
 - •Структуры
 - •Задание : Добавить в сруктуру еще одно данное (стоимость модели) типа int, в коде функции main() задать значение этого данного переменной–структуры, и напечатать его.
 - •Объектно-ориентированное программирование (ооп)
 - •Терминология ооп
 - •Структура как простейший класс
 - •Конструкторы и деструкторы
 - •Перегрузка методов класса
 - •Дружественные функции и классы
 - •Указатель this
 - •Перегрузка операций
 - •Множественное наследование
 - •Если осталось время – разобраться в иерархии классов и принципов построения
 - •Список литературы
 
Операции
Арифметические: (+, -, *, /, %) (% - остаток от деления по модулю)
Инкремент и декремент: (++, --) Используются в префиксной и постфиксной форме
int j, i = 0;
j = i++; // Сперва присваивание, после – инкремент (j = 0)
j = ++i; // Сперва инкремент, после – присваивание (j = 2)
Поразрядные (применимы только к целым числам) И (&), ИЛИ (|), исключающее ИЛИ (^), отрицание (~), сдвиг вправо (>>) и влево (<<)
Операция присваивания (=). В отличие от других языков в С присваивание выполняет операция, а не оператор, то есть результатом этой операции является значение, которое можно тоже использовать (в частности присваивать).
value1 = 8 * (value2 = 5); // В результате value1 = 40
value1 = value2 = value3 = 0; // Трем переменным присваивается 0
Составные операция присваивания (*=, /=, %=, +=, -=, <<=, >>==, &=, ^=, |=)
index = index + 5; // Во всех языках – наращивание переменной на 5
index += 5; // В языке С – то же самое, но эффективней
Операции отношения и логические операции (\07OPER) возвращают Истину (1) или Ложь (0): (>, <, >=, <=), равно (==), не равно (!=), отрицание (!), И (&&), ИЛИ (||)
cout << "\n operand1 == operand2 is " << (fop1 == fop2);
cout << "\n operand1 > operand2 is " << (fop1 > fop2);
Условная операция Синтаксис: (условие ? выражение_если_истина : выражение_если_ложь)
cout << "\n\n Max value is " << // Использование условной операции
( fop1>fop2 ? fop1 : fop2 ); // для вывода максимального значения
Операция запятая (,) Вычисляет выражения последовательно. Применяется там, где по синтаксису возможно только одно выражение
for(min=0, max=length-1; min<max; min++, max--) {…}
Каждая операция имеет свой приоритет (см. справку), у круглых скобок приоритет наивысший.
Управляющие операторы
Условный оператор If Синтаксис: if (выражение) действие_если_истина; Действие – это оператор. Если операторов несколько – они заключаются в блок: { }
if (a > 0 && b > 0)
cout << "Both numbers are positive"; // Оба числа положительные
Условный оператор If – else. При вложенных операторах else связывается с ближайшим несвязанным if (\08IF) Синтаксис: if (выражение) действие_если_истина; else действие_если_ложь;
cout << "Enter operand1 and operand2: "; // Запрос на ввод двух операндов
cin >> fop1 >> fop2; // Считывание значений операндов в переменные
if (fop1 == fop2)
cout << "Operands are equal\n"; // Операнды равны
else
if (fop1 > fop2)
cout << "The first operand is greater than second\n"; // Первый больше
else {
cout << "The second operand is "; // Второй больше
cout << "greater than first\n"; // Блок операторов в скобках
}
Условный оператор switch Синтаксис: switch (выражение) {
case константа1:
операторы1;
break;
..
case константаN:
операторыN;
break;
default: операторы;
}
(\09SWITCH)
// Запрос на ввод выражения (a (операция) b)
cout << "Enter an expression (a (operator) b): ";
cin >> fop1 >> coperator >> fop2; // Считывание операндов в переменные
switch (coperator) {
case '+' :
cout << "answer = " << fop1 + fop2 ;
break;
case '-' :
cout << "answer = " << fop1 - fop2 ;
break;
default: cout << "Not implemented"; // Другие операторы не реализованы
}
