Основные операторы языка С++. Лекция 2.2

Содержание

Слайд 2

Ввод-вывод в С++

Ввод-вывод в С++

Слайд 3

Ввод в формате языка С scanf ("%i%i", &a, &b); формат ввода

Ввод в формате языка С

scanf ("%i%i", &a, &b);

формат ввода

scanf – форматный

ввод

адреса ячеек, куда записать введенные числа

Формат – символьная строка, которая показывает, какие числа вводятся (выводятся).
%i,%d – целое число
%f – вещественное число
%c – 1 символ
%s – символьная строка

12

7652

a – значение переменной a

&a – адрес переменной a

ждать ввода с клавиатуры двух целых чисел (через пробел или Enter), первое из них записать в переменную a, второе – в b

Слайд 4

Сложение двух чисел Задача. Ввести два целых числа и вывести на

Сложение двух чисел

Задача. Ввести два целых числа и вывести на экран

их сумму.
#include
main()
{
int a, b, c;
printf("Введите два целых числа\n");
scanf ("%i%i", &a, &b);
c = a + b;
printf("%d", c);
}

подсказка для ввода

ввод двух чисел с клавиатуры

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

Слайд 5

Что неправильно? int a, b; scanf ("%i", a); scanf ("%i", &a,

Что неправильно?

int a, b;
scanf ("%i", a);
scanf ("%i", &a, &b);
scanf ("%i%i", &a);
scanf

("%i %i", &a, &b);
scanf ("%f%f", &a, &b);

&a

%d%d

&a, &b

убрать пробел

%i%i

Слайд 6

Вывод чисел на экран printf ("%i", c); здесь вывести целое число

Вывод чисел на экран

printf ("%i", c);

здесь вывести целое число

это число взять

из ячейки c

printf ("Результат: %i", c);

printf ("%i+%i=%i", a, b, c );

формат вывода

список значений

a, b, c

printf ("%i+%i=%i", a, b, a+b );

арифметическое выражение

Слайд 7

Вывод целых чисел int x = 1234; printf ("%d", x); 1234

Вывод целых чисел

int x = 1234;
printf ("%d", x);

1234

printf ("%9d", x);

минимальное число

позиций

1234

всего 9 позиций

или "%i"

или "%9i"

5

4

Слайд 8

Вывод вещественных чисел float x = 123.4567; printf ("%f", x); 123.456700

Вывод вещественных чисел

float x = 123.4567;
printf ("%f", x);

123.456700

printf ("%9.3f", x);

минимальное число

позиций, 6 цифр в дробной части

123.456

всего 9 позиций, 3 цифры в дробной части

printf ("%e", x);

1.234560e+02

стандартный вид: 1,23456·102

printf ("%10.2e", x);

1.23e+02

всего 10 позиций, 2 цифры в дробной части мантиссы

Слайд 9

Полное решение #include main() { int a, b, c; printf("Введите два

Полное решение
#include
main()
{
int a, b, c;
printf("Введите два целых числа\n");

scanf("%d%d", &a, &b);
c = a + b;
printf("%d+%d=%d", a, b, c);
}

Протокол:
Введите два целых числа
25 30
25+30=55

это выводит компьютер

это вводит пользователь

Слайд 10

В ФОРМАТЕ С++ Используется библиотечный файл iostream, в котором определены стандартные

В ФОРМАТЕ С++

Используется библиотечный файл iostream, в котором определены стандартные потоки

ввода данных от клавиатуры cin и вывода данных на экран дисплея cout, а также соответствующие операции

Пример:
#include
using namespace std;
int main()
{
int n;
cout << “Введите количество элементов:\n ”;
cin >> n;
. . . . . . .
}

>> - операция чтения данных из потока

<< - операция записи данных в поток

Слайд 11

БАЗОВЫЕ КОНСТРУКЦИИ линейная, разветвляющаяся и циклическая Операторы управления работой программы называются

БАЗОВЫЕ КОНСТРУКЦИИ

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

программы:
составные операторы;
операторы выбора(управления);
операторы циклов;
операторы перехода.
Слайд 12

СОСТАВНЫЕ ОПЕРАТОРЫ К составным операторам относят собственно составные операторы и блоки.

СОСТАВНЫЕ ОПЕРАТОРЫ

К составным операторам относят собственно составные операторы и блоки. В

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

ОПЕРАТОРЫ УПРАВЛЕНИЯ

ОПЕРАТОРЫ УПРАВЛЕНИЯ

Слайд 14

УСЛОВНЫЙ ОПЕРАТОР if (условие) оператор_1; else оператор_2; логическое выражение, переменная или константа.

УСЛОВНЫЙ ОПЕРАТОР

if (условие) оператор_1; else оператор_2;

логическое выражение, переменная или константа.

Слайд 15

Слайд 16

Что неправильно? if a > b { a = b; }

Что неправильно?

if a > b {
a = b;
}

else
b = a;

if ( a > b ) {
a = b;
else
b = a;

if ( a > b )
else
b = a;

if ( a > b )
a = b;
c = 2*a;
else
b = a;

}

}

{

a = b;

Слайд 17

Сложные условия

Сложные условия

Слайд 18

Сложные условия Задача. Фирма набирает сотрудников от 25 до 40 лет

Сложные условия

Задача. Фирма набирает сотрудников от 25 до 40 лет включительно.

Ввести возраст человека и определить, подходит ли он фирме (вывести ответ «подходит» или «не подходит»).
Особенность: надо проверить, выполняются ли два условия одновременно.
Слайд 19

Вариант 1. Алгоритм начало ввод x 'подходит' конец да нет x

Вариант 1. Алгоритм

начало

ввод x

'подходит'

конец

да

нет

x >= 25?

да

нет

x <= 40?

'не подходит'

'не подходит'

Слайд 20

Вариант 1. Программа main() { int x; cout cin>>x; if (x

Вариант 1. Программа

main()
{
int x;
cout<<"Введите возраст\n";
cin>>x;
if (x >= 25)


if (x <= 40)
cout<<"Подходит";
else cout<<"Не подходит";
else
cout<<"Не подходит";
}
Слайд 21

Вариант 2. Алгоритм начало ввод x 'подходит' да нет x >= 25 и x 'не подходит'

Вариант 2. Алгоритм

начало

ввод x

'подходит'

да

нет

x >= 25 и
x <= 40?

'не подходит'

Слайд 22

Вариант 2. Программа main() { int x; cout cin>>x; if (


Вариант 2. Программа

main()
{
int x;
cout<<"Введите возраст\n";
cin>>x;
if (

x >= 25 && x <= 40 )
cout<<"Подходит";
else cout<<"Не подходит";
}

сложное условие

Слайд 23

Сложные условия Сложное условие – это условие, состоящее из нескольких простых

Сложные условия
Сложное условие – это условие, состоящее из нескольких простых условий

(отношений), связанных с помощью логических операций:
! – НЕ (not, отрицание, инверсия)
&& – И (and, логическое умножение, конъюнкция, одновременное выполнение условий)
|| – ИЛИ (or, логическое сложение, дизъюнкция, выполнение хотя бы одного из условий)
Простые условия (отношения)
< <= > >= == !=

равно

не равно

Слайд 24

Сложные условия Порядок выполнения сложных условий: выражения в скобках ! (НЕ,

Сложные условия

Порядок выполнения сложных условий:
выражения в скобках
! (НЕ, отрицание)
<, <=,

>, >=
==, !=
&& (И)
|| (ИЛИ)
Пример:
2 1 6 3 5 4
if ( !(a > b) || c != d && b == a)
{
...
}
Слайд 25

Истинно или ложно при a = 2; b = 3; c

Истинно или ложно при a = 2; b = 3; c

= 4;
!(a > b)
a < b && b < c
!(a >= b) || c == d
a < c || b < c && b < a
a > b || !(b < c)
Для каких значений x истинны условия:
x < 6 && x < 10
x < 6 && x > 10
x > 6 && x < 10
x > 6 && x > 10
x < 6 || x < 10
x < 6 || x > 10
x > 6 || x < 10
x > 6 || x > 10

Сложные условия

1

1

0

(-∞, 6)


(6, 10)

(10, ∞)

(-∞, 10)

(-∞, 6) ∪ (10,∞)

(-∞, ∞)

(6, ∞)

x < 6

x > 10

x < 10

x > 6

1

1

Слайд 26

ОПЕРАТОР ВЫБОРА Оператор switch необходим в тех случаях, когда в зависимости

ОПЕРАТОР ВЫБОРА

Оператор switch необходим в тех случаях, когда в зависимости от

значений какой-либо переменной надо выполнить те или иные операторы:
switch (выражение)
{
case значение_1: Операторы_1; break;
case значение_2: Операторы_2; break;
case значение_3: Операторы_3; break;
...
case значение_n: Операторы_n; break;
default: Операторы; break;
}
Если оператор break не указан, то будут выполняться следующие операторы из списка, не смотря на то, что значение, которым они помечены, не совпадает со значением выражения.
Слайд 27

Программа main() { int M, D; printf("Введите номер месяца:\n"); scanf("%d", &M);

Программа

main()
{
int M, D;
printf("Введите номер месяца:\n");
scanf("%d", &M);
switch (

M ) {
case 2: D = 28;
case 4: case 6: case 9: case 11: D = 30;
case 1: case 3: case 5: case 7:
case 8: case 10: case 12:
D = 31;
default: D = -1;
}
if (D > 0)
printf("В этом месяце %d дней.", D);
else printf("Неверный номер месяца");
}

ни один вариант не подошел

break;

break;

break;

выйти из
switch

Слайд 28

Задача: Ввести букву и вывести название животного на эту букву. Особенность:

Задача: Ввести букву и вывести название животного на эту букву.

Особенность:

выбор по символьной величине.

main()
{
char c;
cout<<"Введите первую букву названия животного:\n";
cin>>c;
switch ( c ) {
case 'а': cout<<"Антилопа"; break;
case 'б': cout<<"Бизон"; break;
case 'в': cout<<"Волк"; break;
default: cout<<"Я не знаю!";
}
}

Слайд 29

Оператор выбора Особенности: после switch может быть имя переменной или арифметическое

Оператор выбора

Особенности:
после switch может быть имя переменной или арифметическое выражение целого

типа (int)
или символьного типа (char)
нельзя ставить два одинаковых значения:

switch ( i+3 ) {
case 1: a = b; break;
case 2: a = c;
}

switch ( x ) {
case 1: a = b; break;
case 1: a = c;
}

Слайд 30

ОПЕРАТОРЫ ЦИКЛА

ОПЕРАТОРЫ ЦИКЛА

Слайд 31

ОПЕРАТОР ЦИКЛА С ПРЕДУСЛОВИЕМ while (выражение) оператор; или while (условие) {

ОПЕРАТОР ЦИКЛА С ПРЕДУСЛОВИЕМ

while (выражение) оператор;
или
while (условие)
{
оператор 1;
оператор 2;
...
оператор n;
}

Слайд 32

ОПЕРАТОР ЦИКЛА С ПОСТУСЛОВИЕМ do оператор while (выражение); или do {

ОПЕРАТОР ЦИКЛА С ПОСТУСЛОВИЕМ

do оператор while (выражение);
или
do
{
оператор_1;
оператор_2;
...
оператор_n;
} while (выражение);

Слайд 33

ОПЕРАТОР ЦИКЛА С ПАРАМЕТРОМ for (нач_присваивание; выражение; приращение) { оператор1; оператор2; ... }

ОПЕРАТОР ЦИКЛА С ПАРАМЕТРОМ

for (нач_присваивание; выражение; приращение)
{
оператор1;
оператор2;
...
}

Слайд 34

ИСПОЛЬЗОВАНИЕ ЦИКЛА С ПАРАМЕТРОМ 1) Уменьшение параметра: for ( n=10; n>0;

ИСПОЛЬЗОВАНИЕ ЦИКЛА С ПАРАМЕТРОМ

1) Уменьшение параметра:
for ( n=10; n>0; n--)
{ тело

цикла};
2) Изменение шага корректировки:
for ( n=2; n<60; n+=13)
{ тело цикла};
3) Возможность проверять условие отличное от условия, которое налагается на число итераций:
for ( num=1;num*num<216; num++)
{ тело цикла};
Слайд 35

ИСПОЛЬЗОВАНИЕ ЦИКЛА С ПАРАМЕТРОМ 4) Коррекция может осуществляться не только с

ИСПОЛЬЗОВАНИЕ ЦИКЛА С ПАРАМЕТРОМ

4) Коррекция может осуществляться не только с помощью

сложения или вычитания:
for ( d=100.0; d<150.0;d*=1.1)
{ тело цикла};
for (x=1;y<=75;y=5*(x++)+10)
{ тело цикла};
5) Можно использовать несколько инициализирующих или корректирующих выражений:
for (x=1, y=0; x<10;x++,y+=x)
{ тело цикл};
Слайд 36

ВЫЧИСЛИТЬ ФАКТОРИАЛ ЧИСЛА N (N!=1×2×3 ×… ×N).

ВЫЧИСЛИТЬ ФАКТОРИАЛ ЧИСЛА N (N!=1×2×3 ×… ×N).

Слайд 37

ВЫВЕСТИ НА ЭКРАН ТАБЛИЦУ ЗНАЧЕНИЙ ФУНКЦИИ y = esin(x)cos(x) НА ОТРЕЗКЕ [0;pi] С ШАГОМ 0.1

ВЫВЕСТИ НА ЭКРАН ТАБЛИЦУ ЗНАЧЕНИЙ ФУНКЦИИ y = esin(x)cos(x) НА ОТРЕЗКЕ

[0;pi] С ШАГОМ 0.1
Слайд 38

ОПЕРАТОРЫ ПЕРЕХОДА

ОПЕРАТОРЫ ПЕРЕХОДА

Слайд 39

Операторы, которые принудительно изменяют порядок выполнения команд 1. goto метка; …

Операторы, которые принудительно изменяют порядок выполнения команд
1. goto метка;

метка: оператор;
2. break

осуществляет немедленный выход из циклов while, do - while и for, а также из оператора выбора switch.
3. continue прерывает выполнение данного шага цикла.
4. return завершает выполнение функции и передает управление в точку ее вызова.

обычный идентификатор

Слайд 40

Отладка программ

Отладка программ

Слайд 41

Отладка программ Отладка – поиск и исправление ошибок в программе. Англ.

Отладка программ

Отладка – поиск и исправление ошибок в программе. Англ. debugging, bug

= моль, жучок
Методы:
трассировка – вывод сигнальных сообщений
отключение части кода (в комментарии)
пошаговое выполнение – выполнить одну строчку программы и остановиться
точки останова – выполнение программы останавливается при достижении отмеченных строк (переход в пошаговый режим)
просмотр и изменение значений переменных в пошаговом режиме
Слайд 42

Трассировка printf("Введено X=%d\n", X); printf("В цикле: i=%d, X=%d\n", i, X); printf("После

Трассировка

printf("Введено X=%d\n", X);

printf("В цикле: i=%d, X=%d\n", i, X);

printf("После цикла: X=%d\n", X);

main()
{

int i, X;
printf("Введите целое число:\n");
scanf("%d", &X);
for(i=1; i<10; i++)
{
...
}
...
}
Слайд 43

Отключение части кода (комментарии) main() { int i, X; printf("Введите целое

Отключение части кода (комментарии)

main()
{
int i, X;
printf("Введите целое число:\n");
scanf("%d",

&X);
X *= X + 2;
for(i=1; i<10; i++) X *= i;
while ( X > 5 ) {
...
}
...
}

// X *= X + 2;

/* while ( X > 5 ) {
...
} */

комментарий до конца строки //

закомментированный блок /* … */

Слайд 44

Точки останова это точка останова ЛКМ или Ctrl+F5 F8 – запустить

Точки останова

это точка останова

ЛКМ или Ctrl+F5

F8 – запустить и выполнить до

следующей точки останова
F7 – выполнить одну строку
Shift+F7 – войти в процедуру (функцию)
Ctrl-F7 – выполнять дальше
Ctrl-Alt-F2 – остановить программу