Created
December 11, 2017 19:26
-
-
Save volonterx/be38af287008adfabc69b18d430b1ae3 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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