|
Задача 9.
Условие задачи Алгоритм работы Листинг программы Набор тестов
Условие задачи
Поверните треугольник, заданный координатами вершин, на указанный угол.
Условие задачи Алгоритм работы Листинг программы Набор тестов
Алгоритм работы
Задаем массив, размером 3×2.
В первой строке хранятся, координаты треугольника угла А, во второй строке – координаты угла В того же треугольника,
в третьей – координаты угла С соответственно. Первый столбец – координаты по x, второй – y.
Ввод значений осуществляется при помощи двух циклов с параметров. Далее вводим угол, на который
необходимо повернуть треугольник с заданными координатами вершин. При этом оговаривается, что если вводим со знаком «минус»,
то поворот осуществляется по часовой стрелке, если со знаком «плюс», то против часовой стрелки. Меняем координаты по
соответствующей формуле и выводим массив с новыми координатами вершин треугольника на экран.
Если x и y – это исходные вершины треугольника произвольного угла, то после поворота на угол ,
координаты будут следующими:
Условие задачи Алгоритм работы Листинг программы Набор тестов
Листинг программы
-
#include
#include
#include
#include
void main()
{
int n,m,x1,y1,x2,y2,x3,y,i,j,M1[5][5];
float fi,ppp,M2[5][5];
clrscr();
n=2;
m=1;
for (i=0; i<=n; i++)
{
switch(i)
{
case 0:cout <<"Vvedite koordinati ugla A: " ;break;
case 1:cout <<"Vvedite koordinati ugla B: " ;break;
case 2:cout <<"Vvedite koordinati ugla C: " ;break;
}
for (j=0; j<=m; j++)
{
if (j==0)
{
cout << endl;
cout <<"Vvedite koordinatu x"<<i+1<<":";
cout.width(8);
cin >> M1[i][j];
}
else
{
cout <<"Vvedite koordinati y"<<i+1<<": ";
cout.width(8);
cin >> M1[i][j];
}
}
cout << endl;
}
cout <<"Ishodnie koordanati treugolnica:";
cout << endl;
for (i=0; i<=n; i++)
{
for (j=0; j<=m; j++)
{
cout.width(8);
cout <<M1[i][j];
}
cout << endl;
}
cout <<"Vvedite ugol povorota v gradusah:";
cout <<"(so znakom '-' po chasovoi strelke; so znakom '+' protiv chasovoi strelki):";
cin>>fi;
fi=(fi*M_PI)/180;
cout << endl;
cout <<"Massiv s novimi znacheniyami koordinat:";
cout << endl;
for (i=0; i<=2; i++)
{
for(j=0; j<=1; j++)
{
if(j==0) M2[i][j]=M1[i][j]*cos(fi)-M1[i][j+1]*sin(fi);
else M2[i][j]=M1[i][j-1]*sin(fi)+M1[i][j]*cos(fi);
cout<<setprecision(4)<<setw(12)<<(M2[i][j]);
}
cout << endl;
}
}
|
-
#include
#include
#include
#include
int M1[5][5],n,m;
void VvodM1(int i, int j,int j1, int n, int m)
{
if(i<=n)
{
if (j<=m)
{
if (j==0)
{
cout <<"Vvedite koordinatu x"<<i+1<<":";
cout.width(8);
cin >> M1[i][j];
}
else
{
cout <<"Vvedite koordinati y"<<i+1<<": ";
cout.width(8);
cin >> M1[i][j];
}
j++;
VvodM1(i,j,j1,n,m);
}
else
{
cout << endl;
j=j1;
i++;
VvodM1(i,j,j1,n,m);
}
}
}
void main()
{
int i,j,j1;
float fi,ppp,M2[5][5];
clrscr();
n=2;
m=1;
j1=0;
VvodM1(0,0,j1,n,m);
cout <<"Ishodnie koordanati treugolnica:";
cout << endl;
for (i=0; i<=n; i++)
{
for (j=0; j<=m; j++)
{
cout.width(8);
cout <<M1[i][j];
}
cout << endl;
}
cout <<"Vvedite ugol povorota v gradusah:";
cout <<"(so znakom '-' po chasovoi strelke; so znakom '+' protiv chasovoi strelki):";
cin>>fi;
fi=(fi*M_PI)/180;
cout << endl;
cout <<"Massiv s novimi znacheniyami koordinat:";
cout << endl;
for (i=0; i<=2; i++)
{
for(j=0; j<=1; j++)
{
if(j==0) M2[i][j]=M1[i][j]*cos(fi)-M1[i][j+1]*sin(fi);
else M2[i][j]=M1[i][j-1]*sin(fi)+M1[i][j]*cos(fi);
cout<<setprecision(4)<<setw(12)<<(M2[i][j]);
}
cout << endl;
}
}
|
Условие задачи Алгоритм работы Листинг программы Набор тестов
Набор тестов к программе
-
Vvedite koordinati ugla A:
Vvedite koordinatu x1:20
Vvedite koordinati y1: 0
Vvedite koordinati ugla B:
Vvedite koordinatu x2:60
Vvedite koordinati y2: 0
Vvedite koordinati ugla C:
Vvedite koordinatu x3:40
Vvedite koordinati y3: 100
Ishodnie koordanati treugolnica:
20 0
60 0
40 100
Vvedite ugol povorota v gradusah:(so znakom '-' po chasovoi strelke; so znakom '
+' protiv chasovoi strelki):-45
Massiv s novimi znacheniyami koordinat:
14.1421 -14.1421
42.4264 -42.4264
98.9949 42.4264
-
Vvedite koordinati ugla A:
Vvedite koordinatu x1:-20
Vvedite koordinati y1: 0
Vvedite koordinati ugla B:
Vvedite koordinatu x2:-60
Vvedite koordinati y2: 0
Vvedite koordinati ugla C:
Vvedite koordinatu x3:-40
Vvedite koordinati y3: 100
Ishodnie koordanati treugolnica:
-20 0
-60 0
-40 100
Vvedite ugol povorota v gradusah:(so znakom '-' po chasovoi strelke; so znakom '
+' protiv chasovoi strelki):45
Massiv s novimi znacheniyami koordinat:
-14.1421 -14.1421
-42.4264 -42.4264
-98.9949 42.4264
Автор решения: Фролова Елена
группа: 121Ми
год: 2008
Автор задачи: Гладков В.П. Курс лабораторных работ по программированию: Учебное пособие для специальностей электротехнического факультета ПГТУ/ Перм.гос.техн.ун-т.-Пермь,1998.-153с.
|