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şturdunuz. Şimdi, fatura hesaplaması için kullanıcı girişini toplama işlevini ekleyin.
Mevcut karşılama mesajınızdan sonra, kullanıcıdan üç giriş okuyun:
- Toplam fatura tutarı
- Bahşiş yüzdesi (tam sayı olarak, örneğin %15 için
15) - Faturayı paylaşan kişi sayısı
Etkileşimli olmayan (bu platformdaki gibi) R betiklerinde, giriş standart giriş akışından (standard input stream) okunur. Bunu yapmak için önce file() kullanarak stdin'e bir bağlantı açın, ardından readLines() ile her satırı okuyun ve işiniz bittiğinde bağlantıyı kapatın:
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)İşte her bir parçanın ne yaptığı:
file("stdin", "r")— okuma için standart giriş akışını açar ve bunuconiçinde saklarreadLines(con, n = 1)— bu bağlantıdan tam olarak bir satır okur. Not:readLines(),readline()'dan farklıdır —readLines()dosya bağlantılarıyla (stdindahil) çalışır ven =kullanarak aynı anda birden fazla satırı okuyabilir, oysareadline()yalnızca R konsolunda etkileşimli olarak çalışırsuppressWarnings(...)—stdin'den bu şekilde okuma yaparken ortaya çıkan zararsız uyarıları susturur. R bir betik içindestdin'den okuma yaptığında, her şey doğru çalışsa bile bazen "incomplete final line" gibi bir uyarı verir. ÇağrıyısuppressWarnings()içine almak, bu mesajları gizleyerek çıktınızı karıştırmalarını önler — okunan değerleri etkilemezas.numeric(...)— metin girişini bir sayıya dönüştürürclose(con)— tüm girişler okunduktan sonra bağlantıyı kapatır
Üç değeri bill, tip_percent ve people adlı değişkenlerde saklayın.
Girişleri okuduktan sonra, girilenleri aşağıdaki formatta gösteren bir onay mesajı görüntüleyin:
Bill: $[bill]
Tip: [tip_percent]%
People: [people]Tüm çıktılar için cat() kullanın ve gereken yerlere yeni satır karakterleri \n ekleyin. İstenmeyen boşlukları önlemek için her cat() çağrısında sep = "" kullanın.
Varsayılan olarak, cat() yazdırdığı her öğe arasına bir boşluk ekler. Örneğin:
cat("Bill: $", 120, "\n") # şunu yazdırır: Bill: $ 120 $ ile 120 arasında ve yeni satırdan önceki istenmeyen boşluklara dikkat edin. sep = "" eklemek, cat()'e ayırıcı olarak boş bir dize kullanmasını söyler, böylece öğeler arasına hiçbir şey eklenmez:
cat("Bill: $", 120, "\n", sep = "") # şunu yazdırır: Bill: $120Bu deseni her üç onay satırına da uygulayın:
cat("Bill: $", bill, "\n", sep = "")
cat("Tip: ", tip_percent, "%\n", sep = "")
cat("People: ", people, "\n", sep = "")Örneğin, girişler 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ğerleri