Similar presentations:
Лекция по типам данных
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