
- •Вариант №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
Вариант №5
Дана матрица целых чисел A[N][M]. Сформировать массив Y[K] из отрицательных четных элементов матрицы, просматривая матрицу по столбцам. #include <iostream> #define SIZE 100 using namespace std;
void Vvod(int n, int m, int arr[][SIZE]) { for(int i = 0; i < n; ++i) { for(int j = 0; j < m; ++j){ cout << "[" << i << "]["<< j <<"]: "; cin >> arr[i][j]; } } } void Vivod(int n, int m, int arr[][SIZE]) { for(int i = 0; i < n; ++i){ for(int j = 0; j < m; ++j){ cout << arr[i][j] << " "; } cout<<endl; } cout<<endl; } void Vivod(int n, int *arr) { for(int i = 0; i < n; ++i){ cout << arr[i] << " "; } cout<<endl; } void main(){ int A [SIZE][SIZE], Y[SIZE]; int n,m, N=0; cout << "ROW" << endl; cin >> n; cout << "COL" << endl; cin >> m; if((n > 100 || n <= 0) || (m > 100 || m <= 0 )){ cout<<"Error size"; system("pause"); return; } cout << "Massiv A" << endl; Vvod(n,m, A); cout << "\nMassiv A" << endl; Vivod(n, m, A); for(int j = 0; j < m; ++j) for(int i = 0; i < n; ++i){ { if( A[i][j] %2 == 0 && A[i][j] < 0){ Y[N++]=A[i][j]; } } cout<<endl; } cout << "\nMassiv Y" << endl; Vivod(N, Y); cout << endl; } |
Последовательность ряда Фибоначчи определяется следующим образом: F0=0, F1= 1, Fn=F n-2+F n-1, n=2,3,4,…Ввести число и определить является оно числом из ряда Фибоначчи. Программа должна содержать рекурсивную функцию. #include <iostream> #include <windows.h>
void getInput(); int f(int n); void getOut(bool res); bool check(int n);
void main() { setlocale(LC_ALL,".1251"); getInput(); }
void getInput() { int n = 0; puts("Введите число: "); scanf("%d", &n); getOut(check(n)); } bool check(int n) { int i, c = 0; for(i = 0; c <= n; i++) { c = f(i); if(c == n) { return true; } } return false; } void getOut(bool res) { if(res == true) { printf("Yes!"); } else { printf("No!"); } } int f(int n) { if(n == 0) { return 0; } else if(n == 1) { return 1; } else { return f(n-1) + f(n-2); } } |
Вариант №6
Дана матрица вещественных чисел A[N][M]. Сформировать матрицу B[N][M], поместив на место первой строки строку с максимальным по модулю первым элементом. #include <iostream> #include <math.h> void inputA(double **a, int n, int m){ puts("Введите элементы матрицы А:"); for(int i=0; i<n; ++i) for(int j=0; j<m; ++j) scanf("%lf", &a[i][j]); } void outputArr(double **a, int n, int m){ for(int i=0; i<n; ++i){ for(int j=0; j<m; ++j) printf("%lf ", a[i][j]); printf("\n"); }} int RowIndexMax(double **a, int n, int m){ double max=fabs(a[0][0]); int index=0; for(int i=1; i<n; ++i){ if(fabs(a[i][0])>max) { max=fabs(a[i][0]); index=i;} }return index; } void Transform(double **a,double**b,int n, int m) { int index=RowIndexMax(a,n,m); //переписываем в b матрицу а for(int i=0; i<n; ++i){ for(int j=0; j<m; ++j) b[i][j]=a[i][j]; } //выносим строку с максимальным первым элементом на первое место, остальные сдвигаем double buf; for(int j=0; j<m; ++j){ buf=b[index][j]; int k=index; while(k>0){ b[k][j]=b[k-1][j]; --k; } b[0][j]=buf; } } void main() {setlocale(LC_ALL, "Russian"); double **A, **B; int n, m; puts("Введите количество строк:"); scanf("%d", &n); puts("Введите количество столбцов:"); scanf("%d", &m); A=new double*[n]; B=new double*[n]; for(int i=0; i<n; ++i){ A[i]=new double[m]; B[i]=new double[m];} inputA(A, n, m); Transform(A,B,n,m); puts("Матрица А:"); outputArr(A,n,m); puts("Матрица В:"); outputArr(B,n,m); //удаление матриц for(int i=0; i<n; ++i) {delete [] A[i];delete [] B[i];} delete [] A; delete [] B;} |
Дан массив целых чисел A[N], содержащий цены на товар в различных магазинах. Определить минимальную, максимальную и среднюю цену на данный товар в различных магазинах. Результаты вывести на экран. #include <iostream> using namespace std;
void Vvod(int n, int *arr) { for(int i = 0; i < n; i++) { cout << "arr[" << i << "]: "; cin >> arr[i]; } }
void Vivod(int n, int *arr) { for(int i = 0; i < n; i++) { cout << arr[i] << " "; } }
void main() { int n; cout << "Razmer: "<<endl; cin >> n;
int *A = new int[n];
cout << "Massiv cen" << endl; Vvod(n, A);
int max = A[0]; int min = A[0]; int sredn = 0;
for(int i = 0; i < n; i++) { if(A[i] > max) { max = A[i]; } if(A[i] < min) { min = A[i]; } sredn += A[i]; } sredn = sredn/n; cout << "\nMassiv A" << endl; Vivod(n, A); cout << "\nMax: " << max << "; Min: " << min << "; Srednyaya cena: " << sredn << endl; delete[] A;
} |