Toplam ve Ortalama
Coddy'nin Ruby Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 83 / 88.
Görev
Kolay“Total & Average” işlevselliğini ekleyerek gider takip programını geliştir.
Programın şunları yapmalı:
expensesadlı boş bir dizi başlat- Menüyü görüntüleyen ve kullanıcı girdisini okuyan bir
loop dooluştur - Kullanıcı
"1"girdiğinde giderin adını ve tutarını iste,:nameve:amountanahtarlarıyla bir hash oluştur, bunuexpensesdizisine ekle veExpense added!yazdır - Kullanıcı
"2"girdiğinde tüm giderleri önceki gibi görüntüle: hiç gider yoksaNo expenses recorded yet.yazdır; varsa önce boş bir satır, ardından--- Your Expenses ---ve sonrasında her gideriName: $Amountbiçiminde yazdır - Kullanıcı
"3"girdiğinde tüm giderlerin toplamını ve ortalamasını hesaplayıp görüntüle veya hiç gider yoksa bir mesaj yazdır - Kullanıcı
"5"girdiğindeGoodbye!yazdır ve döngüden çık
Menü, öncekiyle tam olarak aynı şekilde görüntülenmeli:
--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: "3" seçeneği seçildiğinde:
- Hiç gider yoksa şunu yazdır:
No expenses to calculate. - Gider varsa toplamı ve ortalamayı şu biçimde yazdır:
Total: $XAverage: $Y
Toplamı, tüm :amount değerlerini toplayarak hesapla. Ortalamayı, toplamı gider sayısına bölerek hesapla.
Örneğin, girdiler 3, ardından 5 ise (boşken hesaplama), çıktı şöyle olmalı:
--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: No expenses to calculate.
--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: Goodbye!Girdiler 1, Coffee, 5.0, 1, Lunch, 15.0, 3, ardından 5 ise çıktı şöyle olmalı:
--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: Expense name: Amount: Expense added!
--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: Expense name: Amount: Expense added!
--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: Total: $20.0
Average: $10.0
--- Expense Tracker ---
1. Add Expense
2. View Expenses
3. Total & Average
4. Clear All
5. Exit
Choose an option: Goodbye!Kendin dene
# expenses dizisini başlat
expenses = []
# TODO: Kodunu aşağıya yaz
# Şunları yapan bir döngü oluştur:
# - Menüyü gösterir
# - Kullanıcı girdisini okur
# - 1, 2, 3 ve 5 seçeneklerini işler
#
# "1" seçeneği için: ad ve tutarı iste, bir hash oluştur ve expenses dizisine ekle
# "2" seçeneği için: tüm giderleri göster; hiç gider yoksa bir mesaj göster
# "3" seçeneği için: toplamı ve ortalamayı hesaplayıp göster; hiç gider yoksa bir mesaj göster
# "5" seçeneği için: "Goodbye!" yazdır ve çıkTemel Bilgiler bölümündeki tüm dersler
4Operatörler Bölüm 2
Mantıksal Operatörler Bölüm 1Mantıksal Operatörler Bölüm 2Özet - Basit MantıkMantıksal Operatörler Bölüm 3Mantıksal Operatörler Bölüm 47Hesap Paylaşımı Hesaplayıcısı
Hoş Geldiniz MesajıKullanıcı Girdisi Alma13İleri Seviye Diziler
Aralıklar ile Dizi Dilimlemeİndeksler ile Dizi DilimlemeDizi OperatörleriInclude? Metodu2Değişkenler ve Veri Tipleri
Sayılar ve DeğişkenlerString Veri TipiBoolean Veri TipiSymbol Veri TipiVeri Tiplerini Kontrol Etmeİsimlendirme KurallarıÖzet - Değişken Oluşturma8Döngüler
Aralıklar ile For DöngüsüWhile DöngüsüBreakNextÖzet - FaktöriyelTimes DöngüsüUntil Döngüsüİç İçe DöngülerÖzet - Dinamik Girdi3Operatörler Bölüm 1
Aritmetik OperatörlerModulo OperatörüAritmetik KısayollarÖzet - Basit MatematikKarşılaştırma Operatörleri6Temel IO
puts ile Çıktı Almaprint ve p ile Çıktı AlmaDeğişkenlerle Çıktı Almagets ile Girdi AlmaChomp MetoduTip DönüşümüÖzet - Yaş HesaplayıcıÖzet - Doğru mu Yanlış mı9Metotlar
Metot TanımlamaMetot ParametreleriDönüş DeğerleriÖzet - Sigma MetoduÖzet - Doğrulama MetoduVarsayılan Parametre Değerleri12Koleksiyonlar Üzerinde Yineleme
Each Yineleyicisiİndeks ile EachStringler Üzerinde YinelemeMap ve Collect15Günlük Gider Takipçisi
Projeye Genel BakışProgramdan ÇıkışKendi başına pratik yap: Online Ruby derleyicisi