Предмет: Информатика, автор: blackzenya

Робота з STL
C++
1 задача
Використовуючи контейнерний клас <vector> та ітератори для забезпечення доступу до

елементів колекції. За необхідності використайте алгоритми, які надає бібліотека STL.

Задано масив цілих чисел A(n), n ≤ 300 . Розробити програму, яка обчислює

добуток елементів цього масиву, якщо масив упорядкований за зростанням або

суму, якщо масив не упорядкований. Масив буде упорядкованим за зростанням

якщо ai <= ai+1 для i = 1,2,...,n −1.
2 задача
Використовуючи контейнерний клас <string> та ітератори для забезпечення доступу до

елементів колекції. За необхідності використайте алгоритми, які надає бібліотека STL.

Задано текст, слова в якому розділені пробілами і розділовими знаками.

Розробити програму, яка вилучає в кожному слові цього тексту всі наступні

входження першої літери.​

Ответы

Автор ответа: bqMizuno
1

Ответ:

Задача 1:

Для вычисления произведения элементов массива, упорядоченного по возрастанию или сумме, можно использовать алгоритм accumulate. Вот пример кода:

#include <iostream>

#include <vector>

#include <algorithm>

int main() {

int n;

std::cin >> n;

std::vector<int> A(n);

for (int i = 0; i < n; ++i) {

std::cin >> A[i];

}

long long result = std::accumulate(A.begin(), A.end(), 1);

if (A.begin() == A.end()) {

std::cout << "Product: " << result << std::endl;

} else {

std::sort(A.begin(), A.end());

long long result_sorted = std::accumulate(A.begin(), A.end(), 1);

std::cout << "Product sorted: " << result_sorted << std::endl;

}

return 0;

}

Задача 2:

Для выделения всех слов в тексте, начинающихся с любой буквы, можно использовать алгоритм find_if. Вот пример кода:

#include <iostream>

#include <string>

#include <algorithm>

#include <sstream>

#include <iterator>

std::istream& read_words(std::istream& in, std::vector<std::string>& words) {

std::string word;

while (std::getline(in, word, ' ')) {

words.push_back(word);

}

return in;

}

int main() {

std::istream& cin = std::cin;

std::vector<std::string> words;

read_words(cin, words);

std::copy_if(words.begin(), words.end(), std::ostream_iterator<std::string>(std::cout, " "),

[](const std::string& s) {

return s.size() > 0 && std::isalpha(s[0]);

});

return 0;

}

Объяснение:

Лучший ответ плиз : )


blackzenya: в первом ты забыл #include
blackzenya: а в втором #include
Похожие вопросы
Предмет: Литература, автор: Аноним