JASON HIRSCHHORN: xoş gəlmisiniz CS50 bölməsi, hər kəs. My name Jason Hirschhorn edir. Mən sizin TFS bir çox deyiləm, lakin bir çox insanların ümid Bizi birləşdirən olunacaq online, məsləhət tələbələri və ya tələbələr Bölmə vasitəsilə baxmaq üçün çalışırıq, əgər onlar ki, həftə və ya bölmə buraxılmış onlar istəyirdi yalnız tutmaq bəzi maddi inceleyebilirsiniz. Belə ki, kimi tədris başına bütün Əgər oxumaq ki, doğru? Mən baş başını yırğalayır bir çox görürük. Bölmələr imkanları ilə təmin edir Kursun nin tədqiq etmək daha çox intim mühitdə material, habelə dive into praktiki fəaliyyəti. Belə ki, biz istəyirik nə əsasən var hər həftə bunu edəcəyik. Biz nə ilə getmək olacaq ən əhəmiyyətli təyin mühazirə əhatə mövzular və olanları yəqin ki, həmçinin ən faydalı və problem dəsti gəlmək ehtimalı və kiçik sınavlar, və sizin kodlaşdırma ilə CS50 kənarda həyat. Beləliklə, biz bu mövzu daxil olacaq müzakirə, onlara getmək uşaqlar hər hansı suallara cavab və biz bir çox olacaq kodlaşdırma praktiki problemləri. Siz bütün noutbuk gətirdi, olan fantastik deyil. Bu kompüter elm sinif edir. Ancaq biz nə təlimlər bir çox sizin üçün noutbuk ehtiyac yoxdur. Siz kağız bir hesabatı onları edə bilərsiniz. Ki, siz olacaq necə ki, sınavlar onları edirik. And olsun ki, böyük bir yoldur həqiqətən necə bilirik ki, bir şey yoxdur, əgər 50 yoxlayın izah etibar və ya etibar edin Əgər hər hansı bir səhv etdi. Belə ki, haqqında kod xoş gəlmisiniz olan cihaz və ya run.cs50.net, Əgər kod imkan verir ki, bir alət online, lakin mən də əgər, məsləhətdir bir hesabatı istifadə edərək, cəhd yoxdur kağız və bu təcrübə çalışır bir kağız hesabatında problemləri. Yenidən ki, nəticədə, çünki siz olacaq nə sınavlar etmək istədi. Beləliklə, bizim ilə başlanğıc edək bu gün gündəmində. Biz bəzi normalar artıq getmək olacaq bizim hissəsində, sonra dalış olacaq daxil Diziler, funksiyaları və command line arqumentlər olan nə uşaqlar mühazirədə bu və ötən həftə əhatə etmişik və sonra Bazar ertəsi, və əhatə lazımdır nə sabah daha. Və sonra, nəhayət, biz olacaq pset2 haqqında danışmaq. Mən əlində bir şou almaq bilər, əgər problem set iki baxdı yoxdur dəqiqləşdirilməsi. Biz hər kəs demək lazımdır. Pop. Biz bir az problem dəsti haqqında danışmaq lazımdır ancaq problem set oxumaq dəqiqləşdirilməsi, var Siz lazım olan bütün. Siz gəlmək əvvəl oxumaq Əgər Çərşənbə axşamı sinif və bölmə, siz böyük bir mövqe ola bilər. Biz problem dəsti ilə getmək olar Hansı olacaq nə sonunda ediləcək. Biz keçmək olacaq məntiqi, əmin olun hamı eyni səhifədə. Mən sizə çərşənbə axşamı tərk etmək istəyirəm nə çox rahat hiss , bu həftə problem set üçün nə etmək lazımdır Əgər deyilsə, mən məsud olacaq sonra qalmaq və sizinlə işləyirik. Amma ki, ki, bir şeydir ancaq hesab edirəm ki, həqiqətən ağıllı olacaq yalnız problem set oxumaq Çərşənbə axşamı sinif dəqiqləşdirilməsi, bir kimi səslənir ki, uşaqlar çox idi. Mən hər bir kateqoriyasının gündəliyi ilə başlamaq lazımdır belə ki, biz gedirik olduğunuz bilirik. Bu da seyr insanlar üçün faydalıdır online çünki her bölüm gəlmək istəyirəm əgər rəngi, kodlaşdırılmış olunur geri və yalnız deyil 10 dəqiqə baxmaq bütün 90 dəqiqəlik hissədə çox, siz yalnız rəng kodlu bölməsinə bilərsiniz və bir hissəsi oldu. Beləliklə, mən gözəl onları parçalamaq üçün denedim sizə imkan verir ki, modullar - siz geri gəlmək və nəzərdən istəyirsinizsə və ya digər tələbələr yalnız olan nəzərdən keçirmək üçün bir bölüm seyr - xüsusi şey tapmaq üçün onlar diqqət yetirmək istəyirəm və haqqında daha ətraflı məlumat. Sweet. Normalar. Mən kampus bir fop lider edirəm. Heç kimə fop əgər mən bilmirəm. Heç kimə fop mi? Bir nəfər fop etdi. Iki nəfər fop etdi. Awesome. Belə ki, fop Outdoor birinci il Orientation proqramı. Biz meşə daxil birinci kurs almaq və etmək ən sehrli təcrübə Uşaqları onların həyatına, doğru? Bəli. Hüququ haqqında səslənir. Beləliklə, mən yalnız bizim çox ilk başlamaq istəyirdi bəzi normalar müzakirə etməklə bölmə sinif və əlaqələr Mən hesab edirəm, çünki onlar çox əhəmiyyətli istəyirik. İlk növbədə, sizin kimi olan mənim bölmə aldı və var ki, müzakirə edilmişdir e-poçt, mən bu sevgi. Bu il mənim sevimli hissəsidir. Mən heyecan oldum. Mən bu gün saat burada etdik. Mən istisna olmaqla, bu binadan ayrıldı yoxdur Mən CS50 bölmə sevirəm çünki yemək getmək, mən tədris sevirəm, iş sevgi Siz uşaqlar ilə. Mənim ən yüksək prioritetlərimizdən biri, əgər mənim bir nömrəli prioritet üçün yalnız lakin digər, o cümlədən bu sinif sinifləri və extracurriculars etməkdir uşaqlar dəstək və sizin uşaqlar kömək və əmin etmək üçün əlimdən gələni uşaqlar bir məhsuldar, əyləncə, gözəl var məşğul, maraqlı Bu sinif təcrübəsi. Mən sadiq alıram budur. Mən bunu sevirəm səbəbdən. Ki, mənim bir nömrəli şey uşaqlar dəstəklənməsi. Siz mühazirə bağlı hər hansı bir sualınız varsa, problem dəsti, bölmə, həyat, siz haqqında danışmaq istəyirəm, hətta həyat, həyata nail olmaq üçün çekinmeyin. Siz mobil telefon nömrəsi var siz mənim e-poçt ünvanı, mənim GChat var. Siz hər hansı və ya bütün mənə müraciət edə bilərsiniz yəqin ki, almaq deyil zaman, ancaq o bir cavab zaman. Mən cəhd və 24 saat ərzində geri almaq. Oftentimes bu daxilində olacaq 20 dəqiqə və ya 24 dəqiqə. Mən demişəm ki, lazım bu paralel etmək. Amma bir cavab olacaq olduqca tez. Siz əvvəl mənə bir saat mətn edin problem set görə, mən sizə sakit olacaq aşağı və dərin nəfəs təlimlər edə siz, ancaq başlamışdır əgər, yəqin ki, başa çatdırmaq üçün gedir və deyilik Mən, həqiqətən, orada sizə kömək edə bilməz Mən yaxşı çalışacağıq olsa belə. Beləliklə, mən hər şeyi edəcəyik Mən sizə dəstək ola bilər. Olub çatmaq üçün çekinmeyin o Office saat, təkrar bölmə var siz məni görmək, və ya hətta kənarda varsa. Mən görüşmək üçün vaxt təyin etmək üçün sevindim problemləri və iş və ya material üzərində gedin. Belə ki bir nömrəli dəstəkdir. Mən hər şeyi edəcəyik I sizə dəstək ola bilər. Sayı iki, orta görüşü. Mən istəyirəm qədər, Ben qadir və ya bütün güclü və ya ələmə, mən bütün bilmirəm zaman əldə nə edirəm, əgər əgər arasında mən tədris alıram yolu mövzu siz onu öyrənmək kömək edir, və ya əgər mövzusunda səhv amma olunur sizin əl qaldırmaq və ya mənə sual və ya mənə bir email göndər. Yoxsa siz yenə səhv olsa da, problem setdə bir şey haqqında. Siz məni həyata nail deyilsə, Mən əminəm ki, bilmirəm bilər. Mən kontrol etmək üçün əlimdən gələni edəcəyəm uşaqlar, hər şey əmin yaxşı gedir, bir şəkildə şeyi öyrətmək üçün cəhd edin ki, ən çox səbəb olacaq öyrənmə üslub, lakin əgər Mən nə edə bir şey varsa, Mənə bildirin. Bu xətləri yanaşı, bir yardım istəyirsinizsə, problem dəsti ilə, mən daha Ben Sizə yardım çox xoşbəxt problem dəsti ilə. Biz bir çox olacaq ki, ikinci doğru Bu bölmənin yarısı. Amma problem oxumaq əgər müəyyən edir geri gedərək izləyib yoxdur ki, şort vasitəsilə Baxılmış deyil və mənə öyrətmək gözləyir videotaped edilmişdir ki, hər şey online və ya CS50 da tapa bilərsiniz ki, öyrənilməsi, ki, həqiqətən ədalətli deyil mənə və ya digər həmyaşıdları ilə. Belə ki, xahiş edirik, mən kömək etmək üçün daha çox xoşbəxtəm siz, ancaq uşaqlar mənimlə görüşmək var orta. Biz resursları ton CS50 mövcud siz. Mən bəziləri qeyd etdi. Onlardan istifadə edin. Siz səhv edirsinizsə, mən çox xoşbəxt oldum siz onlara izah kömək başqa bir yol, lakin bu ədalətli deyil əgər tələbələr, ofis saat göstərilir bir başlayan və bu deyil Cümə axşamı gecə və onlar bekliyorsanız hər bir vasitəsilə gəzmək üçün TF problemin şey görə müəyyən günorta növbəti gün. Mənada etmək? Yenə ortada bizə cavab edin. Və nəhayət, yüksək ümidlər. Mən kim grading hamı olmaq gidiyorum mənim bölməsində, və ya qol sizin problem dəsti. Siz problem geri getdi yoxdur hələ sıfır və ya bir seçin. Biz bu barədə üzr istəyirik. Bu nəhayət biraz götürdü bölmələr həll və indi biz grading başlaya bilərsiniz. Mən sizə geri almaq lazımdır mümkün qədər tez. Bu mənim bəzi orada advisees. Mən sizə geri almaq lazımdır mümkün qədər tez. Və problem set iki, biz olacaq cədvəli və biz onları əldə başlarsınız Siz olduqca tez sonra Əgər siz onları da öz növbəsində Siz problem geri qurmaq almaq zaman, sizdən bildiyiniz kimi, puanları əldə edəcək düzgün, - proqramları oxu dizayn, əhatə dairəsi və stil puanları. Siz həmçinin şərh almaq lazımdır. Şərh daha vacibdir puanları daha. Hesab edirəm ki, ki, güvenli edirəm. Scores yalnız bir sıra bir beş. O qədər oxumaq çətindir. Bu həmin yaxşılaşdırılması üçün çətindir. Amma şərh xüsusi qeyd edəcək şey yaxşı və ya sahələri etdi Siz yaxşılaşdırılması və bəzi verə bilər gələcək və ya alternativ fikir şeyler yolları. Belə ki, xahiş edirik, xahiş edirik, oxuyun şərh vasitəsilə. Mən daxil çox vaxt qoymaq o şərh. Onların vasitəsilə oxumaq və yalnız etməyin aşağısındakı gidin PDF, sizin hesab üçün baxmaq, və ya online və ignore sonra hesab tapmaq və şərh. Ki, siz ne deyil daha yaxşı olacaq. Necə artırmaq olacaq deyil ki, Sizin puanları nəticədə, yalnız puanları baxaraq. Həmin qeydlərə baxın. Və yüksək gözləntilərini xəttində, yenə dedim kimi, beş vasitəsilə bir qol bilər. Ikilər, üçlər, və dörd ayaq da var puanları əksəriyyəti Siz əldə etmək olacaq. Olanları və beşbir həm də həqiqətən nadirdir. Şeylər həmişə var biz daha yaxşı edə bilərsiniz. Mən proqram kodu zaman var həmişə bir şey mən daha yaxşı edə bilərdi. Belə ki, yerine beş almaq deyərkən bütün hər şey zaman ve etdi mükəmməl hər şey, mən heç düşünmürəm Bizi həqiqətən inanıram ki, biz - və ya Ümid edirəm ki, biz hər şeyi yoxdur her zaman mükəmməldir. Belə ki, narahat olmayın, əgər Beş əldə etməyib. A beş A üzərində dörd xəritəsi yoxdur üç edir, bir B üzərinə xəritəsi deyil deyil Bu C. üzərində deyil xəritəsi necə puanları çalışır. David dəfələrlə bildirib var kimi semestr sonuna puanları bütün və , sizin TF, mənə daxil araya gəlib və sizin üçün yekun dərəcəli müəyyən edir. Ancaq yenə də, bu, beş deyil A, dörd, B, et Cetera. Beləliklə, mən yüksək gözləntilər var gidiyorum uşaqlar üçün. Yaxşı problem gözləmək gidiyorum dəsti və mən verəcəyəm kimi siz Əlaqə. Və bu sen demək niyyətində deyil pis dərəcəli olacaq. Siz baxımından səviyyələrə ayrılır həftə sizin tərəqqi Əlbəttə sonuna sıfır. Və nəhayət, yüksək baxımından zaman sinif gözləntilər, mən sevirəm nəfər iştirak edirlər. Mən bəzi insanlar daha çox hiss və ya anlamaq iştirak az rahat. Digər insanların iştirak edir əl artırılması və olmayan hər zaman danışır. Amma bu sinif biz olacaq kiçik problemlər bir çox işlər mini suallar və sonra bəzi problemlər kodlaşdırma böyük. Belə ki, mütləq həyata bu təlimlər iş biz sizin kompüter və ya onları nə zaman kağız bir hesabatı. Amma mən də əvvəl bir müddət verəcəyik Heç kimə heç bir cavab var sualları soruşmaq. Mən bir müddət verəcək Beləliklə, çünki biz gedirik, çünki bu barədə düşünmək bəzən tərəfdaşları şeyə, Mən hamı edəcəklər qədər məşğul ola bilər. Və daha yaxşı bir müddət olmaması üçün, yəqin ki, soyuq zəng olacaq hamı bir şans olacaq edir cavab haqqında hesab edirəm ki, və sonra Mən sizə zəng və sonra edəcəyik Siz cavab demək lazımdır. Narahat olmayın və ya bu barədə qorxuram. Mən keçmişdə bunu etdik və gördük ki, çox daha müvəffəqiyyətli var də bu barədə təhsil araşdırma oxumaq bir idi və ya müəyyən yaxşı taktika. Bu, çox faydalı xüsusilə əgər siz tələbələr haqqında düşünmək üçün vaxt vermək cavab və onlara, yalnız gəlmək etməyin həyata hüququ yarasa off demək və. Amma rahat hiss yoxsa cavab, mən də olduqca yaxşı Ben ki algılama və biz fikrində deyilik Xüsusilə, yerində, sizi kamera olsa da heç biri Siz indi kamera var. Belə ki, bu mən var normaları var. Xətləri boyunca daha bir şey ortada görüş. Mən sizə uşaqlar vermək gidiyorum feedback bir çox. Mənə geribildirim həmçinin verin. Bir web sayat.me/cs50 var. Belə ki, bir vicdanlı rəy var. Bölməsinə ərzində vermək istəyirsinizsə, Bu baş zaman bir e-poçt almaq. Biz bir az bir fasilə etmək lazımdır, belə ki, lazımdır sonra geribildirim vasitəsilə baxmaq. Əgər hər hansı bir geribildiriminiz varsa, orada mənə verin. Siz məni ki, Q cavab verir, əgər gözəl, lakin guide Əgər sonunda ki. Amma ki, dövr sonunda olacaq Hesab edirəm ki, hər hansı edə bilməyəcək Əlaqə və tədris çevrilsin daha yaxşı uşaqlar. Əgər varsa, xahiş edirik Əlaqə mənə ver. Mən rəy sevirəm. Fop geri, biz geri bildirim almaq bütün vaxt, zaman. Siz mənə müsbət, yaxşı şeylər verə bilər deltalar, mən sonra inkişaf edə bilər şeylər. Siz mənim kıyafetlerinize şərh edə bilər. Kimi faydalı ola bilər, lakin siz deyilsiniz ki, xoş hər hansı bir şərh və hər şey. Xahiş edirik, mənə geribildirim edin. Mən bunu çox qiymətləndirirəm və bu mənə bir çox deməkdir. Daha bir norma, fun. Biz fun bir çox olacaq. Ümid edirəm bu kurs, will fun bir çox var. Biz bölməsində konfet olacaq. Biz musiqi olacaq. Biz inşallah bir bilmək əldə olunacaq başqa qədər yaxşı, mən istəyirəm Bu fun, cəlb təcrübə olmalıdır. Mən bilirəm, siz bəzi asleep düşmüşdür Daha əvvəl bu gün idi mühazirələr, Beləliklə, ümid edirəm ki, olacaq indi hal ola bilər. Və indi halda, yalnız xorultu deyil ki, bilər, çünki kamera tutuldu bilər. Sweet. Hər hansı bir sualınız, şərh və ya narahatlıqlar Mən bir şey haqqında hərəkət əvvəl var haqqında danışdı? Böyük. Beləliklə, biz getmək olacaq ilk Diziler daxil. Bu bir sıra etmək necə. Biz əvvəl bu gördük. Siz data type var, siz var adı, və sonra bir ölçüsü var. Burada, mən iki Diziler yaradır. Birinci, simvol bir sıra edir və 26 fəzalarında var. İkinci bir sıra edir skorlari, və üç var üç integers üçün fəzalarında. Bəli? TƏLƏBƏ: Bu slaydlar bütün bizim üçün bir yerdə mövcud? JASON HIRSCHHORN: Böyük sual. Sual idi, bütün var bu mövcud slaydlar? Bəli. Bu slaydlar Bütün mümkün olacaq və gələcəkdə, mən onlara e-poçt göndereceğiz bölməsinə əvvəl. Amma bu gün bu ilk, çünki həftə, gec başlamasına idi. Belə ki, adətən, bu slaydlar almaq, ancaq lazımdır onlar mövcud online və olacaq Mən onları sizə e-poçt göndereceğiz class sonra hüququ. Başqa bir sualınız? Belə ki, yenə Diziler olmaması üçün, qutular var çox keçirilməsi daha yaxşı bir söz, bir veri növü elementləri və onlar istəyirik yaddaşında bir-birinə yanında. Necə edə bilər və belə yenidən, bu iki növ serialları edir. Sizin array etdik Belə ki, sonra ilk line - int skorlari, bracket üç, yaxın bracket - siz onu başlamaq istəyirəm. Siz orada bəzi dəyərləri qoymaq istəyirik. Və bu bəzi dəyərlər qoymaq necə , yalnız orada Indice seçilməsi və sayı yazılı. Gəlin board bu cəlb edir. Hər kəs edə bilərsiniz? Hamı bilərsiniz. Sweet. Belə ki, mənim olacaq array Scores çağırıb. Gördüyünüz kimi, bu, ölçüsü üç var. Orada üç qutuları var. Hər biri uyğun nə data type növü? TƏLƏBƏ: Tamsayı. JASON HIRSCHHORN: Bir tam bu bir. Biz int skorlari, və ilk sözü yazdı olacaq ki, məlumat növü ki, sıra qutuları gedir. Beləliklə, mən üç yararlı ola bilər. Niyə sıfır qədər var orada şurası? Nə üçün hesab sıfır 1 bərabərdir deyir? Adınızın mənə xatırlatmaq. TƏLƏBƏ: Kurt. JASON HIRSCHHORN: Kurt. TƏLƏBƏ: Bəli. JASON HIRSCHHORN: Niyə? TƏLƏBƏ: Birinci index Çünki sıfır, biz sıfır hesablanması başlanır. JASON HIRSCHHORN: Beləliklə, biz başlamaq sıfır hesablanması. Bu doğru deyil. Bu confusing iştirak edəcək səfər Siz, sen xüsusilə diziler vasitəsilə təkrarlamaq üçün çalışır, Hansı bir az edəcəyik. Biz sıfır hesablanması başlanır. Mən ilk müraciət etmək istəyirəm əgər qutusu, o qutusu bir deyil. Təəssüf ki, qutusu sıfır var. İkinci bir qutu biridir və bu halda, üçüncü bir qutu iki. Nə qutusu üç? Qutusu üç haradadır? Və ya skorlari, bracket etmək istəyirsinizsə üç, yaxın bracket ki, nə var? Belə ki null xarakter dediniz. Hansı digər fikir? Hesab bracket üç bracket nədir? TƏLƏBƏ: Bu, həqiqətən mövcud deyil, çünki Siz yalnız puanları kimi müəyyən bracket üç. JASON HIRSCHHORN: Yəni deyirsiniz həqiqətən mövcud deyil. Bəzi hallarda, zaman ilə məşğul olduğunuz strings, ümumiyyətlə, biz null qoymaq lazımdır sonunda xarakter. Biz ikinci olduğu almaq lazımdır. Amma bu halda var heç bir üçüncü qutusu burada. Belə ki, hər hansı bir sıra son qutusu ölçüsü mənfi 1-dir. Biz ölçüsü n bir sıra var Əgər belədirsə, İlk qutusu sıfır olduğu, son biridir n minus 1. Və bu halda, o, mövcud deyil. Burada bir şey var yaddaş lakin bizim deyil. Biz bunu malik deyil. Biz bunun üçün xahiş etməyib. Biz daxil olmaq üçün cəhd əgər, hansı rəftar bir az, biz yəqin ki, olacaq ilişmək. Bu halda, mən başlatılıyor alıram üç dəyişənlərin array. Biz iki qutu sıfır bir bir qoyaraq edirik kutusunu bir, qutu iki üç. Heç kimə hər hansı bir sualınız varmı bir sıra başlatılıyor haqqında? Beləliklə, biz indi bu artıq getdi. Skorlari, bracket üç yaxın bracket, ki, mövcud deyil. Biz sıfır, kompüter elmi indexed edirik belə ki, biz sıfır hesablanması başlanır. Bizə mövcud son qutusu, o üçüncü qutusu, lakin o qutusu deyirlər iki nömrə. Aşağı, bu alternativ Diziler başlatılıyor yolu. Belə ki, əvəzinə bir serialın yaradılması xətti, ilk qutusu doldurulması, sonra İkinci qutusu, sonra üçüncü qutusu, bir line bütün edə bilərsiniz. Belə ki line, həm də Diziler. Bu eyni dəqiq array yaradır Biz burada yaradılmış, lakin nə yalnız bir xətt bunu edir. İndi bizim array yaratmışdır. Adətən bir dəfə, bir sıra yaratmaq olub, bu bir şey etmək istəyirəm doldurun və ya onun bir şeyi həyata almaq ki, və onlara ekranda çap. Bu halda, biz vasitəsilə olacaq bizim biz başlatılmış olan puanları dizi, qədər burada boz ilk xətti. Və sonra ikinci xətt, biz başlamaq serialın vasitəsilə iterating. Heç kim haqqında hər hansı bir sualınız varmı loop üçün bir strukturu? Belə ki, bu loop üçün. Biz ilkin vəziyyəti var və sonra sonra son vəziyyət və biz , i, hər bir loop təkrarlamaq. Və bu ildə buruq aşırma ilə loop, mən çalıştırmak üçün, əgər nə olur bu proqram? Heç kim əldə edirik ki, nə mənə deyə bilərsiniz? [? Matu? ?] MATU: bütün puanları Çap hər on line. Hər hesab çap olardı ayrı bir on line. JASON HIRSCHHORN: dəqiq nə çap istəyirsiniz? TƏLƏBƏ: Bu, bir çap ki, sonra iki, sonra üç. JASON HIRSCHHORN: Eynilə elə. Bu, sonra bir, iki, çap ki, üç ayrı-ayrı xətləri hər, çünki biz array vasitəsilə olacaq və will ki, printf ki, ikinci bax Şərhdə, puanları i. Belə ki, bizim vasitəsilə ilk turun loop, i sıfra bərabər, hansı istəyirik deməkdir hesab sıfır dəyəri əldə - ki, biz geri əgər bizim diaqram, biridir - və doldurma - oh, c qoyur. Bu% d olmalıdır. Mən bir az düzeltmek edəcək Mən əl uşaqlar üçün. Amma biz tam təqdim edirik ki, belə burada% d olmalıdır,% c deyil. Üçün% c nədir? TƏLƏBƏ: Character. JASON HIRSCHHORN: Character, dəqiq. Digəri nədir? Bir üçün% d etmək istəmirsinizsə tam, başqa nə edə bilər? TƏLƏBƏ: i. JASON HIRSCHHORN: dəqiq% i. Belə iterating haqqında suallarınız serialın vasitəsilə? Bunu etsəniz nə olar? Əvəzində etdiyini i azdır üç, biz az yoxdur çox və ya üç bərabərdir. Biz bu kodu run ne olur? Bəli, Annie? TƏLƏBƏ: Onlar çap olacaq dördüncü line qəribə stuff. JASON HIRSCHHORN: Beləliklə, qeyd etdi ki, haqqında qəribə stuff çap etmək niyyətindədir dördüncü xətt? Heç kimə bir cavab yoxdur onun sualına? Belə ki, bahis ki, zaman biz almaq - belə ki, dördüncü turda bizim üçün yolu loop, yalnız Annie, siz fikir kimi, o puanları bracket üç olacaq biz artıq deyil fiqurlu etdik mövcuddur və biz cəhd olacaq və daxil çap həyata, bəzi yol istifadə edin. Kompüter yəqin ki, belə bizə dəli almaq. Siz doğru edirik. Bu tamamilə proqramı çıxın bilər. Bu bir şey çap bilər həqiqətən qəribə. Siz əmin deyə bilmərəm. Oran ona da yəqin ki, dəli almaq lazımdır siz və sağ üz çıxın. Amma bu lazımdır ortaq səhv sizə biri yalnız off olduğunuz sonu və bu olacaq ki, bir səhv edir Sizin coding ərzində siz taun. Mən istəyirəm bir yolu yalnız bir deyil tahta, hər bir iteration keçmək görmək tərəfdən və ya kağız üzərində loop nə sonra baş verən və var ümumiyyətlə həyata, oh gözləyin, mən olmalıdır çox və ya az getdi üç bərabərdir. Mən ki, iki dayandırılıb olmalıdır Sizin vəziyyəti az olduğu halda nə olur üç. Hər hansı sual indiyə qədər? Sweet. Beləliklə, siz bütün kompüter açıq var. Biz sizə olacaq iki üç dəqiqə bir proqram yazmaq üçün ki, integers bir ilə bir sıra yaradır beş və hər bir çap vasitəsilə yeni xətt üzərində tam. Və hər hansı bir sualınız varsa, əl qaldırmaq. Mən gəlmək sevindim. Dediyim kimi, üç qoy dəqiqə bu yazmaq. Mən getmək əgər hər kəs OK Yeni pəncərə və bu yaxın? Bir şans idi yoxdur, əgər Üzgünüm başa çatdırmaq üçün, amma biz bunu olacaq birlikdə indi. Belə up ekranda, I # daxildir ki, cs50.h # stdio.h daxildir. Kimsə mənə nə deyə bilərsiniz bu iki xətləri nə? Michael? TƏLƏBƏ: Onlar kitabxana daxildir CS50 etdi və Steve var ki, sizə istifadə üçün saxlanılır sizin həyat daha asan. JASON HIRSCHHORN: Beləliklə, siz söylədi kitabxanalar, bir daxil CS50 etdi cs50.h, və bir yalnız standart ilə gəlir C paketi stdio.h. Siz daxil nə deməkdir kitabxanalar, necə? Siz bir az daha spesifik ola bilərmi? TƏLƏBƏ: Bu belə ki edir var bəzi kodu sözlər, istifadə getmək olmadan baş fəaliyyət və funksiya c özünüz olun. JASON HIRSCHHORN: Siz Can mənə misal vermək? TƏLƏBƏ: printf Like istifadə edə bilərsiniz biridir. JASON HIRSCHHORN: Printf. Belə ki, printf biri olduğunu ifadə edərək, olan daha çox olduğu funksiyaları öz printf yazmaq, printf edir stdio.h ilə faktiki daxil, belə ki, yalnız istifadə və kəsb edə bilər bu iş olacaq. Stdio.h, siz həmin faylı açıldı halda, daxil necə printf işləri, printf üçün bütün kodu? Niyə sizin baş silkələmək olunur? TƏLƏBƏ: Çünki header fayl yalnız funksiyası bəyannamə daxildir. JASON HIRSCHHORN: Məhz hüququ. Başlığı fayl yalnız daxildir funksiyası Bəyannamə. Belə ki, əsasən, siz bu tərtib edərkən biz nə edəcəyik ki, sayı, olun edib İkincisi, compiler bilir ki, əgər siz printf istifadə, printf var. Bu haradasa müəyyən olacaq. Bu istifadə üçün bir problem deyil. Və sonra sonra, bu, daxil olacaq həqiqətən olan olanları və adet sıfır printf icrası və Sizin kodu ilə onlara daxil. Əgər əmin necə edə bilərəm ki, bu da daxildir , demək üçün olanları və adet sıfır string almaq? TƏLƏBƏ: string alın cs50.h. edir JASON HIRSCHHORN: Sağ. , Simli var almaq deyir ki, funksiyası Bəyannamə. Amma sonra olanları və adet sıfır, ikili əslində daxildir fayl get simli həyata? Siz əmin necə edə bilərəm Proqram ilə gedir? TƏLƏBƏ: ildə linker keçmək command line argument. JASON HIRSCHHORN: The linker keçmək command line dəlilinin. Necə ki etməliyəm? TƏLƏBƏ: Bu cingilti ildə-l xətt var JASON HIRSCHHORN: Məhz hüququ. Siz sağ, cs50-l demək? Bu olanları və adet sıfır daxildir. TƏLƏBƏ: Amma edir ki, sizin üçün, sağ? JASON HIRSCHHORN: Eynilə elə. Olun sizin üçün ki,, lakin nəhayət, siz olun və ya yoxdur Bir yarat lazımdır öz, bir var ki, yaxşı bir şey unutmayın. Bu bir istifadə etmək niyyətində olsaydı digər kitabxanalara, siz var nəinki # yazmaq üçün daxil sonra kitabxana. Ayrıca da link lazımdır Və bu iki şey fərqlidir. -L cs50 fərqlidir # cs50.h. daxildir çox Sonra biz int əsas etibarsız buruq aşırma var və indi kodu olacaq əsas daxilində. Mən burada birinci Şərh edir deyir ki, bir sıra yaratmaq ints bir beş edir. Nə təsvir etmək üçün yaxşı bir söz nədir yalnız ekranda sağ indi əsas daxilində yorumlar? Biz nə zəng edirsiniz? TƏLƏBƏ: pseudocode. JASON HIRSCHHORN: pseudocode. Jeffrey təşəkkür edirik. Bu doğru deyil. Pseudocode. Uşaqlar əvvəl pseudocode gördünmü? Əgər istifadə etdiyiniz halda əl qaldırmaq problem əvvəl pseudocode bir seçin. Siz təxminən yarısı. Mən istifadə məsləhətdir problemləri qırmaq pseudocode ədəd yemək daha kiçik, daha asan. Ayrıca, pseudocode Əgər, Artıq əsasən sizin şərh inşa, belə ki, yoxdur geri getmək və şekillendirmek üçün cəhd sizə nə etdiklərinizi. Belə ki, kimsə mənə bu ilk line verə bilər ints bir ilə bir sıra yaratmaq üçün Beş vasitəsilə? Siz? Şagird: Int və sonra zəng edə bilərsiniz sonra nə sayı, və kvadrat bracket beş. JASON HIRSCHHORN: Bu int nömrələri, kvadrat mötərizə beş. Şagird: Bərabər və sonra buruq aşırma. JASON HIRSCHHORN: Bərabər, buruq aşırma. Şagird: Bir, iki, üç, dörd. JASON HIRSCHHORN: Bir, iki, üç, dörd, beş. Sonra buruq aşırma: TƏLƏBƏ və sonra nöqtəli vergül. JASON HIRSCHHORN: Və buruq aşırma və nöqtəli vergül. Əla. Yeni xətt hər int çap. Başqası verə bilər Mənə kodu, xahiş edirik? [? Matu? ?] Qabaqda gedin. TƏLƏBƏ üçün: ( JASON HIRSCHHORN üçün: ( TƏLƏBƏ: Int i = 0 JASON HIRSCHHORN: int i = 0 TƏLƏBƏ: nöqtəli vergül i az beş. JASON HIRSCHHORN: nöqtəli vergül, 5 i azdır. TƏLƏBƏ: nöqtəli vergül, i + +. JASON HIRSCHHORN: nöqtəli vergül, i + +. TƏLƏBƏ: Bağlı parantez, sonra açıq burğu. JASON HIRSCHHORN: Bağlı parantez və iki aşırma. Ki, aşırma Inside? TƏLƏBƏ: Və sonra printf "% d / n" JASON HIRSCHHORN: Bağışlayın, ancaq, haqqında saxlayın. Printf "% d / n, qapalı quote. TƏLƏBƏ: Və sonra qapalı teklif, vergül, sayı, bracket i. JASON HIRSCHHORN: Virgülle, sayı, bracket i. Şagird: Bağışlayın, ədəd bracket i. JASON HIRSCHHORN: Nömrələr, bracket i. TƏLƏBƏ: Üzr istəyirik. Və sonra, parantez bağlıdır nöqtəli vergül. JASON HIRSCHHORN: Bağlı parantez, nöqtəli vergül. Hesab edirəm ki, saxlamaq üçün gedirəm. Biz count etmək olacaq. Və necə count var? TƏLƏBƏ: Backslash. TƏLƏBƏ: Dot irəli zərbə - JASON HIRSCHHORN:. / Dəqiq saymaq. Təşəkkür edirik. . / Saymaq. Bir, iki, üç, dörd, Yeni Məhsullar beş. Bu işləmişdir kimi görünür. Bəli, Nuh? TƏLƏBƏ: Siz də daha az və ya edə bilər dörd bərabər, kimi i azdır və ya dörd bərabər? Az bunu hər hansı bir üstünlük var daha beş və ya yalnız bir fərqli şəkildə yazılı? JASON HIRSCHHORN: Belə ki, sual edir edə bilərdi i az və ya dörd əvəzinə bərabər i az beş edir. Eyni işləmiş istəyirsiniz? TƏLƏBƏ: Bu olmalıdır. JASON HIRSCHHORN: Bəli. Bu, tamamilə eyni iş olardı. Stylistically, o, nisbətən az var və bir ikinci görürsünüz biz bir şey strings istifadə edə bilərsiniz yoxdur gezdiğiniz ki, strlen adlı əvvəl uzunluğu almaq üçün simli edir. Və az edə bilməz və ya strlen bərabərdir. Siz daha az və ya edə bilər strlen minus bir bərabərdir. Belə ki, yalnız gözəl var strlen az yoxdur. Bəli? TƏLƏBƏ: Və faktiki ilə sınavlar, nə biz üzrə rəy vermək üçün kod həmçinin? JASON HIRSCHHORN: Cavab sınavlar, siz çıxıb rəy vermək lazımdır? Beləliklə, biz zaman sınavlar haqqında daha çox danışmaq lazımdır Onlar gəlib, amma ümumiyyətlə yaxşı bir sen zaman thumb qayda kod yazı, şərh və təmin edir. Yanlış kodu ancaq almaq əgər sağ şərh, bəzi almaq bilər kredit mən sınıflandırma mənə həm əgər bir problem set və ya viktorina siz. Belə şərh həmişə təmin etmək üçün yaxşı. Sweet. Sayı. Əla iş. Üzrə hərəkət edək. Strings. Strings. Biz mühazirə əvvəl bu gördük. Bu, mənim mind blew zaman ilk bu aşkar. Yəqin ki, şəxsin zərbə vermədi Burada ağla, lakin OK. Strings simvol Diziler və Əgər əvvəllər dediyi kimi, sona null Terminator, hansı Bu / 0 karakter. Biz bir simli çəkmək üçün davam edirsinizsə board, biz bura onu üzərində çəkmək lazımdır. Beləliklə, bu simli necə uzun? Bağışlayın. Bu simli necə uzun? TƏLƏBƏ: [işitilemez]. JASON HIRSCHHORN: Four? Nə dörd? TƏLƏBƏ: Çünki beşinci spot null xarakter üçün. JASON HIRSCHHORN: Belə ki, beşinci spot null xarakter üçün. Mən strlen çalıştırmak üçün idi əgər Bu, mənə dörd verəcək. Düzəldirik. Və dizi, baxmayaraq ki, mən idi əgər Bu array başlamaq, nə qədər fəzalarında Mən soruşmaq lazımdır ki? TƏLƏBƏ: Five. JASON HIRSCHHORN: Five. Mən beş soruşmaq lazımdır, lakin mən yalnız burada dörd simvol qoymaq Hesab edirəm ki, null qoymaq lazımdır, çünki sonunda terminator. Beləliklə, biz "ohai" yazmaq gedən və olduğunuz sonunda olan null terminator qoydu. Biz bu simli demək lazımdır bu bərabərdir. S bracket sıfır nədir? s bracket sıfır, Annie? TƏLƏBƏ: O. JASON HIRSCHHORN: O, dəqiq. s bracket bir? s bracket beş? s bracket beş? TƏLƏBƏ: yoxdur. JASON HIRSCHHORN: yoxdur. Məhz hüququ. Sərin. Anlaşma haqqında suallarınız simvol Diziler kimi strings? OK, sonra. Sizə uşaqlar üçün daha bir proqram. Istifadəçi soruşur ki, bir proqram yazmaq bir simli üçün hər bir çap Yeni line xarakter. Elə yazmaq üçün üç dəqiqə qoy Bu proqram, sonra biz bunu kod edəcəyik bir qrup kimi. Bağışlayın. Bu görmək üçün lazım mi? TƏLƏBƏ: Xeyr JASON HIRSCHHORN: OK. Gəlin bu Məcəlləyə daha bir dəqiqə və ya ən azı başlamaq. Belə ki, iş davam edə bilər, lakin gedirəm onun vasitəsilə davam başlamaq üçün. Belə ki, əvvəl kimi, mən ekran var # Cs50.h, # stdio.h daxildir daxildir. əsas etibarsız Int. Əsas nin buruq aşırma Inside, Mən iki şərh pseudocode. Bir istifadəçi bir simli üçün xahiş edir. İkinci hər çap olunur Yeni line xarakter. Anna Belə ki, mənə sual verə bilər istifadəçi bir simli üçün? TƏLƏBƏ: Printf. JASON HIRSCHHORN: Printf? TƏLƏBƏ: Bəli. ( JASON HIRSCHHORN: ( TƏLƏBƏ: "Mənə bir string verir. JASON HIRSCHHORN: "vermək Mənə bir str - oops - string. TƏLƏBƏ: / n ") nöqtəli vergül. JASON HIRSCHHORN: The string bitir qapalı parantez, nöqtəli vergül. TƏLƏBƏ: Bəli. Və sonra növbəti xətti, simli s = string almaq. JASON HIRSCHHORN: Dize s = string almaq. TƏLƏBƏ: Bəli. Və sonra () JASON HIRSCHHORN: () TƏLƏBƏ: nöqtəli vergül. JASON HIRSCHHORN: nöqtəli vergül. Pop. Mən bir string almaq üçün gedən və alıram Mən bunu nə saxlamaq gidiyorum? Dəyişən nə deyirlər yaratdıq ki? TƏLƏBƏ: Dize s. JASON HIRSCHHORN: The dəyişən s axtardı. Bu tipli simli var. Eynilə elə. Biz istəyirik Next şey Yazdır Yeni xəttində hər bir xarakter. Məni kodu verə bilər? [Işitilemez]? Siz mənə verə bilərsinizmi? TƏLƏBƏ: Emin. JASON HIRSCHHORN: bunu edək. Və təəssüf. Mən sizə nə demək istəyirəm yoxdur doğru alınması, amma olduğunuz belə ki, bu təkrar etmək lazımdır ki, onlar Bu kopya, onlar bütün əldə edə bilərsiniz ki, transcriptions üzrə mətn edir. Belə ki, yalnız söhbət edə bilərsiniz. Təəssüf ki, mən Siz artıq demək. Üzgünüm, ancaq - TƏLƏBƏ: Bu gözəl var. Int i = 0 JASON HIRSCHHORN: int i = 0 TƏLƏBƏ: I-dən az - JASON HIRSCHHORN: nöqtəli vergül. TƏLƏBƏ: Bu əvvəl, biz qoya bilər dəyişən siz int adı uzunluğu almaq? JASON HIRSCHHORN: Oh, siz yox ki, nöqtəli vergül qoymaq istəyirsiniz? OK. Beləliklə, nə siz sıfır sonra nə istəyirsiniz? Şagird: Mən almaq istəyirəm simli s uzunluğu dəyişən ki, müəyyən? JASON HIRSCHHORN: OK, belə necə ki etməliyəm? TƏLƏBƏ: Beləliklə, siz int uzunluğu nə = JASON HIRSCHHORN: Int uzunluğu = TƏLƏBƏ: S-T-R-L-E-N. JASON HIRSCHHORN: S-T-R-L-E-N - Şagird: S. Mötərizədə. JASON HIRSCHHORN: (s). TƏLƏBƏ: Və sonra mən sizə var iki ints arasında nöqtəli vergül qoyulur. JASON HIRSCHHORN: A nöqtəli vergül sıfır sonra? TƏLƏBƏ: Bəli. Sonra sonra vergül qoymaq və Siz uzunluğu daha mən az, deyirlər. i uzunluğu az olan dəyişən deyil. TƏLƏBƏ: Və sonra nöqtəli vergül. JASON HIRSCHHORN: nöqtəli vergül. TƏLƏBƏ: i + +. JASON HIRSCHHORN: i + +. Bizim üçün loop var. OK, loop üçün içəridə. TƏLƏBƏ: Və sonra printf yoxdur. JASON HIRSCHHORN: Printf. TƏLƏBƏ: Aplikleri. JASON HIRSCHHORN: Parantezler, quotes. TƏLƏBƏ: Parantezler, quotes,% c / n. JASON HIRSCHHORN:% c, OK. TƏLƏBƏ: / n. JASON HIRSCHHORN: / n. TƏLƏBƏ: Bağlı quotes. JASON HIRSCHHORN: Bağlı quotes. TƏLƏBƏ: Virgülle. JASON HIRSCHHORN: Virgülle. TƏLƏBƏ: S. JASON HIRSCHHORN: S. Şagird: Asqı i. JASON HIRSCHHORN: Asqı i. TƏLƏBƏ: Və sonra bağlanıb parantez. JASON HIRSCHHORN: Bağlı parantez. TƏLƏBƏ: Və sonra nöqtəli vergül. JASON HIRSCHHORN: nöqtəli vergül. Pop. Belə ki, bu xilas edək. Sehr olun. Oğlan Oh. Mən səhvlər bir neçə var. Line 11 Birinci səhv, bu deyir, ifadə gözlənilir ki, verilməsi oldu mənə bir səhv ikinci ki, int, səhv var. Ətrafında bəzi səhv. Kimə nə səhv bilir? Kurt? TƏLƏBƏ: Mən ehtimal edirəm bir vergül və vergül ola bilər. JASON HIRSCHHORN: OK, bir vergül əvəzinə nöqtəli vergül ilə. Belə ki, bütün biz düzeltmek lazımdır ki? TƏLƏBƏ: Xeyr JASON HIRSCHHORN: What else biz düzeltmek üçün lazımdır? TƏLƏBƏ: Biz string.h daxil var. JASON HIRSCHHORN: include string.h. Mən harada ki, daxil lazımdır? TƏLƏBƏ: siz də daxil etdiyiniz eyni yerdə digər məhsulları, sağ sonra stdio.h daxildir. JASON HIRSCHHORN: Bu çalışır Bakalým ilk ümumiyyətlə, mən istəyirəm, çünki run sonra ilk bir şey düzeltmek və o, sonra biz almaq hataları görmek. Beləliklə, biz terminal aydın olacaq nəzarət n, bu yazım etmək edək. Belə line 11 bir səhv. Nöqtəli vergül gözlənilir. Və mən hələ də alıram Bu xətt üzrə səhvlər. Belə ki, mənə bildiren bir səhv verilmiş deyil strlen nə anlamır, lakin bu məni səhvlər verir xətti, belə ki, başqa nə səhvdir? Mark? Marcus. TƏLƏBƏ: Siz aradan qaldırılması var İkinci int bəyannamə? JASON HIRSCHHORN: Sil İkinci int. Bu cəhd edək. İndi terminal sil. Sehr olun. Error. Dolayısı kitabxana elan funksiyası strlen. Belə ki, indi ki, səhv görürsünüz. Biz nə daxil etmək lazımdır? TƏLƏBƏ: String.h. JASON HIRSCHHORN: include string.h, biz # üst string.h daxil edəcəyik Ekranın. Nin qazanc ki, sehr edir. İndi tərtib. Belə ki, yenə şeylər üçün lazım bizim üçün loop zaman line 12 unutmayın biz, int i = 0, bu yaradılması edirik uzunluğu = strlen (s). Bu fantastik strategiyasıdır. Bunun üslubu, böyük deyil Bu dizayn böyükdür. Biz sonra bu səbəblərə daxil edə bilərsiniz lakin yalnız zəng etmək lazımdır, bu yolla əvəzinə hər bir bir dəfə strlen dəfə loop axır. Lakin, bir vergül istifadə etmək lazımdır və daha int ehtiyac yoxdur. Bu iki bəyan edirsinizsə birlikdə dəyişənlər, siz yenidən int ehtiyac yoxdur. Və sonra siz strlen istifadə etmək olacaq, əgər başqa kitabxana daxil deyil fəaliyyət stdio.h ya cs50.h etmək əmin string.h daxildir. Kurt? TƏLƏBƏ: Belə ki, sizə ehtiyac yoxdur, əgər Tipi Uzunluğu nə demək, ki, yoxdur bir int olmalıdır deməkdir? Siz iki müxtəlif ola bilməz orada növləri? JASON HIRSCHHORN: Beləliklə, siz ola bilər iki müxtəlif növləri var. Length baxmayaraq, burada int edir. Bu vergül çünki Length bir int edir və sonra eyni şey. TƏLƏBƏ: Yəni bu olacaq güman edir ki, ilk biri kimi eyni olmalıdır? JASON HIRSCHHORN: Eynilə elə. Biz indi bunu gedir, lakin siz deyilik haqqında iki dəyişənlərin daxil edə bilər bir veri növü istifadə eyni xətt. Belə ki, int x, y yaradacaq iki dəyişənlər. Ki, etmək, əgər verir Beləliklə int x, y, Mənə bir istifadə olunmamış dəyişən x və y çünki Biz onları istifadə etməyin. Yalnız əvvəl Belə ki, boşluq qoyaraq xülya oyun istifadə etmədikdə istifadə üçün bir şey. Gördüyünüz kimi, mən x və y yaratmaq bir vergül ilə eyni xətt üzərində. Bu iki integers yaradılması oldu hüququ var. Yaratmaq, bəli, tamamilə mümkün Belə ki, eyni xətt üzərində iki şeyi bir vergül ayrılmış. Baxmayaraq, bu o xilas edək. Belə ki, yazım var. Bizim üçün kodlama üçün sizə uşaqlar edirik. Edək ki, bir daha etmək, çalıştırın. Mənə bir string verin. [Işitilemez], onu ən etdi. Simli nədir? TƏLƏBƏ: Salam. JASON HIRSCHHORN: Salam. H-E-L-L-O, bir xətt üzrə hər bir xarakter. Böyük görünür. Nin daha run edək. Həmişə yoxlamaq gedən künc hallarda. Yaxşı künc halda nə yoxlamaq üçün var? Şagird: Bir sıra? JASON HIRSCHHORN: A nömrəsi. Belə ki, I 1 qoymaq lazımdır və bu, 1-görüntüler. Bu məktublar üçün xahiş, belə deyil bu nömrələr iş kimi görünür. Yaxşı künc halda yoxlamaq. Yaxşı bir künc nədir yoxlamaq halda? TƏLƏBƏ: A boş string. JASON HIRSCHHORN: Hm? TƏLƏBƏ: boş string kimi. JASON HIRSCHHORN: Boş string. Belə bir şey qoymaq deyil bildirin. Və nə çap edir? TƏLƏBƏ: Heç bir şey. JASON HIRSCHHORN: Heç. Çalışır kimi görünür. Daha çox künc hallarda çalışırıq, ancaq ola bilər ümumiyyətlə ədəd fərqli bir məlumatdır cəhd böyük, eləcə də bir şey deyil. Heç bir şey, sıfır, neqativ həmişə cəhd və hər şeyi böyük şeylər test, hər şeyi əlbəttə biz test lazımdır olmalıdır və 50 test olacaq yoxlayın üçün. Spell.c suallarınız var mı? OK, geri baş edək. Mən bir daha çox proqram var uşaqlar yazmaq üçün. Bu students.c deyirlər. Bu istifadəçi soruşur ki, bir proqramdır beş adları, sonra təsadüfi seçir və adları biri görüntüler. Bu proqram bir az daha çox biz yazdığı son iki cəlb Belə ki, niyə biz beş dəqiqə etmirlər biz edəcəyik sonra fərdi kodunu, və bir qrup kimi kodu. Bu proqram həmçinin bəzi şeylər cəlb Siz əgər əvvəl görüldü ola bilər Bunu necə haqqında bir sualınız var Mən sizin əl qaldırmaq, bunu. Mən artıq gəlib və qeyd edəcəyik düzgün istiqamətdə. Amma biz də bunu edirik bu, çünki Bəzi təqdim etmək üçün yaxşı bir yol olacaq çətin ki, mövzular. Belə ki, hüququ, işləyir? TƏLƏBƏ: Bəli. JASON HIRSCHHORN: bir öz növbəsində zaman etmək problem dəsti, orada bir çox yolları , lakin bəzi daha başqalarına nisbətən zərif. Bizə daxil dive edək # Cs50.h. daxildir # Stdio.h daxildir. int main void, buruq aşırma. Kıvırcık aşırma Inside, Mən iki şərh var. İlk biri xahiş olunur Beş adları user. İkinci bir təsadüfi seçin olunur və adlardan biri çap. Belə ki, ilk bir nə edək, xahiş beş adları üçün istifadəçi. Kim beş adları üçün istifadəçi xahiş etmişdir və necə ki bunu mənə deyə bilərsiniz? Yalnız iki nəfər birinci hissəsi idi. Üç adam birinci hissəsi idi. Dörd, beş. Tom, siz bunu necə edə bilərəm? TƏLƏBƏ: Siz simli elan edirik və sonra adı, bracket beş. JASON HIRSCHHORN: Dize bracket beş adı. Bunu bu xətti, nə string adı bracket beş? TƏLƏBƏ: Siz elan edirik strings bir sıra. JASON HIRSCHHORN: Bu strings bir sıra. Neçə strings gedir Burada uyğun? TƏLƏBƏ: Five. JASON HIRSCHHORN: Five. Əla. Biz bunu Adlar çünki zəng olacaq biz çox olanları almaq olacaq. OK, sonrakı? Sonra siz: TƏLƏBƏ loop üçün bir var - JASON HIRSCHHORN: loop üçün. Şagird: - i = 0 üçün. JASON HIRSCHHORN: (int i = 0 üçün. TƏLƏBƏ: nöqtəli vergül. JASON HIRSCHHORN: nöqtəli vergül. Şagird: Mən beş azdır. JASON HIRSCHHORN: Mən beş azdır. TƏLƏBƏ: nöqtəli vergül. JASON HIRSCHHORN: nöqtəli vergül. TƏLƏBƏ: i + +. JASON HIRSCHHORN: i + +. TƏLƏBƏ: Və sonra bağlanıb parantez. JASON HIRSCHHORN: Bağlı parantez, və sonra bir buruq aşırma. Kıvırcık aşırma Inside? TƏLƏBƏ: Və sonra printf. JASON HIRSCHHORN: Printf. TƏLƏBƏ: Açıq parantez, ad% d. JASON HIRSCHHORN: Üzr istəyirik? TƏLƏBƏ: adı. JASON HIRSCHHORN: adı. TƏLƏBƏ: Və sonra yer, və sonra% d. JASON HIRSCHHORN: Adı, kosmik,% d. TƏLƏBƏ: Və sonra / n, sonra bağlanıb. JASON HIRSCHHORN: Yəni adı, yer, % D / n, qapalı parantez. TƏLƏBƏ: Virgülle, i + 1. Üzgünüm. Bağlı quote, sonra vergül, i +1. JASON HIRSCHHORN: Bağlı quote, vergül, i +1. TƏLƏBƏ: Bəli. Və sonra növbəti line - JASON HIRSCHHORN: i + 1. TƏLƏBƏ: Bəli. Və sonra növbəti slayd adları bracket İ. JASON HIRSCHHORN: Next line adları bracket İ. TƏLƏBƏ: = string almaq. JASON HIRSCHHORN: = alın - kapital G-E-T - string. Bağışlayın, üzr. TƏLƏBƏ: Açıq Qapalı parantez və sonra - JASON HIRSCHHORN: Açıq, paren bağladı. TƏLƏBƏ: nöqtəli vergül. JASON HIRSCHHORN: nöqtəli vergül. OK, belə ki, siz array başlamaq sonra strings, adları, və keçmək loop üçün, beş dəfə bəzi çap saxlamaq sonra istifadəçi təklif və beş strings. Heç kimə hər hansı varmı Bu düzəlişlər? Tom, mən hesab edirəm hamı sizinlə razılaşır. Olduqca yaxşı görünür. OK. Niyə baxmayaraq, i +1 etdiniz? Şagird: Mən demək, yoxdur ola bilər, lakin bu, belə ki, i +1 adı bir beş ad. Əks halda, bu ad olacaq dörd adını sıfır. JASON HIRSCHHORN: Beləliklə, siz i +1 etdi əks halda ola bilər, çünki dörd vasitəsilə sıfır çap çünki ki, kompüter düşünmək necə, lakin insanlar həqiqətən kimi oxumaq deyil. Ki, başqa bir şey deyil karşılaşacağınız bilərsiniz. Bəzən bir şey çap zaman istifadəçi, siz onu bir etmək lazımdır az gözəlləşir, və bunu bu halda +1 i bir bu gözəlləşir etmək yolu. Mən də beş dəfə, simli adı bax beş, mən az beş edir. Siz beş aldığı bilirəm. Siz mənə onu əldə Beş adlar. Amma kodu etmək istəyirdi az daha möhkəm, bir şey biz , int kənarda, burada yoxdur bilər Biz bu kimi bir şey ola bilər # Müəyyən və biz ADLARI 5 edə bilər. Belə ki, əsasən, yerdə mən kapital yazmaq N, kapital A, kapital M, kapital E, kapital S ki, simli, əvəz edəcək kodu 5 ilə. Və ya ədalətli zəng edək - biz edəcəyik yalnız zəng. Belə ki, mən bütün caps müəyyən alıram NUMBER 5 olmalıdır. Belə ki, indi mən, sayı 5 malik yerdə bütün caps NUMBER ilə əvəz edə bilərsiniz. İndi, mən sayını dəyişmək istəyirsinizsə adları, mən nə üçün lazım olan bütün Mən bu bir xətt, line dörd, # 5 nömrəli müəyyən 10 dəyişdirmək, və ya 4 dəyişir. Kodunuzu uzun olur zaman, siz deyilik bütün yerlərdə yadda gedir sizə istəyirdim, nə qədər adları qoymaq, və bir miss sizə üçün, bu bir şey tapmaq üçün, bunu üçün yaxşı bir yoldur sonra top və yalnız bu söz istifadə hər yerdə kodunuzu ərzində. Marcus? Şagird: stylistically üstünlük verilir qlobal bir müəyyən daha daimi n? JASON HIRSCHHORN: Belə ki, stylistically qlobal çox üstünlük sabit n müəyyənləşdirilməsi? Belə ki, siz bilər deyərək edirik bunu, int sayı = 5? TƏLƏBƏ: onlar samit var C və ya yoxdur? JASON HIRSCHHORN: və ya İns - bərabər. Beləliklə, siz yalnız deyərək edirik qlobal dəyişən? TƏLƏBƏ: Bəli. JASON HIRSCHHORN: Yəni stylistically, mütləq bir sağ var heç bir cavab, lakin o, həm də daha yaxşı yalnız bu təsadüfi atma çox kodunuzu ərzində nömrələri. Biz onlara sehrli nömrələrə zəng. Mən sizin koda baxmaq və ya zaman heç kimə onun vasitəsilə oxu, onlar yalnız bu təsadüfi nömrələri istəmirəm mənası yoxdur ki. Adətən Hətta sayı 26, əlifba hərflərin sayı, bu top əlifba qədər müəyyən etmək daha yaxşıdır və ki, simli sayının 26 qazanc anlamlı əgər. - Və ya problem bir çox qurmaq Yenə bu barədə danışmaq etməyib vaxt, lakin əvəzinə yalnız atma hər yerdə 25 və ya 10-siz dörddəbir kimi sayı 25 və ya 10 kimi saxlamaq Dime ki, daha asan edir kim üçün kod vasitəsilə oxu oldu siz ki sayı seçdi niyə başa düşürük. Və sizin üçün də, heç istəyirsinizsə etmək kodunuzu yeniləmək, onu bir az edir daha güclü. Bəli? TƏLƏBƏ: Bu kod da gedir sonra bizim üçün olmalıdır? JASON HIRSCHHORN: Bu kodlar Bütün Biz birlikdə yazılı ki, size e-məktubla olacaq uşaqlar və mövcuddur. Bəli. Belə ki, beş adları üçün istifadəçi xahiş edirik. Təsadüfi seçin və çap adlardan biri. Kim bu xətt idi? Bu burada trickiest xəttidir. Bağışlayın, Tom. Siz həqiqətən yaxşı bir iş idi, lakin bu bir az trickier edir. Marcus, davam. Şagird: Yaxşı, ilk siz olacaq stdlib.h və time.h. daxil lazımdır JASON HIRSCHHORN: Yəni sizə deyərək edirik üst, daha iki kitabxana daxildir. Siz mənə S-T-D-L-I-B daxil etmək istəyirəm dot H, Standard Kitabxana və nə biri idi? TƏLƏBƏ: Time.h. JASON HIRSCHHORN: # time.h. daxildir Belə ki, bu iki kitabxana var. Edirəm ki, biz istifadə olacaq indi güman Bu olan funksiyaları lazım nə olan iki, daxil etmək? TƏLƏBƏ: Beləliklə, birinci sen srand yazmaq üçün gedir. JASON HIRSCHHORN: Srand. TƏLƏBƏ: (vaxt (0) JASON HIRSCHHORN: Üzr istəyirik. Srand (vaxt ( TƏLƏBƏ: 0. JASON HIRSCHHORN: 0. TƏLƏBƏ:)), nöqtəli vergül. JASON HIRSCHHORN: Another qapalı paren? Nöqtəli vergül. Mən yalnız əvəz etmək gidiyorum NULL ilə sıfır. Bu, eyni şey haqqında, ancaq edəcəyik Ümumiyyətlə, siz NULL göreceksiniz biz bu barədə danışmaq lazımdır ikinci xətti. TƏLƏBƏ: Stylistically daha yaxşıdır? JASON HIRSCHHORN: Ümumiyyətlə, insanlar sağ NULL, lakin eyni şey. TƏLƏBƏ: Və sonra int adı. JASON HIRSCHHORN: Int adı. TƏLƏBƏ = JASON HIRSCHHORN = TƏLƏBƏ: Rand. JASON HIRSCHHORN: Rand. TƏLƏBƏ: () JASON HIRSCHHORN: () Şagird: modulo nömrəsi. JASON HIRSCHHORN: modulo nədir? Xarakteri? Faiz xarakter? Şagird: Yüzdə xarakter. Siz üst müəyyən ki modulo sayı. JASON HIRSCHHORN: modulo sayı. TƏLƏBƏ: Və sonra nöqtəli vergül. JASON HIRSCHHORN: nöqtəli vergül. TƏLƏBƏ: Və sonra yeni xətt, printf. JASON HIRSCHHORN: Printf. TƏLƏBƏ: ( JASON HIRSCHHORN: ( TƏLƏBƏ: " JASON HIRSCHHORN: " TƏLƏBƏ:% s / n JASON HIRSCHHORN:% s / n TƏLƏBƏ: " JASON HIRSCHHORN:% s / n " TƏLƏBƏ: Virgülle, yer adları. JASON HIRSCHHORN: Space - TƏLƏBƏ: Oh, mən tapmaq, nə biz bura onu zəng etdi? JASON HIRSCHHORN: Biz bu adları çağırıb. TƏLƏBƏ: Açıq bracket, ad. JASON HIRSCHHORN: Açıq bracket, ad. TƏLƏBƏ: Bağlı bracket. JASON HIRSCHHORN: Bağlı bracket. TƏLƏBƏ) JASON HIRSCHHORN) TƏLƏBƏ: nöqtəli vergül. JASON HIRSCHHORN: nöqtəli vergül. OK, bu xilas edək. Bu Məcəllənin edək. Tələbələr. Bu Məcəllənin run edək. Tələbələr. Deyil. / Tələbə. . / Tələbələr. Adı biridir. Biz Davuda demək lazımdır. Adı iki, RJ. Adı üç Rob. Adı dörd Lucas. Adı beş Joseph. Və o, yenidən Yusif çap edir. Belə ki, Sizi bir daha bu run edək. Mənə eyni adlar edək. David, RJ, Rob, Lucas, Yusuf. Və David mənə vaxt verdi. Mən eyni şey idi, lakin o, verdi mənə fərqli bir şey, və var çünki, əlbəttə, biz xahiş edirik təsadüfi adı. Belə ki, mənə dolaşan off əsasən, hesab edirəm ki, otaq ətrafında ki, insanların çoxu yəqin ki, birinci hissəsinin hüququ qazanıb ki, array yaradılması və sonra əldə bütün adları. Mən 16 vasitəsilə xətləri 10 söhbət alıram. Amma 21 vasitəsilə xətləri 18 yəqin ki, var bəzi şeyləri sizdən əvvəl görmədim elə həmin yolu getmək bildirin. Bu xətt, srand vaxt NULL əhəmiyyətli deyil - Üzr istəyirik, bu aşağı skip imkan xətti, Rand (). Yəni, bir təsadüfi nömrə verir təsadüfi tam. Və insan randı hit əgər, hansı siz bir çox idi - M-A-N yer R-A-N-D - bu kimi terminalında, M-A-N yer R-A-N-D, Enter düyməsini basın. Siz əl qədər gəlib ki, ki Rand oxumaq bilər komanda nəticələri num yalançı təsadüfi bayt təsadüfi sayı əkin sonra generator bir dəfə. Belə ki, təsviri var. Bu Rand nə olduğunu verir bir təsadüfi nömrə zaman ki, funksiyası zəng. Təəssüf ki, bu, həqiqətən təsadüfi deyil yalnız təsadüfi zəng əgər çünki bəzi toxum, bəzi almadan nöqtəsi, həmişə seçəcək eyni bir və bir formula istifadə edir növbəti bir müəyyən etmək. Siz Rand zəng əgər, yalnız lazımdır eyni şey verir. Bu, çox gözlənilən olacaq. Bu, həqiqətən təsadüfi olmayacaq. Belə ki, biz nə etmək lazımdır, Marcus başına Mənə təlimatlar, toxum Rand idi başqa bir şey, hansı nə ki, srand fəaliyyət göstərmir. Bir az daha çox bir şey ilə toxum randı Eyni şey çox təsadüfi, və O, zaman NULL ilə əkin hansı yalnız Konvensiyanın, mövcud deyil, saniyə vaxt. Belə ki, hamı deyil ki, hərfinin edirik dəqiq at kodu çalıştırmak üçün gedir Eyni ikinci, belə bir təhlükəsiz bahis ki, vaxt NULL fərqli olacaq hər dəfə bu kodu çalışır. Safe bahis beləliklə, srand olacaq toxum randı ki, fərqli bir şey, hər ilə bir zaman. Belə ki, Konvensiya ilə, biz bir istəyirəm random number, biz bu xətti yazmaq srand vaxt NULL, bizə bir çox vermək daha təsadüfi toxum, sonra biz çalıştırmak Bizə bir random number verir randı. Bəli? TƏLƏBƏ: siz nə deyə bilərsiniz Əgər toxum ilə demək? JASON HIRSCHHORN: toxum kimi - belə Rand bir sıra seçin gedir və bəzi istifadə etmək olacaq formula orada almaq üçün. Belə ki, bir şey ilə başlamaq olacaq və sonra əsasən bir şey çevirmək ki, formula off. Her zaman eyni şey versələr, həmişə çevirmək olacaq eyni şey. Ki, ilk şey Beləliklə, siz bu toxum verir. Belə ki, bir şey vermək istəyirəm ilə başlamaq üçün müxtəlif və elə fərqli bir şey çevirmək olacaq. Və sonra nəhayət, line 20, Bu% adlanır modulo ki, qarışıqdır. Bu bir az bir şey var həqiqətən olmayan Burada müxtəlif real həyatda riyaziyyat var. Lakin mahiyyətcə, bir nəhəng almaq zaman sayı və siz C bölmək nə qalan olur? TƏLƏBƏ: Bu qaralar olur. JASON HIRSCHHORN: Bu qaralar olur. Belə ki, 3 bölünür 20 nədir? Ki, nə qayıtmaq yoxdur siz 20 3 bölünür. Bağışlayın, 3 10 bölünür. Ki, siz nə qayıtmaq edir? TƏLƏBƏ: [işitilemez]. JASON HIRSCHHORN: 10 yalnız 3 bölünür yekunları 3 deyil, 3 qalan 1. Nə 10 modulo 3 qaytarır Beləliklə, yalnız qalan 1-dir. 10 bölünür bilmək istəyirdi Belə ki, əgər 3 həqiqətən, siz ki, 3 bölünür 10 etmək, siz 3 almaq istədiyiniz və sonra 10 modulo 3 etmək və istədiyiniz siz 1 almaq istiyorum. Belə ki, 10 bölünür ki, həyata ediyorum 3 3, qalan 1-dir. Və bu istiqamətdə, Rand ola bilər bir tam, mahiyyətcə. Modulo deyib, belə ki, onu bölmək Bu halda 5-ci olan sayı. Və heç bir sıra bölmək əgər, tam zaman az olmalıdır ki sayı. Bir sıra 5 ayırıcı olduğunuz Belə ki, qalan həmişə olacaq sıfır dörd vasitəsilə. Bu math aparılır necə var. Belə ki, kiçik bir tərəfindən moduloed sayda nömrə həmişə qayıdacaq qalan və həmişə bir qayıdacaqlar sayı, az var ki sayı bölünür. Heç kim haqqında hər hansı bir sualınız varmı modulo, çox olacaq, çünki çox lazımlı, mən əmin etmək istəyirəm bunu hər kəs başa düşür? Sərin. Və biz bu proqram işləyib olduğunu gördüm. OK, hərəkət. Belə ki, növbəti, biz daxil olacaq funksiyaları və biz getmək olacaq bu məhsulları qalan vasitəsilə olduqca Mən almaq istəyirəm tez çünki command line dəlilləri. Belə ki, funksiyaları, mahiyyətcə var gezdiğiniz kimi, qara qutuları. Onlar adlı parametrləri şeyi almaq onlar da, onlara bir şeylər , onları dəyişdirmək və ya bəzi yan təsirləri yaratmaq və nəhayət, onlar tüpürmək olan şey, qaytarılması dəyər. Heç kim mənə bir səbəb verə bilər niyə biz funksiyaları istifadə edir? Kimsə Yoxmu? Biz funksiyaları istifadə edin niyə? Bir səbəb Hər kəs? Mən iki əlləri gördüm. Yaxşı bir səbəb nədir? Marcus? TƏLƏBƏ: eyni zəng etmək varsa kod neçə dəfə yığın. JASON HIRSCHHORN: OK, sizə lazım əgər eyni yığın zəng etmək üçün neçə dəfə kodu. Jeff, müxtəlif səbəbi var idi? TƏLƏBƏ: Just ki, daha az kod bilər. JASON HIRSCHHORN: Siz az kod bilər. Sağ. - Əgər bir şey bir çox etmək istəyirsinizsə əvvəlki kodu, mən ola bilər string beş dəfə almaq yazılı, lakin loop bu gözəl və baxmaq edir üçün daha az kod yazmaq lazımdır. Funksiyaları bənzər bir fikir var. Mən, eyni şey bir çox etmək istəyirsinizsə funksiyası üçün hərəkət və zəng hər dəfə fəaliyyət göstərir. Bu sizin üçün bir şey edəcəyik. Bu böyük bir səbəbi var funksiyaları istifadə etmək. Belə bir funksiyanın anatomiyası. Funksiyası adətən olacaq bu kimi görünür. Bu, geri növü ilə başlamaq lazımdır sonra adını almaq lazımdır. Başqa cür, dəlilləri çıxacağıq parametrləri kimi, daxili məlum o buruq aşırma, will kodunuzu yazın. Biz bir funksiyası bir çox gördük. Əsas var. Burada üzərində əsas eklenmiş edir ki, anatomiya əvvəl idi. Burada int nə demek edir? Int nə deməkdir? Mən int əsas yazarkən (void). TƏLƏBƏ: Axır növü? JASON HIRSCHHORN: Üzr istəyirik? TƏLƏBƏ: Cavab növü. JASON HIRSCHHORN: Int edir doğru, növü qaytarın. Ana bir int qaytarır. Əsas nədir? Şagird: Function adı. JASON HIRSCHHORN: Ana edir funksiyanın adı. Məhz hüququ. Və boşluq? Parantez içinde etibarsız nədir? TƏLƏBƏ: Bu daşımır hər hansı bir xarici dəyəri. JASON HIRSCHHORN: Belə etibarsız - hüququ. Parantez içinde, biz qoymaq parametrləri və ya dəlilləri funksiyası gedir, nə edir qara qutu içərisində. Əgər boşluq yazarkən sizə deyə edirik Bu da heç bir şey edir Belə ki, int main etibarsız əsas vasitələri Daxil bir şey görmür Kıvırcık aşırma Inside, biz bəzi kodunu, və sonra sonunda bax sıfır qaytarın. Sıfır qaytarılması nə deməkdir? Yaxşı, biz geri növü haqqında danışdı. Ana bir int qayıtmaq lazımdır. Bu xətt nə var. Bu int, sıfır qaytarır. Əlbəttə ki, biz görmürsənmi ki, bir çox proqramlaşdırma biz nə çünki biz nə maşın və derleyiciler biz bu gün istifadə ki, xətt ehtiyac yoxdur. Ana bilir ki, kifayət qədər xüsusi Əgər əsas, yalnız sonunda çatdıqda hər şey yaxşı keçdi əgər sıfır qaytarın. Əslində, bir şey də getmək deyilsə, əsas tez-tez müxtəlif qayıdacaq ki, bir şey signifying sayı Proqram səhv getdi. Siz kodu görmək Belə ki, ümumiyyətlə, zaman, geri sıfır yazmaq, lakin bu yaxşı yoxdur bu arxasında baş verən bilmək səhnələri yazmaq zaman, çünki funksiyası bir növü, lazımdır edir bir dönüş xətt daxildir. Sizə deyə istəyirsinizsə mən gidiyorum bir int qayıtmaq, siz var bir şey geri yazın. Siz burada etibarsız qədər demək olarsa üçün başlanğıc, etibarsız əsas etibarsız, Məsələn, o qaytarılması deyil şey - etibarsız heç bir şey deməkdir - belə ki, geri line ehtiyac yoxdur. Amma heç deyil ki, bir şey yazmaq qaytarılması növü üçün ləğv, sizə lazım qaytarılması və deyir ki, bir xətt orada bir şey qoymaq lazımdır ki növü uyğun gəlir. Bu barədə hər hansı bir sualınız? Sweet. Sayt. Bu var bir şeydir eləcə də toxunub. Hər dəyişən, biz bilirik kimi, var müəyyən həcmi, və əsasən var söhbət olduğu dəyişən bilər və ya edilə bilər. Və mən nə demək istəyirəm buruq aşırma qalır Kıvırcık aşırma daxilində. Biz bu kodu baxmaq Belə ki, məsələn, əgər biz qlobal dəyişən müəyyən edirik əsas, int bir kənarda, qədər burada üst. Biz bir zəng etdiyiniz bir daxili əsas Int. Biz bir daha buruq aşırma var və başqa bir int bir zəng edirik. Biz üç kodu var. Bunlar eyni şey deyil. Mən üç fərqli dəyişənlər yaratdıq. Sonra bu daxili buruq daxilində aşırma, mən = 4 deyirlər. Bir söhbət ki, hansı ki, Birinci, ikinci, və ya üçüncü bir? TƏLƏBƏ: Üçüncü biridir. JASON HIRSCHHORN: Bu danışdığı üçüncü haqqında. Bir həqiqətən var hamısı ola bilər Bu xüsusilə danışıb Məsələn, onların əhatə dairəsi bütün gedir, çünki Bu olanları buruq aşırma daxil. Lakin, hər şeyi eyni zəng adı, gizlətmək deyilən bir şey var. Belə ki, yalnız ilə məşğul və ya düzeltme və ya istifadə Ən son dəyişən və ya bir Sizə yaxın. Belə ki, daxili burada bu üçüncü bir yaxın ki, xətt, a = 4, belə ki, üçüncü təsir göstərir. Və son xətti, bir = 2, ki, birinci, ikinci, söhbət, və ya üçüncü? TƏLƏBƏ: İkinci. JASON HIRSCHHORN: Bu danışdığı , ikinci haqqında. Əlbəttə ki, üçüncü bir ən yaxın kodunu, lakin bir üçüncü kənarda mövcud deyil o buruq aşırma. Sonra o qapalı buruq almaq o getdi kimi burğu ki, var mahiyyətcə. Beləliklə, siz yazmayıblar yalnız iki olanlar İlk iki və əlbəttə, indi ikinci bir yaxın oldu. Belə ki, yaxşı bir şey deyil həcmi barədə xatırlayıram. Məsələn, mən Karşılaştığınız əminəm bir bu loop isə yoxdur. Siz dəyişən daxilində başlamaq edin loop və sonra üçün cəhd etməyin isə kənarda olmaq, yəqin ki, bu kimi xəbərdarlıq var dəyişən yoxdur. Bu, çünki daxilində fikir var şeyi mövcud o buruq aşırma daxilində. Buruq aşırma nəhəng tebrik kimi ki, Başqa bir, sizin kodu ötürür bu barədə düşünmək yolu. Belə bir şey, başqa bir funksiyası kodu, hellofunction.c siz uşaqlar üçün. Biz hələlik ki, keçmək üçün gedir, lakin edirik bu mən sizi həvəsləndirmək şeydir öz təcrübə. Olan əsas zənglər proqram yazmaq bir həyata yazdıran bir funksiyası istifadəçi təbrik. Bu əhəmiyyətli Salam dünya alaraq oldu ki, printf daxil abstracting bir funksiyası. Amma indi ki, doğru etmək fikrində deyilik biz çox vaxt yoxdur, çünki Mən xoşuma gəldi olardı kimi tərk edib. Funksiyası bəyannamə belə. Biz əvvəl bu gördük. Siz bir funksiyası yazmaq istəyirsinizsə, Siz kompüter bildirin lazımdır və əsas mövcud olduğunu bilirik. Beləliklə, biz yuxarıda əsas yoxdur, nə biz yazmaq qaytarılması növü, adı və parametrləri, sonra aşağı əsas aşağıda aşağı burada, biz, həqiqətən, line surəti və sonra faktiki kodu yazın. Beləliklə, bu yolla, funksiyası zəng əgər üst əsasən, əsas bilir ki, Mən, əgər hello, məsələn, mövcud salam zəng və sonra üçün görünür etmək həyata aşağı aşağıdır. Mən bu daxil deyil ne olur top up line (void) salam ləğv? Mən bu xətt eklemezseniz və əsas zənglər hello, Ben bir səhv olacaq. Mən səhv çünki almaq üçün gidiyorum compiler bilmir Bu şey mövcud. Buna görə bənzər biz # daxildir yoxdur cs50.h. Mahiyyətcə cs50.h nə edir orada string almaq qoyulması edir. Bu var int almaq qoyulması oldu. Bu funksiya bütün qoyaraq oldu up əsas əvvəl ki, prototipləri zaman Əgər əsas onlara zəng, əsas bilir bu şeylər var ki. Yəni o. H faylları nə. Və beləcə öz etmək olacaq, əgər funksiyası, Sizi əmin etmək var siz var ki, prototip qoydu. Bu günə qədər suallarınız var mı? Command line arqumentlər. Bu başa çatdırmaq üçün olacaq nə və sonra inşallah edəcəyik bəzi pset ilə sıxmaq. Biz sıxmaq edə bilərsiniz əgər Bilmirəm ki, zaman, çünki, lakin burada olan uşaqlar ilə, və əgər siz uşaqlar bir az sonra, biz demək istəyirəm kənarda üzərində bilərsiniz. Ancaq biz ilə başa olacaq command line arqumentlər son 15 dəqiqə. Biz oyaq, Michael? Siz oyaq mi? Yaxşı. Əgər yuxu əgər Bilmirəm göz bağlanıb ilə. Bu çətin olardı. Command line arqumentlər. Bu informasiya keçmək üçün bir yoldur bir proqram. Nəhayət, biz başqaları qarşılaşa bilərsiniz. Lakin mahiyyətcə, biz dayandırmaq olacaq biz istəyirsinizsə int main (void) yazılı bir command line arqumentlər edir. Bu şey yazmaq olacaq int main (int argc adlı string argv, mötərizədə. Bu qarışıqdır. Yəni olmayan məktublar bir çox var insan English, biz olacaq İndi onlara açmaktır. Argc arqument sayı üçün hazırdır - və yenə bütün bunlar olacaq online mövcud ola - və dəlilləri sayı var. Argv arqument vektoru üçün durur, və həmin dəlilləri özləri edir. Bu strings bir sıra var. Biz, həqiqətən, bir sıra gördüm gün əvvəl tellər. Biz son bir yaradılıb biz kodlu proqram. Belə ki, burada bir misal var. Mən yazmaq. / Ohai cs50 bölmə mənim command line edir. Bu halda Argc 3 bərabərdir. Argv bracket 0 ohai, argv bracket 1 cs50 deyil, argv bracket 2 bölüm. Yenə argc, dəlilləri sayı və səyahət siz bir az bit, biz həmişə adını saymaq ilk arqument kimi fəaliyyət göstərir. Belə ki, bu halda, üç var arqumentlər funksiyanın adı və sonra da yazdığınız bu iki Sonra, biz o xilas olacaq argv ildə arqumentlər özlərini. Və yenə, biz əvvəl gördüm kimi, biz də bu son proqram biz kodlu. Siz serialın vasitəsilə hərəkət edə bilər argv və həmin strings almaq. Yəni biz nə mahiyyətcə var bizim son proqramı sonu. Biz təsadüfi adı seçilmiş və sonra getdi adları bracket hər hansı və çap simli orada yerləşir. Yalnız bir sıra üst, çünki strings özləri kimi, seriallarda var danışdıq, siz Diziler ola bilər serialları, olan mahiyyətcə nə argv edir. Haqqında hesab edə bilər bir yolu Bu satır ve sütun edir. İndi doğru cəlb edə bilər. Belə ki, argv - ki silinmə deyil. Nin ohai altında cəlb edək. Mən ohai cs50 hissəsində yazırdı Belə ki, əgər Mən kəsmək gidiyorum Bu, misal üçün bölmə. Amma mahiyyətcə, mənim çox-ölçülü dizi, ohai cs50, biz təriqət etmək olacaq. Belə ki, burada, mən istifadə edə bilərsiniz - - Mən yalnız argv bir sıra vermək əgər Bu səhvdir. Bu sxemdə yanlış nedir? TƏLƏBƏ: sıfır başlayın. JASON HIRSCHHORN: Bu olmalıdır sıfır ilə başlayın. Mən yəqin ki, bunu da dönüşümlü, lakin Mən artıq bu barədə tərtib etdik, çünki mən oldum İndi orada onu tərk edəcəyik. Amma bu, sıfır başlayır. Bu doğru. Bu kiçik Əgər Üzgünüm. Uşaqlar cür edə bilərsiniz? Mən argv 0 əgər Beləliklə, mən lazımdır ohai bütün almaq. Mən argv 1 varsa, mən cs50 bütün almaq lazımdır. Mən argv 2, mən təriqət bütün almaq lazımdır. Amma indi biz dediyi kimi, strings Diziler özləri edir. Belə ki, nə edə bilərəm mən müalicə edə bilər çox ölçülü sıra kimi, və mən xətləri boyunca bir şey edə bilərsiniz yalnız mənə verir argv 0, 0, xarakter 0. Mənə yalnız h verir Argv 0, 1. Yalnız mənə verən Argv 1, 3, aşağı burada cs50 bu 0. Belə ki, çünki strings özləri biz Diziler qoyulması olduğunuz olunur ki, bir sıra. Biz indi serialları sıra var, və biz ilk massivinə index bilər sonra ikinci massivinə index. Beklediğiniz kimi, biz bunu - yalnız bu iki qoyaraq Biz yalnız kvadrat mötərizədə etmək bir-birinə hüququ gələcək. Beləliklə, bu nümunə, argv 1 cs50 və argv 1, 2, biz dediyim kimi, yalnız 5-dir. Heç kim haqqında hər hansı bir sualınız varmı çox ölçülü Diziler? Siz uşaqlar zəhmli edirik. Sweet. Belə ki, burada başqa bir proqram var və bu etdiyiniz yekun şey İndi nə gedir. Mən sizə bir proqram yazmaq istəyirəm ki, bir istifadəçi tam adı, iki və yalnız edir iki command line arqumentlər və nəhayət, ilə təbrik çap ki, istifadəçi adı daxildir. Üç və ya dörd Beləliklə, nə siz etmirlər dəqiqə biz getmək lazımdır, sonra bunu və üzərində bir qrup kimi və sonra biz bükmək lazımdır? Və yenə də, demək zaman almaq təsviri hər istifadəçinin tam adı Bu problem, bu komanda olmalıdır line arqumentlər istifadə string almaq. Bəli, Marcus? TƏLƏBƏ: Siz demək Belə ki, iki komanda line arqumentlər ki, əlavə . / və run, və ya - JASON HIRSCHHORN: Yaxşı sualdır. Ki,. / Run, üç, o cümlədən Do command line dəlilləri. Və ya, bu. / Kişiselleştirilmiş o cümlədən Bu halda ki, çünki Bu fayl adı. Belə ki, argc üç olardı. Amma yalnız iki dəlilləri istəyirəm proqram verilir. Hesab edirəm ki, göstərməlidir. Mən göndərmək əvvəl dəyişiklik etmək lazımdır bu və uşaqlar onlara göndərin. TƏLƏBƏ: Nə əgər orta ad var? JASON HIRSCHHORN: Bir orta varsa adı, siz uğur bitti. Üzgünüm. Yoxsa yalnız Shakira getmək əgər, Siz uğurlar həyata da istəyirik. Bəli? TƏLƏBƏ: Belə ki, insanlar yoxdur zaman cs50.h, onlar argv müəyyən yoxdur char star argv kimi? Yoxsa hələ string argv adlanır? JASON HIRSCHHORN: Bəli. String Belə ki, yenə maska ​​nə üzərində məhz orada baş verir. Bəlkə unpacked olacaq ki, Çərşənbə, amma tezliklə. Bu təlim təkərlər kimi. Mahiyyətcə, bu Çünki eyni şey. Belə ki, proqrama digər dəqiqə bildirin Bu, sonra biz artıq gedəcək bir qrup kimi, sonra Dediyim kimi bükmək. Və mən, onlar hələ də əlavə konfet olduğunuzu düşünürəm belə ki, uşaqlar inşallah almaq lazımdır ki, və ya edin. Siz hələ yazı Bağışlayın, əgər amma dalış və biz istəyirik birlikdə bitirmək bilər. Belə ki, I # daxildir yazılı var cs50.h # stdio.h daxildir. int main (void), buruq brace, buruq burğu, daxilində üç xətt pseudocode, bir istifadəçi tam adı almaq iki və yalnız iki command line arqumentlər ilə təbrik çap ki, istifadəçi adı daxildir. Ilk Belə ki, almaq bir istifadəçi tam adı. Məni almaq kömək edə bilər bir istifadəçi tam adı? Mən bir hissəsi necə etməliyəm? Uşaqlar ilk düşəni mi? Bir istifadəçi tam adı alın. Yaxşı ki, bir command line üçün dəlil, nə yazmaq lazımdır? Mən nə dəyişdirmək lazımdır mənim funksiyası bəyannamə? TƏLƏBƏ: Siz istəmirəm artıq boşluq olmalıdır. JASON HIRSCHHORN: Eynilə elə. Mən bunu etibarsız olmaq istəmirəm. Mən bunu nə üçün istəyirsiniz? Şagird: Int argc. JASON HIRSCHHORN: Int argc. TƏLƏBƏ: Dize argv. JASON HIRSCHHORN: Dize argv. TƏLƏBƏ: Bracket, bracket. JASON HIRSCHHORN: Bracket, bracket. Bu doğru deyil, və ki əslində necə almaq gidiyorum bir istifadəçi tam adı. Onlar orada qoymaq olacaq. Belə ki, bir həyata. Belə ki, indi istəyirəm iki və yalnız iki command line dəlilləri. Nuh Beləliklə, mən bir yol nə əmr sayı yoxlamaq line arqumentlər var? TƏLƏBƏ: Siz bir bəyanat əgər bunu. JASON HIRSCHHORN: Əgər Şərhdə, dəqiq. Mən vəziyyəti nə istəyirsiniz? TƏLƏBƏ: 3 argc çox edin. JASON HIRSCHHORN: Əgər argc 3-dən böyükdür. Argc 3-dən böyük, nə yoxsa? TƏLƏBƏ: Axır 1. JASON HIRSCHHORN: 1 qayıt. Ki, var təmin edəcək iki və yalnız iki? TƏLƏBƏ: Xeyr Argc büyükse 2-dən 3 və daha az. JASON HIRSCHHORN: argc böyükdür edin 3 və argc 2-dən az daha. Mən yalnız bu yaza bilər bir yolu nədir bir xətt və ya istifadə etmədən və operator Boolean? TƏLƏBƏ: Bu 2 bərabər deyil. JASON HIRSCHHORN: Əgər argc 2 bərabər deyil. Eynilə elə. Argc, 2 bərabər deyil Belə ki, əgər mənə bu proqram verəcək kişiselleştirilmiş, mən bunu çalıştırdığınızda, və mənə verəcək neçə command line arqumentlər? Nə qədər mən kontrol edəcək? Bağışlayın. Mənə reword edək. Argc = 2, neçə şey idi əgər istifadəçi xəttə yazmaq? TƏLƏBƏ: biri. JASON HIRSCHHORN: Just biridir. Belə ki, əvvəl, siz doğru Nuh idi. Mən, həqiqətən, orada qoymaq üçün nə lazımdır? Şagird: 3 bərabərdir. JASON HIRSCHHORN: Argc yox bərabər 3 etmir. Mən istəyirəm, çünki mən 3 bərabər istəyirəm kişiselleştirilmiş plus digər iki. Argc bərabər 3 deyil Belə ki, 1 qaytarın. Niyə 1 qayıtmaq demək idi? Şagird: Çünki səhv deməkdir. JASON HIRSCHHORN: bu yanlış deməkdir ki, və nə ki, nə olacaq? TƏLƏBƏ: istifadəçi Re-təklif. JASON HIRSCHHORN: Bu çıxmaq olacaq proqram, belə ki, run olacaq yenə, amma biz bir şey yoxdur Burada yenidən soruşmaq üçün. Hesab edirəm ki, xahiş etməyib. Belə ki, məhz doğru. Yalnız proqram fit 1 qayıt. Böyük. Və istifadəçi salam çap ki, onların adı daxildir. Mən necə edə bilərəm? Anna? TƏLƏBƏ: Printf. JASON HIRSCHHORN: Printf. TƏLƏBƏ: (" JASON HIRSCHHORN: ( TƏLƏBƏ: "salam JASON HIRSCHHORN: "salam TƏLƏBƏ:% s JASON HIRSCHHORN:% s TƏLƏBƏ: / n JASON HIRSCHHORN: / n TƏLƏBƏ: ", JASON HIRSCHHORN: ", TƏLƏBƏ: Argv JASON HIRSCHHORN: Üzr istəyirik? TƏLƏBƏ: Argv JASON HIRSCHHORN: Argv TƏLƏBƏ: Square Mötərizədə 1. JASON HIRSCHHORN: Square Mötərizədə? TƏLƏBƏ: 1. JASON HIRSCHHORN: 1. TƏLƏBƏ: Və) nöqtəli vergül. JASON HIRSCHHORN) nöqtəli vergül. Bizə bu run edək. Kişiselleştirilmiş olun. . / Kişiselleştirilmiş. Bu yalnız çıxın. Niyə tərk etdi? TƏLƏBƏ: Siz heç bir arqument qoymadı. JASON HIRSCHHORN: getmədim heç bir arqument daxil qoymaq Böyük görünür. Siz uşaqlar bunu nailed. Belə ki, daha, siz argv və getdi əvvəlində argc da yoxlanılır. Bu iki əhəmiyyətli şeyi xatırlamaq. Beləliklə, biz əvvəl bizim son iki dəqiqə tərk, biz pset iki almaq, ancaq deyil sonra qalmaq istəyirsinizsə kimi dedim, 10 dəqiqə, mən o getmək üçün xoşbəxt ki, uşaqlar məntiqi ilə artıq Bu problem dəstləri üçün. Biz bu gün əhatə etmək üçün çox idi mən onlara əldə etməyib. Ümumiyyətlə, mən daxil etmək istəyirəm ki, sonunda. Siz ətrafında qalmaq istəyirəm əgər 10 dəqiqə ətrafında qalmaq. Biz bunu edəcəyik. Sonra kimi, başında qeyd pset sıfır və bir ki, qazanacağıma kimi geri feedback mümkün qədər tez. Məqsəd pset bir geribildirim almaq üçün şərh hissəsi, pset iki səbəbiylə əvvəl. Bəzi səhvlər və ya qəbul Belə ki, əgər stylistically, əşyalar, daha yaxşı ola bilər Siz məlumatlar var ki, lazımdır, belə ki, pset iki eyni şeyi deyil. Və sonra gələcək, bütün almaq lazımdır Sizin pset Əlaqə və şərhlər növbəti bir səbəbiylə geri əvvəl. Nəhayət, mən başqa qoymaq bilər, əgər Əlaqə üçün plug. Bu ilk bölüm. Bu, mənim birinci hissəsində olmuşdur bu il tədris. Var gedin. , Yaxşı və pis stuff yaz və mən etmək üçün istifadə edəcək yaxşı Bölmə növbəti dəfə. Və son, daha sizə lazım əgər bir şey varsa, Mənə bildirin. Mən sizə uşaqlar kömək etmək üçün daha çox xoşbəxtəm. Yalnız konfet istəyirsinizsə, mən əlavə konfet olacaq. Mən sizə çatdırmaq üçün xoşbəxtəm. Bu inanılmaz kurs olacaq. Bu biridir, əgər mənim sevimli Əlbəttə, mən bütün həyatında qəbul etdik, və mən ki, olacaq sizin üçün gözəl. Belə ki, əlimdən gələni etmək istəyirəm sizin üçün ki, zəhmli edir. Mən sizə değilseniz bir e-poçt göndərmək üçün gidiyorum mənim bölmə və ya Nuh, və hər biri ilə cəhd və qrafikə gedir Siz uşaqlar üzərində yoxlamaq üçün vaxt həftə növbəti neçə belə bir əldə edə bilərsiniz Sizin CS fon nə mənada, və bu da bu mənə dərzi kömək edəcək daha yaxşı ehtiyaclarına uyğun bölmələr. Belə ki, mən dəstəsi düzülmüşdü var budur. Yenə də, mən kənarda görürsünüz orada olmaq istəyirsinizsə. Bu iki bölmə həftə idi. Qədər uşaqlar təşəkkür edirik.