4). Найти наибольшее из чисел A, В, С. Здесь удобно использовать три оператора IF, каждый из которых проверяет на максимум одно из чисел. Если данное число оказалось самым большим, следует его напечатать и сразу прекратить вычисления оператором END, включенным внутрь структуры IF. 5). Вывести число, занимающее промежуточное положение между самым большим и самым маленьким из чисел A,В, С. (qbasic)
Задача сложна тем, что остаток от деления может быть может быть любым, от 1 до B-1. Поэтому она свелась к тому, чтобы ЛЮБОЕ число представить как 1. А нуль оставить нулём. Простейшим решением этой подзадачи явилось следующее: ( (Х + 2) // (Х + 1) ) % 2. В таком случае при Х = 0 левая часть выражения становится равна 2 и результат вычислений - 0. А при любом другом числе левая часть равна 1 и результат вычислений тоже будет 1. Теперь осталось выразить Х через А и В.
(((А % В) + 2) // ((А % В) + 1)) % 2.
Однако, следует помнить, что % - это операция деления, и при В = 0 интерпретатор или компилятор выдаст ошибку.
Для варианта с YES можно было бы использовать print('YES' * 1 - (А % В)).
Что бы условие выполнялось и при этом число-результат было самым большим будем смотреть каждый элемент условия:
Есть хотя бы одна тройка и нет восьмерок - 999993
Есть хотя бы одна тройка и не больше двух девяток - 99883
Есть ровно две единицы и нет восьмерок - 999911
Есть ровно две единицы и не больше двух 9 - 998811
999993 - и есть самое большое число выполняющее условие (Есть хотя бы одна тройка ИЛИ Есть ровно две единицы) И (Нет восьмерок ИЛИ Не больше двух девяток)