1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
| #include<iostream>
#include<locale.h>
#include<Windows.h>
#include<string>
#include "123.h"
using namespace std;
float area(float);//Площадь круга по радиусу
float area(float, float);//Площадь прямоугольника по двум сторонам
float area(float, float, float);//Площадь треугольника по сторонам(ф-ла Герона)
float perimetr(float);//Периметр круга
float perimetr(float, float);//Периметр прямоугольника по сторонам
float perimetr(float, float, float);//Периметр треугольника по сторонам
float triangle(float);//Площадь равностороннего треугольника по стороне
float triangle(float, float);//Площадь равнобедренного по оснванию и высоте
float triangle(float, float, float);//Площадь обыкновенного треугольника по сторонам
float volume(float);//Объем шара по радиусу
float volume(float, float);//Объем конуса по основанию и высоте
float volume(float, float, float);//Объем усеченного конуса по радиусам оснований и высоте
template <typename T>
int matr(T*, int, int); //Находит сумму главной диагонали матрицы
template <typename T>
int sootv(int, T*, T*);
template <typename T>
void generate (T, int,int,int);
template <typename T>
void generate(T, int,int);
template <typename T>
void output(T, int);
template <typename T>
void output(T, int, int);
int main(){
setlocale(LC_ALL, "RUS");
int n;
do{
cout << "[1]-" << "Найти площади круга по радиусу,прямоугольника,треугольника" << endl;
cout << "[2]-" << "Найти периметры круга,прямоугольника,треугольника" << endl;
cout << "[3]-" << "Найти площади равностороннего треугольника,равнобедренного,обыкновенного" << endl;
cout << "[4]-" << "Найти объемы шара,конуса,усеченного конуса" << endl;
cout << "[5]-" << "Находит сумму главной диагонали матрицы" << endl;
cout << "[6]-" << "Заполняет массив минимальными элементами массивов-параметорв" << endl;
cout << "[7]-" << "Сортировка пузырьком" << endl;
cout << "[8]-" << "Генерация и вывод одномерного и дмумерного массивов" << endl;
cout << "[0]-Выход" << endl;
cin >> n;
switch (n)
{
case 1:
{
float R; float a, b, q, w, e;
cout << "Введите радиус круга: ";
cin >> R;
cout << "Площадь круга: " << area(R) << endl;;
cout << "Введите первую сторону прямоугольника :";
cin >> a;
cout << "Введите вторую сторону прямоугольника :";
cin >> b;
cout << "Площадь прямоугольника :" << area(a, b) << endl;
cout << "Введите первую сторону треугольника: ";
cin >> q;
cout << "Введите вторую сторону треугольника: ";
cin >> w;
cout << "Введите третью сторону треугольника: ";
cin >> e;
cout << "Площадь треугольника :" << area(q, w, e) << endl;
break;
}
case 2:{
float R; float a, b, q, w, e;
cout << "Введите радиус круга: ";
cin >> R;
cout << "Площадь круга: " << perimetr(R) << endl;;
cout << "Введите первую сторону прямоугольника :";
cin >> a;
cout << "Введите вторую сторону прямоугольника :";
cin >> b;
cout << "Площадь прямоугольника :" << perimetr(a, b) << endl;
cout << "Введите первую сторону треугольника: ";
cin >> q;
cout << "Введите вторую сторону треугольника: ";
cin >> w;
cout << "Введите третью сторону треугольника: ";
cin >> e;
cout << "Площадь треугольника :" << perimetr(q, w, e) << endl;
break;
}
case 3:
{
float A; float H, w, q, e;
cout << "Введите сторону для равностороннего треугольника ";
cin >> A;
cout << "Площадь равностороннего треугольника " << triangle(A) << endl;
cout << "Введите высоту для нахождения площади по стороне и высоте ";
cin >> H;
cout << "Площадь треугольника по стороне и высоте " << triangle(A, H) << endl;
cout << "Введите первую сторону треугольника: ";
cin >> q;
cout << "Введите вторую сторону треугольника: ";
cin >> w;
cout << "Введите третью сторону треугольника: ";
cin >> e;
cout << "Ответ для площади по трем сторонам " << triangle(q, w, e) << endl;
break;
}
case 4:{
float R, A, H, r;
cout << "Введите радиус для нахождения объема шара ";
cin >> R;
cout << "Объем шара :" << volume(R) << endl;
cout << "Введите основание конуса: ";
cin >> A;
cout << "Введите высоту конуса: ";
cin >> H;
cout << "Оъем конуса по основанию и высоте " << volume(A, H) << endl;
cout << "Введите радиус для нахождения объема конуса по радиусам оснований и высоте ";
cin >> r;
cout << "Объем конуса по основаниям и высоте " << volume(A, H, r) << endl;
break;
}
case 5:{
int s = 0;
int a, m;
cout << "Введите количество строк матрицы: ";
cin >> a;
cout << "Введите количество столбцов матрицы: ";
cin >> m;
int mat[100][100];
for (int i = 0; i < a; i++){
for (int j = 0; j < m; j++){
mat[i][j] = rand() % 100;
}
}
for (int i = 0; i < a; i++){
for (int j = 0; j < m; j++){
cout << mat[i][j] << "\t";
}
cout << endl;
}
float c = matr(mat, a, m);
cout << "Ответ:\t" << c << endl;
break;
}
case 6:
{
int mas[100], arg[100];
int count;
cout << "Введите количество элементов массивов-параметров: ";
cin >> count;
for (int i = 0; i < count; i++){
mas[i] = rand() % 50;
}
v(mas, count);
for (int i = 0; i < count; i++){
arg[i] = rand() % 30;
}
cout << "-------------------------------" << endl;
v(arg, count);
sootv(count, mas, arg);
break;
}
case 7:{
int mas[1000];
int count;
cout << "Введите количество элементов массива: ";
cin >> count;
for (int i = 0; i < count; i++){
mas[i] = rand() % 1000;
cout << mas[i] <<" ";
}
BubbleSort(mas, count);
v(mas, count);
break;
}
case 8:{
int count, a, b;
cout << "Введите количество элементов одномерного массива: ";
cin >> count;
int cos;
do{
cout << "Выбирете какого типа данных сгенерировать массив" << endl;
cout << "[1]-" << "Целочисленный: " << endl;
cout << "[2]-" << "Вещественный: " << endl;
cout << "[0]-" << "Никакой!: " << endl;
cin >> cos;
switch (cos){
case 1:{
int a, b;
cout << "Введите левую границу интервала для рандома: ";
cin >> a;
cout << "Введите правую границу рандома: ";
cin >> b;
int arg[100];
generate(arg, count,a,b);
output(arg, count);
break;
}
case 2:{
int a, b;
cout << "Введите левую границу интервала для рандома: ";
cin >> a;
cout << "Введите правую границу рандома: ";
cin >> b;
float arg[100];
generate(arg, count,a,b);
output(arg, count);
break;
}
}
break;
} while (cos != 0);
int m, c, k, l;
int mat[100][100];
cout << "Введите количество строк матрицы: ";
cin >> m;
cout << "Введите количество столбцов матрицы: ";
cin >> c;
generate(mat, m,c);
output(mat, m, c);
break;
}
}
} while (n != 0);
system("pause");
return 0;
} |