1 00:00:00,000 --> 00:00:02,270 [Powered by Google Translate] [Həftə 2, davamı] 2 00:00:02,270 --> 00:00:04,220 [David J. Malan, Harvard Universiteti] 3 00:00:04,220 --> 00:00:06,880 [Bu CS50 edir. - CS50.TV] 4 00:00:06,880 --> 00:00:10,990 Bütün hüquqlar. Bu CS50, bu həftə 2 sonu. 5 00:00:10,990 --> 00:00:14,410 Siz, bu dəfə ətrafında sabah ac olmaq düşünüyorsanız 6 00:00:14,410 --> 00:00:18,620 biz kiçik bir qrup sabah, cümə axşamı, 1:15 pm kimi çağırmaq olacaq bilirik. 7 00:00:18,620 --> 00:00:21,360 Siz RSVP istəyirsinizsə bu URL burada var. 8 00:00:21,360 --> 00:00:26,740 Space məhdud, belə şəklində bu doldurun zaman doldurdu əgər bağışla edin. 9 00:00:26,740 --> 00:00:29,300 Maraq ola bilər ki, başqa bir URL, baxmayaraq ki, bu. 10 00:00:29,300 --> 00:00:32,369 Yalnız bir ay haqqında, kurs mövcud olacaq 11 00:00:32,369 --> 00:00:36,890 bütün daha geniş edX vasitəsilə hansı vasitəsilə İnternet insanlar birlikdə izləmək olacaq 12 00:00:36,890 --> 00:00:39,380 əslində, çox fəal ərzində məşğul. 13 00:00:39,380 --> 00:00:42,270 Onlar müzakirə CS50 Aracı və CS50 istifadə olacaq 14 00:00:42,270 --> 00:00:45,490 və biz artıq bu dövr istifadə edilmişdir ki, müxtəlif proqram araçları ən. 15 00:00:45,490 --> 00:00:48,710 Və biz bu il bir təcrübə kimi etmək istədiyiniz təşəbbüslərin bir 16 00:00:48,710 --> 00:00:51,930 biz tərcümə edə bilərsiniz necə çox içerik görmək olur 17 00:00:51,930 --> 00:00:53,960 digər danışıq və yazılı dilə. 18 00:00:53,960 --> 00:00:57,500 Bu layihədə iştirak maraq ola bilər Belə ki, əgər 19 00:00:57,500 --> 00:01:02,270 biz əlbəttə nin mühazirələr İngilis transkriptleri və Altyazı təmin edəcək qovuşdurmağımız 20 00:01:02,270 --> 00:01:05,450 və şort və seminarlar və bölmə və kimi, 21 00:01:05,450 --> 00:01:08,200 siz sərbəst danışmaq və ya, sərbəst bir başqa dildə yazmaq əgər 22 00:01:08,200 --> 00:01:12,290 Siz video bir və ya daha çox götürmək vasitəsi biz bu layihədə siz cəlb etmək istiyorum 23 00:01:12,290 --> 00:01:15,200 Siz çox yaxşı bilirsiniz bir dil onları tərcümə. 24 00:01:15,200 --> 00:01:18,700 >> Siz interface hissi vermək üçün, bu web-based istifadəçi interfeysi var 25 00:01:18,700 --> 00:01:22,090 biz əsasən bu kimi bir UI yaradacaq istifadə lazımdır ki,. 26 00:01:22,090 --> 00:01:24,290 Bu, mənim bəzi Halloween əvvəl tədris olunmuşdur 27 00:01:24,290 --> 00:01:27,390 və bu zaman ştamplara yanında qara var sağ tərəfində, 28 00:01:27,390 --> 00:01:31,210 siz ki, gün mənim ağız çıxdı ki, müxtəlif şeylər görürsünüz 29 00:01:31,210 --> 00:01:34,850 və sonra aşağıda bəzi digər dilinə tərcümə edə bilərsiniz 30 00:01:34,850 --> 00:01:38,690 harita bu halda, arasında dəqiq, ingilis və, İspan deyirlər. 31 00:01:38,690 --> 00:01:40,440 Belə ki, əslində bir çox istifadəçi dostu aracıdır. 32 00:01:40,440 --> 00:01:43,370 Siz klaviatura qısa yolları ilə çox asanlıqla sürətli irəli geri bilər. 33 00:01:43,370 --> 00:01:47,490 Bu sınaq iştirak və istiyorum Beləliklə, əgər Sizin sözləri görüldü və oxumaq 34 00:01:47,490 --> 00:01:51,850 orada insanlar potensial minlərlə iştirak etmək üçün pulsuz hiss edin. 35 00:01:51,850 --> 00:01:54,350 Bazar ertəsi olan kitten haqqında bir söz. 36 00:01:54,350 --> 00:02:00,350 Biz bir çox qorxudan mesajı göndərdik deyə, ofis saat təklif kimi, dərk etmək 37 00:02:00,350 --> 00:02:03,300 bölmələr gəlir kimi və, əlbəttə dizayn çox çox 38 00:02:03,300 --> 00:02:07,360 tələbələr problem dəstləri ilə əməkdaşlıq və iş söhbət etmək 39 00:02:07,360 --> 00:02:11,260 və birlikdə problemləri, həqiqətən xətti yalnız aşağı gəlir, 40 00:02:11,260 --> 00:02:16,010 daha, siz sonda təqdim işi öz olmalıdır. 41 00:02:16,010 --> 00:02:18,860 Və olduqca vicdanla, ofis saat Bu, tamamilə normal deyil 42 00:02:18,860 --> 00:02:22,240 tamamilə sizə gələn bir dostu ilə söhbət etmək, hətta gözlənilən oldu. 43 00:02:22,240 --> 00:02:24,370 >> , O, bir mövzu ilə mübarizə və sizin kimi danışırsınızsa 44 00:02:24,370 --> 00:02:27,940 "Oh, yaxşı, məni mən yazdığı kodu bəzi xəttinin bir fikir verək, ki," Gözəl 45 00:02:27,940 --> 00:02:31,250 ki, olur, və öyrənmə prosesi ilə, mən hesab edirəm ki, çox əlverişli edir. 46 00:02:31,250 --> 00:02:36,750 Rəhbəri çox çox saniyə burada növ əyilmiş artıq zaman harada xətti keçərək olur ki, 47 00:02:36,750 --> 00:02:41,160 və ya, həqiqətən, dəqiqə yalnız dostunuz üçün bir Açma imkanı olduğu 48 00:02:41,160 --> 00:02:44,160 və əlbəttə şey, e-poçt və Dropbox və analoji vasitəsilə mübadiləsi almaq zaman 49 00:02:44,160 --> 00:02:45,640 çox xətt var. 50 00:02:45,640 --> 00:02:48,620 Belə ki, bütün vasitələrlə rahat hiss və dostları ilə söhbət təşviq hiss 51 00:02:48,620 --> 00:02:52,810 və psets və daha çox haqqında və yalnız sinif yoldaşları siz nəhayət təqdim nə bilirik 52 00:02:52,810 --> 00:02:57,340 həqiqətən yaradılması və başqasının məhsulu olmalıdır. 53 00:02:57,340 --> 00:03:00,490 Pset2 üçün etki alanı xüsusi problemləri və belə bir, 54 00:03:00,490 --> 00:03:04,740 gec sabah gecə çıxmaq olacaq, Kriptoqrafiya dünyaya dalış etmək 55 00:03:04,740 --> 00:03:08,970 ki, informasiya şifreleyerek və ya Scrambling sənətidir 56 00:03:08,970 --> 00:03:12,600 və bu son nəticədə təhlükəsizlik dünyasına aiddir. 57 00:03:12,600 --> 00:03:16,560 İndi bizim üçün ən təhlükəsizlik ədalətli dünyəvi mexanizmlərinin formasında gəlir. 58 00:03:16,560 --> 00:03:19,050 Bizim bütün istifadəçi adı və parol var 59 00:03:19,050 --> 00:03:23,450 və hamımız çox güman ki, çox pis adı və parol var. 60 00:03:23,450 --> 00:03:28,240 >> Parolu çox saytlarda eyni olduqda, o, yəqin ki, yaxşı fikir deyil 61 00:03:28,240 --> 00:03:30,070 biz semestr sonuna doğru müzakirə edəcəyik kimi. 62 00:03:30,070 --> 00:03:34,720 Heç bir zarafat - - Parolu yapışqan qeyd yazılır Əgər monitor, 63 00:03:34,720 --> 00:03:38,350 çox mütləq ən yaxşı dizayn lakin olduqca ümumi bir fenomen deyil. 64 00:03:38,350 --> 00:03:42,470 Və siz parol şifrelemek üçün Kriptoqrafiya istifadə edirsinizsə, 65 00:03:42,470 --> 00:03:44,210 onlar xüsusilə həssasdırlar. 66 00:03:44,210 --> 00:03:47,270 Bir gizli Word sənəd malik ağıllı super olan olduğunuz hesab əgər 67 00:03:47,270 --> 00:03:49,910 yerdə sabit ki, parol bütün var 68 00:03:49,910 --> 00:03:53,670 lakin heç bir də çox təhlükəsiz mexanizmi deyil ki, baxmaq olacaq ki, bir qovluq var. 69 00:03:53,670 --> 00:03:56,990 Və nə pset2 təqdim edəcək Kriptoqrafiya bu sənəti 70 00:03:56,990 --> 00:04:02,010 parol kimi şeylər bütün daha təhlükəsiz edir ki, informasiya və Scrambling. 71 00:04:02,010 --> 00:04:05,790 Burada kontekstində ki, etibarsız data ilə 72 00:04:05,790 --> 00:04:07,930 bu şifrelemek və dırmaşma imkan gəlir. 73 00:04:07,930 --> 00:04:11,470 Və bu, məsələn, şifrəli mesaj nümunəsidir. 74 00:04:11,470 --> 00:04:14,700 Bu, həqiqətən, İngilis bir şey deyir, lakin aydın tam aydın deyil. 75 00:04:14,700 --> 00:04:18,279 Və biz burada bu gizli mesaj hansı ayrı tease üçün bu gün tam dairə gəlmək lazımdır. 76 00:04:18,279 --> 00:04:23,490 İngilis dili ifadələr ola bilər kimi Lakin kompüter real dünyada, hər şeyi hətta baxmaq yoxdur. 77 00:04:23,490 --> 00:04:28,430 Məsələn, bu bir standart Linux və ya Mac və ya UNIX kompüter tapa bilərsiniz nə 78 00:04:28,430 --> 00:04:32,070 bir zaman parol fayl deyilən sonra fayl bir idi. 79 00:04:32,070 --> 00:04:34,200 >> Hal-hazırda başqa yerlərə köçüb oldu. 80 00:04:34,200 --> 00:04:39,210 Bir sistemi doğru yerdə baxmaq Lakin, istifadəçi adınızı yalnız görürsünüz 81 00:04:39,210 --> 00:04:43,400 və ya sistem digər insanların, lakin siz onların parol şifreli versiyası görürsünüz. 82 00:04:43,400 --> 00:04:47,980 Həqiqətən, orada söz crypt, aşağıdakı məhsulları şifrelenir ki, 83 00:04:47,980 --> 00:04:52,680 və bu zahirən təsadüfi məktublar və simvol və nömrələr seriyası və s 84 00:04:52,680 --> 00:04:56,480 yalnız adətən bəzi gizli bilerek şifresi çözülen bilər - 85 00:04:56,480 --> 00:04:58,840 gizli bir söz, gizli sayı - 86 00:04:58,840 --> 00:05:03,160 və, həqiqətən, Kriptoqrafiya nəticədə sonunda aşağı sənəti bir növ etibar 87 00:05:03,160 --> 00:05:05,650 və başqasına deyil ki, bir şey bilmədən. 88 00:05:05,650 --> 00:05:10,090 Beləliklə, biz bu gün bir az daha ətraflı araşdırmaq lazımdır və pset gəlmək. 89 00:05:10,090 --> 00:05:12,200 İndi pass / uğursuzluqla bir söz. 90 00:05:12,200 --> 00:05:15,360 Siz bəzi pset1 ki, Aracı daxil dived xüsusilə kimi 91 00:05:15,360 --> 00:05:19,080 və özünüz üçün bir çox yeni dünya, həyata ki, frustrations və qarışıqlıq 92 00:05:19,080 --> 00:05:21,700 və yalnız texniki çətinliklər olduqca gözlənilir ki, 93 00:05:21,700 --> 00:05:24,180 xüsusilə yalnız bu qədər yeni var olduğu ilk pset ilə, 94 00:05:24,180 --> 00:05:27,730 yalnız ls və cd ilə tanış və bütün bu gizli əmrləri 95 00:05:27,730 --> 00:05:33,050 və yeni mühit və faktiki material və özü proqramlaşdırma ayrı deyil. 96 00:05:33,050 --> 00:05:36,940 Belə bir dəstək strukturu kimi mövcud olan ofis saat əlbəttə var ki, çox bilirik. 97 00:05:36,940 --> 00:05:38,880 >> Bölmə bu gələn bazar günü başlayacaq. 98 00:05:38,880 --> 00:05:42,960 Amma ən əsası, bu sizin üçün dünya deyil, yalnız hiss edirsinizsə, 99 00:05:42,960 --> 00:05:44,710 həqiqətən yalnız vaxt deyil bilirik. 100 00:05:44,710 --> 00:05:48,600 Və bu, uğursuz / a sinif pass alaraq mənə il əvvəl bu imkan yox idi 101 00:05:48,600 --> 00:05:50,990 vicdanla, mən hətta sinif ayaq qoymuşuq ki, heç vaxt. 102 00:05:50,990 --> 00:05:53,690 Və siz, qədər bu qədər dəyişmək demək, kurs beşinci Bazar ertəsi bilər 103 00:05:53,690 --> 00:05:58,280 İndi kənarında etdiyiniz əgər, ümumiyyətlə həyata ki, daha çox baş bəzi digər sulara, 104 00:05:58,280 --> 00:06:01,260 əlbəttə yalnız keçmək / uğursuz dəyişən hesab edirsiniz. 105 00:06:01,260 --> 00:06:04,570 Yenə şeyi alaraq Harvard burada, həqiqətən, bu mədəniyyət yoxdur keçmək / uğursuz 106 00:06:04,570 --> 00:06:08,670 hər kəs, həqiqətən, nail olmaq və ya overachieve istəyir ildən 107 00:06:08,670 --> 00:06:11,130 lakin səmimi, bu həyata bir şey çalışırıq gözəl yoldur 108 00:06:11,130 --> 00:06:16,720 , olduqca gözəl sizə tanış ola bilər, və əksər hallarda bunu başa lazımdır ki, 109 00:06:16,720 --> 00:06:18,210 Sizin sürpriz bəlkə də çox. 110 00:06:18,210 --> 00:06:20,980 Və daha konkret olaraq, mən nə adətən uğursuz / keçmək nə düşünürsünüz 111 00:06:20,980 --> 00:06:22,940 siz pset0 ilə təcrübəli ola bilər xüsusən, 112 00:06:22,940 --> 00:06:26,560 bəzi pset daxil 10 saat, 15 saat, 25 saat qoymaq əgər 113 00:06:26,560 --> 00:06:29,920 və yalnız divar qarşı baş tarpıltı edirik və gecə gec super əldə edir 114 00:06:29,920 --> 00:06:33,950 ancaq yol pset 90% qəbul etdik və yalnız, bir şey anlamaq bilməz 115 00:06:33,950 --> 00:06:36,520 həqiqətən bu kimi bir sinif kənarında off edir uğursuz / keçmək, 116 00:06:36,520 --> 00:06:39,100 siz məsud, Okay, mən mükəmməl deyil bilirik ", deyə növ edə bilərsiniz 117 00:06:39,100 --> 00:06:42,350 amma bu mənim ass off işləmişdir ki, "bu, başa Ü ilə olduqca xoşbəxt oldum 118 00:06:42,350 --> 00:06:44,850 və keçid üçün ümidlərini / bilməyəcəyik. 119 00:06:44,850 --> 00:06:47,540 Belə ki, nəzərə ki, saxlamaq yoxdur. Bütün hüquqlar. 120 00:06:47,540 --> 00:06:50,520 >> Harvard Universiteti Wi-Fi istifadə üçün mübarizə edən sizin Belə ki, 121 00:06:50,520 --> 00:06:54,780 ətrafında üzən bir CS50 SSID, Wi-Fi əlaqə var bilirəm ki, 122 00:06:54,780 --> 00:06:56,490 sizin üçün daha yaxşı şans ola biləcəyini söylədi. 123 00:06:56,490 --> 00:07:00,130 Bu bir az ironik ki, bu qoşulma cəhd etmək istəyirsinizsə, bunun üçün parol 124 00:07:00,130 --> 00:07:08,350 və heç bir yaxşı bize - - daha sürətlə üçün 12345, bütün yolu 8 üçün 125 00:07:08,350 --> 00:07:10,910 8 5 daha təhlükəsiz edir. 126 00:07:10,910 --> 00:07:16,910 Siz Wi-Fi parol lazımdır Belə ki, kabelsiz burada CS50 üçün 12345678 əlaqə 127 00:07:16,910 --> 00:07:20,380 Siz hələ aralıq keçid məsələlər varsa və CS50 üzrə poçt, müzakirə 128 00:07:20,380 --> 00:07:25,420 və biz bu yer üçün bilirik ki, səlahiyyətləri imkan olacaq. Bütün hüquqlar. 129 00:07:25,420 --> 00:07:32,230 Xüsusilə hər şeyi Apple fan oğlanlar ya qızlar olan sizin üçün belə bir sürətli teaser. 130 00:07:32,230 --> 00:07:37,460 Mən geri bir neçə il qədər qazılmış, burada iUnlock.c bu faylı idi 131 00:07:37,460 --> 00:07:39,930 yalnız cür daha konkret və daha mürəkkəb etmək 132 00:07:39,930 --> 00:07:42,560 biz yazılı olduğunuz daha əsas C proqramlarının bəzi. 133 00:07:42,560 --> 00:07:46,910 Mən iUnlock.c, bu fayl açdı. Bu gün üçün mühazirələr səhifə mövcud deyil. 134 00:07:46,910 --> 00:07:49,810 Sol tərəfində sizə funksiyaları uzun bir siyahısını görmək. 135 00:07:49,810 --> 00:07:53,230 Belə ki, bu yazan fellow yalnız əsas daha çox funksiyaları bir çox qədər yazdı. 136 00:07:53,230 --> 00:07:57,340 O, burada kitabxana bütün dəstə istifadə və biz vasitəsilə scrolling başlamaq əgər, 137 00:07:57,340 --> 00:08:04,890 nə bu əslində orijinal iPhone üçün çox birinci, inanıram, crack edir. 138 00:08:04,890 --> 00:08:09,830 >> Orijinal iPhone jailbreak istəyəndə olan AT & T untether deməkdir 139 00:08:09,830 --> 00:08:13,710 və əslində, bu, xüsusi proqram və Apple nəfər bunu istəmədiyini şeyə 140 00:08:13,710 --> 00:08:18,480 kimsə, onlar software flaws istismar bilər dəqiq necə anlamaq üçün vaxt 141 00:08:18,480 --> 00:08:22,690 beləliklə Apple proqram səhvlər, bugs, və anadan olub iUnlock.c - 142 00:08:22,690 --> 00:08:26,760 ki, sizin kompüter üzrə tərtib edilmiş və bir iPhone üzərində yüklü əgər 143 00:08:26,760 --> 00:08:29,430 ki, USB kabel, demək vasitəsilə kompüter bağlı idi 144 00:08:29,430 --> 00:08:32,450 bu sizin iPhone inzibati və ya kök güzəştlər verəcək 145 00:08:32,450 --> 00:08:34,620 və olduqca çox istədiyiniz nə bildirin. 146 00:08:34,620 --> 00:08:36,400 Və bu maraqlı pişik və siçan oyun oldu 147 00:08:36,400 --> 00:08:39,340 Apple və xüsusilə dünyanın qalan onlar arasında, bir çox şirkətlər kimi, 148 00:08:39,340 --> 00:08:43,350 yalnız onlar niyyətində nə ilə edə bilərsiniz, belə ki, onların məhsulları aşağı kilidləmək üçün çalışırıq. 149 00:08:43,350 --> 00:08:47,360 Ancaq bu kimi insanlar və aşağı səviyyəli ətraflı anlayışı sayəsində - 150 00:08:47,360 --> 00:08:50,830 və bu halda C proqramlaşdırma - və tanış yapıları bir çox 151 00:08:50,830 --> 00:08:55,280 biz oynamağa başlamışdır etdik ki, siz həqiqətən hardware Leverage edə bilərlər 152 00:08:55,280 --> 00:08:59,250 qaydada Siz uyğun və bəzi korporativ şəxs mütləq baxın. 153 00:08:59,250 --> 00:09:01,600 Belə ki, məsələn, mən bütün bu nə heç bir fikrim yoxdur 154 00:09:01,600 --> 00:09:03,580 lakin GetVersion, olduqca sadə səslənir 155 00:09:03,580 --> 00:09:05,710 və bu bu şəxs yazırdı ki, bir funksiyası var kimi görünür. 156 00:09:05,710 --> 00:09:09,250 Bu arqument kimi tam bir növ edir, bir şey geri deyil 157 00:09:09,250 --> 00:09:13,710 lakin burada loop üçün və əgər vəziyyət, vəziyyəti fasilə əgər ilə loop görünür 158 00:09:13,710 --> 00:09:16,770 biz aşağı diyirləyin əgər birtəhər, version nömrələrinə aiddir 159 00:09:16,770 --> 00:09:19,650 Bu açar sözlər, bir çox yeni olacaq, baxmayaraq. 160 00:09:19,650 --> 00:09:22,590 Və biz görməmişəm və heç görmək bilər burada funksiyaları bütün çox var 161 00:09:22,590 --> 00:09:24,350 dövr ərzində. 162 00:09:24,350 --> 00:09:29,160 >> Günün sonunda, biz indiyədək ilə oynayan olduğunuz eyni qaydalar və məntiq edir. 163 00:09:29,160 --> 00:09:34,340 Belə ki, bu, sizin iPhone 3s ya 4s və ya tezliklə 5s bu gün çat çox köhnə 164 00:09:34,340 --> 00:09:38,830 lakin bütün çox biz daxil dived etdik ki, bu dünyada əldə ki, bilirik. 165 00:09:38,830 --> 00:09:42,280 Bir az daha sadə misal nəzər salaq: 166 00:09:42,280 --> 00:09:46,260 Bu, yalnız bəzi sintaksis ilə isidilmiş almaq üçün və həmçinin bəzi digər növü 167 00:09:46,260 --> 00:09:48,910 biz danışdı sonra, lakin həqiqətən C. görməmişik ki, 168 00:09:48,910 --> 00:09:53,670 Bu positive1.c adlı bir fayl və üst şərh başına 169 00:09:53,670 --> 00:09:56,070 bu, yalnız istifadəçi bir müsbət nömrəsi tələb edir. 170 00:09:56,070 --> 00:09:59,910 Belə ki, istifadəçi interaktiv proqramlar üçün gözəl bir do-isə loop, bir misal var 171 00:09:59,910 --> 00:10:02,070 Əgər bir şey etmək üçün istifadəçi demək lazımdır, 172 00:10:02,070 --> 00:10:05,530 və onlar onlara fəğan və ya giriş rədd əməkdaşlıq yoxsa. 173 00:10:05,530 --> 00:10:10,480 Point halda: Mən 24 vasitəsilə xətləri 19 etmək gedirəm 174 00:10:10,480 --> 00:10:14,620 uzun kimi istifadəçi mənə müsbət sayı verilmiş deyil. 175 00:10:14,620 --> 00:10:21,340 Line 18-də burada Bu detal, niyə mən bu bütün looping tikintisi yuxarıda n bəyan etməyib 176 00:10:21,340 --> 00:10:26,870 kimi sağ line 22 Növbəti Mən, həqiqətən, n almaq üçün qayğı yerləşir qarşı? Bəli. 177 00:10:26,870 --> 00:10:29,330 [Tələbə] Sayt. >> Bəli, daxilində belə bu məsələ. 178 00:10:29,330 --> 00:10:31,770 Və layman nin baxımından əhatə dairəsi nə aid deyil? 179 00:10:34,880 --> 00:10:41,560 Bəli. >> [Işitilemez tələbə cavab] >> siz Qaraçuxurlu bir az danışmaq olarmı? 180 00:10:41,560 --> 00:10:45,440 [Tələbə] Siz dəyişən edə bilərsiniz harada. >> Mükəmməldir. 181 00:10:45,440 --> 00:10:47,610 Müəyyən bir dəyişən daxil edə bilərsiniz. 182 00:10:47,610 --> 00:10:50,990 Və ümumiyyətlə, thumb qayda belə uzaq olduğunu bir dəyişən daxilində 183 00:10:50,990 --> 00:10:56,140 siz gördüm ki, ən son qıvrım aşırma ilə müəyyən edilir. 184 00:10:56,140 --> 00:11:03,070 >> Mən line 22-n elan səhv etdi Əgər bu halda ki, xətt iş olardı. 185 00:11:03,070 --> 00:11:10,840 Mən int almaq olardı və mən line 22 dəyişən n onu qoymaq olardı 186 00:11:10,840 --> 00:11:17,060 lakin kodu xətt indi söhbət alıram nə heç bir fikrim yoxdur ki? >> [Tələbə] 25. 187 00:11:17,060 --> 00:11:23,840 [Malan] 25, və bu halda bu qıvrım aşırma kənara çıxır, çünki həmçinin 24 çıxır. 188 00:11:23,840 --> 00:11:28,550 Belə ki, çox asanlıqla sadəcə dəyişən bildirərək bir az bir narahatlıq və bit lakin həll 189 00:11:28,550 --> 00:11:30,700 funksiyası özü xaricində. 190 00:11:30,700 --> 00:11:32,760 Biz bir addım irəli getmək bilər later gün görürsünüz 191 00:11:32,760 --> 00:11:34,940 və hətta bir az tənbəl əldə edə bilər. 192 00:11:34,940 --> 00:11:39,660 Bu ümumi tövsiyə etmək deyil, hətta tənbəl ala bilər 193 00:11:39,660 --> 00:11:44,150 və belə bir loop daxilində bir funksiyası daxilində deyil danışmaq, dünyada dəyişən qoymaq 194 00:11:44,150 --> 00:11:49,800 Mən line 15-də burada olduğu kimi ancaq fayl özlüyündə, funksiyaları bütün kənar siz yazdıq. 195 00:11:49,800 --> 00:11:55,220 Bu, ümumiyyətlə, sonra qaşqabağını töküb üzünü, lakin bu, bəzən digər problemlərin həllini həyata olunur 196 00:11:55,220 --> 00:11:56,910 biz nəhayət görəcəksiniz kimi. 197 00:11:56,910 --> 00:11:59,500 Belə ki, indi biz bu kimi tərk edəcəyik, lakin biz bu yenidən bilər görmek edək 198 00:11:59,500 --> 00:12:02,360 yalnız fərqli özümüzü bir az ifadə başlamaq. 199 00:12:02,360 --> 00:12:05,550 Bu proqram yalnız aydın olmaq, positive1 edir. 200 00:12:05,550 --> 00:12:11,980 Mənə burada davam və mənim terminal pəncərə daxil edin positive1 etmək edək. 201 00:12:11,980 --> 00:12:15,080 Tamam tərtib edir. Mən daxil edib positive1 çalıştırmak üçün gedirəm. 202 00:12:15,080 --> 00:12:19,250 Mənə bir müsbət tam vermək tələb edir. Mən -1 demək lazımdır. Bu iş yox idi. 203 00:12:19,250 --> 00:12:22,340 0, 99. Bu iş görünür. 204 00:12:22,340 --> 00:12:25,310 Bəlkə ən ciddi test, lakin ən azı gözəl bir ağlı başında olma çek var 205 00:12:25,310 --> 00:12:27,100 biz doğru yolda olduğunuzu. 206 00:12:27,100 --> 00:12:29,570 >> Beləliklə, mənə irəli getmək və bu versiya 2 açmanıza icazə verir 207 00:12:29,570 --> 00:12:32,800 və artıq müxtəlif nədir? 208 00:12:32,800 --> 00:12:39,030 Eyni şey həyata keçirir, lakin nə aydın fərqli bu dəfə kimi atladığı var? 209 00:12:40,790 --> 00:12:47,090 Yaşıl Bu bool. Bu yaşıl, bir veri növü olan bool kimi tanınan bu söz qeyd olunur. 210 00:12:47,090 --> 00:12:50,510 Bu C. bütün versiyasını üçün inşa gəlmək deyil 211 00:12:50,510 --> 00:12:52,650 Siz xüsusi kitabxana daxil etmək lazımdır. 212 00:12:52,650 --> 00:12:56,460 Biz bool çıxış var ki, bizim halda, mən CS50 kitabxana daxildir. 213 00:12:56,460 --> 00:12:59,860 Amma line 18, biz şükür adlanan burada bir Boolean dəyəri görünür. 214 00:12:59,860 --> 00:13:02,190 Mən bu bir şey deyilir ola bilər, ancaq şükür adlanan 215 00:13:02,190 --> 00:13:04,750 yalnız növ bəzi semantik mənasını çatdırmaq. 216 00:13:04,750 --> 00:13:07,700 Belə ki, ilkin line 18-də, mən yəqin minnətdar deyiləm 217 00:13:07,700 --> 00:13:12,230 şükür ki, Boolean dəyər line 18 yalan üçün başlatılmış çünki. 218 00:13:12,230 --> 00:13:16,500 Və sonra mən 23 vasitəsilə xətləri 21 burada etdik nə görünür 219 00:13:16,500 --> 00:13:19,200 Mən cür mənim məntiq yenidən etdik edir. 220 00:13:19,200 --> 00:13:26,100 Heç bir funksional müxtəlif Belə ki, int istifadəçi təmin təqdirdə, lakin line 22 indi yoxlamaq 221 00:13:26,100 --> 00:13:31,360 0 çoxdur, mən sadəcə doğru təşəkkür dəyəri dəyişir. 222 00:13:31,360 --> 00:13:35,590 Və mən ona görə edirsiniz? Line 25 Çünki, yəqin mən vəziyyəti yoxlamaq üçün gedirəm. 223 00:13:35,590 --> 00:13:39,760 Şükür yalan isə bu loop edin. 224 00:13:39,760 --> 00:13:42,960 Mən version 1 alternativ kimi bu təklif 225 00:13:42,960 --> 00:13:47,050 o bəlkə ən azı bir az daha asan var, çünki bir az daha İngilis əsaslandırılmış deyil. 226 00:13:47,050 --> 00:13:51,980 Şükür yalan isə şükür deyilik ya isə Belə ki, aşağıdakı. 227 00:13:51,980 --> 00:13:56,220 Və bu dəfə də mən yəqin istifadəçi tipli nə yadda vecimə deyil 228 00:13:56,220 --> 00:14:00,050 bildiriş çünki heç dəyişən n, belə ki, həqiqətən, bir az ağ yalan var. 229 00:14:00,050 --> 00:14:03,290 >> Biz onun altına almaq bir Funksional, proqram bir az fərqli 230 00:14:03,290 --> 00:14:04,960 Mən n nə xatırlayaraq deyiləm çünki. 231 00:14:04,960 --> 00:14:09,120 Amma burada nümayiş etdirmək istəyirdi çox ki, biz GetInt gördüm baxmayaraq 232 00:14:09,120 --> 00:14:13,780 və bir də sağ tərəfdən istifadə olunur GetString indiyədək Bürc bərabərdir 233 00:14:13,780 --> 00:14:17,310 biz ciddi lazım deyil ki, dəyəri, texniki, unutmayın ki. 234 00:14:17,310 --> 00:14:20,290 Əgər yalnız dəyəri saxlamaq üçün qayğı yoxdur hər hansı səbəbdən, 235 00:14:20,290 --> 00:14:25,540 yalnız, biz sadəcə GetInt kimi yaza görə, dəyəri yoxlamaq istəyirəm 236 00:14:25,540 --> 00:14:27,320 açıq paren, yaxın paren. 237 00:14:27,320 --> 00:14:30,570 Deyirdik olduğunuz kimi funksiyası, bir dəyər geri gedir. 238 00:14:30,570 --> 00:14:32,220 Bu int geri vermək olacaq. 239 00:14:32,220 --> 00:14:34,460 Və belə əqli, bu baş hesab 240 00:14:34,460 --> 00:14:38,190 Mən 99 yazın zaman GetInt, sayı 99 qaytarır 241 00:14:38,190 --> 00:14:41,840 və belə konseptual, mənim kodu əslində bu kimi olsa var. 242 00:14:41,840 --> 00:14:45,950 99 0-dən həqiqətən böyük Belə ki, onda şükür doğru olur, 243 00:14:45,950 --> 00:14:50,810 İndi təşəkkür edirəm çünki sonra line 25 ooh həyata keçirir, biz Bitirdiğinizde 244 00:14:50,810 --> 00:14:53,970 və line 26, biz sadəcə, "müsbət tam üçün təşəkkür edirik!" demək 245 00:14:53,970 --> 00:14:55,960 bu baş nə. 246 00:14:55,960 --> 00:14:59,140 İndi belə danışmaq, burada kiçik sintaktik şəkər nə edək. 247 00:14:59,140 --> 00:15:04,670 Biz positive3 bu üçüncü və son variant Bu xətt 25 təmizləmək əgər in nəzər salaq. 248 00:15:04,670 --> 00:15:13,600 >> Indi nə kodu xətt yalnız fark? >> [Tələbə] 25. >> [Malan] Bəli, 25. 249 00:15:13,600 --> 00:15:17,680 Və biz, həqiqətən, yalnız hələ bu oyun görməmişəm etdik, ancaq, bazar ertəsi günü ünlem gördünüz 250 00:15:17,680 --> 00:15:21,070 olan nə bildirir? >> [Tələbə] deyil. >> Deyil və ya inkar. 251 00:15:21,070 --> 00:15:23,510 Belə bir Boolean dəyəri almaq və onun dəyəri çevirmek. 252 00:15:23,510 --> 00:15:25,810 True yalan olur, yalan gerçək olur. 253 00:15:25,810 --> 00:15:30,420 Bu Odur ki, mən təklif edirəm, kodu yazmaq, hətta bir az daha asan bir yoldur 254 00:15:30,420 --> 00:15:33,430 Mən hələ yalan təşəkkür başlamaq, çünki Mən hələ, aşağıdakıları edin 255 00:15:33,430 --> 00:15:36,010 Vaxt gələndə mən doğru təşəkkür müəyyən 256 00:15:36,010 --> 00:15:40,880 indi siz həqiqətən yalnız şifahi sağ bu kodu tərcümə edə bilərsiniz 257 00:15:40,880 --> 00:15:45,630 isə (şükür!); bang və ya ünlem deyil, anlayışı işarə çünki 258 00:15:45,630 --> 00:15:47,580 belə şükür deyil isə. 259 00:15:47,580 --> 00:15:49,900 Belə ki, yenə biz özlüyündə hər hansı yeni anlayışlar təqdim edilməmişdir. 260 00:15:49,900 --> 00:15:53,730 Biz Scratch ilə ifa zaman geri Booleans danışdı 261 00:15:53,730 --> 00:15:56,720 lakin biz yalnız bir çox müxtəlif yollarla kodu yazılı başlaya bilərsiniz indi həyata keçiririk. 262 00:15:56,720 --> 00:16:01,060 Belə ki, xüsusilə pset1 siz, bəzi proqram yazmaq yol anlamaq üçün mübarizə növ əgər 263 00:16:01,060 --> 00:16:04,340 həllər hər hansı bir sayı ola bilər, çünki odds sizə uğurlar istəyirik var 264 00:16:04,340 --> 00:16:06,110 sizə ola bilər. 265 00:16:06,110 --> 00:16:10,500 Məsələn, bu proqramları daha sadə üçün yalnız 3. Bütün hüquqlar. 266 00:16:10,500 --> 00:16:14,200 İndi bazar ertəsi biz geri dəyərləri ilə bu qeyd sol xatırlayıram. 267 00:16:14,200 --> 00:16:18,450 Belə ki, ilk dəfə biz yalnız əsas yoxdur ki, bir proqram yazıb; 268 00:16:18,450 --> 00:16:22,550 bu da burada yazmışdır ki, onun öz xüsusi funksiyası var. 269 00:16:22,550 --> 00:16:26,810 Belə ki, xətt 31 34 vasitəsilə bir kub funksiyasını həyata etdik. 270 00:16:26,810 --> 00:16:30,240 Bu kompleks deyil. Bu, yalnız var a * a * bu halda. 271 00:16:30,240 --> 00:16:34,750 Amma nə bu barədə mühüm bir şəklində daxil alaraq edirəm ki, 272 00:16:34,750 --> 00:16:39,180 və mən * a * bir formasında çıxış qaytarılması alıram. 273 00:16:39,180 --> 00:16:43,560 Belə ki, indi imkanı var, daha mən prinf tək ilə istifadə kimi, 274 00:16:43,560 --> 00:16:47,240 kub funksiyası zəng bu funksiya zəng etmək üçün. 275 00:16:47,240 --> 00:16:51,970 >> Və kub funksiya bəzi daxil edir, və kub funksiya bəzi çıxış qaytarır. 276 00:16:51,970 --> 00:16:56,960 Əksinə, printf yalnız bir şey idi. 277 00:16:56,960 --> 00:17:00,840 Bir kənara kimi, bir dəyər qayıtmaq deyil, baxmayaraq ki, biz qayğı ki, bir şey geri vermədi; 278 00:17:00,840 --> 00:17:03,110 yalnız ümumiyyətlə bilməz. 279 00:17:03,110 --> 00:17:06,510 Printf yalnız bir şey idi. Bu ekran çap bir yan təsiri var idi. 280 00:17:06,510 --> 00:17:11,770 Burada əksinə olaraq, biz, həqiqətən, bir şey qaytarır olan kub funksiyası var. 281 00:17:11,770 --> 00:17:15,520 Belə ki, bu ilə tanış olanlar üçün bu, olduqca sadə bir fikirdir. 282 00:17:15,520 --> 00:17:19,640 Lakin giriş keçən və nəticələr geri alınması bu ideya ilə az tanış olanlar üçün 283 00:17:19,640 --> 00:17:21,950 nin yalnız bir şey super sadə edək. 284 00:17:21,950 --> 00:17:25,490 Rahat hər kəs qısa səhnəyə gəlir? 285 00:17:25,490 --> 00:17:28,040 Siz yaxşı bir kamera ilə rahat olmalıdır. Evet? Okay. 286 00:17:28,040 --> 00:17:31,240 Sizin adınız nədir? >> [Tələbə] Ken. >> Ken. Bütün hüquqlar. Ken qədər gəlib. 287 00:17:31,240 --> 00:17:35,050 Ken burada növ bir funksiyası olacaq. 288 00:17:35,050 --> 00:17:38,720 Nin irəli getmək və bunu edək. Bir az xülya almaq edək. 289 00:17:38,720 --> 00:17:42,260 Siz cavab gözəl. Mərkəzi mərhələ xoş gəlmisiniz. Bütün hüquqlar. 290 00:17:42,260 --> 00:17:46,640 Nin bura düyməsini basın edək. Bütün hüquqlar. 291 00:17:46,640 --> 00:17:49,820 Belə ki, burada müasir bir Kara Tahta var 292 00:17:49,820 --> 00:17:53,470 və nə mən, misal üçün, əsas funksiyası 293 00:17:53,470 --> 00:17:56,460 və mən əlimdə bir iPad yoxdur. 294 00:17:56,460 --> 00:17:59,710 >> Bəli, mən deyə bilmərəm - Mən, həqiqətən, necə xatırlamıram. 295 00:17:59,710 --> 00:18:02,480 Mən, həqiqətən, yaxşı yazı yoxdur 296 00:18:02,480 --> 00:18:05,520 və belə buna görə də mən sizə, mənim üçün ekranda bir şey çap etmək istəyirəm. 297 00:18:05,520 --> 00:18:12,040 Mən əsas proqram olan edirəm, sizə bu demək üçün gedirəm 298 00:18:12,040 --> 00:18:16,720 mənim toyuq danışıq onu yazılı və sonra giriş keçərək. 299 00:18:16,720 --> 00:18:20,400 Bu həyata olsa Belə axmaq, funksiyaları anlayışı və funksiyası zəng 300 00:18:20,400 --> 00:18:22,400 və bu funksiyanı həqiqətən sonunda aşağı qaytarılması. 301 00:18:22,400 --> 00:18:26,260 Mən əsas deyiləm, mən sadəcə, ekranda printf, quote-dırnağı bağlamaq bir şey yazılı 302 00:18:26,260 --> 00:18:29,110 Mən bu proqram çalışan edirəm, və kimi printf adlı olur 303 00:18:29,110 --> 00:18:32,880 bir mübahisə və ya ikiqat quotes arasında bəzən bir parametr edir. 304 00:18:32,880 --> 00:18:35,880 Burada ki, mübahisə edir. Mən Ken üçün keçən alıram. 305 00:18:35,880 --> 00:18:39,020 O illərdə bir sıra əvvəl yazılı bir qara qutu deyil 306 00:18:39,020 --> 00:18:41,510 ki, yəqin yalnız ekranda şeyi çap bilir. 307 00:18:41,510 --> 00:18:43,150 Belə ki, həyata. 308 00:18:49,280 --> 00:18:51,280 Bu pis deyil. Çox yaxşı. 309 00:18:51,280 --> 00:18:55,510 Belə ki, indi Ken icra edilir. Mənə bir şey geri əl ehtiyac varmı? 310 00:18:55,510 --> 00:18:57,470 Biz belə uzaq gördüm deyil. 311 00:18:57,470 --> 00:19:00,460 Yenə printf həqiqətən bir sıra qayıtmaq deyil, ancaq indi ki, ignore olacaq 312 00:19:00,460 --> 00:19:03,470 biz istifadə heç etdik çünki. Belə ki Ken üçün ki. 313 00:19:03,470 --> 00:19:08,580 Və indi əsas yenə proqram nəzarət edir 314 00:19:08,580 --> 00:19:11,060 kodu ki, xətti, printf, icra edilir, çünki. 315 00:19:11,060 --> 00:19:14,050 Və biz digər xətləri var hər hansı yerinə, bizim yol haqqında gedin. 316 00:19:14,050 --> 00:19:17,320 Belə ki, indi-nin bir az fərqli Məsələn edək. 317 00:19:17,320 --> 00:19:24,940 Bu dəfə burada ilk ekran sil edək və bu dəfə biz bu cubing funksiyası edəcəyik 318 00:19:24,940 --> 00:19:27,080 amma bu dəfə mən bir çıxış dəyər gözləyirik. 319 00:19:27,080 --> 00:19:29,180 >> Belə nin irəli getmək və bunu bildirin. 320 00:19:29,180 --> 00:19:35,790 İndi x x kub olur deyir ki kodu xətti var. 321 00:19:41,370 --> 00:19:46,370 Kodu xətti, geri, bu kimi görünür: x = kub (x); 322 00:19:46,370 --> 00:19:50,930 Belə ki, necə bu iş gedir? Nin irəli getmək və daha bir ağ verim. 323 00:19:50,930 --> 00:19:54,070 Mən indi x dəyəri yazmaq gedirəm 324 00:19:54,070 --> 00:20:01,400 vaxt bu an olur ki, bu sadə saxlamaq üçün isə demək 2 edək. 325 00:20:01,400 --> 00:20:06,150 Mən kağız parçası mənim dəyər x olan 2 dəyəri haqqında yazıblar. 326 00:20:06,150 --> 00:20:10,920 Mən Ken üçün əl. >> Mən yalnız cavab yazmaq? >> Bəli, yalnız cavab yazmaq imkan verir. 327 00:20:12,760 --> 00:20:18,940 Okay. İndi mənə bir şey qayıtmaq üçün var. Mükəmməldir. Segue Nice. 328 00:20:18,940 --> 00:20:23,120 Belə ki, indi o, bu halda 8 dəyəri mənə geri əlləri və mən nə etməliyəm? 329 00:20:23,120 --> 00:20:28,250 Əslində - bu doğru isə görək. Mən bu ilə gedirəm? 330 00:20:28,250 --> 00:20:33,440 İndi bu dəyəri almaq və həqiqətən yaddaşında həmin bit onu saxlamaq üçün gedirəm. 331 00:20:33,440 --> 00:20:35,170 Amma burada mübarizə cür Ben bilərsiniz. 332 00:20:35,170 --> 00:20:38,210 Ü Mən, həqiqətən, x dəyəri yazmaq, çünki mən bir az qarışıq deyiləm 333 00:20:38,210 --> 00:20:43,150 nə mən yalnız etdik fiziki tərəfdən Ken dəyəri 2 ki, kağız parçası, çünki 334 00:20:43,150 --> 00:20:46,590 hansı x, və həqiqətən ki, nə dəqiq deyil. 335 00:20:46,590 --> 00:20:50,210 Belə ki, siz funksiyası zəng zaman mübahisə keçmək çıxır ki, 336 00:20:50,210 --> 00:20:53,290 salam kimi, dünya və ya, 2 kimi bir dəlil keçmək 337 00:20:53,290 --> 00:20:57,110 ümumiyyətlə, bu arqument surəti keçən edirik. 338 00:20:57,110 --> 00:21:00,730 Və mən, burada 2 saylı aşağı yazmış və Ken onu kimi 339 00:21:00,730 --> 00:21:04,720 Mən hələ bir yerdə dəyəri 2 surəti var ki, demək lazımdır 340 00:21:04,720 --> 00:21:08,890 həqiqətən, indi dəyəri 8 geri kazanılmış etdik ki, mən RAM geri getmək lazımdır, çünki 341 00:21:08,890 --> 00:21:12,130 Mən bir sayı 2 olduğu və faktiki 8 yazın. 342 00:21:12,130 --> 00:21:16,950 Belə ki, görmə, sanki, bu dəyər surəti keçən bu anlayışı xatırlayıram. 343 00:21:16,950 --> 00:21:20,780 >> Bu halda 8 kimi bir dəyəri - - Ken onun şey geri bir şey mənə əllərini verir 344 00:21:20,780 --> 00:21:24,980 Mən onun ətrafında saxlamaq istəyirsinizsə, və sonra ki, dəyəri bir şey var. 345 00:21:24,980 --> 00:21:29,650 Belə ki, bütün bu uzun əvvəl bütün çox tanış olmaq geri gələcək. 346 00:21:29,650 --> 00:21:34,920 Burada bu demo üçün çox Ken təşəkkür edirik. [Alqış] 347 00:21:34,920 --> 00:21:36,920 Çox yaxşı. 348 00:21:36,920 --> 00:21:42,690 Nəticədə biz burada bunu etdik ki, zəng funksiyası bəzi aid necə edək. 349 00:21:42,690 --> 00:21:47,910 Mənə irəli getmək və burada cubing Məsələn bizə geri gətirmək edək. 350 00:21:47,910 --> 00:21:53,300 Qeyd edək ki, biz, həqiqətən, bu da alaraq başlamaq istəyirəm ki, əgər 351 00:21:53,300 --> 00:21:57,570 biz sayı x burada qəbul olunur ki, faktı nəzərə etmək olacaq 352 00:21:57,570 --> 00:22:01,530 faktiki fəaliyyət qəbul edilir nə fərqlidir. 353 00:22:01,530 --> 00:22:05,880 Belə ki, təkrar surəti bu keçid yalnız bir anda çox ilgili olmaq niyyətindədir. 354 00:22:05,880 --> 00:22:09,580 Nin çox sağ hələ işləmir ki, bir şey nəzər salaq. 355 00:22:09,580 --> 00:22:13,250 Mən irəli getmək və təbiət ilə flawed olan üçüncü arabası Məsələn, açıq gedirəm 356 00:22:13,250 --> 00:22:18,550 və buggy3 adlanır və bir dəyişdirmə funksiyasını həyata keçirir oldu. 357 00:22:18,550 --> 00:22:25,110 Burada x və y özbaşına, müvafiq olaraq, 1 və 2-başlatılmış bir əsas funksiyası var. 358 00:22:25,110 --> 00:22:27,700 Biz GetInt istifadə edə bilər, ancaq yalnız bir sadə həyata lazımdır 359 00:22:27,700 --> 00:22:30,170 belə ki, 1 və 2 kimi ağır kodlu var. 360 00:22:30,170 --> 00:22:35,340 Xətləri 21 və 22, biz yəqin x və y, line 1 çap. 361 00:22:35,340 --> 00:22:39,720 Sonra line 23, mən, nöqtə, nöqtə, nöqtə bu dəyərləri dəyişdirmə edirəm iddia edirlər. 362 00:22:39,720 --> 00:22:44,170 Mən yəqin uyğun bir funksiyası 2 arqumentlər edir ki, 24 adlanan svop çağırırıq. 363 00:22:44,170 --> 00:22:48,300 Funksiyaları 2 dəlilləri almaq üçün tamamilə legit edir. Biz printf artıq bunu gördük. 364 00:22:48,300 --> 00:22:51,830 >> Belə ki, svop yəqin x və y edir, onun adı təklif kimi 365 00:22:51,830 --> 00:22:54,670 Mən bu 2 dəyərləri dəyişdirmək olacaq ki, ümid edirəm. 366 00:22:54,670 --> 00:23:00,090 Beləliklə mən 25 "değiştirilecek!" Xətti üzrə iddia və mən x və y surətini çıxarmaq 367 00:23:00,090 --> 00:23:03,070 onlar həqiqətən değiştirilecek olduğunuz ehtimalı altında. 368 00:23:03,070 --> 00:23:06,080 Amma əslində bu proqram run əgər - Mənə bir terminal pəncərə açmaq bildirin 369 00:23:06,080 --> 00:23:09,860 Mənə buggy3 edək - Adı təklif kimi, bu yaxşı başa niyyətində deyil 370 00:23:09,860 --> 00:23:15,770 Mən daxil edin x 1 fark hit zaman, y, 2, çünki 371 00:23:15,770 --> 00:23:19,420 və hələ Proqramın sonunda, onlar, faktiki olaraq, hələ də eynidir. 372 00:23:19,420 --> 00:23:22,960 Belə ki, yalnız indi Ken ilə, nə həqiqətən neler nümayiş əsaslanır? 373 00:23:22,960 --> 00:23:28,710 Bu mübadilə funksiyası daxil dive edək. Bu qısa super deyil. Yalnız uzun kodu bir neçə xətləri var. 374 00:23:28,710 --> 00:23:34,520 Lakin Ken ilə burada bildirib sadə hekayə əsasında fundamental problem var? 375 00:23:34,520 --> 00:23:36,670 Niyə svop sınıq olunur? 376 00:23:36,670 --> 00:23:39,660 [Tələbə] Siz surəti deyil, dəyişən üçün saxlanılması edirik. 377 00:23:39,660 --> 00:23:43,980 Exactly. Biz dəyişən, bir surəti özü saxlanılması edirik. 378 00:23:43,980 --> 00:23:47,170 Başqa sözlə, svop yəqin 2 arqumentlər bir int, edir 379 00:23:47,170 --> 00:23:49,370 və özbaşına bir və b deyirlər 380 00:23:49,370 --> 00:23:54,420 və burada müvafiq olaraq 1 və 2 olan x və y, qəbul etdik 381 00:23:54,420 --> 00:23:58,770 amma sözün x keçən deyiləm, mən, sanki y keçən deyiləm 382 00:23:58,770 --> 00:24:01,450 Mən x surəti və y surəti keçən alıram. 383 00:24:01,450 --> 00:24:04,510 Demək olar ki, sanki siz sitemizi və swap yapıştırılmalıdır oldu 384 00:24:04,510 --> 00:24:07,810 siz həqiqətən manipulyasiya etmək istədiyiniz dəyərlər. 385 00:24:07,810 --> 00:24:14,480 O halda, mən proqram start line icra edərkən 35 sonra 36, ​​var əgər 386 00:24:14,480 --> 00:24:18,650 Mən hekayə bu nöqtədə, line 37 almaq zaman nə dəyəri var? 387 00:24:21,040 --> 00:24:25,050 Hekayə Bu nöqtədə, line 37, bu nöqtədə bir dəyəri nədir? >> [Tələbə] 1. 388 00:24:25,050 --> 00:24:29,280 [Malan] x ilk arqument kimi qəbul edilib, çünki yalnız sağ, 1 olmalıdır 389 00:24:29,280 --> 00:24:33,080 və bu funksiya yalnız özbaşına ilk arqument bir zəng. 390 00:24:33,080 --> 00:24:38,200 Eynilə ikinci dəlil Y və yalnız özbaşına ikinci dəlil b zəng edir. 391 00:24:38,200 --> 00:24:40,990 >> Bu dichotomy həqiqətən kifayət qədər sadəcə izah olunur. Bu barədə düşünün. 392 00:24:40,990 --> 00:24:43,320 Bizə Yox, printf yazan adam görüşüb 393 00:24:43,320 --> 00:24:50,770 belə şübhəsiz ki, o bizim dəyişənlərin 30 il sonra deyilən olacaq nə heç bir fikir var. 394 00:24:50,770 --> 00:24:56,650 Belə ki, siz yazıyoruz funksiyaları dəyişənlərin dediyimiz arasında bir fərq olmalıdır var 395 00:24:56,650 --> 00:25:02,080 və sizə zəng və ya istifadə etdiyiniz funksiyaları dəyişənlərin adlandırdıqları. 396 00:25:02,080 --> 00:25:05,340 Belə ki, başqa sözlə, mən, x və y kimi dəyişənlərin yazılı 397 00:25:05,340 --> 00:25:08,890 başqası mübadilə funksiyası yazılı idi, lakin, o, şübhəsiz ki, bilmirəm ki, 398 00:25:08,890 --> 00:25:10,690 mənim dəyişənlərin adlı olacaq nə 399 00:25:10,690 --> 00:25:13,830 belə ki, adları bu ikilik niyə bu bilirik. 400 00:25:13,830 --> 00:25:16,750 Texniki, mən təsadüf bunu edə bilər 401 00:25:16,750 --> 00:25:20,080 lakin onlar hələ nüsxə kimi qəbul olunacaq. 402 00:25:20,080 --> 00:25:23,650 Bu yalnız bir təmiz təsadüf olardı estetik əgər svop yazırdı ki, şəxs 403 00:25:23,650 --> 00:25:26,150 eyni adlar istifadə etmişlər. 404 00:25:26,150 --> 00:25:32,370 Belə ki, hekayə bu nöqtədə, line 37, bir 1, b 2, indi mən onları dəyişdirmək davam. 405 00:25:32,370 --> 00:25:34,900 İlk növbədə, mənə, həqiqətən, çox sadəcə bunu bildirin. 406 00:25:34,900 --> 00:25:36,690 Mən kodu həmin 3 xətt nə etdiklərinizi bilmirəm. 407 00:25:36,690 --> 00:25:41,210 Mənə yalnız bu edək: b = a; a = b; edilir. 408 00:25:41,210 --> 00:25:44,690 Niyə bu məntiqi, broken deyil? 409 00:25:46,490 --> 00:25:48,900 Bu hüququ intuitiv şey növü var? 410 00:25:48,900 --> 00:25:52,560 Bir olur bir olur b və b Belə 411 00:25:52,560 --> 00:25:57,730 ancaq problem line 37 həyata kimi, bir və b dəyəri nə ki? 412 00:25:57,730 --> 00:26:03,410 Siz clobbered çünki 1, eyni, belə danışmaq, bir bərabər b değiştirdik. 413 00:26:03,410 --> 00:26:08,890 Belə ki, bir dəfə line 37 edam ki, böyük, indi sayı 1 2 nüsxəsi var 414 00:26:08,890 --> 00:26:13,350 bu funksiya daxilində, siz line 38 demək belə sonra bir = b, 415 00:26:13,350 --> 00:26:17,640 yalnız 1 1 təyin etdiyiniz çünki cür berbat edirik. 416 00:26:17,640 --> 00:26:20,580 Siz tipli haqqında qayğı dəyəri itirilmiş etdik. 417 00:26:20,580 --> 00:26:23,220 Belə ki, bu orijinal versiya, mən nə görürsünüz. 418 00:26:23,220 --> 00:26:26,850 Mən əvəzinə bu kimi baxdı kodu üçüncü xətt idi. 419 00:26:26,850 --> 00:26:28,580 Mən müvəqqəti dəyişən bəyan edir. 420 00:26:28,580 --> 00:26:32,170 >> Tmp müvəqqəti dəyişən üçün bir çox ümumi adı və bir int var 421 00:26:32,170 --> 00:26:34,580 Mən surəti etmək istədiyiniz nə uyğun çünki. 422 00:26:34,580 --> 00:26:39,770 Line 37 yerinə belə bir dəfə mən, tmp bir daxili surəti saxlamaq 423 00:26:39,770 --> 00:26:45,860 bir dəyəri var - tez ağlı başında olma çek - 1, b dəyəri 2 424 00:26:45,860 --> 00:26:48,970 və tmp dəyəri də 1-dir. 425 00:26:48,970 --> 00:26:52,060 Belə ki, indi mən line 38 icra. 426 00:26:52,060 --> 00:27:00,540 Line 38 həyata sonra, bir b dəyəri edir. Və b 2 idi, belə bir artıq 2-dir. 427 00:27:00,540 --> 00:27:05,210 Belə ki, hekayə bu nöqtədə, 2 deyil, b 2 və tmp 1 428 00:27:05,210 --> 00:27:11,060 İndi məntiqi, biz b içinə yalnız Plop tmp dəyəri bilər və biz tamamlayın. 429 00:27:11,060 --> 00:27:12,800 Belə ki, problem həll etdik. 430 00:27:12,800 --> 00:27:17,720 Təəssüf ki, bu formada, bu proqram çalıştırdığınızda, əslində hansı dəyərlər dəyişdirmək deyil. 431 00:27:17,720 --> 00:27:20,100 Amma niyə aydın olacaq? 432 00:27:23,660 --> 00:27:26,450 Mən yalnız bir an əvvəl məntiqi problem müəyyən 433 00:27:26,450 --> 00:27:31,020 Bu proqram run olsa yenə, x və y dəyişməz qalır 434 00:27:31,020 --> 00:27:33,310 proqramın icrası sonunda. 435 00:27:33,310 --> 00:27:37,220 [Işitilemez tələbə comment] >> Biz bir şey geri deyil, doğrudur ki. 436 00:27:37,220 --> 00:27:39,670 Çünki bu günə qədər bir problem bir qədər burada var həyata Amma çevrilir 437 00:27:39,670 --> 00:27:44,170 biz qayıdacaqlar olduğunuz tək şey bir şeydir və bu, C. bir məhdudiyyət deyil 438 00:27:44,170 --> 00:27:49,070 I növ burada stuck Ben halda olan yalnız, həqiqətən, bir dəyər ola bilər 439 00:27:49,070 --> 00:27:53,310 Mən x yeni dəyər qayıtmaq və ya ola bilər, çünki, y yeni dəyər qayıtmaq bilər 440 00:27:53,310 --> 00:27:55,190 amma mən də geri istəyirəm. 441 00:27:55,190 --> 00:27:58,650 Belə ki, sadə həll burada deyil qaytarılması. 442 00:27:58,650 --> 00:28:01,710 Ancaq problem əsaslı nə edir? Biz həqiqətən nə değiştirilecek var? 443 00:28:01,710 --> 00:28:04,190 [Tələbə] a və b. >> Bir və b. 444 00:28:04,190 --> 00:28:08,230 Amma və b biz yalnız bu iş bütün etdim deməkdir x və y, surəti var 445 00:28:08,230 --> 00:28:11,650 biz yalnız mübadilə funksiyası və bu dəyişənlərin bütün 3 söhbət 3 dəqiqə sərf 446 00:28:11,650 --> 00:28:15,420 və ki, təcrid mükəmməl düzgün, böyük 447 00:28:15,420 --> 00:28:20,740 lakin bir və b-nin əhatə dairəsi yalnız burada bu xətlər edir. 448 00:28:20,740 --> 00:28:24,790 >> Belə ki, yalnız, loop üçün kimi i, loop üçün daxilində tam bəyan əgər 449 00:28:24,790 --> 00:28:28,760 eyni, siz yazdıq bir funksiya bir və b daxili elan edirsinizsə, 450 00:28:28,760 --> 00:28:33,320 onlar funksiyası yalnız etibarlı daxili istəyirik, hansı tezliklə svop icra edilir kimi deməkdir 451 00:28:33,320 --> 00:28:38,470 və biz line 25 line 24 getmək, x və y bütün dəyişdirilə deyil. 452 00:28:38,470 --> 00:28:42,790 Siz yalnız dəyişənlərin surətləri dəyişdirmə zaman bütün çox sərf. 453 00:28:42,790 --> 00:28:47,010 Belə ki, bu həll, həqiqətən, qeyri-aydındır ki çevrilir. 454 00:28:47,010 --> 00:28:50,670 Biz yalnız 1 dəyər ola bilər, çünki dəyərlər qayıtmaq üçün kifayət deyil 455 00:28:50,670 --> 00:28:53,470 və mən, həqiqətən, eyni zamanda x və y həm dəyişdirmək istəyirsiniz 456 00:28:53,470 --> 00:28:55,210 biz bu qayıtmaq üçün olacaq. 457 00:28:55,210 --> 00:29:01,020 Amma indi, bu məsələ əsaslı bir və b nüsxələr var ki, əldə bilirik 458 00:29:01,020 --> 00:29:03,630 və onlar öz daxilində var. 459 00:29:03,630 --> 00:29:05,050 Nin bir şəkildə bu həll edək. 460 00:29:05,050 --> 00:29:11,250 Ki, bu dördüncü variantı buggy4 deyək, mənə, həqiqətən, burada geri hərəkət edək və açmaq. 461 00:29:11,250 --> 00:29:13,370 Bu barədə? 462 00:29:13,370 --> 00:29:17,810 Bu biz bunu həll bir zərbə almaq əvvəl baxmaq oxşar lakin sadə məsələ deyil. 463 00:29:17,810 --> 00:29:24,190 Bu proqram artım adlanır və bu, yəqin line 18-1-ə x tam initializes olunur. 464 00:29:24,190 --> 00:29:28,150 Mən x 1 iddia edirlər, mən sonra "Incrementing ..." iddia 465 00:29:28,150 --> 00:29:33,730 , Mən sonra artım zəng, lakin sonra xətləri 22 və 23, mən bu incremented edilmişdir iddia 466 00:29:33,730 --> 00:29:40,220 2, ehtimalla - - Mən x o nə İndi iddia ancaq bu proqram arabası deyil. 467 00:29:40,220 --> 00:29:42,610 Problemi nədir? 468 00:29:43,440 --> 00:29:50,160 Bəli. >> [Işitilemez tələbə cavab] >> Exactly. 469 00:29:50,160 --> 00:29:52,490 Belə x line 18-də təbii ki, elan olunub. 470 00:29:52,490 --> 00:29:54,700 Yəni əsas nin qıvrım aşırma daxilində deyil. 471 00:29:54,700 --> 00:29:58,440 Belə ki, burada sadə cavab x burada var isə ki, 472 00:29:58,440 --> 00:30:03,930 bu xətt 32 mövcud deyil, bu proqram həqiqətən belə tərtib belə. 473 00:30:03,930 --> 00:30:07,940 Mən bu kodu tərtib cəhd zaman compiler mənə fəğan edir 474 00:30:07,940 --> 00:30:14,100 bəzi bəyan identifikatoru və ya bu barədə bir şey haqqında. Əslində isə edək. 475 00:30:14,100 --> 00:30:18,470 Bu buggy4 olun. Yoxdur deyil. 476 00:30:18,470 --> 00:30:22,110 Line 32 elan olunmamış identifikator 'x' istifadə. 477 00:30:22,110 --> 00:30:25,580 Və həqiqətən, bu faydalıdır ki nin bu gün burada daha aydın olsun 478 00:30:25,580 --> 00:30:27,580 ofis saat və evdə. 479 00:30:27,580 --> 00:30:29,300 >> Bu cryptically yazılı bir az olduğunu görürük. 480 00:30:29,300 --> 00:30:37,270 Amma cingilti var ki buggy4.c deyərək, bizə yelled: 32:5, həqiqətən faydalıdır. 481 00:30:37,270 --> 00:30:42,050 Bu səhv xarakter mövqe 5 line 32 deməkdir. 482 00:30:42,050 --> 00:30:46,700 Belə ki, 1, 2, 3, 4, 5. Problem yerləşir ki, əslində, var. 483 00:30:46,700 --> 00:30:49,790 Və həmçinin, çox, ofis saat evdə unutmayın, burada xoşbəxt deyiləm. 484 00:30:49,790 --> 00:30:52,990 Mən bir səhv var. Düzeltmek üçün nisbətən asan olacaq. 485 00:30:52,990 --> 00:30:55,990 Amma böyük səhv tam bir bütün ekran almaq, 486 00:30:55,990 --> 00:31:00,330 daha bottommost bir yalnız topmost bir simptomatik ola bilər bilirik. 487 00:31:00,330 --> 00:31:03,450 Belə ki, həmişə üst aşağı sizin hataları aşağı təqib 488 00:31:03,450 --> 00:31:05,820 yalnız bir papatya zəncirvari təsiri ola bilər, çünki 489 00:31:05,820 --> 00:31:09,240 ki, siz həqiqətən nə çox yol daha problemləri təklif edir. 490 00:31:09,240 --> 00:31:15,150 Mənim qol x arttırmayı əgər Belə ki, necə biz bu düzeltmek olar? >> [Tələbə] x qlobal olun. 491 00:31:15,150 --> 00:31:17,060 OK, belə ki, biz x qlobal edə bilərsiniz. 492 00:31:17,060 --> 00:31:20,480 , Gəlin Mən əvvəllər xəbərdarlığını qısa almaq, lakin heck, biz yalnız bir sürətli fix lazımdır 493 00:31:20,480 --> 00:31:25,730 belə ki, yalnız qədər burada int x deyək. Bu x qlobal edir. 494 00:31:25,730 --> 00:31:31,800 Belə ki, indi əsas, bu çıxış və artırılması üçün daxil edib var 495 00:31:31,800 --> 00:31:34,110 və Mənə davam və indi bu tərtib edək. 496 00:31:34,110 --> 00:31:37,630 Buggy4 olun, daxil edin. İndi tərtib görünür. 497 00:31:37,630 --> 00:31:41,230 Nin buggy4 run edək. Və həqiqətən iş görünür. 498 00:31:41,230 --> 00:31:45,150 Bu, mən kimi, mən demək kimi nə ki, bu şeyi biridir 499 00:31:45,150 --> 00:31:47,010 Mən burada etdiyiniz kimi, çünki ümumiyyətlə, 500 00:31:47,010 --> 00:31:50,440 proqramlar bu çox maraqlı və çox uzun almaq üçün gedir, 501 00:31:50,440 --> 00:31:56,390 və həyat problemləri üçün həll yalnız fayl üst bütün dəyişənlər qoymaq, əgər 502 00:31:56,390 --> 00:31:59,690 çox tez proqramları idarə etmək üçün horrifically çətin almaq yoxdur. 503 00:31:59,690 --> 00:32:02,190 Bu yeni dəyişən adları qədər düşünmək sertleşir 504 00:32:02,190 --> 00:32:05,240 o, nə etdiyini nə dəyişən anlamaq üçün sertleşir 505 00:32:05,240 --> 00:32:08,460 və belə ümumi, bu yaxşı bir çözüm deyil. 506 00:32:08,460 --> 00:32:10,030 Belə ki, daha bu nə edək. 507 00:32:10,030 --> 00:32:12,160 Biz burada qlobal dəyişən istifadə etmək istəmirik. 508 00:32:12,160 --> 00:32:16,240 >> Mən x arttırmayı istəyirəm, mən açıq-aydın ola bilər - 509 00:32:16,240 --> 00:32:18,670 biz yalnız bu çünki günün sonunda, bu silly hekayə növ - 510 00:32:18,670 --> 00:32:24,450 amma operator haqqında bilmədiyini və ya əsas özünü dəyişdirmək üçün icazə, bu, 511 00:32:24,450 --> 00:32:30,730 necə başqa mən bu dəfə kub üçün buraya Ken həyata bilər, lakin arttırmayı? 512 00:32:31,380 --> 00:32:33,190 Mən burada bu şey dəyişə bilərəm? Bəli. 513 00:32:33,190 --> 00:32:38,480 [Tələbə] x ilə Pass və sonra geri [işitilemez] >> OK, yaxşı. 514 00:32:38,480 --> 00:32:41,900 Belə ki, niyə mən, x keçmək və sonra daha çox geri deyil 515 00:32:41,900 --> 00:32:44,870 niyə yalnız x + 1 qayıtmaq yoxdur yoxdur. 516 00:32:44,870 --> 00:32:47,710 Bir neçə çox şey burada dəyişdirmək lazımdır. Mən doğru yolda oldum. 517 00:32:47,710 --> 00:32:49,770 Mən nə çimdik üçün lazımdır? Başqası. Bəli. 518 00:32:49,770 --> 00:32:51,740 [Işitilemez tələbə cavab] 519 00:32:51,740 --> 00:32:54,730 O ləğv deyil, çünki artım qaytarılması növü dəyişdirmək lazımdır. 520 00:32:54,730 --> 00:32:57,780 Ləğv vasitəsilə heç bir şey geri, lakin aydın indi bu edilir 521 00:32:57,780 --> 00:32:59,830 bu ehtiyacları dəyişdirmək üçün - >> [tələbə] int. 522 00:32:59,830 --> 00:33:02,740 Mən, həqiqətən, dönən deyiləm nə uyğun olmalıdır Int. 523 00:33:02,740 --> 00:33:05,180 İndi başqa bir şey burada hələ arabası deyil. Bəli. 524 00:33:05,180 --> 00:33:08,400 [Işitilemez tələbə cavab] >> [Malan] Mən x arttırmayı lazımdır? 525 00:33:08,400 --> 00:33:12,080 [Işitilemez tələbə cavab] >> [Malan] Ah, mən x keçmək lazımdır. 526 00:33:12,080 --> 00:33:16,660 Mən burada bunu etmək lazımdır. >> [Işitilemez tələbə comment] 527 00:33:16,660 --> 00:33:20,050 [Malan] Belə ki, prototip, burada bu qədər dəyişiklik var. 528 00:33:20,050 --> 00:33:22,930 Bu int olmaq var Belə ki, bu olmaq var - 529 00:33:22,930 --> 00:33:25,620 hmm, mən, həqiqətən, burada bir səhv aşağı var. Ilk bu düzeltmek edək. 530 00:33:25,620 --> 00:33:29,590 Bu əslində nə olmalıdır? Bu int bir şey var. 531 00:33:29,590 --> 00:33:32,700 Sizin dəyişənlərin x bütün zəng başlamaq əgər, səmimi x, lakin bilər 532 00:33:32,700 --> 00:33:35,390 hansı olan daha az aydın olacaq. 533 00:33:35,390 --> 00:33:39,560 >> Belə ki, yalnız özbaşına mənim köməkçi funksiyaları üçün müxtəlif adlandırma qurultayının seçmək bildirin 534 00:33:39,560 --> 00:33:41,940 Mən yazıyoruz funksiyaları. Biz bir zəng edəcəyik, ya da zəng edə bilər - 535 00:33:41,940 --> 00:33:45,010 Gəlin daha aydın olmaq üçün zəng. 536 00:33:45,010 --> 00:33:47,560 Beləliklə mən sıra plus 1, nə qayıtmaq üçün 537 00:33:47,560 --> 00:33:50,740 və indi burada və burada başqa bir şey 1 başqa şey dəyişdirmək lazımdır. 538 00:33:50,740 --> 00:33:54,350 Mən ilk 21 dəyişdirmək üçün nə var? >> [Işitilemez tələbə cavab] 539 00:33:54,350 --> 00:33:57,610 [Malan] Mən x onu təyin etmək lazımdır. Mən yalnız (x) artım zəng edə bilməz. 540 00:33:57,610 --> 00:34:01,960 Mən sol tərəfində x dəyəri dəyişən cavab xatırlamaq lazımdır. 541 00:34:01,960 --> 00:34:04,680 Və x artıq olsa sol və sağ ki, tamamilə Gözəl 542 00:34:04,680 --> 00:34:08,860 sağ tərəfdən ilk edam olur, çünki sonra sol şey daxil plopped olur - 543 00:34:08,860 --> 00:34:10,600 Bu halda x. 544 00:34:10,600 --> 00:34:12,159 Və sonra nəhayət, indi asan fix edir. 545 00:34:12,159 --> 00:34:17,230 Bu yalnız int sayı, aşağıda nə Down uyğun olmalıdır. 546 00:34:17,230 --> 00:34:20,570 Belə ki, həqiqətən axmaq funksiyası dəyişikliklər bütün dəstə 547 00:34:20,570 --> 00:34:24,420 lakin biz getdikcə etmək lazımdır ki şeyi nümayəndəsi. 548 00:34:24,420 --> 00:34:27,090 Belə buggy4 edir. Mən haradasa qıfıllar etdik. 549 00:34:27,090 --> 00:34:30,139 Aman Allah. 6-line proqram beş səhvlər. 550 00:34:30,139 --> 00:34:35,690 Belə ki, xarakteri, xətti, 18 yanlış nə 5 var? 551 00:34:35,690 --> 00:34:39,610 Mən bu int elan var. 552 00:34:39,610 --> 00:34:41,920 Bakalým. Digər səhvlər bütün dəstə var. 553 00:34:41,920 --> 00:34:47,010 Aman Allah - 19, 18, 21 - yenidən, lakin, yalnız burada, Control L ekran sil bildirin 554 00:34:47,010 --> 00:34:49,380 və cingilti təkrar. 555 00:34:49,380 --> 00:34:51,340 Belə ki, 5 problem həqiqətən yalnız 1-dir. 556 00:34:51,340 --> 00:34:57,520 Belə ki, indi daxil edin nin buggy4 run imkan verir. Whew, x doğru incremented edilmişdir. 557 00:34:57,520 --> 00:35:02,720 Bütün hüquqlar. Ədəd arttırmayı haqqında suallarınız var mı? Bəli. 558 00:35:02,720 --> 00:35:09,870 [Işitilemez tələbə sual] >> Yaxşı sual. 559 00:35:09,870 --> 00:35:14,220 Mən yalnız sayı x dəyişə bilərsiniz və proqram dərhal bilirik ki, necə? 560 00:35:14,220 --> 00:35:16,200 >> Yenə bu abstraksiya kimi düşünün. 561 00:35:16,200 --> 00:35:21,600 Mən əsas deyiləm və Ken səmimi, artım əgər Beləliklə, mən Ken onun iPad çağırır nə qayğı yoxdur. 562 00:35:21,600 --> 00:35:26,570 O bu işlevselliği onun həyata keçirilməsi ilə nə var ki, bir şey çağırır nə qayğı yoxdur. 563 00:35:26,570 --> 00:35:33,340 Bu, əsas haqqında qayğı yoxdur icra detal. 564 00:35:33,340 --> 00:35:38,250 Və sadəcə funksiyası daxilində ardıcıl dəyişdirilməsi - nömrə burada və burada sayı - 565 00:35:38,250 --> 00:35:40,960 Mən derleyeceğiz kimi uzun edər. 566 00:35:40,960 --> 00:35:44,180 Sizcə, bu cür kimi var sürücü lisenziya sizin, bizim çox 567 00:35:44,180 --> 00:35:46,770 hətta bir avtomobil idarə olsanız, kim və ya idarə ediblər 568 00:35:46,770 --> 00:35:50,950 Bizi ən çox avtomobil başlıq altında necə heç bir fikrim yoxdur. 569 00:35:50,950 --> 00:35:54,970 Siz başlıq, bizim ən açmaq əgər sözün, - özüm daxil - 570 00:35:54,970 --> 00:35:56,940 həqiqətən biz aradığınız nə verməyəcəyik 571 00:35:56,940 --> 00:35:59,220 İndi bu hüququ kimi məhsulları ilə hiss edə bilər kimi növ. 572 00:35:59,220 --> 00:36:01,480 Amma biz, həqiqətən, avtomobil necə qayğı yoxdur 573 00:36:01,480 --> 00:36:05,970 biz qayğı yoxdur, nə avtomobil daxilində çubuqlar və porşenlər və kabellər bütün 574 00:36:05,970 --> 00:36:08,160 həqiqətən edirik. 575 00:36:08,160 --> 00:36:12,770 Siz piston bu halda burada etməz dediyimiz kimi bir şey idi. Eyni fikir. 576 00:36:12,770 --> 00:36:25,300 Bəli. >> [Işitilemez tələbə sual] 577 00:36:25,300 --> 00:36:29,180 Dəyişən XA an daha istifadə əvvəl varsa, 578 00:36:29,180 --> 00:36:32,150 Əgər proqramçı, hər yerdə onları dəyişdirmək lazımdır. 579 00:36:32,150 --> 00:36:36,600 Yoxsa sözün Fayl Menyu etmək, sonra dəyişdirin tap bilər - belə bir şey - 580 00:36:36,600 --> 00:36:39,170 lakin bu dəyişikliklər özünüz etmək üçün gedir. 581 00:36:39,170 --> 00:36:47,450 Siz ardıcıl olmalıdır. >> [Tələbə] neçə dəyişənlərin varsa [işitilemez] 582 00:36:47,450 --> 00:36:53,100 Burada kimi xüsusi qaydada, bu halda başqa nömrə int? >> [Tələbə] Correct. 583 00:36:53,100 --> 00:36:56,590 [Malan] Bəli. Siz funksiyası zəng zaman Sifariş məsələləri. 584 00:36:56,590 --> 00:37:00,050 >> Mən bir şey vergül şey burada artım zəng idi əgər 585 00:37:00,050 --> 00:37:01,680 birbaşa mapping var. 586 00:37:01,680 --> 00:37:05,690 Bu adlı hər hansı ilk dəyişən, buraya ilk dəlil surəti edilir. 587 00:37:05,690 --> 00:37:07,760 Bağışlayın. Bu mötərizə olmamalıdır. 588 00:37:07,760 --> 00:37:11,490 Ikinci ilə ikinci dəlil xətləri up. Sifariş Belə ki, bəli, məsələləri. Bütün hüquqlar. 589 00:37:11,490 --> 00:37:17,020 Bağışlayın. Mən orada almaq üçün uzun bir yol etmişdir. Digər suallar? Bütün hüquqlar. 590 00:37:17,020 --> 00:37:20,610 Belə ki, biz, həqiqətən, burada neler bir şəkil rəngləməyin bilər nin görək 591 00:37:20,610 --> 00:37:23,090 başlıq altında, belə danışmaq. 592 00:37:23,090 --> 00:37:26,640 Bu kompüter yaddaş təmsil bilər ki, bir düzbucaqlı edir. 593 00:37:26,640 --> 00:37:30,970 Yaddaş işləri və ya RAM işləri necə heç bir fikrim yoxdur, hətta, 594 00:37:30,970 --> 00:37:33,940 ən azı bu gün bu dəstələri var daşımır. 595 00:37:33,940 --> 00:37:36,280 Siz bu megabayt var, siz bu gigabayt var 596 00:37:36,280 --> 00:37:40,870 və biz byte yalnız nə olduğunu həftə 0 bilirsinizmi? >> [Tələbə] 8 bit. 597 00:37:40,870 --> 00:37:42,950 8 bit, sağ? Belə ki, 8 zeroes və 1. 598 00:37:42,950 --> 00:37:45,880 Kompüter RAM bir konsert, RAM 2 gigs bu gün var, əgər 599 00:37:45,880 --> 00:37:55,030 bir yaddaş milyard və ya 2 milyard bayt və ya təxminən 8 milyard və ya 16 milyard bit var 600 00:37:55,030 --> 00:37:56,890 kompüter daxilində. 601 00:37:56,890 --> 00:38:00,590 Kiçik Wooly Willy Məsələn fərqli olaraq, adətən artıq maqnit hissəciklərinin deyil. 602 00:38:00,590 --> 00:38:04,450 Getdikcə - noutbuk ən azı - bu bərk dövlət sürücü, SSDs var 603 00:38:04,450 --> 00:38:08,580 yalnız heç bir hərəkət edən hissələri var. Bu, bütün elektron var. Bu, bütün elektrik-based edir. 604 00:38:08,580 --> 00:38:14,060 Belə ki, yalnız var ki, yaddaş 1 və ya 2 giqabayt təmsil edən kimi bu düzbucaqlı edirəm. 605 00:38:14,060 --> 00:38:16,020 >> Belə ki, yaddaş yığın edir. 606 00:38:16,020 --> 00:38:19,830 Növ off parçalanmış kompüter elminin dünya edib 607 00:38:19,830 --> 00:38:22,950 yaddaş chunks müxtəlif şeyə. 608 00:38:22,950 --> 00:38:27,190 Bu kompüter RAM əgər Məsələn, kimi, var düzbucaqlı təklif 609 00:38:27,190 --> 00:38:31,130 o, Konvensiyanın, sizin RAM üst, belə danışmaq çıxır ki, 610 00:38:31,130 --> 00:38:33,660 mətn seqment deyilən nə adətən edir. 611 00:38:33,660 --> 00:38:36,740 Bu siz tərtib ki 0s və 1s var. 612 00:38:36,740 --> 00:38:39,020 Biz a.out nə olan başlıq altında nəzərdən etdik Belə ki 613 00:38:39,020 --> 00:38:41,980 Bütün bu 0s və 1s, bir proqram çalıştırdığınızda, 614 00:38:41,980 --> 00:38:46,290 o 0s və 1s, RAM deyilən bir şey sabit sürücü instantly 615 00:38:46,290 --> 00:38:49,320 və RAM onlar üst qoymaq edirik. 616 00:38:49,320 --> 00:38:52,770 Bu arada, siz başqa şeylər var: data uninitialize, data başlamaq. 617 00:38:52,770 --> 00:38:57,510 Yaddaş Həmin 2 swaths siz tez-tez istifadə olmayan qlobal dəyişənlər, baxın 618 00:38:57,510 --> 00:39:00,760 Əgər lakin bəzən onlar da orada son. 619 00:39:00,760 --> 00:39:04,260 Mühit değişkenleri, biz çox vaxt sərf edəcək, sonra bəzi digər məhsulları var 620 00:39:04,260 --> 00:39:06,860 lakin sonra 2 mühüm şeyi ki, semestr ərzində geri gələcək 621 00:39:06,860 --> 00:39:08,550 yığın və yığın. 622 00:39:08,550 --> 00:39:12,210 Bir proqram çalışan Belə ki, kompüter yaddaş ən qorunur 623 00:39:12,210 --> 00:39:15,370 bir şey üçün yığını adlanır və bir yığın çağırıb. 624 00:39:15,370 --> 00:39:18,840 Biz bu gün yığın haqqında danışmaq fikrində deyilik, ancaq yığını danışacaqlar. 625 00:39:18,840 --> 00:39:24,600 Yığını Mather evində yemekhane yemək qablar əyani qədər hoqqa çıxarmaq deməkdir 626 00:39:24,600 --> 00:39:28,110 və ya yemekhane heyəti hər gün təmiz yerləşir Siz nə yerdə, 627 00:39:28,110 --> 00:39:30,180 onlar qədər mərtəbə onları yığın 628 00:39:30,180 --> 00:39:34,550 və eyni, yaddaş, bir yığın bir şey qoyaraq bu fikri var 629 00:39:34,550 --> 00:39:36,860 bir yığın bir şey qoyaraq, bir yığın bir şey qoymuşdur. 630 00:39:36,860 --> 00:39:38,240 Və biz bu nə deməkdir? 631 00:39:38,240 --> 00:39:41,860 >> Bu şəkil yalnız aşağı yarım, bilgisayarınızın RAM, üzrə zoom edək 632 00:39:41,860 --> 00:39:44,330 aşağıdakı təklif. 633 00:39:44,330 --> 00:39:48,170 Bu çıxır ki, siz a.out ya salam kimi bir proqram çalıştırdığınızda - 634 00:39:48,170 --> 00:39:50,100 - Bu proqram yazdıq ki, nə 635 00:39:50,100 --> 00:39:54,020 yenə həmin 0s və 1s, uzun-müddətli saxlama olan sabit olan yüklənir 636 00:39:54,020 --> 00:39:57,230 siz RAM instantly ştepseldən, çəkmək hətta orada qalır. 637 00:39:57,230 --> 00:40:00,610 RAM, sabit sürücüler daha sürətli - bu sabit diskler dən kiçik var - 638 00:40:00,610 --> 00:40:03,300 siz onlara etdiyiniz zaman proqramları yaşadığı lakin bu. 639 00:40:03,300 --> 00:40:08,230 Beləliklə, siz ikiqat Mac və ya PC bir proqram basın, bu RAM daxil sabit sürücü yüklü edir. 640 00:40:08,230 --> 00:40:11,520 Bu RAM, yol üst 0s və 1s go, yükləndiyi kimi tez 641 00:40:11,520 --> 00:40:16,610 adlandırılan mətn seqment, lakin sonra tez proqram həqiqətən başlayır kimi çalışan, 642 00:40:16,610 --> 00:40:21,360 əsas funksiyası adlanır və əsas, biz gördük kimi, tez-tez yerli dəyişənlər var 643 00:40:21,360 --> 00:40:24,870 və ints və strings və chars və bu kimi var. 644 00:40:24,870 --> 00:40:29,180 Belə ki, sizin yazılı ki, proqram və ya ikiqat tıklayan ki, proqram əgər 645 00:40:29,180 --> 00:40:32,970 bəzi dəyişənlər əsas daxilində istifadə 646 00:40:32,970 --> 00:40:37,240 onlar danışmaq, yaddaşlı sizin yığını altında son. 647 00:40:37,240 --> 00:40:39,410 Daha konkret, bu həqiqətən nə deməkdir? 648 00:40:39,410 --> 00:40:48,450 Bu o deməkdir ki, sizin kompüter sayı RAM bayt gedirdi əgər, 649 00:40:48,450 --> 00:40:55,750 Bu byte sayı 0 ola bilər ki, görürsünüz, bu byte sayı 1, 2, 3, 4, 5, 6, ola bilər 650 00:40:55,750 --> 00:41:01,480 2 milyard bütün yolu var başında bütün yol olacaq. 651 00:41:01,480 --> 00:41:05,880 Belə ki, başqa sözlə, biz bytes baxımından RAM və ya yaddaş haqqında danışmaq zaman, 652 00:41:05,880 --> 00:41:11,500 yalnız ki, kimsə yaddaş bu chunks hər sayı nə qərar qəbul edib deməkdir. 653 00:41:11,500 --> 00:41:16,650 Belə ki, bir int üçün 32 bit lazımdır və ya bir char üçün 8 bit lazım, 654 00:41:16,650 --> 00:41:18,840 onlar yaddaşında yerləşir başa edirsiniz? 655 00:41:18,840 --> 00:41:22,350 >> Konseptual yalnız yığını adlanan bu şey altındakı son. 656 00:41:22,350 --> 00:41:25,870 Əsas funksiyası çağırır Lakin nə indi maraqlı deyil - 657 00:41:25,870 --> 00:41:28,750 foo adlı funksiyası, yalnız bir ixtiyari adı Güman - 658 00:41:28,750 --> 00:41:32,330 yaddaş bu yığını altında nə olar əsas deyil; 659 00:41:32,330 --> 00:41:35,680 foo artıq yaddaş əsas üst qoyulur. 660 00:41:35,680 --> 00:41:40,990 Foo konseptual əsas bu yuxarıda cür başa hər hansı yerli dəyişənlər belə. 661 00:41:40,990 --> 00:41:47,070 Foo bar adlı başqa bir funksiyası çağırır, bu dəyişənlərin burada son. 662 00:41:47,070 --> 00:41:50,120 Bar burada başqa bir şey, burada çağırır edin. 663 00:41:50,120 --> 00:41:53,830 Belə ki, nə bir proqram çalışan haqqında maraqlı siz funksiyaları zəng kimi ki 664 00:41:53,830 --> 00:41:57,750 və bu funksiyaları funksiyaları zəng və bu funksiyaları funksiyaları zəng kimi, 665 00:41:57,750 --> 00:42:01,470 yaddaş funksiyaları bu yığını qurmaq. 666 00:42:01,470 --> 00:42:06,890 Və yalnız bir funksiyası yekunları dəfə siz yaddaş geri alınması başlamaq yoxdur. 667 00:42:06,890 --> 00:42:10,860 Belə ki, bir kompüter proqramı yaddaş tökülmək üçün asan yollarından biri 668 00:42:10,860 --> 00:42:14,360 qayıtmaq heç funksiyaları yazmaq üçün. 669 00:42:14,360 --> 00:42:18,900 Belə ki, məsələn, in bir qəsdən arabası proqramı ilə qədər nümayiş bildirin. 670 00:42:18,900 --> 00:42:22,230 Mənə davam və # daxil olar ki, 671 00:42:22,230 --> 00:42:25,000 int əsas (void) 672 00:42:25,000 --> 00:42:32,940 və Mən (2> 1), hansı yəqin ki, heç bizə dəyişməyəcək isə nə gedirəm 673 00:42:32,940 --> 00:42:37,560 və mənə indi davam və printf bunu bildirin. 674 00:42:37,560 --> 00:42:40,700 Əslində, az görmə maraqlı olacaq. Bunu edək. 675 00:42:40,700 --> 00:42:50,240 Üçün int i = 0; i> 0 - bu səhv edək - i + +. 676 00:42:50,240 --> 00:42:52,720 Və burada printf deyil bildirin. Nin mən vəz nə təcrübə edək. 677 00:42:52,720 --> 00:43:00,190 , Gəlin, burada etibarsız xor metodu var və biz int i demək lazımdır 678 00:43:00,190 --> 00:43:06,830 və sonra mən printf demək gedirəm - yox, qoy bu daha maraqlı edir. 679 00:43:06,830 --> 00:43:15,790 Nin əslində bütün bir şey çap çıxartmasın. Xor: (i) yalnız bunu edək. 680 00:43:15,790 --> 00:43:20,390 Bütün hüquqlar. Çünki nə bu arabası var? 681 00:43:20,390 --> 00:43:23,380 Proqram həqiqətən maraq bir şey deyil, çünki getmək kimi mən bu qədər qəbul edirəm. 682 00:43:23,380 --> 00:43:25,320 >> Amma bu məqsəd deyil. 683 00:43:25,320 --> 00:43:29,630 Məqsədi əsas funksiyası nə, yəqin edir bir proqram yazmaq olar? 684 00:43:30,720 --> 00:43:32,860 Özü edin. Və həqiqətən, biz loop ehtiyac yoxdur. 685 00:43:32,860 --> 00:43:37,200 Gəlin belə yalnız belə həqiqətən fundamental səhv qaçırmaq üçün bu sadələşdirmək. 686 00:43:37,200 --> 00:43:39,640 Main zənglər xor bəzi xor oxumaq, 687 00:43:39,640 --> 00:43:41,440 sonra mən axmaq bir şey etdi və mən xor zəng xor idi 688 00:43:41,440 --> 00:43:43,760 Başqa kimsə bəlkə həyata gedən fərz, çünki 689 00:43:43,760 --> 00:43:47,210 və bu hələ tərtib etmək niyyətində deyil. Mən nə üçün lazımdır? 690 00:43:47,210 --> 00:43:49,970 Mən prototip lazımdır, unutmayın. 691 00:43:49,970 --> 00:43:56,110 Mən (int i) burada etibarsız xor qədər lazımdır; 692 00:43:56,110 --> 00:43:59,210 Burada enmək Əgər indi - həqiqətən də böyük pəncərə istifadə edək. 693 00:43:59,210 --> 00:44:01,980 Nin davam və xor etmək edək. 694 00:44:01,980 --> 00:44:06,490 Nin davam və xor etmək edək. 695 00:44:06,490 --> 00:44:08,370 Elan edilməmiş identifikator i istifadə edin. 696 00:44:08,370 --> 00:44:12,500 Oh, bu axmaq idi. Biz mübahisə lazım deyil. Yalnız bunu edək. 697 00:44:12,500 --> 00:44:16,370 Düşünürəm ki, biz bu yolla başladı arzulayıram. Bu yazmaq daha asan proqram olardı. 698 00:44:16,370 --> 00:44:25,590 Yoxdur. İndi, mənim terminal pəncərə üzərində getmək cingilti təkrar və burada biz gedək. 699 00:44:25,590 --> 00:44:28,460 Bu həqiqətən sürətli idi. 700 00:44:28,460 --> 00:44:31,150 Ne həqiqətən yalnız baxmayaraq, oldu? 701 00:44:31,150 --> 00:44:33,730 Biz görə bilərsiniz Yaxşı, indi çap line əlavə edəcəyik. 702 00:44:33,730 --> 00:44:43,490 Mənə ("Mən burada oldum") printf deyək - no dəyişənlərin. Biz kimi tərk edəcəyik. 703 00:44:43,490 --> 00:44:47,480 Məni təkrar edək. Mənə xor təkrar edək. 704 00:44:47,480 --> 00:44:57,380 Və ... gəlib. Davam edin. 705 00:44:57,380 --> 00:44:59,930 Bir kənara kimi, niyə hələ qəzaya deyil? 706 00:44:59,930 --> 00:45:02,080 Seqmentləşdirilməsi, günah əvvəl super sürətli oldu. 707 00:45:02,080 --> 00:45:06,570 [Işitilemez tələbə cavab] >> Exactly. Belə ki, hüququ, çap zaman alır? 708 00:45:06,570 --> 00:45:08,610 Bu, yalnız kompüter hissəsi daha çox iş görür. 709 00:45:08,610 --> 00:45:10,620 Və bu: Segmentasyon günah. 710 00:45:10,620 --> 00:45:12,340 >> Belə ki, sürətli proqramları run necə görürsünüz. 711 00:45:12,340 --> 00:45:14,130 Bir şey, super sürətli çap deyilik edin. 712 00:45:14,130 --> 00:45:18,770 Nə baş Lakin biz hələ də bu seqmentasiya günah var? 713 00:45:18,770 --> 00:45:21,210 Siz kompüter yaddaş müəyyən necə haqqında düşünüyorsanız, 714 00:45:21,210 --> 00:45:28,740 Bu əsas olur, lakin burada yalnız bu xor zəng edək və bu xor zəng edək. 715 00:45:28,740 --> 00:45:34,550 Mən sağ mənim estetik əgər İndi, bu, yalnız xor, xor, xor, demək gedir 716 00:45:34,550 --> 00:45:40,550 xor, xor, xor, xor, elan nauseum və nəhayət, baş neler olub? 717 00:45:40,550 --> 00:45:45,630 Böyük şəkil, sanki, bu deyil, nə yalnız konseptual olur? 718 00:45:46,520 --> 00:45:48,630 Yığını taşmaları yığın. 719 00:45:48,630 --> 00:45:51,940 Və ya pis, yalnız mətn seqment daxil olmaqla, hər şey, dağıtmaq 720 00:45:51,940 --> 00:45:54,590 proqram təmsil edən 0s və 1s olan. 721 00:45:54,590 --> 00:45:57,080 Bir sözlə, bu yalnız super, super pis. 722 00:45:57,080 --> 00:45:58,830 Sizin proqram nəzarət həyata spiraled etmişdir. 723 00:45:58,830 --> 00:46:01,220 Siz nəzərdə çox yol daha çox yaddaş istifadə edirsinizsə 724 00:46:01,220 --> 00:46:03,960 bütün çünki bu halda bir axmaq səhv, 725 00:46:03,960 --> 00:46:08,040 və ya bu halda bir çox qəsdən həyata funksiyası özü zəng. 726 00:46:08,040 --> 00:46:09,500 İndi bütün bu pis deyil. 727 00:46:09,500 --> 00:46:13,800 Düzgün istifadə zaman özləri zəng funksiyaları həqiqətən böyük güc var. 728 00:46:13,800 --> 00:46:15,800 Mən düzgün burada istifadə etməmişlər. 729 00:46:15,800 --> 00:46:19,780 Belə ki, bütün bu pis deyil, amma həqiqətən dayandırmaq heç vaxt ki özümü zəng 730 00:46:19,780 --> 00:46:23,520 Bu proqram burada bir əsas zəiflik deyil. 731 00:46:23,520 --> 00:46:26,400 Beləliklə, biz bütün bu ilə gedir? Həqiqətən nə olub? 732 00:46:26,400 --> 00:46:30,340 Biz bu nümunələrdə edirdilər kimi mən artım funksiyası zəng zaman, 733 00:46:30,340 --> 00:46:33,420 Mən içəri keçir ki 1 kimi dəyəri 734 00:46:33,420 --> 00:46:37,570 Mən sayı 1 surəti keçmək, aşağıdakı olur. 735 00:46:37,570 --> 00:46:44,240 Bu artım Məsələn daxil edək, burada artıq bu oğlan. 736 00:46:44,240 --> 00:46:46,870 Burada həqiqətən neler var. 737 00:46:46,870 --> 00:46:53,400 Mən artım zəng və mən burada neler, pictorially, x keçmək zaman bu. 738 00:46:53,400 --> 00:46:59,520 >> Burada saxlanılan 1 dəyəri var və mən həqiqətən artım zəng edin, 739 00:46:59,520 --> 00:47:04,330 indi xor adlanır - iPad burada mənə off atma olunur. 740 00:47:04,330 --> 00:47:09,760 Gəlin bu artım zəng və biz bu növbəti funksiyası olacaq nə bilmirəm. 741 00:47:09,760 --> 00:47:14,840 Beləliklə, nə həqiqətən baş əsas haradasa burada mən yaddaş yığın var 742 00:47:14,840 --> 00:47:17,000 ki, 1 saylı saxlanılması edilir. 743 00:47:17,000 --> 00:47:19,380 Mən artım zəng zaman, mən yaddaş bir yığın kullanıyorum 744 00:47:19,380 --> 00:47:21,230 amma indi 1 surəti var. 745 00:47:21,230 --> 00:47:26,660 Hesab edirəm ki, dəyəri arttırmayı, bu, 2 olur 746 00:47:26,660 --> 00:47:30,560 lakin sonra nə artım yekunları kimi olur? 747 00:47:30,560 --> 00:47:33,630 Bu yaddaş yalnız əməliyyat sistemi geri təhvil olur 748 00:47:33,630 --> 00:47:37,450 sizə etdiyiniz bütün xeyirli heç bir şey deməkdir. 749 00:47:37,450 --> 00:47:43,120 Ilk əsas olan ki, 1 həqiqətən orada qalır. 750 00:47:43,120 --> 00:47:44,890 Beləliklə, biz bu gedir? 751 00:47:44,890 --> 00:47:49,770 Bu yaddaş siz bayt bu geri-to-geri ardıcıllıqla ki çıxır 752 00:47:49,770 --> 00:47:53,050 Siz məhsulları qoya bilər, və biz artıq bir şey gördüm ki, çevrilir ki, 753 00:47:53,050 --> 00:47:55,390 geri geri geri şeyi geri qoyaraq ehtiva edir. 754 00:47:55,390 --> 00:47:59,860 Həftə 1 və indi həftə 2 əsaslanan string nədir? 755 00:48:00,020 --> 00:48:01,980 Bu yalnız simvol toplusu var. 756 00:48:01,980 --> 00:48:04,310 Belə ki, siz yaddaş nömrələri bilər kimi çıxır 757 00:48:04,310 --> 00:48:06,990 eyni yaddaş simvol bilər. 758 00:48:06,990 --> 00:48:10,530 Və bir dəfə biz geri geri geri geri yaddaş qoyulması simvol başlamaq 759 00:48:10,530 --> 00:48:13,620 o çıxır loop və ya bir müddət loop üçün kimi şeylər sadə istifadə edərək, 760 00:48:13,620 --> 00:48:17,170 biz bir string-də simvol üzərində soldan sağa təkrarlamaq bilər 761 00:48:17,170 --> 00:48:20,600 və tamamilə fərqli simvol onları masaj başlamaq - 762 00:48:20,600 --> 00:48:23,370 a b ola bilər, b c ola bilər - 763 00:48:23,370 --> 00:48:27,780 nəticə etibarilə, biz, həqiqətən, anlamlı bir İngilis dili hökm edə bilər ki, 764 00:48:27,780 --> 00:48:30,310 və bir dəfə həmin məktubların bir hər çevirmək 765 00:48:30,310 --> 00:48:34,400 bizim kompüter yaddaş ilə gəzinti ilə həqiqətən şifrelemek üçün sağ qaldı. 766 00:48:34,400 --> 00:48:35,810 Belə nin burada beş dəqiqəlik fasilə etmək qoy, 767 00:48:35,810 --> 00:48:40,730 və biz geri gələndə, biz informasiya Scrambling bu prosesi başlamaq lazımdır. 768 00:48:42,020 --> 00:48:43,520 >> Bütün hüquqlar. 769 00:48:43,520 --> 00:48:48,070 Biz bir kripto daxil dalış və bu şeyi serialların deyilən əvvəl 770 00:48:48,070 --> 00:48:51,470 Mən, həqiqətən cür ilişikli kimi hiss edirəm, çünki mənə suallarınız üçün fasilə imkan 771 00:48:51,470 --> 00:48:54,080 o bəzi mövzuları. Biz əgər İndi nin düzeltmek bildirin. 772 00:48:54,080 --> 00:48:58,700 Biz yalnız geri dəyərlər haqqında söhbət, biz dəlilləri haqqında söhbət 773 00:48:58,700 --> 00:49:03,250 və biz gələcək həftə qayıda bilərsiniz ki, bu anlayışı haqqında söhbət 774 00:49:03,250 --> 00:49:08,720 belə danışmaq, bu dizilir qablar bütün dəstə kimi yaddaş görüntülerken, 775 00:49:08,720 --> 00:49:12,660 belə qədər aşağı, ki yığını qoymaq olur ki, hər bir tray 776 00:49:12,660 --> 00:49:16,530 Hal-hazırda adlanan ki, bir funksiya təmsil edir. 777 00:49:17,900 --> 00:49:20,260 Hər hansı sual? 778 00:49:20,260 --> 00:49:22,640 Mənə burada bir sual edək. 779 00:49:22,640 --> 00:49:27,890 Mənə bizim əvvəllər Q & A. bəzi əvvəl nə üçün bu geri asanlaşdırmaq edək 780 00:49:27,890 --> 00:49:35,570 Increment açıq mötərizə, int var ki, mötərizə bağlanıb - 781 00:49:35,570 --> 00:49:39,110 int sayı nə təmsil edir? 782 00:49:39,110 --> 00:49:42,790 [Tələbə] Bir arqument. >> Bir arqument. Okay. Amma bir dəlil var? 783 00:49:42,790 --> 00:49:46,370 [Işitilemez tələbə cavab] >> ki, nə var? Daxil keçir ki >> [tələbə] Something 784 00:49:46,370 --> 00:49:49,940 OK, belə Daxil keçmək Və daha çox, ümumiyyətlə, yalnız giriş ki, bir şey. 785 00:49:49,940 --> 00:49:52,450 Siz həyatda bir funksiyası və funksiyasının məqsədi yazılı Əgər 786 00:49:52,450 --> 00:49:55,770 bir şey siz istifadə bir az fərqli hər zaman etmək 787 00:49:55,770 --> 00:50:00,110 sonra həqiqətən baş üçün yeganə yol girişi ilə təmin etmək görünür ki, 788 00:50:00,110 --> 00:50:03,510 ki, daxil olan hər dəfə fərqli bir şey edə bilərsiniz, belə ki. 789 00:50:03,510 --> 00:50:06,650 >> Belə bir funksiya daxil edir zaman iki şey müəyyən etmək lazımdır. 790 00:50:06,650 --> 00:50:09,590 Siz daxil vermək istədiyiniz adı daxil etmək lazımdır 791 00:50:09,590 --> 00:50:12,700 sırf öz rahatlığı üçün ona müraciət edə bilərsiniz, belə ki, 792 00:50:12,700 --> 00:50:16,540 Mən line 32 burada olduğu kimi özünüzü, yazılı ki, funksiyası. 793 00:50:16,540 --> 00:50:20,800 Amma siz də C bir proqramlaşdırma dilidir onun növü müəyyən etmək lazımdır 794 00:50:20,800 --> 00:50:25,940 ki, yalnız, bir dəyişən istəyirsinizsə, siz nə data type kompüter demək olmalıdır 795 00:50:25,940 --> 00:50:30,200 ki, böyük hissəsində bu dəyişən üçün ayrılması neçə bit bilir 796 00:50:30,200 --> 00:50:33,020 6 ola bilər, çünki - Bağışlayın, 6 olmayacaq. 797 00:50:33,020 --> 00:50:37,080 16 ola bilər, o, 8 ola bilər, o, hətta 64, 32 ola bilər 798 00:50:37,080 --> 00:50:39,130 lakin kompüter bilməlidir. 799 00:50:39,130 --> 00:50:43,180 İndi, sol tərəfində int əksinə, nə təmsil? 800 00:50:46,350 --> 00:50:48,850 [Işitilemez tələbə cavab] >> ki, nə var? Funksiyası >> [tələbə] yazın. 801 00:50:48,850 --> 00:50:53,610 Bu funksiyanı növü və daha dəqiq desək, onun çıxış növü. Sağ. 802 00:50:53,610 --> 00:50:57,380 Belə ki, parantez şey isə onun giriş, istənilən halda, təmsil 803 00:50:57,380 --> 00:50:59,660 sol şey onun çıxış edir. 804 00:50:59,660 --> 00:51:03,530 Və bu halda, artım yəqin bir int qaytarır, 805 00:51:03,530 --> 00:51:07,690 və belə int bu funksiya qaytarılması növüdür. 806 00:51:07,690 --> 00:51:09,340 Nə qayıtmaq deməkdir? 807 00:51:09,340 --> 00:51:15,090 Sanki, sonra söz qaytarma istifadə və qaytarılması nə əgər 808 00:51:15,090 --> 00:51:18,600 söz hüququ bir tam deyil, 809 00:51:18,600 --> 00:51:21,660 sonra ki, söz nə ilə həqiqətən uyğundur. 810 00:51:21,660 --> 00:51:26,410 Hello, dünya - - Siz belə bir şey yoxdur ki, bir string çünki. 811 00:51:26,410 --> 00:51:28,860 >> Aydındır ki, bu tam deyil. 812 00:51:28,860 --> 00:51:33,140 Belə ki, qısa, yükü bizə həqiqətən, proqramçı, xüsusi olmaq 813 00:51:33,140 --> 00:51:37,770 biz qaytarılması ne və kimi sonra həqiqətən qaytarılması haqqında gedin. 814 00:51:37,770 --> 00:51:43,440 Burada kontekstində artıq kompüter yaddaş bir gigabyte, 2 gigabayt olduğunu - 815 00:51:43,440 --> 00:51:45,920 nə - bu daha çox bəlkə, bəlkə az deyil, 816 00:51:45,920 --> 00:51:49,050 lakin kompüter müxtəlif bölmələr olan kimi görür. 817 00:51:49,050 --> 00:51:51,200 Bir şey qalır, başqa bir şey var gedir 818 00:51:51,200 --> 00:51:54,290 müxtəlif məhsulları ortada gedir və bu gün biz yalnız hekayə izah başlamaq 819 00:51:54,290 --> 00:51:56,340 ancaq bu vaxt qayıda bilərsiniz. 820 00:51:56,340 --> 00:51:59,980 İndi, biz, həqiqətən qayğı yaddaş yalnız parça mətn seqment deyil 821 00:51:59,980 --> 00:52:03,360 yalnız 0s və 1s ki cingilti təmsil çünki outputted etmişdir. 822 00:52:03,360 --> 00:52:06,050 Siz a.out kimi klaviatura bir funksiyanı çalıştırın Belə ki 823 00:52:06,050 --> 00:52:09,110 və ya ikiqat, Mac OS və ya Windows bir icon basın 824 00:52:09,110 --> 00:52:11,880 proqram sabit sürücü RAM yükləndiyi 825 00:52:11,880 --> 00:52:16,330 və belə danışmaq, bilgisayarınızın RAM üst plopped edir. 826 00:52:16,330 --> 00:52:20,450 Bu arada, proqram başlayır kimi çalışan və əsas deyilən olur 827 00:52:20,450 --> 00:52:23,640 proqram, siz yazırdı ya proqram Microsoft və ya Apple yazdı 828 00:52:23,640 --> 00:52:27,860 onun yerli dəyişənlərin hər kompüter yaddaş altında aşağı orada son. 829 00:52:27,860 --> 00:52:33,230 Amma özü dəyişənlərin və ya dəlillər var ki, əsas zəngləri başqa funksiyası, onlar yuxarıda son. 830 00:52:33,230 --> 00:52:36,680 Ki, funksiyası bir şey çağırır varsa, onlar yuxarıda, yuxarıda, yuxarıda son. 831 00:52:36,680 --> 00:52:41,460 >> Və yalnız bir funksiyası icra edilir qablar və yığını, belə ki, danışmaq üçün deyil, 832 00:52:41,460 --> 00:52:43,240 aşağı və aşağı almaq üçün başlamaq. 833 00:52:43,240 --> 00:52:48,250 Bu, sonra bir nutshell, siz kub zəng nə zaman izah edir nə 834 00:52:48,250 --> 00:52:51,550 siz artım və ya zəng, siz dəyəri surəti keçən edirik. 835 00:52:51,550 --> 00:52:55,520 Və nə pictorially deməkdir siz sözün sayı 1 yazıyoruz ki, 836 00:52:55,520 --> 00:53:00,460 yaddaş bir hissəsi, dəyişən ki, artım halda 1 2 837 00:53:00,460 --> 00:53:04,820 və ya sonra bir kub halda 8 və səfərdə olan yaddaş atma 838 00:53:04,820 --> 00:53:09,140 kimi tezliklə artım və ya kub funksiyası yekunları kimi. Sual. 839 00:53:09,140 --> 00:53:12,900 [Tələbə] Harada qlobal dəyişənlər saxlanılır? 840 00:53:12,900 --> 00:53:18,100 Qlobal dəyişənlər, hazırda başlatılmış məlumatın və ya uninitialized data deyirlər nə saxlanılır 841 00:53:18,100 --> 00:53:21,920 bir qlobal dəyişən və dərhal bir dəyəri təyin əgər fərq olan 842 00:53:21,920 --> 00:53:24,640 işarəsi bərabərdir, bu, orada üst başa 843 00:53:24,640 --> 00:53:29,200 yalnız int x demək əgər, heç bir dəyəri, bu RAM qədər aşağı başa 844 00:53:29,200 --> 00:53:31,710 sadəcə qaydaları ilə. 845 00:53:31,710 --> 00:53:34,940 Digər suallar? Bütün hüquqlar. 846 00:53:34,940 --> 00:53:37,340 Biz daha güclü almaq kimi bu şəkil geri gələcək 847 00:53:37,340 --> 00:53:39,170 biz kompüter ilə nə ilə, 848 00:53:39,170 --> 00:53:42,720 lakin indi, in Kriptoqrafiya üçün qısa bir giriş var bildirin 849 00:53:42,720 --> 00:53:46,080 Dünyanın problemlərin bütün həll deyil ki, kriptoqrafiya bir xüsusi növü 850 00:53:46,080 --> 00:53:47,720 lakin bəziləri həll etmir. 851 00:53:47,720 --> 00:53:51,700 Burada Bu halda, biz gizli-key Kriptoqrafiya deyilən bir şey var. 852 00:53:51,700 --> 00:53:56,410 Secret-key şifreleme, adı təklif kimi, gizli onun təhlükəsizlik gəlir. 853 00:53:56,410 --> 00:54:00,690 >> Siz grade məktəb geri idi və əgər Məsələn, bir az gizli sevgi məktubu keçən edilmişdir 854 00:54:00,690 --> 00:54:04,850 Siz tamaşaçı ilə qeyd keçmək istəyirdi əgər oğlan və ya qız siz də sarsıdıcı idi, 855 00:54:04,850 --> 00:54:08,380 yəqin English belə bir qeydi yazın və ya hər ana dili deyil. 856 00:54:08,380 --> 00:54:13,340 Əksinə, siz şifrelemek bilər və ya sadəcə bu gün onlara mətn mesajı göndər. 857 00:54:13,340 --> 00:54:15,460 Amma əslində sinif ərzində onlara qeyd keçmək bilər. 858 00:54:15,460 --> 00:54:18,700 Və elə təhlükəsiz bunu ki, sizin dost və müəllim 859 00:54:18,700 --> 00:54:22,650 siz yazıyoruz nə bilmirəm, bir olduqca sadə alqoritmi ilə gəlmək bilər 860 00:54:22,650 --> 00:54:25,920 siz ola bilər gənc olsa da, yalnız sözləri dırmaşma üçün. 861 00:54:25,920 --> 00:54:28,130 Belə ki, əvəzinə yazılı sizə, b yazmaq bilər 862 00:54:28,130 --> 00:54:30,220 əvəzinə b sizə, c yazmaq bilər 863 00:54:30,220 --> 00:54:32,140 əvəzinə c siz s d, yazmaq və bilər. 864 00:54:32,140 --> 00:54:34,360 Və ya bir çox inkişaf etmiş tərcümə ilə gəlmək bilər 865 00:54:34,360 --> 00:54:36,720 müxtəlif məktublar məktubları. 866 00:54:36,720 --> 00:54:39,740 Amma tutmaq bu qeyd gönderiyorsanız kimə oğlan və ya qız 867 00:54:39,740 --> 00:54:45,020 ehtiyaclarını nə, açıq-aydın olan bir şey bilmək? >> [Tələbə] Siz gönderiyorsanız nə. 868 00:54:45,020 --> 00:54:49,720 Sizin gizli bir və b və c və d's arasında birdən nə kimi edir. 869 00:54:49,720 --> 00:54:54,650 Yalnız bir olan b, b c getmək üçün məktublar hər 1 əlavə olunur? 870 00:54:54,650 --> 00:54:56,670 Ki, daha mürəkkəb mı? 871 00:54:56,670 --> 00:55:01,540 >> Belə ki, sizin və əzmək, bu gizli məlumat lazımdır 872 00:55:01,540 --> 00:55:03,190 amma burada bir catch-22 növü var. 873 00:55:03,190 --> 00:55:06,830 Bu ilk dəfə Əgər, sinif bu sevgi məktubu gönderiyorsanız 874 00:55:06,830 --> 00:55:10,720 necə ki, oğlan və ya qız gizli hətta nə olacaq? 875 00:55:10,720 --> 00:55:13,930 Belə ki, gizli açar kripto, dünyanın problemləri bütün həll etmir 876 00:55:13,930 --> 00:55:16,320 və əlaqələr biz semestr sonuna doğru geri gəlmək lazımdır ki, burada actually var. 877 00:55:16,320 --> 00:55:25,110 Eynilə bizim ən, Amazon.com da, məsələn, çalışır ki, kimsə bilmirəm 878 00:55:25,110 --> 00:55:28,190 və hələ bizim çox güman ki, Amazon.com 'stuff almışdır 879 00:55:28,190 --> 00:55:31,990 və bu e-ticarət əməliyyatları təhlükəsiz olduğunu güman tədris etdik. 880 00:55:31,990 --> 00:55:36,470 URL yəqin ki, https, haradasa bəlkə bir silly az asma kilit simgesini var deyir 881 00:55:36,470 --> 00:55:39,930 kredit kartı məlumat təmin Kriptoqrafiya bir növ var 882 00:55:39,930 --> 00:55:42,160 Siz və Amazon.com arasında. 883 00:55:42,160 --> 00:55:45,430 Kriptoqrafiya cəlb əgər hələ bir gizli bilmədən 884 00:55:45,430 --> 00:55:48,620 və hələ Amazon-da hər kəs bilmirəm və mən, əlbəttə, gizli hər cür təşkil etdik 885 00:55:48,620 --> 00:55:52,710 Amazon-da kimsə ilə, necə bunu mənim kompüter və ya browser edir? 886 00:55:52,710 --> 00:55:55,720 Kriptoqrafiya digər növ ki, problem həll ki, tamamilə yoxdur həyata çevirir. 887 00:55:55,720 --> 00:55:57,670 Amma bu gün üçün, biz sadə bir diqqət lazımdır 888 00:55:57,670 --> 00:56:00,290 bəzi gizli bilmək əvvəlcədən təşkil edə bilər 889 00:56:00,290 --> 00:56:03,760 +1 və ya bir və b arasında bəzi Xəritəçəkmə kimi. 890 00:56:03,760 --> 00:56:05,840 Və Kriptoqrafiya prosesi ümumilikdə bu daxildir. 891 00:56:05,840 --> 00:56:08,620 Siz sol burada təsvir bir düz mətn, var, 892 00:56:08,620 --> 00:56:12,930 siz Şifreleme alqoritm və ya prosedur bir növ vasitəsilə run - 893 00:56:12,930 --> 00:56:15,100 bəlkə yalnız var bir b olur, b c olur - 894 00:56:15,100 --> 00:56:17,490 və sonra ciphertext ilə son. 895 00:56:17,490 --> 00:56:20,380 Eyni zamanda, bir dəfə sizin əzmək, bu gizli qeyd etmişdir 896 00:56:20,380 --> 00:56:24,200 o sonra decrypt ümumiyyətlə tərəfindən alqoritm geri var 897 00:56:24,200 --> 00:56:27,190 düz mətn geri almaq üçün belə kimi. 898 00:56:27,190 --> 00:56:28,960 Bu fiziki incarnations var. 899 00:56:28,960 --> 00:56:31,680 >> Məsələn, bu, bir az gizli decoder ring edir 900 00:56:31,680 --> 00:56:35,110 və bu iki zənglər burada olduğunu mənada bir ring edir. 901 00:56:35,110 --> 00:56:38,490 Bu şey xaricində periferiyasında, Z vasitəsilə məktublar A, var 902 00:56:38,490 --> 00:56:40,340 onlar təsadüfi qaydada edirik, baxmayaraq ki, 903 00:56:40,340 --> 00:56:42,880 və daxili, bəzi nömrələr həqiqətən var 904 00:56:42,880 --> 00:56:46,620 bu ring ilə cür daxilində xarici çevirmək deyil bilər ki, 905 00:56:46,620 --> 00:56:49,140 hərflərlə nömrələri sıralamaq üçün. 906 00:56:49,140 --> 00:56:53,020 A Christmas Story adlı film, siz ki, az Ralphie görürsünüz 907 00:56:53,020 --> 00:56:58,000 Little Yetim Annie gizli mesaj ona nə anlamaq üçün istəkli idi 908 00:56:58,000 --> 00:57:02,570 bir taxıl qutusuna rəqəmli mesaj şəklində, mən hesab edirəm ki, ünsiyyət edilmişdir 909 00:57:02,570 --> 00:57:07,220 və siz dənli qutusuna gələn bütün kiçik kartlar toplamaq idi 910 00:57:07,220 --> 00:57:09,770 siz onlara mail idi, siz gizli decoder ring geri almaq idi 911 00:57:09,770 --> 00:57:13,910 nəhayət Xəritəçəkmə məktublar və nömrələr arasında nə həyata rəqəm bilər ki, 912 00:57:13,910 --> 00:57:15,550 və ya məktublar və məktublar. 913 00:57:15,550 --> 00:57:19,520 Biz bu kimi şeylər həyata və ya təmsil haqqında necə kompüter getmək olar? 914 00:57:19,520 --> 00:57:22,560 Biz bir az daha elastik özümüzü ifadə bir yol lazımdır 915 00:57:22,560 --> 00:57:25,080 bizim dəyişənlərin indiyədək imkan çox. 916 00:57:25,080 --> 00:57:29,000 Biz chars etdik, ints etdik, biz üzüb gedirdi və ikiqat və bir neçə digər etdik 917 00:57:29,000 --> 00:57:34,200 lakin bu, həqiqətən, bizə hər şeyi ifadə etməyə imkan vermir ki, yaddaş fərdi ədəd var 918 00:57:34,200 --> 00:57:36,440 sözlər və cümlələr və ifadələr kimi. 919 00:57:36,440 --> 00:57:38,630 Həqiqətən, biz belə şeylər strings aradıktan 920 00:57:38,630 --> 00:57:42,660 ancaq bu həqiqətən CS50 kitabxana yalnız bir sadələşdirilməsi ki, söz 921 00:57:42,660 --> 00:57:45,540 biz geri soymaq istəyən etdiyiniz. 922 00:57:45,540 --> 00:57:47,500 Və burada bunu başlamaq edək. 923 00:57:47,500 --> 00:57:49,840 Mənə irəli getmək və bir fayl açmaq edək - 924 00:57:49,840 --> 00:57:54,100 Bu faylları bütün mövcuddur, həmişəki kimi, online - qondarma array.c 925 00:57:54,100 --> 00:57:58,960 strings olmayan bir problem həll lakin burada bir şəkil boyalar üçün 926 00:57:58,960 --> 00:58:01,520 necə ki, biz bir sıra deyilən bir şey istifadə edə bilərsiniz. 927 00:58:01,520 --> 00:58:04,050 >> Bir sıra məlumat növüdür. 928 00:58:04,050 --> 00:58:10,730 Bu çox kiçik məlumat növləri, bu daxilində var ki, növ dəyişən bir növü var 929 00:58:10,730 --> 00:58:12,680 geri geri geri geri. 930 00:58:12,680 --> 00:58:16,980 Biz sizin viktorina orta verir ki, bir az proqram yazmaq istədim Belə ki, məsələn, əgər 931 00:58:16,980 --> 00:58:19,780 2 sınavlar var ki, 50 kimi bir kurs üçün, 932 00:58:19,780 --> 00:58:23,450 siz çox asanlıqla hətta keçən həftə maddi bəzi əsasında bu proqram yazmaq bilər 933 00:58:23,450 --> 00:58:28,830 GetInt və dəyişənlərin bir neçə istifadə edərək: int quiz1, int quiz2. 934 00:58:28,830 --> 00:58:30,550 Və bu, olduqca sadə var. 935 00:58:30,550 --> 00:58:33,500 Bu kodu max 20 xətləri bir proqram həyata keçirmək, bəlkə 10 var 936 00:58:33,500 --> 00:58:38,940 2 viktorina puanları üçün istifadəçi soruşur və onların orta hesablayır ki, 937 00:58:38,940 --> 00:58:42,020 , onları birlikdə əlavə 2-ayırıcı və sonra nəticələri çap edir. 938 00:58:42,020 --> 00:58:46,400 Biz yəqin ki, dəqiqə bir sıra sonra olduqca asan indi bunu edə bilər. 939 00:58:46,400 --> 00:58:49,450 Ancaq problem 50 3 viktorina və ya 4 olduğunu güman edir. 940 00:58:49,450 --> 00:58:52,830 Siz sınavlar həftəlik ki, bir sinif üçün eyni proqramı istifadə etmək istədiyini düşünək. 941 00:58:52,830 --> 00:58:55,100 Həftəlik viktorina bir sinfi haqqında düşünün. 942 00:58:55,100 --> 00:58:58,840 Bir semestr 16 və ya həftə varsa, indi 16 dəyişənlər var: 943 00:58:58,840 --> 00:59:03,030 int quiz1, int quiz2, int quiz3, int quiz4. 944 00:59:03,030 --> 00:59:06,870 Bu redundancy görmeye başlamaq kimi, bu, çıxarmaq və kodu sovuşdurmaq 945 00:59:06,870 --> 00:59:09,810 bu daha yaxşı bir yol idi arzu etmək başlamaq lazımdır. 946 00:59:09,810 --> 00:59:13,610 Və təşəkkürlə, çünki serialların var. Belə ki, bunu edək. 947 00:59:13,610 --> 00:59:16,700 Birincisi, mənə biz bu günə qədər istifadə etdiyiniz bir çox sadə şey təqdim edək 948 00:59:16,700 --> 00:59:18,820 lakin kodu bəzən onu görəcəksiniz. 949 00:59:18,820 --> 00:59:21,270 >> Bu adətən daimi adlı budur. 950 00:59:21,270 --> 00:59:24,410 Belə ki, bu dəyər dəyişir ki, heç mənada sabit deyil. 951 00:59:24,410 --> 00:59:26,450 Daimi oluştururken insan konvensiya 952 00:59:26,450 --> 00:59:30,420 yalnız belə həqiqətən kodu çıxır ki, bütün hərflərlə istifadə 953 00:59:30,420 --> 00:59:34,270 və C istifadə edən xüsusi söz # müəyyən edilir. 954 00:59:34,270 --> 00:59:39,970 Beləliklə, biz # sonra, sonra, siz daimi adı üçün istifadə etmək istədiyiniz söz boşluq müəyyən demək 955 00:59:39,970 --> 00:59:41,730 və sonra daimi dəyəri. 956 00:59:41,730 --> 00:59:44,710 Bu bir dəyişən bir şey təyin fərqli edək. 957 00:59:44,710 --> 00:59:46,430 Imzalamaq bərabərdir yoxdur, heç nöqtəli vergül var. 958 00:59:46,430 --> 00:59:49,140 Bu, ümumiyyətlə preprocessor direktiv kimi tanınan nə edir 959 00:59:49,140 --> 00:59:50,840 başqa bir vaxt, lakin daha çox. 960 00:59:50,840 --> 00:59:56,350 İndi, bu sınavlar adlı dəyişməz dəyər yaradır 961 00:59:56,350 --> 00:59:58,290 olan faktiki rəqəmli dəyəri 2-dir. 962 00:59:58,290 --> 01:00:02,180 Belə ki, hər yerdə bu fayl ərzində sınavlar, sınavlar, sınavlar bax 963 01:00:02,180 --> 01:00:04,230 yalnız 2 saylı var. 964 01:00:04,230 --> 01:00:06,550 İndi əsas götürsək, necə bu işlər görək. 965 01:00:06,550 --> 01:00:09,770 İlk bir az sirli görünür, ancaq bu həftə 1-dən bütün məhsulları var. 966 01:00:09,770 --> 01:00:12,210 Siniflər üçün istifadəçi soruşun. Biz bu etməliyəm? 967 01:00:12,210 --> 01:00:17,350 Line 22 - Bu, həqiqətən, sulu hissəsi - Mən bir float elan 968 01:00:17,350 --> 01:00:23,240 lakin yalnız bir float. Mən deyil, üzən-point dəyərləri bir sıra elan edirəm. 969 01:00:23,240 --> 01:00:27,700 Bu dəyişən burada nəzərdə tutulan kimi, notları adlı olacaq 970 01:00:27,700 --> 01:00:31,420 lakin yeni sintaksis və yalnız parça sonra bu kvadratşəkilli mötərizələri var. 971 01:00:31,420 --> 01:00:37,280 Mən float notları və sonra açıq bracket və sonra bir sıra bildirib etdik ki - 972 01:00:37,280 --> 01:00:40,980 bu yalnız biz bunu kimi bir daimi Əgər bildiriş - 973 01:00:40,980 --> 01:00:46,840 Bu o deməkdir ki, "Hey kompüter, me 2 üzüb gedirdi verir və in kollektiv onlara notları zəng edək." 974 01:00:46,840 --> 01:00:51,780 >> Bu kimi bir çox yorucu proses fərqli edir: float grade1; 975 01:00:51,780 --> 01:00:54,580 grade2 üzmək və s. 976 01:00:54,580 --> 01:00:58,310 Belə ki, bir sıra bizə bu ideya həyata keçirmək imkan verir, lakin çox az messily, 977 01:00:58,310 --> 01:01:04,560 biz, demək əvəzinə 16 həftəlik dövr üçün 16 kodu 1 xətt yazmaq olar ki, belə bir şəkildə. 978 01:01:04,560 --> 01:01:09,060 Mən ağır-kodu 2 istəmədi, çünki siz məntiqi indi bu barədə düşünmək, əgər 979 01:01:09,060 --> 01:01:12,560 3 CS50 dəyişikliklər əvəzinə viktorina gələn il güman 980 01:01:12,560 --> 01:01:15,010 və burada 2 saylı idi, mən, burada 2 saylı idi 981 01:01:15,010 --> 01:01:17,210 Burada 2, burada sayı sayı 2 idi. 982 01:01:17,210 --> 01:01:19,890 Bu qıymaq çox yorucu və çox asan olur 983 01:01:19,890 --> 01:01:26,550 və təsadüfən 3 1 dəyər dəyişdirmək və 2 sıra digər dəyər miss. 984 01:01:26,550 --> 01:01:30,660 Belə ki, bu üz əvəzinə mücərrəd gedir və bu daimi ki, istifadə edirəm 985 01:01:30,660 --> 01:01:32,520 onun adı təklif kimi, heç vaxt dəyişikliklər. 986 01:01:32,520 --> 01:01:35,870 İndi biz müxtəlif olub olursa olsun, bu il və ya sonrakı viktorina 987 01:01:35,870 --> 01:01:39,380 Mən yalnız üst burada bir yerdə bu qədər dəyişiklik var. 988 01:01:39,380 --> 01:01:41,230 Belə ki bütün sabit deyil. 989 01:01:41,230 --> 01:01:47,100 Eyni zamanda, yeni konseptual xüsusiyyət bir sıra edir. 990 01:01:47,100 --> 01:01:55,030 Belə ki, kvadratşəkilli mötərizələri mənə bu çox üzüb gedirdi vermək və mənə kollektiv burada notları zəng imkan verir. 991 01:01:55,030 --> 01:01:56,720 Belə ki, indi mən gedirəm nə edək. 992 01:01:56,720 --> 01:01:59,220 Burada line 24 loop üçün bir başlanğıcdır. 993 01:01:59,220 --> 01:02:03,380 >> Bu, həqiqətən, heç bir şey xülya deyil. Bu yalnız sınavlar istifadə əvəzinə ağır kodlu nömrəsi var. 994 01:02:03,380 --> 01:02:06,740 Amma keçən həftə oradan intellektual fərqli bir şey yoxdur. 995 01:02:06,740 --> 01:02:11,650 Bu ("% d #% d Quiz:") belə printf, yalnız printf edir 996 01:02:11,650 --> 01:02:16,670 Mən yalnız mənə 2 sayı 1 viktorina və sonra 2 2 vermək çap etmək istəyirəm, çünki. 997 01:02:16,670 --> 01:02:18,480 Belə ki, bu sırf estetik şeydir. 998 01:02:18,480 --> 01:02:21,000 Lakin maraqlı hissəsi indi line 27 edir. 999 01:02:21,000 --> 01:02:27,840 Üzən-point dəyəri iki placeholders biri doldurmaq üçün, 1000 01:02:27,840 --> 01:02:29,640 daha kvadrat mötərizə istifadə edin. 1001 01:02:29,640 --> 01:02:35,170 Loop üçün bu yəqin, i nə dəyər bərabər başlamışdır çünki bu halda, mən i kullanıyorum? 1002 01:02:35,170 --> 01:02:36,670 [Tələbə] 0. >> [Malan] 0. 1003 01:02:36,670 --> 01:02:40,990 Beləliklə, bu loop ilk iteration haqqında, mən kodu bu yazdı baxmayaraq kimi, 1004 01:02:40,990 --> 01:02:46,310 Mən kodu bu yazdı sanki lakin bu loop ikinci iteration, bu deyil. 1005 01:02:46,310 --> 01:02:49,970 Adı təklif kimi, çünki Amma dəyişən kullanıyorum ki, mükəmməl 1006 01:02:49,970 --> 01:02:52,600 ki, hər iteration qiyməti müxtəlif olub 1007 01:02:52,600 --> 01:02:55,900 belə bir zamanda bu serialın bir yerində doldurulması alıram. 1008 01:02:55,900 --> 01:02:57,380 Bu array necə görünür? 1009 01:02:57,380 --> 01:03:01,570 Mən burada ekranda super sadə düzbucaqlı çəkdi səbəbi əvvəl bu səbəbdən idi. 1010 01:03:01,570 --> 01:03:05,590 Bir sıra yalnız yaddaş bir yığın sonra yaddaş yığın edir 1011 01:03:05,590 --> 01:03:08,570 yaddaş bir yığın sonra və s. 1012 01:03:08,570 --> 01:03:13,120 Mənim array burada bu halda ölçüsü 2 Beləliklə, bütün mən bunu olunacaq 1013 01:03:13,120 --> 01:03:20,200 mənim viktorina puanları yazaraq burada istəyirəm - Bu bir 100 var və mən bu barədə bir 99 var - 1014 01:03:20,200 --> 01:03:24,970 Mən yalnız kompüter xahiş etdik, çünki bu yaddaş da istifadə edilə bilər 1015 01:03:24,970 --> 01:03:26,840 ölçüsü 2 bir sıra üçün. 1016 01:03:26,840 --> 01:03:28,600 Həmin meydanların hüququ hələ də var? 1017 01:03:28,600 --> 01:03:32,670 Yalnız 2 üzüb gedirdi üçün xahiş edirik, hətta Siz hələ RAM 2 gigabaytlık var. 1018 01:03:32,670 --> 01:03:36,840 Belə ki, diziler arxasında ideyası kompüter yalnız yaddaş bir yığın edir ki, 1019 01:03:36,840 --> 01:03:41,340 və sonra geri geri geri geri kiçik parçalara apportions. 1020 01:03:41,340 --> 01:03:43,310 Və bütün bir sıra edir. 1021 01:03:43,310 --> 01:03:47,350 >> Bu şeylər qoya bilər olan yaddaş içərisində bir bitişik yığın edir. 1022 01:03:47,350 --> 01:03:50,700 Bu sonra yalnız bir darıxdırıcı hesab etmək olar. 1023 01:03:50,700 --> 01:03:54,640 Burada aşağı diyirləyin, mən sonra serialın üzərində təkrarlamaq yerləşir, bu. 1024 01:03:54,640 --> 01:03:58,020 Mən array dəyərlər bütün toplama ilə gəlib 1025 01:03:58,020 --> 01:04:02,470 və sonra mən həqiqətən sınavlar bölünür məbləği bunu burada dəyirmi funksiyası istifadə edin. 1026 01:04:02,470 --> 01:04:06,320 Amma mənə indi kifayət hesab növ kimi mənim əl dalğa bildirin. 1027 01:04:06,320 --> 01:04:08,370 Amma mənim üçün edir ki, bütün nəticədə orta hesablanması edir. 1028 01:04:08,370 --> 01:04:13,580 Belə ki, ilk viktorina plus ikinci viktorina 2 bölünür və sonra bir int kimi onu çap. 1029 01:04:13,580 --> 01:04:17,280 String1 adlı müxtəlif nümunə Amma edək indi keçid 1030 01:04:17,280 --> 01:04:20,700 olan analoji şəkil lakin istifadə strings PAINTS. 1031 01:04:20,700 --> 01:04:23,940 Mənə davam və yalnız bir an üçün bu sadələşdirmək edək. 1032 01:04:23,940 --> 01:04:27,090 Indi üçün abzas bağışla. 1033 01:04:27,090 --> 01:04:30,870 Bu nümunə line 19 Notice, mən istifadəçi bir string almaq. 1034 01:04:30,870 --> 01:04:34,640 Amma növbəti xətləri 22 irəli edirəm nə görürsünüz. 1035 01:04:34,640 --> 01:04:41,250 Mən, həqiqətən, i qədər iterating edirəm - bu, yeni bir oyun deyil - strlen, simli uzunluğu. 1036 01:04:41,250 --> 01:04:44,880 Bu, bir string keçmək əgər, C ilə gəlir ki, bir funksiyası var 1037 01:04:44,880 --> 01:04:47,730 o string nə qədər çox simvol size deyir. Vəssalam. 1038 01:04:47,730 --> 01:04:51,550 Və əvəzinə string uzunluğu strlen var ki, daha yığcam yalnız çünki. 1039 01:04:51,550 --> 01:04:55,100 Otuz il əvvəl, insanlar kimi müfəssəl şəkildə mümkün kimi şeylər yazmaq xoşuma gəldi 1040 01:04:55,100 --> 01:04:57,630 biz burada Konvensiyanın saxlanılır etdik. 1041 01:04:57,630 --> 01:05:00,660 i + + yalnız hər iteration i arttırmayı deməkdir. 1042 01:05:00,660 --> 01:05:02,990 İndi həqiqətən maraqlı olan bu bildiriş. 1043 01:05:02,990 --> 01:05:09,180 Line 24, mən demək, "Kompüter, mənə 8 bit bir xarakter vermək, və c çağırırıq." 1044 01:05:09,180 --> 01:05:12,630 Amma bu sağ söyləyərək nə edir? 1045 01:05:13,490 --> 01:05:16,530 English ki, nə təmsil edir? 1046 01:05:16,530 --> 01:05:18,730 [Tələbə] serialın ilk character. 1047 01:05:18,730 --> 01:05:20,790 Exactly. Mənə array ilk karakter verin. 1048 01:05:20,790 --> 01:05:24,090 Və ya, ümumiyyətlə, mənə array ildə İTH xarakter verir. 1049 01:05:24,090 --> 01:05:26,100 İndi vacibdir həyata kompüter elm kimi, 1050 01:05:26,100 --> 01:05:27,890 biz, həqiqətən, 0-dan hesablanmasını edirik. 1051 01:05:27,890 --> 01:05:29,720 >> Siz bunu başlamaq üçün indi qərarı yoxdur. 1052 01:05:29,720 --> 01:05:34,160 İndi kompüter gözləntilərinə uyğun davranmaq və 0-dan saymaq lazımdır 1053 01:05:34,160 --> 01:05:38,180 [0], çünki bir simli ilk karakter olacaq 1054 01:05:38,180 --> 01:05:42,150 [1] ikinci olacaq, [2], üçüncü və s olacaq. 1055 01:05:42,150 --> 01:05:49,720 Belə ki, bu proqram, mən bunu tərtib, bu yenidən string1, belə string1 etmək, 1056 01:05:49,720 --> 01:05:54,670 və indi mən terminal pəncərə string1 run etdik. 1057 01:05:54,670 --> 01:05:58,330 Bu giriş üçün gözləmə ki, mən, David yazın edin gedirəm 1058 01:05:58,330 --> 01:06:02,540 bildiriş Mən yapýyorum nə çünki indi bütün müxtəlif xətləri üzrə David görüntüler. 1059 01:06:02,540 --> 01:06:05,820 Mən bir zaman bir xarakteri çap edirəm. 1060 01:06:05,820 --> 01:06:10,100 Biz bu gün açıqlamaq deyil, lakin mən burada bu çek bir an əvvəl silindi. 1061 01:06:10,100 --> 01:06:15,480 Bu istifadəçi doğru çalışmadığı halda çıxır ki, çəkişmə, və ya sadəcə səhv, 1062 01:06:15,480 --> 01:06:20,210 həqiqətən bəzi uzunluğu string verə bilmirlər bilər. 1063 01:06:20,210 --> 01:06:22,860 Klaviatura üzrə yanlış düyməsini basın varsa, heç bir string edəsiniz 1064 01:06:22,860 --> 01:06:26,950 siz zərərli edirsinizsə və ya, bir esse bir gigabyte yetmeyecek yapışdırıb üçün cəhd edə bilərsiniz 1065 01:06:26,950 --> 01:06:29,290 kompüter yaddaş tükenirse, bu simli doldurmaq və, 1066 01:06:29,290 --> 01:06:32,710 biz NULL adlı bu xüsusi dəyər geri almaq olacaq ki, çevrilir. 1067 01:06:32,710 --> 01:06:35,580 Belə ki, indi üçün, yalnız NULL adlı bu xüsusi dəyər olduğunu bilmək 1068 01:06:35,580 --> 01:06:39,580 ki, biz başqa şeylər arasında, yaddaş olduğunuzda yoxlamaq üçün imkan verir. 1069 01:06:39,580 --> 01:06:45,630 Amma indi string2 açmaq varsa, burada bir fərq görürük. 1070 01:06:45,630 --> 01:06:48,210 String2 burada bir fərq edək. 1071 01:06:48,210 --> 01:06:51,340 String2 ilə loop üçün bu bir az fərqlidir. 1072 01:06:51,340 --> 01:06:55,010 >> Biz o başqa vaxt danışmaq olar ki, mənə NULLs silmək edək. 1073 01:06:55,010 --> 01:06:57,800 Nə loop üçün bu vaxt müxtəlif var? 1074 01:06:59,620 --> 01:07:01,670 Mən əvvəlki Məsələn geri bilərsiniz. 1075 01:07:01,670 --> 01:07:08,580 Version 2 deyil, belə ki, bu versiyası 1. 1, 2. 1076 01:07:08,580 --> 01:07:11,980 1, 2. 1077 01:07:13,520 --> 01:07:16,660 Burada strlen zəng edir? 1078 01:07:16,660 --> 01:07:18,860 Bu loop üçün ilk hissəsi var. 1079 01:07:18,860 --> 01:07:21,830 Mən bu yapýyorum nə üçün hər hansı bir fikir? Bəli. 1080 01:07:21,830 --> 01:07:24,560 [Tələbə] Beləliklə, siz funksiyası hər zaman zəng etməyin. 1081 01:07:24,560 --> 01:07:26,440 [Malan] biz funksiyası hər zaman zəng etməyin So. Exactly. 1082 01:07:26,440 --> 01:07:28,300 Onlar super sadə olduğunu loops üçün olan Xatırladaq 1083 01:07:28,300 --> 01:07:31,770 Bir növ bu başlatma, vəziyyəti və yeniləmə deyil. 1084 01:07:31,770 --> 01:07:34,750 Bu problem vəziyyəti loop hər iteration baş ki. 1085 01:07:34,750 --> 01:07:40,010 Və burada bu nümunə, nə bu mənim vəziyyətdə olması haqqında pis? 1086 01:07:40,010 --> 01:07:41,830 [Tələbə] Siz strlen zəng edirik. 1087 01:07:41,830 --> 01:07:44,340 [Malan] Siz təkrar yenidən strlen zəng və edirik. 1088 01:07:44,340 --> 01:07:47,410 Lakin bir dəfə mən David çap etdik ki, simli uzunluğu 5 1089 01:07:47,410 --> 01:07:49,650 və loop hər iteration haqqında dəyişmək niyyətində deyil 1090 01:07:49,650 --> 01:07:51,670 simli hələ D-a-v-i d. çünki 1091 01:07:51,670 --> 01:07:55,320 Belə ki, bu getdikcə daha mühüm fikir olmaq nə bir ipucu edir 1092 01:07:55,320 --> 01:08:00,410 yalnız kompüter lazımsız iş etməyən bir dizayn qərar kimi tanınır. 1093 01:08:00,410 --> 01:08:03,920 >> Kimi standart redaksiyada pset2, pset2 bir sneak preview 1094 01:08:03,920 --> 01:08:07,030 həqiqətən ciphers bəzi nömrəsi həyata sizə qarşı gedir, 1095 01:08:07,030 --> 01:08:10,410 siz həm şifrelemek edə bilərsiniz, belə ki, şifreleme alqoritmlər bir sıra 1096 01:08:10,410 --> 01:08:13,840 və daha bir Ralphie kimi decrypt gizli mesaj kontormerinin. 1097 01:08:13,840 --> 01:08:16,810 Pset2 və hacker nəşr, biz bir az irəli getmək olacaq. 1098 01:08:16,810 --> 01:08:19,649 Biz faktiki kompüter sisteminin bir fayl təslim olacaq 1099 01:08:19,649 --> 01:08:23,479 ki, istifadəçi adı və faktiki şifrelenmiş parol bütün dəstə şey 1100 01:08:23,479 --> 01:08:26,939 və hacker nəşr üçün problem o parol crack olacaq 1101 01:08:26,939 --> 01:08:33,200 və həqiqətən o parol yaratmaq üçün istifadə nə Kriptoqrafiya və ya nə gizli anlamaq. 1102 01:08:33,200 --> 01:08:36,109 Və biz burada C yeni bir xüsusiyyət istifadə edərək, bu nə olacaq 1103 01:08:36,109 --> 01:08:40,630 Mən sizə əmr-line dəlilləri kimi tanınan bir demo vermək lazımdır ki,. 1104 01:08:40,630 --> 01:08:44,229 Siz bəzi bölməsində və ya dərslik görmüşəm bilər ki, həyata çevirir 1105 01:08:44,229 --> 01:08:48,260 əsas həmişə parantez etibarsız olması deyil. 1106 01:08:48,260 --> 01:08:52,430 Bu, iki dəlilləri ilə, əsas da bu kimi yazılı bilər çıxır ki, 1107 01:08:52,430 --> 01:08:56,870 argc sözlərin sayı yerləşir argc və argv, 1108 01:08:56,870 --> 01:09:00,020 Siz command line proqram adı sonra yazın ki, 1109 01:09:00,020 --> 01:09:03,420 və argv faktiki sözləri. 1110 01:09:03,420 --> 01:09:07,540 Orada kvadrat mötərizə təklif kimi, argv yəqin bir sıra edir. 1111 01:09:07,540 --> 01:09:12,210 Bu yaddaş bir string sonra simli sonra simli olacaq. 1112 01:09:12,210 --> 01:09:16,010 >> Belə ki, bu kimi bir şey nə biz pset 2 başlayaraq edə olacaq edir. 1113 01:09:16,010 --> 01:09:21,350 Düşünürəm ki, biz bazar ertəsi qayıda və run lazımdır nümunə olan argv1, etsəniz 1114 01:09:21,350 --> 01:09:23,370 hələ heç bir şey görünmür fark. 1115 01:09:23,370 --> 01:09:25,490 Bu, yalnız öz adını görüntüler. 1116 01:09:25,490 --> 01:09:31,479 Amma bu proqram yəqin iterates ki, güle güle sinif bildiriş demək əgər 1117 01:09:31,479 --> 01:09:35,479 tezliklə ilə çap olunmuşdur ki, sözlər hər artıq. 1118 01:09:35,479 --> 01:09:41,630 Biz istifadəçi sətirinə yazdığınız ki, sözləri əldə edəcək vasitələri 1119 01:09:41,630 --> 01:09:49,160 əsas (argc, argv) int üçün int əsas (void) Bu həftə sonu başlayan əsas dəyişdirilməsi ilə 1120 01:09:49,160 --> 01:09:52,050 və beləliklə komanda-line arguments anadan olacaq. 1121 01:09:52,050 --> 01:09:57,100 Və bir dəfə bu da həqiqətən inkişaf etmiş almaq, həqiqətən trippy proqramları yazmaq edə bilərsiniz 1122 01:09:57,100 --> 01:09:59,610 kimi yuxarıda və kənara burada bu, 1123 01:09:59,610 --> 01:10:03,940 funksionallığı bəzi biz indiyədək görülən deyil, bütün çox güclü etdik. 1124 01:10:03,940 --> 01:10:08,950 >> Beləliklə, biz ekranda bu bu tərk edəcəyik, biz bazar ertəsi görəcəksiniz. 1125 01:10:17,570 --> 01:10:20,000 >> [CS50.TV]