>> DAVID J. MALAN: Yani bu CS50 olduğunu.
Bu CS50 kendi Colton Ogden, olduğu daha fazlası için kim müzik yapabilirsiniz bulunuyor
soundcloud.com/cs50 indirebilirsiniz.
>> Yani bugün hepimiz daha fazla odaklanmak programlama sanatı üzerine.
Kaldığımız yerden Ve biz almak Geçen hafta kapalı, odaklama
Scratch, bu oldu grafiksel programlama dili.
Ve, bir alt seviyesine kadar şeyler almak Bir daha geleneksel programlama kullanarak
dil C olarak bilinen Ama Yol boyunca, hayata
Aynı fikirler ki Geçen Cuma konuştuk
sadece bu tekerrür edecek dil C, ama çoğu her diğer
Bu dönem bakmak.
>> Yani biz bu denilen şey Burada ne son ne zaman?
Bu açıklamada temsilcisidir.
Yani biz bu deyimi denir.
Ve bir şey yok.
Bu bir talimat olduğunu bir Bilgisayar veya Scratch yürütmek olabilir.
Ve bundan sonra, en de başlayalım Bu bir işlev gibi bir şey aradığını,
nedenlerle yakında göreceğiz.
>> Bu arada, biz bu gibi şeyler gördüm.
Ve bunlar genellikle inşa ne olarak bilinen?
>> İZLEYİCİ: Döngü.
>> DAVID J. MALAN: Yani döngü.
Yani oldukça basit.
Bu anlamıyla ne diyor yok.
Ve Scratch içinde, isterseniz Orada daha fazla puzzle parçaları tıka basa,
parça sığacak şekilde büyüyecektir.
Ve biz C göreceğiz ki Biz de aynı şeyi yapabiliriz.
>> Döngüsünün bir başka tipi, ancak, Scratch sonsuza kadar olabilir,
ya da herhangi bir sayıda bulunuyor Diğer yaklaşımlar.
Ama bir daha alalım Bir yüzü ile kültürlü bir görünüm,
Bu, büyük olasılıkla oldukça tanıdık var daha genel olarak döngüler.
Mark Zuckerberg: Bir şey bilgisayarlar olduğunu
olduğunu gerçekten iyi komutları tekrarı.
Bir kişi olarak, olsun istiyorum gerçekten sıkıldım eğer
Aynı şeyi yapmak zorunda Arka arkaya birçok kez.
Ama bilgisayar aynı şeyi yapabilir milyonlarca kez veya hatta milyarlarca,
ve bıkmak ve mümkün olmayacak Gerçekten de bu yürütmek için.
>> Örneğin, eğer öyleyse ben herkes dilemek istedim
Facebook mutlu doğum günü Onlara bir e-posta göndererek,
daha bir daha beni sürebilir yüzyıl aslında yazmak için
herkese bu e-postaların hepsi.
Kod sadece birkaç satır Ama can Bir sistem herkese bir e-posta göndermek zorunda
Facebook isteyen üzerinde Onları mutlu yıllar.
Bu yüzden döngüler ne ve neden they değerli ve bir şey
Bu bilgisayarlar çok iyi yapabilirsiniz.
>> DAVID J. MALAN: Yani eğer Eğer alıcı oldum
CS50 en bazı ve Geç dropbox uzay,
Bu tam aslında ne Oldukça böyle bir kod kullanarak yapın.
Biz aslında bir büyük var elektronik tablo içine
millet giren edilmiş onların isim ve e-posta adresleri.
Ve biz kod bir nebze yazdı Bu adresleri üzerinden yineleme yapabilirsiniz
ve benzersiz adresleri tükürmek durumda herkes birden çok kez sundu.
Ve sonra, biz bir göndermek CS50 en bot e-posta otomatik,
kupon kodu dahil.
>> Şimdi de baktı Bu son kez inşa.
Ve bu bir özel olduğunu Neyin örneği?
Yani, evet, bir Boole ifadesi.
Ve şekil kastedilen bu kadar iyi yakalamak için.
Tüm bu sorular doğru veya yanlış Scratch formu
Böyle küçük bir şey bakacağız.
Ve biz bu Boole ifadesi diyoruz.
Bu gerçekten doğru ya da yanlış olduğunu, evet ya da hayır.
Bir soruyu yanıtlarken bir yoludur.
>> Ve arada bu Boole kullanabilirsiniz yapıları içinde ifadeleri
arasında olan, bu gibi Elbette koşulları
veya şube, meşhur yol çatal.
Ve onlar sadece bakabilirsiniz Bu gibi ama onlar da can
Onlarla birinin ilişkili olması.
Ve aslında üç yolu olabilir yol çatal veya dört yollu çatal
yol, sadece tarafından Bunları yuvalama,
Eğer Scratch göreceğiniz gibi Henüz varsa.
Ve siz de C yapabileceğiniz gibi.
>> En başka genelci atalım yanı sıra, bir alumnist bakmak kim
farklı bir yaklaşım sunmak olabilir koşulları denilen bu şeyler.
>> BILL GATES: İnsanlar yapmak kararlar her gün.
Örneğin, size dışına gitmeden önce tür, diyor bir if deyimi var
daha sonra yağıyor eğer ceketimi almak gerekir.
Ve bilgisayarlarınız kez şaşırtıcı , tabloların bu tür karar
Onlar güvenilir yürütebilirsiniz ki inanılmaz hızda böyle şeyler.
Ve böylece bir bilgisayar programı gerçekten matematik ve bazı biraz olduğunu
tablolarda olduğu durumda karar alır.
>> DAVID J. MALAN: Yani Bildiğiniz, o oldu
Bill Gates gibi millet, Paul Allen, ve diğerleri
Gerçekten başladı ki kişisel bilgisayar sözde
devrim birkaç yıl önce.
Biz dalış önce, düşünce Bazı administrivia içine
Biz Albuquerque bir masal ilgili ediyorum Natural History New Mexico müzesi
ve bilim nerede Bill Gates bazı ' ve Paul Allen'ın ilk hikayeleri
Şimdi var nasıl anlatılıyor Bugünün PC'ler ve Mac'ler ve daha fazlası.
Bunun için olsa da, biz iki gönüllüye ihtiyacım var kim çok iyi anlatım sesler var
Bir komut dosyası yüksek sesle okumak için.
>> Pekala, nasıl oraya hakkında.
Hadi gel.
Ve nasıl ön hakkında burada.
Aşağı gel.
Burada yer almak.
Siz gelip olarak, bir çift idari duyurular.
kesit, süreç Bir bölüm seçme,
Bu başlayacaktır Cuma'ya Çarşamba.
Bu konuda daha fazla bu geliyor Derste Çarşamba.
>> Süper bölümler, bu arada, vardır önümüzdeki hafta sunuyoruz şey
bu sayede tüm sınıf davet edilir oldukça büyük ölçüde katılma
bölümler, daha rahat bir, bir daha az rahat.
Ve biz ayrıntılar açıklayacak Bunun yanı sıra, daha sonra bu hafta.
>> Arada bölümleri, kendileri, başlayacak
Haftanın tabii üç, sıfır endeksi, o hangi birkaç hafta demektir
dışarı.
Yani endişe etmeyin.
Henüz cevapsız değil bu doğrultuda bir şey.
Bu arada arada, eğer idari herhangi bir sorunuz varsa,
Kendimi ve Devon ve Gabe e-posta ve Rob burada bu adreste.
>> Son olarak, bir sorun ortaya 0 üzerinden, tabii ki,.
Bunu fark etmişsinizdir dersin web sitesinde.
Bu size sunmalıdır soruların tüm cevapları
Yol için birlikte olabilir Sorun seti ile başlarken.
Ama kendinizi bulursanız yardımcı bir el ihtiyacı olan,
Tüm yollarla ofis saatleri katılmak, Pazartesi, Salı, Çarşamba, Perşembe
akşam bu hafta Dört yemek salonlarında.
Hususlarla orada o URL'yi bakın ofis saatleri olacaktır nerede.
>> Şimdi görüşelim bizim iki kişi bugün burada.
Adınız ne?
>> JAY PAUL: Jay Paul.
>> DAVID J. MALAN: Jay Paul, tanıştığımıza memnun oldum.
>> HIKARI: Hikari.
>> DAVID J. MALAN: Hikari?
>> HIKARI: Hikari.
>> DAVID J. MALAN: Hikari.
De nice to meet you.
Jay Paul ve Hikari var Bu müziği bunların ön
Ben basılmış iki komut duruyor New Mexico bu sabah dışarı
Doğa Tarihi ve Bilim Müzesi.
Ve ben düşündüm Ben havai yapmak istiyorum
senin okunmasının eşlik eder komut ve bu tarihin
Bazı görsel imgeler, hiçbir sürpriz.
>> Ve ne önceden yaptık senin senaryo üzerinde prehighlight edilir
Okumak ne, ve okumak ne.
Ve biz aslında edeceğiz Sadece alternatif paragraflar.
Eğer olabilir gibi Yani çok var İngilizce dersinde yapmış.
Bu gerçekten seyirci mecbur oluyor Burada masal inanmak.
Olur mu?
Yani burada hikaye bir var, bir TEMEL, ve Cambridge başlar.
>> JAY PAUL: Bu kış, 1974 oldu, Cambridge, Massachusetts
nerede kışlar soğuk olabilir.
Bir sakallı, uzun saçlı üniversite terk adında
Paul Allen Harvard genelinde yorucu oldu Düşünceye dalmış Meydanı.
O günlerde Onun temel uğraşı , nasıl onun arkadaşı, Bill Gates almak oldu
okulu bırakıp gitmek Onunla işin içine.
HIKARI: İki çoktan gitmişti iş girişimler bir numara ile
Birlikte, Lakeside başlayan Seattle nerede okul
onlar ücretsiz bilgisayar zamanında ödendi Yerel zamanda PDP-10 bilgisayarınızı test
şirket paylaşımı.
En son planı çıkmak olmuştu Okul ve bir yazılım şirketi oluştururlar.
Allen Washington bıraktığı Devlet Üniversitesi.
Ama son dakikada, Kapıdaki Harvard sopa ile karar verdi.
>> JAY PAUL: O gün, Harvard geçiş Kare, Allen, Ocak benekli
Popüler Elektronik 1975 sorunu toprak durdurma başlığı ile,
Dünyanın İlk Minicomputer Seti Ticari Modeller Rival.
Başlık oldu altında Küçük bir kutu bir resim
ışıkları ve anahtarları ile süslenmiş.
Bu 8800 MITS Altair denirdi.
Ve Allen bu olduğunu biliyordu ne O arıyor olmuştu.
>> HIKARI: tartışma Günleri izledi.
Allen ve Gates, anladım Altair önemi.
Bunlar genellikle konuştuk mikroişlemciler hakkında
ve ne görmek bekliyorlardı Onlarla bitmiş olacaktır.
Şimdi bir mini kiti oldu Popüler Electronics kapağı.
Görünüşe göre henüz yazılım vardı.
Onlar bir ulus hayal programcılar MITS üzerine inen.
Ve bu yüzden, Ed Roberts denilen Şirketin başkanı,
Bir sürümüne sahip olduğunu iddia eden BASIC programlama dili neredeyse hazır
Altair için.
Onlar değil mi.
Ve Roberts onlar değildi bilinen gerekir.
O 10 aramaları bir gün başlamıştı BASIC neredeyse hazır vardı insanlar.
Ve onun stok yanıtı "ilk kişi oldu
kim bir çalışma ile gösterir TEMEL sözleşme alır. "
>> JAY PAUL: Kapılar ve Allen Bir Altair görmemişti.
Onlar bile görmemişti Intel 8080 mikroişlemci
Altair kalbinde.
Ama birkaç yıl önce Allen programı yazmıştı
benzetilmiş bir anabilgisayar bilgisayarda Bir önceki Intel operasyonu
mikro-işlemci.
Ve onlar bu sefer Aynı şeyi yapardı.
>> HIKARI: Bir Intel ile Onun yanında 8080 manuel,
Allen oturdu Harvard PDP-10 bilgisayar
ve emülatör ve yazılım yazdı gerekli araçları programlama yapmak için.
Bu arada Gates, gidiş durdu sınıflar ve kendini adamış
BASIC tasarlamaya, Her hile kullanarak
O boyutunu almak biliyordu aşağı 4 kilobayt altında.
>> JAY PAUL: Albuquerque Out, Ed Roberts Gates bir çağrı var
hakkında ayrıntılı bilgi için soran Altair belirli rutinleri ele.
Hiç kimse önce sormuştu.
Ve Roberts ilgi almaya başladı.
>> HIKARI: gelişmesiyle birlikte araçları ve tasarım hazır,
Gates, ve Allen yazdı PDP-10 kod,
Başka bir Harvard öğrencisi askere, Monte Davidoff, matematik rutinleri yazmak için.
Son bir gece sonra programlama, Allen uçağa bindi
MITS için onların TEMEL teslim etmek.
O uçak endişe atlatmayı geçirdi.
Ve geri Cambridge Gates, endişe verici.
Onlar test vardı onların TEMEL ve bu emülatör üzerinde çalışmış.
Ama emülatörü yanlış ne olur?
JAY PAUL: uçağı olarak , Albuquerque yaklaştı
Allen fark onların TEMEL, şimdi düzgünce yer
küçük bir rulo , kağıt bant olur delikli
Ayrı bir olmadan işe yaramaz olması Program, bu, bir yükleyici adlı
nasıl Altair söylerdim kağıt şerit sağlığını okumak için
teletype makinesine beslenir.
O defter çıkardı ve hızlı bir şekilde Bir yükleyici programı aşağı karalanmış
Assembly dili, daha sonra elle 1 ve 0'ların içine tercüme
Altair anlamak istiyorum.
>> HIKARI: Allen bekliyordum bir temiz, küçük, yüksek teknoloji şirketi
iş takım elbiseli erkekler tarafından çalıştırın.
Roberts tanıştığımda Yani o şaşırdı Onu havaalanında bir ahır gibi bakıyor
el.
Roberts şaşırdı.
O Harvard düştü pahalı bir otelde programcı,
Allen itiraf etmek zorunda o oda göze alamazdı.
>> JAY PAUL: MITs, kendisi oldu Tozlu şerit alışveriş merkezinde bulunan.
Bir darmadağın İçi tezgah bir Altair oldu
5 kilobayt ile yüklü Bellek ve bir kablo ile bağlı
Bir teletype makineye.
Roberts ve Baş Mühendis, Bill Yates, ümitle bekledi
Allen onun yükleyici değiştiriliyor gibi Altair içine programı.
Tele o çekti chugging başladı teyp okuyucu ile kağıt şerit.
Belki 15 dakika sürdü Programı yüklemek için.
Sonra teletype aniden baskılı bir Bellek istemi, daha sonra hazır istemi,
ve Allen yazarak başladı Birkaç test komutları.
Herkesin hayretle için, Yazılım çalıştı.
Böcek elbette vardı.
Ama önemli olan o amele oldu.
>> HIKARI: Daha sonra, yolda bir Pancho en az 3,00 $ öğle yemeği, bir yaban arısı uçtu
kamyonetin penceresinde kamyon ve koluna Allen sokuldu.
Ama bu nokta hiçbir şey ruh yağma.
Altair şimdi BASIC vardı Bir ev için ilk ticari yazılım
Paul Allen ve Bill tarafından yapılan bilgisayar, Gates Microsoft gibi iş yapıyor.
>> DAVID J. MALAN: Birçok Bizim iki okuyucu sayesinde.
>> [Alkış]
>> DAVID J. MALAN: Şimdi Eğer seçim var,
Eğer bir ışıltılı bir, ayrılmadan önce ya oh dark-- bir kızdırma,
bir saniye bekleyin, ışıltılı bekle-- ve karanlık fil bir kızdırma
CS50 kendi Cheng Gong.
HIKARI: Ah, teşekkür ederim.
David J. MALAN: Tüm Doğru, çok teşekkür ederim.
[Alkış]
DAVID J. MALAN: Yani gerçek bir hikaye.
Bu Bunların hepsi demek ki Makineler ve kolaylığı hangi ile biz
Şimdi bunları kullanmak ve almak verilen, gerçekten
Burada sadece birkaç adım başladı Bu gerçek tiyatrodan.
Ve şimdi, bugün, sen oldum değil, Bu Maxwell Dworkin, bilgisayar
bilimler binası, Ayrıca köşede.
Ve bu ikinci katta Bina üç sayfaları asmak yok
özgün kaynak kodundan o Bill Gates ve Paul Allen yazdı.
Aslında, kullanım eğer Büyütmek Eğer sadece görebilirsiniz içinde
onların isimleri Orijinal tipi, aynı zamanda
onlar süslenmiş kendi imzaları Birkaç yıl önce onlar son ziyaret.
>> Ama özellikle zorlayıcı ne oldu Bu konuda onlar yapmak için yola ne
verecek bir program yazmak oldu yazmak için başka insanları sağlayacak
kendi programları.
Zamanda tüm orada MITS tarafından yapılan bu Altair makinesi.
Ve onlar gerekli tüm bazı yoluydu hobi ve insanlar için kolay yapma
Aslında programı bu odada bizim gibi bu mutlaka anlamadan
Meclis kodu veya makine kodu veya Tanrı, 0 ve 1'lerden korusun.
Biz programcılar gibi Bu odada olanlar, biz
ifade edebilmek olmak istiyorum Kendimizi sahte kodu gibi çok fazla
biraz daha sirke olsa bile Geçen hafta konuştuk daha seçici.
Biz bu gibi bir kod yazmak istemiyorum, Hangi Paul Allen ve Bill Gates, yaptı.
Biz, bunun yerine, kod yazmak istiyorum biraz daha kullanıcı dostu görünüyor.
>> Şimdi bu BASIC olarak bilinen bir dildir.
Ve satır numaraları vardır ne sadece kod satırlarını numara kullanın
Bu sizi yazıyoruz.
Biz bile gerek yok Bu günlerde bunu.
Ama burada görebilirsiniz nasıl BASKI "merhaba dünya"
gerçekten muhtemelen sadece basacaktır.
Ve böylece ne Bill ve Paul yaptım oldu Bu gibi bir kod yazmak için insanları güçlendirmek
yerine bakmak durumunda of-- Bilgisayar bilimi böyle bir kod wall--.
>> Aslında, yakın zamanda CS50 bir fırsat vardı
Profesör Harry Lewis ile oturup Bilgisayar Bilimleri bölümünde, kim
Aslında Bill öğretti Birkaç yıl önce Gates
ve önce burada duruyor alıntılar bu üç sayfa.
Bir göz atalım.
>> HARRY LEWIS: Burada ne var bir olduğunu yazılım erken parçasının listesi
Bill Gates ve Paul tarafından yazılmış Allen, Microsoft kurucuları.
Yani kod ilginç iki nedenden dolayı.
Her şeyden önce, bu oldu Microsoft'un ilk ürünü,
için bir tercüman oldu BASIC programlama dili.
Ve ikincisi, bu oldu ilk girişimlerden biri
yani sıradan bir tercüman oluşturmak için insanların kişisel bilgisayarları kullanabilirsiniz.
>> Peki Bill Gates oldu bir Harvard'da lisans.
Ben 1974 yılında Harvard'da öğretim başladı.
Bu 1975 yılında yapılmıştır.
Yani kariyerinin erken oldu ve erken benim kariyerimde.
Ben aslında Bill öğretti Bu sefer bir ders.
Paul Allen değildi Harvard öğrencisi, ama o
Bir lise olmuştu Bill Gates sınıf arkadaşı.
Gelip bakarsanız liste, sen olacak
Aslında üçüncü bir bulabilirsiniz adı, Monte Davidoff,
kim Gates'in sınıf arkadaşıydı Burada Harvard'da.
>> Tamam, işte bir var Burada ilginç açıklama kadar.
Bu 4K kare kökünü silebilirsiniz "diyor ama döngüler hala çalışması gerektiğini için. "
Tamam, bu yüzden ne demek olduğunu orada olduğunu Bu programı derlemek için iki yol vardı.
Biri sürümü çalıştırmak oldu Bu Altair bilgisayar
Bu sadece 4K kelime vardı hafıza, 4096 kelimeler.
Ama büyük sürüm 8K vardı.
Ve ne yani bu diyor olduğunu Bu 4K versiyonu
Bazı silmek zorunda kod uygun hale getirmek için.
Ve şeylerden biri silinmiş olacaktır
karekök rutin olacaktır.
Ama görünüşe göre döngüler hala gerektiği için
aşağı derleme yaparken bile işe bilgisayarın sadece 4K sürümü için.
DAVID J. MALAN: temalar Yani bir, Biz bilgisayar bilimi göreceğimiz gibi,
Bu kavram olduğunu katman ve soyutlama,
ve gerçekten omuzlar üzerinde duran Bizden önce gelmiş millet, değil
Bill Gates aksine bazı Burada ve Paul Allen anlatı.
Ve bu ne demektir biz alabilir ki bugün
şeyler aslında verilen bu Bize kod yazmak daha kolay.
Cuma günü yaptığı açıklamada Nitekim kodudur daha teknik kaynak kodu olarak da bilinir.
Ve sözdizimi gibi bu İngilizce var Bu daha doğru ve daha iyi tanımlanmış bulunuyor
sözde kod gibi bir şey daha, için hangi resmi bir tanım yoktur.
>> Ve bugün gidiyoruz odaklanmak kaynak kodu
Bu, bu gibi görünüyor hangi kuşkusuz ilk bakışta
Tamamen şifreli görünüyor.
Ve açıkçası, bu şekilde daha estetik var Karmaşık altta yatan bir program daha.
Tüm bu program yapar hatırlama, biz ne dedin edilir?
Sadece "merhaba dünya." Yazdırır
Ve henüz biz ihtiyacımız şeyler her bakmak Bu çok basit bir ifade etrafına sarmak için.
Ama hepsi uzun zaman önce Bu çizgiler ve daha
Size daha iyi mantıklı olacaktır.
>> Ve akış aşağıdaki gibidir.
Ne bizim emrinde ihtiyacınız kaynak gibi, kod almaktır
biz sadece gördüğümüz kodu.
Ve yeni bir program gerekiyor Bunu aracılığıyla çalıştırmak için.
Biz can algoritmaları gerekir Bu gibi kaynak kodu dönüştürmek,
Nesne kodu, 0 ve 1 içine.
Diğer bir deyişle, Bugün öğrenmek için gidiyoruz
Bu nasıl, yazma kaynak kodu kontör,
Bir özel girdi olarak geçmek Bir derleyici olarak bilinen program,
ve biz nesne kodu üretmek için gidiyoruz.
Hangi sadece bir fantezi yoludur Biz bir şey alacağını söyledi
bu gibi görünüyor, onu geçmek Bir derleyici denilen bir programa,
Nesne kodu üreten bu gibi görünüyor.
>> Peki bu tam anlamıyla 0 ve 1 desenleri
Bir tarafından anlaşılmasını Intel, bilgisayar bu gün,
CPU tarafından yorumlanır eğer, Bir bilgisayarın içinde beyinleri,
kelimenin tam anlamıyla yazdırılır, Oldukça basit, "merhaba dünya."
Şimdi sizden çok daha fazla 0 ve 1'lerden var Bunun için gerekli olabilir umut ediyorum.
Biz inşa ediyoruz çünkü Ama bu karmaşıklık iyi bir anlaşma üzerinde
verilen biz bundan böyle alabilir.
Diğer bir deyişle, akıllı bir çok insan Bize serin araçlar bir sürü verdik
ve güçlü yazılım hangi ile biz Şimdi kendi projelerini yapabilirsiniz.
>> Yani başlayalım.
Geçen Cuma, ve Oysa Sorun Set 0 bu hafta,
Bir de oynuyor olacaksınız Bu gibi görünüyor dünya.
Başlangıç ​​bugün ve Problem , Önümüzdeki hafta kodunu 1 ayarlayın
biraz daha bakmak için gidiyor şifreli, ama işlevsel bir
gidiş aynı olması.
Yani haber, üst Scratch, bir Alt C Açıkçası Scratch
çok daha fazla kullanıcı samimi ve ulaşılabilir.
Ama şimdi görsel üst karşılaştırırsanız alt, bir 1-1 tür var
arasındaki yazışmalar puzzle parçaları ve dil
biz oynamak üzereyiz.
Özellikle, demek Mavi bulmaca parçası kontör,
ne anahtar kelimeyle görünüşte eşdeğer Bu dilde veya özel ifade
C aradı?
HEDEF KİTLE: Printf.
DAVID J. MALAN: Printf.
Yani biçimlendirilmiş baskı anlamına gelir.
Ve bu sadece bir fantezi C printf söyleyerek yolu
Bir açıklama veya bir işlevi olacak Bu ekranda bir şey yazdırır.
Ekranda ne yazdırmak geliyor?
Ne olursa olsun içinizde bunu söylemek Parantez içinde tırnak, bir.
Yani yine, kuşkusuz, bir sürü şey var
Aklınızda tutmanız gerektiğini, Parantez, tırnak, noktalı virgül,
ve bir prosesle giderilmesidir.
Ama hepsi tür noktası yanında.
Şimdi ilginç paket olduğu Scratch diyelim bloğu
hemen hemen eşdeğer olduğunu C. printf ifadesi
>> Bu arada, sarı puzzle parçası kontör, yeşil bayrak tıklandığında,
Muhtemelen eşdeğerdir Burada anahtar kelime ne?
HEDEF KİTLE: Ana.
DAVID J. MALAN: Yani ana.
Belki, belki geçersiz, int.
Ama benzeri sesler ana tür çok önemli ve gerçekten öyle.
Yani yeşil bayrak tıklandığında Yine, bir, bulmaca parçası
Bu başladı bir Tüm Scratch programı.
Ama biz şimdi arayarak başlıyoruz Ana olarak bilinen ana, bu işlev.
>> Şimdi bu arada biz olacak aşağıdaki gibi bu genelleme.
Biz diyoruz bir işlev diyebilirsiniz.
Ve görünebilir özellikle böyle.
Peki, ne döngüler hakkında?
Biz dönüştürme başlatmak istiyorsanız veya C Scratch daha çeviri,
Burada bu şey görünüşte sadece "hello world" sonsuza kadar diyor.
Yani bu ilişkilendirmek ise Scratch bir kedi ile komut,
sadece söylemeye devam edecek karikatür balonu çeşit,
"Merhaba, dünya merhaba dünya merhaba Dünya, "reklam nauseum, sonsuza dek.
Biz benzer bir şey yapmak istiyorsanız, C biraz şifreli bakmaya gidiyor.
Ama biz aynı elde edebilirsiniz olarak biz sonunda olacak, sonuçları
Böyle sözdizimi ile öğrenmek.
Ben, yine printf kullanmak için gidiyorum Çünkü günün sonunda
Ben yazdırmak istiyorum "merhaba dünya."
Ve görünüşe göre bir kullanıyorum sonsuza kadar değil kelime.
Bunun yerine ise kelime.
Ama sadece semantik olarak İngilizce, süre tür
döngü veya döngüsünün bir tür işaret etmektedir.
>> Yani olur C kullandığı kelime.
Ve gerçek iken, niçin süre yok etkili bir sonsuza doğru demek?
Peki, süre gibi biz yakında olacak daha takdir,
Bunun yanında bu parantez vardır nerede bir Boole ifadesini koyabilirsiniz.
Ve o kadar uzun ifadesi doğrudur, bu kod,
Bu iki arasında gösterilen gibi kaşlı biz onları arayacağım gibi,
sadece tekrar ve tekrar yayınlanmaya devam edecektir.
>> Peki gerçek doğrudur.
Yani gerçek araçlarla süre sadece sonsuza kadar bunu.
Neredeyse bir aptal Kendinizi ifade etmek yaparız.
Ama sonsuza dek yok oldu C. anahtar kelime süre vardı.
Ve çok basit oldu Gerçek gibi Boole ifadesi.
Ve böylece bu, biz, göreceğiz aynı sonucu elde edilir.
>> Başka nasıl bir döngü uygulamak olabilir?
Peki, Scratch size olabilir Belirli bir sayıda sert kod
Burada döngü yineleme.
Ve böylece tam olarak ne C bu sürümünde yapabilir,
Biz var sayede döngü sözde.
Ve burada döngü için gidiyor biraz cryptically, yineleme,
yukarı değer 0 dan ancak en az 10.
>> Şimdi Scratch değişkenleri.
Sen sahip olmayabilir vesilesiyle bu kullanmak için.
Ama genel olarak nokta, ne, Bir değişkenin geçen hafta dedin?
Bu da ne?
>> İZLEYİCİ: Puan.
>> DAVID J. MALAN: işaret etmek?
Ah, işaret.
Tamam, puan kayıtlarını tutmak, Örneğin, bir oyun.
Ya da daha genel yapıyor değişken ile ne?
Bunların faydası nedir?
>> İZLEYİCİ: Bellek.
>> DAVID J. MALAN: Evet, yani bellek.
Bu bir şey saklamak için.
Ve aptal görsel I tür kullanılır son kez bu cam kase gibi oldu.
Ve biz saklamak istedim Bir değişkenin içinde bir şey,
Örneğin şu anda değer altı olduğu için orada
Burada altı ping pong topları vardır.
Bu depolama sadece bazı tür kap, davlumbaz altında
bit, 0 ve 1 ile uygulanan, Ancak bir bilgisayar yapmak olur.
>> Scratch içinde, Yani biz Bir değişken istiyorum,
böyle bir turuncu bloğu kullanabilirsiniz.
Biz bu sayacı arayacağım Bu özel durumda.
Ben 0 olarak başlatıldı.
Ve ben o ne o?
Her zaman, sayaç demek ki eğer Eğer, Scratch o ile oynamak
Sadece Scratch görürsünüz.
Eğer koymak kedi ya da her türlü kostüm Onu söz konusu numarayı konuşacak.
>> 1 ile değiştirme sayacı 1 arttırılmış gibi.
Ve böylece bu gidiyor ne yani ne saymak?
0 sonsuza til, ya da Kazı kırılana kadar,
ya da dek tür izlerken ilgi kaybetmek
o aslında güvenebilirsiniz ne kadar yüksek.
>> Peki C bu dönüştürmek olabilir?
Biraz şifreli bakmaya gidiyor.
Fakat yine de, eğer her bakmak Bu hatların tek
Genellikle serisinde onlar tür.
Yani görünüşte gidiyor int C. bazı özel anlamı var
Biz yine göreceğiz.
Bir kenara gibi tamsayı anlamına gelir.
Yani sadece numarayı demektir.
Yani tipi var Ben istiyorum cam kase, bir
Bu, numaralarını saklayabileceğiniz pong topları ping değil.
Ve ben eşittir işareti kullanmak için gidiyorum o 0 değeri vardır atamak.
Yani oldukça seti gibi sayaç 0, ancak C.
>> Bu arada, doğru olmakla birlikte, oldu eşdeğer, tabii ki, sonsuza kadar,
Biraz şifreli olsa bile, ve daha sonra küme parantezi içinde.
Ve bu küme parantezi düşünebilirsiniz, hangi, klavyenizdeki yazabilirsiniz
gerçekten eğrilik gibi olmak Scratch bu sarı döngü blokları.
Bu kod birden fazla satır kucaklar.
>> Printf elde ettiğini Şimdi korkutucu biraz çünkü ben
sadece parantez içinde tırnak bakın.
Ama başka ne yeni sözdizimsel bu örnekte?
Yüzde d var.
Sonra eğik N vardır.
Hatta, daha önce gördünüz mü Ben söz vermedi gerçi.
Sonra virgül var.
Ve sonra bir sayaç var.
>> Ama biz sadece bir göreceğimiz bu sadece o an
Baskı a söyleyerek bir standart yolu "Ondalık sayı," alıntı, unquote,
Bazı ondalık sayı.
Ama sonra sana söyleyeceğim Bu ondalık sayı nedir.
Bir virgül var aslında Yani Bu hat söyleyerek printf,
go ahead ve baskı anlamına gelir Bazı ondalık sayı.
Oh, ve bu arada, sayıdır ne olursa olsun, bu değişkenin değeridir.
Ve böylece bu daha yapmak için Biz bir örnek net görürsünüz
önce uzun tam printf içeren Gerçek C programları kapsamında.
>> Şimdi sadece bazı sarmak için Bu yapıların.
Boole ifadeleri, sahip olmayabilir fırsat programınızda bu kullanmak için
ancak, çok iyi olabilir Özellikle koşulları kullanarak eğer.
Dan Ve böylece bu iki örnek X y'den daha az ise, yani Kazan,
x ve y daha az ise ve ya da Y, daha az z daha, biz bunu nasıl tercüme olabilir?
>> Peki, C sadece var Bu gibi bakmak olacak.
Biraz şifreli, daha fazla parantez, Bazı garip ve işaretleri, ama temelde
fikirler onlar gibi basit bulmaca parçası dünyada.
Biz sadece bir şey olmadığını kontrol ediyoruz Başka bir şey daha azdır.
>> Nasıl koşulları hakkında?
İngilizce Özetle, bu ne yapar Scratch kod yığın size söyleyebilirim musun?
>> İZLEYİCİ: İki sayıyı karşılaştırır.
>> DAVID J. MALAN: iki karşılaştırır sayılar, ve x, y den az ise
o kadar diyor.
X ve y daha büyük olduğu takdirde o kadar çok başka der
X eşit ise o kadar der y.
Şimdi x ve y nereden geldi?
Kim bilir.
Scratch Bu öbek Kod bağlamında dışında.
Ama ne şimdi yapmak istiyorum tercüme olduğunu Sadece bir an için bunu görmek için.
>> Rahat olsun Yani Sorun Set bu hafta
0 Bu dünyada oynarken Soldaki, fark
fikirler değişiyor olmadığını Bir sonraki veya ötesinde ya da bu hafta.
Biz sadece gidiyoruz şeyleri yazmaya başlayın
ile farklı bir şekilde eden yerine bizim fare klavye.
Yani >> x te y den az ve Orada bazı parantezler var,
sonra bazı kaşlı var Tekrar tür onu saklanması
Sarı puzzle parçaları yapmak gibi.
Ve ben x printf gidiyorum vb y ve daha azdır.
>> C hakkında güzel nedir Burada gördüğünüz gibi,
Bu iç içe alamadım ki, yuvalama, bu mutlaka var yuvalama
sağa kodunuzu itmek olacak.
Bunun yerine her şeye sahip olabilir sanatçısını düzgünce bu gibi.
Ama bu sadece bir estetik var Biz uzun zaman önce tekrar görürsünüz detay.
>> Tamam.
Yani bize geri getiriyor Bu şifreli görünümlü programı.
En aslında bazı kod yazalım.
Şimdi nasıl kod yazma konusunda gidiyorsun?
Eğer sahip olduğunuz tüm bu yıllar Mac veya PC, masaüstü veya dizüstü,
aslında yeteneği yaşadım programlama kodu yazmaya başlamak için.
Ama muhtemelen eksik Programın özel bir türü.
Kesinlikle kod yazabilirsiniz.
Ama sen, ille can kutunun dışında,
Bu kaynak kodu dönüştürmek nesne kodu, 0 ve 1 içine
Bilgisayarınızda ne olmadan?
HEDEF KİTLE: Derleyici.
DAVID J. MALAN: Yani derleyici, doğru.
Şimdi size büyük olasılıkla Bir derleyici sahibi ben değilim,
Bir derleyici indirilen hiç.
Ama sen indirebilirsiniz görürsünüz yazılımın en herhangi bir diğer parçası gibi.
Mac OS dünyasında, sen olabilir indirmek ya da zaten indirdiğiniz
Xcode veya GCC ya da Clang denilen şey.
Eğer geliyorsa Windows dünyasında size olabilir
Visual Studio indirdiğiniz, Visual Basic, böyle ortamlarda.
Derleyiciler onlarca var Eğer kullanabilirsiniz bu gün.
Ama burada bunun kısa bir ağrı olurdu olduğunu
ve, açıkçası, teknolojik yüzlerce kabus
Farklı insanların Tüm bilgisayar konfigürasyonları
onların makinelerini yapılandırmak Tam olarak aynı şekilde
Böylece hepimiz aynı sayfada olabilir.
>> Biz bunun yerine, ne Peki CS50 biz size olan
Standart ortam, bir Var Linux ortamında
Biraz bakmak için gidiyor böyle bir şey.
Siz bu daha görürsünüz Sorun Seti 1 şartname hangi
Bu Cuma gece çevrimiçi gidecek.
>> Ve bu ne demek Eğer bundan böyle olduğunu
muktedir olacak indirmek ve bir program yüklemek
CS50 Aletler denir.
Ve indirmek için gidiyoruz ve adlı başka bir program yüklemek
Sadece bir bir hipervizör, Bunu başarmanın yolu süslü.
Eğer bir Mac veya PC ya da a kendi olsun Linux bilgisayar veya Solaris bilgisayar,
veya ne olursa olsun deli işletim Sistem koşuyoruz,
Eğer bir program indirmek için gidiyoruz var hypervisor'u denir
CS50 koşacaklar Bilgisayarınızda Aletler
olursa olsun işletim sistemi ne.
Diğer bir deyişle bir hiper dönüştürür ne olursa olsun dil bizim şeyler,
ne olursa olsun talimatlar senin Kendi bilgisayar anlar.
>> Yani bu bir katman olduğunu.
Ve yine, bu tür bilgisayar tematik arasında
bilim, şeylerin üstüne bina.
Windows'u olabilir.
Mac OS olabilir.
Ama ertesi hafta başlayan sen indirdiğiniz olacak
yazılımın ücretsiz parça hipervizör denir.
Sen bir parça indirdiğiniz için gidiyoruz Yazılımın CS50 Cihazı adı.
>> Bu hiper çalıştırmak için gidiyor, hangi bilgisayarınızda çalıştırmak için gidiyor.
Ve sonucudur hepimiz olacak ki
gibi basit bir pencere var Mac veya PC üzerinde bu
Bu hepimizi yanılsamasını verir Aynı işletim sistemini çalıştıran,
başka olmadan Bilgisayarınızda etkisi.
Ve tam ekran yapabilirsiniz o ve aslında davranır
Eğer çalışan sanki bir Linux işletim sistemi olarak adlandırılan,
hangi ne CS50 olduğunu Eşya üzerine dayanır.
>> Yani aslında bu kullanmasına izin Şimdi bir program yazmak.
Bir programı yazabilirsiniz Microsoft Word kullanarak.
Bir programı yazabilirsiniz TextEdit'i veya Not Defteri kullanarak,
veya WordPad, ya da hemen hemen herhangi bir kelime işleme programı Hiç kullandım.
Ama gerçek olan sen olmamalı gerçekten bu programlardan birini kullanabilirsiniz.
Kesinlikle kullanmamalısınız Microsoft Word gibi bir şey bu
cesur bakan ve italik, ve vardır büyük yazı tipleri ve küçük yazı tipleri,
Bilgisayar yok, çünkü Bu herhangi umurumda.
Tüm bilgisayar olduğu umurumda olacak
C ile yazılmış talimatlar gibi İngilizce
>> İçeri yapacağız Peki CS50 Appliance
özgürce bir programı kullanmak olduğunu mevcuttur, bu ve var
Bu önceden yüklenmiş Cihaz, gedit çağırdı.
Ve gedit sadece bir süper basit Mac OS adlı TextEdit gibi metin editörü,
gidiyor, Windows Not Defteri gibi Bu gibi küçük bir şey bak.
>> Yani aslında 's etmeyelim Bu slaytlar bak.
Ama aslında içine gidelim Çevre kendisi.
Ben önde gitmek için gidiyorum ve Bu, diğer pencerede, giriş,
Ben ettik benim CS50 Aletleri için Burada benim laptop önceden yüklenmiş.
>> Windows gibi bu, dikkat ve Mac OS, bazı menüler var.
Windows gibi o koyar o orada yerine
Orada aşağı koyar, Mac OS, bir.
Ama gerçek bu kadar olduğunu Aynı her türlü.
Ve burada bir bütündür Yazılımın demet.
Dropbox var.
Aksesuar bir sürü var, grafiksel programlar yaparız
Sorun setleri için vadede daha sonra kullanın.
Yani yerleşik bir web tarayıcısı var Bu tam teşekküllü bir bilgisayar olduğunu
Bir bilgisayarın içinde.
>> Ama ben bu tıklayın gidiyorum Burada beyaz simgesini soldaki,
hangi Gedit için simgedir.
Ve bir pencere açmak için gidiyor Bu, ona üç panelleri vardır
sol on, bir üst, bir ve bir alt on.
>> Şimdi bu sağ üst birinde olduğunu Aslında bazı kod yazmak için gidiyorum.
O yüzden bu yapalım ,.
Ben, Kaydet Dosya gidiyorum.
Ve hiç görmemiş olabilir daha önce bu özel pencere.
Ama bu, Mac OS veya Windows gibi.
Sadece bir pencere var klasörlerin tüm
Ben bu bilgisayarın içinde var.
>> Ve ben kurtarmak için gidiyorum hello.c olarak dosya.
Ve ben gidiyorum önde ve Kaydet'i tıklatın.
Ve şimdi ben bir sekme var fark sol üst kısmında merhaba.c denir.
Yani muhtemelen oldukça tanıdık değil ettik bile
daha önce bu özel programı kullanılmıştır.
>> Ve şimdi ben bu yazın gidiyorum komutlar oldukça şifreli dizisi
biz bir an önce gördüm.
Dahil, standart I / O.h.
Yakında Daha.
Int main boşluk, açık kıvırcık ayraç, küme ayracı kapattı.
Ve sonra orada içimde olduğunu düşünüyorum nerede "merhaba dünya" noktalı virgül vardı.
Ve şimdi kaydedin.
>> Peki bu C ile yazılmış bir program, kaynak kodu, bu nedenle, yazılı.
Ama ben sadece bu programı çalıştıramaz.
Ben tür çift istiyorum yerde bir simgeye tıklayın
ama hiçbir simge, diğer var kaynak kodu dosyası daha.
Ne, yine süreç şimdi ise Ben ile bu dosyayı çalıştırmak gerekir mi?
HEDEF KİTLE: Derleyici.
DAVID J. MALAN: Yani bir derleyici.
Yani farklı bilgisayarlarda size farklı şekillerde bunu.
Ama biz burada ne yaptık Var CS50 Aletler
temsilcisi nasıl olabilir Bu çok farklı sistemlerde yapmak,
Ben sadece gidiyorum edilir yapmak adında bir komutunu çalıştırın.
Ve yapmak tam anlamıyla yapacak.
Bana bir program yapın.
>> Peki gidiyor olun Benim için bir derleyici çalıştırın.
Ve programın adı Merhaba yapmak istiyorum.
Şimdi yapmak bir programdır.
Ve yapmak yeterli akıllı olduğunu diyorum, eğer merhaba yapmak fark
otomatik olarak bakmaya gidiyor Bir dosya adı verilen hello.c için
sadece çünkü yolu yapılandırılmış.
>> Peki şimdi vurduğunuzda buraya gir, bu çılgın şifreli hattı sadece idam var.
Ve önce, bana güven Uzun, sadece gün içinde,
ne bütün anlayacaksınız Bu saçma araçlarının.
Ama şimdi, sadece yapmak biliyorum Bir derleyici tetiklenmiş yürütme.
Diğer bir deyişle, bu mu Benim bilgisayarda bir derleyici
Bu önceden yüklenmiş bulunuyor CS50 Appliance
Biz Sorun Set 1 size teslim edeceğiz.
Ve sonra da merhaba.c aldı giriş, ve görünüşe göre üretilen
0'lar ve çıkış olarak 1s.
>> Ve varsayılan olarak ne yapar onu kurtarır olduğunu Bir dosyada bu 0'lar ve 1'ler merhaba çağırdı.
Ve bu sözdizimi olsa da olabilir sadece nokta söyleyerek, sizin için yeni olabilir
çizgi merhaba olacak hangi ben bu programı çalıştırmak demektir.
>> Şu an için ve en azından bir çift için programların haftalık, hemen hemen tüm
biz olacak yazma siyah ve beyaz metin pencereleri.
Hiçbir fareler, hiçbir tıklayarak, penceresiz, hiçbir simge.
Biz basit tutmak için gidiyoruz ve altta yatan fikirler üzerinde odaklanmak
Biz bir şey olsun başlangıçta önce yüksek düzeyde, örneğin,
Biz konuştuk mola dışarı oyun gibi İlk derste geçen hafta hakkında.
Ben buraya gir vurduğunuzda >> Yani, bu kadar Bir metinde sadece çevre eşdeğer
merhaba denilen bir simgeye tıklayarak iki katına.
Eğer irade ne bekliyorsunuz Daha sonra Enter vurduğunuzda ne?
>> İZLEYİCİ: Bu "merhaba dünya." Basalım
>> DAVID J. MALAN: Umarım o "merhaba dünya." yazdıracak
Ve gerçekten de yaptım.
Şimdi orada oldu bazı Burada şifreli sözdizimi.
Sadece için sarma Let Bir anı ve görürseniz biz
tarafından sadece çıkarım açamazsınız , müdahalesi çalışıyor ve başarısız,
Burada neler oluyor olarak.
Ne ters eğik çizgi n kurtulmak olur?
Şimdi size bazı ettik kim Muhtemelen önce programlanmış
Bunun ne anlama geldiğini anında biliyorum.
Ama ettik kim o sizin için daha önce programlanmış asla,
en azından ne olup bittiğini kendinize düşünmek Ben bu programı yeniden ne zaman değiştirmek için?
Yani aşağı geri dönmek için gidiyorum benim küçük siyah ve beyaz pencere, hangi
penceresi olduğu Ben bu derleme yapabilirsiniz.
Ben merhaba yeniden derlemek için gidiyorum.
Biz aynı görmek için gidiyoruz komutlar şifreli dizisi.
Ve ben merhaba nokta çizgi yapacağım.
Ve şimdi birisi, yapacağınız eğer, kim, daha önce programlanmış asla
Bu sefer farklı ne olabilir?
Evet.
>> İZLEYİCİ: Bu durmayacak baskı "merhaba dünya."
>> DAVID J. MALAN: Bu amaçlara yönelik üzgün gidiyor?
>> İZLEYİCİ: Onu baskı duracak değil?
>> DAVID J. MALAN: Bu olmaz yazdırmayı durdurmak "merhaba dünya."
Yani kötü bir fikir.
Diğer fikirler?
Evet.
>> İZLEYİCİ: Hata iletisi?
>> DAVID J. MALAN: Hata mesajı, tamam, olabilir.
Başka ne?
HEDEF KİTLE: Bu yazdırabilir yanı sıra noktalı virgülle dirsek?
DAVID J. MALAN: yazdırabilirsiniz Olabilir yanı sıra noktalı virgül ile dirsek.
Yani belki de ters eğik çizgi daha sonra bazı önemli terminous tür.
Başka düşünceler?
>> Peki tüm iyi fikirler.
Ve aslında, gidiyor Bir hata mesajı olarak.
Bu büyük olasılıkla muhtemelen genel cevap için
Önümüzdeki birkaç hafta için Burada kod öğrenmek gibi.
>> Ama şimdi bilgisayarlar unutmayın Sadece yapmanız onlara ne.
Saçma fıstık gibi çok tereyağı ve jöle örneği.
İnsan bilgisayarlar yalnızca gerekiyordu Yapmanız onlara ne yapmak.
Bu durumda, eğer Yani Bilgisayarı söyleme
o yanıp sönen imleci hareket ettirmek için Bir sonraki satır, bunu yapmak için gitmiyor.
Yani bu programı çalıştırdığınızda Şimdi, fark.
>> Bir hata gibi görünüyor.
Belki, bir estetik hata var.
Ama bu konuda farklı ne Açıkçası sonuncusu karşı çıktı?
Evet.
>> İZLEYİCİ: Bu yeni bir satır yapmadım.
>> DAVID J. MALAN: Bu yeni bir satır yapmadım.
Şimdi o sizin kim belki yapılmış web sayfaları var
önce, sen biliyor olabilir BR etiketi veya paragraf etiketi,
ruhu çok benzer.
Bir web tarayıcısı kadar sizi görmezden edecek Eğer tam olarak ne yapacağını söyle.
Benzer şekilde, C gibi bir dildir sadece Yapmanız bunu söylemek ne yapacaksın.
>> Yani neden o Bu örneklerin tümünü
bugüne kadar, bir tür var raslantı bu ters eğik çizgi vardı
Orada, bu araç bu hangi kendinizi ifade
Yeni bir satır karakteri olarak, tabiri caizse.
Ve ne tür, belki, takdir Bu tür aptalca bakmak olacağını
eğer başka bir şey.
Ben yeni bir satır istedim, sadece isabet tür ardından Enter ve
bu gibi bir kod butchering Gerçekten size doğru yolu ovmak gerekir.
Ve sen yok bile Gerçekten bu noktada bakım,
Bunu fark edeceksiniz Bu özellikle değil
kod iyi görünümlü parçası.
>> Ve bu yüzden ne dünya karar yıl önce
Bu sizi koymak istediğinizde açıkça yeni bir hat üzerine imleç,
Açıkça söylemek gerekir Yeni hat, ters eğik çizgi n.
Ve diğer bazı var Böyle semboller.
Ama Şimdi biz sadece edeceğiz Ters eğik çizgi n odaklanmak.
>> Şimdi programı yapalım Biraz daha ilginç.
Ben önde gitmek için gidiyorum ve Bu sefer yeni bir dosya açmak.
Ben bu kadar merhaba-1.c kaydetmek için gidiyorum.
Ve sadece tekmeler için, ben gidiyorum benim Dropbox klasörüne koymak gidin.
>> Eğer CS50 göreceğiniz gibi Cihazın için dokümantasyon,
Problem daha sonra bu hafta Set 1, biz teşvik edeceğiz
Eğer Dropbox kullanmak veya Bazı eşdeğer hizmet,
kodunuzu en sonra tüm çünkü gidiş otomatik olarak yedeklenmesi.
Ben ettik yüzden böylece var Burada bu klasöre gitti.
>> Ve şimdi ben bir yazmak için gidiyorum biraz daha farklı bir program.
Standart I / O.h, int void main ekleyin.
Ve sonra burada printf, merhaba dünya, önce hangi tam olarak aynıdır.
>> Ama şimdi bir şey yazdırmak istiyorum Bu biraz farklı.
Ben, yazdırmak istediğiniz "Merhaba, David." derler
Pekala, açıkçası bu yüzden, umarım gerektiği
Ben yeniden derlemek eğer durum Bu programın, onu yeniden,
söylemek gidiyor "merhaba, David."
>> Ama ne tanıtmak istiyorum değişken bu tür,
gidiyor, bir kabın kavramı Kod bunu D-a-v-i-d ve zor değil saklamak için
Benim programa.
Peki ben ne başlarsanız Böyle bir şey yapıyor?
>> String s, bu bir değişkendir.
Bir dize istiyorsanız, Bir kelime veya bir cümle olarak da bilinir.
Karakter dizisi ne olduğunu Biz programlama bir dize diyoruz.
Biz sadece jenerik çağrı gidiyoruz güzel bir basit bir isim çünkü, s.
Ama bir şey diyebiliriz.
>> Ben string s eşittir söylemek için gidiyorum unquote, "David," noktalı virgül alıntı.
Ve şimdi ben eklemek istiyorum D-Bir-v-i-d ben baskı değilim ne içine.
Ve biz önce bir teaser gördüm Bazı özel sözdizimi ekran
Bu bize izin Bir değer yerine.
Özel neydi Sembol birkaç slaytlar önce?
>> Yani yüzde.
Zamanda yüzde ondalık sayı d.
Bu gerçekten burada ilgili görünmüyor.
Orada 's çıkıyor Başka yüzde sembolü,
standları olan yüzde s, bir dize için bir yer tutucu için.
>> Peki şimdi, çok basit, ben değilim merhaba-1 yapmak gidecek,
Bu dosya denir çünkü merhaba-1.c ve Enter'a basın.
Ve ben batırdım.
Ne oluyor?
Biz başlamak zorunda nerede Peki, burada Bu komutun olduğumuzu takdir
satırı ortamında, bu Sadece çevreyi metin.
Simgeler üzerinde hiçbir tıklayarak yok Şu anda klasörler gibi.
Ve bir an önce geri düşünüyorum.
Ne klasör diyorum yaptım Benim kod tasarruf oldu?
Yani Dropbox klasörüne.
Bir şey olarak adlandırılabilir.
Ancak Dropbox adı olur.
Yani ben bir şekilde çift tıklayarak gerekir Bu Dropbox klasörüne almak için
ve içine almak benim Kod merhaba-1.c çağırdı.
Aslında, beni go ahead ve en aza indirmek izin Sadece bir an için bu pencere.
Sadece Windows ve Mac OS gibi, Linux klasörler vardır.
CS50 Appliance klasörleri vardır.
Sadece şimdi biz hapsederek ediyoruz bulunuyor Bu metin ortamına kendimizi.
>> Ama ben çift tıklıyoruz eğer Dropbox üzerinde, orada fark
Ben derlemek istediğiniz dosyadır.
Ama bu siyah ve beyaz gerekir terminal penceresi, tabiri caizse.
Ama gerek, bu nedenle, hareket etmek için Bu klasör veya dizine.
Yani biraz gizemli, ama Siz de bu kullanılmış alırsınız.
>> Linux dünyasında, hangi tekrar çalışma olduğunu
Sistem, biz CS50 içinde koşuyoruz Cihaz, CD adında bir komut var.
Hangi Ben CD, uzay, Dropbox yapmak anlamına gelir.
CD, değişim dizini.
Sağ.
Geri gün insanlar vardı bilgisayar icat ve işletim
Bu gibi sistemler, onlar istedi en az tuş vuruşlarını mümkün yazın.
En kolay yolu söylemek Yani change directory CD'si oldu.
>> Yani CD vurmak, uzay Dropbox, Burada ne değişti fark.
Parantez içi Cihaz tür
Beni humoring ve Ben nerede olduğumu bana hatırlatan.
Yani açık klasör Dropbox olduğunu.
Ben şimdi ls yazarsanız Liste, yine özlü,
insanların istemiyordu çünkü Gün l-i s-t geri yazın.
Yani bunun yerine ls yaptı.
>> Girin.
Ben, merhaba-1.c iki şey görmek dikkat edin ve sonra bu şifreli şey, kaynak 1m.
Söyleyerek sadece benim yolu hafta 1 Pazartesi için kaynak kodu.
Ben indirilen bir klasör var Ben bugün erken saatlerde yapılan CS50 web sitesini
ve sadece koydu peşin cihaz.
>> Ama şimdi tek şey Bu programı yapıyor umurumda.
Yani merhaba-1, Enter yapmak yazarken.
Kahretsin.
Bir şeyler yanlış gitti.
Yani bu ayrı kızdırmak verelim.
Ve ne yazık ki bu nerede şeydir ilk başta biraz stresli olsun,
en azından sen yasiyorsaniz daha önce programlanmış asla.
>> Tanrım.
Ben bir iki satırı programı yazdı ve Ben hataların dört satır var.
Yani burada neler oluyor.
Öncelikle her zaman geri kaydırma yukarı ve ilk hata mesajını bulun,
çoğu zaman sadece derleyicileri çünkü Sen ve ben ne kadar karışık.
Derleyiciler oldukça aptal.
Onlar sadece ne yapacağım Yapmanız söyle.
Onları karıştırmayın Ve eğer, onlar sadece konum tür ellerini yukarı atacak
ve belki daha fazla hata iletileri atmak aslında daha önemlidir.
>> Yani ilk bakalım.
İlk süper şifreli.
Ama ihbar, burada adı var Dosya hangi görünüşte berbat.
Colon 5, kolon 5 sadece üzerinde gelir Beşinci karakteri çizgi 5.
Yani karakter beşinci sütun, Hata, eğer olacak.
Bildirilmemiş tanımlayıcı dize kullanılması.
Standart n demek istediniz?
>> Hayır, ben dize geliyordu.
Ve sonra bu tür var kopyalama ve yapıştırma
Ben gerçekten çizmek için ne yazdığınız benim Ben berbat yere dikkat.
Nedense C Yani, ya da en azından derleyici
Kelime dize anlamıyor.
Biz o kadar yaptım çünkü Ve bu.
Yani dize yok C. Ne CS50 yapar içinde,
İlk birkaç hafta için Sadece sınıfın,
bazı eğitim vermek olduğunu jantlar, tabiri caizse.
Ve bu eğitim jantlar koymak CS50.h. adında özel bir dosya içinde
>> Peki bu iki dosyanın ikinci görünüşte nokta h sona isimler.
En geri sarma edelim.
Printf bir ifade ya da işlevi Bu görünüşte bir şey yazdırır
ekrana.
Ama beni görmedi Doğru, printf uygulamak.
Birisi yıl önce printf uyguladı.
Hangi dosya size he bahse ediyorum ya da o uygulama koymak
printf, printf için kodu?
>> Standart I / O.h adlı bir dosyada.
Aslında, bu büyük bir olasılıkla İki dosya, standart I / O.h,
hangi başlık için duruyor Dosya ve standart I / O.c,
hangi C kaynak kodu için duruyor.
Yani o birkaç yıl önce plopped Onlar bu dosyanın içine yazdı kod
Böylece bizim gibi insanlar yıl sonra içerebilir,
böylece kendi programlarında, konuşmak için.
>> Ve gerçekten de, bu ne diyez işareti var kelime takip yapar bulunmaktadır.
Bu, yerel sabit diskinizde görünüyor standart I / O.h adlı dosyayı bulur
ve daha sonra etkin bir kopya ve Kendi dosyanın içine yapıştırır.
Yani şimdi benim programı bilir nasıl ekrana yazdırmak için.
>> Bu mantık, So dize tanımlanır?
>> İZLEYİCİ: CS50.h.
>> DAVID J. MALAN: CS50.h.
Ve gerçekten de, bu ne biz çekirdek kadrosu, yapmış.
Biz bir kaç veri türlerini icat ettik, yani bir dize gibi, konuşmak,
olanlar ek olarak size bir int gibi, ücretsiz olsun.
Ve biz bir karakter gibi diğerleri görürsünüz Bir karakter ve bir kaç daha fazla.
CS50.h görünüşte içi dize en azından bazı söz.
>> Peki şimdi beni önde gitmeme izin çalıştırın ve makyaj merhaba-1.
Ben tekrar yakınlaştırmak ve benim parmak arası olacak.
Şimdi tek yapılmış olan Ben birçok şey sabit değiştirin.
Ama kahretsin.
Veri argümanlar daha fazla yüzdeleri.
Ne bu sefer yanlış yaptın?
>> Bu yüzden hala oldukça şifreli var.
Ama bu hata üzerinde satır 7 ve karakter 21.
Yani burada bakmak gidelim.
Biraz ince olduğunu.
Ama düşünmek eğer ne Burada temel fikirler vardır
belki de bu ayrı kızdırmak yapabilirsiniz.
>> Yani printf fonksiyonunun adıdır.
Parantez, bugüne kadar olduğu sadece biz etrafında ne koymak gibi
biz geçen ediyoruz şeyler bir işleve girdi olarak.
Pekala, sadece bir keyfi insan kongre.
Parantez kullanın.
Bu parantez içi Biz çift tırnak koyarak oldum,
ve sonra gibi bir dize "merhaba dünya."
>> Ancak, daha önceki örnekte çok kısaca Scratch ile bakmak yaptım.
Ve biz yüzde d vardı başka ne Bu parantez içinde oldu
Ben sözlü seslendi ki?
Evet.
>> İZLEYİCİ: Eğer alıyorsun ne Yani [Duyulamaz] içinde [duyulamaz]
ne bu [duyulamaz]?
DAVID J. MALAN: Kesinlikle.
Yani biz yüzde d vardı.
Ama sonra yakın vardı alıntı, virgül, sayaç.
Sağ.
Biz istediğimiz belirtilen yer tutucu olarak yapmak.
Peki ben burada yapacağım olduğunu virgül, beni koymak ne istiyorsun?
İZLEYİCİ: S.
David J. MALAN S, çünkü bu durumda, s
saklama kabının adıdır.
O cam kase adı.
O sayaç önce Oysa Basit Scratch örneği biz baktı.
Yani şimdi iki yapılmış olan değişiklikler, beni yakınlaştırmak izin
ve bir kez daha deneyin Bu programı derlemek.
>> Şimdi bu şifreli satır göreceksiniz.
Ama bu aslında derleyici adı.
Clang derleyici adıdır.
Sadece beni kurtaran olun Hiç bir baş ağrısı
uzun çılgın komutu yazarak.
Yani şimdi ben nokta merhaba-1 slash yoksa, Ben "merhaba, David." Görmelisiniz
>> Oldukça underwhelming olsa, değil mi?
Biz yapmış olabilir Bu çok daha basit
değişkenlere ilişkin konuşmadan CS50.h ve bütün vb.
Yani bir yapalım Biraz daha ilginç.
>> CS50.h ek olarak, dize gibi şeyler olan
ilan, CS50 kütüphanesi Ayrıca birkaç işleve sahiptir.
Yani tıpkı yıllar önce, birisi yazdı printf ve standart I / O.h koymak
ve bazı diğer dosya.
>> Biz, CS50 personeli, bir fonksiyon yazdım getChar, GetDouble, GetFloat denilen
GETINT, GetLongLong, GetString, ve biz bir dosya içine bu koymak
CS50.h ve CS50.c. adı
Ve biz onları içeri koymak CS50 Appliance.
Ve insanlar da olabilir Onlar eğer onları online indir
onları koymak istiyorum onların Kendi bilgisayarlar yanı sıra.
Yarattığımız söylemek için hangi kullanıcıdan girdi almak fonksiyonlar.
Ne tüm bilmiyorum Bu veri türleri vardır.
GETINT gibi, bir tür basittir kullanıcıdan şekilde bir tamsayı olsun.
Ve GetString olsun gibi muhtemelen Bir kelime veya kullanıcıdan bir cümle.
>> Yani bu odaklanalım.
Ve ben geri gidiyorum Cihaz ve ben önde gitmek için gidiyorum
ve bu dosyayı kaydetmek, en diyelim benim ikinci sürümü gibi merhaba-2.c.
Ve en değişikliklerin bir çift yapalım.
>> Bu kez yerine Sert kodlama David, hangi
inanılmaz tutarlı yapar ama underwhelming program
Ben bunun yerine GetString ne olur?
Şimdi GetString fark açık parantez vardır,
Kapalı parantez, çünkü herhangi bir giriş gerekmez.
Sadece gidip gidiyor kullanıcıdan bir dize.
>> Ve şimdi diğer sözdizimi bir kelime.
Noktalı virgül sadece bir kod satırı bitirmek.
Her yerde onlara ihtiyacım yok.
Ama bu sadece ben değilim demektir Bu kod satırı ile yapılır.
Bana başka geçelim deyimi veya işlev.
String değişkeni bildirir.
Dize söyleyerek gibi Bana bir kase ver lütfen.
Ve bana bunun bir dize koyalım.
>> Ve şimdi eşittir işareti.
Eşittir işareti nedir esas olarak eşdeğer?
>> İZLEYİCİ: atayın.
>> DAVID J. MALAN: Evet, bir değer atama.
Yani eğer ben, örneğin, çağrı Bu fonksiyon GetString,
ve biz bu bir anda görürsünüz bir dize için kullanıcı istemi olacak.
Bu beni daha sonra yazmak icar gibi D-A-V-I-d bir kağıt parçası üzerine.
Ve ben dize derken s, GetString eşittir
Eşit gerçekten anlamına gelmez C programlama eşit.
Bu sağdan atamak anlamına gelir sol tarafına tarafta.
>> Yani bir dize aldım.
Ve eşit işareti koymak anlamına gelir depolama konteyner s çağırdı.
Ve sonra kapalı bu geçmek printf aslında kendi şey yapmak.
>> O zaman sonuç gidiyor biraz farklı bakmak için.
En merhaba-2 yapabilirim edelim.
Ya işe yarayabilir.
Sen birlikte aşağıdaki ediyoruz.
Merhaba-2 çalışmış olun.
Dot merhaba-2, Enter çizgi.
>> Ben sonsuz var gibi görünüyor döngü falan.
Hiçbir şey oluyor.
Neden?
>> İZLEYİCİ: Bu sonsuz bir döngüye yapıyor.
DAVID J. MALAN: Bu sonsuz bir döngü olduğunu.
Bu tür benim için bekliyor aslında bazı girişi ile bunu sağlamak.
Bu yüzden bana go ahead ve yazın izin David ve Enter tuşuna basın.
Ve şimdi "merhaba, David." Diyor
Ben tekrar çalıştırın.
En Rob, yazın edelim "merhaba, Rob."
>> Şimdi bu kötü Hiç kullanıcı arayüzü.
Kullanıcı görünüşte var ne yapacağını bilmek gerekiyordu.
Ama ne olursa olsun.
Bu aynı binayı kullanma Sadece Scratch gibi bloklar,
biz bu sorunu çözmek ve söyleyebiliriz lütfen adı gibi bir şey, kolon,
uzay, yakın, alıntı kapalı parantez, noktalı virgül.
Yani bir sürü tekrar sözdizimi ile sersemlik.
>> Ama ben sadece bir ekledik fark Bu bir üstündeki bulmaca parçası
ve bu yukarıda.
Yani şimdi ben bu yeniden eğer, merhaba-2, girin.
Bir dakika bekle.
Sorun nedir?
Bu farklı herhangi davranıyor değil.
Evet.
>> İZLEYİCİ: Tekrar yapmak çalıştırmak vermedi.
>> DAVID J. MALAN: ben yapmadım Doğru, yeniden yapmak çalıştırın.
Yani benim kaynak kodunu değiştirdim.
Fakat yine de, bu akış var.
Derleyici ile Kaynak kodu verir Eğer yeni bir nesne kodunu veya 0'lar ve 1'ler.
Yani aslında gerek merhaba-2 girin rerun yapmak.
Tamam, bir şey olmuş gibi görünüyor.
Nokta merhaba-2 çizgi.
Adınız lütfen.
Ve şimdi açık olmak, neden Aynı hat üzerinde imleç?
Kesinlikle.
Ben ters eğik çizgi koymadı n buraya benim kod.
Yani şimdi ben yazabilirsiniz Daven gibi bir şey, girin.
Ben tekrar çalıştırın ve yazabilirsiniz Gabe gibi bir şey, Enter
ve biz farklı bir program olsun Tekrar ve tekrar ve tekrar.
>> Şimdi sonuçta ihtiyacımız olacak birkaç farklı yetenekleri kullanmak için.
Biz sonuçta bazı tanıtmak gerekiyor koşulları şartlı şeyler yapmak.
Belki bu yüzden yapabileceğimiz döngüler Tekrar ve tekrar şeyler.
>> Belki güzel olurdu biz eğer Kendi fonksiyonları uygulamak,
gibi biz kendi uygulamak printf veya getString bizim kendi versiyonu
ve GetFlow, çünkü sonuç olarak, hatta Bu komut satırı ortamı kullanarak
biz bile en yapabilir şeyleri görsel olarak ilginç.
>> Aslında sonuç olarak bana yapalım.
Ben önde gitmek için gidiyorum ve bu pencereleri kapatın
ve burada bu simgeyi açın, hangi sadece bir büyüktür
Bu sürümü gömülü Terminal penceresi.
Böylece gEdit değil, sadece kodumu için yer,
ama aynı zamanda bir terminal penceresinde inşa, Ben çalıştırabilirsiniz siyah ve beyaz pencere
komutları.
>> Ben sadece açmak oldu Bu daha büyük bir versiyonu.
Ve şimdi ben gitmek için gidiyorum Ben zaten var klasör
dersin web sitesinde önceden koydu.
Ve ben önde gitmek için gidiyorum ve , thadgavin.c adlı bir dosyayı açmak
hangi başkası tarafından yazılmıştır.
>> Ve biz bu bakarsanız, Bu kodun türden değil
Biz bu yana yazılı olacak Bu kodun amacı
güzel yazmak oldu Bu o olabilir kod arıyorum,
bağımsız olarak olup olmadığını Başka bir insanın hiç olabilir
Bu kodu anlamak.
>> Nitekim, her yıl ne var karmaşıklaştırılmış C yarışma denilen hangi
yazmak gerçek meraklılarının için Başka hiç kimse okuyabilir kod,
ama bu da bir şey yok Gerçekten basit ya da gerçekten şaşırtıcı.
Ve biz diye düşündüm Bu görünüm ile sonuçlandırmak
Oldukça şaşırtıcı bir şey de Eğer daha önce bir kez görmüş olabilir.
Ama biz bu konuda bitireceğiz Not, nokta çizgi, thadgavin.
Bu daha sonra bekliyor budur.
>> Bu CS50 için var.
Çarşamba günü görecek.
>> [MÜZİK OYUN]