1 00:00:00,000 --> 00:00:02,480 >> [Daqq tal-mużika] 2 00:00:02,480 --> 00:00:06,460 3 00:00:06,460 --> 00:00:09,350 >> Doug LLOYD: Id-dritt, so ejja jitkellmu dwar argumenti kmand tal-linja. 4 00:00:09,350 --> 00:00:11,800 Allura, s'issa fil-kors pretty ħafna kollha ta 'programmi tiegħek 5 00:00:11,800 --> 00:00:16,360 Probabilment bdew bħal this-- null prinċipali int. 6 00:00:16,360 --> 00:00:18,310 Imxejna ilha tiġbor jintuza mill-utent jekk għandna bżonn 7 00:00:18,310 --> 00:00:21,080 fi programmi tagħna, bħall- Programm Mario, per eżempju, 8 00:00:21,080 --> 00:00:22,990 billi in programm iqajjem. 9 00:00:22,990 --> 00:00:25,190 Aħna mhux meħtieġ biex timmodifika id-dikjarazzjoni ta 'prinċipali, 10 00:00:25,190 --> 00:00:30,684 minħabba minflok ġewwa tal ewlenin li għandna biss jgħidu, inti tista 'sejħa hija li tikseb int. 11 00:00:30,684 --> 00:00:32,350 Kif kbar tridu l-piramida li jkun? 12 00:00:32,350 --> 00:00:34,455 Jew inti tista 'sejħa hija li tikseb float-- bidla kemm 13 00:00:34,455 --> 00:00:36,400 għandi output għall-utent? 14 00:00:36,400 --> 00:00:38,630 >> Hemm mod ieħor għalkemm, u jekk irridu utenti tagħna 15 00:00:38,630 --> 00:00:40,580 biex ikunu jistgħu jipprovdu data lill-programm tagħna 16 00:00:40,580 --> 00:00:43,320 fil runtime minflok filwaqt il-programm qed taħdem, 17 00:00:43,320 --> 00:00:45,910 distinzjoni sottili iżda kultant wieħed utli ħafna, 18 00:00:45,910 --> 00:00:48,120 għandna bżonn ta 'forma ġdida ta' dikjarazzjoni prinċipali. 19 00:00:48,120 --> 00:00:53,320 Aħna ma tistax tuża null prinċipali int jekk irridu li jiġbru data oħra fil--linja tal-kmand 20 00:00:53,320 --> 00:00:57,540 meta l-utent tiġġestixxi l-programm, għalhekk argumenti kmand tal-linja. 21 00:00:57,540 --> 00:00:59,810 >> Biex jiġbru dawn il-linja tal-kmand argumenti mill-utent, 22 00:00:59,810 --> 00:01:03,140 bidla dikjarazzjoni tiegħek ta prinċipali lill-dehra this-- int 23 00:01:03,140 --> 00:01:10,450 ewlenin, paren miftuħa, argc int, comma, ARGV string, parentesi kwadri, 24 00:01:10,450 --> 00:01:12,670 u mbagħad iftaħ kaboċċi Brace. 25 00:01:12,670 --> 00:01:14,415 Allura dak li jfisser diġà? 26 00:01:14,415 --> 00:01:19,410 Well, aħna jgħaddu fil żewġ parametri, jew argumenti, jew inputs għall ewlenija. 27 00:01:19,410 --> 00:01:23,800 Waħda, integer imsejħa argc, u l-ieħor huwa dak? 28 00:01:23,800 --> 00:01:26,430 29 00:01:26,430 --> 00:01:29,640 Huwa ta 'firxa ta' kordi, right? 30 00:01:29,640 --> 00:01:31,140 Naraw li notazzjoni parentesi kwadri. 31 00:01:31,140 --> 00:01:32,181 Huwa ta 'firxa ta' kordi. 32 00:01:32,181 --> 00:01:35,110 Huwa mhux string individwali, huwa ta 'firxa ta' kordi. 33 00:01:35,110 --> 00:01:39,640 U dawn iż-żewġ argumenti, argc u ARGV, jgħinuk biex tkun taf liema data l-utent 34 00:01:39,640 --> 00:01:42,912 ipprovda fil--linja tal-kmand u kemm affarijiet li 35 00:01:42,912 --> 00:01:44,120 sakemm fil--linja tal-kmand. 36 00:01:44,120 --> 00:01:46,570 Affarijiet Pretty utli biex jaħdmu ma '. 37 00:01:46,570 --> 00:01:50,310 >> Argc stands għall-għadd argument, u inti għandek tkun taf, mill-mod, 38 00:01:50,310 --> 00:01:52,600 li inti tista 'sejħa argc xi trid dan. 39 00:01:52,600 --> 00:01:54,710 Tista 'sejħa ARGV kwalunkwe int riedu. 40 00:01:54,710 --> 00:01:58,740 Dawn huma ismijiet biss konvenzjonali li nużaw għall them-- għadd argument, 41 00:01:58,740 --> 00:02:00,907 u kif Ser naraw fit-tieni, argument vector, ARGV. 42 00:02:00,907 --> 00:02:03,698 Imma inti ma għandekx jsejħulhom argc u ARGV jekk inti ma tridx li, 43 00:02:03,698 --> 00:02:05,570 iżda konvenzjonalment, dan huwa dak li nagħmlu. 44 00:02:05,570 --> 00:02:07,500 >> Allura xorta, argc, l-għadd argument. 45 00:02:07,500 --> 00:02:11,569 Huwa ta 'varjabbli tat-tip numru sħiħ u għalhekk, bħala inti tista 'tistenna, jekk għandna żewġ affarijiet 46 00:02:11,569 --> 00:02:13,860 li aħna qed tmur biex tkun tinstab barra dak dawn huma ittajpjat 47 00:02:13,860 --> 00:02:16,070 u l-għalf kemm l utent ittajpjat, argc huwa 48 00:02:16,070 --> 00:02:18,559 ser jgħidulna kemm Jittieħed l-utent ittajpjat. 49 00:02:18,559 --> 00:02:20,850 Għalhekk jagħtik numru ta ' argumenti kmand tal-linja utent 50 00:02:20,850 --> 00:02:22,470 ttajpjati meta l-programm kien esegwit. 51 00:02:22,470 --> 00:02:25,780 Mela jekk program tiegħek hija run dot mmejla greedy, 52 00:02:25,780 --> 00:02:28,670 u ġewwa ta greedy tiegħek programm funzjoni prinċipali tiegħek 53 00:02:28,670 --> 00:02:34,800 għandu l-int dikjarazzjoni argc int prinċipali, string ARGV parentesi kwadri, allura 54 00:02:34,800 --> 00:02:37,950 argc f'dak il-każ huwa wieħed. 55 00:02:37,950 --> 00:02:40,200 Issa avviż aħna ma għadd kemm ħafna affarijiet 56 00:02:40,200 --> 00:02:42,590 l-utent ittajpjat wara l-isem programm. 57 00:02:42,590 --> 00:02:46,710 L-isem programm innifsu jgħodd bħala argument kmand tal-linja. 58 00:02:46,710 --> 00:02:51,770 >> Allura dot mmejla greedy, fil F'dak il-każ, argc huwa wieħed. 59 00:02:51,770 --> 00:02:57,910 Jekk l-utent ittajpjat mmejla greedy 1024 CS50 fil--linja tal-kmand, argc f'dak il-każ 60 00:02:57,910 --> 00:02:59,520 ikun tlieta. 61 00:02:59,520 --> 00:03:03,720 U nafu dan minħabba l-mod li d-diviżjoni bejn il-kordi 62 00:03:03,720 --> 00:03:06,030 huwa li tinstab tkun dwar jekk hemm spazju, jew tab, 63 00:03:06,030 --> 00:03:08,230 jew xi ħaġa bħal dik bejniethom. 64 00:03:08,230 --> 00:03:13,860 Allura kull ammont ta 'spazju abjad, hekk imsejħa, bejn il-valuri ittajpjat kmand tal-linja 65 00:03:13,860 --> 00:03:15,720 jindika kemm hemm. 66 00:03:15,720 --> 00:03:24,040 Allura dot mmejla ispazju greedy 1024 spazju CS50, argc, f'dak il-każ, huwa tlieta. 67 00:03:24,040 --> 00:03:26,600 >> ARGV huwa l-argument vector. 68 00:03:26,600 --> 00:03:29,240 Vector, mill-mod, huwa biss kelma oħra għal firxa, 69 00:03:29,240 --> 00:03:31,510 u dan huwa l-firxa li taħżen kordi. 70 00:03:31,510 --> 00:03:35,540 Wieħed string kull element, li huwa il-kordi li l-utent fil-fatt 71 00:03:35,540 --> 00:03:39,230 ittajpjat fil--linja tal-kmand meta l-programm kien esegwit. 72 00:03:39,230 --> 00:03:40,990 Issa, kif inhu l-każ ma 'kwalunkwe firxa, jekk inti 73 00:03:40,990 --> 00:03:44,380 jitlob lura mingħandhom diskussjoni tagħna ta ' arrays, l-ewwel element ta 'ARGV 74 00:03:44,380 --> 00:03:49,150 huwa dejjem se jinstabu fil ARGV bracket kwadru żero. 75 00:03:49,150 --> 00:03:51,800 Dik hija l-ewwel indiċi mill-firxa ARGV. 76 00:03:51,800 --> 00:03:55,720 Allura li will-- u fil-fatt, li se dejjem ikun l-isem tal-programm, 77 00:03:55,720 --> 00:03:59,730 dejjem se jkun jinsab fil ARGV parentesi kwadri żero. 78 00:03:59,730 --> 00:04:08,590 >> L-aħħar element tal ARGV huwa dejjem sabet fil ARGV parentesi kwadra argc minus wieħed. 79 00:04:08,590 --> 00:04:10,300 Inti tara għaliex? 80 00:04:10,300 --> 00:04:14,180 Ftakar kif ħafna elementi jeżistu f'dan array. 81 00:04:14,180 --> 00:04:16,660 Well, nafu that-- huwa Numru argc ta 'elementi. 82 00:04:16,660 --> 00:04:21,279 Jekk l-utent ittajpjat tliet affarijiet fil il-linja ta 'kmand, argc huwa tlieta. 83 00:04:21,279 --> 00:04:27,070 Iżda għaliex c, meta aħna qed jaħdmu ma arrays, kull element tal-firxa, 84 00:04:27,070 --> 00:04:30,190 jew pjuttost l-indiċi ta ' l-array, bidu għal żero. 85 00:04:30,190 --> 00:04:34,000 Jekk għandna tliet elementi fil tagħna array, għandna element fil ARGV żero, 86 00:04:34,000 --> 00:04:37,930 element fil ARGV waħda, u element fil ARGV tnejn. 87 00:04:37,930 --> 00:04:41,700 M'hemm l-ebda element fil ARGV tlieta, u l-firxa ta 'daqs tlieta. 88 00:04:41,700 --> 00:04:43,990 Allura hu għalhekk li l-aħħar element tad ARGV tista 'dejjem 89 00:04:43,990 --> 00:04:49,510 'tinstab fuq kwadru ARGV argc parentesi minus wieħed. 90 00:04:49,510 --> 00:04:52,420 >> Mela ejja nassumu l tesegwixxi utent il-programm greedy kif follows-- 91 00:04:52,420 --> 00:04:57,970 jekk dawn it-tip fil-kmand tal-linja dot slash greedy ispazju 1024 CS50 ispazju, 92 00:04:57,970 --> 00:05:00,720 u għal kwalunkwe raġuni konna diġà mħejji programm greedy tagħna 93 00:05:00,720 --> 00:05:04,050 tkun taf u taħdem ma 'dawn argumenti kmand tal-linja. 94 00:05:04,050 --> 00:05:07,030 Aħna ma kinux qabel meta ħdimna fuqha għall-problema greedy, 95 00:05:07,030 --> 00:05:09,660 imma ejja ngħidu aħna issa stajt modifikata hekk li nagħmlu proċess 96 00:05:09,660 --> 00:05:11,480 l-argumenti kmand tal-linja b'xi mod. 97 00:05:11,480 --> 00:05:15,720 F'dan il-każ, ARGV żero huwa dot slash greedy. 98 00:05:15,720 --> 00:05:17,042 X'hemm ARGV waħda? 99 00:05:17,042 --> 00:05:19,030 Ukoll, huwa 1024, id-dritt? 100 00:05:19,030 --> 00:05:22,620 Huwa 1024, iżda hawnhekk huwa a distinction-- verament importanti 101 00:05:22,620 --> 00:05:26,410 do you remember-tip tad-data ta 'ARGV? 102 00:05:26,410 --> 00:05:31,020 >> Taħżen kordi, id-dritt? 103 00:05:31,020 --> 00:05:34,140 Iżda jidher qisu 1024 huwa valur sħiħ. 104 00:05:34,140 --> 00:05:36,530 Dan huwa verament importanti distinzjoni, u huwa attwalment 105 00:05:36,530 --> 00:05:40,200 se ssir xi ħaġa li inti tista 'tiltaqa fil-problemi aktar tard. 106 00:05:40,200 --> 00:05:43,770 Kollox fil ARGV huwa maħżuna bħala sekwenza. 107 00:05:43,770 --> 00:05:48,775 Allura kontenut ARGV wieħed huma l- string wieħed, żero, ġimagħtejn, erba, 108 00:05:48,775 --> 00:05:50,275 jikkonsisti minn dawn l-erba 'karattri. 109 00:05:50,275 --> 00:05:53,870 Huwa daqs li kieku l-utent ittajpjat wieħed, żero, ġimagħtejn, erba 110 00:05:53,870 --> 00:05:56,680 kif ittri individwali jew karattri. 111 00:05:56,680 --> 00:06:00,730 Mhuwiex n-numru sħiħ 1024, u għalhekk inti ma tistax direttament 112 00:06:00,730 --> 00:06:11,580 jaħdmu magħha billi qal int 1000, jew pjuttost int x ugwali ARGV wieħed nieqes 24. 113 00:06:11,580 --> 00:06:15,550 >> Intuwittivament, inti tista 'taħseb ta' dak kif, OK, ukoll huwa 1024 minus 24, 114 00:06:15,550 --> 00:06:17,920 hekk x hija ugwali għal 1,000. 115 00:06:17,920 --> 00:06:22,020 Imma fil-fatt, li mhux il-każ, għaliex ARGV waħda hija sekwenza. 116 00:06:22,020 --> 00:06:23,940 L-sekwenza 1024. 117 00:06:23,940 --> 00:06:28,739 Issa hemm funzjoni li tista 'tkun tintuża biex tikkonverti kordi li interi. 118 00:06:28,739 --> 00:06:30,780 I mhux se jħassru dan għalik issa, imma jien ċert Zamyla 119 00:06:30,780 --> 00:06:34,380 se jkunu kuntenti li jgħidlek dwar dan fil il walkthrough għal problema futur. 120 00:06:34,380 --> 00:06:36,390 Iżda int tista 'ssib ukoll problemi like-- skuża 121 00:06:36,390 --> 00:06:39,921 me, funzjonijiet li kieku tagħmel dan b'referenza 50, 122 00:06:39,921 --> 00:06:42,462 jekk inti tmur għall-gwida ta 'referenza inti tista 'ssib funzjoni li 123 00:06:42,462 --> 00:06:43,820 se tagħmel din il-konverżjoni għalik. 124 00:06:43,820 --> 00:06:45,980 Iżda għal darb'oħra, fil-walkthrough għal problema futur, 125 00:06:45,980 --> 00:06:48,290 Zamyla se jkunu kuntenti li jgħidlek liema funzjoni 126 00:06:48,290 --> 00:06:53,280 huwa li jikkonvertu l- string 1024 li n-numru sħiħ 1024. 127 00:06:53,280 --> 00:06:54,560 >> Dritt kollha, hekk jimxu fuq. 128 00:06:54,560 --> 00:06:56,726 Imxejna koperti żero ARGV tagħna, konna koperti ARGV wieħed. 129 00:06:56,726 --> 00:06:58,000 X'hemm fil ARGV tnejn? 130 00:06:58,000 --> 00:06:58,620 CS50. 131 00:06:58,620 --> 00:07:01,350 Li wieħed probabbilment pretty awto spjegazzjoni. 132 00:07:01,350 --> 00:07:02,950 X'hemm fil ARGV tliet? 133 00:07:02,950 --> 00:07:04,970 Well darb'oħra, aħna ma verament jafu, right? 134 00:07:04,970 --> 00:07:08,060 Għandna firxa ta 'daqs tlieta, li kif ħafna elementi l-utent 135 00:07:08,060 --> 00:07:11,610 ittajpjat fil--linja tal-kmand, hekk jekk immorru ARGV tlieta, 136 00:07:11,610 --> 00:07:14,660 aħna issa qed qbiż il-limiti ta 'firxa tagħna. 137 00:07:14,660 --> 00:07:18,570 Il kompilatur se jgħidilna jagħmlu dan, hemm ebda problema intuwittivi magħha, 138 00:07:18,570 --> 00:07:22,890 imma f'termini ta 'fatt x'inhu għaddej li jiġri, aħna ma verament jafu. 139 00:07:22,890 --> 00:07:25,380 Hija tiddependi fuq dak li hu tinsab fil-memorja fejn 140 00:07:25,380 --> 00:07:28,060 ARGV tlieta jkunu mistennija li jkunu. 141 00:07:28,060 --> 00:07:30,716 U hekk aħna jista 'jispiċċa jkollna bogħod Skoċċiż ħielsa. 142 00:07:30,716 --> 00:07:33,840 Aktar probabbli milli le, b'mod partikolari meta qed taħdem ma ARGV għall-kuntrarju 143 00:07:33,840 --> 00:07:35,548 għal kwalunkwe firxa oħra li fil-programm tagħna, 144 00:07:35,548 --> 00:07:38,660 aħna qed probabbilment se jsofru tort segmentazzjoni. Għalhekk għal darb'oħra, 145 00:07:38,660 --> 00:07:42,756 Kun żgur li ma eċċediex il-limiti tal arrays tiegħek, partikolarment ARGV, 146 00:07:42,756 --> 00:07:47,170 minħabba grad għoli ta importanza fil-programmi tiegħek. 147 00:07:47,170 --> 00:07:48,100 >> Jien Doug Lloyd. 148 00:07:48,100 --> 00:07:50,170 Dan huwa CS50. 149 00:07:50,170 --> 00:07:51,457