1 00:00:00,000 --> 00:00:00,940 2 00:00:00,940 --> 00:00:05,440 >> [MUSIC ifa] 3 00:00:05,440 --> 00:00:11,577 4 00:00:11,577 --> 00:00:12,660 DAVID J. MALAN: Bütün hüququ. 5 00:00:12,660 --> 00:00:15,590 Bu CS50 və bu həftə iki başlanğıc. 6 00:00:15,590 --> 00:00:19,120 Belə ki, bizə bir səhv ilə bu gün başlasın. 7 00:00:19,120 --> 00:00:20,974 A bug, əlbəttə, bir bir proqramda səhv, 8 00:00:20,974 --> 00:00:22,890 və çox almaq lazımdır Bu konsepsiya ilə tanış 9 00:00:22,890 --> 00:00:26,050 Siz proqramlaşdırılmış heç etdik əgər əvvəl. pset0 və indi pset1. 10 00:00:26,050 --> 00:00:29,280 Amma bir şey hesab edək ilk bir az sadə. 11 00:00:29,280 --> 00:00:32,189 I ki, burada bu proqram , əvvəlcədən birlikdə atdı 12 00:00:32,189 --> 00:00:37,280 və bu çap edilməlidir ki, iddia Printf istifadə edərək ekranda 10 ulduz, 13 00:00:37,280 --> 00:00:41,020 lakin yəqin bir şəkildə arabası var. 14 00:00:41,020 --> 00:00:45,370 >> Dəqiqləşdirilməsi nəzərə alaraq ki, 10 ulduz çap etməlidir 15 00:00:45,370 --> 00:00:50,230 lakin yəqin deyil, nə səhv iddia olardı? 16 00:00:50,230 --> 00:00:52,004 Bəli? 17 00:00:52,004 --> 00:00:54,420 Belə ki, bir səhv bir off var, və bu nə deməkdir? 18 00:00:54,420 --> 00:01:00,991 19 00:01:00,991 --> 00:01:01,490 OK. 20 00:01:01,490 --> 00:01:09,820 21 00:01:09,820 --> 00:01:10,410 Əla. 22 00:01:10,410 --> 00:01:13,930 Belə ki, biz müəyyən etdik i sıfır dəyəri başlamaq, 23 00:01:13,930 --> 00:01:18,399 və biz, 10 n dəyərini müəyyən etdik lakin biz çox və ya bərabər daha az istifadə etdik. 24 00:01:18,399 --> 00:01:21,190 Və bu ki, səbəb iki simvol və yalnız bir simvolu, 25 00:01:21,190 --> 00:01:22,630 riyaziyyat kitab kimi, Siz yoxdur ki, 26 00:01:22,630 --> 00:01:24,880 ifadə edən bir yoldur bir xarakter bərabərdir. 27 00:01:24,880 --> 00:01:28,450 >> Belə ki, az deməkdir, lakin Siz sıfır hesablanması başlamaq əgər, 28 00:01:28,450 --> 00:01:31,690 ancaq bütün yol saymaq 10 vasitəsilə və bərabər, 29 00:01:31,690 --> 00:01:34,170 Siz kurs davam edirik cəmi 11 şeylər saymaq. 30 00:01:34,170 --> 00:01:35,900 Və belə ki, 11 ulduz çap olacaq. 31 00:01:35,900 --> 00:01:37,990 Belə ki, nə bu üçün bir düzeltme ola bilər? 32 00:01:37,990 --> 00:01:39,970 Bəli? 33 00:01:39,970 --> 00:01:43,980 >> Belə ki, yalnız çox az tənzimləmək və ya yalnız az bərabər, 34 00:01:43,980 --> 00:01:46,250 və bəlkə, mən iddia var çox başqa bir həll. 35 00:01:46,250 --> 00:01:47,210 Başqa nə edə bilər? 36 00:01:47,210 --> 00:01:48,590 Bəli? 37 00:01:48,590 --> 00:01:53,660 >> Belə ki, 1 üçün bərabər başlamaq, və az və ya bərabər daha az tərk. 38 00:01:53,660 --> 00:01:56,187 Və səmimi mən iddia edirəm ki, tipik insan üçün, 39 00:01:56,187 --> 00:01:57,770 Bu yəqin ki, daha sadə deyil. 40 00:01:57,770 --> 00:02:00,280 1 hesablanması başlamaq və 10 vasitəsilə count. 41 00:02:00,280 --> 00:02:01,690 Əsasən demək nə. 42 00:02:01,690 --> 00:02:04,010 >> Amma reallıq var proqramlaşdırma, biz gördük kimi, 43 00:02:04,010 --> 00:02:07,598 kompüter alim və proqramçılar ümumiyyətlə sıfır hesablanması başlamaq yoxdur. 44 00:02:07,598 --> 00:02:09,389 Və belə ki, bir dəfə gözəl Siz onu istifadə almaq. 45 00:02:09,389 --> 00:02:12,640 Sizin vəziyyəti ümumiyyətlə edəcək az kimi bir şey ola bilər. 46 00:02:12,640 --> 00:02:14,910 Belə ki, sadəcə məntiqi səhv ki, biz indi bilər 47 00:02:14,910 --> 00:02:17,990 düzeltmek və nəticədə compile Bu və yalnız 10 almaq. 48 00:02:17,990 --> 00:02:19,610 >> Yaxşı, necə burada səhv haqqında? 49 00:02:19,610 --> 00:02:24,200 Burada yenə, Mən ki, iddia 10 stars-- çap bir məqsədi 50 00:02:24,200 --> 00:02:28,140 line bu dəfə başına bir, lakin bu deyil. 51 00:02:28,140 --> 00:02:30,940 Biz təklif əvvəl nə Bu fix bu nə edir 52 00:02:30,940 --> 00:02:34,640 mən tərtib olsaydı vizual çap və bu proqram sizcə run? 53 00:02:34,640 --> 00:02:35,140 Bəli? 54 00:02:35,140 --> 00:02:38,360 55 00:02:38,360 --> 00:02:38,860 >> Star. 56 00:02:38,860 --> 00:02:41,690 Bu belə bütün ulduzları Eyni line eşitdim edir, 57 00:02:41,690 --> 00:02:43,391 və sonra yeni xətt xarakter. 58 00:02:43,391 --> 00:02:44,140 Belə ki, cəhd edək. 59 00:02:44,140 --> 00:02:48,710 Belə ki, buggy-1, daxil etmək, və mən cingilti komanda oldu 60 00:02:48,710 --> 00:02:50,090 biz son dəfə söhbət. 61 00:02:50,090 --> 00:02:55,180 ./buggy-1, həqiqətən, Mən bütün 10 ulduz görmək Mən iddia baxmayaraq eyni xətt üzrə 62 00:02:55,180 --> 00:02:58,690 Mənim dəqiqləşdirilməsi üstün yalnız bir comment-da Mən bir başına etmək üçün nəzərdə ki, kodu 63 00:02:58,690 --> 00:02:59,230 line. 64 00:02:59,230 --> 00:03:00,580 Amma bu doğru görünür. 65 00:03:00,580 --> 00:03:04,620 >> Mən kimi indi line 15 görünür sonra ulduz çap və line 16 66 00:03:04,620 --> 00:03:06,620 Mən çap alıram kimi görünür yeni xətt xarakter, 67 00:03:06,620 --> 00:03:09,560 və onlar həm indented edirik Mən aydın loop daxilində deyiləm. 68 00:03:09,560 --> 00:03:13,610 Mən ulduz bunu lazım deyil, yeni line, star, yeni xətt, star, yeni xətt? 69 00:03:13,610 --> 00:03:14,110 Bəli? 70 00:03:14,110 --> 00:03:18,430 71 00:03:18,430 --> 00:03:21,240 >> Bəli, bir dil fərqli kimi Python, siz tanış değilseniz, 72 00:03:21,240 --> 00:03:23,540 abzas deyil kompüter əhəmiyyətli. 73 00:03:23,540 --> 00:03:25,280 Bu, yalnız insan məsələləri. 74 00:03:25,280 --> 00:03:29,860 Halbuki burada mən icad etdik xətləri belə 15 və gözəl görünür ki, 16 giriş, 75 00:03:29,860 --> 00:03:31,330 lakin kompüter qayğı deyil. 76 00:03:31,330 --> 00:03:34,640 Kompüter haqqında qayğı həqiqətən qıvrım aşırma olan 77 00:03:34,640 --> 00:03:36,310 kodu bu xətlər ətrafında. 78 00:03:36,310 --> 00:03:39,520 >> Belə ki, yalnız kimi clear-- var Scratch-- kodu həmin iki xətləri ki, 79 00:03:39,520 --> 00:03:40,450 icra olunmalıdır. 80 00:03:40,450 --> 00:03:44,390 O sarı Scratch puzzle biri kimi ədəd təkrar və yenidən. 81 00:03:44,390 --> 00:03:50,920 >> Mən əgər Belə ki, indi yenidən run program-- ./buggy-2-- Hm. 82 00:03:50,920 --> 00:03:51,770 Mən indi bir səhv var. 83 00:03:51,770 --> 00:03:54,212 Mən nə üçün unutmaq idi? 84 00:03:54,212 --> 00:03:55,420 Bəli, mən onu tərtib etməyib. 85 00:03:55,420 --> 00:03:56,740 Belə ki, buggy-2 olun. 86 00:03:56,740 --> 00:03:59,840 Belə bir fayl almadım əslində ikinci versiyası tərtib edir. 87 00:03:59,840 --> 00:04:04,860 Belə ki, indi maraqlı undeclared 2 deyil dəyişən. 88 00:04:04,860 --> 00:04:05,510 Biz 1 edirik. 89 00:04:05,510 --> 00:04:11,050 İndi arabası-1-- ./buggy-1-- etmək Onların hər biri eyni xətt üzrə. 90 00:04:11,050 --> 00:04:13,880 >> İndi bir istisna var Mənim bu ehtimal iddia 91 00:04:13,880 --> 00:04:15,520 ki, bu qıvrım aşırma lazımdır. 92 00:04:15,520 --> 00:04:20,160 Zaman əslində OK-- etdik əgər bölmə və ya textbooks-- qeyd 93 00:04:20,160 --> 00:04:22,130 qıvrım aşırma buraxmaq? 94 00:04:22,130 --> 00:04:22,630 Bəli? 95 00:04:22,630 --> 00:04:26,290 96 00:04:26,290 --> 00:04:26,870 >> Dəqiq. 97 00:04:26,870 --> 00:04:28,940 Yalnız bir zaman kod line ki, 98 00:04:28,940 --> 00:04:32,830 ilə bağlı istəyirəm İlk Məsələn kimi loop. 99 00:04:32,830 --> 00:04:36,380 Bu mükəmməl qanuni qıvrım aşırma buraxmaq 100 00:04:36,380 --> 00:04:40,310 yalnız bir rahatlığı növ kimi Sizə compiler edir. 101 00:04:40,310 --> 00:04:40,810 Bəli? 102 00:04:40,810 --> 00:04:43,347 103 00:04:43,347 --> 00:04:43,930 Yaxşı sualdır. 104 00:04:43,930 --> 00:04:45,500 Bu bir stil səhv hesab olunacaq? 105 00:04:45,500 --> 00:04:49,340 Biz CS50 kimi promote-- olardı style guide, olan URL 106 00:04:49,340 --> 00:04:51,926 ki, həmişə pset1-- edir qıvrım aşırma istifadə edin. 107 00:04:51,926 --> 00:04:53,550 Əlbəttə proqramlaşdırma yeni əgər. 108 00:04:53,550 --> 00:04:56,800 Reallıq biz deyilik ki, sizə qadağan gedir 109 00:04:56,800 --> 00:04:58,680 Bu şərait bunu. 110 00:04:58,680 --> 00:05:00,846 Amma yalnız alıyorsanız şeyi swing daxil, 111 00:05:00,846 --> 00:05:04,020 tamamilə yalnız həmişə buruq istifadə Siz onun asmaq almaq qədər aşırma. 112 00:05:04,020 --> 00:05:04,640 Yaxşı sualdır. 113 00:05:04,640 --> 00:05:05,320 >> Bütün hüquqlar. 114 00:05:05,320 --> 00:05:07,660 Belə ki, sonra bir səhv idi. 115 00:05:07,660 --> 00:05:09,190 Kifayət qədər sadə bir şey azı. 116 00:05:09,190 --> 00:05:11,260 Və hələ siz bu hesab bilər sağ, olduqca elementar? 117 00:05:11,260 --> 00:05:13,635 Bu, birinci həftə sort dilində baxaraq 118 00:05:13,635 --> 00:05:14,890 kimi, sizin hataları orada görürük. 119 00:05:14,890 --> 00:05:17,250 Amma reallıq bu var həqiqətən nümayəndəsi 120 00:05:17,250 --> 00:05:20,310 bəzi olduqca qorxulu problemləri ki, real dünyada yarana bilər. 121 00:05:20,310 --> 00:05:23,530 >> Belə ki, bəzi xatırlayıram bilər Siz texnologiya xəbər edin, 122 00:05:23,530 --> 00:05:25,740 və ya bəlkə hətta tutuldu Fevral ayında bu külək 123 00:05:25,740 --> 00:05:29,434 Apple ki, bu ötən ilin , həm də iOS bir səhv bir az etdi 124 00:05:29,434 --> 00:05:31,350 üzrə əməliyyat sistemi onların telefonlar, həmçinin 125 00:05:31,350 --> 00:05:34,220 Mac OS əməliyyat sistemi onların masa üstü və noutbuk. 126 00:05:34,220 --> 00:05:36,480 Və bu kimi başlıqları gördüm. 127 00:05:36,480 --> 00:05:41,120 Və sonra, Apple bu səhv düzeltmek üçün vəd, 128 00:05:41,120 --> 00:05:45,950 və çox tez, iOS düzeltmek etdi lakin sonra nəticədə Mac OS sabit 129 00:05:45,950 --> 00:05:46,810 həmçinin. 130 00:05:46,810 --> 00:05:50,370 >> İndi bu başlıqları heç biri tək, həqiqətən, əsas problem nə aşkar, 131 00:05:50,370 --> 00:05:55,640 lakin səhv nəticədə salındı SSL bir səhv, təhlükəsiz sockets qat. 132 00:05:55,640 --> 00:05:57,390 Və uzun hekayə qısa, Bu proqram 133 00:05:57,390 --> 00:06:01,030 ki, bizim browser və digər proqram nə üçün istifadə? 134 00:06:01,030 --> 00:06:04,090 135 00:06:04,090 --> 00:06:06,860 >> Mən SSL bildirib ki, əgər cəlb zaman sizə 136 00:06:06,860 --> 00:06:13,920 , HTTPS ilə başlayır ki, bir URL ziyarət sonra nə SSL ilə bağlı ola bilər? 137 00:06:13,920 --> 00:06:14,580 Encryption. 138 00:06:14,580 --> 00:06:16,470 Belə ki, haqqında danışmaq lazımdır önümüzdəki günlərdə bu. 139 00:06:16,470 --> 00:06:18,750 Encryption, sənəti məlumat Scrambling. 140 00:06:18,750 --> 00:06:22,200 >> Amma uzun hekayə qısa, Apple zaman bir səhv etdi əvvəl 141 00:06:22,200 --> 00:06:25,970 , SSL onların həyata keçirilməsində nəticədə həyata keçirir software 142 00:06:25,970 --> 00:06:30,120 HTTPS və ya max URL'leri də var əlaqələri. 143 00:06:30,120 --> 00:06:32,850 Olan nəticə ki, sizin əlaqələri potensial bilər 144 00:06:32,850 --> 00:06:33,920 ələ. 145 00:06:33,920 --> 00:06:37,130 Və əlaqələri edildi mütləq şifrelenmiş deyil 146 00:06:37,130 --> 00:06:40,350 Siz arasında bəzi pis oğlan olsa Siz və hedef veb edən 147 00:06:40,350 --> 00:06:42,170 Bu istifadə etmək üçün necə bilirdi. 148 00:06:42,170 --> 00:06:45,090 >> İndi Apple nəticədə olunub bir nəhayət bu fix, 149 00:06:45,090 --> 00:06:46,920 və təsviri onların fix bu idi. 150 00:06:46,920 --> 00:06:49,878 Secure nəqliyyat doğrulamak bilmədi əlaqədar həqiqiliyini. 151 00:06:49,878 --> 00:06:52,920 Bu məsələ xitab etdi itkin qiymətləndirmə addımlar bərpa. 152 00:06:52,920 --> 00:06:57,250 >> Belə ki, bu çox əl dalğalı izah edir sadəcə biz berbat olduğunu söyləyən üçün. 153 00:06:57,250 --> 00:07:00,920 Sözün bir var buggy idi ki, kodu line 154 00:07:00,920 --> 00:07:05,130 onların SSL həyata keçirilməsi və Siz online getmək və bu üçün axtarış 155 00:07:05,130 --> 00:07:07,210 Siz həqiqətən tapa bilərsiniz orijinal mənbə kodu. 156 00:07:07,210 --> 00:07:11,960 Məsələn, bu bir ekran shot edir yalnız kifayət qədər böyük fayl bir hissəsi, 157 00:07:11,960 --> 00:07:15,965 lakin bu yəqin adlı funksiyası SSL əlaməti server əsas mübadiləsi yoxlamaq. 158 00:07:15,965 --> 00:07:17,840 Və bir dəstə edir dəlilləri və giriş. 159 00:07:17,840 --> 00:07:20,298 Və biz diqqət fikrində deyilik orada minutia çox çox, 160 00:07:20,298 --> 00:07:24,390 ancaq daxili kodu diqqət əgər edək funksiyası ki topmost və 161 00:07:24,390 --> 00:07:25,590 ki, zoom. 162 00:07:25,590 --> 00:07:28,140 Siz artıq şübhəli bilər nə səhv ola bilər 163 00:07:28,140 --> 00:07:31,230 Siz heç bir fikrim yoxdur, hətta ola nəticədə siz aradığınız nə. 164 00:07:31,230 --> 00:07:35,924 Bir anormallıq növü var burada olan nədir? 165 00:07:35,924 --> 00:07:38,940 >> Bəli, Mən, həqiqətən, sevmiyorum iki keçid görünüşünü bilmir. 166 00:07:38,940 --> 00:07:42,060 Açığı, mən həqiqətən bilmirəm nə goto vasitələri uğursuz, lakin onların iki olan 167 00:07:42,060 --> 00:07:42,810 geri geri. 168 00:07:42,810 --> 00:07:45,290 Yalnız cür mənə rubs intellektual yanlış yol, 169 00:07:45,290 --> 00:07:48,910 və biz zoom əgər həqiqətən yalnız xətləri, bu C. edir 170 00:07:48,910 --> 00:07:52,220 >> Belə ki, Apple kodu bir çox özü C yazılmış, 171 00:07:52,220 --> 00:07:55,780 və bu yəqin həqiqətən equivalent-- edir 172 00:07:55,780 --> 00:07:59,060 deyil ki, olduqca abzas üçün versiyası, lakin siz tanımaq əgər fakt 173 00:07:59,060 --> 00:08:02,560 heç bir qıvrım aşırma var ki, nə Apple həqiqətən görünür ki, kodu yazdı 174 00:08:02,560 --> 00:08:03,540 bu kimi. 175 00:08:03,540 --> 00:08:07,080 Mən həyata zoomed və yalnız mən etdik Bu mənada abzas sabit 176 00:08:07,080 --> 00:08:10,690 heç bir qıvrım aşırma, ki, əgər ikinci keçid ki, sarı var uğursuz 177 00:08:10,690 --> 00:08:12,500 heç nə icra edir. 178 00:08:12,500 --> 00:08:15,540 Bu ilə bağlı deyil yuxarıda əgər vəziyyət. 179 00:08:15,540 --> 00:08:19,590 >> Belə ki, hətta daha, əgər kifayət qədər anlamaq nə bu mümkün ola bilər 180 00:08:19,590 --> 00:08:23,230 bunu ola bilir, bu ki, hər Bu xətlərin hər şəraitdə 181 00:08:23,230 --> 00:08:26,180 çox əhəmiyyətli bir addımdır yoxlanılması prosesində 182 00:08:26,180 --> 00:08:28,350 Sizin data əslində şifrelenir. 183 00:08:28,350 --> 00:08:31,710 Belə ki, bu bir atlama addımlar, ən yaxşı fikir. 184 00:08:31,710 --> 00:08:34,840 >> Amma biz bu var, çünki ikinci keçid, sarı uğursuz 185 00:08:34,840 --> 00:08:36,840 çünki biz bir dəfə sort estetik 186 00:08:36,840 --> 00:08:40,480 harada sol hərəkət məntiqi an, nə 187 00:08:40,480 --> 00:08:43,230 bu xətt üçün deməkdir ikinci keçid aşağıda kodu 188 00:08:43,230 --> 00:08:46,480 Sizcə uğursuz oldu? 189 00:08:46,480 --> 00:08:48,860 O, həmişə atlandı olacaq. 190 00:08:48,860 --> 00:08:52,100 Belə ki, gotos, ümumiyyətlə, sonra qaşqabağını töküb üzünü olunur biz, həqiqətən, daxil deyil səbəblərdən, 191 00:08:52,100 --> 00:08:54,940 və həqiqətən CS50 biz etməyin Bu bəyanat keçid öyrətmək, 192 00:08:54,940 --> 00:08:58,130 lakin keçid hesab edə bilər mənası go jump kimi uğursuz 193 00:08:58,130 --> 00:08:59,600 kodu bəzi digər hissəsi. 194 00:08:59,600 --> 00:09:03,120 >> Başqa sözlə atlanmaq tamamilə bu son xətt, 195 00:09:03,120 --> 00:09:07,420 və bu axmaq nəticə yalnız idi ki, sadə səhv 196 00:09:07,420 --> 00:09:10,330 yəqin ki, kimsə bir nəticə çıxarmaq və çox bir sovuşdurmaq 197 00:09:10,330 --> 00:09:14,150 dəfələrlə bütün ki, iOS və Mac OS təhlükəsizlik 198 00:09:14,150 --> 00:09:18,240 ələ həssas çox vaxt pis uşaqlar tərəfindən. 199 00:09:18,240 --> 00:09:19,940 Apple qədər nəhayət bu sabit. 200 00:09:19,940 --> 00:09:23,100 >> İndi bəzi həqiqətən əgər iOS və ya Mac OS köhnə versiyasını çalışan, 201 00:09:23,100 --> 00:09:27,250 Siz gotofail.com getmək bilər kimsə müəyyən bir haqqinda 202 00:09:27,250 --> 00:09:29,190 mahiyyətcə müəyyən etmək üçün program 203 00:09:29,190 --> 00:09:30,980 Sizin kompüter hələ həssas edir. 204 00:09:30,980 --> 00:09:33,600 Və səmimi, bu halda, yəqin ki, yaxşı bir fikirdir 205 00:09:33,600 --> 00:09:36,870 Telefonunuzu yeniləmənin və ya Bu nöqtədə sizin Mac. 206 00:09:36,870 --> 00:09:40,120 Amma, yalnız vəsiyyət yalnız necə bu aşağı səviyyədə artması 207 00:09:40,120 --> 00:09:42,400 ətraflı və ədalətli sadə fikir bilərsiniz həqiqətən 208 00:09:42,400 --> 00:09:44,590 qərarlar tərcümə və problemlər ki, 209 00:09:44,590 --> 00:09:47,320 Bu iki halda da affected-- milyonlarla insan. 210 00:09:47,320 --> 00:09:49,107 >> Rəhbərliyi artıq bir söz. 211 00:09:49,107 --> 00:09:50,690 Bölmə bu gələn bazar günü başlayacaq. 212 00:09:50,690 --> 00:09:53,360 Siz bir e-poçt alacaq bölmə barədə həftəsonu, hansı nöqtədə 213 00:09:53,360 --> 00:09:55,290 Bu resectioning prosesi Siz var əgər başlayacaq 214 00:09:55,290 --> 00:09:56,998 Siz indi həyata bəzi yeni münaqişələr. 215 00:09:56,998 --> 00:10:00,180 Belə ki, bu hər il baş verir və biz gələcək günlərdə yerləşdirmək olacaq. 216 00:10:00,180 --> 00:10:02,430 >> Office hours-- bir saxlamaq yoxdur Burada bu cədvəli göz. 217 00:10:02,430 --> 00:10:05,100 Bu həftə bir az dəyişir, xüsusilə start zaman 218 00:10:05,100 --> 00:10:08,180 və yeri belə müraciət yoxdur ki, ofis saat üçün mal əvvəl 219 00:10:08,180 --> 00:10:09,520 növbəti dörd gecə heç. 220 00:10:09,520 --> 00:10:12,680 İndi qiymətləndirilməsi üzrə bir söz, Siz problem dalış xüsusilə də 221 00:10:12,680 --> 00:10:14,350 bir və kənarda qoyur. 222 00:10:14,350 --> 00:10:17,070 >> Dəqiqləşdirilməsi başına Belə ki, Bu ümumiyyətlə 223 00:10:17,070 --> 00:10:20,360 baltalar boyunca biz iş qiymətləndirmək. 224 00:10:20,360 --> 00:10:23,170 Sayt aiddir nə dərəcədə kodu həyata keçirir 225 00:10:23,170 --> 00:10:25,690 xüsusiyyətləri tələb Bizim dəqiqləşdirilməsi ilə. 226 00:10:25,690 --> 00:10:28,290 Başqa sözlə, nə qədər bir parça set siz off yemək idi. 227 00:10:28,290 --> 00:10:30,440 Siz onu bir üçüncü mi, bu bir yarım, bu 100%. 228 00:10:30,440 --> 00:10:33,000 Bu doğru deyil, hətta, Siz nə qədər cəhd etmədi? 229 00:10:33,000 --> 00:10:35,290 Ki, səviyyəsi tutan belə səy və məbləği 230 00:10:35,290 --> 00:10:38,260 olan siz off dişlədi problem set problemləri. 231 00:10:38,260 --> 00:10:40,690 >> Bu bir Correctness-- üçün nə dərəcədə sizin kodu 232 00:10:40,690 --> 00:10:43,150 uyğun bizim spesifikasiyası və hataları pulsuz. 233 00:10:43,150 --> 00:10:44,770 Belə ki, düzgün işləyir? 234 00:10:44,770 --> 00:10:48,700 Biz bəzi giriş vermək, onu edir biz gözləmirik ki, çıxış verir? 235 00:10:48,700 --> 00:10:52,570 Design-- indi bu ilk xüsusilə keyfiyyətli olanları, 236 00:10:52,570 --> 00:10:56,180 və ya insan hökm tələb olanları. 237 00:10:56,180 --> 00:10:59,690 Biz bir heyət var niyə və həqiqətən, bu çox tədris yoldaşları və əlbəttə 238 00:10:59,690 --> 00:11:00,350 köməkçiləri. 239 00:11:00,350 --> 00:11:03,480 Nə dərəcədə sizin edir kodu yazılı? 240 00:11:03,480 --> 00:11:05,810 >> Və yenə bu çox deyil keyfiyyətcə qiymətləndirilməsi 241 00:11:05,810 --> 00:11:09,100 ki, sizinlə işləyəcək həftə bi-directionally gəlib. 242 00:11:09,100 --> 00:11:12,060 Belə ki, siz almaq zaman yalnız sayısal skorlari, həm də 243 00:11:12,060 --> 00:11:16,682 yazılı skorlari, və ya çap rəy, və ya İngilis dili sözlər geribildirim yazılı. 244 00:11:16,682 --> 00:11:19,640 Biz sizə sürücü istifadə edəcəyik nə həqiqətən yaxşı yazılı kodu doğru. 245 00:11:19,640 --> 00:11:23,320 Mühazirə və bölümünde, biz çalışacağıq kimi tez-tez biz can-- kimi yazaraq qeyd etmək 246 00:11:23,320 --> 00:11:26,420 nə bir proqram edir yalnız düzgün və funksional yaxşı, 247 00:11:26,420 --> 00:11:28,200 həm də yaxşı nəzərdə tutulmuşdur. 248 00:11:28,200 --> 00:11:31,850 Ən səmərəli ola, və ya edə bilər hətta ən gözəl ola bilər. 249 00:11:31,850 --> 00:11:33,100 >> Hansı stil gətirib çıxarır. 250 00:11:33,100 --> 00:11:36,876 Style nəticədə estetik qərar. 251 00:11:36,876 --> 00:11:38,750 Yaxşı seçdin Sizin dəyişənlərin adlar? 252 00:11:38,750 --> 00:11:40,330 Siz düzgün kodu indented var? 253 00:11:40,330 --> 00:11:44,010 Buna görə də yaxşı baxmaq, və deyil, Bu bir insan üçün asandır 254 00:11:44,010 --> 00:11:46,550 müvafiq oxumaq üçün onun düzgünlüyünə. 255 00:11:46,550 --> 00:11:50,300 >> İndi ümumiyyətlə tədris başına, biz hesab Beş ballıq şkala üzrə bu şeylər. 256 00:11:50,300 --> 00:11:53,640 Və mənə point ev çəkic imkan üç həqiqətən yaxşıdır. 257 00:11:53,640 --> 00:11:55,550 Çox tez insanlar bunu hesab etməklə başlayın. 258 00:11:55,550 --> 00:11:58,133 Onlar üç çıxmaq zaman bəzi pset üçün düzgünlüyünə beş 259 00:11:58,133 --> 00:12:02,040 və onlar lənətləmək ki, mən 60% olacaq olan mahiyyətcə D və ya E. edir 260 00:12:02,040 --> 00:12:03,980 >> Bu yol deyil biz bu nömrələri hesab. 261 00:12:03,980 --> 00:12:06,880 Üç nə həqiqətən, yaxşı, və biz ümumiyyətlə başında gözləmək 262 00:12:06,880 --> 00:12:09,820 müddəti siz əldə edirik, əgər ki, bəlkə three's-- bir dəstə bir neçə 263 00:12:09,820 --> 00:12:12,540 Sərgilər, fours-- bir neçə və ya bir neçə ikilər, fours-- bir neçə 264 00:12:12,540 --> 00:12:13,748 ki, başlamaq üçün yaxşı bir yer. 265 00:12:13,748 --> 00:12:16,320 Və biz bir qədər uzun görmək kimi zamanla yuxarı trajectory, 266 00:12:16,320 --> 00:12:18,540 Siz xüsusilə yaxşı bir yerdə deyilik. 267 00:12:18,540 --> 00:12:20,752 >> Biz üçün istifadə formula çəki şey mahiyyətcə 268 00:12:20,752 --> 00:12:22,710 tədris başına bu, yalnız biz o deməkdir ki, 269 00:12:22,710 --> 00:12:24,750 düzgünlüyünə daha çox ağırlıq verir. 270 00:12:24,750 --> 00:12:27,930 Çox tez-tez düzgün deyil, çünki ki ən çox vaxt alır. 271 00:12:27,930 --> 00:12:28,760 İndi mənə etibar. 272 00:12:28,760 --> 00:12:31,190 Siz ən azı find-- edəcək bir pset-- ki, sizə 273 00:12:31,190 --> 00:12:36,790 zaman 90% sərf problemin 10% üzərində işləyir. 274 00:12:36,790 --> 00:12:39,320 >> Və hər şey sort işləri bir və ya iki hatalar istisna olmaqla, 275 00:12:39,320 --> 00:12:41,570 və o bugs var ki, gecə gec qədər saxlamaq. 276 00:12:41,570 --> 00:12:43,380 Həmin olanlardır ki, sort xilas. 277 00:12:43,380 --> 00:12:45,560 Amma bu yuxu sonra, və ya ofis saat iştirak 278 00:12:45,560 --> 00:12:48,844 və ya, online sualları soruşaraq Siz 100% qol almaq zaman, 279 00:12:48,844 --> 00:12:50,760 ki, niyə biz çəki ən düzgün. 280 00:12:50,760 --> 00:12:54,102 Bir az dizayn və ki, bir az daha stil. 281 00:12:54,102 --> 00:12:56,060 Amma mind-- stil saxlamaq bəlkə asan deyil 282 00:12:56,060 --> 00:12:58,890 bu off yemək Bu style guide kimi. 283 00:12:58,890 --> 00:13:01,580 >> İndi, bir daha ciddi akademik düzlük barədə arayış. 284 00:13:01,580 --> 00:13:05,000 CS50 uğursuz xüsusiyyətini daşıyır Ad heyəti ən böyük istehsalçısı olan 285 00:13:05,000 --> 00:13:07,330 hallarda demək olar ki, hər il tarixən. 286 00:13:07,330 --> 00:13:11,012 Tələbələr fırıldaqçı, çünki bu deyil CS50 bir daha hər hansı digər sinif daha, 287 00:13:11,012 --> 00:13:13,720 lakin işin təbiəti ilə, elektron var ki, 288 00:13:13,720 --> 00:13:16,636 bunun üçün baxmaq, və ki, əslində biz kompüter elm adamları, 289 00:13:16,636 --> 00:13:20,570 Mən biz təəssüf ki, demək olar onu aşkar çox yaxşı. 290 00:13:20,570 --> 00:13:22,710 >> Belə ki, bu real olaraq nə deməkdir? 291 00:13:22,710 --> 00:13:24,820 Belə ki, tədris başına, Kursun fəlsəfəsi 292 00:13:24,820 --> 00:13:28,090 həqiqətən ağlabatan aşağı qaynatmaq deyil. 293 00:13:28,090 --> 00:13:31,684 Bu xətt arasında var Öz bir iş etdiklərini 294 00:13:31,684 --> 00:13:34,100 və bir az əldə bir dost ağlabatan yardım, 295 00:13:34,100 --> 00:13:38,020 və açıq üçün ki, iş sizin dost və ya ona sizin kodu göndərilməsi 296 00:13:38,020 --> 00:13:41,080 o sadəcə bilərsiniz ki, və ya hüququ həyata borc. 297 00:13:41,080 --> 00:13:43,580 Və xətti keçir biz sinif tərtib ki,. 298 00:13:43,580 --> 00:13:45,410 >> , Proqramının bax nəticədə xətləri üçün 299 00:13:45,410 --> 00:13:48,209 biz ağlabatan olaraq cəlb edən və əsassız davranış, 300 00:13:48,209 --> 00:13:50,000 lakin bu, həqiqətən boil edir Mahiyyəti aşağı 301 00:13:50,000 --> 00:13:53,980 iş ehtiyacı sonunda öz olun. 302 00:13:53,980 --> 00:13:56,230 İndi dedi ki, Heuristic var. 303 00:13:56,230 --> 00:13:58,980 Siz imagine-- bilər, çünki ofis saat və visuals 304 00:13:58,980 --> 00:14:01,060 və video biz göstərilən beləliklə far-- CS50 305 00:14:01,060 --> 00:14:04,530 həqiqətən əməkdaşlıq kimi olmaq deməkdir və kooperativ və ictimai 306 00:14:04,530 --> 00:14:06,450 mümkün. 307 00:14:06,450 --> 00:14:08,570 Işbirlikçi kimi ciddi kimi. 308 00:14:08,570 --> 00:14:11,314 >> Amma bu ifadə edərək, Heuristic, Siz proqramı görəcəksiniz kimi, 309 00:14:11,314 --> 00:14:12,980 Bəzi problem qarşılaşdıqda zaman ki. 310 00:14:12,980 --> 00:14:16,470 Siz kodu bəzi səhv var ki, həll edə bilməz, bu, sizin üçün məqbul 311 00:14:16,470 --> 00:14:18,039 başqası üçün kodu göstərəcək. 312 00:14:18,039 --> 00:14:21,080 Hətta sinif A dostu, yoldaşı ofis saat siz yanında oturan, 313 00:14:21,080 --> 00:14:22,680 və ya işçi heyətinin üzvüdür. 314 00:14:22,680 --> 00:14:25,810 Lakin onlar sizə onların kodu göstərə bilər. 315 00:14:25,810 --> 00:14:27,710 >> Başqa sözlə, bir Sizin question-- cavab 316 00:14:27,710 --> 00:14:29,940 Mən help-- oh, burada mənim kodu deyil lazımdır. 317 00:14:29,940 --> 00:14:32,440 Bu bir göz atın və Siz nə bu anlamak. 318 00:14:32,440 --> 00:14:34,580 İndi, əlbəttə, var bir yol aydın oyun 319 00:14:34,580 --> 00:14:37,760 Mən sizə göstərmək lazımdır vasitəsi bu sistem bir sual olan əvvəl mənim kodu. 320 00:14:37,760 --> 00:14:40,150 Siz mənim sizin kodu göstərmək bir sual olan əvvəl. 321 00:14:40,150 --> 00:14:45,870 Amma yenə proqramının bax bu xətt harada finer ətraflı. 322 00:14:45,870 --> 00:14:50,606 >> Sadəcə, indi şəkil boya və kimi şəffaf mümkün pay 323 00:14:50,606 --> 00:14:53,480 biz son illərdə olduğu, Bu Reklamlar Board hallarının sayı 324 00:14:53,480 --> 00:14:56,260 ki, CS50 artıq olmuşdur Son yeddi il. 325 00:14:56,260 --> 00:14:58,717 14 hallarda bu ən son payız ilə. 326 00:14:58,717 --> 00:15:01,300 Alan şagirdlər baxımından, 20 bir tək tələbələri 327 00:15:01,300 --> 00:15:02,490 bu son payız. 328 00:15:02,490 --> 00:15:05,670 33 limiti var idi bir neçə il əvvəl tələbələr. 329 00:15:05,670 --> 00:15:08,830 Kimə çox təəssüf ki, artıq burada kampus. 330 00:15:08,830 --> 00:15:13,100 >> Bu faizi kimi cəlb tələbələr class tarixən 0% arasında seyr edir 331 00:15:13,100 --> 00:15:17,300 demək, yalnız olan 5.3% üçün Bu il bir çağırışdır. 332 00:15:17,300 --> 00:15:20,390 Və sonuna doğru, nə Biz bir çatdırmaq nə etmək istəyirəm 333 00:15:20,390 --> 00:15:24,310 biz yalnız FYI-- ilə müqayisə dd-- ki şagirdlər üçün ədalət olan 334 00:15:24,310 --> 00:15:26,520 müvafiq xətti aşağıdakılardır. 335 00:15:26,520 --> 00:15:29,620 Biz bütün cari müqayisə bütün keçmiş missiyaları qarşı təqdim 336 00:15:29,620 --> 00:15:30,840 Son bir çox il. 337 00:15:30,840 --> 00:15:33,620 >> Biz ətrafında Google necə çox bilmək və kodu depolar tapmaq 338 00:15:33,620 --> 00:15:36,360 online, müzakirə forumları online iş sites. 339 00:15:36,360 --> 00:15:41,580 Tələbə onu tapa bilərsiniz əgər, biz, şübhəsiz ki bilərsiniz kimi çox biz təəssüflə kimi tapa bilərsiniz. 340 00:15:41,580 --> 00:15:45,330 Beləliklə, nə siz tədris görəcəksiniz baxmayaraq ki, bu təəssüf bənddə deyil. 341 00:15:45,330 --> 00:15:47,500 Mən əlbəttə bilərsiniz yüksək qiymətləndiririk və biz bütün var 342 00:15:47,500 --> 00:15:50,870 heyəti kurs kimi etmiş zamanla bu və ya bu özü, 343 00:15:50,870 --> 00:15:53,997 əlbəttə ki, zaman kimi nə bilirik həyat zaman yol olur 344 00:15:53,997 --> 00:15:56,080 bir gec gecə deadline-- yalnız bu sinif, 345 00:15:56,080 --> 00:15:58,660 lakin another-- etdiyiniz zaman tamamilə tükənmiş, qeyd 346 00:15:58,660 --> 00:16:00,659 oransız sıra digər şeylər etmək. 347 00:16:00,659 --> 00:16:03,660 Siz bir nöqtədə da edəcək əlbəttə, pis, bəlkə gec həyat 348 00:16:03,660 --> 00:16:04,620 gecə qərar. 349 00:16:04,620 --> 00:16:06,520 >> Proqramın hər Belə ki, Bu bənddə var, 350 00:16:06,520 --> 00:16:10,629 edilməsi, belə ki, əgər ərzində 72 saat bəzi yoxsul qərar, bu qədər öz 351 00:16:10,629 --> 00:16:12,670 və mənə çatmaq və Kursun rəhbərlərindən biri 352 00:16:12,670 --> 00:16:14,300 və biz bir görüşmə edəcək. 353 00:16:14,300 --> 00:16:16,220 Biz hər şeyi idarə edəcək məcburi ümid 354 00:16:16,220 --> 00:16:18,770 bir daha olmaq tədris an və ya həyat dərsi, 355 00:16:18,770 --> 00:16:22,120 və bir şey deyil xüsusilə kəskin ramifications 356 00:16:22,120 --> 00:16:24,570 Siz burada bu çizelgeleri görmək bilər. 357 00:16:24,570 --> 00:16:26,540 >> Belə ki, bir çox ciddi ton var. 358 00:16:26,540 --> 00:16:29,960 Bizə yalnız bir neçə fasilə edək saniyə gərginlik qırmaq üçün. 359 00:16:29,960 --> 00:16:34,442 >> [MUSIC ifa] 360 00:16:34,442 --> 00:17:17,768 361 00:17:17,768 --> 00:17:20,250 >> DAVID J. MALAN: Bütün sağ, belə ki, necə idi segue üçün? 362 00:17:20,250 --> 00:17:22,059 Bu gün əsas mövzular. 363 00:17:22,059 --> 00:17:23,859 Olan ilk abstraksiya deyil. 364 00:17:23,859 --> 00:17:26,900 Olan başqa olacaq olan səmimi data nümayəndəliyi 365 00:17:26,900 --> 00:17:31,640 necə deyərək həqiqətən quru yolu biz bilər problemlərin həlli və düşüncə haqqında getmək 366 00:17:31,640 --> 00:17:33,250 problemlərin həlli haqqında? 367 00:17:33,250 --> 00:17:37,285 Belə ki, Not gördüm, və siz var C pset1 bəlkə artıq görüldü 368 00:17:37,285 --> 00:17:39,930 Siz yalnız istifadə edə bilərsiniz ki, funksiyaları printf kimi, 369 00:17:39,930 --> 00:17:42,770 digər insanlar il keçmiş sizin üçün yazmışdır. 370 00:17:42,770 --> 00:17:45,340 Siz həmçinin öz funksiyaları yaza bilərsiniz. 371 00:17:45,340 --> 00:17:48,440 >> Və ola bilər, baxmayaraq ki, pset1 səmimi C bu görülən və 372 00:17:48,440 --> 00:17:51,866 Siz, həqiqətən, yazmaq lazım deyil Bu problem, çünki öz funksiyası 373 00:17:51,866 --> 00:17:53,990 bəlkə zor isə ilk görürsünüz glance-- 374 00:17:53,990 --> 00:17:57,910 nəticədə ilə həll edilə bilər kodu bütün bir çox xətləri. 375 00:17:57,910 --> 00:18:01,140 Amma ki baxımından bildirib öz funksiyasını yazmaq, 376 00:18:01,140 --> 00:18:03,570 vermək C etmir ki, həyata Bu qabiliyyəti. 377 00:18:03,570 --> 00:18:06,940 >> Mən bugünkü mənbə kodu getmək üçün gedirəm , artıq mövcud online 378 00:18:06,940 --> 00:18:10,900 və mən irəli və açıq getmək üçün gedirəm funksiyası 0.C adlı bir proqram up, 379 00:18:10,900 --> 00:18:14,620 və funksiyası sıfır biz bir neçə şeyi görəcəksiniz. 380 00:18:14,620 --> 00:18:19,160 Ilk xətləri 18 vasitəsilə 23 mənim əsas funksiyası var. 381 00:18:19,160 --> 00:18:22,414 Və indi biz oxumaq başlayan edirik ki, biz Tez yazılı deyilik ki kodu, 382 00:18:22,414 --> 00:18:25,080 ancaq mən əvvəlcədən yazdıq və ya bir problem siz müəyyən ki, 383 00:18:25,080 --> 00:18:27,910 olan ala bilər əvvəlcədən yazılmış. 384 00:18:27,910 --> 00:18:30,040 A yaxşı yol başlamaq üçün başqasının kodu oxu 385 00:18:30,040 --> 00:18:31,400 əsas funksiyası axtarmaq edir. 386 00:18:31,400 --> 00:18:34,420 Harada ki, giriş anlamaq point proqram çalışan üçün, 387 00:18:34,420 --> 00:18:36,580 və sonra orada məntiqi edin. 388 00:18:36,580 --> 00:18:40,190 >> Belə ki, bu proqram yəqin izləri kolon izlədi adı. 389 00:18:40,190 --> 00:18:42,490 Biz sonra GetString istifadə CS50 kitabxana 390 00:18:42,490 --> 00:18:46,050 bir simli və ya söz və ya söz almaq üçün klaviatura istifadəçi. 391 00:18:46,050 --> 00:18:48,390 Və sonra bu var şey burada PrintName. 392 00:18:48,390 --> 00:18:51,420 >> İndi PrintName bir deyil C. ilə gəlir ki, funksiyası 393 00:18:51,420 --> 00:18:52,970 Bu standart io.h. deyil 394 00:18:52,970 --> 00:18:55,570 Bu cs50.h. deyil 395 00:18:55,570 --> 00:18:57,880 Bu eyni fayl daha var. 396 00:18:57,880 --> 00:19:01,000 Mən aşağı diyirləyin əgər bildiriş bir bit xətləri 25 27-- üçün 397 00:19:01,000 --> 00:19:05,330 Bu şərh yalnız bir pretty yolu ulduz və slashes istifadə edərək kodu. 398 00:19:05,330 --> 00:19:07,320 Bu multi-line Şərh və bu yalnız 399 00:19:07,320 --> 00:19:10,570 və mavi mənim təsviri bu funksiya nə. 400 00:19:10,570 --> 00:19:14,530 >> 31 vasitəsilə xətləri 28 Çünki, Mən bir super sadə funksiyası yazdıq 401 00:19:14,530 --> 00:19:16,280 kimin adı PrintName edir. 402 00:19:16,280 --> 00:19:19,560 Bu necə bir çox edir dəlilləri deyəcəksiniz? 403 00:19:19,560 --> 00:19:25,120 Belə ki, bir arqument bir var, çünki mötərizə içində verilmişdir arqument. 404 00:19:25,120 --> 00:19:27,000 Olan növü simli deyil. 405 00:19:27,000 --> 00:19:30,240 Hansı PrintName demək bu qara qutu kimi 406 00:19:30,240 --> 00:19:32,910 edir ki, ya funksiyası Giriş simli kimi. 407 00:19:32,910 --> 00:19:35,730 >> Və String adı rahat adı olacaq. 408 00:19:35,730 --> 00:19:37,840 Not S deyil, N, lakin adı. 409 00:19:37,840 --> 00:19:41,090 Belə ki, PrintName nə edir? 410 00:19:41,090 --> 00:19:42,210 Bu gözəl sadə. 411 00:19:42,210 --> 00:19:45,390 Just kodu biri xətti üçün printf, lakin yəqin onu 412 00:19:45,390 --> 00:19:47,950 baskı out "Salam" belə və belə. 413 00:19:47,950 --> 00:19:50,070 Harada belə və belə dəlil gəlir. 414 00:19:50,070 --> 00:19:52,300 >> İndi burada böyük bir yenilik deyil. 415 00:19:52,300 --> 00:19:56,710 Həqiqətən, mən bilər bir proqram qəbul etdik kod biri xətti ilə yazılmışdır 416 00:19:56,710 --> 00:20:00,190 burada bu qədər qoyaraq, və bir şey üçün dəyişdirilə 417 00:20:00,190 --> 00:20:04,920 ki, altı və ya yeddi və ya daxildir aşağı burada kodu xətləri bütün yol. 418 00:20:04,920 --> 00:20:08,190 >> Amma bir və praktiki var abstraksiya kimi tanınan prinsipi. 419 00:20:08,190 --> 00:20:12,550 Kind yeni daxilində encapsulating bir adı var ki, funksiyası, və daha yaxşı 420 00:20:12,550 --> 00:20:14,590 hələ ki, adı sanki Bu nə deyir. 421 00:20:14,590 --> 00:20:16,880 Mən deyil printf demək xüsusilə təsviri. 422 00:20:16,880 --> 00:20:18,932 Mən bir yaratmaq istəyirsinizsə puzzle parça, yaxud I və əgər 423 00:20:18,932 --> 00:20:21,140 bir funksiyası yaratmaq istəyirik ki, kiminsə adını yazdıran 424 00:20:21,140 --> 00:20:23,230 bunu gözəllik Mən, həqiqətən, ola bilər, 425 00:20:23,230 --> 00:20:27,170 ki, funksiyası adı vermək Ki, nə təsvir edir. 426 00:20:27,170 --> 00:20:29,844 >> İndi bir giriş edir ki, Mən özbaşına adını etdik, 427 00:20:29,844 --> 00:20:32,760 lakin çox gözəl təsviri əvəzinə bir az daha olan 428 00:20:32,760 --> 00:20:36,140 S. və kimi ümumi etibarsız, indi üçün, yalnız deməkdir 429 00:20:36,140 --> 00:20:38,330 bu funksiya deyil ki, bir şey mənə geri əl. 430 00:20:38,330 --> 00:20:41,127 Bu GetString kimi deyil ki, sanki bir simli mənə geri verir 431 00:20:41,127 --> 00:20:43,960 kimi biz kağız parçaları ilə etdi sinif yoldaşları ilə keçən həftə, 432 00:20:43,960 --> 00:20:45,990 əksinə bu yalnız bir yan təsiri var. 433 00:20:45,990 --> 00:20:48,080 Bu ekran bir şey görüntüler. 434 00:20:48,080 --> 00:20:53,880 >> Günün sonunda, əgər mən edə bilərəm funksiyası-0, ./function-0, 435 00:20:53,880 --> 00:20:55,450 biz mənim ad üçün xahiş ki, görürsünüz. 436 00:20:55,450 --> 00:20:58,150 Mənim ad aparılan növləri David yazın, və. 437 00:20:58,150 --> 00:21:01,080 Mən Rob ilə daha bunu əgər, demək olacaq "Hello, Rob." 438 00:21:01,080 --> 00:21:04,280 Belə ki, bir sadə fikir, lakin bəlkə Bu ruhi-dən extrapolate 439 00:21:04,280 --> 00:21:06,750 proqramları almaq kimi , bir az daha mürəkkəbdir 440 00:21:06,750 --> 00:21:10,290 və siz bir yığın yazmaq istəyirəm kodu və zəng ki, kod invoke 441 00:21:10,290 --> 00:21:13,270 bəzi təsviri ki, kod PrintName kimi ad, 442 00:21:13,270 --> 00:21:15,600 C bizə bu imkanları ödəyə yoxdur. 443 00:21:15,600 --> 00:21:17,660 >> Burada başqa bir sadə misal var. 444 00:21:17,660 --> 00:21:22,940 Məsələn, mən bir açmaq əgər return.c adlandırılır fayl, 445 00:21:22,940 --> 00:21:24,270 mən burada etdik nə görürsünüz. 446 00:21:24,270 --> 00:21:26,330 Bu əsas funksiyası ən printf edir. 447 00:21:26,330 --> 00:21:30,360 Mən ilk özbaşına başlamaq sayı 2 x adlı dəyişən. 448 00:21:30,360 --> 00:21:34,110 Mən x indi "çap % I "x dəyəri keçən. 449 00:21:34,110 --> 00:21:35,500 Mən yalnız bu nə deyirəm. 450 00:21:35,500 --> 00:21:37,208 >> İndi mən yalnız cəsarətlə deyiləm printf ilə iddia. 451 00:21:37,208 --> 00:21:42,050 Mən ki, dəyəri x cubing edirəm və mən bir funksiyası zəng ilə bunu 452 00:21:42,050 --> 00:21:45,590 adlı kub keçən arqument kimi x, 453 00:21:45,590 --> 00:21:49,300 və sonra çıxış qənaət dəyişən özü, x. 454 00:21:49,300 --> 00:21:51,340 Mən x dəyəri clobbering alıram. 455 00:21:51,340 --> 00:21:53,380 Mən əsas deyiləm x dəyəri nə 456 00:21:53,380 --> 00:21:56,510 zəng nəticə Bu kub funksiyası var. 457 00:21:56,510 --> 00:21:59,530 Və sonra mən yalnız bəzi çap tüklü stuff burada mən nə deyirəm. 458 00:21:59,530 --> 00:22:01,600 >> Beləliklə kub nədir? 459 00:22:01,600 --> 00:22:03,510 Əsaslı nə görürsünüz Burada müxtəlif. 460 00:22:03,510 --> 00:22:05,540 Mən funksiyası təqdim etdik əvvəl kimi bir ad. 461 00:22:05,540 --> 00:22:08,270 Mən arqument üçün bir ad müəyyən etdik. 462 00:22:08,270 --> 00:22:11,650 Bu n əvəzinə adı adlanan bu zaman, lakin mən istəyirəm bir şey zəng edə bilər. 463 00:22:11,650 --> 00:22:12,650 Amma bu fərqlidir. 464 00:22:12,650 --> 00:22:14,080 Sol bu şey. 465 00:22:14,080 --> 00:22:16,290 Əvvəllər nə söz idi? 466 00:22:16,290 --> 00:22:16,870 Boys. 467 00:22:16,870 --> 00:22:18,580 İndi açıq-aydın int var. 468 00:22:18,580 --> 00:22:20,630 >> Belə ki, nə bəlkə də üz var? 469 00:22:20,630 --> 00:22:24,090 Void bildirir Halbuki sort heçliyə, və bu halda idi. 470 00:22:24,090 --> 00:22:25,970 PrintName şey döndü. 471 00:22:25,970 --> 00:22:27,942 Bu bir şey idi, lakin geri mənə əl vermədi 472 00:22:27,942 --> 00:22:30,650 Mən qoymaq ki, bir şey bərabər işarəsi sol tərəfdən 473 00:22:30,650 --> 00:22:32,460 kimi mən line 22 burada etdik. 474 00:22:32,460 --> 00:22:36,780 >> Mən line 30-daxil demək əgər, nə yəqin eyham ki 475 00:22:36,780 --> 00:22:38,610 nə kub haqqında mənim üçün yoxdur? 476 00:22:38,610 --> 00:22:41,110 Bəli? 477 00:22:41,110 --> 00:22:42,310 Bu tam qaytarır. 478 00:22:42,310 --> 00:22:44,590 Belə ki, geri mənə Hands kağız instansiya, bir parça 479 00:22:44,590 --> 00:22:46,580 bu barədə cavab yazıb. 480 00:22:46,580 --> 00:22:50,130 2 Cubed, ya 3 Cubed, və ya 4 cubed-- Mən keçdi nə 481 00:22:50,130 --> 00:22:51,540 və necə bu həyata idi? 482 00:22:51,540 --> 00:22:54,810 Bəli, yalnız n dəfə n dəfə n Mən kub dəyəri bilər necə. 483 00:22:54,810 --> 00:22:57,110 Belə ki, yenə super sadə fikir, lakin demonstrative 484 00:22:57,110 --> 00:23:00,100 indi biz funksiyaları yazmaq necə ki, həqiqətən bizə geri idi 485 00:23:00,100 --> 00:23:02,380 maraq ola bilər ki, dəyərlər. 486 00:23:02,380 --> 00:23:05,740 >> Son bir misal baxaq Burada funksiyası biri adlandırıb. 487 00:23:05,740 --> 00:23:08,530 Bu, məsələn, başlayır daha çekici almaq üçün. 488 00:23:08,530 --> 00:23:12,400 Belə ki, funksiyası bir, bu program-- bildiriş nəticədə 489 00:23:12,400 --> 00:23:14,920 GetPositiveInt adlı bir funksiyası çağırır. 490 00:23:14,920 --> 00:23:17,800 GetPositiveInt bir deyil CS50 kitabxana funksiyası, 491 00:23:17,800 --> 00:23:20,400 Amma biz qərar mövcud etmək istəyirəm. 492 00:23:20,400 --> 00:23:24,550 >> Beləliklə, biz sonra fayl aşağıya fırladın əgər, Mən həyata haqqında getdi necə görürsünüz 493 00:23:24,550 --> 00:23:26,560 müsbət int almaq və mən daha çekici demək 494 00:23:26,560 --> 00:23:28,992 bu layiqli çünki kodu xətləri sayı. 495 00:23:28,992 --> 00:23:30,700 Bu, sadəcə bir silly deyil az toy program. 496 00:23:30,700 --> 00:23:33,870 Bu, həqiqətən, bəzi səhv yoxlanılması var və daha faydalı bir şey bunu. 497 00:23:33,870 --> 00:23:38,470 >> Siz gözden geçirmek görmədim etdik əgər Belə ki, Biz pset1 əlaqədar ki, videos, 498 00:23:38,470 --> 00:23:42,350 bu bir növüdür bilirik ki, ruhda oxşar C loop, 499 00:23:42,350 --> 00:23:44,270 şeyi Not növ edə bilərsiniz. 500 00:23:44,270 --> 00:23:46,320 Və bunu deyir. 501 00:23:46,320 --> 00:23:47,500 Bu çap. 502 00:23:47,500 --> 00:23:51,860 Sonra irəli getmək və n almaq bir int almaq və n onu saxlamaq, 503 00:23:51,860 --> 00:23:55,760 və saxlamaq təkrar və bunu daha belə uzun n az biridir. 504 00:23:55,760 --> 00:23:58,720 >> Belə ki, n az bir olacaq yalnız insan əməkdaşlıq deyil əgər. 505 00:23:58,720 --> 00:24:01,980 O yazaraq əgər 0 və ya -1 və ya -50 da, 506 00:24:01,980 --> 00:24:04,790 Bu loop saxlamaq niyyətindədir təkrar həyata. 507 00:24:04,790 --> 00:24:07,549 Və nəticədə, qeyd sadəcə dəyər qayıt. 508 00:24:07,549 --> 00:24:09,590 Belə ki, indi biz bir funksiyası var ki, gözəl olduğunuz olardı 509 00:24:09,590 --> 00:24:14,040 CS50 həyata əgər Sizin üçün CS50.h və CS50.c, 510 00:24:14,040 --> 00:24:16,520 lakin burada biz indi bilərsiniz özümüz həyata keçiririk. 511 00:24:16,520 --> 00:24:19,230 >> Lakin bəzi əsas detalları iki yapılan yorumlar. 512 00:24:19,230 --> 00:24:24,390 One-- niyə int bəyan etməyib n, line 29, Sizcə 513 00:24:24,390 --> 00:24:27,139 əvəzinə yalnız bunu burada bu, olan 514 00:24:27,139 --> 00:24:28,930 ilə daha ardıcıl Keçən həftə nə? 515 00:24:28,930 --> 00:24:29,430 Bəli? 516 00:24:29,430 --> 00:24:34,485 517 00:24:34,485 --> 00:24:35,110 A yaxşı bir fikir. 518 00:24:35,110 --> 00:24:37,080 Belə ki, əgər biz bunu qoymaq idi burada, bu biz sanki var 519 00:24:37,080 --> 00:24:39,110 təkrar elan saxlamaq. 520 00:24:39,110 --> 00:24:42,000 Və özü ki, problem deyil, özlüyündə, 521 00:24:42,000 --> 00:24:43,940 biz yalnız lazımdır, çünki bir dəfə və sonra dəyəri 522 00:24:43,940 --> 00:24:45,330 biz hər halda yeni bir almaq olacaq. 523 00:24:45,330 --> 00:24:45,940 Amma yaxşı bir fikir. 524 00:24:45,940 --> 00:24:46,440 Bəli? 525 00:24:46,440 --> 00:24:52,770 526 00:24:52,770 --> 00:24:53,330 >> Close. 527 00:24:53,330 --> 00:24:59,030 Mən n elan etdik, çünki Belə ki, line 29 loop kənarda, 528 00:24:59,030 --> 00:25:01,390 Bu ərzində əlçatan bütün bu funksiya. 529 00:25:01,390 --> 00:25:05,400 Not digər funksiyaları, çünki n bu buruq daxilində hələ də 530 00:25:05,400 --> 00:25:06,470 Burada aşırma. 531 00:25:06,470 --> 00:25:07,940 Əmin Belə ki. 532 00:25:07,940 --> 00:25:12,430 533 00:25:12,430 --> 00:25:12,940 >> Dəqiq. 534 00:25:12,940 --> 00:25:14,356 Belə ki, bu nöqtəyə daha çox. 535 00:25:14,356 --> 00:25:18,600 Biz əvəzinə elan əgər n burada line 32, 536 00:25:18,600 --> 00:25:22,340 Bu tahmin çünki problemli başqa mən daxil olmaq üçün lazımdır? 537 00:25:22,340 --> 00:25:25,620 Line 34 və On thumb sadə qayda 538 00:25:25,620 --> 00:25:30,060 Yalnız bir dəyişən istifadə edə bilərsiniz ki, ən son qıvrım aşırma daxilində 539 00:25:30,060 --> 00:25:31,420 Siz bəyan. 540 00:25:31,420 --> 00:25:35,230 >> Təəssüf ki, line 34 bir line, çox gec 541 00:25:35,230 --> 00:25:38,560 Mən artıq bağlıdır, çünki line 33 buruq brace 542 00:25:38,560 --> 00:25:41,220 ki uyğundur line 30 buruq brace. 543 00:25:41,220 --> 00:25:44,180 Və bu deyərək bir yoldur Bu dəyişən int scoped olunur ki, 544 00:25:44,180 --> 00:25:46,970 yalnız daxili, danışmaq bu qıvrım aşırma. 545 00:25:46,970 --> 00:25:48,910 Bu yalnız onların xaricində mövcud deyil. 546 00:25:48,910 --> 00:25:51,580 >> Belə ki, həqiqətən, mən bunu əgər bu yanlış, mənə kodu saxlamaq imkan 547 00:25:51,580 --> 00:25:53,530 kimi səhv yazılıb That. 548 00:25:53,530 --> 00:25:57,990 Mənə davam və edə bilərəm edək funksiyası-1 və notice-- səhv. 549 00:25:57,990 --> 00:26:03,502 Bəyan identifikator n istifadə burada olan line 35-də. 550 00:26:03,502 --> 00:26:05,210 Və biz diyirləyin əgər daha başqa bir. 551 00:26:05,210 --> 00:26:08,750 Elan edilməmiş istifadə line 34 identifier n. 552 00:26:08,750 --> 00:26:11,200 >> Belə ki, compiler, cingilti, bu hiss yalnız 553 00:26:11,200 --> 00:26:13,720 baxmayaraq mövcud deyil aydın vizual var. 554 00:26:13,720 --> 00:26:16,090 Belə ki, bir sadə fix orada elan edir. 555 00:26:16,090 --> 00:26:18,790 >> İndi mənə diyirləyin bildirin fayl top. 556 00:26:18,790 --> 00:26:21,080 Nə kimi həyata atlamalar bir az fərqli olan 557 00:26:21,080 --> 00:26:23,070 məhsulları biz ötən həftə baxdı? 558 00:26:23,070 --> 00:26:26,990 Yalnız adı mən var, yalnız bunu Mən bəzi kəskin top up daxildir 559 00:26:26,990 --> 00:26:29,340 Mən deyiləm bir şey var bir prototip zəng. 560 00:26:29,340 --> 00:26:36,100 İndi bağrı benzer nə biz yalnız line 27-bir an əvvəl gördüm. 561 00:26:36,100 --> 00:26:39,230 >> Belə ki, müxtəlif çıxarmaq imkan mən bunu niyə səhv mesaj. 562 00:26:39,230 --> 00:26:42,050 Mənə davam və orada bu xətləri silin. 563 00:26:42,050 --> 00:26:44,240 Və belə ki, biz prototip haqqında heç bir şey bilirik. 564 00:26:44,240 --> 00:26:45,430 Bu faylı yeniden yapmak. 565 00:26:45,430 --> 00:26:46,890 Funksiyası bir olun. 566 00:26:46,890 --> 00:26:48,090 İndi, lənətləmək, dörd səhvlər. 567 00:26:48,090 --> 00:26:50,220 Nin birinci diyirləyin edək. 568 00:26:50,220 --> 00:26:55,070 >> Funksiyası gizli bəyannamə müsbət int almaq C99 etibarsız edir. 569 00:26:55,070 --> 00:26:57,780 C99 yalnız 1999 deməkdir dil versiyası 570 00:26:57,780 --> 00:26:59,710 Biz həqiqətən istifadə etdiyiniz nə olan C,. 571 00:26:59,710 --> 00:27:01,050 Belə ki, bu nə deməkdir? 572 00:27:01,050 --> 00:27:05,250 Yaxşı C-və daha çox xüsusi C pretty lal proqramları compilers-- var. 573 00:27:05,250 --> 00:27:07,420 Onlar yalnız var nə onlara ki, var 574 00:27:07,420 --> 00:27:08,960 ötən həftə həqiqətən tematik. 575 00:27:08,960 --> 00:27:12,910 >> Bu problem getmək əgər ki, Burada adı həyata haqqında, 576 00:27:12,910 --> 00:27:17,640 və mən adlı bir funksiyası zəng Line 20 burada GetPositiveInt, 577 00:27:17,640 --> 00:27:22,520 ki, funksiyası texniki deyil Bu compiler line 27 görür qədər mövcuddur. 578 00:27:22,520 --> 00:27:25,450 Təəssüf ki, compiler edir yuxarı, aşağı, sağ, sol şeyler, 579 00:27:25,450 --> 00:27:29,580 Göründüyü çünki belə GetPositiveInt həyata keçirilməsi, 580 00:27:29,580 --> 00:27:32,400 ancaq çalışır görür Burada onu istifadə etmək, 581 00:27:32,400 --> 00:27:35,810 yalnız fəğan bail-- olacaq bir səhv ilə bəlkə mesajı 582 00:27:35,810 --> 00:27:38,440 sirli, və həqiqətən fayl tərtib. 583 00:27:38,440 --> 00:27:41,940 >> Belə ki, qondarma prototipi burada etiraf lazımsız edir. 584 00:27:41,940 --> 00:27:47,870 Sanki, mən burada aşağı getdi və mən kopyalanır və bu yapışdırılır və mən burada onu qoydu. 585 00:27:47,870 --> 00:27:51,020 Void daha düzgün olardı, belə ki, biz will sözün seçin və bu dəfə yapışdırıb. 586 00:27:51,020 --> 00:27:52,854 Mən sözün sitemizi və yapışdırılır. 587 00:27:52,854 --> 00:27:54,270 Həqiqətən yalnız bir çörək qırıntı kimi. 588 00:27:54,270 --> 00:27:56,260 >> Compiler Bir az ipucu. 589 00:27:56,260 --> 00:27:58,860 Mən bunu nə bilmirəm , amma mən sizə vəd edirəm 590 00:27:58,860 --> 00:28:00,260 nəticədə mövcud olacaq ki,. 591 00:28:00,260 --> 00:28:04,010 Bu xətt ki, var line 16 giriş nöqtəli vergül ilə başa çatır. 592 00:28:04,010 --> 00:28:05,486 Bu dizayn lazımsız edir. 593 00:28:05,486 --> 00:28:05,986 Bəli? 594 00:28:05,986 --> 00:28:11,340 595 00:28:11,340 --> 00:28:14,360 >> Sizin kitabxana keçid olmasaydı , oh yaxşı sual the-- üçün. 596 00:28:14,360 --> 00:28:17,350 Sharp header file inclusions daxildir. 597 00:28:17,350 --> 00:28:20,040 Olmalıdır demək olar ki, be-- lazımdır həmişə çox üst ola 598 00:28:20,040 --> 00:28:23,270 bir similar-- üçün fayl eyni səbəbi, bəli. 599 00:28:23,270 --> 00:28:26,430 Standart Çünki io.h sanki xətt 600 00:28:26,430 --> 00:28:30,560 bu kimi, lakin söz printf ilə, və onun dəlilləri və onun qaytarılması növü ilə. 601 00:28:30,560 --> 00:28:33,310 Və belə ki, kəskin etməklə daxil Burada, siz sözün bunu nə istəyirik 602 00:28:33,310 --> 00:28:36,380 məzmunu çıxarmaq və yapıştırma olunur kimsə başqa üst qədər yazdı. 603 00:28:36,380 --> 00:28:39,660 Bununla üçün sizin kodu cluing bu funksiyaları mövcuddur ki, fakt. 604 00:28:39,660 --> 00:28:40,160 Bəli? 605 00:28:40,160 --> 00:28:47,520 606 00:28:47,520 --> 00:28:48,260 >> Absolutely. 607 00:28:48,260 --> 00:28:51,690 Belə ki, bir çox ağıllı və düzgün həll olacaq, siz nə bilirik? 608 00:28:51,690 --> 00:28:53,760 Mən bilmirəm nə prototip, lakin mən bilirəm 609 00:28:53,760 --> 00:28:56,390 Mən C yalnız başa düşürük ki, əgər lal və alt üst rethinks. 610 00:28:56,390 --> 00:28:57,820 Yaxşı nə istədiyini vermək bildirin. 611 00:28:57,820 --> 00:29:01,650 Onu yapışdırıb, ki kodu kəsilmiş top, indi aşağı əsas basmaq. 612 00:29:01,650 --> 00:29:03,470 Bu da problemi həll olardı. 613 00:29:03,470 --> 00:29:07,409 >> Amma siz çox asanlıqla ilə gəlmək bilər A B zəng etmək üçün lazım olan bir ssenari, 614 00:29:07,409 --> 00:29:10,075 və bəlkə B A. Bu geri çağırır recursion deyilən bir şey var 615 00:29:10,075 --> 00:29:11,370 və biz geri gəlmək lazımdır. 616 00:29:11,370 --> 00:29:13,911 Və ya yaxşı ola bilər şey, lakin siz mütləq bilərsiniz 617 00:29:13,911 --> 00:29:15,110 bu həll pozub. 618 00:29:15,110 --> 00:29:17,690 >> Və üstəlik, mən stylistically iddia, 619 00:29:17,690 --> 00:29:20,760 xüsusilə proqramları Bu uzun və bu uzun olmaq, 620 00:29:20,760 --> 00:29:23,064 yalnız super rahat üst əsas qoymaq 621 00:29:23,064 --> 00:29:25,730 Bu şey var, çünki ən proqramçılar haqqında qayğı gedir. 622 00:29:25,730 --> 00:29:28,150 Və belə ki, bir az təmiz, arguably, bu yol etmək üçün 623 00:29:28,150 --> 00:29:30,380 Mən ilk bunu bir prototip ilə hətta 624 00:29:30,380 --> 00:29:33,396 bir az görünür baxmayaraq ilk baxışda lazımsız. 625 00:29:33,396 --> 00:29:33,895 Bəli? 626 00:29:33,895 --> 00:29:36,472 627 00:29:36,472 --> 00:29:37,680 Bağışlayın, siz Qaraçuxurlu deyə bilərsiniz? 628 00:29:37,680 --> 00:29:45,650 629 00:29:45,650 --> 00:29:49,580 >> Siz yerlərdə keçid həyata keçirilməsi və prototip? 630 00:29:49,580 --> 00:29:51,270 Belə ki, yaxşı bir sual var. 631 00:29:51,270 --> 00:29:53,780 Əgər bu aşağı yenidən bəyan burada nə görmək edək. 632 00:29:53,780 --> 00:29:55,530 Mən bu yazmaq Belə ki, Burada, siz deyirsiniz. 633 00:29:55,530 --> 00:29:57,860 634 00:29:57,860 --> 00:29:58,360 Oh, sorry. 635 00:29:58,360 --> 00:29:58,859 Louder? 636 00:29:58,859 --> 00:30:02,000 637 00:30:02,000 --> 00:30:04,011 Hətta Qaraçuxurlu. 638 00:30:04,011 --> 00:30:04,760 Oh, yaxşı sualdır. 639 00:30:04,760 --> 00:30:05,860 Funksiyasını etibarsız olardı? 640 00:30:05,860 --> 00:30:08,901 Bilirsiniz, bütün bu illər sonra, mən sonra bir prototip qoymaq heç vaxt. 641 00:30:08,901 --> 00:30:13,810 Belə ki, funksiyası 1 etmək üçün imkan bunu sonra. 642 00:30:13,810 --> 00:30:15,279 >> [Muttering] 643 00:30:15,279 --> 00:30:16,320 DAVID J. MALAN: Oh, gözləyin. 644 00:30:16,320 --> 00:30:17,944 Biz hələ üst hər şey qoymaq lazımdır. 645 00:30:17,944 --> 00:30:21,400 Mən deyiləm, əgər ki, burada bu qədər bunu bildirin düzgün sual anlaşma. 646 00:30:21,400 --> 00:30:24,700 Mən, o cümlədən, hər şeyi qoyulması alıram əsas yuxarıda prototip, 647 00:30:24,700 --> 00:30:28,180 amma prototip qoyulması alıram həyata keçirilməsi aşağıda. 648 00:30:28,180 --> 00:30:33,190 >> Mən bir etmək əgər, mən alıram belə geri səhv istifadə olunmamış dəyişən n. 649 00:30:33,190 --> 00:30:37,280 650 00:30:37,280 --> 00:30:37,860 Oh, var. 651 00:30:37,860 --> 00:30:38,360 Təşəkkür edirəm. 652 00:30:38,360 --> 00:30:39,430 Baxaq, biz bu xilas. 653 00:30:39,430 --> 00:30:41,304 Ki, fərqli bir səhv belə ki, ignore edək. 654 00:30:41,304 --> 00:30:43,910 Nin həqiqətən tez bu yeniden yapmak edək. 655 00:30:43,910 --> 00:30:48,100 >> OK, belə ki, data arqument deyil format String istifadə 656 00:30:48,100 --> 00:30:52,310 oh n, çünki var Mən burada bu dəyişdi. 657 00:30:52,310 --> 00:30:55,885 Bütün hüquqlar, biz bilirik nə cavab to-- bütün doğru gedir, burada biz gedin. 658 00:30:55,885 --> 00:31:00,560 Ah, müsbət thanks. 659 00:31:00,560 --> 00:31:03,430 Bütün sağ, mən bu kodu düzeltmek edəcək after-- bu səhv ignore 660 00:31:03,430 --> 00:31:08,300 Bu çalışır əmrində deyilirdi ildən cavabdır. 661 00:31:08,300 --> 00:31:11,560 >> Belə ki, yazmaq deyil nə yalnız etdik. 662 00:31:11,560 --> 00:31:14,800 Mən compiler şübhəli belə bir şəkildə yazılmışdır 663 00:31:14,800 --> 00:31:18,420 Sizin prototip məhəl ki, bədən, çünki, belə danışmaq, 664 00:31:18,420 --> 00:31:20,922 funksiyası artıq var ali icra edilmişdir. 665 00:31:20,922 --> 00:31:23,380 Mən, həqiqətən, məsləhətləşmək lazımdır compiler manual 666 00:31:23,380 --> 00:31:26,171 hər hansı digər varsa anlamaq üçün dolayısı, lakin ilk baxışdan 667 00:31:26,171 --> 00:31:29,290 yalnız çalışır və eksperiment, heç bir təsir var görünür. 668 00:31:29,290 --> 00:31:30,730 Yaxşı sualdır. 669 00:31:30,730 --> 00:31:33,660 >> Belə ki, indi irəliləmək hərəkət edək üz yan təsiri olan 670 00:31:33,660 --> 00:31:36,660 kimi bir şey ki, funksiyaları vizual printf ilə ekranda, 671 00:31:36,660 --> 00:31:38,090 lakin bir dəyər qayıtmaq deyil. 672 00:31:38,090 --> 00:31:41,550 Və funksiyaları geri var biz kimi dəyərlər yalnız bir neçə gördüm. 673 00:31:41,550 --> 00:31:45,350 Biz artıq, əhatə dairəsi bu anlayışı gördüm və biz təkrar bu görəcəksiniz. 674 00:31:45,350 --> 00:31:47,210 Amma indi, yenə, thumb qayda istifadə 675 00:31:47,210 --> 00:31:51,410 dəyişən yalnız istifadə edilə bilər ki, ən son açılan daxilində 676 00:31:51,410 --> 00:31:54,350 və biz qapalı qıvrım aşırma ki, misal gördüm. 677 00:31:54,350 --> 00:31:56,910 >> Və işarə kimi, bir ability-- var 678 00:31:56,910 --> 00:32:00,040 Bu, bəzi problemlərin həll edə bilər qlobal dəyişən qoyaraq 679 00:32:00,040 --> 00:32:01,290 bir fayl çox üst. 680 00:32:01,290 --> 00:32:03,630 Amma demək olar ki, bütün hallarda biz sonra çatmaq olardı, 681 00:32:03,630 --> 00:32:06,170 və həqiqətən belə getmək deyil İndi ki, həll. 682 00:32:06,170 --> 00:32:09,890 Indi üçün, belə ki, paket ki dəyişənlərin daxilində bu anlayışı var. 683 00:32:09,890 --> 00:32:13,430 >> Amma indi başqa baxaq həqiqətən axtarır quru yolu 684 00:32:13,430 --> 00:32:15,810 bəzi olduqca maraqlı həyata ətraflı. 685 00:32:15,810 --> 00:32:17,810 Biz məlumatı necə təmsil edə bilər. 686 00:32:17,810 --> 00:32:20,370 Və biz artıq bu baxdı Sinif ilk həftəsində. 687 00:32:20,370 --> 00:32:23,320 Binaries baxaraq, və ondalık özümüzü xatırladan. 688 00:32:23,320 --> 00:32:28,310 >> Lakin C var ki, ötən həftə geri müxtəlif data növləri və dəstələri daha, 689 00:32:28,310 --> 00:32:30,600 amma ən faydalı olanları İndi bu ola bilər. 690 00:32:30,600 --> 00:32:36,030 Baş verən A char, və ya xarakteri, bir byte, və ya səkkiz bit məlumat olacaq. 691 00:32:36,030 --> 00:32:40,060 Və ölçüsü ki var bir char yalnız bir byte edir. 692 00:32:40,060 --> 00:32:45,370 A bayt səkkiz bit, belə ki, bu o deməkdir ki, biz necə bir çox simvol təmsil edə bilər. 693 00:32:45,370 --> 00:32:47,320 Necə bir çox məktublar və ya Klaviatura üzrə rəmzləri 694 00:32:47,320 --> 00:32:49,210 biz bir byte ya səkkiz bit varsa. 695 00:32:49,210 --> 00:32:51,546 Həftə sıfır geri düşünün. 696 00:32:51,546 --> 00:32:53,420 Siz səkkiz bit varsa, neçə ümumi dəyərləri 697 00:32:53,420 --> 00:32:55,503 ilə təmsil edə bilər adet sıfır və olanları nümunələri? 698 00:32:55,503 --> 00:32:58,170 699 00:32:58,170 --> 00:33:00,260 Daha One--. 700 00:33:00,260 --> 00:33:03,490 Belə ki, 256 məlumat əgər sıfırdan hesablanması başlanır. 701 00:33:03,490 --> 00:33:07,120 Belə ki, səkkiz bit belə biz əgər varsa , yenidən burada ikili ampüller idi 702 00:33:07,120 --> 00:33:12,180 Biz o işıq ampüller çevirmək bilər və 256 unikal nümunələri hər hansı off. 703 00:33:12,180 --> 00:33:13,640 >> İndi bu bir az problemlidir. 704 00:33:13,640 --> 00:33:16,857 İngilis və çox deyil Romantika languages, lakin əlbəttə ki, 705 00:33:16,857 --> 00:33:19,190 sizə təqdim zaman, üçün Məsələn, Asiya languages ​​olan 706 00:33:19,190 --> 00:33:22,580 kimi daha çox simvolları var Əlifbasının 26 məktubları. 707 00:33:22,580 --> 00:33:24,390 Biz, həqiqətən, lazım ola bilər bir byte daha çox. 708 00:33:24,390 --> 00:33:28,240 Və təşəkkürlə da Son illərdə cəmiyyət var 709 00:33:28,240 --> 00:33:31,040 istifadə qəbul edilmiş digər standartlar pulsuz birdən çox byte. 710 00:33:31,040 --> 00:33:34,210 >> Amma indi C, default üçün yalnız bir byte ya səkkiz bit edir. 711 00:33:34,210 --> 00:33:38,195 Bir tam, eyni zamanda, dörd bytes başqa 32 bit kimi tanınır. 712 00:33:38,195 --> 00:33:41,320 Hansı ən böyük mümkün nə deməkdir sayı, biz bir int ilə təmsil edə bilər 713 00:33:41,320 --> 00:33:41,820 yəqin? 714 00:33:41,820 --> 00:33:44,426 715 00:33:44,426 --> 00:33:45,050 Bir milyard. 716 00:33:45,050 --> 00:33:46,760 Belə ki, dörd milyard vermək və ya almaq deyil. 717 00:33:46,760 --> 00:33:49,840 2 32th hakimiyyətə, biz əgər heç bir mənfi nömrələri daşımır 718 00:33:49,840 --> 00:33:52,530 və yalnız bütün müsbət istifadə nömrələri, dörd milyard var 719 00:33:52,530 --> 00:33:53,730 vermək və ya imkanları almaq. 720 00:33:53,730 --> 00:33:57,890 A float, eyni zamanda, müxtəlif tipli Bu hələ bir sıra C. data növü, 721 00:33:57,890 --> 00:33:58,990 ancaq bir real sayı. 722 00:33:58,990 --> 00:34:00,660 Kəsir ilə bir şey. 723 00:34:00,660 --> 00:34:03,000 Və bu çıxır ki, C dörd bayt istifadə edir 724 00:34:03,000 --> 00:34:05,340 üzən point dəyərləri təmsil etmək. 725 00:34:05,340 --> 00:34:09,420 >> Təəssüf ki, nə qədər üzən point dəyərlər dünyada var? 726 00:34:09,420 --> 00:34:11,582 Neçə real nömrələri var? 727 00:34:11,582 --> 00:34:13,540 Sonsuz var sayı, və ki, məsələ 728 00:34:13,540 --> 00:34:15,164 integers bir sonsuz sayda var. 729 00:34:15,164 --> 00:34:18,070 Beləliklə, biz növ artıq edirik Burada özümüzü bir deşik qazma. 730 00:34:18,070 --> 00:34:21,780 Vasitəsi yəqin computers-- da them-- haqqında yazılı C azı proqramları 731 00:34:21,780 --> 00:34:24,110 yalnız kimi yüksək saymaq olar dörd milyard, vermək və ya almaq 732 00:34:24,110 --> 00:34:26,260 və üzən point dəyərləri yalnız yəqin 733 00:34:26,260 --> 00:34:28,330 dəqiq bir məhdud məbləği. 734 00:34:28,330 --> 00:34:30,810 Yalnız çox rəqəm sonra onların decimal point. 735 00:34:30,810 --> 00:34:32,822 >> Çünki əlbəttə, əgər yalnız 32 bit var, 736 00:34:32,822 --> 00:34:36,030 Mən biz getmək olacaq necə bilmirəm yəqin ki, real numbers-- təmsil 737 00:34:36,030 --> 00:34:37,409 nümunələri müxtəlif növləri ilə. 738 00:34:37,409 --> 00:34:40,030 Amma şübhəsiz ki, məhdud var belə nümunələri sayı, 739 00:34:40,030 --> 00:34:41,830 belə ki, burada da, bu problemlidir. 740 00:34:41,830 --> 00:34:43,710 >> İndi biz bir az problem qarşısını almaq olar. 741 00:34:43,710 --> 00:34:45,710 Bir float istifadə deyilsə, Bir cüt istifadə edə bilər 742 00:34:45,710 --> 00:34:50,230 C olan siz səkkiz bayt, verir adet sıfır yol daha mümkün nümunələri 743 00:34:50,230 --> 00:34:50,730 və olanları. 744 00:34:50,730 --> 00:34:55,199 Amma hansı gedir, hələ də məhdud deyil Siz proqram yazmaq əgər problem olmaq 745 00:34:55,199 --> 00:34:57,670 qrafik və ya xülya riyazi düsturlar. 746 00:34:57,670 --> 00:35:00,410 Beləliklə, siz həqiqətən istəyirəm bilər daha böyük saymaq. 747 00:35:00,410 --> 00:35:05,640 Uzun uzun gic named-- həmçinin səkkiz bayt və ya 64 bit edir, 748 00:35:05,640 --> 00:35:10,260 və bu, bir int kimi iki dəfə kimi uzun və uzun tam dəyəri var. 749 00:35:10,260 --> 00:35:15,655 >> Fun fact-- bir int, dörd bytes əgər adətən C uzun necə uzun? 750 00:35:15,655 --> 00:35:18,290 751 00:35:18,290 --> 00:35:21,560 Həmçinin dörd bytes, lakin uzun uzun səkkiz bayt edir, 752 00:35:21,560 --> 00:35:23,050 və bu tarixi səbəblər üçün. 753 00:35:23,050 --> 00:35:26,450 >> Amma indi paket yalnız data var 754 00:35:26,450 --> 00:35:29,625 ki, bir kompüter üçün təmsil olunacaq elektrik enerjisi ilə fiziki cihaz, 755 00:35:29,625 --> 00:35:32,190 ümumiyyətlə sürücülük o adet sıfır və ones-- 756 00:35:32,190 --> 00:35:34,320 dəqiq məhdud məbləğlər ilə. 757 00:35:34,320 --> 00:35:35,620 Belə ki, problem sonra nə var? 758 00:35:35,620 --> 00:35:37,480 >> Yaxşı bir problem var tam daşması. 759 00:35:37,480 --> 00:35:39,780 Yalnız C, ancaq ümumiyyətlə kompüter. 760 00:35:39,780 --> 00:35:42,590 Məsələn, bu halda bir byte dəyər bir bit 761 00:35:42,590 --> 00:35:45,120 bu bütün səkkiz bit əgər olan sayı biridir. 762 00:35:45,120 --> 00:35:47,300 Nə sayı bu biz güman əgər təmsil 763 00:35:47,300 --> 00:35:50,730 Bu ikili bütün müsbət dəyərlər var? 764 00:35:50,730 --> 00:35:54,410 >> 255 və 256, çünki deyil sıfır aşağı sayı. 765 00:35:54,410 --> 00:35:56,760 Belə ki, 255 ən yüksək bir, lakin problem 766 00:35:56,760 --> 00:36:00,330 Mən istəyirdim ki, güman edilir Bu dəyişən arttırmayı ki 767 00:36:00,330 --> 00:36:04,030 səkkiz bit cəmi istifadə Mən arttırmayı istəyirsinizsə. 768 00:36:04,030 --> 00:36:07,160 >> Yaxşı mən əlavə qısa müddətdə Bu isə bütün bir, 769 00:36:07,160 --> 00:36:10,500 bəlkə yalnız visually-- təsəvvür edə bilərsiniz decimals-- istifadə bir balans kimi 770 00:36:10,500 --> 00:36:12,300 bir şey sol axını olacaq. 771 00:36:12,300 --> 00:36:15,590 Və həqiqətən, Mən sayı əlavə əgər bu bir, nə ikili olur 772 00:36:15,590 --> 00:36:17,670 geri sıfıra daşqınlar edir. 773 00:36:17,670 --> 00:36:21,730 >> Belə ki, yalnız bir int deyil use-- əgər, lakin bir byte integers saymaq 774 00:36:21,730 --> 00:36:27,170 bir proqramda, qısa müddətdə ismarıcları Siz 250 almaq 251, 252, 253, 254, 775 00:36:27,170 --> 00:36:32,710 255-- 0, 255 sonra gəlir yəqin nə deyil 776 00:36:32,710 --> 00:36:34,790 bir istifadəçi gözləmək gedir. 777 00:36:34,790 --> 00:36:39,620 >> İndi isə point dünya üzən, siz də eyni problem var. 778 00:36:39,620 --> 00:36:42,670 Ən böyük bir sayı ilə çox deyil baxmayaraq ki, hələ bir məsələ var. 779 00:36:42,670 --> 00:36:45,360 Amma dəqiq məbləği ilə siz təmsil edə bilər ki,. 780 00:36:45,360 --> 00:36:49,490 Belə ki, bu nümunə bir nəzər edək burada da bugünkü mənbə kod dən 781 00:36:49,490 --> 00:36:52,070 float 0.c. 782 00:36:52,070 --> 00:36:54,280 >> Və bu super bildiriş sadə proqram ki, 783 00:36:54,280 --> 00:36:56,580 yəqin nə dəyəri çap lazımdır? 784 00:36:56,580 --> 00:37:00,777 785 00:37:00,777 --> 00:37:04,110 Bu çap edir mərc nə yeni sintaksis bir az var baxmayaraq 786 00:37:04,110 --> 00:37:05,540 here? 787 00:37:05,540 --> 00:37:06,700 Belə ki, inşallah 0.1. 788 00:37:06,700 --> 00:37:10,000 Belə ki, bir-onuncu ekvivalent Mən 10 bölünür 1 edirəm, çünki. 789 00:37:10,000 --> 00:37:12,430 Mən cavab saxlanılması alıram bir dəyişən f çağırıb. 790 00:37:12,430 --> 00:37:15,850 Ki, dəyişən növü float, malik Mən yalnız təklif bir söz mövcud deyil. 791 00:37:15,850 --> 00:37:18,910 >> Biz əvvəl bu gördük, amma etdik bu printf bir səliqəli yolu cür 792 00:37:18,910 --> 00:37:22,110 neçə rəqəm müəyyən etmək üçün onluq nöqtədən sonra görmək istəyirik. 793 00:37:22,110 --> 00:37:25,020 Belə ki, bu notation yalnız deməkdir ki, burada bir tutucu var. 794 00:37:25,020 --> 00:37:27,900 Bu üzən point üçün dəyəri və oh, yolu ilə, 795 00:37:27,900 --> 00:37:31,389 bu kəsir ilə göstərmək bu kəsir sonra bir sıra. 796 00:37:31,389 --> 00:37:33,180 Belə ki, sıra əhəmiyyətli rəqəm, 797 00:37:33,180 --> 00:37:34,650 belə ki, istədiyiniz bilər ki, danışmaq. 798 00:37:34,650 --> 00:37:40,450 >> Mənə irəli getmək və bunu bildirin ./float-0, float-0 olun, 799 00:37:40,450 --> 00:37:46,660 və yəqin 1 10 bölünür 0.0 edir. 800 00:37:46,660 --> 00:37:47,760 İndi niyə bu? 801 00:37:47,760 --> 00:37:51,380 >> Yaxşı daha, kompüter edir Mənə sözün, və mən 1 yazılı 802 00:37:51,380 --> 00:37:56,680 və 10 yazılı və tahmin almaq nə bu iki ehtimal data növü 803 00:37:56,680 --> 00:37:58,440 dəyərlər? 804 00:37:58,440 --> 00:38:00,970 Bir int, texniki var bir az fərqli bir şey. 805 00:38:00,970 --> 00:38:04,150 Bu adətən uzun, lakin bu nəticədə ayrılmaz dəyəri. 806 00:38:04,150 --> 00:38:06,030 Bir üzən point dəyər. 807 00:38:06,030 --> 00:38:09,456 >> Hansı ki, bu demək deyil , bir int və bu bir int edir 808 00:38:09,456 --> 00:38:11,830 Bu problem kompüter ki, imkanı yoxdur 809 00:38:11,830 --> 00:38:13,680 hətta kəsir saxlamaq üçün. 810 00:38:13,680 --> 00:38:16,430 Siz 1 bunu belə bölünür 10 istifadə integers ilə 811 00:38:16,430 --> 00:38:20,950 Bu surət və həm də məxrəc, cavab 0.1 olmalıdır. 812 00:38:20,950 --> 00:38:24,930 Lakin kompüter üçün çünki bu integers var 813 00:38:24,930 --> 00:38:27,430 Bu 0.1 ilə nə bilmir. 814 00:38:27,430 --> 00:38:30,010 >> Belə ki, nə bu aydın edir? 815 00:38:30,010 --> 00:38:33,120 Bu, sadəcə, üz atma edir və mən nəticədə nə görüyorum 816 00:38:33,120 --> 00:38:38,830 Mən israr yalnız çünki 0.0 edir printf Mənə bir kəsir göstərir. 817 00:38:38,830 --> 00:38:41,740 Amma problem ki, əgər bir tam bir tam bölmək, 818 00:38:41,740 --> 00:38:44,347 definition tərəfindən get-- edəcək bir tam ace. 819 00:38:44,347 --> 00:38:46,680 Və bunu etmək niyyətində deyil gözəl və rahat bir şey 820 00:38:46,680 --> 00:38:49,040 qədər onu dəyirmi kimi bir yuxarı və ya aşağı yaxın. 821 00:38:49,040 --> 00:38:51,860 Bu kəsmək olacaq ondalık sonra hər şey. 822 00:38:51,860 --> 00:38:54,030 >> Belə ki, yalnız daxilən, yəqin ki, bir fix var? 823 00:38:54,030 --> 00:38:55,351 Burada sadə fix nədir? 824 00:38:55,351 --> 00:38:55,850 Bəli? 825 00:38:55,850 --> 00:39:00,570 826 00:39:00,570 --> 00:39:01,100 Dəqiq. 827 00:39:01,100 --> 00:39:04,200 Niyə biz yalnız bu müalicə yoxdur səmərəli point dəyərləri üzən 828 00:39:04,200 --> 00:39:05,860 üzüb gedirdi və ya iki dönüştürerek. 829 00:39:05,860 --> 00:39:10,500 İndi mən əgər üzüb gedirdi-0, və ya üzüb gedirdi 1 tərtib əgər, 830 00:39:10,500 --> 00:39:12,570 olan eynidir yalnız nə təklif edilmişdir. 831 00:39:12,570 --> 00:39:16,400 Və indi üzüb gedirdi-0, indi mən 0.1 almaq yoxdur. 832 00:39:16,400 --> 00:39:17,234 >> İndi bu gözəl deyil. 833 00:39:17,234 --> 00:39:19,441 Amma indi gedirəm bir az fərqli bir şey. 834 00:39:19,441 --> 00:39:22,280 Mən, həqiqətən, nə görmək maraqlı deyiləm başlıq altında gedir, 835 00:39:22,280 --> 00:39:26,050 və mən bu çap gedirəm həyata 28 decimal yerlərdə. 836 00:39:26,050 --> 00:39:29,730 Mən, həqiqətən, görmək istəyirəm 0.1000-- bir infinite-- 837 00:39:29,730 --> 00:39:32,710 Ki, 0.1 sonra [Işitilemez] 27 adet sıfır. 838 00:39:32,710 --> 00:39:34,740 >> Yaxşı ki, əgər in görək Mən, həqiqətən, nə almaq. 839 00:39:34,740 --> 00:39:39,430 Üzüb gedirdi-0, eyni fayl olun. 840 00:39:39,430 --> 00:39:41,150 ./floats-0. 841 00:39:41,150 --> 00:39:44,380 Nin dramatik cavab zoom imkan verir. 842 00:39:44,380 --> 00:39:49,980 Bütün bu vaxt, siz düşünür olduğunuz 1 10 bölünür 10%, və ya 0.1 edir. 843 00:39:49,980 --> 00:39:50,810 Bu deyil. 844 00:39:50,810 --> 00:39:53,210 Ən azı indiyə qədər kimi kompüter narahat. 845 00:39:53,210 --> 00:39:57,060 >> OK why-- İndi ki, tam var 10 bölünür yalan 1 0.1. 846 00:39:57,060 --> 00:39:59,710 Amma ki, deyil why-- paket gün. 847 00:39:59,710 --> 00:40:04,010 Belə ki, niyə kompüter hesab etmir Oda bizim bütün fərqli olaraq, 848 00:40:04,010 --> 00:40:06,870 1 10 bölünür ki, həqiqətən crazy dəyəri? 849 00:40:06,870 --> 00:40:10,620 Yəqin bunu kompüter nədir? 850 00:40:10,620 --> 00:40:12,490 Nə olub? 851 00:40:12,490 --> 00:40:13,785 >> Bu özlüyündə, daşqın deyil. 852 00:40:13,785 --> 00:40:15,910 Overflow adətən zaman Siz bir dəyər ətrafında kesmek. 853 00:40:15,910 --> 00:40:18,970 Bu qeyri-dəqiqlik bu məsələ var üzən point dəyər 854 00:40:18,970 --> 00:40:22,220 yalnız 32 olduğu və ya bəlkə hətta 64 bit. 855 00:40:22,220 --> 00:40:25,230 Amma sonsuz var əgər real numbers-- sayı 856 00:40:25,230 --> 00:40:27,940 decimal xalla nömrələri və nömrələr şübhəsiz ki thereafter-- 857 00:40:27,940 --> 00:40:29,380 Siz onların hamısını təmsil edə bilməz. 858 00:40:29,380 --> 00:40:32,870 Belə ki, kompüter verdi Bizə ən yaxın matç 859 00:40:32,870 --> 00:40:37,090 dəyərinə ki, istifadə təmsil edə bilər Mən, həqiqətən, istədiyiniz dəyəri çox bit, 860 00:40:37,090 --> 00:40:38,690 olan 0.1 edir. 861 00:40:38,690 --> 00:40:40,685 >> Təəssüf ki, əgər riyaziyyat bunu başlamaq, və ya 862 00:40:40,685 --> 00:40:44,360 üzən bu cür cəlb başlamaq əhəmiyyətli proqramları point dəyərləri 863 00:40:44,360 --> 00:40:46,770 maliyyə software, hərbi software-- şey 864 00:40:46,770 --> 00:40:49,090 harada hissdir yəqin ki, olduqca vacibdir. 865 00:40:49,090 --> 00:40:51,520 Və əlavə başlamaq bu kimi nömrələri və start 866 00:40:51,520 --> 00:40:54,050 ki, proqram çalışan həqiqətən böyük giriş 867 00:40:54,050 --> 00:40:56,890 və ya saat və ya çox çox üçün il gün və ya çox, 868 00:40:56,890 --> 00:41:01,060 bu kiçik kiçik səhvlər şübhəsiz ki, zamanla əlavə edə bilərsiniz. 869 00:41:01,060 --> 00:41:04,252 >> İndi bir kənara kimi, siz var əgər heç Superman 3 və ya Office Space görüldü 870 00:41:04,252 --> 00:41:05,960 və geri bilər necə o uşaqlar çaldı 871 00:41:05,960 --> 00:41:08,668 onların kompüter pul bir çox üzən point dəyərləri istifadə edərək, 872 00:41:08,668 --> 00:41:11,290 və az əlavə qalıqları, ümid edirəm ki, film 873 00:41:11,290 --> 00:41:12,390 indi daha çox əhəmiyyət kəsb edir. 874 00:41:12,390 --> 00:41:14,930 Bu onlar nə ki, film alluding. 875 00:41:14,930 --> 00:41:16,710 Bu fakt ən çox şirkətlər baxmaq deyil 876 00:41:16,710 --> 00:41:18,600 müəyyən sayda sonra onluq yerlərinə ki, 877 00:41:18,600 --> 00:41:20,009 lakin həmin qəpik fraksiyaları. 878 00:41:20,009 --> 00:41:22,550 Belə ki, onları əlavə başlamaq Siz pul bir çox etmək başlamaq 879 00:41:22,550 --> 00:41:23,424 Sizin bank hesabınıza. 880 00:41:23,424 --> 00:41:25,160 Belə ki, Office Space izah edir. 881 00:41:25,160 --> 00:41:28,220 >> İndi təəssüf ki kənarda Office Space var 882 00:41:28,220 --> 00:41:31,794 bəzi qanuni narahatlıq var və əhəmiyyətli təsirlər 883 00:41:31,794 --> 00:41:33,710 bu cür əsas dizayn qərarları, 884 00:41:33,710 --> 00:41:35,990 səbəbləri və həqiqətən bir biz əlbəttə C istifadə 885 00:41:35,990 --> 00:41:39,640 Əgər həqiqətən bu yer var ki, kompüter iş necə anlaşma up, 886 00:41:39,640 --> 00:41:42,440 necə proqram işləri və nə deyil Verilən üçün bir şey almaq. 887 00:41:42,440 --> 00:41:45,820 >> Və həqiqətən təəssüf ki, hətta ki fundamental anlayış, 888 00:41:45,820 --> 00:41:47,370 biz insanlar səhv edə. 889 00:41:47,370 --> 00:41:51,310 Və nə mən bölüşmək istədiyiniz fikir deyil Bu səkkiz dəqiqə video burada qəbul 890 00:41:51,310 --> 00:41:56,980 olan Modern Marvels epizod olan şeyi iş necə təhsil show 891 00:41:56,980 --> 00:42:00,370 ki, iki şəkillər çəkir bir zaman düzgün istifadə 892 00:42:00,370 --> 00:42:02,540 və anlaşma point dəyərləri üzən 893 00:42:02,540 --> 00:42:05,610 bəzi əhəmiyyətli səbəb uğursuz nəticələr. 894 00:42:05,610 --> 00:42:06,363 Bir nəzər salaq. 895 00:42:06,363 --> 00:42:07,029 [Video playback] 896 00:42:07,029 --> 00:42:11,290 -Biz Engineering qayıtmaq " Müasir möcüzə fəlakətlər ". 897 00:42:11,290 --> 00:42:12,940 Computers. 898 00:42:12,940 --> 00:42:15,580 Biz bütün qəbul gəldiniz tez-tez sinir bozucu problemləri ki, 899 00:42:15,580 --> 00:42:20,960 them-- bugs, virus ilə var, və kiçik qiymətləri üçün proqram glitches-- 900 00:42:20,960 --> 00:42:23,100 rahatlığı üçün ödəyəcək. 901 00:42:23,100 --> 00:42:27,770 Lakin yüksək texnologiyalı və yüksək sürətli hərbi və kosmik proqram proqramları, 902 00:42:27,770 --> 00:42:32,780 kiçik problem bilərsiniz fəlakət daxil ucaltdı bilər. 903 00:42:32,780 --> 00:42:38,880 >> 4 iyun 1996-cı il, alimlər hazırlanan insansız Ariane 5 raket başlamaq üçün. 904 00:42:38,880 --> 00:42:41,190 Bu elmi daşıyan peyklər nəzərdə 905 00:42:41,190 --> 00:42:44,570 dəqiq necə yaratmaq Yerin maqnit sahəsində qarşılıqlı 906 00:42:44,570 --> 00:42:47,380 günəş küləkləri ilə. 907 00:42:47,380 --> 00:42:50,580 Raket üçün inşa edilmişdir Avropa Kosmik Agentliyi, 908 00:42:50,580 --> 00:42:54,400 və onun harada off qaldırdı Fransız Quyanası sahilində. 909 00:42:54,400 --> 00:42:57,520 >> Daxil təxminən 37 saniyə -at uçuş, onlar ilk 910 00:42:57,520 --> 00:42:59,070 fərq bir şey yanlış gedir. 911 00:42:59,070 --> 00:43:02,240 Nozzle döner ki, bir şəkildə onlar həqiqətən lazımdır. 912 00:43:02,240 --> 00:43:06,550 Uçuş daxil 40 saniyə ətrafında, aydın vasitə, narahatlıq idi 913 00:43:06,550 --> 00:43:08,820 Onlar zaman və ki qərar onu məhv etmək. 914 00:43:08,820 --> 00:43:12,370 Bu sıra təhlükəsizlik zabit ilə böyük içalat, düyməni basdı 915 00:43:12,370 --> 00:43:18,030 bu ola bilər əvvəl və raket partladılıb ictimai təhlükəsizlik təhlükə olur. 916 00:43:18,030 --> 00:43:21,010 >> -Bu Qız idi Ariane 5 səyahət, 917 00:43:21,010 --> 00:43:23,920 və onun məhv etdi çünki qüsur yerləşdirmək 918 00:43:23,920 --> 00:43:25,932 raket proqram katıştırılmış. 919 00:43:25,932 --> 00:43:27,640 Üzrə -Bu problem Ariane idi ki, var 920 00:43:27,640 --> 00:43:30,500 tələb edən bir sıra idi 64 bit, ifadə etmək 921 00:43:30,500 --> 00:43:33,560 və onlar çevirmək istədi 16-bit sayı bu. 922 00:43:33,560 --> 00:43:36,820 Onlar sayı güman çox böyük olacaq heç vaxt. 923 00:43:36,820 --> 00:43:40,940 Ki, bu rəqəm ən 64-bit sayı adet sıfır idi. 924 00:43:40,940 --> 00:43:42,450 Onlar yanlış idi. 925 00:43:42,450 --> 00:43:45,000 >> Bir -Bu bilməməsi proqram qəbul 926 00:43:45,000 --> 00:43:49,460 tərəfindən yaradılan bir sıra cür başqa uğursuzluq kök idi. 927 00:43:49,460 --> 00:43:54,260 Software inkişaf olmuşdu yeni texnologiya çox bahalı hissəsi. 928 00:43:54,260 --> 00:43:57,060 Bu Ariane 4 raket idi çox uğurlu olmuşdur. 929 00:43:57,060 --> 00:44:01,600 Üçün yaradılmış proqram qədər bu da Ariane 5 istifadə edilmişdir. 930 00:44:01,600 --> 00:44:04,790 >> -Əsas Problem ki Ariane 5. 931 00:44:04,790 --> 00:44:11,200 Faster--, sürətli sürətləndirdi və proqram ki, uçota deyil. 932 00:44:11,200 --> 00:44:14,910 >> -Bu Raket məhv böyük bir maliyyə fəlakət idi. 933 00:44:14,910 --> 00:44:18,630 Bütün səbəbiylə dəqiqə proqram səhv. 934 00:44:18,630 --> 00:44:21,160 Amma bu ilk deyil time data conversion problemləri 935 00:44:21,160 --> 00:44:24,770 müasir raket texnologiyası mürəkkəbləşdirilir. 936 00:44:24,770 --> 00:44:28,020 >> Başlaması ilə -1991 ilk Körfəz müharibəsi, 937 00:44:28,020 --> 00:44:30,540 Patriot raket oxşar cür yaşadı 938 00:44:30,540 --> 00:44:32,465 bir sıra dönüşüm problem. 939 00:44:32,465 --> 00:44:36,760 Və bir nəticə kimi 28 xalqı üçün 28 Amerika soldiers-- şəhid, 940 00:44:36,760 --> 00:44:39,010 və təxminən yüz nəfər yaralanıb. 941 00:44:39,010 --> 00:44:42,830 Zaman ehtimal edilən Patriot, Gələn Scuds qarşı qorumaq üçün, 942 00:44:42,830 --> 00:44:45,780 bir raket yanğın bilmədi. 943 00:44:45,780 --> 00:44:51,610 >> -Zaman İraqın Küveyti və Amerika işğal erkən 1991-ci ildə Desert Storm başlayıb, 944 00:44:51,610 --> 00:44:55,720 Patriot raket batareyaları səfərbər edilmişdir Səudiyyə Ərəbistanı və İsraili qorumaq üçün 945 00:44:55,720 --> 00:44:59,180 İraq Scud raket hücumları. 946 00:44:59,180 --> 00:45:03,080 The Patriot, ABŞ orta mənzilli edir səthi-to-hava sistemi 947 00:45:03,080 --> 00:45:06,530 Raytheon şirkəti tərəfindən istehsal. 948 00:45:06,530 --> 00:45:09,500 >> Patriot ölçüləri kesen özünə 949 00:45:09,500 --> 00:45:14,705 bu barədə təxminən 20 fut uzun və bu barədə 2,000 funt ağırlığında. 950 00:45:14,705 --> 00:45:19,090 Və bu, təxminən bir döyüş başlığı keçirir Mən bunu kobud hesab 150 lirə. 951 00:45:19,090 --> 00:45:23,880 Və döyüş başlığı özü yüksək partlayıcı olan 952 00:45:23,880 --> 00:45:26,700 Onun ətrafında fraqmentləri var. 953 00:45:26,700 --> 00:45:31,630 Belə ki, döyüş başlığı casing bir buckshot kimi hərəkət üçün nəzərdə tutulmuşdur. 954 00:45:31,630 --> 00:45:34,040 >> The raketlər keçirilir konteyner başına dörd, 955 00:45:34,040 --> 00:45:37,170 və yarı trailer ilə daşınıb. 956 00:45:37,170 --> 00:45:44,880 >> The Patriot anti-raket sistemi indi ən azı 20 il geri gedir. 957 00:45:44,880 --> 00:45:48,380 Bu, ilk nəzərdə tutulmuşdur bir raket kimi 958 00:45:48,380 --> 00:45:50,810 düşmən təyyarə aşağı Shoot. 959 00:45:50,810 --> 00:45:54,410 Ilk Körfəz müharibəsi ki, müharibə gələndə, 960 00:45:54,410 --> 00:45:59,650 Ordu üçün istifadə etmək istəyirdi Scuds deyil, təyyarə gülləboran etmək. 961 00:45:59,650 --> 00:46:03,580 İraq Air Force idi bir problem çox deyil, 962 00:46:03,580 --> 00:46:06,590 Ordu Scuds narahat idi. 963 00:46:06,590 --> 00:46:10,120 Və onlar çalışdı Patriot təkmilləşdirmək. 964 00:46:10,120 --> 00:46:12,740 >> Düşmən -Intercepting Mach 5 səyahət raket 965 00:46:12,740 --> 00:46:15,670 kifayət qədər çətin ola gedirdi. 966 00:46:15,670 --> 00:46:18,440 Amma zaman Patriot xidmət soxulmuş, 967 00:46:18,440 --> 00:46:22,580 Ordu xəbərdar deyil İraq modifikasiyası ki 968 00:46:22,580 --> 00:46:25,880 onların Scuds etdi təxminən bu mümkün deyil. 969 00:46:25,880 --> 00:46:30,690 >> Hansı baş Scuds ki, gələn qərarsız idi. 970 00:46:30,690 --> 00:46:32,000 Onlar wobbly idi. 971 00:46:32,000 --> 00:46:37,210 Bunun səbəbi Iraqis-- idi 600 kilometr çıxmaq üçün 972 00:46:37,210 --> 00:46:41,680 300 kilometrlik mənzili missile-- və , ön döyüş başlığı çəkisi həyata aldı 973 00:46:41,680 --> 00:46:43,340 və döyüş başlığı yüngül etdi. 974 00:46:43,340 --> 00:46:48,490 Belə ki, indi Patriot gəlməyə çalışır Scud da, time-- və ən 975 00:46:48,490 --> 00:46:52,880 Bu böyük əksəriyyəti time-- yalnız Scud uçmaq. 976 00:46:52,880 --> 00:46:57,120 >> Patriot sistemi operatorları -Bir Patriot onun hədəf buraxılmış həyata 977 00:46:57,120 --> 00:47:01,630 onlar Patriot-nin döyüş başlığı partlatdı bu mümkün itki qarşısını almaq üçün 978 00:47:01,630 --> 00:47:04,440 dağılmaq icazə verildi. 979 00:47:04,440 --> 00:47:08,700 >> Yəni insanların çoxu gördüm nə idi kimi səmada böyük fireballs, 980 00:47:08,700 --> 00:47:14,180 və səhv Scud başlığı tutduğunu. 981 00:47:14,180 --> 00:47:18,020 >> Gecə göyə, Patriotlar-baxmayaraq uğurla məhv ortaya çıxdı 982 00:47:18,020 --> 00:47:23,280 Scuds, Dehran ola bilər öz fəaliyyəti barədə heç bir səhv. 983 00:47:23,280 --> 00:47:27,930 Orada Patriotları radar sistemi Daxil olan Scud itirilmiş track 984 00:47:27,930 --> 00:47:30,260 səbəbiylə başladılan heç bir proqram qüsur. 985 00:47:30,260 --> 00:47:34,060 986 00:47:34,060 --> 00:47:38,880 >> Bu ilk kəşf edən israillilər artıq sistem olduğunu, 987 00:47:38,880 --> 00:47:41,130 böyük vaxt fərq oldu. 988 00:47:41,130 --> 00:47:44,770 Səbəbiylə əlaqədar bir saat sistemin kompüter. 989 00:47:44,770 --> 00:47:48,190 >> -Haqqında Iki həftə əvvəl Dhahran faciə, 990 00:47:48,190 --> 00:47:50,720 İsraillilər məlumat Müdafiə Nazirliyi 991 00:47:50,720 --> 00:47:52,410 ki, sistem vaxt itirirdi. 992 00:47:52,410 --> 00:47:54,410 Haqqında səkkiz saat sonra çalışan, onlar qeyd 993 00:47:54,410 --> 00:47:57,690 Sistemin çevrilir ki, xeyli az dəqiq. 994 00:47:57,690 --> 00:48:01,850 Müdafiə İdarəsi tərəfindən cavab Patriot batareyaları bütün izah 995 00:48:01,850 --> 00:48:04,800 sistemləri tərk etmək uzun müddət üçün. 996 00:48:04,800 --> 00:48:06,980 Onlar uzun müddət idi nə dedi heç. 997 00:48:06,980 --> 00:48:09,140 8 saat, 10 saat, min saat. 998 00:48:09,140 --> 00:48:11,300 Heç kəs bilirdi. 999 00:48:11,300 --> 00:48:13,320 >> The Patriot batareya barak da konuşlu 1000 00:48:13,320 --> 00:48:18,310 Dhahran və flawed daxili at saat 100 saat olmuşdur 1001 00:48:18,310 --> 00:48:21,520 25 fevral gecəsi. 1002 00:48:21,520 --> 00:48:25,792 >> -Bu Bir dəqiqlik üçün vaxt izlenir bir ikinci bir onuncu haqqında. 1003 00:48:25,792 --> 00:48:27,950 Ikinci İndi onuncu maraqlı sayı 1004 00:48:27,950 --> 00:48:31,850 Bu ifadə edilə bilməz, çünki məhz ikili olan 1005 00:48:31,850 --> 00:48:36,500 Bu dəqiq ifadə edilə bilməz deməkdir hər hansı bir müasir digital kompüter. 1006 00:48:36,500 --> 00:48:41,070 Bu, inanmaq çətindir, lakin nümunə kimi istifadə edin. 1007 00:48:41,070 --> 00:48:43,420 >> Nin bir nömrəli üçüncü edək. 1008 00:48:43,420 --> 00:48:47,330 Üçdə biri ola bilməz dəqiq ondalık dilə gətirdi. 1009 00:48:47,330 --> 00:48:52,060 Üçdə biri 0,333 edir daimi üçün gedir. 1010 00:48:52,060 --> 00:48:56,420 Ilə bunu etmək heç bir yol yoxdur Onluq mütləq dəqiqlik. 1011 00:48:56,420 --> 00:48:59,530 Ki, problemin tam növü var ki, Patriot baş verib. 1012 00:48:59,530 --> 00:49:04,040 Bu artıq sistem qaçdı, pis vaxt səhv oldu. 1013 00:49:04,040 --> 00:49:08,840 >> Əməliyyatın 100 saat Sonra, bu vaxt səhv yalnız bir üçüncü oldu 1014 00:49:08,840 --> 00:49:10,440 ikinci. 1015 00:49:10,440 --> 00:49:14,150 Amma hedefleme baxımından Mach 5 səyahət raket, 1016 00:49:14,150 --> 00:49:18,560 bir izleme nəticələndi üzərində 600 metr səhv. 1017 00:49:18,560 --> 00:49:21,870 Bu ölümcül səhv olardı Dehran olan əsgərlər üçün. 1018 00:49:21,870 --> 00:49:28,455 >> Bir Scud launch idi hansı oldu erkən xəbərdarlıq peyk aşkar, 1019 00:49:28,455 --> 00:49:32,710 və onlar Scud gələn bilirdi onların ümumi istiqamətdə. 1020 00:49:32,710 --> 00:49:35,150 Bu gələn edildi Onlar bilmirdim. 1021 00:49:35,150 --> 00:49:38,210 Bu radar qədər artıq idi Patriot sisteminin komponenti 1022 00:49:38,210 --> 00:49:43,150 Dehran müdafiə tapmaq və saxlamaq üçün gələn düşmən raket track. 1023 00:49:43,150 --> 00:49:44,561 >> The radar çox ağıllı idi. 1024 00:49:44,561 --> 00:49:46,560 Bu, həqiqətən izlemek Scud mövqeyi 1025 00:49:46,560 --> 00:49:48,930 və sonra proqnozlaşdırırlar yəqin ki, olacaq 1026 00:49:48,930 --> 00:49:51,380 növbəti dəfə radar bir zərbə göndərdi. 1027 00:49:51,380 --> 00:49:53,040 Bu sıra qapısı adlanırdı. 1028 00:49:53,040 --> 00:49:57,620 >> Patriot dəfə -Sonra kifayət qədər vaxt var qərar 1029 00:49:57,620 --> 00:50:02,400 geri getmək və növbəti yoxlamaq keçdi bu aşkar obyekt üçün yer 1030 00:50:02,400 --> 00:50:03,550 geri gedir. 1031 00:50:03,550 --> 00:50:07,820 Belə ki, yanlış geri getdi zaman yer, sonra heç bir obyekt görür. 1032 00:50:07,820 --> 00:50:10,360 Və heç bir obyekt olduğunu qərara alır. 1033 00:50:10,360 --> 00:50:13,630 Saxta aşkar idi ki, və bu track düşər. 1034 00:50:13,630 --> 00:50:16,970 >> The daxil olan Scud yox radar ekranında, 1035 00:50:16,970 --> 00:50:20,200 və saniyə sonra, onu barak daxil slammed. 1036 00:50:20,200 --> 00:50:22,570 Bu Scud 28 şəhid. 1037 00:50:22,570 --> 00:50:26,110 Bu son bir qovuldu ilk Körfəz müharibəsi zamanı. 1038 00:50:26,110 --> 00:50:31,920 Faciəli, yenilənmiş proqram Ertəsi gün sübh gəldi. 1039 00:50:31,920 --> 00:50:34,870 Bu proqram qüsur idi olmuşdur sabit, yekun 1040 00:50:34,870 --> 00:50:39,150 çətinlikli bir fəsil Patriot raket tarixi. 1041 00:50:39,150 --> 00:50:40,030 >> [END Video playback] 1042 00:50:40,030 --> 00:50:41,488 >> DAVID J. MALAN: Bu CS50 üçün var. 1043 00:50:41,488 --> 00:50:42,820 Biz Çərşənbə günü görəcəksiniz. 1044 00:50:42,820 --> 00:50:46,420 1045 00:50:46,420 --> 00:50:50,370 >> [MUSIC ifa] 1046 00:50:50,370 --> 00:54:23,446