|
Задача 19.
Условие задачи Алгоритм работы Листинг программы Набор тестов
Условие задачи
Напишите программу для заполнения трех двумерных массивов и последующего их вывода.
Первый массив, размером n×m, заполняется данными, вводимыми с клавиатуры, так
что заполнение ведется по строкам от первой строки, а внутри строки от последнего столбца.
Второй массив, размером n×n, заполняется случайными числами из интервала [-2;2] так, что в каждом столбце находятся числа одного знака.
Третий массив, размером n×n, заполняется для произвольного n также, как для n=5.
Условие задачи Алгоритм работы Листинг программы Набор тестов
Алгоритм работы
Для заполнения первого массива с последнего столбца использовался цикл for, начиная с j=m.
Во втором массиве вводились элементы первой строки и проверялись, если элемент положительный, то при заполнении столбца использовался диапазон [0..2], если отрицательный – [-2..-1]. Заполнение велось по столбцам
Третий массив заполняется по диагоналям, начиная с побочной и далее заполняются параллельные ей диагонали.
Условие задачи Алгоритм работы Листинг программы Набор тестов
Листинг программы
-
#include
#include
#include
#include
void main()
{
int a[100][100],b[100][100],c[100][100],i,j,n,m,p,k,nach;
cout<<"vvedite kol-vo elementov v 1 massive"<<endl;
cin>>n;
cin>>m;
clrscr;
for (i=0;i<n;i++)
{
for(j=m-1;j>=0;j--)
{
cout<<"vvedite elementi 1 massiva"<<endl;
cin>>p;
a[i][j]=p;
}
}
for (i=0;i<n;i++)
{
for (j=0;j<m;j++)
{
cout<<a[i][j]<<" ";}
cout<<endl;
}
cout<<"vvedite kol-vo elementov vo 2 massive"<<endl;
cin>>n;
randomize();
for (j=0;j<n;j++)
{
i=0;
b[i][j]=-2+random(5);
p=b[i][j];
if (p>=0)
{
for(i=1;i<n;i++)
b[i][j]=1+random(2);
}
else
{
for(i=1;i<n;i++)
b[i][j]=-2+random(2);
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
cout<<b[i][j]<<" ";}
cout<<endl;
}
cout<<"vvedite kol-vo elementov v 3 massive"<<endl;
cin>>n;
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
{
if ((i+j)<=n) c[i][j]=0;
}
}
k=0;
i=0;
j=n-1;
while (i<=(n-1) && j>=0)
{
i=k;
j=n-1;
nach=1;
while (i<=(n-1) && j>=0)
{
c[i][j]=nach;
nach=nach+1;
i=i+1;
j=j-1;
}
i=i-1;
j=j+2;
nach=1;
while(i>=0 && j<=(n+1))
{
c[i][j]=nach;
i=i-1;
j=j+1;
nach=nach+1;
}
k=k+2;
}
c[n][n]=1;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
cout<<c[i][j]<<" ";}
cout<<endl;
}
}
|
-
#include
#include
#include
#include
void f(int i,int j,int n,int m,int a[100][100]);
void f2(int j,int i,int n,int b[100][100]);
void main()
{
int a[100][100],b[100][100],c[100][100],i,j,n,m,p,k,nach;
cout<<"vvedite kol-vo elementov v 1 massive"<<endl;
cin>>n;
cin>>m;
clrscr;
i=0;
j=m-1;
f(i,j,n,m,a);
for (i=0;i<n;i++)
{
for (j=0;j<m;j++)
{
cout<<a[i][j]<<" ";}
cout<<endl;
}
cout<<"vvedite kol-vo elementov vo 2 massive"<<endl;
cin>>n;
randomize();
j=0;
i=0;
f2(j,i,n,b);
/*
for (j=0;j<n;j++)
{
i=0;
b[i][j]=-2+random(5);
p=b[i][j];
if (p>=0)
{
for(i=1;i<n;i++)
b[i][j]=random(3);
}
else
{
for(i=1;i<n;i++)
b[i][j]=-2+random(2);
}
}*/
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
cout<<b[i][j]<<" ";}
cout<<endl;
}
cout<<"vvedite kol-vo elementov v 3 massive"<<endl;
cin>>n;
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
{
if ((i+j)<=n) c[i][j]=0;
}
}
k=0;
i=0;
j=n-1;
while (i<=(n-1) && j>=0)
{
i=k;
j=n-1;
nach=1;
while (i<=(n-1) && j>=0)
{
c[i][j]=nach;
nach=nach+1;
i=i+1;
j=j-1;
}
i=i-1;
j=j+2;
nach=1;
while(i>=0 && j<=(n+1))
{
c[i][j]=nach;
i=i-1;
j=j+1;
nach=nach+1;
}
k=k+2;
}
c[n][n]=1;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
cout<<c[i][j]<<" ";}
cout<<endl;
}
}
void f(int i,int j,int n,int m,int a[100][100])
{
if (i<n)
{
for(j=m-1;j>=0;j--)
{
cout<<"vvedite el-ti 1 massiva"<<endl;
cin>>a[i][j];
}
f(i+1,n-1,n,m,a);
}
}
void f2(int j,int i,int n,int b[100][100])
{int p;
if (j<n)
{
i=0;
b[i][j]=-2+random(5);
p=b[i][j];
if (p>=0)
{
for(i=1;i<n;i++)
b[i][j]=1+random(2);
}
else
{
for(i=1;i<n;i++)
b[i][j]=-2+random(2);
}
f2(j+1,0,n,b);
}
}
|
Условие задачи Алгоритм работы Листинг программы Набор тестов
Набор тестов к программе
Тест 1:
Первый массив, исходные данные:
3 2 1
6 5 4
9 8 7
Результат:
1 2 3
4 5 6
7 8 9
Второй массив, исходные данные:5
Результат:
1 2 -2 0 1
2 1 -1 1 0
2 2 -2 2 0
1 0 -2 1 1
1 2 -1 0 0
Третий массив, исходные данные:3
Результат:
0 0 1
0 2 2
3 1 1
Тест 2:
Первый массив, исходные данные:
3 2 1 7
6 5 4 9
9 8 7 2
Результат:
7 1 2 3
9 4 5 6
2 7 8 9
Второй массив, исходные данные:3
Результат:
-1 -1 0
-2 -1 0
-1 -2 0
Третий массив, исходные данные:4
Результат:
0 0 0 1
0 0 2 3
0 3 2 1
4 1 2 1
Тест 3:
Первый массив, исходные данные:
12 13 14
11 10 15
Результат:
14 13 12
15 10 11
Второй массив, исходные данные:4
Результат:
-1 -1 0 -2
-2 -1 0 -1
-1 -2 0 -1
-1 -1 1 -2
Третий массив, исходные данные:5
Результат:
0 0 0 0 1
0 0 0 2 4
0 0 3 3 1
0 4 2 2 2
5 1 3 1 1
Автор решения: Панькова Екатерина
группа: 121Ми
год: 2009
Автор задачи: Гладков В.П. Курс лабораторных работ по программированию: Учебное пособие для специальностей электротехнического факультета ПГТУ /Перм. гос. техн. ун-т. - Пермь, 1998. - 153 с.
|