Форум программистов, компьютерный форум CyberForum.ru

Определение трассы пути движения точки на плоскости - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Используя родительский класс http://www.cyberforum.ru/cpp-beginners/thread39805.html
Используя родительский класс «РАБОЧИЙ» породить производный класс «ДИРЕКТОР». Используя классы «ФИРМА» и «ДИРЕКТОР», описать класс «РУКОВОДИТЕЛЬ ФИРМЫ». Расширить класс «РУКОВОДИТЕЛЬ ФИРМЫ» создав два производных класса «РУКОВОДИТЕЛЬ Гос. уч.» и «РУКОВОДИТЕЛЬ ООО». Продумать для данной иерархии классов, все поля и методы которые на ваш взгляд будут востребованы программистами (вывод информации о...
C++ Даны две матрицы произвольной размерности При выполнении этого задания необходимо написать две функции. Одна из этих функций должна получать и обрабатывать матрицу целиком. Другая функция должна обрабатывать одномерный массив. В качестве этого одномерного массива передаётся одна строка матрицы. Даны две матрицы произвольной размерности. Для той из матриц, в которой больше максимальный элемент, найти максимальный элемент в каждой строке. http://www.cyberforum.ru/cpp-beginners/thread39800.html
Заполнить файл n натуральными числами с помощью генератора случайных чисел C++
Как-то даже неудобно спрашивать. Ребят, но если не трудно помогите пожалуйста. 1. Заполнить файл n натуральными числами с помощью генератора случайных чисел. Получить новый файл из наименьших общих делителей всех пар соседних чисел. 2. Дан массив, содержащий, информацию об учениках школы. Заполнить второй массив данными об учениках, которые занимаются в танцевальном кружке. по певой...
C++ No such file or directory
пытаюсь разобраться с visual C++, беру программу из книжки visual c++ для начинающих, делаю, как написано: Что бы начать изучать C++ сначала создадим простое консольное приложение. Для этого запустите Visual C++. Выберите 'New' в меню 'File'. Проверте, что бы в диалоговой панеле 'New' была выбрана закладка 'Projects'. В списке типов проектов выберите 'Win32 Console Application'. Выберите...
C++ Реализовать метод простых итераций http://www.cyberforum.ru/cpp-beginners/thread39784.html
Как можно реализовать метод простых итераций для следующего уравнения: 2.5-(sqrt(x)+pow(x, 1./3))/exp(3./2)-x=0? Я нашёл площадь на отрезке a, b с помощью метода трапеций, а вот с итерациями беда - весь интернет перерыл, нормального алгоритма нахождения корня не встретил. Спасибо заранее.
C++ C++ Матрица Здравствуйте уважаемые программисты, вот есть задача:повернуть на 90 градусов по часовой стрелке 8 смежных элементов матрицы. Я совершенно не знаю как эту задачку решить. :( Помогите пожалуйста подробнее

Показать сообщение отдельно
Dima_1985
0 / 0 / 0
Регистрация: 12.06.2009
Сообщений: 3

Определение трассы пути движения точки на плоскости - C++

12.06.2009, 16:56. Просмотров 685. Ответов 4
Метки (Все метки)

Добрый день! С праздником всех!! Помогите поалуйста решить задачу.. Делал в Borland C++ 3.1 после ввода значений точек А и В автоматически вылетает из окна вывода результата.. вот текст программы:
Код
#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
#include <dos.h>
#include <stdio.h>
struct point
{float x,y;
};
struct koord
{
float xu;
float yu;
float xd;
float yd;
};

void main()
{  clrscr();
float y,x, s, k, l;
s=1;
int i,j;
struct koord kv[5][5];
  kv[0][0].yd=0;
  kv[0][0].xd=0;
 kv[0][0].yu=kv[0][0].yd+s;
kv[0][0].xu=kv[0][0].xd+s;

  for(i=0;i<5;i++)
  { 
       
    for(j=1;j<5;j++)
   {
       kv[i][j].xd=kv[i][j-1].xu;
          kv[i][j].yd=kv[i-1][j].yu;
 
       kv[i][j].xu=kv[i][j-1].xu+s;
          kv[i][j].yu=kv[i-1][j].yu; 
  printf("KV xd=%.0f, yd=%.0f, xu=%.0f, yu=%.0f\n",kv[i][j].xd, kv[i][j].yd, kv[i][j].xu, kv[i][j].yu);
} 
  }

   struct point A,B;
       printf ("Vvedite koord A(x,y)\n");
    scanf ("%f%f",&A.x,&A.y);
       printf ("Vvedite koord B(x,y)\n");
    scanf ("%f%f",&B.x,&B.y);

  float xmin, xmax, ymin, ymax;


  if(A.x<B.x)
  {
    xmin=A.x;
    xmax=B.x;
  }
    else
    {
    xmin=B.x;
    xmax=A.x;
    }

	if(A.y<B.y)
	 {
	   ymin=A.y;
	   ymax=B.y;
	 }
	 else
	 {
	   ymin=B.y;
	   ymax=A.y;
	 }
for(i=0;i<5;i++)
		{


			for(j=0;j<5;j++)
			   {    if(xmin<kv[i][j].xu&&xmin>kv[i][j].xd&&ymin<kv[i][j].yu&&ymin>kv[i][j].yd)
			    printf("Kvadrat tochki A= %d  %d\n",i+1,j+1);
			     else
				  if(xmax<kv[i][j].xu&&xmax>kv[i][j].xd&&ymax<kv[i][j].yu&&ymax>kv[i][j].yd)
				     printf ("Kvadrat tochki B= %d  %d\n",i+1,j+1);}}

if(B.x!=A.x)
{
	l=(B.y-A.y)/(B.x-A.x);
	for(i=0;i<5;i++)
	{


		for(j=0;j<5;j++)
		{


			k=(kv[i][j].yu-kv[i][j].yd)/(kv[i][j].xu-kv[i][j].xd);
			if(k!=l||-k!=l)
				{
					x=(k*kv[i][j].xd-l*A.x+A.y-kv[i][j].yd)/(k-l);
					y=(((x-kv[i][j].xd)*(kv[i][j].yu-kv[i][j].yd))/(kv[i][j].xu-kv[i][j].xd))+kv[i][j].yd;
				if(x<xmax&&x>xmin&&y<ymax&&y>ymin&&x<kv[i][j].xu&&x>kv[i][j].xd&&y<kv[i][j].yu&&y>kv[i][j].yd)
				 {
					printf("Kvadrat %d  %d\n",i+1,j+1);
				 }
				else
				{
					x=(-k*kv[i][j].xu-l*A.x+A.y-kv[i][j].yd)/(-k-l);
					y=(((x-kv[i][j].xu)*(kv[i][j].yu-kv[i][j].yd))/(kv[i][j].xd-kv[i][j].xu))+kv[i][j].yd;
					if(x<xmax&&x>xmin&&y<ymax&&y>ymin&&x<kv[i][j].xu&&x>kv[i][j].xd&&y<kv[i][j].yu&&y>kv[i][j].yd)
					{
						printf("Kvadrat %d  %d\n",i+1,j+1);
					}
				}
			}
			else
			{
					printf("Kvadrat %d  %d\n",i+1,j+1);
			}
		}
	}
}
else
{
     for(i=0;i<5;i++)
     for(j=0;j<5;j++)               if(kv[i][j].xd<xmax&&kv[i][j].xu>xmin&&kv[i][j].yd<ymax&&kv[i][j].yu>ymin)

		    printf("Kvadrat %d  %d\n",i+1,j+1);
}
     getch();

}
Добавлено через 1 минуту 12 секунд
где k-коэффициент диагонали квадрата, l-коэффициент прямой проходящей через эти квадраты
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru