Özet - Güvenli Bölme
Coddy'nin Dart Journey'sinin Mantık & Akış bölümünün bir parçası — ders 43 / 65.
Görev
KolayÖzel durum yönetimi (exception handling) kullanarak güvenli bir bölme hesaplayıcısı uygulayan bir program oluşturun. Programınız sıfıra bölme hatalarını düzgün bir şekilde ele almalı ve hatalar oluştuğunda kullanıcılara net geri bildirim sağlamalıdır.
- Birinci sayıyı (bölünen) temsil eden bir dize (string) girdisi okuyun
- İkinci sayıyı (bölen) temsil eden bir dize (string) girdisi okuyun
- İki double parametre alan ve double bir sonuç döndüren
safeDivisionadında bir fonksiyon oluşturun - Fonksiyon, potansiyel bölme hatalarını ele almak için bir
try-catchbloğu kullanmalıdır: trybloğunda: Bölenin sıfır olup olmadığını kontrol edin ve eğer doğruysa"Division by zero is not allowed"mesajıyla bir özel durum (exception) fırlatın, aksi takdirde bölme işlemini gerçekleştirincatchbloğunda: Özel durumu ele alın ve güvenli bir varsayılan değer olarak0.0döndürün- Girdi dizelerini
double.parse()kullanarak double değerlere dönüştürün - Dönüştürülen değerlerle
safeDivisionfonksiyonunu çağırın - Sonuçları aşağıda gösterilen tam formatta görüntüleyin
Örneğin, girdiler "10.0" ve "2.0" ise programınız şu çıktıyı vermelidir:
Safe Division Calculator
========================
First number: 10.0
Second number: 2.0
Performing division...
Result: 5.0
Operation completed successfullyGirdiler "15.0" ve "0.0" ise programınız şu çıktıyı vermelidir:
Safe Division Calculator
========================
First number: 15.0
Second number: 0.0
Performing division...
Error: Division by zero is not allowed
Using safe default value: 0.0
Operation completed with error handlingGirdiler "7.5" ve "2.5" ise programınız şu çıktıyı vermelidir:
Safe Division Calculator
========================
First number: 7.5
Second number: 2.5
Performing division...
Result: 3.0
Operation completed successfullyProgramınız, sıfıra bölmeyi ele almak için bir try-catch bloğu kullanan safeDivision fonksiyonunu uygulamalıdır. try bloğunda, bölenin 0.0'a eşit olup olmadığını kontrol edin ve doğruysa bir özel durumu manuel olarak tetiklemek için throw anahtar kelimesini kullanın. catch bloğunda, hata mesajını yazdırın ve güvenli bir geri dönüş değeri olarak 0.0 döndürün. Ana program bu fonksiyonu çağırmalı ve bir hata oluşup oluşmadığına bağlı olarak farklı tamamlama mesajları görüntülemelidir.
Kendin dene
import 'dart:io';
// TODO: safeDivision fonksiyonunu burada oluşturun
void main() {
// Girdiyi oku
String? firstInput = stdin.readLineSync();
String? secondInput = stdin.readLineSync();
// Dizeleri double türüne dönüştür
double firstNumber = double.parse(firstInput!);
double secondNumber = double.parse(secondInput!);
// Başlığı görüntüle
print("Safe Division Calculator");
print("========================");
print("First number: $firstNumber");
print("Second number: $secondNumber");
print("Performing division...");
// TODO: safeDivision fonksiyonunu çağırın ve sonucu işleyin
// Uygun tamamlanma mesajını görüntülemek için bir hata oluşup oluşmadığını kontrol etmeyi unutmayın
}Mantık & Akış bölümündeki tüm dersler
1İleri Düzey Liste İşlemleri
Liste Özellikleri: first & lastListe Durumu: isEmpty & isNotEmptyBir Listeyi Tersine ÇevirmeListeye Ekleme: insertListeden Silme: removeWhereListede Bulma: indexOfBir Listeyi SıralamaBir Listeyi KarıştırmaÖzet - Liste Düzenleyici4İleri Seviye Map İşlemleri
Map Üzerinde GezinmeAnahtar ve Değer KontrolüMap Özellikleri: keys & valuesKoşullu Ekleme: putIfAbsentMap'ten Öge Kaldırmaİç İçe Map'lerÖzet - Envanter Güncelleme7İleri Seviye Fonksiyonlar
Anonim FonksiyonlarFonksiyonları Argüman Olarak AktarmaClosure'ları AnlamakÖzyinelemeye GirişÖzyinelemeli Fonksiyon: Geri SayımÖzyinelemeli Fonksiyon: FaktöriyelÖzet - Liste İşleyici10Son Meydan Okumalar
Meydan Okuma: Not SıralayıcıMeydan Okuma: Sesli Harf SayacıMeydan Okuma: FizzBuzz2Fonksiyonel Liste İşlemleri
'map' ile Dönüştürme'where' ile Filtreleme'.toList()' Kullanımı'any' ile Koşul Kontrolü'every' ile Koşullar'firstWhere' ile BulmaÖzet - Veri Filtreleme5Proje: Alışveriş Sepeti Hesaplayıcı
Proje KurulumuSepete Ürün Ekleme3Kümeler
Küme Nedir?Küme OluşturmaKümelere Eleman Ekleme ve ÇıkarmaKüme İçinde Eleman KontrolüListeyi Kümeye DönüştürmeKüme BirleşimiKüme KesişimiKüme FarkıÖzet - Benzersiz Davetli Listesi6Temel Hata Yönetimi
İstisnalar Nedir?'try-catch' Bloğu'on' ile İstisnaları Yakalamak'finally' Bloğuİstisna FırlatmakÖzet - Güvenli Bölme