Начертить блок схему const q: array [1..12] of string = ( 'сможете ли вы на старом месте работы при к новым правилам? ', 'быстро ли адаптируетесь в новом коллективе ли вы высказывать свое мнение публично? ', 'согласитесь ли вы без колебаний перейти в другое учреждение' + #13#10 + ' на должность с большим окладом? ', 'склонны ли вы отрицать свою вину в допущенной ошибке и искать оправдания? ', 'объясняете ли вы обычно причины своего отказа от чего-либо' + #13#10 + ' истинным мотивами, или стараетесь их завуалировать? ', 'меняете ли вы свой прежний взгляд или убеждения в результате' + #13#10 + ' серьезной дискуссии? ', 'будете ли вы стремиться к правке текста,' + #13#10 + ' если вам не нравиться стиль его изложения? ', 'купите ли вы вещь, которая вам нравится, но не так уж необходима? ', 'можете ли вы изменить свое решение' + #13#10 + ' под влиянием уговоров обаятельного человека? ', 'планируете ли заранее свой отпуск? ', 'всегда ли выполняете данное вами обещание? '); a: array [1..12, boolean] of byte = ( (0, 4), (0, 3), (0, 3), (0, 2), (4, 0), (0, 2), (0, 3), (0, 2), (2, 0), (3, 0), (0, 1), (0, 3)); function choice(na: byte): byte; //подпрограмма которая возвращает результат. var c: char; begin repeat write(q[na]); readln(c); if not(c in ['n', 'y', 'n', 'y', 'н', 'д', 'н', 'д', 'h', 'у', 'h', 'у', '0', '1']) then writeln('неверный ответ. повторите.'); //если пользователь ввел неверный ответ. until c in ['n', 'y', 'n', 'y', 'н', 'д', 'н', 'д', 'h', 'у', 'h', 'у', '0', '1']; choice : = a[na, c in ['y', 'y', 'д', 'д', 'у', 'у', '1']] end; var s, i: byte; begin writeln('тест решительный ли вы человек.'); writeln('один из символов y, y, д, д, 1 означает "да",'); //ответ да. writeln('один из символов n, n, н, н, 0 означает "нет".'); //ответ нет. writeln; s : = 0; for i : = 1 to 12 do s : = s + choice(i); case s of //вывод. 0..9: writeln('вы решительны.'); 10..18: writeln('вы принимаете решения осторожно, но не пасуете перед серьезными проблемами.'); 19..28: writeln('вы достаточно решительный человек.') else writeln('вы принимаете решения единолично.') end; readln end.
Полные обороты не влияют на положение финиша, так что их можно вычесть из дистанции. Периметр прямоугольника равен P = 2(A + B), так что после выкидывания полных оборотов дистанция будет равна L mod P, где mod - операция взятия остатка. После этого L < P; если L < A, то финиш будет снизу, если A < L < A + B - справа, если A + B < L < 2A + B - сверху, а иначе слева.
Код (python 3):
A = int(input())
B = int(input())
L = int(input())
P = 2 * (A + B)
L = L % P
if L < A:
print("BOTTOM")
elif L < A + B:
print("RIGHT")
elif L < 2 * A + B:
print("TOP")
else:
print("LEFT")
Борис - 1
Олег - 2
Алексей - 3
Евгений - 4
Михаил - 5
Объяснение:
Первые три условия нам понятны (ставим крестик в таблице как сказано в условиях)
Михаил отстал от Алексея на два места: это означает что Михаил не может быть на первом и втором месте или четвертым(из 1 условия), Алексей не может быть на 4 или 5 месте.
Олег финишировал сразу за Борисом: Борис не мог стоять на пятом месте, а Олег на пятом.
Когда мы заполнили табличку крестиками, смотрим кто куда подходит.
Алексей: - X - X X
Борис:. X - - - X
Евгений: X - - - X
Михаил: X X - - -
Олег: - - - - X
На пятом месте стоит Михаил, Алексей на 3( из условия 4 ), Олег 2 и Борис 1,а Евгений 4(т.к. другие месторасположения мест противоречили бы 5 условию)