Написать алгоритм для исполнителя Чертёжник, используя команды "Сместиться в точку (a, b)", "Опустить перо" и "Поднять перо". написать программу нужно для данного рисунка
Итак, целевой язык - 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.
С++ на Code Blocks 16
Объяснение:
#include <iostream>
#include <time.h>
using namespace std;
int main()
{
int n = 8; // можно ввести любую размерность квадратной матрицы
int a[n][n];
int Nmax, Nind, i, j = 0 ;
int d;
// Заполним матрицу случайными числами в диапазоне [0 ,100)
// и сразу её выведем
cout << " ---- Array in start ---- " << endl;
srand(time(0));
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
a[i][j] = rand()%111;
cout <<a[i][j] ;
cout<< " ";
}
cout << " " << endl;
}
// Поиск максимального элемента матрицы. Для оптимизации, можно было это произвести на этапе заполнения матрицы
// но для наглядности, напишем отдельно
Nmax = 1;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++){
if (Nmax < a[i][j]) {
Nmax = a[i][j];
Nind = i;
}
}
}
cout<< "Max ["<< Nind<<"] = "<< Nmax << endl;
// Меняем строки местами
for (int j = 0; j < n; j++) {
d = a[n-1][j];
a[n-1][j]=a[Nind][j];
a[Nind][j] = d;
}
cout << " ---- Array after modify ---- " << endl;
// Выводим полученную матрицу
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++){
cout << a[i][j] ;
cout<< " ";
}
cout << " " << endl;
}
return 0;
}
Итак, целевой язык - 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; // переправляем очередной кусок информации в поток вывода}