В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия
Chcdhj
Chcdhj
30.08.2020 19:00 •  Информатика

Это ссылка вне основного текста на источник информации, использованные при написании статьи, или комментарий. 6 букв. Вторая буква "И"

Показать ответ
Ответ:
Милана070800
Милана070800
06.10.2022 04:37
Код#include <iostream>#include <vector>template <class T>T order_statistics (std::vector<T> a, unsigned n, unsigned k);int main() {    std::vector<int> seq;    int N, input;    std::cin >> N;    for (int q = 0; q < N; ++q) {        std::cin >> input;        seq.push_back(input);    }    double median;    unsigned int len = seq.size();    if (len % 2 == 1) {        median = order_statistics(seq, len, (len+1) / 2);    }    else {        median = (order_statistics(seq, len, (len+1) / 2) + order_statistics(seq, len, (len+1) / 2 + 1)) / 2.0;    }    std::cout << "Median of seq: " << median;    return 0;}template <class T>T order_statistics (std::vector<T> a, unsigned n, unsigned k){    using std::swap;    for (unsigned l=1, r=n; ; )    {        if (r <= l+1)        {            if (r == l+1 && a[r] < a[l])                swap (a[l], a[r]);            return a[k];        }        unsigned mid = (l + r) >> 1;        swap (a[mid], a[l+1]);        if (a[l] > a[r])            swap (a[l], a[r]);        if (a[l+1] > a[r])            swap (a[l+1], a[r]);        if (a[l] > a[l+1])            swap (a[l], a[l+1]);        unsigned                i = l+1,                j = r;        const T                cur = a[l+1];        for (;;)        {            while (a[++i] < cur) ;            while (a[--j] > cur) ;            if (i > j)                break;            swap (a[i], a[j]);        }        a[l+1] = a[j];        a[j] = cur;        if (j >= k)            r = j-1;        if (j <= k)            l = i;    }}
с задачей по c++ Пусть задана последовательность из N целых неотрицательных чисел. Медианой такой по
с задачей по c++ Пусть задана последовательность из N целых неотрицательных чисел. Медианой такой по
0,0(0 оценок)
Ответ:
domaris246
domaris246
17.04.2021 17:14

Итак, целевой язык - C++. Это значит мы - радостные обладатели технологии потоков, с коей мы будем производить весь ввод/вывод как при работе с файлами, так и при работе со стандартным вводом/выводом (консолью).

Ну а раз уж мы работаем с потоками, то будем делать это красивенько: создадим класс-обёртку для потока ввода, цель которого - поиск в этом потоке цитат и отправка их на поток вывода (который мы передаём).

[!] Стоит отметить, что по заданию не сказано, что есть разница между ' и ". Поэтому будем считать их одинаковыми.

[!] Внимание! Рядом с исполняемым файлом надо создать текстовый файл data.txt c текстом и цитатами.

Код

С++11

#include <iostream>#include <fstream>using std::cout;class QuotesFinder {    std::istream &in_stream;    bool is_it_in_quote = false;public:    QuotesFinder() = delete;    QuotesFinder(QuotesFinder&&) = default;    QuotesFinder(QuotesFinder const&) = default;    explicit QuotesFinder(std::istream &is) : in_stream(is) {}    [[nodiscard]]    bool eof() const {        return in_stream.eof();    }    // Вот тут происходит вся магия    QuotesFinder& operator >> (std::ostream& out_stream) {        char buffer;        in_stream.get(buffer); //Получаем очередной символ из потока        if (buffer == '\"' || buffer == '\'') {            if (is_it_in_quote) {                is_it_in_quote = false;                out_stream << buffer;                out_stream << "\n";                return *this;            }            is_it_in_quote = true;        }        if (is_it_in_quote) {            out_stream << buffer;        }        return *this;    }};int main() {    std::ifstream file("data.txt");  // Открываем файл    if (!file.is_open()) {        cout << "File is not exits!";        return 1;    }    QuotesFinder finder(file);  // Создаём обёртку из файлового потока    while (!finder.eof()) // Пока не достигли конца потока        finder >> cout; // переправляем очередной кусок информации в поток вывода}
Написать программу на С++. Задача - Считать текст из файла и вывести на экран только цитаты, т. е. п
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота