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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Spect
1 / 1 / 0
Регистрация: 17.11.2013
Сообщений: 75
#1

Найдите ошибку(и) в программе - C++

20.01.2014, 20:26. Просмотров 210. Ответов 6
Метки нет (Все метки)

Не работает программа, где я совершил ошибку??
Для справки: программа определяет принадлежность точки к заданной области.

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
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <math.h>
 
using namespace std;
void R0(double);
 
void if2(double, double, double, double, double, double, double, double, double, double, double,double,double,double);
bool if1(double, double, double, double, double, double, double, double, double, double, bool);
 
void R0(double r)
{
    while (r<0)
    {
        cout<<"\nРадиус меньше нуля - ошибка!\nВведите радиус повторно\n";
        cin>>r;
    }
 
    while (r==0)
    {
        cout<<"\nРадиус равен нулю - ошибка!\nВведите радиус повторно\n";
        cin>>r;
    }
}
 
void if2(double x, double y, double x1, double y1, double x2, double y2, double x3, double y3, double R1, double R2, double R3, double y4,double y5,double y6)
{
    //double a1,b1,a2,b2,a3,b3,x4,x5,x6,y4,y5,y6;
    
    if ((pow((x-x1),2)+pow((y-y1),2) <= pow(R1,2) || pow((x-x2),2)+pow((y-y2),2) <= pow(R2,2) || pow((x-x3),2)+pow((y-y3),2) <= pow(R3,2)) || ((y4>y)&&(y5<y)&&(y6<y)))
        cout<<"\nДанная точка принадлежит заданной области"<<endl;  
    else cout<<"\nДанная точка не принадлежит заданной области"<<endl;
}
 
 
 
bool if1(double x, double y, double x1, double y1, double x2, double y2, double x3, double y3, double R1, double R2, double R3, bool f)
{
    if (((x2-x1)*(y3-y1) - (y2-y1)*(x3-x1))==0)
    {
        cout<<"\nОшибка.Центры окружностей лежат на одной прямой!\nВведите их повторно\n"<<endl;
        return true;
    }
    else return false;
}
 
 
 
int main()
{
    setlocale(LC_ALL,"Russian"); 
    bool f=true;
    double x, y, x1, y1, x2, y2, x3, y3, R1, R2, R3,a1,b1,y4,x4,a2,b2,a3,b3,y5,y6,x5,x6;
    
    do
    {
    cout<<"Введите координаты центра первой окружности х1,у1:\n";cin>>x1>>y1;
    cout<<"Введите радиус данной окружности:";cin>>R1;
    R0(R1);
    cout<<"Введите координаты центра второй окружности х2,у2:\n";cin>>x2>>y2;
    cout<<"Введите радиус данной окружности:"; cin>>R2;
    R0(R2);
    cout<<"Введите координаты центра третьей окружности х3,у3:\n";cin>>x3>>y3;
    cout<<"Введите радиус данной окружности:"; cin>>R3;
    R0(R3);
    f= if1(x, y, x1, y1, x2, y2, x3, y3, R1, R2, R3, f);
    }
    while (f);
    cout<<"Введите х,у :\n"; cin>>x>>y;
    a1=(y1-y3)/(x1-x3);
    b1=y1-a1*x1;
    y4=a1*x4+b1;
 
    a2=(y3-y2)/(x3-x2);
    b2=y3-a2*x3;
    y5=a1*x5+b2;
 
    a3=(y2-y1)/(x2-x1);
    b3=y2-a3*x2;
    y6=a3*x6+b3;
 
    if2(x,y,x1,y1,x2,y2,x3,y3,R1,R2,R3,y4,y5,y6);
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2014, 20:26     Найдите ошибку(и) в программе
Посмотрите здесь:

Найдите ошибку в программе - C++
Не могу исправить ошибку в функции (171-181 строка) все остальное работает #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include...

Найдите ошибку в программе - C++
Ошибок толком никаких не выдает, но не компилирует. Проверьте пожалуйста у себя, и помогите если знаете в чем проблема. Задание было...

Найдите ошибку в программе складывания в столбиком двух чисел - C++
Неправильное сложение (Время: 1 сек. Память: 16 Мб Сложность: 41%) Володя написал программу, которая складывает в столбик два числа. К...

Найдите ошибку в программе. Вводится n чисел. Найти сумму нечётных кратных 7 - C++
#include&lt;iostream&gt; using namespace std; main() { setlocale(LC_ALL,&quot;Russian&quot;); cout&lt;&lt;&quot;Ââåäèòå N ÷èñåë: &quot;; int a,i,k=0,n; ...

Найдите ошибку - C++
Не могу понять в чем ошибка. Write a function that find the sum of the elements that are located between first two zeros. Input: ...

Найдите ошибку - C++
Помогите найти ошибку в программе /*prog222.pas Программа решает следующую задачу: Даны вещественные положительные a, b, c, d, e,...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
20.01.2014, 20:29
  #2

Не по теме:

Ошибка первая: при чтении книги по плюсам была пропущена глава про массивы. Функция от 14 параметров - слов нет.

_script_
169 / 137 / 34
Регистрация: 01.05.2012
Сообщений: 414
20.01.2014, 20:35     Найдите ошибку(и) в программе #3
Цитата Сообщение от Spect Посмотреть сообщение
Не работает программа, где я совершил ошибку??
Что именно не работает?
не правильные расчеты где то?

Добавлено через 3 минуты

Не по теме:

Цитата Сообщение от 0x10 Посмотреть сообщение
Функция от 14 параметров - слов нет.
Увидел первые строки стало страшно)

Spect
1 / 1 / 0
Регистрация: 17.11.2013
Сообщений: 75
20.01.2014, 20:38  [ТС]     Найдите ошибку(и) в программе #4
Цитата Сообщение от _script_ Посмотреть сообщение
Что именно не работает?
не правильные расчеты где то?
После ввода любых значений, выводит ошибку.
"Run-Time CHeck Failure #3 - The variable 'y' is being used without being intialized."

Добавлено через 1 минуту
Цитата Сообщение от 0x10 Посмотреть сообщение

Не по теме:

Ошибка первая: при чтении книги по плюсам была пропущена глава про массивы. Функция от 14 параметров - слов нет.

Есть предложения как исправить??
0x10
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,012
20.01.2014, 20:44     Найдите ошибку(и) в программе #5
Spect, черным по белому: переменная y не инициализирована. Кстати, таких помимо нее много.

Добавлено через 2 минуты
Цитата Сообщение от Spect Посмотреть сообщение
Есть предложения как исправить??
Координаты x, y - точка. Заводим структуру Point.
C++
1
2
3
4
struct Point {
    double x;
    double y;
};
Окружность - центр + радиус. Еще одна структура
C++
1
2
3
4
struct Circle {
    double r;
    Point center;
};
Уже параметров станет меньше на порядок.

Добавлено через 2 минуты
Затем вспомнить о том, что бывают конструкторы. Добавить такой, проинициализировать поля.
Spect
1 / 1 / 0
Регистрация: 17.11.2013
Сообщений: 75
20.01.2014, 20:46  [ТС]     Найдите ошибку(и) в программе #6
Цитата Сообщение от 0x10 Посмотреть сообщение
Spect, черным по белому: переменная y не инициализирована. Кстати, таких помимо нее много.

Добавлено через 2 минуты

Координаты x, y - точка. Заводим структуру Point.
C++
1
2
3
4
struct Point {
    double x;
    double y;
};
Окружность - центр + радиус. Еще одна структура
C++
1
2
3
4
struct Circle {
    double r;
    Point center;
};
Уже параметров станет меньше на порядок.

Добавлено через 2 минуты
Затем вспомнить о том, что бывают конструкторы. Добавить такой, проинициализировать поля.
Мы еще не изучали структуру,даже не слышали, я не понимаю как она работает :s

Добавлено через 22 секунды
Кстати да, с ошибкой я разобрался.
0x10
20.01.2014, 20:50     Найдите ошибку(и) в программе
  #7

Не по теме:

Цитата Сообщение от Spect Посмотреть сообщение
Мы еще не изучали структуру,даже не слышали, я не понимаю как она работает
Ок, желчь с моей стороны отменяется, могу только посочувствовать. Ибо при такой куче параметров нужно дополнительно отслеживать банальные опечатки. Но это уже к теме отношения не имеет.

Yandex
Объявления
20.01.2014, 20:50     Найдите ошибку(и) в программе
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru