Программа - вариант реализации алгоритма для обработки данных.
Программу тоже можно рассматривать как данные и производить с ней манипуляции. Например, если рассматривать программу как текст то её можно модифицировать в другой программе. А программу, уже загруженную в оперативную память можно рассматривать как последовательность байт, которые можно модифицировать.
P.S. Компиляторы и парсеры делают не сильно сложную работу. Они рассматривают поток текста как некие синтаксические сущности и на их основе создают понятные для компьютера вычислимые сущности. Тот код, который ты пишешь - просто текст. А вся магия в метаописании сущностей.
Код:
#include <fstream>#include <cmath>void first_task(std::ifstream &cin, std::ofstream &cout) { int n, k = 1; cin >> n >> k; cout << n / k;}void second_task(std::ifstream &cin, std::ofstream &cout) { int N; cin >> N; cout << 2 * (N / 2 + 1);}void third_task(std::ifstream &cin, std::ofstream &cout) { int N; cin >> N; auto t = [](int c, int N){return c / (int) pow(10, N) % 10;}; cout << t(N, 2) + t(N, 1) + t(N, 0);}void fourth_task(std::ifstream &cin, std::ofstream &cout) { int N; cin >> N; for (int it = 0; it < log2(N); ++it) { cout << pow(2, it) << " "; }}void fifth_task(std::ifstream &cin, std::ofstream &cout) { int h, a, b; cin >> h >> a >> b; int h0 = h - a, dx = a - b; int g = 1 + h0/dx + (h0%dx + dx - 1)/dx; if (g < 0) cout << INFINITY; else cout << g;}int main() { std::ifstream cin("input.txt"); std::ofstream cout("output.txt"); // Choose your function int N = 0; // 0-4 void (*tasks[5]) (std::ifstream &, std::ofstream &) = {first_task, second_task, third_task, fourth_task, fifth_task}; tasks[N](cin, cout); return 0;}Поделитесь своими знаниями, ответьте на вопрос:
Автомат получает на вход четырехзначное десятичное число. по этому числу строится новое число по следущим правилам 1. складываются первая и вторая, а также третья и четвертая цифры 2. полученные два числа записываются другза другом в порядке возрастания( без разделителей) пример 8754. суммы 8+7=15; 5+4=9. результат 915 какое из следующих чисел является результатом работы автомата 1) 219 2) 118 3) 1411 4) 151 подробное вычисление заранее )
1) 219
2) 118
3) 1411
4) 151
1) группы цифр: 2 и 19 (т.к. 21 и 9 быть не может, числа должны быть расположены по возрастанию)
2 будет результатом сложения 1 и 1, 2 и 0
19 не будет являться результатом сложения двух однозначных чисел (9+9=18, 9+10=19, что не подходит к условию про "складывание однозначных цифр")
первый ответ не подходит.
2) группы цифр: 1 и 18 (т.к. 11 и 8 быть не может, см. условие в 1 примере)
1 результат сложения 1 и 0.
18 это результат сложения 9 и 9.
118 будет являться результатом работы автомата.
3) группы цифр: 1 и 411, 14 и 11, 141 и 1 быть не может, значит, такого числа точно не будет. (первая группа не подходит, т.к. трёхзначная сумма, вторая т.к. не по возрастанию, третья т.к. трёхзначная сумма)
4) группы цифр: 1 и 51 (15 и 1 быть не может).
1 результат сложения 0 и 1.
51 результатом сложения двух однозначных чисел быть не может, соответственно, и этот вариант не подходит.
остаётся только вариант ответа 2) 118
входные числа так же могут быть разными: 9901, 9910, 1099.