>> [Musiqi ifa]
>> DAVID Malan: Yaxşı.
Geri xoş gəlmisiniz.
Bu CS50 və bu Həftə biri, davam etdi.
Beləliklə, biz keçən olduğunuz səbəblərindən biri kimi şəbəkə ətrafında
Google Glass onlar ilə gəlib ki, bir API kimi tanınan bir şey, bir
Application Programming Interface.
Və nə bu o deməkdir ki, ilə sağ faylları və hüququ ilə
sənədlərin, həqiqətən, yaza Bu kimi hətta cihazlar üçün proqram.
>> Və belə ki, biz doğru nəzərə nə bir layihə əgər semestr sonu edir
Google Glass, demək, ola bilər cəlb apellyasiya biz nə edə nə görürsünüz
bəzi siz qoşulma baxımından loaner hardware habelə
açıq-erişilebilir API bilərsiniz, belə ki, əslində proqram yaratmaq başlamaq
ki, eyni Google Glass çalışır.
>> Biz oynayan olduğunuzu başqa bir cihaz biz ola bilər düşündüm ki, mərhum ilə
semestr sonunda fun Bu az şey.
Bu Leap Motion adlanır və siz ne oldu görmək haqqında texniki bir deyil
cihaz üçün reklam, lakin o, bu nə danışmaq yoxdur
cihaz qadirdir.
Və bu da vasitəsilə API ilə gəlir Siz proqram yazmaq edə bilər
şəkildə öz kompüter nəzarət olduqca burada bu bir dəqiqəlik film istəyirəm.
>> [Video playback]
>> [END video playback]
>> Belə ki, hazırda bu cihaz olur bir az USB qaydada həyata keçirilir
Siz daxil yerləşdirin bilər ki birləşdiricisi kompüter, amma sürpriz olmaz
biz bu cür var uzun əvvəl, əgər kompüterlər növbəti toplu texnologiyaları
və Macs bilərsiniz, belə ki, həqiqətən, bu qarşılıqlı
kimi bir şəkildə.
Əslində, mən də, mən istədiyiniz nə fikir Mən bir az nümayiş qədər çıxardı
proqram bu proqram ilə gəlir.
Mən kiçik sensor gətirdik mənim laptop qarşısında.
>> Gördüyünüz kimi, artıq həyata keçirir mənim əl olduğunu
bu nəzarət.
Və bütün bu proqram yoxdur bu kimi tıkırında kiçik şeylər.
Amma siz, həqiqətən, görə bilərsiniz Mən orada beş barmaqları var.
Biz əldə edə bilər ki, bütün 10 etmək Bir səliqəli piano təsəvvür edə bilərsiniz
ərizə və ya kimi.
Siz sinif sonra gəlmək istədiyiniz Belə ki, əgər ki, bu gün və oyun
yaxşı, sizə açıqdır.
Semestr sonuna doğru ki, daha çox.
>> Belə ki, inzibati bir neçə elanlar.
Bir bu Cümə bölmə etmək cs60.net/section günorta edir.
Bu URL kursu üzrə deyil səhifəm həmçinin.
Bu vaxt, baxmayaraq ki, supersections bu bazar debüt edəcək.
Supersections, bir dəfə şey var Bu, bizə işləmək üçün bir müddət edir, çünki
həyata kim hansı hissəsində və harada var.
>> Bu qarşıdakı bazar Belə ki, bir olacaq bu az rahat üçün ikibölməli,
bu bir bölüm daha rahat.
Və o yerdə arasında getmək üçün açıqdır
ya hər ikisi və ya nə.
Bu iki film olacaq.
Onlar daha geniş auditoriyada olacaq bir bölüm normal daxil ola bilər
Amma burada məqsəd ilə təchiz etmək problem bəzi rahatlıq, bir müəyyən
ki, CS50 cihaz C, bu həftə sonu tapmaq hətta əvvəl
formal Bölmə təyin.
Belə ki, sizin TF və kiçik görüşəcəyik haqqında sectionmates qrupu
bir həftə vaxt.
>> Ofis saat, eyni zamanda, davam edilmişdir.
Və ya axşam onlardan istifadə etmək etməyin Əgər istəyirsinizsə, sabah gecə.
Problem set 0 Cümə günü ilə bağlıdır.
Bu gün sonra daha Cümə axşamı düzenli olaraq planlaşdırılır.
Ancaq problem dəsti 1, görəcəksiniz bəzi isti-up daxildir
təlimlər ilə özünüz Sizin uzada bilər
Cümə axşamı son tarix.
Problem set 1, eyni zamanda, debüt edəcək Kursun veb səhifəsinə bu gəlməyə
Cümə, siz curl up istəyirsinizsə Mən gec Bir Zamanlar kimi
Sizin otaq Cümə gecə.
>> Belə ki, cs50.net/appliance yer olduğu Siz CS50 cihaz əldə edə bilərsiniz
Biz bazar ertəsi istifadə etməyə başlamışdır.
Biz bir az daha bu gün də istifadə edəcəyik.
Amma istirahət problem qurulması 1 arxayın dəqiqləşdirilməsi size yol edəcək
sizə lazım dəqiq addımlar qədər və yayınlanmasını üçün.
Belə ki, əvvəl bunu narahat deyil Pset 1 deyil, deyil istəyirsinizsə.
>> Bütün hüquqlar.
Belə ki, mənbə kodu bazar ertəsi baxdı lakin yeni kontekstində
proqramlaşdırma dili, yəni C. və C, Not fərqli olaraq, qrafik deyil.
Bu ədəd puzzle deyil.
Daha çox İngilis-kimi sintaksis var.
Və cəlb addımlar bir neçə var həqiqətən yazılı və çalışan
çünki mənbə yanaşı C proqramı, bu kimi kodunu, bir şey lazım
bir compiler çağırıb.
Və layman nin baxımından, nə bir compiler bizim üçün nə edir?
Bəli.
>> TƏLƏBƏ: Bu kodu çevirir Siz 0s və 1s yazmaq edir.
>> DAVID Malan: Yaxşı.
Belə ki, kodu çevirir biz 0s və 1s yazmaq.
Bu sözdə mənbə kodu çevirir obyekt kodunu, görünür sonuncu olan
bu kimi bir az bir şey.
Və sizin CPU, daxilində beyin var Sizin kompüter ki, çünki
bu kompüter yaradan insanlar, bildiklərimi o ardıcıllığı
0s və 1s orta edir.
>> Bəlkə çap deməkdir.
Bəlkə əlavə deməkdir.
Bəlkə toplama işlemi deməkdir.
Bəlkə bir qrafik keçirmək deməkdir.
Bit əvvəlcədən təyin nümunələri var Dünyanın demək qərar qəbul
müəyyən şeylər.
Amma bu zamanı çox hissəsi üçün, biz daha yüksək səviyyədə işləmək və olacaq
mövcuddur ki, verilən biz almaq lazımdır edə derleyicileri kimi şeylər
bizim mənbə kodu funksiyası etmək yolu biz niyyətindəyik.
>> Proqramın Beləliklə, biz ötən həftə ilk yazdı və sonra üçün port başladı
C keçən üçün danışmaq Bazar ertəsi, bu idi.
Yaşıl bayrağa tıklandığında salam demək.
Bu, əlbəttə, idi Not yazılmış.
Və mən iddia ekvivalent C proqram bir az baxdı
bu kimi bir şey.
>> Belə ki, nə biz ilk nə istədiyiniz fikir deyil, edək, ilk görünür ayrı tease
nəzər admittedly kimi olduqca gizli sintaksis, lakin siz fark başlarsınız
olduqca tez nümunələri.
Biz də bu gün edəcəyik təmin Əgər bəzi ruhi model
canonical, bəzi standart yapıları proqramlaşdırma.
Və sonra, biz, həqiqətən, bizim əlləri almaq lazımdır habelə bəzi nümunələr çirkli.
>> Beləliklə, sizin üçün daha rahat, həyata ki, bu həftə və daha sonra gələn
həftə çox yaxşı nəzərdən bir qədər ola bilər.
Amma xüsusilə hacker nəşr problem dəsti 1-də çıxır
Cümə günü kurs veb, mən düşünürsünüz Siz doldurmaq kimi siz tapa bilərsiniz
Növbəti həftə və ya iki, bəzi blanklara Əgər daha çox almaq üçün başlamaq lazımdır
etiraz və qarşılaşa yeni və yeni şeylər.
>> Belə edək ayrı bu proqram tease bir anda bir neçə satır.
Çox üst-hazırda, biz nə var texniki adlandırıb
preprocessor direktiv.
Bu yalnız deyir ki, bir kod line bir fayl məzmunu, o cümlədən
- standart I / N, standart input adlanır və ya, sorry, standart I / O, standart
Giriş / çıxış. h daxilində, öz proqram.
>> Mən bu yazıb, başqa sözlə, əgər kimi sadə mətn redaktoru ilə proqram
gedit, bu sadə ekvivalent Microsoft Word kimi bir şey
təlimatı # stdio.h daxildir, yalnız compiler izah edəcəyik ki, qamarlamaq
ki, digər fayl, stdio.h, məzmunu və burada onları yapışdırıb.
>> İndi niyə mən qayğı yoxdur?
Biz bu faylın içərisində nədir iddia etməyib saxlanılır olan stdio.h adlı
Haradasa mənim sabit və ya bu halda, haradasa CS50 cihaz mi?
Başqası mənim üçün orada qoydu.
Lakin bu nə var?
>> Bəli, belə bir bəyanat var funksiyası printf çağırıb.
Belə ki, printf ki funksiyasını xatırladır göstərir söz və simvollar və
teklif at ekranda nömrələri.
Amma mən bunu yazmadım.
CS50 yazmaq etməyib.
Biri il əvvəl yazmış, onlar mahiyyətcə bizim üçün resept verdi
stdio.h adlı bir fayl.
Belə ki, ilk xətt yalnız mənə daxil edir funksiyaları ki, başqası
arasında il əvvəl olan printf var.
>> İndi növbəti line Mən dalğa gidiyorum əl azı gələn həftə qədər, at.
Amma indi üçün, bilirsiniz ki, int main (void) edir Bu mahiyyətcə ekvivalent
sarı puzzle parça zaman yaşıl bayrağı tıklayan.
Dünyada il əvvəl, qərara almışdır ki, əgər Siz bir proqram yazıyorsanız
C, başlamaq adlı dil xətti ilə proqram
ki, kimi görünür.
Yalnız bir həftə vaxt, o etmək lazımdır mənada nə int etibarsız nə edir.
Amma hələlik, yalnız hesab Bu sarı puzzle parça kimi.
>> İndi növbəti, biz sonra bir buruq brace var digər yaxın buruq brace ilə,
belə danışmaq.
Və biz bu ərzində görürsünüz C proqramları, eləcə də
JavaScript və PHP.
Və bu yalnız içine kodu bağlı satır.
Açıq buruq brace mahiyyətcə , burada kodu gəlir deyir.
Və olan qapalı buruq brace, digər istiqamətdə bucaqlı, yalnız
üçün vəsait ki, var müvafiq kodu.
>> Belə ki, bu birinci sulu xətt proqramı, son printf edir
quote-dırnağı bağlamaq, dünya salam.
Və mən arasında şey çağırıb quotes nə keçən vaxt?
Belə ki, bir simli var.
Və simli yalnız techie edir bir ardıcıllıqla müddəti
simvol, bir sözlə, bir söz.
Hətta bir hərf bilər ikiqat verilə.
Lakin bu sıfır bir ardıcıllıqla var simvol və ya daha çox.
>> Backslash-n, baxmayaraq ki, görünür, bir az qəribə.
Lakin bu sadəcə bir şey nəzərdə kompüter sadə.
Backslash-n nedir?
Yeni xətt.
Belə ki, yalnız xüsusi ardıcıllığı var Dünyanın qərar qəbul simvol
vasitələri, orada bir xətt fasilə qoymaq compiler həqiqətən əldə edəcək, çünki
çox əgər, adətən, səhv Aydındır, amma səhv, yalnız
qoymaq üçün daxil vuruş başlamaq kodunuzu yeni satır.
Siz bir az daha olmalıdır backslash-n aydın.
>> Və biz bir neçə digər belə var görürsünüz Xüsusi simvollar üçün nümunələri.
Məsələn, istəyirdi imkan üçün , künc işə gezmek ağla
Mən çap istəyirdi Güman üçün ekran cüt quote
hər hansı səbəbdən ki, görünür ki, bir az problemli doğru ola bilərmi?
Çünki mən bir çift tırnak qoymaq orta "Salam, dünya," nə üçün
səbəb, niyə elə görünə yoxdur potensial problemli?
Bu simli pozur.
>> Bu compiler yalnız bir proqramdır.
Bir compiler kimi bir proqram yalnız gedir alt kodunuzu üst oxumaq,
soldan sağa.
Və əgər əvəzinə üç cüt quotes görür iki, bunu etmək niyyətində deyil
demək ki, əgər sol şey simli və ya şey olmalıdır
sağ və ya bütün şey.
Bu birmənalı, və tipik belə nə compiler edəcəyini yalnız həyata qəribə ki,
və bəzi səhv mesaj vermək və Əgər problem ilə məşğul olun.
>> Belə backslash-n yeni deməkdir ki, verilmiş xətti, nə indi sizin instinktlərdən ki,
Siz daxil istəyirdi olmaq başlamaq bir cüt kimi anomal bir şey
Bu başqa-sitat daxilində quote string?
Backslash-çift tırnak.
Və biz bu görürsünüz çox model növüdür.
>> Siz bir az bir şey etmək istəyirsinizsə qəribə, siz tapa bilərsiniz ki,
həllər tez-tez bir biçim, və backslash
bir escape sequence bildirir.
Və bu, yalnız xüsusi bir şey deməkdir biz bir təmsil etmək lazımdır ki,
müxtəlif yol.
Sizi təmsil nə üçün bir backslash, yaxşı, biz edəcəyik
ki, geri gəlir.
Amma cavab da, əslində bir az aşkar.
>> Belə ki, indi bəzi digər tətbiq edək proqramlaşdırma yapıları
Siz Not gördüm ki.
Siz yəqin ki, göydən etdik Əgər siz artıq daxil dived sonra artıq əgər
problem 0 seçin.
Amma indi C sintaksis təqdim bildirin Bu başqa ədalətli intuitiv üçün
ideyalar, onların ən azı bəzi.
>> Yəni bu vəziyyətini anlayışı və ya filialı, halbuki əvvəllər biz
baxdı kodu ilə təmsil Scratch-ci ildə sol bu kimi -
x y-dən az olarsa, onda belə deyirlər -
əvəzinə indi C - Mənə bilemek bildirin Ən sadə halda üzrə -
, açmaq, əgər biz sadəcə, demək olacaq parantez, bir şey doğru - Bir
Boolean ifadə getmək gedir Mən vəziyyəti demişəm burada -
yaxın mötərizə, sonra nə yoxdur o buruq aşırma daxilində.
>> Belə ki, burada da, buruq aşırma Not nin kimi növ var
U-formalı puzzle ədəd.
Bu buruq aşırma daxilində nə etməyin.
Bu halda, doğramaq doğramaq.
Bu irəli fark deyil, bir backslash doğramaq.
İrəli, irəli zərbə, zərbə proqramlaşdırılmış etdik edənlər üçün
əvvəl, yalnız vasitələri -
yalnız Şərh var.
Yorum bir xətt deyil kodu, hər se.
Bu ki, ingilis xətti var insan, özünüzü üçün yazılmış
bəlkə üçün bir şey etmək üçün sizə xatırlatmaq izah etmək üçün, özünüzü izah
başqası, kodu nə edir.
Bu, sadəcə bir təsviri Şərh var.
>> İndi, əlbəttə, biz iki yol ola bilər a, yalnız bu cür etməklə yol ödemek
edərək yolun üç yol çəngəl Bu, və bu davam edərsə,
model, siz, dörd yol ola bilər yolun beş yol, altı yol çəngəllər əgər
Siz, həqiqətən, idarə etmək lazımdır bir çox şəraitin.
Və sonra burada paralellik qeyd -
başqa (vəziyyət) əgər (vəziyyət) əgər və bir az var ki, yalnız bir
qəribə olan son yalnız başqa deyil.
Ancaq yenə də, bu, eyni konseptual, biz etdik nə
artıq hətta syntax olacaq alışma bir az edir.
>> İndi bu nümunə var digər bəzi qəribə sintaksis.
Biz, printf yenidən açıq mötərizə bax və yaxın mötərizə.
Və daxilində var Açıq string.
Kontekstində parantez, printf ki, sol getmək
və sağ nə?
Biz sitat ki, nə təsvir yoxdur ümumiyyətlə kimi simli?
>> Belə ki, bir arqument var.
Heç bir zaman sizin kimi bir funksiyası var printf, sonra açıq paren və
daxilində yaxın paren və bir şey ki, istər simli, və ya bir
tam, və ya başqa bir şey varsa, şey o parantez adlanır arasında
mübahisə.
>> Və bir dəlil yalnız təsir funksiyası davranışı.
Bu halda, bu, olduqca aydın oldu.
x <y, qəbul edib nə belə bir arqument kimi danışmaq.
Və printf gedir tam olaraq çap.
Şübhəsiz ki, şəxs il əvvəl Çünki kim idi printf heç bir fikir həyata
biz insan varisləri nə üçün printf istifadə edəcəyik.
Arqumentlər var nə ki, var funksiyası sonra davranış təsir
yazılmışdır.
>> İndi Boolean ifadəsidir.
Biz Not əvvəl bu gördük.
Bu C Siz həmçinin çıxır "və ya" onlara birlikdə, belə danışmaq.
Iki şaquli barlar o deməkdir ki, bu blok kodu, bu nə olacaq,
ilk şərt doğru Əgər icra və ya ikinci şərt doğrudur.
Və görmüşük bilər, baxmayaraq ki, Bu Scratch, siz həqiqətən bilər
Not bunu, və həmçinin fərqli özünüzü ifadə -
əgər ilk şərt və ikinci vəziyyəti doğru, sonra nə yoxdur
Kıvırcık aşırma daxilində.
>> Və yalnız bir tərəfə, səbəbi var ikiqat işareti və iki
şaquli bar, biz nəhayət görürsünüz ki, bir şaquli bar və
tək işareti həqiqətən müxtəlif var İndi Belə ki, C. mənası,
rəmzləri ki, təkrarlama qəsdən edir.
>> Belə ki, qısa, bu tətbiq edək syntax bu digər bit.
Bu olduqca üzərində daşımır Scratch, amma iddia edirəm ki
, əgər bir halda başqa anlayışını həyata başqa, başqa halda, başqa bəyanat kullanıyorsanız
bir şey bir keçid bəyanat çağırıb.
Və bu, həqiqətən mövcud yeganə səbəbi yalnız proqramçı vermək, bir
Bəzi həll biraz farklı şekilde problem olsa da məntiqi bu
Hər hansı bir yeni imkanlar vermir.
>> Ki, mən bu demək.
Siz keçid, sonra boşluq deyəndə və sonra parantez bir cüt, daxili
olan ifadə gedir -
və bu bir az qeyri-aşkar ola bilər , birinci, lakin bu arqument deyil
texniki, çünki keçid funksiyası deyil.
Belə ki, indi üçün, yalnız biz istifadə etdiyiniz güman müxtəlif yerlərdə mötərizədə
müxtəlif səbəblərdən.
>> Belə ifadə switch I deməkdir bu bir dəyişən daxilində qoymaq
ifadə söyləyir parantez.
Və sonra dəyişən əgər -
bu x adlı Güman və yalnız bir tam var -
Mən sonra mənim slayd-ci ildə sadalamaq bilər bu kimi burada bir şey.
X mənim dəyişən və mən əgər bir şey etmək istəyirsinizsə x
1 bərabər, mən bunu edə bilərsiniz.
>> Mən yerinə şey etmək istəyirsinizsə x 2, mən bunu edə bilərsiniz.
Başqa, mən başqa bir şey etmək istəyirsinizsə tamamilə, mən bir default halda ola bilər
Bu halda mən bu başqa şey.
Belə ki mənada, bir ekvivalent var x, əgər başqa başqa, 1 bərabərdir bərabərdir əgər
amma indi bu qeyd sırf biz bunu bir daha görəcəksiniz.
Amma hələlik, yalnız var ki, bilirik.
>> Bütün hüquqlar.
Belə ki, bu son bir neçə bir az daha ilk baxışda kompleks, lakin onlar
kifayət qədər sadə bir şey.
C loop üçün kod yığın ki, yalnız daha bir şey görür və
təkrar.
Və bu barədə yalnız annoying şey ki, bir az sirli var ki,
Bu cyclical özünüzü ifadə etmək on model, lakin dünya standart
aşağıdakı şəkildə.
>> Siz loop üçün istifadə zaman, var yenidən parantez bir cüt.
Və iki semicolons qeyd var.
Üç ayrı bu iki semicolons Bu daxilində müxtəlif ifadələr
parantez.
Bir sözdə initializations edir.
Bir sözdə şərtdir.
Və bir sözdə yenilikləri edir.
>> Mücərrəd baxdı, bu tamamilə qeyri-aşkar, elə baxaq
konkret timsalında.
Not biz təkrar blok idi.
Bu blok demək, 10 dəfə təkrar dedi "Salam, dünya." Mənim üçün iddia edək
indi və biz bu geri gəlmək və edəcəyik Bu da daha çox tanış olacaq
əvvəl siz ekvivalent C kod olduğu deyilə bilər -
bəyanat və boşluq bir cüt üçün parantez, bu semicolons qeyd
var, üç fərqli ayrı-ayrı əşyaları, başlatma ki,
vəziyyəti və yeniləmə.
>> Və bir tahmin almaq nə İlk edir.
Int i = 0.
Kobud layman nin baxımından, nə bizim üçün etdiyini yəqin ki,?
Bəli belə.
, I adlı Bu dəyişən elan edir və bu nə dəyər verən var?
0.
Belə ki, adlı dəyişən yaradılması oldu i, bu dəyər 0 saxlanılması.
Bu sözdə başlatma var.
>> Bütün sağ, indi qarşısında iddia orta odur ki, i
<10 şərtdir.
Belə ki, nə edir?
Yaxşı, nə üçün loop zaman yoxdur loop üçün bir ilə proqram çalışır ki,
kompüter vasitəsilə çalışır hər dəfə Bu loop, aşağı üst, üst
yalnız sizin uşaqlar kimi alt nə zaman özünüzü hesablanması və aşağı oturan
təkrar təkrar, kompüter gedir
bu şərtlə ki, yoxlamaq.
Və mən az 10 Əgər yenə edəcəyik.
I az 10 ki, əgər yenə edəcəyik.
I-dən az on Əgər yenə edəcəyik.
Ki, görünür ki, inşallah i dəyişir.
Əks halda, biz sonsuz loop var ediyorum.
Çünki həqiqətən, i, dəyişir ki, nöqtəli vergül sonra keçən bir şey var
i + + ilə qədər sirli sintaksis edir.
Amma bu etdiyiniz edənləri əvvəl yalnız deməkdir
olduqca sadəcə nə?
>> TƏLƏBƏLƏR: [SƏSLƏRİ INTERPOSING].
>> DAVID Malan: i 1 əlavə edin.
I artım.
Beləliklə, biz Not puzzle gördüm ki, parça, həqiqətən.
Mən + +, lakin kimi baxmadı yalnız vasitələri, olduqca sadəcə arttırmayı
i 1 Bunu hər dəfə qiymətləndiririk.
Belə ki, sanki siz başlamaq 0 i başlatılıyor.
Daha sonra vəziyyətini yoxlamaq.
10 0 azdır?
Bəli.
Biz loop keçir.
>> Mən kompüter iddia növbəti şey edəcəyimiz bu olacaq edir
i arttırmayı.
Belə ki, indi 1-dir.
Bu vəziyyəti yoxlayır.
10 1 azdır?
Əlbəttə.
Belə ki, təkrar edir.
I + + 2 Sonra əlavələr.
10 2 azdır?
Bəli.
Və təkrar və yenidən.
Və nəhayət, səbəbiylə plus-plussing, biz 10 bərabər almaq.
10 10 az deyilmi?
Bəli, açıq-aydın deyil.
Və bu, nöqtəsi olan loop üçün yalnız dayandırır.
Və daha çox kod varsa Aşağıdakı ekran aşağı, kompüter
əvəzinə kodu çalıştırmak üçün davam edir.
>> Belə ki, daha, bu gedir, baxmayaraq ki, baxmaq və bir az qəribə hiss
ilk, əlbəttə sizin üçün kim əvvəl proqramlaşdırılmış heç vaxt, o,
sözün konseptual azaldır başqa bir çox nə etmək
sadə puzzle Not sülh.
>> Bütün sağ, mən söz var had Not digər analoqu olacaq.
Bu bir çox var.
Və biz bu qısa sonuncu dəfə gördüm.
Lakin əbədi yadda Not ci məhəllə?
Bu, yalnız əbədi bir şey edir?
Mən sizə həyata bilər ki, iddia bu yolu.
Və həqiqətən bu həyata keçirə bilər müxtəlif yollarla bir dəstə edir.
>> Ancaq isə loop yalnız bir fərqli özünüzü ifadə C yol.
Günün sonunda, siz edə bilməz bir müddət loop bir şey ki,
bilməz loop üçün bir ilə.
Belə ki, onlar sonunda istəyirik funksional gün eyni.
Amma bu, özünüzü ifadə etmək üçün imkan verir bir az fərqli ilə
aşağıdakı şəkildə.
>> Isə loop ilə, var nə var yenidən yoxlanılır və ki, parantez
təkrar.
Və tezliklə ifadə yalan kimi, sonra loop həyata dayandırır
və kompüter üçün gəlir run hər hansı digər kodunu
fayl var.
>> Amma burada maraqlı nədir var Mən sözün əsl yazdığınız.
Və doğru, Boolean dəyər bir növüdür bir doğru və ya yalan dəyəri.
Belə ki, doğru heç ola bilər Mən sözün var yalan əgər
mənim proqram sabit kodlu?
Heç belə.
Mən bunu bir az qəribə.
Amma əsl həqiqətdir.
Heç bir plus-plussing var.
Burada dəyişənlərin heç bir istifadə var.
Mən isə doğru ağır kodlu Belə ki, çünki bu loop həmişə qiymətləndirmək gedir
təkrar və yenidən.
>> Belə ki, Salam dünya neçə dəfə ekranda çap gedir?
Forever.
Qədər dəfə sonsuz sayda batareya ölür və ya başqa xarici
hadisə baş verir.
Beləliklə, bu ən yaxşı proqram yəqin deyil , yazmaq, çünki əgər istifadəçi
Proqram çıxmaq bilməz, bu, yəqin ki, nə nəzərdə tutulub.
>> Amma bəzən, proqramları olmalıdır sonsuz loop var.
Məsələn, əgər sizin kompüter bir var bu saat, bu, əlbəttə olacaq
yenilənməsi saxlamaq yoxdur Sizin saat əgər gözəl bir dəfə də olsa əbədi özü,
ikinci və ya bir dəqiqə və ya kimi bir şey.
Belə ki, hətta sonsuz loops onların var.
>> Bütün hüquqlar.
Nəhayət, bu bir.
Və bu bir az fərqlidir funksional və biz geri gəlmək lazımdır
Bu yəqin ki, Pset 1.
Lakin loop bir növü var loop isə nə bir adlandırıb.
Və arasında burada yeganə fərq loop və demək isə, bir müddət loop etmək,
vəziyyəti yoxlanılır deyil Siz kodu yerinə, lakin sonra əvvəl
Siz kodu yerinə.
Belə ki, müddət üst loop ki, nə isə isə
alt onu yoxlayır.
>> Bu yalnız o deməkdir ki, isə loop adətən bir neçə dəfə icra edəcək
və ya bir müddət loop daha az dəfə?
Potensial olaraq daha çox dəfə, bir çünki loop aydın, bunu söylədiyini isə
yalnız sonra Check Point əgər şərti daxilində
parantez həqiqətdir.
>> Beləliklə, biz daha bu görürsünüz yəqin ki, Pset 1.
Siz heç bir şey etmək istəyirsinizsə ən azı bir dəfə və sonra bəlkə bir daha
dəfə, bu yaxşı istifadə etmək üçün inşa.
Ancaq bir müddət loop, əksinə, iradə ilk onun vəziyyətini yoxlamaq.
Və ki, C loops üçün bunu var isə, və loops üçün isə.
Və yenə onlar olduqca qəşəng geri xəritəsi bu bir deyil istisna olmaqla, qaşıma
olduqca Not eyni analog var.
>> Yaxşı, necə, indi dəyişənlərin?
Beləliklə, bu bir dəyişən elan necə syntactically digər gün.
Mən iddia edən bir int var idi, bir tam deyil.
Mən sonra, dəyişən adlı counter idi və sonra vergül.
Belə kodu edir bu xətt nədir?
Bu elan sadəcə deyil, dəyişən -
kompüter xahiş edir ki, mənə vermək Bəzi yaddaş, mənə bir bit vermək - ci ildə
olan nə saxlaya bilərsiniz?
Bir int.
Və nöqtəli vergül yalnız deməkdir kodu xəttinin sonu.
>> İndi, ikinci xətt yəqin ki, olduqca guessable.
Counter = 0 nədir; Doing?
Bu qarşı 0 təyin edir.
Və bu digər bir şeydir ki, bir az annoying var
cəbr, demək, qarşı.
Cəbr olaraq, bərabər işarəsi mənasını nəzərə alaraq bərabər, C burada, bərabər
işarəsi təyin deməkdir.
Belə ki, hüququ var nə qoymaq deməkdir sol var nə daxil.
Və biz bərabər, başqa bir rəmzi görəcəksiniz Biz, həqiqətən, test istədiyiniz zaman, bərabərdir
keyfiyyət, bir qədər annoyingly üçün.
>> Amma bu bir az səmərəsizdir.
Bu cür mən ki, annoying var dəyişən elan və
sonra bir dəyər verir.
C əslində bizə bu sadələşdirmək imkan verir Belə ki, və yalnız bir dəfə bütün yoxdur.
Siz dəyişən elan edə bilər sol.
Siz hələ üzrə təyin edə bilərsiniz ki, bərabər işarəsi qoyaraq sağ
orta.
Belə ki, günün sonunda, bu iki ekvivalent, lakin bu, səmimi,
yəqin ki, nəzərə almaq üçün daha yaxşı vərdiş bir az daha az, yalnız, çünki
kodu, o, oxumaq üçün bir az daha asan var və yalnız up tightens
kodunuzu, belə danışmaq.
>> Indiyə qədər olan loops hər hansı bir sual, dəyişənlər üzərində, şəraiti haqqında haqqında
Booleans, ya texniki və ya konseptual?
Bütün hüquqlar.
Belə ki, indi bu növbəti bir olur az daha maraqlı.
Və bu son qoymaq nümunəsidir yalnız Not Məsələn eşler o zaman
üzərində C. üçün
>> Bir funksiyası var.
Layman nin baxımından, nə bir funksiyası var?
Sizin cavab bolder olmaq lazımdır.
Funksiyası nədir?
>> Şagird: bir şey yoxdur.
>> DAVID Malan: Nə olub?
>> Şagird: bir şey yoxdur.
>> DAVID Malan: bir şey yoxdur.
OK.
Biz orada başlarsınız.
Belə bir funksiya bir şey yoxdur.
Belə ki, bu kodu bir parça var mahiyyətcə başqa yerdə ki, həyata
həqiqətən bir şey yoxdur.
İndi, bir funksiyası barədə maraqlı nə var onu daxil edə bilər ki,
və bu çıxış istehsal edə bilər.
Və let həqiqətən götürək bu bir göz.
>> Belə ki, pərdə arxasında insan bir an əvvəl qəsdən idi.
Burada biz bir tablo var.
Amma güman ki, bu, həqiqətən, böyük bir qutusu edir.
Beləliklə, bu bir qondarma qara qutusu edir.
Ümumiyyətlə, dizayn, kompüter elm, qara qutu yalnız istinad
funksionallıq ədəd ki, kimsə həyata, siz deyil ki,
mütləq bilmək və ya bu necə qayğı başlıq altında həyata keçirilir.
Siz yalnız qayğı ki, bu qara qutusu, biz artıq bir zəng başlamaq bilərsiniz
funksiyası, bir şey yoxdur.
>> Belə ki, məsələn, bu qara qutu, əgər burada mərhələdə printf təmsil bir
funksiyası, Mən əvvəlki nümunələrdən bilirik ki, printf edir bir və ya daha çox
arqumentlər və bu ilk arqumentlər kimi simli olmalıdır
"Salam, dünya." Yaxşı, Mən insanam, əgər proqram yazma, və mən istəyirəm
printf istifadə, mən, məsələn, güc burada və boş bir kağız parçası almaq
qara marker və bu barədə yazmaq -
Mən "dünya" yanlış yazılan -
H-E-L-L-O.
>> Beləliklə, mən qara marker almaq lazımdır və mən will kimi böyük və aydın mən kimi, yazmaq
bu kağız parçası, "Salam, dünya," Və indi bu mənim mübahisə iddia edirlər.
Bu ilə təmsil bir simli deyil ağ kağız parçası.
İndi funksiyası mənim giriş printf bu olacaq.
Beləliklə, mən keçən printf çağıracağam bu giriş kimi argument.
>> İndi mən necə şəxs bilmirəm printf il əvvəl, ancaq yazdı
Mən onun sənədləşdirilməsi ki, bilirik həyatında onun məqsədi nə çap etmək
bu giriş kimi təmin edir.
Beləliklə, olsa da bu həyata Mənə unbeknownst edir
başlıq altında, indi Mən oh, edilir, bax.
Bu bir şey çap etmişdir ekranda.
İndi, proqram nəzarət əgər var kod daha çox xətləri olardı idi
indi mənə qayıdıb.
Və bu faktı Colton ki -
onun ürəyi dua altında burada gizlətmək Siz bütün qarşısında bir masa -
Mən bilmirəm ki, qəsdən edir və mən necə printf edir qayğı yoxdur
həyata keçirilir.
Mən yalnız onun ki, daha, bilirik nə sənədləşdirmə, və necə
istifadə ehtimal edirəm.
>> İndi printf ala bilər ki, xatırlamaq bir az daha mürəkkəb.
Yenə yalnız bəhs edirik Not deyirlər blokunun bərabərdir.
Amma mən də bu son dəfə idi.
Mən salam proqram etmək istədi yalnız ağır az daha dinamik və
kod kimi bir şey "dünya" və mütləq çətindir kodu şey
D-A-V-I-D kimi ixtiyari proqram.
Mən onun və ya onun üçün istifadəçi xahiş etmək istədi adı, və sonra ilə nəsə
onlar təmin ki, simli.
>> Belə ki, bir az fərqli bir şey var burada. printf, bir an əvvəl
, həqiqətən, bir şey, lakin bu mənə bir şey vermədi.
Sağ?
Colton mənə bir şey verməməsinin geri kağız heç bir parça.
Bir yan təsiri yalnız var idi.
Mənim təmin "Salam, dünya" olaraq dəlil Colton də nəticələndi üçün
Sözün yan təsiri, bəzi sözlər, Ekranda.
>> getstring, baxmayaraq ki, bir az fərqli. getstring da bir
fəaliyyət, lakin bu, bəzi dəyəri qaytarır.
Bu, sadəcə bir yoxdur estetik yan təsiri.
Bu, faktiki şəxs, mənə verir , zəng və ya funksiyasından istifadə
geri bir şey.
Belə ki, bu halda, getstring edir getstring açıq adlı
paren yaxın paren.
Getstring Buna görə də, sürer heç bir arqument və ya giriş?
Xeyr, görünür.
Həyatda Onun məqsədi yalnız bir string almaq üçün.
Bu çox detal lazımdır.
Mənə davam və ki, iddia qoy, Yenə də, bu qara qutusu, printf deyil
lakin getstring və şəxs mənə bildirin Bu proqram yazmaq, zəng və ya istifadə
yalnız yazmaqla getstring Yaxın G-E-T-S-T-R-I-N-G, açıq paren,
paren, getstring.
>> İndi heç bir fikrim yoxdur necə CS50 heyəti getstring həyata, lakin bilirəm ki,
Mən uzun kifayət qədər gözləyin, onun edəcək başlıq altında şey, bəlkə istifadə
bəzi dəyişənlər, bəlkə bəzi istifadə şərait, bəlkə bəzi loops istifadə edərək,
Bəlkə bəzi funksiyaları istifadə edərək, bəlkə istifadə -
yalnız tövlə çalışır - bəlkə istifadə digər bəzi proqramlaşdırma xüsusiyyətləri.
Amma kifayət qədər uzun gözləyin varsa - əslində, kompüter bu olur
super sürətli -
Mən uzun kifayət qədər gözləyin, bu funksiya getstring bir simli almaq üçün gedir
ehtimalla yazaraq olan istifadəçi-dən həyata onların klaviatura onu və
sonra, siz getstring görülən zaman əldə istifadəçi həmin simvol
ki, simli onları saxlanılması funksiyası, getstring var gedir
Mən bəzi çıxış mənim üçün hazır Bu yolu ilə almaq üçün gedir
tapşırıq operatoru.
>> Və mən getmək əgər, həqiqətən, çıxış daxil burada Obosi səxavətlə var
bu bilmədən, iştirak Bu üzərində onun adı yazaraq, əvvəlcədən
təmsil edən dəyişən, bir simli.
İndi, tapşırıq operator belə bildirir bu bir az hiss edə bilər, baxmayaraq
lazımsız, mən, həqiqətən lazımdır Bu mənim öz surəti etmək.
Sol tərəfdən Çünki Side - whoops -
Mən mahiyyətcə simli olduğunu fark sol tərəfində adı.
Mən də etmək gidiyorum öz bu surəti.
Bu, ağ yalan bir az Biz həftədə bir və ya iki nin görmək lazımdır, çünki
strings həqiqətən olmayan vaxt onlar görünür nə.
>> Amma indi üçün, burada geri dəyəri.
Burada mənim öz surəti sonra təyin operator istifadə edir.
Və indi mən gələn nə istəyirsiniz?
Biz artıq ikinci var kodu iki xətləri.
Beləliklə, mən indi printf səslənmək istəyirəm.
Ki, qara indi iddia edək qutusu olan yenidən geri
printf və getstring.
>> Printf bu dəfə gedir neçə arqumentlər almaq?
Belə baxmaq, iki kimi.
Orada iki virgül, ancaq o virgül biri, bu,
quotes daxilində.
Belə ki, ilk dəlil sözün edir bu olacaq.
H-E-L-L-O, vergül, faizlə s, backslash-n.
İndi, heç bir dəlil təmin alıram lakin printf iki arqumentlər.
>> Və nə printf ilə ehtimal Mən onlara keçir bu iki giriş sonra
arqumentlər kimi?
Bu ikinci almaq ehtimal Mən adını onlara, belə ki,
Mən yazdım kağız ikinci parça bir an əvvəl adı adlanır.
Bu dəyər daxilində plug olacaq yer tutucu o dəyişən,
% S, belə ki, daha yalnız bir an nin dəfə biz bir yan təsiri görəcəksiniz
indi qovuşdurmağımız, printf adlı edərək, deyil "Salam, dünya," ancaq "salam bax
Obosi. "
>> Belə ki, hər iki alqışlarla böyük dəyirmi könüllü bilirdi yalnız bir kimə
bu baş olardı.
Bütün hüquqlar.
Ki, olduğu kimi, belə ki, bəlkə, sadə Əlbəttə ki, siz artıq tanış değilseniz
belə, inşallah siz heç vaxt necə ki, xüsusi vizual unutmaq
funksiyaları çalışır.
>> Belə ki, yalnız getstring daha çox var.
Ki, CS50 kitabxana daxilində, bir var funksiyaları bütün dəstə, hamısı
yalnız açıq-aydın kapitallaşdırılır biz bu funksiyaları yazdı.
Adətən, C, demək olar ki, hər bir digər Əgər istifadə edəcəyik funksiyası kiçik deyil.
Amma biz qəsdən hərflərlə istifadə yalnız etmək üçün aydın, bu ki,
biz lazımdır ki, növ təlim təkərlər olunur yalnız bir neçə həftə üçün istifadə
əldə prosesini sadələşdirmək istifadəçi daxil.
>> Bu CS50 kitabxana şey deyil siz özünüz ilə nə edə bilər ki,
yalnız bir olan C kodu istifadə edərək oldschool dərslik.
Amma yenə biz təlim kimi istifadə yalnız bir neçə növ alüminium disklər
biz xilas edə bilərsiniz həftə ki, tezliklə başa lazımdır ki, mürəkkəbliyi
kimi bir şey bunu özünüz əldə kimi nisbətən sadə
bir istifadəçi daxil.
>> Beləliklə, siz gedə bilərsiniz bilirik ki, , GetChar GetDouble üçün -
iki dəfə.
What's - və sonra GetFloat.
Bir float nedir?
Orada başlamaq edək.
>> TƏLƏBƏ: [işitilemez].
>> DAVID Malan: Bəli.
Bu kəsir ilə bir sıra var.
Bir int bir tamsayı Beləliklə isə, hansı 9 vasitəsilə 0 ilə yalnız bir sıra deyil,
onun təkrar bir sayı, bir float bir şeydir
Onluq kəsr nöqtəsi ilə.
Və bir cüt, eyni zamanda, bir də Onluq kəsr nöqtəsi ilə sayı, daha çox
Boylam sonra nömrələri point, potensial.
>> Beləliklə, biz bu qədər uzun geri almaq lazımdır.
Lakin adətən, bu cür hər data, dəyişənlərin bu cür hər
bizim kimi kitabxana qayıda bilər ki, siz müxtəlif nömrələr bit üçün istifadə
məlumat.
Yalnız deməkdir Tipik olaraq, bir Char, bir xarakteri, 8 bit istifadə edir.
Və bizim ilə həqiqətən ardıcıl var könüllülərin byte keçən həftə edən
gəldi və bir təmsil Bir anda ASCII xarakter.
Belə bir Char 8 bit edir.
>> A float olmaq olur 32 bit, adətən.
Və bir cüt, siz tahmin bilər kimi, yalnız çoxdur əslində 64 bit,
siz böyük ola bilər deməkdir ədəd və ya daha çox dəqiq.
Ancaq yenə də, daha başqa bir vaxt.
GetLongLong, eyni zamanda, baxmayaraq gəvəzə adlı, yalnız bir həqiqətən
iki dəfə böyük olduğunu tam, iki dəfə uzun, potensial kimi müntəzəm
tam əvəzinə 32 64 bit.
Və biz istifadə etdik GetString.
>> Lakin o, CS50 kitabxana, çıxır biz görəcəksiniz kimi ki, həyata keçirilir
iki faylları şəklində, hansı biri cs50.h adlanır var digər iki
bu məlumatların növləri.
Booleans Siz C. yoxdur yalnız istifadə edərək simülasyonu 0s və 1s
Sizin proqramları.
Amma CS50 kitabxana yaradıb rəmzləri "true" və "yalan"
Əgər belə 1 və 0 təmsil ağır kodu şey var
sözün 1 və 0 kimi.
Amma biz daha o görəcəksiniz.
>> String da mövcud deyil.
Mən onun qeyd niyə ki İndi ağ yalan bir bit.
Amma biz geri ki, soymaq will uzun əvvəl qatı.
Amma indi, bir string bir simvol ardıcıllığı.
>> Bu vaxt, C, siz həqiqətən Müxtəlif məlumat növləri var.
Bu kiçik var bildirək.
Funksiyaları Belə ki, bir an əvvəl gördüm funksiyaları CS50 tərəfindən yazılıb
sizə düşür ki, bir dəyər qayıdacaqlar bu kateqoriyaların birinə.
>> Bir neçə dələduz vərəqələri yalnız əkmək burada toxum. printf yalnız deyil
placeholders kimi% s edir.
Bu decimal integers üçün% d edir və ya% i kimi yaxşı olardı.
% F point dəyərlər üzən olunur. % C üçün bir char, yalnız bir plug istəyirsinizsə
bir Preformatted string daxil karakter biz bunu etdik kimi,% c istifadə edə bilərsiniz.
>> Və sonra, bir qədər annoyingly,% lld edir uzun, uzun decimal tam üçün
Siz, həqiqətən, ehtiyac əgər yalnız deməkdir çoxlu sayda bir şey istifadə etdiyiniz
uzun uzun, biz gəlmək lazımdır adlanan geri pset də sizə% lld istifadə edə bilərsiniz
həqiqətən böyük printf, plug demək və ya burada ikinci yolu ilə tam
bəzi digər argument.
>> Və nəhayət, mən söz bir neçə digər escape var
printf dəstəkləyir ardıcıllığı.
Biz backslash-n gördük.
Backslash-r görə bilərsiniz.
Bu köhnə məktəb şey sort var.
Heç bir real makina il istifadə edin əvvəl və crank haqqında çəkdi
olan təkər rotasiya yalnız lineup hərəkət, o da köçüb
artıq geri bütün şey bütün yol sol, yaxşı, backslash-r yalnız
mahiyyətcə İmlecinizi geri hərəkət xəttin başlanğıc
o aşağı hərəkət olmadan.
Ancaq yenə də, daha ki, bəlkə də, gələcəkdə.
>> Backslash-quote, backslash cüt quote, backslash-backslash edir
kiçik kiçik tapmaca həlli Mən əvvəllər alluded.
Və backslash-0 əslində olduqca maraqlı.
Amma biz geri gəlmək lazımdır ki, uzun əvvəl.
>> Belə ki, CS50, mənə indi daxil bildirin cihaz və bir-faktiki olaraq nə bildirin
tez nümunələrindən biri ilə istilənmək biz artıq və sonra üçün hərəkət etməyib
bir az daha kompleks bir şey.
Mən proqram açmaq Belə ki, əgər gedit çağırıb -
bu mənim qrafik redaktoru.
Və mən bunu edə bilərsiniz -
Mənə orada pəncərə yaxın qoy -
aşağı Bu icon yolu ilə, alt sol gedit,
menyu növbəti künc.
>> Mən davam və inkişaf gedir və alıram , demək, daxil John bu nümunə edirsiniz
Harvard qovluq.
John Harvard qovluq yalnız onun ev onun bütün faylları yaşadığı kataloqu
default.
Və bu kimi saxlamaq üçün gidiyorum salam-0.c adlı bir fayl.
Və mən yalnız bu adı seçdiyiniz bu haqqında nümunə kodu ilə baxımı
Əlbəttə veb səhifəsinə və də Online YouTube videos.
>> Belə ki, indi mən başlayacaq gidiyorum mənim ilk proqram yazın.
Mənə oxunaqlılıq üçün zoom edək.
Və mən irəli getmək və int demək gidiyorum kimi olan əsas etibarsız ki,
sarı puzzle parça ki, bir proqram başlayır.
Mən artıq vərdiş halına kazanılmış sonra mənim buruq burğu açılması il
də bunu bağlanması və sonra geri gedir Mən yalnız mənim kodu qoymaq istədiyiniz
mənə hər şey saxlamaq kömək edir, çünki xüsusən mənim kimi, balanslı
proqram uzun olur.
>> İndi, burada, mən irəli getmək gidiyorum və, printf, demək dırnağı bağlamaq sitat
Salam dünya, backslash-n yaxın, teklif, yaxın mötərizə, nöqtəli vergül.
Beləliklə, mən yalnız biz var hər şeyi təkrar edirəm İndiyədək verilən qəbul olunub.
İndi Uzaklaştırmak gedirəm.
>> Və aşağı Bu terminal pəncərə, nə Mən bu qara etməyə icazə edirəm
və pəncərə ağ?
Mən bunu nə üçün istifadə edə bilərəm?
Belə ki, bu mən funksiyanı çalıştırmak yerləşir və harada şeyi tərtib edə bilərsiniz.
Və mən bu sadə saxlamaq üçün gedirəm.
Mən proqramı istifadə etmək gidiyorum olun adlanan olan deyil
texniki bir compiler.
Bu compiler nin adlı cingilti, lakin biz ki, geri gəlmək lazımdır
həftə və ya iki dəfə.
>> İndi, yalnız etmək yazın gidiyorum salam-0, Amma o idi
ürəyinizdə müqayisə nə yalnız Mən yazdığınız nə üçün çap edilə bilər
Mən artıq bilirəm burada səhv bir şey.
İndi bəzi səhvlər aydın var.
Mən hətta onlar heç bir var, nə oldu əvvəl Mən yanlış nə kimi fikir?
>> TƏLƏBƏLƏR: [SƏSLƏRİ INTERPOSING].
>> DAVID Malan: Bəli.
Mən kitabxana header file itkin alıram.
Bu. H faylları hər hansı bir mövzu deyilir faylları, və onlar kollektiv
kitabxana adlı şeyə aiddir.
Kitabxanalar yalnız kodu chunks var digər insanların yazdı.
Standart [mi? i?] kitabxana bir kod olan faylları toplanması
digər insanların yazdı.
>> Beləliklə, mən ki, itkin alıram.
Belə ki, niyə bir səhv alıram?
Yaxşı, məni geri qədər hərəkət bildirin burada terminal pəncərə.
Və təəssüf ki, C, bir çox kimi xüsusilə proqramlaşdırma dilləri,
bu səhv, siz bütün yeni əgər mesajlar dəqiq, lakin onlar da istəyirik
olduqca sirli.
Və burada səhv, qırmızı edir "Dolayısı elan kitabxana funksiyası
printf növü "və o, Lülə ​​halında bükülmüş kağızlar növbəti xətt "int İnşaat char *
... "Bu, sadəcə həqiqətən olur tez böyük.
>> Lakin nə siz, nə başlamaq lazımdır Yenə də, bu bütün yeni deyil, yalnız
açar sözlər, üçün baxmaq başlayır.
Aydındır ki, I yarısında başa bilər sözləri Mən hələ görüyorum.
Siz, baxmayaraq ki, bir həftə vaxt.
Amma printf görürəm.
Və ki, uzun əvvəl başlamaq lazımdır bütün sağ, printf yaddaş itələmək.
Something printf səhv var.
Mən bunu yanlış yazım mı?
Xeyr, bu kimi baxmaq deyil - oh.
Mən öyrətmək halda mən bunu istifadə edə bilməz ki, mövcud compiler.
Beləliklə, bir daha, sizin instinktlərdən ilə getmək həqiqətən başa düşmürəm, hətta
faktiki səhv messages.
>> And olsun ki, burada həlli yalnız fayl üst daxil
kimi, mənim faylı resaving Nəzarət-S və ya fayl seçin.
Və mən indi aşağı buraya geri getmək əgər, Mən bu sil gedirəm.
Nəzarət-L yalnız bir gözəl yoludur ekran sil.
Və sonra salam etmək "yazın gidiyorum 0 "daxil edin, və indi mən hələ bir bax
sirli rəmzləri ardıcıllığı, lakin ki, geri gəlmək lazımdır.
Bu sizin üçün bunu etmək nə var.
Qəbul prosesinin avtomatlaşdırılması oldu cəlb olduqca annoying komanda
Cingilti, faktiki compiler.
Amma heç bir səhvlər var ki, deməkdir Bu şey işləməlidir.
>> Beləliklə, mən indi gedirəm - Mənə yenidən zoom edək -
./hello-0 daxil edin və həqiqətən, Mən "Salam, dünya." Belə ki, indi inkişaf edək
Bu heç belə qədər yalnız taklit üçün addımlar biz nəzərdə tutulub.
Mən bu adını dəyişmək üçün gidiyorum Hello1.c gəldikdə edin.
İndi dəyişən elan etmək gidiyorum adı, belə string adı, adlı
və mən bu qoymaq gidiyorum quote-dırnağı bağlamaq dəyəri
D-A-V-I-D yaxın quote nöqtəli vergül.
İndi isə "dünya" sözü gidiyorum bir simli üçün nə tutucu ilə?
% S.
>> İndi neçə dəlillər olmalıdır printf bu vaxt?
Iki SO.
Mən quotes kənarda gedin.
Mən vergül sonra "adı" yazın.
Amma bir şey etdik başqa yanlış bu dəfə.
Amma i olmadı Fərz edək ki, ki, hələ həyata keçirir.
Məni bura qalxmaq edək.
>> Və bildiriş də, mən bir az alıram yazaraq cansıxıcı bütün "salam 0 olun"
vaxt, "etmək" və bütün bu.
Belə ki, çıxır, Linus da siz tez-tez yuxarı arrow edib
klaviatura, və həqiqətən hərəkət edə bilər Mən var ki, əmrləri bütün vasitəsilə
indi əvvəlki icra.
Mən Belə ki, Up, Up ki, salam 0 etmək var.
Hesab edirəm ki, istəmirəm.
Mən ki, dəyişdirmək istədiyiniz salam 1 dəfə daxil edin.
Nəhayət, olacaq Bir müddət edin.
>> Bütün hüquqlar.
Təəssüf ki, bir səhv var var.
Mənə diyirləyin bildirin.
Bu, həqiqətən kimi görünür Bu proqram butchered.
Mən tanrı demək, o, kodu iki xətləri var və səhvlərin 10 satır.
Lakin ilk üst bir oldu.
Bəyan identifikator simli istifadə edin.
Mən n standart mean?
Xeyr getmədim.
Mən simli idi.
>> Amma string dəyişən burada növü, elan biz demək DD?
Belə ki, CS50 kitabxana var.
Belə ki, bu ilk olaraq, kifayət etmir həftə neçə, yalnız istifadə
nə C bizə verir.
Mən də burada getmək üçün gedir və mən yuxarıda və ya aşağıda qoyun, amma lazımdır bilər
yalnız əlifba saxlamaq şeyi nizamlı saxlamaq.
Mən cs50.h daxil gidiyorum üçün əvvəlcədən quraşdırılmış
ki, CS50 cihaz sizi.
Və bu insanlar hətta açıq mənbə var, belə ki, internet onların istifadə edə bilərsiniz
öz kompüterlər.
Lakin bu CS50 cihaz ilə gəlir.
>> Belə ki, indi məni geri getmək və derleyeceğiz bildirin Bu salam 1 edir.
Lanet olsun.
Hələ bir başqa səhv.
Baxmayaraq, mənə ilk diyirləyin edək.
Bu bir az kompleks var.
Daimi Multi-xarakter xarakter.
Bu mənə kömək deyil.
Amma bildiriş cingilti ən azı bir az bit layiqli, qovuşdurmağımız bir az ilə
yaşıl caret simvolu bunu deməyə oldu Mən qədər berbat yerləşir burada.
Nə üçün ki, az ilə işarə edir Növbəti bir quote yaşıl arrow,
mənim adı?
>> Beləliklə, bu yalnız şeyi biridir siz olduğunuz xüsusilə, istifadə almaq
Python, və ya JavaScript proqramlaşdırma, və başqa dillərdə bu detal
etməz.
C, bu məsələ yoxdur.
Bir string elan edilərsə, olan 0 və ya daha çox simvol bir ardıcıllıqla,
həqiqətən ikiqat quotes istifadə etməlidirlər.
Belə ki, mən, həqiqətən, bu geri dəyişdirmək lazımdır quote açmaq ilə, teklif yaxın
ikiqat quotes.
Subay quotes öz yeri var, ancaq fərdi istifadə etdiyiniz yalnız
ki, başqa vaxt chars, lakin daha çox.
Indi üçün, ikiqat quotes lazımdır.
>> Belə ki, indi mənim terminal geri gidelim pəncərə, hello 1 edir.
Və əmin var?
Bu proqram artıq gedir düzgün tərtib etmək?
OK.
Belə ki, bizim üç bu düşünürəm.
Bütün hüquqlar.
Daxil edin.
Və həqiqətən etdi.
Belə ki, heç bir səhvlər bu dəfə hətta var Bu proqram bir az kazanılmış var, baxmayaraq
daha mürəkkəb.
İndi dot çizgi salam 1 varsa, daxil edin demək olacaq "Salam, David."
>> Lakin edək üçüncü təkrar etmək Bu, burada
proqram həqiqətən dinamikdir.
Mənə davam və fayl dəyişdirmək imkan yalnız uyğun bir adı,
Sizin olacaq faylları Sizə bundan sonra online.
Daxil edin.
İndi Mən və getmək gidiyorum ağır burada kodlu "David" saxlamayın.
Mən çox sadəcə üçün nə edə bilər Bu proqram inkişaf?
>> Mən getstring zəng edə bilər.
Bu bir az qeyri-aydın nə ola bilər baş əlaqədar, mən gedirəm
həqiqətən başqa xətti, printf əlavə etmək və yalnız, adı, kolon, yaxın quote demək
istifadəçi tez vermək ekranda.
Və indi burada getmək gidiyorum və mən mənim klaviatura qısa yolları istifadə edəcəyik.
Mən Up, Up getmək üçün gedir və dəyişdirmək alıram salam 2 1 hello, daxil edin.
Və təşəkkürlə, mən irəliləyiş edilməsi alıram.
>> İndi getmək gidiyorum dot çizgi salam və
2 daxil edin ki, dəyişir.
İndi mənim proqramı -
Mən zoom olacaq - əldə edilir gözəlləşir bir az.
Adı olacaq, edək Rob demək bu dəfə, hello, Rob daxil edin.
Biz bunu edə bilərsiniz.
Adı, Lauren daxil edin.
Adı, Cozef daxil edin.
Adı, olmağa cəhd edək çətin daxil edin.
Eh.
Bu, həqiqətən bir səhv deyil.
Belə ki, bir az çirkin.
Belə ki, bəlkə biz bu həll edə bilər gələcəkdə deyil, indi.
>> Amma necə iradi ki, çıxış haqqında getmək
xüsusi problem?
Bu, sadəcə səfeh görünür.
Necə şeyi qarşısını almaq yoxdur axmaq axtarır?
Belə ki, biz bilər, OK, mən bir neçə eşitdim şeyi, vəziyyəti və loop.
Biz yoxlamaq üçün, vəziyyəti bir istifadə edə bilər simli müddəti nə
istifadəçi bizə verdi?
Və 0 varsa, sadəcə, dırnağı bağlamaq sitat oldu Onlar yalnız, sonra Enter düyməsini basın
bəlkə mən onlara fəğan lazımdır və bir daha onlara təklif.
Lakin bir daha onları necə təklif edirsiniz?
Bəli, mən də loop eşitdim və mən ola bilər təkrar və yenidən bunu
Eyni şey üçün istifadəçi isteyen.
>> Yaxşı, bir başqa misal nə edək fərqli bir istifadə
ki, CS50 kitabxana fəaliyyət göstərir.
Mənə bu faylı yaxın edək.
Mənə yeni bir yaratmaq imkan verir.
Və mən adder.c zəng olacaq, yalnız çünki ki, sadə hesab etmək asandır
Bu tamamilə olacaq, baxmayaraq ki, Bunu nə ilə underwhelming
hər hansı bir müasir kompüter ilə.
>> Amma indi mənə irəli gedək və -
Mən keçən dəfə mənim dersini - daxildir cs50.h daxildir stdio.h, int
əsas void olan, indi üçün, mən yalnız rəftar kor iman almaq, ancaq güman edəcəyik
nə başa düşəcəklər ki, uzun əvvəl deməkdir.
Və mən bir şey demək gidiyorum kimi "Mənə bir int verir."
>> İndi, necə bir int əldə edirsiniz?
Mən sonda bir dəyişən elan etmək istəyirəm növü int x edərək,
bu istifadəçi bir tam saxlamayın.
Belə ki, bir qurtum idi.
Amma kimsə təklif istəyirsə, necə Mən tam adlanan x bəyan edirsiniz?
Int x.
>> Belə ki, həqiqətən ki, sadədir.
Mənə bir int verin.
Bu x çağırın.
İndi tapşırıq operator istifadə edin.
Və necə olan mağaza yoxdur istifadəçi dəyəri sol?
Mən getstring zəng etmək istəmirəm açıq-aydın deyil, getint.
Hər hansı arqumentlər?
No
Belə ki, paren, yaxın paren açıq var dərhal sonra
nöqtəli vergül xətti qurtarır.
>> İndi mənə daha bu nə edək.
Mənə bir int verin.
Bu dəfə mən int edəcəyik edək bu y zəng getint bərabərdir.
Və indi mənə super-sadə bir şey bunu bildirin bəzi riyaziyyat kimi.
Belə ki printf,% d məbləğində edir bir int üçün tutucu.
Və% d, dövr, backslash-n.
>> Bütün hüquqlar.
Belə ki, həqiqətən, riyaziyyat deyil.
Amma bu məbləğin demək istəyirəm, əgər dəyər və bu dəyəri bu bərabərdir
digər dəyəri neçə dəlillər daxil cəmi Mən printf verilməsi lazım
nəticədə?
Dörd Belə ki, sağ?
Sonra bu simli və üç dəyərlər.
X ilk Beləliklə, mən olmaq istəyirəm % d ə ilk takıldığından.
y növbəti olacaq.
>> İndi cür demək istəyirəm z, amma z yoxdur.
Amma bu böyük deyil.
Çünki siz, qeyri-iradi nə edərdiniz Bir var idi, xüsusilə də əgər
grafiğini kalkulyator, nə yazın edirsiniz?
Necə x plus y haqqında?
Belə ki, faktiki dəyişən deyil.
Bu, sadəcə iki məbləği var digər dəyişənlərin.
Və gözəl qanuni var.
C əlbəttə sadə anlayır bu kimi hesab.
>> Nöqtəli vergül, edin.
İndi mənə burada enmək imkan və daxil edin, gürzə etmək yazın.
Heç bir səhv, çox tərəqqi var ki.
Gürzə yazın.
Və başqa bir klaviatura qısa yolları, siz canı almaq üçün başlamaq əgər
- bütün əmrləri ilə
Bir komanda yazmağa başlayın əgər kimi dot reklam doğramaq, və olduğu üçün
cansıxıcılıq Siz adətən hit bilər ki, kicks Tab kompüter bitirmək üçün
bu deyil, əgər sizin üçün ifade istirahət birmənalı nə elan sonra çıxması lazımdır.
>> Belə ki, indi mənim irəli gedək və düyməsinə basın.
Mənə bir int, 1, 2 ver, təşəkkürlə, 3 var.
Amma həmişə olduğu kimi, proqramlar test azaltmaq lazım deyil
yalnız bir dəfə çalışır.
Mənə mənfi kimi bir küncdə halda, cəhd edək 1, mənə 1 verin və bir
də həyata yoxlayır.
Və yəqin ki, daha çox etmək istəyirəm ciddi sınaq, amma olduqca Ben
ki olduğu ilə rahat.
>> Yaxşı, indi başqa bir proqram edək bu dəfə istifadə edir ki,
digər sintaksis bit.
Mənə yeni bir fayl yaratmaq edək.
Mən girdi bu conditions0.c arayacaðým , bəzi örnek kod online.
Və mənə davam və bunu bildirin daxildir, cs50.h daxildir
əsas boşluq stdio.h -
OK.
Orada biz gedin.
Biz standart Demirbaş var.
>> Və bu zaman mən printf demək gidiyorum Yalnız "Mən int, xahiş edirik, istərdik"
tez bir az etmək daha çox dostluq.
İndi bir almaq istəyirəm istifadəçi Int.
Mən yalnız o n bu dəfə zəng etmək üçün gidiyorum n nömrə kimi səslənir, çünki.
getint, indi nə Mən bunu nə istəyirsiniz?
Yaxşı, n əgər - və mən Yakınlaştırmak lazımdır -
n 0 artıq olduğu halda, mən istəyirəm aşağıdakı etmək -
printf "Siz müsbət sıra seçilmiş." Başqa, mən Siz "printf yazın gidiyorum
mənfi seçilmiş
nömrəsi. "Yaxşı.
Mən də bunu etdim, hətta Beləliklə, bu proqram, sürətli, doğru syntactically görünür.
Mənə bu cəhd edək.
Vəziyyəti 0 olun.
Run görünür.
Vəziyyəti 0 daxil edin.
İT 50 int verim.
Mən bunu müsbət sıra seçilmiş.
Nin daha cəhd edək.
Vəziyyəti 0.
50 mənfi.
Mən mənfi seçilmiş.
>> Amma indi biz davam edəcəyik nə mənə seçin bildirin bir küncdə halda zəng edən daha çox
Sizcə maraqlı bir halda bəzi narahatlıq, 0 verə bilər.
İndi mən bu biri olduqca əminəm sıfır olduğu künc hallarda
müsbət, nə də mənfi nə, belə ki, mənim proqramı syntactically olsa
düzəltmək - bu tərtib, bu çalışır - məntiqi doğru deyil.
Mən istəyirsinizsə Belə ki, sadə fix burada nə var Mən n idarə etmək istəyirsinizsə, aşkar etmək üçün
ayrıca 0 bərabərdir?
>> N 0 bərabərdir Əgər belədirsə, onda mən demək istəyirəm printf kimi bir şey "Siz 0 seçilmiş."
Mənə indi bu cəhd edək.
Sil, mənə geri burada gedək mənim pəncərə və yeniden derlemeyle.
Hm.
Bir səhv yaratmaq.
Amma kontrol istəyirsiniz n 0 bərabərdir varsa.
>> Belə ki, yenə bir başqa axmaq şey üçün istifadə almaq üçün bərabər əlamətidir
tapşırıq operatoru.
Beləliklə, bu, həqiqətən ki, səhvdir texniki, hətta compiler
özüm məni müdafiə, biz had texniki n daxil 0 çıxarmaq olunacaq, hansı
Mən istəyirəm nə deyil.
Mən bərabərlik üçün test etmək istəyirəm ilə bərabərdir bərabərdir.
Və belə ki, indi ola bilər mənim daha yaxşı həlli.
>> Mənə həqiqətən, bu resave demək, edək conditions1, yeni və təkmilləşdirilmiş olmalıdır.
Mən bu derleyeceğiz İndi əgər, bu şərait edəcək -
whoops - etmək conditions1 dot çizgi conditions1, mən int istərdik "daxil edin
. "Mən getmək gidiyorum xahiş edirik irəli və 50 yazın.
Bu hələ yaxşı.
Hələ yaxşı, 50 mənfi.
0, və bu, həqiqətən, aşkar I 0 seçilmiş edir.
>> Yaxşı daha, indi bu nə edə bilər?
Bəli, əlbəttə ki, getdikcə edə bilərsiniz kompleks şeylər.
Amma nə təklif etmək istərdim edir Biz burada bu qeydi də başa ki.
Biz bu qoparmaq varsa, yəqin ki, görəcəksiniz Sizin sevimli karikatura
up bu qədər güc başa heç vaxt.
Və gülüş keyfiyyəti haqqında Siz CS zarafatlar ilə almaq lazımdır.
Belə ki, haqqında doğru.
>> Amma daha compellingly, mən istədiyiniz fikir bizim Bazar ertəsi bir az iltifat verir.
Beləliklə, biz integers istifadə açılmış etdik.
Biz üzdüyü istinad etdik.
Biz hətta, çiftler istinad etdik ki, yenə siz qazandıracaq nömrələr
Mexanizmi Boylam decimal bal sonra.
>> Lakin üzdüyü çıxır və çiftler və, həqiqətən, kompüter,
əsaslı ifadə edə bilmir dəqiq bəzi dəyərləri.
Biz riyaziyyat dərsləri bilirik bilərsiniz ki, sonra ədəd hər hansı bir sayı yoxdur
decimal point.
Və hətta bir şaquli bar qoya bilər Bu əbədi getmək demək.
>> Təəssüf ki, həqiqətən bilməz kompüter ki, yoxdur.
Və belə künc hallarda yaranır.
Məsələn, sen Güman maliyyə bir şey edir.
Siz riyaziyyat yapýyorsun faiz ilə və
dollar və sent.
Və bu qəpik deyil xətti lazım.
Bəli, bu ki, fraksiyaları çıxır pennies zaman əlavə başlaya bilərsiniz
bir kompüter sistemi ilə nümunə elə ki, ağıllı
insanlar istifadə edə bilərsiniz.
>> Və görmədim edənləri, mən had siz bir 30 ikinci teaser vermək istəyirəm
Office Space kimi tanınan gözəl film, bir şəkil çəkmək edəcək
biz həll edir problem Bazar ertəsi günü ilk şey.
Biz həcmi artırmaq bilər bir az, mən 30 vermək
Office Space saniyə.
>> [Video playback]
>> I-demək, siz göstərən olunmayıb və sizin iş saxlamaq almaq.
>> -Əslində, mən böyüdülmə alıram.
>> -Hesab edirəm ki, istədiyiniz bir virus proqram bilər böyük vaxt off ki, yer rip.
>> -Yaxşı, bu necə işləyir?
>> Bir bank əməliyyatı var-Hər dəfə faiz hesablanır və orada yerləşir
minlərlə gün, kompüter bitir bir qəpik bu fraksiyaları ilə.
>> -Amma fikrində deyiləm qeyri-qanuni bir şey yoxdur.
>> -Qanunsuz?
Samir, bu, Amerika deyil.
>> -Biz Allaha and var.
>> -Əgər heç kim bu barədə bilir lakin bizə, tamam?
No ailə üzvləri, heç bir girlfriends, heç kəs.
>> -Əlbəttə.
>> -Razılığa gəlmişlər.
>> Narahat, man-Don't.
Mən ya hər kəs demək deyil.
>> [END video playback]
>> DAVID Malan: Belə ki, bu, sonra, CS50 ki, Office Space idi, və bütün olacaq
Bazar ertəsi hissi verir.
Sonra baxın.
>> Dastançı: növbəti CS50, Rob-hazırda off olan ayarlar ki,
Harvard yemək plan.