Разделы презентаций


Базовые средства С++

Содержание

©ρŧąa-z, A-Z, 0-9, “, {,},|,/,%,…- идентификаторы- ключевые слова- константы - знаки операций- разделителиa++ - --b/ca=b; for (int i=0;i

Слайды и текст этой презентации

Слайд 1©ρŧą
Базовые средства С++
Типы данных С++
Структура программы
Переменные и выражения
Базовые конструкции структурного

программирования (операторы ветвления, цикла и т.д.)
Указатели и ссылки
Массивы, строки
Типы данных,

определяемые пользователем (enum, struct, union)
©ρŧąБазовые средства С++Типы данных С++Структура программыПеременные и выраженияБазовые конструкции структурного программирования (операторы ветвления, цикла и т.д.)Указатели и

Слайд 2©ρŧą
a-z, A-Z, 0-9, “, {,},|,/,%,…
- идентификаторы
- ключевые слова
- константы
-

знаки операций
- разделители
a++ - --b/c
a=b; for (int i=0;i

©ρŧąa-z, A-Z, 0-9, “, {,},|,/,%,…- идентификаторы- ключевые слова- константы - знаки операций- разделителиa++ - --b/ca=b; for (int

Слайд 3©ρŧą
директивы препроцессора
описания
int main() {
операторы главной функции
}
int f1() {


операторы функции f1
}
int f2() {
операторы функции f2
}
Пример

структуры программы
©ρŧąдирективы препроцессораописанияint main() { 	операторы главной функции }int f1() { 	операторы функции f1 }int f2() { 	операторы

Слайд 4©ρŧą
Вид Примеры
Целые дес. 8 0 199226
Восьм. 01 020 07155
Шестн. 0xA 0x1B8 0X00FF
Веществ. 5.7 .001 35.
Вещ. с плав.

т. 0.2E6 .11e–3 5E10
Символьные 'A‘ 'ю‘ '*‘ 'db‘ '\0' '\n‘ '\012‘ '\x07\x07'
Строковые "Здесь был Vasia"
" \tЗначение r=\0xF5\n"

Константы

©ρŧą  Вид				ПримерыЦелые дес.		8	0		199226	Восьм. 		01	020	 	07155	Шестн.		0xA	0x1B8		0X00FF	Веществ.		5.7	 .001		 35.	Вещ. с плав. т.	0.2E6 .11e–3	 5E10	Символьные		'A‘	'ю‘	'*‘	'db‘	'\0' 				'\n‘	'\012‘		'\x07\x07'	Строковые

Слайд 5©ρŧą
\a 7 Звуковой сигнал
\b 8 Возврат на шаг
\f C Перевод страницы (формата)
\n A Перевод строки
\r D Возврат каретки
\t 9 Горизонтальная табуляция
\v B Вертикальная табуляция
\\ 5C Обратная

косая черта
\' 27 Апостроф
\" 22 Кавычка
\? 3F Вопросительный знак
\0ddd Восьмеричный код символа
\0xdd dd Шестнадцатиричный код символа
Управляющие последовательности

©ρŧą\a	7	Звуковой сигнал	\b	8	Возврат на шаг	\f	C	Перевод страницы (формата)	\n	A	Перевод строки	\r	D	Возврат каретки	\t	9	Горизонтальная табуляция	\v	B	Вертикальная табуляция	\\	5C	Обратная косая черта	\'	27	Апостроф	\

Слайд 6©ρŧą
Тип данных определяет:
внутреннее представление данных в памяти компьютера => множество

значений, которые могут принимать величины этого типа;
операции и функции, которые

можно применять к величинам этого типа.

Типы в С++ делятся на основные (fundamental) и составные (compound). Тип может описывать объект, ссылку или функцию.

Типы данных

©ρŧąТип данных определяет:внутреннее представление данных в памяти компьютера => множество значений, которые могут принимать величины этого типа;операции

Слайд 7©ρŧą
int (целый);
char (символьный);
wchar_t (расширенный символьный);
bool (логический);
float (вещественный);
double (вещественный с двойной

точностью).
Спецификаторы:
short (короткий);
long (длинный);
signed (знаковый);
unsigned (беззнаковый).
+ void
Основные (стандартные) типы данных:
intergal

©ρŧąint (целый);char (символьный);wchar_t (расширенный символьный);bool (логический);float (вещественный);double (вещественный с двойной точностью).Спецификаторы:short (короткий);long (длинный);signed (знаковый);unsigned (беззнаковый).+ voidОсновные (стандартные)

Слайд 8©ρŧą
Составные типы
arrays of objects of a given type;
functions, which

have parameters of given types and return void or references

or objects of a given type;
pointers to void or objects or functions of a given type;
references to objects or functions of a given type;
classes containing a sequence of objects of various types, a set of types, enumerations and functions for manipulating these objects, and a set of restrictions on the access to these entities;
unions, which are classes capable of containing objects of different types at different times;
enumerations, which comprise a set of named constant values. Each distinct enumeration constitutes a different enumerated type;
pointers to non-staticclass members

©ρŧąСоставные типыarrays of objects of a given type; functions, which have parameters of given types and return

Слайд 9©ρŧą
Тип Диапазон значений Размер(байт)

bool true и false 1
signed char –128 … 127 1
unsigned

char 0 … 255 1
signed short int –32 768 … 32 767 2
unsigned short int 0 …

65 535 2
signed long int –2 147 483 648 …
2 147 483 647 4
unsigned long int 0 … 4 294 967 295 4
float 3.4e–38 … 3.4e+38 4
double 1.7e–308 … 1.7e+308 8
long double 3.4e–4932 … 3.4e+4932 10

Диапазоны для IBM PC-совместимых

©ρŧąТип			Диапазон значений   Размер(байт)bool				true и false		1signed char		–128 … 127			1unsigned char		0 … 255			1signed short int	–32 768 … 32 767	2unsigned

Слайд 10©ρŧą
Диапазоны типов по стандарту
sizeof(float) ≤ sizeof(double) ≤ sizeof(long double)
sizeof(char) ≤

sizeof(short) ≤ sizeof(int) ≤ sizeof(long)

Минимальные и максимальные значения определены в

файлах:
- целые
- вещественные
©ρŧąДиапазоны типов по стандартуsizeof(float) ≤ sizeof(double) ≤ sizeof(long double)sizeof(char) ≤ sizeof(short) ≤ sizeof(int) ≤ sizeof(long)Минимальные и максимальные

Слайд 11©ρŧą
Явное задание типа констант
0X22UL
05Lu
2E+6L
1.82f
L”Vasia”

©ρŧąЯвное задание типа констант0X22UL05Lu2E+6L1.82fL”Vasia”

Слайд 12©ρŧą
[класс памяти] [const] тип имя [инициализатор];

инициализатор: = значение

или ( значение )
short int a = 1;
const char C =

'C';
char s, sf = 'f';
char t (54);
float c = 0.22, x(3), sum;

Примеры описаний:

Описание идентификаторов

©ρŧą[класс памяти] [const] тип имя [инициализатор];инициализатор: = значение   или	( значение )short int a = 1;	const

Слайд 13©ρŧą
Каждый идентификатор имеет область действия (potential scope) и область видимости

(scope), которые, как правило, совпадают (кроме случая описания такого же

имени во вложенном блоке).
Область видимости начинается в точке описания.
const int i = 2; { int i[i]; }
Имя, описанное внутри блока, локально по отношению к этому блоку. Имя, описанное вне любого блока, имеет глобальную область видимости.
Область действия и класс памяти зависят не только от собственно описания, но и от места его размещения в тексте программы.

Область видимости

©ρŧąКаждый идентификатор имеет область действия (potential scope) и область видимости (scope), которые, как правило, совпадают (кроме случая

Слайд 14©ρŧą
auto — автоматическая переменная. Память выделяется в стеке и при

необходимости инициализируется каждый раз при выполнении оператора, содержащего ее определение.

Освобождение памяти - при выходе из блока
extern — переменная определяется в другом месте программы.
static — статическая переменная. Время жизни — постоянное. Инициализируется один раз при первом выполнении оператора, содержащего определение переменной. В зависимости от расположения оператора описания статические переменные могут быть глобальными и локальными.
register — аналогично auto, но память выделяется по возможности в регистрах процессора.

Класс памяти

©ρŧąauto — автоматическая переменная. Память выделяется в стеке и при необходимости инициализируется каждый раз при выполнении оператора,

Слайд 15©ρŧą
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;					// 1main(){						int b;				// 2	extern int x;			// 3	static int c;			// 4	a = 1;				// 5	int a;				// 6 	a

Слайд 16©ρŧą
int a; // глобальная переменная
int main(){
int b; // локальная

переменная
static int c = 1; // локальная статическая переменная
}
Область видимости.

Пример 2
©ρŧąint a;			 // глобальная переменнаяint main(){	int b;		  // локальная переменная	static int c = 1; // локальная

Слайд 17©ρŧą
блок
файл
функция
прототип функции
класс
поименованная область
Области действия

©ρŧąблокфайлфункцияпрототип функциикласспоименованная областьОбласти действия

Слайд 18©ρŧą
В каждой области действия различают пространства имен, в пределах которых

идентификатор должен быть уникальным. В разных категориях имена могут совпадать,

например:
struct Node{
int Node;
int i;
}Node;
В С++ определено четыре раздельных класса идентификаторов, в пределах которых имя должно быть уникальным:
1. имена переменных, функций, типов typedef и констант перечислений;
2. имена типов перечислений, структур, классов и объединений;
3. элементы каждой структуры, класса и объединения;
4. метки.

Пространства имен

©ρŧąВ каждой области действия различают пространства имен, в пределах которых идентификатор должен быть уникальным. В разных категориях

Слайд 19©ρŧą
Базовые конструкции языка

©ρŧąБазовые конструкции языка

Слайд 20©ρŧą
#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 i;	printf(

Слайд 21©ρŧą
#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(){	int int1 = 45, int2 = 13;	printf(

Слайд 22©ρŧą
#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 = 3.621000| f = 3.62| f = 3.6|
f = 3.621| f = 3.621000e+000| f = +3.621000E+000|
dbl = 2.23| dbl = 2.230000e+000| dbl = 2|

Пример 3 - вещественные форматы

©ρŧą#include int main(){float f = 3.621;double dbl = 2.23;printf(

Слайд 23©ρŧą
#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| ch = z|
str = ramambahari|
str = ramambahari |
str = ramambahari|

Пример 4 - форматы символов и строк

©ρŧą#include int main(){char ch = 'z', *str =

Слайд 24©ρŧą
#include
int main(){
int i;
cout > i;
cout

- классы ввода-вывода

#include
using namespace std;
int main(){
int i;
cout << "Введите целое число\n";
cin >> i;
cout << "Вы ввели число” << i << ", спасибо!";
}

©ρŧą#include int main(){	int i;	cout > i;	cout

Слайд 25©ρŧą
Унарные операции

++ – – sizeof ~ ! – + & * new delete (type)

Бинарные операции
* / % + – > < >= == != & ^ | && || = *= /= %= += –= = &= |= ^= throw ,

Тернарная операция
? :
Операции

С++ (не все!)

©ρŧąУнарные операции ++	– –	sizeof		~	!	–	+	&	*	new		delete		(type)	Бинарные операции	*	/	%	+	–	>	<		>=	==	!=	&	^	|	&&	||	=	*=	/=	%=	+=	–=	=	&=	|=	^=	throw   ,	Тернарная операция	? :Операции С++ (не все!)

Слайд 26©ρŧą
Приоритеты операций

©ρŧąПриоритеты операций

Слайд 27©ρŧą

©ρŧą

Слайд 28©ρŧą

©ρŧą

Слайд 29©ρŧą

©ρŧą

Слайд 30©ρŧą
Операции выполняются в соответствии с приоритетами. Для изменения порядка выполнения

операций используются круглые скобки. Если в одном выражении записано несколько

операций одинакового приоритета, унарные операции, условная операция и операции присваивания выполняются справа налево, остальные — слева направо.
©ρŧąОперации выполняются в соответствии с приоритетами. Для изменения порядка выполнения операций используются круглые скобки. Если в одном

Слайд 31©ρŧą
#include
int main(){
int x = 3, y = 3;
printf("Значение префиксного

выражения: %d\n", ++x);
printf("Значение постфиксного выражения: %d\n", y++);
}

Результат работы программы:
Значение префиксного

выражения: 4
Значение постфиксного выражения: 3

Операции инкремента и декремента

©ρŧą#include int main(){int x = 3, y = 3;printf(

Слайд 32©ρŧą
sizeof выражение sizeof ( тип )

#include
int main(){
float x

= 1;
cout

"\nsizeof x :" << sizeof x;
cout << "\nsizeof (x+1.0) :" << sizeof (x+1.0);
}

sizeof (float) : 4
sizeof x : 4
sizeof (x+1.0) : 8

Операция sizeof

©ρŧąsizeof выражение 	 sizeof ( тип )#include int main(){float x = 1;cout

Слайд 33©ρŧą
#include
int main(){
cout

= " << (6^5);
}


Результат работы программы:
6&5 = 4
6|5 = 7
6^5 = 3

Поразрядные операции

©ρŧą#include int main(){	cout

Слайд 34©ρŧą
#include
int main(){
int x = 11, y = 4;
float z

= 4;
printf(" %d %f\n", x/y, x/z);
printf("Остаток: %d\n", x%y);
}

2 2.750000
Остаток: 3

Операции

деления и остатка от деления
©ρŧą#include int main(){	int x = 11, y = 4;	float z = 4;	printf(

Слайд 35©ρŧą

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 + 0.12)/6
x && y || !z
(t * sin(x)-1.05e4)/((2 * k + 2) * (2 * k + 3))

Тернарная операция:

Примеры выражений:

a += b

Приоритеты:

Сложное присваивание:

©ρŧąa = b = c означает a = (b = c) a + b + c означает (a + b) + c(sin(x + 2) + cos(y + 1)) i = (i < n)

Слайд 36©ρŧą
изменяющие внутреннее представление величин (с потерей точности или

без потери точности);
изменяющие только интерпретацию внутреннего представления.
Явные преобразования

типа:

const_cast
dynamic_cast
reinterpret_cast
static_cast
приведение в стиле С: (имя_типа)выражение

Преобразования типов

©ρŧą  изменяющие внутреннее представление величин (с потерей точности или без потери точности);  изменяющие только интерпретацию

Слайд 37©ρŧą
Операнды 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.
Тип результата тот же, что и тип участвующих в выражении операндов.

Правила преобразования типов

©ρŧąОперанды char, unsigned char или short преобразуются к int по правилам:char расширяется нулем или знаком в зависимости

Слайд 38©ρŧą
Оператор «выражение»
;

i++;

fun(i, k);

a *= b + c;

©ρŧąОператор «выражение»;i++;fun(i, k);a *= b + c;

Слайд 39©ρŧą
Базовые конструкции структурного программирования

©ρŧąБазовые конструкции структурного программирования

Слайд 40©ρŧą
if ( выражение ) оператор_1; [else оператор_2;]
if (a

1; // 1
if (ad || a==0)) b++;
else {b*

= a; a = 0;} // 2
if (a if (a else m = c;}
else {if (b else m = c;} // 3
if (a++) b++; // 4
if (b>a) max = b;
else max = a; // max = (b > a) ? b : a;

if (int i = fun(t)) a –= i; else a += i;

Условный оператор

©ρŧąif ( выражение ) оператор_1; [else оператор_2;]if (a

Слайд 41©ρŧą
switch ( выражение ){
case константное_выражение_1: [список_операторов_1]
case константное_выражение_2: [список_операторов_2]
...
case константное_выражение_n: [список_операторов_n]
[default:

операторы ]
}

Оператор switch

©ρŧąswitch ( выражение ){	case константное_выражение_1: 						[список_операторов_1]	case константное_выражение_2: 						[список_операторов_2]	...	case константное_выражение_n: 						[список_операторов_n]	[default: операторы ]}Оператор switch

Слайд 42©ρŧą
#include
int main(){
int a, b, res; char op; bool f = true;
cout

> a;
cout

"\nВведите знак операции : "; cin >> op;
cout << "\nВведите 2й операнд : "; cin >> b;
switch (op){
case '+': res = a + b; break;
case '-': res = a - b; break;
case '*': res = a * b; break;
case '/': res = a / b; break;
default : cout <<"\nНеизвестная операция"; f = false;
}
if (f) cout << "\nРезультат : " << res;
}

Пример оператора switch

©ρŧą#include int main(){	int a, b, res;	char op;	bool f = true;	cout > a;	cout > op;	cout > b;	switch (op){

Слайд 43©ρŧą
#include
int main(){
float Xn, Xk, Dx;
printf("Введите диапазон и шаг изм-я

аргумента: ");
scanf("%f%f%f", &Xn, &Xk, &Dx);
printf("| X |

Y |\n");
float X = Xn;
while (X <= Xk){
printf("| %5.2f | %5.2f |\n", X, X*X + 1); X += Dx;
}
}

while (int x = 0) { /* область действия х */ }

while ( выражение ) оператор

Оператор цикла while

©ρŧą#include int main(){	float Xn, Xk, Dx;	printf(

Слайд 44©ρŧą
#include
int main(){
char answer;
do{
cout >

answer;
}while (answer != 'y');
}

do оператор while выражение;
Оператор цикла do while

©ρŧą#include int main(){	char answer;	do{		cout > answer;	}while (answer != 'y');}do оператор while выражение;Оператор цикла do while

Слайд 45©ρŧą
#include
#include
int main(){
double X, Eps;
double Yp, Y = 1;
printf("Введите

аргумент и точность: ");
scanf("%lf%lf", &X, &Eps);
do{
Yp = Y;
Y = (Yp

+ X/Yp)/2;
}while (fabs(Y – Yp) >= Eps);
printf("\n %lf %lf", X, Y);
}

yn = ½ (yn-1 + x/yn-1)

Пример 6 - вычисление квадратного корня

= Eps); printf("\n %lf %lf", X, Y);}yn = ½ (yn-1 + x/yn-1)Пример 6 - вычисление квадратного корня">©ρŧą#include #include int main(){	double X, Eps;		double Yp, Y = 1;		printf(

Слайд 46©ρŧą
#include
int main(){
int num;
cout

число : "; cin >> num;
for (int half

= num / 2, div = 2; div <= half; div++) if (!(num % div))cout << div <<"\n";
}

for (int i = 1, s = 0; i<=100; i++) s += i;

for ( инициализация; выражение; модификации) оператор;

Оператор цикла for

©ρŧą#include int main(){  int num;  cout > num;  for (int half = num /

Слайд 47©ρŧą
оператор безусловного перехода goto;
оператор выхода из цикла break;
оператор перехода к

следующей итерации цикла continue;
оператор возврата из функции return.

Операторы передачи управления

©ρŧąоператор безусловного перехода goto;оператор выхода из цикла break;оператор перехода к следующей итерации цикла continue;оператор возврата из функции

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика