Skip to content

Instantly share code, notes, and snippets.

@volonterx
Created December 11, 2017 19:26
Show Gist options
  • Save volonterx/be38af287008adfabc69b18d430b1ae3 to your computer and use it in GitHub Desktop.
Save volonterx/be38af287008adfabc69b18d430b1ae3 to your computer and use it in GitHub Desktop.
#!/usr/bin/env ruby
# Нужно сделать калькулятор
# функциям, кроме факториала можно передавать в виде аргументов Float, например 3.0 (числа с плавающей запятой пишутся через точку)
# все функции должны принимать два аргумента, кроме факториала - у него только один
class Calculator
def self.addition #сложение
end
def self.subtraction #вычитание
end
def self.multiplication # умножение
end
def self.division # деление
end
def self.involution # возведение в степень
end
def self.factorial # вычисление факториала
end
end
# Calculator.addition(1, 2) => 3
# Calculator.involution(3, 2) => 9
# Calculator.factorial(4) => 24
#!/usr/bin/env ruby
# Наша цель - вылечить Джона
# Для этого нужно поместить в больницу Джона, врача и лекарства.
# Подсказка к решению задания - в методы в виде аттрибутов можно передавать объекты других классов. Например:
class Food
def cook(food_name)
"tasty " + food_name
end
end
class Dog
def eat(food)
"I eat " + food
end
end
puts Dog.new.eat(Food.new.cook("pie"))
# => I eat tasty pie
# Заготовка для задачи (учти: что все связи, наследования и аттрибуты еще не прописаны, их нужно дописать):
# Ты должен передать в Hospital.treat объект класса Человек по имени John,
# доктора - объекта класса Доктор (Доктор тоже Человек), который должен уметь лечить (у Доктора должен быть метод объекта под названием cure),
# И лекарство, которое должно в методе объекта под названием recipient (Medicine.new.recipient) возвращать что оно "для людей".
# В итоге Hospital.treat должно возвращать строку типа
# "I'm doctor House and I'm curing human John with medicine for humans"
# ------------ ----------------- ----------
# Для простоты подчеркнуты места, в которые в методе Hospital.treat должны ставляться разные строчки из объектов разных классов
class Human
def person(name)
"human " + name
end
end
class Doctor
end
class Medicine
end
class Hospital
def self.treat(patient, doctor, medicine) # все эти аттрибуты - объекты ранее описанных классов
end
end
puts Hospital.treat(разные аттрибуты)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment