From 585c3a16f2da92a99957efa3bbae5c849294bf40 Mon Sep 17 00:00:00 2001 From: Evgeniy Fateev Date: Wed, 17 May 2017 01:08:13 +0300 Subject: [PATCH] Add lesson-1 comments --- comments/ruby1.1.rb | 14 ++++++++++++++ comments/ruby1.2.rb | 9 +++++++++ comments/ruby1.3.rb | 38 ++++++++++++++++++++++++++++++++++++++ comments/ruby1.4.rb | 23 +++++++++++++++++++++++ 4 files changed, 84 insertions(+) create mode 100644 comments/ruby1.1.rb create mode 100644 comments/ruby1.2.rb create mode 100644 comments/ruby1.3.rb create mode 100644 comments/ruby1.4.rb diff --git a/comments/ruby1.1.rb b/comments/ruby1.1.rb new file mode 100644 index 0000000..7515679 --- /dev/null +++ b/comments/ruby1.1.rb @@ -0,0 +1,14 @@ +# Идеальный вес. Программа запрашивает у пользователя +# имя и рост и выводит идеальный вес по формуле +# <рост> - 110, после чего выводит результат пользователю на экран +# с обращением по имени. Если идеальный вес получается отрицательным, +# то выводится строка "Ваш вес уже оптимальный" +puts 'Hello. Let me know your name' +name = gets.chomp +puts 'Fine, now i want to know your height' +height = gets.chomp.to_i +best_weight = height - 110 +if best_weight <= 0 + puts "Ok, #{name}, yor best weight is #{best_weight}" +else puts "Your weight is good" +end \ No newline at end of file diff --git a/comments/ruby1.2.rb b/comments/ruby1.2.rb new file mode 100644 index 0000000..4012c0b --- /dev/null +++ b/comments/ruby1.2.rb @@ -0,0 +1,9 @@ +# Площадь треугольника. Площадь треугольника можно вычилсить, +# зная его основание (a) и высоту (h) по формуле: 1/2*a*h. +# Программа должна запрашивать основание +# и высоту треуголиника и возвращать его площадь. +puts 'Enter a:' +a = gets.chomp.to_f +puts 'Enter h' +h = gets.chomp.to_f +puts "S = #{0.5*a*h}" \ No newline at end of file diff --git a/comments/ruby1.3.rb b/comments/ruby1.3.rb new file mode 100644 index 0000000..4ae7ba0 --- /dev/null +++ b/comments/ruby1.3.rb @@ -0,0 +1,38 @@ +# Прямоугольный треугольник. +# Программа запрашивает у пользователя 3 стороны треугольника +# и определяет, является ли треугольник прямоугольным, +# используя теорему Пифагора (www-formula.ru) и выводит результат на экран. +# Также, если треугольник является при этом равнобедренным +# (т.е. у него равны любые 2 стороны), то дополнительно выводится информация о том, +# что треугольник еще и равнобедренный. +# Подсказка: чтобы воспользоваться теоремой Пифагора, +# нужно сначала найти самую длинную сторону (гипотенуза) +# и сравнить ее значение в квадрате с суммой квадратов двух остальных сторон. +# Если все 3 стороны равны, то треугольник равнобедренный и равносторонний, +# но не прямоугольный. +puts "Enter a b c of triangle (with delimiter ','):" +sides = gets.chomp.split(',').map {|i| Float(i) } +a = sides[0] +b = sides[1] +c = sides[2] +case sides.max +when a + if (c**2 + b**2) == a**2 + puts 'triangle is rectangular' + end +when b + if (a**2 + c**2) == b**2 + puts 'triangle is rectangular' + end +when c + if (a**2 + b**2) == c**2 + puts 'triangle is rectangular' + end +else + puts "something went wrong" +end +if [a, c].include? b + puts 'triangle is equilateral and isosceles' +elsif a == b || a == c || b == c + puts 'triangle is isosceles' +end \ No newline at end of file diff --git a/comments/ruby1.4.rb b/comments/ruby1.4.rb new file mode 100644 index 0000000..134c34e --- /dev/null +++ b/comments/ruby1.4.rb @@ -0,0 +1,23 @@ +#Квадратное уравнение. Пользователь вводит 3 коэффициента a, b и с. Программа вычисляет дискриминант (D) и корни уравнения (x1 и x2, если +#oни есть) и выводит значения дискриминанта и корней на экран. При этом возможны следующие варианты: +# Если D > 0, то выводим дискриминант и 2 корня +# Если D = 0, то выводим дискриминант и 1 корень (т.к. они в этом случае равны) +# Если D < 0, то выводим дискриминант и сообщение "Корней нет" +#Подсказка: Алгоритм решения с блок-схемой (www.bolshoyvopros.ru). Для вычисления квадратного корня, нужно использовать +#Math.sqrt +# Например, +#Math.sqrt(16) +# вернет 4, т.е. квадратный корень из 16. + +puts "Enter a b c (with delimiter ','):" +sides = gets.chomp.split(',').map {|i| Float(i) } +a = sides[0] +b = sides[1] +c = sides[2] +if (d=b**2-4*a*c) == 0 + puts "x = #{(-b)/2*a}" +elsif d<0 + puts "no roots of equation" +elsif d>0 + puts "x1 = #{(-b+Math.sqrt(d))/(2*a)}\nx2 = #{(-b-Math.sqrt(d))/(2*a)}" +end \ No newline at end of file