Seite 2 von 2

Re: Projekt für die Schule

Verfasst: Freitag 1. April 2011, 12:52
von Rebecca
Und hier eine Ruby-Loesung. Ich war zu faul das noch in Funktionen zu verpacken. Was mich ein wenig Zeit gekostet hat war rauszufinden, dass ich call benutzen muss, um die Lambda-Funktionen dann aufzurufen; das fand ich ungewoehnlich. Anderseits kann man Klammern beim Funktionsaufruf weglassen (siehe Zeile 10) ... Und obwohl ich die Syntax von Python 2, wie man mit und ohne Zeilenumbruch printet, doof finde -- Rubys puts und print sind auch nicht besser, da vergesse ich immer, was was ist.

Code: Alles auswählen

#!/usr/bin/env ruby

rules = {
  "Celsius" => lambda { |temp| temp },
  "Farenheit" => lambda { |temp| temp * 9 / 5.0 + 32 },
  "Kelvin" => lambda { |temp| temp + 273.15 }
}

puts "Von?"
min = gets.to_i
puts "Bis?"
max = gets.to_i

(min ... max).step(10) do |temp|
  rules.each_pair { |name, func| print "#{name} %6.2f; " % func.call(temp) }
  puts
end
EDIT: Die schonen rosa Keywords im Ruby-Highlighting passen zu meinem Avatar. :)