ДЗ от 13.12.23
Программирование на языке C++
Простейшая программа
Вывод на экран
Подключение библиотечных функций
Если не подключить пространство имён…
Вывод в поток
Задания
Сложение чисел
Сумма: псевдокод
Переменные
Имена переменных
Объявление переменных
Тип переменной
Как записать значение в переменную?
Ввод значения с клавиатуры
Ввод значений двух переменных
Изменение значений переменной
Вывод данных
Сложение чисел: простое решение
Сложение чисел: полное решение
Снова про оператор вывода
Программирование на языке C++
Типы данных
Арифметическое выражения
Деление
Остаток от деления
Сокращенная запись операций
Вещественные числа
Вещественные числа
Вещественные числа
1.04M
Category: programmingprogramming

Лекция по типам данных

1. ДЗ от 13.12.23

1) Даны два действительных положительных числа.
Найти среднеарифметическое и среднее геометрическое этих чисел
2) Пользователь вводит с клавиатуры расстояние, расход
бензина на 100 км и стоимость трех видов бензина. Вывести
на экран сравнительную таблицу со стоимостью поездки на
разных видах бензина.
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru
1

2. Программирование на языке C++

2
Программирование
на языке C++
§ 55. Простейшие программы
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru

3. Простейшая программа

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

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

Алгоритмизация и программирование, язык C++, 10 класс
4
Вывод на экран
int main()
character output – выходной
поток [символов] на консоль
{
cout << "2+";
"\n" – новая строка
cout << "2=?\n";
cout << "Ответ: 4";
}
Протокол:
2+2=?
Ответ: 4
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru

5. Подключение библиотечных функций

Алгоритмизация и программирование, язык C++, 10 класс
5
Подключение библиотечных функций
#include <iostream>
стандартные потоки
ввода и вывода
using namespace std;
int main()
стандартное
{
пространство имен
cout << "2+";
cout << "2=?\n";
cout << "Ответ: 4";
}
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru

6. Если не подключить пространство имён…

Алгоритмизация и программирование, язык C++, 10 класс
6
Если не подключить пространство имён…
#include <iostream>
int main()
пространство имен std
{
std::cout << "2+";
std::cout << "2=?\n";
std::cout << "Ответ: 4";
}
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru

7. Вывод в поток

Алгоритмизация и программирование, язык C++, 10 класс
7
Вывод в поток
cout << "2+" << "2=?" << "\n"
<< "Ответ: 4";
cout << "2+" << "2=?" << endl
<< "Ответ: 4";
end of line – конец
строки
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru

8. Задания

Алгоритмизация и программирование, язык C++, 10 класс
8
Задания
«B»: Вывести на экран текст «лесенкой»
Вася
пошел
гулять
«C»: Вывести на экран рисунок из букв
Ж
ЖЖЖ
ЖЖЖЖЖ
ЖЖЖЖЖЖЖ
HH HH
ZZZZZ
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru

9. Сложение чисел

Алгоритмизация и программирование, язык C++, 10 класс
9
Сложение чисел
Задача. Ввести с клавиатуры два числа и найти их сумму.
Протокол:
Введите два целых числа
25 30
пользователь
25+30=55
компьютер
компьютер считает сам!
? 1. Как ввести числа в память?
2. Где хранить введенные числа?
3. Как вычислить?
4. Как вывести результат?
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru

10. Сумма: псевдокод

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

11. Переменные

Алгоритмизация и программирование, язык C++, 10 класс
11
Переменные
Переменная – это величина, имеющая имя, тип
и значение. Значение переменной можно
изменять во время работы программы.
Значение
Другой тип
данных
Имя
К.Ю. Поляков, Е.А. Ерёмин, 2013
? Поместится?
! В переменной хранятся данные
определенного типа!
http://kpolyakov.spb.ru

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

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

13. Объявление переменных

Алгоритмизация и программирование, язык C++, 10 класс
13
Объявление переменных
Типы переменных:
• int
// целая
• float
// вещественная
• и другие…
выделение
Объявление переменных:
тип – целые
места в памяти
список имен
переменных
int a, b, c;
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru

14. Тип переменной

Алгоритмизация и программирование, язык C++, 10 класс
14
Тип переменной
• область допустимых значений
• допустимые операции
• объём памяти
• формат хранения данных
• для предотвращения случайных ошибок
Начальные значения:
int a, b = 1, c = 55;
? Что в переменной a?
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru

15. Как записать значение в переменную?

Алгоритмизация и программирование, язык C++, 10 класс
15
Как записать значение в переменную?
оператор
присваивания
a = 5;
5
! При записи нового
значения старое
стирается!
Оператор – это команда языка
программирования (инструкция).
Оператор присваивания – это команда для
записи нового значения в переменную.
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru

16. Ввод значения с клавиатуры

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

17. Ввод значений двух переменных

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

18. Изменение значений переменной

Алгоритмизация и программирование, язык C++, 10 класс
18
Изменение значений переменной
a
int a, b;
?
5
a = 5;
b = a + 2;
a = (a + 2)*(b – 3);
b = b + 1;
К.Ю. Поляков, Е.А. Ерёмин, 2013
b
5+2
?
7
a
28
5
b
7
8
5
7*4
7+1
http://kpolyakov.spb.ru

19. Вывод данных

Алгоритмизация и программирование, язык C++, 10 класс
19
Вывод данных
//вывод значения
//переменной a
cout << a;
cout << a << endl;
//...и переход
//на новую строку
cout << "Привет!";
//вывод текста
cout << "Ответ: " << c;
//вывод текста и значения переменной c
cout << a << "+" << b << "=" << c;
2+3=5
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru

20. Сложение чисел: простое решение

Алгоритмизация и программирование, язык C++, 10 класс
20
Сложение чисел: простое решение
#include <iostream>
using namespace std;
int main()
{
int a, b, c;
cin >> a >> b;
c = a + b;
cout << c;
}
К.Ю. Поляков, Е.А. Ерёмин, 2013
? Что плохо?
http://kpolyakov.spb.ru

21. Сложение чисел: полное решение

Алгоритмизация и программирование, язык C++, 10 класс
21
Сложение чисел: полное решение
int main()
{
подсказка
int a, b, c;
cout << "Введите два целых числа\n";
cin >> a >> b;
c = a + b;
cout << a << "+" << b << "=" << c;
}
Протокол:
компьютер
Введите два целых числа
25 30
пользователь
25+30=55
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru

22. Снова про оператор вывода

Алгоритмизация и программирование, язык C++, 10 класс
22
Снова про оператор вывода
Вычисление выражений:
cout << a << "+" << b << "=" << a+b
a+b;
Форматный вывод:
#include <iomanip>
...
a = 123;
5 << a;
cout << setw(5)
манипуляторы для
управления потоками
123
5 знаков
set width – установить
ширину поля
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru

23. Программирование на языке C++

23
Программирование
на языке C++
§ 56. Вычисления
К.Ю. Поляков, Е.А. Ерёмин, 2014
http://kpolyakov.spb.ru

24. Типы данных

Алгоритмизация и программирование, язык C++, 10 класс
24
Типы данных
• int
// целое
• long int // длинное целое
• float
// вещественное
• double
// веществ. двойной точности
• bool
// логические значения
• char
// символ
• string
// строка
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru

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

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

26. Деление

Алгоритмизация и программирование, язык C++, 10 класс
26
Деление
Результат деления целого на целое – целое число
(остаток отбрасывается):
int a = 3, b = 4;
? Что запишется в x?
float x;
x = 3 / 4;
// = 0
x = 3. / 4; // = 0.75
x = 3 / 4.; // = 0.75
x = a / 4;
// = 0
x = a / 4.; // = 0.75
x = a / b;
// = 0
x = float(a) / 4; // = 0.75
x = a / float(b); // = 0.75
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru

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

Алгоритмизация и программирование, язык C++, 10 класс
27
Остаток от деления
% – остаток от деления
int a, b, d;
d = 85;
b = d / 10;
// 8
a = d % 10;
// 5
d = a % b;
// 5
d = b % a;
// 3
Для отрицательных чисел:
int a = -7;
b = a / 2; // -3
d = a % 2; // -1
К.Ю. Поляков, Е.А. Ерёмин, 2013
! В математике не так!
остаток 0
-7 = (-4)*2 + 1
http://kpolyakov.spb.ru

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

Алгоритмизация и программирование, язык C++, 10 класс
28
Сокращенная запись операций
int a, b;
...
a ++;
// a = a + 1;
a --;
// a = a – 1;
a += b; // a = a + b;
a -= b; // a = a - b;
a *= b; // a = a * b;
a /= b; // a = a / b;
a %= b; // a = a % b;
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru

29. Вещественные числа

Алгоритмизация и программирование, язык C++, 10 класс
29
Вещественные числа
! Целая и дробная части числа разделяются
точкой!
Форматы вывода:
float x = 123.456;
cout.precision(5);
cout << x << endl;
5 значащих цифр
123.46
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru

30. Вещественные числа

Алгоритмизация и программирование, язык C++, 10 класс
30
Вещественные числа
Формат с фиксированной точкой:
#include <iomanip>
...
в дробной части
float x = 123.4567890123;
cout << fixed << setprecision(3)
<< x;
фиксированный
К.Ю. Поляков, Е.А. Ерёмин, 2013
123.456
http://kpolyakov.spb.ru

31. Вещественные числа

Алгоритмизация и программирование, язык C++, 10 класс
31
Вещественные числа
Экспоненциальный (научный) формат:
float x;
x = 1./30000;
cout << x;
x = 12345678.;
cout << x;
3,33333 10–5
3.33333e-005
1.23457e+007
1,23457 107
float x = 123.456;
cout.width(10);
в дробной части
cout.precision(2);
cout << scientific << x; 1.23e+002
научный
К.Ю. Поляков, Е.А. Ерёмин, 2013
http://kpolyakov.spb.ru
English     Русский Rules