Récapitulatif - Températures
Fait partie de la section Programmation orientée objet du Journey R de Coddy. Leçon 6 sur 57.
Défi
MoyenConstruisez la classe S3 temperature dans Temperature.R. Une température est un nombre doté d’un attribut unit (C ou F).
new_temperature(value, unit)vérifie les types avecstopifnot()et renvoiestructure(value, unit = unit, class = "temperature").validate_temperature(x)s’arrête avecunit must be C or F, ou avecbelow absolute zerolorsque la valeur est inférieure à -273.15 C ou -459.67 F.temperature(value, unit = "C")convertit la valeur avecas.double(), met l’unité en majuscules et renvoie une température validée.format.temperature()renvoie21.5 Cavec une décimale, etprint.temperature()afficheTemperature: 21.5 Cet renvoieinvisible(x).convert_to(t, unit)renvoie une température dans l’unité indiquée (la même valeur lorsque l’unité correspond déjà).
Utilisez call. = FALSE dans chaque stop(). Le code fourni lit des lignes 21.5 c F (valeur, unité, unité cible), affiche la température et la température convertie, ou error: ainsi que le message.
Votre code doit être placé dans Temperature.R. main.R contient le code d’entrée/sortie fourni et ne peut pas être modifié.
Essayez vous-même
source("Temperature.R")
# Code d'entrée/sortie fourni : le garder tel quel
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 = ""))
}
Toutes les leçons de Programmation orientée objet
1Bases de S3
Travailler avec les fichiersListes avec une classeFonctions constructricesMéthodes print et formatValidateurs et fonctions utilitairesRécapitulatif - Températures4Encapsulation dans R
Les fermetures comme objetsLes environnements comme objetsFonctions d’accèsProtéger l’étatRécapitulatif - Parcmètre2S3 : génériques et méthodes
Génériques et UseMethodMéthodes par défautMéthodes pour les génériques de baseNotions de base sur NextMethodRécapitulatif - Aires des formes5Classes S4
Définir des classes S4Slots et accèsVérifications de validitéMéthodes showRécapitulatif - Catalogue de produits8Classes de référence
Définition des classes de référenceMéthodes et mises à jour des champsSémantique de copieHéritage et callSuperRécapitulatif - File d’attente des tâches11Projet : gestion de bibliothèque
Livres et membresEmprunter des livres3Héritage S3
Vecteurs de classesOrdre de recherche des méthodesÉtendre avec NextMethodVérifier avec inherits()Récapitulatif - Paie du personnelEntraînez-vous par vous-même : Compilateur R en ligne