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

Определить координаты вершины треугольника - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как скомпилировать программу на Mac OS http://www.cyberforum.ru/cpp-beginners/thread209094.html
Например, написал я программу на Си в TextEdit, теперь мне нужно её скомпилировать. Я установил gcc 4.2 который идёт в комплекте с xcode. Как мне теперь скомпилировать написанную программу?
C++ Найти число в двоичной записи которого максимальное число единиц Среди простых чисел ,не превосходящих N ,найти такое ,в двоичной записи которого максимальное число единиц. Уважаемые форумчане помогите с кодом, буду очень благодарен. http://www.cyberforum.ru/cpp-beginners/thread209088.html
C++ Найти непрерывные участки, на которых сумма элементов равна 100
Найти непрерывные участки, на которых сумма элементов равна 100 Что-то я тут намудрил... Помогите поправить.. #include "stdafx.h" #include <iostream> #include <ctime> using namespace std; int _tmain(int argc, _TCHAR* argv) {
как в файле вывести все в стречку и не в столбик ?!!?! C++
здравствуйте помогите с выводом в файл обычный "txt."... вот мой код и что делает программа "Умножить каждое четное число на первое отрицательное число. Добавить к каждому числу половину последнего отрицательного числа." /--------------------------------------------------------------------------- #pragma hdrstop #include <stdio.h> #include <conio.h> #include <list.h> #include...
C++ Нахождение определителя матрицы n-го порядка без рекурсии http://www.cyberforum.ru/cpp-beginners/thread209084.html
Здравствуйте, мне на дом дали задачу на С++ написать программу которая находит определитель матрицы n го порядка, я довольно быстро её реализовал рекурсивным методом, а потом задумался "а можно ли сделать тоже самое без рекурсии"?..долго ломал голову и не выдержал..решил спросить у вас:)
C++ Вывод символа слева и его соответствующего кода ASCII справа Собственно вопрос как это сделать? подробнее

Показать сообщение отдельно
BrumbleHorse
 Аватар для BrumbleHorse
120 / 120 / 11
Регистрация: 18.09.2010
Сообщений: 212
23.12.2010, 23:37     Определить координаты вершины треугольника
Цитата Сообщение от Stormfire Посмотреть сообщение
Мне кажеться, что это как-то не правильно. Ведь максимальный диапазон не должен влиять на точку минимума.
На самом деле влияет и по одной простой причине: одна из точек С, дающих минимальную площадь, всегда окажется на краю диапазона.. это происходит из-за того, что мы используем целочисленные координаты.. соответственно, если точка Б не лежит на прямой, проходящей через начало координат, то самая маленькая площадь всегда составит 0,5. И таких точек С,дающих площадь 0,5, найдется много в заданном диапазоне(т е чем больше координаты очередной подходящей точки С, тем более вытянутым будет треугольник, а площадь у него так и будет этой минимальной-0,5.. Если же Б лежит на прямой,проходящей через начало координат (т е Х и У у Б равны), то никакая точка С не даст нам этой минимальной площади 0,5 ( да и если разница между Х и У точки Б велика то тоже минимальная площадь будет больше)..в этом случае минимальная площадь будет варьироваться в зависимости от координат Б..например при Б(2,2) минимальная площадь будет 1,0 при Б(3,3) будет 1,5 и т д.. а программа собственно находит все эти точки с минимальной площадью но выводит не все, а первую встретившуюся в заданном диапазоне

Добавлено через 2 минуты
Вот исправленная программа, координаты точек Б и С задаются в main и передаются в функцию аргументами, соответственно для точки С передаются указатели на координаты (чтобы функция могла их изменить)
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <stdio.h>
#include <math.h>
#include <conio.h>
#define X1 0
#define Y1 0
#define MAX 15 /*максимальное значение координаты, можно изменить, если требуется больший диапазон*/
void f_triangle(int* X_3,int* Y_3,int X_2,int Y_2)
{
  double sqr=0,min=MAX;
  int X3,Y3,i,j;
  for(X3=-MAX,i=-MAX;i<MAX;++X3,++i)
  {
      for(Y3=-MAX,j=-MAX;j<MAX;++Y3,++j)
      {
        if(X3==X1&&Y3==Y1)
        break;
        if(X3==X_2&&Y3==Y_2)
        break;
        sqr=fabs((X_2-X1)*(Y3-Y1)-(X3-X1)*(Y_2-Y1))/2;
        if(sqr<min&&sqr!=0)
        {
            min=sqr;
            *X_3=X3;
            *Y_3=Y3;
        }
      }
  }
}
void main()
{
 int x2, y2, x3, y3;
 int* px=&x3;
 int* py=&y3;
 printf("Please input X coordinate of B point:\n");
 scanf("%d",&x2);
 printf("Please input Y coordinate of B point:\n");
 scanf("%d",&y2);
 f_triangle(px,py,x2,y2);
 printf("Your C point coordinates is: %d ; %d\n", x3,y3);
 getch();
}
Добавлено через 4 минуты
Чтобы было понятнее вот та же программа, но она выводит разные значения точек и соответствующие им значения площадей:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <stdio.h>
#include <math.h>
#include <conio.h>
#define X1 0
#define Y1 0
#define MAX 30 /*максимальное значение координаты, можно изменить, если требуется больший диапазон*/
void f_triangle(int* X_3,int* Y_3,int X_2,int Y_2)
{
  double sqr=0,min=MAX;
  int X3,Y3,i,j;
  for(X3=-MAX,i=-MAX;i<MAX;++X3,++i)
  {
      for(Y3=-MAX,j=-MAX;j<MAX;++Y3,++j)
      {
        if(X3==X1&&Y3==Y1)
        break;
        if(X3==X_2&&Y3==Y_2)
        break;
        sqr=fabs((X_2-X1)*(Y3-Y1)-(X3-X1)*(Y_2-Y1))/2;
        if(sqr<=min&&sqr!=0)
        {
            min=sqr;
            *X_3=X3;
            *Y_3=Y3;
            printf("point C: %d;%d\nS = %f\n",*X_3,*Y_3,min);
        }
      }
  }
}
void main()
{
 int x2, y2, x3, y3;
 int* px=&x3;
 int* py=&y3;
 printf("Please input X coordinate of B point:\n");
 scanf("%d",&x2);
 printf("Please input Y coordinate of B point:\n");
 scanf("%d",&y2);
 f_triangle(px,py,x2,y2);
 printf("Your C point coordinates is: %d ; %d\n", x3,y3);
 getch();
}
 
Текущее время: 04:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru