Начала С/C++: переменная, программа и ввод-вывод. С / С++. Тема 02

Содержание

Слайд 2

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Первая программа на C++

#include
using namespace std;
int main(int argc, char* argv[])
{
cout << "Hello world!" << endl;
return 0;
}

Слайд 3

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Первая программа на C++

#include
using namespace std;
int main(int argc, char* argv[])
{
cout << "Hello world!" << endl;
return 0;
}

В текст программы вставляется файл iostream, содержащий объявления средств ввода-вывода

Слайд 4

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Первая программа на C++

#include
using namespace std;
int main(int argc, char* argv[])
{
cout << "Hello world!" << endl;
return 0;
}

Все имена стандартной библиотеки делаются видимыми

Слайд 5

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Первая программа на C++

#include
using namespace std;
int main(int argc, char* argv[])
{
cout << "Hello world!" << endl;
return 0;
}

Функция main:
принимает входные параметры (могут быть опущены)
возвращает код завершения

Слайд 6

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Первая программа на C++

#include
using namespace std;
int main(int argc, char* argv[])
{
cout << "Hello world!" << endl;
return 0;
}

Выполняется вывод на экран

Демонстрация

Слайд 7

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Еще один пример

#include
using namespace std;
int main()
{
int a, b, c;
cout << "a, b = ";
cin >> a >> b;
c = a + b;
cout << "c = " << c;
return 0;
}

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

Слайд 8

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Еще один пример

#include
using namespace std;
int main(int argc, char* argv[])
{
int a, b, c;
cout << "a, b = ";
cin >> a >> b;
c = a + b;
cout << "c = " << c;
return 0;
}

Вывод приглашения
Ввод исходных данных
Выполнение расчетов
Вывод результатов

Слайд 9

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Еще один пример

// Подключение библиотек
#include
using namespace std;
int main(int argc, char* argv[])
{
int a, b, c;
// Ввод исходных данных
cout << "a, b = ";
cin >> a >> b;
// Вычисления
c = a + b;
// Вывод ответа
cout << "c = " << c;
/* Программа закончена, можно возвращать
управление операционной системе.*/ return 0;
}

Программа может включать комментарии

Демонстрация

Слайд 10

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Следующие темы

Алфавит С++
Переменная и тип переменной
Ввод-вывод в С++
Ввод-вывод в С

Слайд 11

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А. Алфавит C++

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Алфавит C++

Слайд 12

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Алфавит C++

Основные символы (для идентификаторов)
латиницы (прописные и строчные): A, B, C,… , a, b, c,…
арабские цифры: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
подчерк: _
Остальные символы (включая кириллицу) — для использования в литералах
"Вороне где-то Бог послал …"
Unicode можно использовать в идентификаторах, но переносимость…

Слайд 13

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Алфавит C++

Символы-разделители (пробельные символы)
пробел,
табуляция,
перевод строки, возврат каретки
и т. д.
Специальные символы
Управляющие символы

Слайд 14

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А. Специальные символы

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Специальные символы

Слайд 15

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А. Управляющие символы

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Управляющие символы

Слайд 16

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А. Переменная и тип переменной

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Переменная и тип переменной

Слайд 17

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Переменная

Переменная это именованная величина, значение которой может меняться
Имя (идентификатор) переменной
используется для ссылки на переменную: a + b
может содержать символы из числа
строчные и прописные символы латиницы
цифры
символ «подчерк» — «_»
начинается не с цифры
строчные и прописные символы различаются:
MyName ≠ myname

Слайд 18

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Переменная

Переменная имеет адрес и значение:
Значение переменной может меняться
при выполнении операции присваивания:
c = a + b;
при выполнении операций ввода:
cin >> gamma;
Все переменные должны быть объявлены до их использования

-278

173)

alpha->

Слайд 19

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Переменная

При объявлении переменной указывается ее тип
Тип переменной определяет
множество значений, которые может принимать переменная
множество операций, которые можно выполнять с переменной

Слайд 20

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Тип переменной. Типы int и double

Тип int — целое
диапазон значений: [-2 147 483 648; +2 147 483 647]
Тип double — действительное
диапазон значений: [-1,7976931348623158 · 10+308; +1,7976931348623158 · 10+308]
точность: 2,2250738585072014 · 10-308
множество значений double конечно!
Конкретные значения зависят от компилятора!

Слайд 21

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А. Операции над int и double

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Операции над int и double

Слайд 22

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Операции ++ и --

Применимы только для целочисленных переменных
Применяются в виде:
n++; ++n; n--; --n;
Имеют смысл:
int n, m;
n = 5; m = n++; // m = 5, n = 6
n = 5; m = ++n; // m = 6, n = 6
n = 5; m = n--; // m = 5, n = 4
n = 5; m = --n; // m = 4, n = 4
n = -n++-m+--m; // Никогда так не пишите

Слайд 23

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Операции вида ¤=

Применимы и для переменных типа int, и для переменных типа double
Имеют смысл:
a ¤= b
тоже самое, что и:
a = a ¤ b
примеры:
a += b // a = a + b
a -= b // a = a - b
a *= b // a = a * b
. . . . . . . . . . .

Слайд 24

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


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

Переменные объявляются с помощью предложения:
<тип переменной> <список идентификаторов>;
Примеры:
int a, gamma;
double betta;
При объявлении переменные могут быть инициированы начальными значениями:
int ht = 3, adt, gem = -6;
double alfa = 3.98;
Запись действительных констант:
-3.5 6. 0.23 -.45
6.8e-4 -8.23E-2 .1e5

Слайд 25

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Оператор присваивания

Заносит в переменную указанное значение
Примеры:
int a, int b;
a = 1;
a = b + 1;
a = a + 1;
Оператор присваивания
a = b + c;
не «a равно b плюс c» (a == b + c)
а «переменной a присвоить значение, полученное в результате сложения значений переменных b и c»!

Подробнее

Слайд 26

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Выражения

Пример:
Alfa = d + (s – gt) / y;
Правила вычисления
слева направо
с учетом старшинства операций
* / %
+ -
изменение приоритета — с помощью скобок

Слайд 27

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Подробнее об a = b + c

Если это разжевать, то:
переменная – это такой ящичек с именем
имя ящичка – это имя (идентификатор) переменной:
имя ящичка менять нельзя;
два ящичка не могут иметь одинаковое имя (почему?)
один ящичек может иметь несколько имен, но это для вас пока сложно
то, что в ящичке – значение переменной; менять можно, но:
сколько не бери все равно остается
если положить новое, то старое пропадает
оператор присваивания: "в ящичек с именем а положить то, что получим сложив то, что в ящичке бэ с тем, что в ящичке це"
еще подробнее - читайте: А. Богатырев.Руководство полного идиота по программированию (на языке Си). http://www.helloworld.ru/texts/comp/lang/c/c6/

Слайд 28

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А. Ввод/вывод в C++

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Ввод/вывод в C++

Слайд 29

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Стандартная библиотека ввода/вывода (в/в)

Доступ к библиотеке обеспечивается включением файла iostream (до main):
#include
using namespace std; // Это — заклинание
Вывод на экран:
cout << 10;
cout << "Hello!";
cout << a;
cout << 2 * 3.14 * r;
Можно указывать несколько элементов для вывода:
cout << "a = " << a << ", ей Богу!";

Слайд 30

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Несколько элементов для вывода:
cout << "a = " << a << ", ей Богу!";
«копят» вывод в одну строку. Например, при a=1 на экране появится:
a = 1, ей Богу!_
Переход на новую строку:
cout << endl; // Предпочтительнее
cout << "\n";
Можно задать точность:
#include
...
cout << setprecision(2);
cout << 3.1415926535;

Стандартная библиотека в/в

Демонстрация

(курсор)

Слайд 31

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Ввод с клавиатуры
ввод одного значения:
cin >> a;
ввод сразу нескольких значений:
cin >> a >> b >> c;
Ввод «с подсказкой»:
double r;
cout << "Введите радиус:";
cin >> r;

Стандартная библиотека в/в

Слайд 32

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Пример

#include
using namespace std;
int main()
{
double a, b, c;
cout << "a, b = ";
cin >> a >> b;
c = a + b;
cout << "a + b = " << c << endl;
cout << "a - b = " << a - b << endl;
return 0;
}

Слайд 33

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А. Ввод/вывод в C

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Ввод/вывод в C

Слайд 34

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Библиотека stdio.h

Подключение библиотеки stdio.h:
#include // До функции main
Ввод:
scanf("формат", <список ввода>);
формат — перечень спецификаторов
список ввода — адреса переменных через запятую
Вывод:
printf("формат", <список вывода>);
формат — текст, содержащий спецификаторы
список ввода — выражения для вывода через запятую
Спецификаторы:
%i, %d – ввод-вывод int
%ni – ввод-вывод int с точностью n разрядов
%lf – ввод-вывод double в виде: n.mmmmmmmmmmme[+-]pp
%n.mlf – ввод-вывод double в виде: nnn.mmme[+-]pp

Слайд 35

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Ввод/вывод. Пример 1

Результат:
если:
2 - введено
3 - введено
то:
56 - выведено

#include
int main()
{
int a, b, c;
scanf("%i", &a);
scanf("%i", &b);
c = a + b;
printf("%i", c);
printf("%i", a * b);
return 0;
}

Слайд 36

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Ввод/вывод. Пример 2

Результат:
a = 2
b = 3
a + b = 5a * b = 6

#include
int main()
{
int a, b, c;
printf("a = ");
scanf("%i", &a);
printf("b = ");
scanf("%i", &b);
c = a + b;
printf("a + b = %i", c);
printf("a * b = %i", a*b);
return 0;
}

Слайд 37

Ввод/вывод. Пример 3 Результат: a = 3 b = 6 a

Ввод/вывод. Пример 3

Результат:
a = 3
b = 6
a + b = 9


a * b = 18

#include
int main()
{
int a, b, c;
printf("a = ");
scanf("%i", &a);
printf("b = ");
scanf("%i", &b);
c = a + b;
printf("\na + b = %i", c);
printf("\na * b = %i",
a * b);
return 0;
}

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.

Слайд 38

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.

НРТК, 2022 г. Начала С/C++: переменная, программа и ввод-вывод Созонов А.А.


Ввод/вывод. Пример 4

Результат:
a, b = 2.3 1.78
a + b = 4.080000
a / b = 1.292135

#include
int main()
{
double a, b, c;
printf("a, b = ");
scanf("%lf%lf", &a, &b);
c = a + b;
printf("\na + b=%lf", c);
printf("\na / b=%lf",a/b);
return 0;
}