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

Из числовой последовательности найти удалить элементы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Описать базовый класс "книга" http://www.cyberforum.ru/cpp-beginners/thread698614.html
Помогите пожалуйста описать базовый класс "книга". Написать поиск по автору и году выпуска
C++ Есть ли тематические банки заданий Я читаю книгу С.Праты "Язык программирования С++". Она понятная, по-мне так просто прекрасная (Потом обязательно попробую Страуструпа) .Но вот один недостаток: не хватает заданий для проверки знаний, как можно больше приближенных к реальности (есть задачки, но от отчаяния даже как-то давно писал сей бред). Ну так вот, я изучил (если можно так сказать) циклы, логику, классы памяти, структуры,... http://www.cyberforum.ru/cpp-beginners/thread698609.html
Корень из 2 с точностью до 100 знаков после запятой C++
Добрый день. Задача такова, программа должна выразить корень из 2 с точностью до 100 знаков после запятой, может есть предложения как это сделать? Могу выбрать между С и С++ языками. Спасибо!
C++ Рекурсивный спуск
Здравствуйте помогите пожалуйста разобраться в рекурсивном спуске, который вычисляет выражения, и как считывать по одному элементу из файла( #include "stdafx.h" #include "stdlib.h" bool E(); bool T(); bool F(); bool N(); {
C++ Составить блок-схему к программе http://www.cyberforum.ru/cpp-beginners/thread698589.html
Народ!помогите блок-схему сделать!((( using namespace std; void enteringData(double*, int); void calculatingAvg(double*, int); void main() { int size = 0; cout<<"Type size of array: ";
C++ Блок-схема Народ!помогите!кто знает как блок -схему сделать!!? void main() { doublemult=1; ifstream text("text.txt"); while (!text.eof()) { double num; text>>num; cout<<num<<endl; if (num < 0) { mult*=pow(num,2); подробнее

Показать сообщение отдельно
lemegeton
2915 / 1344 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
15.11.2012, 18:20     Из числовой последовательности найти удалить элементы
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
#include <cstdlib>
#include <ctime>
#include <iostream>
#include <deque>
#include <algorithm>
#include <iterator>
 
// генератор случайных целых чисел
class RandomIntegerGenerator {
 private:
  int min, max;
 public:
  RandomIntegerGenerator(int min, int max) : min(min), max(max) {}
  int operator()() { return rand() % (max - min) + min; }
};
 
// вывод deque в поток
template <class T>
std::ostream &operator<<(std::ostream &stream, const std::deque<T> &deque) {
  for (typename std::deque<T>::const_iterator i = deque.begin(); i != deque.end(); ++i)
    stream << *i << ((i < deque.end() - 1) ? ", " : "");
  return stream;
}
 
// возвращает среднее арифметическое значений
template<class InputIterator>
double getAverage ( InputIterator first, InputIterator last) {
  double result;
  int counter = 0;
  while (first!=last) {
    result += *first++;
    ++counter;
  }
  return result / counter;
}
 
int main(int argc, char *argv[]) {
  setlocale(LC_ALL,"rus");
  srand(time(0));
  
  // коэфициент
  double rate = 0.5;
 
  // исходный набор данных  
  std::deque<int> deque;
  // случайное заполнение
  std::generate_n(inserter(deque, deque.begin()), 10, RandomIntegerGenerator(0, 10));
 
  // отсортированый набор данных
  std::deque<int> sortedDeque(deque);
  // сортировка
  std::sort(sortedDeque.begin(), sortedDeque.end());
  
  // среднее значение трех самых больших величин
  double average = getAverage(sortedDeque.end() - 3, sortedDeque.end());
 
  // результирующая последовательность
  std::deque<int> result(deque);
 
  // элементы меньше этого значения будут удалены
  double threshold = rate * average;
 
  // удаление элементов
  result.erase(
    std::remove_if(result.begin(), result.end(), std::bind2nd(std::less<double>(), threshold)),
    result.end()
  );
  
  std::cout << "Исходная последовательность: " << deque << std::endl;
  std::cout << "Значения меньше этого будут удалены: " << threshold << std::endl;
  std::cout << "Результат: " << result << std::endl;
  
  std::cin.get();
  return EXIT_SUCCESS;
}
 
Текущее время: 05:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru