|
Задача 25.
Условие задачи Алгоритм работы Листинг программы Набор тестов
Условие задачи
Напишите программу для заполнения трех двумерных массивов и последующих их вывода.
Первый массив, размерностью n x m, заполняется данными, вводимыми с клавиатуры, так что заполнение ведется по столбцам от последних элементов столбца к первым.
Второй массив, размерностью n x n, заполняется случайными числами так, что в каждом столбце получается возрастающая последовательность элементов
Третий массив, размерностью n x n, заполняется для произвольного n так же, как для n=5
2 3 5 7 11
13 17 19 23 29
31 37 41 43 47
53 59 61 67 71
73 79 83 89 97
Условие задачи Алгоритм работы Листинг программы Набор тестов
Алгоритм работы
Описываем массив, размерностью n x m, который будет заполняться с клавиатур, так что заполнение ведется по столбцам от последних элементов столбца к первым. Затем описываем второй массив, который заполняется случайным числами по возрастанию. Описываем третий массив n x m, который заполняется для произвольного n так же, как для n=5.
Условие задачи Алгоритм работы Листинг программы Набор тестов
Листинг программы
-
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
void func1(int M[40][50],int m, int n);
void func2(int M[50][50], int n);
int nextprst(int zn);
void func3(int M[50][50], int n, int zn);
int main()
{
int ch,i,j,m,n,zn;
int M1[40][50];
int M2[50][50];
int M3[50][50];
cout<<"m: ";
cin>>m;
cout<<"n: ";
cin>>n;
cout<<endl;
func1(M1,m,n);
for (i=0;i<m;i++)
{for (j=0;j<n;j++)
cout<<M1[i][j]<<" ";
cout<<endl;
}
randomize();
cout<<"n: ";
cin>>n;
cout<<endl;
func2(M2,n);
for (i=0;i<n;i++)
{for (j=0;j<n;j++)
cout<<M2[i][j]<<" ";
cout<<endl;
}
cout<<" "<<endl;
func3(M3,n,2);
for (i=0;i<n;i++)
{for (j=0;j<n;j++)
cout<<M3[i][j]<<" ";
cout<<endl;
}
cout<<" "<<endl;
void func1(int M[40][50],int m, int n)
{ int i,j;
for (j=n-1;j>=0;j--)
{for (i=m-1;i>=0;i--)
{cout<<"M("<<i+1<<","<<j+1<<")";
cin>>M[i][j];}
}
}
void func2(int M[50][50], int n)
{ int i,j;
for (i=0;i<n;i++)
{for (j=0;j<n;j++)
{if (i==0) M[i][j]=random(7)+1;
else M[i][j]=M[i-1][j]+random(5)+1;}
}
}
int nextprst(int zn)
{int m,i,j;
m=zn;
do
{m++; i=0;
for (j=2;j<m;j++)
if ((m%j)==0) i++;
}
while (i!=0);
return m;
}
void func3(int M[50][50], int n, int zn)
{ int i,j;
for (i=0;i<n;i++)
{for (j=0;j<n;j++)
{ M[i][j]=zn;
zn=nextprst(zn); }
}
}
|
-
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
void func1_r(int M[40][50],int m, int n, int i, int j);
void func2_r(int M[50][50],int n, int i, int j);
int nextprst(int zn);
void func3_r(int M[50][50],int n, int i, int j, int zn);
int main()
{
int ch,i,j,m,n,zn;
int M1[40][50];
int M2[50][50];
int M3[50][50];
cout<<"m: ";
cin>>m;
cout<<"n: ";
cin>>n;
cout<<endl;
func1_r(M1,m,n,m-1,n-1);
for (i=0;i<m;i++)
{for (j=0;j<n;j++)
cout<<M1[i][j]<<" ";
cout<<endl;
}
randomize();
cout<<"n: ";
cin>>n;
cout<<endl;
func2_r(M2,n,0,0);
for (i=0;i<n;i++)
{for (j=0;j<n;j++)
cout<<M2[i][j]<<" ";
cout<<endl;
}
cout<<"n: ";
cin>>n;
cout<<endl;
func3_r(M3,n,0,0,2);
for (i=0;i<n;i++)
{for (j=0;j<n;j++)
cout<<M3[i][j]<<" ";
cout<<endl;
}
ch=getch();
return 0;
}
void func1_r(int M[40][50],int m, int n, int i, int j)
{
if (j>=0)
{
cout<<"M("<<i+1<<","<<j+1<<")";
cin>>M[i][j];
i--; if (i<0) {i=m-1; j--;}
func1_r(M,m,n,i,j);
}
}
void func2_r(int M[50][50], int n, int i, int j)
{
if (i<n)
{ if (i==0) M[i][j]=random(7)+1;
else M[i][j]=M[i-1][j]+random(5)+1;
j++; if (j==n) {j=0; i++;}
func2_r(M,n,i,j);
}
}
int nextprst(int zn)
{int m,i,j;
m=zn;
do
{m++; i=0;
for (j=2;j<m;j++)
if ((m%j)==0) i++;
}
while (i!=0);
return m;
}
void func3_r(int M[50][50], int n, int i, int j, int zn)
{
if (i<n)
{ M[i][j]=zn;
zn=nextprst(zn);
j++; if (j==n) {j=0; i++;}
func3_r(M,n,i,j,zn);
}
}
|
Условие задачи Алгоритм работы Листинг программы Набор тестов
Набор тестов к программе
m: 3
n: 2
M(3,2)1
M(2,2)2
M(1,2)3
M(3,1)4
M(2,1)5
M(1,1)6
6 3
5 2
4 1
n: 3
2 1 4
3 4 7
4 9 12
n: 5
2 3 5 7 11
13 17 19 23 29
31 37 41 43 47
53 59 61 67 71
73 79 83 89 97
Автор решения: Давыдов Артём
группа: 121Ми
год: 2008
Автор задачи: Гладков В.П. Курс лабораторных работ по программированию: Учебное пособие для специальностей электротехнического факультета ПГТУ/ Перм.гос.техн.ун-т.-Пермь,1998.-153с.
|