1 00:00:00,000 --> 00:00:02,350 >> [MUSIC PLAYING] 2 00:00:02,350 --> 00:00:05,444 3 00:00:05,444 --> 00:00:06,360 DOUG LLOYD: B眉t眉n h眉ququ. 4 00:00:06,360 --> 00:00:07,770 Q蓹rib蓹 m枚vzu c眉r, sa臒? 5 00:00:07,770 --> 00:00:09,050 Magic n枚mr蓹l蓹ri. 6 00:00:09,050 --> 00:00:12,012 O zaman o n蓹 dem蓹kdir doe sehrli n枚mr蓹l蓹ri haqq谋nda s枚hb蓹t? 7 00:00:12,012 --> 00:00:14,220 Yax艧谋, proqramlar谋n b蓹zi biz CS50 yazd谋q ki, 8 00:00:14,220 --> 00:00:16,660 indiy蓹 q蓹d蓹r b蓹zi q蓹rib蓹 var n枚mr蓹l蓹ri c眉r onlara at谋lan. 9 00:00:16,660 --> 00:00:19,680 Y蓹qin ki, s蓹b蓹bl蓹r蓹 g枚r蓹 biz deyil tamamil蓹 indi ba艧a d眉艧眉r眉k. 10 00:00:19,680 --> 00:00:23,950 M蓹s蓹l蓹n, Mario problem, biz 23 piramida h眉nd眉rl眉y眉 ba艧谋ba臒l谋. 11 00:00:23,950 --> 00:00:26,880 Biz a莽谋q-ayd谋n ifad蓹 etdi daha y眉ks蓹k 23 getm蓹k bilm蓹z. 12 00:00:26,880 --> 00:00:28,702 >> Amma 23 n蓹 dem蓹kdir? 13 00:00:28,702 --> 00:00:30,410 Yax艧谋, siz oxumaq 蓹g蓹r Diqq蓹tl蓹 siz蓹 spec 14 00:00:30,410 --> 00:00:32,493 ki, g枚rm眉艧蓹m bil蓹r s蓹b蓹bi 23 onu ba艧谋ba臒l谋 15 00:00:32,493 --> 00:00:36,160 standart h眉nd眉rl眉y眉 莽眉nki bir terminal p蓹nc蓹r蓹 24. 16 00:00:36,160 --> 00:00:38,860 V蓹 biz 蓹g蓹r piramida daha taller olmaq, 17 00:00:38,860 --> 00:00:41,290 Bu q蓹rib蓹 艧ey ola bil蓹r harada ekran off 莽al谋艧谋r. 18 00:00:41,290 --> 00:00:45,140 Bildiyiniz V蓹 n蓹 do臒ru, kontekstind蓹 dem蓹kdir? 19 00:00:45,140 --> 00:00:48,880 >> 23 d蓹rhal ayd谋n m蓹nas谋 kims蓹 olan proqram bax谋r 20 00:00:48,880 --> 00:00:51,550 v蓹 b蓹lk蓹 ba艧qa bir var size terminal p蓹nc蓹r蓹? 21 00:00:51,550 --> 00:00:52,330 Y蓹qin ki, deyil. 22 00:00:52,330 --> 00:00:53,080 OK, kimi g枚r眉n眉r. 23 00:00:53,080 --> 00:00:55,005 Yax艧谋, niy蓹 yaln谋z az 23-d蓹n? 24 00:00:55,005 --> 00:00:56,880 脺mumiyy蓹tl蓹, bu c眉r var pis v蓹rdi艧 h蓹qiq蓹t蓹n 25 00:00:56,880 --> 00:00:58,940 Sizin kodu daxil sabitl蓹ri yazmaq. 26 00:00:58,940 --> 00:01:02,190 Siz, h蓹qiq蓹t蓹n, n蓹 zaman, bunu Sizin kodu daxil daimi yazmaq 27 00:01:02,190 --> 00:01:05,630 istifad蓹 ed蓹r蓹k kimi istinad b蓹z蓹n var sehrli n枚mr蓹l蓹ri, bir 艧ey deyil 28 00:01:05,630 --> 00:01:08,030 biz 眉mumiyy蓹tl蓹 c蓹hd v蓹 qar艧谋s谋n谋 almaq ist蓹yirik. 29 00:01:08,030 --> 00:01:12,830 >> M蓹s蓹l蓹n, bir n蓹z蓹r salaq Burada bu sad蓹 funksiyas谋. 30 00:01:12,830 --> 00:01:15,726 Ayd谋nd谋r ki, he莽 bir m蓹lumat yoxdur C tipli kart v蓹 ya g枚y蓹rt蓹 莽a臒谋r谋b. 31 00:01:15,726 --> 00:01:16,600 Bel蓹 ki, yaln谋z m蓹niml蓹 da艧谋y谋rlar. 32 00:01:16,600 --> 00:01:18,910 Bu bir az var pseudocode burada qar谋艧d谋r谋l谋r. 33 00:01:18,910 --> 00:01:21,050 Bu adl谋 bir funksiyas谋 var ki, y蓹qin kart m蓹艧臒ul 34 00:01:21,050 --> 00:01:26,570 onun parametri kimi bir g枚y蓹rt蓹 edir v蓹 M蓹n蓹 莽谋x谋艧 ed蓹c蓹k bir kart. 35 00:01:26,570 --> 00:01:30,990 >> M蓹n burada m蓹n bir 艧ey edir蓹m , 0-dan 52 莽al谋艧an bir loop var 36 00:01:30,990 --> 00:01:33,394 v蓹 m蓹n bir kart m蓹艧臒ul. 37 00:01:33,394 --> 00:01:35,310 B蓹li, biz bir sehrli var burada say谋, do臒ru. 38 00:01:35,310 --> 00:01:38,790 Siz sehrli say谋 n蓹 g枚r眉rs眉n眉z? 39 00:01:38,790 --> 00:01:42,280 V蓹 ya daha 蓹h蓹miyy蓹tlisi, siz problem burada n蓹 g枚rm蓹k? 40 00:01:42,280 --> 00:01:44,310 X眉susil蓹 bu halda yaln谋z bir funksiyas谋 var 41 00:01:44,310 --> 00:01:48,030 bir 枚z fayl ehtiva qovluq 42 00:01:48,030 --> 00:01:49,970 m眉xt蓹lif bir d蓹st蓹 fayllar谋 h蓹r hans谋 43 00:01:49,970 --> 00:01:51,670 kartlar g枚y蓹rt蓹 ba艧qa 艧ey yoxdur. 44 00:01:51,670 --> 00:01:57,310 B蓹lk蓹 onlar谋 shuffles, v蓹 ya bir t蓹r蓹fd蓹n m蓹艧臒ul be艧 kartlar谋 蓹v蓹zin蓹 bir kart. 45 00:01:57,310 --> 00:01:59,420 >> Siz n蓹 g枚r眉rs眉n眉z problem burada ola bil蓹r? 46 00:01:59,420 --> 00:02:03,220 Siz sehrli say谋 g枚r眉rs眉n眉zm眉 M蓹n kodu enjekte etdik? 47 00:02:03,220 --> 00:02:04,390 Bu do臒ru, 52 var. 48 00:02:04,390 --> 00:02:06,440 >> Kimi, daxil蓹n siz y蓹qin ki, bilirsiniz, OK. 49 00:02:06,440 --> 00:02:09,740 Standart g枚y蓹rt蓹 kimi kartlar谋 52 kartlar谋 ehtiva edir. 50 00:02:09,740 --> 00:02:12,570 Amma bizim proqramda, yaln谋z var c眉r orada 蓹traf谋nda 眉z蓹n. 51 00:02:12,570 --> 00:02:15,280 Q蓹fl蓹t蓹n 52 var kimi deyil. 52 00:02:15,280 --> 00:02:18,290 >> Bu h蓹ll etm蓹k 眉莽眉n bir yolu problem bunu edir. 53 00:02:18,290 --> 00:02:22,724 Biz indi 莽ox a莽谋q-ayd谋n ist蓹yirik 52 kimi g枚y蓹rt蓹 枚l莽眉s眉 s蓹sl蓹n蓹r蓹k. 54 00:02:22,724 --> 00:02:25,390 Bu bir az daha asan verir zaman loop 眉莽眉n m蓹nas谋 55 00:02:25,390 --> 00:02:28,650 biz sonra deyir蓹m sonra g枚y蓹rt蓹 枚l莽眉s眉 azd谋r. 56 00:02:28,650 --> 00:02:32,666 Bu, sad蓹c蓹 52 dey蓹r蓹k daha yax艧谋 g枚r眉n眉r. 57 00:02:32,666 --> 00:02:34,290 陌ndi bu h蓹qiq蓹t蓹n problemi h蓹ll etmir. 58 00:02:34,290 --> 00:02:38,460 B蓹zi r蓹mzi verir daimi m蓹nas谋n谋. 59 00:02:38,460 --> 00:02:40,820 Amma bu c眉r h蓹qiq蓹t蓹n yoxdur ba艧qa bir problem t蓹qdim 60 00:02:40,820 --> 00:02:43,770 ki, d蓹rhal ayd谋n ola bil蓹r. 61 00:02:43,770 --> 00:02:45,859 H蓹tta bu d蓹yi艧蓹n 蓹g蓹r globally-- elan 62 00:02:45,859 --> 00:02:47,650 Siz n蓹 geri yoxdur biz b蓹yan zaman dem蓹kdir 63 00:02:47,650 --> 00:02:50,500 qlobal yerli qar艧谋 d蓹yi艧蓹n? 64 00:02:50,500 --> 00:02:53,340 Biz bir d蓹yi艧蓹n elan bile qlobal, n蓹 var, 蓹g蓹r 65 00:02:53,340 --> 00:02:55,500 ba艧qa funksiyas谋 funksiyalar谋 bizim suite 66 00:02:55,500 --> 00:02:59,750 kart manipulyasiya il蓹 m蓹艧臒ul ki s蓹hv蓹n, g枚y蓹rt蓹 枚l莽眉s眉 d蓹yi艧ir 67 00:02:59,750 --> 00:03:02,727 v蓹 ya onu art谋r谋r 1 v蓹 ya 1 il蓹 azal谋r. 68 00:03:02,727 --> 00:03:04,060 Bu do臒ru, narahatl谋q sehr bil蓹r? 69 00:03:04,060 --> 00:03:08,261 Biz bir s谋ra il蓹 m蓹艧臒ul oldu臒unuz, x眉susil蓹 d蓹 蓹g蓹r kartlar谋 tam g枚y蓹rt蓹 shuffling harada 70 00:03:08,261 --> 00:03:08,760 t蓹l蓹b olunur. 71 00:03:08,760 --> 00:03:12,804 G枚y蓹rt蓹 枚l莽眉s眉 azal谋r, 蓹g蓹r 1, m蓹s蓹l蓹n, 51, 72 00:03:12,804 --> 00:03:14,970 biz, h蓹qiq蓹t蓹n, shuffling deyilik b蓹lk蓹 b眉t眉n kartlar谋. 73 00:03:14,970 --> 00:03:16,500 Biz onlardan biri t蓹rk edirik. 74 00:03:16,500 --> 00:03:21,680 V蓹 ki, d蓹y蓹ri b蓹lk蓹 ola bil蓹r proqnozla艧d谋r谋lan v蓹 ya pis aktyor t蓹r蓹find蓹n istismar. 75 00:03:21,680 --> 00:03:24,920 >> C deyirl蓹r n蓹 t蓹min edir preprocessor direktiv olan 76 00:03:24,920 --> 00:03:27,764 d蓹 makro adlan谋r simvolik sabitl蓹ri yarad谋lmas谋. 77 00:03:27,764 --> 00:03:30,180 V蓹 蓹slind蓹, siz art谋q var bir preprocessor direktiv g枚r眉ld眉 78 00:03:30,180 --> 00:03:32,916 Siz onu e艧itm蓹mi艧蓹m, h蓹tta # daxildir il蓹 莽a臒谋r谋b. 79 00:03:32,916 --> 00:03:37,150 Bu makro bir misal var v蓹 ya preprocessor direktiv. 80 00:03:37,150 --> 00:03:41,290 >> yol simvolik sabitl蓹ri yaratmaq, v蓹 ya daimi bir ad verilm蓹si 81 00:03:41,290 --> 00:03:43,740 daha var ki, y蓹ni bel蓹. 82 00:03:43,740 --> 00:03:47,030 # m眉蓹yy蓹n, ad谋, d蓹yi艧dirilm蓹si. 83 00:03:47,030 --> 00:03:49,140 K蓹nara h蓹qiq蓹t蓹n vacibdir Burada h蓹qiq蓹t蓹n s眉r蓹tli. 84 00:03:49,140 --> 00:03:54,180 Bir n枚qt蓹li verg眉l qoymaq etm蓹yin Sizin # m眉蓹yy蓹nl蓹艧dirir sonu. 85 00:03:54,180 --> 00:03:57,310 Bel蓹 ki Sayl谋, ad谋, 蓹v蓹z edir. 86 00:03:57,310 --> 00:03:59,540 >> Proqram t蓹rtib edildikd蓹, n蓹 h蓹qiq蓹t蓹n olur 87 00:03:59,540 --> 00:04:01,740 gedir, 蓹g蓹r compiler edir Sizin kod vasit蓹sil蓹 getm蓹k 88 00:04:01,740 --> 00:04:06,770 v蓹 h蓹r instansiya 蓹v蓹z h蓹r hans谋 il蓹 s枚z眉 "ad谋" Siz 89 00:04:06,770 --> 00:04:08,860 蓹v蓹z kimi qoydu. 90 00:04:08,860 --> 00:04:13,060 Analoji, # daxildir 蓹g蓹r sort 莽谋xarmaq v蓹 yap谋艧t谋rma ox艧ar, 91 00:04:13,060 --> 00:04:15,700 sonra Sayl谋 sort edir tapmaq v蓹 蓹v蓹z ox艧ar, 92 00:04:15,700 --> 00:04:19,180 He莽 bir ki x眉susiyy蓹t istifad蓹 etdiyiniz halda s枚z emal proqram, misal 眉莽眉n. 93 00:04:19,180 --> 00:04:26,345 >> M蓹s蓹l蓹n, 蓹g蓹r m蓹n 3.14159265 kimi pi # m眉蓹yy蓹n, 94 00:04:26,345 --> 00:04:28,720 Daha yax艧谋 riyazi 蓹g蓹r maili v蓹 bird蓹n 95 00:04:28,720 --> 00:04:31,640 3.14159265 u莽an g枚rm蓹k 蓹traf谋nda kodu, 96 00:04:31,640 --> 00:04:33,517 Siz y蓹qin ki, pi s枚hb蓹t bilirik. 97 00:04:33,517 --> 00:04:35,850 Amma b蓹lk蓹 biz onu bir ver蓹 bil蓹r az daha simvolik m蓹nas谋. 98 00:04:35,850 --> 00:04:39,850 V蓹 biz 蓹v蓹zin蓹 # m眉蓹yy蓹n dem蓹k olar n枚mr蓹l蓹ri ki, qurtum kimi pi 99 00:04:39,850 --> 00:04:42,110 M蓹n saxlamaq fikrind蓹 deyil蓹m ki, 眉z蓹rind蓹 oxu. 100 00:04:42,110 --> 00:04:45,560 >> V蓹 n蓹 sonra n蓹 olacaq proqram zaman t蓹rtib vaxt 101 00:04:45,560 --> 00:04:48,530 t蓹rtib, ilk 艧ey ki, ba艧 ver蓹c蓹k onun vasit蓹sil蓹 getm蓹k olacaq 102 00:04:48,530 --> 00:04:51,520 v蓹 h蓹r zaman 蓹v蓹z ed蓹c蓹k Bu, kapital P, kapital I g枚r眉r 103 00:04:51,520 --> 00:04:55,610 bu s枚z眉n il蓹 蓹v蓹z ed蓹c蓹yik 3.14 v蓹 s, ki, 104 00:04:55,610 --> 00:04:58,090 h蓹r n枚v眉 yoxdur vaxt h蓹l蓹 proqram is蓹 105 00:04:58,090 --> 00:05:00,631 funksionall谋q var ki, Siz 莽al谋艧谋r谋q, 莽眉nki g枚zl蓹yirik 106 00:05:00,631 --> 00:05:05,090 manipulyasiya il蓹 vurulmas谋, Bu pi t蓹r蓹find蓹n n蓹, b枚l眉nm蓹si. 107 00:05:05,090 --> 00:05:08,230 >> Bu m蓹hdud deyil yaln谋z n枚mr蓹l蓹ri 眉莽眉n 蓹v蓹z. 108 00:05:08,230 --> 00:05:12,279 M蓹s蓹l蓹n, m蓹n # m眉蓹yy蓹n ed蓹 bil蓹r string CS50 kimi kurs. 109 00:05:12,279 --> 00:05:14,070 Bu halda, zaman proqram t蓹rtib, 110 00:05:14,070 --> 00:05:16,236 # m眉蓹yy蓹n ke莽蓹c蓹yi indeksi, h蓹r zaman 蓹v蓹z 111 00:05:16,236 --> 00:05:19,900 Bu string CS50 il蓹 "kursu" g枚r眉r. 112 00:05:19,900 --> 00:05:21,720 >> Ba艧 g枚r蓹c蓹ksiniz I ki, tez-tez 113 00:05:21,720 --> 00:05:26,090 # m眉蓹yy蓹n b眉t眉n simvolik m眉蓹yy蓹n sabitl蓹ri, bel蓹 ki, dan谋艧maq 114 00:05:26,090 --> 00:05:28,130 b眉t眉n caps h蓹mi艧蓹 var. 115 00:05:28,130 --> 00:05:28,960 Bu konvensiya var. 116 00:05:28,960 --> 00:05:30,170 Bu laz谋m deyil. 117 00:05:30,170 --> 00:05:33,900 s蓹b蓹bi 眉mumiyy蓹tl蓹 insanlar istifad蓹 ed蓹c蓹k b眉t眉n paytaxtlar谋nda onlar #defining edirik 118 00:05:33,900 --> 00:05:37,590 ki, yaln谋z bu, h蓹qiq蓹t蓹n, a莽谋q-a艧kar etm蓹k 眉莽眉n edir m蓹nim kodu bu x眉susi element 119 00:05:37,590 --> 00:05:38,820 m眉蓹yy蓹n daimi deyil. 120 00:05:38,820 --> 00:05:43,730 Bu ki莽ik idi, bu m眉mk眉nd眉r bir d蓹yi艧蓹n s蓹hv ola bil蓹r. 121 00:05:43,730 --> 00:05:46,120 V蓹 y蓹qin ki, var yax艧谋 bir 艧ey etm蓹k deyil. 122 00:05:46,120 --> 00:05:48,910 >> Bel蓹 ki, bu x眉susi h蓹ll daha yax艧谋 123 00:05:48,910 --> 00:05:50,550 蓹vv蓹lki v蓹 ya daha. 124 00:05:50,550 --> 00:05:59,950 M蓹n ilk Sayl谋 g枚y蓹rt蓹 枚l莽眉s眉 52, onda indi burada 52 v蓹 ya g枚y蓹rt蓹 枚l莽眉s眉 m蓹nim istifad蓹, 125 00:05:59,950 --> 00:06:01,850 bir 莽ox daha asan v蓹 莽ox t蓹hl眉k蓹siz edir. 126 00:06:01,850 --> 00:06:03,280 Siz daimi manipulyasiya ed蓹 bilm蓹z. 127 00:06:03,280 --> 00:06:05,259 52 plus plus dey蓹 bilm蓹r蓹m. 128 00:06:05,259 --> 00:06:06,800 53 莽evirm蓹k niyy蓹tind蓹 deyil. 129 00:06:06,800 --> 00:06:09,390 Siz bir 艧ey 52 d蓹yi艧蓹 bilm蓹z. 130 00:06:09,390 --> 00:06:12,470 >> Siz d蓹yi艧蓹n d蓹yi艧蓹 bil蓹rsiniz onlar谋n d蓹y蓹ri 52, 131 00:06:12,470 --> 00:06:14,870 olan biz 蓹vv蓹l idi ilk fix idi. 132 00:06:14,870 --> 00:06:17,000 V蓹 arta bil蓹r 53 ki, d蓹yi艧蓹n. 133 00:06:17,000 --> 00:06:21,100 Amma 52 Plus Plus v蓹 dey蓹 bilm蓹r蓹m bird蓹n 53 daxil 52 莽evirm蓹k ki, var. 134 00:06:21,100 --> 00:06:23,350 52 h蓹mi艧蓹 52. 135 00:06:23,350 --> 00:06:28,860 V蓹 bel蓹 ki, t蓹sad眉f蓹n d蓹yi艧蓹 bilm蓹z burada manipulyasiya il蓹 g枚y蓹rt蓹 枚l莽眉s眉, 136 00:06:28,860 --> 00:06:29,940 137 00:06:29,940 --> 00:06:32,390 >> Yax艧谋 bir t蓹r蓹fi Bu baxmayaraq t蓹siri 138 00:06:32,390 --> 00:06:38,310 ki, bilirik ki, deyil D眉nyan谋n b眉t眉n 枚lk蓹l蓹ri 139 00:06:38,310 --> 00:06:40,690 枚l莽眉s眉 52 kartlar g枚y蓹rt蓹 istifad蓹? 140 00:06:40,690 --> 00:06:45,630 M蓹s蓹l蓹n, h蓹qiq蓹t蓹n 眉mumi var Almaniya, 32 g枚y蓹rt蓹 枚l莽眉s眉 istifad蓹 etm蓹k 141 00:06:45,630 --> 00:06:48,020 b蓹zi soyunmaq harada a艧a臒谋 d蓹y蓹ri kartlar谋. 142 00:06:48,020 --> 00:06:50,960 V蓹 bu halda, m蓹n liman谋na m蓹nim suite ist蓹di 143 00:06:50,960 --> 00:06:55,390 il蓹 m蓹艧臒ul funksiyalar谋 Almaniya kart manipulyasiya. 144 00:06:55,390 --> 00:06:59,440 M蓹n ilk n枚vb蓹d蓹 bil蓹r biz g枚st蓹rdi, getm蓹k v蓹 蓹v蓹z var 145 00:06:59,440 --> 00:07:03,570 32 m蓹nim kodu 52 b眉t眉n hallarda. 146 00:07:03,570 --> 00:07:07,940 >> Amma burada, m蓹n # m眉蓹yy蓹n 蓹g蓹r g枚y蓹rt蓹 枚l莽眉s眉 m蓹nim kodu 莽ox 眉st 32 kimi, 147 00:07:07,940 --> 00:07:11,730 M蓹n bunu d蓹yi艧m蓹k laz谋md谋r, 蓹g蓹r, m蓹n yaln谋z getm蓹k v蓹 bir 艧ey d蓹yi艧ir. 148 00:07:11,730 --> 00:07:15,010 M蓹nim kodu compile v蓹 b眉t眉n ani vasit蓹sil蓹 t蓹bli臒 edir. 149 00:07:15,010 --> 00:07:18,850 茝slind蓹, biz g枚y蓹rt蓹 d蓹yi艧蓹 bil蓹rsiniz biz ist蓹diyiniz h蓹r hans谋 bir d蓹y蓹ri 枚l莽眉s眉. 150 00:07:18,850 --> 00:07:22,500 >> M蓹n 眉莽眉n gedir g枚y蓹rt蓹 枚l莽眉s眉 alma oyun? 151 00:07:22,500 --> 00:07:23,430 >> M蓹n Doug Lloyd edir蓹m. 152 00:07:23,430 --> 00:07:25,840 Bu CS50 edir. 153 00:07:25,840 --> 00:07:27,772