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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
myaho
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 11
#1

Программа на алгоритмы и контейнеры! - C++

02.06.2011, 19:47. Просмотров 1255. Ответов 21
Метки нет (Все метки)

Друзья, задали написать программу на алгоритмы и контейнеры. Смотрю на условие задачки и даже не знаю за что схватиться. Подскажите идею, алгоритм, хоть что-то. Чертовски буду благодарна!

Корабли присылают в каждый момент времени данные о своей скорости и направлении и свои координаты. Необходимо предупредить пользователя, если данные не согласованы (т.е. если изменение координат не соответствует скорости и направлению движения корабля). Землю считать плоской.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2011, 19:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программа на алгоритмы и контейнеры! (C++):

Алгоритмы, инетаторы и контейнеры - C++
Всем привет! Написал программу в которой необходимо ввести список студентов и для каждого из них еще несколько данных из файла. Тепер...

Ассоциативные контейнеры(алгоритмы)с++ - C++
Создать vector<int>, считать в него список чисел из текстового файла. Выполнить, не используя циклов: поиск наибольшего значения; ...

Контейнеры - C++
Здравствуйте. Помогите написать программу на С, с этим языком не знаком почти, а контейнеры вообще не понимаю. В общем беда полная.... ...

контейнеры С++ - C++
Задача:заполнить массив четными числами ,а множество – нечетными,с пом. алгоритма merge()объединить эти контейнеры в вектор… Но если ...

Контейнеры с++ - C++
Ребят,подскажите пожалуйста,какую функцию нужно использовать,чтобы проверить массив на упорядоченность(мне нельзя использовать циклы и...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
lemegeton
2924 / 1353 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
03.06.2011, 20:13 #16
Я так понимаю, что просто подсказок мало, надо за вас еще код написать?
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
#include <cmath>
#include <cstdlib>
#include <ctime>
#include <iostream>
#include <iomanip>
#include <vector>
 
struct Coordinates {
  Coordinates() : x(0), y(0), timestamp(time(NULL)) {}
  Coordinates(float x_, float y_,
              time_t timestamp_)
    : x(x_), y(y_), timestamp(timestamp_) {}
  float x;
  float y;
  time_t timestamp;
};
 
float Distance(const Coordinates &a, const Coordinates &b) {
  return sqrt(pow(a.x - b.x, 2.) + pow(a.y - b.y, 2.));
}
 
bool Compare(const Coordinates &a, const Coordinates &b,
             float accuracy = 1.) {
  return Distance(a, b) < accuracy;
};
 
struct ShipData {
  Coordinates coordinates;
  float speed;      // в м/с
  float direction;  // в радианах
};
 
Coordinates Forecast(const Coordinates &point, const ShipData &ship) {
  float distance = (ship.coordinates.timestamp - point.timestamp) * ship.speed;
  Coordinates result(point.x + distance * cos(ship.direction),
                     point.y + distance * sin(ship.direction),
                     ship.coordinates.timestamp);
  return result;
}
 
bool Consistant(const Coordinates &point, const ShipData &ship,
                float accuracy = 1.) {
  return Compare(Forecast(point, ship), ship.coordinates, accuracy);
}
 
void GetData(std::vector<Coordinates> &points,
             std::vector<ShipData> &new_data) {
  // ну вот тут надо откуда-то заполнять массив new_data.
  for (size_t i = 0; i < points.size(); ++i) {
    new_data[i].coordinates = points[i];
    new_data[i].coordinates.timestamp = time(NULL);
    new_data[i].speed = 0;
    new_data[i].direction = 0;
    if (rand() % 3 == 0) {
      new_data[i].coordinates.x += rand() % 11 - 5;
      new_data[i].coordinates.y += rand() % 11 - 5;
    }
  }
}
 
int main(int argc, char *argv[]) {
  srand(time(NULL));
  size_t ship_count = 15;
  std::vector<Coordinates> points(ship_count);
  std::vector<ShipData> new_data(ship_count);
 
  
  for (size_t i = 0; i < 10; ++i) {
    for (size_t i = 3; i > 0; --i) {
      std::cout << "." << std::flush;
      sleep(1);
    }
    std::cout << std::endl;
 
    GetData(points, new_data);
 
    for (size_t i = 0; i < points.size(); ++i) {
      std::cout << "#" << i << ": ";
      if (Consistant(points[i], new_data[i], 0.1)) {
        std::cout << "OK";
      } else {
        std::cout << "inconsistant by "
                  << Distance(new_data[i].coordinates, points[i])
                  << " meter(s).";
      }
      std::cout << std::endl;
      points[i] = new_data[i].coordinates;
    }
  }
  return 0;
}
2
myaho
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 11
03.06.2011, 22:01  [ТС] #17
Ох, спасибо Вам огромнейшее. Я сейчас пытаюсь написать что-то аналогичное.

Добавлено через 21 минуту
Однако функция pow не нравится:

error C2666: 'pow' : 6 overloads have similar conversions
0
Avazart
Эксперт С++
7187 / 5361 / 280
Регистрация: 10.12.2010
Сообщений: 23,653
Записей в блоге: 17
03.06.2011, 22:11 #18
А в какой строке? при каких значениях?
0
myaho
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 11
03.06.2011, 22:29  [ТС] #19
c fpow вроде не ругается

Добавлено через 11 минут
а зачем нам нужно останавливать работу на 1 секунду? sleep(1)
0
Avazart
Эксперт С++
7187 / 5361 / 280
Регистрация: 10.12.2010
Сообщений: 23,653
Записей в блоге: 17
04.06.2011, 00:04 #20
ага на 1 мс?
0
myaho
0 / 0 / 0
Регистрация: 16.05.2011
Сообщений: 11
04.06.2011, 00:24  [ТС] #21
Ага. В Вашей проге я вообще многое не понимаю.
0
lemegeton
2924 / 1353 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
04.06.2011, 00:42 #22
Программа активно использует UNIX time и назначает timestamp'у текущее время. Ну и ваще, типа моделирование...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.06.2011, 00:42
Привет! Вот еще темы с ответами:

Контейнеры STL - C++
Кто знает где найти информацию по поводу стандартных контейнеров STL? Интересует не то, как их применять, а основы реализации. Может быть...

Кодирующие контейнеры? - C++
Существуют ли контейнеры, которые позволяют хранить N элементов за memory&lt;O(N)? Именно на ходу. Скорость не так важна.

контейнеры (литература) - C++
На сегодняшний момент меня заинтересовали контейнеры) Может кто-то подсказать какую-то литературу по ним? В интернете искал, но ничего...

ООП и контейнеры - C++
Здорова господа! От есть задачка: Напишите класс, производный от Container так, чтобы Vector из параграфа 16.2.1 мог использоваться в...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
04.06.2011, 00:42
Ответ Создать тему
Опции темы

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