Начало
Целое неотрицательное число number Целое неотрицательное число digit Целое неотрицательное число quantity = 0
Ввод значений number и digit
|
|
нет |
number >= 100 || |
да |
||
|
|
|
|
|||
|
|
|
number |
< |
10 |
|
нет |
digit |
>= 10 |
да |
|
|
|
|
|
|
|
|
||
нет |
да |
|
|
|
|
|
digit == number % 10 |
|
|
|
|
|
|
|
quantity++ |
|
|
|
|
|
Вывод «некорректное
значение number» number -= number % 10
number /= 10 |
Вывод «некорректное |
|
|
|
значение digit» |
нет |
|
да |
digit == |
number % 10 |
|
|
|
quantity++ |
|
|
Вывод quantity |
Конец
Составим программу согласно полученой блок-схеме. Для реализации проверок на корректность введѐнных данных воспользуемся конструкцией
«try-throw-catch».
#include <conio.h> #include <iostream>
void main()
{
try
{
unsigned int number; unsigned int digit; unsigned int quantity = 0;
50
std::cout<<"Input number:"; std::cin>>number;
if(number < 10 || number >= 100)
{
throw 1; // Код ошибки, когда заданое число не двузначное
}
std::cout<<"\nInput digit:"; std::cin>>digit; std::cout<<"\n";
if(digit >= 10)
{
throw 2; // Код ошибки, когда задано число, а не
цифра
}
if(digit == number % 10) // если вторая цифра числа такая же, как и заданная цифра
{
quantity++; // считаем сопадение
}
number -= number % 10; number /= 10;
if(digit == number % 10) // если первая цифра числа такая же, как и заданная цифра
{
quantity++; // считаем сопадение
}
std::cout<<quantity; // выводим количество совпадений
}
catch(int errorcode)
{
switch(errorcode) // для обработки ошибок
{
case 1:
std::cout<<"incorrect value of number"; break;
51
case 2:
std::cout<<"incorrect value of digit"; break;
default:
std::cout<<"unknown error";
}
}
std::cout<<"\nPress any key to continue"; _getch();
}
Введѐнное число |
23 |
57 |
65 |
33 |
277 |
4 |
38 |
|
Введѐнная цифра |
2 |
8 |
5 |
3 |
|
|
27 |
|
Результат работы |
|
|
|
|
incorrect |
incorrect |
incorrect |
|
1 |
0 |
1 |
2 |
value of |
value of |
value of |
||
программы |
||||||||
|
|
|
|
number |
number |
digit |
Протестируем написанную программу. Для этого запустим еѐ несколько раз, вводя различные числа. Полученные результаты соответствуют действительности, можно предположить, что программа работает верно.
4.4Задания (выполняются по вариантам)
Задача 3.1.1. Ввести с клавиатуры числа х, у. Вывести «Yes» или «No» в зависимости от того, принадлежит ли точка с координатами (x, y) заштрихованной области.
Задача 3.1.2. Ввести с клавиатуры числа х, у. Вывести «Yes» или «No» в зависимости от того, принадлежит ли точка с координатами (x, y) заштрихованной области.
52
Задача 3.1.3. Ввести с клавиатуры числа х, у. Вывести «Yes» или «No» в зависимости от того, принадлежит ли точка с координатами (x, y) заштрихованной области.
Задача 3.1.4. Ввести с клавиатуры числа х, у. Вывести «Yes» или «No» в зависимости от того, принадлежит ли точка с координатами (x, y) заштрихованной области.
Задача 3.1.5. Ввести с клавиатуры числа х, у. Вывести «Yes» или «No» в зависимости от того, принадлежит ли точка с координатами (x, y) заштрихованной области.
Задача 3.1.6. Ввести с клавиатуры числа х, у. Вывести «Yes» или «No» в зависимости от того, принадлежит ли точка с координатами (x, y) заштрихованной области.
53
Задача 3.1.7. Ввести с клавиатуры числа х, у. Вывести «Yes» или «No» в зависимости от того, принадлежит ли точка с координатами (x, y) заштрихованной области
Задача 3.1.8. Ввести с клавиатуры числа х, у. Вывести «Yes» или «No» в зависимости от того, принадлежит ли точка с координатами (x, y) заштрихованной области.
Задача 3.1.9. Ввести с клавиатуры числа х, у. Вывести «Yes» или «No» в зависимости от того, принадлежит ли точка с координатами (x, y) заштрихованной области.
Задача 3.1.10. Ввести с клавиатуры числа x, y. Вычислить z = m + n, где
y, при x > 0; |
x, при y > 0; |
m = 0, при x == 0; |
n = 0, при y == 0; |
-y, при x < 0. |
- x, при y < 0. |
Результат вывести на экран
Задача 3.1.11. Ввести с клавиатуры числа x, y. Вычислить z = m - n, где
x, при x <= -8; |
y, при y < -2; |
m = x2, при -8 < x <= 8; |
n = y2, при -2 <= y < 2; |
x3, при x > 8. |
y3, при y >= 2. |
Результат вывести на экран |
|
54