Программирование (C++)
Что такое программирование?
Направления в программировании
Языки программирования
Простейшая программа на C++
Вывод на экран
Вывод на экран
Переход на новую строку
Пример задачи
Зачем нужны переменные?
Имена переменных
Типы переменных
Работа с переменными
Работа с переменными
Ввод с клавиатуры
Ввод с клавиатуры
Программа сложения чисел
cout <<данных с текстом
Программа сложения чисел
Арифметические выражения
Сокращённая запись операций
Особенность деления
Частное и остаток при делении целых
Частное и остаток при делении целых
Форматирование вывода
Форматный вывод
Форматный вывод
Научный формат чисел
Операции с вещественными числами
Операции с вещественными числами
1.95M
Категория: ПрограммированиеПрограммирование

Программирование (C++)

1. Программирование (C++)

1
Программирование
(C++)
9 класс
К.Ю. Поляков, Е.А. Ерёмин, 2018
http://kpolyakov.spb.ru

2. Что такое программирование?

Программирование (C++), 8 класс
2
Что такое программирование?
Программирование — это создание программ для
компьютеров. Этим занимаются программисты.
Чем занимаются программисты:
анализ задачи (выделение
исходных данных, связей
между ними, этапов решения
задачи)
системные аналитики
разработка алгоритмов
алгоритмисты
написание и отладка программ
кодировщики
тестирование программ
тестировщики
написание документации
технические писатели
К.Ю. Поляков, Е.А. Ерёмин, 2019
http://kpolyakov.spb.ru

3. Направления в программировании

Программирование (C++), 8 класс
3
Направления в программировании
системный программист
операционные системы,
утилиты, драйверы
прикладной программист
прикладные программы, в
т.ч. для мобильных
устройств
веб-программист
веб-сайты
программист баз данных
системы управления
базами данных
К.Ю. Поляков, Е.А. Ерёмин, 2019
http://kpolyakov.spb.ru

4. Языки программирования

• К машинным языкам относится ассемблер
• К языкам высокого уровня: Паскаль, Бейсик, Си.
• К языкам визуального программирования : Делфи, Визуал
Бейсик, С++, Питон.
Все языки программирования подразделяются на интерпретаторы
и компиляторы.
Интерпретатор(работает медленно)проверяет на ошибки и
выполняет программу построчно.(например Питон)
Компилятор сначала проверяет всю программу на ошибки, а затем
выполняет ее.
Турбо С++ является компилятором.

5.

sourceforge.net/projects/orwelldevcpp/ — бесплатная среда DevC++ для
программирования на C++ в Windows;
https://visualstudio.microsoft.com/ru/vs/community — бесплатная
среда Visual Studio Community для программирования на C++ в Windows
и macOS;

6. Простейшая программа на C++

Программирование (C++), 8 класс
6
Простейшая программа на C++
результат – целое
число (integer)
название программы
main – главный
int main()
комментарии после
// не обрабатываются
{
// это основная программа
/* здесь записывают
операторы */
комментарии внутри
}
/* */ не обрабатываются
?
Что делает эта программа?
К.Ю. Поляков, Е.А. Ерёмин, 2019
http://kpolyakov.spb.ru

7. Вывод на экран

Программирование (C++), 8 класс
7
Вывод на экран
подключить
библиотеку
iostream
input-output streams –
потоки ввода и
вывода
#include <iostream>
использовать
пространство имён
using namespace std;
std
int main() {
cout << "Привет!"; // вывод текста
cin.get(); // ждать Enter
}
cout — поток для вывода символов
(character output stream)
cin — поток для ввода символов
(character input stream)
К.Ю. Поляков, Е.А. Ерёмин, 2019
http://kpolyakov.spb.ru

8. Вывод на экран

Программирование (C++), 8 класс
8
Вывод на экран
оператор
вывода
Оператор — это команда
языка программирования.
cout << "Привет!";
cout << "Привет!";
cout << "Вася!";
или так:
cout << "Привет!" << "Вася!";
cout << "Привет, " << "Вася!";
Вася!;
!
К.Ю. Поляков, Е.А. Ерёмин, 2019
Символьные строки
записывают в кавычках!
http://kpolyakov.spb.ru

9. Переход на новую строку

Программирование (C++), 8 класс
9
Переход на новую строку
cout << "Привет, Вася!";
cout << "Привет, Петя!";
ожидание:
Привет, Вася!
Привет, Петя!
реальность:
Привет, Вася!Привет, Петя!
перейти
на новую
строку
Решение:
cout << "Привет, Вася!" << endl
endl;
cout << "Привет, Петя!" << endl;
end of line
К.Ю. Поляков, Е.А. Ерёмин, 2019
http://kpolyakov.spb.ru

10. Пример задачи

Программирование (C++), 8 класс
10
Пример задачи
Задача. Ввести два числа и вычислить их сумму.
int main()
{
// ввести два числа
// вычислить их сумму
// вывести сумму на экран
}
Псевдокод – алгоритм на
русском языке с элементами
языка программирования.
!
Компьютер не может исполнить псевдокод!
К.Ю. Поляков, Е.А. Ерёмин, 2019
http://kpolyakov.spb.ru

11. Зачем нужны переменные?

Программирование (C++), 8 класс
11
Зачем нужны переменные?
int main()
{
Где запомнить?
// ввести два числа
// вычислить их сумму
// вывести сумму на экран
}
Переменная — это величина, которая имеет имя, тип и
значение. Значение переменной может изменяться во
время выполнения программы.
int a, b, c;
объявление переменных
ячейки памяти
К.Ю. Поляков, Е.А. Ерёмин, 2019
http://kpolyakov.spb.ru

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

Программирование (C++), 8 класс
12
Имена переменных
Идентификатор — это имя программы или переменной.
int a, b, c;
МОЖНО использовать
• латинские буквы (A-Z, a-z)
• цифры
!
заглавные и строчные
буквы различаются
Имя не может начинаться с цифры!
• знак подчеркивания _
НЕЛЬЗЯ использовать скобки, знаки ", &, |, *, +, =, !, ? и др.
Какие имена правильные?
AXby R&B 4Wheel Вася “PesBarbos”
TU154 [QuQu] _ABBA A+B
К.Ю. Поляков, Е.А. Ерёмин, 2019
http://kpolyakov.spb.ru

13. Типы переменных

Программирование (C++), 8 класс
13
Типы переменных
• int – целые
int a = 1, b, c = 0;
начальные
значения
• float – вещественные (могут иметь дробную
часть)
float x = 1.234, y = 3.0, z = 0.576;
!
Целая и дробная части отделяются точкой!
• double – вещественное с двойной точностью
• char – один символ (в апострофах)
char c = 'ю';
• string – символьная строка (в кавычках)
string s = "молоко", q = "я";
К.Ю. Поляков, Е.А. Ерёмин, 2019
http://kpolyakov.spb.ru

14. Работа с переменными

Программирование (C++), 8 класс
14
Работа с переменными
Присваивание (запись значения)
a = 5;
оператор
присваивания
a = 5;
a = 18;
a ←5
В переменной a будет храниться последнее
значение 18
Вывод на экран
cout << a;
?
В чём разница?
с = 14;
cout << с;
с = 14;
cout << "с";
14
c
К.Ю. Поляков, Е.А. Ерёмин, 2019
http://kpolyakov.spb.ru

15. Работа с переменными

Программирование (C++), 8 класс
15
Работа с переменными
Изменение значения
i = i + 1;
a
b
a
b
a
b
a
b
=
=
=
=
=
=
=
=
4;
7;
a +
b +
a +
b +
a +
b +
увеличить на 1
a
4
i ← i + 1
b
7
1;
1;
b;
a;
2;
a;
К.Ю. Поляков, Е.А. Ерёмин, 2019
5
8
13
21
15
36
http://kpolyakov.spb.ru

16. Ввод с клавиатуры

Программирование (C++), 8 класс
16
Ввод с клавиатуры
Цель – изменить исходные данные, не меняя программу.
cin >> a;
!
5
1. Программа ждет, пока пользователь введет
значение и нажмет Enter.
2. Введенное значение записывается в
переменную a.
К.Ю. Поляков, Е.А. Ерёмин, 2019
http://kpolyakov.spb.ru

17. Ввод с клавиатуры

Программирование (C++), 8 класс
17
Ввод с клавиатуры
cin >> a >> b;
через пробел:
25 30
через Enter:
25
30
К.Ю. Поляков, Е.А. Ерёмин, 2019
a 25
b 30
a 25
b 30
http://kpolyakov.spb.ru

18. Программа сложения чисел

Программирование (C++), 8 класс
18
Программа сложения чисел
?
int main()
Что плохо?
{
int a, b, c;
cin >> a >> b; // ввести два числа
c = a + b; // вычислить их сумму
cout << c; // вывести сумму на экран
}
ожидание:
Введите два числа: 5 7
5+7=12
реальность:
5 7
12
К.Ю. Поляков, Е.А. Ерёмин, 2019
?
Как улучшить диалог?
http://kpolyakov.spb.ru

19. cout <<данных с текстом

Программирование (C++), 8 класс
19
cout <<данных с текстом
значение a
значение b
значение с
5+7=12
текст
cout
cout
cout
cout
cout
<<
<<
<<
<<
<<
a;
"+";
b;
"=";
c;
К.Ю. Поляков, Е.А. Ерёмин, 2019
cout << a << "+"
<< b << "=" << c;
http://kpolyakov.spb.ru

20. Программа сложения чисел

Программирование (C++), 8 класс
20
Программа сложения чисел
int main()
{
int a, b, c;
cout << "Введите два числа: ";
cin >> a >> b;
c = a + b;
cout << a << "+" << b << "=" << c;
}
?
Как переделать для 3-х чисел?
К.Ю. Поляков, Е.А. Ерёмин, 2019
http://kpolyakov.spb.ru

21. Арифметические выражения

Программирование (C++), 8 класс
21
Арифметические выражения
c b 1
a
d
2
Линейная запись (в одну строку):
a = (c+b-1)/2*d;
Операции: + –
* – умножение
/ – деление
Порядок выполнения операций:
1) действия в скобках
2) умножение и деление, слева направо
3) сложение и вычитание, слева направо
6
5
2
1
3
4
a = c + (1 – 2 * b) / 2 * d;
К.Ю. Поляков, Е.А. Ерёмин, 2019
http://kpolyakov.spb.ru

22. Сокращённая запись операций

Программирование (C++), 8 класс
22
Сокращённая запись операций
Полная запись:
a = a + b;
a = a + 1;
a = a - b;
a = a - 1;
a = a * b;
a = a / b;
К.Ю. Поляков, Е.А. Ерёмин, 2019
Сокращённая запись:
a += b;
a += 1; a++;
a -= b;
a -= 1; a--;
a *= b;
a /= b;
http://kpolyakov.spb.ru

23. Особенность деления

Программирование (C++), 8 класс
23
Особенность деления
?
int a = 7, b = 8;
float x = a / b;
!
Чему равен x?
Результат деления целого числа на целое –
это целое число (остаток отбрасывается)!
int a = 3, b = 4;
float x;
x = a / b;
x = 10 / b;
x = a / 2;
x = 10. / b;
x = a / 2.;
x = float(a) / b;
К.Ю. Поляков, Е.А. Ерёмин, 2019
//
//
//
//
//
//
0
2
1
2.5
1.5
0.75
http://kpolyakov.spb.ru

24. Частное и остаток при делении целых

Программирование (C++), 8 класс
24
Частное и остаток при делении целых
/ – деление нацело (остаток отбрасывается)
% – остаток от деления
175 сек = 2 мин 55 сек ? Как получить 2 и 55?
int
t =
m =
s =
t, m, s;
175;
t / 60; // 2
t % 60; // 55
К.Ю. Поляков, Е.А. Ерёмин, 2019
http://kpolyakov.spb.ru

25. Частное и остаток при делении целых

Программирование (C++), 8 класс
25
Частное и остаток при делении целых
?
Что получится?
n = 123
d = n / 10; // 12
k = n % 10; // 3
При делении на 10 нацело отбрасывается последняя
цифра числа.
Остаток от деления на 10 – это последняя цифра числа.
К.Ю. Поляков, Е.А. Ерёмин, 2019
http://kpolyakov.spb.ru

26. Форматирование вывода

Программирование (C++), 8 класс
26
Форматирование вывода
int a = 1, b = 2, c = 3;
cout << a << b << c;
123
cout << a << " "
<< b << " " << c;
#include <iomanip>
...
количество знаков
на вывод числа
cout << a
<< setw(3) << b
<< setw(5) << c;
?
1 2 3
1
2
3
3
5
Сколько знаков для вывода a?
К.Ю. Поляков, Е.А. Ерёмин, 2019
http://kpolyakov.spb.ru

27. Форматный вывод

Программирование (C++), 8 класс
27
Форматный вывод
float x = 12.34567891;
cout << x;
вариант:
12.3457
6 значащих цифр
по умолчанию
#include <iomanip>
манипуляторы
cout << fixed << setw(10)
<< setprecision(3) << x;
3
12.346
в дробной
части
10
всего на
число
К.Ю. Поляков, Е.А. Ерёмин, 2019
http://kpolyakov.spb.ru

28. Форматный вывод

Программирование (C++), 8 класс
28
Форматный вывод
float x = 12.34567891;
cout << fixed;
cout << setw(8) << setprecision(2)
<< x;
12.34
cout << setw(2) << setprecision(2)
<< x;
12.34
cout << setw(0) << setprecision(1)
<< x;
12.3
минимально
возможное
К.Ю. Поляков, Е.А. Ерёмин, 2019
http://kpolyakov.spb.ru

29. Научный формат чисел

Программирование (C++), 8 класс
29
Научный формат чисел
float x = 123456789;
cout << x;
1.23457e+08
1,23457 108
float x = 0.0000123456789;
cout << x;
1.23457e-005
float x
cout <<
<<
<<
<<
1,23457 10–5
= 0.0000123456789;
3
scientific
1.235e-05
setw(10)
setprecision(3)
10
x;
К.Ю. Поляков, Е.А. Ерёмин, 2019
http://kpolyakov.spb.ru

30. Операции с вещественными числами

Программирование (C++), 8 класс
30
Операции с вещественными числами
int – целая часть числа (дробная часть
отбрасывается)
round – округление к ближайшему целому
ceil – округление «вверх»
#include <cmath>
float x = 1.6;
cout << int(x);
1
cout << round(x);
2
cout << ceil(x);
2
К.Ю. Поляков, Е.А. Ерёмин, 2019
http://kpolyakov.spb.ru

31. Операции с вещественными числами

Программирование (C++), 8 класс
31
Операции с вещественными числами
1/3 = 0,33333…
!
бесконечно много знаков
Большинство вещественных чисел хранятся в
памяти компьютера с ошибкой!
float x, y, z;
x = 1./2;
y = 1./3;
z = 5./6; // 5/6=1/2+1/3
cout << x+y-z;
5.96046e-08
К.Ю. Поляков, Е.А. Ерёмин, 2019
http://kpolyakov.spb.ru

32.

Пробный вариант
1. Найти площадь трапеции. С клавиатуры вводятся три числа a,b,h (a,b –
основания, h-высота).
2. С клавиатуры вводиться трехзначное число. Вывести на экран его цифры через
запятую.
Решение:(один из возможных вариантов)
Задание 1:
#include <iostream>
using namespace std;
int main() {float a,b,h,s;
cin>>a>>b>>h;
s=0.5*(a+b)*h;
cout<<s; cin>>a;
}
Задание 2:
#include <iostream>
using namespace std;
int main() {int a,z1,z2,z3;
cin>>a;
z3=a%10; a=a/10;
z2=a%10;z1=a/10;
cout<<z1<<','<<z2<<','<<z3;
cin>>a;
}
English     Русский Правила