>> [MÜZİK OYUN]
>> ANDI'nin PENG Bu CS50 ve bölümün haftada iki hoş geldiniz.
Bu aslında bir hafta varken aslında bizim class-- iki,
İlk hafta bölümü yaşadım.
Ellerin göster, Hepinizin kaç Geçen hafta süper bölüme geldi?
Tamam, tamam.
Bu iyi.
Kaçınız izledim Süper bölümde geçen hafta?
TAMAM.
Ve siz iyi yaptı sorun üzerinde bir set?
Yani biz o kadar alacağım Gerçekten zeki çocuklar bir demet
Bu sınıf ve şeyler iyi olacak.
TAMAM.
Yani birinci--
>> İlk olarak, biz sadece kısaca gidiyoruz Bugün için gündemde üzerine gitmek.
Biz ders lojistik hakkında konuşacağız.
Size bir sürü muhtemelen ilgili sorularınız
nasıl bu derste koşmak şeyler.
Biz onlara cevap olacak.
Biz kısaca gidiyoruz halinde döngüler üzerinden gitmek
Sizinle herhangi bir süper bölümünü kaçırdı.
Biz ASCII haritalama hakkında konuşacağım.
Biz diziler hakkında konuşacağız, fonksiyonlar, komut satırı argümanları.
Ve son olarak, ne çocuklar muhtemelen tüm Gerçekten öğrenmek için burada olmak istiyorum,
senin pset2 olduğunu.
Biz bazı güzel hileler olacak Bunu yapmak için nasıl ve ipuçları.
>> TAMAM.
Ayrıca, ikincisi, biz Burada şeker çok.
Şeker seven herkes, Buraya gel.
Bazı tut.
Ben bir grup var.
Biz ofiste bir ton var.
Ben gerçekten istemiyorum Bütün gün şeker yiyin.
Siz, tüm şeker yemelidir Ben sizin için buraya getirdim çünkü.
Sadece şeker yiyin.
Her bölüm şeker var olacak.
>> Bunun için ilk önce, ben kimim?
Benim adım Andi Peng olduğunu.
Ben Yale'de burada CS50 başkanı TA duyuyorum.
Ve ek olarak, bu, ayrıca göre-- olacak
Herkes çalışan da-- olsaydı dostum, omuz üstünde ağlamaya.
Eğer Pset Due önceki gece, Eğer, ne oluyor hiçbir fikrim yok
beni vurdu.
Biz Vesaire, birlikte kederini edeceğiz.
Sadece ben burada olduğumu biliyorum ön saflarda olarak sizin için kaynak
yardımcı Siz nasıl anlamaya CS50 ve ötesinde sorunları çözmek için.
>> Benim e-posta andi.peng@yale.edu olduğunu.
Ben de bir birey dışarı göndereceğiz o benim telefon numarası ile e-posta
Böylece değil herkes internet telefon numarasını görebilirsiniz.
Herhangi bir zamanda beni aramasını çekinmeyin.
Cidden, benim telefon Genellikle elime bağlı.
Ben yanıt veremeyebilir Birkaç dakika içinde.
Bir kaç saat içinde yanıt veremeyebilir.
Ama eğer, size garanti edemez beni arar eğer, bana e-posta
metin bana, ben 24 saat içinde cevap verecektir.
Çoğu zaman, ben daha önce cevap veririz Anlıyorum çünkü o
Herkes bazı sorunları var ki ve size cevap istiyorum
çok hızlı bir şekilde cevaplanması gereken.
>> Ancak, ararsanız Beni 30 dakika önce
nedeniyle Perşembe olduğu parça Andi, bana yardım gibi akşam--,
Ben verebilir started-- değil O omuz üzerinde ağlamaya.
Ama düşünmek için zaman olabilir O bir dahaki sefere değil nasıl.
TAMAM.
Üzgünüz.
Nasıl geri gidiyorsun?
Oraya gidiyoruz.
>> Yani bu derste, bir var Herkes için destek ton.
Sadece ek olarak Burada bölümler, size hangi
Her hafta 90 harcamak olsun Benimle harika dakika
biz de ofis saatleri var.
Kaç çocuklar zaten Yardım için çalışma saatleri bulundun mu?
Büyük.
Yani, görmek gerçekten çok güzel çünkü biz 45'in üzerinde TA ve CA'ların bir kadroya sahip
burada bu ders için eğitilmiş senin psets ile Sizi yardımcı olmak için.
>> Pazartesi bunlar TEAL düzenlenen konum Burada 17 Hill House sınıf
Yale'de.
Salı ve perşembe günleri, Onlar Commons düzenlenen ediyoruz.
Hemen hemen 11:00 hafta içi her gün 8:00.
Gel, gel.
Herhangi bir sorun, hayır problem-- Sadece içeri gel,
ve sonra biz bu konuda size yardımcı olacak.
>> İkincisi, çalışma saatleri ek olarak ve bölümler, biz de şort var.
Hiç kimse bir çift gördü videolarda şort ya da izlenecek yollar
Web sitesinde?
TAMAM.
Yani gerçekten, gerçekten yararlı.
Bizim güzel Harvard üretimi O okula oraya ekip
Kuzeyde, onlar filme ve üretti bu inanılmaz örneklerde videoları.
>> Onlar adım adım alacağım nasıl bir sorunu çözme hakkında gitmek için.
Çoğu kez, hakkında karıştı ediyorsanız basit bir kavram, tekil bir kavram,
muhtemelen çünkü, bir göz atın yere sitemizde üzerinde kısa.
Ve genellikle büyük bir kaynak var İlk olduğunuzda bakmak için
Bir sorunun üstesinden nasıl kaybetti.
>> Üçüncüsü, biz de var study50 ve reference50.
Yani on 50 çalışma Web sitesi sadece bir bağlantıdır.
Bence, bu, study.cs50.net Ya da bunun gibi bir şey.
Sadece Google'da.
Biz hazırlanan slaytlar çok var.
Biz şort çok var ve Tüm derlenmiş walkthroughs-- şeyler
çok güzel ve tüm çocuklar için temiz göz atmak, herhangi kavramları bkz
hakkında karıştı olduğunu.
Muhtemelen kapalı olurdum Orada study50 içinde bitti.
>> Benzer Reference50--.
Biz çeşitli notların bir şey var hizmetinizdedir için hazır.
Ve son olarak, biz ne var CS50 tartışır denilen
Bir forum, eğer önceki gece Eğer sorunları yapıyoruz, demek,
Eğer bir sorum var.
Tartışın CS50 giriş yapın.
Sorunuzu Gönderin.
Ve hundreds-- o zaman bir eş, belki thousands--
Online bu sınıf alarak giriş olacaktır.
Ve belki birileri alabilirsiniz TA can önce cevap.
Aslında sadece var online forum biz geleni
Bizim sorunları görüşmek için kullanabilirsiniz.
Çok havalı.
>> TAMAM.
Peki sorun ayarlar.
Biz sağ üzereyiz sorun kalınlığında iki ayarlayın.
Çoğumuz zaten sorun ile mücadele bir set.
Biz zaten belki bekleyen biliyorum Dün gece pset yapmak için
CS50 yapmak akıllıca bir şey değil.
>> İpuçları ve esasen ipuçları başarı bütün spec okunur.
Kaçınız zaten pset 2 spec okudun mu?
TAMAM.
Bu katı bir miktar.
İkinizin muhtemelen tanıdı biliyorum artık gözlük gerçekten uzun.
Onlar gerçekten uzun, gerçekten sensin.
>> Her satır okumak gerçekten zor kelime o dikkatle kelimenin.
Sadece nerede yağsız istiyorum Eğer bir şeyler yapmak söyler.
Ben size garanti edemez, bunu yapma.
Bunu yaparsanız, muhtemelen konum yere özleyeceğim
nerede size söyler nasıl bir sorun başlatmak için
ya da adını ne söyler Sorununuz ya da size söyler,
bu muhtemelen en iyi yolu Sorununuzu yapmaya başlayın.
Ve sonra kaybolmuş olacak.
>> Eğer sizin yanınızdaki okumaya çalıştığınızda yarım aracılığıyla spec,
Önemli bir sürü sen değilsin ki information--
Gerçekten erişim mümkün olacak.
Yani bütün spec okuyun.
Bütün spec okumak için çalışın Eğer bölümüne gelmeden önce,
Daha sonra, ne zaman çünkü biz pset hakkında konuşmak,
Hepimizin bir fikir sahibi olabilirsiniz Neler evi.
>> İkinci olarak, bu kavram Ben başvurmak istiyorum edeceğiz
Tabii dönem boyunca bir sürü.
Ama esasen, sağ, yarım bizi karşılamaya?
Ben, senin TA ve Jason olarak ders olarak senin profesör olarak yönetici ve Scaz
ve David sizin profesör ve tüm olarak Bu derste başka güzel TA,
Bu elbette-- içinde yardımcıları Biz elimizden geleni yapacağız
ayarladığınız emin olmak için kadar bu derste başarılı olmak için.
Biz bölümünü yapacak.
Biz ofis saatleri yapacak.
Biz telefona cevap verecek aramalar, e-postalarınızı cevaplamak
yapmak için elimizden geleni yaparız emin sorular sorulur.
>> Ancak, bize de yardım et.
Yarım buluşuruz.
Eğer ofis saatleri gelirseniz değil, bölüme değil gitmiş
hayır olan, konferanslar gördükten Fikir bana yardım gibi olmak, neler oluyor.
Ben de üzgünüm, böyle olacağım.
Bu ödünç zaman olabilir omuz, ağlamaya
Emin değilim çünkü Sana yardım için ne yapabilirim
En azından yardım etmeye çalışmayın, eğer Kendinizi başında biraz.
Yarım buluşuruz.
Biliyor musun, lütfen gel cevaplamak ve almak için hazır
malzeme yapmaya hazır.
O kadar çok şeyler yapar katılan herkes için daha kolay.
Evet, bu oldukça fazla.
>> Puanlama.
Yani ders üzerinde, oldukça var derinlemesine nasıl bir sorunumuz notu ile ilgili.
Ama esasen, arıza Bu sizin sınıf% 50 oranında
psets, olacak çünkü o, güzel
nereye engin harcadığımız üzerinde kurs süresinin çoğunluğu.
% 40 quizler, ve sizin Nihai proje% 10 olacaktır.
Boyunca iki sınavlar olacak dönem kurs.
Ben tarih ve saatleri olduğunu düşünüyorum Ayrıca ders listelendi.
>> Yolu biz olacak senin psets derecelendirilmesi olmak
biz aslında dört olması her sınıfa atayabilirsiniz değerler.
Bu kapsamda bir değere sahiptir, doğruluk, tasarım ve stil.
Gördüğünüz gibi, bu tür bizim psets hesaplanması için formül.
Üç biz çoğu vermek ağırlık, doğruluğu
açıkçası antrenör çünkü olgularda test edilmelidir
İstediğimiz o sınamak için.
>> Siz her şeye sahip emrinde check50.
Bu çok kullanışlı bir fonksiyon var hepiniz olabilir ki
sunucularımıza kodunuzu yükleyin, Nerede sizin için kontrol eder.
Ve o gördüm frowny yüzler, gülen yüzler.
Onlar gerçekten, gerçekten yararlı.
Olmayın Lütfen çalışır gibi öğrenci
Onlara tüm cevaplar kodlamalısınız.
Kesinlikle pset nerede gördüm Biri check50 tüm değerleri gördüm
ve onlar sadece zor eğer açmayız kodlanmış Bu sayı, bu sayıyı çıktı.
Bu sayının, bu sayı yazdırmak.
Bunu yapmayın.
>> Hatta teknik se check50, doğru
çözme yolunuzu Sorun doğru değil.
Dolayısıyla, sadece idareli check50 kullanın.
Ama aynı zamanda emin olun siz o işleyen nasıl anlamak
Program çalıştığını check50 yanı sıra,
Her test edemez, çünkü check50 olası vaka.
Biz bazıları test olacak.
>> Tasarım esasen, nasıl kodunuz iyi tasarlanmış?
Eğer kopya yapıştırma birden iseniz Kod birçok, birçok kez hatları.
Belki pek yok kodunuzu en iyi tasarım.
Belki o döngü ekleme zamanı geldi.
Esasen, burada sadece hepsi kodunuzu yapmaya çalışıyorum hakkında,
olarak verimli kod yazmaya çalışıyorum mümkün böylece program çalışır olarak
olabildiğince çabuk.
>> Son olarak, biz tarzı var.
Yani stili tür keyfi, sübjektif terim.
Ben resmen biliyorum CS50 için bir stil 50 rehber,
o oh, size söyler nereye, seni Burada bir boşluk olmalıdır.
You should biçimi tür kodunuzu bu şekilde.
Bu yol şey isim olmalıdır.
>> Ben gerçekten, başına umurumda değil, nasıl Eğer kodunuzu stil tercih
sadece sürece tutarlı kalmak gibi.
Örneğin, isterseniz Dört sonra bir boşluk bırakın
Dört döngü önce, Sadece her zaman bunu.
Tür Yapmayın.
Bunu diğer zamanlarda yapmayın.
Eğer kıvırcık tutmak isterseniz parantez alanı belli bir şekilde,
Sadece her zaman bu şekilde yapmak.
Tür yerlerde bunu yapmayın Burada ve bir yerde orada değil.
Biz derecelendirilmesi olduğunuzda, Gerçekten zor
Hiçbir fikrim nasıl varsa Eğer, senin kod biçimlendirme ediyoruz
şeyler tuhaf ve yersiz bulunmaktadır.
Sadece tutarlı tutmak, o var daha benim için daha kolay
kodunuzu okumak mümkün.
Bir öğrenci olarak sizin için çok daha kolay kodunuza bakmak mümkün
ve yanlış ne olduğunu görmek sorunlar var neden kesiyorsun.
Stil kolay şeylerden biridir Siz tam puan almak için ne yapabilirim.
Esasen, sadece eğer, bakım eğer Eğer dikkat beş dakika ödemek
her hafta senin kod, sen-meli Tam stil noktaları alıyorum.
>> Son olarak, biz denilen ne varsa kapsam çarpan.
Scope-- ben büyük bir olduğunu biliyorum Özellikle bu sınıfta kelime.
Ama kapsamı, tüm bu araçlar Eğer çalışıyorsanız olduğunu
senin yeteneğini en iyi şekilde psets.
Üç out açarsanız Dört sorunların
ve hatta çalışmayın Sonuncusu, muhtemelen konum
kapsam bazı noktaları kaybedeceğiz.
>> Sadece sorunu başlatmak bile, içinden yürümek için elinizden geleni yapın.
Bu işe yaramazsa bile, onu teslim olduğunu gösterir ve gösterir, çünkü
Bize bunu, çalışıyoruz o Eğer set sorunu girişiminde
senin yeteneğini en iyi şekilde.
Ve sonra biz size verebilirim kapsam tam puan.
>> Kapsam de zaman biz çok önemlidir en pset puanı damla hakkında konuşmak.
Yani boyunca yarıyıl, siz dokuz psets var.
Ve biz aslında bırakarak olacak Bu dokuz üzerinden en düşük puan,
ama tam kapsam puan var sadece.
>> Yani eksik pset açmak durumunda, ne yazık ki, o bir bırakamazsınız,
senin kapsamı nedeniyle noktalar tamamlanmış değil.
Eğer korkunç bir hafta var ve bu yüzden bile ölüyorsun ve hasta olduğun yerde
ya da köpek, kedi, ölür ölür ve ödev ile aşırı ediyoruz,
Sadece pset girişimi.
Sizin yeteneğini en iyi şekilde yapın.
Bu işe yaramazsa, bu önemli değil.
Sadece bunu çevirin.
En azından biz verebiliriz Eğer çaba gösteriyor.
>> Bu sınıftaki çaba için bir.
Çaba için en az düşük puanı damla.
Yani evet.
Yani oldukça fazla.
Herkes bu yüzden sorularım var mı uzak sınıfta nasıl derecesine?
Ya da bunların herhangi bir?
Bunlardan herhangi biri, böylece far-- bölümler, ofis saatleri?
Güzel.
TAMAM.
>> Yani bu bir konu hayır gerçekten hakkında konuşmak seviyor.
Ben gerçekten bu konuda konuşmak sevmiyorum.
Siz gerçekten istemiyorum Bana bu konuda konuşmak duymak.
Ama ne yazık ki, hepimiz Bu konuda konuşmak zorunda.
David 20 dakika bir geçirdi bunu konuşuyor ders.
Ve bu konu Akademik dürüstlük.
>> Yani hepimiz burada muhtemelen yazdım Bizim Yale kariyerinde bir deneme bazen.
Biz muhtemelen biz ettik bir konuşma gotten Bizim deneme plagiarize değil söylendi,
Bu çalışma bizim değil çünkü.
Bilgisayar bilimi, var kavramının aynı tür.
Gönderdiğiniz tüm işler, Yazdığınız tüm kod
Yazdığınız kod olmalıdır.
Eğer ettik kod gerekmiyor Başka bir yerden kopyalanmış.
Kod olmamalı Eğer googled ve plopped ettik
eğer o inşaat ve gerçekten bilmiyorum.
Tür duygusu var o ama gerçekten ne yaptığını.
Şüpheye düşerseniz, esasen, Sadece mantıklı olacak.
Bizim müfredat, biz var şeylerin bir bütün liste
biz makul bakın makul değil karşı.
>> Örneğin, uygun sen ve senin arkadaşın
Ne en iyi yolu tartışmaya gitmek yaklaşık mantıklı bir problem çözme.
Bu oldukça makul.
Ne mantıklı olmaz eğer olduğunu çocuklar, bir araya geldi aynı kodu yazdınız
ve aynı kodda zorlandı.
Bu mantıklı değil.
Aynı şey, bir kompozisyon tür.
Eğer tartışmak istiyorsanız Arkadaşınızla, hey,
bu benim hakkında yazmak istiyorum budur.
Bunlar İstiyorum adımlar Büyük, bu konuda yazmak için alır.
Bu harika.
Birbirleri ile işbirliği edin.
Siz başlatırsanız Aynı şey yazma,
Aynı denemede açmak daha az Tamam.
Peki ne zaman şüphe, sadece bunu yapmayın.
>> Burada, CS50 içinde, biz komut var Bu çalışma test otomatikleştirmek için
değil sadece kod doğruluğu, ama aynı zamanda kod teklik.
Yani pozisyonda bizi koymak etmeyiniz of EXCOMM için davayı zorunda.
Şimdi sadece, sadece herkes için lütfen Bu harika bir deneyim yapmak.
Herkes, daha iyi öğrenir Hepimiz daha mutlu,
ve hepimiz kadar ayarlanır Bu dersi başarıyla.
Çok var bir şey Bu sınıfta hakkında benzersiz
Bence herkes gerçekten gerekir düşünüyorum Biz olması dikkat
Ne pişmanlık denir Bizim müfredat çıkartıldı.
Bu nedenle esas olarak, 72 saat içinde, eğer Eğer bir şey yaptık inanıyorum
Eğer gerçekten emin oldu değiliz Uygun, bize gelin lütfen.
Biz size söz veriyorum o 72 saat içinde Biz davayı kendimizi idare edecek
Daha yüksek bakmadan yönetimde otorite.
>> Yani bana gelip derseniz, Andi, hey, ben gerçekten üzgünüm,
ama ben bir kaç satır benim, olduğunu düşünüyorum Tür Googled kod dün gece,
Stack indi Taşma, kopyalama ve yapıştırılan,
ve ben gerçekten, gerçekten üzgünüm Bu konuda, bana haber ver.
Sadece fester lütfen izin vermeyin ve sadece bunu yakalamak umuyoruz.
Biz onu yakalayacak.
Sadece bana gel.
Bana 72 saat içinde bize bildirin.
Biz bir çözüm anlamaya edeceğiz.
Ve biz atıfta söz veriyorum esasen üniversite yetkilileri.
Bu yüzden senin yararına olduğunu sadece herkes ile dürüst olmak gerekirse
Elbette dahil.
>> TAMAM.
TAMAM.
Yani şimdi, çabuk önce Ben hareket, herkes yapar
lojistik ile ilgili sorularınız varsa nasıl dersler biz çalıştırmak için gidiyoruz,
nasıl bölümler gidiyor , bunların hiçbirini çalıştırmak için?
TAMAM.
Evet.
>> HEDEF KİTLE: [duyulamaz]?
ANDI PENG: Evet.
Peki nasıl bir çoğunuz quizzes-- Pazartesi / Çarşamba bölümünde?
Kaç kişisiniz Salı / Perşembe?
Tamam, bu yüzden burada sağlam bir bölünme var.
Yani biz koşmak yolu Yale'de o biziz
Ayrı iki tane olacak Her section-- için bir quizzes-- bu
Ders sırasında alınacaktır.
Ben, bu Ekim, Ekim sonu olduğunu düşünüyorum Haftanın tek olarak böyle bir şey,
quiz.
Evet, bu yüzden sadece sınıfa gelir.
Pazartesi veya Çarşamba günü, Eğer sınav götüreceğiz.
Salı veya Perşembe günü, Farklı bir sınav götüreceğiz.
Ama aynı malzeme ele alınacaktır.
Evet.
İyi soru.
Evet.
>> HEDEF KİTLE: Nerede biz do Bizim notları kontrol gidilir?
>> ANDI PENG: Evet.
Yani dışarı bir gönderme olacak e-posta ne olursa olsun her hafta
sınavlar graded-- olan veya, üzgünüm, psets sınıflandırılır zaman.
Psets genellikle açılır öğlen veya Cuma tarafından.
Bu yüzden olacak söz veriyorum Size onları geri almaya çalışın
Aşağıdaki Cuma öğlen.
>> Ne zaman ben notu pset, ben göndereceğiz sınıf kitabında bir bildirim dışarı
Bu size puanınızı söyler Online görülebilir.
Yani şu bu hafta, ben sonra Geçen haftaki psets derecelendirilmesi bitirmek
Siz bir e-posta alacaksınız bildirim, sana söylüyorum
hey bu nereye olduğunu notlarınızı görüntülemek için gidin.
Ve her görebilirsiniz senin notların dökümü.
Siz yorum görebilirsiniz.
Ah, hızlı bir şey de.
Büyük de açıklama bölümü Kitap nerede muhtemelen olacak olan
Zaman zaman sınıflandırma çoğunluğu harcamak.
Yani bir şey olduğunu ne zaman gerçekten önemli
Siz bakıyorsunuz Notların senin psets üzerinde
Sadece bakmıyor Fiziksel puanı
ama aynı zamanda zaman ayırdığınız Gerçekten benim yorum okuyun.
>> Genellikle bu geribildirim verir Eğer bir sorununuz çözüyoruz nasıl.
Yapmanız gereken ise biraz daha iyi bir şey,
yapıcı eleştiri genellikle En iyi bu yorumlar bölümünde verilmiştir.
Yani, ben gidiyorum lütfen lütfen Yorum yazmaya vakit geçirmek için.
Ben gerçekten takdir ediyorum lütfen Siz bu yorumları okumak olsaydı.
TAMAM.
Güzel.
>> Pekala.
Yani biz konuşmaya başlamak için gidiyoruz ve sadece hızlı bir şekilde gözden
ürünü bazı hafta konum sadece bu yüzden sıfır
için sağ sayfada Bu haftaki sorunlarını başında.
Yani while döngüsü biridir ilmeklerin üç tip
Biz daha önce bu sınıfta tartıştık.
>> Bir while döngüsü esas sözdizimi yazılmış
burada, belirli bir durum ise, Bu doğru, art arda mı?
Burada bu grafikteki düşünün.
Bir başlayacak gidiyoruz kodunuzu belli bir noktaya.
Sen döngü koşulu girmek için gidiyoruz ve-- I bilebiliyors-- olmayan x bir daha azdır.
>> Eğer bu doğruysa, sen gidiyorsun Döngü gövdesini yürütmek için.
Ve yapmaya devam edeceksin Bir daha, yine, daha
Bir neden üzerinde ve çakışık hangi loop-- durumunuz olana kadar
yanlış.
Bu yolla, bir süre döngü Yani basit yollarından biridir
durumun her türlü yazmak için üzerinde ve tekrar tekrarlamak gerekiyor.
Sadece zaman dikkatli olun Eğer döngü her türlü yazıyoruz
Eğer bir çıkış koşulu olarak sahip olduğu iyi ne olursa olsun bir güncelleştirme gibi
senin döngü sadece değil öyle mi üzerinde ve sonsuz üzerinde çalıştırın.
Herhangi bir durumda, gidiyoruz emin olmak için
Eğer bazı yönlerini değiştirerek konum kodunuzu veya döngünün sonunda
Sadece bir yolu var olduğundan emin olmak için durumun doğru ilerliyor
Eğer sonuna kadar tanışmak istiyorum.
Bu herkese mantıklı mı?
Biz sadece olmak istemiyorum Bu sarmal nerede yakaladı
biz etrafında ve dolaşmak ve döngüyü kırmak için hiçbir yolu yoktur.
Ve her döngü esasen Bu yapmanın bir yolu vardır.
TAMAM.
>> Senin İkincisi, birçok Mario psets içinde
Muhtemelen istihdam etmek zorunda kaldı döngü bu tip.
Bir do-while döngüsünde denir.
Her şeyden önce, herkes bana söyleyebilir ne do arasındaki fark
döngü ve bir süre döngü ise?
Evet.
>> HEDEF KİTLE: döngü sırasında do [duyulamaz] İlk çalışır.
>> ANDI PENG: Evet, kesinlikle.
Yani bir do döngü hep yapar iken ne Parantez içinde do içinde olduğunu
Orada ve o koşul yok Şeyin özür için kontrol etmeden önce,
önce kodu yapar durumu kontrol.
Ve bu bizim için özellikle uygun olduğunu Burada bu sınıfta, çoğu kez, çünkü
Biz soracak istiyorum gidiyoruz girdi çeşit kullanıcı.
Ve sonra, bağlı Bizi vermek girişi,
o zaman, oh yapmak değerlendirebilirsiniz biz onları tekrar soracak gerekiyor?
>> Mario Yani, eğer kullanıcı size verdi negatif yükseklikte, örneğin,
İlk istemine gidiyoruz ve içeride ne yapmak.
Sonra süre kontrol için gidiyoruz.
Bilirsin, 1 negatiftir pozitif bir sayı olduğu?
O değil, ben gidiyorum sırt ve do ve tekrarı tekrar
ve tekrar ve onlar kadar tekrarlayın Sonunda size istediğiniz bir numara vermek,
hepimizin kodunda istihdam edebilirsiniz.
Bu oldukça önemli esas olarak, herhangi bir kullanıcı girişi.
Ben herhangi bir garanti edebilir Bir pset nerede zaman
Biz girmenizi isteyecektir kodun herhangi bir tür, biz konum
Muhtemelen sana vereceğim Biz konum olan bir test durumu
gidiş işte sana kötü bir şey vermek kodunuzu kırmaya çalışacağım.
>> Biz input isteyecektir çalışırsanız tamsayı, biz sadece sana bir dize verebilir
ve bu nasıl ele alabileceğinizi görebilirsiniz.
Biz yaş istihdam etmenizi sorarsanız, size negatif bir sayı verebilir
Bunu nasıl ele alabileceğinizi görebilirsiniz.
Sadece çocuklar için test emin olun olgular hangi iyi alamadım
girişi, diyelim.
Ve döngü sırasında bir do çoğu zaman en iyisi
böylece kodunuzu tasarlamak için bir yol bu kapsam karşıladığını söyledi.
TAMAM.
>> TAMAM.
Yani bu belki de en çok Üç takım karmaşık döngü
biz bugüne kadar baktım.
Ve ilk başta çok korkunç görünüyor.
Ama ben, sana garanti sen guys kez for döngüsü nasıl kullanılacağını asmak olsun,
en kullanışlı şeylerden biri, cephanelik en yararlı araçlar
Bu sınıfta ileriye taşımak için.
>> Yani, örneğin, Scratch içinde, Bu çok basit bir blok vardı
O sadece bu belli tekrarlayın dedi kez belirli sayıda cümleleri.
Bu arada, SAJ-- Bu Scaz Andi Jason var.
Biz çoğu zaman bizim e-postalar Saj imzalamak.
Biz SAJ derseniz, karışık olmayın.
Bu sadece biz varız.
>> Yani Scratch olarak, biz başardık dedi bir blok, ben SAJ seviyorum tekrarlayın!
10 kere.
Çok basit.
Bunun ardındaki mantık, bir çok, çok basit, değil mi?
Ben ilk ilk geçmek istiyorum Zaman ve ikinci zaman görmek
ve benzeri, bu, üçüncü kez bkz ve böylece, kadar 10 çarptı.
>> Ve şekilde biz o temsil edecek Kod sadece bir for döngüsü basit geçer.
Yani, sen beyan gidiyoruz Bu durumda burada değişken,
bir int ile.
Biz bunu i isim gidiyoruz.
Biz 0'a başlatılamıyor gidiyoruz.
Ve durma sürümü Ben olacak 10'dan az olduğunu.
Ve güncelleme i ++ olacak.
>> Ve döngü içinde, gidiyor sonunda onu kadar çalıştırmak için
condition-- sonunu edecek olan durumda, bu döngü kırmaya gidiyor.
Şeyler olmalı size adamlar tür önce gördük
Sorununuz bir set için ve yapmak zorunda.
Herkes herhangi bir sorunuz var mı Şu anda döngüler için ilgili?
TAMAM.
Büyük.
>> TAMAM.
Kim o sizin için öylesine Bu hafta pset spec okumak
Biz istihdam etmek zorunda olacak biliyorum bir şey ASCII ve ASCII tablosu denir.
Böylece Davut konuşmasında kısaca gitti nasıl bilgisayarların essentially-- herşey
bir bilgisayar kodlanmıştır İkili, sıfır ve olanlar.
Ve bilgisayarlar edebiliyoruz yolu ek olarak farklı değerler depolamak için
sıfır ve olanlar haritalama yoluyla vardır bu numaraları diğer rakamları temsil etmek
veya esasen diğer karakterler.
>> Bir bu durumda Yani Tüm öyle table-- ASCII
numaraları harita karakterleri veya karakter vardır.
Kaynak kodu dosyası Yani senin gördüğü computer--,
hey, sıfırlar ve olanları bir demet, sıfır ve olanlar sıfırlar ve olanları.
İşte saklanan ne Bilgisayarınızın gerçek bellek.
>> Ama biz insanlar istediğinizde bilgisayar ile iletişim,
biz, örneğin, demek want--, Ben büyük A istiyorsanız,
Biraz yol gerekir gidiyorum Bilgisayarı söylüyorum, ah,
Ben büyük harf A yazdığınızda, yani İkili bu temsili.
>> Ve böylece biz bunu yolu attı bir keyfi şey bir ASCII tablosu olarak adlandırılan,
nerede, insanlar gibi, olduğu gibi programcılar, bir süre önce,
Biz keyfi biz karar verdi Bu numara atamak için gittiğini
Bu karakter değerler.
>> Yani siz bu online google olabilir.
Ben buna bir link de var bence pset-- sadece bir ASCII tablosu haritası, ASCII
tablo.
Sadece ikili çevirir karakterlere numaralar.
Ve çok olacak Sorun seti için yararlı
İstediğiniz zaman bir şey ya da eğer hesaplamak
Belirli görüntülemek istediğiniz karakter veya tamsayılar
veya bazı karakterler işlemek.
Çok olacak Önemli olduğunu tüm
ASCII tablosu gezinmek için biliyorum.
>> Örneğin, büyük A So sayı 65 ile temsil edilmektedir.
Ve küçük bir 97 ile temsil edilmektedir.
Yani o bilmek önemlidir İki değer arasındaki fark
32 olduğunu.
Çoğu kez, sen dönüştürmek için gerekirse Diğer bir fark 32'dir.
Ne tür iseniz üzülmeyin ilk başta bu konuda karışık.
Biz nasıl olur üzerinden gidersiniz Gerçek kod bu işe.
>> TAMAM.
Dışarı dizüstü bilgisayarlar o sizin için öylesine ASCII tablosu yukarı çekin çekinmeyin,
Bu muhtemelen olacaktır, çünkü Siz başvuru gerektirir
karakterler nelerdir.
TAMAM.
>> Böylece belli bilerek karakterleri, belirli numaralara Haritayı
Ben sadece ilk çalıştırmak olsaydı Bu hat, printf a code--
Bir, eksi küçük harfe Büyük A. kimseye mu
ne olacağı konusunda bir tahmin var Şu anda ekrandan dışarı yazdırmak?
>> Her Yani ilk ne yapar Bir temsil küçük harfe?
Ne sayı olduğunu ASCII tablosundaki şifrelenmiş.
Maalesef?
>> HEDEF KİTLE: 97?
>> ANDI PENG: 97, harika.
Ve büyük bir nedir?
>> HEDEF KİTLE: 65.
>> ANDI PENG: Yani 97 eksi 65 nedir?
>> HEDEF KİTLE: 32.
ANDI PENG: Tamam.
Yani gidiyor beyler ne düşünüyorsun ne zaman girdi gerçekleştiğini kod satırı
benim bilgisayar içine?
>> HEDEF KİTLE: [duyulamaz].
ANDI PENG: Üzgünüm, yukarı konuşuyoruz.
Endişe etme.
Bu çok güvenli Çevre, eksi kamera.
Hepimiz hiçbir endişe ki-- gidiyoruz.
Sadece biz gibi davranmak için gidiyoruz Sadece bize bu odada serinliyor.
Endişe etme.
Hiçbir soru çok aptalca.
Cevap yok aptal cevaptır.
Herhalde hata yapmak için gidiyorum Benim öğretim sürecinde.
Cidden, çocuklar, sadece yumurtlamak.
Kendinize güvenin, biliyor musun?
Yani neydi?
Kim bu son cevabı söyledi?
TAMAM.
Bu güzel ve net bağırmak.
>> HEDEF KİTLE: 32?
>> ANDI PENG: 32.
Tamam, bu kodu çalışmasına izin ve Bu ne olmadığını görmek.
TAMAM.
Yani olarak siz yapabilirsiniz tür Ben ettik tipik gösterimini görmek için
Biz istihdam nasıl burada kurmak Bizim bilgisayarda programın herhangi bir tür.
Bizim ana işlevi var Bizim ana işlevi içinde.
Ben sadece kopya gidiyorum ve Bu kod satırı yapıştırın.
Ne zaman çocuklar da dikkatli olun kopyalama ve kod yapıştırırken.
Bazen bazı operatörler Doğru üzerine yapıştırın yok.
Bu durumda, eksi işareti aslında bir çizgi oldu.
Ve böylece bilgisayarınız açmadı.
Bu yüzden geri dönmek zorunda kaldı ve fiziksel olarak yeniden yazın.
Sadece dikkatli olun Sizler bunu yapıyor.
>> TAMAM.
Biz burada bu çalıştırmak için gidiyoruz.
Bu yüzden bizim section2 içine cd gidiyoruz.
Ben bu programın asciimath aradım.
Biz herhangi çalıştırdığınızda Yani, hatırlıyorum Program, ilk derlemek istiyorum
Bizim yapmak aracılığıyla çalıştırarak.
Ve sonra biz aslında çalıştırmak istediğiniz nokta-çizgi yaparak programı.
Yani biz ./asciimath gidiyoruz.
>> Doğru, oraya gidiyoruz.
Ve biz 32 bkz.
Aferin.
Sen şeker bir parça hak ediyor.
Sizin için Candy.
Özür dilerim.
Pekala.
TAMAM.
Yani biz buraya geri Bizim örneğimizde gidebilirsiniz.
Hayır, Aah.
Aah.
TAMAM.
Ben sadece böyle tutmak için gidiyorum.
TAMAM.
Siz gördüğünüz gibi, biz yapabiliriz çok ilginç şeyler çok,
çok serin bir çok şey, bir sürü içeren çok karmaşık şeyler
ASCII karakterleri ve rakamlar.
Eğer beş satır aşağı almak sonra, Bu birlikte takip etmek bir çok şey.
Biz gitmek için gidiyoruz değil bölümünden.
Eğer yapabilirsen, çekinmeyin, kağıt üzerine dışarı muhakeme
İlk ne zaman ne oluyor gerektiğini üzerinde değerlerin giriş böyle bir dize.
Örneğin, bu son satırda, biz z-- belirli number-- temsil eder
bir-- da temsil eden bir Belirli number-- artı 1 MODULOS 26
artı bir küçük harfe.
>> Siz okumaya devam ederse Bu yoluyla, sizi
Bir desen gelip görebilirsiniz nasıl kod manipüle ediyoruz.
Ben çok, çok önermek sizin bölüm sonuçta
adamlar önde ve giriş gitmek Bilgisayarınızda o tüm
ve ne tür görmek sayılar dışarı geliyor
ve bu yüzden ile akıl çünkü psets için, oluyor
Gerçekten önemli olacak anlaman için
Neden bazı şeyler oluyor.
Bu slaytlar Tüm online olacak.
Için çalışıyor bu yüzden hiçbir endişe fiziksel notlar kopyalayın.
Her şey çevrimiçi.
Bu bölümde kendisi online olacak.
Bütün kaynak kodu o Ben online olacak koşuyorum.
Evet.
Eğer hala bir soru var mıydı?
HEDEF KİTLE: MODULOS nedir?
ANDI PENG: Tamam.
Yani modülo gidiyor bir operatör olduğunu senin adamların en pset oldukça önemli
İşte.
Yani operatörler yolu C ve programlama çalışmalarında
Eğer denen olması bölünme sembolü ve modül sembolü,
hangi sadece yüzde işareti gibidir.
>> C, Yani bir tamsayı yaptığınızda Bir çizgi ile bir tamsayı bölünmesiyle,
C kesmek isteyen bir eğilim var ondalık noktaları tüm kapalı,
bir tamsayı istiyor çünkü bir tamsayı dönüştürmek için.
Bir çift olmak istiyorum gitmiyor Tüm kendisinden sonra ondalık bir demet.
>> Ben 2 bölü 3 yapmak eğer öyleyse, o gidiyor 0.5 kesti ve sadece seni 1 vermek.
Bu bir şey yani olması sen ne zaman çok dikkatli
programlama matematik her türlü yapıyor, sayılar olsun ki
sayılar olmayabilir Eğer düşündükleri,
hangi nedenle yuvarlama aşağıdadır Son pset çok önemlidir.
>> Modulo size kalanı verir.
Ben 3 yaptım, örneğin, eğer öyleyse Modulo 2-- yani yüzde 3 işareti 2--
bu size o kalanını verecekti.
Yani 3 bölü 2 1.5 olduğunu.
Bu 1 1 kalan var.
Size 1, verecek olan Bunun kalandır.
>> Yani siz hareket ederken ASCII tablosu aracılığıyla,
Modulo olmanın sona erecek çok önemli bir şey,
ve biz bu daha sonra ele alacağız.
>> TAMAM.
Çok güzel bir şey, oldukça yeni ve oldukça benzersiz
Bu hafta olduğu tartışılan ettik bir dizi nedir kavramı.
Yani dizi ilk veri yapısının türü
Biz gidiyoruz Bu sınıfta karşılaşırlar.
Tüm veri yapısıdır olduğunu keyfi çeşit,
yapısı gibi tam anlamıyla şeyler Biz programcılar oluşturduk olarak o,
Bizim kod koyduk o kodun diğer parçalarını içerebilir.
>> Bu anlamda, bir array-- yüzden Bir dosya kabine gibi düşün,
Farklı açarsanız nerede Dosya dolabının rafları,
Eğer farklı şeyler erişebilirsiniz.
Anısına, bir dizi sadece yapıyor Bilgisayarınızda aynı şey.
Farklı blocks-- biz olabilir Bir dizinin indices-- onları arayın.
Bu, sadece bir blok gibi belleğin bir raf
Biz içinde oluşturulan ettik senin Bilgisayar giriş yapabilirsiniz
Farklı mekanlarda bazı şeyler.
>> Bir dizi ile Yani, Her zaman specify-- zorunda
Eğer bir ilan belirtmek zorunda aşağıdaki biçimde dizisi.
Önce gidiyoruz veri türünü belirlemek
Eğer dizinin oluşturmak istediğinizi.
Ben tamsayılar dizisi istiyorsanız, Ben orada int koyacaktım.
Ben dize dizisi istiyorsanız, Ben, orada dizeleri koymak için gidiyorum
senin dizinin adını ve sonra Eğer köşeli parantez için gidiyoruz.
Ve köşeli parantez içinde, sen senin dizinin boyutu var olacak.
>> Için çok önemli bir şey diziler oluşturarak zaman akılda tutmak
Bir oluşturduktan sonra, bu Dizi, o boyut değiştiremezsiniz.
Bildiğiniz Yani şimdi o Eğer, büyüklüğü 10 bir dizi var
Eğer ben 10 hücre için gidiyorum biliyorum Bu dizi içinde endeksleri içinde veya 10,
ve gidiyor asla genişletmek veya azaltmak için
olursa olsun orada ne ve bu alan şu anda sadece 10 blok
saklayabilirsiniz bellekte ayrılan Eğer koyduk ne kadar 10 şey.
>> Yani bu şekilde, bir dizi veri türü, bir dizidir veri yapısı
yaparız bazıları diğerlerinden çok farklı Bu derste daha sonra kaplama olabilir.
Evet.
Örneğin, eğer istedi büyüklüğü 3 bir dizi oluşturmak
integer-- içeriyordu değişkenler ah, özür dilerim, temperature-- arasında
ve sıcaklık, bir Tabii ki, bir tam sayıdır.
>> Bu yüzden, hangi int yaratacak Biz saklamak istediğiniz veri türü.
Biz bu sıcaklıklar diyeceğiz adlandırma adlandırılması uğruna
Hepimizin anlıyorum bir şey.
Ve biz köşeli parantez zorunda gidiyoruz.
Ve biz üç sayı istiyoruz.
Yani biz koymak için gidiyoruz bunun içinde üç.
>> Gerçekten bir şey Akılda tutulması gereken önemli
diziler sıfır endeksli olmasıdır.
Demek ki hepsi senin olduğunu 0 indeksi ile başlar,
ve içinden koşmak 1 eksi dizinin boyutu.
Yani burada, örneğin, biz büyüklüğü 3 bir dizi var.
Bu mümkün olacak üç değer tutun.
Ama sayılar themselves-- sayı, dizi, bu indeks,
Dizi, 2. 0 ile vardır.
Yani adamlar, ne zaman gerçekten dikkatli olmak set senin sorunlarına üzerinden gidiyoruz
ve dizinin her türlü oluştururken, çünkü bu kez bir sürü
Gerçekten, gerçekten çok kolay unutmak.
Aslında indeksi yok 3, ben şu anda sadece
2 indekse sahiptir.
Ve sen denerseniz Üçüncü endeksi erişmek,
o ne olacak boş sonlandırıcı aradı.
Aslında gitmiyor dizide mevcuttur.
Ve bilgisayar böyle gitmiyor.
Peki ne zaman dikkatli olun Sadece bir şeyler erişiyorsunuz
Hatırlarsanız sağlamak diziler olduğunu sıfır endeksli.
>> TAMAM.
Yani ilk örnek adildir bir dizi yaratmanın bir yolu.
Ben ikinci örnek Aşağıda sadece ayrı bir yoludur
yaratma aynı veri nedir biz sadece Girilen ettik yapısı.
Bunun yerine fiziksel olarak çalışan boyunca ve 0 sıcaklığında koyarak
ne olursa olsun eşittir, sıcaklık 1 ne olursa olsun, sıcaklık 2 eşittir eşittir
neyse, ben sadece gerçekten olabilir doğrudan bir satırda tüm oluşturmak
Sıcaklık köşeli parantez içine eşittir.
>> Ve bu durumda haber, sana ihtiyacım yok diziniz ne kadar büyük belirtmek için,
Bilgisayar gidiyor çünkü geçmesi ve orada olduğunu görmek
Bu küme parantezi üç unsur.
Ve bu, tamam, biliyorum gidiyor Ben boyutta 3 bir dizi gerekir.
Sen gerek gitmiyorsun Giriş o şu şekilde.
>> Ve aynı zamanda, evet, bu şekilde.
Herkes soruları var mı Biz diziler yapmak nasıl dair
veya bir dizi yapısının nasıl çalıştığını?
Evet.
>> HEDEF KİTLE: [duyulamaz]?
ANDI PENG: Evet, kesinlikle.
Yani beyan ve başlatmak için olsaydı Bir dizi aşağıdaki yöntemi,
hangi ikinci yoludur, Sadece o bırakabilirsiniz.
Ve bilgisayar otomatik olarak biliyor
Kaç elemanları saymak gerekiyor Bu küme ayracı, ayrılır
virgül ile.
>> Yani burada onlar 65, 87, 30 bkz.
Yani bilgisayar, oh, bilir Üç tamsayı var.
Bir dizi adı oluşturmak için biliyorum İçinde üç unsur ile sıcaklık.
İyi soru.
Evet.
>> HEDEF KİTLE: Mümkün oluşturmak değil mi farklı veri tipleri ile bir dizi
bunun girmiş olabilir?
Örneğin, tamsayılar ile [duyulamaz]?
ANDI'nin PENG: amacıyla Bu sınıfın, hayır, şimdi.
Bir veri oluşturmak zaman Bir dizi gibi yapı,
Eğer söylüyorsun Bilgisayar, hey, sana ihtiyacım var
Bu kadar tahsis etmek benim sabit disk hafıza,
her hücre bir olmak bit belirli sayıda.
>> Biz hafta öğrenilen hatırla sıfır farklı veri
türleri farklı boyutları vardır?
Örneğin, bir dize So Farklı bir miktardır
char daha alan hangi alan farklı bir miktardır
Bir tamsayı.
Ve böylece sizin belirlediğiniz ve yoksa mix ve değişkenlerin ne tür maç
Eğer bilgisayarınızın var gidiş çok karıştı olmak.
Ve bunu bilmek için gitmiyor ne kadar bellek vermek için.
Sağ amaçları için çok Şimdi, bilgisayarlar yapabilirsiniz sadece
Bir dizinin bir tür tanır.
İyi soru.
TAMAM.
>> Bu yüzden doğal olarak, Elimizdeki ikinci soru
biz yarattık şimdi, iyi, dizi ve biz tüm bunları koyduk
Dizideki nasıl Biz kimiz erişmek için mümkün olacak?
Tipik yapı Böylece biz her zaman bir dizi erişmek için döngü bizim güzel.
Biz olacağım Seni çocuklar söz Burada bu adama bir sürü görüyorum.
>> Esasen, her zaman istediğiniz girişine bir diziye değerleri
ya da onları erişmek istediğiniz, Bunu yapmak için en iyi yolu, bir for döngüsü olduğunu
çünkü döngü için de, sen sen kaç kere bilmek
dizi üzerinden çalıştırmak istediğiniz olacak, Bir durak baskı var çünkü, değil mi?
Ve her zaman çalıştırmak aracılığıyla, sen erişebilirsiniz
Dizinin başka bir öğesi.
>> Ve ayrıca, bu bir nedeni genellikle Biz 0 değerde döngüler için bizim başlangıç
Eğer diziler eriştiğinizde, çünkü sıfır endeksi erişebilirsiniz.
Ve bu yüzden çok güzel paraleldir.
Siz istedi olabilir Ben 1 eşittir int için yazıyorum.
i daha az ya da 3'e eşittir.
>> Ama bu oldukça işe yaramaz burada, çünkü sen sadece
0, 1, ve 2 unsurları vardır.
Ve böylece başlatmak için olsaydı daki elemanı 1, 2 i ve 3,
Çalıştırdığınız sonuna kadar gidiyoruz senin dizi sınırlarının dışına,
ve kötü şeyler olacak.
>> Yani siz segue görmek umut ve neden daha önceki sınıflarda
Biz nasıl çalıştırmak için sizi öğretim ve döngü için biz yolu bir biçimlendirmek.
Şimdi biz ettik, çünkü var diziler içine geçiş,
neden 0 ödünç görebilirsiniz kendisi çok güzel erişimde.
>> Bu yüzden bunu yolu ben ki- olduğunu Sadece uğruna burada yazdırarak
yazdırmanın.
Ama benim tutucudur, virgül var.
Ve gerçek erişen parçası oluyor.
Dizinin adı Sıcaklık denirdi.
Yani sıcaklık ve var Dizinin i'nci elementi.
>> For döngüsü geçiyor Yani, 0'a başlamak için gidiyor.
Bu yazdırmak için gidiyor Bu dizinin 0 indeksi.
Sonra yazdırmak için gidiyor İlk elemanın dışında.
Sonra yazdırmak için gidiyor İkinci bir dışarı.
Ve sonra biz kırmaya gidiyoruz.
Herkes açık mı Bu nasıl oluyor?
Büyük.
>> Pekala.
Yani burada biz bir yolunu bir var biz istemiyordu söyleyerek
Sert-kod programcı olarak beni açmayız.
Aslında fiziksel istemiyordu Her bireyin eleman koymak
Bu dizinin.
Bunun yerine isteseydim , kullanıcı giriş değerleri
Bunu yapmanın en iyi yolu nedir?
>> Peki, burada oluşturduk bu güzel işlevi,
İçinde bir dizi bildirebilirsiniz.
Haydi scores-- Yani int sadece biz yapmak istiyorum demek
18 notlarının düzenlenen bir dizi Burada bu bölümde öğrencilerin.
Sanırım biraz buldum fazla 18 çocuk bugün.
Ama örneğin aşkına, Sadece biz 18 vardı varsayalım.
Ben bir dizi ismi puanları yaratacak türü int, puanları, çünkü tabii ki,
sayılardır.
Ve ben gidiyorum Köşeli parantez içinde 18
çünkü o kadar çok sayıda öğrenci I puanları depolamak mümkün olmak istiyorum.
>> Ve yolu ben doldurmak istiyorum dizi Ben isterdim ki
, bir döngü için bir ile çalıştırın Tabii, 0 benim 0 endeks olmak.
Ve sonra 18 olmak benim var çünkü, baskı durdurma
Dizideki 18 elemanları.
Ve sonra printf yapacağım girin student-- yada yada yada adına skoru.
>> Herkes ben neden burada bana söyleyebilir Ben artı 1 yazdırıp değil?
Bir numara tür soru değil aslında.
Aslında fiziksel olarak değil kodun çalışmasını etkiler.
Evet.
>> HEDEF KİTLE: [duyulamaz] 0?
ANDI PENG: Evet, kesinlikle.
O, hey söylemek biraz garip, Bu sınıftaki 0 ​​öğrencisin.
Bu biraz garip.
Bize Yani, insan olarak, gerçekten sevmiyorum Bilgisayarlar nasıl düşündüğünü düşünmek.
Bu yüzden bile olsa Bilgisayar, bu değerleri saklamak oluyor
0-th endeksi, içinde Biz insanları değil, biz gerçekten yok
sıfır kendimize başvurmak istiyorum.
Yani sadece o yazdırırken, Ben baskı ve eklemek için gidiyorum
Sadece netlik uğruna 1.
Ben yazdırırken Yani, ben olacağım 18 ile öğrenci 1 yazdırmak mümkün.
Aslında etkilemez kod çalışma
herhangi bir şekilde, yol ben yazdırabilirsiniz.
>> Sen Ama dikkatli olun Aslında dizi erişim.
Eğer puanları i gördüğünüzde, Burada dikkat Aslında ben
0 indeksi erişme ve değil 1 artı 0-- veya 1 artı 1,
Bu durumda, çok endeksi Bu aslında açık.
Herkesin biraz OK üzerine mi nasıl bu sayede çalışan
ve her dizin ile ben diziye bir değer koyarak
ve 18 numaraları ile bir dizi oluşturma kullanıcı girişine gidiyor?
TAMAM.
Güzel.
>> TAMAM.
Biz şimdi oldukça var şeye taşınmak hem de set bu parça hakkında.
Ben derste biliyorum, David-- üzgünüm, bir soru vardı?
>> HEDEF KİTLE: Bunu büyütmek misin?
>> ANDI PENG: Evet, ben de denedim.
Ama ben bilmiyorum.
Nedense, bu PowerPoint sürümü
gerçekten çalışıyor değil Ekranın ile.
Yani biz sadece gidiyoruz Böyle tutmak için.
Tüm bu online yüklenecektir.
Üzgünüm beyler.
Evet.
TAMAM.
>> Bu yüzden de dizeleri olabilir.
Yani aslında siz I notice-- eğer Rob o konuşmasında bu gitti biliyorum
O bir dize aslında did-- olduğunu karakter sadece bir dizi,
Bu konuda düşünüyorsanız, değil mi?
Bir dize bir isim ya da bir cümle veya bir kelime değil mi?
>> Ben adında bir dize oluşturmak olsaydı Andi-- sadece benim adım, A-N-D-I.
Sen sadece bir değişken olarak düşünmedim.
Ama aslında, aşağı kırıldı karakter sadece bir diziye.
Yani bir karakteri var Bir dizi değeri depolanır.
Bu saklanan n bir karakter var İkinci indeks ve benzeri ve benzeri.
>> Biz bu şekilde Yani Aslında bu tür
yapısının ayarlanır Bizim dizeleri yerleştirin.
Yani burada, ben giriş olsaydı kelimesi "yemek" - yani dize kelimesi eşittir
dize olsun.
Ben giriş olsaydı kelime "yemek" olduğunu benim bilgisayar yolu fiziksel olarak
benim belleğimde bu dizeyi depoluyor.
>> Ve ben bunu üzerinden çalıştırmak istedim ve i içine öylesine konrtol baskı
biz derste, hatırlıyorum, sıfır eşittir strlen denir kapalı bir şey,
veya dize uzunluğu.
Ben aslında çünkü Dizi ne kadar büyük biliyor
ne olursa olsun kullanıcının inputting-- bölgesinin
>> Örneğin, girilen kelime "yemek" ve biliyorum
Doğru, üç karakter uzunluğunda değil mi?
Yani orada üç koyabilirsiniz ve her şey iyi olacak.
Ama kullanıcı girişi şey varsa bu değerler, farklı bir sayı,
Eğer gerçekten mümkün olmayacaktır gidiyoruz kodunuzu programlamak zaman olduğunu biliyorum.
>> Bu yüzden test durumları ele yolu Böyle bir şey olması
Sadece bir fonksiyonu olan, adı strlen Bu bir dizedir ne kadar söyler.
Yani kelimenin strlen.
Benim sözüm yemek olduğunu.
n kelimesinin strlen eşittir.
Biri bu beni ne söyleyebilir değer aslında hemen orada?
N sağ ne temsil etmez Şimdi, bu örnekte, ben olsaydı yemek?
>> HEDEF KİTLE: 3.
>> ANDI PENG: 3, tam.
Int i eşittir Yani biz sıfır, n esasen 3 eşittir.
Ve çalıştırmak için gidiyor o 3i ++ az olana kadar.
Ve aslında gidecek aracılığı ile aynı şeyi yapmak.
Bu yazdırmak için gidiyor Her değer ve size vermek
E-A-T. Bu sadece bir belirten oluyor yazma farklı bir yolu.
Bu çok yararlı olacak.
Evet.
HEDEF KİTLE: koyarak yararları nedir n, bu iç strlen kelime eşittir
[inaudible] döngü için?
ANDI PENG: Evet.
Yani demek aşağıdaki amaçlara olsaydı, örneğin, Ben olsaydım o zaman yapmak ve
Benim kodunda bu oop-- o olur sanıyor- aslında aynı şey gibi yapıyor olacak.
Ancak, yol David açıkladı o derste, eğer birisi sizin adamlar
hatırlıyorum oldu gibi o insanlar, programcılar olarak,
Biz gerçekten bizim program deneyin Kod bizim bilgisayar vardır ki
bu nedenle, mümkün olduğunca az çalışmak bizim kod çok etkilidir.
>> Yani orada, ne olsaydı Benim için döngü içinde olur
Ben ilk ilan ediyorum ki Değişken adındaki i 0 olacak.
Ben, oh, kontrol etmek için gidiyorum kelimesinin strlen nedir?
Ah, strlen 3'tür.
Yani ben üçten az olması?
Evet.
Ben çalıştırmak için gidiyorum.
>> Ve sonra ikinci kez tekrar etrafında Döngü, ben i artırmak için gidiyorum.
ben bir olacak.
Ve ben, oh, kontrol edecek ama kelimenin strlen nedir?
Oh, üç değil.
Ve, bir tür savurgan görünüyor yapar Eğer döngü çalıştırmak her zaman,
fonksiyonu kontrol edilecek, Hatta kelimesinin strlen olsa
Aslında asla değişmez?
>> Yani bir bilgisayar için ekstra güç var.
Eğer şeyler hakkında konuşmaya başladığınızda milyarlarca ve milyarlarca olduğunu
ve yerlerde milyarlarca Uzun, bilgisayarınızı hayal
Fiziksel üzerinden gitmek zorunda ve O her zaman tüm kontrol ediniz.
Bu nedenle, sadece yapmaktır verimlilik uğruna,
Biz sadece bu yapmak eğilimindedir Çünkü biz sadece konum bu şekilde
işlevinin çağrılması Başlangıçta, bir kez
ve her defasında o gidiyor geçer
değeri saklamak için 3 Orada, yaptığın değil
sürekli her zaman kontrol etmelisiniz.
Evet.
>> HEDEF KİTLE: Özür dilerim.
Sadece [duyulamaz].
Eğer int n strlen eşittir ve koymak misiniz Bu döngü dışında yukarıda
hem de?
ANDI PENG: Evet.
Kesinlikle, bunu yapabilir.
Burada o var nedeni çünkü döngü işleri için yolu
denir ki, bir anlamda yerel değişken
sen her şeyi döngüsü için içini yaratmak
Sadece döngü için içinde mevcuttur.
>> Yani ben sadece değişken bu parantez içinde bulunmaktadır.
Ayrıca n Ve burada değişkenler sadece bu parantez içinde bulunmaktadır.
Yani bir strlen kullanmak olsaydı aşağı aşağıda birden çok kez kelime,
kesinlikle bunu yapmak için en iyi yolu top o kadar beyan olacaktır
bu yüzden bir kez bunu yapmak zorunda değilsiniz.
Evet.
HEDEF KİTLE: Neden var yüzde sonrasında yeni hat
Tüm koymak istiyorsanız görme o ayrı bir sonraki mektuplar?
>> ANDI PENG: Oh, ben istedim Her satırda hepsini yazdırabilirsiniz.
It does not matter.
Evet, bu bir biçimlendirme var.
O da, iyi bir soru.
Ben isteseydim Evet, yazdırmak için Sadece tek bir satırda,
Ben çizgi olmazdı.
TAMAM.
Herkes iyi?
TAMAM.
Güzel.
>> Yani ben yeterince konuştuk düşünüyorum.
Sen adamların sırası ile çalıştırmak için Kod ve burada neyin yanlış olduğunu söyle.
Böcek nerede?
Gördüğünüz gibi Yani, bir ilan ettik türü dize adlı sınıfın yeni dizisi.
Ve ben, Sam girilen ettik Içine Jess ve Kim.
Ve ben yazdırmak için çalışılıyor dizinin tüm unsurları.
Neden bu biri bana söyleyebilir Bana sorunları verecek?
Ben adamlar sana 10 veririm saniye bu düşünmek.
>> TAMAM.
Evet?
>> HEDEF KİTLE: sol orta mı 3 eşit veya [duyulamaz]?
ANDI PENG: Doğru.
Yani bu aslında kaç kez Bu döngü içinde koşacağız?
>> HEDEF KİTLE: Dört.
>> ANDI PENG: Kesinlikle.
Bu dört kez kişiye aracılığıyla gidiyor.
Bu aracılığıyla çalıştırmak için gidiyor 0, 1, 2, ve 3,
bunların elemanı i olduğu daha az ya da 3'e eşittir.
O 2 ne zaman durdurmak için gitmiyor.
Bu tutmak için gidiyor bu 3 vurur kadar devam.
Bildiğimiz gibi, sadece üç var Bizim asıl dizideki elemanları.
>> Biz dördüncü erişmeye çalışırsanız elemanı ya da 3'ün endeksi
Bir yerde vurmak için gidiyoruz hafızada mevcut gelmez.
Bu boş sonlandırıcı denir.
Hiçbir şey olacak.
Bilgisayarınız gitmiyor Seninle çok mutlu olmak için.
Evet.
Herkes soruları var mı neden oluyordu üzerinde?
Bunu önlemek için ortak bir alan var.
Evet.
>> HEDEF KİTLE: ilk değil mi 2 Bir dize var da slayt?
ANDI PENG: Hayır
Bu nedenle esas olarak, ne zaman Bir dizi yapıyoruz,
Bu dirsek hakkı Orada her number-- bu
Eğer nasıl söylüyor Birçok unsurları Ben var.
Aslında söylemiyor Bana bir şey indeksler.
Yani bu durumda, ben istediğimi biliyorsun Üç basamaklı yazmak için,
üç fiziksel yerlerde Ben tutmak istiyorum ne tutun.
Üç numara olduğunu İşte bu yüzden.
Ancak, eğer istediğim aslında erişmek için,
Söylemek istedim, printf Daha sonra sınıf dirsek numarası,
aslında koymak için gidiyoruz Orada fiziki indeksi.
Evet, iyi bir soru.
>> HEDEF KİTLE: Yani fiziksel bir endeks sözde [inaudible] olmak?
ANDI PENG: Üzgünüm.
Eğer biraz konuşabilir miyim?
>> HEDEF KİTLE: Yani fiziksel endeksi [Duyulamaz] kutularının her?
[Duyulamaz]?
>> ANDI PENG: Evet.
Yani burada geri gitmek için gidiyorum.
Burada düşünün.
Biz büyüklük 3 bir dizi var.
Gibi üç yer var, Burada fiziksel tutucular.
Ama 0, 1, ve 2 adında ediyoruz.
Ben bunlara erişmek için istedim Yani, Ben bunlara erişmek yolu
Burada ne istediğini printf olduğunu.
Sen yazdırmak zorunda kalacak Bunun adı dışında,
Daha sonra bilgisayara çünkü oh, bakmak gerekir, bilir
0 dizin için bu dizide.
Evet.
Ama boyutu değişmez.
Boyutu ne olursa olsun 3 olduğu Onları etiketlemek nasıl.
TAMAM.
Herkes iyi?
HEDEF KİTLE: Yani her zaman ben [duyulamaz]?
ANDI PENG: Tamam.
Yani bu durumda, biz gerçekten yok Tabii şu anda içine almak.
Ama biliyoruz ki benim gibi bir string-- bir dize temelde, önce söylediğim
karakter dizisi.
Ben bir dizi oluşturmak Yani eğer dizeleri, ben tür
Dizinin bir dizi var karakter, değil mi?
>> Bu durumda Yani, çünkü ben , dizelerden oluşan bir dizi var
Eğer girmek için gerçekten uzun bir sözcük olsaydı, hala sadece bir yer kaplıyor
bu bir dize çünkü.
Ama sanki düşünmek o dizinin karakterleri,
o daha bir sürü alıyor Başka bir deyişle herhangi karakterden
bulunmaktadır.
Şu an için gerçekten önemli değil.
Ama bu sadece genel bulunuyor nasıl işe yarıyor.
>> TAMAM.
Yani bu Bunu yapmana izin olacak bir şeydir dönem boyunca bir sürü.
Sesimi dinlenmem gerekiyor.
Siz kendinizi uyarmak gerekir.
Size bir sürü muhtemelen Şu anda uyumak zorunda.
Ben rastgele sorunlar giren ediyorum nerede bir sınıf olarak ya da
bir ortak ile senin yanında olacak tartışan bir kaç dakika geçirmek için
biz çözme hakkında gitmek nasıl veya bu gibi bir program oluşturmak.
>> Yani şimdi biz istiyoruz Bir program-- oluşturmak için
Biz onu aramak için gidiyoruz upper.c-- dönüştürür olduğunu
bir üst sınıfa bir küçük kelime string-- büyük harf, üzgünüm.
Kelime dizeleri, üzgünüm, eşanlamlıdır.
Onları değiştirmek için gidiyorum aynı şey demek için.
>> Evet.
Birkaç dakika ayırın.
Öyle olmak zorunda değildir herhangi bir dilde yazılmış.
Sadece sözde kod kod ya da mantıksal nasıl biz bile olur
Böyle bir sorunla yapıyor hakkında gitmek.
Evet.
>> [YAN KONUŞMA]
>> Ben de siz can-- fark Ben tür zaten programına bakın.
Ben benim eksikliği sanırım Sunum modu bir sorundur.
Ama sorun değil.
>> [YAN KONUŞMA]
Çocuklar, lütfen, evet.
Şeker olsun gel.
>> HEDEF KİTLE: Evet!
>> [YAN KONUŞMA]
ANDI PENG: Ayrıca, evet, Ben şeker atma başlayacağız
sorulara cevap yok insanlar.
Tüm soruları cevaplamak gerekir Yani.
Yoksa insanları herhalde kim sorulara cevap yoktur.
Evet, başka bir yol etrafında.
>> [YAN KONUŞMA]
HEDEF KİTLE: [duyulamaz]
>> ANDI PENG: Evet.
Evet.
>> [YAN KONUŞMA]
>> Pekala, çocuklar.
Gibi, 10 saniye daha sürebilir.
>> [YAN KONUŞMA]
>> Çocuklar, tamam.
Yani biz çalışıyoruz başlamadan önce aslında fiziksel, kod yazmak
geliştirmek için iyi bir alışkanlık olduğunu Biz aklın birinci tür istiyorum
dışarı mantıklı biz bunu nasıl yapacağını.
Sen emin olmak, Sizden önce fiziksel
kod çalışıyor başlamak Mario, o yapmak
Emin senin pseudocode var.
Yani size alıyor ne yani oluşturmanız gerekir
sizi fiziksel olarak o daha sonra program yazmak,
Eğer hataları yakalamak için daha iyi edebiliyoruz kodunuzu ve bunun gibi şeyler.
>> Yani biz sadece başlamak için gidiyoruz by-- İngilizce olarak pseudocode,
Herkes vermek istiyor Bana bir jenerik açıklama
Biz bunu hakkında gitmesine nasıl?
Evet.
>> HEDEF KİTLE: [duyulamaz].
ANDI PENG: Tabii, merak etmeyin.
HEDEF KİTLE: Eğer bunu sormak ya da sorabilir miyim Birisi, string 1-- evet, dize almak
ve daha sonra--
>> ANDI PENG: Evet, bu nedenle bu iyi bir başlangıç.
Ben konuşurken, üzgünüm, yazmaya başlayacağız.
Yani--
>> HEDEF KİTLE: --the küçük sayılar daha yüksek, değil mi?
Ya da küçük harfler yüksek numaraları var?
ANDI PENG: Kesinlikle.
HEDEF KİTLE: Öyleyse çıkarmak Ne olursa olsun [duyulamaz] 32.
>> ANDI PENG: Büyük.
Bu yüzden tür genel bir duygusu var ve nasıl bu sorun hakkında çalışmak.
Biz tür öğrendim bilerek Bu dizeleri, fiziksel yolu
hafızada saklanır, zaten ne
Muhtemelen gidiyoruz biliyorum kodunuzda yazmak zorunda
sırayla dize gezinmek için?
>> HEDEF KİTLE: döngü.
ANDI PENG: döngü A, aynen öyle.
Büyük.
Bu yüzden tür bir genel var pseudocode yazılı
Bu tür veriyor Size nasıl notlar
problem çözme konusunda hareket edeceklerdi.
Şimdi bu var, size Daha sonra bunu başvuruda bulunabilir
Eğer çalıştığınız ne zaman aslında kod yazmak.
Yani biz aslında burada gidebilirsiniz.
Ve ben adında bir işlevi var upper.c-- orada sadece boş bir şablon bu--
Şu anda siz için gidiyoruz Bana yazmak için nasıl anlamaya yardımcı
değil kod satırını code-- bu hattı.
Bu kod birden fazla satır olacak.
>> Her türlü başlatırken Boş pset bölgesinin ne
Ben gereken ilk şey yapmak için hatırlamak?
>> HEDEF KİTLE: [duyulamaz].
>> ANDI PENG: Büyük Yep.
Ekleyin.
stdio.h.
Çoğu kez, bu biridir En kolay hatalar insanlar
Onlar olduğunuzda yapacak yazma onlar olacak ki
Bir eklemeyi unutmayın ihtiyaç duydukları önemli kütüphanesi.
Yani, çalışma saatleri ve sen gibi iseniz Benim kod neden çalışmıyor bilmiyorum.
Eğer çalışmıyor neden bana söyleyebilir misiniz?
Biz #include söylemek için gidiyoruz?
Bunu #include gerekir.
TAMAM.
>> Yani biz burada standart I / O var.
Olduğunu sadece kütüphane Burada ihtiyacımız olacak?
Başka ne yapacağız?
Özür dilerim.
Birisi sadece bunu çığlık?
>> HEDEF KİTLE: [duyulamaz].
ANDI PENG: İşte buyurun.
TAMAM.
Ve nasıl her türlü başlatma hakkında gitmek do ana işlevi fonksiyonu, herhangi bir tür
Bizim program dahilinde?
Ana Int.
TAMAM.
Burada içeride ne koyacağım?
Yapmak istediğiniz ilk şey nedir?
Biz almak istiyorsanız kullanıcı dize,
ne var olacak Bu ilk satırda yapmalı?
Maalesef, siz sadece hissediyorum konuşmak için ücretsiz ve yüksek sesle.
Sadece dışarı neyse bağırmak.
>> HEDEF KİTLE: Kullanıcıya sorun mu var?
ANDI PENG: bunu nasıl yaparız?
Ask-- ben "kullanıcı sormak" yazın gidiyorum?
>> HEDEF KİTLE: Printf.
>> ANDI PENG: Tamam.
Printf.
Ne printf istiyorsun?
>> HEDEF KİTLE: bir şey yazın.
>> ANDI PENG: Böyle mi?
Ben bir bilgisayar gibiyim Beyler, taklit.
Fiziksel bana her adımı söyle Buraya yazmanız gerekir?
Ben yanlış bir şey yapıyorum?
Ben bir şey yazdığınızı mıyım?
>> HEDEF KİTLE: Sen tırnak gerekir.
>> ANDI PENG: Ben tırnak ihtiyacınız var?
TAMAM.
>> HEDEF KİTLE: Ve sonra yeni bir satır.
Noktalı.
ANDI PENG: semicolon?
TAMAM.
İyi.
>> HEDEF KİTLE: Ve belki belirtmek Eğer küçük harflerle istediğiniz?
>> ANDI PENG: Büyük.
Siz bana gülerler noktalı virgül koymak unutma.
Bir yerde garanti Bu sınıfın sırasında,
Eğer koymak unutacak noktalı virgül, ve
anlamaya sana üç saat sürer dışarı neden kodu çalışmıyor.
Bu hepimiz için oldu.
Muhtemelen size ne olacak.
Noktalı virgül kullanarak iyi bir alışkanlık haline getirin.
TAMAM.
>> HEDEF KİTLE: İstediğiniz musunuz ters eğik çizgi yapmalı?
>> ANDI PENG: Elbette.
Eğer ters eğik çizgi yapmak istiyor musunuz?
>> HEDEF KİTLE: Evet.
>> ANDI PENG: Büyük.
TAMAM.
Bundan sonra ne yapmalıyım?
>> HEDEF KİTLE: dize alın.
ANDI PENG: dize alın.
Peki ben ne yazabilirim?
Biri?
>> HEDEF KİTLE: String s.
>> ANDI PENG: String s.
HEDEF KİTLE: GetString.
ANDI PENG: Biri, Bana nerede söyleyebilir
Bu fonksiyon GetString geliyor?
>> HEDEF KİTLE: string.h.
>> ANDI PENG: string.h?
Bunu string.h gelen düşünüyorum?
>> HEDEF KİTLE: [duyulamaz].
>> ANDI PENG: İşte buyurun.
Bu CS50.h. geliyor
Her zaman nerede karıştı ediyorsanız kütüphane dosyası ya da bir başlık dosyasıdır,
google anlamıyla string.h ve ben söyleyeyim
tüm fonksiyonları nelerdir string.h ki.
TAMAM.
>> Yani şimdi ben bir dize oluşturduk ve bunun için kullanıcı istemi ettik,
Ben bir değişkende saklanır ettik adlı s, ne şimdi ne gerekiyor?
>> HEDEF KİTLE: Bu küçük harflerle olmadığını kontrol edin.
ANDI PENG: Üzgünüm?
HEDEF KİTLE: Bu küçük harflerle olmadığını kontrol edin.
ANDI PENG: Pekala, o yapalım.
Bunu nasıl yaparım?
Aslında amaçlı Şu anda sınıfın,
biz sadece gidiyoruz her şeyi varsayalım
biz girdi küçük harflerle zaten.
Eğer kontrol etmek istedim, sen-cekti sadece koşullu ifadesi ekleyin
teslim olduğunu, içinden koştu her dizi elemanı
o ise ve kontrol Bazı değerler arasında.
Unutmadan hangi sayı lowercase değerleri vardır.
ASCII masaya bakabilirsiniz.
Ama evet, gerçekten iyi bir nokta.
Ama şimdi, biz sadece gidiyoruz tüm dizeleri varsayalım biz girdi
küçük harflerle bulunmaktadır.
TAMAM.
>> Yani hakkında nasıl gitmek Bir sonraki bu sorunu?
HEDEF KİTLE: döngü.
ANDI PENG: döngü için?
TAMAM.
Ne tip söyle.
>> HEDEF KİTLE: int i için 0 eşittir.
>> ANDI PENG: Tamam.
>> HEDEF KİTLE: Oh, aslında, o zaman size Virgül yapmak ve n strlen eşittir yapmak.
>> ANDI PENG: Yani önemli olan Ben o burada fark var düşünüyorum
Biz int söylemek yoktu ki n ikinci kez biz bunu yaptık.
Sadece bir o biliyor Eğer ilan ediyoruz döngü,
Aslında bir int gerekmez İkinci kez bir değişken yapın.
Sen n strlen söyleyebiliriz.
>> HEDEF KİTLE: s Of.
>> ANDI PENG: s.
TAMAM.
>> HEDEF KİTLE: O noktalı virgül.
>> ANDI PENG: Elbette.
>> HEDEF KİTLE: Ve sonra [duyulamaz] n.
Sonra i ++.
>> ANDI PENG: Büyük.
Pekala.
İçeri Ne istiyorsun şimdi döngü için bu?
Biz aracılığıyla çalıştırmak için gidiyoruz eğer Unutmayın, bir dize ve bir dizi üzerinden çalıştırmak
biz de bir şeyler kontrol etmek istiyorum.
İhtiyacımız olacak?
Bu artık zor kısmının türüdür.
Herkes bir tahmin var?
>> TAMAM.
Bunun için ilk önce, nasıl biz bile girebilirim?
Nasıl biz bile ilk onay veya dizideki öğeye erişmek?
Biz nasıl yapacağız?
Biz bunu kullanmak gösterimde nedir?
Bu dizinin adı ne denir mi?
Doğru, s denir?
>> Herhangi bir dize her zaman bir dizi olduğunu unutmayın.
Yani s dirsek i, değil mi?
Bu akım değeri olduğundan ya da endeks değeri, biz kontrol ediyoruz.
Ve biz bu eşit ayarlamak için gidiyoruz aşağıdaki amaçlara doğru bir küçük değer mi istiyorsun?
Biz açmak istiyor lower-- Üzgünüm, biz bir büyük harf istiyoruz.
Biz küçük harf açmak istiyor Bir büyük harf içine değer.
Ve üzgünüm bu yüzden da--, adın ne?
>> HEDEF KİTLE: Heidi.
>> ANDI PENG: Üzgünüm?
>> HEDEF KİTLE: Heidi.
>> ANDI PENG: Heidi.
Heidi dediği gibi Başlangıçta, muhtemelen konum
Biz konum Şeyin ihtiyacımız olacak Muhtemelen çıkarmak zorunda olacak
Doğru ne olursa olsun charc 32?
ASCII üzerine Çünkü masa, fark
küçük harf arasında ve bir büyük harf 32'dir.
Biz bunu yaparken Yani, muhtemelen konum Doğru, 32 çıkarmak istediğiniz olacak?
>> Bu yüzden Cuz i yapacağız.
Bunu neden yaptığımı herkes anlıyor mu?
Çünkü şu anda, bizim dizide, Biz 0 indeksi kontrol ediyoruz, değil mi?
Ve 0 endekste Dize, ilk karakter.
Ve bu karakter, biz gidiyoruz o küçük olduğunu varsaymak.
Biz büyük harf yapmak istiyorsanız, biz kendi değerinden 32 çıkarmamız gerekir,
Bizim ASCII çünkü tablo, biz bunu elde nasıl
İlgili sonraki o büyük kılan değer.
Herkes anlıyor mu?
Evet.
>> HEDEF KİTLE: Ayrıca Could Bir minus-- küçük harfe do
>> ANDI'nin PENG: Evet, böylece var: Aslında gerçekten iyi.
Ben geri gelmek için gidiyorum soru bu yaptıktan sonra.
Evet.
Ve sonra isterseniz ne olup bittiğini görmek
Herhalde gidiyorum Sağ yazdırmak istediğiniz?
Birisi bana ne diyeceğim Burada yazdırmak istiyorum.
>> HEDEF KİTLE: printf yüzde c ters eğik çizgi [duyulamaz].
Bu [duyulamaz] s i değerdir.
>> ANDI PENG: s i, üzgünüm?
HEDEF KİTLE: [duyulamaz].
ANDI PENG: Bilmiyorum.
Ne düşünüyorsun?
>> HEDEF KİTLE: Şey, ben wouldn't-- Ben bring-- olmaz sanırım
Ben dışarı alacaktı içeride, çünkü [inaudible].
ANDI PENG: Oh, bunu yapardı?
HEDEF KİTLE: Evet.
ANDI PENG: hadi yolu bırakalım o ve ben neden daha sonra açıklayacağım.
Zaman bile, unutmayın Bir yer tutucu var,
bunu etrafına parantez koymak istiyorum.
Pekala.
Yani bu burada katı bir işlevi olmalıdır.
Şunu çalıştıralım ve derler olmadığına bakın.
Üst olun.
Ah ah.
Bu çok iyi görünmüyor.
Bu neden oluyor?
Herhangi bir hata olduğu gibi, gitmek istediğiniz sırt ve ilki ile başlamak,
genellikle bir hata nedenleri yüzünden ondan sonra diğer hatalar çok.
Burada upper.c bkz: 18: 25, söyler Bana bu programda, upper.c adlı
hat 18, hata örtük ilan fonksiyonları kütüphanesi tip strlen
unassigned-- vesaire, bilmiyorum Ne bundan sonra oluyor.
>> Tüm şu anda bana olan söylüyor O şey strlen oluyor.
Ve bilgisayar, çünkü karışık oluyor o gibi ben strlen ne olduğunu bilmiyorum ki?
Ne muhtemelen yapar Eğer kaçırdığını söyleyen oldu mu?
>> HEDEF KİTLE: Sen [duyulamaz] kaçırıyorsun.
>> ANDI PENG: Haklısın.
Kesinlikle.
O nerede Yani bu emin olmak için önemlidir
Bu sizin kullandığınız her fonksiyonu senin Kod doğru başlık yaşıyor
Başka kitaplık için dosya veya Eğer hatalar çok almak için gidiyoruz
ve kod gitmiyor Neler bilmek.
Yani biz burada string.h dahil gidiyoruz.
>> Şimdi üst derlemeye çalıştığınızda.
Doğru derleyin.
Şimdi bu programı çalıştırın.
Yani küçük harflerle bir şeyler yazın.
Siz ne tip istiyorsun?
Bir şey haykırmak.
Pekala, Charly sadece yürüdü.
Biz Charly adını yazın edeceğiz.
>> Küçük harflerle Charly.
Ve umarım, inşallah, bu haykırmak ve tükürmek olacak
Büyük harf Charly.
Yay!
Herkes anlamak yok Bunu çözmek hakkında gitti?
Yol I can tamsayılar kullanarak işlemek
şey çözmek için Ben dizeleri yapmak istiyorum,
karakterler ve tamsayılar can çünkü Aynı şekilde, çünkü başvurulan
ASCII haritalama.
>> Yani eğer, senin noktaya geri dönmek için ben 32 yerine buraya koymak istedim
Büyük bir gibi bir küçük harfe eksi Bu, o, hem de eşit işe
çünkü o sadece sadece Bu iki değer arasındaki fark.
Ben bu vasıtasıyla yine Charly yapmak istiyorsanız.
Oh hayır.
Sanırım evet, yanlış yoldan gitti düşünüyorum?
>> HEDEF KİTLE: [duyulamaz] Bir küçük harfe.
>> ANDI PENG: İşte buyurun.
Evet.
Ve dışarı charly tükürür.
Peki ne zaman dikkatli olun değerleri çıkarılarak ediyoruz
hangisinin hatırlamak Diğer daha fazla.
Örneğin, buraya ben unuttum O küçük bir aslında
Büyük A büyükse ne zaman I Onlara başka bir şekilde çıkarmak için çalıştı
etrafında, negatif 32 aldım.
Ve benim bilgisayar, gibiydi Ben ne olduğunu bilmiyorum.
Sadece bazı rastgele olasılık var çok iyi değil değer.
Ve böylece sen emin olun Doğru uzunluğu çıkarılarak
İstediğiniz karakteri bulmak için.
TAMAM.
Herkes biz nasıl karıştırılır Bu işlevi yazma hakkında gitti?
TAMAM.
Yani aslında bir işlev zaten Kütüphane denir ctype.h bulunmaktadır.
Kütüphanenin denilen ctype.h.
Bu fonksiyon aslında zaten sizin için yazılmış.
Üst için denir.
>> Ve böylece amaçlı Bu pset, sen gidiyorsun
Eğer gerçekten kullanmak istediğinizi bulmak için içerdiği bir çok fonksiyonu
ctype kütüphane içinde.
, Alt, üst, üst olduğu için, bir lower-- olanlar tüm fonksiyonlar
çok kullanmak mümkün olacak, çok hızlı bir şekilde kendi kodu olduğunu
Bu tam olarak ne yapar.
Biz nasıl dönüştürüleceğini yazdı bir dize büyük harfe.
Ama bu aslında kodu başkasının yazmış olduğu
ve erişebileceğiniz bu Farklı bir fonksiyonu aracılığıyla.
Evet?
>> HEDEF KİTLE: Yani sadece orada bir kopyasını ve her harf için bunu?
>> ANDI PENG: Evet, ben değil çünkü Bir değerlerinin umurumda.
Ben sadece fark bakım Aralarında doğru, 32 mi?
Küçük harf arasındaki fark B ve büyük B de 32'dir.
Ve c arasındaki fark ve büyük harf C hep 32'dir.
>> Ben sadece umurumda zorunda İkisi arasındaki fark,
tüm harfleri yüzünden Doğru, aynı modeli takip?
Ben fark varsa Bunların arasında, tek bir
Biliyorum ne fark bunların hepsi arasındadır.
İyi soru.
Evet.
Herkes iyi?
TAMAM.
Oop.
>> TAMAM.
Yani başka bir kavram olduğunu senin gibi çok yararlı olacak
geliştirmeye devam kodunuzu bu fikir
fonksiyonlar veya soyutlama oluşturma.
Yani şimdi, hepimiz cebir aldık.
Cebir, sen olduğunu öğretilir Bu harika bir şey bir işlevi olarak adlandırılan
Makine, nerede eğer numara giriş tek tür,
Bu harika fonksiyon geçiyor ve dışarı doğru, farklı bir çıkış çıkar?
Kodda, aynı şey olmuyor fonksiyonun herhangi bir tür.
>> Yani fiziksel olarak olabilir Benim kod bedenimde yazma
aslında yok bir ana ilkesi ne olursa olsun kod gövdesi yapıyor.
Bunun dışında ancak, ben de can Birçok farklı işlevleri yazabilirsiniz
pek çok farklı şeyler yapmak.
Örneğin, biz zaten var bazıları kullanmaya başladı.
Printf-- bir olduğunu fonksiyon bu başkası
zaten yazmış Bizim kod çağırabilirsiniz.
Bu durumda upper-- için, upper-- başka işlevi
Biz biz yazdık Bizim kod çağırabilirsiniz.
Ve bu yüzden neden bunu tahmin biz bile işlevlere sahiptir?
Neden sadece plop yok tüm kod aynı çizgide?
Bu herkes için kolaylaştırır.
>> Eh, bu arkasındaki mantık organizasyon, her şeyden önce, olduğunu.
Bu gidiş gerçekten sinir bozucu Birinin kod aracılığıyla
ve printf gibi bir fonksiyon.
Siz aslında bilseydim neler fonksiyon printf yazmak için gerektirdiği
bu kod 1000 hatları gibi, bu.
>> Eğer istediğim her zaman şey printf'in,
Ben, kod satırlarını 1000 yazmak zorunda Bu, okumak gerçekten can sıkıcı olurdu
sağ?
Biz sadece ettik yüzden Bu soyut fonksiyonu yarattı
Biz birileri var Başka bir yerde yazmıştır.
Ve her zaman biz bunu kullanmak gerekir Bizim kod, sadece printf söylemek zorundayım.
Ve bu işlevi kullanmak mümkün başkası bizim kod yazmıştır.
Bu kolaylaştırır örgütsel kod okumak için.
>> İkincisi, bu sadeleştirme var.
Biz gereken adımları kolaylaştırır Bizim sorunu çözmek için almak.
Printf, printf gibi fonksiyonlar, Üst nasıl işlev
için bize izin her şey vardır daha kolay böylece aşağı bizim kodunu basitleştirmek.
Ve son şey yeniden kullanılabilirliği olduğunu.
>> Elimizdeki gerçeği Yani Bir işlevi çağrılır printf
birçok farklı çağırabilirsiniz Zaman ve yeniden kullanılabilir olmasını sağlar.
Ben printf yazmak için olsaydı, Ben sadece bir kez yazın.
Sadece bu tek bir yerde bulunmaktadır.
Ben tekrar yapmak isteseydim, yapardım kopyalamak ve bütün yapıştırmak zorunda
kod benim ikinci hattına.
Biz bir işlev oluşturursanız yüzden Bu, bizim ana dışında var
biz sadece çağırabilirler o ve ne zaman yeniden
böylece çok daha kolay olduğunu gerek Bizim için programlar yazmak için.
>> Yani yol aslında yazmak olacağını Bir işlev, doğru çok benzer?
Bu ilk tür örnek yaparız hangi
Bir tarzı bir işlev üstlenmek bakın Bizim int main boşluğun farklı.
Bu durumda, eğer ben istedim Doğru, q isminde bir fonksiyon yazabiliriz?
>> Ve burada int değeri beni anlatıyor,
Ben bu ne istiyorsun Bana dönmek için işlev?
Ben bir tamsayı küp istiyorsanız, Ben girmek istediğiniz gidiyorum.
Bu parametreler.
Ben int türünde bir değer girişleri için gidiyorum.
Ve geri dönmek için gidiyorum int başka tür değer.
Ve burada, senin kadar Tüm yapıyorum, görebilirsiniz
Benim girdi ne olursa olsun cubing olduğunu Benim çıkış olarak ve dönen.
>> Peki tüm bu fonksiyon olduğunu yapar tamsayı çeşit alır.
Bu kez kendisi tarafından çarpar böylece yürürlükte küpler.
Ve o zaman döndürür ne olursa olsun çıkıştır.
Bu yüzden, bu durumda, bu iki satır var: biz fazladan yazmak zorunda kaldım kodu.
Ama biz diyoruz istedim Bu birden çok kez üzerine,
o bir yazın çok daha kolay daha küpte var burada hat
birden çok kez gitmek zorunda.
>> Yani yol olduğunu esasen herhangi bir fonksiyonun herhangi bir tür için biçimlendirme
mevcut gidiyor burada gibidir.
Yani biz işlev adı var.
Bu durumda, bu küp denir.
Ve biz bunu Küpü çünkü isim o hatırlamak kolay.
Bunu kare isim ve aslında küp edilebilir.
Farketmez.
Sen sadece bir isim senin işlevi atama.
>> Burada bu hakkın, int, bir İhtiyacınız parametrenin türü.
Yani bu işlevi ne işletmek için gereken?
Peki, bu bir giriş ihtiyacı var.
Ben girdi adını verdi.
Sen ne istersen onu adlandırabilirsiniz.
Ama ben int türünde bir şeye ihtiyacım var.
Aslında yürütmek için gidiyor Burada içinde ne olursa olsun,
fonksiyonun gövdesi.
Ve sonra dönüş tipi Burada, bu int--
Tüm bu beni bir söylüyor Bu fonksiyonu olduğunu
int bana dönecek.
Yani bir int almak için gidiyor ve var bir int size geri vermek için gidiyor.
Herkes nasıl anladı mı Bu tür biçimlendirme çalışıyor?
Güzel.
>> TAMAM.
Bu gibi görünüyor Yani endişeli olmayın Şimdi biraz soyut hakkı.
Bu konuşmamız olacak bir şeydir.
Biz derin dalış olacak Daha sonra ders.
Yolu, yüksek bir seviyede herhangi bir tür bunlar işin soyutlama
ise, bellekte, bu Bilgisayarınız her şey
Bu tip saklanır yığının, ben diyeyim.
>> Orada en üstünde Yani.
Bilmiyorum eğer adamlar o kadar da iyi görebiliyorum.
Ben yakınlaştırmak için çalışacağım.
İşte üstünde, biz Fiziksel metni
Bilgisayar interpreting-- olanın tüm sıfırlar ve olanları o
bizim bilgisayar içinde var.
Ve sonra biz başlatıldı var Veri ve başlatılmamış verileri,
ne genel değişkenler diyoruz.
Mevcut değişkenlere Yani tüm programlar arasında
ve entire genelinde, esas olarak, kod.
Endişeye gerek yok siz iseniz tür belirsiz bu konuda.
Şu an gerçekten önemli değil.
>> Ve sonra ne var bir yığın bir yığın çağırdı.
Kelimenin tam anlamıyla bir yığının düşünün sadece şeylerin bir yığın gibi,
Farklı bir yığın şeyler üstünde itiliyor
Çeşitli depolamak birbirinden kodunuzun içinde değişkenler ve sözdizimi.
Ve sonra burada çok altında, Biz ortam değişkenleri
Eğer içinde yürütme ne kod sadece küçük satır.
>> Ve biz sadece Büyütmek için gidiyoruz Gerçek yığın parçası olarak.
Biz Yani burada, yakınlaştırmak için yığının sadece bu alan üzerinde,
Bu göründüğü gibi değildir.
Ve bu aslında oldukça önemli olduğunu Siz işlevleri hakkında ne konuşmak,
çünkü haber olduğunu Bilgisayarınızın belleği
değişkenleri depolamak ve işlevleri
ve her ikisi de parametreleri kayıt fonksiyonu ve ana değişkenler
farklı yerlerde.
>> Yani şimdi, ana olduğunu gerçek işlev
Bir kod yürütme olduğunuzu.
Sen onun parametreleri burada saklanır var ve yerel değişkenler burada saklanır.
Yerel değişken sadece herhangi bir değişkeni ifade sadece bu işlevi içinde var.
Ve bunun üzerine, bu var küp olarak adlandırılan ayrı işlevi.
Bunu parametreler var var ayrıca bu halk olarak.
>> Nedeni ve mümkün olduğunu burada gördüğünüz
küp alır ne olur ana işlevinden değer
Aslında o aşkın kopyalama olması.
Ben küp istedim Yani eğer 2 ve 8 dönmek olduğunu 2
Aslında girildiği bir parametre olarak ve bu kadar
Eğer mevcut olması için üzerine kopyalanan bellekte iki farklı yerde.
Ve çok dikkatli olmak zorunda hatırlamak hangi onlardan biri
aslında manipüle ediyoruz.
Ve ne bir örnek Bu çok kötü olurdu
Burada mevcut.
>> Yani burada, ben var, teoride, Burada bir program, bir ana işlevi
Ben bir int ilan ediyorum x 1 eşittir.
Başka bir int y 2 eşit ilan ediyorum.
Ve sonra onu koşuyorum Bu fonksiyon sayesinde
Ben varsayalım denilen takas, bu iki değer takas ediyor.
Ve sonra ben gidiyorum Doğru, onları baskı?
Ben bu program yapmak istiyorum.
>> O yüzden gelip bir göz atalım.
Ben aslında farklı bir yazarsanız Yani fonksiyonu, gördüğünüz gibi,
Burada bizim ana işleve sahiptir.
Ve sonra bizim var Burada ikinci işlevi.
Void takas.
Void sadece var olduğu anlamına gelir bir şey geri gitmiyor.
Fonksiyon adı takas olarak adlandırılan ve var
alımı iki değişkenli, int a ve gidiş senin [duyulamaz] işlevi, b int.
>> Yani aslında burada biz konum Bu işlevi x ve y geçiriyordu.
Ve biz olsaydı bu yüzden istediğimiz bu-- oluşturmak
Doğru, geçici bir değer yaratmak?
Biz o atamak için gidiyoruz.
Ve sonra bir artık eşit b gidiyor.
B geri olacak nerede geçici değer,
olan bir zaman için Bir şeyleri takas etmek istiyorum,
Sadece onları takas gibi olamaz.
>> Bir out tutmak zorunda Burada hatırlar, böylece
Ne yani, çünkü bir kez birini takas, unutur
Doğru ne orijinal değeri oldu?
Teoride, bu program So Doğru, çalışması gerekir?
Ben takas isteseydim iki değiştirimesi gerekir.
Yani o da çalışmasına izin ve eğer o inşaat bakın.
>> Siz gördüğünüz gibi, x bir kez 1 ve y kez 2 idi.
Ve ben bunu yazdırmak, x de 1 dir ve Y, 2 'dir.
Hmm, bu program görünmüyor Ben çalışmak istediğiniz şekilde çalışma.
Herkes bir çekim istiyor mu Bu olay neden tahmin?
Bu yolu ile bir ilgisi yoktur farklı şeylerdir
bellekteki farklı yerlerde depolanmış.
>> TAMAM.
Yani siz endişelenmenize gerek yok Şu anda bu konuda çok fazla.
Ama bu küp yerel biliyorum değişkenleri a ve b vardı,
burada işlev için, a ve b 'ilan ettik
mevcut değişkenler olarak küp içinde, o işlev.
Ama sen, parametreleri görebilirsiniz o Burada saklanan ediliyordu olarak alıyor.
Ama biz aslında değildi bir şey dönüyor.
Biz aslında x ve y değişen değildi.
Biz sadece a ve b değişen bulundu.
>> Biz içine x ve y kopyalanan vardı bir şey a ve b çağırdı.
Ama biz asla aslında x ve y kendilerini manipüle.
Görme Siz misiniz Bu nasıl oluyor?
Biz sadece bunu kopyalanan ettik mi üzerinde, ama aslında muhafaza değil
onlar bellekte nerede iz.
>> Ve şimdi bilgisayar oh, ettik, bakıyor
aracılığıyla bu şeyi çalıştırmak bu güzel işlev.
Ancak x ve y x ve y de bulunmaktadır.
Hiçbir ne oldu Onları gerçeği nedeniyle
bu parametreler bu ve yerel değişkenler
Farklı saklanır bellekte yerleştirin.
Ve bu daha üst düzey bir kavram olduğunu yaparız
derste daha sonra görmeye başlayabilirsiniz.
Ama sadece bu olduğunu biliyorum olabilir bir sorun
ve biz nasıl yollarını anlamaya edeceğiz derste daha sonra bu anlaşma.
TAMAM.
Pekala.
Yani geçen kavram, biz konum Gerçekten kapak olacak
Bu yararlı olacak pset bu hafta
ne denir vardır komut satırı argümanları.
Yani konuşmasında Rob geçti nasıl bu çalışmaları kısaca tür.
Esasen biliyorum ne zaman yazıyoruz
Bir ana işlevi gibi biz Geçmişte önce fonksiyonlarını yazdı
Biz int main boşluğu vardı.
Ve nedeni geçersiz vardı orada Bizim programlar vermedi çünkü oldu
Doğru, çalıştırmak için giriş değerleri gerekiyor?
Ben Mario'yu koştum, ben gerek yoktu Aslında sadece bir şey yazmak için
ben Mario koştu.
Ben daha sonra kullanıcı istemi olabilir.
Ama bu her zaman böyle olmayacak.
>> Örneğin, bu haftanın problemi, setleri
sen, o sorulması için gidiyoruz Programınızı çalıştıran ek olarak,
girmek istediğiniz gidiyoruz senin gibi düz bazı şeyler
programınızı çalıştırın.
Bu yüzden bunu bir yol olarak adlandırılır Bir komut satırı argümanı, hangi
bir argüman gibi doğrudan giriş yapabilirsiniz
Eğer programı çalıştırmak için çalışıyoruz olarak.
>> Yani bu gösterimi, bu oldukça karmaşık görünümlü
ama gerçekten bu değil zor. Yani int main--
Bu sadece ana işlevi var.
Argc virgül dize argv parantez içine.
Yani söylüyor tüm bu olduğunu int argc-- tüm bulunuyor söylüyorum
olanların sayısı olmasıdır Bilgisayar beklemesin argümanlar.
>> Gerçekten Yani bir şey izlemek için önemlidir
Programınızın fiziksel adıdır bu argümanlar biri olarak sayar.
Benim program istedim eğer öyleyse artı bir ilave komut satırı çalıştırabilirsiniz
argüman, aslında ben iki tane var olacak.
Argc aslında iki olacak.
Ve sonra dize argv bracket-- yaptığını tüm
bana bir veriyor var dizeleri dizisi
Sadece görüntülemek ve kaydetmek ne olacak Bu komut satırı argümanları tüm vardır.
>> Yani, örneğin, ben bu var istedim Program, doğru, Dosyası Çıkış ./copy?
Bu sadece tipik bir Linux komut var.
Aslında ne argc nedir?
Kaç komut satırı argümanları Bu aslında var?
Bütün bu yapar bir kopyasını yapmak olduğunu bir dosya adının bir infile
ve kopyalar içine başka bir dosya, değil mi?
Hepsi bu yapıyor bulunuyor.
Gördüğünüz gibi, ben tek bir satırda yapıyorum Aslında programı ihtiyaç duymadan.
>> Bu durumda, bizim argc nedir?
Biz Kaç argüman var?
HEDEF KİTLE: Üç?
ANDI PENG: Biz tam, üç var.
Bu yüzden çok sezgisel Sadece bu sadece olduğunu düşünüyorum
infile ve outfile.
Ama biliyoruz ki fiziksel ismi Program biri olarak sayar koşuyoruz.
Bu yüzden, bu durumda, argc aslında üçtür.
Peki, argv 0 nedir?
, Tüm hatırla komut satırı argümanları
dizeleri bir dizi içinde depolanmıştır.
Yani ben bunu erişmeye çalışırsanız ne dirsek 0 give me argv ki?
>> HEDEF KİTLE: [duyulamaz].
ANDI PENG: Kesinlikle.
Bana nokta verecek çünkü o, kopya slash
0 elemanı, Benim dizinin ilk öğesi.
Ne argv 1 dersiniz?
>> HEDEF KİTLE: infile.
ANDI PENG: infile, kesinlikle.
Ne argv 2 dersiniz?
HEDEF KİTLE: Dosyası.
ANDI PENG: Dosyası.
Bu artık biraz zor.
Siz ne düşünüyorsunuz argv 3 beni vererek olacak
Bunu yazdırmak için çalıştı?
>> HEDEF KİTLE: [duyulamaz]?
>> ANDI PENG: Eğer bir el kadar var mıydı?
Evet.
>> İZLEYİCİ: bir alternatif.
>> ANDI PENG: Kesinlikle.
Yani derste hatırlıyorum biz Bir yarış şey sonunda sahip
null sonlandırıcı aradı?
Biz de bu işe alırsınız ileride sınıfta.
Ama gösterimde olduğunu biliyorum, yol bilgisayarınız
bu sonu olduğunu bilir dizinin buna olmasıdır
null denen birşey koyar terminatör veya çizgi sıfır.
>> Yani argv 3 erişmeye çalışırsanız, Bu çizgi 0 vurmak için gidiyoruz.
Bu hileli bir soru bile fazla.
Ne argv 4 hakkında?
Yani bu geçmiş boş sonlandırıcı olduğunu Bizim dizi sınırlarının geçmiş.
Gidiyor sen ne düşünüyorsun Biz bunu çalıştığınızda ne?
>> HEDEF KİTLE: [duyulamaz]?
ANDI PENG: Üzgünüm?
Bu biraz daha yüksek sesle söyle?
>> HEDEF KİTLE: [duyulamaz].
ANDI PENG: Evet.
Yani adıdır büyük olasılıkla alırsınız alanı.
Ama bu argv biliyorum 4-- Bu erişim yapmanıza olanak sağlar
Bilgisayarınız yıllarda yerler hafıza size gerçekten
Çünkü, dokunaklı olmamalı Şu anda ne olduğunu argv biliyorum.
Bunu büyüklüğü 3 bir dizi olduğunu biliyorum Bu nokta kopyalama, infile ve outfile vardır.
>> Bunun ötesinde şimdiye kadar gitmeye çalışırsanız Eğer null Terminatör geçmiş olduğunuzu,
Bilgisayarınızda büyük olasılıkla vardır argv 4 saklanan bir şey.
Ve gerçekten olmamalı , argv 4 içine erişime izin
Eğer bir dosya var, çünkü dolap ve sadece sensin
Bu üç raflarında erişim izni.
Ama ötesine ulaşmaya çalışırsanız Eğer izin verilen nerede raf,
Eğer karıştırmasını başlatmak için gidiyoruz Bilgisayarınızın belleğinde başka şeyler.
Bu gerçekten, gerçekten kötü olacak.
Yani sadece biliyorum.
Senin için çok dikkatli olun sadece rastgele başlamaz
Bir dizideki eleman erişen o oluşturmak istediğini değildi.
Evet.
>> TAMAM.
Bu yüzden başka yapacağız Burada, terminal örneği.
TAMAM.
Hızla konferansta Rob Yani Geçen gün gitti
Bu örnek üzerinden, nerede vardı int main int argc dize argv
braketleri, ben olduğumu söylüyor hangi Komut satırı argümanları zorunda olacak.
>> Argc eşitse o vardır 2-- hatırlıyorum eşittir,
eşittir karşılaştırma anlamına eşittir.
2 eşitse, o zaman ben merhaba yazdırmak için gidiyoruz,
ne olursa olsun ilk Dizinin elemanıdır.
Else baskı, merhaba dünya.
Bu ne oluyor esasen olur?
Birisi sadece açıklayabilir İngilizce bu program ne yapıyor?
Evet.
>> HEDEF KİTLE: Birisi bir komut yazdıysanız ve onların adı ve soyadı dedi,
Sadece yazdırmaz tek ve merhaba demek ilk
ne olursa olsun ilk adıdır.
>> ANDI PENG: Tamam, hadi onu çalışmasına izin verin.
Ben olsaydım Yani örneğin, yapmak Bu dosya merhaba aşağıdaki amaçlara merhaba yapmak
Beni girmek ne istiyorsun aşağıdaki amaçlara?
>> HEDEF KİTLE: İlk ve son isim.
>> ANDI PENG: Ad ve soyadı?
Spaces?
>> HEDEF KİTLE: Evet.
>> ANDI PENG: Biri söyleyebilir Bana hemen, argc nedir?
Sadece orada?
Üzgünüz, özür dilerim.
Beni geri dönelim.
Kaç komut satırı argümanları Siz gerçekten göremiyorum mudur.
Ama yakınlaştırmak için çalışacağım.
Deniyorum.
Evet, doğru, üç var?
Bu merhaba nokta çizgi var, Andi, ve o Peng var.
>> Yani siz bu ne düşünüyorsun Program dışarı baskı olacak?
Ah.
Ah özür dilerim.
Yanlış isim.
O merhaba dünya, yazdırmak ediyor.
Herkes açıklamak isteyen var mı neden oluyor?
Evet?
>> HEDEF KİTLE: [duyulamaz].
ANDI PENG: Kesinlikle.
Yani burada, koşullu argc 2'ye eşit eşitse vardır.
Yani sadece durumda var ki İki komut satırı argümanları.
Sonra yazdırmaya gidiyorum, merhaba, ne olursa olsun.
Ama başka, ben gidiyorum Sadece merhaba dünya yazdırın.
Yani birisi istiyor bana bir örnek vermek
nasıl ben aslında mümkün olacaktır bu argv 1 değerini yazdırmak için olsun?
>> Burada giriş ne olurdu?
Sadece bir şey, değil mi?
Dot merhaba zaten Çünkü İlk argüman olarak sayar.
Ben sadece bir tane daha var.
Ben sadece Andi yaparsam Yani merhaba dot.
Merhaba, Andi.
Herkes anladı mı neden oluyor?
Evet.
>> HEDEF KİTLE: Yani arasındaki boşluk Komut LINE o [inaudible] nedir?
ANDI PENG: Hayır
Komut satırında boşluk Yani argüman, x bilgisayarınızı anlatmak için
Bu bir yeni dize başlangıcıdır.
Yani dize argv o mağaza var-- senin komutları satırı argümanları tüm
dizeleri.
Ve böylece komut satırında boşluk , yaptığı tüm size olan argument--
bu bir dizenin sonunda ve başka geçmek için zamanı geldi.
>> Evet.
Bu oldukça önemli olduğunu senin pset, sen çünkü
Bu test olacak.
Yani herkes var mı Bu konuda herhangi bir sorunuz var mı?
Tamam iyi.
Evet?
>> HEDEF KİTLE: Yani neden seni olur yerine tamsayı argüman calc koymak
İstediğiniz zaman içinde [inaudible] olurdu ek bilgi yazmak için
[Duyulamaz]?
>> ANDI PENG: Evet, kesinlikle.
Bazı programlar gerekecektir girdi bir komut satırı argümanı ile
o geçer ve bu için kullanır.
Evet.
HEDEF KİTLE: Peki, eğer [duyulamaz]?
>> ANDI PENG: Peki, ne var ne Benim programda daha sonra değiştirmek için?
>> HEDEF KİTLE: Sadece 3.
>> ANDI PENG: Neden olduğunu oluyor sizce?
>> HEDEF KİTLE: [Duyulmaz] çünkü.
>> HEDEF KİTLE: Sen olurdu [duyulamaz] 2 olarak değiştirin.
>> İZLEYİCİ: 1 ve 2.
ANDI PENG: 1 ve 2, tam.
Yani bu durumda, muhtemelen olur İki Printf statements-- istiyorum
argv 1 baskılı on ve argv 2 baskılı biri.
İşte.
Aslında gerçekten hızlı yapabilirsiniz.
Orada sen gitmek.
Ah.
Değil tamamen ne istediğini.
Ama etrafta siz karmaşa ile eğer biçimlendirme, o çıkacaktır.
Evet.
Güzel.
Ben biz zamanında biraz kısa olduğunu biliyorum.
Ama ben sadece hızlı bir harcamak için gidiyorum yararlı-- geçiyor birkaç dakika
HEDEF KİTLE: İki dakikanız var.
ANDI PENG: İki dakika var?
Teşekkür ederim.
Bazı hızlı pset ipuçları.
Bu pset Yani, ben son derece tavsiye Dediğim gibi, herkes spec okumak için.
Üç programs-- bir yazılı olacak , caesar.c adlı bir, initials.c adı
biri olarak adlandırılan vigenere.c.
Bazı önemli ipuçları olduğunu Siz gerçekten istediğiniz
böylece zihinli tutmak için Bu işlevi vardır
Söylemek gibi bir trois, atoi-- denir.
Bu eğer Belirsiz Aslında bunu nasıl söylüyor.
Ama bütün o giren ediyor, yapıyor.
Bu bir int bir dize dönüştürür.
Yani ben tamsayı ASCII temsil eder.
Bu sadece ASCII dönüştürme ediyor değerler değerler tamsayı.
Yani, bu mağazalar dizisi argv hatırlıyorum senin komutların tümünü arguments-- hat
o dizeleri olarak hepsini saklar.
Ve böylece muktedir istiyorsanız bunlardan biri bir tamsayıdır haline gelmiş,
Eğer zorunda gidiyoruz Burada bu değeri kullanmak için.
>> Modulo, biz kapalı gibi önceki sınıf bugün,
Eğer sahip olmanızı sağlar Eğer ne varsa kalanı.
Yani eğer biz gerçekten, gerçekten var Sezar büyük sayılar,
ne sonu varsa Vigenere bir dize?
Nasıl mümkün olacak etrafında sarmak almak için?
Ben z vurdu ve ben isterseniz Bir geri gitmek için,
nasıl almak için gidiyorum etrafında sarmak için?
Muhtemelen kullanmak istiyorsanız Orada bir yerde modulo.
>> İkincisi, dolaşmak kitaplığınızın. ctype.h.
Yani biz yeni bir kütüphane var.
Gerçekten, gerçekten bir sürü bulabilirsiniz kullanışlı functions-- isupper, islower,
toupper, tolower, isalpha, vesaire.
Çok yararlı olacaktır Tüm fonksiyonlar Eğer anlamaya çalışıyoruz,
Bu karakter küçük harf nedir?
Ben bu dönüştürmek nasıl Bir büyük harfe dize?
Bütün bunlar, çok olacak senin pset için çok yararlı.
TAMAM.
>> Ofis saatleri bu gece 08:00 kadar TEAL sınıfta 11:00 yarın
yanı sıra Çarşamba ve Perşembe gecesi olarak.
Ofis saatleri Commons vardır.
Son derece Sizi önermek tüm hemen başlamak
Bunu olmak istemiyorum çünkü Perşembe gecesi sorunları var çocuk
olan senin pset göndererek ve gibi, ben ne yapacağımı bilmiyorum.
Ben bitirdim, başladı, ben sundu.
Kendinize bazı oda vermek çalışın, Kod sorunlar her zaman ortaya çünkü.
Sen emin olmak Kendinizi vermek
zaman bir çok muktedir psets tamamlayın.
Güzel.
Burada asmak gerekir.
>> HEDEF KİTLE: Bu zaten online mı?
ANDI PENG: Bu eğer ben bilmiyorum Online zaten, ama bu olacak.
Herkes ben buraya asmak edeceğiz Zaten herhangi bir sorunuz vardır.
Geldiğin için teşekkürler.