1) Какова программа, которую нужно составить в языке Паскаль? Преподаватель Василий хочет следить за успеваемостью

1) Какова программа, которую нужно составить в языке Паскаль? Преподаватель Василий хочет следить за успеваемостью своих учеников, и для этого он хочет определить, насколько успешно идет преподавание. Учитывая информацию о том, сколько задач ученики решали каждый день, программа должна вывести "ОК", если ученики выступали каждый день не хуже, чем в предыдущий, иначе программа должна вывести номер дня, когда произошел первый провал.

2) Даны два числа N и K. Какая перестановка из N чисел (числа от 1 до N, без повторений) позволяет выполнить ровно K обменов при сортировке пузырьком по возрастанию? Если существует несколько возможных ответов, выведите любой из них.
Маруся

Маруся

1) Для решения данной задачи в языке Паскаль необходимо создать следующую программу:

pascal
program CheckProgress;
var
count, prevCount, day: integer; // count - количество задач текущего дня, prevCount - количество задач предыдущего дня, day - номер дня
begin
// Ввод количества задач для первого дня
write("Введите количество задач для 1-го дня: ");
readln(prevCount);

// Инициализация начального значения номера дня
day := 1;

// Цикл для проверки всех остальных дней
repeat
// Ввод количества задач для текущего дня
write("Введите количество задач для ", (day + 1), "-го дня: ");
readln(count);

// Проверка успеваемости учеников
if count < prevCount then
begin
writeln("Первый провал произошел на ", (day + 1), "-й день.");
exit; // Выход из программы при первом провале
end

// Обновление значений для следующей итерации
prevCount := count;
day := day + 1;

until count = 0; // Выход из цикла, если введено количество задач равное 0

writeln("Ученики выступали каждый день не хуже предыдущего.");

end.


В данной программе мы используем переменные `count`, `prevCount` и `day` для хранения информации о количестве задач текущего дня, предыдущего дня и номера дня соответственно.

Основной цикл `repeat...until` выполняется до тех пор, пока количество задач для текущего дня не станет равным нулю (ввод нуля обозначает окончание ввода данных). Внутри цикла мы сравниваем количество задач текущего дня `count` с количеством задач предыдущего дня `prevCount`. Если текущее количество задач меньше, выводим на экран номер дня, когда произошел первый провал, и прекращаем выполнение программы с помощью оператора `exit`. В противном случае обновляем значения переменных для следующего витка цикла.

Если цикл успешно завершился (введено количество задач равное 0), выводим на экран сообщение о том, что ученики успешно выступали каждый день.

2) Для решения данной задачи в языке Паскаль необходимо создать следующую программу:

pascal
program BubbleSort;
var
N, K, i, j: integer; // N - количество чисел, K - количество обменов, i, j - переменные для циклов
a: array[1..100] of integer; // массив для хранения чисел
temp: integer; // временная переменная для обмена чиселами
begin
// Ввод количество чисел и количество обменов
write("Введите количество чисел (N): ");
readln(N);
write("Введите количество обменов (K): ");
readln(K);

// Заполнение массива числами от 1 до N
for i := 1 to N do
begin
a[i] := i;
end;

// Сортировка пузырьком с заданным количеством обменов
for i := 1 to K do
begin
for j := 1 to N - 1 do
begin
if a[j] > a[j + 1] then
begin
temp := a[j];
a[j] := a[j + 1];
a[j + 1] := temp;
end;
end;
end;

// Вывод перестановки чисел
writeln("Перестановка чисел:");
for i := 1 to N do
begin
write(a[i], " ");
end;

end.


В данной программе мы используем переменные `N`, `K`, `i` и `j` для хранения информации о количестве чисел, количестве обменов и переменных для циклов.

Массив `a` размером 100 элементов используется для хранения чисел от 1 до N.

Далее мы используем вложенный цикл `for` для сортировки массива методом пузырька с заданным количеством обменов K. Внутренний цикл проходит по всем элементам массива от 1 до N-1 и сравнивает текущий элемент с последующим. Если текущий элемент больше последующего, происходит обмен местами с использованием временной переменной `temp`.

После сортировки выводим на экран получившуюся перестановку чисел. В данном случае, алгоритм сортировки пузырьком с выполнением K обменов позволит получить искомую перестановку.
Знаешь ответ?
Задать вопрос
Привет!
hello