Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Programmirovanie.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
187.07 Кб
Скачать

Вариант №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;

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]