1 00:00:00,000 --> 00:00:02,480 >> [MUSIC PLAYING] 2 00:00:02,480 --> 00:00:06,460 3 00:00:06,460 --> 00:00:09,350 >> DOUG LLOYD: B眉t眉n sa臒, bel蓹 ed蓹k command-line d蓹lill蓹ri haqq谋nda dan谋艧maq. 4 00:00:09,350 --> 00:00:11,800 Bel蓹 ki, bu g眉n蓹 q蓹d蓹r 蓹lb蓹tt蓹 olduqca proqramlar谋 莽ox b眉t眉n 5 00:00:11,800 --> 00:00:16,360 y蓹qin ki, ba艧lay谋b 艧eyl蓹rdir int 蓹sas bo艧luq kimi. 6 00:00:16,360 --> 00:00:18,310 Biz toplanmas谋 oldu臒unuz istifad蓹莽i giri艧i biz bunu laz谋md谋r, 蓹g蓹r 7 00:00:18,310 --> 00:00:21,080 kimi proqramlar da, Mario proqram, m蓹s蓹l蓹n, 8 00:00:21,080 --> 00:00:22,990 in-proqram ister t蓹r蓹find蓹n. 9 00:00:22,990 --> 00:00:25,190 Biz d蓹yi艧dirm蓹k 眉莽眉n laz谋m deyil 蓹sas b蓹yannam蓹, 10 00:00:25,190 --> 00:00:30,684 莽眉nki 蓹v蓹zin蓹 蓹sas biz daxilind蓹 yaln谋z int almaq 眉莽眉n z蓹ng ed蓹 bil蓹r, deyirl蓹r. 11 00:00:30,684 --> 00:00:32,350 Nec蓹 b枚y眉k piramida olmaq ist蓹yirsiniz? 12 00:00:32,350 --> 00:00:34,455 V蓹 ya almaq 眉莽眉n z蓹ng ed蓹 bil蓹r n蓹 q蓹d蓹r d蓹yi艧iklik float 13 00:00:34,455 --> 00:00:36,400 istifad蓹莽i I 莽谋x谋艧 laz谋md谋r? 14 00:00:36,400 --> 00:00:38,630 >> Ba艧qa bir yol olsa da var v蓹 biz istifad蓹莽il蓹r ist蓹yirsinizs蓹 15 00:00:38,630 --> 00:00:40,580 t蓹min etm蓹k 眉莽眉n Bizim proqram data 16 00:00:40,580 --> 00:00:43,320 yerin蓹 is蓹 i艧 zaman谋 proqram, 莽al谋艧an 17 00:00:43,320 --> 00:00:45,910 bir inc蓹 f蓹rq, lakin b蓹z蓹n bir 莽ox faydal谋 bir, 18 00:00:45,910 --> 00:00:48,120 biz 蓹sas elan yeni bir forma laz谋md谋r. 19 00:00:48,120 --> 00:00:53,320 Biz ist蓹yirsinizs蓹 int 蓹sas etibars谋z istifad蓹 ed蓹 bilm蓹z command-line dig蓹r m蓹lumatlar谋 toplamaq 20 00:00:53,320 --> 00:00:57,540 istifad蓹莽i proqram 莽al谋艧谋r zaman, bel蓹likl蓹 command-line d蓹lill蓹ri. 21 00:00:57,540 --> 00:00:59,810 >> Bu skript sat谋r谋 toplamaq istifad蓹莽i d蓹lill蓹ri, 22 00:00:59,810 --> 00:01:03,140 Sizin b蓹yannam蓹 d蓹yi艧蓹 艧eyl蓹rdir int kimi baxmaq 眉莽眉n 蓹sas 23 00:01:03,140 --> 00:01:10,450 蓹sas, a莽谋q paren, int argc, verg眉l, string argv, kvadrat m枚t蓹riz蓹d蓹, 24 00:01:10,450 --> 00:01:12,670 v蓹 sonra buruq brace a莽谋n. 25 00:01:12,670 --> 00:01:14,415 Bel蓹 ki, art谋q n蓹 dem蓹kdir? 26 00:01:14,415 --> 00:01:19,410 Yax艧谋, biz iki parametrl蓹ri ke莽蓹n, 蓹sas v蓹 ya d蓹lill蓹ri v蓹 ya giri艧. 27 00:01:19,410 --> 00:01:23,800 One, bir tam adl谋 argc v蓹 dig蓹r n蓹dir? 28 00:01:23,800 --> 00:01:26,430 29 00:01:26,430 --> 00:01:29,640 Bu h眉ququ, strings bir s谋ra var? 30 00:01:29,640 --> 00:01:31,140 Biz bu kvadrat m枚t蓹riz蓹 notation g枚rm蓹k. 31 00:01:31,140 --> 00:01:32,181 Bu strings bir s谋ra var. 32 00:01:32,181 --> 00:01:35,110 Bu f蓹rdi simli deyil, Bu strings bir s谋ra var. 33 00:01:35,110 --> 00:01:39,640 V蓹 bu iki d蓹lill蓹ri, argc v蓹 argv, n蓹 data istifad蓹莽i bilm蓹k imkan 34 00:01:39,640 --> 00:01:42,912 command-line t蓹min edib v蓹 nec蓹 bir 莽ox 艧eyi onlar 35 00:01:42,912 --> 00:01:44,120 command-line t蓹min. 36 00:01:44,120 --> 00:01:46,570 Il蓹 i艧l蓹m蓹k 眉莽眉n olduqca faydal谋 艧eyl蓹r. 37 00:01:46,570 --> 00:01:50,310 >> Argc, d蓹lil say谋 t蓹r蓹fdard谋r Siz yolu il蓹, bilm蓹lidir, 38 00:01:50,310 --> 00:01:52,600 Siz argc z蓹ng ed蓹 bil蓹r ki, Siz ist蓹diyiniz h蓹r hans谋. 39 00:01:52,600 --> 00:01:54,710 Siz ist蓹yirdi n蓹 argv z蓹ng ed蓹 bil蓹rsiniz. 40 00:01:54,710 --> 00:01:58,740 Bu yaln谋z 艧蓹rti adlar谋 biz Odur arqument say谋 眉莽眉n istifad蓹 ki, 41 00:01:58,740 --> 00:02:00,907 v蓹 biz ikinci g枚r蓹c蓹ksiniz kimi, d蓹lil vektor, argv. 42 00:02:00,907 --> 00:02:03,698 Amma onlara z蓹ng yoxdur Siz ist蓹mirsinizs蓹 argc v蓹 argv, 43 00:02:03,698 --> 00:02:05,570 lakin 艧蓹rti ki, biz n蓹 var. 44 00:02:05,570 --> 00:02:07,500 >> Bel蓹 ki, h蓹r halda, argc, d蓹lil count. 45 00:02:07,500 --> 00:02:11,569 Bu tam tipli d蓹yi艧蓹n v蓹, bel蓹 ki, biz iki 艧eyi varsa, g枚zl蓹m蓹k bil蓹r 46 00:02:11,569 --> 00:02:13,860 biz tapmaq olacaq ki, bu tipli n蓹 47 00:02:13,860 --> 00:02:16,070 v蓹 n蓹 q蓹d蓹r stuff istifad蓹莽i tipli, argc var 48 00:02:16,070 --> 00:02:18,559 n蓹 q蓹d蓹r biz蓹 davam 莽ap istifad蓹莽i m枚vzusu. 49 00:02:18,559 --> 00:02:20,850 Bu bir s谋ra verir, bel蓹 ki, command-line d蓹lill蓹ri istifad蓹莽i 50 00:02:20,850 --> 00:02:22,470 proqram icra edildiyi yaz谋lm谋艧. 51 00:02:22,470 --> 00:02:25,780 Proqram Bel蓹 ki dot g枚rm蓹mi艧 do臒ramaq run, 52 00:02:25,780 --> 00:02:28,670 v蓹 g枚rm蓹mi艧 daxilind蓹 Sizin 蓹sas funksiyas谋 proqram 53 00:02:28,670 --> 00:02:34,800 b蓹yannam蓹 int 蓹sas int argc var, string, sonra kvadrat m枚t蓹riz蓹 argv 54 00:02:34,800 --> 00:02:37,950 bu halda argc biridir. 55 00:02:37,950 --> 00:02:40,200 陌ndi biz bunu qeyd nec蓹 bir 莽ox 艧eyi saymaq 56 00:02:40,200 --> 00:02:42,590 istifad蓹莽i proqram ad谋na yaz谋lm谋艧. 57 00:02:42,590 --> 00:02:46,710 proqram ad谋 枚z眉 sayar bir command-line arqument kimi. 58 00:02:46,710 --> 00:02:51,770 >> Bel蓹 ki, g枚rm蓹mi艧 do臒ramaq dot bu halda, argc biridir. 59 00:02:51,770 --> 00:02:57,910 Istifad蓹莽i 莽izgi g枚rm蓹mi艧 1024 CS50 tipli 蓹g蓹r bu halda argc command-line, at 60 00:02:57,910 --> 00:02:59,520 眉莽 olard谋. 61 00:02:59,520 --> 00:03:03,720 V蓹 biz yol, 莽眉nki bu bilirik ki strings aras谋nda b枚lg眉s眉 62 00:03:03,720 --> 00:03:06,030 olub a艧kar bir yer, v蓹 ya ni艧an谋 var, 63 00:03:06,030 --> 00:03:08,230 v蓹 ya onlar谋n aras谋nda kimi bir 艧ey. 64 00:03:08,230 --> 00:03:13,860 Bel蓹 ki, a臒 kosmik h蓹r hans谋 m蓹bl蓹臒i, s枚zd蓹, d蓹y蓹rl蓹ri aras谋ndak谋 command-line tipli 65 00:03:13,860 --> 00:03:15,720 Orada n蓹 q蓹d蓹r 莽ox g枚st蓹rir. 66 00:03:15,720 --> 00:03:24,040 Bel蓹 ki, g枚rm蓹mi艧 Space 1024 yer do臒ramaq n枚qt蓹 CS50, argc, bu halda, 眉莽 edir. 67 00:03:24,040 --> 00:03:26,600 >> Argv d蓹lil vektor edir. 68 00:03:26,600 --> 00:03:29,240 Vector, yeri g蓹lmi艧k蓹n, yaln谋z bir s谋ra 眉莽眉n ba艧qa bir s枚z, 69 00:03:29,240 --> 00:03:31,510 bu bir s谋ra edir ki strings saklar. 70 00:03:31,510 --> 00:03:35,540 Element ba艧谋na bir string, strings ki, istifad蓹莽i h蓹qiq蓹t蓹n 71 00:03:35,540 --> 00:03:39,230 command-line tipli Proqram edam edildi zaman. 72 00:03:39,230 --> 00:03:40,990 陌ndi kimi bel蓹dir H蓹r hans谋 bir s谋ra il蓹, 蓹g蓹r 73 00:03:40,990 --> 00:03:44,380 bizim m眉zakir蓹 geri Diziler, argv ilk element 74 00:03:44,380 --> 00:03:49,150 h蓹mi艧蓹 蓹ld蓹 etm蓹k niyy蓹tind蓹dir argv kvadrat m枚t蓹riz蓹 s谋f谋r. 75 00:03:49,150 --> 00:03:51,800 Bu ilk index var argv array. 76 00:03:51,800 --> 00:03:55,720 Bel蓹 ki, will-- v蓹 蓹slind蓹, bu irad蓹 h蓹mi艧蓹 proqram谋 ad谋, 77 00:03:55,720 --> 00:03:59,730 h蓹mi艧蓹 yerl蓹艧蓹n olunacaq argv kvadrat m枚t蓹riz蓹 s谋f谋r. 78 00:03:59,730 --> 00:04:08,590 >> argv son element h蓹mi艧蓹 g枚r眉nt眉l蓹rini argv kvadrat m枚t蓹riz蓹d蓹 argc minus biri. 79 00:04:08,590 --> 00:04:10,300 Niy蓹 g枚r眉rs眉n眉z? 80 00:04:10,300 --> 00:04:14,180 Ne莽蓹 elementl蓹ri saxla Bu array var. 81 00:04:14,180 --> 00:04:16,660 B蓹li, biz bu that-- bilirik elementl蓹rin argc n枚mr蓹si. 82 00:04:16,660 --> 00:04:21,279 Istifad蓹莽i 眉莽 艧ey tipli 蓹g蓹r command-line, argc 眉莽 edir. 83 00:04:21,279 --> 00:04:27,070 Amma c, biz 莽al谋艧谋r谋q Diziler il蓹, serial谋n h蓹r element, 84 00:04:27,070 --> 00:04:30,190 bir v蓹 ya daha 莽ox g枚st蓹ricil蓹ri array, s谋f谋r da ba艧lan谋r. 85 00:04:30,190 --> 00:04:34,000 Biz 眉莽 elementl蓹ri varsa, bizim array, biz argv s谋f谋r bir element var 86 00:04:34,000 --> 00:04:37,930 argv bir bir element, argv iki v蓹 element. 87 00:04:37,930 --> 00:04:41,700 Argv he莽 bir element yoxdur 眉莽, v蓹 枚l莽眉s眉 眉莽 bir s谋ra. 88 00:04:41,700 --> 00:04:43,990 Bel蓹 ki, niy蓹 son var argv element h蓹mi艧蓹 bil蓹rsiniz 89 00:04:43,990 --> 00:04:49,510 argv meydan谋nda 蓹ld蓹 etm蓹k M枚t蓹riz蓹d蓹 argc minus biridir. 90 00:04:49,510 --> 00:04:52,420 >> Bel蓹 ki, istifad蓹莽i icra ed蓹c蓹yi g眉man ed蓹k Bu a艧a臒谋dak谋 kimi g枚rm蓹mi艧 proqram 91 00:04:52,420 --> 00:04:57,970 onlar command-line dot yaz谋n 蓹g蓹r , g枚rm蓹mi艧 space 1024 space CS50 do臒ramaq 92 00:04:57,970 --> 00:05:00,720 v蓹 h蓹r hans谋 s蓹b蓹bd蓹n biz art谋q bizim g枚rm蓹mi艧 proqram haz谋rlay谋b 93 00:05:00,720 --> 00:05:04,050 bilirik v蓹 bu il蓹 i艧l蓹m蓹k 眉莽眉n command-line d蓹lill蓹ri. 94 00:05:04,050 --> 00:05:07,030 Biz i艧l蓹y蓹rk蓹n biz 蓹vv蓹ll蓹r verm蓹di g枚rm蓹mi艧 problem bu, 95 00:05:07,030 --> 00:05:09,660 lakin indi redakt蓹 etdik dey蓹k Bu ki, biz prosesi n蓹 96 00:05:09,660 --> 00:05:11,480 bir 艧蓹kild蓹 command-line d蓹lill蓹ri. 97 00:05:11,480 --> 00:05:15,720 Bu halda, s谋f谋r argv dot 莽izgi g枚rm蓹mi艧 edir. 98 00:05:15,720 --> 00:05:17,042 Argv bir n蓹dir? 99 00:05:17,042 --> 00:05:19,030 B蓹li, bu, sa臒 1024 var? 100 00:05:19,030 --> 00:05:22,620 Bu 1024, lakin burada bir var h蓹qiq蓹t蓹n 蓹h蓹miyy蓹tli distinction-- 101 00:05:22,620 --> 00:05:26,410 Siz argv data n枚v眉 xat谋rlay谋rs谋n谋z? 102 00:05:26,410 --> 00:05:31,020 >> Bu do臒ru, strings ma臒azalar? 103 00:05:31,020 --> 00:05:34,140 Amma bu 1024 kimi g枚r眉n眉r tam d蓹y蓹ri. 104 00:05:34,140 --> 00:05:36,530 Bu h蓹qiq蓹t蓹n vacibdir f蓹rq, v蓹 蓹slind蓹 105 00:05:36,530 --> 00:05:40,200 bir 艧ey olmaq 眉莽眉n gedir ki, sonra probleml蓹ri qar艧谋la艧a bil蓹r. 106 00:05:40,200 --> 00:05:43,770 Argv h蓹r 艧ey bir string kimi saxlan谋l谋r. 107 00:05:43,770 --> 00:05:48,775 Bel蓹 argv bir m蓹zmunu var string bir s谋f谋r, iki, d枚rd, 108 00:05:48,775 --> 00:05:50,275 bu d枚rd simvol ibar蓹t. 109 00:05:50,275 --> 00:05:53,870 Bu istifad蓹莽i yazd谋臒谋n谋z kimi deyil bir s谋f谋r, iki, d枚rd 110 00:05:53,870 --> 00:05:56,680 f蓹rdi m蓹ktublar v蓹 ya simvol kimi. 111 00:05:56,680 --> 00:06:00,730 Bu, tam 1024 deyil v蓹 siz birba艧a bilm蓹z 112 00:06:00,730 --> 00:06:11,580 int 1000 dey蓹r蓹k bu i艧, v蓹 ya daha int x argv bir minus 24 b蓹rab蓹rdir. 113 00:06:11,580 --> 00:06:15,550 >> Daxil蓹n, siz ki, hesab bil蓹r OK, yax艧谋, bu, 1024 minus 24 var, kimi 114 00:06:15,550 --> 00:06:17,920 bel蓹 x 1000 b蓹rab蓹rdir. 115 00:06:17,920 --> 00:06:22,020 Amma 蓹slind蓹, ki, bel蓹 deyil argv bir string 莽眉nki. 116 00:06:22,020 --> 00:06:23,940 string 1024. 117 00:06:23,940 --> 00:06:28,739 陌ndi ola bil蓹r ki, bir funksiyas谋 var integers 眉莽眉n strings 莽evirm蓹k 眉莽眉n istifad蓹 olunur. 118 00:06:28,739 --> 00:06:30,780 M蓹n sizin 眉莽眉n korlamaq deyil 陌ndi, amma Zamyla 蓹min蓹m 119 00:06:30,780 --> 00:06:34,380 bu bar蓹d蓹 siz蓹 xo艧b蓹xt olacaq g蓹l蓹c蓹k problem 眉莽眉n g枚zden ge莽irmek. 120 00:06:34,380 --> 00:06:36,390 Amma siz d蓹 tapa bil蓹rsiniz probleml蓹ri like-- b蓹han蓹 121 00:06:36,390 --> 00:06:39,921 M蓹n蓹 funksiyalar谋 ki, ki, yaln谋z 50 bunu, 122 00:06:39,921 --> 00:06:42,462 Siz kitab莽as谋 getm蓹k 蓹g蓹r Bir funksiyas谋 tapa bil蓹rsiniz ki, 123 00:06:42,462 --> 00:06:43,820 Sizin 眉莽眉n bu d枚n眉艧眉m ed蓹c蓹k. 124 00:06:43,820 --> 00:06:45,980 Ancaq yen蓹 d蓹, g枚zden ge莽irmek g蓹l蓹c蓹k problem, 125 00:06:45,980 --> 00:06:48,290 Zamyla 眉莽眉n xo艧b蓹xt olacaq n蓹 funksiyas谋 siz蓹 x蓹b蓹r 126 00:06:48,290 --> 00:06:53,280 bu 莽evirm蓹k olacaq tam 1024 string 1024. 127 00:06:53,280 --> 00:06:54,560 >> B眉t眉n h眉quqlar, bel蓹 h蓹r蓹k蓹t. 128 00:06:54,560 --> 00:06:56,726 Biz argv s谋f谋r 蓹hat蓹 etdik biz bir argv 蓹hat蓹 etdik. 129 00:06:56,726 --> 00:06:58,000 N蓹 argv iki var? 130 00:06:58,000 --> 00:06:58,620 CS50. 131 00:06:58,620 --> 00:07:01,350 Ki, bir y蓹qin olduqca 枚z眉n眉 izahl谋 edir. 132 00:07:01,350 --> 00:07:02,950 N蓹 argv 眉莽 var? 133 00:07:02,950 --> 00:07:04,970 Yax艧谋 daha, biz h蓹qiq蓹t蓹n bilmir蓹m, sa臒? 134 00:07:04,970 --> 00:07:08,060 Biz, 枚l莽眉s眉 眉莽 bir s谋ra var ki, ne莽蓹 elementl蓹ri istifad蓹莽i 135 00:07:08,060 --> 00:07:11,610 command-line tipli, bel蓹 ki, biz 眉莽 argv getm蓹k 蓹g蓹r, 136 00:07:11,610 --> 00:07:14,660 biz indi overstepping edirik bizim serial谋n h蓹ddi. 137 00:07:14,660 --> 00:07:18,570 compiler, biz蓹 bunu bildirin ed蓹c蓹k he莽 bir intuitiv problem il蓹 var, 138 00:07:18,570 --> 00:07:22,890 lakin h蓹qiq蓹t蓹n bax谋m谋ndan n蓹 olacaq ba艧, biz, h蓹qiq蓹t蓹n bilmir蓹m. 139 00:07:22,890 --> 00:07:25,380 Bu n蓹 as谋l谋d谋r yadda艧 harada yerl蓹艧ir 140 00:07:25,380 --> 00:07:28,060 argv 眉莽 olmas谋 g枚zl蓹nilir. 141 00:07:28,060 --> 00:07:30,716 V蓹 bel蓹 ki, biz ba艧a bil蓹r 眉z q蓹zas谋z b蓹las谋z pulsuz 蓹ld蓹. 142 00:07:30,716 --> 00:07:33,840 Daha 莽ox he莽-d蓹n, x眉sus蓹n d蓹 f蓹rqli olaraq argv 莽al谋艧谋r谋q 143 00:07:33,840 --> 00:07:35,548 h蓹r hans谋 dig蓹r array ki, bizim proqram var 144 00:07:35,548 --> 00:07:38,660 biz y蓹qin ki, 蓹ziyy蓹t olacaq bir seqmentasiya g眉nah. Bel蓹 ki, yen蓹, 145 00:07:38,660 --> 00:07:42,756 h蓹ddini a艧mas谋ndan 蓹min ola Sizin seriallar谋n, x眉susil蓹 argv, 146 00:07:42,756 --> 00:07:47,170 onun y眉ks蓹k d蓹r蓹c蓹si verilir Sizin proqramlar谋 蓹h蓹miyy蓹ti. 147 00:07:47,170 --> 00:07:48,100 >> M蓹n Doug Lloyd edir蓹m. 148 00:07:48,100 --> 00:07:50,170 Bu CS50 edir. 149 00:07:50,170 --> 00:07:51,457