Введение в язык программирования С++. Элементы языка общие с С. Полиморфизм. Инкапсуляция.

Презентация:



Advertisements
Похожие презентации
Основы информатики 1 семестр Алгоритмические языки и алгоритмы КОРОТИН Павел Николаевич.
Advertisements

Лекция 2 Введение в язык Си.
©Павловская Т.А. Язык С++ Курс «С++. Программирование на языке высокого уровня» Павловская Т.А.
Лекция 1 по дисциплине «Программные средства математических расчетов» тема: «Основы языка С++» гр. 8Е31 Мамонова Татьяна Егоровна
Основы информатики Лекция. Массивы. Указатели. Заикин Олег Сергеевич
УКАЗАТЕЛИ. Переменная - это именованная область памяти с заданным типом. [=значение]; int a; //Переменная типа integer с именем a int b=2;// Переменная.
©ρŧą Базовые конструкции языка.
Выражения языка Си(ч.2). Операции Лекция 3. Основные классы операций арифметические логические поразрядные операции сравнения.
Функции Функция – именованная последовательность описаний и операторов, выполняющая некоторое действие. Может иметь параметры и возвращать значение. Функция.
МАССИВЫ 4 Определение 4 Описание 4 Обращение к элементам массива 4 Связь массивов с указателями 4 Примеры программ.
Лекция 2 С => C++ => C# Большие и маленькие буквы различаются (main, Main, MAIN, mAin – разные имена) После каждого оператора ставится точка с запятой.
Основы информатики Массивы. Указатели. Заикин Олег Сергеевич
Элементы языка СИ Средства для написания простейших программ.
Лекция 5 Адресные типы. Указатели адрес (размещение в памяти) объекта Массивы последовательность однотипных данных Ссылки альтернативное имя объекта.
Краткое введение в язык программирования С Аксёнов Сергей Владимирович к.т.н., доцент каф.ОСУ ТПУ Томский политехнический университет.
Инструкции C++ Условная инструкция Формат: if (условие) оператор; else оператор; Пример: if (i!=0) { if (j) j++; if(k) k++; else if(p) k--; } else i--;
Выражения языка Си(ч.1) Лекция 2. Базовые типы данных.
Элементы языка C++.. Алфавит Список ключевых слов языка C++ Переменные Типы данных Константы Арифметические и логические операции Директивы препроцессора.
Структуры и объединения Structures and unions НГТУ ИРИТ кафедра ИСУ Ольга Пронина.
Разработка программного обеспечения для сигнальных процессоров TMS320C64xx в IDE Code Composer Studio Часть II. Язык программирования С. Основные понятия.
Транксрипт:

Введение в язык программирования С++. Элементы языка общие с С. Полиморфизм. Инкапсуляция.

История 1970 – Dennis Ritchie разработал язык C для DEC PDP-11 в ОС UNIX – Bjarne Stroustrup в Bell Laboratory разработал язык C – American National Standart Institute утвердил стандарт, который поэтому называется ANSI – International Standards Organization ратифицирован стандарт языка.

Алфавит языка Буквы: A, B, …, Y, Z, a, b, …, y, z и символ _ Цифры: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Символы: +, -, *, /, >, =,

Зарезервированные слова asmdefaultfloatnewsignedunsigned autodeleteforoperatorsizeofvirtual breakdofriendprivatestaticvoid casedoublegotoprotectedstructvolatile charelseifpublicswitchwhile classenuminlineregisterthis constexplicitintreturntypedef continueexternlongshortunion

Идентификатор – последовательность буквенно- цифровых символов, начинающаяся с буквы, длиной до 1024 символов. Допустимые: count Test23 Ptr_1 Недопустимые: 1count sizeof Ptr…1

Базовые типы данных Целые длиной один байт – char 0 Целые длиной несколько байт – int х30 С плавающей точкой – float 48.f.48e2F Двойной точности - double e-1 Без значения - void

Специальные символьные константы \aСигнал\tГоризонтальная табуляция \fПодача бумаги\vВертикальная табуляция \nНовая строка\Одинарная кавычка \rВозврат каретки\хN\хNШестнадцатеричная или восьмеричная константа \?Знак вопроса\N \Двойная кавычка\b\bУдаление предыдущего символа \\Обратный слэш

Модификация базовых типов Со знаком – signed Короткое – short Без знака – unsignedДлинное – long 1 = sizeof(char) sizeof(short) sizeof(int) sizeof(long) sizeof(float) sizeof(double) sizeof(long double)

Пример: #include char c=\t; short s=1; int i; long l; void main() { float f; double d; long double D; cout

Спецификаторы класса памяти auto - Локальная переменная не существует за пределами области видимости. static - Значение переменной постоянно хранится внутри функции или файла. register -Обеспечить доступ к объекту так быстро, как только возможно. extern - Объявляемая переменная определена в другой части программы. extern int x;static int y=0;

Квалификаторы типа const – неизменяемые данные Переменная не может программно изменять своего значения const float e=2.71; volatile – подавление оптимизации Переменная может изменяться независимо от программы. NB: порядок вычисления выражений не определен! X = X1 + X2;

Оператор присваивания Множественное присваивание x = y = z = 0; Стенографическое присваивание x = 10; // x=x 10; Lvalue = Rvalue Lvalue и Rvalue - идентификаторы Lvalue – именующее выражение (адрес переменной) Rvalue – вычисляемое выражение (значение переменной)

Арифметические операции -Вычитание +Сложение *Умножение /Деление % Остаток от деления --Декремент ++Инкремент Пример float y,x = 5/3;//=1.0 y = 5./3;// =1.666… int k=1; ++k;// =2 int m=--k;// k--, m=k; int n=k++;// n=k, k++; // m=1, n=1

Операции сравнения и логические операции >Больше >=Больше или равно

Поразрядные операции &И&И |ИЛИ ^Сложение по модулю два ~Дополнение к 1 >>Сдвиг вправо 1; // 0110>>1=0011=3 x

Еще несколько операторов ?- условное выражение sizeof- определение размера операнда в байтах,- последовательного вычисления (тип)- явное преобразование к заданному типу :: - расширения области видимости y = x >= 0 ? 1 : -1; I = sizeof(int); J = sizeof I; int k=(y=J, 2*y); float z=(float)5/3; z=float(5)/3; int i; void main() { int i; i=1; ::i=2; …

Массивы Const int размер = …; Тип имя_переменной [размер]; int A[10]; Номер элемента1-й1-й2-й3-й4-й… Имя элементаA[0]A[1]A[2]A[3]… Адрес элемента a010c010e… int B[5][10];B[3,4] – не верноB[3][4] - верно

Указатели и ссылки Указатель – переменная, значением которой является адрес. int x[2],*Ptr_x; Ptr_x = &x[0]; *Ptr++=1; *Ptr=2; Ссылка – другое имя или еще одно имя объекта. NB: Может быть только инициализирована. int x[]={0,0},&b=x[0]; ++b+=1; *P*P&P & - операция получения адреса объекта * - операция «разыменования» указателя сout

Операторы выделения и освобождения памяти void* new(size_t) – возвращает адрес непрерывного участка памяти для объекта размерностью size_t байт. void delete(void*) – освобождает память, выделенную оператором new, начиная с адреса, на который ссылается указатель. Пример. const int ar_sz=10;ptr[1]=1.f; ptr[2]=2.f; void main() {delete ptr; float* ptr = new float[ar_sz];}

Массивы и указатели int x[]={1,2,3,4,5};int x[5]; const int *y=x; Описание Адрес элемента массива &x[3]y+3 Значение элемента массива x[3]*(y+3) Имя массива – неизменяемый указатель, инициализированный начальным значением.

Строки const int k=…; char str[k];// это ещё не строка str[0]=H; str[1]=e; str[2]=str[3]=l; str[4]=o; str[5]=\0; char str0={H,e,l,l,o,\0}; char* str1=Hello; - одномерные массивы символов, заканчивающиеся символом с кодом ноль (\0)

Двумерные массивы и двойные указатели const int ik=5, jk=10; void main() {int a[ik][jk]; int* b[]={a[0],a[1],a[2],a[3],a[4]}; int **c=b; int i=4, j=4; *(*b + i*jk +j)=10; cout

AA[0] A[0][0] … A[0][4]A[0][3]A[0][2]A[0][1] A[1][0] … A[1][4]A[1][3]A[1][2]A[1][1] A[2][0] … A[2][4]A[2][3]A[2][2]A[2][1] A[3][0] … A[3][4]A[3][3] A[3][2 ] A[3][1] A[4][0] … A[4][4]A[4][3] A[4][2 ] A[4][1] A[1] A[2] A[3] A[4] int* B[]; int **C;

Составные типы данных Структура – конгломерат переменных Объединение – наложение переменных Битовое поле – организация доступа к отдельным битам Перечисление – список именованных целых констант Имена типов, введенные пользователем: typedef тип новое_имя;

Структуры Формат описания: struct имя_шаблона { тип имя_члена; … тип имя_члена; } список_переменных; Пример struct complex { float re,im} a; Массивы структур: struct complex d[5]; Доступ к членам: complex c,*b=&c; a.re=0.; d[1].im=3.; *b.re=1.; b–>im=2.; Присваивание: c=*b; Имя_шаблона = тег reima Операции доступа к члену структуры:. – через переменную -> - через указатель

Объединения Формат описания: union тег { тип имя_члена; … тип имя_члена; } список_переменных; Пример: union { int i; struct {char h_b,l_b;} j; } a; il_bh_ba a.j.h_b = \0; a.j.l_b=1; cout

Битовые поля – члены структуры или объединения Формат: struct или union тег { тип имя: длина; … тип имя: длина; } список_переменных; Здесь тип – это int, signed, unsigned Пример: struct { int a:4; int b:4; char c; } c; c.a=0; c.b=3; c.c='\0'; void* ptr=&c; cout

Перечисление – набор именованных целых констант Формат: enum тег { список_перечисления } список_переменных; Пример enum {m,t,w,th,f,s,su} d; cout

Приоритеты операций Наивысший ::== != () [] ->.& ! ~ (type) & sizeof * new delete ^ | * / %&& + -|| >?: = > Наинизший =