# Код на ruby 2.2.3p173 def zadanie(s) numbers = [] s.split(" ").each {|t| break if t == "2*109" numbers << t.to_i }
max = numbers[0] * numbers[4] for i in 0..numbers.size - 4 for j in i + 4..numbers.size - 1 p [i,j] m = numbers[i] * numbers[j] max = m if m % 2 == 1 and m > max end end
if max % 2 == 1 return max else return "IMPOSSIBLE" end end
# Примеры применения p zadanie("11 12 2 5 7 6 10 2 8 3 2*109 4")
def zadanie(s)
numbers = []
s.split(" ").each {|t|
break if t == "2*109"
numbers << t.to_i
}
max = numbers[0] * numbers[4]
for i in 0..numbers.size - 4
for j in i + 4..numbers.size - 1
p [i,j]
m = numbers[i] * numbers[j]
max = m if m % 2 == 1 and m > max
end
end
if max % 2 == 1
return max
else
return "IMPOSSIBLE"
end
end
# Примеры применения
p zadanie("11 12 2 5 7 6 10 2 8 3 2*109 4")
№ 1) Найти площадь поверхности куба со стороной а.
№2) Написать алгоритм нахождения максимального среди четырех целых чисел.
№3) Среди чисел а, b, c определить количество положительных.
См. картинки.
Объяснение:
№1) Определяем целые переменные S, a
Пользователь вводит значение переменной а
Расчёт поверхности по формуле S = 6*a^2 присваиваем переменной S
Вывод переменной S
№2) Здесь определение наибольшего числа осуществляется при разветвляющегося алгоритма:
Если [условие выполняется], то [следует действие 1], иначе [действие 2].
№3) Операция mod находит дробную часть введённого числа.
Например, если 23 : 2, то 11 - целая часть, 0,5 - дробная.
Запись а mod 2 = 0, означает, что программа сравнивает остаток с нулём. Если остаток - нуль, то число чётное (делиться на 2 без остатка).
Записываем значение в переменную i, увеличивая счётчик.