Задача 26.
Условие задачи Алгоритм работы Листинг программы Набор тестов
Условие задачи
- приведите три варианта возможных исходных данных и опишите словами процесс получения для них результатов;
- напишите программу;
- постройте тесты для отладки программы.
Задание:
Двумерный массив n*n заполнен 0,1 и 2. Выясните, стоят ли в нём два нуля рядом по горизонтали или вертикали
Условие задачи Алгоритм работы Листинг программы Набор тестов
Алгоритм работы
Описывается двумерный массив, который заполняется 0,1 и 2. Делается проверка по всему массиву, выясняем, стоят ли два нуля рядом по горизонтали или по вертикали. Выводим результат проверки.
Условие задачи Алгоритм работы Листинг программы Набор тестов
Листинг программы
-
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
int func1(int M[50][50],int n);
int main()
{
int ch,i,j,n,rez;
int M1[50][50];
cout<<"n: ";
cin>>n;
cout<<endl;
for (i=0;i<n;i++)
{cout<<"i="<<i<<endl;
for (j=0;j<n;j++)
{cout<<"j="<<j<<" :";
cin>>M1[i][j];}
}
for (i=0;i<n;i++)
{for (j=0;j<n;j++)
cout<<M1[i][j]<<" ";
cout<<endl;
}
if (rez=func1(M1,n)==0) cout<<"no";
else cout<<"yes";
rez=0;
int func1(int M[50][50], int n)
{ int rez,i,j;
rez=0;
for (i=0;i<n;i++)
{for (j=0;j<n;j++)
{
if (j<n-1) if ((M[i][j]==0)&&(M[i][j+1]==0)) rez=1;
if (i<n-1) if ((M[i][j]==0)&&(M[i+1][j]==0)) rez=1;}
}
return rez;
}
|
-
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
void func1_r(int M[50][50], int n, int i, int j, int & rez);
int main()
{
int ch,i,j,n,rez;
int M1[50][50];
cout<<"n: ";
cin>>n;
cout<<endl;
for (i=0;i<n;i++)
{cout<<"i="<<i<<endl;
for (j=0;j<n;j++)
{cout<<"j="<<j<<" :";
cin>>M1[i][j];}
}
for (i=0;i<n;i++)
{for (j=0;j<n;j++)
cout<<M1[i][j]<<" ";
cout<<endl;
}
func1_r(M1,n,0,0,rez);
if (rez==0) cout<<"no";
else cout<<"yes";
ch=getch();
return 0;
}
void func1_r(int M[50][50],int n, int i, int j, int &rez)
{
if (i<n)
{
if (j<n-1) if ((M[i][j]==0)&&(M[i][j+1]==0)) rez=1;
if (i<n-1) if ((M[i][j]==0)&&(M[i+1][j]==0)) rez=1;
j++; if (j==n) {j=0; i++;}
func1_r(M,n,i,j,rez);
}
}
|
Условие задачи Алгоритм работы Листинг программы Набор тестов
Набор тестов к программе
n: 4
i=0
j=0 :1
j=1 :2
j=2 :3
j=3 :4
i=1
j=0 :5
j=1 :6
j=2 :7
j=3 :8
i=2
j=0 :9
j=1 :1
j=2 :2
j=3 :3
i=3
j=0 :4
j=1 :5
j=2 :6
j=3 :7
1 2 3 4
5 6 7 8
9 1 2 3
4 5 6 7
no
n: 4
i=0
j=0 :6
j=1 :7
j=2 :5
j=3 :0
i=1
j=0 :3
j=1 :2
j=2 :5
j=3 :5
i=2
j=0 :1
j=1 :2
j=2 :0
j=3 :3
i=3
j=0 :5
j=1 :3
j=2 :0
j=3 :2
6 7 5 0
3 2 5 5
1 2 0 3
5 3 0 2
yes
Автор решения: Давыдов Артём
группа: 121Ми
год: 2008
Автор задачи: Гладков В.П. Курс лабораторных работ по программированию: Учебное пособие для специальностей электротехнического факультета ПГТУ/ Перм.гос.техн.ун-т.-Пермь,1998.-153с.
|