1 00:00:00,000 --> 00:00:02,970 >> [MUSIC PLAYING] 2 00:00:02,970 --> 00:00:14,355 3 00:00:14,355 --> 00:00:15,700 >> DAVID J. MALAN: Bütün hüququ. 4 00:00:15,700 --> 00:00:18,832 Bu CS50 və bu Həftə 2 başlanğıc. 5 00:00:18,832 --> 00:00:21,040 Və ki, artıq geri olacaq həftə son bir neçə, 6 00:00:21,040 --> 00:00:24,490 biz kompüter təqdim etdik elm və, öz növbəsində, proqramlaşdırma. 7 00:00:24,490 --> 00:00:27,640 >> Və biz yolu ilə hekayə başladı Scratch ki, qrafik dil 8 00:00:27,640 --> 00:00:28,990 MİT-in Media Lab. 9 00:00:28,990 --> 00:00:30,780 Və sonra ən son, Keçən həftə biz etdi 10 00:00:30,780 --> 00:00:34,450 bir higher-- a təqdim aşağı səviyyəli dil tanınan 11 00:00:34,450 --> 00:00:36,770 C, sırf mətn bir şey kimi. 12 00:00:36,770 --> 00:00:39,440 Və həqiqətən, son dəfə biz ki, daxilində tədqiq 13 00:00:39,440 --> 00:00:40,450 anlayışlar bir sıra. 14 00:00:40,450 --> 00:00:43,010 >> Bu, geri, çox idi ilk proqramı baxdı. 15 00:00:43,010 --> 00:00:45,710 Bu proqram, sadəcə, "Hello, dünya." Çap 16 00:00:45,710 --> 00:00:47,730 Amma çox var zahiri sehrli olur. 17 00:00:47,730 --> 00:00:51,460 Bu # daxildir var bu bucaq mötərizədə ilə. 18 00:00:51,460 --> 00:00:52,170 int var. 19 00:00:52,170 --> 00:00:53,020 (Void) var. 20 00:00:53,020 --> 00:00:56,330 parantez, qıvrım aşırma var, yarı colons, və çox daha çox. 21 00:00:56,330 --> 00:00:58,480 >> Və belə ki, geri biz Not təqdim 22 00:00:58,480 --> 00:01:02,110 Biz ideal, keçmiş oldu ki, ki sintaksis, həqiqətən deyil stuff 23 00:01:02,110 --> 00:01:04,590 bütün intellektual maraqlı, lakin erkən 24 00:01:04,590 --> 00:01:07,700 Tamamilə bir az çətin deyil fikrinizi ətrafında kesmek. 25 00:01:07,700 --> 00:01:10,860 Və həqiqətən, ən ümumi bir erkən bir proqramlaşdırma sinif şeyi, 26 00:01:10,860 --> 00:01:13,443 xüsusilə az rahat, ilə incidir almaq üçün 27 00:01:13,443 --> 00:01:17,460 və müəyyən sintaktik tərəfindən takıldım səhvlər, məntiqi səhvlər qeyd etmək deyil. 28 00:01:17,460 --> 00:01:19,800 Və belə ki, bizim hədəflərimizdən arasında Bu gün, həqiqətən, iradə 29 00:01:19,800 --> 00:01:23,280 bir ilə təchiz etmək necə problem həll üsulları 30 00:01:23,280 --> 00:01:26,705 yaxşı problemləri özləri həll etmək ayıklama şəklində. 31 00:01:26,705 --> 00:01:29,330 Və siz də geri ki, lazımdır biz təqdim mühit 32 00:01:29,330 --> 00:01:31,780 son dəfə CS50 IDE adlanırdı. 33 00:01:31,780 --> 00:01:34,850 Bu web-based proqram ki, Siz bulud proqram imkan verir, 34 00:01:34,850 --> 00:01:38,450 bütün tutarken, belə ki, danışmaq üçün biz yenə bu gün bir araya faylları. 35 00:01:38,450 --> 00:01:41,480 Və biz geri Burada bu mövzu yenidən, 36 00:01:41,480 --> 00:01:44,480 Onların arasında funksiyaları və loops, və dəyişənlərin və Boolean ifadələr, 37 00:01:44,480 --> 00:01:45,110 və şərtləri. 38 00:01:45,110 --> 00:01:49,190 Və biz, həqiqətən, bir neçə Not dünyanın tərcümə 39 00:01:49,190 --> 00:01:50,800 C. dünya 40 00:01:50,800 --> 00:01:53,220 >> Amma fundamental tikinti blokları, belə ki, danışmaq 41 00:01:53,220 --> 00:01:55,150 həqiqətən hələ də eyni ötən həftə idi. 42 00:01:55,150 --> 00:01:57,900 Əslində, biz, həqiqətən, yalnız idi müxtəlif puzzle parça, siz olacaq. 43 00:01:57,900 --> 00:02:00,300 Əvəzində ki bənövşəyi blok saxlamaq, biz əvəzinə 44 00:02:00,300 --> 00:02:02,940 ki, printf etdi C bu funksiya ki 45 00:02:02,940 --> 00:02:05,890 Əgər bir şey çap imkan verir və ekranda format. 46 00:02:05,890 --> 00:02:07,950 Biz CS50 təqdim Library, harada 47 00:02:07,950 --> 00:02:11,420 Sizin ixtiyarınızdadır get_char indi var, və get_int və get_string, 48 00:02:11,420 --> 00:02:14,610 və bir neçə digər funksiyaları kimi yaxşı, hansı vasitəsilə daxil əldə edə bilərsiniz 49 00:02:14,610 --> 00:02:16,260 istifadəçi öz klaviatura. 50 00:02:16,260 --> 00:02:20,640 Və biz də, hər şeyi bir nəzər etdi these- bool və char kimi, 51 00:02:20,640 --> 00:02:22,490 və ikiqat, float, int, long_long string. 52 00:02:22,490 --> 00:02:25,170 Və C. hətta digər məlumat növləri var 53 00:02:25,170 --> 00:02:28,560 >> Siz bəyan Başqa sözlə, dəyişən bir dəyər saxlamaq üçün, 54 00:02:28,560 --> 00:02:32,600 və ya bir funksiyası həyata zaman bəzi dəyər qaytarır, 55 00:02:32,600 --> 00:02:35,290 Siz nə daxil edə bilərsiniz edir dəyər növü. 56 00:02:35,290 --> 00:02:37,310 bir string kimi, deyil simvol ardıcıllıqla? 57 00:02:37,310 --> 00:02:39,490 bir tam kimi, bir sıra mı? 58 00:02:39,490 --> 00:02:41,390 Bu üzən Point dəyəri, və ya kimi? 59 00:02:41,390 --> 00:02:46,180 Belə ki, C, Not fərqli olaraq, biz, həqiqətən, məlumatların nə cür müəyyən başladı 60 00:02:46,180 --> 00:02:48,330 biz qaytarılması və ya istifadə. 61 00:02:48,330 --> 00:02:51,910 >> Ancaq əlbəttə, biz də qaçdı kompüter bəzi fundamental məhdudiyyətlər. 62 00:02:51,910 --> 00:02:54,100 Və xüsusilə, bu dil C, geri 63 00:02:54,100 --> 00:02:57,070 biz bir nəzər etdi ki, tam daşqın, reallıq 64 00:02:57,070 --> 00:03:00,460 Yalnız bir var ki, əgər yaddaş məhdud məbləği 65 00:03:00,460 --> 00:03:04,600 və ya xüsusi bir sonlu sayı bit, yalnız belə yüksək saymaq olar. 66 00:03:04,600 --> 00:03:08,460 Və belə ki, biz burada bu nümunə baxdı vasitəsi bir təyyarə bir counter, 67 00:03:08,460 --> 00:03:13,510 həqiqətən, kifayət qədər uzun əgər olardı çalışan daşqın və bir proqram ilə nəticələnəcək 68 00:03:13,510 --> 00:03:15,560 faktiki fiziki potensial səhv. 69 00:03:15,560 --> 00:03:18,600 >> Biz də üzən baxdı point qeyri-dəqiqlik, reallıq 70 00:03:18,600 --> 00:03:22,280 yalnız məhdud sayda bit, 32 və ya 64 olsun, 71 00:03:22,280 --> 00:03:27,330 Siz yalnız çox nömrələri daxil edə bilərsiniz bir bu kəsir, sonra sonra siz 72 00:03:27,330 --> 00:03:29,110 qeyri-dəqiq almaq üçün başlayır. 73 00:03:29,110 --> 00:03:32,360 məsələn, bir üçüncü So Burada dünya, insan dünyada, 74 00:03:32,360 --> 00:03:35,360 biz yalnız sonsuz sayı bilirik bu kəsir sonra 3s. 75 00:03:35,360 --> 00:03:38,820 Amma kompüter mütləq bilməz nömrələri sonsuz sayı təmsil 76 00:03:38,820 --> 00:03:42,590 Yalnız imkan əgər bəzi informasiya məhdud məbləği. 77 00:03:42,590 --> 00:03:45,900 >> Belə ki, yalnız biz təchiz etdi baxımından böyük enerji ilə 78 00:03:45,900 --> 00:03:49,280 Siz özünüzü ifadə edə bilər necə proqramlaşdırma baxımından bir klaviatura, 79 00:03:49,280 --> 00:03:51,430 biz də məhdud nə Siz, həqiqətən, bunu edə bilərsiniz. 80 00:03:51,430 --> 00:03:55,790 And olsun ki, bugs və səhvlər edə bilərsiniz məsələlər bu cür yaranır. 81 00:03:55,790 --> 00:03:59,900 Həqiqətən, mövzular arasında bu gün ayıklama kimi mövzular olacaq 82 00:03:59,900 --> 00:04:03,699 və həqiqətən başlıq altında axtarır hər şeyi təqdim edilmişdir necə son həftə 83 00:04:03,699 --> 00:04:05,490 həqiqətən həyata keçirilir daha yaxşı ki, 84 00:04:05,490 --> 00:04:10,530 anlamaq, həm də imkanları və C. kimi bir dil məhdudiyyətlər 85 00:04:10,530 --> 00:04:14,770 >> Və əslində, biz qat geri soymaq lazımdır data strukturu sadə, 86 00:04:14,770 --> 00:04:17,756 bir sıra deyilən bir şey olan Scratch bir zəng etmək olur "siyahısı". 87 00:04:17,756 --> 00:04:19,589 Bu bir az var Bu kontekstdə müxtəlif. 88 00:04:19,589 --> 00:04:23,340 Və sonra biz də bir təqdim edəcəyik Bizim domain xüsusi problemlərin ilk 89 00:04:23,340 --> 00:04:26,790 CS50, dünya Kriptoqrafiya, Scrambling sənəti 90 00:04:26,790 --> 00:04:29,650 və ya belə məlumatlar ciphering Siz gizli mesajları göndərə bilərsiniz ki, 91 00:04:29,650 --> 00:04:34,520 və gizli mesaj deşifre iki nəfər, A və B. arasında 92 00:04:34,520 --> 00:04:37,490 >> Belə ki, biz keçid əvvəl yeni dünyaya, 93 00:04:37,490 --> 00:04:42,059 Bəzi ilə təchiz edək texnika ilə siz aradan qaldırmaq olar 94 00:04:42,059 --> 00:04:43,850 və ya ən azı bir azaltmaq frustrations 95 00:04:43,850 --> 00:04:46,630 Siz yəqin ki, rast ki, Təkcə son həftə ərzində. 96 00:04:46,630 --> 00:04:50,830 Əslində, irəlidə sizin bəzi such-- olunur C. və bahis ilk problemlər var 97 00:04:50,830 --> 00:04:54,010 Siz mənim kimi değilseniz, first time bir proqram yazın üçün cəhd edin, 98 00:04:54,010 --> 00:04:57,330 Siz məntiqi düşünmək, hətta proqramı olduqca sadədir 99 00:04:57,330 --> 00:05:01,200 çox yaxşı bir divar hit, və ola bilər compiler əməkdaşlıq etmək niyyətində deyil. 100 00:05:01,200 --> 00:05:03,940 Etmək və ya cingilti niyyətində deyil həqiqətən, sizin teklif etmək üçün. 101 00:05:03,940 --> 00:05:05,450 >> Və nə ola bilər? 102 00:05:05,450 --> 00:05:07,950 Bəli, nin bir nəzər salaq bəlkə də, bir sadə proqram. 103 00:05:07,950 --> 00:05:11,190 Mən irəli getmək və bu saxlamaq üçün gedirəm qəsdən buggy0.c adlı bir fayl, 104 00:05:11,190 --> 00:05:13,590 Mən bunu bilirəm, çünki əvvəlcədən flawed bilər. 105 00:05:13,590 --> 00:05:17,400 Amma bu həyata bilər birinci və ya ikinci və ya üçüncü proqram 106 00:05:17,400 --> 00:05:18,830 Mən, həqiqətən, özüm qəbul edirəm. 107 00:05:18,830 --> 00:05:23,820 Mən irəli getmək üçün gedirəm və , Int əsas (void) yazın. 108 00:05:23,820 --> 00:05:28,130 Və sonra mənim qıvrım aşırma daxilində, salam, vücuda ( "Çox tanış 109 00:05:28,130 --> 00:05:30,980 backslash n ") - və yarı kolon. 110 00:05:30,980 --> 00:05:32,360 >> Mən fayl xilas etdik. 111 00:05:32,360 --> 00:05:34,850 İndi aşağı getmək üçün gedirəm Mənim terminal pəncərə 112 00:05:34,850 --> 00:05:40,340 və növü etmək buggy0, çünki, yenə fayl adı bu gün buggy0.c edir. 113 00:05:40,340 --> 00:05:43,660 Mən daxil edin buggy0 etmək yazın. 114 00:05:43,660 --> 00:05:48,200 >> Və oh, hay Allah, son dəfə xatırlayıram heç bir səhv ki, yaxşı bir şey deyil. 115 00:05:48,200 --> 00:05:49,740 Belə ki, heç bir çıxış yaxşı bir şey deyil. 116 00:05:49,740 --> 00:05:52,920 Amma burada aydın var səhvlər bəzi nömrəsi. 117 00:05:52,920 --> 00:05:56,470 >> çıxdı ilk xətt So buggy0 etmək yazaraq sonra, geri, 118 00:05:56,470 --> 00:05:59,540 Cingilti nin kifayət qədər verbose çıxış edir. 119 00:05:59,540 --> 00:06:02,067 başlıq altında, CS50 IDE yapılandırılmış 120 00:06:02,067 --> 00:06:04,150 bütün dəstə istifadə etmək bu compiler ilə variantları 121 00:06:04,150 --> 00:06:05,941 belə ki, yoxdur ki, onlar haqqında düşünmək. 122 00:06:05,941 --> 00:06:08,840 Və bütün ki, ilk xətt var Cingilti ilə başlayır deməkdir. 123 00:06:08,840 --> 00:06:11,720 >> Amma bundan sonra problemlər onların görünüşü etmək başlayır. 124 00:06:11,720 --> 00:06:17,390 line 3 xarakter Buggy0.c 5, böyük, qırmızı səhv var. 125 00:06:17,390 --> 00:06:18,380 ki, nədir? 126 00:06:18,380 --> 00:06:23,562 Dolayısı kitabxana funksiyası elan növü int (const char * ilə printf, 127 00:06:23,562 --> 00:06:26,050 ...) [-Werror]. 128 00:06:26,050 --> 00:06:28,379 Mən çox tez demək çox gizli olur. 129 00:06:28,379 --> 00:06:30,170 Və əlbəttə ki, ilk nəzər, biz ki 130 00:06:30,170 --> 00:06:32,380 Siz anlamaq üçün gözləmək ki, mesaj bütövlükdə. 131 00:06:32,380 --> 00:06:34,213 dərslər və belə bir bu gün gedir üçün 132 00:06:34,213 --> 00:06:36,919 qeyd etmək cəhd ola nümunələri, və ya oxşar şeylər, 133 00:06:36,919 --> 00:06:38,960 səhvlər ola bilər Keçmişdə qarşılaşdı. 134 00:06:38,960 --> 00:06:41,335 Belə ki, yalnız ayrı tease edək tanış bu sözlər. 135 00:06:41,335 --> 00:06:44,290 böyük, qırmızı səhv aydın bir şey simvolik yanlış olan. 136 00:06:44,290 --> 00:06:47,940 >> dolayısı elan kitabxana funksiyası printf. 137 00:06:47,940 --> 00:06:51,680 Mən başa düşmürəm, hətta nə dolayısı kitabxana funksiyası elan 138 00:06:51,680 --> 00:06:54,900 vasitələri, şübhəsiz ki, problem birtəhər printf aiddir. 139 00:06:54,900 --> 00:06:59,130 Və məsələnin mənbə elan ilə bağlıdır. 140 00:06:59,130 --> 00:07:02,440 >> bir funksiyası elan ilk dəfə qeyd. 141 00:07:02,440 --> 00:07:06,210 Və biz ötən həftə terminologiya istifadə bir funksiyasının prototip elan, 142 00:07:06,210 --> 00:07:11,860 ya üst bir xətt ilə sizin öz fayl və ya qondarma header fayl. 143 00:07:11,860 --> 00:07:15,300 Və nə fayl biz demək idi Keçən həftə printf quote ki, 144 00:07:15,300 --> 00:07:17,080 dırnağı bağlamaq elan? 145 00:07:17,080 --> 00:07:20,950 nə fayl onun prototip deyil? 146 00:07:20,950 --> 00:07:24,640 >> Belə ki, siz ilk şey Mən xatırlayıram tipli, demək olar ki, hər bir proqram son sýrada 147 00:07:24,640 --> 00:07:30,790 və təsadüfən bir an əvvəl başladı özüm yazaraq bu burada idi 148 00:07:30,790 --> 00:07:38,630 hash # daxildir 00:07:41,860 Mən indi bu fayl saxlamaq əgər, Mən gedirəm irəli getmək və ekran sil, 150 00:07:41,860 --> 00:07:44,740 Siz yazaraq edə bilər ki, Clear və ya, Control L aça bilər 151 00:07:44,740 --> 00:07:47,680 yalnız terminal pəncərə sil yalnız bir clutter aradan qaldırılması üçün. 152 00:07:47,680 --> 00:07:51,370 >> Mən irəli getmək üçün gedirəm və yenidən type buggy0 daxil edin. 153 00:07:51,370 --> 00:07:53,790 Və voiture, mən hələ ki, görəcəksiniz Cingilti uzun komanda, 154 00:07:53,790 --> 00:07:55,470 lakin heç bir səhv baş beledir bu dəfə var. 155 00:07:55,470 --> 00:07:58,800 And olsun ki, mən ./buggy0 əgər, yalnız son dəfə kimi, 156 00:07:58,800 --> 00:08:01,860 harada dot Bu o deməkdir directory, Slash yalnız deməkdir 157 00:08:01,860 --> 00:08:05,040 burada proqramın adı gəlir və Proqramın o ad, buggy0 edir 158 00:08:05,040 --> 00:08:07,340 "Hello, dünya." Enter 159 00:08:07,340 --> 00:08:09,440 >> İndi, necə ola bilər Bu həll gleaned 160 00:08:09,440 --> 00:08:12,017 olmadan mütləq kimi bir çox sözlər tanınması 161 00:08:12,017 --> 00:08:14,350 Mən kimi, əlbəttə, olan bu uzun illər görülən? 162 00:08:14,350 --> 00:08:18,720 Bəli, ilk problem başına həyata set, biz bir komanda təqdim 163 00:08:18,720 --> 00:08:21,175 CS50 öz işçiləri olduğunu adlı help50 yazdı. 164 00:08:21,175 --> 00:08:24,300 Şübhəsiz ki, C dəqiqləşdirilməsi edir problem bu necə istifadə etmək kimi qurmaq. 165 00:08:24,300 --> 00:08:27,210 >> Amma mahiyyətcə help50 edir bir proqram CS50 heyəti 166 00:08:27,210 --> 00:08:30,850 ki, imkan verir ki, yazdı Siz çalıştırmak üçün bir komanda və ya bir proqram run 167 00:08:30,850 --> 00:08:36,169 və başa düşmürəm, əgər onun çıxış, help50 onun çıxış keçmək 168 00:08:36,169 --> 00:08:38,890 olan proqram qeyd Kursun heyəti yazırdı ki, 169 00:08:38,890 --> 00:08:42,429 Sizin proqramın çıxış baxacağıq xətti ilə line, xarakteri ilə xarakter. 170 00:08:42,429 --> 00:08:46,000 Və biz əgər, işçi heyəti, tanımaq Siz qarşılaşdıqda səhv mesaj, 171 00:08:46,000 --> 00:08:50,580 biz bəzi təhrik üçün çalışacağıq bəzi məsləhətlər ilə ritorik suallar, 172 00:08:50,580 --> 00:08:54,890 bir TF və ya CA və ya özüm kimi çox ofis saat şəxs olardı. 173 00:08:54,890 --> 00:08:58,320 >> Əgər deyilsə So help50 baxmaq mütləq bir problem tanımaq. 174 00:08:58,320 --> 00:09:00,790 Amma bu etibar yoxdur bir qoltuqağacı kimi çox. 175 00:09:00,790 --> 00:09:03,990 Əlbəttə anlamaq üçün cəhd onun çıxış və sonra öyrənmək 176 00:09:03,990 --> 00:09:07,571 belə ki, yalnız bir dəfə və ya iki dəfə sizin nə etdiklərinizi Heç bir xüsusi səhv help50 run 177 00:09:07,571 --> 00:09:08,070 mesaj. 178 00:09:08,070 --> 00:09:10,660 Bundan sonra, siz olmalıdır özünüzü təchiz 179 00:09:10,660 --> 00:09:13,180 Bu, həqiqətən nə anlamaq üçün. 180 00:09:13,180 --> 00:09:14,350 >> Burada digər bir edək. 181 00:09:14,350 --> 00:09:20,410 Mənə başqa davam edək fayl biz bu buggy1.c zəng edəcəyik. 182 00:09:20,410 --> 00:09:23,110 Bu fayl Mən deliberately-- gedir 183 00:09:23,110 --> 00:09:26,330 lakin mən deyil ki, iddia Mən nə səhv başa düşürük. 184 00:09:26,330 --> 00:09:31,420 >> Mən irəli getmək və şeylərdir gedirəm # daxildir, mən var-ci ildən 185 00:09:31,420 --> 00:09:33,660 bir an əvvəl mənim dərs öyrəndim. 186 00:09:33,660 --> 00:09:36,220 Int əsas (void), əvvəlki kimi. 187 00:09:36,220 --> 00:09:40,880 Və sonra burada mən gedirəm string s etmək - get_string. 188 00:09:40,880 --> 00:09:43,770 Və son dəfə xatırlayıram ki, Bu vasitə, hey, kompüter, 189 00:09:43,770 --> 00:09:48,280 Mənə bir dəyişən vermək bu s zəng və ki, dəyişən bir string növü etmək 190 00:09:48,280 --> 00:09:50,150 mən bu bir və ya daha çox söz saxlaya bilərsiniz. 191 00:09:50,150 --> 00:09:52,191 >> Və sonra sağ tərəfdən bərabər işarəsi yan 192 00:09:52,191 --> 00:09:54,980 bir olan get_string edir CS50 Kitabxana funksiyası 193 00:09:54,980 --> 00:09:55,980 ki, dəqiq ki, yoxdur. 194 00:09:55,980 --> 00:09:59,740 O bir funksiyası və olur sağ əlləri sol. 195 00:09:59,740 --> 00:10:02,670 Belə ki, bu bərabər işarəsi demək deyil Biz riyaziyyat hesab edə bilər kimi "bərabərdir". 196 00:10:02,670 --> 00:10:04,750 Bu sağdan sola tapşırıq deməkdir. 197 00:10:04,750 --> 00:10:09,640 Belə ki, bu, gələn string almaq deməkdir istifadəçi s daxilində saxlamaq və. 198 00:10:09,640 --> 00:10:10,460 >> İndi istifadə edək. 199 00:10:10,460 --> 00:10:13,820 Mənə bir ikinci kimi və irəli gedək line, mənə irəli getmək və "salam" deyək - 200 00:10:13,820 --> 00:10:19,330 deyil "dünya", lakin "Salam,% s ki, bizim tutucu, vergül s, 201 00:10:19,330 --> 00:10:22,030 ki, bizim dəyişən, və sonra yarı kolon. 202 00:10:22,030 --> 00:10:26,070 Mən çox qıymaq olmasaydı burada, bu doğru kod kimi görünür. 203 00:10:26,070 --> 00:10:28,090 >> Və mənim instinktlərdən indi tərtib edilir. 204 00:10:28,090 --> 00:10:30,400 Fayl buggy1.c adlanır. 205 00:10:30,400 --> 00:10:33,770 Mən daxil edin buggy1 etmək gedirəm. 206 00:10:33,770 --> 00:10:36,377 Və darn-it yoxdur, əgər əvvəl daha çox səhvlər. 207 00:10:36,377 --> 00:10:38,210 Mən daha çox var, demək səhv messages olardı 208 00:10:38,210 --> 00:10:40,400 Bu proqram faktiki xətləri daha görünür. 209 00:10:40,400 --> 00:10:42,730 >> Amma paket burada var Siz overwhelmed etdiyiniz hətta əgər 210 00:10:42,730 --> 00:10:45,040 iki və ya üç və ya daha daha dörd səhv messages, 211 00:10:45,040 --> 00:10:48,340 çox həmişə diqqət həmin mesajların ilk. 212 00:10:48,340 --> 00:10:52,220 top-ən biri baxaraq, ola geri kimi lazımdır scrolling. 213 00:10:52,220 --> 00:10:53,930 Belə ki, burada mən markası buggy1 yazılmış. 214 00:10:53,930 --> 00:10:55,700 İşdə gözlənilən kimi cingilti çıxış edir. 215 00:10:55,700 --> 00:10:57,290 >> Və burada ilk qırmızı səhv var. 216 00:10:57,290 --> 00:11:02,370 Bəyan identifikator istifadə simli, mən standart demək idi? 217 00:11:02,370 --> 00:11:04,260 Belə ki, standart edir həqiqətən başqa bir şey. 218 00:11:04,260 --> 00:11:06,240 Bu istifadəçi aiddir klaviatura, mahiyyətcə. 219 00:11:06,240 --> 00:11:08,080 >> Amma mən demək nə deyil. 220 00:11:08,080 --> 00:11:11,770 Mən simli nəzərdə və mən get_string idi. 221 00:11:11,770 --> 00:11:16,200 Belə ki, nə mən Bu vaxt unuttum? 222 00:11:16,200 --> 00:11:20,230 Bu vaxt əskik var? 223 00:11:20,230 --> 00:11:23,600 Mən # daxildir ki, mən printf etmək imkanı var. 224 00:11:23,600 --> 00:11:26,090 >> Amma nə yoxdur yalnız hələ çıxış? 225 00:11:26,090 --> 00:11:29,420 Bəli, yalnız son dəfə kimi, Mən compiler demək lazımdır 226 00:11:29,420 --> 00:11:31,691 bu funksiyaları nə cingilti. 227 00:11:31,691 --> 00:11:33,940 Get_string gəlmir C. Və xüsusilə, onu 228 00:11:33,940 --> 00:11:38,160 gəlmək deyil Fayl header. 229 00:11:38,160 --> 00:11:40,770 Əvəzinə gəlir bir şey heyəti yazdı 230 00:11:40,770 --> 00:11:44,176 hansı fərqli bir fayl ad lakin tutarlı adına. 231 00:11:44,176 --> 00:11:46,990 232 00:11:46,990 --> 00:11:50,861 >> Belə ki, sadəcə bir xətt ki, əlavə son dəfə kod geri çağırılması 233 00:11:50,861 --> 00:11:53,610 Cingilti çalışır ki, gedir alt mənim code üst baxmaq, 234 00:11:53,610 --> 00:11:54,193 soldan sağa. 235 00:11:54,193 --> 00:11:57,200 Bu qeyd olacaq oh, siz istəyirəm. 236 00:11:57,200 --> 00:11:59,900 Mənə getmək və tapsın Bu server hər yerdə, 237 00:11:59,900 --> 00:12:03,090 mahiyyətcə, surəti və yapışdırıb, Öz fayl üst daxil 238 00:12:03,090 --> 00:12:06,820 belə hekayə bu nöqtədə ki, line 1 proqramın qalan 239 00:12:06,820 --> 00:12:11,651 , Həqiqətən, funksiyaları hər hansı bir istifadə edə bilərsiniz Orada onların arasında get_string. 240 00:12:11,651 --> 00:12:13,650 Mən ignore gedirəm o səhvlər qalan 241 00:12:13,650 --> 00:12:17,190 Çünki, həqiqətən, yalnız şübhəli birinci həqiqətən mattered. 242 00:12:17,190 --> 00:12:20,780 Mən irəli və təkrar getmək üçün gedirəm mənim fayl qənaət sonra buggy1 etmək. 243 00:12:20,780 --> 00:12:22,580 Və voiture, bu çalışması etdi. 244 00:12:22,580 --> 00:12:29,200 Mən ./buggy1 və əgər, yazın Məsələn, Zamyla, mən indi, salam olacaq 245 00:12:29,200 --> 00:12:32,000 Zamyla, yerinə hello, dünya. 246 00:12:32,000 --> 00:12:32,550 >> Yaxşı. 247 00:12:32,550 --> 00:12:35,890 Belə ki, burada takeaways sonra ki, bir qədər bilərsiniz kimi glean üçün cəhd edin 248 00:12:35,890 --> 00:12:39,140 tək səhv mesaj, axtarır tanınan sözlər bəzi. 249 00:12:39,140 --> 00:12:43,070 ki qadağa başına help50 istifadə problem dəqiqləşdirilməsi seçin. 250 00:12:43,070 --> 00:12:46,500 Amma qadağa da həmişə baxmaq top səhv yalnız ən azı 251 00:12:46,500 --> 00:12:50,051 ilkin görmək nə məlumat Bu, həqiqətən verir bilər. 252 00:12:50,051 --> 00:12:52,300 Amma bu var çıxır hətta daha çox funksionallıq inşa 253 00:12:52,300 --> 00:12:55,030 CS50 Kitabxana kömək etmək dövr erkən siz 254 00:12:55,030 --> 00:12:57,580 və erkən proqramlaşdırma yanlış gedir nə anlamaq. 255 00:12:57,580 --> 00:12:59,840 Belə ki, burada bir nümunə edək. 256 00:12:59,840 --> 00:13:04,350 Mən olan bu buggy2 zəng etmək üçün gedirəm, daha həyata flawed olacaq 257 00:13:04,350 --> 00:13:05,650 dizayn qapısı olan. 258 00:13:05,650 --> 00:13:09,980 >> Mən irəli getmək üçün gedirəm və # daxildir yoxdur. 259 00:13:09,980 --> 00:13:12,580 Və sonra mən int əsas (void) gedirəm. 260 00:13:12,580 --> 00:13:14,840 Və sonra mən loop üçün gedirəm. 261 00:13:14,840 --> 00:13:16,690 For (_ 0 int. 262 00:13:16,690 --> 00:13:18,750 i daha az və ya 10 bərabərdir. 263 00:13:18,750 --> 00:13:24,260 i ++ və sonra qıvrım aşırma, mən gedirəm Burada yalnız bir hashtag simvolu çap 264 00:13:24,260 --> 00:13:25,920 və yeni xətt xarakter. 265 00:13:25,920 --> 00:13:29,220 >> bu mənim niyyəti So proqram olduqca sadəcə 266 00:13:29,220 --> 00:13:33,150 10 dəfə təkrarlamaq və hər iteration 267 00:13:33,150 --> 00:13:35,260 ki, loop hər dəfə dövrü ilə, 268 00:13:35,260 --> 00:13:37,660 Bir hashtag çap, bir hashtag, bir hashtag. 269 00:13:37,660 --> 00:13:40,480 One başına line Çünki orada yeni xətt var. 270 00:13:40,480 --> 00:13:42,787 Və Xatırladaq ki ötən həftə başına loop, 271 00:13:42,787 --> 00:13:44,620 və daha çox almaq lazımdır sintaksis ilə tanış 272 00:13:44,620 --> 00:13:47,170 təcrübə ilə istifadə edərək long-- əvvəl mənə verir 273 00:13:47,170 --> 00:13:49,740 dəyişən i adlanır və bu 0 edir. 274 00:13:49,740 --> 00:13:52,650 >> Bu I əlavələr 1 hər iteration. 275 00:13:52,650 --> 00:13:54,940 Belə ki, i 3 2 1 gedir. 276 00:13:54,940 --> 00:13:57,690 Və sonra bu vəziyyətdə yarı colons arasında orta 277 00:13:57,690 --> 00:14:03,010 etmək üçün hər iteration yoxlanılır olur biz daxilində hələ də əmin olun. 278 00:14:03,010 --> 00:14:06,830 Mən 10 dəfə təkrarlamaq istəyirəm ki, mən var sort çox daxilən yalnız 279 00:14:06,830 --> 00:14:09,070 mənim yuxarı bound kimi 10 qoydu. 280 00:14:09,070 --> 00:14:14,310 >> Və hələ, bu çalıştırdığınızda, sonra etmək ilə tərtib buggy2-- 281 00:14:14,310 --> 00:14:15,440 və OK tərtib etmir. 282 00:14:15,440 --> 00:14:17,980 Mən bir yoxdur syntax error bu dəfə. 283 00:14:17,980 --> 00:14:20,940 mənə indi davam edək və daxil edin buggy2 axır. 284 00:14:20,940 --> 00:14:22,620 İndi diyirləyin. 285 00:14:22,620 --> 00:14:24,890 Və mənə artırmaq edək pəncərə ölçüsü. 286 00:14:24,890 --> 00:14:33,720 >> Mən görünür 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11. 287 00:14:33,720 --> 00:14:38,891 Belə ki, hətta baxmayaraq ki, 11 hashtags var Mən aydın bu loop daxilində 10 qoydu. 288 00:14:38,891 --> 00:14:42,140 İndi bəzi dərhal görə bilərsiniz səhv, çünki, həqiqətən, bu nə 289 00:14:42,140 --> 00:14:43,720 etmək çox çətin səhv deyil. 290 00:14:43,720 --> 00:14:46,070 Amma bu, çox çox var çox erkən etdi. 291 00:14:46,070 --> 00:14:49,820 >> Mən qeyd etmək istəyirəm, baxmayaraq ki, , Necə bu anlamaq bilər ki? 292 00:14:49,820 --> 00:14:52,300 Bəli, bu çıxır ki, CS50 Kitabxana gəlir 293 00:14:52,300 --> 00:14:55,380 yalnız get_string və get_int ilə get_float və digər funksiyaları və. 294 00:14:55,380 --> 00:14:59,980 O, həmçinin xüsusi funksiyası ilə gəlir adlı eprintf, və ya, səhv printf. 295 00:14:59,980 --> 00:15:03,270 Və bunu etmək üçün yalnız mövcuddur Bu sizin üçün bir az daha asan 296 00:15:03,270 --> 00:15:06,310 yalnız kodu ayıklama zaman ekranda bir səhv baş beledir çap 297 00:15:06,310 --> 00:15:07,850 Bu haradan gəldiyi və bilirik. 298 00:15:07,850 --> 00:15:11,000 >> Belə ki, məsələn, bir şey bilər Bu funksiya şeylərdir ilə burada 299 00:15:11,000 --> 00:15:20,230 eprintf, və sonra irəli getmək üçün gedirəm və i i, backslash n indi% deyirlər. 300 00:15:20,230 --> 00:15:22,330 Mən dəyəri plug gedirəm. 301 00:15:22,330 --> 00:15:25,400 Və üst qədər, bu, çünki , CS50 Kitabxana edir 302 00:15:25,400 --> 00:15:27,580 Mən irəli getmək üçün gedirəm və daxil 303 00:15:27,580 --> 00:15:29,169 mən bu funksiya etmək imkanı var. 304 00:15:29,169 --> 00:15:31,460 Amma hesab edək nə line 9 bunu nəzərdə tutulur. 305 00:15:31,460 --> 00:15:32,670 Mən nəhayət bu silmək üçün gedirəm. 306 00:15:32,670 --> 00:15:34,670 Bu heç bir əlaqəsi yoxdur Mənim mühüm məqsədi ilə. 307 00:15:34,670 --> 00:15:39,090 Amma eprintf, səhv printf, yalnız nəzərdə tutulur Mənə bir diaqnostik məlumat vermək. 308 00:15:39,090 --> 00:15:42,460 Mən proqram çalıştırdığınızda, Mən istəyirəm müvəqqəti ekranda görmək 309 00:15:42,460 --> 00:15:44,550 həmçinin yalnız anlamaq nə baş verir. 310 00:15:44,550 --> 00:15:47,330 >> Və həqiqətən, hər Burada xəttinin 9 iteration 311 00:15:47,330 --> 00:15:49,260 Mən görmək istəyirəm, dəyəri nədir? 312 00:15:49,260 --> 00:15:50,290 i dəyəri nədir? 313 00:15:50,290 --> 00:15:51,280 i dəyəri nədir? 314 00:15:51,280 --> 00:15:55,650 Və ümid edirəm ki, mən yalnız olmalıdır ki, mesaj, həmçinin, 10 dəfə bax. 315 00:15:55,650 --> 00:15:57,780 >> Mənə irəli getmək və mənim proqram compile, 316 00:15:57,780 --> 00:15:59,905 Mən heç bir vaxt var kimi Mən bir dəyişiklik. ./buggy2. 317 00:15:59,905 --> 00:16:02,680 318 00:16:02,680 --> 00:16:03,640 Və now-- OK. 319 00:16:03,640 --> 00:16:04,820 daha gedən bir çox var. 320 00:16:04,820 --> 00:16:07,610 Mənə qədər diyirləyin bildirin daha böyük pəncərə. 321 00:16:07,610 --> 00:16:10,190 >> Və siz hər görəcəksiniz hashtags hələ çap olunur. 322 00:16:10,190 --> 00:16:15,270 Lakin arasında onların hər indi bu aşağıdakı diaqnostik çıxış biçimlendirilmiş. 323 00:16:15,270 --> 00:16:17,960 burada proqramın adı buggy2 edir. 324 00:16:17,960 --> 00:16:20,432 fayl adı buggy2.c edir. 325 00:16:20,432 --> 00:16:24,080 line sayı olan çap bu xətt 9. 326 00:16:24,080 --> 00:16:27,500 Və o sol olan bu deyil Mən gözləyirəm hata beledir. 327 00:16:27,500 --> 00:16:30,701 >> Bu ki, haqqında gözəl nə var indi mütləq saymaq yoxdur 328 00:16:30,701 --> 00:16:32,200 başımda mənim proqram nə. 329 00:16:32,200 --> 00:16:34,240 Mən görə bilərsiniz i 0 ilk iteration, 330 00:16:34,240 --> 00:16:39,420 sonra 1, sonra 2, sonra 3, 4, onda 5, sonra 6, sonra 7, sonra 8, sonra 9, sonra 331 00:16:39,420 --> 00:16:40,980 10. 332 00:16:40,980 --> 00:16:42,050 Belə ki, bir dəqiqə gözləyin. 333 00:16:42,050 --> 00:16:43,740 Burada nə olub? 334 00:16:43,740 --> 00:16:48,190 Mən hələ hesablanması görünür kimi 10-ə qədər nəzərdə tutulmuşdur. 335 00:16:48,190 --> 00:16:50,550 >> Amma harada başladı? 336 00:16:50,550 --> 00:16:53,240 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. 337 00:16:53,240 --> 00:16:58,040 Belə 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10-- 11 barmaq 338 00:16:58,040 --> 00:16:59,990 problemin göstəricisidir. 339 00:16:59,990 --> 00:17:02,850 Mən saydım görünür səhv mənim loop. 340 00:17:02,850 --> 00:17:06,599 10 tekrarlamalar getmək əvəzinə, Mən 0 baþlýyorum 341 00:17:06,599 --> 00:17:09,550 Mən 10 vasitəsilə bitən alıram. 342 00:17:09,550 --> 00:17:12,030 Lakin, kompüter kimi, Mən 0 hesablanması baþlýyorum 343 00:17:12,030 --> 00:17:15,250 Mən hesablanması olmalıdır , lakin 10 vasitəsilə. 344 00:17:15,250 --> 00:17:18,510 >> Və fix, mən nəhayət Burada həyata, iki şeyi biridir. 345 00:17:18,510 --> 00:17:22,430 Mən çox sadəcə deyə bilər az 10 qədər saymaq. 346 00:17:22,430 --> 00:17:27,260 Belə 0, 1, 2, 3, 4, 5, 6, 7, 8, , Həqiqətən, doğru 9, 347 00:17:27,260 --> 00:17:28,900 hətta bir az yanlış səslənir baxmayaraq. 348 00:17:28,900 --> 00:17:35,070 Yoxsa mən nə edə bilər çox və ya bərabər daha az 9, belə uzun mən 0 başlamaq kimi. 349 00:17:35,070 --> 00:17:40,056 Yoxsa həqiqətən kimi deyil əgər, siz 10 vasitəsilə saymaq lakin 1-də başlaya bilərsiniz. 350 00:17:40,056 --> 00:17:41,680 Ancaq yenə də, bu, yalnız ki, ümumi deyil. 351 00:17:41,680 --> 00:17:43,977 proqramlaşdırma olsa da Scratch-- çox deyil 352 00:17:43,977 --> 00:17:45,810 lakin proqramlaşdırma C və digər dillərdə, 353 00:17:45,810 --> 00:17:47,670 JavaScript və kimi Python və başqaları bu 354 00:17:47,670 --> 00:17:49,880 yalnız çox ümumi ikili bizim müzakirə 355 00:17:49,880 --> 00:17:53,450 yalnız hesablanması başlamaq üçün 0 siz ən aşağı sayı. 356 00:17:53,450 --> 00:17:53,950 Yaxşı. 357 00:17:53,950 --> 00:17:55,160 Belə ki, eprintf var. 358 00:17:55,160 --> 00:17:58,600 Və yenə, indi fiqurlu etdik ki, mən problem və mən 0 geri gedirəm 359 00:17:58,600 --> 00:18:01,470 az 10 vasitəsilə gedirəm getmək və eprintf silmək üçün. 360 00:18:01,470 --> 00:18:04,580 >> Mən bu olmamalıdır mənim kodu gəmi və ya kodu təqdim 361 00:18:04,580 --> 00:18:05,800 və ya başqa hər kəs üçün göstərir. 362 00:18:05,800 --> 00:18:07,980 Bu, həqiqətən, yalnız nəzərdə müvəqqəti istifadə ediləcək. 363 00:18:07,980 --> 00:18:11,650 Amma indi bu müəyyən etdik eləcə də xüsusi problem. 364 00:18:11,650 --> 00:18:16,780 >> Yaxşı, burada daha bir nümunə edək Mən aşağıdakı qızışdırmaq gedirəm ki. 365 00:18:16,780 --> 00:18:22,850 Mən irəli getmək üçün gedirəm və # daxildir. $ 50 366 00:18:22,850 --> 00:18:25,580 Mən irəli getmək üçün gedirəm və # daxildir. 367 00:18:25,580 --> 00:18:29,030 >> Mən saxlamaq üçün gedirəm buggy3.c bu faylı. 368 00:18:29,030 --> 00:18:31,740 Mən irəli getmək üçün gedirəm və int əsas (void) bəyan edir. 369 00:18:31,740 --> 00:18:34,186 Və sonra daxili orada Mən i int gedirəm _ - 370 00:18:34,186 --> 00:18:36,435 Mən bir proqram həyata keçirmək istədiklərini bir get_negative_int ilə. 371 00:18:36,435 --> 00:18:39,146 372 00:18:39,146 --> 00:18:40,770 Bu hələ mövcud olan bir funksiyası deyil. 373 00:18:40,770 --> 00:18:42,870 Belə ki, biz həyata olacaq yalnız bir anda. 374 00:18:42,870 --> 00:18:45,541 Amma biz nə görmək olacaq ilk pass arabası var. 375 00:18:45,541 --> 00:18:47,290 Mən kazanılmış sonra istifadəçi bir int, 376 00:18:47,290 --> 00:18:53,365 Mən yalnız% i çap gedirəm mənfi tam, backslash n, vergül, i. 377 00:18:53,365 --> 00:18:55,240 Başqa sözlə, mən nə üçün bu proqramı istəyirəm 378 00:18:55,240 --> 00:18:58,000 bir mənfi int almaq ki, istifadəçi və sonra çap 379 00:18:58,000 --> 00:18:59,980 ki, belə bir mənfi int edir. 380 00:18:59,980 --> 00:19:02,080 >> İndi bu funksiyanı həyata keçirmək lazımdır. 381 00:19:02,080 --> 00:19:05,740 Belə ki, sonra mənim fayl, mən getmək üçün gedirəm irəli və adlı funksiyası elan 382 00:19:05,740 --> 00:19:10,670 get_negative_int (void) - və biz edəcəyik ki, xətt yenidən nə deməkdir geri gəlir 383 00:19:10,670 --> 00:19:18,790 bir an int n; do-- do aşağıdakı kimidir printf n :. 384 00:19:18,790 --> 00:19:26,210 , Get_int - Və sonra mən n gedirəm bu isə n 0 daha çox yoxdur. 385 00:19:26,210 --> 00:19:28,310 Və sonra n qayıtmaq ;. 386 00:19:28,310 --> 00:19:31,730 >> Belə ki, gedən bir çox var etmədik olan bu ancaq 387 00:19:31,730 --> 00:19:33,710 ən azı qısa, keçən həftə oldu. 388 00:19:33,710 --> 00:19:36,980 Belə ki, burada xətt 10 Mən bəyan etdik get_negative_int adlı funksiyası, 389 00:19:36,980 --> 00:19:39,620 və mən, (void) gətirdik parantez, səbəbi bu olan 390 00:19:39,620 --> 00:19:40,950 giriş daşımır. 391 00:19:40,950 --> 00:19:42,910 Mən bir şey keçən deyiləm Bu funksiya üçün. 392 00:19:42,910 --> 00:19:44,690 Mən geri bir şey alıram. 393 00:19:44,690 --> 00:19:47,270 >> Mən nə ümid edirəm geri almaq bir tam deyil. 394 00:19:47,270 --> 00:19:50,040 heç bir məlumat növü var C negative_int çağırıb. 395 00:19:50,040 --> 00:19:52,880 Bu, yalnız int var, belə ki, gedir əmin etmək bizə olmaq 396 00:19:52,880 --> 00:19:55,340 ki, həqiqətən dəyər qaytarılmır yalnız int edir 397 00:19:55,340 --> 00:19:56,380 həm də mənfi. 398 00:19:56,380 --> 00:20:02,150 >> line 12-də mən bir dəyişən elan edirəm n və növü int edilməsi çağırıb. 399 00:20:02,150 --> 00:20:07,500 Və sonra line 13 18 vasitəsilə Mən bir şey bunu bir şey doğru edir. 400 00:20:07,500 --> 00:20:11,040 Mən irəli və çap gedirəm n, kolon, sonra boşluq, 401 00:20:11,040 --> 00:20:12,800 istifadəçi üçün tez kimi. 402 00:20:12,800 --> 00:20:16,410 >> Mən get_int zəng edirəm və Onun sözdə geri dəyər saxlanılması 403 00:20:16,410 --> 00:20:18,130 dəyişən n. 404 00:20:18,130 --> 00:20:22,600 Amma bunu saxlamaq üçün gedirəm Bu isə n 0 daha böyükdür. 405 00:20:22,600 --> 00:20:27,960 Başqa sözlə, istifadəçi mənə verir int və sayı 0 daha çox, 406 00:20:27,960 --> 00:20:31,180 bundan dolayı, müsbət, mən gedirəm yalnız istifadəçi reprompting saxlamaq, 407 00:20:31,180 --> 00:20:37,160 onları məcbur, reprompting saxlamaq əməkdaşlıq və mənə mənfi int verir. 408 00:20:37,160 --> 00:20:41,640 >> Və n həqiqətən negative-- dəfə Nəhayət növləri -50 istifadəçi Güman 409 00:20:41,640 --> 00:20:46,710 onda bu isə loop artıq həqiqətdir -50 0 daha böyük deyil, çünki. 410 00:20:46,710 --> 00:20:51,140 Belə ki, çıxmaq loop məntiqi və n qayıtmaq. 411 00:20:51,140 --> 00:20:53,520 >> Amma digər bir var şey var. 412 00:20:53,520 --> 00:20:56,190 Mən sadəcə bunu edə bilərsiniz çıxarmaq və yapıştırma ilə 413 00:20:56,190 --> 00:20:58,540 fayl üst kodu bir xətt. 414 00:20:58,540 --> 00:21:01,630 Mən cingilti öyrətmək lazımdır və ya cingilti söz, 415 00:21:01,630 --> 00:21:04,630 açıq Mən ki, həqiqətən getmək və həyata keçirilməsi 416 00:21:04,630 --> 00:21:06,020 bu funksiya get_negative_int. 417 00:21:06,020 --> 00:21:07,674 Bu, yalnız fayl aşağı ola bilər. 418 00:21:07,674 --> 00:21:09,840 Yenə Xatırladaq ki cingilti , Alt üst şeyi oxuyur 419 00:21:09,840 --> 00:21:12,330 sağ, belə ki, siz bilməzsiniz Cingilti bir funksiyası zəng 420 00:21:12,330 --> 00:21:15,330 mövcud olacaq bilmir. 421 00:21:15,330 --> 00:21:18,430 >> İndi təəssüf ki, bu proqram, kimi bəzi qeyd ola bilər, 422 00:21:18,430 --> 00:21:19,590 artıq arabası deyil. 423 00:21:19,590 --> 00:21:21,400 Mənə davam və buggy3 edək. 424 00:21:21,400 --> 00:21:26,904 Mənim problem indi deyil, belə ki, tərtib bir syntax error bir mətn səhv kimi, 425 00:21:26,904 --> 00:21:29,570 Bu, həqiqətən bir məntiqi olacaq Mən qəsdən var səhv 426 00:21:29,570 --> 00:21:32,450 imkanı kimi qəbul neler vasitəsilə addım. 427 00:21:32,450 --> 00:21:35,540 >> Mən irəli getmək üçün gedirəm indi və buggy3 axır. 428 00:21:35,540 --> 00:21:37,490 Mən getmək üçün gedirəm irəli və əməkdaşlıq edirik. 429 00:21:37,490 --> 00:21:39,494 Mən 1 nömrəli vermək gedirəm. 430 00:21:39,494 --> 00:21:41,410 Bu, belə ki, bunu etmədi yenidən mənə isteyen var. 431 00:21:41,410 --> 00:21:42,147 >> Necə haqqında 2? 432 00:21:42,147 --> 00:21:43,021 3? 433 00:21:43,021 --> 00:21:43,520 50? 434 00:21:43,520 --> 00:21:44,740 o heç biri işləyir. 435 00:21:44,740 --> 00:21:46,890 Necə -50 haqqında? 436 00:21:46,890 --> 00:21:48,560 Və proqram iş görünür. 437 00:21:48,560 --> 00:21:49,970 >> mənə bir daha cəhd edək. 438 00:21:49,970 --> 00:21:53,400 Mənə -1 cəhd edək, iş görünür. 439 00:21:53,400 --> 00:21:56,380 Mənə -2 cəhd edək, iş görünür. 440 00:21:56,380 --> 00:21:59,640 Mənə 0 cəhd edək. 441 00:21:59,640 --> 00:22:01,684 Huh ki, düzgün deyil. 442 00:22:01,684 --> 00:22:03,350 İndi biz burada bir az xırdaçı olan edirik. 443 00:22:03,350 --> 00:22:07,090 Amma bu halda 0 ki, həqiqətən, var müsbət, nə də mənfi qiymətləndirilir. 444 00:22:07,090 --> 00:22:11,150 Və mənim proqram faktdır ki, 0 mənfi tam olduğunu söyləyən 445 00:22:11,150 --> 00:22:12,820 ki, texniki doğru deyil. 446 00:22:12,820 --> 00:22:15,180 >> İndi niyə bu edir? 447 00:22:15,180 --> 00:22:16,270 Bəli, bu, açıq-aydın ola bilər. 448 00:22:16,270 --> 00:22:18,110 Və həqiqətən, proqram kifayət qədər sadə üçün nəzərdə 449 00:22:18,110 --> 00:22:19,670 belə ki, biz araşdırmaq üçün bir şey var. 450 00:22:19,670 --> 00:22:25,870 >> Amma üçüncü ayıklama təqdim edək texnika burada debug50 çağırıb. 451 00:22:25,870 --> 00:22:27,750 Belə ki, bu bir proqramdır biz yalnız yaratdıq ki, 452 00:22:27,750 --> 00:22:30,770 Bu il deyilən debug50 ki, siz imkan verir 453 00:22:30,770 --> 00:22:34,130 daxili deyirlər nə istifadə CS50 IDE qrafik ayıklama. 454 00:22:34,130 --> 00:22:38,400 Və ayıklama yalnız bir proqramdır ki, ümumiyyətlə proqram run imkan verir 455 00:22:38,400 --> 00:22:44,050 lakin addım xətti ilə addım-addım xətti ilə xətti ilə, poking, duraklatarak 456 00:22:44,050 --> 00:22:47,626 ətrafında dəyişənlərin baxaraq ki, proqram yalnız siz keçmiş zərbə deyil 457 00:22:47,626 --> 00:22:49,750 və tez bir şey çap və ya bir şey çap. 458 00:22:49,750 --> 00:22:53,250 Bu, sizə imkan verir insan sürət, bu qarşılıqlı. 459 00:22:53,250 --> 00:22:55,470 >> Və bunu, siz sadəcə aşağıdakı. 460 00:22:55,470 --> 00:22:58,479 kodu tərtib sonra, Mən artıq idi, buggy3, 461 00:22:58,479 --> 00:23:00,020 Siz irəli getmək və debug50 ./buggy axır. 462 00:23:00,020 --> 00:23:03,460 463 00:23:03,460 --> 00:23:06,760 Belə ki, çox help50 run var kimi help50 və sonra komanda, 464 00:23:06,760 --> 00:23:10,120 debug50 siz debug50 run və sonra komanda adı. 465 00:23:10,120 --> 00:23:14,440 >> İndi mənim ekranda nə seyr, xüsusilə sağ tərəfində. 466 00:23:14,440 --> 00:23:19,400 Mən Run bütün hit zaman qəfil bu sağ panel 467 00:23:19,400 --> 00:23:20,419 ekranda açılır. 468 00:23:20,419 --> 00:23:22,210 Və gedən bir çox var ilk baxışdan da. 469 00:23:22,210 --> 00:23:25,110 Amma çox yoxdur hələ narahat çox. 470 00:23:25,110 --> 00:23:28,570 >> Bu mənə hər şeyi göstərir ki, mənim proqramı daxilində gedən 471 00:23:28,570 --> 00:23:31,130 İndi bu via düymələri top sonra up 472 00:23:31,130 --> 00:23:35,910 mənim kodu gezinmek üçün mənə imkan nəticədə addım-addım-addım. 473 00:23:35,910 --> 00:23:37,140 Amma hələ. 474 00:23:37,140 --> 00:23:38,060 nə edək. 475 00:23:38,060 --> 00:23:40,600 mənim terminal pəncərə At Mən n istenir olan alıram. 476 00:23:40,600 --> 00:23:44,560 Mən irəli getmək üçün gedirəm və -1 Bu dəfə və növü əməkdaşlıq edirik. 477 00:23:44,560 --> 00:23:48,770 Və olsa bir az cryptically -1 gözlənildiyi kimi mənfi tam edir. 478 00:23:48,770 --> 00:23:52,020 >> Və sonra uşaq ayrıldığı status 0 GDBserver mövcud. 479 00:23:52,020 --> 00:23:55,180 GDB, GNU Debugger, adı əsas proqram 480 00:23:55,180 --> 00:23:56,620 Bu ayıklama həyata keçirir. 481 00:23:56,620 --> 00:24:00,500 Lakin bütün bu, həqiqətən, ayıklama deməkdir mənim proqram çıxmaq çünki getdi 482 00:24:00,500 --> 00:24:01,710 və bütün yaxşı idi. 483 00:24:01,710 --> 00:24:06,020 Mən, həqiqətən, mənim proqram debug istəyirsinizsə, Mən preemptively debug50 demək lazımdır 484 00:24:06,020 --> 00:24:08,920 harada başlamaq istəyirəm Mənim kod vasitəsilə gücləndirməklə? 485 00:24:08,920 --> 00:24:11,750 >> Və bəlkə də ən sadə yolu Aşağıdakı kimi ki etmək. 486 00:24:11,750 --> 00:24:15,300 Mən artıq hover varsa Burada redaktoru nov, 487 00:24:15,300 --> 00:24:19,090 belə ki, həqiqətən yalnız burada kenar çubuğunda, line sayı sol, 488 00:24:19,090 --> 00:24:21,870 Mən yalnız basın fark etsəniz bir dəfə, mən bir az qırmızı dot qoydu. 489 00:24:21,870 --> 00:24:24,460 Və kiçik qırmızı dot, bir stop işarəsi kimi, hey, o deməkdir ki, 490 00:24:24,460 --> 00:24:29,430 debug50 mənim kodu fasilə icra orada mən bu proqram çalıştırdığınızda. 491 00:24:29,430 --> 00:24:30,260 >> Belə ki, nə edək. 492 00:24:30,260 --> 00:24:37,340 Mənə davam və mənim proqram run edək yenidən debug50 ./buggy3 ilə daxil edin. 493 00:24:37,340 --> 00:24:40,110 İndi, bildiriş, bir şey müxtəlif oldu. 494 00:24:40,110 --> 00:24:42,440 Mən istenir olan deyiləm hələ mənim terminal pəncərə 495 00:24:42,440 --> 00:24:45,430 bir şey üçün, çünki mən deyil Mənim proqramı hələ kazanılmış. 496 00:24:45,430 --> 00:24:47,950 line 8 Qeyd edək ki, İndi qeyd olunur, 497 00:24:47,950 --> 00:24:51,720 və bir az arrow da var sol kəlam, burada durduruldu. 498 00:24:51,720 --> 00:24:55,030 indeksi, xəttin Bu xətt 8, hələ icra olunmayıb. 499 00:24:55,030 --> 00:24:58,940 >> Mən baxmaq əgər, maraqlı nə var sağ tərəfində burada, 500 00:24:58,940 --> 00:25:03,530 i yerli olduğunu qeyd mənada yerli dəyişən, 501 00:25:03,530 --> 00:25:05,450 ki, cari funksiyası daxilində var. 502 00:25:05,450 --> 00:25:08,920 Və onun dəyəri, yəqin ismarıcları, və sort rahat 0. 503 00:25:08,920 --> 00:25:10,260 Amma 0 yazın etməyib. 504 00:25:10,260 --> 00:25:13,410 Yalnız olmaq olur onun hazırda default dəyəri. 505 00:25:13,410 --> 00:25:15,490 >> Mənə irəli getmək və indi bunu bildirin. 506 00:25:15,490 --> 00:25:18,680 Mənə davam və getmək edək burada top, mən 507 00:25:18,680 --> 00:25:20,970 irəli getmək üçün gedən və Bu ilk icon basın olan 508 00:25:20,970 --> 00:25:25,360 üzərində addım keçmək yoxdur deməkdir amma kodu bu xətti üzərində addım, 509 00:25:25,360 --> 00:25:27,770 yol boyunca onu həyata. 510 00:25:27,770 --> 00:25:30,710 >> İndi, qeyd mənim tez yalnız dəyişib. 511 00:25:30,710 --> 00:25:31,380 Niyə ki? 512 00:25:31,380 --> 00:25:33,639 Mən debug50 bildirib etdik, kodu bu xətt axır. 513 00:25:33,639 --> 00:25:34,930 kodu bu xətt nə edir? 514 00:25:34,930 --> 00:25:35,960 bir int mənə baxın. 515 00:25:35,960 --> 00:25:36,460 TAMAM. 516 00:25:36,460 --> 00:25:37,400 Mənə əməkdaşlıq edək. 517 00:25:37,400 --> 00:25:41,340 Mənə indi irəli getmək və -1 növü daxil edin edək. 518 00:25:41,340 --> 00:25:42,920 İndi nə dəyişdi görürsünüz. 519 00:25:42,920 --> 00:25:46,060 sağ tərəfində, Yerli dəyişən i 520 00:25:46,060 --> 00:25:48,200 olan -1 indi göstərilir. 521 00:25:48,200 --> 00:25:49,810 Və bu növü int hələ də var. 522 00:25:49,810 --> 00:25:53,102 >> Və bildiriş də mənim qondarma yığını zəng harada fasilə idi? 523 00:25:53,102 --> 00:25:54,810 Biz daha çox danışmaq lazımdır gələcəkdə bu. 524 00:25:54,810 --> 00:25:58,620 Amma zəng yığını yalnız istinad nə funksiyaları hərəkət hazırda. 525 00:25:58,620 --> 00:26:00,040 Hal-hazırda yalnız əsas var. 526 00:26:00,040 --> 00:26:03,590 Və indi yalnız yerli dəyişən 1 dəyərində i var. 527 00:26:03,590 --> 00:26:09,840 >> Mən nəhayət bu xətti üzərində addım zaman Burada sağ üst eyni icon ilə, 528 00:26:09,840 --> 00:26:11,410 -1 Mənfi tam deyil. 529 00:26:11,410 --> 00:26:13,580 İndi ki, buruq brace artıq duraklatarak oldu. 530 00:26:13,580 --> 00:26:14,740 nin onun şey edək. 531 00:26:14,740 --> 00:26:17,300 Hesab edirəm ki, xətti, və voiture üzərində addım. 532 00:26:17,300 --> 00:26:20,240 >> Belə ki, bütün dəhşətli , Maarifləndirici hələ 533 00:26:20,240 --> 00:26:23,550 lakin mənə fasilə imkan vermədi və məntiqi vasitəsilə düşünmək 534 00:26:23,550 --> 00:26:24,870 Bu proqram nə edir. 535 00:26:24,870 --> 00:26:26,890 Amma səhv hal deyildi. 536 00:26:26,890 --> 00:26:28,510 aşağıdakı Bunu yenidən edək. 537 00:26:28,510 --> 00:26:31,340 >> Hesab edirəm ki, breakpoint tərk gedirəm qırmızı dot uyğun 8. 538 00:26:31,340 --> 00:26:32,830 Mən debug50 təkrar gedirəm. 539 00:26:32,830 --> 00:26:34,400 Avtomatik olaraq burada durdurulmuş oldu. 540 00:26:34,400 --> 00:26:37,660 Amma bu dəfə yerinə bu xətti üzərində gücləndirməklə, 541 00:26:37,660 --> 00:26:42,290 Mənə həqiqətən daxilində gedək get_negative_int və anlamaq, 542 00:26:42,290 --> 00:26:45,530 niyə cari cavab olaraq 0 qəbul edir? 543 00:26:45,530 --> 00:26:47,990 >> Belə ki, əvəzinə üzərində addım tıklayarak. 544 00:26:47,990 --> 00:26:50,630 Mən irəli getmək üçün gedirəm və addım basın. 545 00:26:50,630 --> 00:26:54,030 Və line 8 olduğunu fark İndi birdən-birə indi qeyd 546 00:26:54,030 --> 00:26:56,900 line 17 olur. 547 00:26:56,900 --> 00:26:59,947 >> İndi, bu ayıklama ki, deyil xətləri 14 və 15 və 16 atlandı edib. 548 00:26:59,947 --> 00:27:01,780 Bu, yalnız bir şey yoxdur ki, orada göstərmək üçün. 549 00:27:01,780 --> 00:27:04,050 Bu yalnız dəyişənlərin elan olunur, və sonra söz var nə var 550 00:27:04,050 --> 00:27:05,390 və sonra açıq buruq brace. 551 00:27:05,390 --> 00:27:09,227 ki, yalnız funksional xətt şirəli, həqiqətən, burada bu, 17. 552 00:27:09,227 --> 00:27:11,060 biz sizin harada ki avtomatik durdurulmuş. 553 00:27:11,060 --> 00:27:13,870 >> Belə ki, printf ( "n.is:") ;, belə hələ baş verməyib. 554 00:27:13,870 --> 00:27:18,250 Belə ki, irəli getmək və gəl basın bildirin. 555 00:27:18,250 --> 00:27:20,326 İndi mənim tez, həqiqətən, dəyişib ( "n edir:"). 556 00:27:20,326 --> 00:27:22,450 İndi fikrində deyiləm, get_int daxil gücləndirməklə narahat, 557 00:27:22,450 --> 00:27:24,750 funksiyası idi, çünki Kitabxana CS50 tərəfindən. 558 00:27:24,750 --> 00:27:25,750 Bu ehtimalla doğru deyil. 559 00:27:25,750 --> 00:27:28,440 >> Mən irəli getmək üçün gedirəm və sort verilməsi ilə əməkdaşlıq 560 00:27:28,440 --> 00:27:30,590 bir int, lakin mənfi int. 561 00:27:30,590 --> 00:27:32,870 Mənə davam və 0 hit imkan. 562 00:27:32,870 --> 00:27:39,460 İndi burada olur Mən aşağı almaq zaman 21 sıralamaq? 563 00:27:39,460 --> 00:27:40,890 Mən bir daha iterated etdik. 564 00:27:40,890 --> 00:27:43,320 Hesab edirəm ki, loop yapışdırılmalıdır görünür deyil. 565 00:27:43,320 --> 00:27:45,990 Başqa sözlə, bu sarı bar ətrafında davam etməyib 566 00:27:45,990 --> 00:27:47,130 və ətrafında və ətrafında. 567 00:27:47,130 --> 00:27:48,340 >> İndi ki, niyə? 568 00:27:48,340 --> 00:27:49,920 Yaxşı, n, indi nə n? 569 00:27:49,920 --> 00:27:53,280 Mən yerli baxmaq olar ayıklama dəyişənlər. 570 00:27:53,280 --> 00:27:53,816 n 0. 571 00:27:53,816 --> 00:27:55,190 Bütün sağ, mənim vəziyyət nə idi? 572 00:27:55,190 --> 00:27:58,700 >> 20-- line 20 də ki, 0 0 daha böyükdür. 573 00:27:58,700 --> 00:27:59,500 Bu doğru deyil. 574 00:27:59,500 --> 00:28:01,020 0 0 daha böyükdür. 575 00:28:01,020 --> 00:28:02,820 Və mən bu çıxdı. 576 00:28:02,820 --> 00:28:06,370 >> Və belə ki, niyə xətt var 21 Mən, həqiqətən, davam, 577 00:28:06,370 --> 00:28:10,370 Mən hətta 0 qayıtmaq üçün gedirəm Mən 0 rədd olmalıdır baxmayaraq 578 00:28:10,370 --> 00:28:12,484 kimi həqiqətən mənfi olmayan. 579 00:28:12,484 --> 00:28:14,650 Belə ki, indi, mən, həqiqətən, belə deyil ayıklama qayğı. 580 00:28:14,650 --> 00:28:16,900 Bu, mən ehtiyac yoxdur Got gedir nə daha çox bilmək. 581 00:28:16,900 --> 00:28:19,233 >> Mən irəli getmək üçün gedirəm və Yalnız Play düyməsinə basın, 582 00:28:19,233 --> 00:28:20,240 və bu son up bildirin. 583 00:28:20,240 --> 00:28:23,440 İndi ki, həyata sonra mənim bug line 20 yəqin edir. 584 00:28:23,440 --> 00:28:25,160 Bu mənim məntiqi səhv var. 585 00:28:25,160 --> 00:28:28,100 >> Və mən istəyirəm bu dəyişdirmək üçün nə etmək? 586 00:28:28,100 --> 00:28:32,500 problem deyiləm ki, əgər 0 tutmaq, yalnız bir məntiqi səhv var. 587 00:28:32,500 --> 00:28:35,910 n isə deyə bilərəm və ya daha çox 0 bərabərdir, 588 00:28:35,910 --> 00:28:38,330 təkrar istifadəçi isteyen saxlamaq. 589 00:28:38,330 --> 00:28:41,050 >> Belə ki, daha sadə səhv, bəlkə Siz məni görəndə belə aydın 590 00:28:41,050 --> 00:28:42,410 yalnız bir neçə dəqiqə əvvəl yazın. 591 00:28:42,410 --> 00:28:44,570 Amma burada paket var debug 50 ilə, 592 00:28:44,570 --> 00:28:46,850 və ayıklama ilə proqram ümumiyyətlə, 593 00:28:46,850 --> 00:28:51,370 Bu yeni aşkar güc var baxmaq, öz kodu ilə gəzmək 594 00:28:51,370 --> 00:28:55,590 ki, sağ panel vasitəsilə nə Sizin dəyişənlərin dəyərlərdir. 595 00:28:55,590 --> 00:28:57,700 Belə ki, mütləq deyil bir şey istifadə etmək lazımdır 596 00:28:57,700 --> 00:29:00,630 kimi bu dəyərlər çap eprintf. 597 00:29:00,630 --> 00:29:04,430 Siz, həqiqətən, onlara görə bilərsiniz vizual ekran. 598 00:29:04,430 --> 00:29:08,920 >> İndi bu kənarda, bu, qeyd dəyər ki, başqa texnika var ki, 599 00:29:08,920 --> 00:29:09,890 həqiqətən super ümumi. 600 00:29:09,890 --> 00:29:13,120 Və niyə bu kiçik wonder bilər Burada oğlan səhnədə oturan edilmişdir. 601 00:29:13,120 --> 00:29:16,490 Belə ki, bu texnika, ümumiyyətlə, var rezin ördək ayıklama kimi tanınan, 602 00:29:16,490 --> 00:29:18,786 həqiqətən, yalnız bir deyil əslində vəsiyyət 603 00:29:18,786 --> 00:29:20,660 tez-tez proqramçılar kod yazılı, 604 00:29:20,660 --> 00:29:22,650 onlar mütləq deyilik başqaları ilə əməkdaşlıq, 605 00:29:22,650 --> 00:29:24,030 və ya paylaşılan mühitdə iş. 606 00:29:24,030 --> 00:29:25,050 >> Onlar evdə növ istəyirik. 607 00:29:25,050 --> 00:29:25,910 Bəlkə gecə gec. 608 00:29:25,910 --> 00:29:28,190 Onlar rəqəm çalışdığınız Onların kodu bəzi səhv edir. 609 00:29:28,190 --> 00:29:29,330 Onlar yalnız görən deyilik. 610 00:29:29,330 --> 00:29:30,329 >> Və heç bir roommate var. 611 00:29:30,329 --> 00:29:31,250 heç bir TF yoxdur. 612 00:29:31,250 --> 00:29:32,680 ətrafında CA yoxdur. 613 00:29:32,680 --> 00:29:36,440 onların n bütün Bu kiçik rezin aziz edir. 614 00:29:36,440 --> 00:29:39,030 >> Və rezin ördək ayıklama yalnız bu dəvət edir 615 00:29:39,030 --> 00:29:42,780 kimi silly şey hesab Bir real varlıq kimi bu 616 00:29:42,780 --> 00:29:46,940 və həqiqətən, sizin kod vasitəsilə gəzmək şifahi bu cansız obyekt üçün. 617 00:29:46,940 --> 00:29:49,230 Belə ki, məsələn, əgər Bu mənim nümunə burada 618 00:29:49,230 --> 00:29:52,470 ki, əvvəllər geri problem, bu idi 619 00:29:52,470 --> 00:29:58,140 Mən kodu bu ilk line silmək əgər, Mən irəli getmək və yenidən arabası 0 etmək, 620 00:29:58,140 --> 00:30:01,220 Mən bu idi ki, xatırlayıram Burada səhv messages. 621 00:30:01,220 --> 00:30:05,997 Belə ki, I baxmayaraq gülünc burada fikir, , Açıq bunu anda hiss 622 00:30:05,997 --> 00:30:06,580 ki, səhv edir. 623 00:30:06,580 --> 00:30:10,910 >> OK, belə ki, mənim problem var ki, dolayısı kitabxana funksiyası elan etdi. 624 00:30:10,910 --> 00:30:12,610 Və kitabxana funksiyası printf edir. 625 00:30:12,610 --> 00:30:15,290 OK Declare-- elan prototipləri xatırladır. 626 00:30:15,290 --> 00:30:18,930 >> Mən, həqiqətən, lazımdır deməkdir əvvəlcədən compiler demək nə 627 00:30:18,930 --> 00:30:19,980 funksiyası kimi görünür. 628 00:30:19,980 --> 00:30:20,930 Bir dəqiqə gözlə. 629 00:30:20,930 --> 00:30:23,580 Mən standart io.h. yox idi 630 00:30:23,580 --> 00:30:24,530 Çox sağ olun. 631 00:30:24,530 --> 00:30:27,330 >> Siz of-- Belə ki, yalnız bu proses əslində bir ördək üçün ehtiyac yoxdur. 632 00:30:27,330 --> 00:30:29,819 Amma gəzinti bu fikri Öz kod vasitəsilə özünüz 633 00:30:29,819 --> 00:30:31,610 belə ki, hətta eşitmək özünüzü, belə ki, 634 00:30:31,610 --> 00:30:35,620 Öz hərəkətsizliyi həyata çıxışında, ümumiyyətlə fikirdir. 635 00:30:35,620 --> 00:30:38,910 >> Və bəlkə də daha məntiqi, belə ki, bir, lakin daha çox cəlb ilə qədər 636 00:30:38,910 --> 00:30:44,220 misal biz yalnız arabası 3.C etdi Siz vasitəsilə özünüz gəzmək bilər 637 00:30:44,220 --> 00:30:45,310 göstərildiyi kimi. 638 00:30:45,310 --> 00:30:49,190 Belə ki, bütün sağ, rezin aziz, DDB, siz olacaq. 639 00:30:49,190 --> 00:30:52,350 Burada mənim əsas funksiyası var, Mən mənfi int almaq zəng edirəm. 640 00:30:52,350 --> 00:30:54,660 >> Mən qaytarılması dəyəri alıram. 641 00:30:54,660 --> 00:31:00,410 Mən sol tərəfində saxlanılması alıram dəyişən line 8 i çağırıb. 642 00:31:00,410 --> 00:31:02,380 OK, lakin gözləmək necə etdi ki, dəyəri almaq? 643 00:31:02,380 --> 00:31:04,130 Mənə line 12 funksiyası baxaq. 644 00:31:04,130 --> 00:31:05,760 >> line 12, biz mənfi int almaq lazımdır. 645 00:31:05,760 --> 00:31:08,190 Hər hansı bir giriş almaq deyil, OK, bir int qayıtmaq yoxdur. 646 00:31:08,190 --> 00:31:10,929 Mən line 14 dəyişən n bəyan. 647 00:31:10,929 --> 00:31:12,220 Bu tam saxlamaq olacaq. 648 00:31:12,220 --> 00:31:13,760 Mən istəyirəm nə. 649 00:31:13,760 --> 00:31:18,480 >> n imkan is-- isə belə aşağıdakıları Mənə fix Mən artıq nə geri. 650 00:31:18,480 --> 00:31:22,710 n daha çox isə So 0, OK, n çap. 651 00:31:22,710 --> 00:31:25,170 Və sonra int n saxlanılır almaq çağırırıq. 652 00:31:25,170 --> 00:31:30,160 n 0 onda yoxlamaq n deyilik orada deyil. 653 00:31:30,160 --> 00:31:31,910 Belə ki, daha, siz deyil faktiki ördək lazımdır. 654 00:31:31,910 --> 00:31:35,650 Amma özünüzü ilə gəzinti intellektual həyata kimi code 655 00:31:35,650 --> 00:31:37,720 tez-tez sizə kömək edəcək , Neler həyata 656 00:31:37,720 --> 00:31:41,170 yalnız bir şey bunu fərqli olaraq bu kimi ekranda ixtiyarınızdadır, 657 00:31:41,170 --> 00:31:43,720 və özünüz vasitəsilə söhbət deyil vicdanla deyil ki, 658 00:31:43,720 --> 00:31:46,270 təxminən effektiv texnika kimi. 659 00:31:46,270 --> 00:31:48,620 Belə ki, orada siz var ki, bir müxtəlif üsulları sayı 660 00:31:48,620 --> 00:31:52,102 həqiqətən kodu ayıklama üçün və günah tapmaq olan 661 00:31:52,102 --> 00:31:54,810 Sizin Toolbar alətləri olmalıdır Əgər gecə gec deyilik ki, 662 00:31:54,810 --> 00:31:57,660 xüsusilə, siz yemək etdiyiniz zalları, və ya ofis saat, 663 00:31:57,660 --> 00:32:00,368 qarşı baş tarpıltı divar, bir problemi həll etməyə çalışırıq. 664 00:32:00,368 --> 00:32:02,020 proqram tools var ki, həyata. 665 00:32:02,020 --> 00:32:03,720 rezin ördək alətlər var. 666 00:32:03,720 --> 00:32:09,630 Və bütün heyəti var bir tərəfdən, borc gözləyir dəstəkləyir. 667 00:32:09,630 --> 00:32:13,120 >> problem Belə ki, indi, bir söz dəstləri, və biz sizə ümid edirik nə 668 00:32:13,120 --> 00:32:15,620 Onlardan almaq və necə biz qiymətləndirən haqqında getmək. 669 00:32:15,620 --> 00:32:17,680 kurs proqramı Per, CS50 problem dəstləri 670 00:32:17,680 --> 00:32:22,320 Belə ki, dörd əsas baltalar qiymətləndirilir daxilində danışmaq, düzgün, dizayn, 671 00:32:22,320 --> 00:32:23,060 və stil. 672 00:32:23,060 --> 00:32:25,910 Və daxilində yalnız nə qədər aiddir parça off bitten var? 673 00:32:25,910 --> 00:32:28,080 Necə bir problem çox çalışmışıq? 674 00:32:28,080 --> 00:32:30,110 səy hansı səviyyədə Siz özünü var? 675 00:32:30,110 --> 00:32:35,750 >> Düzgün, kimi proqram çalışır Bu CS50 dəqiqləşdirilməsi üzrə ehtimal 676 00:32:35,750 --> 00:32:38,640 Siz müəyyən giriş təmin zaman və ya müəyyən nəticələr geri gəlir? 677 00:32:38,640 --> 00:32:41,130 Design onların əksəriyyəti subyektiv deyil. 678 00:32:41,130 --> 00:32:43,360 Və bir ki, edəcək öyrənmək üçün uzun almaq 679 00:32:43,360 --> 00:32:47,220 və uzun olan, dərs bu günə qədər sonunda aşağı kimi, 680 00:32:47,220 --> 00:32:49,530 Sizin code necə yazılır? 681 00:32:49,530 --> 00:32:52,920 >> Bu, sadəcə doğru çap bir şey var çıxış və ya sağ dəyərlər qayıtmaq. 682 00:32:52,920 --> 00:32:55,400 Amma kimi bunu səmərəli mümkün kimi? 683 00:32:55,400 --> 00:32:58,210 Siz bölmək edirlər və fəth, və ya ikili 684 00:32:58,210 --> 00:33:01,500 biz tezliklə etdik ki, görürsünüz kimi axtarış iki həftə əvvəl telefon kitab ilə? 685 00:33:01,500 --> 00:33:04,670 həll etmək üçün daha yaxşı yollar var Hal-hazırda burada daha problem? 686 00:33:04,670 --> 00:33:06,380 Bu daha yaxşı dizayn üçün bir imkan var. 687 00:33:06,380 --> 00:33:08,530 >> Və sonra necə style-- yaraşıqlı kodunuzu edir? 688 00:33:08,530 --> 00:33:12,370 Mən olduqca deyiləm ki, görəcəksiniz mənim kodu indenting haqqında xüsusi, 689 00:33:12,370 --> 00:33:15,300 və əmin mənim dəyişənlərin edilməsi əsaslı adlandırılır. n, 690 00:33:15,300 --> 00:33:19,660 qısa müddət, bir yaxşı ad sayı, bir hesablanması tam üçün i, 691 00:33:19,660 --> 00:33:20,727 bir simli üçün s. 692 00:33:20,727 --> 00:33:22,560 Və biz artıq ola bilər dəyişən adları stil. 693 00:33:22,560 --> 00:33:25,500 Style necə yaxşı Sizin indeksi görünür? 694 00:33:25,500 --> 00:33:26,600 Və necə oxunaqlı edir? 695 00:33:26,600 --> 00:33:29,650 >> Və zaman keçdikcə, nə Taş və TFS kurs edəcəyik 696 00:33:29,650 --> 00:33:31,870 ki, təmin edir keyfiyyətli rəy cür 697 00:33:31,870 --> 00:33:34,330 Daha yaxşı almaq ki, o müxtəlif aspektləri edir. 698 00:33:34,330 --> 00:33:37,510 Və biz necə baxımından Bu baltalar hər qiymətləndirmək 699 00:33:37,510 --> 00:33:40,080 Bu çox az ilə adətən var buketler sizə ki, ümumiyyətlə, 700 00:33:40,080 --> 00:33:41,680 Siz yapýyorsun necə bir mənada almaq. 701 00:33:41,680 --> 00:33:45,680 Və həqiqətən, bir hesab almaq əgər o axes-- düzgün dizayn hər hansı bir 702 00:33:45,680 --> 00:33:49,659 və stil especially-- ki sayı ümumiyyətlə 1 və 5 arasında olacaq. 703 00:33:49,659 --> 00:33:52,450 Və sözün siz alıyorsanız semestrin əvvəlində 3-nin, 704 00:33:52,450 --> 00:33:53,977 bu çox gözəl bir şey. 705 00:33:53,977 --> 00:33:55,810 Bu hələ var deməkdir yaxşılaşdırılması üçün otaq, 706 00:33:55,810 --> 00:33:58,490 Siz üçün ümid olan ilk dəfə bir sinif alaraq. 707 00:33:58,490 --> 00:34:01,820 tavan bəzi bit ümid var hansı siz nail olmaq istəyən edirik. 708 00:34:01,820 --> 00:34:03,970 Və 3 əldə erkən ədəd, 709 00:34:03,970 --> 00:34:06,550 əgər bir 2 və 4-nin, , Həqiqətən, yaxşı bir şey deyil. 710 00:34:06,550 --> 00:34:08,880 Bu, yaxşı daxilində var yaxşı gözləntiləri ərzində. 711 00:34:08,880 --> 00:34:11,421 >> mind yarış əgər gözləyin Bir dəqiqə, üç beş həyata. 712 00:34:11,421 --> 00:34:12,620 Bu, həqiqətən 10 6 həyata var. 713 00:34:12,620 --> 00:34:13,560 60% var. 714 00:34:13,560 --> 00:34:14,830 Bir F. var Allahım, 715 00:34:14,830 --> 00:34:15,870 >> Bu deyil. 716 00:34:15,870 --> 00:34:17,600 Bu, əslində, deyil. 717 00:34:17,600 --> 00:34:22,710 Əksinə, onu yaxşılaşdırmaq üçün bir fürsət var dövr ərzində. 718 00:34:22,710 --> 00:34:25,580 Və bəzi alıyorsanız Poors, bu imkanı var 719 00:34:25,580 --> 00:34:29,199 ofis saat istifadə etmək üçün, əlbəttə bölmələr və digər resursları. 720 00:34:29,199 --> 00:34:32,840 >> Best, həqiqətən, bir fürsətdir Siz var yalnız nə qədər fəxr 721 00:34:32,840 --> 00:34:34,520 dövr ərzində gəlir. 722 00:34:34,520 --> 00:34:38,199 Belə ki, həyata yoxdur, bir şey varsa, başqa, üç yaxşıdır. 723 00:34:38,199 --> 00:34:40,179 Və zamanla inkişaf üçün otaq imkan verir. 724 00:34:40,179 --> 00:34:43,090 >> o baltalar necə kimi ölçülmüş, real sen 725 00:34:43,090 --> 00:34:46,745 almaq üçün çox vaxt sərf etmək niyyətindədir iş şeyi doğru tək bildirin. 726 00:34:46,745 --> 00:34:49,120 Və düzgün çalışır kimi, ən ağırlıqlı ola 727 00:34:49,120 --> 00:34:51,360 üç bu multiplikativ amil. 728 00:34:51,360 --> 00:34:54,659 Design də vacibdir, lakin Siz mütləq deyil ki, bir şey 729 00:34:54,659 --> 00:34:58,220 o saat bütün sərf hər şeyi yalnız iş almaq üçün çalışırıq. 730 00:34:58,220 --> 00:35:00,019 >> Və belə ölçülmüş var daha yüngül bir az. 731 00:35:00,019 --> 00:35:01,560 Və sonra style azı ağırlıqlı. 732 00:35:01,560 --> 00:35:03,710 Hətta az olsa əsaslı əhəmiyyətli, 733 00:35:03,710 --> 00:35:05,990 Bu yalnız, bəlkə də, asan şey, sağ etmək 734 00:35:05,990 --> 00:35:08,440 nümunələr biz imitasiya mühazirə və bölməsində etmək, 735 00:35:08,440 --> 00:35:11,080 gözəl şeyi indented və şərh, 736 00:35:11,080 --> 00:35:14,320 və s asan arasında şeyi və sağ olsun. 737 00:35:14,320 --> 00:35:16,960 kimi Belə ki, həyata o xal var ki, 738 00:35:16,960 --> 00:35:19,000 ki, tutmaq üçün nisbətən asandır. 739 00:35:19,000 --> 00:35:22,360 >> İndi bir sözü akademik dürüstlük şeylərdir. 740 00:35:22,360 --> 00:35:25,150 Əlbəttə başına So proqramı, görəcəksiniz 741 00:35:25,150 --> 00:35:27,630 Əlbəttə ki, bir Bu ətrafında dili bit. 742 00:35:27,630 --> 00:35:31,380 Və əlbəttə məsələ edir olduqca ciddi akademik dürüstlük. 743 00:35:31,380 --> 00:35:33,450 >> Biz ayrı-seçkilik var, yaxşı və ya pis üçün, 744 00:35:33,450 --> 00:35:36,570 yolladığını hər il daha intizam üçün tələbələr 745 00:35:36,570 --> 00:35:39,670 ən hər hansı başqa Əlbəttə, mən bilirəm ki,. 746 00:35:39,670 --> 00:35:42,580 Bu mütləq deyil Əslində göstəricisi 747 00:35:42,580 --> 00:35:46,340 CS tələbələr, ya CS50 tələbələr, ki bir az sinif yoldaşları daha vicdanlı. 748 00:35:46,340 --> 00:35:49,090 Amma reallıq ki, bu dünya, elektron, biz yalnız 749 00:35:49,090 --> 00:35:50,990 texnoloji var Bu aşkar deməkdir. 750 00:35:50,990 --> 00:35:53,360 >> Bu, bizim üçün vacibdir sinif daxilində ədalət 751 00:35:53,360 --> 00:35:58,550 biz bu aşkar və qaldırmaq məsələ biz şeyləri görəndə. 752 00:35:58,550 --> 00:36:01,980 Və yalnız bir şəkil çəkmək və həqiqətən Bu sink kimi bir şey kömək etmək üçün, 753 00:36:01,980 --> 00:36:04,600 bu nömrələr Son 10 il ərzində tələbələr 754 00:36:04,600 --> 00:36:07,610 bəzi cəlb edilmişdir ki, akademik dürüstlük belə məsələləri, 755 00:36:07,610 --> 00:36:10,990 bəzi 32 tələbələri ilə payız 2015-dən olan 756 00:36:10,990 --> 00:36:13,760 alırıq ki, demək deyil məsələ çox ciddi. 757 00:36:13,760 --> 00:36:18,380 Və nəticədə, bu nömrələri bəstələmək, ən son, 3%, 4% və ya 758 00:36:18,380 --> 00:36:19,120 sinif. 759 00:36:19,120 --> 00:36:25,220 >> tələbə super əksəriyyəti üçün So Bu xətləri aydın görünür. 760 00:36:25,220 --> 00:36:27,940 Amma bu saxlamaq yoxdur xüsusilə gec, ağla 761 00:36:27,940 --> 00:36:32,080 gecə ilə mübarizə zaman Bir problem set bəzi həll 762 00:36:32,080 --> 00:36:34,830 mexanizmlər var ki, özünüzü daha yaxşı almaq üçün 763 00:36:34,830 --> 00:36:37,870 Siz daha dəstəkləyə bilər belə ki, saat, düşünürəm. 764 00:36:37,870 --> 00:36:40,514 biz qəbul etdiyiniz zaman bilirik tələbə təqdim, biz keçmək 765 00:36:40,514 --> 00:36:43,430 Bu il hər təqdim müqayisə hər təqdim ötən ilin, 766 00:36:43,430 --> 00:36:47,590 2007-ci ildən hər təqdim qarşı və eləcə də baxaraq, çünki 767 00:36:47,590 --> 00:36:49,931 indeksi, online ambarları Forum, iş sites. 768 00:36:49,931 --> 00:36:51,806 Və biz bu qeyd, həqiqətən naminə, bütün 769 00:36:51,806 --> 00:36:56,040 tam açıqlanması, əgər başqası, online tapa bilərsiniz 770 00:36:56,040 --> 00:36:57,880 əlbəttə, belə ki, biz əlbəttə bilərsiniz. 771 00:36:57,880 --> 00:37:00,100 Lakin, həqiqətən, ruh Əlbəttə sonunda aşağı bir 772 00:37:00,100 --> 00:37:01,650 proqramı bu bənddə. 773 00:37:01,650 --> 00:37:03,670 Bu, həqiqətən, yalnız ağlabatan olun. 774 00:37:03,670 --> 00:37:06,680 >> Biz əgər ki hazırlanması yalnız bir az daha dil ilə, 775 00:37:06,680 --> 00:37:09,770 həyata ki, bütün mahiyyəti Bu kurs təqdim iş 776 00:37:09,770 --> 00:37:10,954 Öz olmalıdır. 777 00:37:10,954 --> 00:37:13,870 Amma ərzində əlbəttə var imkanları, və təşviqi, 778 00:37:13,870 --> 00:37:17,300 dönüş və pedaqoji dəyər özümü others--, TFS, CAS, 779 00:37:17,300 --> 00:37:20,760 sinif Tas, və s dəstək, tək dostlar 780 00:37:20,760 --> 00:37:23,547 və roommates tədqiq edən əvvəl CS və proqramlaşdırma. 781 00:37:23,547 --> 00:37:25,130 Və belə ki, bir ehtiyat var. 782 00:37:25,130 --> 00:37:28,180 Və thumb ümumi qayda kömək şeylərdir xahiş zaman, 783 00:37:28,180 --> 00:37:31,470 Əgər başqaları üçün kod göstərə bilər, lakin onların keçirmək bilər. 784 00:37:31,470 --> 00:37:34,880 Belə ki, ofis saat etdiyiniz hətta əgər, və ya D zalında, və ya başqa yerdə olan 785 00:37:34,880 --> 00:37:37,450 bəzi parça set iş, bir dost, yanaşı iş olan 786 00:37:37,450 --> 00:37:40,160 at, tamamilə gözəl gün iş sonunda 787 00:37:40,160 --> 00:37:43,034 nəticədə hər məxsusdur Siz müvafiq olaraq, və 788 00:37:43,034 --> 00:37:45,700 bir səy ola son layihə olduğu üçün istisna olmaqla, 789 00:37:45,700 --> 00:37:47,410 Bu icazə və təşviq edir. 790 00:37:47,410 --> 00:37:49,830 >> əgər ki, həyata bir şey ilə mübarizə 791 00:37:49,830 --> 00:37:52,520 və sizin dost yalnız baş verir onda bu daha yaxşı olmaq üçün, 792 00:37:52,520 --> 00:37:55,130 və ya daha ki, problem daha yaxşı, və ya uzaq irəlidə sizin bir az, 793 00:37:55,130 --> 00:37:57,330 onu açmaq üçün tamamilə ağlabatan deyil və sizin dost üçün, hey, demək 794 00:37:57,330 --> 00:38:00,480 Burada mənim kodu baxaraq ağla yoxdur, mənim məsələ nə spot köməkçi? 795 00:38:00,480 --> 00:38:03,760 Və ümid edirəm ki, in pedaqoji dəyər maraq 796 00:38:03,760 --> 00:38:07,040 ki, dost yalnız deyil , Oh, bunu, demək, əksinə 797 00:38:07,040 --> 00:38:09,917 nə xəttində itkin 6, və ya kimi bir şey? 798 00:38:09,917 --> 00:38:12,000 Amma həlli deyil yanında dost 799 00:38:12,000 --> 00:38:15,617 oh, yaxşı, burada mənə çəkmək edək demək bu qədər, və mənim həll göstərir. 800 00:38:15,617 --> 00:38:16,450 Belə ki, xəttidir. 801 00:38:16,450 --> 00:38:18,670 Siz kodu göstərmək başqaları, ancaq bilməz 802 00:38:18,670 --> 00:38:22,350 Digər mövzu onların keçirmək Kursun proqramı məhdudiyyətlər. 803 00:38:22,350 --> 00:38:24,760 >> Belə ki, nəzərə bu saxlamaq yoxdur təəssüf bənddə deyilən 804 00:38:24,760 --> 00:38:27,560 həmçinin kurs proqramı, ki, bəzi aktı törətmək əgər 805 00:38:27,560 --> 00:38:30,476 ağlabatan deyil, onu gətirmək Kursun rəhbərlərinin nəzərinə 806 00:38:30,476 --> 00:38:34,240 72 saat ərzində, əlbəttə yerli sanksiyalar tətbiq edə bilər ki, 807 00:38:34,240 --> 00:38:37,380 qeyri-qənaətbəxş daxil ola bilər və ya təqdim iş üçün uğursuz grade. 808 00:38:37,380 --> 00:38:41,410 Amma əlbəttə müraciət edəcək daha intizam üçün fərqi, 809 00:38:41,410 --> 00:38:43,010 təkrar aktlarının hallar istisna olmaqla. 810 00:38:43,010 --> 00:38:46,632 Başqa sözlə, əgər bəzi etmək axmaq, xüsusilə gecə, qərar 811 00:38:46,632 --> 00:38:49,340 ki, növbəti səhər və ya iki gün sonra siz ayılmaq və həyata, 812 00:38:49,340 --> 00:38:50,870 Mən nə düşünür? 813 00:38:50,870 --> 00:38:53,890 Siz çıxış var CS50 nə ki, problem təyinat üçün 814 00:38:53,890 --> 00:38:57,170 və ki, bu qədər malik biz ortasında görüşmək və məşğul olacaq 815 00:38:57,170 --> 00:39:01,500 həm də bu məsələ ilə təhsil və sizin üçün qiymətli, 816 00:39:01,500 --> 00:39:04,200 lakin bir şəkildə hələ cəza. 817 00:39:04,200 --> 00:39:08,590 İndi, bu kənar çıxarmaq. 818 00:39:08,590 --> 00:39:10,570 >> [Video playback] 819 00:39:10,570 --> 00:39:13,540 >> [MUSIC PLAYING] 820 00:39:13,540 --> 00:39:58,090 821 00:39:58,090 --> 00:39:58,866 >> [END playback] 822 00:39:58,866 --> 00:40:00,490 DAVID J. MALAN: Bütün sağ, biz geri. 823 00:40:00,490 --> 00:40:03,680 İndi biz bir baxmaq bizim real dünya domenlərin ilk 824 00:40:03,680 --> 00:40:08,720 CS50, Kriptoqrafiya incəsənət, göndərilməsi və qəbul incəsənət 825 00:40:08,720 --> 00:40:11,840 gizli mesajlar, şifrelenmiş messages Siz, 826 00:40:11,840 --> 00:40:17,060 siz ki, əgər yalnız deşifr edilə bilər göndərən var ki, bəzi əsas tərkib hissəsi 827 00:40:17,060 --> 00:40:18,030 həmçinin. 828 00:40:18,030 --> 00:40:22,120 biz almaq lazımdır Belə ki, bu motivasiya a, burada bu şey baxmaq 829 00:40:22,120 --> 00:40:26,750 olan bir nümunəsidir gizli decoder ring ki, 830 00:40:26,750 --> 00:40:34,042 anlamaq üçün istifadə edilə bilər gizli mesaj əslində nə. 831 00:40:34,042 --> 00:40:35,750 Əslində, geri Bu sinif məktəb gün 832 00:40:35,750 --> 00:40:38,787 Əgər gizli mesaj göndərdi əgər bir dost və ya sinif bir sökməyin, 833 00:40:38,787 --> 00:40:40,620 Siz fikir ola bilər Siz ağıllı olan edildi 834 00:40:40,620 --> 00:40:46,530 kağız dəyişən sizin parça ilə, kimi A B və B C və C D, 835 00:40:46,530 --> 00:40:47,590 və sairə. 836 00:40:47,590 --> 00:40:50,300 Amma həqiqətən Şifreleme edildi informasiya, hətta 837 00:40:50,300 --> 00:40:53,300 bir az mənasız idi, yox idi ağır müəllim həyata keçirmək üçün, 838 00:40:53,300 --> 00:40:55,675 yaxşı, yalnız dəyişdirmək əgər A və C B B, 839 00:40:55,675 --> 00:40:57,550 Siz, həqiqətən, anlamaq mesaj nə idi, 840 00:40:57,550 --> 00:40:59,700 ancaq məlumat ciphering idi. 841 00:40:59,700 --> 00:41:03,420 >> Siz yalnız bunu sadəcə, çox Ralphie kimi burada 842 00:41:03,420 --> 00:41:07,934 oynayan məşhur film olduqca çox ad nauseum hər qış. 843 00:41:07,934 --> 00:41:08,600 [Video playback] 844 00:41:08,600 --> 00:41:11,180 ki, bütün məlum olun Ralph Parker bununla deyil 845 00:41:11,180 --> 00:41:14,070 Little üzvü təyin Yetim Annie Secret Circle 846 00:41:14,070 --> 00:41:17,700 bütün fərqlənmə hüququna malikdir və faydaları ona baş. 847 00:41:17,700 --> 00:41:24,340 >> Imzalanmışdır, Little Yetim Annie, əks-imzalanmış mürəkkəblə, Pierre Andre. 848 00:41:24,340 --> 00:41:27,160 Onur və faydaları, Artıq doqquz yaşında. 849 00:41:27,160 --> 00:41:30,490 850 00:41:30,490 --> 00:41:31,825 >> [Qışqırır] 851 00:41:31,825 --> 00:41:33,750 852 00:41:33,750 --> 00:41:34,250 on-gəlir. 853 00:41:34,250 --> 00:41:35,210 Bunun ilə əldə edək. 854 00:41:35,210 --> 00:41:39,530 Mən bütün caz ehtiyac yoxdur kaçakçılarına və quldurları haqqında. 855 00:41:39,530 --> 00:41:41,660 >> Üçün sabah gecə dinlə yekun macəra 856 00:41:41,660 --> 00:41:43,880 qara pirat gəmi. 857 00:41:43,880 --> 00:41:46,650 İndi bunun üçün vaxt Annie gizli mesaj 858 00:41:46,650 --> 00:41:49,840 Secret Circle siz üzvləri üçün. 859 00:41:49,840 --> 00:41:53,570 , Uşaq yalnız üzvləri saxla Annie Secret Circle 860 00:41:53,570 --> 00:41:56,140 Annie gizli mesaj deşifre bilər. 861 00:41:56,140 --> 00:42:00,340 >> Unutmayın, Annie siz asılı olaraq. 862 00:42:00,340 --> 00:42:02,880 B2 üçün sancaqlar seçin. 863 00:42:02,880 --> 00:42:05,230 Burada mesaj. 864 00:42:05,230 --> 00:42:06,090 12, 11-- 865 00:42:06,090 --> 00:42:10,250 >> -Mən, Mənim ilk gizli görüş edirəm. 866 00:42:10,250 --> 00:42:13,890 >> -14, 11, 18, 16. 867 00:42:13,890 --> 00:42:15,780 >> -Pierre Böyük səs gecə idi. 868 00:42:15,780 --> 00:42:19,000 Hesab edirəm ki, axşam deyə bilər Mesaj həqiqətən əhəmiyyətli idi. 869 00:42:19,000 --> 00:42:22,694 >> -3, 25, bir mesaj var Annie özü edir. 870 00:42:22,694 --> 00:42:23,860 hər kəs demək deyil, unutmayın. 871 00:42:23,860 --> 00:42:28,760 872 00:42:28,760 --> 00:42:32,930 >> -90 Saniyə sonra, mən yalnız deyiləm evdə otaq olduğu doqquz bir oğlan 873 00:42:32,930 --> 00:42:37,040 gizlilik və deşifre oturmaq bilər. 874 00:42:37,040 --> 00:42:39,730 Aha, B! 875 00:42:39,730 --> 00:42:42,360 Mən növbəti, E. getdi 876 00:42:42,360 --> 00:42:44,520 >> ilk söz ola bilərsiniz. 877 00:42:44,520 --> 00:42:49,032 S, indi daha asan gəlirdi, U, 25-- 878 00:42:49,032 --> 00:42:51,733 >> -Oh, Mən getmək gerek, Ralphie gəlib! 879 00:42:51,733 --> 00:42:53,688 >> sağ aşağı ola bəsimdi, Ma! 880 00:42:53,688 --> 00:42:54,188 Gee Whiz! 881 00:42:54,188 --> 00:42:58,116 882 00:42:58,116 --> 00:43:04,060 >> -T, O, nə əmin olun to-- əmin ola bilərmi? 883 00:43:04,060 --> 00:43:05,970 Little Yetim nə idi Annie demək çalışır? 884 00:43:05,970 --> 00:43:07,264 nə əmin olun? 885 00:43:07,264 --> 00:43:09,634 >> -Ralphie, Andy üçün var , Siz çıxmaq edin getmək? 886 00:43:09,634 --> 00:43:10,480 >> -Bütün Sağ, Ma! 887 00:43:10,480 --> 00:43:12,880 Mən doğru olacaq! 888 00:43:12,880 --> 00:43:14,550 >> -Mən Yaxın artıq əldə edilib. 889 00:43:14,550 --> 00:43:16,620 gərginlik dəhşətli idi. 890 00:43:16,620 --> 00:43:17,720 Bu nə idi? 891 00:43:17,720 --> 00:43:20,170 Planetin taleyi balansında asmaq bilər. 892 00:43:20,170 --> 00:43:20,670 >> -Ralphie! 893 00:43:20,670 --> 00:43:23,170 Andy Gotta Go! 894 00:43:23,170 --> 00:43:26,890 >> yüksək səslə ağlayan üçün, doğru olmaq bəsimdi! 895 00:43:26,890 --> 00:43:32,680 >> orada -Demək olar ki, mənim barmaqlarını, fikrimi uçdu bir polad tələ idi, hər pore vibrasiyaya. 896 00:43:32,680 --> 00:43:37,198 Bu Bəli, bəli, bəli, demək olar ki, aydın idi. 897 00:43:37,198 --> 00:43:43,091 >> Sizin Ovaltine içmək üçün əmin olun. 898 00:43:43,091 --> 00:43:43,590 Ovaltine? 899 00:43:43,590 --> 00:43:48,160 900 00:43:48,160 --> 00:43:49,430 A crummy kommersiya? 901 00:43:49,430 --> 00:43:53,046 902 00:43:53,046 --> 00:43:54,227 şərəfsiz. 903 00:43:54,227 --> 00:43:54,810 [END playback] 904 00:43:54,810 --> 00:43:57,390 DAVID J. MALAN: OK, belə ki, ki, çox uzun bir yol idi 905 00:43:57,390 --> 00:44:00,660 Kriptoqrafiya tətbiqi, həmçinin Ovaltine. 906 00:44:00,660 --> 00:44:04,470 Əslində, bu köhnə reklam olan Burada niyə Ovaltine belə yaxşı? 907 00:44:04,470 --> 00:44:09,470 Bu yetişmiş bir qatılaşdırılmış hasilatı deyil arpa səməni, təmiz kremli inək südü, 908 00:44:09,470 --> 00:44:14,360 və xüsusi birlikdə kakao hazırlanmış təbii phosphatides və vitaminlər. 909 00:44:14,360 --> 00:44:18,240 O, daha sonra ilə möhkəmləndirilib olunur əlavə vitamin B və D, yum. 910 00:44:18,240 --> 00:44:21,600 Və hələ, yəqin, onu əldə edə bilərsiniz Amazon, biz burada etdi. 911 00:44:21,600 --> 00:44:24,810 >> Amma motivasiya burada idi Xüsusilə, Kriptoqrafiya təqdim 912 00:44:24,810 --> 00:44:28,340 məlum Kriptoqrafiya növü gizli əsas Kriptoqrafiya kimi. 913 00:44:28,340 --> 00:44:34,284 Və adı, bütün təklif kimi gizli açar kripto sisteminin təhlükəsizlik, 914 00:44:34,284 --> 00:44:36,200 Bir metodologiya siz əgər yalnız Scrambling üçün 915 00:44:36,200 --> 00:44:40,960 iki adam arasında informasiya ki, yalnız göndərən və yalnız alıcı 916 00:44:40,960 --> 00:44:46,980 gizli əsas olan bəzi dəyəri bilirik, bəzi gizli söz, bəzi gizli nömrə ki, 917 00:44:46,980 --> 00:44:50,660 həm şifrelemek imkan verir və məlumat decrypt. 918 00:44:50,660 --> 00:44:53,470 Və Kriptoqrafiya, həqiqətən, yalnız bu həftə 0 edir. 919 00:44:53,470 --> 00:44:56,715 >> Bu giriş var bir problem var İngilis faktiki mesajı kimi 920 00:44:56,715 --> 00:44:59,340 və ya hər hansı dil ki, sinif kimsə göndərmək istədiyiniz 921 00:44:59,340 --> 00:45:00,580 və ya İnternet vasitəsilə. 922 00:45:00,580 --> 00:45:03,840 gedir, bəzi çıxış var Pişmiş mesaj olmaq ki, 923 00:45:03,840 --> 00:45:05,250 Alıcı almaq istəyirəm. 924 00:45:05,250 --> 00:45:07,405 Və hətta əgər kimsə orta, çox qəbul 925 00:45:07,405 --> 00:45:09,780 Siz onları istəmirəm mütləq decrypt edə bilər, 926 00:45:09,780 --> 00:45:12,840 Bu daxili çünki black box, və ya alqoritm, 927 00:45:12,840 --> 00:45:17,650 bir mexanizm addım bəzi addımdır ki daxil görülməsi üçün təlimat, 928 00:45:17,650 --> 00:45:20,710 və onu konvertasiya inşallah təhlükəsiz şəkildə çıxış. 929 00:45:20,710 --> 00:45:23,640 >> Və əslində, orada bəzi bu dünyada söz kimi edir. 930 00:45:23,640 --> 00:45:26,100 Plain text sözü var kompüter alim olardı 931 00:45:26,100 --> 00:45:28,449 giriş təsvir etmək üçün istifadə İngilis kimi mesaj, 932 00:45:28,449 --> 00:45:31,240 və ya hər hansı faktiki dili bəzi digər insan göndərmək istəyirəm. 933 00:45:31,240 --> 00:45:35,450 Və sonra ciphertext scramble deyil enciphered və ya şifreli, 934 00:45:35,450 --> 00:45:36,520 onun versiyası. 935 00:45:36,520 --> 00:45:38,750 >> Amma burada başqa bir tərkib hissəsi var. 936 00:45:38,750 --> 00:45:43,200 başqa bir giriş üçün var gizli əsas Kriptoqrafiya. 937 00:45:43,200 --> 00:45:45,200 Və əsas özü, ki, ümumiyyətlə, var 938 00:45:45,200 --> 00:45:48,930 biz görəcəksiniz kimi, bir sıra və ya məktub, ya söz, nə 939 00:45:48,930 --> 00:45:51,980 əslində alqoritm gözləyir. 940 00:45:51,980 --> 00:45:53,870 >> Və necə məlumat decrypt edirsiniz? 941 00:45:53,870 --> 00:45:55,110 Necə unscramble edirsiniz? 942 00:45:55,110 --> 00:45:57,950 Yaxşı, yalnız geri nəticələr və giriş. 943 00:45:57,950 --> 00:46:00,900 >> Başqa sözlə, kimsə dəfə şifrelenmiş mesaj alır 944 00:46:00,900 --> 00:46:03,740 o sadəcə var eyni əsas bilmək. 945 00:46:03,740 --> 00:46:05,700 Onlar ciphertext aldıq. 946 00:46:05,700 --> 00:46:09,530 Və bu iki sayede ilə kripto sistemi giriş, 947 00:46:09,530 --> 00:46:14,260 alqoritm, bu qara qutu, Orijinal düz metin gəlməlidir. 948 00:46:14,260 --> 00:46:17,830 Və belə ki, çox yüksək səviyyədə var Kriptoqrafiya həqiqətən nə görünüşü 949 00:46:17,830 --> 00:46:18,590 bütün haqqında. 950 00:46:18,590 --> 00:46:20,030 >> Belə ki, orada almaq imkan verir. 951 00:46:20,030 --> 00:46:22,700 Indi altında baxaq bir şey başlıq 952 00:46:22,700 --> 00:46:26,000 üçün verilən biz qəbul etdik Keçdiyimiz həftə və bu sessiya 953 00:46:26,000 --> 00:46:27,629 simli burada. 954 00:46:27,629 --> 00:46:30,295 Günün sonunda string simvol yalnız bir ardıcıllıqla deyil. 955 00:46:30,295 --> 00:46:33,610 >> Bu salam dünya, və ya ola bilər salam Zamyla, və ya hər hansı. 956 00:46:33,610 --> 00:46:37,050 Amma nə deməkdir simvol bir ardıcıllıqla ola bilərmi? 957 00:46:37,050 --> 00:46:41,520 Əslində, CS50 kitabxana verir Bizə string adlı data növü. 958 00:46:41,520 --> 00:46:45,140 >> Amma heç həqiqətən var C. bir string kimi şey 959 00:46:45,140 --> 00:46:49,450 Bu, həqiqətən yalnız bir ardıcıllıqla deyil xarakter, xarakter, xarakter, 960 00:46:49,450 --> 00:46:52,180 xarakteri, geri, üçün, geri geri daxilində geri, geri 961 00:46:52,180 --> 00:46:54,650 kompüter yaddaş, və ya RAM. 962 00:46:54,650 --> 00:46:58,940 Biz ki, daxil dərin baxmaq lazımdır gələcək biz yaddaş özü baxdığınızda 963 00:46:58,940 --> 00:47:02,030 istifadə və və cəlb olunur təhlükələr. 964 00:47:02,030 --> 00:47:04,100 >> Amma string Zamyla hesab edək. 965 00:47:04,100 --> 00:47:07,480 Belə ki, yalnız adı Burada insan, Zamyla, 966 00:47:07,480 --> 00:47:12,030 ki, bir ardıcıllıqla deyil simvol, Z-A-M-Y-L-A. 967 00:47:12,030 --> 00:47:16,020 İndi güman edək ki, ZAMYLA adı kompüter daxilində saxlanılır olunur 968 00:47:16,020 --> 00:47:16,880 proqram. 969 00:47:16,880 --> 00:47:20,830 >> Bəli, biz olmalıdır ki, səbəb dayanır bu simvol baxmaq edə 970 00:47:20,830 --> 00:47:21,590 fərdi. 971 00:47:21,590 --> 00:47:24,710 Mən yalnız bir az çəkmək üçün gedirəm Burada Zamyla adı ətrafında qutusu. 972 00:47:24,710 --> 00:47:31,580 Və C olduğu zaman ki, bəlkə Zamyla-- və kimi, simli var 973 00:47:31,580 --> 00:47:34,940 ki, simli geri gəldi get string kimi bir funksiyası, 974 00:47:34,940 --> 00:47:38,540 Siz, həqiqətən, manipulyasiya edə bilər xarakteri ilə xarakter. 975 00:47:38,540 --> 00:47:42,070 >> İndi bu ilgili deyil söhbət əl, çünki 976 00:47:42,070 --> 00:47:46,420 Kriptoqrafiya dəyişmək istəyirsinizsə D A B və B C və C, 977 00:47:46,420 --> 00:47:49,650 və s, siz lazımdır fərdi simvol baxmaq 978 00:47:49,650 --> 00:47:50,190 simli. 979 00:47:50,190 --> 00:47:52,695 Siz dəyişdirmək lazımdır başqa bir şey, A Z 980 00:47:52,695 --> 00:47:55,280 başqa bir şey, M başqa, və s bir şey. 981 00:47:55,280 --> 00:47:58,000 Və belə ki, biz bir yol lazımdır, program, belə ki, 982 00:47:58,000 --> 00:48:03,020 C danışmaq dəyişdirmək etmək və fərdi məktublar baxmaq. 983 00:48:03,020 --> 00:48:05,690 aşağıdakı Və biz bunu edə bilərsiniz. 984 00:48:05,690 --> 00:48:08,340 >> Mənə geri CS50 IDE baş gedək. 985 00:48:08,340 --> 00:48:11,130 Və mənə irəli gedək və yeni bir fayl yaratmaq 986 00:48:11,130 --> 00:48:16,134 Mən bu dəfə string0 zəng lazımdır ki, ilk misal kimi, c nöqtə. 987 00:48:16,134 --> 00:48:18,300 Mən irəli getmək üçün gedirəm aşağıdakı kimi və qızışdırmaq. 988 00:48:18,300 --> 00:48:22,870 >> Belə ki cs50.h daxildir, və sonra standart io.h daxildir, 989 00:48:22,870 --> 00:48:25,990 Mən demək olar ki, həmişə gedirəm ən azı, mənim proqramları istifadə etmək 990 00:48:25,990 --> 00:48:26,780 ilkin. 991 00:48:26,780 --> 00:48:32,180 əsas etibarsız int və sonra burada Ben strings edəcəyimiz string almaq olur. 992 00:48:32,180 --> 00:48:35,260 Və sonra mən gedirəm irəli getmək və bunu. 993 00:48:35,260 --> 00:48:37,460 Mən irəli getmək istəyirəm və bir ağlı başında olma çek kimi, 994 00:48:37,460 --> 00:48:43,607 demək, salam, faiz s, yarı kolon, simli 0 edir. 995 00:48:43,607 --> 00:48:44,690 oh Uh, mən burada nə idi? 996 00:48:44,690 --> 00:48:45,930 Oh, mən onu yerləşdirin etməyib. 997 00:48:45,930 --> 00:48:48,120 Belə dərs olduğu öyrənildi qəsdən deyildi. 998 00:48:48,120 --> 00:48:52,480 >> Belə ki, səhv, daha faiz data dəlilləri çox dönüşüm. 999 00:48:52,480 --> 00:48:54,940 Və bu, harada line 7-- OK, belə ki, mən, 1000 00:48:54,940 --> 00:48:56,690 dırnağı bağlamaq quote, ki Mənim string printf. 1001 00:48:56,690 --> 00:48:58,151 Mən faiz işarəsi var. 1002 00:48:58,151 --> 00:48:59,650 Amma ikinci dəlil itkin alıram. 1003 00:48:59,650 --> 00:49:03,190 >> Mən vergül s, itkin alıram olan Mən əvvəlki nümunələri var idi. 1004 00:49:03,190 --> 00:49:06,650 Belə ki, yaxşı bir fürsət düzeltmek üçün bir daha səhv, təsadüfən. 1005 00:49:06,650 --> 00:49:09,950 İndi mənə run edək ZAMYLA in string0, növü. 1006 00:49:09,950 --> 00:49:10,970 Zamyla salam, OK. 1007 00:49:10,970 --> 00:49:14,144 >> Beləliklə, biz proqram bu cür etdik İndi bir neçə müxtəlif dəfə. 1008 00:49:14,144 --> 00:49:16,310 Amma bir şey edək bu dəfə fərqli bir az. 1009 00:49:16,310 --> 00:49:19,450 Bunun əvəzinə, yalnız Zamyla nin çap printf ilə bütün adı, 1010 00:49:19,450 --> 00:49:21,350 xarakteri ilə bu xarakter edək. 1011 00:49:21,350 --> 00:49:22,700 >> Mən loop üçün istifadə gedirəm. 1012 00:49:22,700 --> 00:49:26,160 Mən özüm verəcəyəm hesablanması dəyişən, i çağırıb. 1013 00:49:26,160 --> 00:49:33,530 Mən ki, iterating saxlamaq üçün gedirəm i s uzunluğu azdır kimi uzun. 1014 00:49:33,530 --> 00:49:35,930 >> Bu çıxır, biz etmədik bu son vaxt, 1015 00:49:35,930 --> 00:49:39,100 ki, c ilə gəlir funksiyası Stirling çağırıb. 1016 00:49:39,100 --> 00:49:42,690 Geri günü, və ümumiyyətlə hələ funksiyaları həyata keçirərkən, 1017 00:49:42,690 --> 00:49:45,405 insanlar tez-tez çox seçəcək səs qısa adları belə 1018 00:49:45,405 --> 00:49:48,280 Siz baxmayaraq, istədiyiniz nə kimi bir neçə sait və ya məktublar bir itkin. 1019 00:49:48,280 --> 00:49:50,660 Belə ki, Stirling edir bir funksiyası adı ki, 1020 00:49:50,660 --> 00:49:53,880 arasında mübahisə edir bir string olmalıdır parantez. 1021 00:49:53,880 --> 00:49:56,910 Və yalnız bir tam qaytarır, ki, simli uzunluğu. 1022 00:49:56,910 --> 00:50:00,580 >> xətti 7-də loop üçün bu So gedir i 0 bərabərdir hesablanması başlamaq üçün. 1023 00:50:00,580 --> 00:50:02,530 Bu arttırmayı olacaq hər iteration i 1024 00:50:02,530 --> 00:50:04,350 1, biz bir neçə dəfə bunu etdik kimi. 1025 00:50:04,350 --> 00:50:06,780 Amma bu, yalnız nə olacaq nöqtəyə qədər bu qədər 1026 00:50:06,780 --> 00:50:09,660 i uzunluğu zaman simli özü. 1027 00:50:09,660 --> 00:50:14,520 >> Belə ki, bu, son nəticədə, bir yoldur simvol üzərində iterating 1028 00:50:14,520 --> 00:50:17,430 simli kimi ediləndir. 1029 00:50:17,430 --> 00:50:20,670 Mən deyil çap gedirəm bütün simli, lakin faiz c, 1030 00:50:20,670 --> 00:50:22,860 bir xarakter yeni xətt izlədi. 1031 00:50:22,860 --> 00:50:24,880 Və sonra mən gedirəm irəli getmək və mən lazım 1032 00:50:24,880 --> 00:50:29,080 Mən çap etmək istəyirəm demək s İTH xarakter. 1033 00:50:29,080 --> 00:50:33,450 >> i göstərir dəyişən Belə ki simli, indeksi 1034 00:50:33,450 --> 00:50:37,230 siz onu, mən etmək lazımdır Mənə s İTH xarakter vermək, deyirlər. 1035 00:50:37,230 --> 00:50:40,390 Və c bunu bir yolu var kvadrat mötərizədə ilə bu. 1036 00:50:40,390 --> 00:50:43,679 Siz sadəcə adını demək bu halda s simli. 1037 00:50:43,679 --> 00:50:46,970 Sonra siz kvadrat mötərizə istifadə adətən yalnız qayıt və ya daxil yuxarıda 1038 00:50:46,970 --> 00:50:48,110 klaviatura düyməsini basın. 1039 00:50:48,110 --> 00:50:52,410 Və sonra index qoymaq Siz çap etmək istəyirəm xarakter. 1040 00:50:52,410 --> 00:50:55,960 Belə ki, index bir olacaq saysız 0 və ya 1 və ya 2 və ya 3, və ya dot, 1041 00:50:55,960 --> 00:50:57,590 dot, bəzi digər sayı nöqtə. 1042 00:50:57,590 --> 00:51:00,920 >> Və biz olacaq ki, təmin , Sağ sayı ola Çünki 1043 00:51:00,920 --> 00:51:02,360 0 hesablanması başlamaq. 1044 00:51:02,360 --> 00:51:07,020 Və Mənim cari olaraq, ilk xarakter simli Konvensiyanın 0 edir. 1045 00:51:07,020 --> 00:51:09,230 Və ikinci xarakter bracket 1. 1046 00:51:09,230 --> 00:51:11,120 Və üçüncü xarakter bracket 2. 1047 00:51:11,120 --> 00:51:13,630 Və siz də getmək istəmirəm uzaq, lakin biz deyilik, çünki 1048 00:51:13,630 --> 00:51:17,780 yalnız qədər arttırmayı olacaq simli uzunluğu bərabərdir. 1049 00:51:17,780 --> 00:51:20,210 Və hansı nöqtədə, loop üçün bu dayanacaq. 1050 00:51:20,210 --> 00:51:25,550 >> Mənə irəli getmək və bu xilas edək proqram, və run simli 0 olun. 1051 00:51:25,550 --> 00:51:28,400 Amma qarışdırmışlar. 1052 00:51:28,400 --> 00:51:35,390 Dolayısı kitabxana funksiyası elan növü kimi Stirling və indi such--, 1053 00:51:35,390 --> 00:51:36,430 Bu tanış səslənir. 1054 00:51:36,430 --> 00:51:37,440 Amma bu printf deyil. 1055 00:51:37,440 --> 00:51:38,540 Və bu string almaq deyil. 1056 00:51:38,540 --> 00:51:40,480 >> Mən qıymaq etməyib Eyni şəkildə bu dəfə. 1057 00:51:40,480 --> 00:51:45,100 Amma aşağı burada bir az aşağı qeyd daha header string.h daxil, 1058 00:51:45,100 --> 00:51:47,210 aydın təmin Stirling üçün bəyannamə. 1059 00:51:47,210 --> 00:51:48,820 Yəni əslində orada bir ipucu var. 1060 00:51:48,820 --> 00:51:51,670 >> Həqiqətən çıxır başqa header file var 1061 00:51:51,670 --> 00:51:53,970 biz istifadə etdik ki, sinif hələ, amma 1062 00:51:53,970 --> 00:51:56,480 Mövcud arasında Sizə, string.h çağırıb. 1063 00:51:56,480 --> 00:52:00,930 Və fayl, string.h Stirling elan edir. 1064 00:52:00,930 --> 00:52:05,220 Mənə irəli getmək və simli etmək, bu saxlamaq 1065 00:52:05,220 --> 00:52:08,040 0- gözəl, heç bir səhv messages bu dəfə. 1066 00:52:08,040 --> 00:52:12,290 >> ./string0 Zamyla və Mən Enter haqqında Ben 1067 00:52:12,290 --> 00:52:16,710 olan nöqtə GetString gedir string qayıtmaq, s qoyun. 1068 00:52:16,710 --> 00:52:21,890 loop üçün təkrarlamaq gedir Sonra bir-bir S simvol üzərində, 1069 00:52:21,890 --> 00:52:28,420 çünki onlara satır başına bir çap Mən sonunda backslash n idi. 1070 00:52:28,420 --> 00:52:34,530 Belə ki, backslash buraxmaq bilər n, sonra yalnız bütün ZAMYLA çap 1071 00:52:34,530 --> 00:52:37,460 eyni xətt, səmərəli reimplementing 1072 00:52:37,460 --> 00:52:38,999 bütün faydalı deyil printf. 1073 00:52:38,999 --> 00:52:40,540 Amma bu halda, mən bunu etdik. 1074 00:52:40,540 --> 00:52:43,610 Mən, həqiqətən, bir çap etdik Bir anda xarakter satıra bir 1075 00:52:43,610 --> 00:52:45,400 belə ki, biz, həqiqətən, təsir edir. 1076 00:52:45,400 --> 00:52:46,900 >> Amma burada bir şey qeyd etmək lazımdır. 1077 00:52:46,900 --> 00:52:48,930 Və biz geri gəlmək lazımdır gələcək həftə bu. 1078 00:52:48,930 --> 00:52:52,650 Bu çıxır ki, Kodu potensial arabası var. 1079 00:52:52,650 --> 00:52:56,560 >> Bu get simli çıxır və həyat bəzi digər funksiyaları 1080 00:52:56,560 --> 00:53:00,280 mütləq həmişə deyil Siz bekliyorsanız nə qayıtmaq. 1081 00:53:00,280 --> 00:53:03,010 Son sinif bilirik almaq ki, bu zaman 1082 00:53:03,010 --> 00:53:04,960 string bir simli qayıtmaq üçün nəzərdə tutulur. 1083 00:53:04,960 --> 00:53:09,900 Amma nə cür həyata istifadəçi əgər Uzun söz və ya paraqraf, və ya inşa 1084 00:53:09,900 --> 00:53:13,010 Yalnız kifayət qədər var ki, kompüter yaddaş onu uyğun. 1085 00:53:13,010 --> 00:53:15,410 >> Like, nə bir şey gedir əgər başlıq altında yanlış? 1086 00:53:15,410 --> 00:53:18,400 Bu tez-tez baş bilər ancaq bu dəfə ola bilər 1087 00:53:18,400 --> 00:53:21,520 Bir müddət, çox nadir hallarda. 1088 00:53:21,520 --> 00:53:25,460 Və belə ki, get simli çıxır və bu kimi funksiyaları mütləq bunu 1089 00:53:25,460 --> 00:53:26,380 həmişə strings qayıtmaq. 1090 00:53:26,380 --> 00:53:30,680 Onlar bir neçə səhv dəyər qayıtmaq bilər, Bəzi sentinel dəyər ki, danışmaq 1091 00:53:30,680 --> 00:53:32,612 ki, göstərir bir şey yanlış keçmişdir. 1092 00:53:32,612 --> 00:53:35,320 Və yalnız bu bilirik ki İndi sinif öyrəndim edərək, 1093 00:53:35,320 --> 00:53:37,700 və ya daha çox sənədləri oxumaq etmişlər. 1094 00:53:37,700 --> 00:53:43,120 Bu get simli çıxır null adlı bir dəyər ola bilər. 1095 00:53:43,120 --> 00:53:46,220 Null ki, biz lazımdır xüsusi dəyəri gələcək həftə geri gəlir. 1096 00:53:46,220 --> 00:53:50,420 Amma indi üçün, yalnız mən istəyirəm ki, bilirik irəliləyir həqiqətən düzgün olmaq 1097 00:53:50,420 --> 00:53:52,650 get string istifadə edərək, mən yalnız zəng deyil, 1098 00:53:52,650 --> 00:53:56,870 və kor-koranə onun qaytarılması dəyəri istifadə, bir string ki, inanan. 1099 00:53:56,870 --> 00:53:59,420 >> Mən ilk demək lazımdır hey, yalnız bir dəqiqə gözləyin 1100 00:53:59,420 --> 00:54:03,380 s bərabər deyil, əgər davam null, burada null, yenə 1101 00:54:03,380 --> 00:54:04,660 yalnız bəzi xüsusi dəyəri. 1102 00:54:04,660 --> 00:54:07,770 Və yalnız xüsusi dəyəri var siz get simli üçün narahat lazımdır. 1103 00:54:07,770 --> 00:54:10,900 string ya gedir alın bir simli və ya null qayıtmaq üçün. 1104 00:54:10,900 --> 00:54:17,219 >> Bu nida point işarəsi bərabərdir bəlkə math sinif bilirik bilər 1105 00:54:17,219 --> 00:54:20,510 Siz bərabər işarəsi cəlb bilər ki, onun vasitəsilə bir xətt bərabər göstərir. 1106 00:54:20,510 --> 00:54:23,135 Bu, ümumiyyətlə, bir xarakter deyil sizin klaviatura edəbilərsiniz. 1107 00:54:23,135 --> 00:54:26,480 Və ən proqramlaşdırma dilləri, bərabər deyil demək istəyirəm ki, 1108 00:54:26,480 --> 00:54:29,160 Bir nida point istifadə başqa Bang kimi tanınır. 1109 00:54:29,160 --> 00:54:33,180 Belə ki, bang bərabərdir demək olan Biz məntiqi bərabərdir deməkdir. 1110 00:54:33,180 --> 00:54:38,060 Bu daha yoxdur, yalnız kimi daha, və ya bərabər və ya az 1111 00:54:38,060 --> 00:54:41,270 və ya bərabər klavyenizdeki əsas ki, bir simvol bütün yoxdur. 1112 00:54:41,270 --> 00:54:44,020 Belə ki, niyə son nümunələri, Siz açıq bracket idi, və sonra 1113 00:54:44,020 --> 00:54:48,670 bərabər işarəsi, nə etmək , Daha çox və ya daha az, deyirlər. 1114 00:54:48,670 --> 00:54:49,910 >> Belə ki, paket, burada nə var? 1115 00:54:49,910 --> 00:54:53,880 Bu artıq bir yoldur sadəcə Bu sintaksis tətbiqi, bu xüsusiyyət, 1116 00:54:53,880 --> 00:54:57,390 fərdi üzərində iterating simli simvol. 1117 00:54:57,390 --> 00:55:00,260 Və yalnız o kvadrat kimi Mötərizədə, onlara almaq üçün imkan verir 1118 00:55:00,260 --> 00:55:03,790 həmin kvadrat mötərizə hesab növ bu əsas işarə 1119 00:55:03,790 --> 00:55:06,040 dizayn, vasitəsi hər simli daxilində xarakter 1120 00:55:06,040 --> 00:55:10,180 cür altında haradasa kutulu edir kompüter yaddaşında başlıq. 1121 00:55:10,180 --> 00:55:12,340 >> Amma bu bir variant edək. 1122 00:55:12,340 --> 00:55:14,880 Bu çıxır ki, proqram doğru deyil. 1123 00:55:14,880 --> 00:55:18,810 CS50 baltalar başına So qiymətləndirilməsi üçün indeksi, indi doğru deyil. 1124 00:55:18,810 --> 00:55:22,959 Xüsusilə indi yoxlanılması alıram null, bu proqram qəza heç vaxt. 1125 00:55:22,959 --> 00:55:24,500 Mən yalnız təcrübə bilirik. 1126 00:55:24,500 --> 00:55:28,040 Amma başqa heç bir şey yoxdur Biz, həqiqətən, burada yanlış getmək bilər. 1127 00:55:28,040 --> 00:55:31,860 Amma bu çox yaxşı dizayn deyil çünki əsasları geri gedək. 1128 00:55:31,860 --> 00:55:34,450 >> Birincisi, principles-- loop üçün nə edir? 1129 00:55:34,450 --> 00:55:36,290 loop üçün üç şey yoxdur. 1130 00:55:36,290 --> 00:55:39,340 Bəzi initializes dəyəri siz onu soruşsan. 1131 00:55:39,340 --> 00:55:41,770 Bu vəziyyəti yoxlayır. 1132 00:55:41,770 --> 00:55:45,380 Və sonra sonra hər iteration, hər dövrü sonra, 1133 00:55:45,380 --> 00:55:49,330 bəzi əlavələr Burada dəyəri, və ya dəyərlər. 1134 00:55:49,330 --> 00:55:50,600 >> Belə ki, nə deməkdir? 1135 00:55:50,600 --> 00:55:52,940 Biz i 0 başlamaq. 1136 00:55:52,940 --> 00:55:58,610 Biz yoxlamaq və əmin i az Z-A-M-Y-L-A S uzunluğu, 1137 00:55:58,610 --> 00:55:59,900 belə az 6 olan. 1138 00:55:59,900 --> 00:56:02,590 Və həqiqətən, 0-dən az 6 kimi. 1139 00:56:02,590 --> 00:56:05,580 >> Biz Zamyla adı olan Z çap. 1140 00:56:05,580 --> 00:56:08,080 Sonra 0 1 i arttırmayı. 1141 00:56:08,080 --> 00:56:11,290 Biz sonra 1 az yoxlamaq s uzunluğu daha? 1142 00:56:11,290 --> 00:56:13,270 s uzunluğu 6. 1143 00:56:13,270 --> 00:56:13,950 Bəli, elədir. 1144 00:56:13,950 --> 00:56:16,880 >> Beləliklə, biz Zamyla adı, ZA bir çap. 1145 00:56:16,880 --> 00:56:20,090 Biz 2, 1, 0-dan i arttırmayı. 1146 00:56:20,090 --> 00:56:23,720 Biz sonra 2 az yoxlamaq ZAMYLA adı uzunluğu. 1147 00:56:23,720 --> 00:56:25,380 6 SO 2-dən az 6. 1148 00:56:25,380 --> 00:56:30,460 Bəli, bu artıq M çap imkan ZAMYLA adı üçüncü xarakter. 1149 00:56:30,460 --> 00:56:34,110 >> əsas burada hər ki, Hekayə iteration, mən yoxlanılması alıram, 1150 00:56:34,110 --> 00:56:37,810 i Zamyla uzunluğu azdır? 1151 00:56:37,810 --> 00:56:40,350 Amma tutmaq ki, Stirling əmlak deyil. 1152 00:56:40,350 --> 00:56:43,100 proqramlaşdırılmış olan sizin o Java və ya digər dillərdə əvvəl 1153 00:56:43,100 --> 00:56:46,310 bir simli uzunluğu bilirik bilər əmlak, yalnız bəzi yalnız dəyəri oxuyun. 1154 00:56:46,310 --> 00:56:50,220 >> Bu halda C, bu, əgər sözün bir funksiyası 1155 00:56:50,220 --> 00:56:53,520 sayını hesablamaq hər dəfə Zamyla simvol 1156 00:56:53,520 --> 00:56:54,740 biz funksiyası zəng. 1157 00:56:54,740 --> 00:56:58,500 Hər dəfə istifadə üçün kompüter xahiş Stirling, bu Zamyla nəzər alaraq 1158 00:56:58,500 --> 00:57:01,960 deyərək Z-A-M-Y-L-A, 6. 1159 00:57:01,960 --> 00:57:02,962 Və 6 qaytarır. 1160 00:57:02,962 --> 00:57:04,920 Siz zəng növbəti dəfə loop üçün daxili ki, 1161 00:57:04,920 --> 00:57:08,610 Bu Zamyla baxmaq olacaq yenə Z-A-M-Y-L-A, 6 deyirlər. 1162 00:57:08,610 --> 00:57:10,320 Və 6 geri olacaq. 1163 00:57:10,320 --> 00:57:12,980 Belə ki, bu dizayn haqqında axmaq var? 1164 00:57:12,980 --> 00:57:17,700 >> Neden code deyil 5 5 həyata edir İndi dizayn, belə danışmaq? 1165 00:57:17,700 --> 00:57:20,600 Bəli, mən xahiş edirəm bir lazımsız sual. 1166 00:57:20,600 --> 00:57:23,030 Mən lazım çox daha çox iş edirəm. 1167 00:57:23,030 --> 00:57:25,370 >> Belə ki, baxmayaraq ki, Cavab Mən, doğru 1168 00:57:25,370 --> 00:57:29,560 kompüter xahiş, nə yenə Zamyla uzunluğu, 1169 00:57:29,560 --> 00:57:31,380 və yenidən və yenidən və yenidən? 1170 00:57:31,380 --> 00:57:33,980 Və cavab heç dəyişdirmək niyyətindədir. 1171 00:57:33,980 --> 00:57:35,900 O, həmişə 6 olacaq. 1172 00:57:35,900 --> 00:57:39,730 >> bu daha Belə ki, bir yaxşı həll Bu növbəti versiyası olacaq. 1173 00:57:39,730 --> 00:57:43,390 Mənə davam edək və qoyun string1.c adlı ayrı-ayrı fayl, 1174 00:57:43,390 --> 00:57:44,990 yalnız ayrı-ayrı saxlamaq. 1175 00:57:44,990 --> 00:57:47,260 Və bir çıxır loop, siz həqiqətən bilərsiniz 1176 00:57:47,260 --> 00:57:50,210 Eyni anda birdən çox dəyişənlərin elan. 1177 00:57:50,210 --> 00:57:53,460 >> Mən saxlamaq və 0 müəyyən etmək üçün gedirəm. 1178 00:57:53,460 --> 00:57:56,190 Amma mən də gedirəm Bir vergül əlavə və demək, 1179 00:57:56,190 --> 00:58:01,050 Mənə onun n adlı dəyişən vermək dəyəri s simli uzunluğu bərabərdir. 1180 00:58:01,050 --> 00:58:09,410 İndi, mənim vəziyyəti edin belə uzun i n az deyil. 1181 00:58:09,410 --> 00:58:14,140 >> Belə ki, bu şəkildə, məntiqi günün sonunda eyni. 1182 00:58:14,140 --> 00:58:18,280 Amma xatırlayaraq edirəm Bu halda dəyər 6. 1183 00:58:18,280 --> 00:58:19,780 ZAMYLA adı uzunluğu nədir? 1184 00:58:19,780 --> 00:58:20,860 Mən n onu qoyulması alıram. 1185 00:58:20,860 --> 00:58:23,050 >> Və mən hələ yoxlanılması alıram vəziyyəti hər zaman. 1186 00:58:23,050 --> 00:58:24,300 0 6 azdır? 1187 00:58:24,300 --> 00:58:25,600 1 6 azdır? 1188 00:58:25,600 --> 00:58:28,600 s 2 6 az və deyilmi? 1189 00:58:28,600 --> 00:58:31,914 >> Amma kompüter xahiş deyiləm yenidən və yenidən, nə 1190 00:58:31,914 --> 00:58:33,080 ZAMYLA adı uzunluğu? 1191 00:58:33,080 --> 00:58:34,320 ZAMYLA adı uzunluğu nədir? 1192 00:58:34,320 --> 00:58:35,986 Bu Zamyla adı uzunluğu nədir? 1193 00:58:35,986 --> 00:58:40,440 Mən sözün xatırlayaraq edirəm ki, birinci və yalnız bu ikinci dəyişən n cavab. 1194 00:58:40,440 --> 00:58:45,280 Belə ki, bu, indi yalnız olacaq doğru, həm də yaxşı dizayn. 1195 00:58:45,280 --> 00:58:46,670 >> İndi nə stil haqqında? 1196 00:58:46,670 --> 00:58:48,866 Mən dəyişənlərin adına etdik olduqca yaxşı, mən deyərdim. 1197 00:58:48,866 --> 00:58:50,240 Onlar indi super qısa istəyirik. 1198 00:58:50,240 --> 00:58:52,090 Və tamamilə gözəl var. 1199 00:58:52,090 --> 00:58:55,120 >> Siz yalnız bir varsa bir proqramda string, 1200 00:58:55,120 --> 00:58:56,860 Siz həmçinin simli üçün s zəng edə bilər. 1201 00:58:56,860 --> 00:58:59,370 Yalnız bir dəyişən varsa bir proqram hesablanması üçün, 1202 00:58:59,370 --> 00:59:00,710 Siz həmçinin mən zəng edə bilər. 1203 00:59:00,710 --> 00:59:03,500 Bir uzunluğu varsa, n eləcə də super ümumi. 1204 00:59:03,500 --> 00:59:05,800 Amma mən kodu hər hansı bir şərh yoxdur. 1205 00:59:05,800 --> 00:59:09,200 >> Mən reader-- məlumat etdik ki, mənim TF və ya TA olsun, 1206 00:59:09,200 --> 00:59:12,460 və ya sadəcə ehtimal olunur nə colleague-- Bu proqram üzrə davam. 1207 00:59:12,460 --> 00:59:15,760 Və yaxşı stil almaq üçün, Mən istəyirəm nə 1208 00:59:15,760 --> 00:59:24,580 şeylərdir bir şeydir kimi giriş üçün istifadəçi xahiş edirik. 1209 00:59:24,580 --> 00:59:26,670 Və mən yenidən yazmaq bilər yollar bu hər hansı bir sayı. 1210 00:59:26,670 --> 00:59:35,630 >> Əmin olun almaq s-- əmin string bir simli döndü. 1211 00:59:35,630 --> 00:59:40,280 Və sonra buradan və bu bəlkə ən əhəmiyyətli comment-- təkrarlamaq 1212 00:59:40,280 --> 00:59:44,450 bir anda s bir simvol üzərində. 1213 00:59:44,450 --> 00:59:47,060 Mən hər hansı bir istifadə edə bilər İngilis dili seçimi 1214 00:59:47,060 --> 00:59:49,650 Burada hər təsvir etmək kodu bu chunks. 1215 00:59:49,650 --> 00:59:52,740 >> Mən qoymaq deyil ki, görürsünüz kod hər xətti şərh, 1216 00:59:52,740 --> 00:59:55,690 həqiqətən, yalnız maraqlı olanlar, olanları ki, 1217 00:59:55,690 --> 00:59:59,460 bir mənası var ki, mən bilər kimsə super aydın etmək istəyirəm 1218 00:59:59,460 --> 01:00:00,460 mənim kodu oxu. 1219 01:00:00,460 --> 01:00:02,920 Və niyə almaq zəng string giriş üçün istifadəçi xahiş? 1220 01:00:02,920 --> 01:00:05,450 Hətta ki, bir mütləq deyil bütün təsviri. 1221 01:00:05,450 --> 01:00:09,340 Amma bir hekayə demək kömək edir, çünki hekayə ikinci xətt, əmin olun ki, 1222 01:00:09,340 --> 01:00:10,740 almaq string bir simli döndü. 1223 01:00:10,740 --> 01:00:14,260 >> Və hekayə üçüncü xətt, s bir simvol üzərində təkrarlamaq 1224 01:00:14,260 --> 01:00:15,380 anında. 1225 01:00:15,380 --> 01:00:17,920 İndi yalnız yaxşı tədbir üçün, Mən irəli getmək və əlavə etmək üçün gedirəm 1226 01:00:17,920 --> 01:00:24,560 daha bir comment ki, yalnız s print i-ci xarakter deyir. 1227 01:00:24,560 --> 01:00:26,520 İndi nə görmüşük Günün sonunda? 1228 01:00:26,520 --> 01:00:29,190 >> Mən bəzi English əlavə şərh şəklində sözləri. 1229 01:00:29,190 --> 01:00:32,700 çizgi çizgi simvolu hey, o deməkdir ki, Bu, insan üçün kompüter, 1230 01:00:32,700 --> 01:00:33,820 sizin üçün, kompüter. 1231 01:00:33,820 --> 01:00:35,119 Belə ki, onlar məntiqi rədd edirik. 1232 01:00:35,119 --> 01:00:35,910 Onlar yalnız istəyirik. 1233 01:00:35,910 --> 01:00:39,830 >> Və həqiqətən, CS50 IDE kimi göstərir boz, faydalı, lakin əsas deyil kimi 1234 01:00:39,830 --> 01:00:41,000 proqram. 1235 01:00:41,000 --> 01:00:42,570 indi nə edə nə görürsünüz. 1236 01:00:42,570 --> 01:00:44,950 C bilirik olsun proqramlaşdırma və ya, siz 1237 01:00:44,950 --> 01:00:47,722 yalnız bu geri dayana bilər proqram, və şərh üzsüz. 1238 01:00:47,722 --> 01:00:50,180 əmin olun giriş üçün istifadəçi soruşun string bir simli geri almaq, 1239 01:00:50,180 --> 01:00:53,009 s simvol üzərində təkrarlamaq bir-bir, xarakter çap 1240 01:00:53,009 --> 01:00:55,550 i-ci xarakter s-- siz deyil hətta kodu baxmaq lazımdır 1241 01:00:55,550 --> 01:00:57,270 Bu proqram nə anlamaq üçün. 1242 01:00:57,270 --> 01:01:00,280 Və daha yaxşı hələ, siz özünüz baxsaq bir həftə və ya iki bu proqramda, 1243 01:01:00,280 --> 01:01:02,280 və ya bir ay və ya bir il, çox yoxdur 1244 01:01:02,280 --> 01:01:04,420 kod nəzər, yadda çalışır, 1245 01:01:04,420 --> 01:01:06,630 nə mən bu kodu ilə çalışır? 1246 01:01:06,630 --> 01:01:07,770 >> Siz özünüz bildirib etdik. 1247 01:01:07,770 --> 01:01:11,660 Siz özünüz üçün təsvir etdik, bir həmkarım və ya TA, və ya TF ya. 1248 01:01:11,660 --> 01:01:14,860 Və bu artıq olacaq doğru və dizayn yaxşı, 1249 01:01:14,860 --> 01:01:18,210 və nəticədə stil yaxşı həmçinin. 1250 01:01:18,210 --> 01:01:19,990 Belə ki, nəzərə ki, saxlamaq yoxdur. 1251 01:01:19,990 --> 01:01:22,200 >> Belə ki, digər bir var şey burada gedirəm 1252 01:01:22,200 --> 01:01:28,240 ki, indi nə dəqiq deyil aşkara çıxara bilərsiniz başlıq altında olur. 1253 01:01:28,240 --> 01:01:30,390 Belə ki, bu xüsusiyyət var C və digər dillərdə, 1254 01:01:30,390 --> 01:01:33,010 adlı typecasting ki, ya dolayısı 1255 01:01:33,010 --> 01:01:37,250 və ya açıq-aydın siz çevirmək imkan verir Bir data növü. 1256 01:01:37,250 --> 01:01:39,800 Biz məşğul olduğunuz strings ilə qədər bu gün. 1257 01:01:39,800 --> 01:01:41,250 >> Və strings simvol. 1258 01:01:41,250 --> 01:01:44,910 Amma həftə geri 0, simvol nə var? 1259 01:01:44,910 --> 01:01:49,334 Characters yalnız bir abstraksiya var nömrələri decimal nömrələri üst, 1260 01:01:49,334 --> 01:01:52,500 və decimal nömrələri həqiqətən yalnız bir var ikili ədəd üst abstraksiya, 1261 01:01:52,500 --> 01:01:53,720 biz bunu müəyyən edilmiş. 1262 01:01:53,720 --> 01:01:55,540 >> Belə ki, simvol nömrələri var. 1263 01:01:55,540 --> 01:01:58,410 Və nömrələri simvol, yalnız məzmunundan asılı olaraq. 1264 01:01:58,410 --> 01:02:01,250 Və bu daxili çıxır kompüter proqramı, 1265 01:02:01,250 --> 01:02:06,830 Siz baxmaq istəyirəm necə daxil edə bilərsiniz proqram daxilində bit? 1266 01:02:06,830 --> 01:02:10,400 >> keçirdik həftə 0 Recall yalnız bu kodu Ascii, 1267 01:02:10,400 --> 01:02:11,620 nömrələri mapping məktublar. 1268 01:02:11,620 --> 01:02:13,660 Və biz kapital A 65 olduğunu ifadə edərək,. 1269 01:02:13,660 --> 01:02:15,860 Capital B s 66 və. 1270 01:02:15,860 --> 01:02:20,500 >> Və bildiriş biz mahiyyətcə on chars var Burada top satır, C onlara zəng kimi, 1271 01:02:20,500 --> 01:02:23,400 simvol və sonra ikinci sırada ints. 1272 01:02:23,400 --> 01:02:28,180 Və bu çevirə bilərsiniz çıxır sorunsuz adətən iki arasında. 1273 01:02:28,180 --> 01:02:30,042 Və biz bunu istəyirsinizsə, Bu qəsdən, biz 1274 01:02:30,042 --> 01:02:31,750 həll etmək istəyirəm bilər bu kimi bir şey. 1275 01:02:31,750 --> 01:02:33,590 >> Biz çevirmək edə bilərsiniz yuxarı halda aşağı 1276 01:02:33,590 --> 01:02:35,330 halda, və ya yuxarı halda aşağı halda. 1277 01:02:35,330 --> 01:02:38,000 Və var çıxır Burada həqiqətən bir model 1278 01:02:38,000 --> 01:02:39,900 biz yalnız bir anda əhatə edə bilər. 1279 01:02:39,900 --> 01:02:44,120 Amma bir ilk baxaq açıq bunu nümunə. 1280 01:02:44,120 --> 01:02:46,340 >> Mən CS50 IDE geri getmək üçün gedirəm. 1281 01:02:46,340 --> 01:02:50,640 Mən yaratmaq gedirəm Fayl Ascii 0.c. adlı 1282 01:02:50,640 --> 01:02:55,960 Mən irəli getmək və əlavə etmək üçün gedirəm mənim üst standart io.h, int əsas etibarsız 1283 01:02:55,960 --> 01:02:57,370 mənim funksiyası üst. 1284 01:02:57,370 --> 01:03:02,700 Və sonra mən yalnız gedirəm i bərabərdir olan loop üçün aşağıdakıları edin, 1285 01:03:02,700 --> 01:03:04,610 nin, 65 deyək. 1286 01:03:04,610 --> 01:03:10,460 >> Və sonra mən daha az olacaq əlifbası 65, plus 26 məktublar. 1287 01:03:10,460 --> 01:03:12,640 Mən kompüter imkan olacaq orada mənim üçün riyaziyyat yoxdur. 1288 01:03:12,640 --> 01:03:15,100 Və sonra bu loop daxilində, nə mən çap gedirəm? 1289 01:03:15,100 --> 01:03:19,230 >> % C backslash% təşkil edir. 1290 01:03:19,230 --> 01:03:21,290 İndi iki dəyərlər plug istəyirəm. 1291 01:03:21,290 --> 01:03:24,530 Mən müvəqqəti sual gətirdik sual dəvət var olur. 1292 01:03:24,530 --> 01:03:29,940 >> Mən irəli 65-dən təkrarlamaq istəyirəm əlifbası 26 məktublar üçün, 1293 01:03:29,940 --> 01:03:35,190 hər iteration çap ki, xarakter ayrılmaz ekvivalent. 1294 01:03:35,190 --> 01:03:38,299 Başqa sözlə, Mən istəyirəm 26 ədəd çap təkrarlamaq 1295 01:03:38,299 --> 01:03:41,590 Ascii karakter nə məktub, müvafiq nömrə is-- nə 1296 01:03:41,590 --> 01:03:44,650 həqiqətən, yalnız yeniden ki slide chart. 1297 01:03:44,650 --> 01:03:47,010 Belə ki, bu sual işarələri nə olmalıdır? 1298 01:03:47,010 --> 01:03:51,760 >> Bəli, bu ikinci çıxır ki, bir yalnız dəyişən i olmalıdır. 1299 01:03:51,760 --> 01:03:53,860 Mən bir sıra kimi görmək istəyirik. 1300 01:03:53,860 --> 01:03:58,920 Və orta arqument burada, mən kompüter deyə bilərsiniz 1301 01:03:58,920 --> 01:04:03,470 ki, tam müalicə i bir xarakter kimi, belə ki, 1302 01:04:03,470 --> 01:04:05,880 faiz C. üçün burada əvəz etmək 1303 01:04:05,880 --> 01:04:07,990 >> Başqa sözlə, əgər mən insan proqramçı, bilirik 1304 01:04:07,990 --> 01:04:09,865 bu yalnız nömrələri Günün sonunda. 1305 01:04:09,865 --> 01:04:12,500 Mən 65 olmalıdır bilirik ki, bir xarakter xəritəsi. 1306 01:04:12,500 --> 01:04:15,310 Bu açıq tökmə ilə, bir mötərizə ilə, 1307 01:04:15,310 --> 01:04:18,840 istədiyiniz data növü adı çevirmək, və qapalı mötərizə, 1308 01:04:18,840 --> 01:04:21,200 Siz deyə bilərsiniz kompüter, hey, kompüter, 1309 01:04:21,200 --> 01:04:24,130 bir char bu tam çevirmək. 1310 01:04:24,130 --> 01:04:26,250 >> Mən bu çalıştırdığınızda proqram tərtib sonra, 1311 01:04:26,250 --> 01:04:29,740 Mən ASCII 0 etmək get-- nə edək. 1312 01:04:29,740 --> 01:04:33,020 Bu Darn, mən yanlış burada nə idi? 1313 01:04:33,020 --> 01:04:35,884 Bəyan identifikator istifadə bütün qəsdən, doğru deyil, 1314 01:04:35,884 --> 01:04:37,800 Amma görək, əgər biz bilməz bu yolu səbəbi. 1315 01:04:37,800 --> 01:04:41,220 >> Belə ki line mən əldə etməyib five-- çox uzaq up screwing əvvəl. 1316 01:04:41,220 --> 01:04:42,140 Hər şey yaxşıdır. 1317 01:04:42,140 --> 01:04:46,560 Belə ki, line 5 bərabərdir 65-- görürəm. 1318 01:04:46,560 --> 01:04:50,130 Belə ki, bəzi fərqli olaraq, C unutmayın ki Əvvəl proqramlaşdırma varsa languages 1319 01:04:50,130 --> 01:04:52,190 təcrübə, var kompüter demək, 1320 01:04:52,190 --> 01:04:55,040 Not fərqli olaraq, nə dəyişən növü deyil. 1321 01:04:55,040 --> 01:04:56,860 >> Mən burada əsas söz unuttum. 1322 01:04:56,860 --> 01:04:59,200 line beş, mən istifadə açılmış etdik. 1323 01:04:59,200 --> 01:05:01,560 Amma C bildirib yoxdur nə data type edir. 1324 01:05:01,560 --> 01:05:04,570 Mən burada getmək üçün gedirəm və ah, bu tam etmək demək. 1325 01:05:04,570 --> 01:05:07,050 >> İndi irəli getmək və compile gedirəm. 1326 01:05:07,050 --> 01:05:08,080 Ki, müəyyən. 1327 01:05:08,080 --> 01:05:12,660 Daxil ./ascii0, bu cür sərin var. 1328 01:05:12,660 --> 01:05:15,360 Yalnız super sürətli , Kompüter bu sualı 1329 01:05:15,360 --> 01:05:18,885 daha slayd onu axtarır daha Bu, 65, satır başına bir çap 1330 01:05:18,885 --> 01:05:24,860 B I-ci ildən aldadan 66, bütün yol , Məktublar z bu 26 dəfə təkrar etdi 1331 01:05:24,860 --> 01:05:25,630 olan 90 edir. 1332 01:05:25,630 --> 01:05:27,790 Və əslində, bir az daha ağıllı olardı 1333 01:05:27,790 --> 01:05:31,030 Mənim üçün ola etibar kompüter 26 əlavə edin. 1334 01:05:31,030 --> 01:05:34,060 Mən həyata bilər var 90, həmçinin belə uzun 1335 01:05:34,060 --> 01:05:37,390 Mən iki dəfə eyni səhvi yoxdur. 1336 01:05:37,390 --> 01:05:41,880 Mən vasitəsilə getmək istəyirəm z deyil, yalnız y vasitəsilə. 1337 01:05:41,880 --> 01:05:44,000 >> Belə ki, bir açıq cast var. 1338 01:05:44,000 --> 01:05:47,860 Bu çıxır ki, belə lazım deyil. 1339 01:05:47,860 --> 01:05:52,480 Mənə irəli getmək və bu təkrar edək compiler və təkrar Ascii 0. 1340 01:05:52,480 --> 01:05:54,940 Bu C olduqca ağıllı çıxır ki. 1341 01:05:54,940 --> 01:05:57,150 >> Və printf, xüsusilə, olduqca ağıllı deyil. 1342 01:05:57,150 --> 01:06:01,260 Yalnız iki dəfə bir i keçmək varsa həm placeholders üçün printf 1343 01:06:01,260 --> 01:06:04,510 , Həyata keçirəcək oh, mən tanıyıram Mənə bir bir sıra integer-- verdi, 1344 01:06:04,510 --> 01:06:06,380 65 və ya 90, ya hər hansı kimi. 1345 01:06:06,380 --> 01:06:10,170 Amma məni istəyirəm ki, görəcəksiniz bir xarakter kimi ki sayı format. 1346 01:06:10,170 --> 01:06:16,460 Və printf dolayısı tökmə bilər the həmçinin sizin üçün bir char int. 1347 01:06:16,460 --> 01:06:19,360 Belə ki, bütün bir problem deyil. 1348 01:06:19,360 --> 01:06:23,100 >> Amma bu ekvivalentliyinin qeyd biz, həqiqətən, eləcə də bunu edə bilərsiniz. 1349 01:06:23,100 --> 01:06:26,520 Mənə davam və bir edək şeylərdir Ascii 1.c. digər version 1350 01:06:26,520 --> 01:06:31,800 Və əvəzinə üzərində iterating integers, həqiqətən, sizin fikrinizi zərbə ola bilər 1351 01:06:31,800 --> 01:06:33,610 simvol üzərində iterating edir. 1352 01:06:33,610 --> 01:06:37,660 bir char c kapital olur, mən irəli getmək və bunu istəyirəm, 1353 01:06:37,660 --> 01:06:41,740 belə uzun C az və ya bərabər kimi kapital Z. Və hər iteration 1354 01:06:41,740 --> 01:06:45,690 Mən, C arttırmayı istəyirəm İndi burada mənim printf line 1355 01:06:45,690 --> 01:06:51,320 demək, faiz C faiz i yenə vergül C. 1356 01:06:51,320 --> 01:06:57,200 >> Və indi mən digər istiqamətdə getmək bilər, aydın xarakter çəkiliş 1357 01:06:57,200 --> 01:06:58,500 bir tam. 1358 01:06:58,500 --> 01:07:00,560 Belə ki, daha, niyə bu nə olardı? 1359 01:07:00,560 --> 01:07:03,830 Bu düzmək üçün bir az qəribə simvol baxımından saymaq. 1360 01:07:03,830 --> 01:07:07,430 >> Amma nə anlamaq əgər başlıq altında gedir, 1361 01:07:07,430 --> 01:07:08,430 heç bir sehrli həqiqətən var. 1362 01:07:08,430 --> 01:07:13,060 Siz yalnız hey, kompüter verir, deyərək edirik Mənə növü char C adlı dəyişən. 1363 01:07:13,060 --> 01:07:16,520 kapital A. onu başlamaq və tək quotes məsələni qeyd. 1364 01:07:16,520 --> 01:07:19,580 >> C simvol üçün geri Keçən həftə, siz tək quotes istifadə edin. 1365 01:07:19,580 --> 01:07:23,720 strings üçün sözlər üçün, ifadələr, siz ikiqat quotes istifadə edin. 1366 01:07:23,720 --> 01:07:27,210 OK, kompüter, belə ki, bunu saxlamaq xarakter kimi uzun azdır 1367 01:07:27,210 --> 01:07:28,050 və ya z bərabər. 1368 01:07:28,050 --> 01:07:32,640 Mən Ascii masa bilirik ki, bütün Bu Ascii kodları bitişik var. 1369 01:07:32,640 --> 01:07:33,400 >> heç bir boşluqlar var. 1370 01:07:33,400 --> 01:07:36,737 Belə ki, yalnız A-dan Z vasitəsilə var Bir sıra hər tərəfindən ayrılır. 1371 01:07:36,737 --> 01:07:38,820 Və sonra mən arttırmayı bilər bir char, Mən, həqiqətən, istəyirsinizsə. 1372 01:07:38,820 --> 01:07:40,390 Günün sonunda, yalnız bir sıra. 1373 01:07:40,390 --> 01:07:41,030 Mən bu bilirik. 1374 01:07:41,030 --> 01:07:43,670 Mən yalnız 1 əlavə etmək üçün ehtimal edə bilərsiniz. 1375 01:07:43,670 --> 01:07:46,940 >> Və sonra bu dəfə mən c çap və sonra ayrılmaz ekvivalent. 1376 01:07:46,940 --> 01:07:50,170 Mən hətta açıq tökmə ehtiyac yoxdur. 1377 01:07:50,170 --> 01:07:52,680 Mən printf və imkan bilər kompüter rəqəm şeyi, 1378 01:07:52,680 --> 01:07:57,300 belə ki, indi əgər , Ascii1./ascii1 etmək 1379 01:07:57,300 --> 01:08:01,520 Mən də eyni şey almaq. 1380 01:08:01,520 --> 01:08:04,530 >> Useless proqram, heç bir olsa da həqiqətən proqram yazmaq gedir 1381 01:08:04,530 --> 01:08:07,549 anlamaq üçün, nə idi A xəritələr sayı, və ya B, və ya Z? 1382 01:08:07,549 --> 01:08:10,340 Siz yalnız Google gedir, və ya edirik online axtarmaq və ya onu axtarmaq 1383 01:08:10,340 --> 01:08:11,650 slayd, və ya belə. 1384 01:08:11,650 --> 01:08:13,520 Belə ki, bu, həqiqətən faydalı almaq deyil? 1385 01:08:13,520 --> 01:08:15,960 >> Yaxşı ki, danışan slide var qeyd 1386 01:08:15,960 --> 01:08:20,890 Böyük Harf arasında burada faktiki model və kiçik təsadüfi deyildi. 1387 01:08:20,890 --> 01:08:23,760 ki, kapital A 65 Qeyd. 1388 01:08:23,760 --> 01:08:25,830 Kiçik bir 97 edir. 1389 01:08:25,830 --> 01:08:29,649 Və nə qədər uzaq bir aşağı halda? 1390 01:08:29,649 --> 01:08:32,649 >> Belə ki, 65 neçə addımlar üz 97 edir? 1391 01:08:32,649 --> 01:08:36,210 Belə ki, 97 minus 65 32. 1392 01:08:36,210 --> 01:08:37,910 Belə ki, paytaxt 65 edir. 1393 01:08:37,910 --> 01:08:39,939 Siz ki, 32 əlavə etsəniz, Bir kiçik almaq. 1394 01:08:39,939 --> 01:08:43,729 Və equivalently, siz 32 çıxmaq əgər, Siz paytaxtı geri almaq A-- B eyni 1395 01:08:43,729 --> 01:08:46,380 az c az b, böyük C. 1396 01:08:46,380 --> 01:08:50,670 >> Bu boşluqlar Bütün ayrı 32 edir. 1397 01:08:50,670 --> 01:08:54,450 İndi bu bizə imkan görünür Microsoft Word kimi bir şey, 1398 01:08:54,450 --> 01:08:57,729 və ya Google Docs, harada edir hər şeyi seçin və sonra demək olar, 1399 01:08:57,729 --> 01:09:00,520 kiçik bütün dəyişdirmək, və ya yuxarı halda bütün dəyişdirmək, 1400 01:09:00,520 --> 01:09:03,840 və ya yalnız ilk sözü dəyişdirmək yuxarı halda bir cümlə. 1401 01:09:03,840 --> 01:09:07,390 Biz, həqiqətən, bir şey edə bilərsiniz özümüz kimi. 1402 01:09:07,390 --> 01:09:12,645 >> Mənə davam edək və bir fayl saxlamaq Burada 0.c. kapitallaşdırmaq adlı 1403 01:09:12,645 --> 01:09:15,770 Və irəli getmək və bir proqram qızışdırmaq imkan ki, tam olaraq belə ki, yoxdur. 1404 01:09:15,770 --> 01:09:18,460 Belə ki, CS50 kitabxana daxildir. 1405 01:09:18,460 --> 01:09:21,430 Və standart I / O daxildir. 1406 01:09:21,430 --> 01:09:22,787 >> Mən bu tezliklə bilirik. 1407 01:09:22,787 --> 01:09:24,870 Mən onu qoymaq gedirəm artıq, string.h, 1408 01:09:24,870 --> 01:09:26,960 mən etmək imkanı var Stirling kimi şeylər, 1409 01:09:26,960 --> 01:09:29,620 və sonra həmişə olduğu kimi, əsas boşluq int. 1410 01:09:29,620 --> 01:09:33,420 Və sonra mən irəli getmək üçün gedirəm və strings nə simli almaq olur, 1411 01:09:33,420 --> 01:09:35,032 yalnız istifadəçi bir string almaq üçün. 1412 01:09:35,032 --> 01:09:36,740 Və sonra mən gedirəm ağlı başında olma çek yoxdur. 1413 01:09:36,740 --> 01:09:40,510 string bərabər null deyil varsa, o, davam etmək üçün təhlükəsiz. 1414 01:09:40,510 --> 01:09:42,000 Və mən nə istəyirsiniz? 1415 01:09:42,000 --> 01:09:48,700 Mən 0 bərabərdir təkrarlamaq gedirəm və n s string uzunluğu qədər. 1416 01:09:48,700 --> 01:09:51,899 >> Mən belə uzun kimi bunu gedirəm i i plus plus n az, və. 1417 01:09:51,899 --> 01:09:55,060 İndiyə qədər, Mən, həqiqətən, yalnız deyiləm əvvəl fikir borc. 1418 01:09:55,060 --> 01:09:57,010 İndi filialı təqdim gedirəm. 1419 01:09:57,010 --> 01:09:59,635 >> Belə ki Scratch, geri edirəm Biz yol o çəngəllər idi 1420 01:09:59,635 --> 01:10:05,110 və son həftə C. Mən gedirəm Bu demək s i-ci xarakter 1421 01:10:05,110 --> 01:10:09,250 daha böyük və ya işi aşağı bərabər, 1422 01:10:09,250 --> 01:10:13,340 and-- Not sözün ki Və lakin C siz işareti demək 1423 01:10:13,340 --> 01:10:19,830 ampersand-- və s i-ci xarakter Daha az və ya hal z aşağı bərabərdir 1424 01:10:19,830 --> 01:10:21,780 maraqlı bir şey edək. 1425 01:10:21,780 --> 01:10:27,020 nin əslində bir çap edək heç bir newline xarakter 1426 01:10:27,020 --> 01:10:31,760 ki, simli xarakter, simli i-ci character. 1427 01:10:31,760 --> 01:10:37,420 >> Amma irəli gedək və ondan 32 çıxmaq. 1428 01:10:37,420 --> 01:10:42,120 Else əgər xarakter biz aradığınız ki, simli 1429 01:10:42,120 --> 01:10:45,950 az a arasında deyil və kiçik z, davam 1430 01:10:45,950 --> 01:10:48,610 və yalnız dəyişməz onu çap. 1431 01:10:48,610 --> 01:10:50,840 Belə ki, biz təqdim etdik bu mötərizəyə notation 1432 01:10:50,840 --> 01:10:53,560 Bizim strings almaq üçün simli i-ci character. 1433 01:10:53,560 --> 01:10:57,520 >> Mən kimi, bir şərti məntiq əlavə etdik Keçən həftə həftə biri olan Scratch 1434 01:10:57,520 --> 01:10:59,880 Mən yalnız mənim fundamental istifadə edirəm nə anlayışı 1435 01:10:59,880 --> 01:11:01,130 başlıq altında olur. 1436 01:11:01,130 --> 01:11:04,190 s i-ci karakter bir və ya daha çox bərabər? 1437 01:11:04,190 --> 01:11:08,290 Kimi, bu, 97, və ya 98 və ya 99, və s? 1438 01:11:08,290 --> 01:11:11,940 >> Lakin bu da daha az və ya bərabərdir kiçik z dəyəri? 1439 01:11:11,940 --> 01:11:16,210 Və əgər, bu xətt nə deməkdir? 1440 01:11:16,210 --> 01:11:20,250 14, bu növ bütün fikir bakterioloji, 1441 01:11:20,250 --> 01:11:23,840 məktub kapitallaşdırmaq sadəcə, ondan 32 subtracting 1442 01:11:23,840 --> 01:11:29,370 Bu halda, mən bilirəm, çünki başına Mənim ədəd təmsil olunur necə chart. 1443 01:11:29,370 --> 01:11:33,925 Belə ki, irəli getmək və bu run edək, 0.c kapitallaşdırmaq tərtib sonra, 1444 01:11:33,925 --> 01:11:36,210 və run 0 kapitallaşdırmaq. 1445 01:11:36,210 --> 01:11:40,300 >> kimi bir şey yazın edək bütün kiçik Zamyla daxil edin. 1446 01:11:40,300 --> 01:11:42,780 İndi biz bütün böyük olan ZAMYLA var. 1447 01:11:42,780 --> 01:11:45,050 bütün kiçik Rob yazın edək. 1448 01:11:45,050 --> 01:11:46,674 bütün kiçik Jason cəhd edək. 1449 01:11:46,674 --> 01:11:48,590 Və biz əldə saxlamaq məcbur kapitallaşma. 1450 01:11:48,590 --> 01:11:50,960 kiçik bir səhv var ki, mən cür təxmin etməyib. 1451 01:11:50,960 --> 01:11:54,050 Yeni tez up başa çatır edək onların adları eyni xətt üzərində, 1452 01:11:54,050 --> 01:11:55,520 olan bir az messy hiss edir. 1453 01:11:55,520 --> 01:11:59,170 >> Mən burada getmək üçün gedir və alıram həqiqətən, bu Proqramın sonunda 1454 01:11:59,170 --> 01:12:02,110 bir newline xarakter çap. 1455 01:12:02,110 --> 01:12:03,160 Bu hamısıdır. 1456 01:12:03,160 --> 01:12:06,120 printf ilə, siz ehtiyac yoxdur dəyişənlərin və ya format kodu keçir. 1457 01:12:06,120 --> 01:12:08,460 Siz sözün yalnız çap edə bilərsiniz bir newline kimi bir şey. 1458 01:12:08,460 --> 01:12:13,529 >> Belə ki, irəli getmək və edək , Zamyla onu təkrar, təkrar 0 kapitallaşdırmaq. 1459 01:12:13,529 --> 01:12:14,820 İndi bir az gözəlləşir var. 1460 01:12:14,820 --> 01:12:17,274 İndi, mənim tez öz yeni xətt edir. 1461 01:12:17,274 --> 01:12:18,440 Belə ki, bütün gözəl və yaxşı. 1462 01:12:18,440 --> 01:12:19,910 Belə ki, yaxşı bir misal var. 1463 01:12:19,910 --> 01:12:22,700 Amma belə mütləq deyil ağır Kodu 32 lazımdır. 1464 01:12:22,700 --> 01:12:23,350 Siz nə bilirik? 1465 01:12:23,350 --> 01:12:26,350 Mən heç yoxdur demək bilər fərq nə xatırlayıram. 1466 01:12:26,350 --> 01:12:29,330 >> Amma bilirik ki, əgər mən bir aşağı halda məktub var 1467 01:12:29,330 --> 01:12:34,430 Mən mahiyyətcə off çıxmaq istəyirəm nə məsafə az arasında 1468 01:12:34,430 --> 01:12:39,160 bir və böyük A, çünki mən güman əgər digər məktublar bütün, eyni 1469 01:12:39,160 --> 01:12:41,045 ki, iş aparılır almaq lazımdır. 1470 01:12:41,045 --> 01:12:42,670 Amma bunu daha çox, siz nə bilirik? 1471 01:12:42,670 --> 01:12:44,240 hələ də başqa yol yoxdur. 1472 01:12:44,240 --> 01:12:48,090 >> Mən əgər ki, 1.c-- kapitallaşdırmaq varsa ayrı fayla qoymaq. 1473 01:12:48,090 --> 01:12:51,030 aşağıdakı kimi içində, 2.ci kapitallaşdırmaq yoxdur bildirin. 1474 01:12:51,030 --> 01:12:53,060 Mən, həqiqətən, burada bu təmizləmək üçün gedirəm. 1475 01:12:53,060 --> 01:12:57,420 Və əvəzinə hətta olan bilmək və ya bu aşağı səviyyədə qayğı 1476 01:12:57,420 --> 01:13:01,090 həyata keçirilməsi detalları, mən əvəzinə deyiləm Yalnız bir xarakter çap olacaq, 1477 01:13:01,090 --> 01:13:04,610 quote dırnağı bağlamaq, faiz C, və sonra başqa bir funksiyası zəng ki, 1478 01:13:04,610 --> 01:13:09,950 ki, mübahisə edir mövcuddur bu kimi bir xarakter var. 1479 01:13:09,950 --> 01:13:12,630 >> Bu var, C çıxır başqa funksiyası zəng 1480 01:13:12,630 --> 01:13:15,550 Yuxarı olan, öz adı təklif bir xarakter alır 1481 01:13:15,550 --> 01:13:19,350 və onun yuxarı halda üçün edir ekvivalent və sonra qaytarır 1482 01:13:19,350 --> 01:13:21,410 belə ki, printf orada plug bilər. 1483 01:13:21,410 --> 01:13:25,484 Və mən, baxmayaraq ki, bunu başqa bir fayl təqdim etmək lazımdır. 1484 01:13:25,484 --> 01:13:28,400 başqa bir fayl var onu çevrilir Yalnız sinif bilirik ki, 1485 01:13:28,400 --> 01:13:33,020 bir dərslik və ya online və ya arayış adlı C type.h. 1486 01:13:33,020 --> 01:13:38,570 >> Mən mövzu arasında əlavə Belə ki faylları və indi yenidən tərtib Bu proqram, 1487 01:13:38,570 --> 01:13:43,040 capitalize2 daxil edin ./capitalize2. 1488 01:13:43,040 --> 01:13:46,690 nin bütün ZAMYLA yazın edək kiçik, hələ də eyni işləyir. 1489 01:13:46,690 --> 01:13:48,040 Amma nə bilirik? 1490 01:13:48,040 --> 01:13:55,590 Bu yuxarı çıxır ki, bəzi digər funksionallıq var. 1491 01:13:55,590 --> 01:13:58,410 >> Və mənə bu təqdim edək sort yöndəmsiz, burada əmr 1492 01:13:58,410 --> 01:14:00,250 adlı, lakin dərslik man. 1493 01:14:00,250 --> 01:14:03,960 Bu ən Linux kompüter çıxır biz Linux əməliyyat burada istifadə olunur 1494 01:14:03,960 --> 01:14:06,270 bir komanda var system-- deyir adlı adam, 1495 01:14:06,270 --> 01:14:08,530 hey, kompüter, mənə vermək kompüter manual. 1496 01:14:08,530 --> 01:14:10,680 Siz nə istəyirsiniz ki, dərslik axtarmaq? 1497 01:14:10,680 --> 01:14:13,840 >> Mən funksiyası baxmaq istəyirəm yuxarı çağırdı daxil edin. 1498 01:14:13,840 --> 01:14:16,070 Və bu bir az sirli var bəzən oxumaq. 1499 01:14:16,070 --> 01:14:18,780 Amma biz istəyirik bildiriş Linux proqramçı-nin manual. 1500 01:14:18,780 --> 01:14:19,530 Və bütün mətn var. 1501 01:14:19,530 --> 01:14:21,905 Və var ki, qeyd Burada funksiyası adı. 1502 01:14:21,905 --> 01:14:25,030 Bu adlı bir əmisi var çıxır əks edir ki, aşağı. 1503 01:14:25,030 --> 01:14:29,710 Və referat altında bildiriş, bu istifadə etmək , Belə danışmaq, man səhifə fəaliyyət 1504 01:14:29,710 --> 01:14:32,220 mənə I izah edir c type.h. daxil etmək lazımdır 1505 01:14:32,220 --> 01:14:33,630 Mən təcrübə ki, bilirdi. 1506 01:14:33,630 --> 01:14:36,210 >> Burada mənə iki göstərən funksiyası üçün prototipləri, 1507 01:14:36,210 --> 01:14:39,070 belə ki, mən heç bu istifadə etmək istəyirsinizsə Mən giriş kimi almaq nə bilirik, 1508 01:14:39,070 --> 01:14:40,652 Onlar çıxış kimi qayıtmaq nə. 1509 01:14:40,652 --> 01:14:42,360 Və sonra mən oxumaq təsviri, görürəm 1510 01:14:42,360 --> 01:14:44,820 daha ətraflı funksiyası nə. 1511 01:14:44,820 --> 01:14:48,100 Amma daha əhəmiyyətlisi, əgər Mən geri dəyərinin altında baxmaq 1512 01:14:48,100 --> 01:14:51,710 geri dəyəri deyir konvertasiya məktub ki, 1513 01:14:51,710 --> 01:14:57,880 və ya C, orijinal giriş, əgər dönüşüm mümkün deyildi. 1514 01:14:57,880 --> 01:15:01,992 >> Başqa sözlə, yuxarı çalışacağıq yuxarı halda məktub çevirmək. 1515 01:15:01,992 --> 01:15:03,450 Və əgər, onu geri olacaq. 1516 01:15:03,450 --> 01:15:07,010 Amma bəzi reason-- üçün əgər bəlkə artıq yuxarı halda, 1517 01:15:07,010 --> 01:15:09,550 Bəlkə də bu nida nöqtə var və ya digər punctuation-- 1518 01:15:09,550 --> 01:15:12,200 yalnız olacaq Orijinal C qayıtmaq 1519 01:15:12,200 --> 01:15:17,340 Mən kodu edə bilərsiniz deməkdir belə daha yaxşı nəzərdə tutulmuşdur. 1520 01:15:17,340 --> 01:15:20,580 >> Mən bütün ehtiyac yoxdur kodu bu darn xətləri. 1521 01:15:20,580 --> 01:15:22,610 Mən var xətləri Bütün yalnız qeyd edə bilərsiniz 1522 01:15:22,610 --> 01:15:28,700 Yalnız bir sadə dağıldı şeylərdir printf faiz line, 1523 01:15:28,700 --> 01:15:33,510 yuxarı S bracket I c. 1524 01:15:33,510 --> 01:15:36,090 Və bu olacaq yaxşı dizayn nümunəsidir. 1525 01:15:36,090 --> 01:15:40,040 >> Niyə 7 və ya 8 xətləri həyata kodu, mən yalnız nə idi 1526 01:15:40,040 --> 01:15:44,960 yerine dağılması zaman, silinmiş ki, məntiq və qərar qəbuletmə bütün 1527 01:15:44,960 --> 01:15:49,620 İndi bir xətt, 13 ki, bir kitabxana əsaslanır funksiyası 1528 01:15:49,620 --> 01:15:53,430 C ilə gəlir funksiyası, lakin Siz etmək istəyirəm dəqiq nə. 1529 01:15:53,430 --> 01:15:55,295 Və səmimi, hətta əgər Bu C gəlmədi, 1530 01:15:55,295 --> 01:15:58,880 Siz kimi, özünüz həyata bilər biz mənfi int almaq, gördüm 1531 01:15:58,880 --> 01:16:01,700 həm də müsbət int ötən həftə almaq. 1532 01:16:01,700 --> 01:16:03,470 >> Bu kod artıq çox daha oxunaqlı edir. 1533 01:16:03,470 --> 01:16:06,670 Və həqiqətən, biz fırladın əgər, nə qədər çox yığcam baxmaq 1534 01:16:06,670 --> 01:16:08,360 mənim proqram bu versiyası. 1535 01:16:08,360 --> 01:16:11,230 Bu, indi bir az top ağır Bütün bu daxildir. 1536 01:16:11,230 --> 01:16:14,380 indi daimi alıram, çünki Lakin ki, OK proqramçılar çiyinlərində 1537 01:16:14,380 --> 01:16:15,300 Məndən əvvəl. 1538 01:16:15,300 --> 01:16:18,440 Və kim idi həqiqətən yuxarı həyata 1539 01:16:18,440 --> 01:16:21,470 çox kimi, mənə lütf etdi kim həyata Stirling həqiqətən 1540 01:16:21,470 --> 01:16:24,790 bir müddət əvvəl mənə lütf etdi. 1541 01:16:24,790 --> 01:16:26,970 Və indi biz bir var yaxşı dizayn proqramı 1542 01:16:26,970 --> 01:16:31,680 ki, eyni məntiq həyata keçirir. 1543 01:16:31,680 --> 01:16:35,580 >> Stirling danışan, qoy Mənə irəli getmək və bunu. 1544 01:16:35,580 --> 01:16:38,320 Mənə davam və xilas edək stirling.c bu faylı. 1545 01:16:38,320 --> 01:16:43,255 Və bu çıxır, biz geri soymaq bilər olduqca sadəcə indi başqa bir qat. 1546 01:16:43,255 --> 01:16:45,630 Mən irəli və qamçı getmək üçün gedirəm əsas bir proqram 1547 01:16:45,630 --> 01:16:49,759 Burada sadəcə-tətbiq yenidən ki, string uzunluğu aşağıdakı. 1548 01:16:49,759 --> 01:16:52,300 Belə ki, burada bir kod line olduğunu Mənə istifadəçi bir string alır. 1549 01:16:52,300 --> 01:16:53,910 Biz təkrar bu istifadə edin. 1550 01:16:53,910 --> 01:16:58,900 Mənə özümü adlı dəyişən verək bir sıra mağazalar növü int n. 1551 01:16:58,900 --> 01:17:02,490 >> Və mənə irəli getmək və Aşağıdakı məntiq yoxdur. 1552 01:17:02,490 --> 01:17:15,610 s n-ci xarakter baxmayaraq bərabər backslash 0, davam 1553 01:17:15,610 --> 01:17:17,930 və n arttırmayı. 1554 01:17:17,930 --> 01:17:23,506 Və sonra printf faiz i n çap. 1555 01:17:23,506 --> 01:17:29,200 Hesab edirəm ki, bu proqram burada iddia string uzunluğu zəng olmadan, 1556 01:17:29,200 --> 01:17:31,150 bir simli uzunluğu tutulur. 1557 01:17:31,150 --> 01:17:34,600 >> Və sehrli tamamilə line 8 encapsulated 1558 01:17:34,600 --> 01:17:39,830 Burada yeni sintaksis kimi görünür nə ilə, tək quotes bu backslash 0. 1559 01:17:39,830 --> 01:17:41,360 Amma niyə ki? 1560 01:17:41,360 --> 01:17:44,100 Yaxşı, oldu nə hesab Bütün bu vaxt gedir. 1561 01:17:44,100 --> 01:17:47,990 >> Mən unutmaq əvvəl kimi bir kənara, həyata də ki, insan pages əlavə 1562 01:17:47,990 --> 01:17:50,920 ki, tipik ilə gəlib CS50 IDE kimi Linux sistemi, 1563 01:17:50,920 --> 01:17:53,770 həyata ki, kurs heyəti, həmçinin 1564 01:17:53,770 --> 01:17:56,030 bir web versiyası etdi adlanan bu eyni fikrin 1565 01:17:56,030 --> 01:17:59,940 var reference.cs50.net, həmin insan bütün pages, 1566 01:17:59,940 --> 01:18:02,020 eyni bütün sənədlərin, eləcə də 1567 01:18:02,020 --> 01:18:05,730 imkan verir ki, üst bir az qutusu Əgər kifayət qədər bütün çevirmək 1568 01:18:05,730 --> 01:18:09,025 az rahat daxil gizli dil rejimi, biz, müəllim heyəti, 1569 01:18:09,025 --> 01:18:12,150 keçmişdir və asanlaşdırmaq üçün cəhd şeyi saxlamaq üçün dil bəzi 1570 01:18:12,150 --> 01:18:14,830 ideyaları diqqət, və texniki bəzi. 1571 01:18:14,830 --> 01:18:20,070 Belə ki, unutmayın, reference.cs50.net eləcə də digər resurs kimi. 1572 01:18:20,070 --> 01:18:23,800 >> Amma niyə string uzunluğu iş yoxdur Mən bir an əvvəl təklif yol? 1573 01:18:23,800 --> 01:18:25,160 Burada Zamyla adı yenidən var. 1574 01:18:25,160 --> 01:18:27,690 Və burada Zamyla adı var Mən bunu saxlamaq kimi, kutulu, 1575 01:18:27,690 --> 01:18:31,360 Bu olan bir şəkil çəkmək üçün, həqiqətən, simvol yalnız bir sequence. 1576 01:18:31,360 --> 01:18:34,260 Amma Zamyla yoxdur bir proqramda təcrid. 1577 01:18:34,260 --> 01:18:37,420 >> yazmaq və bir proqram çalıştırdığınızda, Siz Mac və ya PC istifadə etdiyiniz 1578 01:18:37,420 --> 01:18:40,010 yaddaş, və ya RAM kimi belə danışmaq. 1579 01:18:40,010 --> 01:18:42,620 Və siz hesab edə bilər olan kimi kompüter 1580 01:18:42,620 --> 01:18:44,730 yaddaş gigabayt bu gün çox. 1581 01:18:44,730 --> 01:18:47,700 Və konsert, milyardlarla deməkdir bayt belə milyardlarla. 1582 01:18:47,700 --> 01:18:48,910 >> Amma vaxt geri bildirin. 1583 01:18:48,910 --> 01:18:51,530 Və biz istifadə edirik Güman həqiqətən köhnə kompüter ki, 1584 01:18:51,530 --> 01:18:55,150 yalnız yaddaş 32 bayt var. 1585 01:18:55,150 --> 01:18:59,310 Mən ola bilər, mənim kompüter ekranında, aşağıdakı kimi sadəcə bu cəlb edir. 1586 01:18:59,310 --> 01:19:05,240 >> Mən sadəcə demək olar mənim kompüter bu yaddaş bütün var. 1587 01:19:05,240 --> 01:19:08,830 Və bu halda, yaddaş stick kimi Siz son dəfə bizim şəkil xatırlayıram. 1588 01:19:08,830 --> 01:19:11,670 Mən yalnız bölmək əgər kifayət qədər dəfə bu 1589 01:19:11,670 --> 01:19:15,040 Mən 32 bayt var ki, iddia Ekranda yaddaş. 1590 01:19:15,040 --> 01:19:18,239 >> İndi, əslində, mən yalnız Burada bu ekranda günə qədər cəlb edir. 1591 01:19:18,239 --> 01:19:20,280 Mən irəli getmək üçün gedirəm və yalnız Konvensiyanın, 1592 01:19:20,280 --> 01:19:24,050 kimi mənim kompüter yaddaş çəkmək grid, yalnız kimi bir düz xətt. 1593 01:19:24,050 --> 01:19:28,190 Xüsusilə, indi ki, iddia Bu grid, bu 8 4 grid, 1594 01:19:28,190 --> 01:19:31,800 yalnız bütün 32 bayt təmsil mənim Mac mövcud yaddaş, 1595 01:19:31,800 --> 01:19:33,030 və ya PC mövcuddur. 1596 01:19:33,030 --> 01:19:34,780 Onlar wrapping edirik on iki xətləri, yalnız 1597 01:19:34,780 --> 01:19:38,030 Bu ekranda daha uyğun çünki. 1598 01:19:38,030 --> 01:19:40,800 Amma bu ilk byte edir. 1599 01:19:40,800 --> 01:19:41,990 Bu ikinci byte edir. 1600 01:19:41,990 --> 01:19:43,300 Bu üçüncü byte edir. 1601 01:19:43,300 --> 01:19:45,310 >> Bu 32-ci byte edir. 1602 01:19:45,310 --> 01:19:52,910 Və ya, bir kompüter kimi hesab edirəm ki, əgər alim, bu byte 0, 1, 2, 3, 31. 1603 01:19:52,910 --> 01:19:55,950 Belə ki, əgər 31 0 var Siz 0 hesablanması başlamaq. 1604 01:19:55,950 --> 01:19:59,830 >> Biz bir proqram istifadə Belə ki zənglər string almaq, 1605 01:19:59,830 --> 01:20:05,280 və biz insan bir string almaq Mən Zamyla adlı idi kimi Z-A-M-Y-L-A, 1606 01:20:05,280 --> 01:20:09,430 necə dünya yoxdur ilə kompüter saxlamaq track olan byte ki, 1607 01:20:09,430 --> 01:20:12,230 yaddaş hansı yığın, hansı string məxsusdur? 1608 01:20:12,230 --> 01:20:16,270 Başqa sözlə, biz davam əgər kompüter başqa bir ad yazın, 1609 01:20:16,270 --> 01:20:19,890 bu Andi kimi, zəng string ikinci dəfə almaq, 1610 01:20:19,890 --> 01:20:23,030 A-N-D-I başa var kompüter yaddaş həmçinin. 1611 01:20:23,030 --> 01:20:23,850 Bəs necə? 1612 01:20:23,850 --> 01:20:29,700 >> Bəli, bu altında çıxır strings saxlanılması zaman başlıq nə C yoxdur 1613 01:20:29,700 --> 01:20:35,080 insan növləri, və ya ki, Bu, bəzi digər mənbədən 1614 01:20:35,080 --> 01:20:39,190 Onların sonu ilə delineates xüsusi xarakter backslash 1615 01:20:39,190 --> 01:20:44,750 yalnız bir xüsusi bir yoldur 0 bir sıra 80 bit etdi. 1616 01:20:44,750 --> 01:20:47,950 >> Belə ki, A-- bu rəqəm 97 geri edir. 1617 01:20:47,950 --> 01:20:51,770 8 bit Belə ki, bəzi model bu sayı 97 təmsil edir. 1618 01:20:51,770 --> 01:20:58,070 Bu backslash 0 sözün sayı 0, a.k.a. nul, N-U-L, əvvəllər fərqli olaraq, 1619 01:20:58,070 --> 01:20:59,630 N-U-L-L, biz danışdıq. 1620 01:20:59,630 --> 01:21:05,700 Amma indi üçün, yalnız bu bilirik ki, backslash 0 sıra yalnız 80 bit edir. 1621 01:21:05,700 --> 01:21:09,810 >> Və yalnız bu xətt var sol heç bir şey deyir qum 1622 01:21:09,810 --> 01:21:12,610 bir simli və ya bir veri növü məxsusdur. 1623 01:21:12,610 --> 01:21:15,480 sağ və bir şey başqa bir şey məxsusdur. 1624 01:21:15,480 --> 01:21:17,440 Andi adı, eyni zamanda, olan yalnız vizual 1625 01:21:17,440 --> 01:21:21,310 digər xətti üzərində kesmek olur, lakin, yalnız bir estetik detal var 1626 01:21:21,310 --> 01:21:23,990 eyni nul xitam verilir. 1627 01:21:23,990 --> 01:21:29,290 >> Bu, A-N-D-I simvol bir simli edir plus beşinci gizli xarakter 1628 01:21:29,290 --> 01:21:33,560 yalnız ayırır bütün 0 bit, həmçinin Andi adı sonu. 1629 01:21:33,560 --> 01:21:37,120 Və biz zəng əgər simli üçüncü dəfə almaq kompüter kimi bir string almaq 1630 01:21:37,120 --> 01:21:44,210 Maria, M-A-R-I-A, eyni Maria nin adı nul backslash 0 xitam. 1631 01:21:44,210 --> 01:21:47,170 >> Bu əsaslı fərqlidir necə bir kompüter adətən ki 1632 01:21:47,170 --> 01:21:51,850 bir tam və ya float və ya digər mağaza hələ data növləri, geri, çünki, 1633 01:21:51,850 --> 01:21:57,420 tam adətən 32 bit və ya 4 bayt, və ya bəlkə hətta 64 bit, 1634 01:21:57,420 --> 01:21:59,100 və ya səkkiz bytes. 1635 01:21:59,100 --> 01:22:02,620 Lakin kompüter çox Primitives bir proqramlaşdırma dili 1636 01:22:02,620 --> 01:22:05,550 sabit sıra var hood-- altında bayt 1637 01:22:05,550 --> 01:22:08,100 bəlkə 1, bəlkə 2, bəlkə 4, bəlkə 8. 1638 01:22:08,100 --> 01:22:13,250 >> Amma strings, dizayn, bir var simvol dinamik nömrəsi. 1639 01:22:13,250 --> 01:22:16,980 Siz qədər əvvəlcədən bilmirəm Z-A-M-Y-L-A insan növləri, 1640 01:22:16,980 --> 01:22:21,400 və ya M-A-R-I-A, və ya A-N-D-I. Siz bilmirəm neçə dəfə istifadəçi hit gedir 1641 01:22:21,400 --> 01:22:22,070 klaviatura. 1642 01:22:22,070 --> 01:22:26,490 Buna görə də, necə bilmirəm əvvəlcədən çox simvol 1643 01:22:26,490 --> 01:22:27,540 Sizə lazım olacaq. 1644 01:22:27,540 --> 01:22:31,840 >> Və C yalnız cür kimi yaradır başlıq altında gizli hier 1645 01:22:31,840 --> 01:22:32,960 simli sonunda. 1646 01:22:32,960 --> 01:22:39,280 yaddaş Z-A-M-Y-L-A saxlanılması sonra, Bu da yalnız ekvivalent qoyur 1647 01:22:39,280 --> 01:22:40,210 bir müddət. 1648 01:22:40,210 --> 01:22:45,060 Cümlənin sonunda Bu, belə ki, 80 bit qoyur 1649 01:22:45,060 --> 01:22:49,120 harada yadda Zamyla başlayır və bitir. 1650 01:22:49,120 --> 01:22:51,490 >> Belə ki, əlaqə nə var, Sonra bu proqram? 1651 01:22:51,490 --> 01:22:55,190 burada Bu proqram, Stirling, bir mexanizm sadəcə 1652 01:22:55,190 --> 01:22:57,970 simli almaq üçün istifadəçi, line 6. 1653 01:22:57,970 --> 01:23:01,160 Line 7, mən bir dəyişən elan n adlanır və bu 0 bərabər seçin. 1654 01:23:01,160 --> 01:23:08,680 >> Və sonra line 8, mən sadəcə xahiş sual, n-ci xarakter nə isə 1655 01:23:08,680 --> 01:23:12,120 bərabər bütün 0 bits-- başqa sözlə, deyil 1656 01:23:12,120 --> 01:23:14,500 bərabər bu xüsusi xarakteri, backslash 0, hansı 1657 01:23:14,500 --> 01:23:18,470 yalnız xüsusi nul xarakter idi irəli getmək və yalnız n arttırmayı. 1658 01:23:18,470 --> 01:23:21,460 >> Və bunu saxlamaq və saxlamaq bunu və bunu saxlamaq. 1659 01:23:21,460 --> 01:23:23,430 Və belə olsa biz Mən istifadə etdiyiniz keçmiş, 1660 01:23:23,430 --> 01:23:25,181 mükəmməl gözəl semantically n istifadə etmək, 1661 01:23:25,181 --> 01:23:27,430 Yalnız çalışdığınız əgər qəsdən bu dəfə saymaq, 1662 01:23:27,430 --> 01:23:28,720 və yalnız n zəng etmək istəyirəm. 1663 01:23:28,720 --> 01:23:34,720 Belə ki, bu, yalnız sual saxlayır, bütün 0s s n-ci karakter? 1664 01:23:34,720 --> 01:23:38,470 Əgər növbəti baxmaq baxmaq, , Növbəti baxmaq növbəti baxmaq, 1665 01:23:38,470 --> 01:23:39,460 növbəti baxmaq. 1666 01:23:39,460 --> 01:23:45,540 >> Amma tezliklə backslash 0 görmək kimi, 11-- bu loop line 9 dayanır. 1667 01:23:45,540 --> 01:23:49,640 Siz isə loop çıxmaq dəyişən n daxilində tərk 1668 01:23:49,640 --> 01:23:54,530 bütün ümumi sayı Gördüyün simli simvol, 1669 01:23:54,530 --> 01:23:55,660 bununla onu çap. 1670 01:23:55,660 --> 01:23:56,760 Belə ki, bu cəhd edək. 1671 01:23:56,760 --> 01:23:59,500 >> olmadan, mənə irəli gedək və Stirling funksiyası istifadə edərək, 1672 01:23:59,500 --> 01:24:04,240 lakin yalnız öz homegrown versiyasından istifadə Burada Stirling adlı Mənə davam edək 1673 01:24:04,240 --> 01:24:07,700 bir şey və run Stirling, növü Mən əvvəlcədən bilmək ZAMYLA kimi 1674 01:24:07,700 --> 01:24:08,670 altı simvol edir. 1675 01:24:08,670 --> 01:24:10,080 Bu işləri əgər in nəzər salaq. 1676 01:24:10,080 --> 01:24:10,920 Həqiqətən, o, altı var. 1677 01:24:10,920 --> 01:24:15,257 nin Rob ilə cəhd edək, üç simvol, üç simvol, eləcə də və s. 1678 01:24:15,257 --> 01:24:17,340 Belə ki, gedir ki, bütün var başlıq altında. 1679 01:24:17,340 --> 01:24:19,548 Və əlaqələri qeyd, sonra ilk həftə 1680 01:24:19,548 --> 01:24:22,370 sinif, biz danışdıq harada abstraksiya kimi bir şey, 1681 01:24:22,370 --> 01:24:26,960 hansı fikir yalnız bu layering, və ya mürəkkəbliyi, baza prinsipləri üst. 1682 01:24:26,960 --> 01:24:30,710 Burada biz növ aradığınız Stirling başlıq altında, 1683 01:24:30,710 --> 01:24:33,510 belə anlamaq üçün, danışmaq, necə həyata olardı? 1684 01:24:33,510 --> 01:24:35,232 >> Və biz bunu özümüz yenidən həyata bilər. 1685 01:24:35,232 --> 01:24:37,440 Amma biz bir daha olacaq üçün Stirling yenidən həyata keçirir. 1686 01:24:37,440 --> 01:24:39,780 Biz yalnız olacaq üçün Stirling istifadə 1687 01:24:39,780 --> 01:24:42,100 həqiqətən bir strings uzunluğu almaq üçün. 1688 01:24:42,100 --> 01:24:44,200 >> Amma heç bir sehrli var başlıq altında. 1689 01:24:44,200 --> 01:24:46,716 Bilirsiniz, əgər altında olduğunu başlıq, bir string 1690 01:24:46,716 --> 01:24:48,090 simvol yalnız bir ardıcıllıqla deyil. 1691 01:24:48,090 --> 01:24:51,090 Və simvol ki, ardıcıllıqla bütün sayca edilə bilər 1692 01:24:51,090 --> 01:24:53,330 bracket 0, bracket ilə 1, bracket 2, və siz 1693 01:24:53,330 --> 01:24:57,420 simli sonunda bilirik ki xüsusi xarakter, siz anlamaq olar 1694 01:24:57,420 --> 01:25:01,710 bir çox şey etmək necə proqram, çünki bu boils 1695 01:25:01,710 --> 01:25:03,400 oxu və yaddaş yazır. 1696 01:25:03,400 --> 01:25:06,130 Bu dəyişən və axtarır, yaddaş, və ya şeyi hərəkət 1697 01:25:06,130 --> 01:25:10,940 ətrafında yaddaş, çap şeylər s ekran, və. 1698 01:25:10,940 --> 01:25:14,800 >> Belə ki, indi bu newfound istifadə edək həqiqətən strings nə anlaşma 1699 01:25:14,800 --> 01:25:17,910 başlıq altında və başqa bir qat geri soymaq 1700 01:25:17,910 --> 01:25:20,080 indiyə qədər biz sizin qədər ki, tamamilə məhəl edilmişdir. 1701 01:25:20,080 --> 01:25:22,650 Xüsusilə, hər hansı bir zamanda biz bir proqram həyata etdik, 1702 01:25:22,650 --> 01:25:25,930 Biz kodu bu xətt etdik üst əsas elan. 1703 01:25:25,930 --> 01:25:27,810 Və biz int əsas etibarsız müəyyən etdik. 1704 01:25:27,810 --> 01:25:31,240 >> Və parantez daxilində etibarsız bütün bu vaxt söyləyərək edilmişdir ki, əsas 1705 01:25:31,240 --> 01:25:33,440 özü heç bir dəlilləri daşımır. 1706 01:25:33,440 --> 01:25:36,210 əsas olduğunu istənilən giriş istifadəçi almaq üçün gedir 1707 01:25:36,210 --> 01:25:39,020 bəzi digər gəlir var mexanizm kimi get int, 1708 01:25:39,020 --> 01:25:42,040 və ya float almaq, və ya simli almaq, və ya digər fəaliyyət göstərir. 1709 01:25:42,040 --> 01:25:44,710 Amma bu çıxır ki, bir proqram yazmaq zaman, 1710 01:25:44,710 --> 01:25:47,690 Siz, həqiqətən, daxil edə bilərsiniz Bu proqram edilir ki, 1711 01:25:47,690 --> 01:25:51,730 insan giriş almaq command line özü. 1712 01:25:51,730 --> 01:25:56,310 >> Başqa sözlə, baxmayaraq ki, biz indiyə qədər salam hello yalnız çalışan edilmişdir 1713 01:25:56,310 --> 01:26:00,312 və ya oxşar proqramları, bütün Biz istifadə etdiyiniz digər proqramlar, 1714 01:26:00,312 --> 01:26:02,770 Biz özümüz yazmaq deyil ki, var, görünür, qəbul edilmişdir 1715 01:26:02,770 --> 01:26:05,210 command line dəlilləri etmək kimi şeylər. 1716 01:26:05,210 --> 01:26:07,450 Siz olun kimi bir şey demək, və sonra ikinci söz. 1717 01:26:07,450 --> 01:26:10,950 Və ya cingilti, sonra cingilti, və demək ikinci söz, bir fayl adı. 1718 01:26:10,950 --> 01:26:14,410 >> kimi bilər, və ya hətta RM ya CP görüldü və ya artıq istifadə 1719 01:26:14,410 --> 01:26:15,880 aradan qaldırılması və ya faylları kopyalamak üçün. 1720 01:26:15,880 --> 01:26:18,920 o bütün deyilən almaq command line dəlilləri 1721 01:26:18,920 --> 01:26:21,130 terminal tez əlavə sözlər. 1722 01:26:21,130 --> 01:26:23,260 Amma indiyə qədər biz özümüz idi yoxdur 1723 01:26:23,260 --> 01:26:27,080 daxil alaraq bu lüks istifadəçi o həqiqətən çalışır 1724 01:26:27,080 --> 01:26:29,120 command line proqram özü. 1725 01:26:29,120 --> 01:26:33,710 >> Amma biz yenidən elan edə bilərsiniz əsas olan kimi irəli deyil hərəkət 1726 01:26:33,710 --> 01:26:36,750 parantez ləğv, Lakin bu iki dəlilləri 1727 01:26:36,750 --> 01:26:40,600 ilk tam Əvəzində, ikinci bir şey 1728 01:26:40,600 --> 01:26:44,170 biz zəng olacaq yeni bir şey bir sıra, ruhu oxşar bir şey 1729 01:26:44,170 --> 01:26:49,220 Biz siyahısı Not gördüm nə, lakin strings bir sıra, biz tezliklə görəcəksiniz kimi. 1730 01:26:49,220 --> 01:26:51,790 Amma bu görək Məsələn yolu, biz əvvəl 1731 01:26:51,790 --> 01:26:53,690 o deməkdir ki, dəqiq nə fərqlənir. 1732 01:26:53,690 --> 01:26:56,520 >> Mən CS50 IDE getmək əgər Belə ki, burada, mən qabaqda getdi sonra 1733 01:26:56,520 --> 01:27:01,840 adlı bir fayl elan Aşağıdakı şablon argv0.c. 1734 01:27:01,840 --> 01:27:04,120 Və yalnız bir şey qeyd bu günə qədər müxtəlif var 1735 01:27:04,120 --> 01:27:08,570 Mən int etibarsız dəyişib etdik ki, argc string yaxın, açıq bracket argv 1736 01:27:08,570 --> 01:27:09,070 mötərizə. 1737 01:27:09,070 --> 01:27:11,730 Və var, indi qeyd o Mötərizədə daxilində heç bir şey. 1738 01:27:11,730 --> 01:27:12,620 >> heç bir nömrə var. 1739 01:27:12,620 --> 01:27:15,070 Və heç bir i var və ya n, və ya hər hansı digər məktub. 1740 01:27:15,070 --> 01:27:17,010 Mən istifadə edirəm İndi kvadrat mötərizədə, 1741 01:27:17,010 --> 01:27:19,510 səbəblərə görə biz gəlmək lazımdır geri yalnız bir anda. 1742 01:27:19,510 --> 01:27:21,330 >> İndi mən gedirəm bu. 1743 01:27:21,330 --> 01:27:26,680 argc bərabərdir varsa bərabərdir 2-- ki, bərabərdir geri 1744 01:27:26,680 --> 01:27:30,040 müqayisə bərabərlik operator bərabərlik üçün sol və sağ. 1745 01:27:30,040 --> 01:27:31,790 Bu tapşırıq deyil deyil operator, 1746 01:27:31,790 --> 01:27:36,510 surəti deməkdir vahid bərabər işarəsi, sağdan bəzi dəyəri sol. 1747 01:27:36,510 --> 01:27:42,840 >> argc bərabərdir 2 bərabərdir, mən istəyirəm demək, printf, salam, faiz, yeni xətt, 1748 01:27:42,840 --> 01:27:47,340 və sonra in-- plug və burada yeni səbəblərdən trick-- argv bracket 1, 1749 01:27:47,340 --> 01:27:48,840 biz geri bir anda gəlmək lazımdır ki. 1750 01:27:48,840 --> 01:27:52,110 argc deyil, əgər Else 2 bərabər, siz nə bilirik? 1751 01:27:52,110 --> 01:27:57,400 adi, çap kimi, yalnız irəli gedək və heç bir əvəz ilə salam dünya. 1752 01:27:57,400 --> 01:28:02,710 >> Belə ki, görünür ki, argc olan əgər , Dəlil sayı tərəfdardır 2 bərabərdir 1753 01:28:02,710 --> 01:28:04,740 Mən çap gedirəm salam bir şey və ya digər. 1754 01:28:04,740 --> 01:28:07,560 Əks halda, ismarıcları, mən salam dünya çap gedir. 1755 01:28:07,560 --> 01:28:08,770 Belə ki, bu nə deməkdir? 1756 01:28:08,770 --> 01:28:15,550 >> Yaxşı, mənə irəli getmək və xilas edək Bu fayl, sonra argv0 edə bilərəm, 1757 01:28:15,550 --> 01:28:18,940 və sonra ./argv0 daxil edin. 1758 01:28:18,940 --> 01:28:20,300 Və bu dünya salam deyir. 1759 01:28:20,300 --> 01:28:21,260 İndi ki, niyə? 1760 01:28:21,260 --> 01:28:24,730 >> Bəli, bu zaman çıxır command line bir proqram run, 1761 01:28:24,730 --> 01:28:29,570 nə biz lazımdır doldurulması olunur ümumiyyətlə dəlil vektor zəng. 1762 01:28:29,570 --> 01:28:33,100 avtomatik olaraq digər sözlə, kompüter, əməliyyat sistemi, 1763 01:28:33,100 --> 01:28:38,340 proqram əl gedir özü sözləri bütün siyahısı 1764 01:28:38,340 --> 01:28:40,850 insan da yazdığınız halda tez, siz 1765 01:28:40,850 --> 01:28:43,790 proqramçı etmək istəyirəm ki, informasiya ilə bir şey. 1766 01:28:43,790 --> 01:28:48,540 Və bu halda, yalnız söz Mən tez-da çap etdik ./argv0 edir. 1767 01:28:48,540 --> 01:28:55,420 >> Və belə arqumentlər sayı ki, mənim proqram qəbul olunur yalnız biridir. 1768 01:28:55,420 --> 01:28:58,880 Başqa sözlə, arqument başqa argc kimi tanınan saymaq 1769 01:28:58,880 --> 01:29:00,970 burada bir tam kimi, yalnız biridir. 1770 01:29:00,970 --> 01:29:03,000 One, əlbəttə, iki bərabər deyil. 1771 01:29:03,000 --> 01:29:05,980 Və bu hello, dünya çap edir. 1772 01:29:05,980 --> 01:29:08,170 >> Amma mənə bu yerdə götürək. 1773 01:29:08,170 --> 01:29:09,930 Mənə deyirlər argv0 edək. 1774 01:29:09,930 --> 01:29:12,740 Və sonra necə Maria haqqında? 1775 01:29:12,740 --> 01:29:14,990 Və sonra Enter düyməsini basın. 1776 01:29:14,990 --> 01:29:18,020 >> Və magically burada nə görürsünüz. 1777 01:29:18,020 --> 01:29:22,640 İndi əvəzinə salam dünya, mən Bu proqramın davranış dəyişib 1778 01:29:22,640 --> 01:29:26,310 get deyil daxil alaraq string və ya digər funksiyası, 1779 01:29:26,310 --> 01:29:30,570 lakin, görünür, mənim komanda özü, mən ilk tipli nə. 1780 01:29:30,570 --> 01:29:35,720 Mən yenidən bu oyunu oynaya bilər məsələn, Stelios onu dəyişir. 1781 01:29:35,720 --> 01:29:38,400 >> İndi mən hələ bir ad oldu. 1782 01:29:38,400 --> 01:29:40,540 Və burada mən Andi demək bilər. 1783 01:29:40,540 --> 01:29:42,137 Mən Zamyla deyə bilər. 1784 01:29:42,137 --> 01:29:45,220 Və biz bütün gün uzun bu oyunu oynaya bilər yalnız müxtəlif dəyərlər sayede, 1785 01:29:45,220 --> 01:29:49,550 belə uzun Mən dəqiq təmin tez iki sözlər, 1786 01:29:49,550 --> 01:29:52,260 argc, mənim dəlil saymaq ki, belə, 2. 1787 01:29:52,260 --> 01:29:57,240 >> Mən ad daxil takıldığından ki görürsünüzmü printf, burada bu vəziyyəti başına? 1788 01:29:57,240 --> 01:30:00,550 Beləliklə, biz indi görünür ifadəli qabiliyyəti 1789 01:30:00,550 --> 01:30:04,410 başqa mexanizmi daxil alaraq, sözdə command line, 1790 01:30:04,410 --> 01:30:07,000 daha gözləmək olan daha istifadəçi proqram çalışır qədər, 1791 01:30:07,000 --> 01:30:10,220 və sonra ona təklif get string kimi bir şey istifadə edərək. 1792 01:30:10,220 --> 01:30:11,230 >> Belə ki, bu nədir? 1793 01:30:11,230 --> 01:30:15,010 Argc, yenə yalnız bir tam deyil, words-- dəlilləri sayı 1794 01:30:15,010 --> 01:30:18,540 ki, təmin istifadəçi tez, terminal pəncərə, 1795 01:30:18,540 --> 01:30:20,110 Proqramın adı, o cümlədən. 1796 01:30:20,110 --> 01:30:23,340 Belə ki, bizim ./argv0 səmərəli edir Proqramın adı, 1797 01:30:23,340 --> 01:30:24,520 və ya necə proqramı. 1798 01:30:24,520 --> 01:30:25,810 >> Bu söz kimi sayar. 1799 01:30:25,810 --> 01:30:27,080 Belə ki, argc 1 olardı. 1800 01:30:27,080 --> 01:30:29,750 Amma Stelios yazmaq, və ya Andi və ya Zamyla və ya Maria, 1801 01:30:29,750 --> 01:30:31,660 ki, dəlil sayı iki deməkdir. 1802 01:30:31,660 --> 01:30:33,910 Və indi keçdi iki söz var. 1803 01:30:33,910 --> 01:30:36,070 >> Və bildiriş, biz bu məntiq davam edə bilərsiniz. 1804 01:30:36,070 --> 01:30:39,050 Mən, həqiqətən, demək ZAMYLA Chan kimi bir şey, 1805 01:30:39,050 --> 01:30:42,200 tam adı, bununla keçən cəmi üç dəlilləri, 1806 01:30:42,200 --> 01:30:47,410 indi default yenidən deyir, , Əlbəttə, 3 2 bərabər deyil, çünki. 1807 01:30:47,410 --> 01:30:54,080 >> Və bu şəkildə, mən var argv bu yeni dəlil vasitəsilə giriş 1808 01:30:54,080 --> 01:30:56,080 biz texniki ola bilər ki, biz istədiyiniz bir şey zəng. 1809 01:30:56,080 --> 01:30:58,940 Lakin Konvensiya tərəfindən, bu müvafiq olaraq argv və argc. 1810 01:30:58,940 --> 01:31:04,470 Argv, dəlil vektor, növ bir proqramlaşdırma üçün sinonimi olan 1811 01:31:04,470 --> 01:31:07,140 C xüsusiyyət bir sıra çağırıb. 1812 01:31:07,140 --> 01:31:14,410 >> Bir sıra Oxşar dəyərlərin siyahısı geri geri, geri, geri. 1813 01:31:14,410 --> 01:31:17,810 Başqa sözlə, əgər bir burada var RAM, növbəti bir, onun yanında hüququ 1814 01:31:17,810 --> 01:31:18,800 və sağ yanında. 1815 01:31:18,800 --> 01:31:20,101 Onlar bütün yer üzərində deyilik. 1816 01:31:20,101 --> 01:31:23,100 Və sonuncu ssenari, hər şeyi bütün yaddaşında yer üzərində, 1817 01:31:23,100 --> 01:31:25,082 həqiqətən güclü xüsusiyyət ola bilər. 1818 01:31:25,082 --> 01:31:28,040 zaman Amma biz geri gəlmək lazımdır meraklısı data strukturları haqqında danışmaq. 1819 01:31:28,040 --> 01:31:32,260 İndi, bir sıra yalnız bir deyil bitişik yaddaş yığın, 1820 01:31:32,260 --> 01:31:36,520 Onun elementləri hər geri geri, geri, geri, 1821 01:31:36,520 --> 01:31:38,050 və ümumiyyətlə eyni tipli. 1822 01:31:38,050 --> 01:31:42,630 >> Belə ki, bir olan, haqqında düşünmək əgər an əvvəl bir string nədir? 1823 01:31:42,630 --> 01:31:50,460 Yaxşı, bir string, Zamyla kimi, Z-A-M-Y-L-A, texniki edir 1824 01:31:50,460 --> 01:31:51,400 yalnız bir sıra. 1825 01:31:51,400 --> 01:31:53,700 Bu simvol bir sıra var. 1826 01:31:53,700 --> 01:31:59,250 >> Və belə ki, biz, həqiqətən, bu kimi cəlb əgər mən , Yaddaş yığın kimi, əvvəllər etdi 1827 01:31:59,250 --> 01:32:04,510 bu ki, hər çıxır simvol bir byte alır. 1828 01:32:04,510 --> 01:32:07,630 Və sonra xüsusi var sentinel xarakteri, backslash 0, 1829 01:32:07,630 --> 01:32:12,360 və ya bütün səkkiz 0 bit ki, ki, simli sonunda ayırır. 1830 01:32:12,360 --> 01:32:15,090 Belə ki, bir string, bu çevrilir out, dırnağı bağlamaq simli sitat 1831 01:32:15,090 --> 01:32:20,580 chara-- yalnız bir sıra edir faktiki data type olan char. 1832 01:32:20,580 --> 01:32:24,560 >> İndi argv, meanwhile-- geri proqram getmək bildirin. 1833 01:32:24,560 --> 01:32:29,582 biz söz görmək olsa da argv, string burada bir simli özü deyil. 1834 01:32:29,582 --> 01:32:33,640 Argv, dəlil vektor, strings bir sıra edir. 1835 01:32:33,640 --> 01:32:37,620 >> Siz bir sıra ola bilər ki, kimi simvol, siz yüksək səviyyədə ola bilər, 1836 01:32:37,620 --> 01:32:46,279 strings-- bir sıra belə ki, məsələn, Mən bir an əvvəl yazdığınız zaman ./argv0 1837 01:32:46,279 --> 01:33:00,150 argv0, kosmik Z-A-M-Y-L-A, I iddia etdi argv, pseudocode ./argv0 iki strings var idi 1838 01:33:00,150 --> 01:33:03,185 və Z-A-M-Y-L-A. ilə Başqa sözlə, argc 2 idi. 1839 01:33:03,185 --> 01:33:03,980 Niyə ki? 1840 01:33:03,980 --> 01:33:08,370 >> Yaxşı, səmərəli, nə olacaq olan bu strings hər ki 1841 01:33:08,370 --> 01:33:13,990 , Əlbəttə, simvol bir sıra edir əvvəlki kimi, hər kimin simvol 1842 01:33:13,990 --> 01:33:15,670 bir byte tutur. 1843 01:33:15,670 --> 01:33:19,720 Və faktiki 0 çaşdırmaq deyil 0 ilə proqramın adı, 1844 01:33:19,720 --> 01:33:22,040 olan bütün 80 bit deməkdir. 1845 01:33:22,040 --> 01:33:27,140 Və Zamyla, eyni zamanda, hələ də simvol bir sıra. 1846 01:33:27,140 --> 01:33:31,450 >> günün sonunda Belə ki, həqiqətən başlıq altında bu kimi görünür. 1847 01:33:31,450 --> 01:33:38,800 Amma necə əsas xarakteri ilə, argv işləri, məni bütün bu kesmek üçün imkan verir 1848 01:33:38,800 --> 01:33:44,810 , Siz, böyük array qədər biz bir az artıq sadələşdirmək ki, əgər 1849 01:33:44,810 --> 01:33:48,180 şəkil kimi deyil görünür kifayət qədər klikləyin çəkmək, 1850 01:33:48,180 --> 01:33:56,720 Bu array yalnız ölçüsü 2 ilk bir simli var olan element, 1851 01:33:56,720 --> 01:33:59,230 ikinci element hansı bir simli var. 1852 01:33:59,230 --> 01:34:01,687 Və öz növbəsində, əgər cür hər zoom 1853 01:34:01,687 --> 01:34:03,770 o strings, nə siz başlıq altında görmək 1854 01:34:03,770 --> 01:34:07,190 hər string yalnız ki, simvol bir sıra. 1855 01:34:07,190 --> 01:34:11,680 >> İndi, yalnız strings kimi, biz əldə edə bildik 1856 01:34:11,680 --> 01:34:15,260 simli i-ci xarakter ki, kvadrat mötərizə notation istifadə edərək. 1857 01:34:15,260 --> 01:34:17,320 Eynilə, seriallarda ilə ümumiyyətlə, biz 1858 01:34:17,320 --> 01:34:22,700 almaq üçün kvadrat mötərizə notation istifadə bir sıra strings hər hansı bir sayı? 1859 01:34:22,700 --> 01:34:25,100 Məsələn, mənə imkan irəli getmək və bunu. 1860 01:34:25,100 --> 01:34:32,420 >> Mənə davam və argv1.c yaratmaq edək, olan bir az fərqli bu dəfə. 1861 01:34:32,420 --> 01:34:35,635 Əvəzində argc2 üçün yoxlanılması, Mən əvəzinə bunu gedirəm. 1862 01:34:35,635 --> 01:34:41,270 Mən 0 almaq int, mən az argc daha mən plus plus, 1863 01:34:41,270 --> 01:34:47,920 və sonra, bu daxilində çap faiz s, yeni xətt, sonra 1864 01:34:47,920 --> 01:34:50,740 argv bracket i. 1865 01:34:50,740 --> 01:34:55,220 >> başqa sözlə Belə ki, mən ilə məşğul deyiləm Hal-hazırda fərdi simvol. 1866 01:34:55,220 --> 01:35:00,190 Argv, bu boş kvadrat ilə nəzərdə kimi adı argv sağ üçün aşırma, 1867 01:35:00,190 --> 01:35:03,320 strings bir sıra edir argv deməkdir. 1868 01:35:03,320 --> 01:35:04,870 Və argc yalnız bir int edir. 1869 01:35:04,870 --> 01:35:08,800 >> burada Bu xətt, 6, set deyərək i 0 bərabər. 1870 01:35:08,800 --> 01:35:11,980 Qədər bütün yol Count lakin argc, o cümlədən. 1871 01:35:11,980 --> 01:35:14,010 Və sonra hər iteration, bir simli çap. 1872 01:35:14,010 --> 01:35:14,800 Nə string? 1873 01:35:14,800 --> 01:35:17,270 >> argv i-ci string. 1874 01:35:17,270 --> 01:35:19,530 Mən əvvəl halbuki So kvadrat bracket istifadə 1875 01:35:19,530 --> 01:35:22,180 notation Ith almaq üçün İndi simli xarakter 1876 01:35:22,180 --> 01:35:27,240 Mən kvadrat mötərizə notation istifadə edirəm bir sıra İTH simli almaq üçün. 1877 01:35:27,240 --> 01:35:30,310 Belə ki, bir qat cür Yuxarıda konseptual. 1878 01:35:30,310 --> 01:35:35,390 >> Və bu barədə səliqəli nə İndi proqram, mən argv1 tərtib əgər, 1879 01:35:35,390 --> 01:35:42,067 və sonra ./argv1 etmək, və sonra yazın foo bar Baz kimi bir şey, 1880 01:35:42,067 --> 01:35:45,400 üç default sözləri olan var kompüter alim hər zaman üçün çatır 1881 01:35:45,400 --> 01:35:51,010 o bir tutucu sözləri lazımdır, və Enter, bu sözlər hər 1882 01:35:51,010 --> 01:35:54,980 Proqramın adı, o cümlədən hansı Ilk yerdə argv var 1883 01:35:54,980 --> 01:35:58,320 başa bir-bir çap olunur. 1884 01:35:58,320 --> 01:36:05,290 Və mən bu dəyişdirmək və demək əgər argv1 ZAMYLA Chan kimi bir şey, 1885 01:36:05,290 --> 01:36:08,800 biz bu hər üç almaq argv0 sözləri, 1886 01:36:08,800 --> 01:36:14,400 argv1, argv2, bu, çünki hal argc, sayı, 3. 1887 01:36:14,400 --> 01:36:20,020 >> Amma nə səliqəli siz anlamaq əgər ki argv, strings yalnız bir sıra edir 1888 01:36:20,020 --> 01:36:24,910 və bir string başa düşürük ki, simvol bir sıra edir, 1889 01:36:24,910 --> 01:36:29,470 biz, həqiqətən, növ istifadə edə bilərsiniz kvadrat mötərizə notation neçə dəfə 1890 01:36:29,470 --> 01:36:33,320 simli seçin və sonra seçin simli ərzində bir xarakter, 1891 01:36:33,320 --> 01:36:35,730 belə dərin kimi dalış. 1892 01:36:35,730 --> 01:36:40,100 Bu, məsələn, mənə gedək irəli və bu argv2.c çağırırıq. 1893 01:36:40,100 --> 01:36:43,920 1894 01:36:43,920 --> 01:36:50,180 Bu misalda, mənə irəli gedək və i 0 almaq int üçün aşağıdakıları edin yoxdur, 1895 01:36:50,180 --> 01:36:53,286 i, argc azdır i plus plus, əvvəl kimi. 1896 01:36:53,286 --> 01:36:55,910 Belə ki, indi bu digər words-- və Kifayət qədər mürəkkəb olur. 1897 01:36:55,910 --> 01:36:59,940 Sonra demək gedirəm argv strings üzərində təkrarlamaq, 1898 01:36:59,940 --> 01:37:01,294 özümə bir comment kimi. 1899 01:37:01,294 --> 01:37:03,960 Və sonra mən gedirəm Loop üçün iç içə yəqin ki, siz 1900 01:37:03,960 --> 01:37:06,290 həyata, və ya hesab Not bunu, harada 1901 01:37:06,290 --> 01:37:08,600 Mən deyiləm int demək gedirəm yenidən i istifadə etmək niyyətində deyil, 1902 01:37:08,600 --> 01:37:12,590 Mən kölgə istəmirəm, çünki, və ya sort mövcud i yazmaq. 1903 01:37:12,590 --> 01:37:15,780 >> Çünki, əvəzinə, j demək gedirəm ki, mən sonra dəyişən mənim go var 1904 01:37:15,780 --> 01:37:18,590 Mən yalnız çalışıram sadə ədəd saymaq. 1905 01:37:18,590 --> 01:37:28,850 j olur For 0- və həmçinin, n, gedir , Argv bracket i sərt uzunluğu almaq 1906 01:37:28,850 --> 01:37:36,030 belə uzun j m-dən az olduğu kimi, j plus plus, aşağıdakı. 1907 01:37:36,030 --> 01:37:37,500 Və burada maraqlı hissəsi. 1908 01:37:37,500 --> 01:37:46,330 >> bir xarakter və yeni xətt çap, argv bracket i, bracket j sayede. 1909 01:37:46,330 --> 01:37:47,940 OK, belə ki, mənə burada bir şərh əlavə edək. 1910 01:37:47,940 --> 01:37:54,820 simvol üzərində təkrarlamaq cari simli, 1911 01:37:54,820 --> 01:38:02,290 i-ci simli çap j-ci character. 1912 01:38:02,290 --> 01:38:04,630 Belə ki, indi, bu nəzər salaq bu şərh nə deməkdir. 1913 01:38:04,630 --> 01:38:06,750 >> strings üzərində təkrarlamaq argv-- neçə 1914 01:38:06,750 --> 01:38:09,300 strings bir sıra olan, argv var? 1915 01:38:09,300 --> 01:38:13,420 Argc çox, mən iterating alıram Mən argc qədər 0 bərabər. 1916 01:38:13,420 --> 01:38:20,020 Eyni zamanda, neçə simvol argv i-ci simli var? 1917 01:38:20,020 --> 01:38:22,880 >> Yaxşı ki, cavab almaq üçün, Mən string uzunluğu zəng 1918 01:38:22,880 --> 01:38:26,810 Cari string I qayğı argv bracket i olan haqqında. 1919 01:38:26,810 --> 01:38:30,090 Mən müvəqqəti olduğunu saxlamaq üçün gedirəm dəyəri n, yalnız caching məqsədləri üçün, 1920 01:38:30,090 --> 01:38:31,590 səmərəliliyi üçün xatırlayıram. 1921 01:38:31,590 --> 01:38:36,330 Və sonra mən 0 j başlamaq gedirəm j az n kimi belə uzun davam, 1922 01:38:36,330 --> 01:38:38,430 və hər iteration artım J. 1923 01:38:38,430 --> 01:38:41,030 >> Və sonra burada, başına line 12 mənim comment, 1924 01:38:41,030 --> 01:38:43,390 Bir xarakter çap, yeni bir xətt izlədi 1925 01:38:43,390 --> 01:38:48,140 xüsusi argv bracket i me i-ci simli verir 1926 01:38:48,140 --> 01:38:51,690 argv-- belə ki, ilk sözü, ikinci söz, üçüncü söz, nə. 1927 01:38:51,690 --> 01:38:57,370 Və sonra j dərin dalış və olur mənə sözün j-ci character. 1928 01:38:57,370 --> 01:39:02,200 Belə ki, faktiki olaraq, siz müalicə edə bilər argv bir çox ölçülü kimi, 1929 01:39:02,200 --> 01:39:06,050 iki ölçülü, array kimi, vasitəsi görünür hər sözü cür 1930 01:39:06,050 --> 01:39:08,580 fikrinizi nin bu kimi göz, ​​və hər bir xarakter 1931 01:39:08,580 --> 01:39:10,930 cür tərtib olunur bir sütun ki, kömək edir. 1932 01:39:10,930 --> 01:39:13,260 >> Əslində, biz zaman sataşmaq gələcək həftə bu ayrı, 1933 01:39:13,260 --> 01:39:15,580 bir az olacaq daha çox inkişaf etmiş. 1934 01:39:15,580 --> 01:39:17,800 Amma həqiqətən bilərsiniz İndi ki, hesab edirəm ki, 1935 01:39:17,800 --> 01:39:22,110 yalnız bu iki ölçülü kimi bu array, vasitəsi bir səviyyədə 1936 01:39:22,110 --> 01:39:23,260 strings deyil. 1937 01:39:23,260 --> 01:39:26,760 Və sonra dərin, siz dalış əgər fərdi simvol əldə edə bilərsiniz 1938 01:39:26,760 --> 01:39:29,600 Burada bu notation istifadə edərək, orada. 1939 01:39:29,600 --> 01:39:31,620 >> Belə ki, xalis təsiri nədir? 1940 01:39:31,620 --> 01:39:34,970 Mənə davam edək argv2-- darn etmək. 1941 01:39:34,970 --> 01:39:36,210 Mən burada bir səhv etdi. 1942 01:39:36,210 --> 01:39:40,160 dolayısı elan kitabxana funksiyası Stirling. 1943 01:39:40,160 --> 01:39:42,190 Belə ki, bütün bu vaxt, bu bəlkə uyğun 1944 01:39:42,190 --> 01:39:45,130 biz sort başa etdiyiniz məhz biz başladı. 1945 01:39:45,130 --> 01:39:48,160 >> Mən dolayısı elan, berbat kitabxana funksiyası Stirling. 1946 01:39:48,160 --> 01:39:48,987 OK, bir dəqiqə gözləyin. 1947 01:39:48,987 --> 01:39:51,070 Mən xüsusilə, unutmayın ki, çünki burada var. 1948 01:39:51,070 --> 01:39:54,490 Mən string.h daxil etmək lazımdır Proqramın bu versiyası. 1949 01:39:54,490 --> 01:40:00,050 >> Mənə davam və daxil edək string.h ki, saxlamaq, davam 1950 01:40:00,050 --> 01:40:04,460 və argv2 compile. 1951 01:40:04,460 --> 01:40:08,390 İndi, burada daxil edin argv2 etmək, getmək. 1952 01:40:08,390 --> 01:40:10,590 Və bu bir az baxmayaraq ilk baxışda sirli, 1953 01:40:10,590 --> 01:40:15,690 həqiqətən, fark nə dot argv2 çap edir. 1954 01:40:15,690 --> 01:40:19,970 >> Amma sonra bəzi sözləri yazın əgər tez, argv2 ZAMYLA Chan kimi, 1955 01:40:19,970 --> 01:40:22,560 Həmçinin, bir az daxil edin ilk baxışda sirli. 1956 01:40:22,560 --> 01:40:30,540 Amma biz geri fırladın əgər, ./argv2 Z-A-M-Y-L-A C-H-A-N. 1957 01:40:30,540 --> 01:40:32,190 Belə ki, biz hər sözü üzərində iterated etdik. 1958 01:40:32,190 --> 01:40:37,770 Və öz növbəsində, biz artıq iterated etdik Bir sözlə ərzində hər character. 1959 01:40:37,770 --> 01:40:40,040 >> İndi bu bütün sonra, var ki, həyata 1960 01:40:40,040 --> 01:40:43,120 bir başqa detal biz cür oldum Bu bütün zaman məhəl. 1961 01:40:43,120 --> 01:40:46,180 Biz yalnız ayrı teased nə Əsas giriş ola bilər? 1962 01:40:46,180 --> 01:40:47,780 Nə Main nin çıxış haqqında? 1963 01:40:47,780 --> 01:40:50,540 >> Bu zaman bütün, biz oldum yalnız çıxarmaq və sovuşdurmaq 1964 01:40:50,540 --> 01:40:53,870 Əsas qarşısında söz int, Siz online ola bilər, baxmayaraq ki, 1965 01:40:53,870 --> 01:40:58,340 bəzən səhv eski versiyasını C və derleyiciler, onlar, etibarsız deyirlər ki, 1966 01:40:58,340 --> 01:40:59,410 və ya heç bir şey. 1967 01:40:59,410 --> 01:41:01,580 Lakin, həqiqətən, üçün versiya C biz istifadə edirik ki, 1968 01:41:01,580 --> 01:41:06,180 C 11, və ya 2011-ci il, həyata ki, int olmalıdır. 1969 01:41:06,180 --> 01:41:09,300 Və ya olmalıdır etibarsız və ya argc və argv. 1970 01:41:09,300 --> 01:41:10,790 >> Amma niyə int əsas? 1971 01:41:10,790 --> 01:41:12,480 Bu, həqiqətən nə qayıdır? 1972 01:41:12,480 --> 01:41:16,280 Bəli, bu, bu zaman bütün çıxır heç bir zaman bir proqram Main yazdıq 1973 01:41:16,280 --> 01:41:18,440 həmişə bir şey qayıdır. 1974 01:41:18,440 --> 01:41:19,960 Amma belə gizli bunu edilmişdir. 1975 01:41:19,960 --> 01:41:23,350 >> Bu bir şey bir int line 5 təklif edir. 1976 01:41:23,350 --> 01:41:24,225 Amma nə int? 1977 01:41:24,225 --> 01:41:26,100 Bəli, bu var proqramlaşdırma konvensiya, 1978 01:41:26,100 --> 01:41:29,790 vasitəsi heç bir şey var, əgər yanlış getdi və bütün yaxşı, 1979 01:41:29,790 --> 01:41:34,250 ümumiyyətlə proqramları və funksiyaları return-- qədər counterintuitively-- 1980 01:41:34,250 --> 01:41:35,230 0. 1981 01:41:35,230 --> 01:41:38,070 0 ümumiyyətlə bütün yaxşı bildirir. 1982 01:41:38,070 --> 01:41:40,610 Siz hesab So olsa da çox kontekstlərdə kimi yalan ki, 1983 01:41:40,610 --> 01:41:42,930 bu, həqiqətən, ümumiyyətlə yaxşı bir şey deməkdir 1984 01:41:42,930 --> 01:41:49,560 >> Eyni zamanda, bir proqram 1 qaytarır əgər, və ya mənfi 1, və ya 5 və ya mənfi 42, 1985 01:41:49,560 --> 01:41:52,941 və ya hər hansı qeyri-0 dəyəri, ki, ümumiyyətlə bildirir 1986 01:41:52,941 --> 01:41:54,190 ki, bir şey yanlış keçmişdir. 1987 01:41:54,190 --> 01:41:56,700 Əslində, öz Mac və ya PC, Siz, həqiqətən, görmüşəm bilər 1988 01:41:56,700 --> 01:42:01,050 bir səhv baş beledir, vasitəsi onu bir şey və ya digər səhv deyir 1989 01:42:01,050 --> 01:42:04,940 Kodu mənfi 42, və ya hata kodu kimi 23 və ya bir şey. 1990 01:42:04,940 --> 01:42:08,980 Ki sayı ümumiyyətlə yalnız Qeyd proqramçı, və ya şirkət 1991 01:42:08,980 --> 01:42:11,174 ki proqram etdi nə yanlış və nə getdi 1992 01:42:11,174 --> 01:42:13,590 onlar vasitəsilə baxmaq olar ki, onların sənədləri və ya indeksi, 1993 01:42:13,590 --> 01:42:15,465 və anlamaq nə səhv həqiqətən deməkdir. 1994 01:42:15,465 --> 01:42:18,400 Bu, ümumiyyətlə deyil bizə faydalı son istifadəçilər. 1995 01:42:18,400 --> 01:42:20,550 >> Amma əsas yekunları 0, bütün yaxşı zaman. 1996 01:42:20,550 --> 01:42:23,770 Və müəyyən yoxsa qayıtmalıdırlar əsas nə 1997 01:42:23,770 --> 01:42:26,950 yalnız avtomatik olaraq Sizin üçün 0 qayıtmaq. 1998 01:42:26,950 --> 01:42:30,870 Amma bir şey qaytarılması Başqa həqiqətən faydalıdır. 1999 01:42:30,870 --> 01:42:34,660 >> bu son proqram, mənə imkan irəli getmək və bu exit.c zəng 2000 01:42:34,660 --> 01:42:38,630 və bu gün son təqdim bir səhv kod kimi tanınan mövzular. 2001 01:42:38,630 --> 01:42:42,930 Mənə davam və daxil edək bizim tanış faylları top, int əsas yoxdur. 2002 01:42:42,930 --> 01:42:49,500 Və bu zaman, ən int argc edək string argv, və mötərizədə ilə 2003 01:42:49,500 --> 01:42:50,836 Bu array var ki, demək. 2004 01:42:50,836 --> 01:42:52,460 Və sonra mənə yalnız bir ağlı başında olma çek edək. 2005 01:42:52,460 --> 01:42:56,640 Bu dəfə argc deyil, əgər 2 bərabər, sonra nə bilirik? 2006 01:42:56,640 --> 01:42:57,520 Unut onu. 2007 01:42:57,520 --> 01:43:03,170 Mən ki, gedirəm, hey, istifadəçi, Siz command line dəlil itkin 2008 01:43:03,170 --> 01:43:04,210 backslash n. 2009 01:43:04,210 --> 01:43:05,230 >> Və sonra bu. 2010 01:43:05,230 --> 01:43:06,130 Mən çıxmaq üçün istəyirəm. 2011 01:43:06,130 --> 01:43:11,030 Mən preemptively gedirəm və vaxtından əvvəl həqiqətən, geri 2012 01:43:11,030 --> 01:43:12,810 1 nömrəli başqa bir şey. 2013 01:43:12,810 --> 01:43:15,360 ilk dəyəri go ola bilər səhv 1. 2014 01:43:15,360 --> 01:43:17,860 Siz səhv bəzi digər varsa baş verə bilər vəziyyət, 2015 01:43:17,860 --> 01:43:21,390 Siz geri 2 demək və ya 3 qayıtmaq və ya ola bilər bəlkə hətta mənfi 1 və ya mənfi 2. 2016 01:43:21,390 --> 01:43:23,750 >> Bu yalnız exit kodları ki, ümumiyyətlə, 2017 01:43:23,750 --> 01:43:27,770 yalnız proqramçı üçün faydalı, və ya proqram göndərmə şirkəti. 2018 01:43:27,770 --> 01:43:30,500 Lakin bu ki, 0 vacibdir nə. 2019 01:43:30,500 --> 01:43:34,310 Belə ki, bu proqramda əgər, Mən istəyirəm zəmanət ki, bu proqram yalnız 2020 01:43:34,310 --> 01:43:38,190 istifadəçi mənə verir işləyir iki bir dəlil sayı ilə, 2021 01:43:38,190 --> 01:43:42,880 Proqramın adı və bir sıra digər söz, mən aşağıdakı kimi tələb edə bilər 2022 01:43:42,880 --> 01:43:46,110 printf söyləyərək ilə istifadəçi fəğan, command line arqument itkin, 2023 01:43:46,110 --> 01:43:46,970 1 qayıtmaq. 2024 01:43:46,970 --> 01:43:49,940 Yalnız dərhal olacaq proqram çıxmaq. 2025 01:43:49,940 --> 01:43:55,840 >> argc bərabər Yalnız 2 biz aşağı olacaq burada, mən demək gedirəm hansı nöqtədə, 2026 01:43:55,840 --> 01:44:00,410 salam faiz s, backslash n, argv1. 2027 01:44:00,410 --> 01:44:03,827 Başqa sözlə, mən argv 0 sonra niyyətində deyil, 2028 01:44:03,827 --> 01:44:05,410 olan proqramın yalnız adı. 2029 01:44:05,410 --> 01:44:09,450 Mən vergül, salam çap etmək istəyirəm insan tipli ikinci söz. 2030 01:44:09,450 --> 01:44:12,580 Və bu halda üzrə line 13, bütün yaxşı. 2031 01:44:12,580 --> 01:44:15,920 >> Mən argc 2 bilirik ki, məntiqi bu proqram. 2032 01:44:15,920 --> 01:44:17,770 Mən irəli getmək və 0 qayıtmaq üçün gedirəm. 2033 01:44:17,770 --> 01:44:21,230 Bir kənara kimi, unutmayın ki, Bu həmçinin Not doğrudur. 2034 01:44:21,230 --> 01:44:24,760 >> Məntiqi, mən bunu edə bilər bu xətləri içine 2035 01:44:24,760 --> 01:44:27,020 Burada bu başqa bənddə kodu. 2036 01:44:27,020 --> 01:44:29,420 Amma növ var lazımsız mənim kodu indenting. 2037 01:44:29,420 --> 01:44:31,800 Mən super etmək istəyirəm aydın nə olursa olsun ki, 2038 01:44:31,800 --> 01:44:34,670 Mənim cari olaraq, salam bir şey çap olacaq 2039 01:44:34,670 --> 01:44:36,050 istifadəçi əməkdaşlıq kimi uzun. 2040 01:44:36,050 --> 01:44:39,360 >> Belə ki, istifadə etmək çox ümumi var bir vəziyyət, yalnız bir halda, 2041 01:44:39,360 --> 01:44:41,870 bir səhv tutmaq üçün vəziyyət, və sonra exit. 2042 01:44:41,870 --> 01:44:45,690 Və sonra, belə uzun bütün yaxşı, başqa bir var, 2043 01:44:45,690 --> 01:44:48,060 ancaq kod kənarda, bu, çünki 2044 01:44:48,060 --> 01:44:51,060 Bu ekvivalent xüsusi halda, məntiqi. 2045 01:44:51,060 --> 01:44:54,480 Mən yalnız, 0 qaytarılması alıram açıq-aydın bütün yaxşı demek. 2046 01:44:54,480 --> 01:44:58,480 >> Mən qaytarılması 0 çıxarılmışdır varsa, bu ki avtomatik mənim üçün ehtimal etmək. 2047 01:44:58,480 --> 01:45:00,890 Amma indi qaytarılması edirəm ki, ən azı bu halda bir 2048 01:45:00,890 --> 01:45:04,940 Mən yaxşı tədbir üçün, gedirəm və aydınlıq, bu halda 0 qayıtmaq. 2049 01:45:04,940 --> 01:45:09,690 Belə ki, indi mənə irəli getmək və çıxış edək, olan yalnız tərk üçün mükəmməl Segue edir. 2050 01:45:09,690 --> 01:45:14,401 >> Amma çıxış etmək və mənə gedək irəli və ./exit etmək, daxil edin. 2051 01:45:14,401 --> 01:45:16,900 Və proqramı mənə yelled command line dəlil yoxdur. 2052 01:45:16,900 --> 01:45:18,120 OK, mənə əməkdaşlıq edək. 2053 01:45:18,120 --> 01:45:23,810 >> Mənə əvəzinə ./exit edək David, daxil edin. 2054 01:45:23,810 --> 01:45:25,190 İndi salam David, deyir. 2055 01:45:25,190 --> 01:45:27,300 Və adətən bu görmək olmaz. 2056 01:45:27,300 --> 01:45:30,650 >> Amma var çıxır ki, həqiqətən görmək üçün Linux xüsusi yol 2057 01:45:30,650 --> 01:45:34,470 nə çıxış kodu ilə bir proqram çıxıldı. 2058 01:45:34,470 --> 01:45:37,184 Bəzən qrafik ilə Mac OS və ya Windows kimi dünya, 2059 01:45:37,184 --> 01:45:40,100 Yalnız bu rəqəmlər bir çox səhv mesaj ekranda açılır 2060 01:45:40,100 --> 01:45:41,940 və proqramçı siz ki sayı göstərir. 2061 01:45:41,940 --> 01:45:44,773 Amma biz nə səhv görmək istəyirsinizsə Mesaj biz bunu burada edə bilər, 2062 01:45:44,773 --> 01:45:48,100 belə ./exit daxil edin, çap command line dəlil yoxdur. 2063 01:45:48,100 --> 01:45:54,590 >> İndi echo $ ?, Əgər olan axtarır ridiculously sirli. 2064 01:45:54,590 --> 01:45:56,590 Amma $? 2065 01:45:56,590 --> 01:45:59,220 sehrli sehr edir deyir ki, hey, kompüter, 2066 01:45:59,220 --> 01:46:01,900 mənə nə əvvəlki Proqramın çıxış kodu idi. 2067 01:46:01,900 --> 01:46:03,410 Mən Enter düyməsini basın. 2068 01:46:03,410 --> 01:46:07,520 ki, çünki mən 1 görmək nə qayıtmaq üçün mənim əsas funksiyası bildirib. 2069 01:46:07,520 --> 01:46:12,310 >> Eyni zamanda, mən David ./exit əgər, və mən salam Davudu görmək, Enter düyməsini basın. 2070 01:46:12,310 --> 01:46:16,800 İndi echo $ nə varsa ?, Mən 0 salam görürük. 2071 01:46:16,800 --> 01:46:19,080 Və bu həqiqətən olacaq dəyərli məlumat ola 2072 01:46:19,080 --> 01:46:23,420 ayıklama kontekstində deyil, belə ki, Siz insan, qayğı ki, çox. 2073 01:46:23,420 --> 01:46:26,060 Amma ayıklama və digər proqramları bu dövr istifadə edəcəyik 2074 01:46:26,060 --> 01:46:29,420 tez-tez sayı baxacağıq, bu cür üz gizli baxmayaraq 2075 01:46:29,420 --> 01:46:32,780 Siz bunun üçün baxmaq halda müəyyən bir proqramın və ya 2076 01:46:32,780 --> 01:46:37,050 icra doğru və ya yanlış idi. 2077 01:46:37,050 --> 01:46:40,450 >> Və belə ki, bizə gətirir Bu, günün sonunda. 2078 01:46:40,450 --> 01:46:43,917 Biz baxaraq bu gün başladı ayıklama və kurs öz növbəsində 2079 01:46:43,917 --> 01:46:46,750 özü və daha çox maraqlı, texniki başlıq altında 2080 01:46:46,750 --> 01:46:49,490 nə strings davam edən var verilən həftə biz yalnız aldı 2081 01:46:49,490 --> 01:46:51,900 və əlbəttə ki, onları aldı üçün Not verilib. 2082 01:46:51,900 --> 01:46:56,040 >> Biz sonra biz əldə edə bilərsiniz necə baxdı simli fərdi simvol, 2083 01:46:56,040 --> 01:47:00,310 və sonra yenidən yüksək səviyyədə etdi well-- necə baxır, hər şeyi baxmaq 2084 01:47:00,310 --> 01:47:04,226 biz fərdi almaq istəyirsinizsə strukturu kimi bir siyahıda elementlər, 2085 01:47:04,226 --> 01:47:05,850 biz çox strings ilə edə bilməz? 2086 01:47:05,850 --> 01:47:08,050 Və biz command line dəlilləri ilə edə bilərsiniz. 2087 01:47:08,050 --> 01:47:12,800 Amma burada yalnız qutuları bu şəkil bu ümumi fikir nümayiş edir 2088 01:47:12,800 --> 01:47:14,451 bir sıra və ya bir siyahısı, və ya vektor. 2089 01:47:14,451 --> 01:47:16,450 Və asılı olaraq kontekstində, bu sözləri bütün 2090 01:47:16,450 --> 01:47:17,880 az fərqli şeylər deməkdir. 2091 01:47:17,880 --> 01:47:20,060 Belə ki, C, biz yalnız olacaq bir sıra haqqında danışmaq. 2092 01:47:20,060 --> 01:47:23,840 Və bir sıra bir yığın edir yaddaş, onlardan hər var 2093 01:47:23,840 --> 01:47:27,720 elementləri, geri, bitişik olan geri, geri, geri. 2094 01:47:27,720 --> 01:47:31,970 >> Və bu elementlər, ümumiyyətlə, var Eyni data növü, xarakteri, 2095 01:47:31,970 --> 01:47:35,966 xarakter, xarakter, xarakter, və ya simli, simli, simli, simli, və ya int, 2096 01:47:35,966 --> 01:47:38,600 bu nə int, int, biz mağaza çalışırıq. 2097 01:47:38,600 --> 01:47:42,540 Lakin günün sonunda, bu nə konseptual kimi görünür. 2098 01:47:42,540 --> 01:47:44,530 Siz qəbul etdiyiniz kompüter yaddaş və ya RAM. 2099 01:47:44,530 --> 01:47:48,590 Və onu həyata oyma edirik eyni ölçülü qutuları, bütün bunlar 2100 01:47:48,590 --> 01:47:50,920 üçün, geri, geri geri bu şəkildə geri. 2101 01:47:50,920 --> 01:47:53,200 >> Və haqqında gözəl nə var Bu fikir, və fakt 2102 01:47:53,200 --> 01:47:58,580 bu şəkildə mənaları ifadə edə bilər ki, Bizim data strukturları ilk ilə 2103 01:47:58,580 --> 01:48:02,520 sinif, biz başlaya bilərsiniz deməkdir kodu ilə problemləri həll etmək 2104 01:48:02,520 --> 01:48:04,079 həftə 0 belə daxilən gəldi. 2105 01:48:04,079 --> 01:48:05,870 Siz telefon geri olacaq kitab misal, harada 2106 01:48:05,870 --> 01:48:09,110 Biz uçurum istifadə fəth və ya bir ikili axtarış alqoritm, 2107 01:48:09,110 --> 01:48:13,220 Bütövlükdə vasitəsilə elemek üçün adları və nömrələri dəstə. 2108 01:48:13,220 --> 01:48:18,220 Amma biz, geri güman ki, telefon kitab artıq sıralanır edilmişdir 2109 01:48:18,220 --> 01:48:21,630 başqası artıq idi ki, yazaraq adları siyahısı verilir fiqurlu 2110 01:48:21,630 --> 01:48:24,430 və onlara alphabetize necə nömrələri. 2111 01:48:24,430 --> 01:48:26,950 İndi ki, C biz də imkanı var 2112 01:48:26,950 --> 01:48:30,290 Şeyi yox qoymaq fiziki bir telefon kitab 2113 01:48:30,290 --> 01:48:34,220 lakin faktiki olaraq kompüter nin yaddaş, biz mümkün gələn həftə olacaq 2114 01:48:34,220 --> 01:48:38,470 ilk şeylərdir yenidən təqdim etmək bir serialın bizim data strukturları 2115 01:48:38,470 --> 01:48:43,530 amma daha əhəmiyyətlisi, faktiki kompüter elm alqoritmlər həyata 2116 01:48:43,530 --> 01:48:47,720 kodu, olan biz bilərsiniz oxşar strukturlarında data, 2117 01:48:47,720 --> 01:48:50,730 və sonra manipulyasiya başlamaq və həqiqətən bu problemləri həll etmək, 2118 01:48:50,730 --> 01:48:53,570 ki, üst qurmaq, nəticədə, C proqramları, 2119 01:48:53,570 --> 01:48:56,730 Python, JavaScript, SQL verilənlər bazası querying? 2120 01:48:56,730 --> 01:48:59,980 >> Və biz bu bütün görürsünüz interlock müxtəlif fikir. 2121 01:48:59,980 --> 01:49:04,100 Amma indi ki, geri biz bu gün təqdim domain 2122 01:49:04,100 --> 01:49:06,920 bu şey burada idi, və Kriptoqrafiya dünya. 2123 01:49:06,920 --> 01:49:11,200 Və növbəti problemləri özünüz arasında həll Kriptoqrafiya sənət olacaq, 2124 01:49:11,200 --> 01:49:13,630 Scrambling və de-Scrambling informasiya və ciphering 2125 01:49:13,630 --> 01:49:15,930 və mətn deciphering, və nəticədə fərz 2126 01:49:15,930 --> 01:49:18,970 İndi bilirik ki, nə başlıq altında 2127 01:49:18,970 --> 01:49:21,860 ki, görmək və ya qəbul etdiyiniz zaman Bu kimi bir mesaj, siz 2128 01:49:21,860 --> 01:49:24,060 özünüz oxumaq olar. 2129 01:49:24,060 --> 01:49:26,740 Bütün bu və daha çox növbəti dəfə. 2130 01:49:26,740 --> 01:49:29,890 2131 01:49:29,890 --> 01:49:30,790 >> [Video playback] 2132 01:49:30,790 --> 01:49:32,970 >> -Mover Yalnız gəldi. 2133 01:49:32,970 --> 01:49:35,146 Mən səfər getmək üçün gedirəm onun kollec professor. 2134 01:49:35,146 --> 01:49:37,611 Bəli. 2135 01:49:37,611 --> 01:49:40,080 Salam. 2136 01:49:40,080 --> 01:49:40,660 Bu sənsən. 2137 01:49:40,660 --> 01:49:44,125 2138 01:49:44,125 --> 01:49:45,110 Gözləmək! 2139 01:49:45,110 --> 01:49:45,610 David. 2140 01:49:45,610 --> 01:49:53,936 2141 01:49:53,936 --> 01:49:56,060 Mən yalnız anlamağa çalışıram başınıza nə. 2142 01:49:56,060 --> 01:49:58,130 Bir şey kömək edə bilər edin. 2143 01:49:58,130 --> 01:50:05,020 2144 01:50:05,020 --> 01:50:08,354 Siz onun kollec idi roommate, siz deyil? 2145 01:50:08,354 --> 01:50:10,770 Onu zaman var idi o CS50 layihə başa? 2146 01:50:10,770 --> 01:50:13,770 2147 01:50:13,770 --> 01:50:15,765 >> [MUSIC PLAYING] 2148 01:50:15,765 --> 01:50:32,110 2149 01:50:32,110 --> 01:50:33,150 >> -Bu CS50 idi. 2150 01:50:33,150 --> 01:50:42,690 2151 01:50:42,690 --> 01:50:44,770 >> Mən bu yer sevgi. 2152 01:50:44,770 --> 01:50:45,854 >> up yeyin. 2153 01:50:45,854 --> 01:50:47,020 Biz biznes olacaq. 2154 01:50:47,020 --> 01:50:52,120 2155 01:50:52,120 --> 01:50:53,970 >> [END playback]