
- •Методическое материалы по курсу
- •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"; // Другие операторы не реализованы
}