Основы программирования (C++)

Содержание

Слайд 2

Программирование (C++) § 17. Введение

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

§ 17. Введение

Слайд 3

Что такое программирование? Программирование — это создание программ для компьютеров. Этим занимаются программисты. Чем занимаются программисты:

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

Программирование — это создание программ для компьютеров. Этим занимаются

программисты.

Чем занимаются программисты:

Слайд 4

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

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

Слайд 5

Простейшая программа на C++ int main() { // это основная программа

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

int main()
{
// это основная программа
/*

здесь записывают
операторы */
}

комментарии внутри /* */ не обрабатываются

название программы
main – главный

комментарии после // не обрабатываются

результат – целое число (integer)

Слайд 6

Вывод на экран #include using namespace std; int main() { cout

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

#include
using namespace std;
int main() {
cout << "Привет!";

// вывод текста
cin.get(); // ждать Enter
}

подключить библиотеку iostream

cout — поток для вывода символов
(character output stream)
cin — поток для ввода символов
(character input stream)

использовать пространство имён std

input-output streams – потоки ввода и вывода

Слайд 7

Вывод на экран Оператор — это команда языка программирования. cout оператор

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

Оператор — это команда языка программирования.

cout << "Привет!";

оператор

вывода

cout << "Привет!";
cout << "Вася!";

cout << "Привет, " << Вася!;

cout << "Привет!" << "Вася!";

или так:

"Вася!";

Слайд 8

Переход на новую строку cout cout ожидание: реальность: Привет, Вася! Привет,

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

cout << "Привет, Вася!";
cout << "Привет, Петя!";

ожидание:

реальность:

Привет, Вася!
Привет,

Петя!

Привет, Вася!Привет, Петя!

Решение:

cout << "Привет, Вася!" << endl;
cout << "Привет, Петя!" << endl;

перейти на новую строку

endl

end of line

Слайд 9

Системы программирования Системы программирования — это средства для создания новых программ.

Системы программирования

Системы программирования — это средства для создания новых программ.

Транслятор —

это программа, которая переводит тексты программ, написанных программистом, в машинные коды (команды процессора).

компилятор — переводит всю программу в машинные коды, строит исполняемый файл (.exe)
интерпретатор — сам выполняет программу по частям (по одному оператору).

#include
using namespace std;
int main() {
cout << "Привет!";
cin.get();
}

Слайд 10

Системы программирования Отладчик — это программа для поиска ошибок в других

Системы программирования

Отладчик — это программа для поиска ошибок в других программах.

пошаговый

режим — выполнение программы по шагам (по одному оператору)
просмотр значений переменных во время выполнения программы
точки останова – операторы в программе, перед выполнением которых нужно остановиться.

Среда программирования (IDE):
редактор текста программ
транслятор
отладчик

Слайд 11

Домашняя работа: «B»: Напишите программу которая выведет на экран текст «лесенкой»

Домашняя работа:

«B»: Напишите программу которая выведет на экран текст «лесенкой»
Вася

пошел
гулять
«C»: Напишите программу которая выведет на экран рисунок из букв
Ж
ЖЖЖ
ЖЖЖЖЖ
ЖЖЖЖЖЖЖ
HH HH
ZZZZZ
Слайд 12

Программирование (C++) § 18. Линейные программы

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

§ 18. Линейные программы

Слайд 13

Пример задачи Задача. Ввести два числа и вычислить их сумму. int

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

Задача. Ввести два числа и вычислить их сумму.

int main()
{

// ввести два числа
// вычислить их сумму
// вывести сумму на экран
}

Псевдокод – алгоритм на русском языке с элементами языка программирования.

Слайд 14

Зачем нужны переменные? int main() { // ввести два числа //

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

int main()
{
// ввести два числа
//

вычислить их сумму
// вывести сумму на экран
}

Переменная — это величина, которая имеет имя, тип и значение. Значение переменной может изменяться во время выполнения программы.

int a, b, c;

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

ячейки памяти

Слайд 15

Имена переменных Идентификатор — это имя программы или переменной. int a,

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

Идентификатор — это имя программы или переменной.

int a, b, c;

МОЖНО

использовать
латинские буквы (A-Z, a-z)
цифры
знак подчеркивания _

НЕЛЬЗЯ использовать скобки, знаки ", &, |, *, +, =, !, ? и др.

Какие имена правильные?
AXby R&B 4Wheel Вася “PesBarbos” TU154 [QuQu] _ABBA A+B

Слайд 16

Типы переменных int – целые int a = 1, b, c

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

int – целые

int a = 1, b, c

= 0;

float – вещественные (могут иметь дробную часть)

float x = 1.234, y = 3.0, z = 0.576;

char – один символ (в апострофах)

char c = 'ю';

string – символьная строка (в кавычках)

string s = "молоко", q = "я";

double – вещественное с двойной точностью

Слайд 17

Работа с переменными Присваивание (запись значения) a = 5; = оператор

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

Присваивание (запись значения)

a = 5;

=

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

a = 5;
a =

18;

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

cout << a;

с = 14;
cout << с;

с = 14;
cout << "с";

14

c

a ← 5

Слайд 18

Работа с переменными Изменение значения i = i + 1; увеличить

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

Изменение значения

i = i + 1;

увеличить на 1

a

= 4;
b = 7;
a = a + 1;
b = b + 1;
a = a + b;
b = b + a;
a = a + 2;
b = b + a;

4

7

5

8

13

21

15

36

i ← i + 1

Слайд 19

Ввод с клавиатуры Цель – изменить исходные данные, не меняя программу. cin >> a; 5 a

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

Цель – изменить исходные данные, не меняя программу.

cin >>

a;

5

a

Слайд 20

Ввод с клавиатуры через пробел: 25 30 через Enter: 25 30 cin >> a >> b;

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

через пробел:
25 30
через Enter:
25
30

cin >> a

>> b;
Слайд 21

Программа сложения чисел int main() { int a, b, c; cin

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

int main()
{
int a, b, c;
cin >>

a >> b; // ввести два числа
c = a + b; // вычислить их сумму
cout << c; // вывести сумму на экран
}

ожидание:

реальность:

Введите два числа: 5 7
5+7=12

5 7
12

Слайд 22

cout 5+7=12 значение a значение с значение b cout cout cout cout cout cout

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

5+7=12

значение a

значение с

значение b

cout << a;
cout << "+";
cout

<< b;
cout << "=";
cout << c;

cout << a << "+"
<< b << "=" << c;

Слайд 23

Программа сложения чисел int main() { int a, b, c; cout

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

int main()
{
int a, b, c;
cout <<

"Введите два числа: ";
cin >> a >> b;
c = a + b;
cout << a << "+" << b << "=" << c;
}
Слайд 24

Задачи «A»: Ввести три числа, найти их сумму. Пример: Введите три

Задачи

«A»: Ввести три числа, найти их сумму.
Пример:
Введите три числа:

4
5
7
4+5+7=16
«B»: Ввести три числа, найти их сумму и произведение.
Пример:
Введите три числа:
4
5
7
4+5+7=16
4*5*7=140
Слайд 25

Задачи «C»: Ввести три числа, найти их сумму, произведение и среднее

Задачи

«C»: Ввести три числа, найти их сумму, произведение и среднее арифметическое.

Пример:
Введите три числа:
4
5
7
4+5+7=16
4*5*7=140
(4+5+7)/3=5.333333
Слайд 26

Сокращённая запись операций Полная запись: a = a + b; a

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

Полная запись:

a = a + b;
a = a +

1;
a = a - b;
a = a - 1;
a = a * b;
a = a / b;

Сокращённая запись:

a += b;
a += 1;
a -= b;
a -= 1;
a *= b;
a /= b;

a++;

a--;

Слайд 27

Особенность деления int a = 7, b = 8; float x

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

int a = 7, b = 8;
float x =

a / b;

int a = 3, b = 4;
float x;
x = a / b; // 0
x = 10 / b; // 2
x = a / 2; // 1
x = 10. / b; // 2.5
x = a / 2.; // 1.5
x = float(a) / b; // 0.75

Слайд 28

Частное и остаток при делении целых / – деление нацело (остаток

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

/ – деление нацело (остаток отбрасывается)
%

– остаток от деления

int t, m, s;
t = 175;
m = t / 60; // 2
s = t % 60; // 55

175 сек = 2 мин 55 сек

Слайд 29

Частное и остаток при делении целых n = 123 d =

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

n = 123
d = n /

10; // 12
k = n % 10; // 3

При делении на 10 нацело отбрасывается последняя цифра числа.

Остаток от деления на 10 – это последняя цифра числа.

Слайд 30

Программирование (C++) § 19. Ветвления

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

§ 19. Ветвления

Слайд 31

Выбор наибольшего из двух чисел полная форма ветвления if( a >

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

полная форма ветвления

if( a > b )

M = a;
else
M = b;
Слайд 32

Вариант 1. Программа int main() { int a, b, M; cout

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


int main()
{ int a, b, M; cout

<< "Введите два целых числа:";
cin >> a >> b; if( a > b ) else cout << "Наибольшее число " << M; }

M = a;

M = b;

полная форма условного оператора

Слайд 33

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

Выбор наибольшего из двух чисел-2

неполная форма ветвления

Слайд 34

Вариант 2. Программа int main() { int a, b, M; cout

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


int main()
{
int a, b, M;
cout <<

"Введите два целых числа: "; cin >> a << b;
M = a; if( b > a ) M = b; cout << "Наибольшее число " << M; }

неполная форма условного оператора

Слайд 35

Примеры if( a M = a; if( b M = b;

Примеры

if( a < b )
M = a;
if( b <

a )
M = b;

if( a < b )
{
c = a;
a = b;
b = c;
}

Поиск минимального:

{
c = a;
a = b;
b = c;
}

составной оператор

Слайд 36

В других языках программирования Паскаль: if a c = a; a

В других языках программирования

Паскаль:

if a < b then begin
c =

a;
a = b;
b = c;
end;

if a < b:
c = a
a = b
b = c

Python:

Слайд 37

Вложенные условные операторы Задача. В переменной a записан возраст Антона, а

Вложенные условные операторы

Задача. В переменной a записан возраст Антона, а в

переменной b – возраст Бориса. Определить, кто из них старше.

if( a == b )
cout << "Одного возраста";
else
if( a == b )
cout << "Одного возраста";
else
cout << "Борис старше";

if( a > b )
cout << "Андрей старше";
else
cout << "Борис старше";

вложенный условный
оператор

else относится к ближайшему if(

Слайд 38

Задачи «A»: Ввести два целых числа, найти наибольшее и наименьшее из

Задачи

«A»: Ввести два целых числа, найти наибольшее и наименьшее из

них.
Пример:
Введите два целых числа:
1 5
Наибольшее число 5
Наименьшее число 1

«B»: Ввести четыре целых числа, найти наибольшее из них.
Пример:
Введите четыре целых числа:
1 5 4 3
Наибольшее число 5

Слайд 39

Задачи «C»: Ввести последовательно возраст Антона, Бориса и Виктора. Определить, кто

Задачи

«C»: Ввести последовательно возраст Антона, Бориса и Виктора. Определить, кто из

них старше.
Пример:
Возраст Антона: 15
Возраст Бориса: 17
Возраст Виктора: 16
Ответ: Борис старше всех.
Пример:
Возраст Антона: 17
Возраст Бориса: 17
Возраст Виктора: 16
Ответ: Антон и Борис старше Виктора.
Слайд 40

Программирование (C++) Программирование циклических алгоритмов

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

Программирование циклических алгоритмов

Слайд 41

Зачем нужен цикл? Задача. Вывести 5 раз «Привет!». cout cout cout

Зачем нужен цикл?

Задача. Вывести 5 раз «Привет!».

cout << "Привет";
cout << "Привет";
cout

<< "Привет";
cout << "Привет";
cout << "Привет";

Цикл «N раз»:

// сделай 5 раз
cout << "Привет";

Слайд 42

Как организовать цикл? // счётчик = 0 // пока счётчик cout

Как организовать цикл?

// счётчик = 0
// пока счётчик < 5


cout << "Привет";
// счётчик = счётчик + 1

ещё не делали

сделали ещё раз

int count = 0;
while( count < 5 ) {
cout << "Привет";
count++;
}

}

{

составной оператор

Слайд 43

Как организовать цикл? int count = 5; while( count > ???

Как организовать цикл?

int count = 5;
while( count > ??? ) {

cout << "Привет";
???
}

Идея: запоминать, сколько шагов осталось.

0

count--;

Слайд 44

Цикл с предусловием условие проверяется при входе в цикл как только

Цикл с предусловием

условие проверяется при входе в цикл
как только условие становится

ложным, работа цикла заканчивается
если условие ложно в самом начале, цикл не выполняется ни разу

while( условие ) {
...
}

тело цикла

while( 1 ) {
...
}

бесконечный цикл (зацикливание)

Слайд 45

Сумма цифр числа Задача. Вычислить сумму цифр введённого числа. 123 →

Сумма цифр числа

Задача. Вычислить сумму цифр введённого числа.
123 → 1

+ 2 + 3 = 6

Выделить последнюю цифру числа в переменной N:

d = N % 10;

Отбросить последнюю цифру числа в переменной N:

N = N / 10;

123 → 3

123 → 12

Добавить к переменной sum значение переменной d:

sum = sum + d;

sum = 6 → 6 + 4 = 10
d = 4

sum += d;

или

Слайд 46

Сумма цифр числа выделяем последнюю цифру числа (%) увеличиваем сумму на

Сумма цифр числа

выделяем последнюю цифру числа (%)
увеличиваем сумму на значение цифры

(sum+=d;)
отсекаем последнюю цифру числа (/)

начальные значения

Слайд 47

Сумма цифр числа начало конец нет да N != 0? sum

Сумма цифр числа

начало

конец

нет

да

N != 0?

sum = 0;

d = N % 10;
sum

+= d;
N= N / 10;

обнулить сумму

ввод N

выполнять "пока N != 0"

вывод sum

Слайд 48

Сумма цифр числа int main() { int N, d, sum; cout

Сумма цифр числа

int main() {
int N, d, sum;
cout <<

"Введите целое число";
cin >> N;
sum = 0;
cout << "Сумма цифр числа "<< N ;
<< " равна" << sum;
}

while( N != 0 ) {
d = N % 10;
sum += d;
N= N / 10;
}

N1= N;

N1

Слайд 49

Задачи «A»: Напишите программу, которая получает с клавиатуры количество повторений и

Задачи

«A»: Напишите программу, которая получает с клавиатуры количество повторений и выводит

столько же раз какое-нибудь сообщение.
Пример:
Сколько раз повторить? 3
Привет!
Привет!
Привет!
«B»: Напишите программу, которая получает с клавиатуры натуральное число и определяет, сколько раз в его десятичной записи встречается цифра 1.
Пример:
Введите число? 311
Единиц: 2
Слайд 50

Задачи «C»: Напишите программу, которая получает с клавиатуры натуральное число и

Задачи

«C»: Напишите программу, которая получает с клавиатуры натуральное число и находит

наибольшую цифру в его десятичной записи.
Пример:
Введите число: 311
Наибольшая цифра: 3
«D»: Напишите программу, которая получает с клавиатуры натуральное число и определяет, есть ли в его десятичной записи одинаковые цифры, стоящие рядом.
Пример:
Введите число: 553 Введите число: 535
Ответ: да. Ответ: нет.
Слайд 51

Цикл с постусловием условие проверяется после завершения очередного шага цикла цикл

Цикл с постусловием

условие проверяется после завершения очередного шага цикла
цикл всегда выполняется

хотя бы один раз
как только условие становится истинным, работа цикла заканчивается

do {
cout << "Введите N>0: ";
cin >> N;
}
while( N <= 0 );

Слайд 52

Задачи «A»: Напишите программу, которая предлагает ввести пароль и не переходит

Задачи

«A»: Напишите программу, которая предлагает ввести пароль и не переходит к

выполнению основной части, пока не введён правильный пароль. Основная часть – вывод на экран «секретных сведений».
«B»: Напишите программу, которая получает с клавиатуры натуральное число, которое больше 1, и определяет, простое оно или нет. Для этого нужно делить число на все натуральные числа, начиная с 2, пока не получится деление без остатка.
«C»: Напишите программу, которая получает с клавиатуры два целых числа и вычисляет их произведение, используя только операции сложения.
Слайд 53

Цикл по переменной Задача. Вывести на экран степени числа 2 от

Цикл по переменной

Задача. Вывести на экран степени числа 2 от 21

до 210.

k = 1;
N = 2;
while( k <= 10 )
{
cout << N << " ";
N = N*2;
k++;
}

Идея: собрать всё вместе.

N = 2;
for( k=1; k<=10; k++ )
{
cout << N << " ";
N = N*2;
}

k=1; k<=10; k++

Слайд 54

Цикл по переменной Задача. Найти сумму чисел от 1 до 1000.

Цикл по переменной

Задача. Найти сумму чисел от 1 до 1000.

int sum

= 0;
for( int i=1; i<=1000; i++ )
sum = sum +i;

Задача. Вывести квадраты чисел от 10 до 1 по убыванию.

for( int k=10; k>=1; k-- )
cout << k*k << endl;

k--

переменная нужна только в цикле

Слайд 55

Цикл по переменной Задача. Найти сумму чётных чисел от 2 до

Цикл по переменной

Задача. Найти сумму чётных чисел от 2 до 1000.

int

sum = 0;
for( int i=2; i<=1000; i++ )
if( i % 2 == 0 )
sum += i;

if( i % 2 == 0 )