ZAMYLA CHAN: Bir ben, Zamyla var.
Mario Bugün, biz olacağız Mario yarım piramit çizim
tırmanmaya.
>> Öyleyse hakkında konuşalım bizim Bu sorun için 's to-do.
Biz istediğiniz gidiyoruz istemi ve doğrulamak için
nasıl geçerli bir giriş için kullanıcı yüksek onlar Mario'nun piramit olmak istiyorum.
Ve sonra, biz çizmek için gidiyoruz.
Yani isteyen başlamak izin ve onların giriş için kullanıcı doğrulama.
>> Biz yararlanabilir CS50 Kütüphane Fonksiyonu
sağlayacaktır int olsun Kullanıcı bir tamsayıyı girer.
Herhangi bir pozitif tamsayılar, negatif tamsayılar, sayı 0 tüm adil oyun.
Aksi takdirde, kullanıcı istenecektir onlar girdi geçerli bir tamsayı kadar yeniden deneyin.
olsun int yapar şimdi rağmen Bizim için bir sürü iş
sağlamada olduğu kullanıcı bize bir tamsayı verir,
biz hala bazı uygulamak gerekir Bu ek kısıtlamalar.
Sonuçta, biz Mario tırmanma olamaz 12 negatif yükseklikte bir buçuk piramit.
>> Buna ek olarak, sorun şartname
biz sadece can diyor Mario tırmanmaya izin
0 ve 23 arasında yükseklikleri bir piramit.
Tamam, biz gerektiği anlamına gelir sürekli kullanıcı istemi için
Bize geçerli bir vermek numarası ve sadece devam
onlar bize geçerli bir yüksekliğe verdik bir kere.
bunu nasıl yapacağız?
>> Eh, sürekli süreçler bize verin loops-- şey yapıyor fikri
tekrar tekrar.
Bir süre olarak C Bir döngü döngü bu sürekli olacak
sürece döngünün gövdesini yürütmek Verilen koşul doğru olarak değerlendirilir.
En kısa sürede bu koşulu olarak false değerlendirir,
Program devam edecek ne olursa olsun bundan sonra geliyor.
döngüler tek yönlü iken Yani sürekli biz sağlamak
Geçerli bir giriş kullanıcıya sorar.
Ve onlar bize geçerli bir giriş vermek kez Önümüzdeki geliyor ne olursa olsun devam edeceğiz.
Biz sormak için gidiyoruz biliyorum en az bir kez giriş için kullanıcı.
Yani şimdi bir kardeş geliyor do döngüsü sırasında ilmek iken.
>> döngüler yürütmek ise do en az bir döngü gövdesi.
Yani durumun kontrol etmeden, bu döngü gövdesini yürütecektir.
Ve sonra görmek için durumunu kontrol ister kendini tekrar etmek gerekiyor.
Bu zaman kullanışlı geliyor Biz kullanıcı girişini doğrulayarak ediyoruz.
Biz gidiyoruz biliyorum en az bir kez isteyin.
Yani bir do while döngüsü olabilir Bu gibi bir şey.
Biz bir tamsayı n var.
Ve do iç döngü sırasında, biz hemen
bir tamsayı kullanıcıya sorar.
n geçersiz ise, o zaman onları teşvik edeceğiz tekrar ve tekrar onlar kadar
bize bu geçerli bir tamsayı verir.
n geçerli bir girdidir kez Nihayet, yaparız Bizim programın geri kalanı geçin.
>> Yani spec ve kontrol etmek için geri gidelim ne Geçerli giriş koşulları
olacak.
Geçerli yükseklikleri gidiyor 0 ile 23, kapsayıcı arasında.
Yani geçersiz yükseklikleri gidiyor az 0 veya daha fazla 23 olabilir.
Yani tasarım unutmayın senin durum dikkatle
koşulu bilerek do while döngüsü için
n geçersiz ise olmalıdır.
Şimdi bu bir olacak değil Basit tek Boole ifadesi.
Biz birleştirmek zorunda gidiyoruz İki farklı ifadeleri
bizim bütün koşulu yapmak.
>> Yani sadece ben var bir doğruluk tablosu bakalım Zaten size biz konum ipucu verildi
İki boolean ile ilgili olacak.
Yani burada bir doğruluk tablosu var nerede İki Booleans-- Boole 1 ve 2 var.
Bu yüzden değerlendirmek için seçeneğiniz vardır bool1 ve bool2 ya bool1 ya bool2.
Ve sadece ikisi ise doğru olacaktır Boolean tüm oysa true değerlendirmek
veya bir sürece doğru olacak İki Boolean doğru olarak değerlendirilir.
Tamam, bir dakikanızı ayırın, bu duraklama video Bu doğruluk tablosunu sindirmek ve.
Ben burada bekliyor olacağım.
Geri döndüğünde, bkz Eğer bir araya getirmek eğer
için bir Boole ifadesi senin n durumu geçersiz girdi olmak.
>> Yani şimdi var geçerli kullanıcı girişi, haydi
devam edin ve biz nasıl hakkında konuşmak Yarım piramit çizmek olabilir.
İşte bu basit metin editörü, Ben sol hizalanmış piramit boğuldum.
Ama biz bizim ihtiyacımız olduğunu biliyoruz piramit doğru hizalanması gerekiyor.
Yani bu nasıl olabilir?
Eh, ben itmek deneyebilirsiniz tarafına her şeyi
biraz koyarak arasında karakter.
Ve sonra, bir sonraki için çizgi, ben koymak için gidiyorum
Biraz daha karakter, onu birlikte itmek ve further-- benzeri ve forth--
Birazdan hizalanmış piramit elde edene kadar.
Bu yüzden bir sağ hizalamak piramit var, ama o nokta ile çok büyük görünmüyor.
Ama biz yine de istiyoruz Bu güzel boşluğu korumak.
Yani kelimenin tam anlamıyla gidiyorum Bazı alanlarda yerleştirin.
>> Yerine üç nokta, ben olacak Bir, iki, üç boşluk koymak.
İkinci satırda.
Bir, iki boşluk koymak gerekir.
Ve sondan bir önceki çizgi, sadece bir boşluk.
Ve burada bir sağa hizalı piramit var.
Metinde örneği yapıyor editör, biz model için bir fikrim var
biz yarım piramit çizmek için kullanabilirsiniz edeceğiz.
her satır için, ne yaptı bazı alanlarda tip olduğunu,
ve daha sonra yazılı bazı sağlamalarının ve daha sonra yazdığınız
Enter tuşuna, hangi yeni bir satır yaratıyor.
Yani şimdi o var, gidelim bir adım daha ileri ve bir desen bulabilirsiniz.
>> Yani için, söylemek için gidiyorum Bu örneğin faiz,
Biz 8 yüksekliğe sahip uğraşıyoruz.
ilk satır iki sahip oluyor Yedi boşluk izler sağlamalarının.
saniyedir-- üç karma, altı boşluk.
Üçüncü row-- dört karma, beş spaces-- benzeri ve benzeri
Biz NTH satıra elde edene kadar.
Öyleyse, ben NTH satır için size sormak, kaç sağlamalarının biz gidiyoruz
ve kaç boşluk?
Bu yüzden bir anlamaya size kalmış Formül kaç sağlamalarının temsil etmek
ve kaç boşluk için gerekli olan NTH satır bazı yüksekliğe sahip olduğunda.
>> Şimdi bu sergiyi yaparken, Eğer dizine nasıl olduğunu dikkatli olun.
Ne bu demek ki hepimiz günlük hayatta
1 ile genellikle saymaya başlar.
CS50 ve bilgisayar bilimleri ama Genel olarak, biz 0 endeksli bulunmaktadır.
Yani ilk satır olacak 1'e karşı 0 n.
sen ne zaman bu dikkatli olun Kalıbınızı anlamaya çalışıyorum.
Yani şimdi en nasıl geri dönelim Bizim piramit çizmek için gidiyoruz.
her satır için, istediğiniz gidiyoruz , Boşluk yazdırmak karmaları yazdırmak,
ve daha sonra yeni bir satır yazdırın.
Burada ipucu her satır "için" sözcüğü.
C, biz bir yapı var for döngüsü denir,
Bir teşekkül eden bir başlatma, bir durum, bir güncelleme,
ve döngü gövdesi.
>> Merhaba, demek istedim demek Dünya, 50 kez, benim for döngüsü
Böyle bir şey olmazdı.
Ben 0'a benim tamsayı başlatılamıyor.
koşul I 50'den daha az olmasıdır.
Ve sonra benim güncelleme sadece bir biri her zaman tarafından I artan.
Biz de döngüler için kullanabilirsiniz şeye yineleme yapmak.
biz kaç Burada dikkat Sert, bir numara kodlu
daha çok değişken okuyun Bunun yerine durum içine yüksekliği.
Peki ben burada yapıyorum ben yineleme ediyorum edilir Piramidin her satırda bitti.
Her için bir şeyler yapabilir Benim döngü vücudun içinde kürek.
>> İçeri ne yapıyorsun döngü gövdesi?
biz zaten dediğim gibi, biz baskı ediyoruz boşluklar ve biz sağlamalarının yazdırırken
ve biz yeni bir satır baskı ediyoruz.
for döngüsü Yani benim dış Bu gibi görünecektir.
Ben her satır üzerinde yineleme Piramidin kullanılarak
değişken olarak, bu durumda, yükseklik piramit yüksekliğini depolar.
Bu döngü gövdesi içinde, ben defalarca boşluk yazdırmak için gidiyor, baskı
defalarca sağlamalarının, ve daha sonra yeni bir satır yazdırın.
>> Yani şimdi, tüm kavramları kullanarak bu Ben, bu yürüyüşe-through hakkında konuştuk
Eğer soracak gerekir kullanıcı girişi için, o giriş doğrulamak
ve sonra yarım piramit çizin.
>> Benim adım Zamyla ve bu CS50 olduğunu.