Untitled
unknown
plain_text
4 years ago
9.6 kB
20
Indexable
#include <iostream>
#include <conio.h>
using namespace std;
void Task_1();
void Task_2();
void Task_3();
void Task_4();
void Task_5();
void Task_6();
void Task_7();
void Task_8();
void Task_9();
void Task_10();
void Task_11();
int main()
{
do
{
setlocale(LC_ALL, "ru");
cout << "Лабораторная работа по Циклическим алгоритамам" << endl
<< "Выберите номер задания " << endl;
int number;
cin >> number;
switch (number)
{
case 1:
Task_1();
break;
case 2:
Task_2();
break;
case 3:
Task_3();
break;
case 4:
Task_4();
break;
case 5:
Task_5();
break;
case 6:
Task_6();
break;
case 7:
Task_7();
break;
case 8:
Task_8();
break;
case 9:
Task_9();
break;
case 10:
Task_10();
break;
case 11:
Task_11();
break;
default:
cout << "Задание отсутствует " << endl;
}
cout << "Нажмите 1 для продолжения работы с программой " << endl;
} while (_getch() == '1');
}
void Task_1()
{
cout << "Задания №1(№26(а))" << endl
<< "Найти сумму и произведение чётных чисел" << endl
<< "Введите значение n" << endl;
int n, sum = 0, i;
cin >> n;
int p = 1;
for (i = 2;i < n;i += 2)
{
sum += i;
p *= i;
}
cout << "Сумма чётных чисел от 1 до n равна " << sum << endl
<< "Произведение чётных чисел от 1 до n равна " << p << endl;
}
void Task_2()
{
cout << "Задание №2(25(в))" << endl
<< "Найти значение выражения(для натуральных m и n, m < n) " << endl
<< "A = m + (m + 1) + ... + (m + n)." << endl
<< "Введите значение m и n" << endl;
int m, n, sum;;
do
{
cin >> m >> n;
if (m > n)
cout << "m должно быть меньше n " << endl;
} while (m > n);
sum = 0;
int m_1 = m;
for (m = 0;m <= n;m++)
{
sum += (m_1 + m);
}
cout << "А равно " << sum << endl;
}
void Task_3()
{
cout << "Задания №3(28(б))" << endl
<< "Для последовательности an = a*sin(n) найти сумму и произведение n членов, первый из которых имеет номер m." << endl
<< "Введите значение m, n" << endl;
int m, n;
double p, sum = 0;
cin >> m >> n;
p = 1;
double a;
for (m ;m <= n;m++)
{
a = m * sin(m);
sum += a;
p *= a;
}
cout << "Сумма равна " << sum << endl
<< "Произведение равно " << p << endl;
}
void Task_4()
{
cout << "Задание №4(№2)" << endl
<< "Сумма 10000 руб. положена в сберегательный бынк под 3% годовых (процент капитализированный).\n Состаить алгоритм , определяющий через какой промежуток времени первоначальная сумма увеличится в 2 раза." << endl;
int n, p;
double S_2 = 20000, S_1 = 10000;
n = 0;p = 3;
for (n;S_1 < S_2;n++)
{
S_1 *= (1 + p / 100.);
}
cout << "20000 в банке накопиться за " << n << " года" << endl;
}
void Task_5()
{
cout << "Задание №5(№9) " << endl
<< "Имеются контейнеры двух видов: по 130 кг. и 160 кг. Можно ли полностью загрузить ими грузовик грузоподъёмностью 3т." << endl;
int x = 0, y, m_1 = 130, m_2 = 160, M = 3000;
while (x < M / m_1)
{
y = 0;
while (y < M / m_2)
{
if (m_1 * x + m_2 * y == M)
{
cout << "Грузовик можно заполнить при " << endl
<< "Количестве контейнеров весом 130 кг. равном " << x << endl
<< "И количестве контейнеров весом 160 кг. равном " << y << endl;
}
y++;
}
x++;
}
}
void Task_6()
{
cout << "Задания №6(№8)" << endl
<< "Искомое число больше 400 и меньше 500.\nСоставить алгоритм поиска этого числа, если сумма его цифр равна 9\nи оно равняется 47/36 числа, изображённого теми же цифрами, но в обратном порядке." << endl;
int a, b, c, x = 405;
while (x < 500)
{
a = x / 100;
b = (x - 100 * a) / 10;
c = x % 10;
if (a + b + c == 9 && (x * 36) == (47 * (100 * c + 10 * b + a)))
{
cout << "Искомое число " << x << endl;
break;
}
else
{
x+=9;
}
}
}
void Task_7()
{
cout << "Задания №7(№11)" << endl
<< "Сумма квадратов цифр некоторого двухзначного числа на 1 больше утроенного произведения этих цифр.\nПосле деления этого двузначного числа на сумму его цифр в частном получается 7 и в остатке 6.\nСоставить алгоритм поиска этого числа, если оно существует." << endl;
int a, b;
for (a = 0;a < 10;a++)
{
for (b = 0;b < 10;b++)
{
if (pow(a, 2) + pow(b, 2) == 3 * a * b + 1 && a - 2 * b == 1)
{
cout << "Число равно " << a << b << endl;
break;
}
}
}
}
void Task_8()
{
cout << "Задания №8(№14)" << endl
<< "Известно, что любую целочисленную денежную сумму S > 7 руб. можно выплатить без сдачи купюрами достоинством в 3 и 5 руб.\nПо заданному S > 7 найти все пары целых неотрицательных чисел a и b, таких, что S = 3a + 5b." << endl
<< "Введите значение S " << endl;
int S, j, x = 0, y = 0;
do
{
cin >> S;
} while (S <= 7);
for (int i = 1;i >= 0;i++)
{
for (j = 1;j >= 1;j++)
{
if (3 * x + 5 * y == S)
{
cout << "Значение a равно " << x << " значение b равно " << y << endl;
i = -1;
j = -1;
}
y++;
}
if (3 * x + 5 * y > S)
{
i = -1;
j = -1;
}
x++;
}
}
void Task_9()
{
cout << "Задание №9(№15)" << endl
<< "Дано натуральное число n.Выяснить, можно ли представить \nn! = 1*2*3*...*n в виде произведения трёх последовательных целых чисел." << endl
<< "Введите значение n " << endl;
int n;
cin >> n;
int F = 1;
for (int i = 1;i <= n; i++)
{
F *= i;
}
cout << "Факториал числа n равен " << F << endl;
for (int i = 0;i <= sqrt(F);i++)
{
if (((i - 1) * i * (i + 1)) == F)
{
cout << "Факториал можно представить в виде произведения чисел "
<< i - 1 << ", " << i << ", " << i + 1 << "." << endl;
break;
}
else if (((i - 1) * i * (i + 1)) > F)
{
cout << "Факториал нельзя представить в виде произведения трех последовательныз чисел" << endl;
break;
}
}
}
void Task_10()
{
cout << "Задания №10(№16)" << endl
<< "Составить алгоритм, определяющий количество способов, какими задуманное число n > 1 можно представить в виде суммы \nn = i^3 + j^3, считая, что перестановка слагаемых нового способа не даёт." << endl
<< "Введите значение n" << endl;
int n;
cin >> n;
int k = 0;
for (int i = 0;i <= pow(n,1./3);i++)
{
for (int j = i + 1;j <= pow(n, 1. / 3);j++)
{
if (pow(i, 3) + pow(j, 3) == n)
{
cout << "Значение i равно " << i << ". Значение j равно " << j << endl;
k++;
}
}
}
if (k > 0)
{
cout << "Есть " << k << " способов представить число n как сумму i^3 + j^3" << endl;
}
else
{
cout << "Число n нельзя представить как сумму i^3 + j^3" << endl;
}
}
void Task_11()
{
cout << "Задание №11(№18)" << endl
<< "Составить алгоритм, определяющий, сколько существует способо набора одного рубля при помощи монет достоинством:\n 50 коп., 20 коп., 5 коп. и 2 коп." << endl;
int z, k = 0, n = 0, x, y;
while (k <= 2)
{
z = 0;
while (z <= 5)
{
y = 0;
while (y <= 20)
{
x = 0;
while (x <= 50)
{
if (2 * x + 5 * y + 20 * z + 50 * k == 100)
{
cout << "Значения " << endl
<< "x = " << x << endl
<< "y = " << y << endl
<< "z = " << z << endl
<< "k = " << k << endl;
n++;
}
x++;
}
y++;
}
z++;
}
k++;
}
cout << "100 рублей можно представить в виде суммы других монет " << n << " раз" << endl;
}Editor is loading...