ZAMYLA CHAN: Bu Zamyla, bir-benim.
Bugün hayata gidiyoruz biz Mario çizmek Mario,
Onun için tam bir piramit üzerinden atlamak.
en yıkmak edelim Bu sorun için alt görevler.
>> İlk olarak, biz kullanıcıdan istemek Piramidin yüksekliği için.
Ve sonra emin olmak o girdi geçerlidir.
Ve sonra biz gidiyoruz piramit çizmek istiyoruz.
>> Yani isteyen bahsedelim ve kullanıcı girişini doğrulayarak.
Bu gibi bir şey görünebilir Bu, do-while döngüsü o
Bir kullanıcıya sorar tamsayı ve daha sonra sadece tekrarlar
Bu tamsayı geçersiz ise.
Yani bu durum ne olmalıdır?
>> Bunun için, geri dönelim şartnameye.
Eh, spec herhangi bir geçerli söyler yükseklik, 0 ile 23 arasında olacak
dahil.
Yani o geçersiz olduğu anlamına gelir yükseklik en az 0 olacak
veya daha fazla 23.
>> Yani şimdi bu bilgiye sahip olduğunu, en bizim durumunu tasarlayalım.
Ama yine de dikkatli olmak gerekir, şimdi biz var çünkü
Biz değerlendirmek istiyoruz iki Boolean.
>> İşte sana sağladık Bir doğruluk tablosu ile.
Bu bize iki almasına izin veriyor Boolean, Boolean bir ve iki.
Ve biz ya bool1 değerlendirebilir ve bool2 veya bool1 veya bool2.
>> Peki fark nedir arasında ve ya?
Eh, bool1 ve bool2 olacak değerlendirmek doğru ancak ve ancak
Her iki Boolean doğruysa, veya operasyon oysa
doğru olacaktır ya biri varsa Booleans veya her ikisi de doğru.
Bu akılda Yani Eğer anlamaya görmek
Ne uygun koşul için Geçersiz n için do-while döngüsü
olacak.
>> Bunun üzerine, biz istenir ve valide ettik Piramidin yüksekliği kullanım
istedikleri.
Yani şimdi, o bize kalmış piramit çizmek için.
Bu tam piramit Sorun biraz bakacağız
Bu gibi bir sol piramit var burada, Bazı boşluk ve ardından bir sağ piramit.
Yani biraz bu yıkmak edelim.
>> Ben metin editörü giderseniz, burada ettik bize bir sola hizalanmış piramit çizilmiş.
Ama bunu yapmayacağım.
Ne yapmak istiyoruz biz istediğim ilk sağa hizalı piramit oluşturun.
Dolayısıyla, sadece itmek için, bunu yapmak için yan birlikte benim sağlamalarının,
Ben sadece bazı karakterleri koymak için gidiyorum Sadece bu noktalar arasında yer.
Sonra iki tane koymak için gidiyorum Bir sonraki satır ve bu hat üzerinde bir.
Ve işte ben bir var piramit sağa hizalı.
>> Bundan sonra, ben gidiyorum üst satırındaki dönmek
ve boşluk koymak hangi spec, iki boşluk başına olduğunu.
Sonra doldurmak için gidiyorum Piramidin diğer tarafı.
Ben ikinci satıra gitmek için gidiyorum, yazma İki boşluk için boşluk ve daha sonra iki
sağlamalarının.
Geri üçüncü satıra, iki boşluk boşluk ve üç sağlamalarının için.
Ve sonunda, iki boşluk boşluk ve dört sağlamalarının için.
Yani ne tam piramit gibi görünecektir.
>> Tabii ki, biz istemiyoruz şekilde bu noktalar.
Bu yüzden bunların yerine gidiyoruz bazı boşluklar koyarak nokta.
Bir, iki, ilk satırda üç.
Bir, ikinci iki.
Ve üçüncü satırda bir.
Yani bu bizim biz eğer ne yapardınız sadece tam bir piramit yapmak istedim,
Bizim metin editörü, derler.
>> Yani bu alalım, desenleri anlamak,
ve bazı pseudocode bitti dönüştürmek.
Piramidin her satır için, bizim istediğimiz Daha sonra sol piramit yazdırmak ve
boşluk ve ardından sağ piramit.
Sol piramit için, yazdırmak alanlarda gerekli miktarı,
karma eklenmiştir.
Sonra boşluğu yazdırmak hangi Sadece iki boşluk her zaman.
Ve sağ piramit, biz yazdırmak sağlamalarının gerekli sayısı.
>> İkinci satır için biz yapılan Aynı kesin süreç.
Biz sol için boşluk yazdırmak piramit, gerekli miktar
sağlamalarının, boşluk, iki boşluk, ve Sağ piramit daha sonra sağlamalarının.
>> desenini mücadele edelim Sol piramit için.
Ben olsaydı, amaçlar için Bu örneğin, yükseklik
sekiz tarafından talep Kullanıcı, sonra benim ilk satır
bir karma ve yedi boşluk olurdu.
Benim ikinci satır olurdu İki karma, altı boşluk.
Üçüncü sıra, üç karma, beş boşluk.
Muhtemelen bunu yapabilirsiniz sekiz yüksekliği da
kaç ve her satır için tespit sağlamalarının ve kaç boşluk ihtiyacınız.
Ama ne biz yapmak istiyorum biz soyut istiyoruz.
Yani kaç herhangi n'inci satır için sizden karmaları ve kaç alanlarda ihtiyacın var?
>> Şimdi, olarak belirlemek kaç sağlamalarının için desen
ve kaç boşluk için ihtiyaç Belirli bir yüksekliğe için herhangi bir n'inci sıra,
dikkatli olmak hatırlamak nasıl sen endeksleme ediyoruz.
Ne bu demek günlük olduğunu Hayat çoğumuz tarafından saymaya başlar.
Yani ilk satır bir numara olacaktır.
Ve ikinci sıra sıra olurdu İki numaralı, vesaire vesaire.
>> Ama bilgisayar bilimi ve CS50, biz sıfır endekslidir.
Yani biz aslında sıfırdan saymaya başlar.
Yani ilk satır olur Satır numarası sıfır.
Ve ikinci sıra Satır numarası biri olacaktır.
Yani eğer ben sekiz yüksekliğe sahipti Benim piramit, n ardından son değeri
Aslında yedi ve sekiz olurdu.
>> Yani bu konuda dikkatli olun.
Eğer belirleyici yaparken ve farkında olmak senin sıfır endeksli olmadığını, desen
veya tek endeksli
>> TAMAM.
Yani şimdi var Sol piramit için desen,
Biz belirlemek gerekir boşluğu desen.
Neyse ki, bu gerçekten çok kolay.
Sadece her zaman iki boşluk var.
>> Şimdi biz doğru desen geçin.
ilk satır bir karma olacak.
İkinci satır, iki.
Üçüncü sıra, üç.
Öyleyse ve benzeri.
Yani yine, herhangi bir soyut için tespit n ve kaç sağlamalarının herhangi bir yükseklik
ve kaç boşluk her satır olmalıdır.
>> TAMAM.
Yani biz biliyoruz ki her satır bizler Bazı süreci yürütmek gerekir.
bunu nasıl yapacağız?
Eh, biz döngü yapısının için kullanmak, Bir başlatma oluşan,
bir durumdur ve bir güncelleme.
döngüler kullanılabilir için süreçleri tekrarlamak için.
>> Yani, ben merhaba demek istiyorum ki Dünya 50 kez, daha sonra benim döngü için
Böyle bir şey olmazdı, nerede Ben sıfır benim değişkeni başlatmak.
koşul I 50 daha az olmasıdır.
Ve sonra güncelleme öyle mi biri her zaman artırılır.
Yani bu olurdu ne yapacağını Arka arkaya, merhaba dünya 50 kez yazdırabilirsiniz.
>> Şimdi, yineleme istedim demek Piramidin yüksekliği boyunca.
Sonra yerine sert kodlama durumda bir değer
Ben sadece değişken yükseklik kullanın.
Yani bu ne yapacağı yineleme olduğunu yükseklik her satır üzerinde.
Ve ben içeride bir şey yapabilirsiniz bu döngü gövdesinin.
>> bizim yapmak istediğimiz ne döngü gövdesi içinde?
Daha önce belirtildiği gibi Eh, bizim istediğimiz boşluk ve sağlamalarının yazdırmak için
ardından sol piramit ve baskı için iki boşluk ve ardından karmaları yazdırın.
Yani biz zaten anladım.
Bu yüzden doldurmak başlayabilirsiniz çok daha fazla bizim programda.
>> İşte ben döngü için bir dış var Piramidin her satırın üzerinde dolaşır.
Ve bu vücudun içinde ben gidiyorum defalarca boşluk yazdırmak için,
defalarca sağlamalarının ve ardından boşluk, ve sonra sağ piramit için sağlamalarının,
ve daha sonra, son olarak da, yeni bir çizgi sonraki satır başlatın.
>> Bunun üzerine, biz istendiğinde ettik giriş için kullanıcı.
Biz geçerli olduğundan emin yaptık.
Ve sonra biz piramit boğuldum.
Yani Mario başarıyla can piramit tırmanmaya.
>> Benim adım Zamyla olduğunu.
Bu CS50 olup.