>> [MÜZİK OYUN]
JASON HIRSCHHORN: Tamam, herkes.
Bölüm hoşgeldiniz.
Bu bizim çok CS50 olduğunu ilk süper bölüm.
Tüm gelecek hafta bildiğiniz gibi Düzenli bölümler, başlayacak
ama bu hafta hepimiz beraberiz.
>> Kendimi var.
Benim adım Jason.
Ben Bilgisayar Bilimleri öğretim görevlisi değilim.
Biz CS50 başkanı TA var Andi var.
Ve Scaz Profesör Brian Scassellati, O Bilgisayar Bilimleri profesör.
>> Biz Yale'de CS50 kafaları vardır.
Her zaman e-posta gönderebilirsiniz Bizi heads@cs50.yale.edu.
Biz dersler olacak.
Biz ofis saat olacak.
Herhangi bir şey varsa biz Sizin için yapabileceğim bir şey sen lüzum
Bize ulaşmak için çekinmeyin.
>> Peki bugün yapacağız?
Ya da daha önce, ne Bu hafta geliyor?
Yani mesai saatleri, Pazartesi, Salı vardır Çarşamba ve Perşembe, 11:00 08:00.
Web sitesinde bir zamanlama var.
>> Bölümler Ben, bahsedilen gibi Gelecek hafta başlıyor.
Ve bu hafta ne bulacaksınız senin bölümdür zaman, ne gün,
ve TA kim.
>> Sorun Set 1'de Perşembe nedeniyle Geç gün öğle vakti öğlen, Cuma.
Evet, dokuz geç gün var.
Ve dokuz problem setleri vardır.
Ve sadece birini kullanabilirsiniz Sorun set başına geç bir gün.
Evet, aslında, bütün sorun setleri öğlen Cuma kaynaklanmaktadır.
Hepsi bu.
Ayrıntılar müfredat üzerinde Tüm bu.
>> Her Cuma, biz öğle yemeği var.
Biz bu büyük yapmak ister Tabii biraz daha küçük hissediyorum.
Yani RSVP için buyrun.
Adam ile ücretsiz öğle yemeği sınıf arkadaşları ve personel.
cs50.yale.edu/rsvp.
>> Bütün bunlar o Ben ekranda var
ve daha bulabilirsiniz cs50.yale.edu veya cs50.harvard.edu, eğer Harvard'a gitmek
ve bu çevrimiçi izliyor.
>> Ayrıca bu web sitelerinde, orada Sizin için kaynakların bir ton vardır.
Her ders sadece video var Dersin değil, aynı zamanda notlar.
Birileri izleyecekler ders ve sizin için notlar alın.
Yani sadece ödeme yapabilirsiniz konferanslar sırasında dikkat,
veya kendi notlarını kullanabilirsiniz / OUR Kendi notlarınızı tamamlamak için notlar.
>> Slaytlar çevrimiçi vardır.
Kaynak herşeyi code-- David konferansta gider
veya Scaz ki ders gider Kaynak kodu kullanılabilir çevrimiçi
yanı sıra, ben gibi, video bahsetti.
>> Kesitler, aynı şekilde, tüm çekilecek.
Bu slaytlar Tüm sunulacak.
Bu kod tüm olacak Senin için kullanılabilir.
Web sitesinde nerede şort vardır CS50 personeli beş ila 10 harcamak
Sizin için konular geçiyor dakika.
Bunlardan bazıları zaten var Sorun setleri karşılaştı.
>> Ofis saatleri, ben de belirtildiği gibi, pazartesi aracılığıyla Perşembe, 11:00 08:00.
CS50 Çalışması fantastik bir kaynaktır.
Uygulama sorunları vardır, örnek slaytlar, bilinen hatalar
Öğrenciler çalıştırmak ister ki esasen her konu için biz
Bu derste ele alınacaktır.
>> Ve nihayet, bu slaytta en azından Reference50
hangi bilgiler verir C tüm fonksiyonları üzerinde
Hiç belki umut olabilir kullanmak ve çok, çok daha fazla.
>> Yine de dot dot dot olduğunu Ekranın alt
Hatta orada olduğunu belirtmek için Bu iki web sitelerinde daha fazla kaynak:
cs50.yale.edu, cs50.harvard.edu.
>> Peki, bugün yapıyoruz?
Peki, ilk ben vereceğim Eğer kaynaklara bakmak.
Zaten o bir yaptım.
Bize bak.
>> Şimdi, biz üzerinden gidiyoruz C. veri tipleri ve operatörler
Sonra Andi buraya gelecek ve C kütüphaneler üzerine gitmek, Printf (),
Zaten hangi bir işlev tanıdık ya da hızlı çok olacak
tanıdık.
Ve ayrıca üzerinde gidersiniz koşul ve döngüler.
>> Ve son olarak, Scaz CS50 kimliği üzerinden gidecek.
Eğer güvercin olmadıysanız Zaten Sorun Set 1,
hem de nasıl kullanılacağı gibi Terminal ve yararlı komutlar
ve daha sonra bazı demolar vermek ve CS50 kimliği uygulama kodlama.
>> Ben bu atlamak önce Bu tarafta içerik,
Herkes bugüne kadar herhangi bir sorunuz var mı?
Büyük.
TAMAM.
Vites değiştirme.
>> [Vites değiştirirken]
>> Bu beni kayması oldu manuel arabada vites.
Yani C veri türleri, sadece olamaz değişken, x ve hat 10 üzerinde olması var,
bir tamsayı, belki 1 numaralı, hat 20, ondalık sayı 10.5,
ve daha sonra bir kaç satır Daha sonra bir dize, ben CS50 seviyorum.
>> C, değişkenler sadece olabilir bir şey, ve tek bir şey.
Ve böylece onlara türleri vermek zorunda.
Ve bu gemide, biz türlerinin bir listesi var.
Karakter vardır ve bunların karakterler için stand.
Böylece bir harf A, B, C var, Ayrıca bir boşluk olabilir D.
ya da, aynı zamanda olabilir Yeni bir satır karakteri.
>> Sadece tamsayı vardır numaraları, tüm Numaraları veya tamsayılar
rather-- ama hiçbir ondalık.
>> Ondalık için biz var kayan nokta sayıları.
Kayan nokta sayıları ondalık ile sayılardır.
>> Daha sonra olan, uzun ürünler vardır esas olarak daha uzun tamsayılardır.
Uzun fark edeceksiniz Bir int 4 ise 8'dir.
Ben bir saniye içinde o kadar alırsınız.
Uzun bile saklayabilirsiniz, çünkü bu int fazla tamsayılar saklayabilirsiniz.
Çift uzun bir şamandıra olduğunu.
>> Ve nihayet, biz var bir tür dize
Bu büyük ihtimalle daha önce kullanmış.
Eğer hashtag içeriyorsa Kaynak dosyada içerisinde includeCS50.h,
sonra bir dize türü kullanabilirsiniz.
Aslında C. yerleşik değil
>> Birkaç diğer tür de vardır.
Fakat bu ana olanlar ile vardır hangi kullanmak ve karşılaşacak.
C gibi yine bahsettiğim, Her onu variable--
yalnızca bir tür ve yalnızca bir tür olabilir.
C statik değildir, çünkü o aksine yazılı dil,
dinamik yazdığınız dillere nerede bir değişken oluşturursanız
Eğer saklanan ne değiştirebilir Bu sizin programda gitmek gibi.
Burada sağ el Over Yan, farklı boyutları vardır
bayt veri Bu tür.
Yani karakter 1 byte olduğunu.
İşte 8 bit var.
Ve bu 8 çünkü gelir bit sekiz 0s ve 1'leri var.
Biz ilk bu demolar gördüm Bu ikili ampuller ile hafta.
>> 8 bit ya da 1 byte ile, biz 0'dan 255'e kadar sayıları temsil.
Sağ.
8 bit 0 ise 0 olduğunu.
Ilk bit 1 ise, bu numara biri, ve böylece, 255 kadar tüm yol.
Ve bu karakterler yapabilirsiniz için bu yüzden esasen bunlardan 255 kadar var,
ama hepsi kapsayacak şekilde bol bulunuyor karakterleri biz kullanmanız gerekir.
>> Tamsayılar için, sen 0 olabilir ve ardından 32 2 var eksi 1.
Bunlar kaç seçenek vardır Eğer tamsayılar için var.
>> Uzun, sen 0 var 2 64 eksi 1.
Yani, çok, çok var uzun ürünler için daha fazla seçenek.
>> Dizeler, bu soru işareti var daha sonra bir çekişme var çünkü.
Evet.
Herkesin var söyleyebilirdi Onların koltuk kenarında,
gibi o soru işareti nedir?
Bu bir çekişme var.
Biz sonunda boyutunu kapsayacak dizeleri ve dizeleri hakkında daha fazla konuşmak.
Dize aslında Çünkü Eğitim tekerlekleri biri
Biz bu koymak başında ders
ve daha sonra take off üzerinde C dizeleri nedeniyle
aslında değineği vardır karakter dizileri için.
Fakat yine de, işte bir sonrası için çekişme.
Ben herhangi bir soru üzerine hareket etmeden önce, yorum, bu slayt ile ilgili kaygılar?
>> TAMAM.
Ben harika bir explainer olmalıdır.
Ayrıca programlama yaparken, Bu operatörler kullanmak için gidiyoruz.
Basit yapabilirsiniz gerçekten basit işaretler işlemleri, hangi ile muhtemelen konum
zaten çok tanıdık.
>> Örneğin, sağdaki taraftaki biz eklemek görüyoruz.
Eklemek için, sadece bir Artı işaretini yapmak.
Ve böylece aklınıza gelebilecek iki değişken x ve y.
Eğer kod x + y yapabilirsiniz.
Belki size söylemek istiyorum ki-- numarası 7 ve 3,
Bunu saklamak istediğiniz Değişken olarak adlandırılan toplamı.
Sen türü, alan için int yapabilirsiniz toplamı, değişken adı, 7 + 3 =;
>> Ne toplamı o mağaza olur?
Herkes?
Ben toplamı = 7 + 3 olsaydı.
Özetle ne saklanabilir ki?
Sadece bunu haykırmak olabilir.
HEDEF KİTLE: 10.
>> JASON HIRSCHHORN: 10!
Bu tam olarak doğru.
Özetle hakkında ne = 7-3, Ben sadece bu çizgi işaretini kullanın.
Ne saklanabilir olacak?
İZLEYİCİ: 4.
Jason HIRSCHHORN: 4.
Sum muhtemelen yanlış adıdır bu değişken, ancak 4 saklanır.
>> C çoğalmaya, küçük kullanın Yıldız karakteri, bir x kullanmayın.
Bölmek için, İleri kullanın Değil bölünme sembolü Slash.
Ve modulo için, Yüzde sembolü kullanın.
>> Yani ben int z = görmek istiyorum diyelim % 7 3, z ne saklanabilir mi?
Yani, bu esas olarak var: modül ne yapar soran?
Herkes modül ne biliyor mu?
Evet.
y 4.
KONUŞMACI 1: kalan var.
JASON HIRSCHHORN: It is kalan Bölmek zaman.
Yani 3 bölü 7 2 kalan 1'dir.
Yani 1 saklanır.
>> Sen, çıkarma yaptı nasıl çalıştığını ama bu.
Bu modül operatörü böyle yapar.
Bir numara tarafından böler alır Size başka bir numaraya ve iadeler
kalan.
Yani yine% 7 3 çünkü, size 1 verir 7 2 1 kalan 3 bölü,
ve kalanı verir.
>> Hakkında en geri gidelim neler Bu bölünme işareti bir adım.
Ben yaptım 7 / does 3 bölü Herkes o dönecekti biliyor musun?
>> HOPARLÖR 2: 2.
>> JASON HIRSCHHORN: Neden 2 ve 2,333?
>> HOPARLÖR 2: Ben keser düşünüyorum Bütün sayıdan sonra kapatır.
JASON HIRSCHHORN: Yani Bu tam olarak doğru değil.
C, sen bölünmesini yaparsanız 3 bölü iki tamsayı 7,
bu cevabı aldığı Bu durumda 2,3333 sonsuza dek
ve o ondalık nokta bulur ve ondalık sonra her şey kapalı pirzola
ve sadece size 2 döndürür.
>> Ben 3 bölü 8 yaptıysam yüzden.
Aslında, biz biliyoruz Bu, 2.666 dönmek
ama o her şeyi kapalı pirzola ondalık, tüm keser,
ve sadece sizin 2 döner.
Yani 6 3'e bölünür, 7 bölünmüş 3 ile 8 3'e bölünür,
hepiniz 2 dönmek için gidiyoruz.
>> Herkes biliyor, ya da bir tahmin var mı, Aslında alabilir olarak nasıl
Tam cevap o ondalık istiyorum?
Evet.
Devam et.
KONUŞMACI 3: float kullanılsın mı?
JASON HIRSCHHORN: Ne demek istiyorsun?
KONUŞMACI 3: Dediğiniz Çünkü şamandıra numaraları için [duyulamaz]
JASON HIRSCHHORN: Doğru.
Yani, bu tam olarak doğru değil.
Şekil 7, bir tam sayıdır.
Ama bunu açmak istedim Bir kayan noktalı sayı içine
Bunu saklamak zorunda kalacak bilgisayara nedeniyle 7.0 olarak
gerçekten biz gördük stupid-- edilir PB ve J example-- ile
sadece tam yapacak ne bunu söylemek.
>> Yani 7 yazarsanız, o Bu tamsayı olduğunu düşünüyorum.
Eğer 7.0 yazarsanız bile biz se bu şeyler eşdeğer olduğunu biliyorum,
Bir gibi o davranır kayan nokta sayısı.
Eğer 7,0 yaptım bölünmüş yüzden 3 ile, veya 3.0 bölünür,
Şimdi, tamam, derdi Biz yüzen uğraşıyoruz.
Seni sonsuza 2.333333 dönecektir.
Ama gerçekten sonsuza kadar, çünkü Biz derste de gördüğümüz gibi,
Bu kayan nokta sayıları Tam kesin değildir.
>> Yani bu ondalık istiyorsun eğer, veya ondalık bir parçası,
o zaman onlardan biri use-- zorunda Bir kayan nokta sayı olmak zorunda
ve bilgisayar anlamak zorunda Bu sen bir kayan nokta olduğunu
değil, bir tamsayı ile ilgili.
O masada Herhangi bir sorunuz üzerine sağ tarafta, şimdiye kadar?
Ya da sol tarafı, sizin sol, sol tarafta.
Evet.
KONUŞMACI 4: Doğru.
Sadece normal gibi için tamsayılar, yapacağınız
write-- Eğer yüzer yazmak zorunda ki?
>> JASON HIRSCHHORN: Evet yani.
Peki, sen oluşturmak istiyorsanız bir şamandıra var değişken,
Eğer şamandıra söylemek gerekir z bir şey eşittir.
>> KONUŞMACI 4: Tamam.
>> JASON HIRSCHHORN: Ama ben istedim 3 bölü 7 yapmak ve bu ondalık olsun,
Ben şamandıra z = 7.0 / 3.0 ile yapacağını; ve Bu bana kayan nokta verecek
sayısı.
>> KONUŞMACI 4: Tamam.
>> JASON HIRSCHHORN: Ben yaptım 3 ile int z = 7 / gibi bir şey,
Bu bana bir tamsayı verecek, Bu çünkü tüm tamsayı.
bu mantıklı mı?
>> KONUŞMACI 4: Evet.
>> JASON HIRSCHHORN: Tamam.
Büyük.
Bu tablo hakkında Başka soru?
Gerçekten mi?
Çok heyecanlıyım.
TAMAM.
>> Yani kullanacağı başka şeyler, çoğu zaman koşullar ya da döngüler halinde,
operators-- bu türleri Boole ifadeleri bu tür.
Öğrendiğimiz gibi, == ne olduğunu iki şey eşit olup olmadığını kontrol etmek için kullanın.
>> X == y, haydi Yani burada ben kontrol ediyorum Yine, x, 7'dir ve y 3 olduğunu varsayalım.
Yani, 7 == 3 yazdı ne olur bana dönecekti?
Bu doğru ya da yanlış mı?
>> HEDEF KİTLE: Yanlış.
JASON HIRSCHHORN: Tamam.
Ben bu bir tane alabilirsiniz herkes gibi hissediyorum.
Böylece herkes, bu ne dönecekti?
HEDEF KİTLE: Yanlış.
JASON HIRSCHHORN: Yanlış.
Büyük.
7 3 eşit değil.
Yani 7 == false 3 dönecekti.
Sen, bir değil eşittir işareti varsa yoksa ben 7! = 3, bu ne dönecekti checked?
HEDEF KİTLE: Doğru.
JASON HIRSCHHORN: Doğru.
Mükemmel.
Birileri çok empatik oldu sırt ve takdir ediyorum.
Sonra operatör daha az olması, veya daha az operatör eşit,
Büyüktür operatörü, büyük veya daha operatöre eşit.
>> Yani bir tane daha aklı kontrol.
Ben olsaydı 7 büyüktür daha ya da 3'e eşittir.
Ne dönecekti?
>> HEDEF KİTLE: Doğru.
JASON HIRSCHHORN: Doğru.
Evet.
O arka oda, arka tarafı Odanın, fantastik.
Bu birleştirebilirsiniz ifadeler size, hem de isterseniz
hangi mantıksal VE ile && Veya mantıksal OR hangi ||
||.
Ve şimdi sen iki test edebilirsiniz şeyler bu komik beraberken- mı?
Neden komik?
>> Ben isteseydim Yani, 7 olduğunu söyleyebiliriz 3 ve 2'den daha büyük 4 daha az?
Eh, 7 büyükse 3'ten, bu doğru.
2 doğrudur, 4 azdır.
Yani bu her şey doğru dönecekti.
>> Ben 7 test Eğer daha büyük 3 ve- olduğunu Ben sadece rasgele sayılar alıyorum var--
4 sıra, bu yanlış, 2'den olduğunu.
Yani doğru ve yanlış yapmak yanlış.
Ve sen gidebilirsiniz ve siz birleştirmek istediğiniz gibi birlikte pek koşullar.
>> Herkes herhangi bir sorunuz var mı, yorum, kaygıları bugüne kadar?
Ve ben fotoğraf çekmeye bazılarını görmek Ben takdir ekranında, beni evi.
Umarım, bu snapchat değil.
Umarım, bu notlar için.
Ama bütün bunlar gidiyor online olmak.
Yani gerek yok Bu fotoğraf çekmek.
Ben, her şeyi belirtildiği gibi Sizin için çevrimiçi satışa sunulacak.
TAMAM.
Ben almak üzereyim kulis, yani kimse yapar
bir şey söylemek istiyorum bundan önce?
Sorular?
>> [SESLER interposing]
>> JASON HIRSCHHORN: Ah, dur.
Siz de güzel.
TAMAM.
Ben dışarı etiketlemek için gidiyorum.
Haydi gidelim.
>> ANDI PENG: Biz yapacağız Şimdi garip bir mikrofon değişim.
>> JASON HIRSCHHORN: Ben Bu çıkarmak için gidiyor.
ANDI PENG: beyler destek için teşekkür ederiz.
Beni duyabiliyor musun?
İyi mi?
Mükemmel.
Güzel.
Bana sadece o sokmak edelim.
TAMAM.
Yani, bir dev gibi yapmak üzereyim bilgi şu an çocuklar üzerinde dökümü.
Ve merak etmeyin olursa olsun sen eğer her küçük çizgisini takip değil ne
Sana göstermek üzereyim.
Jason dediği gibi, her şey tamamen çevrimiçi.
Sadece biz tanıtmak için denemek için gidiyoruz kavramlarına herkes kapalı
Bu slaytlar bazı.
Yani sadece birlikte izleyin.
Endişeye gerek yok sen anlamak yoksa Her şey; Bununla birlikte, herhangi bir noktada, eğer
kayıp hissediyorum yükseltmek senin El, biz, hiçbir endişe durdurmak gerekir.
Güzel.
>> Yani David olan bir şey düşünmek Zaten tür konferansında söz
ve Jason tür alluded etti bugün bir kütüphane budur.
Yani programlama, biz bu işler kütüphaneler çağırdı.
Yerde, esas olarak, tüm Onlar sadece bir dizi vardır
işlevleri, yani bu temelde sadece kod
Zaten tarafından yazılmış başkası hepimiz can
Programlarımızın içinde kullanın.
>> Peki nasıl normal yapar kütüphane çalışması, değil mi?
Kitaplık kapıdan girin.
Bütün bunlar var kitaplar çekin
ve bilgilere erişebilirsiniz Bu kitapların içinde.
Programlamada Aynı şey.
>> Sen zaten bir kütüphane var diğer insanlar tarafından yazılmış.
Ve yolu olabilir ki, programcı veya bir öğrenci olarak,
Bu kütüphane erişebilir hashtag # include geçer.
>> Örneğin, C biz de Üç tane C- en
genel olarak üç Cı standart kullanılan , giriş / çıkış kitaplığı libraries--
dize kütüphane, ve matematik kütüphanesi.
>> İlk içinden Yani çift ​​sorun, setleri
Bu üç olacak Bu öncelikle kullanıyoruz.
Zaten David Yani derste açıkladı,
Standart I / O kütüphanesi veya Standart giriş / çıkış kütüphanesi
tam olarak bunu yapıyor.
Bu girdi, kodunuzda, izin verir kullanıcı ve çıkışı herhangi bir şey
ekrana, esas itibariyle ekrana yazdırmadan.
>> Ve böylece her zaman, herhangi bir fonksiyonları kullanmak Örneğin fonksiyon printf () ya sahip
Biz sonraki slayta gitmek için gidiyoruz standart eklemeyi unutmayın I / O
Kütüphane veya başka gitmiyorsun printf () fonksiyonunu kullanmak mümkün.
, Sen Çünkü programcı olarak Aslında, bu işlevi yazdı asla
Sadece birini kullanıyorsanız Kendi kodu içinde başka kod.
>> Bu mantıklı herkes yapar?
Güzel.
>> Ve sonra biz aslında üzerine olsun string.h kütüphane ve math.h
Sadece kütüphane anlamına .h kütüphane, diğer kütüphaneler olduğunu sonunda olacak
senin kodu içinde kullanıyor.
>> Bununla birlikte, amaçlarla Bu kütüphane, biz de
daha da sahiptir, bu class-- arasında have-- Ne CS50 kütüphane olarak adlandırılır
cs50.h, nerede, için senin inceleme oluşturduk
Birçok önemli ve yararlı fonksiyonlar.
Böylece siz bir programcı kapalı omzunda olabilir
Ne biz zaten o kadar yazdık Size bu işlev en uygun
kullanımınız için.
>> Ben bir çift kaplama olacak işlevleri, yaygın olarak kullanılan
ancak bu olduğunu biliyorum Tüm googleable çevrimiçi.
, Çekinmeyin CS50 kütüphane yukarı çekin ve o zaman orada tüm işlevlere sahiptir.
Evet.
>> KONUŞMACI 5: olmasa Yani yazılım kullanarak bu
bize sağlanan sınıf yapar
Biz indirmek ve bulmak zorunda kalacak anlamına Bu başlık kendimize dosya ve anlatmak
o bilgisayar?
>> ANDI PENG: Büyük bir soru.
Kesinlikle.
Yani sen değilsin eğer gibi Bir kütüphanede fiziksel olarak,
sizin için hiçbir yolu yoktur Aslında gidip erişmek.
Aynı şey Yani C Eğer programlama
Eğer bizim kullandığınızdan emin olmak gerekir Cihaz kütüphanesi zaten çünkü
Bunun içine dahil edilmiştir.
Ve sonra hashtag zaman #include, orada kütüphane en.
Evet.
İyi soru.
Herkes iyi?
Güzel.
Pekala.
Bu yüzden, vurmak için gidiyoruz esas olarak, ne
İlk fonksiyon o biz programcılar gibi
Bizim kodu içinde kullanıyor olacak.
Bu printf () fonksiyonu çağrılır.
Yani, printf () fonksiyonu, ben ettik olarak Zaten son slayt dedi,
Standart I dahildir G / Ç, Standart giriş / çıkış, kütüphane.
>> Eğer using-- ne olursa olsun Yani emin olun oh, bana lazer alayım pointer--
zaman kullandığınız printf () fonksiyonu,
I / O standardı dahil etmek zorunda Kütüphane ya da başka, sen derlerken
Eğer bir hata almak için gidiyoruz bilgisayar gibi olacak, çünkü
printf () nerede oh bilmiyorum, Bana söylemediğin nerede printf ()
olduğunu.
Peki printf () dahildir Standart I / O, bu yüzden) (printf kullandığınızda,
buna sahip emin olun senin kod yukarıdaki satırı.
>> Yani, örneğin, printf () Burada bir fonksiyonudur.
Bütün yaptığı baskı dışında bir şey olduğunu kullanıcıya parantez içinde.
Herkes bir bıçak almak ister misiniz Kod hakkının ne bu satırda
Burada yazdırmak için gidiyor?
Bu nedenle, cevap ekranda var.
Herkes?
>> VERDI: Alt.
>> ANDI PENG: Verdi, neden gitmiyorsun önde ve tüm deyimi demek?
>> VERDI: Merhaba, benim adım Andi ve ben 20 yaşındayım.
ANDI PENG: Ah güzel.
Bu satırı biz gidiyoruz Yani Benim adım Andi ise, Merhaba, çıktısını
ve ben, 20 yaşındayım hangi Gerçek bir ifadesi aslında.
>> Sözdizimi.
Sözdizimsel konuların Yani çift o Siz biliyorsunuz emin olmak istiyorum.
Kurlar.
Çift tırnak söylemek Bilgisayar içerde herşey
basılacak gidiyor.
>> Teneke içindeki herşey sadece tam olarak nasıl olacak
Eğer hariç, bunu yazın yaygın sonunda
Biz dahil etmek istiyorum gidiyoruz Bir hash-- oh sorry-- bir çizgi n.
Yani bir çizgi n.
>> Herkes bir tahmin almak istiyor mu bizim kod ne yaptığını?
Evet.
KONUŞMACI 6: Yeni bir satırda koyar.
ANDI PENG: Kesinlikle.
Yani bunu yapar hepsi ne olursa olsun izin
Bundan sonra, bu açıklama sonrasında, Yeni hat basılacak.
Eğer yazarken Böylece senin Kod rastgele şeyler yok
sonuna kadar tacked Eğer istemiyorum.
O her şeyi alır düzgünce bir satır yazdırılır
ve sonra biz aşağıdaki satırda başlar.
>> Herkes ne anlama hatırlıyor mu biz kodlama yaparken noktalı virgül nedir?
Evet.
>> KONUŞMACI 7: Açıklama.
>> ANDI PENG: Üzgünüm?
>> KONUŞMACI 7: deyimi sonlandırmak mı?
>> ANDI PENG: Evet.
C, ya da herhangi bir programlama Yani dil, noktalı virgül
Bir programlama hattının ucunu temsil eder.
Yani, örneğin, İngilizce biz dönemini kullanmak demek, oh bu uç bir cümledir.
Programlama, aynı şey, biz var bir noktalı virgül satır sonunu belirtmek için.
Çoğu kez, ne zaman sen program başlıyor,
Sizi fark edeceksiniz noktalı virgül eklemeyi unutmayın
ve sonra çalıştırmayı deneyin sizin Kod ve işe yaramıyor.
Ve sen Ah, gibisin, I do not bu çalışma gerektiğini neden biliyor.
>> Şansını muhtemelen unutmuş olan noktalı virgül ya da bir dirsek falan
bir yerde.
Yani, hatırlamak önemlidir.
Güzel.
Pekala, ellerin gösterisi, nasıl Burada birçok kişi hiç var
AP Bilgisayar Bilimleri veya alınan Daha önce hiç Java programlanmış?
TAMAM.
Güzel.
Bu geçerli olmayacaktır Daha sonra, ancak Java, sen
System.out.println denen bir şey var C. var olmayan
>> , Ne zaman sizi C Yani değişkenleri eklemek istediğiniz
şey içine istediğiniz var, yazdırmak için
Belirli bir sözdizimi kullandığımız için gidiyoruz.
O denir esas placeholding--
Biz yerinde tutucular eklemek tamsayı veya değişken
Biz yazdırmak istediğiniz.
>> Siz gördüğünüz gibi dahil ettik yeni bir kütüphane başlığı buraya dosya.
CS50 kitaplığı.
Ve bu CS50 kütüphane içinde bulunan Biz kullanarak olacak ortak bir işlevdir
Bizim ders GETINT denilen ().
>> Herkes bir bıçak almak istiyor mu GETINT () muhtemelen ne yapıyor olabilir.
>> HEDEF KİTLE: [duyulamaz]
>> ANDI PENG: Üzgünüm.
Seni duyamadım.
Maddie, herkes.
Maddie: Oh, ister bir tamsayı için teşekkür ederiz.
ANDI PENG: Kesinlikle.
Yani bu fonksiyon, başka zaten işlevi
başkası tarafından yazılmış biz şimdi çağırıyoruz olabilir.
O Tüm Eğer kullanıcı istemi ise, Eğer kodu olarak istediğiniz her türlü giriş
çalışan ve neyse saklar olduğu Bu durumda biz GETINT () konum - ing,
böylece biz demektir bir tamsayıyı elde edilir.
>> Ve biz saklamak için gidiyoruz başka bir tamsayı
biz sadece çağırdı yaş yaptık.
Herkese O mantıklı?
Güzel.
>> Yani şimdi bu tamsayı depolanan ettik, Biz kullanıcıdan istenir ettik,
Bu değişkende, biz ettik yaş olarak adlandırılan int türünde oluşturulan
biz önde ve yeri gidebilir bizim printf () fonksiyonu.
Yani printf genellikle sözdizimi () 'dir Bu her yerde gerçek fiziksel olarak
çizgi bu tamsayı eklemek istediğiniz, Eğer, orada o sembol yapmak
ile yüzde sembolü, İstediğiniz değişkenin türü.
>> Yani bu durumda yaş bir tam sayıdır.
Yani dahil gidiyoruz % i tamsayı çünkü.
Ve sonra sonra senin Açıklamada, sen gidiyorsun
Virgül ve yapılacak değişkenin adı.
>> Yani burada biz yazdırmak için gidiyoruz dışarı Merhaba, benim adım Andi ise,
ve ben boş yaşındayım.
Sorry--, Hashta-- veya ne olursa olsun ben girişi ile yaş.
Yani eğer ben giriş vardı Burada benim GETINT 20 (),
o aynısını yazdırabilirsiniz olacaktır.
Ama ben bir şey girdi istedim Başka, belki 40 veya 45 gibi,
o zaman bu yansıyan görürdünüz buna göre bir kodda olabilir.
>> Yani bu bir örnektir şey hangi
o yazdırır ve görünüyor Eğer aynı şey sanki,
ama başlık altında Aslında orada bilgisayar
çok farklı şeyler oluyor.
Güzel.
Pekala.
Bu yüzden birden çok değişken ne isterseniz?
Çok kolay.
Aynı şey.
Biz de yeni bir işleve sahip Burada,) (getString olarak adlandırılan
Ayrıca, CS50 kütüphane dahil öyle her kullanıcı istemi olduğunu
bir dize için karakter sadece bir dizi,
yani bir cümle gibi veya bir isim gibi.
>> Yani bu durumda, biz iki olurdu Dize ve% i için tutucuları% s
tamsayı için.
Ve biz takip gidiyoruz Bu iki değişken tarafından
Biz sırayla, dahil edilmesini istediğiniz Onlar cümle içinde ortaya çıkabilir.
Yani, örneğin, benim adım Boş, ben orada bir isim istiyorum
bu yüzden ilk isim olacak.
Ve sonra daha sonra ben istiyorum yaş, yaş ikinci istiyorum.
Ve bu yüzden, Merhaba, giriş isteseydi benim adım Andi ve ben 20 yaşındayım.
Ben Andi ve 20, girilen Eğer Aynı şey basacaktır;
Ancak, şimdi iki var sakladığınız adı değişkenler olarak Int.
Evet.
>> KONUŞMACI 8: Bu olur Eğer açık varsa çalışabiliyor
isim ve sonunda yaşı?
>> ANDI PENG: Evet.
Bu gerçekten iyi bir soru.
Çok uzun lafın kısası, hayır.
Çünkü adı ve age-- neler değişkenin türü adı nedir?
>> KONUŞMACI 8: String.
>> ANDI PENG: Peki değişken türü yaşı nedir?
>> KONUŞMACI 8: Tamsayı.
ANDI PENG: Yani burada biz bir yer tutucu var dize ve tamsayı, değil mi?
Yani bu geçiş olsaydı, Bilgisayar bilmek gitmiyor.
Bir dize denetlemek için gidiyor, ve bunu bir int vermek çalışırsanız,
ne gibi olacak , kafam karıştı seni beklemek
Ben olması gerektiğini söyledi bir int için bellek tahsis.
Ve tam burada, ne zaman bir tamsayı bekliyor
ve bunu bir ad verin ve bir dize yerine
o da çok kafa karıştırıcı olacak, onu Tam olarak gereken şekilde çalışmaz.
Yani burada, adlandırma ve sözdizimi kod çalıştırmak için çok önemli.
Herkes iyi?
Evet.
Maddie.
>> Maddie: İşte, biz baktım biliyorum Sınıfta örneklere, nerede sormak
Yaşınız ne, senin adın ne.
İşte, işte bu doesn't-- olurdu Bu kod çalıştırmak için olsaydı,
bunun için sorun olmaz?
Ama sadece giriş iki numara olur ve o zaman bu gibi çalışır ki?
>> ANDI PENG: Evet, kesinlikle.
Eğer bunun için istedim Yani Ekran, yaşınız girin
Eğer sadece bir printf () fonksiyonu ekleyebilirsiniz Bu, yaşınızı giriniz diyor
üzerinde.
Bu iyi bir soru.
Evet.
>> KONUŞMACI 9: Yani, zaten olacaktı GETINT dahil () [duyulamaz].
ANDI PENG: Hayır, aslında değil.
Yani bu yaptığı tüm adildir Boş bir ekran ister
Giriş şey kullanıcıya.
Bunu yazdırmak istiyorsanız, istediğiniz takdirde gibi bir kullanıcı söyler şey dışarı
Size, sonra bana yaşını verin () Kendinize olduğunu printf gerekir.
Herkes bu kullandığından Farklı şeyler için fonksiyon,
Eğer yaş saklamak olabilir Eğer adres saklamak olabilir
Eğer telefon numaralarını saklamak olabilir.
Ve bu yüzden kadar gerçekten senin çocuklar 'bireysel kullanımları
İstediğiniz için ne demek.
Evet.
>> KONUŞMACI 10: Yani, sadece, nereye netleştirmek için Size giriş adı ve yaşı yapmak
o% s yerine gösterir ki?
>> ANDI PENG: kullanıcı gibi mi?
>> KONUŞMACI 10: Evet, nasıl gibi ben bunu Ben Andi koymak yapmak nerede Durdur-- yapmak,
ve nerede 20 koyacağım?
>> ANDI PENG: Evet.
Yani olsaydı aslında bu kodu çalıştırın,
Aslında kaçmıyorum Kod, bu hemen hemen burada.
Ben kodu çalıştırmak için olsaydı, yapardım , kodunu derlemek dosyası yapmak,
kod çalıştırmak ve sonra orada olur Sadece girişine o benim için iki boşluk olacak.
Evet.
Çalarken Siz göreceksiniz kod kendiniz etrafında.
>> Biz taşımak için gidiyoruz tamam sonraki bölüme neler
Bugün kapsayan olacak.
Biz üzerine gitmek için gidiyoruz ne koşullu ifadeler vardır.
Siz hatırlıyor Yani eğer ve, ders hatırlayacaksınız
koşullu ifadeler, onlar hepsi kümesidir
Bilgisayarda için talimatlar hangi belli bir koşul doğruysa,
Eğer kod yürütmesine Bu durumun içinde.
>> Scratch-- Yani esasen bugünden itibaren büyük tema
Siz zaten olması her şeyin arkasında mantığı görüldü
biz koruyorsun.
Ve biz yapıyoruz hepsi bir şey çeviri
Bu çok kolay oldu Çizilmeye ve onu kodlama sert
sözdizimi kullanarak olacak C olan sınıfı için
Yani mantıklı, bu blok Orada kod o parçasıdır.
Evet.
TAMAM.
>> Biz de başka ... eğer bir girmek sadece ilave bir katman beyanı
eğer tablosuna karmaşıklık Bilgisayar bu bir göz nereye götürdüğünü
Bu koşul doğruysa ve yapmak görür Bu iki parantez içinde ne olursa olsun en,
else-- çok nazik varsayılan eğer gibi o condition-- bunu karşılamıyor.
Bu yolda bir çatal gibi.
Dışında yağıyor, ben koymak yağmur ceket, başka bir şey
Başka bir yağmur ceket koymayın.
>> Bu mantık herkese mantıklı mı?
Güzel.
Pekala.
Sert bir örnek gibi Yani Biz C görürdünüz bu
Ben yaratmak istedim olduğunu Değişken olarak adlandırılan ödev saat.
Ve ödev saatleri az ise Beşten, ben hayat büyük olduğunu söylüyorlar.
Bu harika.
Ancak, mücadele real-- olduğunu söylüyorlar hangi Bu pazartesi ne hepimizin olduğunu
Öğleden sonra yukarı Bilim Tepesi muhtemelen doğru şimdi-- yapıyor
HEDEF KİTLE: [gülüyor]
ANDI PENG: Onlar şekilde biz Bunun için size teşekkür ederim.
Biz hardcode olacağını yolu C Bu üyenin varsayalım ve-- olduğunu
biz zaten türünde bir değişken var int burada ödev saat çağırdı.
Ödev saat daha az ise Beş printf (), Yaşam harika.
Unutmayın tutmak / n, çünkü Eğer sonra yeni bir satır istiyorum.
Else baskı, mücadele gerçek.
>> Herkes nasıl anladı mı Ben bu bloktan geçiş
Bu kod bloğu içine?
Güzel.
Pekala.
>> Yani şimdi biz bakmak için gidiyoruz tamamen birden Eğer ifadeleri.
Yani varsayalım Bu programın amacı
Biz sınıf için kullanıcı istemi oldu.
Biz için GETINT () kullanarak istemi sınıf ve onlar girdi değeri,
ve görüntülemek istediğiniz sınıf ne tür onlar var.
>> Yani ben, bir program tasarımı vardı gözümüzün tüm tipik demek
90-100, bir A, 80-90 olan bir B ve benzeri ve benzerleri.
Bu sorun nedir öyle değil kod parçası
Ben ne yapmak istediğinizi yapıyor.
Evet.
>> KONUŞMACI 11: Onlar düşük limitleri var ama onlar üst limitleri yoktur.
>> ANDI PENG: Kesinlikle.
Herkes onun ne dediğini duydun mu?
Üst Orada gidiyor sınırlar, ancak hiçbir alt limitleri.
Maalesef, başka bir yol etrafında, alt sınırları, herhangi bir üst limit.
Yani istiyoruz diyerek bir bıçak almak
bu ne basılmış olacaktır Ekran bu kodu çalıştırmak olsaydı.
KONUŞMACI 11: Bir hata?
ANDI PENG: Bir hata?
Büyük tahminim, çok doğru değil.
Herkes başka bir bıçak var mı?
Evet, Aaron.
>> AARON: Eğer koyarsanız 90'dan daha büyük bir şey,
Eğer var tüm sınıflarda gösterecektir.
Size bir A var gösterecektir, Eğer bir B var, bir C var
>> ANDI PENG: Evet.
Bu tam olarak doğru.
Yani, bu harika olurdu.
Bununla birlikte, karşılıklı olarak özel, sanırım.
Ben olsaydım bu kod parçası çalıştırmak için.
Ve sonra diyelim, ben 95 notu girilmiş.
Yani 95 şimdi saklanır dereceli denir int.
>> Ve böylece C bir dildir Bu, yukarıdan aşağıya kadar çalışır
bu yüzden her zaman gidiyor alt kadar çalıştırın.
Yani buraya gelip gidiyor, eğer okumak sınıf, ya da daha büyük 90 eşittir
printf (), bir A. Büyük Ben aldım Bir 95 var, o 90'dan daha büyük var.
Bu yazdırmak için gidiyor, Ben o gidiyor bir A var
, gidiyor bu da bir göz atın , 95, aynı zamanda da iyi 80'den daha büyüktür, ki
o da bir var var yazdırmak için gidiyor ve benzeri ve böylece B ünlem işareti
ileri.
>> Hepimizin gördüğünüz gibi, Bu ortak bir hata
Biz olduğunuzda o oluşabilir kod yazma için dışarı bakmak için.
Herkes, herhangi bir soru üzerine neden oluyordu?
Büyük.
TAMAM.
>> Yani biz bu sorunu nasıl, Açıkçası mantıksal sonraki soru.
Peki, biz bu güzel var else if denilen şeyler
Başka ifadeleri.
Gördüğünüz Yani, eğer istediği Bu sorunu değiştirmek için,
Eğer her yapmak istedim birbirini dışlayan koşullar
Bir başka eklersiniz ... if.
>> Ve elbette-- bu kadar onları düşünüyorum merdivenler, ya da ladder-- ilgili basamaklara gibi
Eğer senin kadar bu gibi birçok ekleyebilirsiniz İstediğiniz gibi birçok durumlar için istiyorum.
Ben notu girilmiş Yani burada 95 olmak.
Notu 95 daha büyük olduğu takdirde, printf (), bir A. Yüksek aldım.
Bir başka görmeye gidiyor ... eğer ve bilmek gidiyor, hayır,
Zaten başka ilk idam.
Ben biliyorsun-- veya birinci ve-- bunu biliyorum Ben bunlardan herhangi bakmak zorunda değilsiniz
Bunlardan biri, çünkü Zaten gerçek olmuştur.
Yani yukarıdan aşağı koşmak gidiyor.
En kısa sürede ilk sonra, gerçek gibi tüm geri kalanı üzerinde atlamak için gidiyor
Başka ... IFS evi.
bu mantıklı mı?
Yani, bu şekilde var denetleme farklı düzeylerde
ve en kısa sürede bunlardan biri, yanlış olarak geri kalanı da, onlar bile kontrol etmez.
Güzel.
Pekala.
>> Yani bu, farklı bir örneğidir koşullu deyimi tür
biz daha az sıklıkta görüyorum, ama Biz onları görmek ve bunları kullanmak gerekir.
Ve onlar genellikle daha konum Bazı durumlarda verimli.
Yani biz ne denir var Bir switch ifadesi.
Bu yüzden bir başka neler örtülü önce Açıklamada, bir if ... else deyimi.
Burada, biz neyiz var switch ifadeleri denir.
>> Ne zaman Yani biz anahtarını kullanın Anahtar ifadeleri nedir?
Eğer bir anahtar açıklamada Yani Genellikle, tipik haliyle, aslında daha
için can yalnızca giriş tamsayı sizin Eğer kontrol ediyoruz değişken.
Ben görmek kontrol etmek istedim Yani eğer Örneğin belirli bir number--
Bir notu Ben 90 aldım, eğer.
Ben, bu bir A var eğer görmek istiyorum B veya C Burada bir dava olabilir.
Ancak, dava vardır Başka bir sabit olduğu.
>> Bu anlamda Yani switch deyimi olabilir sadece
iki sayının eşitliği kontrol edin.
Bu başka bir şey için denetlemez.
Bu yüzden bir şey çok olması Eğer bu kullanılırken dikkatli.
Ben kontrol etmek istedim Yani burada görmek 90 benim sınıf 90 veya 80 eşitse
veya 70 veya 60 ve baskı İlgili dereceli,
Bunu yazmak mümkün olurdu Bir switch deyimi.
>> Yani buraya gelip gidiyor, çek Bu sabite eşit bu tamsayı?
Değilse, atlamak için gidiyor.
O sürekli eşit mi İki ve benzerleri ve benzeri,
Eğer varsayılan girene kadar, bunların hiçbiri eşitse.
En kısa sürede onlardan biri olarak eşit olacak şekilde ayarlanır,
Bunu yapmak için gidiyor kod ve kırılma hattı.
Hangi o vurmak için gidiyor demektir çalıştırmak kırmak ve sadece tamamen atlayın
kod altına.
Fonksiyonların Yani bu anlamda bir tür if else if bir else if gibi.
>> Yani burada somut bulunuyor Sizin için örnek.
Yani ben istedim varsayalım yıl kurulan adında bir değişken oluşturmak.
Ve ben giriş için kullanıcı istemi istiyorum okul kuruldu o yıl.
Yani burada bir switch ifadesi oluşturabilirsiniz.
Ve, ben girişi 1636 diyelim.
>> Buradaki kod anahtarı görmeye gidiyor Yıl 1636 eşit olan kuruldu.
Bu davayı görmeye gidiyor 1636, bu eşit oh,
printf () Lütfen olmamalı okul kadar kuzeyde?
Biz varsayalım Çünkü onlar yok Onlar Harvard'a giderseniz buraya gitmek,
kırmak ve sonuna atlamak.
>> Ben giriş 1701, olsaydı hangi Ben, hepimizin giriş olur varsayıyorum
Bu davayı atlamak, gel durumda 1701 iki aşağı,
ve Yale baskı hoş geldiniz!
, Kırın sonuna atlamak.
Else muhtemelen bu dersi alıyor Çevrimiçi olan müthiş bir karşılama case--
o gitmek için gidiyor Yale-- için Varsayılan baskı, Merhaba İnternet!
Ve bölünürler.
Evet.
>> KONUŞMACI 12: Başka kullanabilir miyim Orada yerine varsayılan?
>> ANDI PENG: Hayır, çünkü yolu, bütün bu fonksiyon
Anahtar inşa edilmiştir, sözdizimi size kullanmanız gerekir vaka vaka varsayılan değerdir.
Bu else if, eğer bu gibi tek harf harf varsayılan bulunuyor. Evet.
KONUŞMACI 13: Belki zaten dedi, ancak iki olgu daha var olabilir?
ANDI PENG: Evet, yaparsın İstediğiniz kadar çok vaka var.
Sadece istediğiniz gibi düşünün sonsuz ekleyerek.
>> KONUŞMACI 14: Eğer , 1636 ile 1701 anahtarlamalı
Gerçekten yapmaz fark değil mi?
Sadece bunun için kontrol edilecek gidiyor.
>> ANDI PENG: Bu bir var Gerçekten iyi bir soru.
Ve biz değinmek gerekir Bu daha sonra, ama sadece
Bu anahtar olduğunu biliyorum deyimi var infinitely-- olduğunu
bunun altında ve eğer daha verimli Başka faaliyet çünkü eğer
işlevin farklı bir türünü kullanarak bu esasen, sadece için, izin verir
doğrudan atlama durum en olması gerekir.
Evet.
KONUŞMACI 14: Serin.
Teşekkürler.
ANDI PENG: Evet
>> KONUŞMACI 14: Ve sen yapamadım olgu gibi ve daha fazla yapmak.
ANDI PENG: Hayır
Yani, bu konuda sınırlama ne var switch deyimi var olduğunu
Sadece, sadece tamsayı sabitler var.
Evet.
TAMAM.
>> Yani bu şey olduğunu size çocuklar, daha az sıklıkta karşılaşacak
ama sadece istedim durumunda bunu tanıtmak.
Biz ne burada var Bir üçlü operatör denir.
, Sadece bir Nereden esasen bir duygu ifadesi bir satırda derlenmiş eğer.
Burada, bir sonraki satıra gidersiniz, Bir sonraki sayfa, daha kolay çünkü görmek için.
>> Yani hepimiz bu hakkı gördün mü?
Bu takip etmek oldukça kolaydır.
Ben adında bir değişken yapmak isteseydim Dize adlı s, eğer belli sayıda
Ben, daha az 100 vermek dizeye düşük atamak istediğiniz,
Başka bir yüksek atamak istediğiniz.
>> Burada bu aynı şeyi yapıyor kod bu sekiz satır yapıyoruz.
Yani burada oluşturmak istiyorum değişken bir dize.
Ve bu ben durumdur az olan sayısal 100 ise, kontrol,
o zaman, düşük değerini atamak Başka yüksek değer atayın.
>> Bu slaytlar, merak etmeyin online olacak Siz eğer bu aşağı alamadım.
Bu sadece basit bir yolu, bir daha kod yazma etkili yolu.
TAMAM.
>> Yani şimdi biz gidiyoruz çoğu insan için ne girin
çok, çok kafa karıştırıcı gibi şey ilk başta düşünmek.
Döngü bölümü.
Yani bugün, konuşmak için gidiyoruz ilmeklerin üç türleri.
Bir süre ile başlamak için gidiyoruz loop, daha sonra, bir do while döngüsü hakkında konuşmak
ve sonra döngüler için hakkında konuşmak.
>> Yani aslında, daha fazla bilgi için Orada görsel öğrenenler,
Biz esas olarak, bir grafiksel var Bir while döngüsü ne tasviri.
Bir programlama Yani, başlayacaktı ve belli bir noktada döngü girin.
Bir durumunu kontrol edin.
Ve koşul doğruysa, Eğer içeride kod yürütmesine.
Ve etrafında geri gelip seni kontrol edin.
Hala doğruysa sen çalışmaya devam Bir döngü etrafında ve çevresinde bu kodu.
>> Bu Ancak, ikinci koşul, yanlış olur
Eğer kırmak ve döngü sona gidiyoruz.
Ve bu temelde Kullanmak için gidiyoruz sözdizimi.
Belirli bir koşulu iken bu doğru değil true, bunu
Eğer sonuna atlamak için gidiyoruz ve programı ile ileriye taşımak.
TAMAM.
>> Herkes bir örnek var mı potansiyel ortaya çıkabilir ne
Ben bu kod parçası çalıştırmayı denediğinizde ne olur?
Bu arada, bu Scaz, Andi SAJ-- Bizim e-postaları kapalı oturum olacak Jason--,
Saj seviyorum.
Bu biziz.
TAMAM.
>> Herkes bir örnek var, ya da var Bu yazdıracak ne bir fikir?
Bir hile soru Tür.
Yani burada, durumu hatırlamak Gerçek varken biz kontrol ediyoruz.
Bu doğru ise, bu yüzden basacaksanız, ben SAJ seviyorum!
Biz olur her hangi bir nokta var mı Aksi takdirde herhangi bir şey için bu değişikliği?
Doğru değil?
>> Buraya Yani, biz Muhtemelen ne karşılaştı
Bir sürü adamcağız olacak programlarınız, sonsuz döngü.
Sen bulacaksınız eğer , bu kod parçası çalıştırmak
Sadece tutmak için gidiyor Baskı, ben SAJ seviyorum!
Biz destek için teşekkür ederiz ederken, biz bilgisayarları istemiyoruz
çünkü sen çökmesine Ben SAJ seviyorum yazdırmaya devam!
>> O yüzden lütfen, lütfen, sonsuz döngü önlemek
gidiyor asla çünkü false değerlendirmek
ve asla gidiyoruz döngü bırakmak.
Ve gidiyoruz sonsuza kadar emilir.
Güzel.
TAMAM.
Döngünün ikinci tip bugün bahsedeceğiz
, döngü sırasında do döngüsünün yaparken yapmak olduğunu.
Ve bir do döngüsü sırasında denir Bir do ve bir süre var çünkü.
Yani bu bir süre için oldukça benzer olduğu Döngü, ama biraz farklı.
Burada yapmanız için gidiyoruz Bu iç olursa olsun en
Belirli bir koşul doğru iken.
Yani eğer ben C ve ben bilgisayar vardı bu kod parçası aşağı çalışan,
Ben üst bir göz atın.
Ben bu şeyi yapmak demek, C gidin.
Ve sonra bu süre, kontrol doğrudur, ben bunu tekrarlamak zorunda.
Ama bu yanlış ise, sonra ben ileriye taşımak
ve tekrar tekrar bu döngü gitmek asla.
>> Herkes bir bıçak alabilir miyim Ne farkı
Bu döngü ve bir biz arasında Sadece en pratik olduğunu baktı.
Evet.
KONUŞMACI 15: durum geliyor sonra yerine daha önce?
ANDI PENG: Kesinlikle.
Yani dedi koşul sonra, değil önce gelir.
Sonuç olarak, bir fark Bu ve while döngüsü arasında
Sadece yapmak için gidiyoruz olduğunu ne olursa olsun, bu iç olursa olsun en
daki durumu olup olmadığını Gerçek ve sonra durumunu kontrol edin.
Yani bu durumda, sen always-- bu şekilde,
Her zaman emin yapıyoruz ne var içeride en az çalışır
Bir kez görmek için kontrol etmeden önce İsterseniz tekrar çalıştırmak için.
>> Ve burada bir örnek biz bunu kullanmak istiyorsunuz ne zaman.
Yani, örneğin, ben istedim olması yaş adında int türünde bir değişken,
ve ben istemi istiyorum yaşlarına kullanıcı,
I) (printf yapacağım Kaç yaşındasın?
yaş = GETINT (), hangi kullanıcıya sorulmadan olduğunu.
>> Ve bazı insanlar gerçekten sinir bozucu olacaktır.
Ve hata istemediğiniz senin birinin programı gibi giren
oh 4 yaşında ya da her neyse negatif değilim.
Bu durumda onlar eğer Bu değerlendirir bunu
Ben gidiyorum, yani true geri gidiyor ve bunu tutmak zorunda.
Yani bu devam edecek yeniden sorulma kullanıcı
Gerçek gibi size vermek Yaş numarası ve bu kadar
geri dönüyor ve yineleme devam edecek onlar size gerçek yaşı verene kadar
birden büyük veya sıfır değildir.
>> Yani, ipucu ipucu.
Bu çok, çok yararlı olacaktır senin Pset sorunlarından biri.
Evet.
>> KONUŞMACI 16: Whoops, üzgünüm.
>> ANDI PENG: Evet.
>> HOPARLÖR 16: Orada değil misin Bir pislik olmak ama-
ANDI PENG: Endişeye gerek yok.
KONUŞMACI 16: Orada --are Burada farklı kurallar,
ya da sadece unuttun mu tırnak koymak için?
>> ANDI PENG: Oh Yeah.
Üzgünüm, bu tamamen benim kötü.
Bu kesinlikle Bir tırnak olması gerekiyordu.
İyi yakalama.
Bu çalışmaz olurdu.
TAMAM.
>> Yani döngü son tip biz konuşacağız yaklaşık ve nihayetinde çoğu tür
Karmaşık döngüsü içindir.
Eğer yapmazsanız Merak etmeyin Bunun ne anlama geldiğini biliyorum.
İlk başta oldukça kafa karıştırıcı.
Biz bir örnek üzerinden gidersiniz.
>> For döngüsü olur Tüm bu Eğer üç ifadeleri olması
eklemek için gidiyoruz.
Yani belli bir şey için, sen Bir değişkeni başlatmak için gidiyoruz.
Sen koşulu eklemek için gidiyoruz hangi Bu döngü çalışmaya devam edecektir.
Ve sonra, sonunda loop, bunu güncellemek için gidiyoruz.
Sen değişkeni güncelleyebilirsiniz Eğer takip etmek istediğiniz.
Bu yüzden genellikle kullandığınız biz için döngüler için
Bir için bir döngü çalıştırmak istiyorum kez belirli bir miktarda
ve biz zaten Ah ben istiyorum, biliyorum Bu döngü, 10 kez gibi çalıştırmak için
o zaman ben üzerinden gidersiniz sanıyor- Bir sonraki sayfadaki bir örnek.
>> Yani burada, örneğin, Scratch içinde, eğer 10 kez tekrarlayın şey istedim
tüm söylemek zorunda kaldım, Ben SAJ seviyorum 10 kez tekrarlayın!
bu, bir daha kabul edilebilir Bizim için destek gösterisi
yerine sonsuz döngü daha.
Burada, nasıl olur C ve yazma geçiş
ben oluşturmak için gidiyorum int-- için veya i adında int türünde bir değişken bildirmek.
Ben başlatmak için gidiyorum 0'a, bu yüzden i = 0;
ve bu benim durum olacak.
Yani ben az 10 olduğunu.
Sonra end-- de sen son ifade
olacak bir güncelleme Ne değişken i olur
sizin döngü için sonunda.
Bu yüzden, çünkü biraz kafa karıştırıcı Bu hattın farklı bölümleri
Farklı olarak gerçekleşiyor döngü türleri.
Ama üzerinden gidersiniz Bunun Pseudocode Örnek
ve belki de bu açıklamaya sadece biraz daha iyi.
>> Yani burada.
Yani biz sadece gördüğümüz döngü var.
Esasen pseudocode ne Bu programda oluyor,
İlk ben oluşturma olduğunu i 0 başlatılıyor.
Ben olup olmadığını görmek için kontrol ediyorum 10, daha ucuz ve bu durumda
Bu ilk kez 0'dan çünkü 10'dan az.
Böylece döngü çalıştırmak için gidiyor.
Ve sonra bu satırı yazdırmak için gidiyorum.
Sonra bu hattın sonunda, doğru Burada, ben, i ++ artışı yapacağım,
Tüm bu araçtır tek bunu artan.
>> Yani ben şimdi 1'dir.
Ben eğer bir kez 0 Çünkü Şimdi 1 var, bu kadar artırmak.
Ve sonra ben geri gidiyorum döngünün başlangıcına
ve ben durumunu kontrol edin.
Hala koşul doğru mu?
Evet, 1 hala az 10 olduğunu.
Yani, yine bu yazdırmak için gidiyor gidin ve sonra i artırmak ve çek
kondisyon sürekli, sürekli
sonunda elde edene kadar alanına i 10 olduğu.
>> Bunu 10 kez yazdırmak için gidiyoruz ve sonra ben 10 eşit olacak.
Sen durumunu kontrol etmek için gidiyoruz.
10'dan 10 az mı?
Hayır, bu yanlıştır.
Böylece, bu döngü gitmiyor çalıştırmak için, bu kırmaya gidiyor,
ve gidiyoruz kodunuzu devam ediyor.
>> Siz, bu gördüğünüz gibi gerçekten harika bir örnek
Bir döngünün size ki programlayabilirsiniz kez belirli bir miktar için çalışır.
Her biri açık?
Evet.
>> KONUŞMACI 17: Nasıl artış hakkında katlanarak, farklı kodlama nedir?
>> ANDI PENG: Sen biz gidersiniz can-- Bir sonraki slaytta bu bitti.
İyi soru.
Ben taşınmadan önce birisiyle mi on-- tüm karıştı herkes,
Bu gerçekten zor bir kavramdır çünkü.
Endişeye gerek yok, sen-- Tamam eğer.
Güzel.
>> Pekala.
Sadece genel bir slayt.
Bu while döngüsü yapıyor for döngüsü aynı şey oldu.
Bu sadece farklı yazmış.
Siz slaytları incelemek Daha sonra size kolaylık.
Ama birden var olduğunu biliyorum aynı şeyi yazma yolları
Farklı döngüler ile gerçekleşmesi.
TAMAM.
>> Yani, şimdi biz sorusuna ne olsun Biz bir döngü içinde bir döngü varsa.
Biz gerçek içine alıyoruz Burada Başlangıç ​​tip şeyler.
Eğer işler birden yapmak istediğinizde diğer şeylerin içinde kat
Bu, şeyler sizi birden çok kez yapmak for döngüsü iç içe denen istiyorum.
O sizin için kim birinci görmek ve Çok karıştı, hepsi burada yapıyoruz
döngü nereye için yaşıyor Biz satır bir değişken var.
Ama bunun içinde, biz de başka var Değişken olarak adlandırılan sütunun for döngüsü.
Ve ben son derece hepiniz önermek ilk kim tutmak için şaşkın
Bu çekmek track--, bu çizin.
Sadece nedenle kalkmayın içinden, dışarı çizin.
>> Bu parça üzerinde kafanın içinde Kağıt, ya da her neyse, yazma satır,
Satır eşit ne izlemenize.
Izlemek, sütun Yazın Ne sütun eşittir.
Ve ne izlemenize Her yineleme ile yazdırarak.
Bu döngünün her tekrarında her Bu büyük döngü yineleme,
Sadece mantık takip etmeye devam edin.
Ve sana garanti, ne görmek ne, seveceksiniz
Çok da çünkü Sorununuz setleri için geçerlidir.
Güzel.
Pekala.
En önemli şey So Siz muhtemelen tüm olduklarını
Şu an düşünmeye senin Sorun Set 1s vardır,
hangi Perşembe / Cuma kaynaklanmaktadır.
>> Daki water.c programında, Eğer zorunda gidiyoruz ipucu
Bir giriş için kullanıcı istemi için.
Senin mario.c programı kapsamında Eğer zorunda gidiyoruz
olan bir for döngüsü iç içe kullanmak for döngüsü içinde bir döngü için,
esas olarak, piramit bir blok yazdırmak Ne gibi Mario üzerinden atlamak zorunda.
Ve sonra içine senin greedy-- ya da belki Aranızda çocuklar varsa, Değişiklik Yapılmasına
Hiç ki- duymuş çok olmak zorunda gidiyoruz
İlk kayan nokta değerlerinin dikkatli.
Unutmayın yüzen ondalık ve tamsayılar aynı şey değildir.
Biri olan takip edin.
Ve kullanmak için gidiyoruz koşullu ifadeler yanı sıra.
>> Pekala, son bir şey.
Ben gittikten birkaç dakika var.
Stil.
Yani bu değil bir şeydir Aslında etkinliğini etkileyebilir,
veya kodunuzu fiili çalışma.
Ancak, bizi etkiliyor senin greyderler, okuyucularınız olarak.
Sen eğer, kendinizi etkiler Bir sorunu bulmaya çalışıyor.
Bu kodunuzun okunabilirliğini etkiler.
>> Eğer çalıştığınız zaman gibi Yani stil, eğer, İngilizce için bir kompozisyon tarzı
paragrafları yoktu, Eğer tür her şey var
bir satırda birlikte karışık, o herkes için gerçekten zor hale getirir
bile, deneme okumak için senin noktalar mantıklı ses vardır.
Programlamada Aynı şey.
Sen korkunç belirsiz olabilir Scaz kapsayacak kod,
ve hala koşmak ve fonksiyon olabilir.
Ama bizim için, gibi güzel TA, olacak okuma ve PSets değerlendirecek,
Bu çok güzel değil.
>> O yüzden lütfen, uğruna Bize ve kendinizi,
ne zaman düzeltmek için çalışıyoruz kodunuzda bir sorun,
ve çalışıyoruz Kendi kodu okumak, yapmak
Emin bazı kuralları takip biz gitmek için gidiyoruz.
>> Bu yüzden ilk.
Senin değişkenleri anlamlı isimler verin.
Eğer bir tamsayı saklamak istiyorsanız yaş olarak adlandırılan, o yaş isim ediniz.
O yükseklik adını vermeyin.
Ne zaman çalışıyoruz yüksekliğinde bir yaş depolamak,
her şeyi yapar Bizim için çok kafa karıştırıcı.
Biz karıştırılmamalıdır sevmiyorum.
Sen karıştırılmamalıdır sevmiyorum.
Kimse karıştırılmamalıdır seviyor.
Eğer bir şey yaratmak için gidiyoruz, o anlamlı bir isim.
>> Ancak, for döngüsü içinde, tek karakter değişkenleri genellikle iyi.
Ve döngü içinde, isterseniz sadece ben, ve j, k, sadece bunu yapmak için çekinmeyin.
>> Tutarlı başlatma.
Peki bu ne anlama geliyor?
Yani, teorik olarak, teknik anlamı Eğer başlatmak ve oluşturabilirsiniz
Aynı hat üzerinde birden çok değişken.
Yani, örneğin, ben oluşturabilir scaz_age adlandırılan bir tamsayıdır,
ve tam sayı andi_age 20 = olarak adlandırılır ve bir tamsayı jason_age olarak adlandırılan
Aynı hat üzerinde.
Ve ben de sadece birini atayabilirsiniz Onları ve değerlere değil diğerleri.
Biz bunu yapmıyoruz, lütfen isteyin.
Çünkü burada aslında oluşturduğunuz üç değişken, ancak bunlardan sadece biri
bir değeri vardır.
Ve sonra biz olduğunuzda kodunuzu okumaya çalışırken,
ya da düzeltmek için çalışıyoruz kodunuzda bir sorun,
takip etmek çok kafa karıştırıcı.
Yani sadece okunabilmesi için, için Bizim okunabilirlik, do not do that.
>> Tutarlı kaşlı.
Bazı insanlar onların koymak istiyorum farklı yerlerde kaşlı.
Bu gerçekten önemli değil.
Sadece tutarlı olduğunuzdan emin olun sizin Eğer onları koymak istiyorum nereye kendi kodu.
>> Tutarlı aralık.
Bir sonra bir boşluk koyarsanız for döngüsü, her zaman bunu.
Tıpkı tür de bunu yapmayın Bazı yerlerde, diğerleri bunu yapmayın.
Sadece tutarlı olması.
>> İkincisi, herkes istiyorsanız CS50 Stil Kılavuzu incelemek için,
resmen bir stil rehberi var Size bu sözleşmelerin tüm söyler
artı daha.
Bu çevrimiçi olduğunu.
Bu cs50.net/style~~pobj gibi Ya da bunun gibi bir şey.
Bunu google olabilir.
>> Tutarlılık anahtarıdır.
Yani endişelenmeyin ne diğer insanların yapıyorsun,
Sadece emin olun Kendi içinde tutarlı kod.
Herkes bu konuda herhangi bir sorunuz var mı?
Evet.
>> KONUŞMACI 18: Yani doğru bir şey Başlatma adildir ile yapmak
Ayrı onları hepsi var çizgi, ne söylüyorsun ki?
>> ANDI PENG: Ben nadiren bu durum var.
İstediğin Ama eğer sen istemek için eğer kodunuzu yerden tasarruf gibi olmak,
ya da her türlü, bunu yapabilirsiniz.
Biz sadece başlatılamıyor olmadığını sormak bir şey değil diğerleri.
Yani int scaz_age yapmak istiyorsanız, int andi_age, int jason_age, bu iyi.
Sadece bir tane başlatmak yok ve diğerleri olduğunu.
>> Sorular?
Pekala.
Ben geçmek için gidiyorum Mikrofon ve lazer pointer,
ve baton bu noktada Scaz için.
Bu garip.
İşte burada.
>> Brian SCASSELLATI: Teşekkür ederim.
Nasıl ses için yani?
Ses iyidir? .
Mükemmel.
TAMAM.
Yani, hi everyone.
>> Ben üzerinden çalışmak için denemek için gidiyorum Sizinle pratik bir örnek.
Ve biz CS50 en kullanmak için gidiyoruz geliştirme ortamı ne denir
Integrated Development Environment.
Ve bunu gördüm derste gösterdi.
Ve Problem Set 1, sen bir fırsat olacak
kullanmak, ve ile oynamak için o, ve, buna alışkın olsun
biz kullanmak için gidiyoruz çünkü dönem geri kalanı ile.
>> Yani bu IDE, ne görünüyor var Bir çok geleneksel dosya tarayıcısı gibi
üzerinde bir tarafta.
Bir kısmını var top nereye gidiyoruz
, kaynak kodu görmek için sizin CFile, yazdığınız kodu.
Ve altta aşağı, sen olacak Bir terminal penceresi var
Eğer kullanarak olacak olan hem programı derlemek
ve çalıştırmak veya programı yürütmek için.
TAMAM.
>> Yani sadece bize biraz vermek vakıf, bu terminal penceresinde,
olmak için gidiyoruz bir dizi komut kullanılarak
boyunca standart komutları olduğunu Unix veya Linux sistemleri çoğu.
Ve böylece şimdiye kadar kullandığınız takdirde Unix, Ubuntu herhangi bir formu,
veya diğer aromalar herhangi Bu tanıdık olacak.
>> Eğer yapmadıysanız, endişelenmeyin.
Onlar hakkında karmaşık bir şey yok.
Onlar sadece farklı bir kullanıyorsanız sözdizimi, farklı bir adlandırma
senden daha kongre önce gördüm.
>> Yani dosyaları listelemek için Belirli bir dizin içinde,
onlar kullanmak için gidiyoruz Komut ls veya liste çağırdı.
Her şeyi görmek istiyorsanız tüm detayları,
Bir komutu kullanacağız ls -l ile satırı argümanı.
Ve bu her şeyi göstereceğim de dahil olmak üzere daha ayrıntılı olarak
Bir dosya izinlerini.
>> Dizini değiştirmek için, Eğer cd komutunu kullanacağız.
Ve dizinini değiştirmek mümkün olacak hem ev dizinine gidin.
Hepsi ile sadece cd var iki ile kendisi cd
noktalar birini size dönecektir önceki dizine seviyesi.
Ve sen cd de olabilir cd yazarak alt
ve bu alt dizinin adı.
>> Ayrıca yeni dizinler oluşturabilirsiniz.
Ve biz yürümeye gidiyoruz Bir dakika içinde bu yolla.
Ama koymak Ekranda her şeyi.
Böylece onları görebilirsiniz.
>> Ayrıca yeteneğine sahip olacaksınız doğrudan dosyaları işlemek için
Komut satırından.
Teşekkürler, onları kopyalamak mümkün olacak Onları taşımak veya bunları kaldırmak için,
yani etkin silmek için.
>> CS50 IDE size tam verir komut satırı argümanları gücü.
Ve bu da can demektir son derece tehlikeli şeyler.
TAMAM.
Örneğin, şunları yapabilirsiniz kaldırmak, ya da silme olduğunu
sormadan dosya Onay için.
Ve hatta kaldırabilirsiniz işte recursively--
dash r bir bütününü flag-- alt ve tüm içeriğini.
TAMAM.
Onlar kırmızı listelenen konum çünkü sen "Tehlike" her zaman düşünmek gerekir
Eğer bu şeyleri görüyorum.
TAMAM.
Pekala.
>> Şimdi nihayet, işler olduğunu Size gerçekten değerli olacak,
bir kaç iyi hile vardır Eğer navigasyon konum olarak bilmek
bu terminal pencereden.
İlk olarak, ekrana temizleyebilirsiniz Sadece net yazarak her zaman.
Ve görmek için gidiyoruz Bana sık sık bunu.
Ayrıca, sadece görüntüleyebilirsiniz Bir dosyanın metin
Daha fazla ve daha sonra dosya adını yazarak.
Daha sonra geri kaydırma mümkün olacak ve ortaya sadece boşluk tuşu ile buna
ve ok tuşlarını kullanın.
>> Eğer varsa, biz, derste bugün olduğu gibi Sürekli çalışan bir program
sonsuz bir döngü içinde, sen o programı durdurabilir
kontrol yazarak yürütülmesini, Bu Control-C basılı tutuyor.
Ve yapmanız gerekebilir Bu, birden çok kez.
Bilgisayar uzak önünüzde alır.
Ve bazen gerekir o denemeden bir çift vermek
aslında gelmez önce.
>> Ayrıca mümkün olacak komutları aracılığıyla sıralama
Sadece yukarı tuşunu kullanarak yazdığınız, ok tuşu ve ardından aşağı ok tuşuna basın.
Ve en kullanışlı yerine ise uzun dosya isimleri yazarak,
size kullanım Tab yapabileceksiniz Bir kaç talimatları otomatik tamamlama.
Şimdi göstermek için gidiyoruz Bir saniye içinde olanların hepsi.
Eğer hatırlıyorum yoksa yüzden Onları, merak etmeyin.
Bunlar, o sen edeceğiz şeyler pick up ve biz birlikte gitmek olarak kullanmak.
TAMAM.
>> C- içinde Scratch-- aksine Yani C derlenmiş bir dildir.
Yani, biz bir kaynak almak için gidiyoruz demektir file-- o yazdığınız metin var,
Eğer, yazma komutları printf () deyimleri, döngüler,
Her şey else-- ve biz gidiyoruz Bu dosyayı alıp onu el
Bir programa derleyici denir.
>> Derleyici sonra alacak yazdığınız bu metin
ve çevirmek İkili talimatlar
Bilgisayarınızın olduğunu Aslında kullanımı gidiyor.
Bu nesne denir veya çalıştırılabilir dosya.
Bu dosyasına bakarsanız, gidiyoruz Yazdığınız kodunu görmek için.
Bu dosyasına bakarsanız, gidiyoruz karakter rasgele dizisi görmek için
Bu hiçbir mantıklı.
Bu ikili olmasıdır.
Bu okuma için demek değil.
>> Ancak, herhangi bir zaman istediğiniz Eğer gidiyoruz ne bir şey çalıştırmak
çalışıyor olması bu nesne dosyadır.
Bu yüzden bu ile çalışırken Dosyaları, biz C bir dosyayı yazacağım
Biz daha sonra bir kullanarak derlemek olacak çağıracağı yapmak gibi komut
C dili için derleyici clang.
Ve bu nesneyi üretecek Bir out gibi, dosya, ya da bu durumda,
isim, ben koydum benim dosya.
Pekala.
>> Yani aslında bu deneyelim.
Yani bir örnekle geldi Ben denemek istedim ne.
Ve şeylerden biri olduğunu Beni büyüleyen animasyon.
Yani biz bunu denemek için gidiyoruz animasyon biraz
sadece ASCII karakterlerini kullanarak.
Karakterler artık rahatlıkla yazdırabilirsiniz.
>> Yani burada benim en iyi girişimi Sizin için yaratmak
bir tavşan animasyon uzun otların üzerinden çalışan.
İşte burada.
TAMAM.
O yüzden henüz çalışan değil, ama var yüksek otlarla orada duran.
>> Şimdi bir animatör olsaydı, Eski okul
animasyon versiyonu, ne Ben üretecek olan yapacağını
çimen bu tavşan bir resim.
Ve sonra ben üretecektir başka fotoğraf--
Başka onlar cell-- dedikleri tavşan sadece biraz taşınmıştı.
Ve daha sonra bir üçüncü vardı tavşan biraz daha taşındı.
>> Ve ben bir bütününü üretecektir Bu hücrelerin sekansı.
Bazı yerlerde tavşan bitti Sol tarafta üzerine.
Ve daha sonra yavaş yavaş, tek bir hareket ortasına doğru tek.
Ve sonra ortadan sağa bitti.
Ve ben gerçekten, o zaman olsaydı Şanslı, ben araya koyabilirsiniz
ve ben onları animasyon olabilir.
Ve benim tavşan var çim ile çalışan.
>> Bu benim için büyük bir PowerPoint bulunuyor gün için hile.
TAMAM.
Yani bu gets o kadar iyidir.
TAMAM.
Yani, burada bir kez daha, bizim burada olduğunu çim ile çalışan tavşan.
>> KONUŞMACI 19: Yine.
Brian SCASSELLATI: Bir daha fazla zaman, tamam.
Senin tavşan var.
TAMAM.
>> Yani bugün ne gidiyoruz Gideceğimiz yapmanız
sürecini otomatikleştirmek için denemek için Bu hücrelere.
Biz oldukça noktasına almazsınız hep birlikte onları koymak için güçlü olmak.
Ama biz otomatikleştirmek için denemek için gidiyoruz Bu diziyi üretme süreci.
>> Ve bu Neyin kadar Animasyon bugün gibi.
Yani, mutlaka bir şeyler yapmıyoruz her şeyi elle çizerek.
Biz otomatikleştirmek için bir bilgisayar kullanmak bu işlemin parçaları.
TAMAM.
>> Bu yüzden bana geçiş izin Şimdi bizim CS50 IDE.
Ve ben us-- ve izin için oluşturduğunuz Beni burada ettik biraz Kişilik Sokak yakınlaştırmak
Bir başlangıç ​​noktası bizim için yarattı.
>> Biz oturup istiyoruz her zaman Aşağı ve kod parçası yazmak,
ne biz gerçekten yapmanı istiyoruz Biz sorunu çözmek için soruyorsun edilir.
Ve yolu, sen-meli bunu yaparken düşünmek
Bazı başlayarak gereğidir Bu çözümün basit kısmı.
Ve sonra o kısmından dışarı oluşturmak.
Ve bugün yapacağımız budur.
>> Yani oldukça seferde tüm çalışırken daha bu kod tüm demet yazmak
Bu üretecek 10 animasyon hücreleri,
bunun yerine başlamak için gidiyoruz çalışan bir parça ile.
Ve sonra biz bir inşa edeceğiz etrafında biraz
ve biraz daha ve biraz daha fazla.
>> Şimdi iyi bir şey hakkında sorunlarını bu şekilde çözme
Eğer başlamak sağlayacak olmasıdır Her zaman bildiğiniz bir şey ile
çalışır ve tek kademeli değişim tanıtmak.
Ve bu harika bir yoldur kod öğrenmek için,
Her zaman bir hale geldi çünkü değişim, bunun ne gibi etkileri görüyoruz.
TAMAM.
>> Yani burada bizim başlangıç ​​noktasıdır.
TAMAM.
Benim dosyanın başında Yani, Ben karma #include stdio.h ettik.
Ben alabilirim ki budur printf () fonksiyonu çalışmak.
>> Sonra benim ana işlevi var.
Ve bu hala biraz görünüyor gizemli ya da bazı karanlık.
Bu iyi.
Diyor hepsi bu ana işlevi alır
Hiçbir arguments-- geçersiz araçlar C. Ve hiçbir şey
Kongre tarafından döner bir tamsayı.
Ana hep bir tamsayı döndürür, genellikle kod şeyler söyleyerek
iyi gitti ya da iyi gitmedi.
TAMAM.
Ama asıl bu olması gerekiyor Şu anda bizim için oluşturur.
>> Daha sonra kod üç satır koyduk.
Ve her satırı ile birlikte Kod, ben bir yorum koyduk.
Şeylerden biri olduğunu Şimdi Biz bunu ısrar edecek
ve önemli bir tür olduğunu programlama uygulama,
Her zaman kodunuzu açıklama etmektir.
Her zaman bir aşağı yazın İngilizce comment şey
Sizce bu Kod yapmak gerekiyordu.
Eğer geri gelmek ne zaman, sonra o yolu bu, bunu bakabilirsiniz ve size söyleyebilirim
oh, ben ne olduğunu hatırlamıyorum Bu birlikte yapmaya çalışıyorum.
Ya da ta sizinle oturduğunda mesai saatleri de size yardımcı olmaya çalışırız,
bu bakmak ve gidebilir, ben , yapmanız çalıştığınız görmek ne
ancak bunun yerine bu ne gerçekten oluyor.
TAMAM.
>> Yani, benim kod üç bölümden var Bütün baskının ilk gidiyorum
başında bazı noktalar dışında.
Sonra çıktı edeceğiz benim Son derece süslü tavşan.
Ve sonra sonunda nokta bazı biraz.
>> Ve bu üç baskı yapılan açıklamalar Bu noktada size tanıdık.
Ben yapıyorum Tüm bu Bunların her biri değilim olduğunu
karakter dizisi yazdırmak.
Dahil hiçbir değişken var.
Her şey sadece düz.
TAMAM.
>> Yani benim terminal-- şimdi aşağı giderseniz Bunu geri alabilirim bakalım konrtol
ve ben tekrar açık yazın gidiyorum.
>> KONUŞMACI 20: Kullandığımız musunuz çift ​​eğik çizgi Yorum yapmak?
Brian SCASSELLATI: Can double-- evet kullanın.
Birden çok yolu var C. One yorum bırakabilirsiniz
yol çift çizgi kullanmaktır.
Diğer bir eğik çizgi ve bir yıldız kullanmaktır ve daha sonra bir yıldız ve bir bölü çizgisi ile kapatın.
Pekala.
>> Her şeyden önce, ben gidiyorum Buralarda navigasyona başlayın.
Yani benim ev dizinine giderseniz, Ben, orada dizinleri değiştirdim
Ben bakmak ve ne olduğunu görmek için gidiyorum Bu dizinde, ls, dışarı listeleyin.
Ben ettik olduğunu görmeye gidiyorum İki alt dizinleri var.
Şimdi bu biraz daha büyük yapalım Burada hepimiz görebilirsiniz böylece.
>> Ben ettik görebilirsiniz İki alt dizinleri var.
Ben dizini değiştirmek gerekir çalışma alanına gitmek için.
Ve ben sadece tip dışarı gidiyorum bunun bir parçası, ve sonra sadece Tab çarptı.
Ve bu benim için kalanını tamamlamak olacak.
Fancy.
>> Ben bakmak ve çalışma alanında görürsünüz.
Ve şimdi, ben çalışıyorum SuperSection üzerinde
biz şu anda öğretiyoruz.
Yani bu dizine gidersiniz.
Ve nihayet, bakmak ve görmek.
Ve ben bu dosya bunny.c var.
>> Pekala bu yüzden bir kez daha bana izin ver.
Ve yine ben şimdi-- gidiyorum Hala bu dizinde kalan
ve ben varım bana söylüyor Bu SuperSection dizin.
Ben devam edeceğim ve benim program tavşan yapmak.
Ve bu komut, tavşan yapmak, biraz garip sondaj yaparken,
Ayrıca clang derleyici çağırır.
>> Ve onun için üretilmiş oluyor Bana bir çıkış
bir yürütülebilir funny-- bir çalıştırılabilir dosya tavşan çağırdı.
TAMAM.
Daha sonra can ve bu sesler daha da kötüsü, tavşan yürütün.
TAMAM.
Ve en çok ne görelim.
TAMAM.
Bu biraz var ne bekliyordum.
Ben, orada benim tavşan resmi var ama ben tür kendisi tarafından tüm istedim.
Ne kaçırdım?
>> KONUŞMACI 21: l Slash veya n kesiyorsun.
Brian SCASSELLATI: Slash n.
TAMAM.
Yani buraya geri dönelim.
Ve ben o dışarı alırsınız.
Ve bu bir geri gidersiniz.
Ve şimdi bir göz atalım Burada benim ana işlevinden.
>> Peki ne yapmalıyım?
Ben çizgiyi bitirmek istiyorum.
Yani bir açıklamada koyacağım.
Bir printf takacağım ().
Ve ben koymak ne var?
/ n.
TAMAM.
Ne ile bitirmek gerekiyor?
Noktalı.
Pekala.
>> Şimdi, biri gerçekten önemli şeyler emin olduğunu
Her zaman bir değişiklik yapmak kodunuzu, bunu kaydetmeniz.
Kodunuzu kaydetmediyseniz, sen Orada küçük bir yıldız kadar fark olacak.
Ve bu yıldız size söylüyor Bu kodu kaydedilmez değil.
>> Ben şu anda derlemek, öyle değil bu değişikliklerin herhangi yansıtmak için gidiyor
derleyici dosyaya bakar çünkü Bu disk, değil dosya üzerinde bulunuyor
senin editörü açın.
Pekala.
>> Yani kaydetmek edelim ve sonra biz gideriz sağda Buraya, geri gel.
Benim terminale aşağı gel.
Ve tekrar boşluk temizleyin verelim.
>> Ve biz önde ve bir daha gidebilir Zaman bizim tavşan programı yapmak.
Ve tavşan yürütün.
Bu da işe yaramadı.
Yanlış çizgi.
Sana ne var bakarsanız Yani, ben koymak / n orada, ama yanlış çizgi vardı.
>> Her şey, bilgisayarınızın Does çok açık olduğunu.
Tamam mı?
Noktalama Bir küçük hata ve aniden istediğini alamadım.
Pekala.
Yani dışarıda tekrar yakınlaştırın verelim.
Biz geri gidersiniz.
Eh bu çok hızlı onarım yapmak.
Biz doğru eğik çizgi koyacağım.
Biz onu tasarruf edersiniz.
Biz yakınlaştırın olacak.
>> Nedense, bu değil mutlu olmak, ama en önde gidelim
ve biz burada tekrar terminale gidersiniz.
O kadar temizleyin.
Biz yakınlaştırmak olacak.
Ve bir kez daha, biz tavşan yapacağız.
Ve şimdi emin yeterli, işe yarıyor.
Yaşasın.
TAMAM.
>> Yani bu yapmaya çalışalım Biraz daha genel.
Bakalım eğer yerine sadece Belirli bir çerçeve yazdırırken,
Biz bu yapabilirsiniz bakalım Hepimizin 10 almak böylece
bu hareketli çerçeve biz istedim.
Yani yine, en alalım Aynı anda, bu adım.
>> Ilk, değil genellemek edelim Böylece tüm kareleri yapmak,
ama bu yüzden birini yapın Ben isteyebilirsiniz kare.
Peki fark nedir Çerçeveler arasında?
Tavşan aynı mıdır?
HEDEF KİTLE: Evet.
Brian SCASSELLATI: Evet.
Fark ne?
>> HEDEF KİTLE: Pozisyon.
Brian SCASSELLATI: Its pozisyon, değil mi?
Ve nasıl konumunu kontrol ederim?
Kaç nokta ben başında koyarak
ve kaç nokta ben sonunda koyarak.
Yani ben beş vardı başlangıç ​​ve sonunda beş.
>> En döngü için bir o beş yerine edelim.
TAMAM.
Ve ben bir oluşturmak için gidiyorum loop şimdi, söyleyecek
Bazı numarası yazdırmak için gidiyorum başında noktalar.
Ben bir değişken kullanmak için gidiyorum.
Hadi diyelim nasıl i hakkında olduğu gibi Benim döngüde sayaç.
Ve ben üst bunu ilan edeceğim.
>> Ve sonra döngü içinde Ben üç şey yapmak gerekiyor.
Yapmam gereken ilk şey Ben i başlatmak için ihtiyaç vardır.
Ne başlatmak gerekir Olması başlamak için?
0.
TAMAM.
>> Sonra ne söylemek gerek sonlandırma durumu?
Ne zaman durması gerekir?
Peki kaç nokta do you Bu bir yazdırmak istediğiniz?
>> HEDEF KİTLE: Beş.
Brian SCASSELLATI: Beş tekrar?
Hakkında bir şeyler yapalım Nasıl Farklı, biz beş yaptım.
En farklı olduğunu gösterelim.
KONUŞMACI 22: İki.
Brian SCASSELLATI: İki.
TAMAM.
İki nokta istiyorsanız Yani, Burada neyi koymak gerekir?
>> HEDEF KİTLE: Üç.
>> Brian SCASSELLATI: Üç.
TAMAM.
Kaç kez olduğunu üzerinden gidecek?
Yani üzerinden gidecek üç kez, 0, 1 ve 2, sağ?
Pekala, geri aşağı iki gidelim.
Şimdi iki nokta alırsınız.
Ve ne her yapmak istiyorsunuz Ben döngü geçmesi zaman?
Ne değiştirmek zorunda Ben geçmesi her zaman?
>> KONUŞMACI 23: bir nokta ekleyin.
>> Brian SCASSELLATI: Ben devam etmek zorunda.
Ben bir nokta eklemek için gidiyorum.
Ben bir nokta yazdırmak için gidiyorum, döngü içinde her zaman.
Ama nasıl nasıl takip ediyorum Birçok kez döngü oldum?
Ben, i istimal Değişken, bu sayacı.
>> Yani aracılığıyla her zaman, ben gidiyorum tek sayacını artırmak için.
Şimdi, bu için aynı Bana i sözlerinde = i 1 +.
Bu iyi.
Ben seviyorum ki- bunu yapabileceğimi steno, bu yüzden i ++ söylemek için gidiyorum.
TAMAM.
>> En de aynı şeyi yapalım Burada altta.
Sadece ben tür Şunu yaptım.
Size bir izin gidiyorum tamamen bu birini yapın.
Pekala.
>> Yani burada neler yazmalıyım?
İşte döngü için gözlerimi var.
Bir printf (yapacağım) ve ben gidiyorum Ben sadece bir nokta yazdırmak böylece bunu yapmak için
Bu alt.
>> Ne yazmalıyım şimdi döngü için bu iç?
Her şeyden önce, Peki Ne değişkenler kullanmalıyım?
>> KONUŞMACI 24: j.
>> Brian SCASSELLATI: Ben j kullanabilirsiniz.
Aynı birini kullanabilir miyim?
Ben tekrar kullanabilir miyim?
Evet.
Yani, Tamam Is çünkü Buraya kadar kullanarak olduğumu,
Yine zaman onlara ihtiyacım yok Ben bu noktaya aşağı olsun.
>> Yani ne i başlatmak gerekir?
KONUŞMACI 25: 10.
Brian SCASSELLATI: 0.
Ne kontrol etmelisiniz?
Kaç noktalar Sonunda şimdi ihtiyacım var Ben başında iki nokta var ise?
Ben sonunda sekiz gerek, peki Ben daha az edemememden, kontrol etmelisiniz
>> HEDEF KİTLE: Yedi, sekiz, dokuz.
Brian SCASSELLATI: Ben yedi duydum.
Ben sekiz duydum.
Ve ben dokuz duydum.
TAMAM.
Bu yüzden sağ her şeysin ball-- Jason 10 diyor.
TAMAM.
>> Ben iki nokta gerekirse İlki, kaç yapmak
Ben-- ve ben sekiz nokta ihtiyaç Son Şehre ben yukarı yukarıda iki koymak
ne aşağı aşağıda koymak gerekir?
>> HEDEF KİTLE: Sekiz.
>> Brian SCASSELLATI: Sekiz.
Çünkü gidiyor yedi ile sıfır sayılır.
Ve bu döngü içinde sekiz kez bu.
TAMAM.
Ve ben sonunda ne var?
>> HEDEF KİTLE: i ++.
>> Brian SCASSELLATI: i ++.
Pekala.
Yani orada oldukça iyi görünüyor.
Şunu deneyelim ve en ne yaptığını görelim.
TAMAM.
Bu yüzden onu kurtarmak için gidiyoruz.
Güzel ve kurtardı.
>> Biz dışarı yakınlaştırın olacak.
Biz terminalde burada çalışacağım.
Biz yakınlaştırmak olacak.
Üzgünüz.
Biz olacak, bir kez daha, Bizim tavşan programı yapmak.
Ve devam edin ve tavşan yürütmek.
Ve işte burada.
>> Yani bizim tavşan var.
O başında iki nokta vardır Nerede ve sonunda dışarı sekiz nokta.
Benimle yine herkes?
TAMAM.
>> Yani biz o kadar inşa etti.
Biz bir tavşan inşa belirli bir çerçeve.
Şimdi mümkün oldum inşa etmek olduğunu genelleştirmek
kare daha farklı.
>> Şimdi go ahead ve atalım o, sadece bir kare oluşturmak
ama en 10 oluşturmasına izin çerçeveler, nerede yavaş yavaş
tavşan tüm hareket yapmak alanın karşısındaki yol.
Pekala.
>> Hadi geri dönelim.
Ve biz şimdi deneyeceğim.
Peki ben gerçekten burada değiştirmeniz gerekir?
Ne değiştirmek gerekir?
>> KONUŞMACI 26: İlk gerek noktalar maksimum sayısını değiştirmek
başlangıçta.
Biz 10 nokta yapıyoruz Çünkü eğer, o ölçekli kadar ihtiyacı olacak.
Brian SCASSELLATI: Evet.
Yani şimdi ben bu sıralamayı kablolu var Her zaman başında iki nokta yapmak
ve her zaman sonunda sekiz noktalar yapın.
>> Birazdan, başka bir döngü oluşturmak istiyor?
Çünkü ben .... istemiyorum sadece bir tavşan resim oluşturmak
Ben 10 tavşan fotoğrafları inşa etmek istiyorum.
Yani başka bir döngü oluşturmak gerekir, ve ben bu döngü geçmesi gibi,
Kaç değiştirmek istiyorum noktalar Ben başında yazdırmak
ve ben, sonunda kaç nokta yazdırmak döngü içinde hangi döngüsü dayalı
Varım.
Pekala.
>> Yani başka bir sayaç alalım.
Biri daha önce j söylenir, bu yüzden başka bir j yapacağız.
Ve şimdi, biz gidiyoruz döngü başka oluşturmak.
>> Ne bu döngü içinde gider?
Bu malzeme gitmek zorunda döngü içinde, değil mi?
Tavşan var mı döngü içinde gitmek için?
Ben bir tavşan ihtiyacım musunuz Bu 10 dilimlerinde her?
>> HEDEF KİTLE: Hı-hı.
Brian SCASSELLATI: Evet.
Her bir tavşan istiyorum 10 kare, değil mi?
Nasıl noktalar hakkında sonunda, ona ihtiyacım var mı?
TAMAM.
>> Yani hepsini girinti gidiyorum.
Ben tüm vurgulamak için gidiyorum Bu, ben Tab vurmak için gidiyorum.
Ve hepsi onları itmek gidiyor biraz, o yüzden benim için kolay
döngü içinde ne olduğunu görmek için.
Ve sonra ben bunu bitireceğiz.
Diyelimki.
Tamam mı?
>> Şimdi, bu döngü bu Ben, building-- hoppala değilim
Eğer see-- böylece olun Benim karşı j var.
Ben 0 ° C'de başladım edeceğiz.
Kaç kere istiyorsun Bu döngü içinde gitmek için?
HEDEF KİTLE: 10 kez.
Brian SCASSELLATI: 10 kat.
Yani burada hangi numarayı koymalıyız?
>> İZLEYİCİ: 9, 10.
>> Brian SCASSELLATI: 9, 10, Biri sağ, 11 söyleyecek var?
Daha önce iki nokta istedi ve 2'den ben az koydu.
Ben, sekiz nokta istedi Ben 8'den daha az ben koydum.
Şimdi 10'a kadar gitmek istiyorum Zaman, bu yüzden daha az edemememden j koymak
>> HEDEF KİTLE: 10.
>> Brian SCASSELLATI: 10.
Oraya gidiyoruz.
Ve ben j sonunda ne yapacağız?
++ Bunu artırmak.
TAMAM.
Şimdi, burada zor parçası, ne şimdi ben bunu yaparsam ne olacak?
Ben 10 kareleri yazdırmak için gidiyorum?
KONUŞMACI 27: bence hepsi aynı olacak.
Brian SCASSELLATI: Onlar olacak tamam, aynı olabilir mi?
Hepsi hala devam Çünkü başında iki nokta koymak.
Ama hepsini istemiyorum İki nokta başlangıcı var.
Kaç nokta I do başında istiyorsun?
>> HEDEF KİTLE: Değişen.
>> Brian SCASSELLATI: Ben Doğru, değiştirmek istediğiniz?
Yani değişiyor burada ne var döngü geçer her seferinde?
>> HEDEF KİTLE: nokta sayısı, j.
Brian SCASSELLATI: j, noktaların sayısı.
Yani j olmak üzere değiştirebilirsiniz.
Ilk seferinde loop ne olduğunu olacak?
Ne ilk için j ayarlarım?
>> HEDEF KİTLE: 0.
>> Brian SCASSELLATI: Peki kaç kez bu yapacağım?
0.
Döngü, j en aracılığıyla ikinci kez Bunu artırmak için 1 olacak.
Kaç noktalar ı yazdırmak için gidiyorum?
1.
Döngü üçüncü kez, Kaç noktalar Ben yazdırmak için gidiyorum?
>> HEDEF KİTLE: Üç.
Brian SCASSELLATI: j 3 olacak.
Kaç noktalar ı yazdırmak için gidiyorum?
Oh, üzgünüm, j 2 olacak.
Kaç noktalar ı yazdırmak için gidiyorum?
>> İZLEYİCİ: 2.
>> Brian SCASSELLATI: 2.
Tamam, bu yüzden tutmak için gidiyorum biz birlikte gitmek gibi olduğunu artan.
Nasıl aşağı aşağıda dersiniz?
Ne buraya gidiyor?
Hep 8 istemiyorum Artık sonunda?
>> KONUŞMACI 28: 10.
Brian SCASSELLATI: Ben 10 nokta istiyorsun?
Ben de, bunu değiştirmek istiyorum.
Bu yüzden nasıl değiştirileceği istiyorsun?
>> HEDEF KİTLE: [duyulamaz].
Brian SCASSELLATI: Şey, ben ise başında beş nokta var,
Ben sonunda kaç nokta en alabilirim?
>> HEDEF KİTLE: Beş.
>> Brian SCASSELLATI: I varsa başında altı nokta,
Ben sonunda kaç alabilirim?
HEDEF KİTLE: Dört.
Brian SCASSELLATI: I got Eğer başında yedi nokta,
Ben sonunda kaç alabilirim?
HEDEF KİTLE: Üç.
Brian SCASSELLATI: Birkaç gün önce ise başında j noktalar var
Ben sonunda kaç alabilirim?
10-j.
TAMAM.
Yani dışarı deneyelim.
>> Yani bizim tavşan program kaydetmek için gidiyorum.
Bir kez daha uzaklaştırmak gerekir.
Biz terminale aşağı gidersiniz.
Biz bunu temizleyin olacak.
Ve yakınlaştırmak.
Biz yine bizim tavşan programı yapacağız.
Ve biz bunu çalıştırmak gerekir.
Ah ah.
>> En uzaklaştırmak edelim, üzerinde tutun.
Ben 10 kare aldın mı?
Peki, kaç tavşanlar Oraya görüyor musun?
1, 2, 3, 4, 5, 6, 7, 8, 9, 10.
Ben 10 kare var.
Hepsi aynı mı?
HEDEF KİTLE: Evet.
Hayır.
>> Brian SCASSELLATI: Hayır
Bu ilki, tavşan uzak soldadır.
Ve buraya, tavşan üzerinde uzak
KONUŞMACI 29: Sağ.
Brian SCASSELLATI: Yani, ne yapmam unuttunuz mu?
KONUŞMACI 30: Yeni bir satıra geçmenizi sağlar.
Brian SCASSELLATI: Ben unuttum Yine, yeni bir satır başlatmak için.
Aynı hata önce yaptım.
Pekala, bunu düzeltmek gidelim.
Şimdi, ben hala kod var Orada yeni bir çizgi yapmak.
Neden işe yaramadı?
KONUŞMACI 31: Bu döngü içinde değil.
Brian SCASSELLATI: Oh, bu döngü içinde değil.
Bu doğru.
Burada dışarıda oturuyor.
Ve döngü her şey o metnin içinde.
>> Yani hareket gidiyorum Bu iç döngü.
Ve ben onun önünde etmek Tab olacak doğru yerde olduğunu gösteriyor.
Ve şimdi, biz tekrar kaydetmek gerekir.
Biz uzaklaştırmak gerekir.
Bizim terminaline geçiş olacak.
Yakınlaştır.
Bizim tavşan programını yeniden edeceğiz.
Ve şimdi, şimdi bizim 10 kare var.
>> [Alkışlar]
>> Brian SCASSELLATI: Tamam.
So
İşte döngüler için iç içe.
Biz üretmek başardık Ben istediğim kaç nokta iç döngü
sonunda, başında yazdırmak için.
Ve Dış döngü kontrollü kaç kare ben inşa edildi.
Biz bir küçük ile başladı Sorunun çekirdeği,
ve biz o noktadan dışarı inşa etti.
Pekala.
>> En bir adım daha yapalım.
Hazır mısın?
Bir şey burada nerede var biz aslında biraz var
İhtiyacımız daha fazla karmaşıklık.
Hadi bir bakalım.
Bizim tavşan programında Yani Burada uzaklaştırmak eğer,
Ben aslında aynı bazı do şey tekrar ve tekrar.
Ben bu tür bir var ne yapmalıyım Aynı şey iki kere tekrarlanan?
>> KONUŞMACI 32: noktalar yazdırın.
>> Brian SCASSELLATI: Evet Ben iki kez bu noktalar yazdırabilirsiniz.
Gerçekten, ben olmalı Buraya bu açıklama.
Ben bazı noktalar yazdırmak Burada yukarı, başlangıç.
Ve sonra ben sonunda bazı noktalar yazdırabilirsiniz.
Ve ben tür tam olarak aynı şeyi yaparlar.
Ne başlatmak için gidiyoruz önümüzdeki birkaç hafta içinde çalışan
bu blokları almak mümkün ediliyor biz tekrar tekrar kullanmak kod,
ve bir süreç boyunca denilen soyutlama,
Biz onları çekin için gidiyoruz ve Bir kez bunları yazmak biz sonra can böylece
tekrar tekrar onları yeniden.
Yani o deneyelim.
Hazır mısınız?
>> Biz bu kod bloğunu almak için gidiyoruz.
Ve ben oradan almaya gidiyorum.
Ve ben define-- gidiyorum altta aşağı
Ben yeni bir fonksiyon yazmak için gidiyorum.
Bir şey geri gitmiyor.
Ve ben printDots aramak için gidiyorum.
>> O birini almaya gidiyor argüman, bir tamsayı o
Ben basılması gerekir howManyDots diyor.
Bunun yerine j noktalar baskı ve şimdi, ben olacak Ben yazdırmalısınız howManyDots söyle yazdırın.
>> Ve bir küçük sorun burada var.
Herkes ne olduğunu biliyor musun?
Ben Listelenmişse Neler var Burada bu tanımlı değil mi?
>> HEDEF KİTLE: [duyulamaz]
>> Brian SCASSELLATI: Peki nasıl Birçok nokta sağ tanımlanır
Burada, ama bu değişken i kullanıyorum.
Yani bu değişken almaya gidiyorum ben ve ben burada onu tanımlamak için gidiyorum
yerine.
>> Yani şimdi hop Kalacak gidiyor, kapaklar somehow-- ben kilidi var
Burada i tutmak için gidiyor.
>> Yani şimdi burada benim küçük işlevi var veya alt rutin ve diyor,
Kaç noktalar Ben yazdırmak için gidiyorum?
Ve bu döngü içinde gidersiniz ve tekrar tekrar yazdırabilirsiniz.
>> Ben o zaman burada benim programı değiştirebilirsiniz.
Ve ne bu işlevi aradın?
printDots.
Yani printDots arayacağım.
Kaç noktalar ı yazdırmak istiyoruz tavşan önce ilk kez?
HEDEF KİTLE: j.
Brian SCASSELLATI: j.
Kaç noktalar ı yazdırmak istiyoruz tavşan sonra sonunda?
10-j.
>> Ve ben eksik bir şey var.
Bugün derste gördüğümüz gibi, Biz printDots ilan gidiyoruz
yukarı yukarıdaki prototipi vermek.
TAMAM.
>> Yani ne yaptık ben denedim olduğunu kod bu devşirme kısmını izole
Ben tekrar ve tekrar yaptık.
Ve ben o kadar çekin denedim Bunun tek bir yerde yer alır.
Bu şekilde, bir yerde bir hata varsa, Ben sadece tek bir noktada bunu düzeltmek zorundayız.
Pekala.
>> Yani kaydetmek edelim.
Ve en çalıştığından emin yapalım.
Yani hadi dışarı çıkalım.
Biz terminale tekrar gidersiniz.
Biz yakınlaştırmak olacak.
Biz tavşan işlemi yapmak gerekir.
>> Ah.
Ve bana bir uyarı verdi.
Ne beni anlatıyor?
Peki bu herhangi Zaman, her zaman istediğiniz
ilk error-- kadar kaydırmak için Şimdi bu bir, sadece bir tane var.
>> Bu hat üzerinde, bunny.c beni anlatıyor 8 sütun 9, bir sorun var.
Bu bu ilan ettik diyor Değişken i ve bunu kullanmadım.
>> Şimdi normal, işte bu kötü değil hatası.
Bu düzeltmek için kolay bir var.
Ve aslında, biz geri gidebilirsiniz.
Biz tavşan geri gidebilirsiniz.
Ve bu durumda, her biz i kurtulmak yapmak zorunda,
Kullandığımız değil çünkü Ana içinde ben artık.
Biz sadece kullanıyoruz Bizim alt rutin içinde.
>> Yani bu tasarruf edelim.
Biz geri gidersiniz.
Ve yakınlaştırmak.
Biz bir kez daha tavşan yapacağız.
Ve yine 10 kare vardır.
TAMAM.
>> Size verilen konum Her zaman Bir Evet procedure--.
KONUŞMACI 33: Kafam karıştı bir- ben var.
Geri koduna gidebilir miyim?
Brian SCASSELLATI: Evet.
>> Yazdığın Yani: SPEAKER 33 senin prototip, argüman size
o howmany denirdi adını vermişti?
Ancak, below--
>> Brian SCASSELLATI: Ah evet.
>> KONUŞMACI 33: onlara bir şey --called Farklı, ben anlamıyorum.
>> Brian SCASSELLATI: Neden bunlar farklıdır.
Böylece harika bir soru.
Yani soru yukarı oldu Burada, ben, howmany yazdı
ve altındaki aşağı, ben howManyDots yazdı.
>> Nedeni, sizin prototip o kadar aslında dikkat değil
sen sokuyorsun isimleri.
Gerçekten umurunda Tüm bir tamsayı olmasıdır.
Bu formu bilmek istiyor Eğer koyarak şeyin.
>> Şimdi oops-- stylistically-- ne olması gerektiği Ben bu maç yapmak istiyorum olduğunu yoktur.
TAMAM.
Bu tutmak olacak çünkü Beni hatırlamak için daha kolay.
Ama bu benim hatam Evet oldu.
>> KONUŞMACI 34: Ve böylece için prototip, sadece çalışmak için
bu satırı yazarken, prototip yazma,
gelen bu işlevi veriyor hemen altında sonuna gitmek için
ve bunun ne anlama geldiğini almak?
>> Brian SCASSELLATI: Bu ne anlama geliyor? derleyici geçer zaman olduğunu
Bu en gider alt kodunuzu.
Ve bu prototip, ne bu temelde bir söz olduğunu.
>> O orada oluyor, diyor Bir fonksiyon yerde tanımlandığı gibidir.
Bu denilen printDots olacak.
Ve bir argüman almaya gidiyor Bu bir tamsayı olacak
ve geri dönmek için gidiyor hiçbir şey, boşluk türü.
TAMAM.
Ben bunu olacak söz veriyorum yolda bir yerde tanımlanmış.
Ama her zaman gördüğünüz aşağı giderken, o
geri kalanı ile benim ana işlevi, ben istiyorum
Eğer bir fonksiyonu olarak bu tedavi etmek bu bir tamsayı girdi alır.
>> Ve derleyici iner, bu nedenle zaman Bu yoluyla, o sözü görür.
Ve aşağı aldığında, gidiyor devam ediyor tutar,
İlk zaman bulur printDots bahsedilmektedir.
Ve bu Oh, veriyorsun diyor Bana bu j. j tamsayı.
>> Peki bana o söz verdi bir tamsayı ve bu doğru.
Bu iyi.
Ve sonunda, aşağı Çok dibinde,
Ben sonuna ulaşmadan benim Dosya, benim sözünü iyi yapmak
ve ben bunu tanımlamak.
Tamam mı?
>> KONUŞMACI 35: Yani, saves-- Program boşluk kurtaracak
geri gider ve sonunda doldurur?
>> Brian SCASSELLATI: Öyle değil bellek ayırma konusunda.
Bu sadece yaklaşık gerçekte ne türü görmek için bekliyoruz.
Bu şey bir olmalıdır argüman, ya da beş argüman?
Olması tamsayılar olması halinde Bunun, ya da dizeleri verilen?
Yani bakıyor hepsi kontrol etmek için yapmanız,
Bana veriyoruz argüman doğru tür.
Tamam mı?
Pekala.
>> Beni sana bırakalım bir başka bit bakmak için.
ASCII art harika bir model değil Animasyonun bugün olduğu gibi.
Ama tabii bazı insanlar şeyler almak ve onların aşırı itin.
>> David gösterildiği gibi bu, olduğu kod konferansta, bir parça
Eğer hiçbir koşulda gerektiğini o kendinizi çoğaltmak için çalışıyoruz.
O biçimsel korkunç çünkü.
Aslında, bu şekilde olacak şekilde tasarlanmıştır Zor mümkün olduğunca okumak için.
TAMAM.
>> Yani, yine yapmak, burada yakınlaştırmak edelim.
Ben, şimdi değiştirmek dizini gidiyorum.
Ben birini gidiyorum seviye, geri çalışma alanına.
Sonra bu işe dizini değiştirmek gerekir Ben yarattım diğer dizin.
>> Ve bu Uluslararası olduğunu Karartılmış C Programlama Yarışması.
Sert olarak karartılmış araçlar mümkün olduğunca anlamak için.
Eğer bakarsanız Yani, korkmanıza gerek yok, lütfen Bu ve gitmek, ben bunu okuyamıyorum.
İşin nokta.
Tamam mı?
>> Ama biz bu var Ben harika bir program
sadece daha fazla yazarak bakmak için gidiyor.
Ve ben uzaklaştırma yapabilirsiniz bakalım sadece biraz, bu yüzden bunu görebilirsiniz
>> Ve bu program.
Bu endo.c. adlı oluyor
Ve bu kova gibi görünüyor Bunun harflerinin F-L-U-I-D tür.
>> Bu aslında bir programdır.
En karanlık içinde yazılı yol Yazarlar belki olabilir o
Bunu yazmak.
Ama harika bir parça olduğunu akışkan dinamiği modeli oluşturur.
>> Ve böylece biz vereceğiz Bu modelin bir giriş olduğunu
a, bu gibi görünüyor kaplar kümesi merdivenli
Bazı sıvı bazı Sıvı, yukarı üstünde.
Ve biz bunu simüle olacak Ne o oluyor.
>> Yani endo, bu işlev arayacağım.
Ve ben bunu vereceğiz ki Ben yaşadım girdi dosyası.
Ve ASCII sanatı bizim özet vardır.
Tam sıvı dinamik simülatörü kod sadece birkaç satır çalışan.
>> Şimdi ne olacak gerçekten aslında Bu küçük program hakkında şaşırtıcı
Ben şimdi bunu durdurmak istiyoruz ki bu yüzden ne komutunu kullanmak için gidiyorum?
>> HEDEF KİTLE: Control-C.
>> Brian SCASSELLATI: Control-C. TAMAM.
Yani Control-C kullanacağız. İşte C durdurmak gerekir.
Tekrar temizlemek gerekir.
Ve şimdi ben çağırmak için gidiyorum Program, programı çalıştırmak
girdi olarak kendisini kullanarak.
>> Ve biz sıvı dinamiği görürsünüz Bunun simülasyon erime.
TAMAM.
Bu programı izin vermeyin Sizi karıştırıyor şeyi olacak.
Biz sona erebilir sadece böylece var Serin ve ilginç bir şey.
TAMAM.
>> Senin sorunun setleri ile iyi şanslar.
Biz yanıtlamaktan mutluluk duyarız Dersten sonra sorular.
Çok teşekkürler, çocuklar.