Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2015, 15:23   #1
Fliiz
Пользователь
 
Регистрация: 07.05.2015
Сообщений: 44
Вопрос Логическая проверка попадания точки в заданную область c++

Задано N точек в виде двумерного или двух одномерных массивов координат. Разработать программу,для подсчета кол-во точек,попавших в заданную область,формирования массива из координат точек,попавших в заданную область
Вообщем я сделал задание,но мне бы упростить код...А то получилось слишком объемно для подобной задачи.
Код:
#include <iostream>
#include<cmath>

using namespace std;

int main()
{

    int n, i, j, g, k;

    cout << "Vvedite kol-vo tochek: ";
    cin >> n;
    double A[n], C[n];

    for (i = 0; n > i; i++)
    {
        cout << "Vvedite koordinatiy " << i+1 << "-oi tochki: " << endl<< "X= ";
        cin >> A[i];
        cout << "Y= ";
        cin >> C[i];
    }

    cout << endl << "Poluchennyi tochki: " << endl;
    
    for (i = 0; n > i; i++)
        cout << "|" << A[i] << ", " << C[i] << "|" << endl;
    j=0;
    
    for (i = 0; i < n; i++)
    {
        if (max(abs(A[i]),abs(C[i]))<=2 &&( A[i]*A[i] + C[i]*C[i] <=4 || (A[i]*C[i]>=0 && A[i]*C[i]<=4)))
        {
            j=j+1;
        }
    }

    k=j;
    double *Bx, *Dy, *Gxy;
    Bx = new double [j];
    Dy = new double [j];
    Gxy = new double [j*2];


    j=0;

    for (i = 0; n > i; i++)
    {
        if (max(abs(A[i]),abs(C[i]))<=2 &&( A[i]*A[i] + C[i]*C[i] <=4 || (A[i]*C[i]>=0 && A[i]*C[i]<=4)))
        {
            Bx[j]=A[i];
            Dy[j]=C[i];
            j=j+1;
        }
    }
    cout << endl << "Kol-vo tochek popavshih v zadannuyu oblast:" <<k<<endl;

    g=0;
    for (i = 0; i < k*2; i++)
    {
        if (g = i -(i/2)*2)
            Gxy[i] = Bx[i];
        else
            Gxy[i] = Dy[i];
    }

    cout << endl << "Poluchennyi massiv: [";
    for (i = 0; i < k; i++)
    {
        cout << Bx[i] << ", " << Dy[i] << "; ";
    }
    cout << "]";



    delete[] Bx;
    delete[] Dy;
    delete[] Gxy;

    cout << endl<< "Proga zavershena nazmite Enter dlya vihoda...";

    return 0;
}
Fliiz вне форума Ответить с цитированием
Старый 12.05.2015, 15:42   #2
Fliiz
Пользователь
 
Регистрация: 07.05.2015
Сообщений: 44
По умолчанию

Ну ответьте кто-нибудь?
Fliiz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на расчет попадания количества точек в заданную область. Ильдар_ Помощь студентам 5 23.12.2013 02:28
Определить попадания точки в заштрихованную область Ty4ka Помощь студентам 10 20.05.2012 21:35
Исследования попадания точки в заданную область uHkBu3uTop Помощь студентам 2 19.01.2012 12:35
Алгоритм проверки попадания точки в заданную (заштрихованную) область. ming_ruport Помощь студентам 1 14.10.2011 01:51
Алгоритм проверки попадания точки в заданную (заштрихованную) область ming_ruport Помощь студентам 5 11.10.2011 09:32