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

Вариант №28

Отсортировать по возрастанию j-ый столбец матрицы действительных чисел X[M][N]. Число j ввести с клавиатуры. Исходную и преобразованную матрицы вывести на экран

#include <iostream>

#define SIZE 100

using namespace std;

void Vvod(int n, int m, double 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, double 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 main(){

double A [SIZE][SIZE];

int n,m;

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);

int J;

cout<<"Nomer stroki:";

cin>>J;

if(J > m && J < 0){

cout<<"Error "; system("pause"); return;

} for (int K=1; K<m ;++K){

for (int i=0; i<n-K; i++){

if(A[i][J] < A[i+1][J]){

double buf =A[i][J];

A[i][J] = A[i+1][J];

A[i+1][J] = buf;

} } }

cout << "\nMassiv A" << endl;

Vivod(n,m, A);

cout << endl;

}

Дан массив действительных чисел X[N]. Вычислить Y = max (X[i]) / min (X[i]) . Вывести вычисленное значение на экран.

#include <iostream>

using namespace std;

void Vvod(int n, double *arr)

{

for(int i = 0; i < n; i++)

{

cout << "arr[" << i << "]: ";

cin >> arr[i];

}

}

void Vivod(int n, double *arr)

{ for(int i = 0; i < n; i++)

{ cout << arr[i] << " "; }

}

void main()

{

int n;

cout << "Razmer: "<<endl;

cin >> n;

double *A = new double[n];

cout << "Massiv A" << endl;

Vvod(n, A);

double max = -1000;

double min = 1000;

double result;

for(int i = 0; i < n; i++)

{ if(A[i] > max)

{

max = A[i];

}

if(A[i] < min)

{

min = A[i];

}

}

result = max/min;

cout << "\nMassiv A" << endl;

Vivod(n, A);

cout << "\nMax / Min = "<< result;

cout << endl;

delete[] A;

}

Вариант №29

Отсортировать по возрастанию модуля элементов одномерный массив целых чисел A[N]. Исходный и преобразованный массив вывести на экран.

#include <iostream>

#include <math.h>

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)

{ cout << "Massiv" << endl;

for(int i = 0; i < n; i++)

{ cout << arr[i] << " "; }

cout << endl;

}

void Func(int n, int *arr)

{ int elem;

cout << "Sortirovka!";

for(int i=0;i<n;i++)

{for( int j=n-1;j>i;j--)

{if (abs(arr[j-1])>abs(arr[j]))

{ int x=arr[j-1];

arr[j-1]=arr[j];

arr[j]=x;

} } }

for(int i = 0; i < n; i++)

{ cout << arr[i] << " "; }

}

void main()

{ int n;

cout << "Razmer:" << endl;

cin >> n;

int *arr = new int[n];

Vvod(n, arr);

Vivod(n, arr);

Func(n, arr);

delete[] arr;

}

Ввести символьную строку. Определить является ли данная строка палиндромом (т.е. с лева на право и с права на лево читается одинаково). Дополнительные строки не использовать.

#include <stdio.h>

#include <iostream>

void input_str(char*);

int Check(char*);

void main()

{ setlocale(LC_ALL, "Russian");

char str[100];

input_str(str);

if(!Check(str))

puts("Не палиндром");

else

puts("Палиндром");

}

void input_str(char* str)

{ puts("Введите строку:");

gets(str);

}

int Check(char* str)

{ int n=strlen(str)-1;

for(int i=0; i < n; ++i, n--)

{ if(str[i]!=str[n])

{ return 0; }

}

return 1;

}