Robot Carol ve Temel Programlama

Jul 1, 2024

CS106A Ders 1 - Robot Carol'e Giriş

Tarih: [Tarih Ekle]

Eğitmen: Stanford Mesleki Gelişim Merkezi tarafından verildi

İdari Duyurular

  • El Kitapçıkları: Odanın arkasında dört adet el kitapçığı mevcuttur:
    1. Eclipse'i indirme (programlama ortamı)
    2. Carol'u kullanma
    3. Java'da programlama için bilgiler.
    4. Ödev detayları.
  • İlk Ödev:
    • Programlama kısmı 5 Ekim Cuma gününe kadar teslim edilecek.
    • Email kısmı: Ben'e (başkan) ve bölüm liderinize bir email gönderin (7 Ekim Pazar günü 23:59'a kadar teslim edilecek).
  • Web Sitesi:
    • Sınıf web sitesi: cs106a.stanford.edu.
    • Tüm el kitapçıklarının PDF'leri çevrimiçi olarak mevcuttur.
  • Bölüm Kaydı: Yarın saat 17:00'de cs198.stanford.edu/section adresinde başlayacaktır.
  • Okumalar:
    • Derslerden önce Carol kitabı/dergi okuyucusundan atanmış bölümleri okuyun.
    • Bugünün okuması: Carol kitabının ilk üç bölümü.

Robot Carol'e Giriş

Carol'ün Komutları

  • Hareket Et: move(); - Carol'ü bir adım ileri taşır.
  • Sola Dön: turnLeft(); - Carol'ü 90° sola döndürür.
  • Beeper Al: pickBeeper(); - Mevcut köşeden bir beeper alır.
  • Beeper Bırak: putBeeper(); - Mevcut köşeye bir beeper bırakır.

Temel Program Yapısı

  • Çalıştır Methodu: Carol için ana talimatları kapsar.
    public void run() {
        // Talimatlar
    }
    
  • Sınıf Beyanı: Temel Carol sınıfını genişletme.
    public class OurCarolProgram extends Carol {
        // Çalıştır metodu ve diğer metotlar
    }
    
  • İthalat Beyanı: import stanford.carol.*; - Önceden tanımlanmış Carol metotlarını ithal eder.

Örnek Program: Beeper Taşıma

public class OurCarolProgram extends Carol {
    public void run() {
        move();
        pickBeeper();
        move();
        turnLeft();
        move();
        turnRight();
        move();
        putBeeper();
        move();
    }

    private void turnRight() {
        turnLeft();
        turnLeft();
        turnLeft();
    }
}

İleri Düzey Özellikler

  • Süper Carol: turnRight() ve turnAround() gibi ek komutlara sahip daha gelişmiş bir Carol versiyonu. Carol yerine SuperCarol genişletin.
  • Döngüler: For Döngüsü - Bir eylemi belirli sayıda gerçekleştirin.
    for (int i = 0; i < 3; i++) {
        turnLeft();
    }
    
  • While Döngüsü: Bir koşul doğru olduğu sürece bir eylemi gerçekleştirin.
    while (frontIsClear()) {
        move();
    }
    
  • Koşullar: Hareket etmeden önce dünya durumunu kontrol edin.
    • frontIsClear()
    • beeperIsPresent()
    • leftIsClear()
    • vb.

Kavramları Birleştirme: Karmaşık Programlar Yazma

Program Örneği: Engelli Koşu

  • Hedef: Carol'ü bir dizi engeli geçirmektir.
  • Çalıştır Methodu: Engelleri kontrol etmek ve gerekirse gerekli komutları çalıştırmak için döngü kullanır.
    public class SteepleChase extends SuperCarol {
        public void run() {
            for (int i = 0; i < 8; i++) {
                if (frontIsClear()) {
                    move();
                } else {
                    jumpHurdle();
                }
            }
        }
    
        private void jumpHurdle() {
            ascendHurdle();
            move();
            descendHurdle();
        }
    
        private void ascendHurdle() {
            turnLeft();
            while (rightIsBlocked()) {
                move();
            }
            turnRight();
        }
    
        private void descendHurdle() {
            turnRight();
            moveToWall();
            turnLeft();
        }
    
        private void moveToWall() {
            while (frontIsClear()) {
                move();
            }
        }
    }
    

Anahtar Kapanışlar

  • Sorunları parçalayın: Karmaşık görevleri daha küçük metotlara ayırın.
  • Okunabilir kod yazın: Programlar insanların anlaması için kolay olmalıdır.
  • Döngüler ve koşullar kullanın: Tekrarlı ve koşullu senaryoları verimli bir şekilde yönetmek için döngüler ve koşullar kullanın.
  • Çözümleri genelleştirin: Programlarınızı geniş bir yelpazede durumlarla başa çıkmak için genel ilkeler kullanarak yapın.

Sonraki Adımlar

  • Ödevler: Carol bilgisi kullanarak ödevler üzerinde çalışmaya başlayın.
  • Okumalar: Her ders öncesi atanmış okumaları okumalara devam edin.
  • Uygulama: Carol programlarını uygulayın ve çalıştırın, sözdizimi ve mantığa aşina olun.

Sorular: Ders sonrası bana yaklaşmaktan veya bir email göndermekten çekinmeyin.

[Ders Notu Sonu]