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

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

Войти
Регистрация
Восстановить пароль
 
Basek
2 / 2 / 1
Регистрация: 11.11.2010
Сообщений: 87
#1

Вектор - C++

03.03.2011, 17:23. Просмотров 556. Ответов 4
Метки нет (Все метки)

Помогите,пожалуйста с решением лабораторной!!!

Вектор В[1:15] сформировать из целых случайных чисел в диапазоне [-10 10].
а) найти произведение элементов в диапазоне [-3,3] и сумму положительных элементов.
б) удалить минимальный элемент вектора.
в) заменить максимальный элемент вектора среднеарифметическим значением последних 15 элементов.
г) поменять местами максимальные элементы из первых 10 и последних десяти элементов вектора.

Заранее дблагодарю откликнувшихся!)

Добавлено через 5 часов 42 минуты
Помогите пожалуйста!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.03.2011, 17:23     Вектор
Посмотрите здесь:

матрица на вектор, вроде правильно, а вектор на матрицу? посмотрите пожалуйста? - C++
#include <iostream> #include <iomanip> #include <cstdlib> #include <ctime> using namespace std; int main() { ...

Почему матрица на вектор умножается быстрее чем вектор на матрицу? - C++
Почему матрица на вектор умножается быстрее чем вектор на матрицу?

можно ли в вектор добавить вектор? - C++
не сложить, а добавить? например, даны такие векторы: std::vector<glm::vec2> myVector; и vector<вот тут какой тип делать?>...

Матрицы. Получить вектор X, равный P-й строке матрицы, и вектор Y, равный Q-му столбцу матрицы - C++
1. Дана матрица A (3 х 5). Получить вектор X, равный P-й строке матрицы, и вектор Y, равный Q-му столбцу матрицы. P и Q запросить у...

Вектор - C++
Всем доброго времени суток. Помогите плиз написать программу. Дан вектор x. Минимальный элемент поменять местами с максимальным элементом.

вектор - C++
Створити вектор А. Для створення масиву викоритстати генератор випадкових чисел. Кількість елементів масиву розраховується по формулі...

Вектор! - C++
1. Найти максимальный элемент массива. 2. Найти сумму элементов массива, расположенных до последнего положительного элемента. 3....

Вектор C++ - C++
Только начал изучать вектор в C++, но возникла проблема в коде, хотя переписал прямо из учебника. Сама ошибка: "vector: необъявленный...

Вектор - C++
Как занести в вектор выражение 1+-7*10 так чтобы 1 + - 7 * 10 каждый символ на свою позицию. Хотелось бы занести число 10 как одно...

Вектор - C++
Определить значение и порядковые номера двух крупнейших элементов введенного вектора


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
2923 / 1352 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
03.03.2011, 23:48     Вектор #2
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
#include <cstdio>
#include <ctime>
#include <cstdlib>
 
#include <vector>
#include <algorithm>
#include <numeric>
 
 
class RandomGenerator {
 public:
  RandomGenerator(int min, int  max) : min_(min), max_(max) {
    srand(time(NULL));
  }
  inline int operator()() {
    return rand() % (max_ - min_ + 1) + min_;
  }
 private:
  int min_, max_;
};
 
int MultiplyInRange(int a, int b) {
  return ((b >= -3 && b <= 3) ? a * b : a);
}
 
int SumPositive(int a, int b) {
  return ((b > 0) ? a + b : a);
}
 
void Print(int a) {
  printf("%4d", a);
}
 
int main(int argc, char *argv[]) {
  std::vector<int> array(15);
 
  std::generate(array.begin(), array.end(), RandomGenerator(-10, 10));
 
  std::for_each(array.begin(), array.end(), Print); printf("\n");
 
  // произведение элементов в диапазоне [-3,3]
  int multiplied   = std::accumulate(array.begin(), array.end(),
                                     1, MultiplyInRange);
 
  // сумма положительных элементов
  int sum_positive = std::accumulate(array.begin(), array.end(),
                                     0, SumPositive);
 
  printf("Mult [-3:3]:  %3d\nSum positive: %3d\n", multiplied, sum_positive);
 
  // удалить минимальный элемент вектора
  array.erase(std::min_element(array.begin(), array.end()));
 
  // показать
  std::for_each(array.begin(), array.end(), Print); printf("\n");
 
  // среднее арифметическое всех (14) эелементов массива
  float average = std::accumulate(array.begin(), array.end(), 0) /
                  static_cast<float>(array.size());
 
  // заменить максимальный элемент вектора среднеарифметическим
  // значением последних 15 элементов
  *std::max_element(array.begin(), array.end()) = average;
 
  // показать
  std::for_each(array.begin(), array.end(), Print); printf("\n");
 
  std::vector<int>::iterator max_first_ten = std::max_element(array.begin(),
                                             array.begin() + 10);
  std::vector<int>::iterator max_last_ten = std::max_element(array.end() - 10,
                                             array.end());
  // поменять местами максимальные элементы из первых 10 и последних
  // десяти элементов вектора
  std::swap(*max_first_ten, *max_last_ten);
 
  // показать
  std::for_each(array.begin(), array.end(), Print); printf("\n");
  return 0;
}
Basek
2 / 2 / 1
Регистрация: 11.11.2010
Сообщений: 87
10.03.2011, 13:31  [ТС]     Вектор #3
А можете преобразовать код,для последующей работы с ним в Codelite 2.2?
lemegeton
2923 / 1352 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
10.03.2011, 17:26     Вектор #4
Это как?
Basek
2 / 2 / 1
Регистрация: 11.11.2010
Сообщений: 87
17.03.2011, 02:26  [ТС]     Вектор #5
Это код на Си или на Си++???
Если на Си++,то можете его под Си переделать?

Что это за библиотеки???

#include <ctime>
#include <cstdlib>

#include <vector>
#include <algorithm>
#include <numeric>


Еще непонятен вот этот абзац

class RandomGenerator {
public:
RandomGenerator(int min, int max) : min_(min), max_(max) {
srand(time(NULL));
}
inline int operator()() {
return rand() % (max_ - min_ + 1) + min_;
}
private:
int min_, max_;
};


int MultiplyInRange(int a, int b) {
return ((b >= -3 && b <= 3) ? a * b : a);
}

И можно ли этот код написать проще???
Yandex
Объявления
17.03.2011, 02:26     Вектор
Ответ Создать тему
Опции темы

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