1. Имеем дизъюнкцию (логическое или), которая ложна, если оба операнда ложны, значит, неверно, что НЕ(Первая буква гласная) и неверно, что Последняя буква гласная. Значит, первая буква гласная и последняя согласная, подходит только Егор (4). 2. Всё стоит в отрицании (НЕ), если отрицание истинно, значит, его аргумент ложен, Первая буква согласная ИЛИ Последняя буква гласная ложно. Всё аналогично первому, ответ Иван (1). 3. (X < 3) И НЕ (X < 2) = (X < 3) И (X >= 2) = (2 <= X < 3). Это неравенство выполнено для 2 (2). 4. Должно быть неверно, что третья буква гласная и неверно, что НЕ(последняя буква гласная), т.е. третья буква согласная, а последняя гласная. ответ Татьяна (2). 5. Конъюнкция (логическое И) истинно, если все операнды истинны, в данном случае НЕ(третья буква гласная)=(третья буква согласная) и (последняя буква согласная). Подходит Матвей (4). 6. Должны выполняться НЕ(количество гласных нечетно) и НЕ(первая буква согласная), т.е. кол-во гласных чётно и первая буква гласная. ответ Одоевский (2). 7. Опять конъюнкция, истинны оба операнда: НЕ(число < 20) = (число >= 20) и (число чётное). Среди вариантов есть только одно чётное число, не меньшее 20, это 36 (4). 8. Нужно слово, оканчивающееся на мягкий знак и состоящее из нечётного числа букв, это декабрь (3).
Итак, целевой язык - 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; // переправляем очередной кусок информации в поток вывода}
2. Всё стоит в отрицании (НЕ), если отрицание истинно, значит, его аргумент ложен, Первая буква согласная ИЛИ Последняя буква гласная ложно. Всё аналогично первому, ответ Иван (1).
3. (X < 3) И НЕ (X < 2) = (X < 3) И (X >= 2) = (2 <= X < 3). Это неравенство выполнено для 2 (2).
4. Должно быть неверно, что третья буква гласная и неверно, что НЕ(последняя буква гласная), т.е. третья буква согласная, а последняя гласная. ответ Татьяна (2).
5. Конъюнкция (логическое И) истинно, если все операнды истинны, в данном случае НЕ(третья буква гласная)=(третья буква согласная) и (последняя буква согласная). Подходит Матвей (4).
6. Должны выполняться НЕ(количество гласных нечетно) и НЕ(первая буква согласная), т.е. кол-во гласных чётно и первая буква гласная. ответ Одоевский (2).
7. Опять конъюнкция, истинны оба операнда: НЕ(число < 20) = (число >= 20) и (число чётное). Среди вариантов есть только одно чётное число, не меньшее 20, это 36 (4).
8. Нужно слово, оканчивающееся на мягкий знак и состоящее из нечётного числа букв, это декабрь (3).
Итак, целевой язык - 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; // переправляем очередной кусок информации в поток вывода}