Özet - Trafik Lambası
Coddy'nin Dart Journey'sinin Mantık & Akış bölümünün bir parçası — ders 62 / 65.
Görev
KolayEnum'lar ve switch ifadeleri konusundaki uzmanlığınızı gösteren kapsamlı bir trafik ışığı yönetim sistemi oluşturun. Göreviniz, birden fazla trafik ışığını yönetebilen ve sürücüler için uygun eylemleri sağlayan bir sistem oluşturmaktır.
- Üç değere sahip
TrafficLightadında bir enum tanımlayın:red,yellowvegreen - Bir
TrafficLightparametresi alan ve bir switch ifadesi kullanarak uygun eylem dizesini döndürengetDriverActionadında bir fonksiyon oluşturun:TrafficLight.rediçin:"Stop"döndürünTrafficLight.yellowiçin:"Caution"döndürünTrafficLight.greeniçin:"Go"döndürün
- Bir
TrafficLightparametresi alan ve bir switch ifadesi kullanarak saniye cinsinden bekleme süresini döndürengetWaitTimeadında bir fonksiyon oluşturun:TrafficLight.rediçin:30döndürünTrafficLight.yellowiçin:3döndürünTrafficLight.greeniçin:25döndürün
- Farklı kavşakları temsil etmek için üç değişken oluşturun:
TrafficLight.redolarak ayarlanmışTrafficLighttipindeintersection1TrafficLight.yellowolarak ayarlanmışTrafficLighttipindeintersection2TrafficLight.greenolarak ayarlanmışTrafficLighttipindeintersection3
- Her kavşak için durumu tam olarak şu formatta yazdırın:
Intersection 1: Red light - Stop - Wait time: 30 secondsIntersection 2: Yellow light - Caution - Wait time: 3 secondsIntersection 3: Green light - Go - Wait time: 25 seconds
intersection1değişkeniniTrafficLight.greenolarak güncelleyerek bir trafik ışığı dizisi değişikliğini simüle edin- Güncellenmiş durumu yazdırın:
Updated Intersection 1: Green light - Go - Wait time: 25 seconds - Şunu yazdırarak bir özet oluşturun:
Traffic system managing 3 intersections successfully
Programınız, tip güvenli ve okunabilir bir trafik yönetim sistemi oluşturmak için enum'ları switch ifadeleriyle birleştirmenin gücünü göstermelidir. Switch ifadeleri tüm enum değerlerini işlemeli ve yukarıda belirtilen tam dizeleri ve sayıları döndürmelidir.
Kendin dene
import 'dart:io';
// YAPILACAK: TrafficLight enum'ınızı burada tanımlayın
// YAPILACAK: getDriverAction fonksiyonunuzu burada oluşturun
// YAPILACAK: getWaitTime fonksiyonunuzu burada oluşturun
void main() {
// YAPILACAK: Kodunuzu aşağıya yazın
// Kavşak değişkenlerini oluşturun
// Her bir kavşak için durumu yazdırın
// intersection1'i güncelleyin ve güncellenmiş durumu yazdırın
// Özeti yazdırı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ölme9Numaralandırmalar (Enums)
Enum Nedir?Basit bir Enum TanımlamaDeğişkenlerde Enum Kullanımı'switch' İfadelerinde EnumlarÖzet - Trafik Lambası