1. Выделение числа, которое является степенью двойки. Определили, что числами, которые являются степенью двойки, будут числа 1, 2, 4, 8, 16 и т.д.
2. Определение искомых чисел, отвечающих условию задачи - остаток от деления числа на 17 должен быть равен нулю, остаток от деления числа на 10 должен быть равен 9 (девяти).
В данной задаче, получается, есть три модуля, которые необходимо реализовать.
Первый - определение числа - степени двойки.
Второй - определение искомых чисел и их подсчет.
Третий - модуль, который позволяет объединить оба модуля в одно целое.
Видно, что первый и второй модули - самостоятельны и независимы друг от друга. Поэтому, первый модуль можно вынести в самостоятельный блок алгоритма, которому и дали имя st_dv.
Вс алгоритм(подпрограмма) должен имеет уникальное имя и должен быть расположен под основным алгоритмом.
При реализации задач могут применяться несколько вс алгоритмов (подпрограмм).
Правила разработки алгоритма решения задачи:
I. Алгоритм решения задачи необходимо разбить на отдельные подзадачи и каждую подзадачу необходимо решать отдельно. Для нашего примера первый модульреализован в виде вс алгоритма st_dv, в который передается число, вводимое с клавиатуры. А вс алгоритм (далее, подпрограмма), проверяет: является ли число степенью двойки.
3 кита разработки вс алгоритмов
1. Вс алгоритм (в отличие от основного) обязательно должен иметь имя.
2. Тип возвращаемого значения должен совпадать с типом переменной в основном алгоритме.
3. Во вс алгоритм данные передаются посредством переменных, следовательно, в описании вс алгоритма должно быть указано такое же количество переменных, что и в имени вызываемой функции в основном алгоритме.
int main() { setlocale(LC_ALL, "RUS"); //Для русского языка в консоли int a,b,//a,b - стороны q, //q - площадь end, //end - выход из программы num; //num - количество подходящих прямоугльников cout << "Введите площадь:" << endl; cin>>q; end=0; num=0; while (end==0) { cout <<"Введите стороны a,b прямоугольника. 0, чтобы выйти"<<endl; cin>>a>>b; if (a<=0 || b<=0) { end=1; } else { if (a*b==q) { num++; } } } cout <<"Среди введенных прямоугольников площадь "<<q<<" имели " <<num <<" штук"<<endl; return 0; }
2. Определение искомых чисел, отвечающих условию задачи - остаток от деления числа на 17 должен быть равен нулю, остаток от деления числа на 10 должен быть равен 9 (девяти).
В данной задаче, получается, есть три модуля, которые необходимо реализовать.
Первый - определение числа - степени двойки.
Второй - определение искомых чисел и их подсчет.
Третий - модуль, который позволяет объединить оба модуля в одно целое.
Видно, что первый и второй модули - самостоятельны и независимы друг от друга. Поэтому, первый модуль можно вынести в самостоятельный блок алгоритма, которому и дали имя st_dv.
Вс алгоритм(подпрограмма) должен имеет уникальное имя и должен быть расположен под основным алгоритмом.
При реализации задач могут применяться несколько вс алгоритмов (подпрограмм).
Правила разработки алгоритма решения задачи:
I. Алгоритм решения задачи необходимо разбить на отдельные подзадачи и каждую подзадачу необходимо решать отдельно. Для нашего примера первый модульреализован в виде вс алгоритма st_dv, в который передается число, вводимое с клавиатуры. А вс алгоритм (далее, подпрограмма), проверяет: является ли число степенью двойки.
3 кита разработки вс алгоритмов
1. Вс алгоритм (в отличие от основного) обязательно должен иметь имя.
2. Тип возвращаемого значения должен совпадать с типом переменной в основном алгоритме.
3. Во вс алгоритм данные передаются посредством переменных, следовательно, в описании вс алгоритма должно быть указано такое же количество переменных, что и в имени вызываемой функции в основном алгоритме.
using namespace std;
int main()
{
setlocale(LC_ALL, "RUS"); //Для русского языка в консоли
int a,b,//a,b - стороны
q, //q - площадь
end, //end - выход из программы
num; //num - количество подходящих прямоугльников
cout << "Введите площадь:" << endl;
cin>>q;
end=0;
num=0;
while (end==0)
{
cout <<"Введите стороны a,b прямоугольника. 0, чтобы выйти"<<endl;
cin>>a>>b;
if (a<=0 || b<=0)
{
end=1;
}
else
{
if (a*b==q)
{
num++;
}
}
}
cout <<"Среди введенных прямоугольников площадь "<<q<<" имели " <<num <<" штук"<<endl;
return 0;
}