Untitled
unknown
plain_text
4 years ago
9.6 kB
17
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...