[Powered by Google Translate] DAVID J. MALAN: Bütün sağ, bu CS50, bu isə
həftə iki başlamaq.
Təşəkkür edirik.
Bizə zəng burada başlasın.
617-BUG-CS50 yığmaq Mən deyiləm.
CS50: Bu CS50 edir.
Shuttle Boy, 1 düyməsini basın.
Artıq başlamaq üçün 9 basın.
DAVID J. MALAN: O Shuttle Boy, mətbuat üçün 1 bildirib.
Belə ki, 1 düyməsini basın olacaq.
CS50: Sizin mənşəli nədir?
Üçün dörd, mətbuat 1.
Mather, mətbuat 2.
Boylston, mətbuat 3.
Lamont, mətbuat 4.
Mem Hall, mətbuat 5.
Başlamaq üçün, 0 sıxın.
DAVID J. MALAN: Biz dörd üçün 1 düyməsini basın bilərsiniz.
CS50: Next servis 1:10 PM Bu çox dəqiqə yarpaq, və
sonra 1:20 PM, 1:30 PM, 1:40 PM.
Bu CS50 edir.
>> DAVID J. MALAN: Yəni bu CS50 səsi deyil.
Və bunun üçün yekun layihələrin növ nümunə var
Məsələn, siz doğru yola yemək bilər
dövr sonu.
Məsələn, o shuttleboy.cs50.net var -
Mən ilk CS51 sonra yazdı ki, həqiqətən bir layihə
geri Mən bir lisenziya idi.
Və burada ilham sonra geri idi, onlar bütün idi
çap avtobus cədvəllər, orada heç idi
online qədər şeylər axtarır anlayışı.
Və mən bir həftə sonu göyərçin növ, vasitəsilə tökülür
cədvəli çap və kompüter proqramı üçün daşıdıq.
Zamanda, kompüter proqramı yazılır oldu
C. Və həqiqətən də yazaraq Shuttle Boy ilə qaçdı
biz bu günə qədər bunu etdik kimi yanıb-sönən təklif.
Amma il ərzində, bu ani çevrilmişdir oldu
mesajlaşma bot.
Bu daxil, bu veb daha son inkişaf edir
SMS-based, habelə bu səs-based daxil kimi.
Bu şeyi növləri ilə işarə edir siz ki,
semestr sonuna özünüz edin.
>> Məsələn, orada Shuttle oğlan SMS versiyası olur
aşağıdakı kimi fəaliyyət.
, Mobil telefon, sizə 41411, mətn mesajı göndərmək və əgər
sonra Shuttle Boy üçün xüsusi simvolu sboy göndərmək
A və A mənşəli olduğu B və B sonra bir
hedef -
Məsələn, Boylston Space Dördlüyü -
nə bir neçə saniyə ərzində almaq geri olmalıdır mətn
Shuttle Boy mesaj belirten dəqiq zaman
Növbəti bir neçə Servislerimiz ki baxımından, A ki, davam edir
point B.
Bu kimi tanınan nə daha ümumi nümunə
bir API istifadə edir.
>> Belə ki, məsələn, burada bu, yalnız shuttleboy.cs50.net edir
Bu faktiki web-based təcəssüm.
Lakin bu və digər apps vurğulayır ki, məlumatlar CS50
inkişaf bütün şəklində burada hər kəs məruz
API, ərizə proqramlaşdırma interfeys.
Və yalnız insanların biz istərdik ki, bir xülya yolu
İnternet və başqaları yaradılması müəyyən vaxt sərf
Bizə məlumat işğalçı və üçün istifadə edə bilərsiniz ki, proqram
sonra top öz applications qurmaq
məlumatlar dəsti.
Belə ki, məsələn, burada bu Shuttle Boy API səhifə olan
mahiyyətcə CS50 dərslik, sənədləri olmaq olur
Məlumat üçün CS50 serverlər xahiş haqqında getmək necə.
Məsələn, CSV faylları, vergül ilə tanış değilseniz
dəyərlər ayrılmış, bu yalnız sort var sürətli və çirkli
Excel kimi faylları.
Beləliklə, siz bütün məlumat bütün Shuttle Boy xahiş edə bilər
evləri və onların GPS koordinatlarını, siz almaq lazımdır
kimi geri, mahiyyətcə bir elektron tablo ki,
Əgər sonra öz proqram oxumaq olar
, nəticələr yaratmaq Shuttle Boy özü kimi
məşğul olur.
O daha çox tanış, daha müasir data nümayəndəlikləri üçün
JSON, JavaScript Obyekt Notation daxildir.
Something doğru geri gələcək
dövr sonu.
>> Ancaq yenə də, bu, yalnız CS50 öz API bir neçə biridir.
Və maraqlı şey, indi Facebook bu gün və
Twitter və Google və olduqca çox hər məşhur veb həyata
Siz oxumaq deməkdir API, bir növ var var
onların veb sənədləri, bir üçün qeydiyyatdan
hesab, sonra üst proqram yazmağa başlayın bilər
orada təmin hər hansı alətləri və ya məlumat ki, şirkət.
Bir neçə il geri öz tədris yoldaşları və belə bir
bu bir Mac versiyası yazdı.
Belə ki, sol üst burada Mac adlı link, həqiqətən bilərsiniz
də bunu öz Mac çalışır ki, bir Mac OS widget download
şeyi eyni cür.
Belə ki, bu kimi məlumatlar dəsti üst tikinti haqqında bütün var.
Dövr sonuna ki,, lakin daha çox.
>> Belə edək yalnız növ almaq və, bir hata real tez dalış
şeylər bəzi geri indiyə qədər isidilmiş və hesab edirəm ki,
şeyi biz ötən həftə baxdı.
Xüsusilə, demək, məni irəli getmək və qoparmaq imkan
burada bu misal.
Buggy1.c, bu kurs saytında mövcuddur siz isterseniz
yükləyin və özünüzü ətrafında soxmaq istəyirəm.
Amma qoy bu ədalətli qısa proqram burada zoom və yalnız
əsas bloklar ki, bəzi super-sürətli recap
biz, həqiqətən, yalnız göydən alaraq başlamaq niyyətindəyik.
>> Mavi məhsulları Belə ki, 9 vasitəsilə xətləri 1-ci, yalnız
voleybol suallar.
Belə ki, bu yalnız şərh edir.
Onlar heç bir funksional mənası var.
Lakin onlar qeyd olduğunu mənada şərh olduğunu
Mən, insan ki, mühazirə və sonra belə özüm üçün
mühazirə, mən, həqiqətən, xatırlayıram nə bu proqram
xətti ilə bu xətt vasitəsilə oxumaq olmadan edir və
fikrimi tarixi yeniden.
Bundan başqa, mən kimi başqasına bu proqram əl əgər
Sizcə, bu, çünki bu kimi şərh, sizə daha aydın var
proqram həqiqətən bunu nə, və ya ən azı nə
proqram etdiyini güman edir.
Doğru olsun və ya tamamilə başqa məsələdir.
İndi, C, multi-line şərh ilə xatırlayıram ki, line
bir burada / *, sehrli rəmzidir.
Bu comment başlanğıc gəlir burada deməkdir.
Siz son terminator çatana qədər başqa heç bir məsələ
* /, qarşı olan.
Mən buradan 80-bir tək ulduz var ki,
sağ həqiqətən yalnız bir estetik detal.
Bu, heç bir funksional mənası vardır.
>> İndi necə line 11?
Bu layman nin baxımından nə edir?
Nə olub?
Auditoriya: standart daxildir.
DAVID J. MALAN: OK, yaxşı.
Belə ki, stdio.h kitabxana daxildir.
Belə ki, nə deməkdir?
Yaxşı ki, fayl daxilində, stdio.h, bütün dəstə var
funksiyası bəyannamələrin -
ki, bir başqası yazdı kodu.
Elan etdiyi bir funksiyası və mükəmməl bir misal
stdio.h deyil -
olan sevimli indi?
Belə printf, ən ümumi olanların bir əlbəttə, istifadə etmək
erkən ki, kitabxana var.
Mən kodu ki, xətt istisna varsa, cingilti fəğan edir
bir elan edilməmiş simvolu istifadə haqqında mənə bir şey.
Çünki elan edilməmiş bir şey yəqin ki, söz deyil
biz printf görünür nə compiler məlumat yoxdur
biz line daxildir halda istəyirəm.
Və daha aşağı Earth, həqiqətən, nə xətt söyləyərək edir
bu server edir yerdə ki, fayl, stdio.h, açmaq
sabit və ya cihaz sabit sürücü və surəti yapışdırıb bu
orada mənim fayl daxil olmadan mənim
ki, əl ilə etmək var.
>> İndi, bir dəfə biz əvvəl biz başlamaq lazımdır, əsas burada aşağı almaq
etibarsız nə int və nə ayrı zəhlətökən.
Amma indi üçün də üç xətt baxaq
ərzində 15 17.
Burada Bu arabası kimi iddia edirlər.
Mənim şərh Line 7 "10 çap lazımdır deyir
ulduz deyil. "Niyə bu, əslində, çap deyil deyil
10 belə ulduz?
Auditoriya: [işitilemez].
DAVID J. MALAN: Exactly.
Belə ki, 0-dan saymaq başlayaraq edirik ki, görürsünüz.
Bu həqiqətən proqramlaşdırma konvensiya və
oxunma başlayaraq ümumiyyətlə informatika,
0 əvəzinə 1-dən.
Və bu, həqiqətən yalnız üçün fakt irəli gəlir
Məsələn, biz səhnədə səkkiz nəfər idi, zaman
heç bir əl qaldırmaq, onlar idi
bütün səmərəli adet sıfır.
Və o, belə bir kompüter konvensiyanın yalnız növü
Buna görə də, 0-dan hesablanması başlamaq.
Ən aşağı sıra Əgər ikili təmsil edə bilər.
>> Belə ki, burada biz 0 i başlatılıyor açılmış etdik.
Biz 0 i bərabər müəyyən etdik.
Lakin sonra mən və ya i az deyərək, burada bu səhv etdi
10 bərabərdir.
Amma mən 0 başlamaq və əgər vasitəsilə mən getmək hesab edirəm ki, əgər
qədər 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, mən, həqiqətən, gedirəm
Mən getdi sonra, çünki ekran 11 ulduz çap
və 10-bərabərdir.
Belə ki, burada asan fix sonra nə?
Auditoriya: [işitilemez].
DAVID J. MALAN: Sadece az dəyişdirmək.
Həqiqətən istəyirsinizsə, siz bunu edə bilər.
Amma ümumi ki, üzərinə qaşqabağını töküb üzünü oldu.
Və 0 saymaq başlayaraq yalnız lazımdır şey
adətən istifadə almaq.
İndi nə özü və bu bütün şekli haqqında?
Loop Bu xətt 15 demarks a.
Belə bir funksiya deyil.
Bu, sadəcə bir şərh var.
Biz Not gördüm kimi, bir loop tikinti var.
Və bu üç hissələri var.
Üçün ilk hissəsi olduğunu edək
də nöqtəli vergül və sol.
Iki semicolons arasında orta hissəsi var.
Və sonra sağ sağ hissəsi var
ikinci nöqtəli vergül edir.
İndi, bu ilk nə edir?
Auditoriya: [işitilemez].
DAVID J. MALAN: Geri var?
Evet?
Auditoriya: Başlatma.
>> DAVID J. MALAN: Başlatma.
Belə ki, bu nə deməkdir?
Biz i adlı dəyişən elan etmişik.
Mən int i müəyyən etdik, çünki növü int edir.
Mən 0 dəyərinə i başlatılıyor alıram.
Beləliklə, bu, həqiqətən, nə deyən var?
Bu kifayət qədər səmərəli mənə vermək, hey kompüter deyərək oldu
sonra yaddaş, kifayət qədər RAM, bir sıra uyğun və qoymaq
RAM ki yığın sayı 0.
Və bir kənara kimi, ən azı daxili, adətən bir int necə böyük
Aracın və?
Auditoriya: 32 bit.
DAVID J. MALAN: 32 bit.
Mənə başqa 4 bayt kimi tanınan 32 bit, vermək deməkdir ki,
və olduqca asan olan bu dəyəri 0 qoymaq çünki
yalnız 0 bütün bit qurmaq deməkdir.
>> Beləliklə, burada ikinci hissəsi şərtdir.
Və vəziyyəti, adı təklif kimi, yoxlanılır nə
təkrar və yenidən doğru və ya yalan olub kimi.
Belə ki, bu yalnız aşağıdakı kod xətləri nə deyib -
yəni line 16, indented yalnız bir ki, çünki
altında -
belə uzun i 10-dən az kimi.
Bu loop hər iteration sonra nə
Bu halda olan incrementation, i + +.
İndi i + + olmaq deyil.
Bu i ola bilər -.
Mən bunu Lakin, nə davranış olacaq
Bu proqram olacaq?
Auditoriya: Bu sonsuz loop olacaq.
DAVID J. MALAN: Bu sonsuz loop bir növ olacaq,
biz mənfi 2 milyard və ya sonra þanslý halda.
Bəlkə şeyi yalnız məhdud təbiəti ilə, ətrafında kesmek edəcək
biz int üçün ayrılan ki bit sayı.
Amma əlbəttə 10 daha çox təkrarlamaq gedən və oldu
əlbəttə burada çox 11 dəfə.
>> İndi kimi bir kənara, həyata keçirən i + + və i -
həqiqətən yalnız sintaktik şəkər var.
Bu bir az daha çox nə üçün yalnız stenoqrafiya notation var
aydın şəkildə aşağıdakı kimi yazılı:
i = i + 1.
I eyni Yəni + +.
Bu, sadəcə cür demək gözəlləşir görünür i + +.
Daha çox oxunaqlı, daha yığcam var.
Və ən insanların əvəzinə edin.
Amma bu funksional eynidir
biz yalnız gördüm nə.
Belə ki, qısa, burada sürətli fix yalnız i təkrarlamaq demək
bütün yolu 0-dan az 10.
Və sonra biz həqiqətən 10 ulduz almaq lazımdır.
>> Belə ki, bu cəhd edək.
Mənə altındakı terminal açmaq edək.
Bu da ki, məni dizine gedək
Mən indi cingilti ilə özünüz tərtib gedirəm.
Mən daxil edin buggy1.c kimi tərtib gedirəm.
İndi buggy1, niyə belə fayl və ya qovluq yoxdur
buggy1 deyilən?
Auditoriya: [işitilemez].
DAVID J. MALAN: Bəli.
Belə ki, həqiqətən a.out deyirlər.
Yalnız cingilti run əgər cingilti olduğu Belə ki, geri ki,
compiler və siz istədiyiniz adı müəyyən etmir
proqram vermək, bu a.out u mənim olacaq.
Belə ki, həqiqətən mən ls əgər -
oops.
Mən didn't - qara-ağ məsələ bəzi
siz müəyyən edilmişdir üzləşib.
Amma mənə bunu bildirin.
Var biz sol tərəfində a.out var.
Belə ki, əvəzinə buggy1 və a.out run var.
>> Mənə irəli getmək və bunu bildirin.
. / A.out daxil edin.
Mən yəqin nə etmədi?
Auditoriya: saxla.
DAVID J. MALAN: mənim fayl saxla.
Belə asanlıqla nəzarət S dəyən ya gedərək həll edir ki,
Fayl, ən proqramları kimi saxla.
Mənə, burada enmək ekran sil yenidən run edək.
Və bir səhv hələ var.
Belə ki, nə gedir -
Auditoriya: Siz tərtib etməyib.
DAVID J. MALAN: Ah, yaxşı.
Mən onu tərtib etməyib.
Bir axmaq kimi, mən yanlış görmek üçün kodu at arıyorum.
Belə ki, cingilti buggy1.c, indi a.out.
Və Phew xilas.
>> Yeni xətt var, çünki Belə ki, bir az çirkin görünür
hər hansı proqram.
Ancaq yenə də, yalnız bir estetik detal var.
Biz o sayırıq əgər ən azı, biz olmalıdır
artıq 10 belə ulduz oldu.
Bəli, bu ikinci isti-up Məsələn haqqında nə?
Belə buggy2, mən bu versiyası da çap edəcək iddia
10 ulduz, satır başına bir.
Bu zaman Belə ki, yalnız etmək, bir newline xarakter
bir az gözəlləşir şeylər.
Amma əvəzində nə almaq bu.
Belə ki, daxil edin, mənə cingilti buggy2.c bunu bildirin.
İndi yenidən a.out deyirlər.
Daxil edin.
Mən yalnız bir yeni xətt yalnız son yeni xətt bax
növbəti line mənim tez hərəkət edir.
Və hələ aydın mən, sonra bir yeni line * çap etdik
*, Sonra yeni bir xətt.
Amma burada səhv nədir?
Evet?
Auditoriya: [işitilemez].
>> DAVID J. MALAN: Exactly.
Belə ki, Python, Ü abzas kimi bəzi dillər, fərqli
həqiqətən də, funksional mənası var
C kimi dil -
biz görəcəksiniz kimi, PHP, JavaScript -
bu abzas yalnız insanlar 'xeyrinə həqiqətən.
Mən line 16 və 17 indented etdik ki, böyük görünür
lakin burada heç bir funksional mənası vardır.
Mən həm xətləri üzrə bir hissəsi kimi icra etmək istəyirsinizsə
loop, sonra bu etməklə qıvrım aşırma onlara əlavə olmalıdır.
Siz yalnız küncü kəsilmiş və qıvrım aşırma əgər buraxmaq bilər
işin var?
Auditoriya: Yalnız bir xətt.
DAVID J. MALAN: Just bir xətt.
Belə ki, sintaksis ətraflı gözəl növ yalnız sort var ki,
Siz iki olan, üç xətt yazı vaxt sərf etməyin
qıvrım aşırma, yalnız kodu bir line yazmaq.
Amma iki və ya daha çox xətləri varsa, biz
həqiqətən bunu etmək lazımdır.
>> Belə ki, indi mənə bu qazanc imkan verir.
Mənə davam və yenidən run cingilti edək.
Sonra mənə a.out təkrar edək, və indi onlara satır başına bir almaq.
İndi a.out yenidən bir proqram üçün bir lal adı növüdür.
Mən, həqiqətən, mənə bir fayl adı vermək cingilti deyə bilərsiniz
ki buggy2 özü kimi, daha çox istifadəçi dostu var?
Bir az daha dəqiq?
Auditoriya: [işitilemez].
DAVID J. MALAN: OK, mən, həqiqətən, çox bilər
istifadəçi dostu qısa və yalnız yazmaq buggy2 edir.
Mən bu halda. C daxil, Enter yoxdur.
Və nə etmək nə onun mənim üçün buggy2.c tərtib edir
bunu cingilti xahiş etmişdir.
Xüsusilə, bu, cingilti çağırır, bu yol daha istifadə cingilti çalışır
komanda-line dəlilləri və ya Mən, həqiqətən, ehtiyac çox açarları.
Zaman, bu müxtəlif nə bütün qayıda bilərsiniz
sirli hyphenated ifadələr deməkdir.
Amma indi üçün, yalnız mənim narahatlıq qənaət edir
yadda olan və bu bütün yazın olan
müxtəlif hyphenated ifadələr.
Və onun ayaq nəhayət edir
İndi buggy2 var.
Mən əl bunu istəyirsinizsə, baxmayaraq ki, mən
əvəzinə bunu edə bilərsiniz -
zınqıltı-o buggy2 və sonra buggy2.c.
Və eyni me buggy2 adlı fayl verəcək.
>> Belə ki, qısa, cingilti olan compiler edir.
Olun daha çox istifadə lazımdır ki, yalnız bir istifadəçi dostu vasitədir
və daha çox, sadəcə başlayır, çünki
bizim üçün şeyi sadələşdirmək.
Və biz nəhayət, 0 qayıtmaq.
İndi, yalnız, ancaq bir hissəsi zəhlətökən başlamaq lazımdır
bu gün və çərşənbə günü.
Bu hər hansı bir hər hansı suallar?
Evet?
Auditoriya: [işitilemez]
orada quotes ls?
DAVID J. MALAN: OK.
Zaman mənə bir sehrli edirdi ki, quotes tipli ls,
pərdə arxasında bir səhv düzeltmek üçün.
Biz sizi çox izah etdik kimi, mən unuttum
bunu müzakirə lövhələr, -
biz indi edəcəyik - sudo yum-y yeniləmə appliance50.
Whoops, sağ yazıldığına var ki.
Belə ki, cihaz əməliyyat sistemi kimi.
Bu Fedora adlanan bu əməliyyat sistemi çalışan edir.
İndi çünki mənim yavaş internet bağlantısı, mən var
həqiqətən hosed.
Biz nə sizə Beləliklə, sudo yum yeniləmə çalışan
problem dəsti, mahiyyətcə avtomatik güncellemeler çalışan nasıl
Mac OS və ya Windows.
Və çox əvvəlində bu qaçış səbəbi
çünki biz cihaz yaradılmışdır zaman, mən problem müəyyən edilir
qədər messed və mən təsadüfən proqramları bütün baxmaq etdi
Əgər siz onları görən deyilik niyə bir qara ekran qara, olan
default.
Lakin cihaz ən son versiyası bu giderir.
İnternet var, bir dəfə və mən fasilə zamanı düzeltmek lazımdır
keçid.
>> Belə ki, quotes, yalnız çox Sessiz, mənim səhv gizlədir
yəqin.
Digər suallar?
Bəli?
Auditoriya: etmək haradan gelir?
[Işitilemez]
DAVID J. MALAN: Yaxşı sualdır.
Etmək haradan gelir?
Bu bir çox il mövcud olan bir Linux proqram, uzun
CS50 əvvəl.
Və Fedora kimi bir əməliyyat sistemi ilə gəlir.
Bu CS50 kitabxana deyil.
Əslində, CS50 kitabxana gəlib təkcə
İndiyədək biz gördük ki, GetString, GetInt, bütün var
bu funksiyaları alın və sözü simli, və bəzi
dərəcədə bool sözü.
Biz CS50 daxil dalış Lakin biz ayrı dolaşmaq lazımdır
cihaz özü.
>> Belə ki, bəli, burada daha bir sual.
Auditoriya: siz arabası və sonra dedi, necə edir
kompüter [işitilemez] bilirsinizmi?
DAVID J. MALAN: Yaxşı sualdır.
Belə ki, yalnız çalıştırdığınızda buggy1 etmək və ya buggy2 etmək, necə
Bildiyiniz edir?
Siz buggy1 etmək yazın Belə ismarıcları, bir üçün görünür etmək
fayl buggy1.c çağırıb.
Və sonra o, müvafiq cingilti əmrləri icra
bununla a.out adlı default çıxış fayl əsas.
Əslində, biz etmək nə baxsaq, nə -
bu çıxmaq imkan verir.
Biz həqiqətən edirdi etmək nə baxsaq, buggy2 etmək
bu günə qədər artıq var.
Belə ki, mənə rm komanda aradan qaldırılması bildirin
proqram əvvəl yazmışdır.
Y-E-S mən aradan qaldırılması üçün istədiyiniz təsdiq yazaraq.
Mən indi etmək Əgər, bu çox uzun-uzadı görə
Bu son şey burada, o buggy2 var.
Bütün markası edir, belə danışmaq, bu arqument keçir
Cingilti, mən özüm yazın yoxdur.
>> Bütün hüquqlar, belə inzibati sürətli bir neçə
elanlar.
Belə təbəqələri üçün olan rəsmi gələn başladı
Bazar, həmişə, əgər gətirmək lazımdır
bir, bir laptop var.
Bir laptop yoxsa, mənə həyata çatmaq yoxdur
mənə bir e-poçt düşmə.
Və biz bir iş anlamaq lazımdır.
Nə ümumiyyətlə siz bölməsində tapa bilərsiniz onlar iştirak edirik ki,
konseptual iştirak praktiki.
Biz konkret məsələləri bölməsində hissəsi istifadə edəcəyik
bəzi vasitəsilə gəzmək üçün həftə problem dəsti,
mühazirə dən konseptual material.
Və cari problem set bütün var.
Və biz də bəzən, bəzi praktiki fəaliyyətinə dalış lazımdır
olan bəzən təqdim etmək tələb olunacaq
olmayan olacaq.
Məsələn, bu ilk həftə, onlar yalnız bir kimi nəzərdə edirik
isti-up həyata keçirir.
Və bu problemlərin yalnız həqiqətən ki, tapa bilərsiniz.
Onlar mütləq ədalətli kiçik nəzərdə, lakin edirik
Mütləq deyil ki, yazmaq mənasız proqramları,
özləri və maraqlı ancaq yaxşı imkanlar
bir rahat, yeni funksiyaları ilə, sintaksis ilə təcrübə
sizin sinif yoldaşları bir neçə olduğu bölmə kimi təqdim
Sizin TF həmçinin.
>> Və nə zaman üzərində edəcəyik, CS50 məkanı adlı alət istifadə
vasitəsi əvəzinə yalnız CS50 Aracı istifadə, will
siz edə bilərsiniz yerləşir əvəzinə, bir brauzerinizin bir web page getmək
bölmə zamanı brauzer pəncərəsində kod yazmaq üçün.
Siz seçə əgər, sonra tədris fellow sonra göstərə bilər
sizin brauzerinizin ekranda yazaraq olduğunuz nə
və ya anonim olub sinif ön pəncərə up,
açıq, belə ki, o, sonra vasitəsilə gəzmək olar
Sizin sinif yoldaşları yaxşı nə, yaxşı nə etmədi.
Və yenə qalan bütün bu gözəl anonim bilər arxayın ola bilərsiniz.
Amma daha çox üçün gözəl imkan olacaq
mühazirə kimi bir çox interaktiv verir.
>> Eyni zamanda, biz bu şeylər super deyilən lazımdır
isteğe, lakin hər kəs üçün açıq olan bölmələr
sinif, belə ki, sizin üçün daha kollektiv edə bilərsiniz
problem bir seçin.
Burada cədvəli var.
Bu da cs50.net da ana yerləşdirilir.
Bir hacker-spesifik ola bilərsiniz edək ki,
bir sabah günortadan sonra.
Və biz bir gün və bir sabah film və bu post olacaq
24 saat ərzində online.
Siz, bu dəfə hər hansı edə bilməz Belə ki, narahat deyil.
Və yenə cədvəli cs50.net hazırda online.
>> Özü sectioning baxımından bir kazanılmış olmalıdır
siz tapmaq üçün kurs ana getmək üçün göstəriş e-poçt
Sizin bölməsində həyata.
Həyat dəyişdi və sizin bölmə dəyişdirmək lazımdır,
problem deyil.
Eyni URL, cs50.net/section, tək geri dön,
siz ki, və oxşar formu doldurun bilərsiniz
sonra bizə arzularım verir.
Biz əlimizdən nə kimi həftənin sonuna qədər təqib edəcəyik
yerləşdirmək.
Ötən həftə, biz CS50 müzakirə edərək təklif geri
mühazirə zamanı müzakirə alət.
Belə ki, biz xahiş edilmişdir ki, 40 sual var idi
mühazirə zamanı cavablandırdı.
Belə ki, yaxşı idi, biz davam edəcəyik
Bunun üçün çalışırıq.
, Mühazirə zamanı, yalnız rahat artırılması hiss deyilsə
Sizin tərəfdən bir problem.
Cs50.net/discuss gedin, orada yazmaq və tədris biri
yoldaşları elektron cavab və ya artıracaq ya onların
olaraq, xahiş anonim adınıza əl
sualına xarakterindən.
Və rəy baxımından, ümumiyyətlə, psets olacaq
bir həftə ərzində döndü.
Bölmələr nail olmaq üçün bir müddət alır Çünki
tarazlıq, ilk pset, 0 və 1, az olacaq
şeyi aşağı həll kimi təxirə saldı.
Amma qalmaq gələcək həftə üçün sazlana.
>> Bütün hüquqlar, belə ki, mənim ciddi qoymaq bildirin
yalnız bir an üçün səs.
Beləliklə, bu, həqiqətən olmaq maraqlı iqlimi
nə başqa şeylər bütün bu müzakirə
kampus əlaqədar ona üzərində gedir.
Amma CS50 əlbəttə, bu, onun tarixi vardır
çox bu kurs, hər il olduğu kimi çox mövzunun,
il, Ad-Forumlar sinif təxminən 3%.
Bu ən son il, 2011, CS50 35 tələbə Ad-mindik.
Bu, hesab edirəm ki, aydınlıq olmaması səbəbindən deyil.
Kursun-nin proqramı ilə bir səhifə var ki, həyata
xətləri olduğu izah edilir.
Həmin bəyanat hər bir təkrarlanır
problem səhifə biri edir.
>> Mən, həqiqətən, yalnız etmək üçün bu gün qeyd
Bu nəzərə insanlar.
Biz fərqli şeylər cəhd etdik.
Mən bu gün bunu düşündüm nə yalnız bir an almaq edir
həqiqətən qədər gəlib keçmiş hallarda bəzi oldu.
Daha çox həqiqətən, bu kimi kirli az sirri saxlamaq
biz aşkar nə tələbələri etdik və necə qeyd
bu və həqiqətən mühüm motivasiya üçün nə
hətta bu söhbət.
Bildirib ki, ilə Belə ki, xətt mahiyyətcə bu -
proqramın hər bir şey, sizin üçün təşviq edirik
sinif yoldaşları ilə danışmaq.
Ki, bu əməkdaşlıq olan bütün məqsəd var
ofis Annenberg saat və üçün həvəsləndirici nəfər
yekun layihə birlikdə işləmək.
Faktiki yazmaq üçün vaxt gələndə Lakin xətti çəkilir
son həlli.
Yalançı kodu danışan, tamamilə gözəl İngilis, danışan
tamamilə gözəl.
Onlara baxmaq bildirerek, bir sinif yoldaşı sizin pset e-poçt
əlində yazaraq davam kimi ekran,
xətti üzərində həmçinin.
Xüsusi xətləri üçün tədris proqramı baxmaq etməyin.
>> Amma yalnız bu təəssüf ki, necə bir şəkil boya
reallıq, web orada var ki, həyata ki,
Bu sinif və bir çox digər sinif həllər var.
Siz və ya bəzi 3% bu var ki, bilirik ki,
biz bu var ki, bilmək deməkdir.
Ü saytları bu kimi var ki,
həqiqətən, sizin problem dəstləri etmək kimsə ödəyə bilər - bu idi
keçən il gəldi ki, faktiki halda.
Bu odesk.com adlı bir web sitesidir.
Və Tim üzrə poçt edən burada şəxsin adı
Bu veb və onun pset 7 bunu kimsə xahiş
bu halda.
Yaxşı, odesk.com çox Google-edə və biz də var
Googling çox yaxşı.
Burada da saytlar var - və bu bir çox var
dəhşətli, açıq.
[Gülüş]
DAVID J. MALAN: Bu site haqqında məzəli şey varsa,
Siz haqqında səhifə oxumaq, onlar korporativ haqqında danışmaq
mədəniyyət və necə müştəri xidməti onların sayı-biri
sizin tapşırıqları almaq əmin etmək prioritet
vaxt çevrilmişdir.
>> Amma bütün ciddiliyi ilə, təkrar olması bu saytlar
var, çox, biz bilirik və biləndir var
sites bu cür.
Və nə hissi vermək üçün, adətən, bu formaları
edir, biz ümumiyyətlə, böyük qalmaqallar yoxdur yerləşir nəfər
kütləvi hər cür əməkdaşlıq, əksinə olunur
Siz var ki, zəiflik bu gec-gecə anlar var
nə çox, bu, AM 4:00, siz canı, siz etdiyiniz
özünüz üçün hesab edirəm ki, yaxşı, mənə yalnız mənim nəzər edək
roommate və ya dostum kodu və ya kimi.
Və bu təzahürləri təəssüf ki, Tələbə cəlb
Bu və Tələbə B təqdim kimi təqdim bir şey
kompüter bu kimi bir şey, bu əlbəttə ki,
elm sinif, kompüter alimlər üçün olduqca asandır
proqram təminatı ilə aşkar etmək.
Siz növ var bu başqa ümumi paradiqma edir
bəlkə danışan kimsə yanaşı çalışır
İngilis, yalnız gözəl, pseudocode.
Lakin o, həqiqətən təqdim zaman gəlir və psets
yalnız e-poçt və ya Dropbox və ya analoji ilə mübadilə almaq.
Ancaq bu ki, az aydın etmək cəhdi
baş verənlərə, bu təqdim edir budur.
Bu, çox, səfər qədər yaxşı yazılmış parçaları deyil
biz, həqiqətən, aşkar etmək üçün var proqram kimi
şeyləri bu cür.
Və həqiqətən nə biz bütün müqayisə ki run proqram
Ötən il bütün qarşı bu il arqumentləri
arqumentləri, hər şey qarşı biz aşkar
Orada hər iş veb qarşı Internet.
Bu, bütün çox avtomatlaşdırılmış var.
Və biz 97% böyük ədalət həqiqətən bunu kim
həqiqətən bu və digər onların eşşəklərdir off çalışır
dərsləri və səy bütün qoyaraq ki, iş
onlar nəticədə təqdim öz edir.
Mən yaş üçün getmək bilər.
>> Bu yalnız ötən il hallarda bir neçə var.
Bir neçə tələbələr, pset 2 eyni bu faylları təqdim
pset 3, pset 4, pset 5, pset 6, pset 9.
Bu halda, bu viktorina 0 və ötən il iki idi
tələbələr arasında çox eyni bu cümlə təqdim
başqaları "tipli sorğu -" nöqtə, nöqtə, nöqtə.
Belə ki, hətta 600 sinfində biz bu aşkar etməyib
haqqında sınavlar təqdim edib.
Belə ki, qısa, bu - açıq, mən bu cür olan nifrət
söhbət - amma bu, həqiqətən bir qəsdən cəhd edir
bu il ki sayı aşağı çəkmək üçün cəhd.
Çünki demək olsa belə şeyləri bu cür hər
il, bir neçə üçün bu yaşayan edərək reallığı hesab
adi daha saniyə daha faktiki olaraq yalnız işarə
nə az, belə bir böyük deyil, eh, kimi görünə bilər ki,
bu an geri edirəm, həm də ədalətli şəkildə
Özünüzü və burada sinif yoldaşları üçün.
Əgər hər hansı bir sualınız Belə ki, əgər Ü xətti
, yalnız şəxsən mənə çatmaq edin.
Amma cavab tam qeyd, həmişə
son dəqiqə, bir gün gec pul.
Və ya hər hansı bir gec gün olmayan bir məsələ varsa,
vicdanla, şəxsən mənə e-poçt.
Biz bir şey anlamaq lazımdır.
Xahiş edirik risk Harvard burada vaxt qoymaq deyil.
>> İndi biz əhval işıqlandırmaq lazımdır düşündüm, mən
növbəti slayd kimi daxil olmuşdur.
[Gülüş]
DAVID J. MALAN: Bu haqqinda, böyük idi.
Mən, həqiqətən, bir az çevirirsən var.
Bu var.
Və bu bir gözəl idi.
Edərkən OK, belə gecə gec ki, kitten hesab
həmin qərarlar.
Bütün hüquqlar, belə geri daha çox əyləncə və az ağır məhsulları kimi
şərtlər.
>> Bütün hüquqlar, belə ki, biz bu barədə qısa söhbət etdik.
Bu yəqin ki, tamamilə tanış ki, bir şey
Not dünya.
Və Not dünyanın, biz bəzən bu ehtiyac var
yol çəngəllər etmək gedin.
Ya bu və ya burada və ya bu başqa şey.
Və biz bunu istədiyiniz zaman, bu halda, C, indi istifadə edə bilərsiniz
başqa tikintisi.
Və sonra biz burada Boolean ifadələr var.
Məsələn, burada Boolean ifadələr, biz ya
birlikdə, biz ya bu vəziyyət o mənada ki
bu şərtlə ki,.
Biz istəyirik ki, mənada birlikdə VƏ onları bilər
Bu vəziyyət VƏ şərti yoxlayın.
Və burada belə deyil ki, indi bir keçid haqda
şərtlər bu cür syntactically oxşar, lakin
bizə başqa başqa başqa əgər bərabər, əgər, əgər, imkan verir
sadəcə onlara hal sadalamağa olduqda və kimi
hal ilə.
Belə ki, o, son dəfə gördüm.
Və sonra biz loops kimi şeylər toxunan başladı.
Biz yalnız bir an əvvəl bu bir gördüm.
Lakin bu digər loop yapıları var.
>> Məsələn, bu burada.
Belə ki, (vəziyyət), təkrar bu şey isə.
Belə ki, əsaslı, nə bu arasında müxtəlif görünür
burada loop və bu isə loop üçün?
Loop və bu isə loop üçün.
Evet?
Nə olub?
Auditoriya: [işitilemez].
DAVID J. MALAN: Yaxşı.
Belə ki, loop vəziyyət üçün isə aydın var
daha sintaksis.
Bu başlatma var, bu yeniləmə var.
Bir müddət loop, bu vəziyyət yalnız var.
Belə ki, bunun üçün qarşı aşağı pared bir az var ki, görünür,
loop olan biz dəyişənlərin etmək istəyirsinizsə deməkdir və biz istəyirik
incrementation var, biz, həqiqətən, var
bu şey özümüz edirik.
>> Mənə davam və gedit açmaq bildirin.
Mənə cihaz üzərində keçid edək.
Və edək ki, yalnız bir sürətli kiçik nümunə, nə
digər tərəfdən bu bir fərqləndirir.
Burada mənim mind geri, bir şey demək lazımdır.
Mən xüsusi adı Tim bildirdi.
Tim bir tələbə nə tapmaq üçün cəhd əslində kimsə idi
onlara öz ev tapşırığı.
Biz xüsusi bölmə heç Tim idi.
Mən tələbə açıqlanır deyə Belə ki, həyata, bir tələbə idi.
Bu şeyler İnternet təsadüfi adam idi
proxy keçən il.
Beləliklə, biz də ki, tapa bilərsiniz.
Belə ki, burada bu halda, mənə irəli gedək və
yeni bir fayl açmaq.
Fayl, Yeni.
Bu məni buraya nişanı verir.
Mənə davam və saxlamaq edək loop.c.
Mənə getmək və Saxla basın edək.
Və sonra aşağı, burada nin irəli getmək və yazmağa başlayın bildirin
# Daxildir.
Mənə daxil zoom edək
İndi biz int əsas (void) edəcəyik.
I <; İndi (int i = 0 üçün mənə irəli getmək və bunu bildirin
oh, 10; i + +).
İndi davam və ulduz çap edirsiniz gedirəm ki,
əvvəllər idi.
Və sonra bu proqramın sonunda, biz yalnız olacaq
yalnız belə ki, tez bir yeni çap
bütün messy baxmaq deyil.
0 qaytarın.
Syntactically doğru görünür?
İndiyə qədər.
Belə nin görək.
>> Belə ki, mənim terminal pəncərə getmək, mənə zoom imkan verir.
Mən bu deyilən, çünki, mənə irəli getmək və loop run bildirin
şey loop.c.
Belə ki, loop etmək.
OK tərtib görünür.
Mənə loop run, indi daxil edək.
Və 10 ulduz çap görünür.
Belə ki, yalnız bir müddət loop bu çevirmək və nə edək
məsələləri biz səfər üzərində növləri.
Əvəzinə bu Belə ki, i isə mənə burada getmək və deyək
10-dən az -
Mənə loop üçün xilas edək.
OK, belə ki, biz artıq problemlərin bir neçə var.
Belə vəziyyət eyni, lakin mən açıq-aydın itkin alıram
başlatma.
Mən incrementation itkin edirəm.
Mən cəhd Belə ki, nə compiler ehtimal mənə lazım
Bu proqram tərtib?
Evet?
Auditoriya: [işitilemez].
>> DAVID J. MALAN: Yaxşı.
Belə ki, elan olunmamış kimi bir şey demək olacaq - bu
halda, i dəyişən.
Və həqiqətən, elan olunmamış identifikator i istifadə edin.
Və bu PHP kimi dil ilə fərqli və
Python və Ruby, ilə siz bəzi tanış ola
harada dəyişənlər istifadə edərək start yalnız cür bilərsiniz
istər-istəməz və onlara bəyan narahat
aydın həmişə.
C və Java və C kimi dillərdə + +, siz olmalıdır
açıq super.
Siz i adlı dəyişən istəyirsinizsə, siz mənə var
dəyişən nə cür olur.
Beləliklə, biz bu aşağıdakı kimi müəyyən etmək üçün olacaq.
Mən burada getmək və int i yazın üçün gedirəm, buna görə də
Mən adlı dəyişən elan etmişik.
İndi bir addım atlandı etdik.
Mən açıq-aşkar bu başlatılmadı sonra, lakin görmək edək ki, əgər
ən markalı cingilti stop şikayətçi.
Mənə bu proqram yeniden yapmak bildirin.
>> Bütün hüquqlar, indi yalnız şikayətçi oldu
fərqli bir səbəb üçün.
"Burada istifadə Dəyişən 'i' uninitialized edir." Bütün hüquqlar, belə ki,
olduqca aydın deyil.
Başlatılmış bir dəyəri bərabər yaradılması deməkdir.
Və biz, belə ki, 0 bərabərdir mənə edək ki, etmədi etdik.
İndi yenə bu cəhd və yenidən run cingilti bildirin.
Bu dəfə tərtib.
Mən bu run haqqında deyiləm.
Amma böyük köhnə sonsuz loop, mən etdik çünki
başlatma, mən vəziyyəti etdik, amma həyata heç etdik
incrementation hər cür.
Belə ki, necə mən incrementation edə bilər?
Mən gedirəm kimi Yaxşı, bir müddət loop, bu hiss
çünki çox ilk kimi, loop daxilində bunu
ilə kimi loop yapıları edir həftə nümunələri,
corabları və özünü hesablanması ilə, biz idi
çox sonunda bir şey, növbəti line geri istəyirəm.
Mən irəli getmək və əgər bu i + + here?
Nin, hətta bu tərtib deyil edək.
Artıq məni tutmaq.
Burada səhv nədir?
Auditoriya: [işitilemez].
>> DAVID J. MALAN: Belə ki, mütləq int deyil.
Bu i var.
Və əvvəl kimi qıvrım aşırma,
indentation kifayət deyil.
Belə ki, indi bu tikintisi var.
I 10-dən az olduğu halda ki, bir ulduz çap
sonra i arttırmayı.
Və yol bir loop işləri siz hit kimi tezliklə kimi isə
Bu halda line 10 kimi görünür olan loop aşağı,
ki, xətt 6 geri olacaq olan məqam da
vəziyyət yenidən yoxlanılacaq.
I hələ 10-dən az olduğu halda, biz xətləri 8 edə və olacaq
sonra 9, sonra biz 10 hit olacaq və 6 geri yenidən və
təkrar və yenidən uzun i 10-dən az kimi.
Belə edək yenidən run burada etmək.
>> OK, biz tamam tərtib etdik.
Mənə yenidən run loop edək.
İndi faktiki iş görünür.
Burada müsbət və minuses Belə ki?
Yaxşı, bu günə qədər həqiqətən FAT bütün yoxdur -
so cute.
Bütün sağ, bir idi - ah, bir qəza oldu.
Bütün hüquqlar, belə nin loop üçün geri imkan verir.
Onlar super aydın istəyirik Çünki loops üçün gözəl edir.
Onlar yazmaq üçün bir az clunky olmalarına baxmayaraq, bu
çox güclü və sizə imkan verir
Eyni anda birdən çox şeylər.
Loops dəyər böyük bir məbləği görünmüyor isə yalnız
biz yalnız daha çox iş var kimi hələ, çünki o hiss edir.
Biz burada, bu başlatma qablaşdırılmış var
burada aşağı yeniləmək və biz bütün bunu unutmayın lazımdır.
Beləliklə, biz isə loops həqiqətən borc o zaman görəcəksiniz
özlərini yalnız müxtəlif kontekstlərdə, müxtəlif data
siyahıları və hash masalar kimi strukturları, hər şeyi biz almaq lazımdır
orta dövr.
Amma indi üçün, kimi tanınan bu üçüncü növü var bilirsiniz ki, bir do-
loop edir.
Və biz bu qısa gördük.
Bu pset 1 super faydalı ola bilər.
Əgər bir şey və istədiyiniz zaman kontrol əgər
istifadəçi əməkdaşlıq və onlar olmasaydı, yenə bunu bir do-
loop məntiq belə özünü verir edir.
Burada alt üst sifariş təklif kimi Çünki,
sanki bu deməkdir yoxdur.
Və təkrar Bunu ki, nə ola bilər?
Bəlkə sonra zəng GetInt ya GetString və vasitələri
GetInt ya GetString dəyəri yoxlanılması və sonra böyle
istifadəçi da onlara soruşaraq əməkdaşlıq əgər
təkrar və yenidən.
Əgər bir şey etmək istədiyiniz
sonra bir vəziyyət oldu.
>> Belə ki, bu cəhd edək.
Mənə həqiqətən do-isə loop indi bu dəyişiklik edək.
Mən irəli getmək və aşağıdakı gedirəm.
Belə ki, aşağıdakı.
Nə edək int i = GetInt (); lakin ilk istifadəçi söyleyeyim
nə.
Bir az fərqli bu dəfə belə.
"Mənə bir int ver".
Mən bunun üçün printf istifadə edəcəyik.
İndi burada enmək gedirəm və mən bunu gidiyorum
i isə daha çox, deyək -
nin görək, i deyil, az 0, deyək, ya i deyil
10 daha çox.
Başqa sözlə, yalnız 1-dən 9-bir sıra istəyirəm
özbaşına.
Mən burada bir araya Boolean ifadəsini istifadə edirəm
i, 10-dən az və ya daha çox 0 əmin olun ki,
halda mən yenə burada bu loop edəcək.
Belə ki, daha, bu -
i isə az 0 və ya i 10-dən çoxdur.
>> Belə ki, indi-nin irəli getmək və biz etdik dəfə bunu bildirin.
Yalnız tez ağlı başında olma çek nə edək.
printf (i, "Thanks, i% d").
Belə ki, bu sadə proqram, bir int istifadəçi soruşur
bəzi sıra 1-dən 9 əhatə ərzində emin edir
və sonra onlara xatırladan nə onlar yalnız istifadəçi thanks
yalnız bir az ağlı başında olma çek kimi, ildə yazılmış.
Amma bu kimi nəzərdə işləri nin görək.
Mənə burada baş aşağı getmək və loop etmək yenidən run edək.
Hmm.
"Bəyan identifikator 'i' istifadə". Bu qəribə deyil.
Mən ki, həll düşündüm.
Eyni simptom lakin müxtəlif kodu.
Evet?
Auditoriya: [işitilemez] iki daxilində, biz var
[Işitilemez].
>> DAVID J. MALAN: Exactly.
Beləliklə, bu, həqiqətən, əhatə dairəsi kimi tanınan bir mövzu bizi gətirib çıxarır.
Bu C, yenidən, bu, həqiqətən sözün sizi çıxır ki.
Bu kimi bir şey varsa bir int bəyan yerləşir
sonra bəzi dəyəri təyin, ancaq bir ki, daxili etmək
qıvrım aşırma ilə cüt, nə C yoxdur onu nəzərdə tutur ki,
yalnız i mövcud kimi məlumdur bu 32 bit istəyirəm
xətləri çərçivəsində bu qıvrım aşırma kontekstində,
9 6. Belə i elan edilir və təyin olunur
line 8 dəyəri, ancaq tezliklə siz kənarda almaq kimi
bu buruq brace aşağıda line 9, i artıq
daxilində, belə danışmaq.
S-C-O-P-E. Bu hüququ kontekstində artıq var.
Belə ki, indi orada i yoxdur, biz hətta baxmayaraq kimi bu
bütün bu elan etdi.
>> Belə ki, bu kimi bir şey sonra bir düzeltme, nə əgər
səbəbi, i qıvrım aşırma ərzində elan edilir ki, hansı
yəqin pis?
Burada?
Auditoriya: [işitilemez].
DAVID J. MALAN: Bəli.
Belə ki, biz ondan kənarda başlamaq olar.
Mənə davam və bəyannamə hissələri vasitəsi silmək imkan
Mən növü müəyyən və mənə burada bu qədər bunu bildirin.
Belə ki, xətt 5-ci, indi "Mənə bir int verin." Deyir O i edin.
Line 9 edək, mən bunu istəmirəm, çünki mən
artıq 32 bit var.
Mən üçün kompüter soruşmaq istəmirəm
müxtəlif 32 bit.
Mən həmin 32 bit istifadə etmək istəyirik.
İndi i line 5 elan, çünki hələ legit var
line 11 və line 12 istifadə üçün.
>> Belə ki, mənə bu derleyeceğiz cəhd və görək
zınqıltı vermir əgər böyle.
loop etmək.
Belə ki, indi bu funksiyanın "gizli bəyannamə deyil
"GetInt" C99 etibarsız edir. "Nə deməkdir?
Evet?
Auditoriya: [işitilemez].
DAVID J. MALAN: Bəli.
Belə ki, indi mən həqiqətən GetInt kullanıyorum ki, bu bir şey deyil
C. Bu CS50 gəlir ki, yalnız gəlir.
Beləliklə, biz burada bu lazımdır.
Və mənə tez aşağı geri bildirin
burada etmək və yenidən axır.
OK, nəhayət.
İndi biz və digər səhv həll etdik.
Mənə indi loop run və nə görmək edək.
"Mənə bir int verin." Mən 11 verəcəyik.
Mən bunu -1 verəcəyik.
Mən bu foo verəcəyik.
Mən onu 5 verəcəyik.
İndi həqiqətən işləyir.
Amma tezliklə bura səbəbdən dəyişdi.
Niyə bu dəfə bir yeniden amma mənə vermək demək idi
Digər üç dəfə int?
Niyə davranış fərqli?
Auditoriya: bir string verdi.
DAVID J. MALAN: Üzr istəyirik?
Auditoriya: Siz simli verdi.
DAVID J. MALAN: Bəli.
Beləliklə, biz bu üçüncü cəhdi simli verdi
Mən foo yazdığınız zaman.
Foo simli edir.
Bu açıq-aydın bir int deyil.
Və CS50 GetInt həyata ki, bir yoldur ki,
bir şey varsa yoxlamaq yoxdur 10-dən az və ya daha çox 0
sizin üçün, necə biz əvvəlcədən bilirik, çünki hansı
istədiyiniz int?
Amma biz minimal ən azı, siz istifadəçi idi kontrol edə bilərsiniz
bir tam yazın?
Onlar olmasaydı, biz "yeniden" yazaraq istifadəçi fəğan
ekran.
>> Belə ki, indi biz loop ki, bir proqram var. Okay.
İndi, bu, hansı daha yaxşı tikinti növ edir?
Beləliklə, bu, hər şeyi bir az messy almaq üçün başlamaq Ü edir
Burada dəyişən qədər bəyan unutmayın ki, fakt
bəzi daxilində istifadə etmək istəyirsinizsə,
qıvrım aşırma və xaricində.
Amma bu ilk bir az sirli görünür, hətta
baxış, yalnız yenə də sadə məntiq xatırlayıram.
Bir funksiyası var və ya olub, C bir şey istifadə etmək üçün
bir dəyişən, siz bir funksiyası varsa daxil etmək
bir kitabxana və ya bəyan etmək lazımdır.
Amma indi siz ondan əlavə nəzərə etmək lazımdır ki,
sağ daxilində bu elan edirik.
Siz mötərizə daxilində çox sıx o verilməsi deyilik.
>> Mənə həqiqətən geri roll imkan verir.
Biz əvvəllər məsələn bizim geri, mən getmək Əgər
geri int üçün int i = 0; i <10; i + +, və mən
bu kimi printf ulduzları, sonra yaxın paren, indi nə
printf i indi -
Mən cəhd etdikdə eyni məntiqə görə, nə olacaq
Bu proqram tərtib?
Auditoriya: Invalid identifikatoru.
DAVID J. MALAN: Belə ki, başqa etibarsız identifikator var,
elan edilməmiş identifikatoru.
İndi səbəb bir az fərqli.
Burada açıq-aydın heç bir qıvrım aşırma, lakin eyni
fikir, əhatə dairəsi eyni hekayə aiddir.
Bir daxilində i kimi bir dəyişən elan Əgər
loop üçün, aydın buruq yazılı deyil, hətta
aşırma, hələ kimi ruhi onlara hesab edən
halda i loop üçün yalnız etibarlı daxilində deyil.
Siz ki, növbəti line almaq sonra etibarlı deyil
Bu halda indi 10-dur.
Belə ki, həcmi və kimi yalnız bir neçə məsələlər.
Bütün hüquqlar, hər hansı suallar?
>> Bütün hüquqlar, belə ki, bu, mənasız bir az proqramı növ
yalnız az ulduz çap.
Amma burada bu mahnı xatırlayıram əgər in görək.
Bu uşaqlar oxumaq olardı inanılmaz annoying mahnı deyil
məktəb avtobus və kimi.
Amma nə bu barədə gözəl, bu cyclicity var ki,
elə ki, "divar pivə 99 şüşə var
Pivə 99 şüşə.
Bir yazmaq onun ətrafında keçə üzrə 98 şüşə pivə
divar. "Və sonra mahnı sonra, sonra, 96 97 təkrar
95, sonra 94, bütün yol həqiqətən var əgər 0 aşağı ki,
qədər avtobus.
Beləliklə, bu, çünki, həyata və düzmək üçün gözəl proqram mənim
Allah, bir neçə ilə bu həyata bilər
kodu xətləri, bu, bütün lyrics tüpürmək bilər
olduqca tez mahnı.
Lakin yol boyunca, indi bəzi başqa tease başlaya bilərsiniz
bu əsas loop yapıları və indi də
biz özümüz yazmaq funksiyaları təqdim dəyərlər qayıtmaq
biz ətrafında keçir ki.
Lakin ilk, niyə biz irəliyə getmək və beş dəqiqəlik etmirlər
burada qırmaq?
Və biz geri almaq zaman, biz bu mahnı ifa edəcək.
>> Bütün hüquqlar, biz geri edir.
Mən indi bu mahnı ifa edəcək deyəndə, mən demək
program deyil, şifahi.
Belə ki, burada biz bu bir həyata olan beer1.c var
xüsusi mahnı.
Və yalnız həmin tanımadığı üçün, aydın olmaq üçün nə
bu şey kimi, mənim irəli gedək görünür
və daxil beer1 edir.
İndi mənə beer1 run bildirin, biz görəcəksiniz - neçə şüşə
pivə olacaq?
Mahnı deyir kimi I, 99 yazın lazımdır.
Daxil edin.
İndi biz vasitəsilə hərəkət olduqda -
oops - biz bu bütün vasitəsilə gedin, biz görəcəksiniz ki,
Bu, həqiqətən bütün mahnı oxumaq idi.
Bir dəqiqə gözləyin.
Mənim gedin bar up messed bir az var.
Nin böyük pəncərə istifadə edək.
Beer1, 99 Belə ki, orada biz gedin.
Belə ki, burada biz çox sürətli ifa bütün mahnı var
bu bizim bilərdi artıq kompüter.
Belə ki, burada olsa da, dövri təbiət bilərsiniz.
Bu 99, sonra 99, sonra "bir yazmaq, bu keçmək deyir
ətrafında, "sonra 98.
İndi təkrar təkrar edir.
>> Belə ki, bu əslində bir növ üçün mükəmməl bir fürsətdir
tikintisi loop.
Mən burada bir küncündə kəsmə cür Ben edək ki,.
Mən divar "pivə 98 şüşə dedi alıram edək ki,
97 divara pivə qabları "və yalnız belə idi
biz pivə bir şüşə almaq zaman, mən yoxdur
İngilis dili qrammatika narahat.
Amma biz də əgər bir az bu düzeltebilirsiniz
vəziyyəti, bəlkə.
Bu sayı sinqulyar varsa, davam və "şüşə" demək
bu cəm var başqa varsa, "şüşə" demək.
Amma indi, mən tamamilə ki, künc kəsici alıram.
Beləliklə, biz burada var nə edək.
Belə ki, üst bir şərh var.
Mən bu iki kitabxana, o cümlədən alıram
biz adətən bilərsiniz.
İndi mənə ilk aşağı diyirləyin bildirin
kodu faktiki satır.
Line 17 əsas başlayıb.
Line 21 və 20 neçə şüşə pivə olacaq var?
Və sonra GetInt çağırırıq.
İndi bir ağlı başında olma çek bir az var.
>> Belə ki, bu biz indi qəbul başlamaq lazımdır ki, Konvensiyanın edir
daha ciddi istifadəçi daxil edin.
Bəzən yalnız onları yenidən təklif istəmirəm
və təkrar.
Gözəl, ən istifadəçi vida edin və əməkdaşlıq deyil.
Çıxın və yalnız onlarla yoxdur.
Və belə ki, mən burada yapýyorum nə var.
N 1-dən az olarsa, mən yalnız istifadəçi fəğan gedirəm
"Bağışlayın, heç bir əhəmiyyət kəsb edir." Və sonra mən gedirəm
özbaşına 1 qaytarın.
Belə ki, yenidən, bu, yalnız istifadə almaq üçün konvensiya deyil.
İndi, iman onu edir.
Ancaq indiyə qədər biz həmişə, çünki 0 qaytarılması olduğunuz
biz 0 işarə nə qaytarılması bildirib etdik?
Auditoriya: Uğur.
DAVID J. MALAN: Uğur, bütün var.
Belə ki, indi biz nəhayət düşünməyə başlayan etdiyiniz
qeyri-uğurlar -
- başqa sözlə, künc hallarda səhv şəraitdə
İndi bir sonsuz təchizatı, və ya ən azı dörd milyard
mənim proqramları yanlış getmək mümkün şeylər.
Mən onlara fərdi nömrələri təyin başlaya bilərsiniz.
İndi, ümumiyyətlə, yalnız qayıtmaq üçün kifayətdir
0-dən başqa bir şey.
Belə ki, biz sadəcə indi 1 qayıtmaq olacaq.
Amma 1 qaytarılması üçün səbəb kimi tezliklə qayıtmaq kimi
1, proqram qalan nə tahmin?
Bu dayanır.
Vəssalam.
Mən 1 qaytarılması edirəm ki, səmərəli deyil
Bu proqramın icrası qısa qapanması ki,
line 27 aşağıda heç bir şey həyata davam edəcək.
Kimi tezliklə əsas yekunları kimi, o qədər.
>> Istifadəçi əgər bütün sağ, belə ki, əməkdaşlıq və biz line 30 olmaq
onlar qanuni sıra tipli, çünki burada mənim deyil
bu mahnı həyata keçirilməsi.
Mən ilk yalnız bir newline xarakter çap
estetika.
İndi loop üçün var.
Mən bir az şeyi edirəm qeyd
fərqli bir istiqamətdə.
Mən az nə yoxdur, mən + + nə yoxdur.
Mən əvəzinə bərabər müəyyən bir dəyişən i başlamaq demək olar
n, istifadəçi Yığdığınız sayı, sonra ki, aşağıdakı
i 0 daha çox kimi uzun, sonra i -
sonra bu loop biri iteration başa etdik.
Beləliklə, biz həm loop üçün istifadə aşağı saymaq olar.
İndi bu printf ilə, bir şeylər artıq olduqca çox həftəsidir.
Belə print "divara pivə% d şüşə". Print "% d
pivə butulka. "", bir aşağı alın ətrafında keçir. "Print
"Divara pivə% d şüşə". Belə ki, hələ% d, lakin
arqumenti printf dəyişir ki, görürsünüz.
Mən 99 demək istəyirəm, çünki vergül sonra, i var.
Mən 99 demək istəyirəm, çünki bu vergül sonra, i var.
Bu vergül sonra, i var - 1, mən 98 demək istəyirəm, çünki
Bu ilk iteration, və s.
İndi aşağı burada, yalnız bəzi axmaq az qeyd var.
Və sonra line 42, mən signifying, Konvensiyanın 0 qayıtmaq ki,
hər şey tamam.
>> Mən goofed nə olur?
Burada ümumi səhv nə ola bilər?
Mən təsadüfən də bildirib əgər yaxşı, mən ümid nə istəyirsiniz
0 aşağı, mən divar pivə 0 şüşə istəyirsiniz?
Deyə Beləliklə, i və ya daha çox 0 bərabərdir.
Mən derleyeceğiz əgər mən indi görürəm ki, simptom olacaq nə
beer1 və run?
Auditoriya: Mənfi.
DAVID J. MALAN: Bəli, bu, mənfi getmək mý var.
Bu off-bir səhv var, inanılmaz
ümumi səhv etmək.
Gəlin əslində terminal pəncərə geri və bunu
burada, biz bir dəfə daha görə bilərsiniz.
, Pivə 99 şüşə daxil edin.
Yaxın, lakin biz çox belə qədər heç getdi.
Biz indi edib, belə ki, çox aşağı mahnı oxudu
mənfi nömrəsini.
Belə ki, kifayət qədər iş deyil.
>> Bütün hüquqlar, biz asanlıqla düzəltmək olar ki, geri gedən
yolu bir dəfə idi.
Lakin bəzi imkanlar indi nə
təkmilləşdirilməsi?
Yaxşı, məni beer2.c açmaq və burada aşağı diyirləyin imkan və almaq
Bu versiya oldu.
Nə müxtəlif kimi həyata atlamalar ki, ilk şey
burada bu versiya?
Auditoriya: [işitilemez].
DAVID J. MALAN: Bəli, heç bir daha çox i, bu meydana çünki
mənə nə, mən deyiləm sonra n üçün istifadəçi tələb və alıram bilirik
n i bərabər yaradılması, sonra i dəyişən edirəm, amma heç deyiləm
toxunan n yenidən.
Beləliklə what the heck başqa 32 ayrılması siz nöqtəsi oldu
bit Mən müxtəlif dəyişən ola bilər yalnız, belə ki i adlanır?
Belə ki, bu halda, mən növ tanınmış lazımsız
dizayn xüsusiyyət.
N 0 daha çox isə və mən indi demək gedirəm, getmək
qabaqda və kimi printf üçün n keçən, eyni mahnı çap
İkinci arqument və n - aşağı burada ikinci arqument kimi 1.
Və sonra bu loop hər iteration haqqında qabaqda və yalnız getmək
azalma n özü.
İndi, funksional, bu proqram
eyni olacaq.
Mən 99 yazın varsa, n 99-da başlayacaq.
Mən azalma, azalma, azalma, azalma.
Mən pivə biri şüşə "üçün bütün yol aşağı gedirəm
divar, pivə bir şüşə.
Bir yazmaq ətrafında keçir.
Mən divar pivə 0 şüşə ". Sonu etdi, çünki
vəziyyəti düzgün almaq.
Bu 0 daha çox var.
Mən bu səhv etmədik.
>> Belə olan versiyası bir və ya bir versiyası iki, daha yaxşıdır?
Mən iki murmurings bir dəstə eşitdim.
Niyə iki?
Nə olub?
Auditoriya: [işitilemez].
DAVID J. MALAN: Oh, tamam.
Belə ki version birində, 0 aşağı getmək, lakin unutmayın deyil
orijinal doğru versiyasını ya 0 aşağıda getmədi.
Beləliklə, bu düzgün versiyası olduğunu unutmayın.
Belə ki, ən azı iki düzgün versiyasını müqayisə edək.
Version lehinə bir dəlil nədir
iki olan MMM, daha yaxşı?
Evet?
Auditoriya: Bu az yer istifadə edir.
DAVID J. MALAN: OK, belə ki, sağ az yer istifadə edir?
Versiya bir 32 n bit, və sonra başqa bir istifadə halda
I üçün 32 bit.
Version iki yalnız n 32 bit istifadə edir, belə ki,
bir plus görünür.
Digər fikir?
Hər kəs bir xeyrinə mübahisə istəyir?
Evet?
Auditoriya: Siz n üçün kodu əlavə xətt istifadə etmək -.
>> DAVID J. MALAN: OK, əmin olun.
Belə ki, ədalətli deyil.
Azı mənə, yalnız belə -
Mən bu həqiqətən bir az Messier hiss faktı deməkdir ki,
Mən bir mənim məntiq bütün içine və sort bilməz
loop üçün bilərsiniz kimi loop üçün gözəl xətti,.
Burada cür bu n tack var -
loop sonunda, çünki
bu məntiqi lazımdır.
Amma bu cür mənə səhv yol rubs, yalnız çünki
baxmayaraq, qədər burada məntiqi ayrı görünür
yenidən, bu, lazımdır.
Digər fikir?
Evet?
Auditoriya: [işitilemez].
>> DAVID J. MALAN: Bəli.
Yerine Belə ki, nə mahnı sonunda istədi
yenə mahnı adı çap?
"Pivə 99 şüşə oynayan üçün təşəkkür edirik" kimi və ya bir şey
kimi silly?
Amma point, orijinal dəyər əldə etmək istəyirdi.
Hər barədə n mutated və ya değiştirdik ki,
iteration və buna görə də onun orijinal dəyəri məhv
yalnız sonunda bunu edə bilməz deməkdir.
İndi, arguably, biz aydın etmək istəmirəm
Bu proqram.
Belə ki, kimin umurunda?
Lakin bir çox etibarlı nöqtə var.
Və vicdanlı olmaq, heç kim həqiqətən var
Burada cavab.
Onlar həm də eyni dərəcədə doğru edirik.
Mən ya yol əmin ola bilər.
Mən ümumiyyətlə, yaxşı bir prinsipi var, deyirlər ki, əgər siz
bəzi dəyəri üçün istifadəçi xahiş və bir dəyişən saxlanılır
sort prinsipi üzrə n kimi, yalnız, yəqin ki, yaxşı
ki, ətrafında saxlamaq.
Və hər hansı bir məlumat yalnız, təkrar mutate istəyirəm
yalnız belə, özünüzü dəyişən surəti verir ki,
orijinal girmə imkanı vardır.
Siz 32 daha bit sərf olunur, amma reallıq bu
kompüter, RAM iki gigabayt bu gün istəyirəm ki,
və biz 32 bit üzərində quibbling mi?
Həqiqətən, belə bir böyük.
Və hətta yarım konsert və ya burada bu cihaz haqqında
RAM gigabyte, 64 bit qarşı 32 bit,
belə bir böyük.
Əlbəttə, bu gün bu ölçüsü ilə overwhelmed yol olacaq
proqram özü olan bir neçə yüz olacaq
kilobayttan, əgər bir neçə megabayt, bu gün.
>> Belə ki, ağlabatan narahatlıqlar, bir heç bir düzgün cavab.
Amma ən azı bu başlamaq lazımdır ki, fikir edir
fikrinizi keçir?
Pset 0, biz, həqiqətən, yalnız gözlənilir baxmayaraq Çünki
düzgünlüyünə və ya ən azı müxtəlif hataları disclaiming
biz irəliyə kimi, qarşılaşdıqları bilər, dizayn
digər əsas aspekti olacaq, həm kodu yazmaq
həmçinin kodu qiymətləndirilməsi.
Və ən azı bu kimi şeylərə fikir verin.
Və yalnız bir şey işlərin, çünki yaxşı demək deyil
yaxşı dizayn var demək deyil.
Və müəllim yoldaşları hər biri və
problem dəstləri bizə vaxt artıq hissəsi tease kömək edəcək.
>> Yaxşı, haqqında, burada, demək bu versiyası nə edək?
Mənə bir an burada bir az sexy bir şey edək.
Birinci mənə bu xilas edək.
İndi bu qrammatik sorunu bildirin.
Belə ki, bu versiya, mən qrammatika düzeltmek üçün mənə ki,
daha çox yalnız ara s "şüşə" kimi demək
və ya "şüşə" -
Hesab edirəm ki, küncü kəsilmiş istəmirəm -
Mən də dinamik sözü "şüşə" çap istəyirəm
bununla da bu gün bu% s placeholders istifadə edərək və ya "şüşə".
Mən şərti i dəyəri nə yoxlamaq lazımdır.
1 varsa, mən "şüşə" demək istəyirəm, və onun bir şey varsa,
başqa, mən "şüşə" demək istəyirəm. Belə ki, bu etmək üçün cəhd edək.
I == 1 Belə ki, sonra mənə irəli getmək və elan edək -
Mən bir string lazımdır, belə ki, bu, çünki mənə string s1 bunu bildirin
ilk simli İndi qayğı.
Mən "şüşə" demək gedirəm. Və sonra, simli, gəlin görək
s2 - və mən bir anda gidiyorum harada izah edəcəyik -
"Şüşə". Belə ki, bu mahnı, biz lazımdır ki, xatırlayıram
potensial əşyalar, iki müxtəlif sözləri çap.
Burada geri baxmaq Belə ki, əgər biz almaq zaman ki, qeyd
burada bu, məsələn, "divar pivə iki şüşə,
pivə iki şüşə, bir aşağı almaq istəyirəm ", onun ətrafında keçə
bu dördüncü xətt indi də "pivə bir şüşə demək
divar şüşə "və ya". mən qərar lazımdır ki, demək istəyirəm "
"Şüşə"? Mən, özbaşına demək doğru gedirəm
İndi bir dəyişən adlı s1, simli bəyan gedirəm
bir ki, burada da burada takıldığından olacaq
bu sözlər həmişə eynidir, yalnız çünki görə
mahnı təbiəti.
Mən istəyirəm nə söz s2 zəng gedirəm
nəticədə burada görünür.
İndi, sözün, 100 həyata 99 dəfə, bu olacaq
3 cəm, çünki o hallarda həm eyni, 2
cəm, 4 cəm edir.
Amma bu künc halda, biz burada 2 almaq və sonra 1, və ya
hətta 1 və sonra 0, mən bu məntiq lazımdır.
Mən doğru almaq mənim kodu bəzi vaxt sərf etmək lazımdır.
Mən bunu əgər, "şüşə" bərabər müəyyən s1 sonra, i == 1 əgər
və "şüşə", bərabər s2 bu 1 olacaq, çünki
şüşə və bu 0 şüşə olacaq.
Və burada, bu nə təmsil edir?
Just aydın olmalıdır.
Bu yalnız bir comment edir.
Belə ki, tək-line şərh ola bilər ki, siz deməkdir
bu kimi kodu şərh, lakin başqa ümumi bilər
paradiqma da ki, bir super-qısa söz var ki, əgər
özünüzü qoymaq istəyirik və qoymaq üçün daha çox oxunaqlı deyil
sağ kodu xəttinin sonunda, siz
tamamilə bu kimi bir şey yoxdur.
>> Belə ki, indi nə mən bunu əgər? I 1 bərabər deyil Else əgər.
Belə ki, bang bərabərdir -
ünlem "bang" kimi tanınır.
= 1 bang edir.
I 1 bərabər deyil Belə ki, mən əvəzinə nə istəyirsiniz?
Yaxşı, mən nə istəyirəm ilk sözü?
Belə ki, simli 1, cəm butulkalar üçün "şüşə" olmalıdır
və bu indi, eləcə cəm "şüşə" olacaq.
Bu, həqiqətən, bizə olur əgər biz görəcəksiniz
biz getmək istəyirəm yerləşir.
Burada aşağı diyirləyin Belə ki, indi mən sayede edirəm ki, görürsünüz
i, lakin s1 yalnız.
Mən və s1 ildə sayede alıram.
Və sonra aşağı burada, mən eyni olan, 1 minus deyiləm
əvvəl, lakin s2.
Başqa sözlə, mən əsasən dəyişdirmək üçün ingilis sözü istəyirəm
bu məntiqə.
İndi bu kodu bəzi problemlər artıq var.
Burada qapısının artıq nə sınıq olunur?
Evet?
Auditoriya: [işitilemez].
>> DAVID J. MALAN: Exactly.
Mən artıq çərçivəsində dərs pozulmuş etdik.
Mən s1 və s2 elan etdik, amma daxilində bunu etdik
Bəli, bu kodu işləyəcək deməkdir qıvrım aşırma,
line 42 qədər, amma tezliklə mən line 43 hit, tahmin hansı
artıq mövcud?
S1 ya s2 nə - Yaxşı, əhatə dairəsi artıq nə danışarlar.
Beləliklə, biz bu düzeltmek üçün var.
Belə ki, mənə bəyanatlar silmək imkan verir.
Mən burada dəyişən adları tərk və bu silmək lazımdır
və burada bu silin.
Və nə xətləri Mən, həqiqətən, bu şeyləri bəyan etməlidir?
Auditoriya: [işitilemez].
DAVID J. MALAN: Bəli, belə yəqin ki,
sağ qədər burada 33-ish.
String s2 sonra simli s1 Belə və.
Və çıxır, mən bunu edə bilərsiniz.
Eyni tipli iki dəyişənlərin elan edirsinizsə,
həqiqətən, yalnız bir vergül istifadə edə bilərsiniz ki, C. bütün
sağ, belə ki, indi iki dəyişənlər var -
s1 və s2.
Bu onların dəyərləri təyin alıram
burada şərait, və ya burada.
Və sonra aşağıda onları aşağı kullanıyorum.
Necə bu artıq iş gedir?
>> Bəli, hələ bir az arabası, lakin ən azı görmək edək
nə qədər biz kazanılmış etdik.
Mənə davam və beer3 edək.
Bu beer3 mı?
Yep, bu beer3 edir.
İndi mənə irəli getmək və beer3 run bildirin.
399 99.
Biz yəqin ki, onların əksəriyyəti atlayabilirsiniz.
Və aşağı burada, bu oldu.
"Divara pivə biri şüşə, pivə bir şüşə almaq
aşağı biri, divar, pivə 0 şüşə ətrafında keçir. "
Amma həlli yalnız yarısı üçün diqqət çəkən deyiləm.
Şərti burada berbat.
Belə ki, i bərabərdir zaman künc hallarda yaranır ki, görünür nə
iki dəyərlər?
Auditoriya: 2, 1.
DAVID J. MALAN: 2 və 1.
Bu 1 deyil 1 və deyil.
Bu, həqiqətən, bu mahnı yalnız bu son iki beytlik var.
Mən bunun əvəzinə nə istəyirsiniz?
Mən i == 1 əgər olduğu halda tutuldu ki, görünür
sonra ilk sözü "şüşə", ikinci söz
"şüşə" dir. Amma burada, bu == 2 olmaq dəyişdirmək istəyirik.
Bu halda, mən nə istəyirəm ki,
ilk sözü olacaq?
Auditoriya: "Butulkalar".
DAVID J. MALAN: belə iki şüşə üçün "Butulkalar".
Və sonra burada bu söz olmalıdır -
Auditoriya: "Şüşə".
DAVID J. MALAN: "Bottle", sinqulyar.
>> Bütün hüquqlar isə, zoom buraya geri qoy etmək yenidən run,
yenidən run beer3, növü daha 99.
Okay, "Segmentasyon günah (əsas tullanır)."
Mən nə zülm?
Auditoriya: Siz bir dəyəri yoxdur [işitilemez].
DAVID J. MALAN: Ah, əla nöqtəsidir.
Bütün hüquqlar, belə ki, burada səhv nədir?
Seqmentasiya günah Belə ki, biz, həqiqətən, görmək olacaq
bu bir neçə gələcəkdə dəfə, qəsdən.
Amma indi, bu həqiqətən nə deməkdir?
A seqmentasiyası günah demək olar ki, həmişə var deməkdir
birtəhər kompüter yaddaş, RAM daxil olmaq üçün çalışdı,
həqiqətən, xahiş deyil öz deyil ki,
üçün əməliyyat sistemi.
Belə ki, bu halda, olan I etdiyiniz nə görürsünüz
mənim məntiqi flawed.
I 1 bərabərdir əgər mən s1 və s2 bir dəyər təyin edir.
I 2 bərabər, mən də etdik.
Amma digər sonsuz sayda bunu deyil
imkanları -
xüsusilə, 3 və ya 4 və ya nöqtə, nöqtə, nöqtə, 99.
Beləliklə, bu üçün bir düzeltme yalnız edək ola bilər
bir başqa vəziyyət var.
Və mənə burada getmək və s1 bərabər deyək -
burada nə olmalıdır?
Auditoriya: [işitilemez].
>> DAVID J. MALAN: Çünki ümumi halda "Butulkalar"
yalnız eyni şey.
Belə ki, quote, dırnağı bağlamaq, "şüşə". Bərabərdir Belə ki, cəm üçün
şüşə, və sonra, burada cəm butulkalar üçün.
OK, belə ki, indi mənim terminal pəncərə geri bildirin
yeniden derlemeyle ki, yenidən axır.
99.
Whew.
Və tez ağlı başında olma çek nə edək.
Texniki, biz əmin olmaq üçün bütün bu oxumaq istəyirəm
onlar doğru istəyirik, ancaq baxmaq edək
məşhur günahkarları ən.
3 şüşə, 2 şüşə, 2 şüşə, 1
şüşə, 1 şüşə, 0 şüşə.
Biz ən azı indi üçün müəyyən etmək görünür.
Amma burada tutmaq nə bir tanrı dəhşətli mess bu ki,
yalnız bir axmaq həll etmək
bir xarakter qrammatik ətraflı.
Mən bu küncü kəsilmiş bir səbəb növü var
əvvəllər üçün yalnız tamamilə annoying, çünki
bu qədər kodu yazın.
Amma bu qədər çox zərif yolu var ki, həyata çevirir
eyni şey ifadə.
Və biz aşağıdakı kimi edə bilərsiniz.
>> Mənə bir an üçün ekranda bu tərk edək və
bir ternary operator kimi tanınan bir şey təqdim edir.
Bu etmək üçün nəzərdə ki, bir-liner cür bizim
kimi söz bir az sexier, yaşayır.
Mən bu aşağıdakı kimi etmək üçün gedirəm.
Mənə s1 adlı simli ver və mənə bildirin
o aşağıdakı kimi təyin.
(I == 1)?
"Şüşə", başqa "şüşə". S2 String (i == 2) olur?
"Şüşə", başqa "şüşə".
Belə ki, burada fərq nə sonra var?
Kodu Bu iki xətləri, mən iddia edə
Bu bütün mess dəyişin.
Mən bu cür mənə rubs yalnız, çünki bir mess zəng
bu kodu çox xətləri ki, yanlış yol.
Yanlış deyil.
Bu pis dizayn deyil.
Kimi, bu mükəmməl düzgün və mükəmməl yaxşı.
Siz özünüzü ifadə etmək Lakin coding yorucu olur
təkrar və daha sadə xüsusi kahretsin
bu kimi ssenari.
Belə ki, C belə, bəzi qısa malikdir.
Belə ki, bu mahiyyətcə s1 adlı simli bəyan dedi və
bu dəyər və ya i == əgər bu dəyər və ya onu təyin -
Bağışlayın, mən daha dəqiq bu demək lazımdır.
, Dəyişən s1 bəyan bu doğru əgər bu dəyər tapşırılsın.
Əks halda, bu dəyər tapşırılsın.
Belə ki, başqa sözlə, bu bir-line yolu növ
əgər başqa deyərək amma yol boyunca bir tapşırıq edir.
I 1 Belə ki, sonra irəli getmək və bu "şüşə" deyirlər. Və
sonra başqa bu, o, "şüşə" deyirlər. Eyni zamanda, s2 ki,
i 2 bərabərdir əgər biz müəyyən etmək lazımdır ki, ikinci söz, biz rəftar
"şüşə" üçün s2 seçin. Əks halda, "şüşə" seçin. Və nə
bu mən, bu keçir və bütün silin İndi deməkdir
kodu həmin satır.
Mən deyəndə, bir qədər ridiculously, indi ki,
sexier, bu üslub mənada cür sexier var.
Funksional, bu kodu həqiqətən gedir ki,
eyni şey.
Və ilk sirli bir az ola bilər, baxmayaraq ki,
nəzər, biz əvvəl bu tikinti görmədim etdik, çünki mən had
bu son nəticədə çox daha çox olacaq ki, mübahisə
oxunaqlı və biz insanlar düzmək üçün çox asan
İndi yalnız oxumaq olar, çünki anlamaq
bir line kodu bütün.
Bu bu deyil, əgər hələ ruhu oxşar
vəziyyəti və bu əgər içərisində nə və bu
da başqa daxili nə edir.
Amma biz yalnız daha zərif bunu edə bilərsiniz.
>> Mən indi mənim terminal geri, bütün silinmiş olan
o xətləri və yalnız bu iki ilə əvəz
yeniden derlemeyle, 99 ilə pivə yenidən run şüşə ki, bildiriş mənim
qrammatika hələ, əslində doğru deyil.
Belə ki, yenidən başlamaq üçün bir şey.
Pivə 2 şüşə, pivə, 1 şüşə.
Sağ görünür.
Bəli.
Belə ki, orada biz daha qısa həlli var.
Da, bu Belə ki, C ilə daha rahat almaq kimi
lakin, ilk pset və ya hətta ikinci mütləq
yapıları bizə heç şeyə icazə edə bilirik
daha zərif.
İndi burada başqa bir şey edək.
Mənə davam və return1.c açmaq edək.
İndi bir şəkildə başqa bir problemi həll etmək üçün başlamaq edək
daha inkişaf etmiş kodu yazmaq imkan verir.
>> Belə ki, burada onların məqsədi həyatında sadə kiçik proqram
dəyərlər arttırmayı edir.
Və həqiqətən, geri addım götürək.
Mənə əl bunu edək.
Mənə əsas (void) daxildir və int edək.
Və mənə bu increment.c zəng edək.
Mən nə istəyirəm?
Mən irəli getmək və bir şey kimi demək gedirəm -
biz ədədləri eyni zəng edəcək -
int x.
Belə ki, int x 2 alır; printf x% d, yeni xətt, x.
Mən indi sürətli, amma tanış məhsulları sort yazaraq alıram.
Sonra x + + etməyə gedirəm.
Sonra yenə eyni cümlə çap gedirəm.
Və sonra mən yalnız proqram çıxmaq 0 qayıtmaq üçün gedirəm.
Bütün hüquqlar, bu bir proqramdır
əlavələr bir sıra.
İlk bu sonra 2 bir şey başlamaq üçün gedən, və oldu
bu arttırmayı və yenidən çap gedir.
>> Belə edək, inanılmaz sadə proqram artım axır.
Amma bunu, mən kub dəyəri istəyirəm ki, indi güman
qədər özbaşına bir şey.
Mən həqiqətən x onun kub əldə etmək istəyirik.
Mən POW funksiyası adlanır nə istifadə edə bilər, amma deyil
ki, hələ burada, həqiqətən, bilirəm.
Mən bu köhnə yol etmək üçün gedirəm.
x dəfə x dəfə x dəfə x bərabərdir.
Mən yenə özü tərəfindən vurulması, dəyəri cubing alıram
və təkrar ki, biz enerji almaq
bu halda 3.
Belə ki, indi çap etməli nömrələri biz görəcəksiniz kimi olmalıdır
burada - increment etmək, belə ki, bu, həqiqətən, həqiqətən arttırmayı deyil
artıq, lakin biz təkcə ad tərk edəcəyik -
Sonra 2 və 8.
İndi biz zəriflik üçün imkan əvvəlindən var
Burada əsasən bir sıra vurulması bu cubing şey
özü özlüyündə özü bu kimi hiss yalnız ola bilər
faydalı kimsə qərar çox kimi bir funksiyası var
il əvvəl - Bilirsiniz, mehriban əgər faydalı bizi biri aşağı oturur
və printf belə dünyanın qalan istifadə edə bilərsiniz ki, yazır
niyə biz oturub kub adlı funksiyası yazmaq deyil
Bizim üçün bu cubing edir ki, biz əl yoxdur ki,
burada dəyərlər cubing anlayışı həyata?
>> Sadə misal Beləliklə, amma nin irəli getmək və istifadə qoy bu kimi
öz funksiyasını yazmaq imkanı.
Belə ki, bu günə qədər, yalnız əsas istifadə etdiyiniz, biz digər istifadə etdiyiniz
xalq funksiyaları, amma biz öz yazılı deyil.
Belə ki, burada biz gedin.
Mən irəli getmək və kub adlı funksiyası yazmaq üçün gedirəm.
Mən bu giriş etmək üçün gedirəm.
Belə ki, giriş bir tamsayı olacaq.
Və nə bunu edir?
Bu int çıxış bəyan olacaq = giriş dəfə daxil
dəfə daxil etmə.
Və sonra bu məhsulun geri olacaq.
Və sonra mən artıq konkret olmalıdır.
Bu funksiya bir int geri gedir.
Belə ki, burada sonra öz funksiyalarını yazmaq istədiyiniz necə.
Siz ilk olaraq adı nə qərar
funksiyası olacaq.
Və ümumiyyətlə, izahlı bir şey yaxşıdır, mən rəftar
bu kub çağırırıq.
Sonra geri olacaq nə müəyyən etmək üçün var, nə
onun çıxışı olacaq.
Biz hələ ki, bir çox variantları yoxdur.
Int, char, float, bool, simli.
Mən bunu istəyirəm, çünki indi, mən, bir int ilə stick gedirəm
bir tam qayıtmaq üçün.
Sonra onun giriş, əgər nə müəyyən etmək lazımdır.
Və kub mübahisə edir, əgər arasında bir şey edir
parantez, bu arqument bir ad vermək lazımdır ki,
siz həyata və ya yazılı etdiyiniz kimi siz bir şey zəng edə bilərsiniz
bu funksiya, siz bir növ, vermək olan bu
halda int olacaq.
Belə ki, qısa, kub bir tamsayı edir ki, funksiyası
giriş və çıxış qaytarır kimi bir tam kimi.
>> Belə ki, daxil olan nə edir?
Yaxşı, line 14, mən bir dəyişən adlı çıxış bəyan və mən
bu dəyər, giriş dəfə giriş dəfə daxil tapşırılsın.
Və sonra mən çıxış qaytarır.
Belə ki, necə bu istifadə edirsiniz?
Mən xətt bu qeyd simvol nə dəyişə bilərəm
7, sizcə olunacaq?
Auditoriya: [işitilemez].
DAVID J. MALAN: Bəli, x belə kub.
Belə x bəzi dəyəri keçirir deməkdir ki, dəyişən edir.
Xoşbəxtlikdən, bu tipli tam var.
X bir int edir, çünki, mən kub onu keçə bilər.
Mən dəyəri x dəyəri əsas alıram baxmayaraq
kub x, kimi, bu günə qədər heç vaxt belə olmuşdur
bərabər işarəsi və kodu bir line, sagdaki heyəti var
icra olur və sonra təyin edilir
sol dəyəri.
Belə əməliyyatlar üçün biz ümid kimi deyil.
Belə işləyir?
Yaxşı, məni burada gedək.
Mənim terminal pəncərə açmaq edək.
Mənə daxil edin artım edə bilərəm edək.
Funksiyası "kub" və "Örtük bəyannaməsində yanlışdır
Olduğu kimi C99 ". Bir kənara kimi, C99 dil C istinad
1999-cu ildə müəyyən olan versiyası üzərində yeniləmə idi
Orijinal üzərində yeniləmə olan 1989.
Belə ki, bütün o deməkdir ki, var.
>> Belə ki, "gizli bəyannamə nə deməkdir
funksiyası "kub" yanlışdır? "Bu sağ burada.
Bu xətt 12 doğru var.
Auditoriya: [işitilemez].
DAVID J. MALAN: Nə olub?
Auditoriya: Bu əvvəl deyil.
DAVID J. MALAN: Bu əvvəl deyil.
Belə ki, bu şey.
C cür axmaq edir, və ya C derleyiciler axmaq növü var.
Onlar, həqiqətən, yalnız onlara nə demək nə.
Və onlar, xüsusilə, yalnız, alt üçün üst kodu oxumaq
sağ.
Derleyiciyi, cingilti, kodu oxumaq əgər, line 1, bu,
Bunu necə tutulur.
Oh, burada əsas gəlir.
Okay, mənə irəli getmək və bir dəyişən x bəyan edək.
Mənə bir şey çap edək.
Line 7, heck kub nədir?
Bu stdio.h elan deyil.
Mən nə heç bir fikrim yoxdur C. ilə gəlmək deyil.
Və cingilti yalnız bails və səhv mesajı ilə başabaş.
Belə ki, yolları bir neçə bu düzeltebilirsiniz.
Biz kub yalnız burada hərəkət nə cingilti öğretebilir
bəyannamə edir.
Mən kəsilmiş və əsas üstün o yapışdırılır.
İndi əsas ilk artıq olduğuna görə, bu ki, həyata
hələ default həyata.
Əsas əsas deyil.
Bu default funksiyası adı var.
Bir fayl olduğu əhəmiyyətli deyil.
Mən onu istifadə etməzdən əvvəl Amma ən azı indi cingilti kub gördü.
Belə ki, cingilti indi xoşbəxt olduqda nin görək.
Artım olsun, bu dəfə tərtib etməyib.
>> Mənə artım run edək.
Və həqiqətən, bu iş görünür.
İndi nəhayət yerləşir ssenariləri ilə gəlmək olar
hər funksiyası qoymaq mümkün deyil
hər funksiyası yuxarıda.
Siz, əslində bu sonsuz döngü takılıyorum olacaq
Bu adam burada ancaq bu olmaq istəyir yerləşir
oğlan var olmaq lazımdır.
Belə ki, həmişə işləmir.
Belə ki, təşəkkürlə, C, daha zərif həll var.
Bu idi Mən bu geri qoymaq gedirəm, çünki mən
prinsip məsələsi kimi, üstünlük əsas həmişə
başında, çünki görmək yalnız gözəl nə bu proqram
default yapar.
Və nə mən burada nə gedirəm deyirlər nə bəyan edir
bir prototip.
Mən sözün mənim kub funksiyası yenidən bəyan gedirəm
çıxarmaq ve yapıştırma.
Əslində, bu sözün deyil.
Belə ki, sözün line 15 çıxarmaq ve yapıştırma
up line 6 yuxarıda.
Bu qədər başa nə line etməz.
Bu line 4-də olur.
Amma əvvəl əsas olmaq yoxdur.
Amma fərq görürük.
Bir nöqtəli vergül ilə Line 4 bitir olan, hey deməkdir
Cingilti, funksiyanı var ki, mənim söz almaq
bir int edir və bir int qaytarır ki kub çağırıb.
Amma bu hələ nə demək mý deyiləm.
Sadəcə mən nəhayət sizə söz verirəm ki, bilirik.
And olsun ki, indi bu aşağı edir ki, OK.
>> Beləliklə, bu üst çünki onda, ümumiyyətlə, daha yaxşı
fayl, yalnız, sürətli yanğın, bir xətt birnəfəsə danışmaq olar
hər, sizin funksiyaları adları nə, nə onların
giriş onların nəticələri nə var.
Və daha aydın olması üçün, giriş ümumiyyətlə dəlil deməkdir və ya
parametri, sinonimidir.
Çıxış o nə, qayıdış dəyər deməkdir
geri mənə əl.
Belə ki, burada bu halda, kub üst elan lakin
həyata kimi müəyyən başqa altına bilinir.
Belə ki, indi-nin burada geri getmək və bu yenidən run bildirin.
Belə ki, indi yenidən run artırılması, mənə davam etmək və yenidən run bildirin.
Və indi yalnız gözəl iş görünür.
Belə ki, indi biz kimi bir şey davam və amil bilər
bu dördüncü versiyası pivə nümunəsidir.
Mənə burada aşağı diyirləyin bildirin.
Mən cür yalnız indi ürək bu dərs vermiş bilərsiniz.
Mən yenə eyni bənd ifa edilmişdir ki,
təkrar, mahnı eyni xor xətti, hiss
niyə bir funksiyası daxil amil ki, yox kimi?
Və həqiqətən, bu motivasiya biri olmalıdır.
Dünyanın başqa kimsə edə bilərsiniz ki, başqa
bir kub funksiyasından istifadə etmək -
ki, bir şey amil və yazmaq üçün yaxşı bir səbəb var
öz xüsusi funksiyası -
kodu bir yığın yalnız edir ki, proqram varsa
ne cür bir vermək istəyirəm ki, konseptual mənada
adı - bu halda, xor kimi -
sonra eyni bir ayrı funksiyası kimi yaza bilərsiniz.
Siz əsas hər şeyi yazmaq üçün yoxdur, yalnız əgər
onu ayrı-ayrı və bir ad vermək təmiz hiss edir.
>> Belə ki, burada bu halda, mən üstün bir şərh olduğunu fark
yalnız haqqında oxuyur ki, bu funksiya
şüşə müəyyən nömrələri.
Mən bu zəng etmək lazım deyil ki, burada edək
şeyi giriş və çıxış.
Əslində, bu dəfə yalnız şüşə üçün giriş b çağırıb.
Burada qeyd, etibarsız nə təklif?
Yəni xor -
Auditoriya: geri deyil.
DAVID J. MALAN: bir dəyər qayıtmaq yoxdur.
Və həqiqətən, funksiyaları dəyərlər qayıtmaq yoxdur.
Onlar bir şey yalnız bilər.
Onlar yan təsirləri adlanır nə ola bilər ki, bu
halda yalnız ekranda çap bütöv bir dəstə edir.
Belə ki, burada bu kodu, mən sanki təkcə stole ki, görürsünüz
əvvəlki nümunəsi.
Yeganə fərq əvəzinə mənim kimi i istifadə edir
dəyişən, indi mənim dəyişən kimi b kullanıyorum.
Mən aşağı burada b var, aşağı burada b var, b var
burada 1 minus.
Amma kodu tam eyni deyil.
Lakin biz bu istifadə edə bilərsiniz necə artıq sizə göstərmək, mənə gedək
qabaqda və faktiki loop üçün üçün bu dəyişir.
(i; i> n int i = n -) üçün.
>> Mən ki, bizim əvvəlki Məsələn oğurlanmış etdik.
Əvvəllər mən başlamışdır ki, xətt 37 var
Bu annoying mahnı oxuyan.
Ancaq əvəzinə, yalnız indi i xor zəng etmək üçün gedirəm.
Done.
Belə ki, indi bu loop hər iteration, mən bu digər zəng
mən yazmaq baş funksiyası, xor.
Bu il əvvəl başqası tərəfindən yazılı deyil.
Lakin xor, eyni zamanda, çap printf istifadə
bu dörd xətləri həyata.
Amma bir daha və yenidən xor zəng edirəm ki,
loop Mən, çox sonunda almaq üçün gidiyorum o deməkdir ki,
Mən bu günə qədər olduğu kimi dəqiq eyni mahnı.
Belə ki, qısa, indi mənim kodu geri baxmaq əgər, baxmayaraq
funksional bu bərabərdir, bu fark
daha oxunaqlı almaq üçün başlayır.
Mən dəqiq bilmirəm necə GetInt
həyata keçirilir.
Açığı, mən xor həyata necə bilmirəm.
Amma mənə məsələ deyil.
Indi mən çeşidləyə bilərsiniz, çünki mən oxumaq, bir insan kimi, vecimə deyil
Bu top-dən aşağı.
Və funksiyaları nə görə adına çünki
nə, mənim kodu getdikcə oxunaqlı edir.
Və proqramlar daha mürəkkəb almaq kimi -
dövr sonuna, siz xətləri yüzlərlə yazılı olacaq
PHP və JavaScript və kimi kimi dillərdə kodu -
siz onu izlemek üçün çox daha asan olduğunu görəcəksiniz
siz etdiyiniz nə.
Və start zaman dostları ilə əməkdaşlıq və ya
tərəfdaşlar və ya həmkarları, daha çox yazmaq edə bilərsiniz
bu əsas həyata başlayaraq kütləvi proqramları
bloklar.
>> Bildirib ki, ilə Belə ki, niyə biz bir gün zəng deyil?
Və biz Çərşənbə günü görəcəksiniz.
[Alqış]