Tekrar - Sıcaklıklar
Coddy'nin R Journey'sinin Nesne Tabanlı Programlama bölümünün bir parçası. Ders 6 / 57.
Görev
OrtaTemperature.R içinde temperature S3 sınıfını oluşturun. Bir sıcaklık, unit özniteliğine sahip bir sayıdır (C veya F).
new_temperature(value, unit), türleristopifnot()ile kontrol eder vestructure(value, unit = unit, class = "temperature")döndürür.validate_temperature(x),unit must be C or Fmesajıyla durur veya değer -273.15 C ya da -459.67 F değerinin altındaysabelow absolute zeromesajıyla durur.temperature(value, unit = "C"), değerias.double()ile dönüştürür, birimi büyük harfe çevirir ve doğrulanmış bir sıcaklık döndürür.format.temperature(), bir ondalık basamakla21.5 Cdöndürür;print.temperature()iseTemperature: 21.5 Cyazdırır veinvisible(x)döndürür.convert_to(t, unit), verilen birimde bir sıcaklık döndürür (birim zaten eşleşiyorsa aynı değeri döndürür).
Her stop() çağrısında call. = FALSE kullanın. Sağlanan kod, 21.5 c F satırlarını (değer, birim, hedef birim) okur, sıcaklığı ve dönüştürülmüş sıcaklığı yazdırır veya error: iletisini ve mesajı yazdırır.
Kodunuz Temperature.R içinde olmalıdır. main.R, sağlanan girdi/çıktı kodunu içerir ve düzenlenemez.
Kendin dene
source("Temperature.R")
# Sağlanan girdi/çıktı kodu: olduğu gibi bırakın
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 = ""))
}
Nesne Tabanlı Programlama bölümündeki tüm dersler
1S3 Temelleri
Dosyalarla ÇalışmaSınıf ile ListelerYapıcı FonksiyonlarPrint ve Format MetotlarıDoğrulayıcılar ve YardımcılarTekrar - Sıcaklıklar4R'da Kapsülleme
Nesne Olarak Closure'larNesne Olarak OrtamlarErişimci FonksiyonlarDurumu KorumaÖzet - Parkmetre2S3 Generic'leri ve Metotları
Generic'ler ve UseMethodVarsayılan MetotlarTemel Generic'ler için MetotlarNextMethod TemelleriTekrar - Şekil Alanları5S4 Sınıfları
S4 Sınıflarını TanımlamaSlotlar ve ErişimGeçerlilik KontrolleriShow MetotlarıÖzet - Ürün Kataloğu8Referans Sınıfları
Referans Sınıflarını TanımlamaMetotlar ve Alan GüncellemeleriKopyalama SemantiğiKalıtım ve callSuperÖzet - Görev Kuyruğu11Proje: Kütüphane Yönetimi
Kitaplar ve ÜyelerKitap Ödünç AlmaKendi başına pratik yap: Online R derleyicisi