Rangkuman: Kalkulator Aman
Termasuk bagian Logika dan Alur dalam perjalanan R di Coddy. Pelajaran 56 dari 64.
Tantangan
SulitLengkapi evaluate(expr). Ekspresi berbentuk <number> <operator> <number> dengan spasi di sekitar operator, seperti 8 / 2. Timbulkan error dengan stop() untuk setiap masalah, dengan urutan pemeriksaan berikut:
expected: number operator numberjika jumlah bagiannya bukan tepat tiga'<part>' is not a numberuntuk bagian angka pertama yang tidak dapat dikonversi, seperti'x' is not a numberunknown operator <op>jika operatornya bukan+,-,*, atau/division by zero
Jika tidak, kembalikan hasilnya, dibulatkan hingga empat angka desimal dengan round(value, 4).
Lalu lengkapi run_all(exprs): evaluasi setiap ekspresi di dalam tryCatch() dan kembalikan satu baris untuk setiap ekspresi, 8 / 2 = 4 atau 5 / 0 -> error: division by zero.
Kode yang disediakan meneruskan setiap baris input ke run_all() dan mencetak setiap baris yang dikembalikan.
Coba sendiri
evaluate <- function(expr) {
# Tulis kodemu di sini
0
}
run_all <- function(exprs) {
# Tulis kodemu di sini
character(0)
}
# Kode input/output yang disediakan: biarkan apa adanya
input <- suppressWarnings(readLines(file("stdin")))
cat(run_all(input), sep = "\n")
Semua pelajaran di Logika dan Alur
1Mendalami string
Substring dengan substr()Memformat dengan sprintf()Memisahkan dan MenggabungkanMencari stringMengganti TeksRangkuman: Pembuat Nama Pengguna4Matriks
Membuat MatriksMengakses Elemen MatriksRingkasan Baris dan KolomAritmetika MatriksRangkuman: Denah Tempat Duduk2Pencarian Nilai-Kunci
Pencarian pada Vector BernamaMemeriksa KunciMenambahkan dan Menghapus KunciMenelusuri NamaUlasan: Meja Saham5Proyek, Buku Nilai
Menambahkan SiswaMencatat Nilai8Pengurutan dan Pengelompokan
Mengurutkan VektorMengurutkan berdasarkan KunciMengelompokkan dengan split()Ringkasan KelompokUlasan: Papan Peringkat11Penanganan error
Memunculkan error dengan stop()Menangani error dengan tryCatch()Peringatan dan finallyMemvalidasi inputRangkuman: Kalkulator Aman3Set dan Penghitungan
Nilai UnikOperasi setPengujian KeanggotaanMenghitung dengan table()Ulasan: Tamu Acara6Fungsi sebagai Nilai
Fungsi AnonimMengirim FungsiMengembalikan FungsiClosure dengan StateRangkuman: Aturan Diskon9Data Frame
Membuat Data FrameKolom dan BarisMemfilter BarisMenambahkan dan MengurutkanRangkuman: Laporan Penjualan12Proyek: Pelacak Pengeluaran
Mencatat PengeluaranTotal PengeluaranLatihan sendiri: Compiler R online