Программирование в С++

Содержание

Слайд 2

Программирование Для представления целостного взгляда на "программирование" предлагается разделить на главное

Программирование

Для представления целостного взгляда на "программирование" предлагается разделить на главное (фундаментальное)

и второстепенное (заменяемое):
фундаментальное (типы данных, структуры данных, программные управляющие конструкции, алгоритмы)
Заменяемое: языки программирования технологии)
Слайд 3

Программа Что такое программа? Описать процесс − это значит определить последовательность

Программа

Что такое программа?
Описать процесс − это значит определить последовательность состояний заданной

информационной среды. Если мы хотим, чтобы по заданному описанию требуемый процесс порождался автоматически на каком-либо компьютере, необходимо, чтобы это описание было формализованным. Такое описание называется программой.
Слайд 4

Программа Что такое программа? С точки зрения пользователя (пользователем – потребителем

Программа

Что такое программа?
С точки зрения пользователя
(пользователем – потребителем может

быть так же процесс)
Изменение начальных (входных) данных до конечного ожидаемого* результата
Слайд 5

Программа Что такое программа? С точки зрения программиста Набор обобщенных* операторов,

Программа

Что такое программа?
С точки зрения программиста
Набор обобщенных* операторов, выстроенных в определенном

порядке, изменяющих информационное пространство (набор мест хранения и значения хранимых данных) по определенному алгоритму.
Слайд 6

Программа Что такое программа? С точки зрения компьютера Набор адресных мест

Программа

Что такое программа?
С точки зрения компьютера
Набор адресных мест хранения (временных и

постоянных) доступных для изменения с заданным порядком обращения (чтение, запись, исполнение). Регистры, стек.
Слайд 7

Из чего состоят данные Содержимое мест хранения (временное, постоянное) до применения

Из чего состоят данные

Содержимое мест хранения (временное, постоянное) до применения полного

набора команд, во время применения отдельной команды, и после полного применения полного набора команд.
Слайд 8

Из чего состоит программа? Набор данных (данные) Набор действий (список команд) Порядок выполнения команд (алгоритм)

Из чего состоит программа?

Набор данных (данные)
Набор действий (список команд)
Порядок выполнения команд

(алгоритм)
Слайд 9

Из чего состоит команда Описание процесса изменения данных на языке программирования (синтаксис)

Из чего состоит команда

Описание процесса изменения данных на языке программирования (синтаксис)

Слайд 10

Из чего состоит алгоритм? Алгори́тм — набор инструкций, описывающих порядок действий

Из чего состоит алгоритм?

Алгори́тм — набор инструкций, описывающих порядок действий исполнителя

для достижения результата решения задачи за конечное число действий.
В старой трактовке вместо слова «порядок» использовалось слово «последовательность», но по мере развития параллельности в работе компьютеров слово «последовательность» стали заменять более общим словом «порядок». Это связано с тем, что работа каких-то инструкций алгоритма может быть зависима от других инструкций или результатов их работы. Таким образом, некоторые инструкции должны выполняться строго после завершения работы инструкций, от которых они зависят. Независимые инструкции или инструкции, ставшие независимыми из-за завершения работы инструкций, от которых они зависят, могут выполняться в произвольном порядке, параллельно или одновременно, если это позволяют используемые процессор и операционная система.
Слайд 11

Структуры данных Физическая структура – способ физического представления данных в памяти

Структуры данных

Физическая структура – способ физического представления данных в памяти машины

(структура хранения, внутренняя структура, структура памяти – синонимы).
Логическая (абстрактная) структура – структура данных без учета ее представления в машинной памяти.
Слайд 12

Структуры данных Процедуры отображения логической структуры в физическую Процедуры отображения физической

Структуры данных

Процедуры отображения логической структуры в физическую
Процедуры отображения физической структуры в

логическую
* Эти процедуры обеспечивают доступ к физическим структурам, выполнение над ними операций.
** Применительны к обеим видам структур.
Слайд 13

Структуры данных Простые (базовые, примитивные) – не могут быть расчленены на

Структуры данных

Простые (базовые, примитивные) – не могут быть расчленены на составные

части, большие чем биты.
Интегрированные (структурированные, композитные, сложные) – состоят из простых и/или интегрированных структур
Слайд 14

Структуры данных Отсутствие или наличие явно заданных связей. Несвязные структуры –

Структуры данных

Отсутствие или наличие явно заданных связей.
Несвязные структуры – векторы, массивы,

строки, стеки, очереди.
Связные структуры – связные списки.
Слайд 15

Структуры данных Изменчивость – изменение числа элементов и/или связей между элементами структуры. Статические Полустатические Динамические

Структуры данных

Изменчивость – изменение числа элементов и/или связей между элементами структуры.
Статические
Полустатические
Динамические

Слайд 16

Слайд 17

Структуры данных

Структуры данных

Слайд 18

Структуры данных Вектор – структура данных с фиксированным количеством элементов одного

Структуры данных

Вектор – структура данных с фиксированным количеством элементов одного и

того же типа

Массив – последовательность элементов одного базового типа *

Множество – набор неповторяющихся данных одного и того же типа

Запись – конечное упорядоченное множество полей, характеризующихся различным типом данных

Таблица – последовательность записей, которые имеют одну и ту же организацию **

* Массив – вектор с индексами элементов

**Таблица – записи с индексами записей

Слайд 19

Структуры данных Строчные структуры – одномерные, динамические изменяемые структуры данных, различающиеся

Структуры данных

Строчные структуры – одномерные, динамические изменяемые структуры данных, различающиеся способами

включения и исключения элементов

Последовательность, в которой включение и исключение элемента происходит с одной стороны

Последовательность, в которую включают элементы с одной стороны, а исключают - с другой

Последовательность, в которой включение и исключение элементов происходит с двух стороны

LIFO

FIFO

Слайд 20

Структуры данных Списковые структуры – логический порядок данных определяется указателями. Каждый

Структуры данных

Списковые структуры – логический порядок данных определяется указателями.
Каждый элемент состоит

из двух полей:
Элемент данных или указатель на него
Указатель на следующий элемент списка

Список – упорядоченное множество, состоящее из переменного числа элементов, к которым применимы операции включения и исключения.
Линейный список – отражающий отношения соседства между элементами.

Слайд 21

Структуры данных Связный список – структура данных, элементами которой являются записи,

Структуры данных

Связный список – структура данных, элементами которой являются записи, связанные

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

Граф – совокупность двух множеств: вершин и ребер.

Дерево – совокупность элементов, называемых узлами (один из которых определен как корень), и отношений, образующих иерархическую структуру узлов.

Слайд 22

Структуры данных

Структуры данных

Слайд 23

Структуры данных Линейные структуры – структуры, в которых связи элементов не

Структуры данных

Линейные структуры – структуры, в которых связи элементов не зависят

от выполнения какого-либо условия

Строчные структуры
Стек
Очередь
Дек

Слайд 24

Структуры данных Нелинейные структуры – у которых связи между элементами зависят

Структуры данных

Нелинейные структуры – у которых связи между элементами зависят от

выполнения определенного условия.

Графы
Деревья
Плексы (сплетения)

Слайд 25

Структуры данных

Структуры данных

Слайд 26

Структуры данных

Структуры данных

Слайд 27

Информация по каждому типу данных однозначно определяет: Структуру хранения данных указанного

Информация по каждому типу данных однозначно определяет:

Структуру хранения данных указанного типа,

т.е. выделение памяти и представление данных в ней и интерпретирование двоичного представления;
Множество допустимых значений, которые может иметь тот или иной объект описываемого типа;
Множество допустимых операций, которые применимы к объекту описываемого типа;
Слайд 28

Над всеми структурами и типами данных должны обязательно должны выполняться следующие

Над всеми структурами и типами данных должны обязательно
должны выполняться следующие

операции:

Операция создания заключается в выделении памяти для структуры данных;
Операция уничтожения противоположна операции создания. Помогает эффективно использовать память;
Операция выбора используется для доступа к данным внутри самой структуры. Метод доступа – одно из наиболее важных свойств структуры, потому что имеет непосредственное отношение к выбору конкретной структуры данных;
Операция обновления позволяет изменить значения данных в структуре данных. Примеры: операция присваивания и передача параметров.

Слайд 29

Операция создания; Операция уничтожения; Операция выбора; Операция обновления. Процедуры отображения логической

Операция создания;
Операция уничтожения;
Операция выбора;
Операция обновления.

Процедуры отображения логической структуры в физическую
Процедуры

отображения физической структуры в логическую

Определяют выбор языка программирования

Слайд 30

Типы данных Элементы структур данных состоят из простых базовых типов. Любая

Типы данных

Элементы структур данных состоят из простых базовых типов.
Любая программа

оперирует с переменными и константами определенного типа данных.
Слайд 31

Таблица типов signed - знаковый тип unsigned - беззнаковый тип

Таблица типов

signed - знаковый тип
unsigned - беззнаковый тип

Слайд 32

Основные типы языка C++ * * - подробности в раздаточном материале

Основные типы языка C++ *

* - подробности в раздаточном материале

Слайд 33

Размеры основных типов

Размеры основных типов

Слайд 34

Типы данных bool - требуется всего 1 бит!!!! false , true

Типы данных

bool - требуется всего 1 бит!!!!


false , true

Размерность

– 1 байт *

* Теоретически размер переменной типа bool равен 1 биту (не байту!), но большинство компиляторов на практике выделяет под такие переменные 1 байт, поскольку доступ к целому байту осуществляется быстрее, чем к отдельному биту. Чтобы получить доступ к биту, необходимо произвести операцию его извлечения из того байта, в котором он содержится, что увеличивает время доступа.

Слайд 35

ОБЪЯВЛЕНИЕ ПЕРЕМЕННОЙ – УКАЗАНИЕ ИМЕНИ ПЕРЕМЕННОЙ И ЕЕ ТИПА. ОПРЕДЕЛЕНИЕ ПЕРЕМЕННОЙ

ОБЪЯВЛЕНИЕ ПЕРЕМЕННОЙ – УКАЗАНИЕ ИМЕНИ ПЕРЕМЕННОЙ И ЕЕ ТИПА.
ОПРЕДЕЛЕНИЕ ПЕРЕМЕННОЙ –

УКАЗАНИЕ ИМЕНИ ПЕРЕМЕННОЙ С ВЫДЕЛЕНИЕМ ПАМЯТИ ПОД

int var1;
int var2;

Слайд 36

Имена переменных var1, var2 – идентификаторы var_1, _var2 – идентификаторы Var1

Имена переменных

var1, var2 – идентификаторы

var_1, _var2 – идентификаторы

Var1 и var1 -

различные идентификаторы

TempDate – идентификатор;
tempDate – идентификатор;

НЕЛЬЗЯ ИСПОЛЬЗОВАТЬ КЛЮЧЕВЫЕ СЛОВА!!!

asm; auto; bool; break; case; catch; char; class; const; const_cast; continue; default; delete; do; double; dynamic_cast; else; enum; explicit; export; extern; false; float; for; friend; goto; if; inline; int; long; main; mutable; namespace; new; operator; private; protected; public; register; reinterpret_cast; return; short; signed; sizeof; static; static_cast; struct; switch; template; this; true; try; typedef; typeid; typename; union; unsigned; using; virtual; void; volatile; wchar_t; while

Слайд 37

var1 = 1; var2 = var1 + 2; ПРИСВАИВАНИЕ « =

var1 = 1;
var2 = var1 + 2;

ПРИСВАИВАНИЕ

« = »

Переменные целого

типа

Целые константы

“1” – константа целого типа;

Операторы

ВЫВОД

cout << “var1 + 2 равно ”;

cout << var2 << ‘\n’;

cout << var2 << endl;

Слайд 38

Другие целые типы long, short int – для 32-разрядных систем int

Другие целые типы

long, short

int – для 32-разрядных систем

int - размер аппаратно-зависимый

long,

short – фиксированный размер *

long

long – для 16-разрядных систем

int

short – для 16-разрядных систем

* Размер типа long всегда равен 4 байтам и совпадает с размером типа int в случае 32-разрядных систем, подобных Windows. Это означает, что диапазон значений типа long совпадает с диапазоном типа int: от -2 147 483 648 до 2 147 483 647. Тип long может быть описан как long int между двумя такими описаниями нет разницы. Если ваша операционная система 32-разрядная, то не важно, какой тип использовать — int или long, но в 16-разрядной системе тип long сохранит свой диапазон значений, в то время как тип int уже будет иметь диапазон, совпадающий с типом short.
Тип short в любой операционной системе имеет размер, равный двум байтам. Диапазон значений типа short — от -32 768 до 32 767. Использование типа short не имеет особого смысла на современных 32-разрядных операционных системах, за исключением тех случаев, когда необходима экономия памяти. Несмотря на вдвое больший размер по сравнению с типом short, обработка переменных типа int происходит быстрее

Слайд 39

Структура программы С++

Структура программы С++

Слайд 40

Структура программы

Структура программы

Слайд 41

Структура программы std :: cout

Структура программы

std :: cout << A << ‘\n’;

Слайд 42

Структура программы

Структура программы

Слайд 43

Структура программы ‘\n’ = endl Манипулятор endl связан с очисткой выходного буфера

Структура программы

‘\n’ = endl

Манипулятор endl связан с очисткой выходного буфера

Слайд 44

Структура программы #include – директива препроцессора #include iostream = iostream.h C++

Структура программы

#include – директива препроцессора

#include

iostream = iostream.h

C++

C

using namespace

std; - директива
Слайд 45

Структура программы int main () { тело функции } тип возвращаемого значения имя функции

Структура программы

int main ()
{
тело функции
}

тип возвращаемого
значения

имя функции

Слайд 46

Структура программы функция main()

Структура программы

функция main()

Слайд 47

Структура программы написание комментариев

Структура программы

написание комментариев

Слайд 48

Символьные переменные char от-127 до 128 1 байт ASCII 0 -

Символьные переменные

char

от-127 до 128

1 байт

ASCII

0 - 255

wchar_t

Символьные константы

char var1 =

‘2’;
char var2;
var2 = ‘2’;
Слайд 49

Слайд 50

Слайд 51

Слайд 52

Каскадирование операции “

Каскадирование операции “<<“

Слайд 53

Управляющие последовательности

Управляющие последовательности

Слайд 54

Строковые переменные и константы #include … setlocale(LC_ALL,"RUS"); … “ #include “

Строковые переменные и константы

#include
… setlocale(LC_ALL,"RUS");
 …

“ #include

Слайд 55

Ввод данных cin

Ввод данных

cin

Слайд 56

Структура программы Выражение – определяет совокупность вычислений Операторы – указание компьютеру

Структура программы

Выражение – определяет совокупность вычислений
Операторы – указание компьютеру выполнить какое-либо

действие
В одном операторе могут присутствовать несколько выражений
Слайд 57

Структура программы Вещественные типы: float, double, long double Переменные вещественного типа

Структура программы

Вещественные типы: float, double, long double

Переменные вещественного типа предназначены для

хранения вещественных чисел — тех чисел, которыми измеряются непрерывные величины: температура, расстояние, площадь. Вещественные числа, как правило, имеют ненулевую дробную часть.
Слайд 58

Вещественные типы Префикс const гарантирует, что программа не сможет случайно изменить значение переменной

Вещественные типы

Префикс const гарантирует, что программа не сможет случайно изменить значение

переменной
Слайд 59

Вывод результатов

Вывод результатов

Слайд 60

Вывод результатов

Вывод результатов

Слайд 61

Вывод результатов #include setw(N) N – размерность «поля»

Вывод результатов

#include

setw(N) N – размерность «поля»

Слайд 62

Вывод результатов

Вывод результатов

Слайд 63

Вывод результатов Использовали множественное определение

Вывод результатов

Использовали множественное определение

Слайд 64

Типы данных Беззнаковые типы данных

Типы данных

Беззнаковые типы данных

Слайд 65

Использование знаковых и беззнаковых типов 1 500 000 000 * 2

Использование знаковых и беззнаковых типов

1 500 000 000 * 2 =

3 000 000 000 (предел 2 147 483 647)
Слайд 66

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

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

Слайд 67

Неявные преобразования типов Иерархия типов

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

Иерархия типов

Слайд 68

Явные преобразования типов intVar = static_cast (intVar); Приведения типов – только в осознанных случаях!!!

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

intVar = static_cast(intVar);

Приведения типов – только в осознанных случаях!!!

Слайд 69

Арифметические операции “+” – сложение; “-” – вычитание; “*” – умножение; “/” – деление.

Арифметические операции

“+” – сложение;
“-” – вычитание;
“*” – умножение;
“/” – деление.

Слайд 70

Остаток от деления “%” – остаток от деления (взятие по модулю)

Остаток от деления

“%” – остаток от деления (взятие по модулю)

8

% 10 = 8;
10 % 10 = 0;
11 % 10 = 1;

cout << 11 % 10 ;

Слайд 71

Арифметические операции с присваиванием var1 = var1 + var2; var1 +

Арифметические операции с присваиванием

var1 = var1 + var2;

var1 + =

var2

‘-=‘
‘*=‘
‘/=‘
‘%=‘

Слайд 72

Инкремент var1 = var1 + 1 var1 += 1 ++var1 Префиксная форма ++var1 Постфиксная форма var1++

Инкремент

var1 = var1 + 1

var1 += 1

++var1

Префиксная форма ++var1
Постфиксная форма var1++

Слайд 73

Инкремент

Инкремент

Слайд 74

Декремент --var1; var1--;

Декремент

--var1;
var1--;

Слайд 75

Библиотечные функции

Библиотечные функции

Слайд 76

Заголовочные и библиотечные файлы

Заголовочные и библиотечные файлы

Слайд 77

Базовые управляющие структуры Следование; Циклы; Ветвления; Переходы.

Базовые управляющие структуры

Следование;
Циклы;
Ветвления;
Переходы.

Слайд 78

Базовые управляющие структуры

Базовые управляющие структуры

Слайд 79

Базовые управляющие структуры Операции отношения

Базовые управляющие структуры

Операции отношения

Слайд 80

Циклы for while do

Циклы

for
while
do

Слайд 81

Циклы “for” for (i = 0; i i = 0 инициализирующее

Циклы “for”

for (i = 0; i <= number; i++ )

i =

0 инициализирующее
i <= number условие проверки
i++ инкрементирующее

Счетчик i определен в теле
цикла

Слайд 82

Циклы “for” for (i = 0; i cout for (i =

Циклы “for”

for (i = 0; i <= number; i++)
cout << i

* i << " - квадрат счетчика цикла." << '\n';

for (i = 0; i <= number; i++)
{
cout << i << " - значение счетчика цикла." << '\n';
cout << i * i << " - квадрат счетчика цикла." << '\n';
cout << i * i * i << “- 3-я степень счетчика цикла." << '\n';
int new_count = count * 2;
cout << new_count << endl;
}

переменные, определенные внутри него, невидимы вне этого блока. Невидимость означает, что программа не имеет доступа к переменной

new_count

Слайд 83

Циклы ‘for’ Присваивая счетчику начальное значение, равное 0, в качестве условия

Циклы ‘for’

Присваивая счетчику начальное значение, равное 0, в качестве условия

продолжения цикла ставят сравнение счетчика с желаемым числом выполнений и увеличивают счетчик на единицу каждый раз, когда исполнение тела цикла завершается.
Слайд 84

Вычисление факториала N!

Вычисление факториала N!

Слайд 85

Вычисление факториала N!

Вычисление факториала N!

Слайд 86

Вычисление факториала N!

Вычисление факториала N!

Слайд 87

Циклы ‘for’ Несколько инициализирующих выражений и условий цикла.Вместо одного инициализирующего выражения

Циклы ‘for’

Несколько инициализирующих выражений и условий цикла.Вместо одного инициализирующего выражения

в операторе цикла for можно использовать несколько выражений, разделяемых запятыми. Подобным же образом можно использовать более одного инкрементирующего выражения. Лишь условие продолжения цикла всегда должно быть одно.
for (j = 0, alpha = 100; j <50; j++, beta--)
{
// тело цикла
}

for ( ; ; )

Слайд 88

Циклы ‘for’

Циклы ‘for’

Слайд 89

Циклы ‘while’ Когда неизвестно какое количество циклов выполнить

Циклы ‘while’

Когда неизвестно какое количество циклов выполнить

Слайд 90

Циклы while

Циклы while

Слайд 91

Вычисления ряда чисел Фибоначчи

Вычисления ряда чисел Фибоначчи

Слайд 92

Цикл ‘do’ do procedure; while ( var1 != var2); do {

Цикл ‘do’

do
procedure;
while ( var1 != var2);

do
{
procedure1;

procedure2;
}
while ( var1 != var2);

Цикл с постусловием!

Выполнится хотя бы 1 раз

Слайд 93

Рекомендации: Цикл for подходит для тех случаев, когда мы заранее знаем,

Рекомендации:
Цикл for подходит для тех случаев, когда мы заранее знаем, сколько

раз нам потребуется его выполнение. Циклы while и do используются в тех случаях, когда число итераций цикла заранее не известно, причем цикл while подходит в тех случаях, когда тело цикла может быть не исполненным ни разу, а цикл do — когда обязательно хотя бы однократное исполнение тела цикла.

Циклы for, while, do

Слайд 94

Ветвления

Ветвления

Слайд 95

Ветвления if … if … else … switch…. case …

Ветвления

if …
if … else …
switch…. case …

Слайд 96

Ветвления if…

Ветвления if…

Слайд 97

Ветвления if … Пример поиска простых чисел тело цикла не заключено

Ветвления if …

Пример поиска простых чисел

тело цикла не заключено в фигурные

скобки. Это объясняется тем, что оператор if и операторы тела ветвления на самом деле являются одним оператором
Слайд 98

Выход из программы Функция exit() – немедленный выход из программы, независимо

Выход из программы

Функция exit() – немедленный выход из программы, независимо в

каком месте исполнения она находится.
Требуется #include
Слайд 99

Ветвления if … else …

Ветвления if … else …

Слайд 100

Ветвления if … else …

Ветвления if … else …

Слайд 101

Разветвление

Разветвление

Слайд 102

Переход (GOTO…)

Переход (GOTO…)

Слайд 103

Цикл (повторение)

Цикл (повторение)


Слайд 104

Вложенные конструкции

Вложенные конструкции

Слайд 105

Конструкция “CASE”

Конструкция “CASE”

Слайд 106

Функции

Функции

Слайд 107

ФУНКЦИИ Объявление void func1() Определение Вызов

ФУНКЦИИ

Объявление void func1()

Определение

Вызов

Слайд 108

Функция ОПРЕДЕЛЕНИЕ Заголовок Тело void printline() { for (int i = 0; i cout cout }

Функция

ОПРЕДЕЛЕНИЕ
Заголовок
Тело
void printline()
{
for (int i = 0; i <=60; i++)
cout << ‘=‘;
cout

<< endl;
}