Projekt für die Schule

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Freitag 1. April 2011, 12:52

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. :)
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Antworten