>> JASON Hirschhorn: Welcome Həftə üç, everyone.
Biz məşğul, lakin maraqlı var Önümüzdə bölmə.
Belə ki, birinci, biz bəzi etdik çünki gedişi ilə Headway lakin biz hələ
öyrənmə bir çox mən, nə yazmayıb Sizlərin bəzi resursları göstərmək niyyətindədir
inanılmaz olduğunu sübut etməlidir Siz yanaşma yalnız faydalı deyil kimi sizin
problem dəstləri, həm də bütün həzm biz sizə uşaqlar vermək material
mühazirə və şort və bölmə.
>> Sonra biz ilk 20 sərf etmək olacaq bölmə üzərində gedən 25 dəqiqə
Siz və ya ola bilər olan gdb bu nöqtədə istifadə, lakin bu deyil
olduqca faydalı vasitədir edəcək Siz proqramları debug kömək.
Siz bir çox printf istifadə edə bilər anlamaq üçün proqram orta
dəyişən bərabər nə.
Gdb hətta printf daha yaxşı və kodunuzu qıymaq deyil siz, çünki
bir yürütülebilir fayl run.
Beləliklə, biz 10 ən faydalı artıq getmək lazımdır Siz gdb üçün lazım əmrləri, və biz
birlikdə belə bir həyata getmək gedir problem siz, üç və kənarda müəyyən
debug kömək gdb istifadə edə bilərsiniz proqramları.
Və nəhayət, biz bəzi artıq getmək olacaq çeşidlənməsi alqoritmlərin və Axtarılanlar
Siz mühazirə gördüm, və biz ki, həqiqətən kodu, yalnız gedir
pseudocode, lakin kodu ikili axtarış bubble sort, və seçim sort.
>> Belə ki, ilk, mən getmək istəyirəm resursları üzərində.
Bu geniş siyahısı, və bu Mən bir çox idi, çünki kiçik font
burada uyğun.
Amma bu, sizə yardım olacaq deyil, yalnız yenə problem dəsti ilə və
Siz öyrəndim həzm məlumat, lakin mütləq, viktorina zaman bu edəcəklər
olduqca faydalı ola bilər.
Belə ki, ilk, mühazirə qeyd edir.
Siz cs50.net/lectures getmək və əgər xüsusi həftə və gün gedin,
hər biri üçün qeydlər var ki, görəcəksiniz sadəcə deyil, mühazirə bir
transcript, lakin bir redaktə versiyası kodu ilə mühazirə əhatə nə
parçalarını və digər faydalı tidbits.
Mən o üzərində gedən gəlir.
Və sonra, eləcə də mənbə kodu var hər mühazirə mövcuddur.
Və yenə bu slaydlar da olacaq cs50.net/sections mövcud online
bu axşam.
>> Belə ki, ikinci şort hər həftə ki, mövzuları əhatə, adətən 5 15
uzunluğu dəqiqə.
Və o inşallah bir verəcək müxtəlif mövzularda böyük primer.
Üçüncü -
və bu yeni bu il - study.cs50.net edir.
Siz yoxlanılır varsa, mən yüksək Bunu gəlir.
Siz mövzu almaq.
Biz orada mövzular onlarla var.
Belə ki, məsələn, siz funksiyaları seçin.
Bu bəzi slaydlar verir və funksiyaları edir.
Bu əslində slaydlar ki TFS zamanı istifadə üçün tövsiyə olunur bizim
bölməsində təqdimatlar.
Məşğul olmaq üçün Məsləhətləri və fəndləri də var funksiyaları, və var ilə
kömək ki, təcrübə problemləri Siz funksiyaları ilə iş.
Biz də qısa sizə links vermək funksiyaları və dəfə funksiyaları
mühazirə gəlmişəm.
Bu belə study.cs50.net, yeni il, bir fantastik resurs.
>> Sonra, mən əl olan adam var Siz çalıştırabilirsiniz ki, komanda
command line.
Belə bir haqqında hər hansı bir sualınız varsa, komanda, məsələn, rand, biz
bölmə zamanı ötən həftə qarşılaşdı və çox güman ki, rast var
vasitəsilə davam zaman problem set kodu yaratmaq, ancaq adam yazın əgər
rand, siz səhifə almaq lazımdır ki, Rand haqqında bütün deyir.
Bu, onu alır nə verir edir parametrləri, eləcə də geri
növü və qısa təsviri ki, funksiyası.
>> Belə ki, Rand kontrol.
Bu, bir az wordy və confusing ola bilər belə ki, bəzən mən ki, tapa
sadəcə mən bilmək istəyirəm nə Googling cavab tapmaq üçün ən yaxşı yoldur.
Belə ki, Google ilə təcrübə.
Google yaxşı almaq.
Bu ən yaxşı dost olacaq.
>> Eləcə də Google, siz onu tapa bilərsiniz əgər Google, cs50.net/discuss, bu
müzakirə forum.
Bir sual varsa şansını bir Sizin 700 + həmyaşıdları də var ki,
sual və xahiş ola bilər artıq discuss
forumlar və cavab var.
Belə bir ümumi sual və ya varsa Siz hesab edirəm ki, bir sual var
bəlkə digər insanlar daxil ola bilər, cs50.net/discuss kontrol.
>> Nəhayət, son iki, siz istəyirsinizsə bir real insan, ofis danışmaq
Cümə saat Bazar ertəsi.
Online ofis saat da var uzadılması tələbələr üçün.
Və son lakin əlbəttə az deyil Mənə, nida point.
Siz bütün əlaqə məlumatı var.
Bir şey lazımdır, əgər, xahiş edirik heç vaxt mənə müraciət etməkdən çəkinməyin.
Həmişə bunu çekinmeyin.
Siz çox az Gchat məni əlavə, ki, məyusedici oldu
lakin ümid edirəm ki arasında dəyişdirmək lazımdır Bu və növbəti bölmə.
Bu günə qədər resursları hər hansı suallar?
Böyük.
>> Nəhayət, başqa bir plug üçün Əlaqə, sayat.me/cs50.
Siz mənə anonim rəy verə bilər edirəm necə.
Ki, ötən həftə həqiqətən faydalı oldu.
Mən sizə uşaqlar şərh bir neçə var sağ ikibölməli, üstəgəl sonra
onu seyr edən digər tələbələr Həftə ərzində və bu
olduqca faydalı idi.
Mən cəhd və mənim istifadə məhdudlaşdırmaq üçün gedirəm sözü "şirin" amma göstərəcək mənim
coşğu və həyəcan digər yollarla.
Amma digər əlavə var idi maddi geribildirimler,
müsbət və delta də.
Belə ki, Mən sizə uşaqlar geribildirim edin Sizin problem dəstləri.
Mənə geribildirim çekinmeyin mənim tədris.
Mən sizə uşaqlar üçün buradayam.
>> Böyük.
Mən üçün bütün ilk bölmə.
Heç bir yoxdur suallar bu günə qədər?
Mən bir qeyd var nəzarət mərkəzi.
Extension tələbələr mənə nazil etdik Onlar hər hansı bir audio əldə deyilik deyərək,
lakin düzeltmek üçün əlimdən çıxdı.
Beləliklə, ümid edirəm ki, olur qısa həll.
Siz online izləmək istəyirsinizsə, hi, lakin siz məni eşitmək bilməz.
>> Belə ki, birinci, biz gedən gdb vasitəsilə getmək.
Gdb, mən əvvəllər hinted kimi, bir hata vasitəsi
printf daha yaxşı.
Belə ki, əgər, gdb, siz uşaqlar ilə başlamaq üçün Sizin cihaz açmaq istəyirəm
Mən sizə e-məktubla faylı almaq əvvəllər - bu fayl da olacaq
bir az mövcud online -
və gdb run. / fayl adı.
Birincisi, əlbəttə, siz tərtib etmək gdb yalnız işləyir, çünki fayl
çalıştırılabilir fayllar.
>> Amma heç başlamaq istəyirsinizsə Gdb nə ilk şey,
Siz gdb. / Sezar axır.
Belə ki, biz istəyirik proqramın adı var indi ilə getmək niyyətindədir.
Mən Sezar etmək yazmaq üçün gedirəm olan mənə bir yürütülebilir fayl verəcək
burada yaşıl qeyd.
Və sonra mən gdb. / Cesar çalıştırmak üçün gedirəm.
>> Və siz getmək.
Siz biz bəzi mətn mənə izah görmək məni verilməsi gdb versiyası haqqında
sonra bəzi zəmanət informasiya, və biz sort görünür ÜDM tez var
bizim command line tez kimi, ancaq açıq görmək
paren, gdb, yaxın paren.
Biz bu faylı davam və debug əvvəl Mən sizə bütün göndəriləcək ki, baxaq
bəzi faydalı əmrləri belə ki, biz bir hissi var nəyə əhatə edir.
>> Bu əmrləri burada verilmişdir Mən ümumiyyətlə, onları istifadə edən sifariş.
Mən çalışan mənim proqram başlamaq Proqramın Gbd. / Adı,
bu halda, Caesar.
Və sonra ilk şey mən 99.9% bunu vaxt növü fasilə demək.
Ki, əsas bir fasilə point edir.
Əsasən, siz orada nə edirik proqram dayandırmaq üçün gedir
əsas belə ki, xətt araşdıran başlaya bilərsiniz xətti ilə deyil, bütün çalışan çox
yolu.
Siz müxtəlif məntəqələrində qıra bilər Sizin kodu, əsas ümumiyyətlə bir
başlamaq üçün yaxşı bir yerdir.
>> I run növbəti komanda run edir.
Bu proqram çalışan başlayır və Siz command line daxil etmək lazımdır, əgər
arqumentlər, siz ki, funksiyanı çalıştırın.
Dəlilləri ilə Run.
Biz bir versiyası üzərində gedir, bəri proqram uşaqlar olan C,
pset iki yazdı -
bu bir, əlbəttə, bəzi hataları var inşallah tapmaq lazımdır ki, bu -
biz bəzi komanda ilə run run olacaq line arqumentlər çünki Sezar,
Sizlərin problem başına bildiyiniz kimi spec müəyyən, bəzi
command line dəlilləri.
>> Əmrləri növbəti cüt, növbəti bir həqiqətən Növbəti adlanır.
Ki, bir xətti ilə siz xətt çəkir sizin proqramı vasitəsilə.
Belə ki, daxil edin, sonra n vuruş siz alır növbəti line, icra
Əvvəlki line.
Step götürür yalnız növbəti xətti, lakin
siz daxili funksiyaları edir.
Beləliklə, siz bir funksiyası yazılı əgər kodu və ya tədqiq etmək istəyirsinizsə
i üçün, misal üçün, siz s təşkil edə bilər və daha növbəti line gedən daha
Siz hüququ vasitəsilə olacaq ki, fayl indi, həqiqətən addım olacaq
Bu funksiya və onun kodunu görürük.
>> Siyahısı dostluq çox istifadəçi, sizə göstərir format, ətrafında 10 və ya belə xətləri
Hal-hazırda kodu harada belə ki, həqiqətən, fayl bilərsiniz
daha geri dəyişdirmək üçün olan və çox irəli müxtəlif views arasında.
Print, printf kimi Onun adı nəzərdə tutur kimi.
Ki, bir dəyişən bərabərdir nə göstərir.
>> Məlumat yerli həqiqətən faydalıdır.
Bu çap xüsusi versiyası.
Info yerli siz yerli bütün göstərir dəyişənlər, sizin üçün bütün yazdıran
Hal-hazırda mövcud olan.
Belə ki, daha olan ümumiyyətlə I, Mən ki, dörd dəyişənlərin çap
Mən bir loop üçün, üçün Ben əgər merak Məsələn, mən yalnız info yerli yazmaq,
və mənə nə mənim counter i göstərmək lazımdır Mən ki, array, eləcə də bərabərdir
bərabər iş.
>> Nəhayət, davam edir.
Fasilə Typing siz dayanacaqlar fasilə nöqtədə.
Siz xətti ilə gəzmək olar növbəti və addım line.
Növbəti üçün çalışır proqram davam point qırmaq və ya doldurulub əgər qədər
heç bir daha çox fasilə xal var.
Disable fasilə xal rədd siz əgər əsas da fasilə qərar verdi
uygunsuz, istədiyiniz başqa bir yerdə müəyyən.
Və nəhayət q, çıxmaq, gdb həyata alır.
>> Belə ki, bu proqram,. / Sezar, biz gedən indi baxmaq və biz
tapmaq üçün gdb istifadə edir bu proqram bugs.
Mən əvvəllər bu proqram qaçdı 50 Check, və mən bir qaşqabaq var.
Hər şey bu tərtib, mövcud, bu testlər bir çox keçib, lakin üçün
nədənsə, bu beşinci keçə bilmədi daxil BARFOO, bütün caps, dönüş test,
E-D-U-I-R-R, bütün caps, əsas kimi üç istifadə.
Mən olduqca yaxın var.
Mən bir məktubu ilə off almışdır.
Belə ki, burada bəzi kiçik səhv var.
Mən kod vasitəsilə baxdı etdik.
Mən bunu anlamaq bilməz.
Ümid edirəm ki, uşaqlar mənə kömək edə bilər bu səhv nə anlamaq.
>> Belə ki, biz istəyirik hata var üçün axtarış.
Nin gdb hərəkət edək.
Yenə, gdb. / Sezar run etdik belə ki, indi biz gdb istəyirik.
Və ilk nədir mən nə etməliyəm şey?
Mən yalnız gdb daxil etdik.
Kimsə mənə yaxşı vermək daxil command.
>> TƏLƏBƏ: əsas ayırın.
>> JASON Hirschhorn: əsas ayırın.
Fantastic.
Nin da ki, yazın edək
Siz uşaqlar burada qədər izləmək və ya təqib edə bilərsiniz Sizin kompüter boyunca.
Əsas qırmaq və bir görəcəksiniz break point müəyyən edilib -
Mənə bəzi qəribə yaddaş ünvan verir, və bu da mənə line sıra verir.
Mən bu faylı geri baxmaq olsaydı, Mən əsas atacaqlarını
line 21 baş verib.
Mən növbəti nə run lazımdır?
Mənim proqram çalışan?
No
Mən növbəti nə run lazımdır?
>> TƏLƏBƏ: Run.
>> JASON Hirschhorn: Run.
Mən yalnız run run, və ya etməlidir Mən bəzi digər şeylər əlavə?
>> TƏLƏBƏ: arqumenti ilə Run.
>> JASON Hirschhorn: Run komanda dəlilləri.
Mən bir çox xüsusi ayıklama alıram ildən halda, mən daxil olmalıdır
command line arqument.
Belə ki, yenə, olan, üç çalıştırmak yoxdur lazımdır Mən Check 50 əldə çıxdı.
Proqram başlayaraq.
Biz xətləri bir neçə ilə getmək.
İndi biz xətti 21 olduğunuzu görəcəksiniz.
Necə biz line 21 olduğunu bilirik?
Çünki Siz sol baxsaq mənim terminal pəncərə var
Bu xətt 21 deyir.
Və, həqiqətən, mənə verir line 21 olduğunu kodu.
Mən əvvəllər misspoke.
Main line 21 həqiqətən deyil.
Main 21 yuxarıda xətləri bir neçə edir.
Amma line 21, ki, biz qırılma edirik.
Kodu bu xətt var hələ icra edilmir.
Vacibdir.
Gördüyünüz line deyil hələ icra olunmuşdur.
Bu kodu növbəti line var Siz icra üzrəyik.
>> Uşaqlar kimi Belə ki, növbəti line, ilə yəqin ki, tanış, bu
mən ola görmek üçün yoxlanılması bir command line arqument daxil.
Və i bir, ikinci nə bunu hissəsi?
A i nədir?
>> TƏLƏBƏ: bir tam dəyişdirilməsi.
>> JASON Hirschhorn: Bağışlayın?
>> TƏLƏBƏ: Bu dəyişən oldu bir tam dəlil.
>> JASON Hirschhorn: Belə ki, bir i dəyişir ARG bir tam bir simli v1.
Və sonra nə yoxlanılması?
>> TƏLƏBƏ: ikinci varsa command line arqument kənara
proqram çalışan.
>> JASON Hirschhorn: Və nə var Bu ilin ikinci yarısından
Boolean ifadə yoxlanılması?
Burada bu hissəsi, bir i üçün?
>> TƏLƏBƏ: mənfi varsa.
>> JASON Hirschhorn: əmin nə edilməsi?
>> TƏLƏBƏ: əmin edilməsi əslində, müsbət deyil.
>> JASON Hirschhorn: Exactly.
Bu görmek üçün yoxlanılması olunur Bu mənfi mənfi, və əgər, mən
bir hiss növbəti line gücünü var Mənə böyle istifadəçi da bilər.
Belə ki, bu xətt icra son hit imkan.
Biz xətt görmürəm ki, uşaqlar bəlkə böyle görmək gözlənilir
istifadəçi və sonra qaytarılması, çünki Bu line icra etməyib.
Mən 3 girdi.
Mən, əslində, iki komanda daxil etməyib line arqumentlər və 3
sıfır daha çox.
Belə ki, xətt gördük, biz icra, lakin biz addım atmadı
əgər vəziyyəti daxilində.
>> Belə ki, indi, növbəti, mən müəyyən alıram bax int əsas i v1 Arg bərabərdir.
Belə ki, mənə bir dəyişən düyməsini yaradır.
Mən indi düyməsini çap əgər, çünki ki görmək üçün imkan verir
dəyəri dəyişən daxilində, əsas 47 bərabərdir.
Ki, əlbəttə qəribə, lakin Mən yoxdur, çünki ki
hələ ki, xətt icra.
Mən n hit əgər Belə ki, indi ki, line icra və çap düyməsini etmək, əsas, 3 bərabər olacaq
biz bərabər gözləyirik nə olan.
>> Belə ki, yenə gdb, xətti siz Siz hələ icra görürük.
Siz n və ya s və ya bir sıra hit var həqiqətən digər əmrləri
ki, xətt icra.
Print düyməsini basın.
3 Key var.
İndiyə qədər belə yaxşı.
String düz mətn.
Ki line icra edək.
Mən istifadəçi bir string alıram.
>> Mənim Check 50 görək, mən BARFOO bütün caps daxil edin, belə ki,
Mən daxil lazımdır budur.
İndi düz mətn çap edin.
Siz bir string bərabərdir görəcəksiniz.
Mənə bir digər qəribə hexadecimal verir sayı, lakin bu yoxdur
ki, mənim string BARFOO olduğunu deyirlər.
Mən əsas da olmuşdur nə görmək istəyirdi Bu baxımdan, mən necə əsas yoxlamaq bilər?
>> TƏLƏBƏ: Print düyməsini basın.
>> JASON Hirschhorn: Print əsas, dəqiq.
Və həqiqətən, qısa var.
Siz çap yazaraq və yorğun almaq, yalnız p edəbilərsiniz.
Belə ki, p əsas eyni dəqiq şey yoxdur.
Və yenə, mən 3 bərabərdir görürük.
>> Mən nə əsas, həm də tapmaq istəyirdi və BARFOO eyni zamanda bərabər
amma hər yazaraq yorğun idi biri fərdi, mən
info yerli yazın bilər.
Mənə əsas bərabərdir 3 verir.
Plain text BARFOO bərabərdir.
Bu da mənə bu iki qəribə şeylər verir üst, bu dəyişən i və
Bu dəyişən n.
>> Bu əslində mövcud mənim əsas proqram.
Biz hələ onlara rast yoxdur lakin bir önizleme kimi, həmin
mənim loop üçün mövcuddur.
Belə ki, hazırda, bəzi qəribə bərabər ədəd onlar olmamışdır, çünki
hələ başlatılmadı, lakin onlar hələ mövcuddur yaddaş, belə ki, onlar yalnız təyin etdiyiniz
bəzi zibil dəyəri.
Amma biz düz düyməsini görürsünüz orada mətn.
>> Mən bu xətt icra gedirəm, line 34, üçün loop.
Biz daxil jump olacaq n vuraraq loop üçün.
Və biz loop üçün daxili istəyirik.
Biz ilk çek.
Və yenə bu sort baxmaq lazımdır bu bir idi, çünki sizə tanış
Sezar yazılı ki, proqram, lakin yenə səhv bir növ var.
>> Mən, çünki indi, info yerli əgər loop üçün daxili, siz görəcəksiniz
biz gözləmək kimi i, sıfır bərabərdir ki,.
Yəni biz onu müəyyən və başlatılmış nə Bu loop üçün də.
n 6 bərabərdir.
Biz müəyyən, çünki da əhəmiyyət kəsb edir düz mətn strlen üçün.
Mən info yerli və ya çap etmək istəyirəm dəyişən tez-tez əmin etmək
hər şey həmişə nə Mən bərabər gözləyirik.
Bu halda, hər şey Mən bərabər gözləmək nə.
>> Belə vasitəsilə hərəkət başlamaq edək bu loop üçün.
Mən deyiləm line line 36, əgər düz mətn i bir və düz daha böyükdür
text i daha az və ya z bərabərdir.
Mən problem mənim ilk deyil bilirik məktub, ikinci hərfi ilə var.
Biz Check geri baxmaq əgər 50, B E cərimə gedir.
Mən A alaraq və kimi tərk edirəm A, D. Beləliklə onu dəyişən deyil
bir şey ilə yanlış ikinci məktubu.
Mən hərəkət etmək üçün gedirəm bir ikinci.
>> Amma nə düz yoxlamaq istəyirəm ki, əgər text Bu xüsusilə olmuşdur
halda, mən nə olmalıdır?
Düz mətn Mən bu bərabər olmalıdır nə loop üçün vasitəsilə ilk dəyirmi?
>> TƏLƏBƏ: Zero?
>> JASON Hirschhorn: I Plain text?
Belə ki, mən, əlbəttə paytaxtı B. olmalıdır sıfır bərabərdir, lakin düz mətn
bracket sıfır qapalı bracket B bərabərdir çünki strings, biz ötən həftə gördüm kimi,
array var, belə ki, biz əldə etdiyiniz ki, ilk character.
Belə ki, yenə mən düz mətn çap əgər Mən, əslində, xarakter almaq yoxdur
B. Və bu doğru, səliqəli var?
Mən, həqiqətən, düz mətn I. yoxdur Mən müəyyən dəyişənlərin biri deyil
və ya başlatılmış, lakin siz çap edə bilərsiniz şeyi bütün host həyata
Siz istəyirsinizsə.
>> Amma vasitəsilə hərəkət edək.
Düz mətn I A daha çox və əgər düz mətn I daha az və ya bərabərdir
Çünki bizdə Z, aydın həqiqətdir Mən çalıştırmak üçün gedirəm paytaxtı B.
bu bir komanda.
Biz keçən həftə riyaziyyat gördüm, belə ki, biz will çalışır ki verilən üçün almaq
sağ 50 yoxlayın görə.
>> Bu qıvrım aşırma, ilk Mən əgər mövcud idi göstərdi ki,
vəziyyəti, ikinci göstərdi Mən loop üçün mövcud edirəm ki,.
Mən Sonraki hit zaman və indi, biz görəcəksiniz biz yenə loop üçün geri istəyirik.
Biz vasitəsilə olacaq yenə loop üçün.
Həqiqətən ikinci addım edək loop və növü üçün iteration
info yerli.
>> Beləliklə, biz ikinci iteration istəyirik bizim üçün loop.
Mən biz gözləyirik ki, 1 bərabərdir.
N gözlədiyimiz olan 6 bərabərdir.
Key biz gözləyirik ki, 3 bərabərdir.
Və düz mətn, görəcəksiniz bərabərdir EARFOO indi ki, artıq BARFOO çünki
bizim əvvəlki iteration, B idi paytaxt E. dəyişib Belə ki, biz istəyirik
problemi qarşılaşa, bu belə biz olacaq harada
hata daxil dalış.
Amma heç hər hansı bir sualınız var biz bu günə qədər etdiyiniz nə haqqında?
Fantastic.
>> Beləliklə, biz bu icra üzrəyik vəziyyəti, mən qapalı düz mətn bracket
bracket A daha çox və düz mətn I daha az və ya Z. bərabər Amma əvvəl
Bu, çünki, ki, daxil olduğu Mən qeyd etmək istəyirəm, mənim səhv olduğunu
I. düz mətn out Belə ki, nin çap həyata qoymaq bildirin.
Bu xarakteri bərabər edir, belə ki, bu günə qədər, bütün yaxşı və yaxşı görünür.
>> Mən, mənim məntiq başına bu xətti gözləmək Bu line doğru olmalıdır.
Bu kapital məktubu var.
Mən n hit əgər Lakin, biz dərk etmirlər ki, bu line, əslində, icra etməyib.
Mən başqa əgər aşağı atladı.
Nə baş verdi?
>> TƏLƏBƏ: Siz çünki sizin vəziyyəti düz mətn böyükdür
A, bərabər və ya daha çox.
>> JASON Hirschhorn: Beləliklə, mən düz mətn idi Mən A, böyük olmayan daha böyük
və ya bərabər.
Belə aydın, paytaxt A etmədi vəziyyəti bu tetiklemek və biz
onu addım və biz etmədi zəruri shift deyil.
Belə ki, həqiqətən, var.
Mən səhv fiqurlu.
Mən mənbə faylı geri getmək bilər, dəyişdirmək, və onu yeniləmək və
yenə 50 yoxlayın axır.
>> Amma biz yalnız pedaqogika nin, görürsünüz xatirinə, mən davam əgər.
Başqa varsa ya icra etmir, lakin nə əvəzinə bərabərdir əmr edir
ki, dəyişmir.
Belə ki, bütün dəyişib və əgər mən burada düz mətn çap, biz gedən görəcəksiniz
vasitəsilə loop üçün, əslində, olmadı bütün ki, ikinci xarakter dəyişir.
Bu hələ bir kapital A. var
>> Belə ki, yenə biz səhv debugged.
Biz var idi ki, həyata keçirilir itkin bir məntiq.
Və biz əvvəl vaxtından əvvəl debugged həqiqətən ki xətt yerinə,
lakin siz qeyd olardı idi biz yalnız Next hit və əgər ki, başqa tullanmaq,
deməkdir ki, əgər vəziyyət doğru deyil.
Biz, əslində, əldə etməyib nəticə biz gözlənilir.
Beləliklə biz istenir bilərdi idi Biz baxmaq, belə ki, astute deyil
ki, vəziyyəti və əslində, əgər yoxlamaq əgər bizim vəziyyəti qiymətləndirmək lazımdır
cari kontekstində doğru.
>> Bu proqram hata üçün bütün var.
Heç bir sualınız varmı?
Mən gdb çıxmaq hansı əmri hit bilər?
Q. Və sonra mən istenir, hər halda çıxmaq?
Bəli və ya No.
I yes hit olacaq və mən gdb çıxmaq lazımdır.
>> Belə ki, gdb tez primer idi.
Əslində, bir real ssenari, Mən ofis saat bu idi.
Bu dəqiq proqram da GDBed bir tələbə ilə ofis saat.
Və biz gördük əmrləri geri getmək əgər əvvəl, biz ilk, break əsas istifadə
şey etdik.
Biz command line dəlilləri ilə run istifadə ikinci şey etdik.
Biz hərəkət yanında bir çox istifadə xətləri vasitəsilə us.
Və yenə, qisa versiya növbəti n edir.
Ki, parantez var Slayd boz.
>> Biz addım istifadə etməyib, lakin biz deyil mütləq bu halda lazımdır.
Amma biz sonra bir az onu istifadə edə bilər Bu gün biz ayıklama əgər, üçün
Məsələn, ikili axtarış zaman ikili axtarış ayrı bir adlanır
funksiyası lakin var ilə bəzi səhv.
Biz daxil addım istəyirik olacaq ikili axtarış zəng və
həqiqətən debug.
Biz idi, çünki biz ya istifadə etməyib siyahısı bizim kodu yaxşı mənada, amma əgər mən
hansı kodu I hissi almaq istəyirəm ətrafında idi, mən yalnız siyahısını istifadə edə bilər.
>> Biz istifadə info yerli istifadə çap.
Biz bu istifadə etmək lazımdır etməyib Davam halda, biz də istifadə etmək lazım idi
aradan, lakin biz istifadə çıxın.
Yenə bu 10 əmrləri, onları təcrübə.
Bu 10 əmrləri anlamaq, Əgər hər hansı bir ayıklama üçün müəyyən edilməlidir
gdb ilə vermək.
>> Belə ki, biz, təkrar getmək haqqında istəyirik hissəsinin mahiyyəti bu gün üzərində gedən
Bu çeşidlənməsi və axtarış alqoritmləri.
Biz bunu əvvəl, yenə, Hər hansı bir sualınız, gdb üçün yapılan yorumlar narahatlıq?
Belə ki, hamı istifadə edir Gdb çox printf?
Əbədi xatirinə Belə ki, hamı, hər kəs öz baş hüququnu noddede olunur
İndi, mən ofis saat siz görəcəksiniz və bütün TFS Sizi və görəcəksiniz
necə istifadə etmək mənə göstər, demək lazımdır Gdb və siz edə bilərsiniz
sağ, onlara göstərmək üçün?
Cür?
Bəlkə inşallah.
Cool.
>> Beləliklə, biz hərəkət olacaq çeşidlənməsi və axtarış.
Mən artıq sıralaması siyahısını görəcəksiniz Bizə, lakin niyyətində deyil üçün
həmişə belə olacaq.
Belə ki, problem üçün set dəqiqləşdirilməsi problem üç set, siz şort var
siz həqiqətən izləmək, və edə bilər ki, o şort izləmək üçün xahiş edir.
Həmçinin mühazirə ötən həftə, biz artıq getdi bu alqoritmlərin bir çox, mən deyiləm
davam sinif vaxt sərf etmək niyyətində deyil daha bu alqoritmlər və ya rəsm üzərində
necə bu üçün şəkillər alqoritmlər çalışır.
Yenə, yenidən watch bilər ki, məlumat mühazirə, və ya məlumat
şort haqqında outstandingly əsir Bu axtarışlar, bütün üçün
cs50.net mövcud olan.
>> Belə ki, əvəzinə, biz olacaq nə bu proqramları yazmaq deyil.
Biz necə bir ruhi model, hissi var onlar iş, və biz olacaq
etmək real üçün onları kodu.
Biz əqli model çevirmək olacaq, ki, şəkil, Siz, daxil
faktiki kodu.
Və bir az qarışıq və ya əgər psixi model dumanlı, mən tamamilə
başa düşürük.
>> Biz, həqiqətən, fikrində deyilik kodu straightaway jump.
Bu slayd bu tez soruşur isə belə Siz ikili axtarış kod və
həqiqətən, təkrar versiyası ikili axtarış, ilk şey mən
həqiqətən, sizin nə etmək istəyirsinizsə pseudocode yazmaq.
Belə ki, bu ruhi model var necə ikili axtarış işləri.
Varsa kağız bir hesabatı çıxarmaq bir hazır, və ya açmaq bir
mətn redaktoru və mən istərdim yazmaq everybody.
Yazmaq üçün dörd dəqiqə edin Binar axtarış üçün pseudocode.
>> Yenə ki, əqli model haqqında düşünürəm.
Əgər suallarınız varsa, mən ətrafında gəlmək lazımdır və biz şəkil cəlb edə bilər.
Lakin ilk, biz proqramlaşdırma başlamaq əvvəl, Mən yazmaq istədiyiniz
Binar axtarış üçün pseudocode belə ki, biz dalış, biz bəzi istiqamət var
biz rəhbərlik etməlidir harada.
>> TƏLƏBƏ: biz array güman edə biz almaq dəyərlər artıq çeşidlənir?
>> JASON Hirschhorn: Belə ikili axtarış üçün iş - əla sual - siz
bir sorted almaq lazımdır dəyərlər array.
Belə ki, bu iş olacaq daşımır.
Biz bu slayd getmək lazımdır.
Siz bənövşəyi funksiyası görəcəksiniz bəyannamə bool binary_search int edir
dəyəri, int dəyərlər, int n.
Siz var, bu tanış baxmaq lazımdır artıq yaxınlaşdı və ya kazanılmış sizin
Bu problem dəsti ilə çirkli əlləri.
>> Amma ki, funksiyası bəyannamə var.
Yenə narahat lazım deyil bu anda çox.
Mən, həqiqətən, siz istədiyiniz almaq deyil pseudocode ikili dörd dəqiqə
axtarış, sonra biz getmək lazımdır bir qrup kimi artıq.
Mən ətrafında gələcək.
Əgər suallarınız varsa, hiss əl qaldırmaq pulsuz.
>> Niyə daha iki dəqiqə etmirlər Bu pseudocode başa çatdırmaq üçün?
Mən bu ki, gülünc görünə bilər Biz çox vaxt sərf etdiyiniz
hətta həqiqətən deyil ki, bir şey C, amma xüsusilə bu daha çox
çətin alqoritmlər və problem anlamaq lazımdır ki, dəstləri,
pseudocode narahat deyil başlayaraq sintaksis haqqında, yalnız narahat
məntiq, olduqca faydalıdır.
Və yol, iki həll deyilik bir dəfə olduqca çətin problemləri.
Siz yalnız məntiq diqqət və edirik sonra sintaksis hərəkət.
>> OK.
Vasitəsilə davam başlamaq edək Bu pseudocode.
Mən ikili, burada yazılı axtarış pseudocode.
Biz bu yazmaq lazımdır birlikdə board.
Və ya mən bunu yazmaq lazımdır və verəcəyik Mənə lazım olan ister.
Belə ki, heç mənə ilk verə bilər Bu pseudocode line siz
Binar axtarış üçün yazdığı?
Bəli, Annie?
>> TƏLƏBƏ: isə uzunluğu siyahısı daha böyükdür sıfır.
>> JASON Hirschhorn: baxmayaraq uzunluğu sıfır daha çox edin.
Və yenə, biz bəzi C görünüşlü bax burada sintaktik şeylər.
Amma bu çox İngilis edir.
Heç onlar qoymaq bir xətt var idi onların yalançı kodu bu əvvəl?
>> TƏLƏBƏ: bir sıra alın nömrələri sıralanır.
>> JASON Hirschhorn: Siz yazırdı "bir almaq sorted nömrələri array. "Bu Per
funksiyası bəyannamə, biz keçən olacaq sıralaması nömrələri array.
>> TƏLƏBƏ: [işitilemez].
>> JASON Hirschhorn: Belə ki, ki, olacaq.
Amma bəli, biz ki, olmasaydı biz bizim array düzmək üçün lazımdır
nömrələri, çünki ikili axtarış yalnız sıralanır Diziler üzərində işləyir.
Siyahısı uzunluğu sıfır bərabərdir Belə isə, mən bir qıvrım aşırma qoymaq niyyətindədir
bir az daha çox kimi baxmaq üçün C. Amma isə, bir daxil xəritəyə görünür
loop, bu müddət içərisində loop nə biz lazımdır
Binar axtarış üçün nə?
>> Mənə bir etməyən başqası hələ cavab lakin bu yazdı?
>> TƏLƏBƏ: siyahısının orta gedin.
>> JASON Hirschhorn: Tom.
Siyahısı ortasında gedin.
Və təqib sual, nə Biz istəyirik dəfə edərik
siyahısı orta?
>> TƏLƏBƏ ki olub bir çek etməyin aradığınız sayı.
>> JASON Hirschhorn: Əla.
Siyahıda orta getmək və yoxlamaq bizim dəyər varsa -
fantastik.
Heç başqa bir şey var mı ki, bu çox fərqli idi?
Dəqiq doğru.
>> Biz ikili axtarış nə ilk şey siyahıda ortasında getmək və
Bizim dəyəri var görmek üçün yoxlamaq.
Bizim dəyər əgər mən güman , biz nə var etməliyəm?
>> STUDENT: Biz [işitilemez] sıfır qayıtmaq.
>> JASON Hirschhorn: Bəli, əgər bizim dəyəri var, biz bunu gördük.
Belə ki, biz, lakin bəzi yol deyə bilərsiniz bu funksiyası müəyyən edilir, biz istifadəçi demək
biz onu aşkar.
Orada deyil, baxmayaraq ki, var Bu çətin olur yerləşir.
Belə ki, yoxdur, əgər kimsə başqa kim ikili axtarış və ya üzərində işləyir
indi biz nə bir fikir etməliyəm etdi?
>> TƏLƏBƏ: Sual.
>> JASON Hirschhorn: Yes?
>> TƏLƏBƏ: array artıq çeşidlənir mı?
>> JASON Hirschhorn: Bəli, biz fərz edirik Bu array artıq çeşidlənir.
>> TƏLƏBƏ: Belə ki, sonra yoxlamaq varsa gördüğünüz dəyəri böyükdür
istədiyiniz dəyəri, hərəkət edə bilər digər yarısı orta.
>> JASON Hirschhorn: Belə ki, əgər orta siyahısı, biz istəyirik nə daha böyükdür
nə üçün sonra biz edirsiniz axtarır?
Biz harada hərəkət?
>> TƏLƏBƏ: Siz hərəkət etmək istəyirəm ilə siyahının yarım
daha aşağı nömrələri.
>> JASON Hirschhorn: Biz will sol ki, zəng.
Orta böyük Belə ki, biz axtarış edə bilərsiniz siyahısı sol yarısı.
Və sonra axtarış, nə Mən Axtarış deməkdir?
>> TƏLƏBƏ: [işitilemez].
>> JASON Hirschhorn: Biz orta gedin.
Biz, həqiqətən, bu şey deyirəm.
Biz isə loop vasitəsilə geri getmək.
Mən sizə son bir verəcəyik -
əgər başqa, orta nə azdır biz, biz burada nə edirsiniz?
>> TƏLƏBƏ: sağ gedin.
>> JASON Hirschhorn: hüququna axtar.
Bu yaxşı görünür, lakin heç yoxdur əskik və ya ola bilər ki, bir şey
Siz qoymaq ki, başqa bir şey Sizin yalançı kodu?
Belə ki, bu biz bu günə qədər nə edir.
Siyahısı uzunluğu çox isə sıfır daha, biz getmək olacaq
Bu siyahıda ortasında və bizim dəyər var yoxlayın.
>> Orta böyük olduqda, biz olacaq orta əgər axtarış başqa, sol
az, biz doğru axtarmaq üçün olacaq.
Beləliklə, biz bütün bəzi tanış etdik biz kompüter istifadə şərtləri
və alətlər var.
Amma artıq biz görəcəksiniz İngilis danışan, lakin biz aşkar bir
üçün xəritəsi görünürdü ki, hər şeyi çox biz kodlaşdırma alət dəsti var tools.
Belə ki, hüququ yarasa off, biz deyilik həqiqətən, hələ kod gedir.
>> Biz ingilis burada nə görürsünüz ki, xəritələr şeylər üçün biz C yazmaq olar?
>> TƏLƏBƏ: baxmayaraq.
>> JASON Hirschhorn: baxmayaraq.
Belə ki, bu isə burada nə üçün xəritələr?
>> TƏLƏBƏ: A isə loop.
>> JASON Hirschhorn: A isə loop?
Və ya yəqin ki, daha çox, ümumiyyətlə, bir loop.
Biz üzərində bir şey etmək istəyirəm.
Beləliklə, biz bir loop kod olacaq.
Biz etdik, çünki biz artıq bilirik bu bir dəfə neçə və biz
, orada nümunələr var necə həqiqətən yazmaq üçün
bir loop üçün bu index.
Belə ki, olduqca asan olmalıdır.
Biz almaq lazımdır olduqca sürətli başladı.
>> Nə biz burada görürsünüz?
Nə digər strukturları syntaxes, hər şeyi biz C ilə tanış edirik ki, biz bunu
artıq əsaslı hissi var biz istifadə sözlər off?
Bəli, Anna?
[Işitilemez]
yalnız söylüyorum.
Anna, davam.
>> TƏLƏBƏ: Əgər başqa.
>> JASON Hirschhorn: Əgər başqa - burada.
Belə ki, nə kimi görünür?
>> TƏLƏBƏ: An başqa şərhdə əgər.
>> JASON Hirschhorn: Bəli, şərait, sağ?
Beləliklə, biz yəqin ki, lazımdır bəzi şərtlər yazın.
Və yenə, baxmayaraq bəlkə çaşdırıcı ilk, biz ümumiyyətlə indi hissi var
şərait və yazmaq üçün necə şərait üçün sintaksis.
Biz deyil, biz yalnız baxmaq şərait, cut və paste üçün syntax
ki, biz bilirik, çünki Burada bir şərt lazımdır.
Biz üzərinə ki, xəritə görmək hər hansı digər şeylər biz C nə etmək lazımdır bilər şeylər?
Bəli, Aleha?
>> TƏLƏBƏ: Bu, aydın ola bilər yalnız yoxlanılması əgər
dəyər bir şey bərabərdir.
>> JASON Hirschhorn: Belə ki, necə biz yoxlamaq yoxdur və - belə siyahı ortasında getmək
bizim dəyər varsa və yoxlamaq?
Biz C necə etməliyəm?
Ki üçün sintaksis nədir?
>> TƏLƏBƏ: bərabərdir, Bərabər.
>> JASON Hirschhorn: bərabərdir Bərabər.
Belə ki, bu check yəqin ki, davam edir bir bərabər olmaq, bərabərdir.
Belə ki, biz ki, haradasa lazımdır bilirsiniz.
Və həqiqətən, yalnız yazılı, biz o başqa şeylər görürük.
Biz bəzi etmək olacaq müqayisə operatorları var -
fantastik.
Belə ki, həqiqətən kimi, və görünür böyük, biz yazılı bir
hələ C kodu söz.
Amma biz aşağı ruhi model var mühazirə və o şort vasitəsilə.
>> Biz bir qrup kimi yalançı kodu yazdı.
Və artıq biz 80% əgər yoxdur Biz nə etmək lazımdır nə 90%.
İndi biz yalnız kod lazımdır o, yenə, bir olan
həll etmək üçün qeyri-mənasız problem.
Lakin ən azı biz məntiq vurulmuş edirik.
, Ofis saat getmək zaman indi ən azı Mən lazım nə deyə bilərsiniz
etmək, ancaq xatırlatmaq bilər sintaksis mənə?
Və ya ofis saat sizə, dolu olsa da daha doğrusu, sintaksis üçün Google bilər
məntiq vurulmuş olan daha.
>> Və yenə, daha çox həll etməyə çalışır məntiq və sintaksis problemləri bütün
bir dəfə, tez-tez çox yaxşıdır o iki ağır problemləri kəsmək
daha iki idarə olanlar və bunu C. yalançı kodu ilk və sonra kodu
Beləliklə də mən nə görmək bildirin yalançı kodu vaxtından.
>> Siyahısı uzunluğu çox isə sıfır daha, orta baxmaq
siyahısı.
Sayı başqa, doğru geri aşkar etdikdə sayı, ali search sol əgər.
Else əgər nömrəsi aşağı, axtarış sağ, saxta qayıtmaq.
Belə ki, demək olar ki, eyni görünür əgər biz yazırdı nə təxminən eyni.
Əslində, Tom, ilk nə söylədi, siyahısı və əgər orta qırılma
iki hesabatlarına daxil tapılmadı sayı Mən nə əslində.
>> Mən orada onlara birləşmiş.
Mən qulaq olmalıdır Siz ilk dəfə.
Belə ki, biz yalançı kodu.
İndi istəyirsinizsə, sorry, getmək Bizim ilkin problem geri.
Üzrə kodu binary.c edək.
Belə ki, bir iterative versiyası həyata keçirilməsi aşağıdakı istifadə binar axtarış
funksiyası bəyannamə.
>> Və surəti ehtiyac yoxdur aşağı yalnız hələ.
Mən, həqiqətən, açmaq üçün gedirəm up burada binary.c.
Belə ki, funksiyası bəyannamə var ekran ortasında.
Və mən yalançı kodunu aldı görəcəksiniz Mənim tərəfdən, lakin demək olar ki, eyni
nə biz yazdı və sizin üçün qoydu.
Belə ki, indi beş dəqiqə götürək Bu funksiya kod.
>> Və yenə, Hər hansı bir sualınız varsa, əl qaldırmaq, I will, Mənə bildirin
ətrafında gəlir.
>> TƏLƏBƏ: [işitilemez].
>> JASON Hirschhorn: Mən ikili etdi at search definition
line 12, Yuxarı.
Bu mənim slayd üçün var nə var.
Və sonra bütün bu yalançı kodu Mən surəti və slayd yapışdırılır,
yalançı kodu slide.
Mən hələ [işitilemez] eşitmə deyiləm.
>> Siz başa belə əgər həyata keçirilməsi, mən onu yoxlamaq istəyirəm.
Mən sizə helpers.h fayl e-poçt bu sinif.
Və həmçinin online olacaq seyr insanlar üçün download üçün
bu bölmədə dəfə təxirə saldı.
Mən yalnız ümumi paylanması istifadə pset3 dən kodu.
Mən find.C, mənim helpers.h fayl istifadə etdi daha helpers.h faylı
ki, bölüşdürülməsi kodu verilmiş oldu.
>> Mən bir başqa dəyişiklik etmək idi deyil, yalnız sadəcə zəng daha find.C
axtarış, binary_search zəng.
Belə ki, sizin kodu test etmək istəyirsinizsə, ki, bunu necə olduğunu bilirik.
Əslində, biz bu kodu çalışan olacaq zaman indi, mən yalnız bir surəti
Mənim pset3 directory, yenidən həyata değiştirilecek sonra köməkçiləri faylları və ki
binary_search zəng etmək find.C dəyişiklik daha çox sadəcə axtarış.
>> JASON Hirschhorn: Bəli.
Bir sual var?
>> TƏLƏBƏ: Nevermind.
>> JASON Hirschhorn: Heç bir narahatlıq.
Yaxşı, in başlamaq bildirin.
Biz bir qrup kimi bu kod olacaq.
Bir başqa qeyd.
Yenə, bu, asanlıqla değiştirilecek edilə bilər Problem Set üç üçün.
Mən helpers.h fayl var, olduqca Bu helpers.h çox biz sunulur,
ikili axtarış, bubble bəyan sort, və seçim sort.
Və find.c siz line görəcəksiniz, nə line 68, biz ikili zəng ki,
axtarış daha çox axtarış.
Belə ki, yenə mövcud olan kodu online və ya var ki, kodu
indi yaradılması asanlıqla değiştirilecek bilər üçün p onu yoxlamaq üçün 3 seçin.
>> Lakin ilk, ikili axtarış kod bildirin.
Bizim funksiyası bəyannamə, biz bool qayıtmaq.
Biz dəyər adlı tam almaq.
Biz adlı integers bir sıra almaq dəyərlər, və biz n almaq
serialın ölçüsü.
Burada line 10, mən var kəskin stdbool.h daxildir.
Ki, var niyə heç bilir?
Belə kodu line nə edir?
>> TƏLƏBƏ: Bu imkan verir bir bool qaytarılması növü istifadə edin.
>> JASON Hirschhorn: Exactly.
>> TƏLƏBƏ: Yoxsa imkan verir ki, bir kitabxana var bir bool qaytarılması növü istifadə etmək.
>> JASON Hirschhorn: Belə kəskin daxildir stdbool.h line mənə bəzi verir
şeylər üçün təriflər və bəyanatlar Mən istifadə üçün icazə edirəm ki,
Bu kitabxana.
Belə ki, həmin arasında var ki, deyib bu tip bool adlanır və bu, ola bilər
doğru və ya yalan.
Belə ki, xətt nə var.
Hesab edirəm ki, xətt olmasaydı, mən ki bu yazı üçün çətinliyə soxacaq
burada, bool, orada söz.
Məhz hüququ.
Mən bu kodu ki, lazımdır.
OK.
Belə ki, bu, daha bir iterativ version, bir recursive biri.
Belə ki, bizə başlamaq bildirin.
>> Bu ilk başlamaq edək yalançı kodu xətt.
Və ümid edirəm ki, biz - və ya inşallah.
Biz oda ətrafında getmək olacaq.
Biz xətti ilə line getmək lazımdır, və mən kömək edəcək biz lazımdır ki, xətt anlamaq
ilk yazmaq üçün.
Belə ki, isə siyahı uzunluğu daha böyükdür sıfır.
Nin qarşısında başlamaq edək.
Nə line Mən yazmaq lazımdır burada kodu?
>> TƏLƏBƏ: baxmayaraq mötərizə n 0 daha çox.
>> JASON Hirschhorn: baxmayaraq N 0 daha böyükdür.
Belə ki, n, bir siyahısı ölçüsü və biz əgər yoxlanılması edirik -
>> [Interposing SƏSLƏRİ]
>> JASON Hirschhorn: - üzr?
>> TƏLƏBƏ: necə ki, bilmirəm n siyahısı ölçüsü?
>> JASON Hirschhorn: Sorry.
Pset dəqiqləşdirilməsi Per, axtarış və sort, siz yazmaq lazımdır funksiyaları
n siyahısı ölçüsü.
Burada izah etmək unuttum.
Amma bəli. n ölçüsü bu halda siyahısı.
Belə isə n 0 daha çox.
OK.
Ki, bir az problemli ola bilər hər şey getmək əgər.
Biz bilirik davam edəcək, çünki Bu boyunca siyahısı ölçüsü
funksiyası, lakin biz başlamaq demək 5 integers bir sıra ilə.
Və biz vasitəsilə getmək və biz etdik indi onu daralmış
2 integers bir sıra.
Ki, 2 integers edir?
Ölçüsü biz istəyirik ki, indi 2 baxmaq, lakin 2 edir?
Ki, ki, sual mənada edirmi?
>> OK.
Mən bir daha xahiş edəcəyik.
Beləliklə, biz 5 Bu array ilə başlamaq integers, və n sağ, 5 bərabərdir?
Biz burada vasitəsilə run lazımdır.
biz yəqin ki, ölçüsünü dəyişdirmək lazımdır, sağ, hər şeyi getmək kimi.
Hansı ki, biz istəyirik nə edir.
Biz axtarmaq istəmirəm tam şey yenidən.
Beləliklə, biz 2 dəyişdirmək demək.
Biz tək ki, yarısı siyahısını almaq.
Belə ki, yalnız 2 seçin.
Belə ki, indi n 2 bərabərdir.
Mən kasıb üçün üzr istəyirik quru silmək markerlər.
Sağ?
Və biz siyahısına vasitəsilə axtarış etdiyiniz yenidən ölçüsü 2 siyahısını.
Bəli, bizim array hələ ölçüsü 5 edir.
Biz yalnız istəyirəm demək bu 2 ləkələr axtarış.
Belə ki, həmin 2 ləkələr var?
>> Ki, hissi edirmi?
Onlar sol 2 ləkələr var?
Onlar sağ 2 ləkələr var?
Onlar orta 2 ləkələr var?
Biz problem aşağı sınıq, lakin biz həqiqətən bilmirəm hissəsi
biz hələ aradığınız problem, yalnız bu 2 dəyişənlərin olan.
Belə ki, biz, daha sonra bir az lazımdır n 0 daha çox isə.
Biz bilmək lazımdır ki, n bizim faktiki array edir.
>> Belə ki, heç bir var Bu xətt dəyişdirmək?
Bu xəttin ən çox mükəmməl doğru.
Başqa əlavə varmı?
Biz n üçün bir şey dəyişdirmək olar bir az daha yaxşı bu xətt?
Mm-hm?
>> TƏLƏBƏ: Bir dəyişən başlamaq bilər sonra istifadə etmək lazımdır ki, n uzunluğu kimi
sonra funksiyası?
>> JASON Hirschhorn: Belə başlamaq n dəyişən uzunluğu,
və biz sonra istifadə?
Amma sonra biz yalnız uzunluğu və biz yeniləmə hələ bu problem daxil olduğu biz
Bizim problem uzunluğu azaltmaq, lakin biz, həqiqətən, Bildiyiniz heç vaxt
ki, uzunluğu üzərində xəritələr.
>> TƏLƏBƏ: baş verəcək deyil Siz deyərək edirik sonra zaman, sol axtarış
sağ axtarış?
Siz müxtəlif getmək olacaq sizin sahəsi -
>> JASON Hirschhorn: Biz getmək olacaq bir sahədə, lakin necə bilmirəm
getmək üçün var?
Biz yalnız array və bu varsa n, biz bilirik harada
array getmək.
Geri, bəli?
>> TƏLƏBƏ: var mı, kimi, aşağı bound və yuxarı bound dəyişən və ya
kimi bir şey?
>> JASON Hirschhorn: OK.
Belə ki, bu bir fikirdir.
Əksinə yalnız track saxlanılması çox ölçüsü, biz aşağı takip və
yuxarı bound dəyişən.
Belə ki, necə biz ölçüsünü hesablamaq yoxdur aşağı bound və bound yuxarı?
>> [Interposing SƏSLƏRİ]
>> JASON Hirschhorn: Subtraction.
Həmçinin aşağı track saxlanılması bağlı və yuxarı bizə bildirin bağlı,
biz bu iki axtarış?
Biz burada bu iki axtarış edirsiniz?
Biz orta iki axtarış edirsiniz?
Yəqin ki, orta iki, çünki Bu, əslində, ikili axtarış edir.
Amma indi biz ölçüsü əldə edə bilərsiniz, həm də serialın məhdudiyyətlər.
Əslində, biz nəhəng varsa telefon kitab, biz yarım ildə rip.
Ki, kiçik harada biz artıq bilirik telefon kitab.
Amma biz, həqiqətən, Ses deyilik yarısında telefon kitab.
Biz hələ bilmək lazım Bizim problem yeni həddi deyil.
Heç bir sualınız varmı ki, haqqında?
Bəli?
>> TƏLƏBƏ: bir yaradılması ilə işləmək istəyirsiniz dəyişən, i, sonra yalnız keçmək olduğunu
onun üçün i nisbi mövqeyi cari vəziyyəti və uzunluğu, n?
>> JASON Hirschhorn: And i nədir?
>> TƏLƏBƏ: i növ kimi olan kimi -
Kimi i olmaq üçün başlamaq olardı serialın orta mövqeyi.
Və sonra, əgər mövqe dəyəri i ilə aşkar serialın orta
sizə lazım dəyərindən az olacaq, i indi serialın uzunluğu olur, üstəgəl
i dəyəri 2 bölünür.
Kimi, bax, siz i shift -
>> JASON Hirschhorn: Right.
>> STUDENT: - Bu qədər -
>> JASON Hirschhorn: Mən demək olar ki, am işləyəcək müsbət.
Amma point olmaq, iki lazımdır Burada məlumat ədəd.
Siz əvvəlinə və sonuna ilə bunu edə bilərsiniz və ya sonra ölçüsü ilə bunu edə bilərsiniz
bəzi marker.
Amma iki ədəd lazımdır Burada məlumat.
Siz yalnız bir ilə əldə edə bilməz.
Ki, hissi verir mu?
>> Belə ki, biz vasitəsilə getmək üçün gedir və edirik biz nə olacaq [işitilemez]
və bəzi markerlər yaratmaq.
Belə ki, sizin kodu nə etmiş yazmaq?
>> TƏLƏBƏ: Mən yalnız bildirib int bound bir 0 bərabərdir.
>> JASON Hirschhorn: deyirik ki, int, başlayan.
>> TƏLƏBƏ: OK.
>> JASON Hirschhorn: Bu edir mənim üçün daha məntiqli.
Və?
>> TƏLƏBƏ: I bitən int, hərhalda bildirib.
>> JASON Hirschhorn: bitən int.
>> TƏLƏBƏ: I, tahmin, n minus 1 və ya kimi bir şey.
Kimi, son element.
>> JASON Hirschhorn: Belə ki, yazdı, int bərabər 0, nöqtəli vergül, və int başlayan
sona n minus 1, nöqtəli vergül bərabərdir.
Belə ki, mahiyyətcə, biz nə edirik burada ilk mövqe 0.
Biz seriallarda da bildiyiniz kimi, onlar getmək yoxdur n up, onlar 1 n minus qədər getmək.
Belə ki, bizim serialın bəzi həddi var.
Və bu ilkin həddi olmaq üçün nə Bizim problem ilkin həddi.
OK.
Belə ki, yaxşı səslənir.
Sonra geri bu xətti getmək əgər isə siyahısı uzunluğu, 0-dən çox
nə, əvəzinə n, olmalıdır biz burada qoymaq?
>> TƏLƏBƏ: minus başlanğıcı bitən yazın.
>> JASON Hirschhorn: minus bitən baxmayaraq başlayan 0 daha çox?
OK.
Və biz etmək istəyirdi, bilər ki, bir az gözəl, nə
başqa biz nə edə bilər?
Biz təmiz istəyirdi up bir az bu kodu?
Necə 0 xilas edə bilər?
Bu yalnız bir stil məsələdir.
Bu indi doğru deyil.
>> TƏLƏBƏ: Ending deyil bərabər başlanğıcı?
>> JASON Hirschhorn: Biz nə edə bilər?
>> [Interposing SƏSLƏRİ]
>> TƏLƏBƏ: Ending böyükdür?
>> JASON Hirschhorn: Bəli.
Bitən isə biz yalnız bunu edə bilərsiniz əvvəlində daha böyükdür.
Sağ.
Biz digər tərəfdən başlayan əlavə ki, və biz 0 xilas.
Belə ki, bu, yalnız bir görünür az təmiz.
OK.
Siyahısı uzunluğu 0 isə Belə ki, biz yazdı ki, sona isə böyükdür
başlayan çox.
Biz lazımi qoymaq olacaq qıvrım aşırma, sonra ilk şey
Biz nə istəyirik baxmaq edir bir az siyahısına onlara.
Siz?
Mənə verə bilər -
>> TƏLƏBƏ: Əgər mötərizə dəyəri kvadrat mötərizə -
>> JASON Hirschhorn: parantez varsa dəyəri kvadrat mötərizə.
>> TƏLƏBƏ: 2 bölünür həbsxanaya.
>> JASON Hirschhorn: Ending?
>> TƏLƏBƏ: mən sizin ilə bir problem görmək -
>> JASON Hirschhorn: OK.
Yaxşı, orta baxmaq.
Necə ki, biz orta nə bilirik?
Bəli.
Mənə kod silmək imkan verir.
Necə ki, biz orta nə bilirik?
Bir şey, siz əvvəlində zaman və sonu necə tapırsınız
orta?
>> TƏLƏBƏ: Siz orta.
>> TƏLƏBƏ: Siz onlara əlavə birlikdə və sonra -
>> JASON Hirschhorn: onları əlavə et birlikdə və sonra?
>> TƏLƏBƏ: Və orta.
2 ilə bölmək.
>> JASON Hirschhorn: onları əlavə et birlikdə və 2 bölün.
Belə ki, int orta bərabərdir?
Tom, siz mənə verə bilər?
>> TƏLƏBƏ: başlayaraq plus bitən -
>> JASON Hirschhorn: Beginning plus bitən.
>> TƏLƏBƏ: Bütün, bracket, 2 bölünür.
>> JASON Hirschhorn: Bütün, parantez, 2 bölünür.
Belə ki, mənə orta verir bir şey, doğru?
>> TƏLƏBƏ: Siz həmçinin onu ətrafında lazımdır.
>> JASON Hirschhorn: Nə demək, mən bu qədər dəyirmi etmək lazımdır?
>> [Interposing SƏSLƏRİ]
>> TƏLƏBƏ: Çünki Bu tək varsa sayı, sonra bu kimi -
>> JASON Hirschhorn: Yaxşı, OK.
Mən onu ətrafında bilər.
Bir tək sayda, 5 var Lakin, mən üz ortalarından 1 alaraq.
Və ya daha sıra əgər, daha doğrusu, ki, bir yaxşı işi var.
4 varsa, biz yalnız 4 var, edə bilər ilk "orta", quote, dırnağı bağlamaq və ya
ikinci "orta" bir.
Ya bir ikili axtarış üçün iş ki, mən həqiqətən ətrafında ehtiyac yoxdur.
Amma bir digər şey var Bu xətt baxmaq lazımdır.
Biz hələ onu həyata ola bilər lakin biz geri gəlmək lazımdır.
Bu xətt həqiqətən hələ də başqa bir şey lazımdır.
>> Amma bu günə qədər, biz yazdıq kodu dörd xətləri.
Biz başlanğıcı var və markerlər bitən.
Biz xəritələr olan isə loop var birbaşa bizim pseudocode.
Biz xəritələr ki, ortada baxırıq birbaşa bizim pseudocode üzərində.
Mən bu ortasında gedir deyərdim siyahısı, kodu bu xətt.
Və sonra, bir dəfə biz ortasında getmək siyahısı, biz nə etmək lazımdır növbəti şey
Bizim dəyəri var olub olmadığını kontrol edir Bu pseudocode biz əvvəllər yazdı.
>> Belə ki, necə biz yoxlamaq əgər bizim dəyər siyahıda ortasında edir?
Siz.
Niyə bu yoxdur?
>> TƏLƏBƏ: bizim dəyər üzrə Əgər orta bərabərdir
biz müəyyən nə -
Mən bərabər bərabər demək -
>> JASON Hirschhorn: Bu -
OK.
>> TƏLƏBƏ: Mən əmin deyiləm nə dəyişən biz aradığınız
olsa, çünki -
>> [Interposing SƏSLƏRİ]
>> TƏLƏBƏ: [işitilemez].
>> JASON Hirschhorn: Exactly.
Funksiyası elan Per, biz bir dəyər axtarır edirik.
Beləliklə, biz bir dəyəri aradığınız dəyərlərin bir sıra.
Beləliklə, siz doğru danışırsınızsa.
Siz edəcəyik, əgər açıq paren dəyəri bracket orta bracket bərabər bağlanıb
içəridə dəyərinə bərabərdir və biz nə üçün lazımdır?
Əgər bizim dəyər orada nə Biz nə etmək lazımdır?
>> [Interposing SƏSLƏRİ]
>> TƏLƏBƏ: sıfır qayıt.
>> JASON Hirschhorn: doğru qayıdın.
>> TƏLƏBƏ: doğru qayıdın.
>> JASON Hirschhorn: Michael, Bu xətt nə edir?
>> TƏLƏBƏ: [işitilemez] proqram run kurs ki, artıq və
Siz nə etmək lazımdır var?
>> JASON Hirschhorn: Proqram və ya nə?
Bu halda?
>> TƏLƏBƏ: funksiyası.
>> JASON Hirschhorn: funksiyası.
Və belə ki, deyilən nə qayıtmaq bu və doğru, bu dəyər verir.
Məhz hüququ.
Main.
Qaytarılması növü nedir əsas, Michael?
>> TƏLƏBƏ: int, tam?
>> JASON Hirschhorn: int, dəqiq.
Tam.
Əmin etmək üçün yalnız bir sual idi Sizlərin üst olmuşdur.
Adətən əgər, nə qayıtmaq deyil hər şeyi yaxşı işləyir?
>> TƏLƏBƏ: Zero.
>> JASON Hirschhorn: Zero.
Məhz hüququ.
>> TƏLƏBƏ: bu yalnız doğru qaytarır, verilir heç bir məlumat yoxdur
haqqında nə -
Oh, bu, yalnız deyib ki, dəyəri serialın içərisində.
>> JASON Hirschhorn: Exactly.
Bu proqram məlumat verən deyil dəyəri olduğu dəqiq üzvü.
Bu, yalnız bəli, biz aşkar deyərək oldu Bu, ya xeyr, biz bunu tapa bilmədi.
Belə ki, sayı aşkar etdikdə, doğru geri.
Yaxşı, həqiqətən biz yalnız həqiqətən tez kodu ki, bir xətt ilə.
Mən pseudocode ki line hərəkət edəcəyik.
>> TƏLƏBƏ: biz ehtiyac yoxdur array dəyişdirmək üçün necə?
Bu doğru, dəyərlər deyil, dəyəri olmalıdır?
>> JASON Hirschhorn: Sorry.
Təşəkkür edirəm.
>> TƏLƏBƏ: Bəli.
>> JASON Hirschhorn: Bu line dəyərlər olmalıdır.
Məhz hüququ.
OK.
Beləliklə, biz orta siyahısına baxdı etdik.
Sayı aşkar qaytarılması doğru əgər.
Əgər, bizim pseudocode ilə davam orta böyükdür, axtarış ayrıldı.
Əgər mən burada idi nömrəsi ali, axtarış ayrıldı.
Constantine, siz verə bilər oxşar kodu bu xətt?
>> TƏLƏBƏ: orta Əgər dəyəri -
>> JASON Hirschhorn: Belə dəyər əgər -
açıq paren bracket dəyərlər əgər orta yaxın bracket -
>> TƏLƏBƏ: dəyərindən daha kiçik deyilmi?
>> JASON Hirschhorn: azdır.
>> TƏLƏBƏ: dəyəri daha az.
>> JASON Hirschhorn: Value.
Yaxşı, həqiqətən, istədiyiniz sayı yoxlamaq -
Üzr istəyirik.
Bu bir az confusing edir.
Amma başqa əgər nömrə siyahısı orta böyükdür.
>> TƏLƏBƏ: OK, Oh.
>> JASON Hirschhorn: Mən bunu dəyişmək lazımdır.
Orta yüksək Else əgər, biz OK, sol axtarmaq istəyirsiniz?
Və biz daxili nə etməliyəm Bu vəziyyətdə əgər?
>> TƏLƏBƏ: Mən kiçik bir dəyişiklik edə əgər vəziyyət başqa dəyişə?
>> JASON Hirschhorn: Else?
OK.
Belə ki, bu kodu icra edəcək eyni.
Lakin başqa, əgər istifadə haqqında gözəl şey , və ya əgər başqa başqa əgər, başqa, əgər
o yalnız bir gedir o deməkdir ki, yoxlanılır, onların hər üç,
potensial.
Və bu bir az edir ki, kompüter gözəl
proqram çalışan.
>> Belə ki, [? Constantine?]
biz, dəyərlər əgər başqa, bu xətti daxilində istəyirik bracket orta yaxın bracket
dəyəri daha böyükdür.
Biz nə üçün lazımdır?
Biz sol axtarmaq lazımdır.
Necə ki, biz etməliyəm?
Mən sizə bir başlanğıc vermək gedirəm.
>> Biz adlı bu iki şey var başlayan və bitən.
Belə ki, nə etmək lazımdır əvvəlinə?
Siz sol axtarmaq istəyirsinizsə siyahısı, biz cari başlanğıcı almaq.
Nə biz bunu etmək lazımdır?
>> STUDENT: Biz başlanğıcını müəyyən orta plus 1.
>> JASON Hirschhorn: Belə ki, biz əgər sol axtarış?
>> TƏLƏBƏ: Bağışlayın, orta minus -
belə sona orta olacaq minus 1 və başlanğıcı -
>> JASON Hirschhorn: Hansı başında olur?
>> TƏLƏBƏ: Bu eyni qalır.
>> JASON Hirschhorn: Belə ki, Mənası eyni qalır.
Biz sol axtarış edirsinizsə, biz istəyirik Eyni başlanğıcı istifadə -
doğru.
Və bitən?
Üzr istəyirik, nə də yenə bərabər bitən?
>> TƏLƏBƏ: Orta minus 1.
>> JASON Hirschhorn: Orta minus 1.
İndi niyə minus 1, orta yalnız?
>> TƏLƏBƏ: The orta deyil biz idi, çünki, artıq şəkil
həyata ki yoxlanılır?
>> JASON Hirschhorn: var doğru.
Orta şəkil deyil.
Biz artıq orta yoxlanılır.
Beləliklə, biz ", orta" quote istəmirəm dırnağı bağlamaq, içində olmaq davam
biz aradığınız ki, array.
Belə ki, bu fantastik deyil.
>> Else dəyərlər bracket orta olarsa dəyəri bərabərdir bitən çox
orta minus 1.
Jeff, nə bu son xətt haqqında?
>> TƏLƏBƏ: Else.
Dəyərlər orta dəyəri daha az?
>> JASON Hirschhorn: quracağıq Başqa mənə ötürür.
Əgər mənə vermir əgər -
>> TƏLƏBƏ: Beləliklə başlayan orta plus 1 olardı.
>> JASON Hirschhorn: başlayaraq bərabər orta plus 1, yenə eyni
səbəbi Constantine əvvəllər bizə verdi.
Və sonunda, kim verməyib hələ mənə kod line?
Yalan, Aleha, qayıt nə Biz burada yazmaq edirsiniz?
>> TƏLƏBƏ: yalan qayıt.
>> JASON Hirschhorn: yalan qayıt.
Və biz, bunu etmək lazımdır, çünki əgər biz tapmıram, biz demək lazımdır
onu tapmadı.
Və biz geri olacaq bildirib bool, biz mütləq qayıtmaq
bir bool yerdə.
>> Belə ki, bu kodu run bildirin.
Mən, həqiqətən, gedirəm -
belə ki, biz terminal istəyirik.
Biz pəncərə təmizləmək lazımdır.
Bütün olun edək.
Biz bir səhv var tapıldı.
Gözlənilən line 15-də bir səhv var Bu sonunda nöqtəli vergül
Bəyannamə.
Mən nə unutmaq idi?
>> TƏLƏBƏ: Nöqtəli vergül.
>> JASON Hirschhorn: Nöqtəli vergül sağ burada.
Mən Tom kodu idi.
Belə ki, Tom, [işitilemez].
Yalnız söylüyorum.
All yenidən edə bilərəm edək.
>> TƏLƏBƏ: Nə Dropbox directory biz bu olmalıdır?
>> JASON Hirschhorn: Belə ki, siz yalnız bu bit üçün baxın.
Ancaq yenə də, bu hərəkət etmək istəyirdi əgər cəhd üçün pset3 dizine kod
həyata ki, mən nə var.
Burada görəcəksiniz varsa - sorry, yaxşı sualdır.
>> [? LS?]
Mən burada var find.c kodu bu həftəki distro kodundan.
Mən helpers.h var.
Mən Mən, həqiqətən, bir Make fayl var bu yeni daxil bir az redaktə
biz yazılı etdiyiniz faylları.
Ki, kodu, bütün mövcud olacaq bölüşdürülməsi kodu, lakin yeni
Fayl, yeni helpers.h fayl olacaq download üçün online mövcuddur.
Yenə belə o var əlavə kodları biz var.
>> Belə ki, bütün etmək, bu satıra, tapmaq edir ikili, bubble seçimi - markalar
onların hamısı üç və daxil tərtib Bu yürütülebilir kodu tapa bilərsiniz.
Belə ki, ümumiyyətlə, biz istəmirik düz check50 üçün.
Biz öz bəzi testlər run etmək istəyirəm.
Amma yalnız biz, bu bir az sürətləndirmək bilər check50 2013 pset3.find keçəcək
mənim pis - helpers.c-in.
>> İndi ki, yoxdur.
Belə ki, biz, həqiqətən, olacaq real üçün kodu axır.
Usage.find /, siz o deməkdir ki, nə?
>> TƏLƏBƏ: Siz ikinci lazımdır bu command line.
>> JASON Hirschhorn: I lazımdır ikinci command line.
Və dəqiqləşdirilməsi başına, mən lazım biz aradığınız nə daxil.
Belə ki, 42 baxaq.
Biz, sorted onu saxlamaq lazımdır, çünki biz hələ bir sort funksiyası yazılı deyil -
42, 43, 44.
>> Və Control D tapmadı ot tayası ildə iynə.
Pis var.
Bu, mütləq var.
Nin başqa bir şey cəhd edək.
Mən qoymaq çünki Bəlkə bu əvvəlində.
>> 41, 42, 43 nə edək.
Orada getmək.
Onu aşkar.
Yalnız indi sonunda qoyaq belə ki, biz hərtərəfli ola bilər -
40, 41, 42.
Iynə tapmadı.
Mən bu qeyd.
Təəssüf ki, mən bu bilirdi baş verəcək.
>> Amma pedaqoji məqsədlər üçün, onu tədqiq etmək üçün yaxşı.
Bu iş deyil.
Nədənsə, onu tapa bilmirəm.
Biz orada nə bilirik, lakin biz bunu tapmaq deyil.
Beləliklə, biz nə edə bilər bir şey ilə getmək edir Gdb, tapa, lakin heç yoxdur üçün
gdb vasitəsilə davam olmadan, bir biz qıfıllar harada mənada?
[? Madu? ?]
>> TƏLƏBƏ: Mən sona edilə bilər zaman edirəm əvvəlinə bərabərdir, və bu
yalnız bir element siyahısı.
Sonra yalnız əvəzinə məhəl qoymur əslində yoxlanılması.
>> JASON Hirschhorn: var doğru.
Sona başlanğıcı bərabərdir zaman, biz bunu hələ bizim siyahısında bir element var?
>> TƏLƏBƏ: Bəli.
>> JASON Hirschhorn: Bəli, əslində, biz bir və yalnız bir element var.
Və çox güman zaman nə olacaq, biz test kodu başına, biz var
ot tayası və ya ön ot tayası sonu.
Harada başlanğıcı və ki sona bərabər gedir
Binar axtarış ilə bir.
Belə ki, həmin iki halda iş deyil, bitən çünki əvvəlinə bərabər idi.
>> Amma başa əgər, əvvəlinə bərabərdir bu isə loop icra edir?
Bu, yoxdur.
Və biz yoxlanılır bilərdi bir daha gdb vasitəsilə.
Belə ki, necə biz bu kodu düzeltmek bilər, çünki bitən isə bərabər olduqda
başlayan, biz də bunu istəyirik loop run isə.
>> Beləliklə, biz 18 sıralamaq nə fix edə bilər?
>> TƏLƏBƏ: [işitilemez] böyükdür və ya bərabər.
>> JASON Hirschhorn: Məhz hüququ.
Sona daha çox isə və ya əvvəlinə bərabər.
Belə ki, indi, biz almaq üçün əmin olun sonunda künc halda.
Və nin görək.
Bu bir dəfə daha run edək.
>> Bütün edək.
Yenə, siz lazımdır yalnız burada boyunca edin.
41 bu dəfə tapın.
Yalnız ardıcıl saxlamaq.
>> 42 tapa bilərsiniz.
Nin başında qoymaq bildirin -
42, 43, 44.
Biz onu aşkar.
Belə ki, həqiqətən dəyişiklik oldu biz etmək lazımdır.
>> Yəni biz kodlaşdırma bir çox idi yalnız ikili axtarış etdi.
Heç əvvəl hər hansı sualınız varmı Mən biz yazdı xətləri daxil hərəkət
ikili axtarış və ya necə fiqurlu biz anlamaq nə həyata?
Biz hərəkət əvvəl, mən də qeyd etmək istəyirəm ki, və böyük, biz eşlenen
bizim yalançı kodu bir bizim kodu üzərinə bir.
>> Biz ki, çətin şey var idi ilə anlamaq üçün
başlayan və bitən.
Amma siz ki, fiqurlu deyil olduqca çox yazılı olardı
eyni kodu, üçün saxlamaq bu üst iki xətləri.
Və sonra həyata olardı zaman Əgər çek və hallarda bunu da etdi ki,
Siz başqa bir şey lazımdır.
Siz təqib Belə ki, hətta bizim line yalançı code line, siz var ki,
iki xətləri lakin bütün kazanılmış yazmaq üçün lazım kod.
>> Mən bahis etmək istəyən olardı ki, uşaqlar bütün fiqurlu olardı
olduqca tez, siz qoymaq üçün lazım olan marker bir növ orada rəqəm
siz idi həyata.
Bir daha, bunu güc deyil yalançı kodu vaxtından.
Beləliklə, biz ilk sonra məntiq edə bilər, və biz sintaksis haqqında narahat edə bilər.
>> Biz məntiqi haqqında səhv idi isə C bu kodu yazmaq üçün çalışırıq,
biz bütün messed kazanılmış olardı.
Və sonra biz haqqında suallar olarıq məntiq və sintaksis və meshing
birlikdə onlara bütün.
Və biz itirilmiş kazanılmış olardı tez bir ola bilər nə
çox çətin problem.
Belə ki, indi keçək seleksiya sort üçün.
>> Biz tərk 20 dəqiqə var.
Belə ki, biz edə bilməyəcək bir hiss var seleksiya sort bütün vasitəsilə almaq
və bubble sırala.
Amma bizə ən azı cəhd edək seçilməsi cür başa çatdırmaq üçün.
Belə ki, sort istifadə seçimi həyata keçirilməsi funksiyası bəyannamə aşağıdakı.
>> Yenə bu götürülüb problem set dəqiqləşdirilməsi.
Int dəyərlər mötərizədə edir integers bir sıra.
Və int.n ki, serialın ölçüsü.
Seçim sort gedir bu sıra sort.
>> Seçilməsi bizim ruhi model belə sort, biz çəkin -
ilk biz siyahısına vasitəsilə ilk getmək zaman, kiçik sayı tapmaq,
başında qoyun, ikinci tapmaq kiçik sayı, qoyun
biz istəyirsinizsə ikinci mövqeyi artan sort.
Mən sizə yazmaq məcbur deyiləm yalançı kodu indi.
>> Amma biz bir sinif kimi kodu əvvəl beş dəqiqə, biz yazmaq üçün gedir
yalançı code biz bəzi hissi var harada gedirik.
Belə ki, yalançı kod yazmaq üçün cəhd öz.
Və sonra açmaq üçün cəhd kodu daxil yalançı kodu.
Biz bir qrup kimi edəcəyik Beş dəqiqə.
>> Və əlbəttə, Mənə bildirin əgər Hər hansı bir sualınız var.
>> TƏLƏBƏ: bu ki?
>> JASON Hirschhorn: nə qədər siz baxın daha iki dəqiqə əldə edə bilərsiniz.
Mən sizə deyil anlamaq bitirmək mümkün.
Amma biz bir qrup kimi bu artıq getmək olacaq.
>> Siz bütün [işitilemez] belə kodlaşdırma etdiyiniz, belə ki, mən Siz işle fasilə sorry.
Amma bir qrup kimi bu yolu gedək.
Və yenə, ikili axtarış, bütün vermək Mənə bir kodu daha xətləri əgər.
Bunun üçün təşəkkür edirəm.
Biz eyni şey olacaq burada, bir qrup olaraq birlikdə kodu.
>> Belə ki, seçim sort - nin yazmaq bildirin Bəzi tez yalançı kodu.
Ruhi model, kimsə mənə verə bilər yalançı kodu ilk line, xahiş edirik?
Mən nə istəyirəm?
>> TƏLƏBƏ: baxmayaraq siyahısı qaydada həyata edir.
>> JASON Hirschhorn: OK edərkən siyahısı üçün çıxdı.
Və "üçün həyata?" Nə deməkdir
>> TƏLƏBƏ: baxmayaraq [işitilemez]
sıralanır deyil.
>> JASON Hirschhorn: baxmayaraq siyahısı qaydada həyata edir, biz nə edəcəyik?
Mənə ikinci xətt ver, xahiş edirik, Marcus.
>> TƏLƏBƏ: Belə ki, növbəti tapmaq kiçik sayı.
Bu boşluq olacaq.
>> JASON Hirschhorn: Belə tapmaq Növbəti kiçik sayı.
Və sonra başqası?
Biz növbəti kiçik tapmaq sayı, biz nə edəcəyik?
Mən tapa demək gedirəm ən kiçik sayı.
Yəni etmək istəyirəm nə.
>> Belə ki, kiçik sıra tapa bilərsiniz.
Sonra biz nə etməliyəm?
>> TƏLƏBƏ: [işitilemez] əvvəlinə.
>> JASON Hirschhorn: Bağışlayın?
>> TƏLƏBƏ: The onu qoyun siyahısı başlayan.
>> JASON Hirschhorn: Belə ki, onu yer Bu siyahının başında.
Və biz şey nə etməliyəm ki, əvvəldən idi
siyahısı, sağ?
Biz bir şey yadda edirik.
Belə ki, burada biz qoymaq bilərəm?
Bəli, Anna?
>> TƏLƏBƏ: Harada kiçik sayı idi?
>> JASON HIRSHHORN: Belə başlanğıcını qoya siyahısı olduğu
kiçik nömrə oldu.
Siyahısı üçün həyata belə isə, tapmaq ən kiçik sayı, qoyun
Bu siyahının başında, qoydu siyahısı başlayan olduğu
kiçik nömrə oldu.
Marcus, bu xətt yeniden yazın bilər siyahısı qaydada həyata isə?
>> TƏLƏBƏ: olarkən ədəd sıralanır olunmayıb?
>> JASON HIRSHHORN: OK, belə ki üçün etmək ədəd deyil ki, bilirik
sıralanır, biz nə üçün lazımdır?
Biz nə qədər lazımdır Bu siyahı ilə getmək?
>> TƏLƏBƏ: Mən loop üçün bir tapmaq, və ya isə, ədəd yoxlanılır zamanı az
siyahısı uzunluğu?
>> JASON HIRSHHORN: OK, yaxşı.
Mən misphrased düşünürəm mənim sual zəif.
Mən yalnız almaq üçün çalışırıq biz getmək olacaq
bütün siyahısı ilə.
Siyahısı üçün həyata belə isə, mənim üçün, xəritəsi çətindir.
Amma əsasən ki, necə Mən bu barədə düşünürəm.
Tapmaq, bütün siyahısına keçmək kiçik sayı, qoyun
başlayan - həqiqətən, siz doğru danışırsınızsa.
Onları həm qoymaq edək.
>> Siyahısı qaydada həyata Belə ki, biz bütün siyahı ilə getmək lazımdır
bir dəfə, ən kiçik sayı, yer tapmaq bu siyahının əvvəlində qoymaq
Bu siyahının başında olduğu kiçik sayı, və sonra əgər
siyahısı biz etdik, üçün həyata hələ də bu yolu getmək üçün var
prosesi yenidən, sağ?
Ona görə seçim sort, Big-O zamanı var seçim növ, hər kəs?
>> TƏLƏBƏ: n kvadrat.
>> JASON HIRSHHORN: n kvadrat.
Marcus və yalnız həyata kimi, çünki burada, biz olacaq
siyahısı siyahısı ilə getmək dəfə sayı.
Belə ki, bir şey keçir uzunluğu n n dəfə sayı
Əslində n kvadrat.
>> Belə ki, bu, bizim pseudocode edir.
Bu, çox yaxşı görünür.
Heç bir sualınız varmı Bu pseudocode haqqında?
Həqiqətən seçim sort olmalıdır, çünki yəqin ki, bir, kodu biri gəlib
pseudocode.
Haqqında hər hansı bir sual Bu pseudocode məntiq?
İndi xahiş edirik.
>> Seçim sort - siyahısı həyata isə üçün, biz onun vasitəsilə getmək olacaq
və kiçik hər zaman tapmaq və ön qoyun.
Siyahısı, bilər üçün həyata belə isə kimsə mənə kodu ki, xətt verən
mənə bir xətt verməyib xahiş edirik, hələ kodu?
Bu nə kimi səslənir?
>> TƏLƏBƏ: Bu loop üçün var.
>> JASON HIRSHHORN: səslənir loop üçün kimi.
OK, siz mənə loop üçün verə bilər?
Üçün -
>> TƏLƏBƏ: i 0 Bərabər.
>> JASON HIRSHHORN: i və ya -
biz nə əskik?
Nə burada gedir?
>> TƏLƏBƏ: Int.
>> JASON HIRSHHORN: Exactly.
- (I = 0 int
>> TƏLƏBƏ: i n <; i + +).
>> JASON HIRSHHORN: Jeff, bu nailed.
Biz, siyahısını olacaq?
Biz əvvəl kodunu gördüm.
Perfect.
Belə ki, burada bizim qıvrım aşırma qoymaq bildirin.
Mən bəzi qoymaq gedirəm burada qıvrım aşırma.
>> Bu 0 var isə Beləliklə, biz getmək lazımdır bütün siyahısı.
Belə ki, hər dəfə biz siyahısına keçmək biz takip istəyirsiniz?
>> TƏLƏBƏ: hər hansı bir svopları edilir Əgər.
>> JASON HIRSHHORN: tap ən kiçik sayı.
Beləliklə, biz yəqin ki, track saxlamaq lazımdır ən kiçik sayı hər dəfə.
Belə line I takip edə bilərsiniz kiçik sayı?
Aleha, necə davam edə bilərsiniz bir şey track?
>> TƏLƏBƏ: yeni bir dəyişən başlayın.
>> JASON HIRSHHORN: yeni bir dəyişən başlayın.
Belə ki, bir dəyişən yaratmaq imkan verir.
Hansı növü?
>> TƏLƏBƏ: Int.
>> JASON HIRSHHORN: Int.
Nin kiçik zəng edək.
Və nə bərabər zaman yoxdur biz yalnız başlanğıc etdiyiniz?
Biz hələ siyahısını getdi deyil.
Biz birinci hissəsində istəyirik vasitəsilə ilk dəfə edin.
Bərabər nə edir, kiçik sayı?
>> TƏLƏBƏ: Dəyərlər i.
>> JASON HIRSHHORN Dəyərlər i.
Bu doğru, doğru səslənir?
Başında kiçik sayı biz burada.
Belə ki, indi biz kiçik var və biz lazım bütün siyahı ilə getmək və
kiçik müqayisə başqa hər şey.
Yəni biz yenidən siyahısına getmək yoxdur?
Michael?
>> TƏLƏBƏ: Siz etmək lazımdır loop üçün başqa.
>> JASON HIRSHHORN: loop üçün başqa.
Gəlin bunu.
Mənə bir kod verin.
>> TƏLƏBƏ: loop üçün -
kiçik üçün -
yalnız j int, siz deyə bilər?
= 0; belə ki, -
>> JASON HIRSHHORN: Bəli, biz istəyirsinizsə bütün siyahı ilə getmək üçün -
>> TƏLƏBƏ: j <n, j + +).
>> JASON HIRSHHORN: Fantastic.
Biz vasitəsilə getmək olacaq loop üçün bir daha.
Və necə tapa bilərəm kiçik sayı?
Tom?
Biz cari kiçik sayı, belə necə biz yeni kiçik tapa bilərəm?
>> STUDENT: Biz kontrol edə bilərsiniz, əgər ən kiçik biz sayı daha böyükdür
bracket j qiymətləndirir.
>> JASON HIRSHHORN: Belə kiçik olduqda dəyərlər bracket j daha çox.
Belə ki, əgər bizim cari kiçik daha böyükdür -
Mən bu iki xətləri hərəkət etmək üçün gedirəm ikinci orada kodu.
Çünki biz heç bir dəyişdirmə əvvəl, biz bütün siyahı ilə getmək lazımdır.
Belə ki, bu pseudocode həqiqətən olmalıdır loop üçün daxili xaricində.
Belə ki, bütün siyahı ilə getmək.
Kiçik-dən çox olduqda dəyərlər j sonra nə?
>> TƏLƏBƏ: Sonra kiçik dəyərlər j bərabərdir.
>> JASON HIRSHHORN: Fantastic.
Bir sürətli sual -
biz bu loop vasitəsilə getmək ilk dəfə, i 0 bərabər olacaq, j olacaq
biz burada almaq bir dəfə 0 bərabər.
Beləliklə, biz müqayisə etmək olacaq özü üçün bir sıra.
Ki, səmərəlidir?
Xeyr, bu, həqiqətən səmərəli deyil.
Belə ki, bizim j getmək lazım deyil 0-dan hər zaman n üçün?
Biz həmişə yoxlamaq lazımdır bütün siyahısı?
[Işitilemez]?
>> TƏLƏBƏ: əvəzinə i ilə başlayın.
>> JASON HIRSHHORN: j bilər nə ilə başlamaq?
>> TƏLƏBƏ: i.
>> JASON HIRSHHORN: j i ilə başlaya bilərsiniz.
Belə ki, indi biz başlayaraq müqayisə etdiyiniz biri ilə.
Lakin hətta sonra, ki, kimi deyil mümkün qədər səmərəli?
>> TƏLƏBƏ: i 1 +.
>> JASON HIRSHHORN: i + 1 görünür ən səmərəli, çünki biz
artıq i var.
Biz ifadə edən etdiyiniz line 15 kiçik.
Biz ilə başlamaq olacaq Növbəti bir avtomatik.
Belə ki, biz loop üçün keçir.
Biz hər dəfə keçmək lazımdır.
Biz bir neçə dəfə keçmək lazımdır.
İndi biz vasitəsilə kazanılmış loop üçün bu daxili.
Biz kiçik dəyər saxlayır var.
Biz onu yerləşdirmək lazımdır siyahısı başlayan.
Belə ki, necə Mən onu yer yoxdur siyahısı başlayan?
Edir ki, dəyişən nədir siyahısı əvvəlinə?
Biz loop üçün bu xaricdən istəyirik belə nə aiddir
siyahısı başlayan?
>> TƏLƏBƏ: Dəyərlər i.
>> JASON HIRSHHORN: Məhz hüququ.
Dəyərlər i başlanğıcı -
və ya sorry, başlanğıcı deyil.
Bu çaşdırıcı idi.
Biz əvvəlində olduğu bu siyahısı çeşidlənməmiş hissəsi.
Belə ki, i qiymətləndirir.
Və nə bərabər edir?
>> TƏLƏBƏ: kiçik.
>> JASON HIRSHHORN Dəyərlər i nə bərabərdir?
>> TƏLƏBƏ: kiçik.
>> JASON HIRSHHORN: kiçik.
Məhz hüququ.
Beləliklə, biz başında yerləşdirilməsi edirik siyahısı, və indi biz qoymaq lazımdır
Bu siyahının başında olduğu kiçik sayı.
Belə ki, necə yazmaq, burada kiçik sayı idi?
Nə Dəyərlər?
>> TƏLƏBƏ: 0.
>> JASON HIRSHHORN: kiçik sayı 0 var?
>> TƏLƏBƏ: Bəli.
>> JASON HIRSHHORN: Nə əgər kiçik sayı sonunda idi
bu çeşidlənməmiş siyahısı?
>> TƏLƏBƏ: Bağışlayın, sual nə idi?
>> JASON HIRSHHORN: harada ən kiçik sayı?
Biz kiçik aldı və onu qoymaq burada bu xətti ilə, başlayan.
>> TƏLƏBƏ: Bu olmalıdır bəzi saxlanılır -
>> TƏLƏBƏ: Dəyərlər j.
>> JASON HIRSHHORN: Bəli, bu mütləq j qiymətləndirir.
Bu da bu nöqtədə yoxdur.
>> TƏLƏBƏ: Siz elan var dəyişən əvvəl və
sonra onu təyin -
Siz kiçik sayı tapmaq zaman, ki sayı index təyin
bəzi dəyişən və ya kimi bir şey.
>> JASON HIRSHHORN: Belə ki, Siz daha demək?
>> TƏLƏBƏ: Belə ki, int bəyan kiçik, siz də int bəyan etməlidir
kiçik index = i, və ya ki, kimi bir şey.
>> JASON HIRSHHORN: Mən int haradan kiçik, mən track saxlamaq lazımdır yalnız
dəyəri lakin yeri.
int smallest_location = bu halda, biz yalnız i edəcəyik.
Biz harada bilmək lazımdır.
Biz kodu sonunda var və biz biz bu idi ki, heç bir fikir idi həyata keçirilir.
Və yenə, biz mapping var bu bir biri.
Öz iradəsi ilə bu kodlaşdırma uşaqlar yəqin ki, eyni problem almaq.
Mən necə heck bu tapa bilərəm?
Və sonra mən, gözləyin həyata ki takip lazımdır.
>> Belə ki, kiçik olarsa dəyərlər j daha.
Biz kiçik dəyərlər j bərabərdir seçin.
Biz dəyişdirmək başqa nə lazımdır?
Constantin, başqa nə biz dəyişdirmək lazımdır?
>> TƏLƏBƏ: The yer.
>> JASON HIRSHHORN: Exactly.
Mənə kodu ki, xətt verir.
>> TƏLƏBƏ: smallest_location = j.
>> JASON HIRSHHORN: Exactly.
Və sonra sonunda aşağı, biz istəyirsinizsə siyahısı başlanğıcını qoya yerləşir
ən kiçik sayı, necə biz hara müraciət edirsiniz
kiçik sayı idi?
Marcus?
>> TƏLƏBƏ: The kiçik sayı kiçik yerdə yerləşir.
>> JASON HIRSHHORN: Belə dəyərləri smallest_location.
Və biz orada nə qoymaq bilərəm?
Başından bu yana siyahısı, nə var?
>> TƏLƏBƏ: Bəli, biz həqiqətən bilmirəm biz Yazılmaması artıq çünki.
Belə ki, bir dəyişdirildikdə locations var bu iki xətləri?
Əgər ətrafında bu iki xətləri keçid varsa.
>> JASON HIRSHHORN: OK, belə ki, biz bunu artıq, çünki biz xətti yenidən etdik
dəyərlərə i kiçik əvvəl.
Belə ki, ilkin dəyər itirdi.
Belə ki, svop bu iki xətləri bildirib.
Belə ki, indi siyahısı başlanğıcını qoya burada kiçik sayı.
Belə ki, smallest_location i dəyərlər bərabərdir.
Bu başlanğıcı hərəkət Bu üçün siyahı çeşidlənməmiş hissəsi
kiçik yer.
Və sonra dəyərlər nəzərə i hərəkət edirik ki, kiçik sayı.
>> Ki, mənada, niyə biz ki, mübadilə etmək idi?
Biz ki, dəyəri üzerine olardı - siz yəqin ki, olardı başqa bir şey
fiqurlu və ÜDM tapıldı.
Beləliklə, biz qayğı etdik bütün pseudocode.
Başqa bir şey biz burada yazmaq lazımdır?
Heç bir şey hesab edə bilərəmmi?
>> TƏLƏBƏ: necə bilirsən Bitirdiğinizde?
>> JASON HIRSHHORN: necə etmək biz görülən etdiyiniz zaman bilirik?
Böyük sual.
Belə ki, necə biz görülən etdiyiniz zaman bilmirəm.
>> TƏLƏBƏ: count saxlamaq üçün bir dəyişən yaratmaq yox bir swap və ya əgər
və bir keçid keçir.
>> JASON HIRSHHORN: OK.
Ki, bubble sırala işləmək olardı.
Amma seçim sort üçün, biz əgər mübadilə etmək, ki, yalnız ola bilər
kiçik dəyər, çünki bu onun sağ yer.
Biz siyahısı 1, 2, 4, 3 ola bilər.
Vasitəsilə biz ikinci dəfə bir svop etmək olmaz.
Biz 2 saylı olacaq, lakin biz will hələ də davam saxlamaq lazımdır.
Beləliklə, biz zaman takip etmək lazımdır biz tamamlayın, və ya biz yalnız getmək istəyirəm
Bu başa qədər?
>> STUDENT: Biz yalnız bilərsiniz o başa kadar.
>> JASON HIRSHHORN: Biz yalnız Bu başa qədər getmək.
Bubble sort, siz doğru danışırsınızsa Sizin həlli ilə Jeff və Aleha, -
Bu takip böyük neçə svopları Siz, çünki bubble
Siz əslində əgər sort, heç svopları etmək görülən və siz bəlkə sizin kəsmək olar
problem bir az aşağı.
Amma seçim sort üçün, həqiqətən var sonuna vasitəsilə getmək üçün var
ətrafında hər dəfə edin.
>> Belə ki, bu deyil.
Biz sol iki dəqiqə var.
Bütün edək.
Mənə yalnız açıq burada tap ve edək əmin Mən əslində up zəng alıram -
Mən bubble növ zəng deyiləm.
Seçim sort bu dəyişiklik edək.
bütün edir. / tapa bilərsiniz.
Nin 42 tapsın.
Biz keçmək olacaq bu dəfə çeşidlənməmiş siyahısı düzmək lazımdır, çünki
ilk tapmaq kodu başına - düzmək lazımdır ilk sonra sort funksiyası istifadə edərək,
bir şey axtarmaq.
Fingers hər kəs keçdi.
>> Allah mənim Oh.
Whoa, ürəyim məğlub oldu.
Belə ki, doğru deyil.
Əslində, biz bu daha qaçdı əgər qədər mən kimi geniş, kodu,
demək, mükəmməl doğru deyil.
Bəzi təkliflər var Mən sizin üçün olardı.
Məsələn, 15 və 16 görünür bir az lazımsız.
Siz mütləq deyil kimi görünür hər iki saxlamaq lazımdır.
Siz kiçik yer, sizə varsa asanlıqla kiçik dəyər tapa bilərsiniz
yalnız i dəyərlər yazaraq.
>> , Mən sizin kodu sınıflandırma idi əgər Mən əslində, mən olacaq
Əgər yəqin ki, bir point off almaq , bu həm daxil siz, çünki
Bu, həm də ehtiyac yoxdur.
Siz yeri varsa, siz çox asanlıqla dəyər almaq.
Və bu bir az qəribə görünür Onların həm də saxlamaq üçün.
Bəlkə hətta bir point almaq, lakin əlbəttə ki, bəlkə olduğunu şərh
bir üslub seçimi etmək lazımdır.
Əlbəttə ki, kodu hələ yaxşı çalışır.
>> Belə ki, təəssüf ki, biz etmədik bubble sırala almaq.
Mən bu barədə üzüldüm.
Biz Salonun seçilməsi cür etdi.
Heç bir final sualınız varmı seleksiya sort haqqında?
>> Biz rəhbərlik əvvəl OK, Mən sizə istəyirəm Chrome brauzeri açmaq.
Bağışlayın, yalnız açıq-aşkar plug idi internet browser bir növü üçün.
Siz browser hər hansı bir növü açmaq bilər, lakin yəqin ki, Chrome olacaq.
Bu aşağıdakı veb səhifəsinə getmək -
sayat.me/cs50.
Sizin kompüter yazaraq değilseniz indi sizə aydın istəyirik
Tom bunu deyil.
>> Və sağ ya bunu edin indi və ya növbəti saat -
mənə bir geribildirim.
Bu yalnız bölmə iki edir.
Biz birlikdə bir çox daha çox var, belə ki, mən yaxşılaşdırılması üçün otaq var.
Mən ümid də bəzi şeylər etdi.
Belə ki, mənə bütün pis hiss edə bilər, lakin əgər siz də mənə smiley vermək istəyirəm
üz, Mən də ki, təşəkkür edir.
Da ki doldurun
>> Və sol bir dəqiqə, ki, həftədə üç idi.
Mən bir az kənarda durmaq lazımdır Əgər hər hansı bir sualınız varsa.
Mən sizə uşaqlar görəcəksiniz sabah mühazirə.