Menu
Coddy logo textTech

Tekrar - Güvenli Hesap Makinesi

Coddy'nin R Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 56 / 64.

challenge icon

Görev

Zor

evaluate(expr) işlevini tamamla. Bir ifade, işlecin etrafında boşluklar bulunan <number> <operator> <number> biçimindedir; örneğin 8 / 2. Her sorun için stop() ile hata oluştur ve sorunları şu sırayla denetle:

  • Tam olarak üç parça yoksa expected: number operator number
  • Dönüştürülemeyen ilk sayı parçası için '<part>' is not a number; örneğin 'x' is not a number
  • İşleç +, -, * veya / değilse unknown operator <op>
  • division by zero

Aksi takdirde sonucu, round(value, 4) ile dört ondalık basamağa yuvarlanmış olarak döndür.

Ardından run_all(exprs) işlevini tamamla: her ifadeyi tryCatch() içinde değerlendir ve ifade başına bir satır döndür; örneğin 8 / 2 = 4 veya 5 / 0 -> error: division by zero.

Sağlanan kod, her giriş satırını run_all() işlevine aktarır ve döndürülen her satırı yazdırır.

Kendin dene

evaluate <- function(expr) {
  # Kodunuzu buraya yazın
  0
}

run_all <- function(exprs) {
  # Kodunuzu buraya yazın
  character(0)
}

# Sağlanan girdi/çıktı kodu: olduğu gibi bırakın
input <- suppressWarnings(readLines(file("stdin")))
cat(run_all(input), sep = "\n")

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online R derleyicisi