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

Ошибка в программе. Принадлежность точек окружности. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ подсчет символ из строки s1, встречающихся в строке s2. http://www.cyberforum.ru/cpp-beginners/thread180227.html
Помогите написать программу, которая подсчитывает количество символов из строки s1, встречающихся в строке s2.
C++ Получить квадратную матрицу порядка n Дана последовательность чисел b(11), b(22)...b(nn). Получить квадратную матрицу порядка n, элементами которой являются числа последовательности , расположенные по схеме Дано послідовність чисел b(1^1), b(2^2)...b(n^n). Отримати квадратну матрицю порядку n, елементами якої є числа послідовності , розташовані за схемою: Оффициальным языком форума является русский язык. В дальнейшем темы с... http://www.cyberforum.ru/cpp-beginners/thread180207.html
Произведение 2х наименьших из 3х заданых C++
Определить произведение двух наименьших из трех данных чисел. Никак не могу сделать, неправильно вычисляется при c<a<b вот код: #include <iostream> using namespace std; int main () { int a, b, c, P1, P2, P3; cout << "a=";
Магический квадрат (через производный класс) C++
Здравствуйте! Знаю, что на форуме неоднократно рассматривалась проблема разработки программы для построения магического квадрата, но то, в чем я не могу разобраться, я здесь не нашла. Необходимо разработать программу для построения магического квадрата любого нечетного порадка из последовательных натуральных числе по специальному методу. При этом нужно реализовать базовый класс квадратной...
C++ Как добавить объект в середину массива, состоящего из полиморфных объектов? http://www.cyberforum.ru/cpp-beginners/thread180184.html
У меня возникла проблемка с добавлением. Привожу свою функцию добавления, может прояснит, где у меня ошибка. Проблема в том, что первый раз добавляет эдемент, а во второй программа перестает работать с надписью Null pointer asigment. void add(int &n, Person *a) { int i,j,k,m,flag=0; Person *b,*c; if(n==9 || n==0)cout<<"Nothing to add!"; else { cout<<"1) Person"<<endl<<"2)...
C++ Почему при инициализации данных программа работает быстрей? Почему при инициализации данных программа работает быстрей? подробнее

Показать сообщение отдельно
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
24.10.2010, 15:02     Ошибка в программе. Принадлежность точек окружности.
Вывод можно покрасивше сделать, а так вот:
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
#include <iostream>
#include <cmath>
#include <cstdlib>
 
class Point {
    double x;
    double y;
public:
    Point() : x(0.0), y(0.0) {}
    Point(double _x, double _y) : x(_x), y(_y) {}
 
    void X(double _x) { x = _x; }
    double X() const { return x; }
    void Y(double _y) { y = _y; }
    double Y() const { return y; }
 
    double Distance(const Point & p) const {
        double dx = fabs(p.X() - x);
        double dy = fabs(p.Y() - y);
        return sqrt(dx * dx + dy * dy);
    }
};
 
class Circle {
    Point c;
    double r;
public:
    Circle() : r(0.0) {}
    Circle(double _x, double _y, double _r) : c(_x, _y), r(_r) {}
    Circle(const Point & p, double _r) : c(p), r(_r) {}
 
    void R(double _r) { r = _r; }
    double R() const { return r; }
    void X(double _x) { c.X(_x); }
    double X() const { return c.X(); }
    void Y(double _y) { c.Y(_y); }
    double Y() const { return c.Y(); }
 
    bool Inside(const Point & p) const {
        return c.Distance(p) < r;
    }
    bool OnBorder(const Point & p) const {
        return c.Distance(p) == r;
    }
};
 
std::istream & operator >> (std::istream & ist, Point & p){
    double x, y;
    ist >> x >> y;
    p.X(x);
    p.Y(y);
    return ist;
}
 
std::istream & operator >> (std::istream & ist, Circle & c){
    double x, y, r;
    ist >> x >> y >> r;
    c.X(x);
    c.Y(y);
    c.R(r);
    return ist;
}
 
std::ostream & operator << (std::ostream & ost, const Point & p){
    ost << p.X() << ' ' << p.Y();
    return ost;
}
 
std::ostream & operator << (std::ostream & ost, const Circle & c){
    ost << c.X() << ' ' << c.Y() << ' ' << c.R();
    return ost;
}
 
////////////////////////////////////////////
 
int main(){
    Circle c;
    Point * pArr;
    int cnt;
 
    std::cout << "Enter space separated circle coordinates and radius (X Y R)\n> ";
    std::cin >> c;
    std::cout << "Enter number of points: ";
    std::cin >> cnt;
    pArr = new Point [ cnt ];
    std::cout << "Enter space separated coordinates for " << cnt << " points (X Y)" << std::endl;
    for ( int i = 0; i < cnt; ++i ){
        std::cout << "Point #" << ( i + 1 ) << " > ";
        std::cin >> pArr[i];
    }
 
    std::cout << std::endl;
    std::cout << "Circle (X Y R): " << c << std::endl;
    std::cout << cnt << " points (X Y State):" << std::endl;
    for ( int i = 0; i < cnt; ++i )
        std::cout << pArr[i] << ( c.Inside(pArr[i]) ? " inside" : c.OnBorder(pArr[i]) ? " on border" : " outside" ) << std::endl;
 
    system("pause");
    return 0;
}
 
Текущее время: 22:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru