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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.10.2009, 00:34   #1
Foxtrot_1
Пользователь
 
Аватар для Foxtrot_1
 
Регистрация: 14.06.2009
Сообщений: 67
Стрелка Радиостанция

Добрый вечер форумчане.
Программа считает возможность связи между собой 2-х человек с помощью 4 радиостанций. А надо 2 человека и количество радиостанций любое, какое введешь. Уже как месяц парюсь, и не получается никак. Могу разное количество станций задать, но фиксированно.
Код:
#include <conio.h>
#include <iostream.h>
#include <math.h>

struct point //структура координаты
{
        float x;
        float y;
};

struct stanc //структура станции
{
        point koor;
        int daln;
};

struct stanc m[4]; //массив из 4 станций
stanc ab1, ab2; //2 абонента

float rasst(a, b) //функция нахождения расстояния между координатами
point a, b;
{
        float res = sqrt(pow((a.x-b.x),2)+pow((a.y-b.y),2));
        return res;
}

int main()
{
        clrscr();
        cout<<"---Vvedite dannie po stanciyam, dalnost ne dolgna previshat 50 km:\n";
        for (int i = 1; i <= 4; i++) //ввод информации по станциям
        {
                cout<<"Stanciya N"<<i<<":\n";
                cout<<"Koordinata X: ";
                cin>>m[i].koor.x;
                cout<<"Koordinata Y: ";
                cin>>m[i].koor.y;
                do
                {
                        cout<<"Dalnost: ";
                        cin>>m[i].daln;
                }
                while (m[i].daln < 1 || m[i].daln > 50);
        }
        cout<<"---Vvedite dannie po abonentam:\n";
        cout<<"Abonent 1:\n"; //ввод информации по абоненту 1
        cout<<"Koordinata X: ";
        cin>>ab1.koor.x;
        cout<<"Koordinata Y: ";
        cin>>ab1.koor.y;
        do
        {
                cout<<"Dalnost: ";
                cin>>ab1.daln;
        }
        while (ab1.daln < 1 || ab1.daln > 50);
        cout<<"Abonent 2:\n"; //ввод информации по абоненту 2
        cout<<"Koordinata X: ";
        cin>>ab2.koor.x;
        cout<<"Koordinata Y: ";
        cin>>ab2.koor.y;
        do
        {
                cout<<"Dalnost: ";
                cin>>ab2.daln;
        }
        while (ab2.daln < 1 || ab2.daln > 50);
        if (rasst(ab1.koor, ab2.koor) <= ab1.daln && rasst(ab1.koor, ab2.koor) <= ab2.daln) //проверка возможности связи
        cout<<"Svyas megdy abonentami vozmogna!\n";
        else
        cout<<"Svyas megdy abonentami ne vozmogna!\n";
        int min = 50;
        int k = 1;
        for (int i = 1; i <= 4; i++) //определение ближайшей к абоненту 1 станции
        if (rasst(ab1.koor, m[i].koor) < min)
        {
                min = rasst(ab1.koor, m[i].koor);
                k = i;
        }
        cout<<"Bligayshaya k abonenty 1 stancya N"<<k<<"\n";
        min = 50;
        k = 1;
        for (int i = 1; i <= 4; i++) //определение ближайшей к абоненту 2 станции
        if (rasst(ab2.koor, m[i].koor) < min)
        {
                min = rasst(ab2.koor, m[i].koor);
                k = i;
        }
        cout<<"Bligayshaya k abonenty 2 stancya N"<<k<<"\n";
        cout<<"Nazhmite lyubuyu klavishu dlya vihoda...";
        getch();
}
Всегда бывает лучше, чем ты хочешь!!!
Foxtrot_1 вне форума Ответить с цитированием
Старый 02.10.2009, 01:25   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
А надо 2 человека и количество радиостанций любое, какое введешь.
- вот тут непонятно, а какой смысл? это один с n-радиостанциями бегает и второй c m?

...кстати с учетом кривизны Земли прямая радиовидимость (УКВ) R:= 3, 57 * (SQRT(H1) + SQRT(H2))
в других диапазонах явление непредсказуемое
H- высота 1 и второй антенны
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 02.10.2009, 12:03   #3
Foxtrot_1
Пользователь
 
Аватар для Foxtrot_1
 
Регистрация: 14.06.2009
Сообщений: 67
По умолчанию

В этой проге кол-во станций фиксированно, а надо сколько хочешь.
Всегда бывает лучше, чем ты хочешь!!!
Foxtrot_1 вне форума Ответить с цитированием
Старый 02.10.2009, 12:30   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
Программа считает возможность связи между собой 2-х человек с помощью 4 радиостанций. А надо 2 человека и количество радиостанций любое, какое введешь
- поясните по-подробней
Дано: n- точек с координатами (xn,yn)
а на выходе то-что: посчитать не превышает-ли условно 50 расстояние меж каждым из оставшихся n-(1..n) ?
и если хотя-бы одно превышает-то выдать - not?

p.s.: чет мне эт напоминает граф возможности связи меж станциями мобильных операторов
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 02.10.2009 в 12:32.
raxp вне форума Ответить с цитированием
Старый 02.10.2009, 12:50   #5
Foxtrot_1
Пользователь
 
Аватар для Foxtrot_1
 
Регистрация: 14.06.2009
Сообщений: 67
По умолчанию

В этой проге у меня используется 4 радиостанции и 2 абонента. А надо использование n радиостанций и n абонентов.
Похоже на мобильные ретрансляторы.
Всегда бывает лучше, чем ты хочешь!!!
Foxtrot_1 вне форума Ответить с цитированием
Старый 02.10.2009, 21:27   #6
Foxtrot_1
Пользователь
 
Аватар для Foxtrot_1
 
Регистрация: 14.06.2009
Сообщений: 67
По умолчанию

C количеством станций помогли добрые люди!

Код:
stanc *m; //массив из m станций
int kol_st;
Код:
cout<<"Vvedite kolichestvo stancii\n";
cin>>kol_st;
m=new stanc[kol_st+1];          
for (int i = 1; i <= kol_st; i++) //ввод информации по станциям
Всегда бывает лучше, чем ты хочешь!!!
Foxtrot_1 вне форума Ответить с цитированием
Старый 02.10.2009, 22:29   #7
Foxtrot_1
Пользователь
 
Аватар для Foxtrot_1
 
Регистрация: 14.06.2009
Сообщений: 67
По умолчанию

ТЗ: Есть m радиостанций с заданными координатами №№1,2,3...m (координаты свободные) и дальностью действия 50 км. Есть два абонента (координаты свободные). Определить возможность связи между двумя абонентами через ближайшую станцию (принцип стовой связи). Прохождение радиоволн, помехи и типа того не учитывается!!!
Всегда бывает лучше, чем ты хочешь!!!
Foxtrot_1 вне форума Ответить с цитированием
Старый 03.10.2009, 01:00   #8
Foxtrot_1
Пользователь
 
Аватар для Foxtrot_1
 
Регистрация: 14.06.2009
Сообщений: 67
По умолчанию

Я вот тут застрял, нихрена понять не могу:
3.1. Оценка стиля программирования + таблица;
3.2. Оценка временной сложности программы + таблица;
3.3. Оценка объемной сложности программы + таблица;
Всегда бывает лучше, чем ты хочешь!!!

Последний раз редактировалось Foxtrot_1; 03.10.2009 в 01:07.
Foxtrot_1 вне форума Ответить с цитированием
Старый 04.10.2009, 18:46   #9
Foxtrot_1
Пользователь
 
Аватар для Foxtrot_1
 
Регистрация: 14.06.2009
Сообщений: 67
По умолчанию



Всегда бывает лучше, чем ты хочешь!!!
Foxtrot_1 вне форума Ответить с цитированием
Старый 04.10.2009, 18:55   #10
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

создайте отдельную тему с этим последним...
и в чем вопрос?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Ответ


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