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

С++, найти искомую точку, используя структуру - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Описать функцию DigitN(K, N http://www.cyberforum.ru/cpp-beginners/thread449056.html
Описать функцию DigitN(K, N) целого типа, возвращающую N-ю циф-ру целого положительного числа K (цифры в числе нумеруются справа на-лево). Если количество цифр в числе K меньше N, то функция возвращает –1. Для каждого из пяти данных целых положительных чисел K1, K2, …, K5 вызвать функцию DigitN с параметром N, изменяющимся от 1 до 5.
C++ MP3 MICRO PLAYER Всем доброго время суток. Нашел в интернете программу MP3 MICRO PLAYER. Создал проект, тип проекта Win32 Application -> Windows Application -> В свойствах проекта Character Set поставил в Not Set. MP3 Micro Player.cpp: #include "stdafx.h" #include "MP3 Micro Player.h" #include <windows.h> #define MAX_LOADSTRING 100 int main(int argc, TCHAR *argv) { mciSendString("open rock.mp3... http://www.cyberforum.ru/cpp-beginners/thread449055.html
C++ найти приближенное значение arctg(x) для данного x при шести дан-ных ε.
Описать функцию Arctg1(x, ε) вещественного типа (параметры x, ε — вещественные, |x| < 1, ε > 0), находящую приближенное значение функции arctg(x): arctg(x) = x – x3/3 + x5/5 – … + (–1)n·x2·n+1/(2·n+1) + … . В сумме учитывать все слагаемые, модуль которых больше ε. С помощью Arctg1 найти приближенное значение arctg(x) для данного x при шести дан-ных ε. Дубль. Закрыто.
Помогите разобраться в коде программы для переворачивания списка (код маленький) C++
Программа которая переворачивает список L, изменяет ссылки в этом списке так, чтобы его элементы оказались расположенными в обратном порядке void main(void) { int *x; char n,b; int i,j; puts(" Vvedite cpicok: "); scanf("%d", &n); x = new int; for (int k = 0; k != n; k++)
C++ Объявление поля класса в заголовочном файле http://www.cyberforum.ru/cpp-beginners/thread449035.html
Здравствуйте! Подскажите пожалуйста, как сделать правильно. Есть класс А и класс B, в классе B должно быть поле в виде массива классов А. В заголовочном файле пишу: public: A array; В этой строке компилятор ругается: error C2146: syntax error : missing ';' before identifier 'Cars' Скажите, что я сделал не так? Заранее большое спасибо!
C++ Остановка вектора Здравствуйте! Помогите пожалуйста реализовать в ниже приведенном коде, как остановить функцию readlong как только появиться точка или запятая? #include "StdAfx.h" #include "conio.h" #include <iostream> #include <vector> #include <iomanip> #include <string> #include <cstdlib> #define BASE 10 подробнее

Показать сообщение отдельно
lemegeton
2918 / 1347 / 134
Регистрация: 29.11.2010
Сообщений: 2,721
20.02.2012, 10:04     С++, найти искомую точку, используя структуру
Альтернативное решение.
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
#include <iostream>
#include <cstdlib>
#include <cmath>
#include <ctime>
 
struct Point {
  float x, y, z;
  // для простоты конструктор по-умолчанию генерирует рандомную точку
  Point() : x(rand() % 1000 / 10.), y(rand() % 1000 / 10.),
    z(rand() % 1000 / 10.) {}
  Point(float x_, float y_, float z_) : x(x_), y(y_), z(z_) {}
  float distanceTo(const Point &other) {
    return sqrt(pow(x - other.x, 2.) + pow(y - other.y, 2.) +
      pow(z - other.z, 2.));
  }
};
 
std::ostream &operator<<(std::ostream &stream, const Point &point) {
  return stream << "[" << point.x << ", " << point.y << ", " << point.z << "]";
}
 
float sumOfDistances(Point *point, Point *first, Point *last) {
  float result = 0.;
  for (; first != last; ++first)
    if (first != point)
      result += point->distanceTo(*first);
  return result;
}
 
Point *findMaxSumOfDistances(Point *first, Point *last) {
  Point *maxPoint = first;
  float maxDistance = sumOfDistances(first, first, last);
  for (Point *point = first; point != last; ++point) {
    float currentSumOfDistances = sumOfDistances(point, first, last);
    if (currentSumOfDistances > maxDistance) {
      maxPoint = point;
      maxDistance = currentSumOfDistances;
    }
  }
  return maxPoint;
};
 
int main(int argc, char *argv[]) {
  srand(time(NULL));
  Point points[10];
  size_t numberOfPoints = sizeof(points) / sizeof(Point);
  
  std::cout << "All points: ";
  for (Point *point = points; point != points + numberOfPoints; ++point)
    std::cout << *point << " ";
  std::cout << std::endl << std::endl;
 
  std::cout << "Point with maximum sum of distances: "
    << *(findMaxSumOfDistances(points, points + numberOfPoints)) << std::endl;
  
  return 0;
};
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru