5) Исполнитель А23S преобразует целое число, записанное на экране. У исполнителя три команды, каждой команде присвоен номер: 1. Прибавь 2
2. Прибавь 3
3. Прибавь предыдущее
Первая команда увеличивает число на экране на 2, вторая увеличивает это число на 3, третья прибавляет к числу на экране число, меньшее на 1 (к числу 3 прибавляется 2, к числу 11 прибавляется 10 и т. д.). Программа для исполнителя А23S – это последовательность команд.
Сколько существует программ, которые число 2 преобразуют в число 11?
#include "stdafx.h"#include <iostream>#include <iomanip>#include <ctime>using namespace std;
void bubbleSort(int *, int); // прототип функции сортировки пузырьком int main(int argc, char* argv[])
{ srand(time(NULL)); setlocale(LC_ALL, "rus"); cout << "Введите размер массива: ";
int size_array; // длинна массива cin >> size_array; int *sorted_array = new int [size_array];
// одномерный динамический массив
for (int counter = 0; counter < size_array; counter++)
{
sorted_array[counter] = rand() % 100;
// заполняем массив случайными числами
cout << setw(2) << sorted_array[counter] << " ";
// вывод массива на экран
}
cout << "\n\n";
bubbleSort(sorted_array, size_array);
// вызов функции сортировки пузырьком
for (int counter = 0; counter < size_array; counter++)
{
cout << setw(2) << sorted_array[counter] << " ";
// печать отсортированного массива
} cout << "\n";
system("pause");
return 0;}
void bubbleSort(int* arrayPtr, int length_array)
// сортировка пузырьком{ int temp = 0;
// временная переменная для хранения элемента массива bool exit = false;
// болевая переменная для выхода из цикла, если массив отсортирован while (!exit) // пока массив не отсортирован { exit = true; for (int int_counter = 0; int_counter < (length_array - 1);
int_counter++)
// внутренний цикл
//сортировка пузырьком по возрастанию - знак >
//сортировка пузырьком по убыванию - знак < if (arrayPtr[int_counter] > arrayPtr[int_counter + 1])
// сравниваем два соседних элемента
{ // выполняем перестановку элементов массива temp = arrayPtr[int_counter];
arrayPtr[int_counter] = arrayPtr[int_counter + 1];
arrayPtr[int_counter + 1] = temp;
exit = false; // на очередной итерации была произведена перестановка элементов }
}
}
readln(newr);
for i:=1 to 15 do
if r[i]<newr then writeln(f[i]);
Ручной ввод:
var
i,newr:integer;
f:array[1..15]of string;
r:array[1..15]of integer;
begin
writeln('Введите фамилии и рост (в см) по убыванию');
for i:=1 to 15 do
begin
write('Фамилия: ');
readln(f[i]);
write('Рост (в см): ');
readln(r[i]);
end;
writeln('Введите рост (в см) нового уч-ка, не совпадающий ни с кем');
readln(newr);
for i:=1 to 15 do if r[i]<newr then writeln(f[i]);
end.