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

Не могу найти ошибки - C++

Восстановить пароль Регистрация
 
mazarinik
0 / 0 / 0
Регистрация: 02.10.2013
Сообщений: 17
08.10.2013, 21:59     Не могу найти ошибки #1
Приветствую всех. Прошу помощи в нахождение ошибок, если есть у кого альтернативный метод решения, прошу показать.

Даны действительные числа x1, y1, x2, y2, x3, y3. Известно, что точка с координатами (x1, y1), (x2, y2), (x3, y3), являться вершинами прямоугольника. Определить координаты четвертой вершины прямоугольника.






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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
 
void main(){
             float x1, y1, x2, y2, x3, y3, x4, y4;
             printf ("Vvedite koordinati toshek\n");
             scanf ("%f %f %f %f %f %f" , &x1, &y1, &x2, &x3, &y3);
 
private Rectangle createRectangleAndGeneratePoints(){
//create Point p1 - any point
Point p1 = new Point(Utils.generateRandom(RANDOM_RANGE),Utils.generateRandom(RANDOM_RANGE));
System.out.println(p1);
 
Point p2 = null;
Point p3 = null;
Point p4 = null;
 
//generate Point p2 - any point NOT equal to Point p1 
do {
p2 = new Point(Utils.generateRandom(RANDOM_RANGE),Utils.generateRandom(RANDOM_RANGE));
System.out.println(p2);
if (!p2.equals(p1)) {
break;
}
} while (true);
 
//generate Point p3 - in Pifagorus to p1 and p2
do {
p3 = new Point(Utils.generateRandom(RANDOM_RANGE),Utils.generateRandom(RANDOM_RANGE));
System.out.println(p3);
if (Utils.checkPifagorus(p1, p2, p3)) {
break;
}
} while (true);
 
//generate Point p4
//the 4-th point must be in front of the diagonal
//p4 pifagorus to both p1,p2 and p2,p3
do {
p4 = new Point(Utils.generateRandom(RANDOM_RANGE),Utils.generateRandom(RANDOM_RANGE));
System.out.println(p4);
if (Utils.checkPifagorus(p1, p2, p4) && Utils.checkPifagorus(p2, p3, p4)) {
break;
}
} while (true);
return new Rectangle(p1,p2,p3,p4);
}//end of createRectangleAndGeneratePoints()
 
/**
* Вычисление расстояния между двумя точками на плоскости 
* length = sqrt((x1-x2)^2 + (y1-y2)^2)
* */
public static double calculateSegmentLenth (Point p1, Point p2){
double length = Math.sqrt(Math.pow((p1.getX() - p2.getX()), 2) + Math.pow((p1.getY() - p2.getY()),2));
return length;
}
 
/**
* Округление до 2-х знаков с использованием BigDecimal
* */
public static double roundDouble(double d1, int scale){
return new BigDecimal(d1).setScale(scale, RoundingMode.HALF_UP).doubleValue();
}
 
public static boolean checkPifagorus(Point p1, Point p2, Point p3){
double[] lengthArray = new double[3];
 
double catet1 = 0.0;
double catet2 = 0.0;
double gipothenuze = 0.0;
 
if (!p1.equals(p2) && !p1.equals(p3) && !p2.equals(p3)) {
 
lengthArray[0] = Utils.calculateSegmentLenth(p1, p2);
System.out.println("Array[0]: " + lengthArray[0]);
 
lengthArray[1] = Utils.calculateSegmentLenth(p2, p3);
System.out.println("Array[1]: " + lengthArray[1]);
 
lengthArray[2]= Utils.calculateSegmentLenth(p1, p3);
System.out.println("Array[2]: " + lengthArray[2]);[
 
//sorting the array
Arrays.sort(lengthArray);
 
catet1 = lengthArray[0];
catet2 = lengthArray[1];
gipothenuze = lengthArray[2];
 
double catetSquare = Utils.roundDouble(Math.pow(catet1,2) +  Math.pow(catet2, 2),5);
double gipothenuzeSquare = Utils.roundDouble(Math.pow(gipothenuze, 2),5);
 
if (catetSquare == gipothenuzeSquare) {
System.out.println("catetsSquare: " + catetSquare + " gipothenyzeSquare: " + gipothenuzeSquare);
return true;
}
}
return false;
}
 
/**
* Генерирует случайное число по заданному диапазону randomRange 
* --randomRange/2 + Math.random()*randomRange
* */
public static int generateRandom(int randomRange){
return (int)(-randomRange/2 + Math.random()*randomRange);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.10.2013, 21:59     Не могу найти ошибки
Посмотрите здесь:

нужно найти ошибки в задаче на языке C/ их в районе 10 как выдает компилятор но я не могу их исправить (не знаю как) C++
C++ Ввести целое число N > 0, являющееся некоторой степенью числа 2 Ошибки не могу найти
Не могу исправить ошибки C++
не могу найти ошибки C++
C++ Не могу найти ошибки
C++ НЕ могу найти ошибки (с++)
C++ Не могу исправить ошибки
Не могу исправить ошибки C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 07:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru