/****************************************************************************** Задание 15 Описать процедуру ShiftLeft3(A, B, C), выполняющую левый циклический сдвиг: значение A переходит в C, значение C — в B, значение B — в A (A, B, C — вещественные параметры, являющиеся одновременно входными и выходными). С помощью этой процедуры выполнить левый циклический сдвиг для двух данных наборов из трех чисел: (A1, B1, C1) и (A2, B2, C2). *******************************************************************************/
Описать функцию SumRange(A, B) целого типа, находящую сумму всех целых чисел от A до B включительно (A и B — целые). Если A > B, то функция возвращает 0. С помощью этой функции найти суммы чисел от A до B и от B до C, если даны числа A, B, C.
int SumRange(int A, int B, int C) { int sumA,sumB,sum; if (A>B) { cout << "Cумма: " <B\n"*/; return 0; } else { for ( int i=A+1; i> A >> B >> C; //cout << "Сумма: "; SumRange(A,B,C); //cout << sum; }
Описать рекурсивную функцию Fact(N) вещественного типа, вычисляющую значение факториала N! = 1·2·…·N (N > 0 — параметр целого типа). С помощью этой функции вычислить факториалы пяти данных чисел.
/****************************************************************************** 7/14 Задача 7
Описать рекурсивную функцию Combin2(N, K) целого типа, находящую C(N, K) — число сочетаний из N элементов по K — с помощью рекуррентного соотношения: C(N, 0) = C(N, N) = 1, C(N, K) = C(N − 1, K) + C(N − 1, K − 1) при 0 < K < N. Параметры функции — целые числа; N > 0, 0 ≤ K ≤ N. Считать, что параметр N не превосходит 20. Для уменьшения количества рекурсивных вызовов по сравнению с функцией Combin1 (см. задание 6) описать вспомогательный двумерный массив для хранения уже вычисленных чисел C(N, K) и обращаться к нему при выполнении функции Combin2. С помощью функции Combin2 найти числа C(N, K) для данного значения N и пяти различных значений K.
/******************************************************************************
ОтветитьУдалитьЗадача 11
11/15
*******************************************************************************/
#include
#include
#include
using namespace std;
float X,Y;
void
Minmax (float &X, float &Y)
{
//float min = X;
if (X > Y)
{
float min = Y;
Y=X;
X=min;
}
}
int
main ()
{
float A, B, C, D;
//MAX,MAX1,MAX2,
//MIN,MIN1,MIN2;
std::cout << "Введите A,B,C,D: " << std::endl;
std::cin >> A >> B >> C >> D;
cout << "==========";
Minmax(A,B);
Minmax(C,D);
Minmax(B,D);
Minmax(A,C);
cout << "\nБольше всего " << D;
cout << "\nМеньше всего " << A;
}
/******************************************************************************
ОтветитьУдалитьЗадание 15
Описать процедуру ShiftLeft3(A, B, C), выполняющую левый циклический сдвиг:
значение A переходит в C, значение C — в B, значение B — в A
(A, B, C — вещественные параметры, являющиеся одновременно входными и выходными).
С помощью этой процедуры выполнить левый циклический сдвиг для двух
данных наборов из трех чисел: (A1, B1, C1) и (A2, B2, C2).
*******************************************************************************/
#include
#include
#include
using namespace std;
void
ShiftLeft3 (float &A, float &B, float &C)
{
float CC = C;
C = A;
A = B;
B = CC;
cout << "Ответ: A = " << A << " B = " << B << " C = " << C << "\n";
}
int
main ()
{
float A1, A2, B1, B2, C1, C2;
std::cout << "Введите поочередно A1,B1,C1 через enter: " << std::endl;
cin >> A1 >> B1 >> C1;
ShiftLeft3 (A1, B1, C1);
std::cout << "\nВведите поочередно A2,B2,C2 через enter: " << std::endl;
cin >> A2 >> B2 >> C2;
ShiftLeft3 (A2, B2, C2);
}
/******************************************************************************
ОтветитьУдалитьЗадание 21
Описать функцию SumRange(A, B) целого типа, находящую сумму всех целых чисел
от A до B включительно (A и B — целые). Если A > B, то функция возвращает 0.
С помощью этой функции найти суммы чисел от A до B и от B до C,
если даны числа A, B, C.
*******************************************************************************/
#include
using namespace std;
int SumRange(int A, int B, int C)
{
int sumA,sumB,sum;
if (A>B) { cout << "Cумма: " <B\n"*/; return 0; }
else
{
for ( int i=A+1; i> A >> B >> C;
//cout << "Сумма: ";
SumRange(A,B,C);
//cout << sum;
}
/******************************************************************************
ОтветитьУдалитьЗадача 1
Описать рекурсивную функцию Fact(N) вещественного типа, вычисляющую значение факториала
N! = 1·2·…·N (N > 0 — параметр целого типа).
С помощью этой функции вычислить факториалы пяти данных чисел.
*******************************************************************************/
#include
#include
using namespace std;
int N, i, result=1;
double Fact(int N) {
i+=1;
result*=i;
if (i> N;
cout << "Факториал = " << Fact(N);
}
/******************************************************************************
ОтветитьУдалить7/14
Задача 7
Описать рекурсивную функцию Combin2(N, K) целого типа, находящую C(N, K) — число сочетаний
из N элементов по K — с помощью рекуррентного соотношения:
C(N, 0) = C(N, N) = 1,
C(N, K) = C(N − 1, K) + C(N − 1, K − 1) при 0 < K < N.
Параметры функции — целые числа; N > 0, 0 ≤ K ≤ N. Считать, что параметр N не превосходит 20.
Для уменьшения количества рекурсивных вызовов по сравнению с функцией Combin1 (см. задание 6)
описать вспомогательный двумерный массив для хранения уже вычисленных чисел C(N, K)
и обращаться к нему при выполнении функции Combin2. С помощью функции Combin2
найти числа C(N, K) для данного значения N и пяти различных значений K.
*******************************************************************************/
#include
#include
using namespace std;
int N,K,C,i,
R,
resultN=1, resultK=1, resultR=1;
double FactN(int N) {
i+=1;
resultN*=i;
if (i> N;
if (N>0)
{
cout << "Введите параметр K: ";
cin >> K;
if (0<=K and K<=N) {
if (N==K) { cout << "Число сочетаний C = 1"; }
else { cout << "Число сочетаний C = " << Combin2(N,K); }
}
else { cout << "0 ≤ K ≤ N\n"; goto start;}
}
else { cout << "N должно быть больше 0"; goto start;}
}