Вычитание: из большего меньшее и обмен переменных

В прошлый раз мы учили компьютер складывать числа, сегодня научим его вычитать. Ты наверняка можешь ответить на вопросы: Что такое уменьшаемое? Что такое вычитаемое? Что такое разность? Ты легко можешь внести изменение в предыдущую схему алгоритма:

Кстати, ты не забыл, что такое алгоритм? И где можно найти ответы?
Готов ли ты программировать? Если «Да!», то давай сначала проверим твой устный счёт 😉

Первый уровень готовности

Отметка :

Второй уровень готовности

Отметка :

Получилось набрать две пятёрки? Да? Тогда давай немного усложним нашу задачу. Мы будем вводить в компьютер два натуральных числа, а он будет определять, какое из чисел большее, чтобы из него вычесть меньшее.
Подобное можно было сделать и в прошлый раз, тогда наша программа была бы короче, но как быть с вычитанием натуральных чисел, ведь если из меньшего натурального числа вычесть большее, то получим результат, которого в первом классе мы не ожидали?

На помощь приходит алгоритмическая конструкция "если... то..." Если значение переменной "уменьшаемое" меньше значения переменной "вычитаемое", то эти значения мы поменяем местами. Как? Вот один из способов!
Представь, что переменная - это ящик с именем, а её значение - вещь, которая в этом ящике хранится. Чтобы существовать, вещь обязательно должна быть в ящике, она не может повиснуть в воздухе. В таком случае, чтобы поменять вещи в ящиках, нам понадобиться дополнительный временный ящик. Во временный ящик мы положим точную копию вещи из ящика "вычитаемое", тогда когда мы освободим этот ящик, сама вещь (или её точная копия) будет сохранена. В освободившийся ящик мы положим точную копию вещи из ящика "уменьшаемое", и тогда его тоже можно будет освободить, а на вновь образовавшееся свободное место положить точную копию той вещи, которая хранится во временном ящике. Так мы можем поменять значения переменных местами.

Однако числа - это не обычные вещи. Значение переменных можно поменять и без использования дополнительной переменной. Может быть, в этом тебе поможет математика и два простых арифметических действия: сложение и вычитание? Подумай! А мы пока пойдём дальше 😉

Алгоритм вычитания

Алгоритм - это набор команд, выполняя которые от начала и до конца, исполнитель достигнет ожидаемого результата. Схема нашего алгоритма довольна проста:

Переведём эту схему на язык, понятный нашему Исполнителю.

Кодирование

Запусти Кумир!

kumir2-classic

Напиши программу:

kumir-difference

Проверь её работоспособность ("Выполнить" - клавиша F9), при необходимости исправь ошибки!

Алгоритм и языки программирования

Получилось написать программу в Кумире? Тот же самый алгоритм можно записать на разных языках программирования. Вот пример работы этого алгоритма, записанного на языке на языке JavaScript:

Введи два числа:

:

Некоторые старшеклассники мечтают освоить язык C++:


#include <iostream>
using namespace std;
int main ()
{
int minuend, subtrahend, temp;
cout << "Введи два натуральных числа: ";
cin >> minuend >> subtrahend;
if (minuend < subtrahend) {
temp = minuend;
minuend = subtrahend;
subtrahend = temp;
};
cout << "Разность равна: " << minuend - subtrahend;
return 0;
}

Как видишь, хоть слова и английские, но строки на C++ легко соотносятся со строками на алгоритмическом языке Кумира. А если тот же самый алгоритм собрать, как пазл, из блоков Скретч?

scratch-difference
Вот так, например, выглядит собранный на Скретч тренажёр вычитания двузначных чисел:

А ты мог бы научить кота вычитанию?

Вперёд!

Поделиться: