Задача 1.
Условие задачи Алгоритм работы Листинг программы Набор тестов
Условие задачи
Напишите программу для заполнения трех двумерных массивов и последующих их вывода.
Первый массив, размером n×m, заполняется данными, вводимыми с клавиатуры, так
что заполнение ведется по столбцам от первых элементов столбца к последним.
Второй массив, размером n×n, заполняется случайными числами так,
что нечетные числа заносятся в элементы массива, которые на шахматной доске были бы
черными, а четные числа заносятся в элементы, которые на шахматной доске были бы белыми:
Третий массив, размером n×n, заполняется для произвольного n так же, как для n=5:
Условие задачи Алгоритм работы Листинг программы Набор тестов
Алгоритм работы
Заполнение первого массива: при одном значении столбца перебираются все значения строки; далее значение столбца увеличивается на 1, при нем также перебираются все значения строки; и так далее.
Заполнение второго массива: генерируется число; проверяется – если значение строки и значение столбца оба нечетные или оба четные, то это позиция белого цвета, значит сгенерированное число делается четным; если значение строки и значение столбца разнородные, то это позиция черного цвета, значит сгенерированное число делается нечетным.
Заполнение третьего массива: заполнение происходит в два этапа. На первом этапе заполняются элементы, находящиеся ниже побочной диагонали, начиная с последней позиции; на втором этапе заполняются элементы, находящиеся выше побочной диагонали, начиная с первой позиции, а также заполнение элементов побочной диагонали.
Условие задачи Алгоритм работы Листинг программы Набор тестов
Листинг программы
-
#include
#include
#include
void main()
//массив первый
{
int n,m,ch,i,j,a[100][100];
cout<<"Введите n:" ;
cin>>n;
cout<<"Введите m:" ;
cin>>m;
ch=1;
for(j=0; j<n; j++)
{
for(i=0; i<m; i++)
{
a[i][j]=ch;
ch++;
}
}
for(i=0; i<m; i++)
{
for(j=0; j<n; j++)
{
cout.width(3); cout<<a[i][j];
}
cout<<"\n";
}
//массив второй
randomize();
cout<<"Введите n:" ;
cin>>n;
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
a[i][j]=random(51)-25;
if (((i%2==0)&&(j%2==0))||((i%2!=0)&&(j%2!=0)))
a[i][j]=a[i][j]*2;
else a[i][j]=a[i][j]*2-1;
}
}
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
cout.width(4);
cout<<a[i][j];
}
cout<<"\n";
cout<<"\n";
}
//массив третий
cout<<"Введите n:" ;
cin>>n;
ch=1;
a[n-1][n-1]=ch;
i=n-1;
j=n-1;
ch++;
j--;
a[i][j]=ch;
ch++;
while (j>=0)
{
while (j<n-1)
{
i--;
j++;
a[i][j]=ch;
ch++;
}
i--;
a[i][j]=ch;
ch++;
while (i<n-1)
{
i++;
j--;
a[i][j]=ch;
ch++;
}
j--;
a[i][j]=ch;
ch++;
}
i=0;
j=0;
ch=n*n;
a[i][j]=ch;
ch--;
j++;
a[i][j]=ch;
ch--;
while (j<n-1)
{
while (j>0)
{
i++;
j--;
a[i][j]=ch;
ch--;
}
i++;
a[i][j]=ch;
ch--;
while (i>0)
{
i--;
j++;
a[i][j]=ch;
ch--;
}
j++;
a[i][j]=ch;
ch--;
}
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
cout.width(4); cout<<a[i][j];
}
cout<<"\n";
cout<<"\n";
}
}
|
-
#include
#include
#include
void viv(int n, int i, int a[100][100]);
void main()
//массив первый
{
int n,m,ch,i,j,a[100][100];
cout<<"Введите n:" ;
cin>>n;
cout<<"Введите m:" ;
cin>>m;
ch=1;
for(j=0; j<n; j++)
{
for(i=0; i<m; i++)
{
a[i][j]=ch;
ch++;
}
}
for(i=0; i<m; i++)
{
for(j=0; j<n; j++)
{
cout.width(3); cout<<a[i][j];
}
cout<<"\n";
}
//массив второй
randomize();
cout<<"Введите n:" ;
cin>>n;
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
a[i][j]=random(51)-25;
if (((i%2==0)&&(j%2==0))||((i%2!=0)&&(j%2!=0))) a[i][j]=a[i][j]*2;
else a[i][j]=a[i][j]*2-1;
}
}
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
cout.width(4); cout<<a[i][j];
}
cout<<"\n";
cout<<"\n";
}
//массив третий
cout<<"Введите n:" ;
cin>>n;
ch=1;
a[n-1][n-1]=ch;
i=n-1;
j=n-1;
ch++;
j--;
a[i][j]=ch;
ch++;
while (j>=0)
{
while (j<n-1)
{
i--;
j++;
a[i][j]=ch;
ch++;
}
i--;
a[i][j]=ch;
ch++;
while (i<n-1)
{
i++;
j--;
a[i][j]=ch;
ch++;
}
j--;
a[i][j]=ch;
ch++;
}
i=0;
j=0;
ch=n*n;
a[i][j]=ch;
ch--;
j++;
a[i][j]=ch;
ch--;
while (j<n-1)
{
while (j>0)
{
i++;
j--;
a[i][j]=ch;
ch--;
}
i++;
a[i][j]=ch;
ch--;
while (i>0)
{
i--;
j++;
a[i][j]=ch;
ch--;
}
j++;
a[i][j]=ch;
ch--;
}
viv(n,i,a);
}
void viv(int n, int i, int a[100][100])
{
int j;
if (i<n)
{
for(j=0; j<n; j++)
{
cout.width(4); cout<<a[i][j];
}
cout<<"\n";
cout<<"\n";
i++;
viv(n,i,a);
}
}
|
Условие задачи Алгоритм работы Листинг программы Набор тестов
Набор тестов к программе
Массив первый:
Массив второй:
Массив третий:
Автор решения: Груздева Илона
группа: 121Ми
год: 2008
Автор задачи: Гладков В.П. Курс лабораторных работ по программированию: Учебное пособие для специальностей электротехнического факультета ПГТУ /Перм. гос. техн. ун-т. Пермь, 1998. 153 с.
|