©Павловская Т.А. Язык С++ Курс «С++. Программирование на языке высокого уровня» Павловская Т.А.

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



Advertisements
Похожие презентации
©ρŧą Базовые конструкции языка.
Advertisements

Лекция 1 по дисциплине «Программные средства математических расчетов» тема: «Основы языка С++» гр. 8Е31 Мамонова Татьяна Егоровна
УКАЗАТЕЛИ. Переменная - это именованная область памяти с заданным типом. [=значение]; int a; //Переменная типа integer с именем a int b=2;// Переменная.
Лекция 3 Основные операции Базовые управляющие конструкции.
1 ©Павловская Т.А. Язык С# Курс «С#. Программирование на языке высокого уровня» Павловская Т.А.
Язык программирования Си Приведение типов, операции Потоковый ввод-вывод Югов Иван Олегович МОУ Гимназия 10, г. Тверь.
Выражения языка Си(ч.2). Операции Лекция 3. Основные классы операций арифметические логические поразрядные операции сравнения.
Введение в C++ Урок 1-2.
МАССИВЫ 4 Определение 4 Описание 4 Обращение к элементам массива 4 Связь массивов с указателями 4 Примеры программ.
Введение в язык программирования С++. Элементы языка общие с С. Полиморфизм. Инкапсуляция.
Функции Функция – именованная последовательность описаний и операторов, выполняющая некоторое действие. Может иметь параметры и возвращать значение. Функция.
Лекция 2 С => C++ => C# Большие и маленькие буквы различаются (main, Main, MAIN, mAin – разные имена) После каждого оператора ставится точка с запятой.
ЛЕКЦИЯ 7 КЛАССЫ ПАМЯТИ И ОБЛАСТЬ ДЕЙСТВИЯ ОБЪЕКТОВ.
Лекция 8 Область видимости Время жизни. Область видимости Область видимости – характеристика именованного объекта Область видимости - часть текста программы,
Элементы языка СИ Средства для написания простейших программ.
Лекция 2 Введение в язык Си.
Информационные технологии Классы памяти auto static extern register Автоматические переменные создаются при входе в функцию и уничтожаются при.
Урок 3 Turbo Pascal Язык профессионального программирования, который назван в честь французского математика и философа Блеза Паскаля (1623–1662) и разработан.
Лекция 30. Преобразования типов в C++ Красс Александр СПбГУ ИТМО, 2009.
Краткое введение в язык программирования С Аксёнов Сергей Владимирович к.т.н., доцент каф.ОСУ ТПУ Томский политехнический университет.
Транксрипт:

©Павловская Т.А. Язык С++ Курс «С++. Программирование на языке высокого уровня» Павловская Т.А.

©Павловская Т.А. Язык С++ Лекция 2. Простейшие программы Структура простейшей программы, переменные, операции, выражения, преобразования базовых типов, вводные замечания о средствах ввода-вывода, особенности вывода кириллицы в консольное окно.

©Павловская Т.А. (СПбГУ ИТМО) [класс памяти] [const] тип имя [инициализатор]; инициализатор : = значение или ( значение ) short int a = 1; const char C = 'C'; char s, sf = 'f'; char t (54); float c = 0.22, x(3), sum; Примеры описаний: Описание идентификаторов

©Павловская Т.А. (СПбГУ ИТМО) Каждый идентификатор имеет область действия (potential scope) и область видимости (scope), которые, как правило, совпадают (кроме случая описания такого же имени во вложенном блоке). Область видимости начинается в точке описания. const int i = 2; { int i[i]; } Имя, описанное внутри блока, локально по отношению к этому блоку. Имя, описанное вне любого блока, имеет глобальную область видимости. Область действия и класс памяти зависят не только от собственно описания, но и от места его размещения в тексте программы. Область видимости

©Павловская Т.А. (СПбГУ ИТМО) auto автоматическая переменная. Память выделяется в стеке и при необходимости инициализируется каждый раз при выполнении оператора, содержащего ее определение. Освобождение памяти - при выходе из блока extern переменная определяется в другом месте программы. static статическая переменная. Время жизни постоянное. Инициализируется один раз при первом выполнении оператора, содержащего определение переменной. В зависимости от расположения оператора описания статические переменные могут быть глобальными и локальными. register аналогично auto, но память выделяется по возможности в регистрах процессора. Класс памяти

©Павловская Т.А. (СПбГУ ИТМО) int a;// 1 main(){ int b;// 2 extern int x;// 3 static int c;// 4 a = 1;// 5 int a;// 6 a = 2;// 7 ::a = 3;// 8 } int x = 4; // 9 Область видимости. Пример 1

©Павловская Т.А. (СПбГУ ИТМО) int a; // глобальная переменная int main(){ int b; // локальная переменная static int c = 1; // локальная статическая переменная } ГлобальнаяЛокальнаяСтатическая Размещениес-т данныхс-т стекас-т данных Время жизнився прогр.блоквся прогр. Область видимостифайлблок Обнулениеданетда Область видимости. Пример 2

©Павловская Т.А. (СПбГУ ИТМО) блок файл функция прототип функции класс поименованная область Области действия

©Павловская Т.А. (СПбГУ ИТМО) В каждой области действия различают пространства имен, в пределах которых идентификатор должен быть уникальным. В разных категориях имена могут совпадать, например: struct Node{ int Node; int i; }Node; В С++ определено четыре раздельных класса идентификаторов, в пределах которых имя должно быть уникальным: 1. имена переменных, функций, типов typedef и констант перечислений; 2. имена типов перечислений, структур, классов и объединений; 3. элементы каждой структуры, класса и объединения; 4. метки. Пространства имен

©Павловская Т.А. (СПбГУ ИТМО) #include int main(){ int i; printf("Введите целое число\n"); scanf("%d", &i); printf("Вы ввели число %d, спасибо!", i); } Пример 1 - простейшая программа #include using namespace std; int main(){ int i; printf("Введите целое число\n"); scanf("%d", &i); printf("Вы ввели число %d, спасибо!", i); }

©Павловская Т.А. (СПбГУ ИТМО) #include int main(){ int int1 = 45, int2 = 13; printf("int1 = %d| int2 = %3d| int2 = %-4d|\n", int1, int2, int2); printf("int1 = %X| int2 = %3x| int2 = %4o|\n", int1, int2, int2); } int1 = 45| int2 = 13| int2 = 13 | int1 = 2D| int2 = d| int2 = 15| Пример 2 - целые форматы

©Павловская Т.А. (СПбГУ ИТМО) #include int main(){ float f = 3.621; double dbl = 2.23; printf("f = %f| f = %4.2f| f = %6.1f|\n", f, f, f); printf("f = %g| f = %e| f = %+E|\n", f, f, f); printf("dbl = %5.2lf| dbl = %e| dbl = %4.1G|\n", dbl, dbl, dbl); } f = | f = 3.62| f = 3.6| f = 3.621| f = e+000| f = E+000| dbl = 2.23| dbl = e+000| dbl = 2| Пример 3 - вещественные форматы

©Павловская Т.А. (СПбГУ ИТМО) #include int main(){ char ch = 'z', *str = "ramambahari"; printf("ch = %c| ch = %3c|\n", ch, ch); printf("str = %14s|\nstr = %-14s|\nstr = %s|\n", str, str, str); } ch = z| str = ramambahari| Пример 4 - форматы символов и строк

©Павловская Т.А. (СПбГУ ИТМО) #include int main(){ int i; cout > i; cout

©Павловская Т.А. (СПбГУ ИТМО) Унарные операции ++ – –sizeof~!–+& *newdelete(type) Бинарные операции */%+– >===!=&^|&&|| =*=/=%=+=–==&=|=^=throw, Тернарная операция ? : Операции С++ (не все!)

©Павловская Т.А. (СПбГУ ИТМО) Приоритеты операций ОперацияКраткое описание Унарные операции ::доступ к области видимости.выбор ->выбор [ ]индексация ( )вызов функции ( )конструирование ++постфиксный инкремент – постфиксный декремент typeidидентификация типа dynamic_castпреобразование типа с проверкой на этапе выполнения static_castпреобразование типа с проверкой на этапе компиляции reinterpret_castпреобразование типа без проверки const_castконстантное преобразование типа

©Павловская Т.А. (СПбГУ ИТМО) sizeofразмер объекта или типа – префиксный декремент ++префиксный инкремент ~поразрядное отрицание !логическое отрицание –арифметическое отрицание (унарный минус) +унарный плюс &взятие адреса *разадресация newвыделение памяти deleteосвобожение памяти ( )преобразование типа

©Павловская Т.А. (СПбГУ ИТМО).*выбор ->*выбор Бинарные и тернарная операции *умножение /деление %остаток от деления +сложение –вычитание сдвиг вправо

©Павловская Т.А. (СПбГУ ИТМО) =больше или равно ==равно !=не равно &поразрядная конъюнкция (И) ^поразрядное исключающее ИЛИ |поразрядная дизъюнкция (ИЛИ) &&логическое И ||логическое ИЛИ ? :условная операция (тернарная) =присваивание *=умножение с присваиванием /=деление с присваиванием

©Павловская Т.А. (СПбГУ ИТМО) %=остаток отделения с присваиванием +=сложение с присваиванием –=вычитание с присваиванием =сдвиг вправо с присваиванием &=поразрядное И с присваиванием |=поразрядное ИЛИ с присваиванием ^=поразрядное исключающее ИЛИ с присваиванием throwисключение,последовательное вычисление Операции выполняются в соответствии с приоритетами. Для изменения порядка выполнения операций используются круглые скобки. Если в одном выражении записано несколько операций одинакового приоритета, унарные операции, условная операция и операции присваивания выполняются справа налево, остальные слева направо.

©Павловская Т.А. (СПбГУ ИТМО) #include int main(){ int x = 3, y = 3; printf("Значение префиксного выражения: %d\n", ++x); printf("Значение постфиксного выражения: %d\n", y++); } Результат работы программы: Значение префиксного выражения: 4 Значение постфиксного выражения: 3 Операции инкремента и декремента

©Павловская Т.А. (СПбГУ ИТМО) sizeof выражение sizeof ( тип ) #include int main(){ float x = 1; cout

©Павловская Т.А. (СПбГУ ИТМО) #include int main(){ cout

©Павловская Т.А. (СПбГУ ИТМО) #include int main(){ int x = 11, y = 4; float z = 4; printf(" %d %f\n", x/y, x/z); printf("Остаток: %d\n", x%y); } Остаток: 3 Операции деления и остатка от деления

©Павловская Т.А. (СПбГУ ИТМО) a = b = c означает a = (b = c) a + b + c означает (a + b) + c (sin(x + 2) + cos(y + 1)) i = (i < n) ? i + 1: 1 (a )/6 x && y || !z (t * sin(x)-1.05e4)/((2 * k + 2) * (2 * k + 3)) Тернарная операция: Примеры выражений: a += b Приоритеты: Сложное присваивание:

©Павловская Т.А. (СПбГУ ИТМО) изменяющие внутреннее представление величин (с потерей точности или без потери точности); изменяющие только интерпретацию внутреннего представления. Явные преобразования типа: const_cast dynamic_cast reinterpret_cast static_cast приведение в стиле С: (имя_типа)выражение Преобразования типов

©Павловская Т.А. (СПбГУ ИТМО) Операнды char, unsigned char или short преобразуются к int по правилам: char расширяется нулем или знаком в зависимости от умолчания для char ; unsigned char расширяется нулем; signed char расширяется знаком; short, unsigned short и enum при преобразовании не изменяются. Затем любые два операнда становятся int, или float, double или long double. Если один из операндов имеет тип long double, то другой преобразуется к типу long double. Если один из операндов double, другой преобразуется к double. Если один из операндов float, другой преобразуется к float. Иначе, если один из операндов unsigned long, другой преобразуется к unsigned long. Иначе, если один из операндов long, то другой преобразуется к long. Иначе, если один из операндов unsigned, другой преобразуется к unsigned. Иначе оба операнда должны иметь тип int. Тип результата тот же, что и тип участвующих в выражении операндов. Правила преобразования типов