Kullanıcıdan Girdi Alma
Coddy'nin R Journey'sinin Temeller bölümünün bir parçası. Ders 34 / 78.
Görev
KolayÖnceki derste Bill Split Calculator için bir karşılama mesajı oluşturdun. Şimdi fatura hesaplaması için kullanıcı girdilerini toplama işlevini ekle.
Mevcut karşılama mesajından sonra kullanıcıdan üç girdi oku:
- Toplam fatura tutarı
- Bahşiş yüzdesi (tam sayı olarak; örneğin %15 için
15) - Faturayı paylaşan kişi sayısı
Bu platformdaki gibi etkileşimsiz çalışan R betiklerinde girdi, standart girdi akışından okunur. Bunu yapmak için önce stdin kullanarak file() ile bir bağlantı aç, ardından her satırı readLines() ile oku ve işin bittiğinde bağlantıyı kapat:
con <- file("stdin", "r")
bill <- as.numeric(suppressWarnings(readLines(con, n = 1)))
tip_percent <- as.numeric(suppressWarnings(readLines(con, n = 1)))
people <- as.numeric(suppressWarnings(readLines(con, n = 1)))
close(con)Her bölümün yaptığı işlem şöyledir:
file("stdin", "r"): standart girdi akışını okumak üzere açar veconiçinde saklarreadLines(con, n = 1): bu bağlantıdan tam olarak bir satır okur. Not:readLines(),readline()işlevinden farklıdır:readLines()dosya bağlantılarıyla (stdindahil) çalışır ven =kullanarak aynı anda birden fazla satır okuyabilir;readline()ise yalnızca R konsolunda etkileşimli olarak çalışırsuppressWarnings(...): bu şekildestdinüzerinden okuma yapılırken ortaya çıkan zararsız uyarıları sessize alır. R bir betiktestdinüzerinden okuma yaptığında, her şey doğru çalışsa bile bazen "incomplete final line" gibi bir uyarı üretir. ÇağrıyısuppressWarnings()içine almak, bu mesajları gizleyerek çıktını gereksiz yere kalabalıklaştırmalarını önler. Okunan değerleri etkilemezas.numeric(...): metin girdisini sayıya dönüştürürclose(con): tüm girdiler okunduktan sonra bağlantıyı kapatır
Üç değeri bill, tip_percent ve people adlı değişkenlerde sakla.
Girdileri okuduktan sonra, girilen değerleri aşağıdaki biçimde gösteren bir doğrulama mesajı yazdır:
Bill: $[bill]
Tip: [tip_percent]%
People: [people]Tüm çıktılar için cat() kullan ve gerektiği yerlerde satır sonu karakterleri \n ekle. İstenmeyen boşlukları önlemek için her sep = "" çağrısında cat() kullan.
Varsayılan olarak cat(), yazdırdığı her öğenin arasına bir boşluk ekler. Örneğin:
cat("Bill: $", 120, "\n") # prints: Bill: $ 120 $ ile 120 arasında ve satır sonundan önce oluşan istenmeyen boşluklara dikkat et. sep = "" eklemek, cat() işlevine ayırıcı olarak boş bir dize kullanmasını söyler; böylece öğelerin arasına hiçbir şey eklenmez:
cat("Bill: $", 120, "\n", sep = "") # prints: Bill: $120Bu kalıbı üç doğrulama satırının tümüne uygula:
cat("Bill: $", bill, "\n", sep = "")
cat("Tip: ", tip_percent, "%\n", sep = "")
cat("People: ", people, "\n", sep = "")Örneğin girdiler 120, 18 ve 4 ise tam çıktı şu şekilde olmalıdır:
Welcome to the Bill Split Calculator!
Let's split your bill fairly.
Bill: $120
Tip: 18%
People: 4Kendin dene
# TODO: Write your code below
# Use cat() to display the welcome message
# Remember to use \n for new lines
cat("Welcome to the Bill Split Calculator!\nLet's split your bill fairly.\n")Temeller bölümündeki tüm dersler
4Operatörler Bölüm 2
Mantıksal Operatörler (AND, OR)Mantıksal Operatörler Bölüm 2 (NOT)Özet - Basit MantıkVektörize Mantık Bölüm 1Vektörize Mantık Bölüm 27Hesap Paylaşım Hesaplayıcısı
Hoş Geldiniz MesajıKullanıcıdan Girdi Alma10Farklı Bir FizzBuzz
Oyuna Genel BakışFizzBuzz Fonksiyonu2Değişkenler ve Veri Tipleri
Sayısal Veri TipiTam Sayı Veri TipiKarakter Veri TipiMantıksal Veri TipiVeri Tiplerini Kontrol Etmeİsimlendirme KurallarıEksik Değerler: NAÖzet - Değişken Oluşturma8Döngüler
For DöngüsüWhile DöngüsüBreakNext (Continue)Özet - FaktöriyelDizi Oluşturma (seq, :)İç İçe DöngülerÖzet - Dinamik Girdi3Operatörler 1. Bölüm
Aritmetik OperatörlerTam Sayı Bölmesi ve Mod AlmaAtama OperatörleriÖzet - Basit MatematikKarşılaştırma Operatörleri6Temel Giriş-Çıkış
Print ÇıktısıÇıktı için Cat KullanımıDeğişkenlerle Çıktı Almakreadline() ile Girdi OkumaTip Dönüşümü TemelleriÖzet - Yaş HesaplayıcıÖzet - Doğru mu Yanlış mı9Fonksiyonlar
Fonksiyon TanımlamaFonksiyon ArgümanlarıDönüş DeğerleriÖzet - Sigma FonksiyonuÖzet - Doğrulama FonksiyonuVarsayılan Parametre DeğerleriKendi başına pratik yap: Online R derleyicisi