Работа вам нужна срочно. Не волнуйтесь, уложимся!
Заполните, пожалуйста, данные для автора:
- 22423 авторов готовы помочь тебе.
- 2402 онлайн
Составить программу, которая меняет местами наибольший и наименьший элемент одномерного массива. Запомнить номера элементов, которые меняли местами. С её помощью изменить всю матрицу. Написать функцию вывода матрицы, с её помощью вывести исходную, а потом измененную матрицу с номерами переставленных элементов справа от каждой строки.
#include "stdafx.h"
#include
#include
#include
#include
using namespace std;
const int m=4;
void str (int* A, int n, int& a, int& b)
{int M=0;
int m=100;
for (int i(0); i
if (M{
M=A[i];
a=i+1;
}
if (m>A[i])
{
m=A[i];
b=i+1;
}
}
int t;
t=A[a-1];
A[a-1]=A[b-1];
A[b-1]=t;
}
void matr (int B[][m], int n, int* a, int* b)
{
for (int i(0); i
str ( B[i], n, a[i], b[i]);
}
}
void vvv (int B[][m], int n, int* a, int* b)
{
for (int i(0); i
for (int j(0); j
cout «setw(4)«B[i][j];
}
cout«" "«a[i]«" "«b[i]«endl;
}
}
int _tmain(int argc, _TCHAR* argv[])
{ setlocale (LC_ALL, "Russian");
const int n=4;
int B[n][m]={{1, 5, 2, 4},
{3, 4, 1, 2},
{14, 15, 10, 11},
{5, 4, 9, 6}};
int a[n]={}, b[n]={};
cout «" исходная матрица"«endl;
vvv (B, n, a, b);
matr ( B, n, a, b);
cout «" полученная матрица"«endl;
vvv (B, n, a, b);
_getch ();
return 0;
}
Составить программу, позволяющую найти сумму элементов матрицы.
#include
#include
#include
#include
using namespace std;
#define n 3
const int m=3;
void simm (int mas[n][n], int i, int j);
void FunInputMatrix(int , int A[][m]);
void FunOutputMatrix(int , int A[][m]);
void Sum (int mas[n][n], int A[][m], int P[][m]);
int main()
{ int A[n][n]; int P[n][n];
FunInputMatrix(n, A);
cout<
cout<
simm (mas,i,j);
cout<
Sum (mas, A, P);
}
void simm (int mas[n][n], int i, int j)
{
srand( time( NULL ) );
cout<<"Part of matrix:"<
for(j=0; j
{
mas[i][j]=rand()%10;
cout<
else
cout<<" ";
cout<
for(i=1; i
cout<<"Symmetric matrix:"<
for(j=0; j
}
void FunInputMatrix(int , int A[][m])
{
for (int i=0;i
}
void FunOutputMatrix(int , int A[][m])
{
for (int i=0;i
cout<
}
void Sum (int mas[n][n], int A[][m], int P[][m])
{
int K;
for (int i=0;i
P[i][j]=K;}
for (int i=0;i
cout<
}
Сортировка строк целочисленной динамической матрицы по возрастанию максимальных элементов строк. Порядок чисел в каждой строке не меняется.
void Myprint (int **D,int *S,int ,int);
int main()
{
// 1) Объявление и создание динамической матрицы
int n, m; int **d; randomize();
n=random(5)+2; m=random(5)+2;
d=new int*[n];
for(int i=0;i // 2) Получение элементов динамической матрицы случайным образом for(int i=0;i for(int j=0;j d[i][j]=random(15)-6; /* 3) Построение вектора максимальных элементов строк s. Его размерность соответствует количеству строк матрицы. */ int *s,Mymax,Mymin,nmin; s=new int[n]; // Построение динамического одномерного массива for(int i=0;i { Mymax=d[i][0]; for(int j=0;j if (d[i][j]>Mymax) Mymax=d[i][j]; s[i]=Mymax; } // 4) Вывод не рассортированной матрицы и вектора Myprint(d,s,n,m) ; // 5)Сортировка for(int start=0;start<=n-2;start++) { /* Начиная с элемента s[start], находим наименьший элемент Mymin и его номер nmin */ Mymin=s[start]; nmin=start; for(int i=start;i if(s[i] { Mymin=s[i]; nmin=i; } /* Переставляем адреса строк матрицы с номерами start и nmin. Элементы этих строк остаются на старых местах */ int *p; p=d[start]; d[start]=d[nmin]; d[nmin]=p; /* Переставляем элементы одномерного массива с номерами start и nmin */ int t; t=s[start]; s[start]=s[nmin]; s[nmin]=t; } // 6) Вывод рассортированной матрицы и вектора Myprint(d,s,n,m) ; getch(); return 0; } /* Функция для вывода матрицы D и вектора максимальных элементов строк S. */ void Myprint (int **D, int *S, int N, int M) {for(int i=0;i { printf("\n"); for(int j=0;j printf("%5d",D[i][j]); printf(" => %5d",S[i]); } printf("\n"); } Создание динамической ”матрицы”. В первой строке ре-зервируем память для одного элемента, во второй строке – для двух и т. д. Другими словами, создаём в памяти нижний треугольник квадратной “мат-рицы” относительно главной диагонали. int main() { int n1; cout<<"Size1=>"; cin>>n1; // Объявили и ввели только одну размерность int **arr; arr= new int*[n1]; for (int i=0;i arr[i]=new int[i+1]; /* В i-й строке резервируем память для (i+1) элемента*/ float s; for (int i=0; i { s=0; // Внутренний цикл с помощью указателя и номера элемента for (int *q=arr[i], j=0; q< arr[i]+i+1; q++, j++) { *q=(i+1)*(j+1); s+=*q; cout.width(6); cout<< (*q); } /* или внутренний цикл с помощью индекса for (int j=0;j
{ arr[i][j]=(i+1)*(j+1); s+=arr[i][j]; cout.width(6); cout< } */ // В этой же строке экрана курсор переводим в позицию с номером (n1+1)*6 gotoxy((n1+1)*6, wherey()); cout<<"Average=> "< } //Удаляем динамическую матрицу так, как в предыдущем примере for (int i=0;i delete[]arr[i]; delete[]arr; getch(); return 0; } Создание динамической “матрицы” с различным коли-чеством элементов в строках. В каждой строке резервируем память для коли-чества элементов, которое вводим с экрана. int main() { int n1; cout<<"Size1=>"; cin>>n1; // Количество строк int *arr_of_size; /*Объявление динамического одномерного массива, в котором будут хра-ниться количество элементов в каждой строке. */ arr_of_size=new int[n1]; // Создание динамического одномерного массива cout<<"Input the size of each row"; for (int i=0;i // Объявление и создание динамической матрицы int **arr; arr= new int*[n1]; for (int i=0;i arr[i]=new int[arr_of_size[i]]; /* Количество элементов каждой строки берём из одномерного динамическо-го массива*/ float s; for (int i=0; i { s=0; for (int j=0;j { arr[i][j]=(i+1)*(j+1); cout.width(6); cout< } gotoxy((arr_of_size[i]+1)*6, wherey()); if (arr_of_size[i]==0) cout<<"No elements"; else cout<<"Average=> "< } //Удаляем матрицу for (int i=0;i delete[]arr[i]; delete[]arr; delete []arr_of_size; // Удаляем динамический одномерный массив getch(); return 0; } Рассортировать строки динамической матрицы с одинаковым количе-ством элементов в каждой строке по i – му наименьшему элементу строки, где i – номер строки. #include "stdafx.h" using namespace std; class matrix int k; matrix(){} void outM() void st_outM() void sort() } } } void sort2() for(int z=0;z T=M[i]; w=puz[i]; matrix A(5,4); int _tmain(int argc, _TCHAR* argv[]) Создать динамическую матрицу с разным количеством текущих оценок в строках. Рассортировать строки, в которых нет 1, 2, или 3, по их среднему значению. Строки, в которых есть плохие оценки, в сортировке не должны участвовать. #include #pragma argsused void MyOut() } void MyFun2() void MyFun3()//вычисление среднего балла в строках где нет оценок типа 1. 2. 3. void MyFun4()//сортировка ~DinArr() // Дeструктор } ; // The end of class int main() Изменяя порядок следования строк, рассортировать матрицу по возрастанию первых элементов строк. Элементы каждой строки должны остаться без изменений в том же порядке, в котором были до сортировки. Использовать сортировку выбором. #include using namespace std; int i, j; } }; void ClMatr::MyInp() void ClMatr::MyOut() int main(){ Составить класс для работы с целочисленной матрицей, включив в него матрицу, конкретные текущие размерности и следующие методы: конструктор для ввода и проверки текущих размерностей матрицы; ввод матрицы; вывод матрицы; поиск наибольшего и наименьшего значений матрицы, но-мера одной строки, где находится максимальный и номера одной строки, где находится минимальный элементы всей матрицы; цветной вывод матрицы, в результате которого все элементы найденных в предыдущей функции строк при выводе выделяются другими цветами. В функции main ввести размерно-сти матрицы, создать объект и проверить составленные методы. const n1max=10, n2max=10; class ClMatr { int a[n1max][n2max], n1, n2; public: ClMatr(int size1=5, int size2=3) { if (size1>0 && size1 n1=size1; else n1=5; if (size2>0 && size2 n2=size2; else n2=3; } void MyInp(); void MyOut(); void MaxMin(int *, int *, int *, int *); void MyColorOut(unsigned, unsigned,unsigned, unsigned, unsigned); }; void ClMatr::MyInp() { int x, y=1; for (int i=0; i { y++; x=-14; for (int j=0; j { x+=16; gotoxy(x,y); cout<<"a["<
scanf("%d", a[i]+j); } } }; void ClMatr::MyOut() { int x, y=wherey()+1; int *p1, *p2 ; for (p1=a[0]; p1<=a[n1-1]; p1+=n2max, y++) for (x=1, p2=p1; p2 { gotoxy(x,y); printf("%5d", *p2); } cout< } void ClMatr::MyColorOut(unsigned i1, unsigned i2, unsigned col1, unsigned col2, unsigned col3) { int x,i=0, y=wherey()+1; int *p1, *p2 ; for (p1=a[0]; p1<=a[n1-1]; p1+=n2max, y++, i++) { if (i==i1) textcolor( col1); else if (i==i2) textcolor(col2); else textcolor(col3); for (x=1, p2=p1; p2 { gotoxy(x,y); cprintf("%5d", *p2); } } cout< } void ClMatr::MaxMin(int *max, int *Nmax, int *min, int *Nmin) { *max=*min=a[0][0]; *Nmax=*Nmin=0; for (int i=0;i for (int j=0;j { int el=*(a[0]+n2max*i+j); if (*max { *max=el; *Nmax=i; } else if (*min>el) { *min=el; *Nmin=i; } } } int main() { int n1, n2, Nmax, Nmin, max, min; clrscr(); cout<<"\nn1="; cin>>n1; cout<<" n2="; cin>>n2; ClMatr ob(n1,n2); clrscr(); ob.MyInp(); cout< ob.MaxMin(&max,&Nmax,&min,&Nmin); textcolor(10); cprintf("Max element=%d in %d row\r\n",max , Nmax+1 ); textcolor(11); cprintf("Min element=%d in %d row\r\n",min , Nmin+1 ); if (Nmax!=Nmin) ob.MyColorOut(Nmax, Nmin, 10,11, 15); getch(); return 0; } Получить действительную матрицу В, каждый элемент bij которой равен сумме элементов исходной матрицы, расположенных в закрашенной области, определяемой индексами i, j, на рисунке #include const int n = 2; class Matrix { } for (int i = 0; i < n; i++) } int mat[n][m]; int main() Написать программу, выводящую на экран диагональ матрицы. #include using namespace std; const int m=3; bool isPrimeNumber(int number) { int main() getch(); void FunOutputMatrix(int n, int A[][m]) int NUM (int a) } void NumberOfPrime (int n, int A[][m]) Написать программу меняющую минимальный и максимальный элемент матрицы местами. #include const int n=4; Написать программу, которая находит все нули в матрице Aij. в результате выводит количество нулей и их номера. #include using namespace std; const int m=3; void FunInputMatrix(int n, int A[][m]); int main() void FunInputMatrix(int n, int A[][m]) void FunOutputMatrix(int n, int A[][m]) } void FunTestZeroMatrix1(int n, int A[][m]) void FunTestZeroMatrix2(int n, int A[][m]) if(A[i][j]==0) void FunTestZeroMatrix3(int n, int A[][m]) { Сортировка строк целочисленной матрицы по возрастанию некоторого параметра строки (например, по возрастанию максимальных элементов строк). Порядок чисел в каждой строке не меняется. const m=4; int main() { const n=5; int matr[n][m]; int*u[n]; for(int i=0;i { for(int j=0;j matr [i][j]=random(15)-6; u[i]= matr [i]; } int s[n],Mymax,Mymin,nmin; for(int i=0;i { Mymax= matr [i][0]; for(int j=0;j if (matr [i][j]>Mymax) Mymax= matr [i][j]; s[i]=Mymax; } for(int i=0;i { cout< for(int j=0;j printf("%5d", matr [i][j]); printf(" => %5d",s[i]); } cout< for(int start=0;start<=n-2;start++) { Mymin=s[start]; nmin=start; for(int i=start;i if(s[i] { Mymin=s[i]; nmin=i; } cout<< Mymin<< " "< int *p; p=u[start]; u[start]=u[nmin]; u[nmin]=p; int t; t=s[start]; s[start]=s[nmin]; s[nmin]=t; } for(int i=0;i { cout< for(int j=0;j printf("%5d",u[i][j]); printf(" => %5d",s[i]); } cout< for(int i=0;i { cout< for(int j=0;j printf("%5d",matr[i][j]); } getch(); return 0; }Пример 4:
Решение от преподавателя:
Пример 5:
Решение от преподавателя:
Пример 6:
Решение от преподавателя:
#include
#include
#include
{
private:
int **M;
int n;
int m;
int *puz;
public:
matrix(int size1, int size2)
{
n=size1;
m=size2;
M= new int*[n];
for(int i=0;i
for(int i=0;i
for(int j=0;j
M[i][j]=rand()%20+10;
}
}
}
{
for(int i=0;i
for(int j=0;j
cout<
cout<
}
{
for(int i=0;i
for(int j=0;j
cout<
if(i<=m-1)
{
cout<<"=> "<
}
else
cout<
}
{
int t;
for(int i=0;i
for(int z=0;z
for(int j=0;j
if(M[i][j]>M[i][j+1])
{
t=M[i][j];
M[i][j]=M[i][j+1];
M[i][j+1]=t;
}
}
{ int* T=new int[m];
int* puz=new int[k];
int w;
for(int i=0;i
puz[i]=M[i][i];
}
cout<<"k="<
for(int i=0;i
if(puz[i]>puz[i+1])
{
M[i]=M[i+1];
M[i+1]=T;
puz[i]=puz[i+1];
puz[i+1]=w;
}
}
}
};
~matrix(){}
};
{
A.outM();
cout<<"Sortiruem elementy strok"<
A.st_outM();
A.sort2();
cout<
system("pause");
return 0;
}Пример 7:
Решение от преподавателя:
#include
#include
#include
#include
#include
#include
#include
#pragma hdrstop
#pragma argsused
#include
#include
#include
#pragma hdrstop
using namespace std;
int const Nmax=20; /* Наибольшая размерность массива, которая использу-ется
в конструкторе для контроля передаваемой в класс размерности. */
class DinArr {
int **M,
k,
v,
sum,
n,
q0,
*q1,
*q5,//Количество строк
*s1;//массив длин строк
float q2,
*s2;//массив максимальных значений
public:
DinArr(int t, int *y)
{
n=t;
s1=y;
s2= new float[n];
M=new int *[n];
for (int i=0;i
M[i]=new int [s1[i]];
}
}
void MyDef()
{
for(int i=0; i
for(int j=0; j
cout<<"M["<cin>>M[i][j];
cout<
}
}
{
for(int i=0; i
for(int j=0; j
cout<
cout<
{
for(int i=0; i
cout<
}
{
for(int i=0; i
s2[i]=0;
for(int j=0; j
if(M[i][j]<4)
{
s2[i]=0;
break;
}
else
{
s2[i]=s2[i]+M[i][j];
}
}
s2[i]=(s2[i]/s1[i]);
}
}
{
for(int i=0; i
if(s2[i]!=0)
{
for(int j=i; j
if(s2[i]
q2=s2[i];
s2[i]=s2[j];
s2[j]=q2;
q0=s1[i];
s1[j]=s1[j];
s1[j]=q0;
q1=M[i];
q5=M[j];
M[j]= new int [s1[j]];
M[i]= new int [s1[i]];
M[j]=q1;
M[i]=q5;
}
}
}
}
}
{ cout<<"\nThe destructor deletes array\n" ;
getch();
delete []s1;
delete []s2;
delete []M;
} // The end of destructor
{ /* Создаём объект и одновременно вызываем конструктор. Фактический параметр
для него (размерность массива) вводим */
unsigned MyN;
cout<<"size=";
cin>>MyN;
int c1[MyN];
for(int i=0; i
cout<<"c1["<cin>>c1[i];
cout<
for(int i=0; i
cout<
cout<
//Вызываем методы класса
ObjArr.MyDef();
ObjArr.MyOut();
cout<
ObjArr.MyFun2();
cout<<"novi poradok"<
ObjArr.MyFun2();
cout<
getch();
return 0;
}Пример 8:
Решение от преподавателя:
#include
#include
#include
const int n1max=10, n2max=10;
class ClMatr
{ int a[n1max][n2max],b[n1max][n2max], n1, n2;
public:
ClMatr(int size1, int size2)
{ if (size1>0 && size1
if (size2>0 && size2
void MyInp();
void MyOut();
void sortmatric();
{
for (int i=0; i
for (int j=0; j
cout<<"a["<cin>>*(a[i]+j);
} }};
{
for (int i=0; i
cout<
void ClMatr::sortmatric(){
int count[10][10], key;
for (i=0; i
for(int v=0,z=0;v
key=i;
for (j=i+1; j
{
for(int l=0;l
}
for(int l=0;l
}
}
}
cout<<"Reasult: ";
for (i=0; i
cout<
};
int n,m;
cout<<"eto sortirovka v matrice";
cout<<"\n vvedite razmernost"<<"\n stroki\n";cin>>n;
cout<<"\n stolbci\n";cin>>m;
ClMatr M(n,m);
M.MyInp();
M.MyOut();
M.sortmatric();
_getch();
}Пример 9:
Решение от преподавателя:
Пример 10:
Решение от преподавателя:
using namespace std;
const int m = 2;
public:
Matrix() {
Matrix(int mat[n][m]) {
for(int i=0;i
}
void input() {
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
cout << "mat[" << i << "," << j <<"] = ";
cin >> mat[i][j];
}
}
}
void output() {
{
for (int j = 0; j < m; j++)
{
cout << mat[i][j] << " ";
}
cout << endl;
}
void countB(Matrix **res)
{
int r[n][m];
for(int i=0;i
for(int j=0;j
sum(i,j,r[i][j]);
}
}
*res = new Matrix(r);
}
private:
void sum(int i, int j, int &res) {
res = 0;
for(int l=0;l<=i;l++)
for(int k=0;k<=j;k++)
res += mat[i][j];
}
};
{
Matrix a;
a.input();
Matrix* b = NULL;
a.countB(&b);
b->output();
system("pause");
return 0;
}Пример 11:
Решение от преподавателя:
#include
#include
#include
void FunInputMatrix(int n, int A[][m]);
void FunOutputMatrix(int n, int A[][m]);
int NUM (int a);
void NumberOfPrime (int n, int A[][m]);
void QuantityOfUnity (int n, int A[][m]);
bool flag = true;
for(int i = 2;i <= (int)sqrt((double)number);i++)
if(number % i == 0) {
flag = false;
break;
}
return flag;
}
{
const int n=m;
int A[n][n];
FunInputMatrix(n, A);
cout<
cout<
cout<<"Number of unity"<
}
void FunInputMatrix(int n, int A[][m])
{
for (int i=0;i
}
{
for (int i=0;i
cout<
}
{
int num, k1=0, k0=0;
while(a)
{
num=a%2;
if (num)
k1++;
else k0++; a/=2;
}
return k0;
{ int k=0;
for (int i=0; i
if(isPrimeNumber(A[i][ n-1-i]))
k=k++;
}
cout<
void QuantityOfUnity (int n, int A[][m])
{ int d=0;
for (int i=0; i
d=d++;
cout<Пример 12:
Решение от преподавателя:
#include
#include
#include
using namespace std;
const int m=4;
void str (int* A, int n, int& a, int& b)
{int M=0;
int m=100;
for (int i(0); i
if (M{
M=A[i];
a=i+1;
}
if (m>A[i])
{
m=A[i];
b=i+1;
}
}
int t;
t=A[a-1];
A[a-1]=A[b-1];
A[b-1]=t;
}
void matr (int B[][m], int n, int* a, int* b)
{
for (int i(0); i
str ( B[i], n, a[i], b[i]);
}
}
void vvv (int B[][m], int n, int* a, int* b)
{
for (int i(0); i
for (int j(0); j
cout <
cout<<" "<}
}
int main()
{
int B[n][m]={{1, 5, 2, 4},
{3, 4, 1, 2},
{14, 15, 10, 11},
{5, 4, 9, 6}};
int a[n]={}, b[n]={};
cout <<" original matrix"<
matr ( B, n, a, b);
cout <<" obtained matrix"<
getch ();
return 0;
}Пример 13:
Решение от преподавателя:
#include
#include
#include
void FunOutputMatrix(int n, int A[][m]);
void FunTestZero1mass(int n, int A[]);
void FunTestZeroMatrix1(int n, int A[][m]);
void FunTestZeroMatrix2(int n, int A[][m]);
void FunTestZeroMatrix3(int n, int A[][m]);
{
const int n=3
;
int A[n][m];
FunInputMatrix(n, A);
cout<<"Default matrix";
FunOutputMatrix(n,A);
FunTestZeroMatrix3(n,A);
getch();
}
{
for (int i=0;i
}
{
for (int i=0;i
cout<
}
void FunTestZero1mass(int n, int A[])
{
int Zer=0;
for(int i=0; i
if(A[i]==0)
Zer=1;
}
cout<<"Zerocols--"<
{
cout<
FunTestZero1mass(m,A[i]);
}
}
{
cout<
for (int i =0; i
Zer=1;
}
cout<<"Zerorows--"<
}
{
cout<
for (int i =0; i
if(A[i][j]<0)
{
Zer=A[i][j];
rows=i;
cols=j;
cout<<"Zerorows__ "<
}
}
if(Zer==0)
cout<<"No negativ"<
}Пример 14:
Решение от преподавателя: