# This class converts temperature between Celsius and Fahrenheit.
# It may be used by assigning a value to either Celsius or Fahrenheit
# and then retrieving the other value, or by calling the to_celsius or
# to_fahrenheit methods directly.

class Temperature
    @celsius = nil
    @fahrenheit = nil
    
    def celsius()
        @celsius
    end

    def celsius=(value)
        @celsius = value.to_f
        @fahrenheit = to_fahrenheit(@celsius)
    end
    
    def fahrenheit()
        return @fahrenheit 
    end
    
    def fahrenheit=(value)
        @fahrenheit = value.to_f
        @celsius = to_celsius(@fahrenheit)
    end
    
    def initialize(celsius: nil, fahrenheit: nil)
        if celsius != nil
            @celsius = celsius.to_f
            @fahrenheit = to_fahrenheit(@celsius)
        end
        
        if fahrenheit != nil
            @fahrenheit = fahrenheit.to_f
            @celsius = to_celsius(@fahrenheit)
        end
    end
    
    def to_celsius(fahrenheit)
        return (fahrenheit - 32) * 5 / 9
    end
    
    def to_fahrenheit(celsius)
        return celsius * 9 / 5 + 32
    end
end

# This program creates instances of the Temperature class to convert Cesius
# and Fahrenheit temperatures.
        
def main()
    temp1 = Temperature.new(celsius: 0)
    puts("temp1.celsius = " + temp1.celsius.to_s)
    puts("temp1.fahrenheit = " + temp1.fahrenheit.to_s)
    puts("")

    temp1.celsius = 100
    puts("temp1.celsius = " + temp1.celsius.to_s)
    puts("temp1.fahrenheit = " + temp1.fahrenheit.to_s)
    puts("")
    
    temp2 = Temperature.new(fahrenheit: 0)
    puts("temp2.fahrenheit = " + temp2.fahrenheit.to_s)
    puts("temp2.celsius = " + temp2.celsius.to_s)
    puts("")

    temp2.fahrenheit = 100
    puts("temp2.fahrenheit = " + temp2.fahrenheit.to_s)
    puts("temp2.celsius = " + temp2.celsius.to_s)
end

main()

कोशिश करो

सम्पादन

निम्न कोड मुफ्त ऑनलाइन विकास के वातावरण में से एक में ऊपर कॉपी और पेस्ट करो या अपने खुद के कम्पाइलर/इंटरप्रेटर/आईडीई का उपयोग करें।

यह भी देखें

सम्पादन