§ 2. Организация вычислений

2.4. Решение задач

Решение задач

Пример 2.8. Васин таймер показывает время только в секундах. Написать для Васи программу, которая переведет время в минуты и секунды.

Этапы выполнения задания

I. Исходные данные: переменная с (время в секундах).

II. Результат: переменные m (полное количество минут) и s (остаток секунд).

III. Алгоритм решения задачи.

1. Ввод исходных данных. 
2. Для нахождения полного числа минут нужно найти целую часть от деления исходного числа секунд на 60. 
3. Оставшиеся секунды можно найти как остаток от деления исходного числа секунд на 60. 
4. Вывод результата.

IV. Описание переменных: c, m, s — int.

Пример 2.9. Задано трехзначное число. Напишите программу, которая находит среднюю цифру.

Этапы выполнения задания

I. Исходные данные: переменная а.

II.  Результат: переменная b (преобразованное число).

III. Алгоритм решения задачи.

1. Ввод исходных данных.
2. 
Среднюю цифру числа можно найти, если сначала разделить число на 10, а затем найти остаток от деления полученного числа на 10. 
3. 
Вывод результата.

IV. Описание переменных: a, b — int.

Пример 2.10. В исторической книге, которую читала Таня, длина отреза ткани измерялась в локтях. Написать программу, которая переведет локти в метры и сантиметры.

Этапы выполнения задания

I. Исходные данные: переменная l (локти).

II. Результат: переменные m (метры) и s (сантиметры).

III. Алгоритм решения задачи.

1. Ввод исходных данных.
2. 
Сначала переведем локти в сантиметры. Для этого количество локтей нужно умножить на 45 и сохранить значение в переменной x.
3. 
Для определения числа метров найдем целую часть от деления x на 100.
4. Оставшиеся сантиметры можно найти как остаток от деления x на 100.
5. 
Вывод результата.

IV. Описание переменных: l, x, m, s int.

Пример 2.11. Написать программу, которая определит полное количество часов и минут, прошедших от начала суток до того момента (в первой половине суток), когда часовая стрелка повернулась на f градусов (0  f < 360, f — целое число).

Этапы выполнения задания

I. Исходные данные: переменная f (количество градусов).

II. Результат: переменные с (часы) и m (минуты).

III. Алгоритм решения задачи.

1. Ввод исходных данных. 
2. Часовая стрелка обходит циферблат за 12 часов, следовательно, за один час она поворачивается на 360 / 12 = 30°. Поворот часовой стрелки осуществляется каждую минуту. Угол поворота 30 / 60 = 1 / 2°. 
3. Количество часов можно найти, если нацело разделить f на 30.
4. Остаток от деления f на 30 соответствует минутам. Для того чтобы их найти, нужно остаток умножить на 2. 
5. Вывод результата.

Описание переменных: f, c, m int.

Пример 2.12. Дано целое число а. Написать программу, которая получит а3 и а10 за четыре операции умножения (другие операции использовать нельзя).

Этапы выполнения задания

I. Исходные данные: переменная a.

II. Результат: переменные a3 (a3) и a10 (a10).

III. Алгоритм решения задачи.

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

а) a2 = a ∙ a (1-е умножение);

б) a3 = a2 ∙ a (2-е умножение);

в) a5 = a2 ∙ a3 (3-е умножение);

г) a10 = a5 ∙ a5 (4-е умножение).

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

IV. Описание переменных: a, a2, a3, a5, a10 long long.

Пример 2.8.

 V. Программа:

#include <iostream>

using namespace std;

int main()

{

  int c;

  cout << "Kol-vo sek" << endl;

  cin >> c;

  int m = c / 60;

  int s = c % 60;

  cout << m << ":" << s << endl;

  return 0;

}

VI. Тестирование программы.

Запустите программу и введите значениe  c = 137.

Результат должен быть следующим:

Пример 2.9.

 V. Программа:

#include <iostream>

using namespace std;

int main()

{

  int a;

  cout << "Chislo a = ";

  cin >> a;

  int b = a / 10 % 10;

  cout << "b=" << b << endl;

  return 0;

}

VI. Тестирование программы.

Запустите программу и введите значение a = 452.

VII. Результат: переменная b (средняя цифра числа).

Некоторые старорусские единицы длины:

1 локоть = 45 см, 1 аршин = 16 вершков, 1 вершок = 4 ногтя, 1 ноготь ≈ 11 мм.

Пример 2.10.

V. Программа:

#include <iostream>

using namespace std;

int main()

{

  setlocale(0"");

  int l;

  cout << "Введи l = ";

  cin >> l;

  int x = l * 45;

  int m = x / 100;

  int s = x % 100;

  cout << l << " локтей = ";

  cout << m << " м ";

  cout << s << см" << endl;

  return 0;

}

VI. Тестирование программы:

Запустите программу и введите значение l = 7.

Результат должен быть следующим:

Пример 2.11.

V. Программа:

#include <iostream>

 

using namespace std;

 

int main()

{

  int f;

  cout << "ugol f = ";

  cin >> f;

  int c = f / 30;

  int m = f % 30 *2;

  cout << c << ":" << m << endl;

  return 0;

}

VI. Тестирование программы.

Запустите программу и введите значение f = 85.

Результат должен быть следующим:

Пример 2.12.

V. Программа:

#include <iostream>

using namespace std;

int main()

{

  long long a;

  cout << "a = ";

  cin >> a;

  long long a2 = a * a;

  long long a3 = a2 * a;

  long long a5 = a3 * a2;

  long long a10 = a5 * a5;

  cout << "a^3 = " << a3 << endl;

  cout << "a^10 = " << a10 << endl;

  return 0;

}

VI. Тестирование программы.

Запустите программу и введите значения l = 3.

Результат должен быть следующим: