1 of 35

2 of 35

Типы алгоритмов

3 of 35

Цель обучения:

  • классифицировать типы данных в программировании
  • использовать линейные и разветвляющиеся алгоритмы при решении задач

Критерии оценивания:

  1. верно использует типы данных
  2. строит алгоритм в виде блок-схемы для разветвляющего алгоритма
  3. использует условный оператор в программировании для решения задач

4 of 35

Давайте вспомним, что обозначала каждая геометрическая фигура в алгоритме.

5 of 35

6 of 35

7 of 35

Переменная – область в памяти компьютера, которая имеет определенное имя и тип. Имя переменной называют идентификатором.

Имя переменной (идентификатор) на С++ может состоять только из латинских букв и цифр и начинаться только с буквы.

8 of 35

Объявление переменной

Объявление переменной в C++ происходит таким образом: сначала указывается тип данных для этой переменной а затем название этой переменной.

9 of 35

10 of 35

  • #include <iostream> — подключает библиотеку, которая нужна для вывода текста на экран. Без неё команды cout и endl работать не будут.
  • using namespace std; — позволяет не писать std:: перед командами cout и endl, упрощает запись программы.
  • int main() — это главная функция программы. Компьютер всегда начинает выполнение программы именно с функции main. Слово int означает, что программа после завершения вернёт целое число компьютеру.
  • { — начало тела программы. Все команды, которые находятся между фигурными скобками { и }, выполняются при запуске программы.
  • setlocale(LC_CTYPE, "Russian"); — нужна для корректного отображения русских букв на экране.
  • cout << "Анкета" << endl; — выводит на экран слово «Анкета» и переводит курсор на новую строку.�cout — команда вывода,�<< — передача данных на экран,�endl — переход на новую строку.
  • cout << "Фамилия, имя: Смагулов Азат" << endl; — выводит строку с фамилией и именем на экран.
  • cout << "Дата рождения: 2.09.2003" << endl; — выводит дату рождения. Дата записана в кавычках, поэтому это текст, а не число.
  • cout << "Класс: 8A" << endl; — выводит информацию о классе.
  • Все данные, которые выводятся в кавычках " ", являются строками (текстовыми данными).
  • return 0; — завершает работу программы и сообщает компьютеру, что программа закончилась успешно, без ошибок.
  • } — конец программы. После этой скобки выполнение программы полностью завершается.

11 of 35

12 of 35

#include <iostream>

using namespace std;

int main()

{

double a, b;

cout << "Input a: ";

cin >> a;

cout << "Input b: ";

cin >> b;

double x = b + a;

cout << "Root of equation a+x=b is " << x << endl;

system("pause");

return 0;

}

Давайте вспомним структуру кода для линейного алгоритма из программы 7-класса

13 of 35

  • #include <iostream>�Подключает библиотеку, которая позволяет использовать ввод данных с клавиатуры (cin) и вывод информации на экран (cout).
  • using namespace std;�Позволяет использовать команды cincout и endl без указания std::.
  • int main()�Главная функция программы, с которой начинается выполнение кода.
  • {�Начало тела программы. Все команды внутри фигурных скобок выполняются при запуске программы.
  • double a, b;�Объявление переменных a и b вещественного типа для хранения вводимых чисел.
  • cout << "Input a: ";�Выводит на экран сообщение с просьбой ввести значение переменной a.
  • cin >> a;�Считывает число, введённое пользователем, и сохраняет его в переменной a.
  • cout << "Input b: ";�Выводит на экран сообщение с просьбой ввести значение переменной b.
  • cin >> b;�Считывает число, введённое пользователем, и сохраняет его в переменной b.
  • double x = b + a;�Объявляет переменную x и выполняет вычисление суммы значений a и b.
  • cout << "Root of equation a+x=b is " << x << endl;�Выводит на экран текст и результат вычисления.
  • system("pause");�Останавливает выполнение программы, чтобы пользователь успел увидеть результат (используется в Windows).
  • return 0;�Завершает выполнение программы без ошибок.
  • }�Конец программы.
  • Как понять, что это линейный алгоритм:�Данный алгоритм является линейным, так как все команды выполняются строго последовательно, сверху вниз, без использования условий (if) и циклов. Программа всегда выполняет одну и ту же последовательность действий: ввод данных, обработка и вывод результата.

14 of 35

Задание 2.

Дополни код программы «Конвертер Фаренгейта», используя блок-схему программы. Проверь созданную программу на компьютере. Почему в этом коде переменные c и f описаны как тип float?

15 of 35

  • #include <iostream>�Подключает библиотеку, которая позволяет выполнять ввод данных с клавиатуры (cin) и вывод информации на экран (cout).
  • using namespace std;�Позволяет использовать команды cincout и endl без указания std::.
  • int main()�Главная функция программы, с которой начинается выполнение кода.
  • {�Начало тела программы. Все команды внутри фигурных скобок выполняются при запуске программы.
  • float c, f;�Объявление переменных f (температура в градусах Фаренгейта) и c (температура в градусах Цельсия). Тип float используется для хранения дробных чисел.
  • cout << "Температура в градусах Фаренгейта->" << endl;�Выводит на экран сообщение с просьбой ввести температуру в градусах Фаренгейта.
  • cin >> f;�Считывает введённое пользователем значение температуры в градусах Фаренгейта и сохраняет его в переменной f.
  • c = (f - 32) * 5 / 9;�Выполняет вычисление температуры в градусах Цельсия по общеизвестной формуле перевода из Фаренгейта в Цельсий.
  • cout << "Температура в градусах Цельсия->" << endl;�Выводит на экран сообщение о том, что будет показана температура в градусах Цельсия.
  • cout << c << endl;�Выводит вычисленное значение температуры в градусах Цельсия.
  • return 0;�Завершает выполнение программы без ошибок.
  • }. Конец программы.
  • Как понять, что это линейный алгоритм:�Данный алгоритм является линейным, так как все команды выполняются строго последовательно, сверху вниз, без использования условий (if) и циклов. Программа всегда выполняет одну и ту же последовательность действий: ввод данных, вычисление по формуле и вывод результата.

16 of 35

Существуют встроенные математические функции, которые используются в программах с вещественными типами данных. Чтобы использовать эти функции, надо подключить специальную библиотеку cmath. Для этого достаточно прописать #include <cmath> в начале программы.

17 of 35

Алгоритм ветвления

18 of 35

  • В программировании существуют алгоритмы ветвления, в которых выполнение программы зависит от условия.
  • Алгоритм ветвления используется в тех случаях, когда программе необходимо сделать выбор между несколькими вариантами действий.
  • Для реализации алгоритма ветвления в языке C++ используется условный оператор if.
  • Условный оператор if проверяет условие и определяет, какая часть кода будет выполнена.
  • Если условие истинно (выполняется), выполняется первое действие.
  • Если условие ложно (не выполняется), выполняется альтернативное действие, которое записывается после слова else.
  • Общий вид алгоритма ветвления в C++ выглядит следующим образом:if (условие) { действие 1; } else { действие 2; }
  • Условие в операторе if может содержать операции сравнения, такие как >, <, >=, <=, ==, !=.
  • В алгоритме ветвления выполняется только одна из ветвей, в зависимости от результата проверки условия.
  • Алгоритм ветвления отличается от линейного алгоритма тем, что не все команды выполняются всегда, а выбирается только один путь выполнения программы.

19 of 35

Базовая структура ветвления

Условие

Инструкция 1

Инструкция 2

Да

Нет

Условие

Инструкция

Да

Нет

Сокращенная

форма

Полная форма

Объясните в чем различие?

20 of 35

  • В алгоритмах ветвления существует полная и сокращённая форма ветвления.
  • Полная форма ветвления используется тогда, когда необходимо выполнить одно действие при выполнении условия и другое действие, если условие не выполняется.
  • В полной форме проверяется условие, и в зависимости от результата выполняется либо Инструкция 1 (если условие истинно), либо Инструкция 2 (если условие ложно).
  • В языке C++ полная форма ветвления записывается с использованием операторов if и else.
  • Сокращённая форма ветвления используется тогда, когда действие нужно выполнить только при выполнении условия, а при его невыполнении никаких действий выполнять не требуется.
  • В сокращённой форме, если условие истинно, выполняется одна инструкция, а если условие ложно — программа просто продолжает выполнение дальше.
  • В языке C++ сокращённая форма ветвления записывается с использованием только оператора if, без else.
  • Основное различие между полной и сокращённой формой ветвления заключается в том, что в полной форме предусмотрены действия для обоих случаев (да и нет), а в сокращённой форме действие выполняется только при выполнении условия.

21 of 35

22 of 35

Пример использования алгоритма ветвления

Нарисовать блок-схему и написать программный код для проверки пароля

23 of 35

  • #include <iostream>Подключает библиотеку для ввода и вывода данных.Она нужна, чтобы программа могла использовать cin и cout.
  • #include <string>�Подключает библиотеку для работы с текстом (строками).�Она нужна, потому что пароль — это текст, а не число.
  • using namespace std;�Позволяет писать cincoutstring без std:: перед ними.
  • int main()�Главная функция программы.�С этого места программа начинает выполняться.
  • string password;�Создаётся переменная password типа string.�В ней будет храниться введённый пользователем пароль.
  • cout << "Enter password: ";�Программа выводит сообщение и просит пользователя ввести пароль.
  • cin >> password;�Программа считывает введённый текст с клавиатуры�и сохраняет его в переменную password.
  • if (password == "NISschool1")�Проверяется условие:�совпадает ли введённый пароль с правильным "NISschool1".
  • Если условие истинно (пароль верный),�выполняется команда внутри фигурных скобок if:�cout << "Welcome";
  • Если условие ложно (пароль неверный),�выполняется блок else:�cout << "Try again";
  • return 0;�Завершает работу программы.

24 of 35

  • #include <iostream>
  • #include <string>

  • using namespace std;

  • int main()
  • {
  •     string password;

  •     cout << "Enter password: ";
  •     cin >> password;

  •     if (password == "NISschool1")
  •     {
  •         cout << "Welcome";
  •     }
  •     else
  •     {
  •         cout << "Try again";
  •     }

  •     return 0;
  • }

25 of 35

Задание 1�Напишите программный код для блок-схемы

Критерии оценивания

Дескрипторы

2.Использует условный оператор в программировании для решения задач с условием;

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

26 of 35

Критерии оценивания

Дескрипторы

1.Строит алгоритм в виде блок-схемы для разветвляющего алгоритма;

Верно использует блоки ветвления

2.Использует условный оператор в программировании для решения задач с условием;

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

http://cpp.sh/

Задание 2

Короткая таблица для запоминания

  • = → присвоить
  • == → сравнить
  • && → И (оба условия)
  • || → ИЛИ (хотя бы одно)

27 of 35

Задание 2. Ответ

Короткая таблица для запоминания

  • = → присвоить
  • == → сравнить
  • && → И (оба условия)
  • || → ИЛИ (хотя бы одно)

28 of 35

Задание 3 и 4

Критерии оценивания

Дескрипторы

1.Строит алгоритм в виде блок-схемы для разветвляющего алгоритма;

Верно использует блоки ветвления

2.Использует условный оператор в программировании для решения задач с условием;

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

29 of 35

Задание 3 и 4�Ответы

30 of 35

Дополнительное�задание:�Придумайте альтернативный способ вывода ответов, без использования цифр.

Критерии оценивания

Дескрипторы

1.Строит алгоритм в виде блок-схемы для разветвляющего алгоритма;

Использует альтернативные способы решения для получения ответов без использования цифр.

2.Использует условный оператор в программировании для решения задач с условием;

Придумывает идею записи ответа без цифр

31 of 35

Дополнительные задания:�Построй блок-схему и напиши код программы «Конвертер длины». Расстояние, заданное в футах, программа переводит в километры (1 км = 3280,84 фут).�

Критерии оценивания

Дескрипторы

Определяет типы переменных в программе

Верно описывает типы данных

32 of 35

Дополнительное задание 2.�Пользователь вводит радиус колеса. Создай программу, которая подсчитает, какое расстояние проходит колесо за 1 оборот, за N оборотов.

Критерии оценивания

Дескрипторы

Определяет типы переменных в программе

Верно описывает типы данных

33 of 35

Дополнительное задание

  1. Дано целое число. Если оно является положительным, то прибавить к нему 1; в противном случае не изменять его. Вывести полученное число.
  2. Даны два числа. Вывести порядковый номер меньшего из них

34 of 35

  1. Даны две переменные целого типа: A и B. Если их значения не равны, то присвоить каждой переменной большее из этих значений, а если равны, то присвоить переменным нулевые значения. Вывести новые значения переменных A и B.

2. Даны три числа. Найти наименьшее из них.

3. Даны три числа. Найти среднее из них (то есть число, расположенное между наименьшим и наибольшим).

4. Даны три числа. Вывести вначале наименьшее, а затем наибольшее из данных чисел.

5. Даны три числа. Найти сумму двух наибольших из них.

6. Даны три переменные вещественного типа: A, B, C. Если их значения упорядочены по возрастанию, то удвоить их; в противном случае заменить значение каждой переменной на противоположное. Вывести новые значения переменных A, B, C

35 of 35

Рефлексия

  • Что тебе понравилось больше всего на уроке?
  • Чему ты научился?
  • Что ты можешь делать лучше? Насколько хорошо?
  • Какой этап урока был самым полезным? Почему?