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

Графическое изображение геометрических фигур на координатной плоскости - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Обработка массивов. Программа, которая вычисляет приближенно площадь фигуры, ограниченной частью кривой http://www.cyberforum.ru/cpp-beginners/thread851518.html
тема: Обработка массивов. на си++ Тема: Обработка массивов. Составить программу, которая вычисляет приближенно площадь фигуры, ограниченной частью кривой у=у(х)=х+(х^1/2)+(х^2/3)-2,5 лежащей в верхней полуплоскости, осью абсцисс и прямой х=2. Для определения левого конца интервала изменения х найти корень уравнения х+(^1/2)+(х^2/3)-2,5=0 на отрезке с точностью 10^-4 . Для решения...
C++ Перезапуск программы по таймеру Всем привет. Необходимо в определенное время перезапустить программу, запущенную на компьютере. Как реализовать? http://www.cyberforum.ru/cpp-beginners/thread851516.html
chained hash table C++
У меня вопросы на счёт chained hash table. - Можем ли мы хранить различные записи (records), чьи ключи генерируют одно и тоже значение хеш (hash value)? - пропорционально ли число записей, которые мы можем хранить - размеру хеш таблицы? - ЧИсло значений хеш (hash value) лимитировано ли размером хеш таблицы? - Нужно ли нам делать различия между элементами таблицы, котор. никогда не...
C++ не работает прога
#include <cstdlib> #include <stdio.h> #include <iostream.h> #include <math.h> #include <stdlib.h> #include <conio.h> //#define N 11
C++ Сортировка простым слиянием http://www.cyberforum.ru/cpp-beginners/thread851503.html
Нужно считать числа из двух документов, сделать слияние и сортировку и вывести результат в консоли. Искала нечто похожее, не нашла.
C++ Генеалогическое дерево Помогите придумать как решить. Каким-нибудь способом, потому что я даже не знаю как к ней подойти, при этом ее нужно сделать в консоле. Организовать генеалогическое дерево в виде многосвязного списка. Написать процедуры, позволяющие: -добавлять элементы, устанавливая родственные связи; -осуществлять поиск элемента по имени и по родственным связям; -распечатывать ветвь дерева, начиная с... подробнее

Показать сообщение отдельно
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
29.04.2013, 08:43     Графическое изображение геометрических фигур на координатной плоскости
Абсолютно невозможно читать этот код. Вы от того и страдаете.

Не хотите разбить этот код на отдельные сущности? Выделить треугольники в структуры, работу с ними -- в отдельные функции. Так будет значительно проще находить ошибки. Ну и можно очеловечить слегка вывод тоже.

Добавлено через 23 минуты
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <time.h>
 
typedef struct {
  double x, y;
} Point;
 
typedef struct {
  Point a, b, c;
} Triangle;
 
double getDistance(Point a, Point b) {
  return sqrt(pow(a.x - b.x, 2.0) + pow(a.y - b.y, 2.0));
}
 
void printPoint(Point point) {
  printf("Point{x=%.2f,y=%.2f}\n", point.x, point.y);
}
 
void printTriangle(Triangle triangle) {
  printf("Triangle{a=Point{x=%.2f,y=%.2f},b=Point{x=%.2f,y=%.2f},"
    "c=Point{x=%.2f,y=%.2f}}\n",
    triangle.a.x, triangle.a.y, triangle.b.x, triangle.b.y, 
    triangle.c.x, triangle.c.y);
}
 
Point getRandomPoint() {
  Point point = {(rand() % 1000) / 100., (rand() % 1000) / 100.};
  return point;
}
 
Triangle getTriangle(Point a, Point b, Point c) {
  Triangle triangle = {a, b, c};
  return triangle;
}
 
int main(int argc, char *argv[]) {
  srand(time(0));
 
  const int numberOfPoints = 10;
  Point points[numberOfPoints];
  
  // задание случайных точек
  int i;
  for (i = 0; i < numberOfPoints; ++i) {
    points[i] = getRandomPoint();
    printPoint(points[i]);
  }
 
  // поиск максимального треугольника
  double maximumPerimeter = 0;
  Triangle maximumTriangle;
  for (i = 0; i < numberOfPoints - 2; ++i) {
    int j;
    for (j = i + 1; j < numberOfPoints - 1; ++j) {
      double ab = getDistance(points[i], points[j]);
      int k;
      for (k = j + 1; k < numberOfPoints; ++k) {
        double ac = getDistance(points[i], points[k]);
        double bc = getDistance(points[j], points[k]);
        double thisPerimeter = ab + ac + bc;
        if (thisPerimeter > maximumPerimeter) {
          maximumPerimeter = thisPerimeter;
          maximumTriangle = getTriangle(points[i], points[j], points[k]);
        }
      }
    }
  }
 
  // вывод на экран
  printf("Maximum perimeter: %.2f\n", maximumPerimeter);
  printTriangle(maximumTriangle);
  
  return 0;
}
 
Текущее время: 04:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru