Rückblick – Temperaturen
Teil des Abschnitts Objektorientierte Programmierung der R-Journey von Coddy. Lektion 6 von 57.
Aufgabe
MittelErstelle die S3-Klasse temperature in Temperature.R. Eine Temperatur ist eine Zahl mit einem Attribut unit (C oder F).
new_temperature(value, unit)prüft die Typen mitstopifnot()und gibtstructure(value, unit = unit, class = "temperature")zurück.validate_temperature(x)bricht mitunit must be C or Fab oder mitbelow absolute zero, wenn der Wert unter -273.15 C oder -459.67 F liegt.temperature(value, unit = "C")konvertiert den Wert mitas.double(), wandelt die Einheit in Großbuchstaben um und gibt eine validierte Temperatur zurück.format.temperature()gibt21.5 Cmit einer Dezimalstelle zurück, undprint.temperature()gibtTemperature: 21.5 Caus und gibtinvisible(x)zurück.convert_to(t, unit)gibt eine Temperatur in der angegebenen Einheit zurück (denselben Wert, wenn die Einheit bereits übereinstimmt).
Verwende call. = FALSE in jedem stop(). Der bereitgestellte Code liest Zeilen 21.5 c F (Wert, Einheit, Zieleinheit), gibt die Temperatur und die umgerechnete Temperatur aus oder error: und die Meldung.
Dein Code gehört in Temperature.R. main.R enthält den bereitgestellten Eingabe-/Ausgabecode und darf nicht bearbeitet werden.
Probier es selbst
source("Temperature.R")
# Bereitgestellter Ein-/Ausgabe-Code: belasse ihn wie er ist
input <- suppressWarnings(readLines(file("stdin")))
for (line in input) {
p <- strsplit(line, " ")[[1]]
result <- tryCatch({
t <- temperature(p[1], p[2])
print(t)
print(convert_to(t, p[3]))
NULL
}, error = function(e) cat("error: ", conditionMessage(e), "\n", sep = ""))
}
Alle Lektionen in Objektorientierte Programmierung
1S3-Grundlagen
Arbeiten mit DateienListen mit einer KlasseKonstruktorfunktionenPrint- und Format-MethodenValidatoren und HilfsfunktionenRückblick – Temperaturen4Kapselung in R
Closures als ObjekteUmgebungen als ObjekteZugriffsfunktionenZustand schützenRückblick – Parkuhr2S3-Generics und Methoden
Generics und UseMethodStandardmethodenMethoden für Basis-GenericsGrundlagen von NextMethodWiederholung – Flächeninhalte von Formen5S4-Klassen
S4-Klassen definierenSlots und ZugriffGültigkeitsprüfungenShow-MethodenRückblick – Produktkatalog8Referenzklassen
Referenzklassen definierenMethoden und FeldänderungenKopiersemantikVererbung und callSuperZusammenfassung – Aufgabenwarteschlange11Projekt: Bibliotheksverwaltung
Bücher und MitgliederBücher ausleihenÜbe selbstständig: Online-R-Compiler