Ö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 yetkinliğinizi 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 eylemler sağlayabilen bir sistem oluşturmaktır.
TrafficLightadında, üç değere sahip bir enum tanımlayın:red,yellowvegreen- Bir
getDriverActionparametresi alan ve bir switch ifadesi kullanarak uygun eylem dizesini döndürenTrafficLightadında bir işlev 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
getWaitTimeparametresi alan ve bir switch ifadesi kullanarak saniye cinsinden bekleme süresini döndürenTrafficLightadında bir işlev 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 üzere üç değişken oluşturun:
intersection1türüTrafficLightolacak şekildeTrafficLight.reddeğerine ayarlayınintersection2türüTrafficLightolacak şekildeTrafficLight.yellowdeğerine ayarlayınintersection3türüTrafficLightolacak şekildeTrafficLight.greendeğerine ayarlayın
- Her kavşak için durumu şu tam biçimde 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ğeriniTrafficLight.greenolarak güncelleyerek bir trafik ışığı sırası değişikliğini simüle edin- Güncellenen 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, tür 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 ele almalı 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ıKendi başına pratik yap: Online Dart derleyicisi