
- •Рязанская государственная радиотехническая академия Объектно-ориентированное программирование
- •Рязань 2003
- •390005, Рязань, ул. Гагарина, 59/1.
- •1. Программирование линейных алгоритмов Основные понятия
- •Идентификаторы
- •Объявление переменных
- •Стандартные типы данных
- •Представление констант
- •Символьные константы
- •Строковые константы
- •Ввод – вывод данных
- •Математические функции
- •Контрольные вопросы
- •Варианты заданий
- •2. Программирование алгоритмов разветвляющейся структуры Операторы управления
- •Контрольные вопросы
- •Цикл с параметром
- •Контрольные вопросы
- •Варианты заданий
- •4. Массивы. Классы памяти переменных Классы памяти переменных
- •Распределение памяти
- •Массивы
- •Инициализация
- •Указатели
- •Связь одномерных массивов с указателями
- •Связь двумерных массивов с указателями
- •Динамические массивы
- •Контрольные вопросы
- •Варианты заданий
- •5. Функции пользователя
- •Передача параметров в функции
- •Шаблоны функций
- •Контрольные вопросы
- •Варианты заданий
- •6. Структуры, объединения, битовые поля Структуры
- •Объединение
- •Битовые поля
- •Контрольные вопросы
- •Варианты заданий
- •7. Файлы
- •Типовые операции с файлами
- •Функции форматного ввода и вывода данных
- •Определение длины файла:
- •Спецификаторы доступа
- •Конструкторы и деструкторы
- •Наследование
- •Наследование и контроль доступа
- •Указатель this
- •Перегрузка операций
- •Константные объекты и константные методы
- •Статические элементы класса
- •Виртуальные функции
- •Абстрактные классы
- •9. Варианты заданий на курсовое проектирование
- •Оглавление
Символьные константы
Переменные типа char могут использоваться как для самых коротких целых данных, так и для хранения кодов отдельных символов. Символическая константа представляется в виде символа, заключенного в апострофы (одиночные кавычки).
Пример:
char c; c=’a’; c=’b’;
Для кодов, не имеющих видимого представления на экране, предусмотрены специальные обозначения: ‘\n ’-переход к началу новой строки (соответствует нажатию клавиши Enter); ‘\t’-горизонтальная табуляция; ‘\a’-звуковой сигнал; ‘\b’-возврат на один символ; ‘\v’-вертикальная табуляция; ‘\r’- возврат каретки.
Такие обозначения называют Escape-последовательности, они используются также для символов кавычка ‘\”’, апостроф ’\’’ и обратный слэш ‘\\’.
Строковые константы
Строковые константы представляют собой последовательности символов, заключенные в кавычки – “Это строковая константа”.
Ввод – вывод данных
Для организации ввода данных используются стандартный поток ввода cin и операция извлечения из потока <<. Для вывода данных используются стандартный поток cout и операция помещения в поток >>. Использование этих средств возможно после директивы #include <iostream.h>.
Пример:
#include <iostream.h>
void main(void)
{
int i;
cout<<”Введите целое число 4 ”;
// Строка “Введите целое число 4 ” появится на экране
cin>>i;// Ввод с клавиатуры
cout<<”Вы ввели число”<<i<<’\n’;
// на экране появится “Вы ввели число 4”, и переводится строка
}
Математические функции
Заголовки большинства математических функций находятся в файле <math.h>, который необходимо включить в программу. Функции синуса sin(x), косинуса cos(x) , квадратного корня sqrt(x), тангенса tan(x), арксинуса asin(x) , арккосинуса acos(x), арктангенса atan(x), модуля fabs(x) , экспоненты exp(x), степенная функция pow(x,y), логарифм натуральный log(x) и десятичный log10(x) имеют тип аргумента double и возвращают значение типа double.
Приоритет операций языка С++
Группа |
Операции |
Ассоциативность | ||||||||||
1 |
() |
[] |
-> |
:: |
. |
|
|
|
|
|
|
слева - направо |
2 |
! |
~ |
+ |
- |
++ |
-- |
& |
* |
sizeof |
new |
delete |
справа - налево |
3 |
* |
/ |
% |
|
|
|
|
|
|
|
|
слева - направо |
4 |
+ |
- |
|
|
|
|
|
|
|
|
|
слева - направо |
5 |
<< |
>> |
|
|
|
|
|
|
|
|
|
слева - направо |
6 |
< |
<= |
> |
>= |
|
|
|
|
|
|
|
слева - направо |
7 |
== |
!= |
|
|
|
|
|
|
|
|
|
слева - направо |
8 |
& |
|
|
|
|
|
|
|
|
|
|
слева - направо |
9 |
^ |
|
|
|
|
|
|
|
|
|
|
слева - направо |
10 |
| |
|
|
|
|
|
|
|
|
|
|
слева - направо |
11 |
&& |
|
|
|
|
|
|
|
|
|
|
слева - направо |
12 |
|| |
|
|
|
|
|
|
|
|
|
|
справа - налево |
13 |
?: |
|
|
|
|
|
|
|
|
|
|
слева - направо |
14 |
= |
*= |
/= |
%= |
+= |
-= |
&= |
^= |
|= <<= |
>>= |
|
справа - налево |
15 |
, |
|
|
|
|
|
|
|
|
|
|
слева - направо |
[ ] - операция индексирования; Student[i], X[3][2] – выбор элементов массива.
( ) - операция вызова функции; пример: sin(х).
. - выбор поля структуры; пример: Product.Cost.
- косвенный выбор поля структуры через указатель.
:: - разрешение контекста (унарная операция), делает доступными глобальные переменные из некоторой функции.
Пример:
int i=5;
main(){
int i=3;
cout<<i;//будет выведенно i=3
cout << ::i;} //будет выведенно i=5
++ и -- - операции inc и dec. ++C и С++ постфиксная форма имеет более высокий приоритет.
Пример: i++ эквивалентно i = i + 1.
(тип), например (int)x – операция приведения к типу (в примере – к целочисленному типу).
~ - операция побитового отрицания.
! - логическое не.
- - унарный минус (смена знака).
& - определение адреса (унарная операция).
*p - операция извлечения значения из какого-то адреса.
Пример: int i=3, *Ptr;
Ptr = &i;
// В переменную Ptr записывается адрес переменной i.
*Ptr- это выражение возвращает значение объекта, например, переменной i, на который указывает указатель Ptr.
(умножение), / (деление), % (остаток от деления).
+ (сложение), - (вычитание).
>>, << - побитовые операции сдвиг влево и сдвиг вправо.
Пример:
int i=3;
i=i<<2; //i=0112<<2=011002=1210
i=12.
>=, <=, <> - операции сравнения.
==, != - операции отношений (равенство и неравенство).
& - побитовое “и” (бинарная операция).
^ - побитовое XOR.
| - побитовое “или”.
Пример: пусть а = 1011, b = 0110, тогда a&b будет равно 0010, a^b – 1101, a|b – 1111, a<<3 – 1000, ~a – 0100, b>>1 – 0011.
&& - логическое “и”.
|| - логическое “или”.
?: - сравнение (тернарная операция - с тремя аргументами).
Пример: min = a>b? b: a (если выражение (a>b) истина, то результатом будет b, иначе - a).
= - операция присваивания. Если слева и справа от операции присваивания стоит одна и та же переменная, то запись операции присваивания можно сократить. Полный список комбинированных операций присваивания имеет вид: +=, -=, *=, /=, %=, <<=, >>=, &=, ^=, |=.
Пример: x = y = z = 5; S += a;(эквивалентно S = S + a;).
, - последовательность выполнения выражения. Используется в качестве операции и как разделитель.
Пример: 1) for (x=p1, y=p2, i=2; i<n; z=x+y, x=y, y=z, i++)
int i,n; float x,y,z;
2) int i=1; m[ ] = {i, (i=2,i*i), i}