>> [MÜZİK OYUN]
>> DAVID MALAN: Pekala bu CS50 olduğunu ve bu hafta bir sonudur.
Yani benim eski tanıtmak istiyorum danışana, Andel Duff, sadece kim yapar
iPhone 5 bu yanı sıra, standları kürsü, o da araba yapar.
ANSEL DUFF: Nasıl gidiyor, herkes?
Ben sadece sana biraz anlatmak istiyorum Formula SAE hakkında biraz hangi I
Kaptan duyuyorum.
Bir MIT ekibi var.
Ben sadece sana anlatmak istiyorum Siz bu konuda biraz
ve umarım bazı ilgi oluşturmak.
>> Bu yüzden bana bir ile çalışmasına izin Bizim takım hakkında birkaç şey.
Yani biz tamamen konum Öğrenci çalışma, buradaki tüm
üyeler tasarım, taklit, Bir alt testi ve üretici
Arabanın.
Biz kendi makine atölyesi var ve garajlar ve N52-- veya üzgün,
Aynı bina N51-- MİT Bilim Müzesi gibi.
Ve biz insanlar O araba.
Ulusal rekabet var Yaz başında,
ve daha sonra daha küçük bir atışları vardır yıl boyunca yarışmalar.
Ve sonra sürücü eğitim yapmak gün yeni üyeler hakkında bilgi almak için.
>> Bizim yapı günler vardır 11:00-8:00 Cumartesi.
Öğle ve akşam yemeği bakımı alıyor bölgesinin Bertucci en ve Beamtown'dan
sırasıyla.
Biz bir haftalık toplantı ve Elbette kredi için seminer.
Hangi Bu dönem yeni ve o da, bir sonraki dönem için olacak
böylece çapraz-reg olduğunu için.
Ve sonra, tasarımı, mağazası var ve hafta boyunca CAD günleri,
üyeler bağımsız olacak ise CAD parçaları, sipariş stok vesaire.
>> Elektrik Yani ekip mühendislik
bizim çekiş var, Yüksek gerilim kontrolü,
hangi nominal çalışır Içeren 300 volt,
motorlar, motor kontrol, ve pil paketleri.
Sonra düşük olması çalışan voltaj sistemi,
12 volt, hangi içerir kontrolleri, beyin düğümler CAN
kutu ve pano.
Bildiğim kadarıyla CS yapıyoruz, gider web sitesi bakım var
Biz olaylar için yapılan ihtiyaç olduğunu, üyelik değişiklikler, yeni resimler, ve Enformasyon malzemesi.
Ve sonra kontrol kodu var Bizim çekiş kontrolü, başlatmak için araba
Kontrol, çizgi kontrolü, tork vektör, rejeneratif fren sistemleri, ve hangi
MATLAB tipik koşmak, Simulink ve LabView.
>> Sana araba hakkında biraz söyle.
Yani yaklaşık 500 £ var.
Bu 85 kW sınırlı kurallar var.
Bu 2 EMRAX 207 motor var geri, her arka tekerlek için bir tane.
Bu ısmarlama pil paketleri var Prizmatik A123 kese hücrelerinden,
300 volt toplam ve 5.6 kilovat saat.
Ve doğrudan sürücü Bir 2,64-1 sürücü oranı.
İşte bazı resimler biz yarışmasında onu aldı.
İşte sırt, burun konisi var, ve burada motor vardır
bu büyük siyah diskler altında ve erkek manus.
İşte çekti bir slayt var Bizim rekabet düzeni dışına.
Ve bu sadece bir bizim araba karşılaştırarak olduğunu piyasada mevcut araçların çift,
KTM xbow, Ariel gibi Atomu ve Caterha M 7-280.
Eğer fiyat aşina iseniz, güç beygir gücü başına, dolar ağırlık çekin,
tork başına dolar, ve bizim araba Suyun dışarı hepsini darbeler.
Herhangi bir sorunuz varsa, Bu e-posta adresi zerre.
Bize fsae@mit.edu bir e-posta ateş.
>> Biz hakkında konuşmak için mutluyuz İstediğiniz şey.
Harvard öğrencileri tür takımda azınlık.
Hakkında herhangi bir sorunuz varsa Bu bize bir e-posta ateş lütfen,
mutlu konuşmak, ve ben gidiyorum geri David üzerinde kafa.
Teşekkürler.
Ben, çocuklar bunu takdir ediyorum.
[Alkış]
>> DAVID MALAN: Ansel yaz geçirdi CS50 kampüsünde burada bizimle birlikte çalışan
Bu yaz.
Ve üzerinde çalışmaya ek olarak İkili ampuller gibi şeyler,
O aslında gerçekten açılmış bizim eyes-- ve particular-- mayın
ne gerçekten kesişimine donanımın ve yazılımın olabilir.
Şeylerin aslında bir sürü o sadece Eğer yoluyla sonuçta vardır gezdi
İlk yazılımında oluşturulan, ve daha sonra nihai olarak imal
donanım gerçek dünyada.
Eğer ilgileniyorsanız Yani eğer Bu kavşağa keşfetmek,
belki de bu grup sürebilir.
>> Size Şimdi arada, bu teknoloji hayranları kim,
ve Apple ürünleri Özellikle biliyorum var
bir çift vardı duyurular dün.
Ama biz göstermek düşündüm çıktı tek
Bir kaç gün önce o Eğer görmemiş olabilir.
>> JORGEN EGHAMMER: Biliyorsun, bir zamanlar bir süre bir şey
Bu birlikte geliyor Yaşadığımız biçimini değiştirir.
Bir cihaz çok basit ve sezgisel bunu kullanarak neredeyse tanıdık geliyor.
2015 IKEA Kataloğu Tanıtımı.
Bu dijital kitap değil ya Bir e-kitap, bir kitap-kitap.
>> Unutulmaması gereken ilk şey, hayır kablolar, hatta bir güç kablosu.
2015 IKEA Kataloğu gelir tamamen şarj
ve pil ömrü ebedidir.
arayüzü, 8 inç 7.5 ancak 8 inç 15 genişletebilirsiniz.
Navigasyon dokunsal dokunuş dayanmaktadır aslında hissediyorum teknolojisi.
>> İçerik önceden yüklenmiş geliyor 328 yüksek çözünürlüklü sayfaları üzerinden
ev döşeme fikirleri ilham verici.
Taramaya başlamak için, sadece dokunun ve sürükleyin.
Sağ ileriye taşımak için sola, geriye gitmek için sağa sola.
>> Başka bir şey fark ettiniz mi?
Bu doğru.
Hiçbir gecikme.
Her kristal berraklığında sayfa anında yükler,
olursa olsun kaydırma kadar hızlı.
Eğer hızlı bir bakış elde etmek istiyorsanız, sadece avucunuzun içinde tutun,
ve sadece başparmağını kullanarak, Hız içeriğine göz atın.
Eğer bir şey bulursanız >> kaydetmek istediğiniz sonrası için, sadece yer işareti olabilir.
Ve uygulamayı kapatmak bile, kolayca yeniden imini bulabilirsiniz.
İnanılmaz.
>> [KAHKAHA]
[Alkış]
Yani bize getiriyor Haftanın bir sonu.
Şimdi bir kaç duyurular.
Yani kesit devam artık.
Burada bu URL'ye bazen git Şimdi ve Cuma öğle saatlerinde arasında
aslında olup olmadığını belirlemek için daha az rahat olanlar arasında, daha
rahat, ya da bir yere arasında.
>> Bu, genel olarak bu biridir Eğer sadece tür biliyorum şeyler.
Ve o sizin aslında daha az kim muhtemelen çok biliyorum rahat,
daha kim o sizin rahat, çok biliyorum
ve oldukça emin değilseniz yine varsa hangi sen içine bu kovalar düşersin
Muhtemelen bir yere arasında.
Ama geri kalanı takas olabilir emin birkaç hafta sonra ihtiyaç olması durumunda.
>> Bu arada, önümüzdeki hafta için Biz kendi başına bölümleri başlangıç ​​değil
ama süper bölümler, hangi tüm öğrencilere açıktır.
Bu bir yerde Pazar geliyor Elbette internet sitesinde ilan edilecektir
biz bir tane olacak daha az rahat olanlar,
aynı zamanda, bir için Bu daha rahat.
Ve aralarında, bu yerde Bu iki seçebilirsiniz,
Eğer isterseniz ya da her ikisi, oturup-in için.
Ve o odak C sonunda olacak
hangi biz devam edeceğiz bizim Bugün konuşma.
>> Sorun 0 arada set umarım senin elinde.
Resmen nedeniyle yarın, Perşembe, öğlen.
Eğer bir nakit sürece senin 5 Geç gün,
getirmek hangi öğle saatlerinde Cuma kadar.
Sorun 1 arada olacak set dersin web sitesinde yayınladı.
Ve bu bizim ilk olacak C bir sınıf olarak baskını
Ve bu sorun set spec size yol gösterecektir Neyin mekaniğinin bir çok ile
biz Pazartesi günü bahsediyoruz başladı ve bugün hakkında konuşmaya devam edeceğiz.
C, Linux, CS50 Cihaz, bunların hepsi
şartnamede sizi bekliyor olacak.
>> Ofis saatleri arada, devam etmektedir Lisans yemek salonunda.
Görmek için buraya, bu URL'ye Baş gece ve yarın için zamanlama,
Eğer katılmak istiyorsanız.
Bu arada Sorular, bu yüzden size o soru sormak için fırsat var
Zaman uyumsuz olarak, 24/7, sen fark bölümleri ve ofis sınırlı değildir
Saat, daha ziyade bu araç Burada, CS50 o URL'de tartışın
dersin online olacak bülten panosu yazılım, hangi aracılığıyla
Eğer soru sorabilirsiniz sınıf arkadaşları ve ayrıca personel.
Yani akılda tutmak kaynak de.
Bu arada bir gelenek Bu Cuma başlar.
Sizden glimpsed olabilir gibi Geçen Çarşamba günkü teaser, video,
Biz en bir gelenek var dönem boyunca her Cuma
Bazı 50 öğrenci alarak ve adlı yerel bir restoranda personel
Ateş ve Buz, hangi biz konum tipik bazı mezunlar katıldı
sanayi veya arkadaş genellikle talip
Büyük bir sınıf küçük hissettirmek için.
Yani tamamen rahat bir öğle yemeği var.
Bize bir demet, personel Özellikle, müzik sandalye oynayacak
ve öğrencilerle sohbet 50, 50 dışında ömrü
Gelecekte hayat, gerçek dünya, Ben iş fırsatları bahsediyorum
sektöründe arkadaşlar.
>> Bize katılmak istiyorum Yani eğer Bu Cuma, burada bu URL'ye baş.
Uzay sınırlıdır, ama biz bu yapacağım recurringly dönem boyunca.
Cs50.harvard.edu/rsvp orada Baş.
Ve sen alamazsanız Bu sefer, endişe etmeyin.
Biz tekrar yapacağız Önümüzdeki hafta da.
>> Yani bu resim Biz geçen hafta boyalı
ve muhtemelen oldum Şimdiye kadar kurmuştur.
Ama şimdi bu bağlanmayı deneyelim Bugün yapmaya gidiyoruz ne
ve ileriye.
Ben bir gönüllü alabilir miyim?
Pekala, ya da birkaç.
Nasıl burada hakkında sonunda, mavi gömlekli.
Yukarı gel, senin adın ne?
ALANA: Alana.
DAVID MALAN: Alana.
Yani Alana, sadece bir moment-- güzel siz-- karşılamak
rol oynayacak Burada bu işlevin.
biz ettik mor blok Bir işlev bugüne kadar çağırdı.
Peki ne gitmek için gidiyorum Önümüzdeki burada ve Alana'yı teklif
Biraz isim etiketi, yapmak açık oynuyorsun hangi rolü.
>> Yani diyelim ki blok olacaktır.
Eğer devam edin ve bu koymak istiyorum.
Ve biz gidiyoruz süper basit bu tutun.
Eldeki amacı basitçe ise Şimdi Alana ile uygulamak,
Sözde bu, blok demek Burada işe gidiyor nasıl.
Ben diyelim have-- bir argüman veya parametre,
gerçekten kağıt sadece boş bir levha var.
Ve bu tür anımsatan beyaz var Beyaz kutunun içine sen
kelime yazabilirsiniz.
>> Bu arada ben buraya gidiyorum.
Ben önde gitmek için gidiyorum ve H-E-L-L-O virgül dünyayı yazmak.
Programcı dediğiniz gibi Ve şimdi ben, yok aslında bir şey söylemek için biliyorum.
Ben kelime ile gelebilir, ama ben ille yapmak
Kendimi ifade etmek nasıl biliyor sözlü ya da ekranda.
Ve bu yüzden gidiyorum ne Bu parçayı almak yapmak için
kimin input-- işlevsellik, bir veya argüman, biz onu arayacağım gibi,
Ben paper-- bu parça üzerine yazdım ve ben bunu outsource gidiyorum.
>> Ve gerçekten bu rolü olduğunu Bir programlama dilinde fonksiyonlar
oynayabilirsiniz.
Söz sahibi gibi bir şey Blok dış kaynaklı olabilir
birine kim gerçekten bilir ne o ya da o bahsediyor.
Yani üzerinde adım verirseniz Burada sadece bir an için,
Ben bu girişi geçmek için gidiyorum Alana ve bu girişi söylemek istiyoruz.
>> ALANA: Merhaba, dünya.
DAVID MALAN: İşte bu.
Böylece bir fonksiyonu var.
Şimdi biraz daha alabilir, biz ileriye burada bir adım atabilirsiniz.
Açıkça underwhelming Çünkü.
Yani şimdi bu dönüştürmek izin bir şey biraz daha sofistike.
>> Yani tabii bu bizim C versiyonu.
Yani şimdi o almak istiyorsanız bir kapalı, kapalı bu ismi etiketi,
ve en yeni isim koymak atalım.
Ama temelde sen aynı rolü oynayan,
sadece bu yüzden olur Şimdi printf çağrılabilir.
>> Katlı, tabii ki, Muhtemelen şey olmak gidiyor
Sadece underwhelming-- olduğu gibi gidiş aşağıdaki olmak.
Şimdi fonksiyon printf vardır.
Ben arayan ben, ya da programcı, kim istiyor
omuzlarında durmak Senin gibi geçmişte insanlar,
zaten nasıl çözdüğün kim Aslında bir şey yazmak.
Ve böylece bu sefer, o atalım demek yerine
Aslında buraya bizim ekranı kullanın.
Eğer adıma isterseniz Yani Burada, ben gidiyorum
yine bu geçmek Benim printf Arkadaşına girişi.
Önünüzde gidebiliriz ve Ekranda o yazdırmak,
basitçe çizerek sizin Siyah ekranda parmak.
Mükemmel.
Pekala, heyecanlı bir sürü için çok nasıl oynamaya gidiyordu.
>> Peki şimdi en tane şeyleri atalım Son çentik, eğer olabilir, aşağıdaki gibi.
Yani bu bir C programı biz son kez dedi.
Ve bu sadece, bunu yaptığını yapar ekran, merhaba, dünyaya yazdırır.
Hatta bir çok açıkça orada olsa Orada bir rahatsız edici şeyler.
Ama bir çentik şeyleri atalım ve çağırmak ki, bu sürümü tanıtmak
Üçüncü versiyon olduğunu son kez ile sona erdi.
>> Ve şimdi açıkça var printf iki kullanır.
Alana 2 çağrılar var Printf için, bu durumda,
ama aynı zamanda bir çağrı var başka bir işlevin.
Açıkça işlevi nedir?
GetString.
>> Biz bir daha gönüllü alabilir miyim?
Tamam, yukarı gel.
Adınız ne?
>> JAVIER: Javier.
>> DAVID MALAN: Javier, yukarı gel.
Yani Javier rolü üzerinde bu kağıt parçası.
Ben s jenerik arayacağım Hangi.
Şimdi bu değişkeni var, bir dize türünde olarak ima
Orada ortasında ikinci çizgi ile.
Ve bana bir dize olsun gitmek istiyorum.
Özellikle orkestra baş aşağı bölüm ve bana birisi adını almak,
ve bir değişken ile geri gelmek bu değer ihtiva etmektedir.
İstediğin herkes olabilir.
>> İşte başlıyoruz.
Pekala, Javier adını yazarken.
Tamam.
Hepimiz muhtemelen nasıl tahmin edebilirsiniz Bu oynamaya gidiyor.
Biz belki de fazla uzatmadan ediyoruz ne anlamı
Bir işlev yapıyor ama yine çok teşekkür ederim.
>> Peki Javier bu dize döndü Burada oldukça, hangi göremiyorum
Jonathan dizesi Biz kazanılmış ettik.
Yani şimdi ben aslında ne gidiyorum olsa Alana sağlamak için
biraz farklı bir şeydir.
Çünkü bu sürümünde Program, ilk adınızı devlet var.
İlk argüman Yani Ben Alana'yı sağlamanız gerekir
olacak olan kelimenin tam anlamıyla adınızı devlet.
Bu kadar basit Pekala, Sana bu el ederim.
Ve ben yazmak gibi Bir sonraki argüman, eğer
go ahead ve bu yazmak istiyorum Gemide, en önde gidelim
ve yapmak için buraya nihai örneği yapmak sonuçta ne var ne temizleyin.
Yani adınızı devlet, üst doğru yazmak
Eğer sakıncası yoksa, sadece bu yüzden biz bir ikinci hat için oda var.
Son şey Çünkü ben gidiyorum bir değil şimdi size sunmak,
ama kağıt iki adettir.
>> Tamam.
H-E-L-L-O virgül ve sonra boş bir satır.
Ben şimdi Alana'yı el üzereyim Peki ne biraz farklı bir şeydir.
Sadece o, bu oluyor Nerede boş dolgu temsil
Bu ne percent-- Yer tutucu biz kullanıyorum?
Evet, yüzde s.
Bu arada ben geçmek gidiyorum İkinci argüman, içinde onu hangi
tam ne Javier Jonathan alınan.
>> Peki sana bu ikisini vereyim.
Eğer devam etmek istiyorsanız ve baskı etkileyen.
Sonuçta ne oluyor Şimdi isimli, Alana tekrar
printf rol oynuyor.
Javier oynuyordum getString rolü.
Demek hatıra olacaktır.
Ve sonuçta rağmen, ne oluyor Bu yep önde ve virgül gitmek hello--.
ALANA: Ben bu henüz veya hiç aldınız mı?
DAVID MALAN: Evet, siz aynı anda ikisini de aldı.
Yani fikir size olduğunu Şimdi sayfayı çevirebilirsiniz
ikinci işlemek için Bu iki girdi.
Yani bu ev çekiç sadece Alana idam oysa ki gelin
Bu yeşil hat burada, ve sonra Javier bizim için bunu yaptım
ve bana bir şey dönmek Biz s arayacağım, ama gerçekten oldu
Kendi kağıdın sadece bir parça.
Ve şimdi Alana bu üçüncü çizgiyi yaptı.
>> Ve hatta tüm bu görünüyor olsa öylesine inanılmaz şifreli belki
İlk bakışta, bu gerçekten Bu kadar basit.
Etrafında girişleri Passing, ya çıkışları almak
fiziksel bir şey geri teslim ediliyor, ya da bunun gibi bir yan etkisi görüyorum.
Bir şey görsel Ekranda yazılı.
Yani öncesinde gidelim ve , Alana'yı ve Javier teşekkür
kim için, buraya oldu Burada bizi katılmadan.
>> [Alkış]
Verilen >> Peki şimdi en alalım ne kadar basit ki bütün olabilir.
Ve en doğrusu geçelim Gerçek kodda bir şeyler yapmak.
Burada ekranda Yani bir ekran görüntüsü Sözde CS50 cihazın.
Ve bir şekilde, en olsaydı Çarşamba öğleden sonra 02:00,
Bazı arkadaşına açıklamak ne CS50 cihaz olduğunu,
nasıl bir cümlede tanımlarsınız?
Herhangi bir cümle?
Evet?
ÖĞRENCİ: Bu bir program gibi O herkesin bilgisayar yapar
Aynı sistem ile çalışır.
DAVID MALAN: İyi!
Herkesin en sağlayan bir program Bilgisayar aynı sistemle çalıştırmak için.
Kendi çeşit var Bir işletim kopyası
olur sistem Ubuntu Linux çağrılabilir.
Ve bunun içinde etkin bir çalışan Kendi Mac veya PC üzerinde bir pencere,
böylece doğru kapı dışarı bu şekilde haftada 1, burada herkes sınıfında
Aynı araçlara erişimi vardır, Aynı düzenleme,
ve herhangi bir öğrenme eğrisi, belirli var Bir Mac ya da belirli bir PC'ye.
>> Şimdi CS50 içinde, açtı Pazartesi günü cihaz, burada bu program.
Bu gedit adı olur.
Ama bu sadece gerçekten bir grafik editörü.
Bu Not Defteri veya Metin gibi bir şey var Sırasıyla Windows veya Mac OS üzerinde düzenleyin.
Ve ben gerçekten vardı önerdi Bu ekranda üç önemli parçaları.
Üst tarafı nereye olduğunu kod yazmak istiyorum.
Biz çok geçirdim Ve işte bizim Pazartesi günkü konuşmasında üç örnek.
Alt biz ne denir, Bu siyah pencere, evet?
>> ÖĞRENCİ: Derleyici?
>> DAVID MALAN: Derleyici biz O pencereden yoluyla erişilebilir.
Ancak daha genel olarak.
Evet, sadece bir terminal penceresi oldu.
Bu bir yaş eski bir terimdir sadece aslında bir yanıp sönen açıklanır
istemi, yıllar önce kullanılan olmak bu büyük CRT monitörler tarzı biri.
Ama günümüzde çeşit yazılım sanal bir.
Ve terminal pencereleri Bize komutları yazın bulunuyor edelim.
Basitleştirilmiş versiyonu Bu tür Kullanıcı arabirimi veya UI.
Bu bir grafik değil kullanıcı arayüzü veya GUI,
Bir metin tabanlı bir arayüz bulunuyor veya bir komut satırı arayüzü.
>> Ve gerçekten o nerede sonuçta var Ben bazı kod yazmak başardı.
Gerçi bazı kod yazmıştı sonra, Ben bu komutu kullanılan hatırlamak.
Ve o isim olarak tür, bu, anlaşılacağı
Bana bir yapmak sağlar Program Merhaba çağırdı.
Ama gerçekten ne yapıyordu?
Peki makyaj alıyordu benim Giriş, benim kaynak kodu,
ve sonuçta, ne dönüştürerek?
>> Nesne kodu.
Ve nesne kodu sadece bir fantezi olduğunu sıfırları ve olanları söyleyerek yolu.
Ve sonra ben istedim kez Bu nesne kodu çalıştırmak için,
Ben girdi gibi geçmek istedim kez benim bilgisayar yıllardan içine sıfır ve olanlar
beyin, sözde işlemci veya merkezi işlem birimi,
Ben programı çalıştırmak zorunda.
Ama Pazartesi günü oldukça basit değildi olarak sadece bazı ikonuna tıklayarak çift.
Ne bunun yerine var mıydı Bir programı çalıştırmak için mi?
>> İkinci komuta neydi?
Biraz eğik çizgi duyuyorum?
Evet, evet?
>> ÖĞRENCİ: Nokta çizgi ve Programın adı.
DAVID MALAN: Kesinlikle.
Nokta çizgi ve programın adı.
Şimdi bu ne demek istedi?
Peki nokta sadece bir esrarlı bir yoldur Mevcut dizini söyleyerek.
Ne olursa olsun klasör içinde olan olarak başvurulan, nokta olarak temsil edilir.
Bu eğik çizgi gördüm sadece ne yıllardır Mac OS ve Windows,
Bir dizine arasında bir ayırıcı bulunuyor ya da klasörü ve bazı isim geri kalanı.
Windows gitmek olur geriye, Linux ve Mac
İşletim ileriye gitmek olur.
Ama bu sadece ayırıcı, bu yüzden var Sadece bir ilgi çekmeyen sözdizimsel ayrıntı.
>> Elbette sulu bir parçasıdır programın adı, Merhaba.
Ve bu bizim için yaratılmış yapmak ne.
Bu bizim için o dosyayı çıkışı.
Ama nasıl o noktaya aldın?
Şimdi soralım Soru, gerçekten ne oldu
en azından burada, devam Bu sözdizimi bazı saygı?
>> Bir cümlede ya da öylesine Yani, nasıl biz uzakta açıklama yapmayan
var bu ilk satırı yeşil vurgulanır?
Ne, ilk satırı yapıyor oldu Benim programa göre?
Evet?
>> ÖĞRENCİ: [duyulamaz].
DAVID MALAN: Tekrar söyle?
ÖĞRENCİ: dahil ve indirme Geçmiş fonksiyonlar [duyulamaz].
DAVID MALAN: İyi.
Dahil olmak üzere, diyorum olmaz indirirken, ama diyelim
fonksiyonlar dahil insanların Geçmişte yazdım.
Ve bu fonksiyonlar uygulanır benim bilgisayar yerde.
Birisi bir dosya yazdı yıl önce, ve bu dosya
CS50 içinde bir yerde Cihaz, ya da benim sabit diskinizde
daha genel olarak.
Ve böylece bu hat aslında, diyor Bu dosya, standart G / Ç nokta bulalım
h ve kopyalama ve içeriğini yapıştırın Burada benim dosyanın üstüne
bu yüzden gerek yok ki kendimi elle bunu.
>> Ve içinde juiciest parçaları arasında Biz iddia dosya hangi işlevi oldu?
Ne fonksiyon biz ilan edildi dedin veya standart I / O nokta h belirtilen
büyük ihtimalle?
Printf, değil mi?
Biz Printf üzerine yazmadım Pazartesi, sadece var.
Çok Alana sadece geldi gibi sahnede ve she kadar sadece
var ve çizmek için nasıl biliyordu Ekranda bir şey,
böylece Printf yıllardır mevcut.
Ve böylece biz erişmek nasıl.
Burada hareket Şimdi eğer, Ana benzer biz oldu
puzzle parçası dedi Yeşil bayrak tıklandığında denir
Scratch dünyasında.
Bu sadece sıralama var insanlarda varsayılan ad
temsil edecek karar Bir programa giriş noktası varsayılan.
Programlama kod yığın ilk idam alır.
>> Bu arada bu kaşlı vardır tür kavisli şekli gibi
Bu sarı çizik parçaları bir sürü.
Onlar tür bir bütün encapsulate Birlikte talimatları demet.
Yani sadece tür birbirine bağlayan bazı ilgili işlevsellik.
Elbette Printf bir fonksiyonu olduğunu biz sadece yaptığımız gibi, ekrana yazdırır.
>> Ne bu parantez hakkında?
Nasıl sen ettik bile define-- olur daha önce hiç programlanmış, ama sadece tabanlı
şimdi artan umarım sezgi, ne
Parantez burada bizim için yapıyorsun?
Ya da ne çevreleyen?
Evet?
>> ÖĞRENCİ: Onlar söylüyorsun ne Eğer printf ile yazdırmak için gidiyoruz.
>> DAVID MALAN: Evet, ne dediklerini Eğer printf ile yazdırmak için gidiyoruz.
Ya da daha genel olarak, bunlar fonksiyonu girdi çevreleyen.
Yani neredeyse aklınıza gelebilecek Bu parantez
metal gibi olmak Bu panoya klibi.
O ne var, ne tutan var argümanlar sağlamak için kullanılabilir olacak
fonksiyon olarak içine Bu durumda Printf olarak adlandırılır.
>> Yani genel olarak hemen her zaman biz bir işlev çağrısı
Biz bir çift parantez göreceğiz.
Belki o şey ile, gibi şimdi, o belki bir şey.
Eğer vereceğini Ama nerede o var girişler ya da sözde argümanlar
bir işleve.
>> İşte böyle bir argüman var.
Ben her şeyi vurguladık tırnak arasında,
çıkıyor çünkü denilen bu dilde
Eğer bir temsil etmek istiyorum C string-- bir kelime ya da bir ifade olduğunu
hatta paragraph-- size var çift ​​tırnak ile onu çevreleyen.
Tek Değil tırnak, çift tırnak.
Ve ben burada yaptık tam olarak ne.
>> Arada bir korkak var Orada sonuna doğru sembol.
ters eğik çizgi n.
Biz temsil Ne dedin?
Evet?
>> ÖĞRENCİ: Yeni bir satır.
>> DAVID MALAN: Yeni hat.
Doğru, değil mi Genellikle zaman Enter'a
Programı istediğiniz Yeni bir satır tükürmek için.
Aksine açıkça söylemek Bu kuşkusuz gizemli parça ile
sözdizimi, ters eğik çizgi n, bu Yeni bir satır oraya gitmek istiyorum.
Sonunda noktalı virgül.
Biz gerçekten konuşmak yoktu Bu konuda çok fazla,
ve bu kadar bazı felâket olacak İlk sorun için Mevcudiyetinin
Sadece gerçekleştirmek için başarısız olunca, set aptal gibi bir şey unuttum
noktalı virgül olarak.
Ve genellikle koyarak bu sorunu var çözecektir.
Ama ne yapıyor bulunuyor Bizim için, sen söylerdin?
>> ÖĞRENCİ: [duyulamaz].
>> DAVID MALAN: Üzgünüm?
>> ÖĞRENCİ: [duyulamaz].
DAVID MALAN: bir açıklama tamamlanması.
Bu dönemde gibi çeşit var İngilizce cümle sonu,
Bu dilde ise C Bir açıklama biten ediyor.
Programlama bir talimat Sadece söylemek istiyorum kod,
Ben bu ile işim bitti.
Şimdi burada tek olduğunu fark.
Yani almak istemiyorum koyarak noktalı virgül bir alışkanlık
Her kapalı parantez sonra.
Örneğin hiçbiri var Bir sonraki geçersiz için, ve biz olacak
Gelecekte geri gelmek geçersiz hangi araçlar için.
Ama bu durumda sizin printf bir fonksiyonu, ya da bir deyim kullanılıyor,
ve böylece biz sahip olmak istiyorum Bunun çok sonunda terminali.
>> Ve ben kasten C üzerinde alıyorum Ve açıkçası C, C ++ gibi dillerin bir sürü,
Java, JavaScript, ve herhangi bir sayısı diğer diller bu bir şey var
sözdizimsel ayrıntılar tür.
Eğer yeni konum kesinlikle eğer Programlama gerçekten seni bozamaz.
Ve sen, işaretler benim kelimeler, bazılarınız olacak
Bu deneyime sahip ofis saat veya geç
gece bazı p-set, çalışan Lanet programı sadece derleme değil,
Eğer varsa, çalışmaz neyin yanlış olduğunu hiçbir fikrim,
tamamen görünmektedir Size mantıklı doğru.
Eğer unuttum çünkü Ve bulunuyor vurmak gibi bir şey
Bazı satırın sonunda bir noktalı virgül.
>> Ama bunlar sen şeyler türlü Hemen görmek öğrenmek için gidiyoruz.
Ve gerçekten de bu şeyler vardır CA'nın ve TF en var
tür görmek için eğitilmiş çok daha hızlı senden daha.
Ve böylece bu sizin gibi, demek sadece problem haline dalış, özellikle 1 set
Bu malzeme ile sinirli alamadım.
Eğer tür acclimate kez dünyaya, sen
şeyleri görmeye başlayacaksınız ki sen olmayabilir Bu ilk hafta, ilk bakışta görebilirsiniz.
>> Yani kaynak kodu böyle bir şeydir.
Biz içine geçmek istiyorum Sözde derleyici.
Ve bu derleyici olarak Biz çıkış sağlar dedi
Nesne kodu olarak da bilinir, sıfır ve olanlar sözde.
Ama oradan, o bize ne veriyor?
Peki bize bu desenleri verir.
Ve yine bilgisayar, içinde Intel,
Bu desenleri anlar sıfır ve olanlar.
Ve bazen desen gerçek bir ondalık sayıyı temsil
bazen, geçen hafta gördüğümüz gibi Bir harfini temsil
gibi bazen, geçen hafta gördüm o, bir talimat temsil
ekrana bir şeyler yazdırmak gibi.
>> Instance-- Yani printf ziyade, beni geri sarma izin ver.
Biz verilen alarak oldum Bu sıfırlar ve olanları olduğu
Bu komut marka tarafından üretilen.
Ama yapmak bir derleyici değildir.
Şey ortada Make değil Bu sıfırları ve olanları üretiyor.
Aksine yapmak sadece çok elverişli olduğunu Amacı hayatında adlı programı
anlamaya esasen nasıl programı derlemek için.
Ve biz bu kullanmak İlk haftalar çünkü o sadece
Bize bir sürü sorun kaydeder.
>> Ama ne yapmak gerçekten merhaba derleme yapıyor,
Geçen zaman söylediğim gibi, bu, bir Sabit diskinizde arıyor
veya geçerli klasörde, için Dosya görünüşte ne denir?
Merhaba.c, değil mi?
Bu bir sözleşmenin sadece tür.
Bu, keyfi ama Bu işler böyle yürüyor.
Sadece adı belirtirseniz, Make Henüz var olmayan bir program,
kaynak koduna bakmak için gidiyor Bir dosyada, varsayılan olarak hello.c anlamına gelir.
Ve onu bulursa, büyük.
O kaynak dönüştürmek için gidiyor Sizin için nesne koduna kodu.
>> Ama ben isabet ettik her zaman girin merhaba yapmak çalıştırdıktan sonra,
Geçen zaman a gördüğümü hatırlıyorum yapmak oldukça uzun ve şifreli dizisi
diğer beyaz harfler ve Ekranda karakterler?
Peki bu gerçek komut oldu Gerçek derleyici, bu koşuyordu.
Yani gerçek derleyici biz en kullanacağız dönem clang denen şeydir.
Bazılarınız kullanmış olabilir Görsel önce Stüdyo veya GCC,
ya da diğer derleyici herhangi bir sayı.
Biz clang kullanacağız.
>> Ve clang bize aslında dönüştürmek sağlar Bu kaynak kodu kodu nesne.
Bu aslında ne Uygulamada demek?
Peki bana birine gidelim son kez benim klasörler.
CS50 cihazın içinde.
Ve beni go ahead ve bu oluşturmanıza izin Aynı dosya, standart G / Ç nokta h bulunmaktadır.
Int main geçersiz.
Ve biz geleceği olarak geri gelirim ne anlamına gelir ve ne geçersiz araçları int için.
Ama şimdi en yapalım merhaba dünya ters eğik çizgi n,
sadece biz gemide yaptığımız gibi.
>> Bana merhaba.c adlandırılan bu dosyayı kaydetmek edelim.
Ve şimdi ben bu derlemek istiyorsanız Bana in-- koşmak Büyütmek izin Yapabileceğim
merhaba girmek yapmak.
Ve bu yine oldu çok şifreli hattı.
Ama şimdi en az bir kelime muhtemelen sizin dışarı atlar.
Clang önce gördüm çizgidir.
Şimdi diğer bir sürü açıkçası var bugün için bizim eller dalga edeceğiz.
Ama bir kaç alt kümelerini var, Burada bir kaç karakter
ilginç olduklarını.
Ama ben go ahead ve bunu yapmak için gidiyorum.
Ben ilk çalıştırma gidiyorum Merhaba, sadece kanıtlamak için
Pazartesi olduğu gibi bu olduğunu çalışmaktadır.
Ama şimdi ben programı silmek için gidiyorum.
Ve biz çok gibi bu Kısa isimler son kez,
kaldırmak için komut bir şey girmek kaldırmak, rm olduğunu.
Bazı almak için gidiyoruz Oldukça gizemli sorular.
Sert yapabilirsiniz inanmak bile zor bu soru anlamak için.
Ama sadece normal dosya merhaba kaldırmak araçlar merhaba silmek istiyorsunuz.
>> Ve ben devam edebilir ve için y yazın evet, Enter, ve şimdi gitti.
Bu artık ne demektir, Benim ekranı temizlemek eğer,
yerine olmasıdır hello-- sizi yapmak yapıyor
Ben bu iyi alıyorum, ne biliyorsun.
Ben kendimi derleyici çalıştırmak için gidiyorum.
Ben bazı program gerek yok Benim dosya denir anlamaya.
Ben, hello.c yazdı ne denir biliyor,
Ben açıkça yazarak yeteneğine değilim.
Yani ben önde gitmek için gidiyorum ve Enter merhaba.c tınlamak yoktur.
>> Çalışmak gibi görünüyor.
Ve hiçbir ek çıkış var, clang derleyici çünkü.
Bu dönüştürme ne var sıfır ve olanlar kaynak kodu.
Yani şimdi nokta yaparsam hm, merhaba girin çizgi.
Yeni hata mesajı bugün.
Yani bash sadece adı Biz kullandığınız istemini yanıp.
Bu brüt oversimplification, ama şimdi o, yani hepsi
yanıp sönen istemi var.
Ve o bize bağırıyor yüzden.
>> Böyle bir dosya ya da dizin Biraz daha basit.
Ama kesinlikle o nesne kodu yaptı.
Ama yakalamak yani, Ben komut yazarsanız
Bu içeriğini listelemek için ne olduğu dizin,?
liste için ls.
Şeyler bir sürü var burada, bazıları, cihaz ile geldi
Benim Masaüstü klasörüne, Yüklemeler gibi Klasör, Dropbox klasörü ve tüm
bu şeyler.
Ama ne ilginçtir merhaba.c, olduğu
Ben gedit ile bir an önce hazırlandı.
Ve garip ne Burada adı bakarak,
biz yoktu belki de tüm son kez görmek?
>> A.out, değil mi?
Yani geri gün, onu Sadece karar zaman ki
Bir programı derlemek ilk kez,
ve ismini belirtmek yok Bir dosyanın, o da bir arayalım.
Ve a.out sadece bu oldu demek derleyici çıktı.
Yani bir program için korkunç bir isim.
Ama bu mantık tarafından, için çizgi nokta Geçerli dizini, a.out slash
Aslında var demek gerekir merhaba dünya programı benim.
Şimdi biraz da, egzersiz ısınma.
Ben bu yeniden adlandırmak istiyorsanız, Dosya, sana çıkıyor
başka bir isim bir dosyayı taşımak.
Yani mv a.out, ve sonra diyebilirsin merhaba girin.
Yani bu bir Linux komut.
DOS, bu yıllar önce vardı Windows terminal penceresi vardır
görünüyor çeşit Bu, Linux ve Mac gibi
bilgisayarlar bu yanıp sönen istemi var.
Hatta çoğumuz belki ama nadiren, eğer hiç, onu kullanın.
>> Ama ne yaptık çalıştırılan bir Adını mv olan program,
ve ben bunu sağladık İki argüman, tabiri caizse.
İki giriş.
a.out orijinal adıdır.
Merhaba yeni adıdır.
Ben şimdi nokta çizgi yapmak eğer öyleyse merhaba, Enter, o var.
Ve ben nokta çizgi a.out yaparsanız, ne ben görmelisiniz bekliyorsunuz?
>> Bash, böyle bir dosya ya da dizin.
Ben sadece adını Çünkü.
Yani bu alışmak biraz alır.
Ama sorun 1 set şartname gerçekten olacak
boyunca elini tutun Bu minutae bazılarıdır.
Bu tam olduğu entelektüel oyalama
daha ilginç gelen eldeki fikirler, hangi
Aslında yaratıyor kod dışında bir şey.
Ama bir değişiklik yapalım Şimdi bu programa.
>> Ben bir şey yaptım son kez hatırlayın Bu gibi printf adınızı devlet.
Ve gerçekten biz sadece bunu Orada büyük ekranda.
Ve sonra string s alır yaptım Açık paren, yakın paren getString.
Ve parantez sadece steno Parantez için gösterim.
Yani GetString argüman nedir?
Hiçbir girişler hayır, ama parantez ihtiyacı,
Bu çünkü ne demarcates Bir fonksiyonun çağıran.
>> Bu yüzden go ahead ve denemek için gidiyorum Şimdi bu programda derleyici çalıştırın.
Clang merhaba.c, çünkü ben şimdi adını değişmedi.
Ve ben hataların bir grup var.
Burada uzaklaştırmak edelim.
Tekrar yukarı ise, gibi son kez, dedi
Birincisi, aynı hata Geçen zaman var olduğunu.
Hello.c hattı 6 günü vardı bir bildirilmemiş tanımlayıcı dize,
Ben standart demek istedi?
Yapmadım.
Ne hata Çünkü var ben bu yapılan Program, son zaman hatırlayacak olursak?
Evet, biz ihtiyacımız Eğitim jantlar sözde
biz sadece bir kaç hafta için kullanmak edeceğiz.
Ama ben de belirtmek gerekir, yerde cihazın içinde,
Biz yazdığı bir dosya önce sadece bir kaç yıl.
Hangi içi işlevleri vardır gibi görünüşte getString.
Yani şimdi ben buraya geri aşağı giderseniz, yakınlaştırmak ve yeniden çalıştırmak clang merhaba.c.
Lanet olsun, başka bir hata.
Ama biz daha önce bu bir görmedim.
>> Bu biraz daha var anlamaya ezoterik.
Ama bu, ekranda kasıtlı olduğunu Bu hikayeyi anlatmak istedim çünkü.
Ne zaman gibi, hello.c derlemek önce önerilen gelen resim,
Eğer sadece dönüştürme ediyoruz sıfır ve olanlar kaynak kodu.
Şimdi CS50 personeli birkaç yıl önce yazdı CS50.h, ve karşılık gelen bir dosya
CS50.c.
Ve birkaç yıl önce biz, Bu dosyalar derlenmiş
olur bir dosyaya CS50.o. çağrılacak
>> Ya da yeniden adlandırılabilir bir birkaç farklı şeyler.
Ama bu basit bir yoldur ve bu konuda düşünme.
Bu yüzden CS50 's derlenmiş sıfır ve olanları içine kütüphane.
Ama hiçbir yerde ben belirttiğiniz Ben sıfır birleştirmek istediğiniz
Benim merhaba dünya için ve olanlar sıfır ve olanlar ile programı
Bu CS50 personeli birkaç yıl yarattı önce tam bir programa.
Tüm ben yazılı belirtilen ettik clang merhaba.c hello.c derlemek.
>> Ben clang söyledim ettik sıfır ve olanlar bağlantı
oluşturulan CS50 personeli bir süre önce sizin için.
Bu yüzden kolay bir düzeltme var, , bağlantı için CS50 l çizgi.
Ve biz yine bu göreceğiz Uzun tekrar önce.
Ama şimdi fark hiçbir şikayetleri vardı.
Yani şimdi ben nokta çizgi çalıştırırsanız merhaba, şimdi çalışıyor.
Bu yanıltıcı biraz öyle olsa Ne dosyayı yeniden sadece beri?
a.out.
>> Bu yüzden bana bir an için geri sarma verelim.
biz sadece derlenmiş programı kod üç satır vardır.
Merhaba dünya koştu, merhaba, bir an önce, ben senin ismini devlet görmedim.
Ben koştum çünkü Ve bu Programın eski versiyonu.
Ama ben gerçekten nokta çizgi a.out çalıştırmak yoksa Girin adınızı devlet, Rob, merhaba,
dünya.
Hm.
Bu bir hata tür.
Muhtemelen doğru, Rob söylemek istedim?
Yani düzeltme kodu burada ne.
ÖĞRENCİ: [duyulamaz].
DAVID MALAN: Kesinlikle.
Yani sadece bu son çimdik yapmak gerekir bu yüzden bir tutucu geçen olduğumu,
boş bir dolgu gibi, gibi bir an önce yaptım.
Ama yüzde ler artık Bu boşluğu dolduracak.
Yani son son bir açığa izin detay yok büyü var ki.
Ben önde gitmek için gidiyorum ve hellow kurtulmak.
Ben önde gitmek için gidiyorum ve a.out kurtulmak.
Yani şimdi ben hiçbir program var, sadece benim kaynak kodu.
Ve ben bir çalıştırmak için gidiyorum biraz daha uzun komut, clang
o merhaba merhaba.c çizgi LCS50 çizgi.
>> Şimdi bu tür gitmek başlıyor bir kulak ve belki de diğer dışarı.
Ama sadece bu ne yaptığını ayrı kızdırmak.
Clang derleyici, çizgi LCS50 olduğunu kasten en sonunda
Bir cümlede ne yapar?
CS50 kütüphaneye bağlantılar.
Sıfırları Polip ve Personel yapılan olanlar
ve benim kendi programı içine crams.
Yani eldeki son soru, çizgi muhtemelen merhaba o ne
asla ettik bile yapıyor daha önce bu sözdizimi gördünüz mü?
>> Olan bir programı çıktısının Varsayılan a.out adında değil.
Aksine merhaba adlı oluyor.
Yani artık hiçbir a.out yoktur.
Böyle bir dosya ya da dizin yok, Ben açıkça söyledi, çünkü
Böylece, merhaba bu programı çağrı Ben şimdi böyle bir isim yazabilirsiniz
ve davranırlar var.
>> Şimdi açıkçası, çocuk olduğunu var çekmeyen
Bunun tüm hatırlamak Küçük minutia, değil mi?
Yani öncesinde gidelim ve Tekrar merhaba kurtulmak.
Ve şimdi bir dünyaya dönelim hangi merhaba yapmak demek yeterlidir.
Ama bu sihirli olduğunu Sizin için yapıyor olun,
Bu bezginlik olduğunu sizin için yapıyor.
Ve bizim programları ve sorunlar, daha karmaşık olsun
Gerçekten arkadaşın olacak yapmak.
Çok uzun değil çünkü Şimdi biz gidiyoruz
Yazılı programları var değil bir dosya, ancak birkaç dosya ile,
ve sürecini otomatikleştirmek yapmak Birlikte bizim için bütün derleme.
>> Şimdi yazdırın.
printf bu dosyanın içinde, standart I / O nokta h önce gördük,
ama bundan daha printf daha var.
Ters eğik çizgi n var, ama orada da var Diğer kaçış dizilerinin bir demet.
Ve kaçış dizisi sadece bir olduğunu bir şey söyleyerek fantezi yolu
Bu, bir ters eğik çizgi ile başlar değil eğik çizgi, bir ters eğik çizgi,
ve bazı özel bir şey yok.
Ve biz, bunların çoğu üzerinde durmak olmaz ama neden çift tırnak vardır kullanılan karakterler olduğunu,
sizce?
Neden bu garip dizisi var karakterler, ters eğik çizgi çift tırnak,
neden yararlı olabilir?
ÖĞRENCİ: [duyulamaz].
DAVID MALAN: Kesinlikle, değil mi?
Bizim merhaba dünya programa geri düşünün Şimdi tamamen birkaç kez gördüm ki,
Her zaman biz merhaba dünya gördüm Program biz içinde çift tırnak yaşadım
hangi merhaba virgül Dünya ters eğik çizgi n.
Ama kendinize düşünmek, aslında ne eğer
Bir tırnak işareti yazdırmak istedi?
Ilk içgüdüsü, olabilir bilmiyorum Ben burada sanıyor- isteyebilirsiniz neden bilmek,
biz biraz pasif olabilir agresif, merhaba arkadaşım.
Biz böyle bir şey yapmak isteyebilirsiniz.
>> Peki neden şimdi bu sorunlu?
Kenara kıvırcık tırnak almamak açış otomatik bizim için yapılmış.
Neden bu sorunlu?
>> Aynen.
Biz 4 tırnak işaretleri gibi çünkü.
Peki ilk bir olasılıkla İkinci biri ile gider,
ve belki dördüncü bir Üçüncü bir ile gider,
ya, ben bile emin değilim demek ne olacak bilgisayardır.
Yine Bilgisayarlar, derleyiciler Yine, oldukça aptal.
Onlar sadece ne yapacağım Yapmanız söyle.
Ve sen kesin değilseniz onlar Muhtemelen bir hata atmak için gidiyoruz.
>> Eğer olarak nasıl net değilseniz Bir fıstık ezmesi ve jöle sandviç yapmak
garip şeyler geliyor olabilir.
Aynı fikir.
Şimdi orada söylemek yeterli diğer bazı kaçış dizileri,
ama biz uzun zaman önce bu geleceğiz.
Esasen bu kaçış dizileri bir şey temsil
Eğer mümkün olmayabilir çok kolay klavyeye,
Bilgisayarı kafa karıştırıcı olmadan.
>> Şimdi bu arada biz var printf tutucular.
Ayrıca yazılabilir Yüzde d Yüzde i gibi hemen hemen tüm vakalarda,
veri ne tür bir yer tutucudur?
Değer ne tür?
Bir ondalık sayı.
Yani aslında biz başlayacağız o çünkü yüzde i kullanarak
Bir tamsayı gibi, biraz daha basit.
Yüzde i.
Olur bir tamsayı ondalık olmak.
Biz zaten dedi >> Yüzde s oldu bir dize için bir yer tutucudur.
Hangi sadece bir kelime, bir cümle, Bir paragraf, bir deneme, ne olursa olsun.
Bu bir dizi var Bazı uzunlukta karakter.
Ve biz çok önce görürsünüz Bu bazı diğerlerinin.
Ama yüzde c tek bir karakter için.
Yüzde f için kayan nokta sayısı,
olan gerçek bir numarası gibi Bunun bir ondalık nokta, hangi
Tabii olmayan bir tamsayı biridir.
Ve bir bütün var yanı sıra başkalarının demet.
>> Arada C, ve dil bir çok,
farklı veri türleri vardır.
Farklı türleri eğer sen cam kase.
kase Ben son kez kullanılan ping pong topları oldu
ama biz de farklı saklayabilirsiniz karakter ve dizeleri gibi değerler
ve bir kap içinde tamsayıdır, Bir değişkeni gibi, ve C bu vardır.
Char veri türü değişken türü,
hangi bir karakter saklayabilirsiniz.
Şamandıra değişken bir türü olan hangi bir gerçek sayı saklayabilirsiniz.
>> Int bir int için tabii ki.
Ve oldukça gülünç uzun uzun adında
aslında saklayabilirsiniz nerede bile gerçekten uzun bir sayı,
daha çok sayı daha sonra Tipik int kudreti mağaza.
Ama biz uzun zaman önce tekrar bu geleceğiz.
>> Olarak CS50 nokta h arada Diğer başlık dosyası
Biz bir çift gördüm Kullanılan kez var
İki diğer veriler bu genellikle C yoktur.
Bir dize, ve biz göreceğiz Bir kaç hafta hangi dizeleri gerçekten
Kaputun altında bulunmaktadır.
Ve bir bool.
Ve Boole değişken olduğu sadece belirli değerler alabilir.
Ve geçen hafta en dayalı Scratch açıklanması,
ve son zamanlarda C ne tahmin ediyorum
iki olası değerler tipi bool bazı kap?
>> Evet ve hayır.
Bir ve sıfır.
Doğru veya yanlış.
Ve gerçekten de eğilimi son var Bir programlama geleneksel olduğu
dil, diyerek bir şey doğru veya yanlış gibi.
>> Arada CS50 kütüphane geliyor işlevselliği bir demet
Personel sizin için yazdığı, Sadece bir dize almak yanında.
Biz önceden fonksiyonları yazdı kullanıcının bir tamsayı alabilirsiniz,
tek bir karakter almak, o bir float olsun
ondalık noktasının sadece bir sayıdır.
Gerçekten, uzun uzun alın kullanıcı büyük bir değer.
Yani biz sadece bu gördüm getString şeklinde de eylem.
Ancak bu fonksiyonlar yoluyla Yakında yazmak mümkün olacak
kullanıcıdan girdi almak programlar.
>> Bu arada bu düşünün Program, ve düşünün
Şimdi eklemek için başlayabilir nasıl Yeni yapılarla o kadar.
Hızlı bir kasırga turu ve sonra bakacağız
bazı yazma bazı kendimizi elle programlar.
Biz istiyoruz bundan sonra eğer Bir koşul uygulamak,
Bir gibi görünmek için gitmiyor güzel küçük tatlı bulmaca parçası.
Biraz daha gizemli görünmek için gidiyor.
Ama bu kanonik olduğunu C. bir durumun yapısı
>> Kelimesi ise, iki Parantez içinde olan
çeşit olacak Boole ifadesi.
Şimdi çizgi çizgi ortasında, bu
Şu an çeşit gibi de Pseudocode kod tutucu.
Kod Ama daha düzgün, herhangi bir satır C bölü bölü çizgisi ile başlar
bir yorumdur.
>> Bir yapışkan not gibi olduğunu sen olabilir kağıda basılmış bir deneme, koymak.
Bu kendinize bir not var.
Bu fonksiyonel var Programın üzerindeki etkisi.
Bir hatırlatma çeşit, o kendi bulunuyor Neler olarak dokümantasyon.
Yani şu anda bunu Bir tutucu nevi
ne olursa olsun içeride Bu kaşlı ayraçlar arasında
Sonunda bir şey yapmak için gidiyor.
>> Bu arada iki çatal var Yol, bir else if böyle yaparız.
Sen eğer, elseif, else can.
Şimdi özellikle fazlalaştı etrafında Googling oldum eğer
dışarı kaynaklar için çevrimiçi merak, ya da pick up eğer
Elbette en biri C tavsiye kitaplar,
Eğer insanlar çok var olduğunu göreceksiniz nasıl farklı tercihleri
kodda kendilerini ifade etmek.
Bazı insanlar koymak istiyorum kaşlı Burada yaptığım gibi.
Bazı insanlar kıvırcık koymak istiyorum buraya Örneğin parantez.
>> Bazı insanlar birinin koymak istiyorum Burada ve daha sonra bu buraya kadar.
Bir takım yollardan için var yazma kodu, ve bunların hiçbiri
bizatihi doğru.
Birkaç var olmasına rağmen oldukça yanlış olduğunu.
Bu Fakat eğer hayır-- orada sonuçta bir çok dini bir tartışma.
Aslında, en sinir bozucu birinde Bilgisayar bilimi hakkında şeyler
nasıl inatçı olduğunu Bilgisayar bilim adamları olabilir.
Ve zamanla bulacaksınız Hatta kişisel tercihlerini geliştirmek
kodunuzu bakmak gerekir olarak nasıl.
>> Sadece, sadece çıktı oluşturmak değil, davranması değil ancak estetik nasıl görünmesi gerektiğini.
Peki ne yapacağız boyunca size rehberlik olduğunu yol doğru, şimdi en azından,
Standart CS50 tarzı en azından üniforma ve okunması kolay şeyler tutar.
Olanlara Ama daha uzun zaman önce ayrımlar.
>> C bir Boole ifadesi, eğer Bu koşul doğruysa demek istedim
ve bu diğer durumdur Gerçek, sözcüğü yazmayın
ve, İngilizce yaptığınız gibi.
Bunun yerine işareti işareti kullanın, nedenlerle biz geri geleceğiz.
Söylemek istediğin veya iki kullanıyorsanız Dikey çubuklar, bir ABD klavyede hangi
Genellikle Giriş üzerinde ters eğik çizgi anahtarı yanında.
Ve bu sadece bu durumun ise anlamı veya bu diğer koşul bunu doğrudur.
>> Bu arada bu var çılgın şey, hangi
Eğer fırsat olacak süre içinde bir kez kullanın.
Ama sadece bir alternatif var Kendinizi ifade yolu.
Bu, şimdi, haydi bu sadece, şart
ifade etmenin başka bir yolu korkak elseif, elseif, elseif, elseif, eğer.
Sadece açısından biçimlendirilir durumlarda, size tam anlamıyla bir
değerleri numaralandırmak ki Eğer kontrol etmek isteyebilirsiniz.
>> Arada döngüler.
Biz bir karşılaştırma gördüm Bir döngü ile Scratch.
Ve ben de elimi dalga gidiyorum Bunlardan her biri ne anlama geldiğini.
Ama dikkat edin, bir döngü olacak çok genellikle için anahtar kelime ile başlar.
Ya da anahtar kelime süre ile başlayacak.
Ya da anahtar kelime ile başlayacak yapmak, ve anahtar kelime süre ile biter.
>> Ama biz görmek üzereyiz ne daha bunun gibi şeyler.
İşte C genel olarak, nasıl olabilir Bir değişken bildirmek ve bir değer vermek.
C o yeterli değil, gibi Scratch içinde, sadece
Bana bir değişken denilen bir şey vermek demek.
Sen C anlatmak zorunda, ve söyle derleyici, daha özel olarak ise,
değer ne tür do you cam kase koymak istiyorum.
>> Bir tamsayıdır mi?
Eğer öyleyse, var kelimenin tam anlamıyla sonra int ve söylemek
değişkenin adı, Daha sonra bir noktalı virgül.
Yerine dize istedim ve çağrılırsa Ben bugün burada benim kod yaptım gibi s,
Eğer string s noktalı virgül söyleyebilirim.
Bunu bir değer vermek istiyorum kez Eğer eşittir işaretini kullanabilirsiniz,
aksi takdirde bilinen atama operatörü.
Ve nasıl her fark bu kod satırları
bunun sonunda noktalı virgül vardır.
>> Ama açıkçası bu sadece Biraz çirkin görünüyor.
Ben bilgisayara diyemeyiz Neden vermek Bana bir değişken ve sıfır olarak başlatılamadı.
Yani, bana bir boş cam kase verin.
Siz yapabilirsiniz.
Ve böylece yargı bir sen edeceğiz aramalar zamanla üslup yapmak zorunda
, bu gibi kod yazmak, ya da yok edilir ne tür o kadar temiz ve etkilemek yapmak
Sadece biri olarak iki satır yazarak insanlar.
Ve bu düşünülebilir genellikle daha zarif bir şekilde
bir üslup sizin kod yazma.
>> Elbette görülen konum Fonksiyonları.
Onlar bu formatı almak için gidiyoruz.
Bir işlevin adı, bazı parantez, ve sonra belki bazı
içeride şeyler.
Yoksa kullanımlarını görebilirsiniz Birden fonksiyonlar tarafı
Böyle bir şey gibi yan tarafından.
Şimdi teğet yapar Bu şaka artık mantıklı?
>> [KAHKAHA]
Bu komik demek, ama değil belki biraz daha mantıklı geliyor.
Yani şimdi en içine gidelim Bir an için CS50 cihaz.
Ve ben burada bir teaser kadar açalım.
>> Ve nedenlerinden biri aslında IKEA Katalog verilmesi için
ve resmi yanıp sönen iPhone biraz önce
aslında birlikte kravat oldu Aslında sadece bir kaç yıl önce, 2007 yılında,
Bu kod parçası oldu , hangi yayınlandı
İlk uygulama, bir Yazılımın bir parça
Bu Jailbreak ne denir yapar.
Bu alışılmadık, Jailbreak için Bir telefon veya bir iPhone gibi bir şey
esasen bulmaktan anlamına gelir şeyler yapmak nasıl
onunla o şirket kim niyetinde değildi yaptı.
Belirli yüklemek istediğiniz gibi app store değil yazılımı,
Telefonunuzu jailbreak hangi Eğer bu ve benzeri şeyler.
Ama eğlenceli neydi 2007-- ve orada var
farklı sürümleri onlarca Bunlardan o zamandan beri,
her türlü languages-- bu değildir iUnlock denilen Burada bu program,
Aslında C. Ve böylece yazılmış Ben Bu kaynak kodu çekti
sadece tür size bazı göstermek için yapıları ile benzerlikler
Biz bugüne kadar tartışıyor oldum.
Şimdi yol daha karmaşıklık burada var Sınıfta zaten gördüm daha.
Beni burada sadece biraz yukarı edelim.
>> Ama iyi bir kaç fark these-- fark seyleri ama burada bu satırları fark,
Standart I / O nokta h dahil.
Ve Bay Kane, satır 24 lütfen-- / Ç Standart I fark
nokta h ve diğer bir sürü Dosyaları bu görünüşte diğer insanların
yazdım.
Ve biz aşağı kaydırma eğer Bu, küçük keyfi,
Ben yazmak için nasıl bilmiyorum dikkat edin, kendimi mutlaka henüz tüm bu,
ama eğer var.
Yani görünüşe göre bu bir şubesi bulunmaktadır.
>> Ve ben biraz aşağı doğru ilerleyin eğer diğer varsa var.
Ben yukarı, ben düşünüyorum hat 100 civarında ben gördüm.
Yani ben çok emin değilim nasıl bu henüz çalışır,
ama bu gidiyor döngü için bir olduğunu Bana kez bazı dizi yineleme verelim.
Ve ben bütün kaydırma eğer alt yolu
Ben bir var olduğunu görmek Buraya işlev denir
Ana ve bazı ek kredi Okuma zevk için.
>> Yani bu sadece say-- için ve biz koyacağım dersin kaynak arasında bu çevrimiçi
Kod bu bile bazı today-- hafife aldığımız cihazlar,
Günün sonunda sen hala biz ettik bu temel yapıları kullanarak
bugüne kadar zaten tanıtan edilmiştir.
O birinin yeterli.
Pekala, şimdi diyelim aslında bir şey inşa.
>> En gibi bir şey ötesine gidelim merhaba.c ve bu kadar açık
burada bu programı yazalım.
Ben önde gitmek için gidiyorum ve , adder.c adında bir program yazmak
hayatta kimin amacı olacak Benim ilk süper basit bir hesap makinesi gibi
sadece sayılar birkaç ekler.
Bu zor değil, çünkü Sorun, ancak bunun nedeni
Şimdi beni kravat sağlar Birlikte bir şeyler.
Yani go ahead ve dahil gidiyorum Standart I / O nokta h CS50 nokta h.
Ben int main boşluğu söylemek için gidiyorum.
Ve yine gelecekte biz geri geleceğiz
Bu bağlamda ve geçersiz araçlarında içine.
>> Ve şimdi ben bir şey söylemek için gidiyorum printf gibi, bana bir tamsayı ver.
Ve şimdi benim ikinci satırda, Kendimi böyle ifade nasıl
Ben bir değişken bildirmek istiyorum Bu bir int depolamak için gidiyor?
Ben istiyorum Gerçekten ne yazabilirim Bir int saklayan bir değişken oluşturmak
Eğer derdi?
int GETINT eşittir.
Tabii, bu yüzden çalışır.
Ve sadece tutarlılık için kodu ile size olacak
Online bakın, bana değişiklik olsun Bu x, sırf x
ortak bir değişken adıdır en azından cebir kullanmak.
Şimdi bana go ahead ve tekrar printf yapalım.
Bana başka tamsayı ver.
Ve şimdi ben tür gidiyorum bu desen öğreniyoruz,
Ben int y GETINT alır söylemek için gidiyorum.
>> Ve biz kullanılan ettik GETINT önce, ama sadece
GetString gider ve bir dize alır gibi, Javier dinleyicilerin yaptığı gibi,
Benzer GETINT yapar istemi yanıp sönmeye başlar.
Ve etkili bir kullanıcı için bekliyor bunu yazarak, o bir tamsayı vermek
ve Enter isabet.
Şimdi son olarak ben yapacağım bu, bir miktar printf'in of--
ve beni fantezi şimdi-- izin Yüzde i ve yüzde i mevcut
Ben noktası ters eğik çizgi n ünlem.
Ve ben gidiyorum ne düşünüyorsunuz Ek girdi olarak şimdi koymak
printf?
>> Söylemek istemiyorum kelimenin tam anlamıyla unquote x alıntı.
Ben x sınıfa istiyoruz ve Daha sonra, ve şimdi en süslü başlayalım
ve en adil varsayalım biz istediğinizi yapabilirsiniz.
Ne sonraki söylemek istiyorum?
x artı y.
Ve gerçekten de bu işe olur.
Bu minimal programlama dilleri var Temel aritmetik anlıyorum,
ve bu nedenle bu aslında işi olmalıdır.
>> Bu yüzden bana go ahead ve yapabilirim izin benim siyah ve beyaz pencerede toplayıcı
Buraya girin.
Cryptic çizgi ama hiçbir hata mesajı, böylece iyi.
Nokta bana bir tamsayı, 1 vermek, toplayıcı çizgi.
Bana başka bir tamsayı, 2 verin.
1 ve 2 toplamı 3'dür.
>> Pekala, bu yüzden oldukça önemsiz Program, ama ne yapılır?
Bu beni bir işlevi kullanmak için izin var Burada çağrı burada başka bir işlev çağrısı,
GETINT, a iki çağrı printf çağrısı üçüncü,
ve daha sonra, bu yer tutucular kullanılmıştır.
Bu yüzden biraz daha var son kez daha sofistike.
Ama ben ne istiyorum Biraz meraklısı olsun?
>> Beni go ahead ve şimdi bu yapalım.
Beni go ahead ve yaratalım bir Yeni dosya koşulları sıfır çağırdı.
Ve ben kurtarmak için gidiyorum sınıflar uğruna bir süre
ve sadece yapıştırın bir başlangıç ​​noktası olarak kodu.
Ve şimdi sadece koymak için gidiyorum Ortada burada yeni bir şey.
Yani printf Ben bir tamsayı istiyorum, lütfen.
Ve tüm bu kod kullanılabilir dersin web sitesinde,
Eğer tüm dışarı yazın gerekmez sınıfta eğer tercih ederim.
int, ve şimdi gidiyorum Bunun yerine, x ve y, kullanın
Ben hangi, n kullanmak için gidiyorum muhtemelen en yaygın isim
Bir bilgisayar programında bir tamsayı için.
Ve şimdi ben bir yapmak istiyorum Burada küçük yargı.
Ben n görmek için gidiyorum daha sonra, daha büyük 0
Ben, printf-- hoppala söylemek için gidiyorum printf-- Eğer, pozitif bir sayı aldı
ünlem ters eğik çizgi n.
Bu kapatın.
Başka ben Printf yazdırmak için gidiyorum Eğer negatif bir sayı aldı.
>> Şimdi bana bağırma önce, Şimdi bu programı çalıştırın.
Beni buraya gidelim.
Ve ben bir programı derlemek nasıl koşullar çizgi 0 aradı?
Koşullar çizgi 0 olun.
Aptal bir isim Tür, ama- kahretsin.
Tamam, iyi öğretim an.
Neden ayrıldın?
>> Ne yanlışlıkla bu dosyayı dedin?
Sen tür çıkarabiliriz buraya sekmesinden.
Yani o kadar da kötü değil ben Bu yaptım, bunun nedeni
Size bazı belki olur.
Yani yanlışlıkla adlı benim kaynak kodu durumu 0.
Ama kongre benim kaynak kodu gerekir durumu 0 çizgi c adlı bir dosya olması,
ya da her türlü nokta c.
>> Peki bana bu düzeltmek izin ver.
Sadece Microsoft Word gibi yukarı gidebilir Farklı Kaydet ve durumu 0 nokta c yapmak.
Şimdi sadece ben değilim düzenli olması için go ahead ve kaldırmak için gidiyor
Benim eski versiyonu oldu koşulu 0,.
Ve şimdi yapabilirim edelim durum 0 girin.
Tamam, iyi görünüyor.
>> Durum 0 girin.
Ben, 50, bir tamsayı lütfen istiyorum Eğer pozitif bir sayı aldı.
Şimdi ne negatif 50 hakkında?
Sen negatif bir sayı aldı.
Şimdi nasıl, 0.
Oldukça emin 0 olumsuz değil.
>> Yani bu bir mantıksal hata türüdür.
Ben bu nasıl düzeltebilirim?
N, 0'dan az else if, else bunu Biz burada üç yollu şube olabilir
printf Eğer 0 aldı.
Yani şimdi ben bu yeniden eğer Program, derleme sonra
Yine make ile, ve şimdi yeniden durum 0, ben burada ne görürsünüz
0 bana çıkış verir olduğunu.
Peki nerede biz bu gidiyoruz?
>> Peki gözden kaybetmek çok kolay ağaçlar için orman.
Ve böylece bizim sonuçlandırmak için izin Bu 2 ve 1/2 dakikalık video ile
sonuçta biraz Google'dan bir reklamın,
ama bu gerçekten kanıtıdır ne bile bu temel bina kullanarak
sonuçta bir kez yapabilirsiniz bloklar Biz programlama biraz var
Bizim kemer altında savvy.
>> [MÜZİK OYUN]
>> SAROO BRIERLEY (sesi): Bu, 26 yıl önce oldu
ve ben 5 açmak üzereydim.
Biz tren istasyonu var ve Birlikte bizim trene bindik.
Kardeşim sadece ben olacak dedi Burada kalmak, ve ben geri geleceğiz.
Ve ben sadece iyi bilirsin, düşünce Ben de sadece uyumak için gidebilir
ve o sadece bana uyanmak gerekir.
Ve sonraki uyandım günde, tüm taşıyıcı
kaçak tren boştu, bir hayalet Tren nerede bilmiyorum beni alarak.
>> Ben Avustralya'ya dışarı kabul edilmiştir, Avustralyalı bir ailenin.
Ve annem süslenmiş benim Hindistan haritası ile oda,
hangi o benim başucu yanına koydu.
Ben her sabah uyandığımda Bu haritayı görünce, ve dolayısıyla
bu tür canlı anıları tuttu.
İnsanlar sen, derdi Bir iğne bulmaya çalışıyor
Samanlıkta, Saroo içinde Bunu bulmak asla.
>> Ben yerleri parladı olurdu ki ben gitmek için kullanılan, ailem yanıp söner
bakmaktadır.
Annemin görüntüsü vardı bacakları çapraz ile oturarak,
sadece onun ağlamasını izlerken.
Hayat sadece çok zor.
Bu benim hazine oldu.
Ve ben Google Map ve bakıyordu fark yanı sıra Google Earth var.
Eğer yakınlaştırmak olabilecek bir dünyada, Ben bu düşüncelerle tüm yaşamaya başladı
ve hangi olanakları Bu benim için yapabileceği.
Ben, sen biliyorsun, sen ettik dedim Tüm bu fotoğraf anıları var
ve konum görülecek ve Eğer şehir neye benzediğini biliyorum.
Bu bir uygulama olabilir geri yolunuzu bulmak için kullanabilirsiniz.
>> Ben de bir koyacağım, düşünce Kalküta tren istasyonuna nokta,
ve bir yarıçap çizgisi, bilirsin, sen misin Bu alanın çevresinde arama olmalıdır.
Ben tür rastladı Bu tren raylarında.
Ve ben onu izleyen başladı, ve Ben bir tren istasyonuna geldiği
Aynı görüntüyü yansıyan benim anılarım oldu.
Her şey eşleşti.
Ben sadece, evet düşündüm Ben nereye gidiyorum biliyorum.
Ben sadece izin gidiyorum Kafamda var haritası
bana yol ve geri memleketi götür.
>> Ben kapılarına geldi Doğduğum ev.
Ve etrafında yaklaşık 15 yürüdü köşeyi metre,
Üç bayan ayakta oldu dışında, birbirine bitişik.
Ve orta biri öne çıktı, ve Ben sadece bu senin annen, düşündüm.
O öne çıktı, o bana sarıldı ve yaklaşık beş dakika vardı.
>> Elimi yakaladı ve O evine götürdü
ve telefonda, she got ablam ve kardeşimi çaldı
söylemek, bilirsin, Kardeşin sadece vardır
tüm ani bir hayalet gibi göründü.
Ve sonra aile tekrar bir araya edildi.
Her şey, bütün iyi Ben, annem dışarı yardım
O köle olmak zorunda değildir.
O kalanını yaşamak barış hayatının.
>> Bir samanlıkta iğne oldu fakat iğne orada.
Her şey var.
Her şeyi biz dünyada var Bir düğmeye dokunun yer almaktadır.
Ama irade sahip oldum ve Bunu isteyen için belirlenmesi.
>> [MÜZİK OYUN]
DAVID MALAN: Harika tatlı bonservis
sadece ne yapabilirsiniz için Şimdi teknoloji ile yapmak.
Önümüzdeki hafta göreceksiniz.