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

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

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

составить блок-схему алгоритма решения - C++

23.12.2010, 23:33. Просмотров 494. Ответов 0
Метки нет (Все метки)

Из заданного множества точек на плоскости выбрать две различные точки так, чтобы окружности заданного радиуса с центром в этих точках содержали внутри себя одинаковое количество точек
бльк схемы совсем не умею строить..помогите))

#include "stdafx.h"
#include "iostream"
#include <stdlib.h>
#include <math.h>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{setlocale (LC_ALL, "Russian");
int R; // Радиус окружностей
int n; // Количество точек
char c;
bool enter_type = true; // true - ручками, false - рандом

cout<<"Введите номер точки"<<endl;
cin>>n;
cout<<"Введите радиус"<<endl;
cin>>R;
cout<<"генерировать точки автоматически? 1/2"<<endl;
cin>>c;
if(c == '1')
{
enter_type = false;
}

int *x = new int[n];
int *y = new int[n];

if(enter_type)
{
for(int i=0;i<n;i++)
{
cout<<"Введите x и y ["<<(i+1)<<"]"<<endl;
cin>>x[i];
cin>>y[i];
}
}
else
{
for(int i=0;i<n;i++)
{
x[i] = rand(); // Здесь можно модифицировать рандом как хотите
y[i] = rand(); // Здесь можно модифицировать рандом как хотите
}
}


int *count = new int[n];
//А теперь сам алгоритм - сначала считаем количество точек для каждой окружности.

for(int i=0;i<n;i++)
{
count[i] = 0;
for(int j=0;j<n;j++)
{
if( sqrt((float)(x[i]-x[j])*(x[i]-x[j]) + (y[i]-y[j])*(y[i]-y[j])) <= R) //По теореме пифагора считаем попадает ли точка в окружность
count[i]++;
}
}

//Теперь бежим по массиву count и исчем любые 2 индекса с совпавшими значениями.

cout<<"Результаты:"<<endl;
int resCount = 0;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(i!=j && count[i] == count[j]) //Нашли
{
resCount++;
cout<<"["<<x[i]<<","<<y[i]<<"] and ["<<x[j]<<","<<y[j]<<"]"<<endl;
//Далее можно завершить программу с помощью (return 0)
//Либо можно не завершать, и продолжить вывод всех точек с одинаковым количеством.
}
}
}

if(!resCount)
{
cout<<"Нет таких точек.";
}

cin>>c; //Чтобы притормозить программу и посмотреть результат.
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2010, 23:33     составить блок-схему алгоритма решения
Посмотрите здесь:

составить блок-схему к программе C++
Составить блок-схему по коду C++
C++ Составить блок-схему на программу
Составить блок-схему алгоритма для подсчета количества работников C++
Разработать схему алгоритма для решения задачи численного интегрирования тремя методами C++
Реализовать блок-схему алгоритма C++
C++ Разработать блок-схему и программу для решения задачи с использованием типа структура
C++ Составить схему алгоритма и программу решения задачи
Прошу нарисовать блок схему алгоритма этой задачи C++
C++ Составить блок-схему алгоритма
C++ Нарисовать блок-схему алгоритма по коду C++

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

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

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