1 00:00:00,000 --> 00:00:02,970 >> [Ddoqq il-mużika] 2 00:00:02,970 --> 00:00:14,355 3 00:00:14,355 --> 00:00:15,700 >> DAVID J. Malan: Kull dritt. 4 00:00:15,700 --> 00:00:18,832 Dan huwa CS50, u dan huwa l-bidu ta 'Ġimgħa 2. 5 00:00:18,832 --> 00:00:21,040 U tkun taf tfakkar li aktar minn l-aħħar ftit ġimgħat, 6 00:00:21,040 --> 00:00:24,490 konna qegħdin jintroduċu kompjuter xjenza u, min-naħa, l-ipprogrammar. 7 00:00:24,490 --> 00:00:27,640 >> U bdejna l-istorja permezz ta ' Scratch, dik il-lingwa grafika 8 00:00:27,640 --> 00:00:28,990 minn Media Lab MIT'S. 9 00:00:28,990 --> 00:00:30,780 U allura l-iktar reċentement, ġimgħa li għaddiet, aħna ma 10 00:00:30,780 --> 00:00:34,450 jintroduċu higher-- ta ' lingwa ta 'livell aktar baxx magħruf 11 00:00:34,450 --> 00:00:36,770 kif Ċ, xi ħaġa li purament testwali. 12 00:00:36,770 --> 00:00:39,440 U, tabilħaqq, l-aħħar darba aħna esplorat fi ħdan il-kuntest 13 00:00:39,440 --> 00:00:40,450 għadd ta 'kunċetti. 14 00:00:40,450 --> 00:00:43,010 >> Dan, irtirar, kien il-ħafna ewwel programm ħarisna lejn. 15 00:00:43,010 --> 00:00:45,710 U dan il-programm, pjuttost sempliċi, prints out, "bonjour, dinja." 16 00:00:45,710 --> 00:00:47,730 Iżda hemm daqstant seeming magic jiġri. 17 00:00:47,730 --> 00:00:51,460 Hemm dan #include ma 'dawn parentesi angolu. 18 00:00:51,460 --> 00:00:52,170 Hemm int. 19 00:00:52,170 --> 00:00:53,020 Hemm (vojt). 20 00:00:53,020 --> 00:00:56,330 Hemm parentesi, ċingi kaboċċi, semi-colons, u għalhekk ħafna aktar. 21 00:00:56,330 --> 00:00:58,480 >> U għalhekk, ifakkar li aħna introdotti Scratch 22 00:00:58,480 --> 00:01:02,110 b'tali mod li nistgħu, idealment, tara l-passat li sintassi, l-għalf li verament mhux 23 00:01:02,110 --> 00:01:04,590 dak kollu li intellettwalment interessanti iżda kmieni 24 00:01:04,590 --> 00:01:07,700 huwa, assolutament, daqsxejn delikata biex nagħlaq moħħ tiegħek madwar. 25 00:01:07,700 --> 00:01:10,860 U, tabilħaqq, wieħed mill-aktar komuni affarijiet kmieni fi klassi ta 'programmazzjoni, 26 00:01:10,860 --> 00:01:13,443 speċjalment għal dawk li huma inqas komdu, huwa li tinkiseb frustrati bl 27 00:01:13,443 --> 00:01:17,460 u tripped minn ċerti sintattika żbalji, biex ma nsemmux żbalji ta 'interpretazzjoni. 28 00:01:17,460 --> 00:01:19,800 U hekk fost l-għanijiet tagħna illum, fil-fatt, se 29 00:01:19,800 --> 00:01:23,280 jkun li tgħammar int ma 'xi tekniki soluzzjoni ta 'problemi dwar kif 30 00:01:23,280 --> 00:01:26,705 biex isolvu aħjar il-problemi huma stess fil-forma ta 'debugging. 31 00:01:26,705 --> 00:01:29,330 U tkun taf tfakkar ukoll li l- ambjent li aħna introdotti 32 00:01:29,330 --> 00:01:31,780 aħħar darba kien jissejjaħ CS50 IDE. 33 00:01:31,780 --> 00:01:34,850 Dan huwa softwer fuq l-internet li tippermetti li inti programm fil-sħaba, 34 00:01:34,850 --> 00:01:38,450 biex ngħidu hekk, filwaqt li jżommu kollha ta 'tiegħek fajls flimkien, kif aħna se jerġa illum. 35 00:01:38,450 --> 00:01:41,480 U tfakkar li aħna revisited dawn is-suġġetti hawn, 36 00:01:41,480 --> 00:01:44,480 fosthom il-funzjonijiet, u loops, u varjabbli, u l-espressjonijiet Boolean, 37 00:01:44,480 --> 00:01:45,110 u kondizzjonijiet. 38 00:01:45,110 --> 00:01:49,190 U fil-fatt ftit aktar li aħna tradotti mid-dinja ta 'scratch 39 00:01:49,190 --> 00:01:50,800 għad-dinja ta 'C. 40 00:01:50,800 --> 00:01:53,220 >> Iżda l-bini fundamentali blokki, biex ngħidu hekk, 41 00:01:53,220 --> 00:01:55,150 kienu verament għadhom l-istess ġimgħa li għaddiet. 42 00:01:55,150 --> 00:01:57,900 Fil-fatt, aħna verament biss kellhom biċċa puzzle differenti, jekk inti se. 43 00:01:57,900 --> 00:02:00,300 Minflok dan vjola jiffranka blokk, aħna minflok 44 00:02:00,300 --> 00:02:02,940 kienet printf, li hija din il-funzjoni fl Ċ li 45 00:02:02,940 --> 00:02:05,890 jippermettilek li jistampaw xi ħaġa u format fuq l-iskrin. 46 00:02:05,890 --> 00:02:07,950 Aħna introduċiet il CS50 Librerija, fejn inti 47 00:02:07,950 --> 00:02:11,420 issa għad-dispożizzjoni tiegħek get_char, u get_int, u get_string, 48 00:02:11,420 --> 00:02:14,610 u funzjonijiet oħra ftit kif ukoll, li permezz tagħhom tista 'tikseb l-input 49 00:02:14,610 --> 00:02:16,260 mill-tastiera tal-utent stess. 50 00:02:16,260 --> 00:02:20,640 U aħna wkoll ħa ħarsa lejn l-affarijiet bħall these- BOOL, u char, 51 00:02:20,640 --> 00:02:22,490 u doppju, float, int, spag long_long. 52 00:02:22,490 --> 00:02:25,170 U hemm anke tipi ta 'data oħra fid C. 53 00:02:25,170 --> 00:02:28,560 >> Fi kliem ieħor, meta inti tiddikjara varjabbli taħżen xi valur, 54 00:02:28,560 --> 00:02:32,600 jew meta inti jimplimentaw funzjoni li jirritorna xi valur, 55 00:02:32,600 --> 00:02:35,290 inti tista 'tispeċifika liema tip ta 'valur li hu. 56 00:02:35,290 --> 00:02:37,310 Huwa ta 'spag, bħal sekwenza ta 'karattri? 57 00:02:37,310 --> 00:02:39,490 Huwa ta 'numru, bħal integer? 58 00:02:39,490 --> 00:02:41,390 Huwa ta 'b'punt li jvarja valur, jew bħalhom? 59 00:02:41,390 --> 00:02:46,180 Għalhekk fl Ċ, b'differenza Scratch, aħna fil-fatt beda biex tispeċifika liema tip ta 'data 60 00:02:46,180 --> 00:02:48,330 konna jirritornaw jew jużaw. 61 00:02:48,330 --> 00:02:51,910 >> Imma, naturalment, aħna wkoll dam fis xi limiti fundamentali tal-kompjuters. 62 00:02:51,910 --> 00:02:54,100 U b'mod partikolari, din il-lingwa C, irtirar 63 00:02:54,100 --> 00:02:57,070 li ħadna ħarsa lejn overflow numru sħiħ, ir-realtà 64 00:02:57,070 --> 00:03:00,460 li jekk inti biss għandek ammont finit ta 'memorja 65 00:03:00,460 --> 00:03:04,600 jew, speċifikament, numru finit ta 'bits, inti tista' biss joqgħod tant għoli. 66 00:03:04,600 --> 00:03:08,460 U hekk aħna ħares lejn dan l-eżempju hawn li biha kontro f'ajruplan,, 67 00:03:08,460 --> 00:03:13,510 fil-fatt, jekk running twil biżżejjed se overflow u jirriżultaw fi software 68 00:03:13,510 --> 00:03:15,560 żball potenzjal fiżiku attwali. 69 00:03:15,560 --> 00:03:18,600 >> Aħna wkoll ħares lejn f'wiċċ l-ilma punt impreċiżjoni, ir-realtà 70 00:03:18,600 --> 00:03:22,280 li ma biss numru finit ta ' ta 'bits, kemm jekk huwa 32 jew 64, 71 00:03:22,280 --> 00:03:27,330 inti tista 'tispeċifika biss numri tant wara punt deċimali, wara li inti 72 00:03:27,330 --> 00:03:29,110 tibda tikseb impreċiż. 73 00:03:29,110 --> 00:03:32,360 Allura per eżempju, terz fil- dinja hawn, fid-dinja tal-bniedem tagħna, 74 00:03:32,360 --> 00:03:35,360 nafu huwa biss numru infinit tal 3s wara l-punt deċimali. 75 00:03:35,360 --> 00:03:38,820 Iżda kompjuter ma jistax neċessarjament jirrappreżentaw numru infinit ta 'numri 76 00:03:38,820 --> 00:03:42,590 jekk inti biss jippermettu dan ftit ammont finit ta 'informazzjoni. 77 00:03:42,590 --> 00:03:45,900 >> Allura mhux biss ma aħna tgħammar int bil-qawwa akbar f'termini 78 00:03:45,900 --> 00:03:49,280 ta 'kif inti tista' tesprimi lilek innifsek fid- tastiera f'termini ta 'pprogrammar, 79 00:03:49,280 --> 00:03:51,430 aħna wkoll limitati dak inti tista 'attwalment tagħmel. 80 00:03:51,430 --> 00:03:55,790 U fil-fatt, bugs u żbalji jistgħu joriġinaw minn dawk it-tipi ta 'kwistjonijiet. 81 00:03:55,790 --> 00:03:59,900 U fil-fatt, fost is-suġġetti llum ser ikunu suġġetti bħat debugging 82 00:03:59,900 --> 00:04:03,699 u fil-fatt tfittex taħt il-barnuża fl-aħħar ġimgħa kif ġew introdotti affarijiet 83 00:04:03,699 --> 00:04:05,490 huma effettivament implementati sabiex inti aħjar 84 00:04:05,490 --> 00:04:10,530 jifhmu kemm il-kapaċitajiet ta u -limitazzjonijiet ta 'lingwa bħal C. 85 00:04:10,530 --> 00:04:14,770 >> U fil-fatt, aħna ser qoxra lura l-saffi mill-aktar sempliċi ta istruttura tad-data, 86 00:04:14,770 --> 00:04:17,756 xi ħaġa imsejħa firxa, li Scratch jiġri li jsejjaħ "lista." 87 00:04:17,756 --> 00:04:19,589 Huwa ftit differenti fil-kuntest. 88 00:04:19,589 --> 00:04:23,340 U allura aħna ser jintroduċi wkoll waħda mill- ewwel ta 'problemi speċifiċi għas-domain tagħna 89 00:04:23,340 --> 00:04:26,790 fil CS50,-dinja ta ' kriptografija, l-arti tal scrambling 90 00:04:26,790 --> 00:04:29,650 jew ċċifrar informazzjoni hekk li inti tista 'tibgħat messaġġi sigrieti 91 00:04:29,650 --> 00:04:34,520 u jiddekowdja messaġġi sigrieti bejn żewġ persuni, A u B. 92 00:04:34,520 --> 00:04:37,490 >> Allura qabel we tranżizzjoni għal dak dinja ġdida, 93 00:04:37,490 --> 00:04:42,059 ejja jippruvaw tgħammar int ma 'xi tekniki li magħhom inti tista 'telimina 94 00:04:42,059 --> 00:04:43,850 jew inaqqsu għall-inqas f'xi tal-frustrazzjonijiet 95 00:04:43,850 --> 00:04:46,630 li inti probabilment ltaqgħu magħhom matul il-ġimgħa li għaddiet waħdu. 96 00:04:46,630 --> 00:04:50,830 Fil-fatt, qabel int qed such-- xi wħud problemi ewwel tiegħek fil C. U odds huma, 97 00:04:50,830 --> 00:04:54,010 jekk int simili me, l-ewwel darba inti tipprova tip ta 'programm, 98 00:04:54,010 --> 00:04:57,330 anke jekk taħseb loġikament il-programm huwa pjuttost sempliċi, 99 00:04:57,330 --> 00:05:01,200 inti tista 'tajjeb ħafna hit ħajt, u il kompilatur mhux se jikkoopera. 100 00:05:01,200 --> 00:05:03,940 Jagħmel jew Clang mhux se li fil-fatt jagħmlu offerti tiegħek. 101 00:05:03,940 --> 00:05:05,450 >> U għaliex jista 'jkun? 102 00:05:05,450 --> 00:05:07,950 Ukoll, ejja tagħti ħarsa lejn, forsi, programm sempliċi. 103 00:05:07,950 --> 00:05:11,190 Jien ser jimxi 'l quddiem u jiffrankaw dan fajl deliberatament imsejjaħ buggy0.c, 104 00:05:11,190 --> 00:05:13,590 għaliex naf li jkun żbaljat bil-quddiem. 105 00:05:13,590 --> 00:05:17,400 Imma jien ma jista jirrealizzaw li jekk dan hija l-ewwel jew it-tieni jew it-tielet programm 106 00:05:17,400 --> 00:05:18,830 li jien attwalment jagħmlu myself. 107 00:05:18,830 --> 00:05:23,820 Hekk jien ser jimxi 'l quddiem u tip out, int prinċipali (vojt). 108 00:05:23,820 --> 00:05:28,130 U allura ġewwa tal ċingi kaboċċi tiegħi, a familjari ħafna ( "hello, world-- 109 00:05:28,130 --> 00:05:30,980 backslash, n ") - u semi-colon. 110 00:05:30,980 --> 00:05:32,360 >> Stajt salvati l-fajl. 111 00:05:32,360 --> 00:05:34,850 Issa jien se jinżlu tieqa terminal tiegħi 112 00:05:34,850 --> 00:05:40,340 u t-tip għamla buggy0, minħabba li, għal darb'oħra, l-isem tal-fajl llum hija buggy0.c. 113 00:05:40,340 --> 00:05:43,660 So I tip jagħmel buggy0, Ikteb. 114 00:05:43,660 --> 00:05:48,200 >> U, oh, gosh, jiġbor lura mingħand aħħar darba li l-ebda messaġġi ta 'żball hija ħaġa tajba. 115 00:05:48,200 --> 00:05:49,740 Allura l-ebda output hija ħaġa tajba. 116 00:05:49,740 --> 00:05:52,920 Iżda hawnhekk għandi b'mod ċar xi numru ta 'żbalji. 117 00:05:52,920 --> 00:05:56,470 >> Allura l-ewwel linja tal-produzzjoni wara ittajpjar jagħmel buggy0, irtirar, 118 00:05:56,470 --> 00:05:59,540 huwa l-output pjuttost verbose Clang s. 119 00:05:59,540 --> 00:06:02,067 Taht il-barnuża, IDE CS50 huwa kkonfigurat 120 00:06:02,067 --> 00:06:04,150 li tuża mazz sħiħ ta ' għażliet ma din il kompilatur 121 00:06:04,150 --> 00:06:05,941 sabiex inti ma għandekx biex jaħsbu dwar minnhom. 122 00:06:05,941 --> 00:06:08,840 U li dak kollu li l-ewwel linja mezzi li jibda bil Clang. 123 00:06:08,840 --> 00:06:11,720 >> Iżda wara li, l-problemi jibdew jagħmlu apparenza tagħhom. 124 00:06:11,720 --> 00:06:17,390 Buggy0.c fuq il-linja 3, karattri 5, hemm kbir, żball aħmar. 125 00:06:17,390 --> 00:06:18,380 X'inhu li? 126 00:06:18,380 --> 00:06:23,562 Impliċitament tiddikjara funzjoni librerija printf ma 'tip int (char * CONST, 127 00:06:23,562 --> 00:06:26,050 ...) [-Werror]. 128 00:06:26,050 --> 00:06:28,379 I mean, huwa malajr ħafna gets arcane ħafna. 129 00:06:28,379 --> 00:06:30,170 U ċertament, fl-ewwel t'għajn, aħna se le 130 00:06:30,170 --> 00:06:32,380 jistennew li inti tifhem l- totalità ta 'dak il-messaġġ. 131 00:06:32,380 --> 00:06:34,213 U għalhekk wieħed mill-lezzjonijiet għal-lum huwa għaddej 132 00:06:34,213 --> 00:06:36,919 li jkun biex jipprova li l-avviż mudelli, jew affarijiet simili, 133 00:06:36,919 --> 00:06:38,960 għall-iżbalji inti jista 'jkollhom jiltaqgħu magħhom fil-passat. 134 00:06:38,960 --> 00:06:41,335 Mela ejja tease apparti biss dawk il-kliem li tfittex familjari. 135 00:06:41,335 --> 00:06:44,290 Il-big, iżball aħmar huwa kjarament simboliku ta 'xi ħaġa li tkun ħażina. 136 00:06:44,290 --> 00:06:47,940 >> b'mod impliċitu li tiddikjara printf funzjoni librerija. 137 00:06:47,940 --> 00:06:51,680 Għalhekk anki jekk jien ma pjuttost jifhmu dak li impliċitament li tiddikjara funzjoni librerija 138 00:06:51,680 --> 00:06:54,900 tfisser, il-problema żgur tirrigwarda printf b'xi. 139 00:06:54,900 --> 00:06:59,130 U s-sors ta 'din il-kwistjoni għandha x'taqsam ma 'tiddikjara dan. 140 00:06:59,130 --> 00:07:02,440 >> Li tiddikkjara funzjoni huwa isemmi dan għall-ewwel darba. 141 00:07:02,440 --> 00:07:06,210 U aħna użati l terminoloġija aħħar ġimgħa li jiddikjaraw prototip funzjoni tal- 142 00:07:06,210 --> 00:07:11,860 jew b'linja waħda fil-quċċata tal tiegħek fajl stess jew f'fajl header hekk imsejħa. 143 00:07:11,860 --> 00:07:15,300 U f'liema fajl ma nistgħu ngħidu aħħar ġimgħa li printf huwa kwotazzjoni, 144 00:07:15,300 --> 00:07:17,080 unquote, iddikjara? 145 00:07:17,080 --> 00:07:20,950 F'liema fajl prototip tiegħu? 146 00:07:20,950 --> 00:07:24,640 >> Mela jekk inti recall, l-ewwel ħaġa I ttajpjata, kważi kull programm aħħar time-- 147 00:07:24,640 --> 00:07:30,790 u aċċidentalment mument ilu beda ittajpjar myself-- kien dan here-- waħda 148 00:07:30,790 --> 00:07:38,630 hash-- #include 00:07:41,860 jekk I issa jiffranka dan il-fajl, jien ser li jimxi 'l quddiem u ċar l-iskrin tiegħi, 150 00:07:41,860 --> 00:07:44,740 li tista 'tagħmlu billi jittajpja Ċar, jew inti tista 'żżomm Kontroll L, 151 00:07:44,740 --> 00:07:47,680 biss biex ċar tieqa terminal tiegħek biss biex jeliminaw xi imbarazz. 152 00:07:47,680 --> 00:07:51,370 >> Jien ser jimxi 'l quddiem u -Ġdid tat-tip make-buggy0, Ikteb. 153 00:07:51,370 --> 00:07:53,790 U voila, jien xorta tara li kmand twila minn Clang, 154 00:07:53,790 --> 00:07:55,470 iżda hemm ebda messaġġ ta 'żball f'dan il-ħin. 155 00:07:55,470 --> 00:07:58,800 U fil-fatt, jekk nagħmel ./buggy0, bħad aħħar darba, 156 00:07:58,800 --> 00:08:01,860 fejn dot ifisser dan il tad-direttorju, Slash ifisser biss, 157 00:08:01,860 --> 00:08:05,040 hawnhekk jidħol l-isem tal-programm u dak l-isem tal-programm huwa buggy0, 158 00:08:05,040 --> 00:08:07,340 Daħħal, "bonjour, dinja." 159 00:08:07,340 --> 00:08:09,440 >> Issa, kif jista 'jkollok miġbura din is-soluzzjoni 160 00:08:09,440 --> 00:08:12,017 mingħajr ma neċessarjament jirrikonoxxi kif ħafna kliem 161 00:08:12,017 --> 00:08:14,350 kif għamilt, ċertament, li jkollhom għamlu dan għal tant snin? 162 00:08:14,350 --> 00:08:18,720 Ukoll, realizzata kull l-ewwel problema sett, aħna jintroduċu inti għal kmand 163 00:08:18,720 --> 00:08:21,175 li l-persunal CS50 stess kiteb imsejħa help50. 164 00:08:21,175 --> 00:08:24,300 U fil-fatt, Ċ ma ispeċifikazzjoni għall il-problema stabbilita dwar kif tuża dan. 165 00:08:24,300 --> 00:08:27,210 >> Iżda essenzjalment huwa help50 programm li l-persunal CS50 s 166 00:08:27,210 --> 00:08:30,850 kiteb li jippermetti li inti run kmand jew tmexxi programm, 167 00:08:30,850 --> 00:08:36,169 u jekk ma tifhimx tagħha produzzjoni, li jgħaddu l-output tagħha li help50, 168 00:08:36,169 --> 00:08:38,890 f'liema punt l-software li l-persunal tal-kors kiteb 169 00:08:38,890 --> 00:08:42,429 se tħares lejn l-output programm tiegħek linja b'linja, karattri mill-karattru. 170 00:08:42,429 --> 00:08:46,000 U jekk aħna, l-istaff, jirrikonoxxu l- messaġġ ta 'żball li int tesperjenza, 171 00:08:46,000 --> 00:08:50,580 aħna nippruvaw biex tipprovoka inti ma 'xi mistoqsijiet rhetorical, ma 'xi pariri, 172 00:08:50,580 --> 00:08:54,890 ħafna bħal TF jew CA jew ruħi ser jagħmlu personalment fil-ħinijiet uffiċċju. 173 00:08:54,890 --> 00:08:58,320 >> Sabiex tfittex li help50 jekk inti ma neċessarjament jirrikonoxxu problema. 174 00:08:58,320 --> 00:09:00,790 Imma ma jistrieħ fuqu wisq bħala crutch. 175 00:09:00,790 --> 00:09:03,990 Ċertament jipprova jifhem tagħha produzzjoni u mbagħad jitgħallmu minnha 176 00:09:03,990 --> 00:09:07,571 b'tali mod li biss darba jew darbtejn taħseb Qatt run help50 għal żball partikolari 177 00:09:07,571 --> 00:09:08,070 messaġġ. 178 00:09:08,070 --> 00:09:10,660 Wara dan, inti għandek tkun mgħammra aħjar lilek innifsek 179 00:09:10,660 --> 00:09:13,180 ċifra barra dak li attwalment hu. 180 00:09:13,180 --> 00:09:14,350 >> Ejja nagħmlu ieħor hawnhekk. 181 00:09:14,350 --> 00:09:20,410 Let me go quddiem, u f'ieħor fajl aħna ser sejħa dan buggy1.c. 182 00:09:20,410 --> 00:09:23,110 U f'dan il-fajl jien ser deliberately-- 183 00:09:23,110 --> 00:09:26,330 imma nippretendu li jien ma jifhmu dak żball stajt magħmula. 184 00:09:26,330 --> 00:09:31,420 >> Jien ser jimxi 'l quddiem u jagħmlu this-- #include, peress li jien stajt 185 00:09:31,420 --> 00:09:33,660 Tgħallimt lezzjoni tiegħi minn mument ilu. 186 00:09:33,660 --> 00:09:36,220 Int prinċipali (vojt), bħal qabel. 187 00:09:36,220 --> 00:09:40,880 U mbagħad fil hawn jien ser biex tagħmel string i - get_string. 188 00:09:40,880 --> 00:09:43,770 U recall mill-aħħar darba li din il-mezzi, ħej, kompjuter, 189 00:09:43,770 --> 00:09:48,280 tagħti me varjabbli, sejħa hija s, u jagħmlu t-tip ta 'dak varjabbli string 190 00:09:48,280 --> 00:09:50,150 so I jista 'jaħżen f'kelma waħda jew iktar fiha. 191 00:09:50,150 --> 00:09:52,191 >> U mbagħad fuq il-lemin naħa tas-sinjal ugwali 192 00:09:52,191 --> 00:09:54,980 huwa get_string, li hija funzjoni fil-Librerija CS50 193 00:09:54,980 --> 00:09:55,980 li ma eżattament dan. 194 00:09:55,980 --> 00:09:59,740 Jiġrilha funzjoni u mbagħad idejn minn lemin għax-xellug. 195 00:09:59,740 --> 00:10:02,670 Allura dan is-sinjal ugwali ma jfissirx "Hija" kif aħna tista 'taħseb fil-matematika. 196 00:10:02,670 --> 00:10:04,750 Dan ifisser assenjazzjoni mill-lemin għax-xellug. 197 00:10:04,750 --> 00:10:09,640 Allura dan ifisser, jieħdu l-sekwenza mill l-utent u jaħżnu ġewwa ta 's. 198 00:10:09,640 --> 00:10:10,460 >> Issa ejja jużawh. 199 00:10:10,460 --> 00:10:13,820 Let me imorru quddiem issa u bħala t-tieni linja, let me imorru quddiem u jgħidu "bonjour" - 200 00:10:13,820 --> 00:10:19,330 mhux "dinja," imma "hello,% s-- li huwa placeholder tagħna, comma i, 201 00:10:19,330 --> 00:10:22,030 li hija varjabbli tagħna, u mbagħad semi-colon. 202 00:10:22,030 --> 00:10:26,070 Mela jekk jien ma screw up wisq hawn, dan il qisu kodiċi korrett. 203 00:10:26,070 --> 00:10:28,090 >> U instincts tiegħi issa huma li josservawha. 204 00:10:28,090 --> 00:10:30,400 Il-fajl huwa msejjaħ buggy1.c. 205 00:10:30,400 --> 00:10:33,770 Hekk jien ser tagħmel tagħmel buggy1, Ikteb. 206 00:10:33,770 --> 00:10:36,377 U darn-it, jekk ma jkunx hemm anke żbalji aktar milli qabel. 207 00:10:36,377 --> 00:10:38,210 I mean, hemm aktar messaġġi ta 'żball Ikun 208 00:10:38,210 --> 00:10:40,400 jidhru minn linji attwali f'dan il-programm. 209 00:10:40,400 --> 00:10:42,730 >> Iżda l-takeaway hawnhekk huwa, anki jekk int megħlub 210 00:10:42,730 --> 00:10:45,040 b'żewġ jew tliet jew erba 'messaġġi aktar' żball, 211 00:10:45,040 --> 00:10:48,340 tiffoka dejjem fuq il-ħafna ewwel ta 'dawk il-messaġġi. 212 00:10:48,340 --> 00:10:52,220 Ħarsa lejn il-quċċata-aktar waħda, scrolling back-up skond il-bżonn. 213 00:10:52,220 --> 00:10:53,930 So here I ittajpjat jagħmlu buggy1. 214 00:10:53,930 --> 00:10:55,700 Hawn dak output Clang kif mistenni. 215 00:10:55,700 --> 00:10:57,290 >> U hawnhekk l-ewwel żball aħmar. 216 00:10:57,290 --> 00:11:02,370 Użu ta 'identifikatur mhux iddikjarat spag, ma I jfisser standard fil-? 217 00:11:02,370 --> 00:11:04,260 Għalhekk fl-istandard huwa fil-fatt xi ħaġa oħra. 218 00:11:04,260 --> 00:11:06,240 Hija tirreferi għall-tal-utent tastiera, essenzjalment. 219 00:11:06,240 --> 00:11:08,080 >> Iżda li mhux dak I fisser. 220 00:11:08,080 --> 00:11:11,770 I fisser spag, u I fisser get_string. 221 00:11:11,770 --> 00:11:16,200 Allura x'inhu li jien nesa li tagħmel dan il-ħin? 222 00:11:16,200 --> 00:11:20,230 X'hemm nieqes dan iż-żmien? 223 00:11:20,230 --> 00:11:23,600 Għandi #include tiegħi, so I jkollhom aċċess għal printf. 224 00:11:23,600 --> 00:11:26,090 >> Imma dak li għandi ma jkollhom aċċess għall għadha biss? 225 00:11:26,090 --> 00:11:29,420 Ukoll, bħad aħħar darba, I-ħtieġa li tgħid il-kompilatur 226 00:11:29,420 --> 00:11:31,691 Clang liema dawn il-funzjonijiet huma. 227 00:11:31,691 --> 00:11:33,940 Get_string ma jaqax bl C. U b'mod partikolari, huwa 228 00:11:33,940 --> 00:11:38,160 ma jaqax fil- header fajl,. 229 00:11:38,160 --> 00:11:40,770 Hija minflok tiġi fi ħaġa li l-persunal kiteb, 230 00:11:40,770 --> 00:11:44,176 li huwa fajl differenti isem imma adattat issemmiet. 231 00:11:44,176 --> 00:11:46,990 232 00:11:46,990 --> 00:11:50,861 >> Allura sempliċiment billi żżid li linja waħda tal-irtirar code-- mill-aħħar darba 233 00:11:50,861 --> 00:11:53,610 li meta Clang timxi, li għaddej biex tħares lejn kodiċi ta 'fuq tiegħi għal isfel, 234 00:11:53,610 --> 00:11:54,193 xellug għal-lemin. 235 00:11:54,193 --> 00:11:57,200 Huwa ser avviż, oh, inti trid. 236 00:11:57,200 --> 00:11:59,900 Let me go u ssib li, kull fejn hija fuq is-server, 237 00:11:59,900 --> 00:12:03,090 kopja u paste, essenzjalment, fil-quċċata tal-fajl tiegħek 238 00:12:03,090 --> 00:12:06,820 sabiex f'dan il-punt fl-istorja, linja 1, il-bqija tal-programm 239 00:12:06,820 --> 00:12:11,651 jistgħu, tabilħaqq, tuża kwalunkwe waħda mill-funzjonijiet hemmhekk, fosthom get_string. 240 00:12:11,651 --> 00:12:13,650 Hekk jien ser jinjora il-bqija ta 'dawn l-iżbalji, 241 00:12:13,650 --> 00:12:17,190 minħabba I, tabilħaqq, jissuspettaw li huma biss l-ewwel wieħed fil-fatt mattered. 242 00:12:17,190 --> 00:12:20,780 U jien ser jimxi 'l quddiem u terġa' ssir, wara iffrankar fajl tiegħi jagħmlu buggy1. 243 00:12:20,780 --> 00:12:22,580 U voila, għamlet xogħol. 244 00:12:22,580 --> 00:12:29,200 U jekk nagħmel ./buggy1 u tip, għal Pereżempju, Zamyla, jiena issa se tikseb bonjour, 245 00:12:29,200 --> 00:12:32,000 Zamyla, minflok bonjour, dinja. 246 00:12:32,000 --> 00:12:32,550 >> Kull dritt. 247 00:12:32,550 --> 00:12:35,890 Allura l-takeaways hawn mbagħad għandhom, wieħed, jippruvaw glean kif kemm tista 248 00:12:35,890 --> 00:12:39,140 mill-messaġġi ta 'żball waħdu, tfittex lejn uħud mill-kliem rikonoxxibbli. 249 00:12:39,140 --> 00:12:43,070 Preskrizzjoni li, l-użu help50 kull il-problema sett ispeċifikazzjoni. 250 00:12:43,070 --> 00:12:46,500 Iżda preskrizzjoni li, wisq, dejjem tfittex fil-iżball quċċata biss, għall-inqas 251 00:12:46,500 --> 00:12:50,051 inizjalment, biex tara liema informazzjoni għandu mnejn attwalment rendiment. 252 00:12:50,051 --> 00:12:52,300 Iżda jirriżulta hemmhekk s saħansitra aktar funzjonalità mibnija 253 00:12:52,300 --> 00:12:55,030 fil-Librerija CS50 sabiex jgħinu inti kmieni fil-semestru 254 00:12:55,030 --> 00:12:57,580 u kmieni fl-ipprogrammar ċifra barra dak li għaddej ħażin. 255 00:12:57,580 --> 00:12:59,840 Mela ejja nagħmlu eżempju ieħor hawn. 256 00:12:59,840 --> 00:13:04,350 Jien ser sejħa dan buggy2, li, għal darb'oħra, se jkun żbaljat barra 257 00:13:04,350 --> 00:13:05,650 tal-bieb, permezz tad-disinn. 258 00:13:05,650 --> 00:13:09,980 >> U jien ser jimxi 'l quddiem u jagħmlu #include. 259 00:13:09,980 --> 00:13:12,580 U mbagħad jien ser tagħmel int prinċipali (vojt). 260 00:13:12,580 --> 00:13:14,840 U mbagħad jien ser tagħmel għal loop. 261 00:13:14,840 --> 00:13:16,690 Għal (int i _ 0. 262 00:13:16,690 --> 00:13:18,750 i huwa inqas minn jew ugwali għal 10. 263 00:13:18,750 --> 00:13:24,260 i ++, u mbagħad fl-braces kaboċċi, jien ser li jistampa biss simbolu hashtag hawn 264 00:13:24,260 --> 00:13:25,920 u karattru linja ġdida. 265 00:13:25,920 --> 00:13:29,220 >> Allura intenzjoni tiegħi ma 'dan programm huwa pjuttost sempliċi 266 00:13:29,220 --> 00:13:33,150 li jtenni 10 darbiet u fuq kull iterazzjoni 267 00:13:33,150 --> 00:13:35,260 ta 'dak loop kull darba permezz taċ-ċiklu, 268 00:13:35,260 --> 00:13:37,660 jistampa hashtag, a hashtag, li hashtag. 269 00:13:37,660 --> 00:13:40,480 kull linja waħda minħabba I għandna l-linja ġdida hemmhekk. 270 00:13:40,480 --> 00:13:42,787 U tfakkar li l-għall loop, kull l-aħħar week-- 271 00:13:42,787 --> 00:13:44,620 u int ser tingħata aktar familjari mal-sintassi 272 00:13:44,620 --> 00:13:47,170 billi tużaha mal-prattika qabel long-- dan jagħti me 273 00:13:47,170 --> 00:13:49,740 varjabbli msejħa iu settijiet għal 0. 274 00:13:49,740 --> 00:13:52,650 >> Din il żidiet i fuq kull iterazzjoni minn 1. 275 00:13:52,650 --> 00:13:54,940 Hekk i tmur għal 1 sa 2 sa 3. 276 00:13:54,940 --> 00:13:57,690 U allura din il-kondizzjoni fil- tan-nofs bejn il semi-colons 277 00:13:57,690 --> 00:14:03,010 gets verifikati fuq kull iterazzjoni biex jagħmlu żgur li għadna fil-firxa. 278 00:14:03,010 --> 00:14:06,830 So I jridu jtenni 10 darbiet, so I għandhom intuwittivament tip ta 'ħafna biss 279 00:14:06,830 --> 00:14:09,070 tpoġġi 10 kif rbit superjuri tiegħi hemmhekk. 280 00:14:09,070 --> 00:14:14,310 >> And yet, meta I run dan, wara kumpilazzjoni bl make buggy2-- 281 00:14:14,310 --> 00:14:15,440 u dan ma jikkumpilaw OK. 282 00:14:15,440 --> 00:14:17,980 So I ma jkollhom Żball sintassi dan iż-żmien. 283 00:14:17,980 --> 00:14:20,940 Let me imorru quddiem issa u run buggy2, Ikteb. 284 00:14:20,940 --> 00:14:22,620 U issa iscroll. 285 00:14:22,620 --> 00:14:24,890 U let me jżidu id-daqs tat-tieqa. 286 00:14:24,890 --> 00:14:33,720 >> I jidhru li jkollhom 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11. 287 00:14:33,720 --> 00:14:38,891 Allura hemm 11 hashtags, anki jekk I b'mod ċar tpoġġi 10 ta 'ġewwa ta' dan loop. 288 00:14:38,891 --> 00:14:42,140 Issa, xi wħud minnkom tista 'tara immedjatament dak l-iżball hu għaliex, fil-fatt, din il- 289 00:14:42,140 --> 00:14:43,720 mhuwiex żball diffiċli ħafna biex jagħmlu. 290 00:14:43,720 --> 00:14:46,070 Iżda huwa komuni ħafna magħmula fi stadju bikri. 291 00:14:46,070 --> 00:14:49,820 >> Dak li nixtieq li jiġi rrilevat, madankollu, hija, kif tista I figura dan out? 292 00:14:49,820 --> 00:14:52,300 Ukoll, jirriżulta li -Librerija CS50 ġejja 293 00:14:52,300 --> 00:14:55,380 mhux biss ma get_string u get_int u get_float u funzjonijiet oħra. 294 00:14:55,380 --> 00:14:59,980 Hija wkoll tiġi flimkien ma 'funzjoni speċjali imsejħa eprintf, jew, żball printf. 295 00:14:59,980 --> 00:15:03,270 U dan jeżisti biss biex isiru hija ftit aktar faċli għalik 296 00:15:03,270 --> 00:15:06,310 meta debugging kodiċi tiegħek għal ftit jistampa messaġġ ta 'żball fuq l-iskrin 297 00:15:06,310 --> 00:15:07,850 u jafu fejn ġew minn. 298 00:15:07,850 --> 00:15:11,000 >> Allura per eżempju, ħaġa waħda I jista nagħmlu hawnhekk ma din il-funzjoni huwa this-- 299 00:15:11,000 --> 00:15:20,230 eprintf, u mbagħad jien ser jimxi 'l quddiem u jgħidu I issa% i, backslash, n. 300 00:15:20,230 --> 00:15:22,330 U jien ser plagg fil-valur ta 'i. 301 00:15:22,330 --> 00:15:25,400 U top up, għaliex dan hija fil-Librerija CS50, 302 00:15:25,400 --> 00:15:27,580 Jien ser jimxi 'l quddiem u jinkludu 303 00:15:27,580 --> 00:15:29,169 so I jkollhom aċċess għal din il-funzjoni. 304 00:15:29,169 --> 00:15:31,460 Imma ejja tikkunsidra liema linja 9 suppost li tkun qiegħda tagħmel. 305 00:15:31,460 --> 00:15:32,670 Jien ser jitħassar dan eventwalment. 306 00:15:32,670 --> 00:15:34,670 Din il m'għandha x'taqsam xejn ma bil-għan predominanti tiegħi. 307 00:15:34,670 --> 00:15:39,090 Iżda eprintf, printf żball, huwa biss maħsub li tagħti me xi informazzjoni djanjostika. 308 00:15:39,090 --> 00:15:42,460 Meta I run program tiegħi, nixtieq li tara dan fuq l-iskrin temporanjament 309 00:15:42,460 --> 00:15:44,550 kif ukoll just biex jifhmu x'inhu għaddej. 310 00:15:44,550 --> 00:15:47,330 >> U, tabilħaqq, fuq kull iterazzjoni hawn 'linja ta' 9 311 00:15:47,330 --> 00:15:49,260 Irrid nara, dak li huwa l-valur ta 'i? 312 00:15:49,260 --> 00:15:50,290 X'inhu l-valur ta 'i? 313 00:15:50,290 --> 00:15:51,280 X'inhu l-valur ta 'i? 314 00:15:51,280 --> 00:15:55,650 U, forsi, I għandhom biss ara dak il-messaġġ, wkoll, 10 darbiet. 315 00:15:55,650 --> 00:15:57,780 >> So let me go quddiem u recompile programm tiegħi, 316 00:15:57,780 --> 00:15:59,905 kif nagħmel xi ħin I jagħmlu bidla. ./buggy2. 317 00:15:59,905 --> 00:16:02,680 318 00:16:02,680 --> 00:16:03,640 U now-- OK. 319 00:16:03,640 --> 00:16:04,820 Hemm ħafna aktar għaddejjin. 320 00:16:04,820 --> 00:16:07,610 So let me iscroll fil tieqa saħansitra akbar. 321 00:16:07,610 --> 00:16:10,190 >> U tkun taf tara li kull wieħed l hashtags għadu istampar. 322 00:16:10,190 --> 00:16:15,270 Iżda fl bejn kull wieħed minnhom issa dan huwa produzzjoni dijanjostiċi formattjati kif ġej. 323 00:16:15,270 --> 00:16:17,960 L-isem tal-programm tiegħi hawnhekk huwa buggy2. 324 00:16:17,960 --> 00:16:20,432 L-isem tal-fajl huwa buggy2.c. 325 00:16:20,432 --> 00:16:24,080 In-numru linja li minnha dan kien stampat huwa linja 9. 326 00:16:24,080 --> 00:16:27,500 U mbagħad lejn il-lemin ta 'dik l- messaġġ ta 'żball li jien jistennew. 327 00:16:27,500 --> 00:16:30,701 >> U x'hemm sbieħ dwar dan hija li issa jien ma jkollhom bilfors joqgħod 328 00:16:30,701 --> 00:16:32,200 in my head dak il-programm tiegħi qed tagħmel. 329 00:16:32,200 --> 00:16:34,240 I jista 'jara li fuq il- ewwel iterazzjoni i huwa ta '0, 330 00:16:34,240 --> 00:16:39,420 imbagħad 1, imbagħad 2, imbagħad 3, imbagħad 4, allura 5, imbagħad 6, imbagħad 7, allura 8, allura 9, imbagħad 331 00:16:39,420 --> 00:16:40,980 10. 332 00:16:40,980 --> 00:16:42,050 Allura stenna minuta. 333 00:16:42,050 --> 00:16:43,740 X'qed jiġri hawn? 334 00:16:43,740 --> 00:16:48,190 I għadhom jidhru li huma isserraħ kif maħsub sa 10. 335 00:16:48,190 --> 00:16:50,550 >> Iżda fejn ma nibda? 336 00:16:50,550 --> 00:16:53,240 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 10. 337 00:16:53,240 --> 00:16:58,040 Allura 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10-- il-11 saba 338 00:16:58,040 --> 00:16:59,990 hija indikattiva tal-problema. 339 00:16:59,990 --> 00:17:02,850 I jidhru li jkollhom magħduda b'mod inkorrett linja tiegħi. 340 00:17:02,850 --> 00:17:06,599 Pjuttost milli jmorru 10 iterazzjonijiet, Jien jibdew minn 0, 341 00:17:06,599 --> 00:17:09,550 Jien jispiċċa fi u permezz 10. 342 00:17:09,550 --> 00:17:12,030 Iżda għaliex, bħal kompjuter, Jien jibdew għadd ta '0, 343 00:17:12,030 --> 00:17:15,250 Inkun jingħaddu l li, iżda mhux permezz, 10. 344 00:17:15,250 --> 00:17:18,510 >> U għalhekk l-jiffissaw, I eventwalment realizzati hawnhekk, huwa wieħed minn żewġ affarijiet. 345 00:17:18,510 --> 00:17:22,430 I jistgħu sempliċement ħafna jgħidu joqgħod sa inqas minn 10. 346 00:17:22,430 --> 00:17:27,260 Allura 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, li huwa, tabilħaqq, korretta, 347 00:17:27,260 --> 00:17:28,900 anki jekk ħsejjes ħażin ftit. 348 00:17:28,900 --> 00:17:35,070 Jew I jistgħu jagħmlu inqas minn jew ugwali sa 9, sakemm nibda f'0. 349 00:17:35,070 --> 00:17:40,056 Jew jekk int verament ma simili dan, inti jista 'joqgħod sa permezz 10 iżda jibdew fl-1. 350 00:17:40,056 --> 00:17:41,680 Iżda għal darb'oħra, dan biss mhux dak komuni. 351 00:17:41,680 --> 00:17:43,977 Fil programming-- għalkemm mhux tant fil Scratch-- 352 00:17:43,977 --> 00:17:45,810 iżda fil-programmazzjoni fil C u lingwi oħra, 353 00:17:45,810 --> 00:17:47,670 bħall JavaScript u Python u oħrajn, huwa 354 00:17:47,670 --> 00:17:49,880 biss komuni ħafna għall- diskussjoni tagħna ta 'binarja 355 00:17:49,880 --> 00:17:53,450 għal ftit jibdew jingħaddu fil- anqas numru tista ', liema huwa ta' 0. 356 00:17:53,450 --> 00:17:53,950 Kull dritt. 357 00:17:53,950 --> 00:17:55,160 Allura dak eprintf. 358 00:17:55,160 --> 00:17:58,600 U għal darb'oħra, issa li stajt dehret tiegħi problema, u jien ser jmorru lura għal 0 359 00:17:58,600 --> 00:18:01,470 permezz ta 'inqas minn 10, jien ser li jmorru fi u ħassar eprintf. 360 00:18:01,470 --> 00:18:04,580 >> M'għandux ikun hemm meta I vapur kodiċi tiegħi jew jissottomettu kodiċi tiegħi 361 00:18:04,580 --> 00:18:05,800 jew juru lill ħaddieħor. 362 00:18:05,800 --> 00:18:07,980 Huwa verament ftit maħsub li għandhom jintużaw temporanjament. 363 00:18:07,980 --> 00:18:11,650 Imma issa stajt fiss dan il partikolari problema kif ukoll. 364 00:18:11,650 --> 00:18:16,780 >> Ukoll, ejja nagħmlu eżempju wieħed aktar hawn li jien ser Whip up kif ġej. 365 00:18:16,780 --> 00:18:22,850 Jien ser jimxi 'l quddiem u #include. $ 50 366 00:18:22,850 --> 00:18:25,580 U jien ser jimxi 'l quddiem u #include. 367 00:18:25,580 --> 00:18:29,030 >> U jien ser tiffranka dan il-fajl bħala buggy3.c. 368 00:18:29,030 --> 00:18:31,740 U jien ser jimxi 'l quddiem u tiddikjara int prinċipali (vojt). 369 00:18:31,740 --> 00:18:34,186 U allura ġewwa tal hemmhekk Jien ser tagħmel int i _ - 370 00:18:34,186 --> 00:18:36,435 Irrid li jimplimentaw programm bi get_negative_int. 371 00:18:36,435 --> 00:18:39,146 372 00:18:39,146 --> 00:18:40,770 Din mhix funzjoni li jeżisti s'issa. 373 00:18:40,770 --> 00:18:42,870 Allura aħna qed tmur biex jimplimentaw hija fi ftit mument. 374 00:18:42,870 --> 00:18:45,541 Iżda aħna qed tmur biex tara għaliex huwa Buggy fl-ewwel pass. 375 00:18:45,541 --> 00:18:47,290 U ladarba stajt gotten l int mill-utent, 376 00:18:47,290 --> 00:18:53,365 Jien biss ser jistampaw% i hija negattiva numru sħiħ, backslash, n, comma, i. 377 00:18:53,365 --> 00:18:55,240 Fi kliem ieħor, kollha I jixtiequ dan il-programm li tagħmel 378 00:18:55,240 --> 00:18:58,000 huwa jiksbu int negattiv minn l-utent u mbagħad jistampa 379 00:18:58,000 --> 00:18:59,980 li tali u tali huwa int negattiva. 380 00:18:59,980 --> 00:19:02,080 >> Issa għandi bżonn biex jimplimentaw din il-funzjoni. 381 00:19:02,080 --> 00:19:05,740 Allura aktar tard fil-fajl tiegħi, jien ser imorru quddiem u tiddikjara funzjoni msejħa 382 00:19:05,740 --> 00:19:10,670 get_negative_int (vojt) - u aħna ser terga 'lura għal dak li linja jfisser darb'oħra 383 00:19:10,670 --> 00:19:18,790 fi n int moment--; do-- do n printf following-- huwa :. 384 00:19:18,790 --> 00:19:26,210 U mbagħad jien ser do n - get_int, u jagħmlu dan filwaqt li n hija akbar minn 0. 385 00:19:26,210 --> 00:19:28,310 U mbagħad jirritornaw n ;. 386 00:19:28,310 --> 00:19:31,730 >> Allura hemm ħafna għaddej fil dan imma ebda wieħed minnhom aħna ma 387 00:19:31,730 --> 00:19:33,710 tħares lejn ġimgħa li għaddiet, għall-inqas fil-qosor. 388 00:19:33,710 --> 00:19:36,980 Allura fuq il-linja 10 hawn stajt iddikjarata funzjoni msejħa get_negative_int, 389 00:19:36,980 --> 00:19:39,620 u stajt jitqiegħdu (vojt), fil parentesi, ir-raġuni li huma dan il 390 00:19:39,620 --> 00:19:40,950 ma jieħux input. 391 00:19:40,950 --> 00:19:42,910 Jien ma jgħaddux xejn għal din il-funzjoni. 392 00:19:42,910 --> 00:19:44,690 Jien biss jkollna xi ħaġa lura minnha. 393 00:19:44,690 --> 00:19:47,270 >> U dak li jien bit-tama li nikseb lura huwa integer. 394 00:19:47,270 --> 00:19:50,040 M'hemm l-ebda tip ta 'dejta fil Ċ imsejħa negative_int. 395 00:19:50,040 --> 00:19:52,880 Huwa biss int, hekk li għaddej li jkunu fuqna biex tiżgura 396 00:19:52,880 --> 00:19:55,340 li l-valur li attwalment jintbagħat lura huwa mhux biss int 397 00:19:55,340 --> 00:19:56,380 iżda huwa wkoll negattiva. 398 00:19:56,380 --> 00:20:02,150 >> On-line 12 Jien tiddikjara varjabbli imsejħa nu jagħmilha ta 'int tip. 399 00:20:02,150 --> 00:20:07,500 U mbagħad fil-linja 13 permezz 18 jien tagħmel xi ħaġa waqt li xi ħaġa huwa veru. 400 00:20:07,500 --> 00:20:11,040 Jien jimxu 'l quddiem u l-istampar n jiġifieri, kolon, u mbagħad spazju, 401 00:20:11,040 --> 00:20:12,800 bħal fil-pront għall-utent. 402 00:20:12,800 --> 00:20:16,410 >> Jien imbagħad titlob get_int u ħażna valur tar-ritorn hekk imsejħa tagħha 403 00:20:16,410 --> 00:20:18,130 f'dak varjabbli n. 404 00:20:18,130 --> 00:20:22,600 Imma jien ser iżommu tagħmel dan waqt n hija akbar minn 0. 405 00:20:22,600 --> 00:20:27,960 Fi kliem ieħor, jekk l-utent jagħti me int u dak in-numru huwa akbar minn 0, 406 00:20:27,960 --> 00:20:31,180 Ergo, pożittivi, jien ser biss iżommu reprompting-utent, 407 00:20:31,180 --> 00:20:37,160 iżommu reprompting, billi jġegħluhom jikkooperaw u jagħtu me int negattiv. 408 00:20:37,160 --> 00:20:41,640 >> U ladarba n huwa attwalment negative-- jissoponi l-utent finalment tipi -50, 409 00:20:41,640 --> 00:20:46,710 allura dan loop filwaqt li m'għadux jgħodd għaliex -50 ma tkunx akbar minn 0. 410 00:20:46,710 --> 00:20:51,140 Allura aħna break out ta 'dik loop loġikament u r-ritorn n. 411 00:20:51,140 --> 00:20:53,520 >> Iżda hemm wieħed ieħor ħaġa I għandek tagħmel. 412 00:20:53,520 --> 00:20:56,190 U nista 'sempliċement tagħmel dan billi ikkupjar u pasta 413 00:20:56,190 --> 00:20:58,540 linja waħda tal-kodiċi fil-quċċata tal-fajl. 414 00:20:58,540 --> 00:21:01,630 I bżonn biex jgħallmu Clang, jew wegħda li Clang, 415 00:21:01,630 --> 00:21:04,630 espliċitament li jien se, tabilħaqq, mur u jimplimentaw 416 00:21:04,630 --> 00:21:06,020 dan il get_negative_int funzjoni. 417 00:21:06,020 --> 00:21:07,674 Hija tista 'biss tkun aktar baxxa fil-fajl. 418 00:21:07,674 --> 00:21:09,840 Għal darb'oħra, ifakkar li Clang taqra affarijiet fuq għal isfel, 419 00:21:09,840 --> 00:21:12,330 xellug għal-lemin, sabiex inti ma tistax sejħa funzjoni jekk Clang 420 00:21:12,330 --> 00:21:15,330 ma jkunx jaf li għaddej jeżistu. 421 00:21:15,330 --> 00:21:18,430 >> Issa, sfortunatament, dan il-programm, kif xi wħud minnkom jista 'jkollok ndunat, 422 00:21:18,430 --> 00:21:19,590 huwa diġà Buggy. 423 00:21:19,590 --> 00:21:21,400 Let me imorru quddiem u jagħmlu buggy3. 424 00:21:21,400 --> 00:21:26,904 Hija jikkompila, hekk problema tiegħi issa mhux żball sintassi, bħal żball testwali, 425 00:21:26,904 --> 00:21:29,570 huwa fil-fatt se tkun loġika Żball li stajt deliberatament 426 00:21:29,570 --> 00:21:32,450 magħmula bħala opportunità biex pass permezz x'inhu għaddej. 427 00:21:32,450 --> 00:21:35,540 >> Jien ser jimxi 'l quddiem issa u run buggy3. 428 00:21:35,540 --> 00:21:37,490 U jien se jmorru quddiem u mhux jikkoopera. 429 00:21:37,490 --> 00:21:39,494 Jien ser jagħtuh in-numru 1. 430 00:21:39,494 --> 00:21:41,410 Hija ma bhalu, hekk huwa suġġeriment me darb'oħra. 431 00:21:41,410 --> 00:21:42,147 >> Kif dwar 2? 432 00:21:42,147 --> 00:21:43,021 3? 433 00:21:43,021 --> 00:21:43,520 50? 434 00:21:43,520 --> 00:21:44,740 Ebda wieħed minn dawk li qed jaħdmu. 435 00:21:44,740 --> 00:21:46,890 Kif dwar -50? 436 00:21:46,890 --> 00:21:48,560 U l-programm jidher li qed jaħdem. 437 00:21:48,560 --> 00:21:49,970 >> Let me jippruvaw darba aktar. 438 00:21:49,970 --> 00:21:53,400 Let me jippruvaw -1, jidher li qed jaħdem. 439 00:21:53,400 --> 00:21:56,380 Let me jippruvaw -2, jidher li qed jaħdem. 440 00:21:56,380 --> 00:21:59,640 Let me jippruvaw 0. 441 00:21:59,640 --> 00:22:01,684 Huh, li żbaljata. 442 00:22:01,684 --> 00:22:03,350 Issa, aħna qed tkun ftit pedantic hawn. 443 00:22:03,350 --> 00:22:07,090 Imma hija, tabilħaqq, il-każ li għamilhom 0 huwa la pożittiv u lanqas negattiv. 444 00:22:07,090 --> 00:22:11,150 U għalhekk il-fatt li programm tiegħi huwa qal li għamilhom 0 huwa numru sħiħ negattiv, 445 00:22:11,150 --> 00:22:12,820 li mhux teknikament korretta. 446 00:22:12,820 --> 00:22:15,180 >> Issa, għaliex hi tagħmel dan? 447 00:22:15,180 --> 00:22:16,270 Ukoll, jista 'jkun ovvju. 448 00:22:16,270 --> 00:22:18,110 U, tabilħaqq, il-programm huwa maħsub li jkun pjuttost sempliċi 449 00:22:18,110 --> 00:22:19,670 hekk aħna għandna xi ħaġa biex jesploraw. 450 00:22:19,670 --> 00:22:25,870 >> Imma ejja jintroduċu t-tielet debugging teknika hawn imsejħa debug50. 451 00:22:25,870 --> 00:22:27,750 Allura dan huwa programm li konna biss maħluqa 452 00:22:27,750 --> 00:22:30,770 din is-sena tissejjaħ debug50 li se jippermetti li inti 453 00:22:30,770 --> 00:22:34,130 li tuża dak li sejjaħ built-in debugger grafika fl IDE CS50. 454 00:22:34,130 --> 00:22:38,400 U debugger huwa biss programm li ġeneralment ihallik run program tiegħek 455 00:22:38,400 --> 00:22:44,050 iżda pass pass pass, linja billi linja b'linja, jieqaf, poking 456 00:22:44,050 --> 00:22:47,626 madwar, tħares lejn varjabbli b'tali mod li il-programm ma biss blow passat inti 457 00:22:47,626 --> 00:22:49,750 u malajr jistampaw xi ħaġa jew le print xi ħaġa. 458 00:22:49,750 --> 00:22:53,250 Dan jagħtik l-opportunità, fil veloċità tal-bniedem, li jinteraġixxu miegħu. 459 00:22:53,250 --> 00:22:55,470 >> U biex tagħmel dan, inti sempliċiment tagħmel dan li ġej. 460 00:22:55,470 --> 00:22:58,479 Wara kompilazzjoni kodiċi tiegħek, li jiena diġà għamlu, buggy3, 461 00:22:58,479 --> 00:23:00,020 inti tmur quddiem u run debug50 ./buggy. 462 00:23:00,020 --> 00:23:03,460 463 00:23:03,460 --> 00:23:06,760 Tant simili help50 tkun inti tmexxi help50 u allura l-kmand, 464 00:23:06,760 --> 00:23:10,120 debug50 tkun inti run debug50 u allura l-isem tal-kmand. 465 00:23:10,120 --> 00:23:14,440 >> Issa jaraw dak li jiġri fuq l-iskrin tiegħi, fuq in-naħa tal-lemin b'mod partikolari. 466 00:23:14,440 --> 00:23:19,400 Meta I hit Run, kollha tal- għarrieda bord din il-lemin 467 00:23:19,400 --> 00:23:20,419 jiftaħ fuq l-iskrin. 468 00:23:20,419 --> 00:23:22,210 U hemm ħafna tmur fuq ewwel daqqa t'għajn. 469 00:23:22,210 --> 00:23:25,110 Iżda hemm mhux wisq ħafna jinkwetaw dwar s'issa. 470 00:23:25,110 --> 00:23:28,570 >> Dan huwa juru lili kollox li għaddej ġewwa tal-programm tiegħi 471 00:23:28,570 --> 00:23:31,130 dritt issa u permezz ta 'dawn buttuni top up huwa mbagħad 472 00:23:31,130 --> 00:23:35,910 tippermetti lili biex pass permezz-kodiċi tiegħi finalment pass pass pass. 473 00:23:35,910 --> 00:23:37,140 Imma mhux biss. 474 00:23:37,140 --> 00:23:38,060 Avviż x'jiġri. 475 00:23:38,060 --> 00:23:40,600 Fl-tieqa terminal tiegħi Jien qed imqanqla għal n. 476 00:23:40,600 --> 00:23:44,560 U jien ser jimxi 'l quddiem u jikkooperaw din id-darba u t-tip fil -1. 477 00:23:44,560 --> 00:23:48,770 U għalkemm ftit cryptically, -1 huwa numru sħiħ negattiv, kif mistenni. 478 00:23:48,770 --> 00:23:52,020 >> U mbagħad tfal ħareġ bl istatus 0 GDBserver joħorġu. 479 00:23:52,020 --> 00:23:55,180 GDB, GNU Debugger, huwa l-isem tas-softwer sottostanti 480 00:23:55,180 --> 00:23:56,620 li jimplimenta din debugger. 481 00:23:56,620 --> 00:24:00,500 Imma dan kollu verament ifisser, il debugger marru għax-programm tiegħi jieqfu 482 00:24:00,500 --> 00:24:01,710 u kollox kien tajjeb. 483 00:24:01,710 --> 00:24:06,020 Jekk irrid biex verament debug programm tiegħi, Għandi biex preemptively tell debug50, 484 00:24:06,020 --> 00:24:08,920 fejn ma nixtieq li jibdew titjib permezz Kodiċi tiegħi? 485 00:24:08,920 --> 00:24:11,750 >> U forsi l-eħfef mod biex tagħmel dan huwa kif ġej. 486 00:24:11,750 --> 00:24:15,300 Jekk I imbagħad jerġgħu jsiru fuq il- kanal ta 'editur tiegħi hawnhekk, 487 00:24:15,300 --> 00:24:19,090 sabiex verament biss fil-sidebar hawn, lejn ix-xellug tan-numru linja, 488 00:24:19,090 --> 00:24:21,870 avviż li jekk jien kemm tikklikkja ladarba, nressaq tikka ħamra ftit. 489 00:24:21,870 --> 00:24:24,460 U li dot aħmar ftit, bħal sinjal ta 'waqfien, ifisser, ħej, 490 00:24:24,460 --> 00:24:29,430 debug50, l-eżekuzzjoni nieqaf tal-kodiċi tiegħi hemm dritt meta I run dan il-programm. 491 00:24:29,430 --> 00:24:30,260 >> Mela ejja tagħmel dan. 492 00:24:30,260 --> 00:24:37,340 Let me imorru quddiem u run program tiegħi mill-ġdid ma debug50 ./buggy3, Ikteb. 493 00:24:37,340 --> 00:24:40,110 U issa, avviż, xi ħaġa differenti li ġara. 494 00:24:40,110 --> 00:24:42,440 Jien mhux qed imqanqla għadhom fil-tieqa terminal tiegħi 495 00:24:42,440 --> 00:24:45,430 għal xejn, għax jien ma gotten wasalniex fil-programm tiegħi. 496 00:24:45,430 --> 00:24:47,950 Avviż li fuq il-linja 8 li issa hija enfasizzata, 497 00:24:47,950 --> 00:24:51,720 u hemm vleġġa ftit fil qal xellug, inti waqfa qasira hawn. 498 00:24:51,720 --> 00:24:55,030 Din il-linja tal-kodiċi, linja 8, għadha ma eżegwita. 499 00:24:55,030 --> 00:24:58,940 >> U x'hemm kurjuż, jekk nħares minn hawn fuq in-naħa tal-lemin, 500 00:24:58,940 --> 00:25:03,530 avviż li jien hija lokali varjabbli, lokali fis-sens 501 00:25:03,530 --> 00:25:05,450 li huwa ġewwa l-funzjoni attwali. 502 00:25:05,450 --> 00:25:08,920 U l-valur, apparentement fil-kontumaċja, u tip ta 'konvenjenti, huwa ta' 0. 503 00:25:08,920 --> 00:25:10,260 Imma jien ma tip 0. 504 00:25:10,260 --> 00:25:13,410 Dik biss jiġri li jkun tiegħu valur awtomatiku fil-mument. 505 00:25:13,410 --> 00:25:15,490 >> So let me go quddiem u tagħmel dan issa. 506 00:25:15,490 --> 00:25:18,680 Let me imorru quddiem u fuq -quċċata dritt hawn, jien 507 00:25:18,680 --> 00:25:20,970 se jimxi 'l quddiem u ikklikkja din l-ewwel ikona li 508 00:25:20,970 --> 00:25:25,360 ifisser pass fuq li jfisser ma skip imma pass fuq din il-linja ta 'kodiċi, 509 00:25:25,360 --> 00:25:27,770 eżekuzzjoni tagħha tul it-triq. 510 00:25:27,770 --> 00:25:30,710 >> U issa, avviż, tiegħi pront għadu kif inbidlet. 511 00:25:30,710 --> 00:25:31,380 Għaliex huwa li? 512 00:25:31,380 --> 00:25:33,639 Stajt qallek debug50, run din il-linja tal-kodiċi. 513 00:25:33,639 --> 00:25:34,930 Xi jfisser din il-linja tal-kodiċi do? 514 00:25:34,930 --> 00:25:35,960 Twassalni għal int. 515 00:25:35,960 --> 00:25:36,460 KOLLOX SEW. 516 00:25:36,460 --> 00:25:37,400 Let me jikkooperaw. 517 00:25:37,400 --> 00:25:41,340 Let me imorru quddiem issa u t-tip -1, Ikteb. 518 00:25:41,340 --> 00:25:42,920 U issa avviż dak li nbidlet. 519 00:25:42,920 --> 00:25:46,060 Fuq in-naħa tal-lemin, varjabbli lokali tiegħi i 520 00:25:46,060 --> 00:25:48,200 huwa indikat bħala -1 issa. 521 00:25:48,200 --> 00:25:49,810 U huwa għadu ta 'int tip. 522 00:25:49,810 --> 00:25:53,102 >> U l-avviż, wisq, tiegħi hekk imsejħa sejħa munzell, fejn ma I nieqaf? 523 00:25:53,102 --> 00:25:54,810 Aħna ser nitkellmu aktar dwar dan fil-futur. 524 00:25:54,810 --> 00:25:58,620 Iżda l-sejħa munzell biss jirreferi għal dak li funzjonijiet bħalissa fil-mozzjoni. 525 00:25:58,620 --> 00:26:00,040 Dritt issa huwa biss prinċipali. 526 00:26:00,040 --> 00:26:03,590 U d-dritt issa l-uniku lokali varjabbli huwa i b'valur ta '1. 527 00:26:03,590 --> 00:26:09,840 >> U meta I finalment pass fuq il-linja hawn, bl-istess ikona fil-lemin ta 'fuq, 528 00:26:09,840 --> 00:26:11,410 -1 Huwa numru sħiħ negattiv. 529 00:26:11,410 --> 00:26:13,580 Issa huwa jieqaf matul dak Brace kaboċċi. 530 00:26:13,580 --> 00:26:14,740 Ejja ħalliha tagħmel ħaġa tagħha. 531 00:26:14,740 --> 00:26:17,300 I pass fuq dik il-linja, u voila. 532 00:26:17,300 --> 00:26:20,240 >> Allura mhux kollha li terriblement illuminanti għadhom, 533 00:26:20,240 --> 00:26:23,550 iżda hija ma let me nieqaf u jaħsbu permezz loġikament 534 00:26:23,550 --> 00:26:24,870 dak li dan il-programm qed tagħmel. 535 00:26:24,870 --> 00:26:26,890 Iżda dan ma kienx il-każ żbaljata. 536 00:26:26,890 --> 00:26:28,510 Ejja nagħmlu dan mill-ġdid kif ġej. 537 00:26:28,510 --> 00:26:31,340 >> Jien ser jitlaq minn dak breakpoint fuq il-linja 8 mal-tikka ħamra. 538 00:26:31,340 --> 00:26:32,830 Jien ser terġa 'ssir debug50. 539 00:26:32,830 --> 00:26:34,400 Huwa awtomatikament waqfa qasira hawn. 540 00:26:34,400 --> 00:26:37,660 Iżda dan iż-żmien, minflok titjib fuq din il-linja, 541 00:26:37,660 --> 00:26:42,290 let me fil-fatt imorru ġewwa tal get_negative_int u ċifra barra, 542 00:26:42,290 --> 00:26:45,530 għaliex hi taċċetta 0 bħala risposta valida? 543 00:26:45,530 --> 00:26:47,990 >> Allura minflok tikklikkja Pass Matul. 544 00:26:47,990 --> 00:26:50,630 Jien ser jimxi 'l quddiem u kklikkja Pass Into. 545 00:26:50,630 --> 00:26:54,030 U tinnota li l-linja 8 thats issa enfasizzat issa f'daqqa 546 00:26:54,030 --> 00:26:56,900 isir linja 17. 547 00:26:56,900 --> 00:26:59,947 >> Issa, mhuwiex li l debugger tkun skipped linji 14 u 15 u 16. 548 00:26:59,947 --> 00:27:01,780 Huwa biss hemm xejn biex turi li inti hemmhekk. 549 00:27:01,780 --> 00:27:04,050 Dawk huma biss tiddikjara varjabbli, U allura hemm il-kelma Do 550 00:27:04,050 --> 00:27:05,390 u mbagħad miftuħa kaboċċi Brace. 551 00:27:05,390 --> 00:27:09,227 L-unika linja funzjonali li l- mmerraq verament huwa dan wieħed hawn, 17. 552 00:27:09,227 --> 00:27:11,060 U li fejn konna waqfa qasira awtomatikament. 553 00:27:11,060 --> 00:27:13,870 >> Allura printf ( "n.is:") ;, hekk li s'issa ma seħħx. 554 00:27:13,870 --> 00:27:18,250 Mela ejja imorru quddiem u kklikkja Pass Matul. 555 00:27:18,250 --> 00:27:20,326 Issa tiegħi fil-pront, fil-fatt, mibdula għal ( "n huwa:"). 556 00:27:20,326 --> 00:27:22,450 Issa get_int, jien mhux ser li jolqot titjib fis- 557 00:27:22,450 --> 00:27:24,750 għaliex dik il-funzjoni kienet magħmula mill CS50 fil-Librerija. 558 00:27:24,750 --> 00:27:25,750 Huwa preżumibbilment korrett. 559 00:27:25,750 --> 00:27:28,440 >> Hekk jien ser jimxi 'l quddiem u tip ta jikkooperaw billi jagħtiha 560 00:27:28,440 --> 00:27:30,590 l int, imma mhux int negattiv. 561 00:27:30,590 --> 00:27:32,870 So let me go quddiem u hit 0. 562 00:27:32,870 --> 00:27:39,460 U issa x'jiġri hawn meta nasal isfel għal-linja 21? 563 00:27:39,460 --> 00:27:40,890 Stajt ma tennew mill-ġdid. 564 00:27:40,890 --> 00:27:43,320 Jien ma jidhirx li tkun mwaħħla f'dik linja. 565 00:27:43,320 --> 00:27:45,990 Fi kliem ieħor, dan isfar bar ma jibqgħu għaddejjin madwar, 566 00:27:45,990 --> 00:27:47,130 u madwar, u madwar. 567 00:27:47,130 --> 00:27:48,340 >> Issa, għaliex huwa li? 568 00:27:48,340 --> 00:27:49,920 Ukoll, n, dak li n dritt issa? 569 00:27:49,920 --> 00:27:53,280 I tista 'tħares lejn il-lokali varjabbli fil-debugger. 570 00:27:53,280 --> 00:27:53,816 n huwa 0. 571 00:27:53,816 --> 00:27:55,190 Kull dritt, dak li kien il-kundizzjoni tiegħi? 572 00:27:55,190 --> 00:27:58,700 >> 20-- linja 20 hija, ukoll, 0 huwa akbar minn 0. 573 00:27:58,700 --> 00:27:59,500 Dan mhuwiex veru. 574 00:27:59,500 --> 00:28:01,020 0 ma tkunx akbar minn 0. 575 00:28:01,020 --> 00:28:02,820 U hekk jien faqqgħet ta 'dan. 576 00:28:02,820 --> 00:28:06,370 >> U hekk hu għalhekk fuq il-linja 21, jekk I attwalment tkompli, 577 00:28:06,370 --> 00:28:10,370 Jien ser jirritorna 0, anki għalkemm I għandu jkollhom rifjutati 0 578 00:28:10,370 --> 00:28:12,484 bħala mhux attwalment tkun negattiva. 579 00:28:12,484 --> 00:28:14,650 Allura issa, jien ma verament anki kura dwar il-debugger. 580 00:28:14,650 --> 00:28:16,900 Ghandek dan, I m'għandhomx bżonn li taf liema aktar li qed jiġri. 581 00:28:16,900 --> 00:28:19,233 >> Hekk jien ser jimxi 'l quddiem u ikklikkja l-buttuna Play, 582 00:28:19,233 --> 00:28:20,240 u ħalli din finitura up. 583 00:28:20,240 --> 00:28:23,440 Issa, stajt induna li tiegħi bug hija apparentement fuq il-linja 20. 584 00:28:23,440 --> 00:28:25,160 C'est iżball loġiku tiegħi. 585 00:28:25,160 --> 00:28:28,100 >> U hekk dak ma nixtieq biex tagħmel għall-bidla dan? 586 00:28:28,100 --> 00:28:32,500 Jekk il-problema hija li jien ma qbid 0, huwa biss żball loġiku. 587 00:28:32,500 --> 00:28:35,910 U nista 'ngħid waqt n huwa ikbar minn jew ugwali għal 0, 588 00:28:35,910 --> 00:28:38,330 iżommu wassal lill-utent mill-ġdid u għal darb'oħra. 589 00:28:38,330 --> 00:28:41,050 >> Allura, għal darb'oħra, żball sempliċi, forsi anke ovvju meta inti raw lili 590 00:28:41,050 --> 00:28:42,410 tikteb biss ftit minuti ilu. 591 00:28:42,410 --> 00:28:44,570 Iżda l-takeaway hawn hija li ma debug 50, 592 00:28:44,570 --> 00:28:46,850 u ma debugging softwer b'mod aktar ġenerali, 593 00:28:46,850 --> 00:28:51,370 inti għandek din is-setgħa l-ġdida nstabu li walk permezz-kodiċi tiegħek stess, tfittex 594 00:28:51,370 --> 00:28:55,590 permezz ta 'dak bord tal-lemin dak Valuri varjabbli tiegħek huma. 595 00:28:55,590 --> 00:28:57,700 Allura inti ma neċessarjament għandhom jużaw xi ħaġa 596 00:28:57,700 --> 00:29:00,630 bħalek eprintf li jistampaw dawk il-valuri. 597 00:29:00,630 --> 00:29:04,430 Inti tista 'attwalment tara minnhom viżwalment fuq l-iskrin. 598 00:29:04,430 --> 00:29:08,920 >> Issa, lil hinn minn dan, huwa ta 'min jinnota li hemm teknika oħra li l- 599 00:29:08,920 --> 00:29:09,890 attwalment super komuni. 600 00:29:09,890 --> 00:29:13,120 U inti jista 'jistaqsi għaliex din ftit Guy hawn ġie seduta fuq il-palk. 601 00:29:13,120 --> 00:29:16,490 Allura hemm din it-teknika, b'mod ġenerali magħrufa bħala debugging papra tal-gomma, 602 00:29:16,490 --> 00:29:18,786 li verament huwa biss xhieda tal-fatt 603 00:29:18,786 --> 00:29:20,660 li programmaturi spiss meta qed tikteb kodiċi, 604 00:29:20,660 --> 00:29:22,650 dawn mhux qed neċessarjament jikkollaboraw ma 'oħrajn, 605 00:29:22,650 --> 00:29:24,030 jew jaħdmu f'ambjent maqsuma. 606 00:29:24,030 --> 00:29:25,050 >> Huma qed tip ta 'dar. 607 00:29:25,050 --> 00:29:25,910 Forsi huwa tard bil-lejl. 608 00:29:25,910 --> 00:29:28,190 Huma qed jippruvaw figura xi bug fil-kodiċi tagħhom. 609 00:29:28,190 --> 00:29:29,330 U dawn qed biss ma tara dan. 610 00:29:29,330 --> 00:29:30,329 >> U hemm l-ebda roommate. 611 00:29:30,329 --> 00:29:31,250 M'hemm l-ebda TF. 612 00:29:31,250 --> 00:29:32,680 M'hemm l-ebda AI madwar. 613 00:29:32,680 --> 00:29:36,440 Kull ma għandek fuq il-blata tagħhom hija din ducky gomma ftit. 614 00:29:36,440 --> 00:29:39,030 >> U hekk debugging papra tal-gomma huwa biss din l-istedina 615 00:29:39,030 --> 00:29:42,780 biex jaħsbu ta 'xi ħaġa bħala iblah kif dan bħala kreatura reali, 616 00:29:42,780 --> 00:29:46,940 u fil-fatt jimxu permezz-kodiċi tiegħek verbalment biex dan l-oġġett inanimate. 617 00:29:46,940 --> 00:29:49,230 Allura, per eżempju, jekk dan huwa eżempju tiegħi here-- 618 00:29:49,230 --> 00:29:52,470 u jfakkru li aktar kmieni il-problema kien dan, 619 00:29:52,470 --> 00:29:58,140 jekk jien tħassar din l-ewwel linja ta 'kodiċi, u jien jimxi 'l quddiem u jagħmlu Buggy 0 darb'oħra, 620 00:29:58,140 --> 00:30:01,220 ifakkar li kelli dawn messaġġi ta 'żball hawn. 621 00:30:01,220 --> 00:30:05,997 Allura l-idea hawnhekk, redikola għalkemm I jħossu fil-mument tagħmel dan b'mod pubbliku, 622 00:30:05,997 --> 00:30:06,580 huwa dan l-iżball. 623 00:30:06,580 --> 00:30:10,910 >> OK, hekk problema tiegħi hija li stajt impliċitament iddikjarat funzjoni librerija. 624 00:30:10,910 --> 00:30:12,610 U dik il-funzjoni librerija hija printf. 625 00:30:12,610 --> 00:30:15,290 Declare-- OK, niddikjara tfakkarni ta 'prototipi. 626 00:30:15,290 --> 00:30:18,930 >> Dak ifisser I-ħtieġa li fil-fatt tgħid il-kumpilatur minn qabel liema 627 00:30:18,930 --> 00:30:19,980 il-funzjoni Dehra. 628 00:30:19,980 --> 00:30:20,930 Stenna minuta. 629 00:30:20,930 --> 00:30:23,580 I ma kellhomx io.h. istandard 630 00:30:23,580 --> 00:30:24,530 Grazzi ħafna. 631 00:30:24,530 --> 00:30:27,330 >> Hekk biss dan il-proċess of-- inti m'għandhomx bżonn li fil-fatt ikollhom papri. 632 00:30:27,330 --> 00:30:29,819 Iżda din l-idea tal-mixi lilek innifsek permezz-kodiċi tiegħek stess 633 00:30:29,819 --> 00:30:31,610 sabiex inti anki tisma lilek innifsek, sabiex inti 634 00:30:31,610 --> 00:30:35,620 tirrealizza ommissjonijiet tiegħek stess rimarki, huwa ġeneralment l-idea. 635 00:30:35,620 --> 00:30:38,910 >> U, forsi aktar loġikament, mhux hekk ħafna ma 'li wieħed iżda l involut aktar 636 00:30:38,910 --> 00:30:44,220 Eżempju aħna biss għamlet fil 3.c Buggy, inti tista 'timxi lilek innifsek permezz ta' dan 637 00:30:44,220 --> 00:30:45,310 kif ġej. 638 00:30:45,310 --> 00:30:49,190 Allura kull dritt, gomma ducky, DDB, jekk inti se. 639 00:30:49,190 --> 00:30:52,350 Hawnhekk għandna fil-funzjoni prinċipali tiegħi, Jien ssejjaħ nikseb int negattiv. 640 00:30:52,350 --> 00:30:54,660 >> U jiena jkollna l-valur tar-ritorn. 641 00:30:54,660 --> 00:31:00,410 Jien maħżuna fuq in-naħa tax-xellug fuq il-linja 8 fil-varjabbli imsejjaħ i. 642 00:31:00,410 --> 00:31:02,380 OK, iżda stenna, kif għamlet li nikseb dak il-valur? 643 00:31:02,380 --> 00:31:04,130 Let me ħarsa lejn il-funzjoni fil-linja 12. 644 00:31:04,130 --> 00:31:05,760 >> F'konformità 12, aħna għandna nikseb int negattiv. 645 00:31:05,760 --> 00:31:08,190 Ma tieħu xi inputs, ma jirritorna l int, OK. 646 00:31:08,190 --> 00:31:10,929 Niddikjara fuq il-linja 14 n varjabbli. 647 00:31:10,929 --> 00:31:12,220 Huwa ser taħżen numru sħiħ. 648 00:31:12,220 --> 00:31:13,760 Dak hu li nixtieq. 649 00:31:13,760 --> 00:31:18,480 >> Hekk ukoll dan li ġej waqt li n is-- let lili jneħħu dak l-jiffissaw I diġà għamlu. 650 00:31:18,480 --> 00:31:22,710 Għalhekk, filwaqt li n hija akbar minn 0, jistampa n jiġifieri, OK. 651 00:31:22,710 --> 00:31:25,170 U mbagħad sejħa nikseb int maħżuna n. 652 00:31:25,170 --> 00:31:30,160 U mbagħad tiċċekkja jekk n hija 0, n huwa not-- hemm hu. 653 00:31:30,160 --> 00:31:31,910 Allura, għal darb'oħra, inti ma bżonn l-papra attwali. 654 00:31:31,910 --> 00:31:35,650 Iżda biss mixi lilek innifsek permezz kodiċi tiegħek bħala eżerċizzju intellettwali 655 00:31:35,650 --> 00:31:37,720 spiss ser jgħinek jirrealizzaw x'inhu għaddej, 656 00:31:37,720 --> 00:31:41,170 għall-kuntrarju biss tagħmel xi ħaġa bħal dan, tluq fil-iskrin, 657 00:31:41,170 --> 00:31:43,720 u ma jitkellem lilek innifsek permezz dan, li huwa onestament ma 658 00:31:43,720 --> 00:31:46,270 kważi bħala teknika effettiva. 659 00:31:46,270 --> 00:31:48,620 Allura hemm ikollok, l- għadd ta 'tekniki differenti 660 00:31:48,620 --> 00:31:52,102 għall-fatt debugging kodiċi tiegħek u s-sejba tort, li kollha 661 00:31:52,102 --> 00:31:54,810 għandhom ikunu għodod toolkit tiegħek hekk li int mhux tard bil-lejl, 662 00:31:54,810 --> 00:31:57,660 speċjalment, int fil-dining swali, jew fil-ħinijiet tal-uffiċċju, 663 00:31:57,660 --> 00:32:00,368 banging ras tiegħek kontra l- ħajt, jippruvaw isolvu xi problema. 664 00:32:00,368 --> 00:32:02,020 Tirrealizza li hemm għodda tas-software. 665 00:32:02,020 --> 00:32:03,720 Hemm għodod papri tal-gomma. 666 00:32:03,720 --> 00:32:09,630 U hemm persunal kollu ta ' appoġġ stennija għal jagħtu daqqa t'id. 667 00:32:09,630 --> 00:32:13,120 >> Allura issa, kelma fuq il-problema settijiet, u fuq dak li aħna qed jittamaw li inti 668 00:32:13,120 --> 00:32:15,620 toħroġ minnhom, u kif immorru madwar tevalwa. 669 00:32:15,620 --> 00:32:17,680 Per sillabu tal-kors, il- settijiet problema CS50 s 670 00:32:17,680 --> 00:32:22,320 huma evalwati fuq erba 'assi primarji, sabiex li speak-- ambitu, korrettezza, disinn, 671 00:32:22,320 --> 00:32:23,060 u stil. 672 00:32:23,060 --> 00:32:25,910 U l-ambitu eżatt tirreferi għal kemm tal-biċċa usted bitten off? 673 00:32:25,910 --> 00:32:28,080 Kemm ta 'problema usted ppruvaw? 674 00:32:28,080 --> 00:32:30,110 Liema livell ta 'sforz usted manifestat? 675 00:32:30,110 --> 00:32:35,750 >> Korrettezza hija, ma x-xogħol programm kif huwa suppost li kull speċifikazzjoni CS50 676 00:32:35,750 --> 00:32:38,640 meta inti tipprovdi ċertu dħul jew ċerti produzzjonijiet li jkunu ġejjin lura? 677 00:32:38,640 --> 00:32:41,130 Disinn huwa l-aktar suġġettiva minnhom. 678 00:32:41,130 --> 00:32:43,360 U huwa l-waħda li se jieħdu l-itwal biex jitgħallmu 679 00:32:43,360 --> 00:32:47,220 u l-itwal biex jgħallmu, fil safejn jeħodna għall- 680 00:32:47,220 --> 00:32:49,530 kemm ukoll bil-miktub huwa kodiċi tiegħek? 681 00:32:49,530 --> 00:32:52,920 >> Hija ħaġa waħda li biss jistampaw il-korretta riżultati jew jirritorna l-valuri dritt. 682 00:32:52,920 --> 00:32:55,400 Imma inti tagħmel dan bħala effiċjenti possibbli? 683 00:32:55,400 --> 00:32:58,210 Inti tagħmel dan firda u conquer, jew binarja 684 00:32:58,210 --> 00:33:01,500 tfittxija kif aħna ser malajr tara li għamilna ġimgħatejn ilu mal-ktieb tat-telefon? 685 00:33:01,500 --> 00:33:04,670 Hemm modi aħjar biex isolvu l- problema milli għandek bħalissa għandhom hawn? 686 00:33:04,670 --> 00:33:06,380 C'est opportunità għal disinn aħjar. 687 00:33:06,380 --> 00:33:08,530 >> U allura style-- kif pjuttost huwa kodiċi tiegħek? 688 00:33:08,530 --> 00:33:12,370 Int ser ikollok avviż li jien pretty partikolari dwar indenting kodiċi tiegħi, 689 00:33:12,370 --> 00:33:15,300 u l-iżgurar varjabbli tiegħi huma raġonevolment msemmija. n, 690 00:33:15,300 --> 00:33:19,660 waqt qasir, huwa l-isem tajjeb għal numru, I għal numru sħiħ għadd, 691 00:33:19,660 --> 00:33:20,727 i għal string. 692 00:33:20,727 --> 00:33:22,560 U li jista 'jkollna itwal varjabbli ismijiet stil. 693 00:33:22,560 --> 00:33:25,500 Style hija kemm tajba ma kodiċi tiegħek ħarsa? 694 00:33:25,500 --> 00:33:26,600 U kif jista 'jinqara huwa? 695 00:33:26,600 --> 00:33:29,650 >> U maż-żmien, liema TAs tiegħek u TFS se jagħmlu fil-kors 696 00:33:29,650 --> 00:33:31,870 huwa jipprovdi inti ma 'dik tip ta 'rispons kwalitattiv 697 00:33:31,870 --> 00:33:34,330 hekk li tikseb aħjar lejn dawk l-aspetti varji. 698 00:33:34,330 --> 00:33:37,510 U f'termini ta 'kif aħna jevalwaw kull wieħed minn dawn l-assi, 699 00:33:37,510 --> 00:33:40,080 huwa tipikament bi ftit ħafna bramel sabiex inti, ġeneralment, 700 00:33:40,080 --> 00:33:41,680 jiksbu sens ta 'kemm inti qed isir. 701 00:33:41,680 --> 00:33:45,680 U, tabilħaqq, jekk inti tirċievi punteġġ fuq kwalunkwe minn dawn korrettezza axes--, disinn 702 00:33:45,680 --> 00:33:49,659 u stil especially-- dak in-numru ġeneralment ikun bejn 1 u 5. 703 00:33:49,659 --> 00:33:52,450 U, litteralment, jekk int jkollna 3 fiż-bidu tas-semestru, 704 00:33:52,450 --> 00:33:53,977 din hija ħaġa tajba ħafna. 705 00:33:53,977 --> 00:33:55,810 Dan ifisser hemm għadu lok għal titjib, 706 00:33:55,810 --> 00:33:58,490 li inti tama fil teħid ta 'klassi għall-ewwel darba. 707 00:33:58,490 --> 00:34:01,820 Hemm nisperaw xi ftit ta 'limitu li int jaspiraw li jintlaħaq. 708 00:34:01,820 --> 00:34:03,970 U hekk jkollna 3 dwar -biċċiet kmieni, 709 00:34:03,970 --> 00:34:06,550 jekk mhux xi 2 u 4, il- huwa, tabilħaqq, ħaġa tajba. 710 00:34:06,550 --> 00:34:08,880 Huwa tajjeb fil-firxa, ukoll fi ħdan l-aspettattivi. 711 00:34:08,880 --> 00:34:11,421 >> U jekk moħħok huwa tlielaq, stenna minuta, tlieta minn ħamsa. 712 00:34:11,421 --> 00:34:12,620 Li verament 6 minn 10. 713 00:34:12,620 --> 00:34:13,560 C'est 60%. 714 00:34:13,560 --> 00:34:14,830 Alla tiegħi, dan huwa l F. 715 00:34:14,830 --> 00:34:15,870 >> Mhuwiex. 716 00:34:15,870 --> 00:34:17,600 Mhuwiex, fil-fatt, f'dak. 717 00:34:17,600 --> 00:34:22,710 Pjuttost, huwa opportunità biex ittejjeb matul il-kors tas-semestru. 718 00:34:22,710 --> 00:34:25,580 U jekk int jkollna xi Poors, dawn huma opportunità 719 00:34:25,580 --> 00:34:29,199 biex jieħdu vantaġġ ta 'ħinijiet tal-uffiċċju, ċertament sezzjonijiet u riżorsi oħra. 720 00:34:29,199 --> 00:34:32,840 >> Aħjar hija opportunità, tassew, biex ikunu kburin eżatt kemm inti ħadthom 721 00:34:32,840 --> 00:34:34,520 jaqgħu matul il-kors tas-semestru. 722 00:34:34,520 --> 00:34:38,199 Allura do jirrealizzaw, jekk xejn inkella, tlieta hija tajba. 723 00:34:38,199 --> 00:34:40,179 U dan jippermetti lok għal tkabbir matul iż-żmien. 724 00:34:40,179 --> 00:34:43,090 >> Kif dawk assi huma ppeżata, realistikament int 725 00:34:43,090 --> 00:34:46,745 se jqattgħu ħafna mill-ħin tiegħek jkollna affarijiet li x-xogħol, aħseb u ara kif suppost. 726 00:34:46,745 --> 00:34:49,120 U hekk korrettezza tendenza li jiġu peżati l-aktar, kif ma ' 727 00:34:49,120 --> 00:34:51,360 dan il-fattur multiplikattiv ta 'tlieta. 728 00:34:51,360 --> 00:34:54,659 Disinn huwa importanti wkoll, iżda xi ħaġa li inti ma neċessarjament 729 00:34:54,659 --> 00:34:58,220 jonfqu kollha ta 'dawk sigħat fuq tipprova tikseb affarijiet biss għax-xogħol. 730 00:34:58,220 --> 00:35:00,019 >> U għalhekk huwa mwieżna ftit aktar ħafif. 731 00:35:00,019 --> 00:35:01,560 U allura l-istil hija mtaqqla l-inqas. 732 00:35:01,560 --> 00:35:03,710 Anki jekk huwa mhux inqas importanti fundamentalment, 733 00:35:03,710 --> 00:35:05,990 huwa biss, forsi, l- eħfef ħaġa li tagħmel id-dritt, 734 00:35:05,990 --> 00:35:08,440 jimitaw l-eżempji aħna tagħmel fil lecture u t-taqsima, 735 00:35:08,440 --> 00:35:11,080 ma 'affarijiet nicely indentati, u ikkummenta, 736 00:35:11,080 --> 00:35:14,320 u oħrajn hija fost l-aktar faċli affarijiet li jagħmlu u tikseb id-dritt. 737 00:35:14,320 --> 00:35:16,960 Allura bħala tali, tirrealizza li dawn huma punti 738 00:35:16,960 --> 00:35:19,000 li huma relattivament faċli biex taqbadha. 739 00:35:19,000 --> 00:35:22,360 >> U issa kelma fuq this-- onestà akkademika. 740 00:35:22,360 --> 00:35:25,150 Allura kull l-tal-kors sillabu, se tara 741 00:35:25,150 --> 00:35:27,630 li l-kors għandha pjuttost Ftit tal-lingwa madwar dan. 742 00:35:27,630 --> 00:35:31,380 U l-kors jieħu l-kwistjoni tal- onestà akkademika pjuttost serjament. 743 00:35:31,380 --> 00:35:33,450 >> Għandna l-distinzjoni, għall-aħjar jew għall-agħar, 744 00:35:33,450 --> 00:35:36,570 li bagħat kull sena aktar studenti għal azzjoni dixxiplinarja 745 00:35:36,570 --> 00:35:39,670 minn aktar xi oħra Naturalment, li jien konxju mid. 746 00:35:39,670 --> 00:35:42,580 Dan mhuwiex neċessarjament indikattiv tal-fatt 747 00:35:42,580 --> 00:35:46,340 li l-istudenti CS, jew studenti CS50, huma kwalunkwe inqas onesti minn klassi tiegħek. 748 00:35:46,340 --> 00:35:49,090 Iżda r-realtà li f'dan il- dinja, b'mod elettroniku, aħna biss 749 00:35:49,090 --> 00:35:50,990 għandhom teknoloġiku mezzi ta 'jidentifikaw dan. 750 00:35:50,990 --> 00:35:53,360 >> Huwa importanti għalina għal ġustizzja madwar l-klassi 751 00:35:53,360 --> 00:35:58,550 li nagħmlu jikxfu dan, u jgħollu il-kwistjoni meta naraw l-affarijiet. 752 00:35:58,550 --> 00:36:01,980 U biss li żebgħa stampa, u verament biex tgħin xi ħaġa bħal din sink fi, 753 00:36:01,980 --> 00:36:04,600 dawn huma l-għadd ta ' studenti matul l-aħħar 10 snin 754 00:36:04,600 --> 00:36:07,610 li kienu involuti f'xi kwistjonijiet bħal dawn ta 'onestà akkademika, 755 00:36:07,610 --> 00:36:10,990 b'xi 32 studenti minn waqgħa 2015, li 756 00:36:10,990 --> 00:36:13,760 jiġifieri li nagħmlu jieħdu il-kwistjoni bis-serjetà ħafna. 757 00:36:13,760 --> 00:36:18,380 U, finalment, dawn in-numri compose, aktar reċentement, madwar 3%, 4% jew hekk 758 00:36:18,380 --> 00:36:19,120 tal-klassi. 759 00:36:19,120 --> 00:36:25,220 >> Dan għall-maġġoranza super ta 'studenti jidher li l-linji huma ċari. 760 00:36:25,220 --> 00:36:27,940 Imma iżomm dan mind, b'mod partikolari tard 761 00:36:27,940 --> 00:36:32,080 bil-lejl meta tissara mal xi soluzzjoni għal sett problema, 762 00:36:32,080 --> 00:36:34,830 li jeżistu mekkaniżmi biex jinkiseb aħjar lilek innifsek 763 00:36:34,830 --> 00:36:37,870 appoġġ milli inti tista think, anki f'dak siegħa. 764 00:36:37,870 --> 00:36:40,514 Jirrealizzaw li meta nirċievu Sottomissjonijiet istudenti, aħna jaqsmu 765 00:36:40,514 --> 00:36:43,430 iqabblu kull sottomissjoni din is-sena kontra kull sottomissjoni aħħar sena, 766 00:36:43,430 --> 00:36:47,590 kontra kull sottomissjoni mill-2007, u peress li, tħares lejn, kif ukoll, 767 00:36:47,590 --> 00:36:49,931 kodiċi repożitorji onlajn, forums ta 'diskussjoni, siti tax-xogħol. 768 00:36:49,931 --> 00:36:51,806 U aħna isemmu dan, verament, kollha għall-fini 769 00:36:51,806 --> 00:36:56,040 tal-iżvelar sħiħ, li jekk xi ħadd ieħor jistgħu jsibuha online, 770 00:36:56,040 --> 00:36:57,880 ċertament, hekk nistgħu-kors. 771 00:36:57,880 --> 00:37:00,100 Imma, verament, l-ispirtu tal-kors jeħodna 772 00:37:00,100 --> 00:37:01,650 għal din il-klawsola fil-sillabu. 773 00:37:01,650 --> 00:37:03,670 Huwa verament huwa biss, ikun raġonevoli. 774 00:37:03,670 --> 00:37:06,680 >> U jekk kellna biex telabora fuq dan biss bi lingwa daqsxejn aktar, 775 00:37:06,680 --> 00:37:09,770 jirrealizzaw li l-essenza ta 'kulħadd xogħol li inti tissottometti lill dan il-kors 776 00:37:09,770 --> 00:37:10,954 għandu jkun tiegħek stess. 777 00:37:10,954 --> 00:37:13,870 Iżda f'dak il-, hemm ċertament opportunitajiet, u l-inkoraġġiment, 778 00:37:13,870 --> 00:37:17,300 u l-valur pedagoġiku fl iduru għall others-- myself, il TFS, il-CAs, 779 00:37:17,300 --> 00:37:20,760 l TAs, u oħrajn fil-klassi, għall-appoġġ, let ħbieb waħdu 780 00:37:20,760 --> 00:37:23,547 u roommates li studjaw KEFA u l-ipprogrammar qabel. 781 00:37:23,547 --> 00:37:25,130 U għalhekk hemm allowance għal dak. 782 00:37:25,130 --> 00:37:28,180 U r-regola ġenerali ta 'thumb huwa this-- meta jitolbu għall-għajnuna, 783 00:37:28,180 --> 00:37:31,470 inti tista 'turi kodiċi tiegħek lill-oħrajn, imma inti ma tista 'tara tagħhom. 784 00:37:31,470 --> 00:37:34,880 Għalhekk anki jekk int fid ħinijiet tal-uffiċċju, jew fis-sala D, jew x'imkien ieħor 785 00:37:34,880 --> 00:37:37,450 taħdem fuq xi sett biċċa, jaħdmu flimkien ma 'ħabib, li 786 00:37:37,450 --> 00:37:40,160 hija totalment multa, fl- aħħar tal-ġurnata tax-xogħol tiegħek 787 00:37:40,160 --> 00:37:43,034 għandhom finalment jappartjenu għal kull tal inti rispettivament, u mhux 788 00:37:43,034 --> 00:37:45,700 jkun xi sforz kollaborattiv, ħlief għall-proġett finali fejn 789 00:37:45,700 --> 00:37:47,410 huwa permess u inkoraġġit. 790 00:37:47,410 --> 00:37:49,830 >> Jirrealizzaw li jekk inti tissara ma 'xi ħaġa 791 00:37:49,830 --> 00:37:52,520 u ħabib tiegħek jiġri biss li tkun aħjar fuq dan allura int, 792 00:37:52,520 --> 00:37:55,130 jew aħjar fil din il-problema milli suppost, jew ftit aktar il-bogħod il quddiem milli suppost, 793 00:37:55,130 --> 00:37:57,330 huwa totalment raġonevoli li jduru lill ħabib tiegħek u jgħidu, ħej, 794 00:37:57,330 --> 00:38:00,480 do you f'moħħu tħares lejn kodiċi tiegħi hawnhekk, lili tgħin post dak kwistjoni tiegħi huwa? 795 00:38:00,480 --> 00:38:03,760 U, wieħed jittama, fil- interess tal-valur pedagoġiku 796 00:38:03,760 --> 00:38:07,040 li l-ħabib ma biss jgħidu, oh, tagħmel dan, iżda pjuttost, 797 00:38:07,040 --> 00:38:09,917 x'qed nieqes fuq il-linja 6, jew xi ħaġa bħal dik? 798 00:38:09,917 --> 00:38:12,000 Iżda l-soluzzjoni mhix għall-ħabib li jmiss lilek 799 00:38:12,000 --> 00:38:15,617 ngħid, oh, ukoll, hawnhekk, let me iġbed dan up, u juru soluzzjoni tiegħi lilek. 800 00:38:15,617 --> 00:38:16,450 Allura li huwa l-linja. 801 00:38:16,450 --> 00:38:18,670 Inti juru kodiċi tiegħek biex oħrajn, iżda inti ma tistax 802 00:38:18,670 --> 00:38:22,350 fehma tagħhom, bla ħsara għall-oħra restrizzjonijiet fl sillabu tal-kors tal. 803 00:38:22,350 --> 00:38:24,760 >> Allura wieħed iżomm f'moħħu dan il hekk imsejħa klawsola dispjaċir 804 00:38:24,760 --> 00:38:27,560 fil sillabu tal-kors kif ukoll, li jekk inti jikkommettu xi att li 805 00:38:27,560 --> 00:38:30,476 mhuwiex raġonevoli, iżda jiġbed l l-attenzjoni tal-kapijiet tal-kors tal- 806 00:38:30,476 --> 00:38:34,240 fi żmien 72 siegħa, il-kors jista 'jimponi sanzjonijiet lokali li 807 00:38:34,240 --> 00:38:37,380 jistgħu jinkludu mhux sodisfaċenti jew nuqqas grad għax-xogħol sottomess. 808 00:38:37,380 --> 00:38:41,410 Iżda l-kors mhux se jirreferi l- kwistjoni għal aktar azzjoni dixxiplinari, 809 00:38:41,410 --> 00:38:43,010 ħlief f'każijiet ta 'atti ripetuti. 810 00:38:43,010 --> 00:38:46,632 Fi kliem ieħor, jekk inti tagħmel xi stupid, bil-lejl speċjalment tard, id-deċiżjoni 811 00:38:46,632 --> 00:38:49,340 li l-għada filgħodu jew jumejn aktar tard, tqum u tirrealizza, 812 00:38:49,340 --> 00:38:50,870 dak li kien I ħsieb? 813 00:38:50,870 --> 00:38:53,890 Inti fil CS50 jkollhom żbokk għall-iffissar dik il-problema 814 00:38:53,890 --> 00:38:57,170 u li tkun proprjetarja sa dan, sabiex inkunu se jissodisfaw inti fin-nofs u jittrattaw 815 00:38:57,170 --> 00:39:01,500 magħha fil-kwistjoni li huwa kemm edukattivi u ta 'valur għalik, 816 00:39:01,500 --> 00:39:04,200 iżda xorta punittivi b'xi mod. 817 00:39:04,200 --> 00:39:08,590 U issa, li jieħdu l-tarf off, dan. 818 00:39:08,590 --> 00:39:10,570 >> [Daqq video] 819 00:39:10,570 --> 00:39:13,540 >> [Ddoqq il-mużika] 820 00:39:13,540 --> 00:39:58,090 821 00:39:58,090 --> 00:39:58,866 >> [END Daqq] 822 00:39:58,866 --> 00:40:00,490 DAVID J. Malan: Kull dritt, aħna huma lura. 823 00:40:00,490 --> 00:40:03,680 U issa nħarsu lejn wieħed mill- ewwel ta 'oqsma tagħna fid-dinja reali 824 00:40:03,680 --> 00:40:08,720 fil CS50, l-arti tal-kriptografija, l-arti ta 'jibgħat u jirċievi 825 00:40:08,720 --> 00:40:11,840 messaġġi sigrieti, encrypted Messaġġi jekk inti se, 826 00:40:11,840 --> 00:40:17,060 li jistgħu jiġu deciphered biss jekk ikollok xi ingredjent ewlieni li l-mittent ikollu 827 00:40:17,060 --> 00:40:18,030 kif ukoll. 828 00:40:18,030 --> 00:40:22,120 Allura biex jimmotivaw dan aħna ser tieħu ħarsa lejn din il-ħaġa hawn, 829 00:40:22,120 --> 00:40:26,750 li huwa eżempju ta ' ċirku decoder sigriet li 830 00:40:26,750 --> 00:40:34,042 jistgħu jintużaw biex insemmu dak messaġġ sigriet fil-fatt hu. 831 00:40:34,042 --> 00:40:35,750 Fil-fatt, lura fil- jum fl-iskola grad, 832 00:40:35,750 --> 00:40:38,787 jekk inti qatt mibgħut messaġġi sigrieti biex xi ħabib jew xi tgħaffiġ fil-klassi, 833 00:40:38,787 --> 00:40:40,620 inti jista 'jkollok ħasbu inti kienu qed għaqlija 834 00:40:40,620 --> 00:40:46,530 billi fuq biċċa tiegħek ta jinbidlu karta, simili, A sa B, u B sa C, u Ċ sa D, 835 00:40:46,530 --> 00:40:47,590 u oħrajn. 836 00:40:47,590 --> 00:40:50,300 Imma inti kienu fil-fatt encrypting informazzjoni tiegħek, anke 837 00:40:50,300 --> 00:40:53,300 kieku kien ftit trivjali, ma kienx li diffiċli biex l-għalliem li tirrealizza, 838 00:40:53,300 --> 00:40:55,675 ukoll, jekk inti biss bidla B sa A u Ċ sa B, 839 00:40:55,675 --> 00:40:57,550 inti fil-fatt figura dak il-messaġġ kien, 840 00:40:57,550 --> 00:40:59,700 imma inti kienu fil ċċifrar informazzjoni. 841 00:40:59,700 --> 00:41:03,420 >> You kienu biss tagħmel dan sempliċement, ferm simili Ralphie hawn 842 00:41:03,420 --> 00:41:07,934 fil-film famuż li jilgħab pretty ħafna ad nauseum kull xitwa. 843 00:41:07,934 --> 00:41:08,600 [Daqq video] 844 00:41:08,600 --> 00:41:11,180 -Kun Magħruf li dak kollu li Ralph Parker huwa hawnhekk 845 00:41:11,180 --> 00:41:14,070 maħtur membru tal-Little Orfni Annie Sigriet Ċirku 846 00:41:14,070 --> 00:41:17,700 u huwa intitolat għall-unuri kollha u l-benefiċċji li jseħħu għalihom. 847 00:41:17,700 --> 00:41:24,340 >> -Signed, Little Orfni Annie, Pierre Andre, bil-linka iffirmat kontro. 848 00:41:24,340 --> 00:41:27,160 Unuri u l-benefiċċji, diġà fl-età ta 'disa. 849 00:41:27,160 --> 00:41:30,490 850 00:41:30,490 --> 00:41:31,825 >> [Shouting] 851 00:41:31,825 --> 00:41:33,750 852 00:41:33,750 --> 00:41:34,250 -Ejja. 853 00:41:34,250 --> 00:41:35,210 Ejja nneħħu fuq magħha. 854 00:41:35,210 --> 00:41:39,530 I m'għandhomx bżonn kollha li jazz dwar kuntrabandisti u pirati. 855 00:41:39,530 --> 00:41:41,660 >> għada bil-lejl -Listen għall l-avventura tikkonkludi 856 00:41:41,660 --> 00:41:43,880 tal-vapur pirata iswed. 857 00:41:43,880 --> 00:41:46,650 Issa, wasal iż-żmien għal Messaġġ sigriet Annie 858 00:41:46,650 --> 00:41:49,840 għalik membri tal-Ċirku Sigriet. 859 00:41:49,840 --> 00:41:53,570 Ftakar, gidjien, huma biss il-membri ta Secret Ċirku Annie 860 00:41:53,570 --> 00:41:56,140 jistgħu jiddekowdja-messaġġ sigriet Annie. 861 00:41:56,140 --> 00:42:00,340 >> Ftakar, Annie jiddependi fuq int. 862 00:42:00,340 --> 00:42:02,880 Set labar tiegħek lil B2. 863 00:42:02,880 --> 00:42:05,230 Hawn hu l-messaġġ. 864 00:42:05,230 --> 00:42:06,090 12, 11-- 865 00:42:06,090 --> 00:42:10,250 >> -I Am fl-ewwel laqgħa sigrieta tiegħi. 866 00:42:10,250 --> 00:42:13,890 >> -14, 11, 18, 16. 867 00:42:13,890 --> 00:42:15,780 >> -Pierre Kien fil tonight vuċi kbira. 868 00:42:15,780 --> 00:42:19,000 I tista 'tgħid li s tonight Messaġġ kien verament importanti. 869 00:42:19,000 --> 00:42:22,694 >> -3, 25, li l-messaġġ minn Annie lilha nfisha. 870 00:42:22,694 --> 00:42:23,860 Ftakar, ma tgħid xi ħadd. 871 00:42:23,860 --> 00:42:28,760 872 00:42:28,760 --> 00:42:32,930 >> -90 Sekondi wara, jien fl-uniku kamra fid-dar fejn tifel ta 'disa 873 00:42:32,930 --> 00:42:37,040 jista ipoġġu fil-privatezza u jiddekowdja. 874 00:42:37,040 --> 00:42:39,730 Ah, B! 875 00:42:39,730 --> 00:42:42,360 I marru għall-ieħor, E. 876 00:42:42,360 --> 00:42:44,520 >> L-ewwel kelma hija tkun. 877 00:42:44,520 --> 00:42:49,032 S, kien ġejjin faċli issa, U, 25-- 878 00:42:49,032 --> 00:42:51,733 >> -OH, Jaqgħu fuq, Ralphie, I gotta go! 879 00:42:51,733 --> 00:42:53,688 >> -I'll Jkun dritt isfel, Ma! 880 00:42:53,688 --> 00:42:54,188 Gee whiz! 881 00:42:54,188 --> 00:42:58,116 882 00:42:58,116 --> 00:43:04,060 >> -T, O, kun żgur to-- kun żgur li dak li? 883 00:43:04,060 --> 00:43:05,970 Liema kienet Little Orfni Annie nipprova ngħid? 884 00:43:05,970 --> 00:43:07,264 Kun żgur li dak? 885 00:43:07,264 --> 00:43:09,634 >> -Ralphie, Andy s'est li go, ser ikollok jogħġbok toħroġ? 886 00:43:09,634 --> 00:43:10,480 >> dritt -kull, Ma! 887 00:43:10,480 --> 00:43:12,880 I ser tkun dritt out! 888 00:43:12,880 --> 00:43:14,550 >> -I Kien jersqu qrib issa. 889 00:43:14,550 --> 00:43:16,620 It-tensjoni kienet diżappuntanti. 890 00:43:16,620 --> 00:43:17,720 Liema kienet? 891 00:43:17,720 --> 00:43:20,170 Il-destin tal-pjaneta jista hang fil-bilanċ. 892 00:43:20,170 --> 00:43:20,670 >> -Ralphie! 893 00:43:20,670 --> 00:43:23,170 gotta Andy go! 894 00:43:23,170 --> 00:43:26,890 >> -I'll Jkun tajjeb, għal biki out loud! 895 00:43:26,890 --> 00:43:32,680 >> -Almost Hemm, swaba tiegħi taru, my mind kien nassa azzar, kull pori ivvibrat. 896 00:43:32,680 --> 00:43:37,198 Kien kważi ċar, iva, iva, iva. 897 00:43:37,198 --> 00:43:43,091 >> -Kun Żgur li tixrob Ovaltine tiegħek. 898 00:43:43,091 --> 00:43:43,590 Ovaltine? 899 00:43:43,590 --> 00:43:48,160 900 00:43:48,160 --> 00:43:49,430 A kummerċjali crummy? 901 00:43:49,430 --> 00:43:53,046 902 00:43:53,046 --> 00:43:54,227 Tifel ta 'kelba. 903 00:43:54,227 --> 00:43:54,810 [END Daqq] 904 00:43:54,810 --> 00:43:57,390 DAVID J. Malan: OK, hekk li kien 'il bogħod ħafna 905 00:43:57,390 --> 00:44:00,660 ta 'introduzzjoni kriptografija, u Ovaltine wkoll. 906 00:44:00,660 --> 00:44:04,470 Fil-fatt, minn din il reklam qodma hawnhekk, għaliex hija Ovaltine hekk tajjeb? 907 00:44:04,470 --> 00:44:09,470 Huwa estrazzjoni konċentrat ta 'misjura xgħir, ħalib pur baqra krema, il 908 00:44:09,470 --> 00:44:14,360 u speċjalment ippreparati kawkaw, flimkien bil fosfatidi naturali u vitamini. 909 00:44:14,360 --> 00:44:18,240 Hija huwa msaħħaħ aktar bl vitamini addizzjonali B u D, yum. 910 00:44:18,240 --> 00:44:21,600 U inti xorta tista 'tikseb dan, apparentement, fuq Amazon, kif għamilna hawn. 911 00:44:21,600 --> 00:44:24,810 >> Iżda l-motivazzjoni hawn kien li jintroduċu kriptografija, b'mod speċifiku 912 00:44:24,810 --> 00:44:28,340 tip ta kriptografija magħruf kif kriptografija ċavetta sigrieti. 913 00:44:28,340 --> 00:44:34,284 U kif tissuġġerixxi l-isem, il-sħiħ sigurtà ta 'sistema kripto sigrieti ewlenin, 914 00:44:34,284 --> 00:44:36,200 jekk inti se, metodoloġija għal ftit scrambling 915 00:44:36,200 --> 00:44:40,960 informazzjoni bejn żewġ persuni, huwa li biss il-mittent u biss l-benefiċjarju 916 00:44:40,960 --> 00:44:46,980 jafu key-- sigriet xi valur, xi frażi sigrieta, xi numru sigriet, li 917 00:44:46,980 --> 00:44:50,660 jippermettilhom li kemm kriptaġġ u decrypt informazzjoni. 918 00:44:50,660 --> 00:44:53,470 U kriptografija, tassew, huwa biss dan mill-ġimgħa 0. 919 00:44:53,470 --> 00:44:56,715 >> Din hija problema fejn hemm inputs, bħall-messaġġ attwali bl-Ingliż 920 00:44:56,715 --> 00:44:59,340 jew kwalunkwe lingwa li inti trid tibgħat lil xi ħadd fil-klassi, 921 00:44:59,340 --> 00:45:00,580 jew madwar l-internet. 922 00:45:00,580 --> 00:45:03,840 Hemm xi output, li se li jkun il-messaġġ scrambled li inti 923 00:45:03,840 --> 00:45:05,250 jridu li l-benefiċjarju li jirċievi. 924 00:45:05,250 --> 00:45:07,405 U anki jekk xi ħadd fil- nofs jirċeviha wisq, 925 00:45:07,405 --> 00:45:09,780 inti ma tridx li neċessarjament tkun tista 'decrypt dan, 926 00:45:09,780 --> 00:45:12,840 minħabba ġewwa ta 'dan il- kaxxa s-sewda, jew algoritmu, 927 00:45:12,840 --> 00:45:17,650 hija xi mekkaniżmu, xi pass pass istruzzjonijiet, għat-teħid li l-kontribut 928 00:45:17,650 --> 00:45:20,710 u dan jinbidel il produzzjoni, fi nisperaw b'mod sigur. 929 00:45:20,710 --> 00:45:23,640 >> U, fil-fatt, hemm xi vokabularju f'din id-dinja kif ġej. 930 00:45:23,640 --> 00:45:26,100 test sempliċi hija l-kelma ta ' xjentist kompjuter ikun 931 00:45:26,100 --> 00:45:28,449 jużaw biex jiddeskrivu l-input messaġġ, bħall-Ingliż 932 00:45:28,449 --> 00:45:31,240 jew kwalunkwe lingwa li attwalment trid tibgħat lill xi bniedem ieħor. 933 00:45:31,240 --> 00:45:35,450 U allura l-ciphertext huwa l-ġirja għall-enciphered, jew encrypted, 934 00:45:35,450 --> 00:45:36,520 Verżjoni tiegħu. 935 00:45:36,520 --> 00:45:38,750 >> Iżda hemm ingredjent wieħed ieħor hawnhekk. 936 00:45:38,750 --> 00:45:43,200 Hemm wieħed dħul ieħor għall kriptografija ċavetta sigriet. 937 00:45:43,200 --> 00:45:45,200 U li huwa l-muftieħ innifsu, li hija, b'mod ġenerali, 938 00:45:45,200 --> 00:45:48,930 kif Ser naraw, numru, jew ittra, jew kelma, ikun x'ikun 939 00:45:48,930 --> 00:45:51,980 l-algoritmu huwa attwalment jistenna. 940 00:45:51,980 --> 00:45:53,870 >> U kif taħseb li decrypt informazzjoni? 941 00:45:53,870 --> 00:45:55,110 Kif inti unscramble dan? 942 00:45:55,110 --> 00:45:57,950 Ukoll, inti biss jitwaqqaf il- outputs u l-inputs. 943 00:45:57,950 --> 00:46:00,900 >> Fi kliem ieħor, ladarba xi ħadd jirċievi messaġġ encrypted tiegħek, 944 00:46:00,900 --> 00:46:03,740 hu jew hi sempliċiment li tkun taf li istess ċavetta. 945 00:46:03,740 --> 00:46:05,700 Huma jkunu rċevew l ciphertext. 946 00:46:05,700 --> 00:46:09,530 U minn fejn jitwaħħal dawn iż-żewġ inputs fis-sistema kripto, 947 00:46:09,530 --> 00:46:14,260 l-algoritmu, din il-kaxxa iswed, barra għandhom jidħlu l-plaintext oriġinali. 948 00:46:14,260 --> 00:46:17,830 U għalhekk dak l-livell għoli ħafna dawl ta 'dak kriptografija huwa attwalment 949 00:46:17,830 --> 00:46:18,590 kollha madwar. 950 00:46:18,590 --> 00:46:20,030 >> Mela ejja nikseb hemmhekk. 951 00:46:20,030 --> 00:46:22,700 Ejja issa nħarsu taħt il-barnuża ta 'xi ħaġa 952 00:46:22,700 --> 00:46:26,000 aħna kont qed tieħu għall mogħtija għall -ġimgħa li għaddiet, u għal din is-sessjoni 953 00:46:26,000 --> 00:46:27,629 here---sekwenza. 954 00:46:27,629 --> 00:46:30,295 A sensiela fl-aħħar tal-ġurnata huwa biss sekwenza ta 'karattri. 955 00:46:30,295 --> 00:46:33,610 >> Jista 'jkun dinji bonjour, jew bonjour Zamyla, jew ikun x'ikun. 956 00:46:33,610 --> 00:46:37,050 Imma dak ma jfissirx li jkun sekwenza ta 'karattri? 957 00:46:37,050 --> 00:46:41,520 Fil-fatt, il-librerija CS50 jagħti us tip ta 'data msejħa sekwenza. 958 00:46:41,520 --> 00:46:45,140 >> Iżda hemm attwalment l-ebda ħaġa bħal string fil C. 959 00:46:45,140 --> 00:46:49,450 Huwa verament huwa biss sekwenza ta ' karattru, karattru, karattri, 960 00:46:49,450 --> 00:46:52,180 karattru, lura, li lura, li lura, li lura, back ġewwa 961 00:46:52,180 --> 00:46:54,650 tal-memorja tal-kompjuter tiegħek, jew RAM. 962 00:46:54,650 --> 00:46:58,940 U aħna ser tħares aktar profonda fis dan fil- futur meta nħarsu lejn memorja innifsu, 963 00:46:58,940 --> 00:47:02,030 u l-utilizzazzjoni, u l- theddid li huma involuti. 964 00:47:02,030 --> 00:47:04,100 >> Imma ejja jikkunsidraw l-sekwenza Zamyla. 965 00:47:04,100 --> 00:47:07,480 Hekk biss l-isem tal il-bniedem hawn, Zamyla, 966 00:47:07,480 --> 00:47:12,030 li hija sekwenza ta ' karattri, Z-A-M-Y-L-A. 967 00:47:12,030 --> 00:47:16,020 U issa ejja nassumu li l-isem Zamyla tal qed jiġi maħżun ġewwa ta 'kompjuter 968 00:47:16,020 --> 00:47:16,880 programm. 969 00:47:16,880 --> 00:47:20,830 >> Ukoll, li inhi minħabba li għandna tkun kapaċi li tħares lejn dawk il-karattri 970 00:47:20,830 --> 00:47:21,590 individwalment. 971 00:47:21,590 --> 00:47:24,710 Hekk jien biss se tiġbed ftit kaxxa madwar Isem Zamyla hawn. 972 00:47:24,710 --> 00:47:31,580 U huwa l-każ fis-C li meta inti ikollhom string, bħall Zamyla-- u forsi 973 00:47:31,580 --> 00:47:34,940 li string wasal lura minn funzjoni bħal string nikseb, 974 00:47:34,940 --> 00:47:38,540 inti tista 'attwalment timmanipola karattru bil-karattru. 975 00:47:38,540 --> 00:47:42,070 >> Issa, dan huwa germane għall- konverżazzjoni fil-idejn, għax 976 00:47:42,070 --> 00:47:46,420 fil kriptografija jekk inti tixtieq li tibdel A sa B, u B sa C, u Ċ sa D, 977 00:47:46,420 --> 00:47:49,650 u oħrajn, inti jeħtieġ li tkun kapaċi li tħares lejn il-karattri individwali 978 00:47:49,650 --> 00:47:50,190 fi string. 979 00:47:50,190 --> 00:47:52,695 Inti jeħtieġ li tkun kapaċi li jibdlu l Z għal xi ħaġa oħra, lA 980 00:47:52,695 --> 00:47:55,280 għal xi ħaġa oħra, il-M li xi ħaġa oħra, u l-bqija. 981 00:47:55,280 --> 00:47:58,000 U għalhekk għandna bżonn mod, programmatically, hekk 982 00:47:58,000 --> 00:48:03,020 biex jitkellmu, f'C li tkun kapaċi li jibdlu u ħarsa lejn ittri individwali. 983 00:48:03,020 --> 00:48:05,690 U nistgħu nagħmlu dan kif ġej. 984 00:48:05,690 --> 00:48:08,340 >> Let me go ras lura fil IDE CS50. 985 00:48:08,340 --> 00:48:11,130 U let me imorru quddiem u toħloq fajl ġdid 986 00:48:11,130 --> 00:48:16,134 li jien ser sejħa dan string0 iż-żmien, bħala l-ewwel eżempju ta 'dan tagħna, dot ċ. 987 00:48:16,134 --> 00:48:18,300 U jien ser jimxi 'l quddiem u Whip up kif ġej. 988 00:48:18,300 --> 00:48:22,870 >> Allura jinkludu CS50.h, u mbagħad jinkludi io.h standard, 989 00:48:22,870 --> 00:48:25,990 li Jien kważi dejjem se tkun qed tuża fil-programmi tiegħi, għall-inqas 990 00:48:25,990 --> 00:48:26,780 inizjalment. 991 00:48:26,780 --> 00:48:32,180 int null prinċipali, u mbagħad fil hawn jien ser tagħmel kordi gets nikseb sekwenza. 992 00:48:32,180 --> 00:48:35,260 U mbagħad jien ser imorru quddiem u tagħmel dan. 993 00:48:35,260 --> 00:48:37,460 Irrid li jimxi 'l quddiem u, bħala kontroll sanità, 994 00:48:37,460 --> 00:48:43,607 biss jgħidu, bonjour, mija i, semi-colon, jagħmel sekwenza 0. 995 00:48:43,607 --> 00:48:44,690 UH oh, dak li ma nagħmel hawn? 996 00:48:44,690 --> 00:48:45,930 Oh, I ma plagg fil. 997 00:48:45,930 --> 00:48:48,120 Allura lezzjonijiet li tgħallmu, li ma kienx intenzjonali. 998 00:48:48,120 --> 00:48:52,480 >> Allura żball, aktar mija konverżjonijiet minn argumenti data. 999 00:48:52,480 --> 00:48:54,940 U dan huwa fejn, fil linja 7-- OK, so I jkollhom, 1000 00:48:54,940 --> 00:48:56,690 kwotazzjoni unquote, li sekwenza tiegħi għal printf. 1001 00:48:56,690 --> 00:48:58,151 Stajt ltqajna sinjal mija. 1002 00:48:58,151 --> 00:48:59,650 Imma jien nieqsa t-tieni argument. 1003 00:48:59,650 --> 00:49:03,190 >> Jien nieqsa l-virgola i, li I ma jkollhom eżempji preċedenti. 1004 00:49:03,190 --> 00:49:06,650 Allura opportunità tajba biex jiffissaw wieħed aktar żball, aċċidentalment. 1005 00:49:06,650 --> 00:49:09,950 U issa let me run string0, tip Zamyla. 1006 00:49:09,950 --> 00:49:10,970 OK, bonjour Zamyla. 1007 00:49:10,970 --> 00:49:14,144 >> Allura konna run dan it-tip ta 'programm drabi differenti ftit issa. 1008 00:49:14,144 --> 00:49:16,310 Imma ejja nagħmlu xi ħaġa ta ' ftit differenti dan iż-żmien. 1009 00:49:16,310 --> 00:49:19,450 Minflok biss istampar Zamyla tal isem sħiħ bl printf, 1010 00:49:19,450 --> 00:49:21,350 ejja tagħmel dan karattru minn karattru. 1011 00:49:21,350 --> 00:49:22,700 >> Jien ser tuża għall loop. 1012 00:49:22,700 --> 00:49:26,160 U jien ser jagħti lili nnifsi varjabbli għadd, imsejħa i. 1013 00:49:26,160 --> 00:49:33,530 U jien ser iżommu iterazzjoni, hekk Sakemm i huwa inqas mit-tul ta 's. 1014 00:49:33,530 --> 00:49:35,930 >> Jirriżulta, aħna ma tagħmel din l-aħħar darba, 1015 00:49:35,930 --> 00:49:39,100 li ċ tiġi flimkien ma ' funzjoni msejħa Stirling. 1016 00:49:39,100 --> 00:49:42,690 Lura fil-ġurnata, u b'mod ġenerali xorta meta jimplimentaw il-funzjonijiet, 1017 00:49:42,690 --> 00:49:45,405 bnedmin se spiss jagħżlu ħafna ismijiet konċiżi li tip ta 'ħoss 1018 00:49:45,405 --> 00:49:48,280 bħal dak li trid, anki jekk huwa nieqsa xi vokali ftit jew l-ittri. 1019 00:49:48,280 --> 00:49:50,660 Allura Stirling huwa l- isem ta 'funzjoni li 1020 00:49:50,660 --> 00:49:53,880 jieħu argument bejn parentesi li għandhom ikunu string. 1021 00:49:53,880 --> 00:49:56,910 U hija biss jirritorna numru sħiħ, it-tul ta 'dak sekwenza. 1022 00:49:56,910 --> 00:50:00,580 >> Allura dan għal loop fuq il-linja 7 va biex jibdew jingħaddu mill-i huwa ugwali 0. 1023 00:50:00,580 --> 00:50:02,530 Huwa ser inkrement i fuq kull iterazzjoni 1024 00:50:02,530 --> 00:50:04,350 b'1, kif aħna kont qed tagħmel għal xi ftit drabi. 1025 00:50:04,350 --> 00:50:06,780 Iżda li għaddej biex biss tagħmel dan il sal-punt 1026 00:50:06,780 --> 00:50:09,660 meta i huwa t-tul tas-sekwenza nnifisha. 1027 00:50:09,660 --> 00:50:14,520 >> Allura dan huwa mod ta ', finalment, iterazzjoni fuq il-karattri 1028 00:50:14,520 --> 00:50:17,430 fis-sekwenza kif jiġifieri ġej. 1029 00:50:17,430 --> 00:50:20,670 Jien ser jistampa mhux spag kollha, iżda fil-mija c, 1030 00:50:20,670 --> 00:50:22,860 karattru wieħed segwit minn linja ġdida. 1031 00:50:22,860 --> 00:50:24,880 U mbagħad jien ser jimxi 'l quddiem, u għandi bżonn 1032 00:50:24,880 --> 00:50:29,080 ngħid li nixtieq li jistampaw karattru ith ta 'i. 1033 00:50:29,080 --> 00:50:33,450 >> Mela jekk i huwa l-varjabbli li jindikaw l-indiċi tas-sekwenza, fejn 1034 00:50:33,450 --> 00:50:37,230 inti fiha, I jeħtieġu li jkunu kapaċi li jgħidu, agħti lili il-karattru ith ta 'i. 1035 00:50:37,230 --> 00:50:40,390 U ċ għandu mod ta 'kif isir dan ma 'parentesi kwadri. 1036 00:50:40,390 --> 00:50:43,679 Inti sempliċiment tgħid l-isem tal- spag, li f'dan il-każ huwa s. 1037 00:50:43,679 --> 00:50:46,970 Imbagħad inti tuża parentesi kwadri, li huma normalment eżatt fuq Ritorn tiegħek jew Ikteb 1038 00:50:46,970 --> 00:50:48,110 buttuna fuq it-tastiera. 1039 00:50:48,110 --> 00:50:52,410 U allura inti tpoġġi l-indiċi tal- karattru li inti tixtieq li jistampaw. 1040 00:50:52,410 --> 00:50:55,960 Allura l-indiċi se tkun number-- 0, jew 1, jew 2, jew 3, jew dot, 1041 00:50:55,960 --> 00:50:57,590 dot, dot, xi numru ieħor. 1042 00:50:57,590 --> 00:51:00,920 >> U aħna jiżgura li huwa għaddej biex jkun in-numru dritt, minħabba I 1043 00:51:00,920 --> 00:51:02,360 jibdew jingħaddu f'0. 1044 00:51:02,360 --> 00:51:07,020 U fil-kontumaċja, l-ewwel karattru fi string huwa billi konvenzjoni 0. 1045 00:51:07,020 --> 00:51:09,230 U t-tieni karattru huwa parentesi 1. 1046 00:51:09,230 --> 00:51:11,120 U t-tielet karattru jkun parentesi 2. 1047 00:51:11,120 --> 00:51:13,630 U inti ma tridx li jmorru wisq s'issa imma aħna mhux se għaliex aħna qed 1048 00:51:13,630 --> 00:51:17,780 ser biss inkrement i sakemm tirrappreżenta t-tul tas-sekwenza. 1049 00:51:17,780 --> 00:51:20,210 U f'liema punt, dan għal loop se tieqaf. 1050 00:51:20,210 --> 00:51:25,550 >> So let me go quddiem u jiffrankaw din il programm, u run jagħmlu sekwenza 0. 1051 00:51:25,550 --> 00:51:28,400 Imma jien invitat up. 1052 00:51:28,400 --> 00:51:35,390 Impliċitament tiddikjara funzjoni librerija Stirling tat-tip bħal din u such-- issa, 1053 00:51:35,390 --> 00:51:36,430 dan ħsejjes familjari. 1054 00:51:36,430 --> 00:51:37,440 Iżda mhux printf. 1055 00:51:37,440 --> 00:51:38,540 U mhuwiex jiksbu sekwenza. 1056 00:51:38,540 --> 00:51:40,480 >> I ma screw up fil -istess mod dan iż-żmien. 1057 00:51:40,480 --> 00:51:45,100 Iżda avviż stabbiliti hawn ftit isfel aktar, jinkludu l-string.h header, 1058 00:51:45,100 --> 00:51:47,210 espliċitament jipprovdi l dikjarazzjoni għal Stirling. 1059 00:51:47,210 --> 00:51:48,820 Allura fil-fatt hemm ħjiel fil hemmhekk. 1060 00:51:48,820 --> 00:51:51,670 >> U fil-fatt jirriżulta hemm ieħor fajl header 1061 00:51:51,670 --> 00:51:53,970 li konna mhux użati fil-klassi s'issa, iżda huwa 1062 00:51:53,970 --> 00:51:56,480 fost dawk disponibbli lilek, imsejħa string.h. 1063 00:51:56,480 --> 00:52:00,930 U f'dak il-fajl, string.h huwa Stirling ddikjarata. 1064 00:52:00,930 --> 00:52:05,220 So let me go quddiem u jiffranka dan, tagħmel sekwenza 1065 00:52:05,220 --> 00:52:08,040 0-- sbieħ, l-ebda messaġġi ta 'żball f'dan il-ħin. 1066 00:52:08,040 --> 00:52:12,290 >> ./string0 Zamyla, u Jien wasalt biex hit Ikteb, 1067 00:52:12,290 --> 00:52:16,710 f'liema punt getstring huwa għaddej biex jirritorna l-sekwenza, poġġih fil s. 1068 00:52:16,710 --> 00:52:21,890 Imbagħad li għal linja se ttenni fuq karattri S wieħed fi żmien, 1069 00:52:21,890 --> 00:52:28,420 u tipprintjahom waħda għal kull linja, għaliex Kelli li backslash n fl-aħħar. 1070 00:52:28,420 --> 00:52:34,530 So I jistgħu iħallu barra dik backslash n, u mbagħad biss print Zamyla kollha 1071 00:52:34,530 --> 00:52:37,460 fl-istess linja, effettiv reimplementing 1072 00:52:37,460 --> 00:52:38,999 printf, li mhux kollha li utli. 1073 00:52:38,999 --> 00:52:40,540 Iżda f'dan il-każ, stajt ma jsirx dan. 1074 00:52:40,540 --> 00:52:43,610 Stajt attwalment stampata waħda karattru fi żmien, waħda għal kull linja, 1075 00:52:43,610 --> 00:52:45,400 sabiex inkunu attwalment ara l-effett. 1076 00:52:45,400 --> 00:52:46,900 >> Imma jien nosserva ħaġa waħda hawn. 1077 00:52:46,900 --> 00:52:48,930 U aħna ser terga 'lura għal dan fil-ġimgħa futur. 1078 00:52:48,930 --> 00:52:52,650 Jirriżulta li din il kodiċi huwa potenzjalment Buggy. 1079 00:52:52,650 --> 00:52:56,560 >> Jirriżulta li string tikseb u xi funzjonijiet oħra fil-ħajja 1080 00:52:56,560 --> 00:53:00,280 mhux bilfors dejjem ritorn dak li qed jistennew. 1081 00:53:00,280 --> 00:53:03,010 Nafu mill-klassi l-aħħar ħin f'dan l tinkiseb 1082 00:53:03,010 --> 00:53:04,960 sekwenza suppost li jirritornaw string. 1083 00:53:04,960 --> 00:53:09,900 Imma x'jiġri jekk it-tipi utent jeskludi tali kelma twila, jew il-paragrafu, jew essay 1084 00:53:09,900 --> 00:53:13,010 li hemm biss mhux biżżejjed memorja fil-kompjuter biex tajbin. 1085 00:53:13,010 --> 00:53:15,410 >> Bħal, dak li jekk xi ħaġa tmur ħażin minn taħt il-barnuża? 1086 00:53:15,410 --> 00:53:18,400 Jista 'ma jiġri spiss, imma jista 'jiġri darba 1087 00:53:18,400 --> 00:53:21,520 fil-waqt, ħafna b'mod mhux frekwenti. 1088 00:53:21,520 --> 00:53:25,460 U għalhekk jirriżulta li string tikseb u l-funzjonijiet bhalu ma neċessarjament 1089 00:53:25,460 --> 00:53:26,380 dejjem tirritorna kordi. 1090 00:53:26,380 --> 00:53:30,680 Huma jistgħu jirritornaw xi valur żball, xi valur sentinella biex ngħidu hekk, 1091 00:53:30,680 --> 00:53:32,612 li jindika li xi ħaġa marret ħażin. 1092 00:53:32,612 --> 00:53:35,320 U inti taf biss dan mill wara li tgħallmu fil-klassi issa, 1093 00:53:35,320 --> 00:53:37,700 jew li taqra xi dokumentazzjoni aktar. 1094 00:53:37,700 --> 00:53:43,120 Jirriżulta li string tikseb jista 'jirritorna valur msejħa null. 1095 00:53:43,120 --> 00:53:46,220 Null huwa valur speċjali li aħna ser terga 'lura fl-ġimgħa futur. 1096 00:53:46,220 --> 00:53:50,420 Iżda għal issa, biss jafu li jekk irrid biex ikunu verament xieraq fil-mixja 'l quddiem 1097 00:53:50,420 --> 00:53:52,650 jużaw string jiksbu, jien m'għandhomx biss sejħa hija, 1098 00:53:52,650 --> 00:53:56,870 u bl-addoċċ tuża l-valur tar-ritorn tiegħu, fidu li huwa string. 1099 00:53:56,870 --> 00:53:59,420 >> Għandi l-ewwel say, ħej, stenna minuta, biss 1100 00:53:59,420 --> 00:54:03,380 jipproċedi jekk i ma tkunx daqs null, fejn nulli, għal darb'oħra, 1101 00:54:03,380 --> 00:54:04,660 huwa biss ftit valur speċjali. 1102 00:54:04,660 --> 00:54:07,770 U huwa l-uniku valur speċjali li inti bżonn ninkwetaw dwar għal sekwenza tikseb. 1103 00:54:07,770 --> 00:54:10,900 Get sekwenza huwa jew se li jirritorna string jew null. 1104 00:54:10,900 --> 00:54:17,219 >> U dan il-punt exclamation hija ugwali sinjal inti tista 'taf minn forsi klassi matematika 1105 00:54:17,219 --> 00:54:20,510 li inti tista 'tiġbed sinjal ugwali ma linja ġo fiha sabiex jindikaw mhux ugwali. 1106 00:54:20,510 --> 00:54:23,135 Li mhux ġeneralment karattru inti tista tip fuq it-tastiera tiegħek. 1107 00:54:23,135 --> 00:54:26,480 U hekk lingwi ta 'programmar aktar, meta inti tixtieq li tgħid le ugwali, 1108 00:54:26,480 --> 00:54:29,160 inti jintuża punt exclamation, inkella magħruf bħala bang. 1109 00:54:29,160 --> 00:54:33,180 Allura inti tgħidli bang huwa daqs, li tfisser mhux ndaqs, loġikament. 1110 00:54:33,180 --> 00:54:38,060 Huwa biss simili hemm ma 'aktar minn, jew ugwali għal, jew inqas minn 1111 00:54:38,060 --> 00:54:41,270 jew ekwivalenti għal ewlenin fuq it-tastiera tiegħek li ma dan kollu fi simbolu wieħed. 1112 00:54:41,270 --> 00:54:44,020 Allura hu għalhekk li, fil eżempji mill-passat, għamilt xi parentesi miftuħa, u mbagħad 1113 00:54:44,020 --> 00:54:48,670 sinjal ugwali, sabiex tagħmel ikbar minn jew, ngħidu, inqas minn. 1114 00:54:48,670 --> 00:54:49,910 >> Allura x'inhu l-takeaway hawn? 1115 00:54:49,910 --> 00:54:53,880 Din hija sempliċement mod issa ta ' introduzzjoni ta 'din sintassi, din il-karatteristika, 1116 00:54:53,880 --> 00:54:57,390 iterazzjoni fuq individwu karattri string. 1117 00:54:57,390 --> 00:55:00,260 U bħad dawk kwadru parentesi jippermettu li tirċievi fil minnhom, 1118 00:55:00,260 --> 00:55:03,790 iqis dawk parenteżi kwadri kif tip ta ssemmi f'dan sottostanti 1119 00:55:03,790 --> 00:55:06,040 disinn, fejn kull karattru ġewwa ta 'sekwenza 1120 00:55:06,040 --> 00:55:10,180 huwa tip ta 'kaxxa fil x'imkien taħt il-barnuża fil-memorja tal-kompjuter tiegħek. 1121 00:55:10,180 --> 00:55:12,340 >> Imma ejja jagħmlu varjant ta 'dan. 1122 00:55:12,340 --> 00:55:14,880 Jirriżulta li din il programm hija korretta. 1123 00:55:14,880 --> 00:55:18,810 Allura kull assi CS50 għall-evalwazzjoni kodiċi, dan huwa korrett issa. 1124 00:55:18,810 --> 00:55:22,959 Speċjalment issa li jien iċċekkjar għall- null, dan il-programm qatt ma għandhom crash. 1125 00:55:22,959 --> 00:55:24,500 U jien biss jafu li mill-esperjenza. 1126 00:55:24,500 --> 00:55:28,040 Iżda hemm xejn li nistgħu verament tmur ħażin hawn. 1127 00:55:28,040 --> 00:55:31,860 Iżda huwa ma tantx imfassla tajjeb, għaliex ejja mmorru lura għall bażiċi. 1128 00:55:31,860 --> 00:55:34,450 >> L-ewwel, principles-- dak ma għal linja do? 1129 00:55:34,450 --> 00:55:36,290 A għall-linja ma tliet affarijiet. 1130 00:55:36,290 --> 00:55:39,340 Hija initializes xi valur, jekk inti ssaqsi lill. 1131 00:55:39,340 --> 00:55:41,770 Huwa jagħmel verifiki kundizzjoni. 1132 00:55:41,770 --> 00:55:45,380 U mbagħad wara kull iterazzjoni, wara kull ċiklu, 1133 00:55:45,380 --> 00:55:49,330 dan żidiet xi valur, jew il-valuri, hawnhekk. 1134 00:55:49,330 --> 00:55:50,600 >> Allura dak li jfisser? 1135 00:55:50,600 --> 00:55:52,940 Aħna initialize i għal 0. 1136 00:55:52,940 --> 00:55:58,610 Aħna jivverifika u kun żgur i huwa inqas minn it-tul ta 'i, li hija Z-A-M-Y-L-A, 1137 00:55:58,610 --> 00:55:59,900 hekk li hija inqas minn 6. 1138 00:55:59,900 --> 00:56:02,590 U, tabilħaqq, 0 hekk kif anqas minn 6. 1139 00:56:02,590 --> 00:56:05,580 >> Aħna jistampa Z mill-isem Zamyla s. 1140 00:56:05,580 --> 00:56:08,080 Imbagħad aħna inkrement i 0-1. 1141 00:56:08,080 --> 00:56:11,290 Aħna mbagħad tiċċekkja, hija l-1 inqas mit-tul tal-i? 1142 00:56:11,290 --> 00:56:13,270 It-tul ta 'i hija ta' 6. 1143 00:56:13,270 --> 00:56:13,950 Iva hekk hu. 1144 00:56:13,950 --> 00:56:16,880 >> Allura aħna jistampaw fl-isem Zamyla, l ZA. 1145 00:56:16,880 --> 00:56:20,090 Aħna inkrement i minn 0, sa 1, sa 2. 1146 00:56:20,090 --> 00:56:23,720 Aħna mbagħad tiċċekkja, hija ta '2 inqas minn it-tul tal-isem Zamyla s. 1147 00:56:23,720 --> 00:56:25,380 6- hekk 2 ikun anqas minn 6. 1148 00:56:25,380 --> 00:56:30,460 Iva, ejja jistampa issa M Isem Zamyla, il-tielet karattru. 1149 00:56:30,460 --> 00:56:34,110 >> Il-prinċipali hawnhekk hija li fuq kull iterazzjoni 'l-istorja, jien iċċekkjar, 1150 00:56:34,110 --> 00:56:37,810 huwa i inqas mit-tul ta 'Zamyla? 1151 00:56:37,810 --> 00:56:40,350 Iżda l-qabda hija li Stirling mhix proprjetà. 1152 00:56:40,350 --> 00:56:43,100 Dawk minnkom li programmati qabel fl Java jew lingwi oħra 1153 00:56:43,100 --> 00:56:46,310 tista 'taf-tul ta' sekwenza hu proprjetà, biss ftit aqra biss valur. 1154 00:56:46,310 --> 00:56:50,220 >> Fil Ċ f'dan il-każ, jekk dan ikun funzjoni li hi litteralment 1155 00:56:50,220 --> 00:56:53,520 għadd tan-numru ta ' karattri fit Zamyla kull darba 1156 00:56:53,520 --> 00:56:54,740 nitolbu dik il-funzjoni. 1157 00:56:54,740 --> 00:56:58,500 Kull darba li inti titlob lill-kompjuter għall-użu Stirling, huwa billi tagħti ħarsa lejn Zamyla, 1158 00:56:58,500 --> 00:57:01,960 u qal Z-A-M-Y-L-A, 6. 1159 00:57:01,960 --> 00:57:02,962 U dan jirritorna 6. 1160 00:57:02,962 --> 00:57:04,920 Il-ħin li jmiss inti sejħa dan ġewwa li għal loop, 1161 00:57:04,920 --> 00:57:08,610 li għaddej biex tħares lejn Zamyla għal darb'oħra, jgħidu Z-A-M-Y-L-A, 6. 1162 00:57:08,610 --> 00:57:10,320 U li għaddej biex jirritornaw 6. 1163 00:57:10,320 --> 00:57:12,980 Allura x'hemm stupid dwar dan id-disinn? 1164 00:57:12,980 --> 00:57:17,700 >> Għaliex huwa kodiċi mhix 5 out of 5 tiegħi għad-disinn dritt issa, biex ngħidu hekk? 1165 00:57:17,700 --> 00:57:20,600 Well, jien tistaqsi kwistjoni bla bżonn. 1166 00:57:20,600 --> 00:57:23,030 Jien tagħmel aktar xogħol milli għandi bżonn biex. 1167 00:57:23,030 --> 00:57:25,370 >> Għalhekk anki jekk il- -tweġiba hija korretta, jiena 1168 00:57:25,370 --> 00:57:29,560 titlob lill-kompjuter, dak li huwa it-tul ta 'Zamyla darb'oħra, 1169 00:57:29,560 --> 00:57:31,380 u għal darb'oħra, u għal darb'oħra, u għal darb'oħra? 1170 00:57:31,380 --> 00:57:33,980 U din ir-risposta hija qatt se jibdlu. 1171 00:57:33,980 --> 00:57:35,900 Huwa dejjem se jkunu 6. 1172 00:57:35,900 --> 00:57:39,730 >> Allura soluzzjoni aħjar minn dan Ikun din il-verżjoni li jmiss. 1173 00:57:39,730 --> 00:57:43,390 Let me imorru quddiem u poġġih fil- fajl separat imsejjaħ string1.c, 1174 00:57:43,390 --> 00:57:44,990 biss biex iżommuhom separati. 1175 00:57:44,990 --> 00:57:47,260 U jirriżulta fi għal loop, inti tista 'attwalment 1176 00:57:47,260 --> 00:57:50,210 tiddikjara varjabbli multipli fuq darba. 1177 00:57:50,210 --> 00:57:53,460 >> Hekk jien ser iżommu i u stabbilit għal 0. 1178 00:57:53,460 --> 00:57:56,190 Imma jien wkoll ser żid comma, u jgħidu, 1179 00:57:56,190 --> 00:58:01,050 tagħti me a varjabbli imsejjaħ n, li valur huwa daqs it-tul sensiela ta 'i. 1180 00:58:01,050 --> 00:58:09,410 U issa, jekk jogħġbok aċċerta kundizzjoni tiegħi sakemm i huwa inqas minn n. 1181 00:58:09,410 --> 00:58:14,140 >> Allura b'dan il-mod, il-loġika hija identika fl-aħħar tal-ġurnata. 1182 00:58:14,140 --> 00:58:18,280 Imma jiena ftakar- valur 6, f'dan il-każ. 1183 00:58:18,280 --> 00:58:19,780 X'inhu l-tul ta 'isem Zamyla tal? 1184 00:58:19,780 --> 00:58:20,860 U jien tqegħid fil n. 1185 00:58:20,860 --> 00:58:23,050 >> U jien xorta verifika il-kundizzjoni kull darba. 1186 00:58:23,050 --> 00:58:24,300 Hija ta '0 inqas minn 6? 1187 00:58:24,300 --> 00:58:25,600 Hija l-1 ta 'inqas minn 6? 1188 00:58:25,600 --> 00:58:28,600 Huwa 2 inqas minn 6, u oħrajn? 1189 00:58:28,600 --> 00:58:31,914 >> Imma jien ma tistaqsi il-kompjuter għal darb'oħra, u għal darb'oħra, x'hemm 1190 00:58:31,914 --> 00:58:33,080 it-tul tal-isem Zamyla tal? 1191 00:58:33,080 --> 00:58:34,320 X'inhu l-tul ta 'isem Zamyla tal? 1192 00:58:34,320 --> 00:58:35,986 X'inhu l-tul ta 'isem dan il Zamyla tal? 1193 00:58:35,986 --> 00:58:40,440 Jien litteralment ftakar li l-ewwel u biss twieġeb f'din it-tieni n varjabbli. 1194 00:58:40,440 --> 00:58:45,280 Allura dan issa se jkun mhux biss korretti, iżda wkoll mfassla tajjeb. 1195 00:58:45,280 --> 00:58:46,670 >> Issa, dak dwar stil? 1196 00:58:46,670 --> 00:58:48,866 Stajt jismu varjabbli tiegħi pretty ukoll, nixtieq ngħid. 1197 00:58:48,866 --> 00:58:50,240 Huma qed super konċiża dritt issa. 1198 00:58:50,240 --> 00:58:52,090 U li l-totalment multa. 1199 00:58:52,090 --> 00:58:55,120 >> Jekk inti biss għandek wieħed sekwenza fi programm, 1200 00:58:55,120 --> 00:58:56,860 inti tista 'ukoll sejħa hija s għal sekwenza. 1201 00:58:56,860 --> 00:58:59,370 Jekk inti biss għandek varjabbli waħda biex tiġi magħduda fi programm, 1202 00:58:59,370 --> 00:59:00,710 inti tista 'ukoll sejħa hija i. 1203 00:59:00,710 --> 00:59:03,500 Jekk ikollok xi tul, n huwa super komuni kif ukoll. 1204 00:59:03,500 --> 00:59:05,800 Imma jien ma kkummentawx xi wieħed kodiċi tiegħi. 1205 00:59:05,800 --> 00:59:09,200 >> Stajt ma informa lill-reader-- jekk din TF tiegħi, jew AT, 1206 00:59:09,200 --> 00:59:12,460 jew eżatt colleague-- dak li suppost li jkunu għaddejjin f'dan il-programm. 1207 00:59:12,460 --> 00:59:15,760 U dan biex tikseb stil tajjeb, dak I trid tagħmel 1208 00:59:15,760 --> 00:59:24,580 huwa this-- xi ħaġa bħal jistaqsu utent għall-input. 1209 00:59:24,580 --> 00:59:26,670 U jien tista 'jikteb din il kwalunkwe numru ta 'modi. 1210 00:59:26,670 --> 00:59:35,630 >> Kun żgur s-- kun żgur nikseb sekwenza lura string. 1211 00:59:35,630 --> 00:59:40,280 U mbagħad fl here-- u dan huwa forsi l jtenni comment-- aktar importanti 1212 00:59:40,280 --> 00:59:44,450 matul il-karattri fit-i wieħed fi żmien. 1213 00:59:44,450 --> 00:59:47,060 UI jistgħu jużaw kwalunkwe għażla tal-lingwa Ingliża 1214 00:59:47,060 --> 00:59:49,650 hawn biex jiddeskrivu kull ta 'dawn biċċiet ta' kodiċi. 1215 00:59:49,650 --> 00:59:52,740 >> Avviż li jien ma jitqiegħdu tikkummenta dwar kull linja tal-kodiċi, 1216 00:59:52,740 --> 00:59:55,690 verament ftit dwar il-interessanti dawk, dawk li 1217 00:59:55,690 --> 00:59:59,460 għandhom xi tifsira li I jista tixtieq li tagħmel super ċara lil xi ħadd 1218 00:59:59,460 --> 01:00:00,460 qari kodiċi tiegħi. 1219 01:00:00,460 --> 01:00:02,920 U għaliex huma inti titlob tikseb sekwenza jistaqsu utent għall-input? 1220 01:00:02,920 --> 01:00:05,450 Anki li wieħed ma jkunx neċessarjament dak kollu li deskrittiv. 1221 01:00:05,450 --> 01:00:09,340 Iżda dan jgħin tgħid storja, minħabba li l- tieni linja fil-istorja hija, kun żgur 1222 01:00:09,340 --> 01:00:10,740 jiksbu sekwenza lura string. 1223 01:00:10,740 --> 01:00:14,260 >> U t-tielet linja fit-istorja hija, jtenni fuq il-karattri f'wieħed i 1224 01:00:14,260 --> 01:00:15,380 kull darba. 1225 01:00:15,380 --> 01:00:17,920 U issa biss għal miżura tajba, Jien ser jimxi 'l quddiem u żid 1226 01:00:17,920 --> 01:00:24,560 wieħed kumment aktar li biss jgħid print numru i karattru s. 1227 01:00:24,560 --> 01:00:26,520 Issa, dak li jiena għamlu fl-aħħar tal-ġurnata? 1228 01:00:26,520 --> 01:00:29,190 >> Għandi żied xi Ingliż kliem fil-forma ta 'kummenti. 1229 01:00:29,190 --> 01:00:32,700 Is-simbolu mmejla mmejla ifisser, ħej, kompjuter dan huwa għall-bniedem, 1230 01:00:32,700 --> 01:00:33,820 mhux għalik, il-kompjuter. 1231 01:00:33,820 --> 01:00:35,119 Allura dawn qed injorati loġikament. 1232 01:00:35,119 --> 01:00:35,910 Huma qed biss hemm. 1233 01:00:35,910 --> 01:00:39,830 >> U, tabilħaqq, CS50 IDE jurihom bħala griż, bħala utli, iżda mhux essenzjali 1234 01:00:39,830 --> 01:00:41,000 għall-programm. 1235 01:00:41,000 --> 01:00:42,570 Avviż dak li inti issa tista 'tagħmel. 1236 01:00:42,570 --> 01:00:44,950 Kemm jekk int taf C programmazzjoni jew le, inti 1237 01:00:44,950 --> 01:00:47,722 tista 'biss joqgħod lura lejn din programm, u skim l-kummenti. 1238 01:00:47,722 --> 01:00:50,180 Staqsi utent għall-input, kun żgur jiksbu sekwenza lura string, 1239 01:00:50,180 --> 01:00:53,009 jtenni fuq il-karattri fit-i wieħed fi żmien, jistampaw il-karattru 1240 01:00:53,009 --> 01:00:55,550 karattru i-th fil s-- inti ma anke jkollhom biex tħares lejn il-kodiċi 1241 01:00:55,550 --> 01:00:57,270 biex jifhem dak li dan il-programm ma. 1242 01:00:57,270 --> 01:01:00,280 U, aħjar għadhom, jekk inti stess ħarsa fuq dan il-programm fil-ġimgħa jew tnejn, 1243 01:01:00,280 --> 01:01:02,280 jew xahar, jew sena, inti wisq ma għandekx 1244 01:01:02,280 --> 01:01:04,420 biex stare fil-kodiċi, tipprova tiftakar, 1245 01:01:04,420 --> 01:01:06,630 dak li kien I jippruvaw jagħmlu ma 'dan il-kodiċi? 1246 01:01:06,630 --> 01:01:07,770 >> You ħadthom qallek lilek innifsek. 1247 01:01:07,770 --> 01:01:11,660 You ħadthom deskritti għalik innifsek, jew xi kollega, jew AT, jew TF. 1248 01:01:11,660 --> 01:01:14,860 U għalhekk dan issa se jkun korretta, u d-disinn tajba, 1249 01:01:14,860 --> 01:01:18,210 u finalment stil tajjeb ukoll. 1250 01:01:18,210 --> 01:01:19,990 So do iżommu dan f'moħħhom. 1251 01:01:19,990 --> 01:01:22,200 >> Allura hemm waħda oħra Ħaġa Jien ser tagħmel hawn 1252 01:01:22,200 --> 01:01:28,240 li issa jistgħu jiżvelaw eżattament x'hemm għaddejjin taħt il-barnuża. 1253 01:01:28,240 --> 01:01:30,390 Allura hemm din il-karatteristika fis-C, u ilsna oħra, 1254 01:01:30,390 --> 01:01:33,010 imsejħa typecasting li jew impliċitament 1255 01:01:33,010 --> 01:01:37,250 jew espliċitament jippermettilek li jikkonvertu minn tip ta 'data għall-ieħor. 1256 01:01:37,250 --> 01:01:39,800 Imxejna ġiet jittrattaw hekk ferm illum ma kordi. 1257 01:01:39,800 --> 01:01:41,250 >> U kordi huma karattri. 1258 01:01:41,250 --> 01:01:44,910 Iżda lura mit-ġimgħa 0, liema huma karattri? 1259 01:01:44,910 --> 01:01:49,334 Karattri huma biss estrazzjoni fuq quċċata ta 'numri deċimali numbers--, 1260 01:01:49,334 --> 01:01:52,500 u n-numri deċimali huma verament ftit estrazzjoni fuq quċċata ta 'numri binarja, 1261 01:01:52,500 --> 01:01:53,720 kif aħna definiti fiha. 1262 01:01:53,720 --> 01:01:55,540 >> Allura karattri huma numri. 1263 01:01:55,540 --> 01:01:58,410 U n-numri huma karattri, biss skont il-kuntest. 1264 01:01:58,410 --> 01:02:01,250 U jirriżulta li ġewwa ta 'programm tal-kompjuter, 1265 01:02:01,250 --> 01:02:06,830 inti tista 'tispeċifika kif inti tixtieq li tfittex fil-bits ġewwa ta 'dak il-programm? 1266 01:02:06,830 --> 01:02:10,400 >> Recall minn ġimgħa 0 li kellna Ascii, li huwa biss dan il-kodiċi 1267 01:02:10,400 --> 01:02:11,620 ittri mapping għan-numri. 1268 01:02:11,620 --> 01:02:13,660 U aħna qal, il-kapital A hija 65. 1269 01:02:13,660 --> 01:02:15,860 Kapital B hija 66, u oħrajn. 1270 01:02:15,860 --> 01:02:20,500 >> U avviż, aħna essenzjalment għandna Chars fuq -filliera ta 'fuq hawnhekk, bħala C kieku jsejħulhom, 1271 01:02:20,500 --> 01:02:23,400 karattri, u mbagħad ints fit-tieni filliera. 1272 01:02:23,400 --> 01:02:28,180 U jirriżulta li inti tista 'tikkonverti ħarir bejn it-tnejn, tipikament. 1273 01:02:28,180 --> 01:02:30,042 U jekk irridu nagħmlu dan il deliberatament, aħna 1274 01:02:30,042 --> 01:02:31,750 tista 'tixtieq li jiġu indirizzati xi ħaġa bħal din. 1275 01:02:31,750 --> 01:02:33,590 >> Aħna tista 'tixtieq li jikkonvertu b'ittri kbar biex ibaxxu 1276 01:02:33,590 --> 01:02:35,330 każ, jew b'ittri żgħar li b'ittri kbar. 1277 01:02:35,330 --> 01:02:38,000 U jirriżulta hemmhekk s attwalment mudell hawn 1278 01:02:38,000 --> 01:02:39,900 nistgħu iħaddnu fi ftit mument. 1279 01:02:39,900 --> 01:02:44,120 Imma ejja nħarsu l-ewwel fi Eżempju ta 'kif isir dan b'mod espliċitu. 1280 01:02:44,120 --> 01:02:46,340 >> Jien se jmorru lura fis IDE CS50. 1281 01:02:46,340 --> 01:02:50,640 Jien ser toħloq fajl imsejħa 0.c. ASCII 1282 01:02:50,640 --> 01:02:55,960 U jien ser jimxi 'l quddiem u żid tiegħi io.h standard fil-quċċata, vojt ewlenija int 1283 01:02:55,960 --> 01:02:57,370 fil-quċċata tal-funzjoni tiegħi. 1284 01:02:57,370 --> 01:03:02,700 U allura jien biss se jagħmlu l- following-- A għal loop minn i huwa ugwali, 1285 01:03:02,700 --> 01:03:04,610 ejja ngħidu, 65. 1286 01:03:04,610 --> 01:03:10,460 >> U mbagħad I se tkun inqas minn 65, flimkien ma '26 ittri fil-alfabett. 1287 01:03:10,460 --> 01:03:12,640 So I ser let il-kompjuter jagħmlu l-matematika għalija hemmhekk. 1288 01:03:12,640 --> 01:03:15,100 U allura ġewwa dan loop, dak li jien morna ghall-istampa? 1289 01:03:15,100 --> 01:03:19,230 >> % Ċ huwa% i backslash n. 1290 01:03:19,230 --> 01:03:21,290 U issa nixtieq li plagg fil żewġ valuri. 1291 01:03:21,290 --> 01:03:24,530 Stajt temporanjament tqiegħed inkwistjoni jimmarka hemm biex jistiednu l-kwistjoni. 1292 01:03:24,530 --> 01:03:29,940 >> Irrid li jtenni mill 65 quddiem għal 26-ittri tal-alfabett, 1293 01:03:29,940 --> 01:03:35,190 stampar fuq kull iterazzjoni li ekwivalenti integrali karattru. 1294 01:03:35,190 --> 01:03:38,299 Fi kliem ieħor, nixtieq li jtenni aktar minn 26 numri istampar 1295 01:03:38,299 --> 01:03:41,590 dak il-karattru ASCII huwa, l-ittra, u dak in-numru korrispondenti is-- 1296 01:03:41,590 --> 01:03:44,650 verament ftit recreating -mappa minn dik slide. 1297 01:03:44,650 --> 01:03:47,010 Allura dak li għandu dawn trade marks in kwistjoni jkunu? 1298 01:03:47,010 --> 01:03:51,760 >> Ukoll, jirriżulta li t-tieni wieħed għandu jkun biss il-i varjabbli. 1299 01:03:51,760 --> 01:03:53,860 Irrid nara li bħala numru. 1300 01:03:53,860 --> 01:03:58,920 U l-argument tan-nofs hawn, I tista 'tgħid il-kompjuter 1301 01:03:58,920 --> 01:04:03,470 għall-kura li numru sħiħ i bħala karattru, hekk kif 1302 01:04:03,470 --> 01:04:05,880 li jibdlu hawn għal mija C. 1303 01:04:05,880 --> 01:04:07,990 >> Fi kliem ieħor, jekk I, il programmer bniedem, taf 1304 01:04:07,990 --> 01:04:09,865 dawn huma biss numri fl-aħħar tal-ġurnata. 1305 01:04:09,865 --> 01:04:12,500 U naf li 65 għandu Mappa sa ċertu karattru. 1306 01:04:12,500 --> 01:04:15,310 Ma 'dan mitfugħa espliċitu, bil-parentesi, 1307 01:04:15,310 --> 01:04:18,840 l-isem tad-data tip li trid jikkonvertu, u parentesi magħluqa, 1308 01:04:18,840 --> 01:04:21,200 inti tista 'tgħid l- kompjuter, ħej, kompjuter, 1309 01:04:21,200 --> 01:04:24,130 jikkonvertu dan il numru sħiħ għal char. 1310 01:04:24,130 --> 01:04:26,250 >> Allura meta I run dan il- programm wara kumpilazzjoni, 1311 01:04:26,250 --> 01:04:29,740 ejja ara dak li get-- jagħmlu ascii 0. 1312 01:04:29,740 --> 01:04:33,020 Darn dan, dak li ma nagħmel ħażin hawn? 1313 01:04:33,020 --> 01:04:35,884 Użu ta 'identifikatur mhux iddikjarat, id-dritt, mhux intenzjonali, 1314 01:04:35,884 --> 01:04:37,800 imma ejja ara jekk ma nistgħux Raġuni permezz ta 'dan. 1315 01:04:37,800 --> 01:04:41,220 >> Allura linja five-- so I ma jiksbu bogħod ħafna qabel screwing up. 1316 01:04:41,220 --> 01:04:42,140 Kollox sew. 1317 01:04:42,140 --> 01:04:46,560 Allura linja 5 għall i huwa ugwali 65-- nara. 1318 01:04:46,560 --> 01:04:50,130 Mela ftakar li fl Ċ, kuntrarjament għal uħud ilsna jekk għandek programmazzjoni ta 'qabel 1319 01:04:50,130 --> 01:04:52,190 esperjenza, għandek li tgħid il-kompjuter, 1320 01:04:52,190 --> 01:04:55,040 b'differenza Scratch, liema tip ta 'varjabbli li hu. 1321 01:04:55,040 --> 01:04:56,860 >> U jien nesa frażi ċavetta hawn. 1322 01:04:56,860 --> 01:04:59,200 F'konformità ħames, stajt bdew jużaw i. 1323 01:04:59,200 --> 01:05:01,560 Imma jien ma qallek C liema data tip li hu. 1324 01:05:01,560 --> 01:05:04,570 Hekk jien se jmorru fil hawn u jgħidu, ah, jagħmilha integer. 1325 01:05:04,570 --> 01:05:07,050 >> Issa jien ser jimxi 'l quddiem u recompile. 1326 01:05:07,050 --> 01:05:08,080 Dak iffissat dik. 1327 01:05:08,080 --> 01:05:12,660 ./ascii0 Daħħal, li tip ta 'kessaħ. 1328 01:05:12,660 --> 01:05:15,360 Mhux biss huwa super fast li titlob lill-kompjuter din il-mistoqsija, 1329 01:05:15,360 --> 01:05:18,885 pjuttost milli tfittex it up fuq slide, hija stampata waħda għal kull linja, A huwa 65, 1330 01:05:18,885 --> 01:05:24,860 B hija 66, it-triq kollha down-- peress I ma dan 26 times-- lill-ittri z, 1331 01:05:24,860 --> 01:05:25,630 li huwa 90. 1332 01:05:25,630 --> 01:05:27,790 U, fil-fatt, ftit aktar intelliġenti kieku 1333 01:05:27,790 --> 01:05:31,030 kienu għalija biex ma toqgħodx fuq il-kompjuter biex iżżid 26. 1334 01:05:31,030 --> 01:05:34,060 I setgħet biss għamlu 90 kif ukoll, sakemm 1335 01:05:34,060 --> 01:05:37,390 kif I ma jagħmlu l-istess żball darbtejn. 1336 01:05:37,390 --> 01:05:41,880 Irrid li jitla 'permezz z, mhux biss sa permezz y. 1337 01:05:41,880 --> 01:05:44,000 >> Allura dak mitfugħa espliċita. 1338 01:05:44,000 --> 01:05:47,860 Jirriżulta li din il lanqas ma huwa meħtieġ. 1339 01:05:47,860 --> 01:05:52,480 Let me imorru quddiem u terġa 'ssir din l kompilatur, u terġa 'ssir ASCII 0. 1340 01:05:52,480 --> 01:05:54,940 Jirriżulta li C hija pjuttost intelliġenti. 1341 01:05:54,940 --> 01:05:57,150 >> U printf, b'mod partikolari, huwa pjuttost intelliġenti. 1342 01:05:57,150 --> 01:06:01,260 Jekk inti biss tgħaddi minn i darbtejn għaż-żewġ placeholders, printf 1343 01:06:01,260 --> 01:06:04,510 se tirrealizza, oh, ukoll I taf li inti tatni integer-- xi numru, 1344 01:06:04,510 --> 01:06:06,380 bħall 65, jew 90, jew ikun x'ikun. 1345 01:06:06,380 --> 01:06:10,170 Imma nara li inti trid lili biex format dak in-numru bħal karattru. 1346 01:06:10,170 --> 01:06:16,460 U hekk printf jista impliċitament fondut il int għal char għalik ukoll. 1347 01:06:16,460 --> 01:06:19,360 Allura li mhux problema għal kollox. 1348 01:06:19,360 --> 01:06:23,100 >> Iżda avviż, minħabba din l-ekwivalenza nistgħu attwalment jagħmlu dan ukoll. 1349 01:06:23,100 --> 01:06:26,520 Let me imorru quddiem u jagħmlu waħda Verżjoni oħra ta this-- 1.c. ASCII 1350 01:06:26,520 --> 01:06:31,800 U minflok jiġu mtennija fuq interi, jistgħu verament blow moħħok 1351 01:06:31,800 --> 01:06:33,610 billi jiġu mtennija fuq karattri. 1352 01:06:33,610 --> 01:06:37,660 Jekk char ċ gets kapital A, I tixtieq li tmur quddiem u tagħmel dan, 1353 01:06:37,660 --> 01:06:41,740 sakemm Ċ hija inqas minn jew ugwali sa Z. kapital U fuq kull iterazzjoni 1354 01:06:41,740 --> 01:06:45,690 Irrid li inkrement Ċ, nista issa konformi printf tiegħi hawn 1355 01:06:45,690 --> 01:06:51,320 jiġifieri,-mija C hija mija i darb'oħra, comma C. 1356 01:06:51,320 --> 01:06:57,200 >> U issa, I jistgħu jmorru l-direzzjoni l-oħra, ikkastjar il-karattru espliċitu 1357 01:06:57,200 --> 01:06:58,500 għal integer. 1358 01:06:58,500 --> 01:07:00,560 Allura, għal darb'oħra, għaliex kieku inti tagħmel dan? 1359 01:07:00,560 --> 01:07:03,830 Huwa ftit stramb biex isolvi tal jgħodd f'termini ta 'karattri. 1360 01:07:03,830 --> 01:07:07,430 >> Imma jekk inti tifhem x'hemm għaddejjin taħt il-barnuża, 1361 01:07:07,430 --> 01:07:08,430 hemm verament ebda magic. 1362 01:07:08,430 --> 01:07:13,060 Inti biss qal, ħej, kompjuter jagħtu me varjabbli imsejjaħ Ċ tat char tip. 1363 01:07:13,060 --> 01:07:16,520 Initialize lill kapital A. U Avviż kwistjoni kwotazzjonijiet uniku. 1364 01:07:16,520 --> 01:07:19,580 >> Għall-karattri fis-C, jiġbor lura mingħand aħħar ġimgħa, tuża kwotazzjonijiet uniku. 1365 01:07:19,580 --> 01:07:23,720 Għal kordi, għall-kliem, frażijiet, tuża kwotazzjonijiet doppja. 1366 01:07:23,720 --> 01:07:27,210 OK, kompjuter, iżommu tagħmel dan, hekk Sakemm il-karattru huwa inqas minn 1367 01:07:27,210 --> 01:07:28,050 jew ugwali għal z. 1368 01:07:28,050 --> 01:07:32,640 U naf mit-tabella ASCII tiegħi li kollha ta dawn il-kodiċijiet ASCII huma kontigwi. 1369 01:07:32,640 --> 01:07:33,400 >> M'hemm l-ebda lakuni. 1370 01:07:33,400 --> 01:07:36,737 Allura huwa biss A sa Z, separati minn numru wieħed kull wieħed. 1371 01:07:36,737 --> 01:07:38,820 U allura nista 'inkrement char, jekk jien verament irridu. 1372 01:07:38,820 --> 01:07:40,390 Fl-aħħar tal-ġurnata, huwa biss numru. 1373 01:07:40,390 --> 01:07:41,030 Naf li dan. 1374 01:07:41,030 --> 01:07:43,670 So I tista 'biss jippreżumu li żżid 1 lilha. 1375 01:07:43,670 --> 01:07:46,940 >> U allura din id-darba, I jistampaw c, u allura l-ekwivalenti integrali. 1376 01:07:46,940 --> 01:07:50,170 U jien ma anki bżonn l-voti espliċitu. 1377 01:07:50,170 --> 01:07:52,680 I tista let printf u l figura kompjuter affarijiet out, 1378 01:07:52,680 --> 01:07:57,300 b'tali mod li issa jekk I run jagħmlu Ascii1./ascii1, 1379 01:07:57,300 --> 01:08:01,520 I nikseb l-istess ħaġa eżatt kif ukoll. 1380 01:08:01,520 --> 01:08:04,530 >> programm inutli, though-- ħadd se attwalment jikteb softwer 1381 01:08:04,530 --> 01:08:07,549 sabiex insemmu, dak li kien l- Numru li l-mapep għall-A, jew B, jew Z? 1382 01:08:07,549 --> 01:08:10,340 Int biss ser Google, jew tfittex it up fuq l-internet, jew tfittex it up 1383 01:08:10,340 --> 01:08:11,650 fuq slide, jew espressjonijiet simili. 1384 01:08:11,650 --> 01:08:13,520 Għalhekk, fejn ma dan il-fatt tikseb utli? 1385 01:08:13,520 --> 01:08:15,960 >> Ukoll, taħdit ta 'dik slide, avviż hemm 1386 01:08:15,960 --> 01:08:20,890 mudell attwali hawnhekk bejn uppercase u zghar li ma kienx aċċidentali. 1387 01:08:20,890 --> 01:08:23,760 Avviż li l-kapital A hija 65. 1388 01:08:23,760 --> 01:08:25,830 Zghar a huwa 97. 1389 01:08:25,830 --> 01:08:29,649 U kif bogħod huwa każ huwa aktar baxx minn? 1390 01:08:29,649 --> 01:08:32,649 >> Allura 65. huwa kif ħafna passi bogħod mill 97? 1391 01:08:32,649 --> 01:08:36,210 Allura 97 nieqes 65. huwa 32. 1392 01:08:36,210 --> 01:08:37,910 Allura kapital a huwa 65. 1393 01:08:37,910 --> 01:08:39,939 Jekk inti żid 32 għal dan, ikollok zghar a. 1394 01:08:39,939 --> 01:08:43,729 U, b'mod ekwivalenti, jekk inti naqqas 32, ikollok lura għall-kapital A-- istess ma B 1395 01:08:43,729 --> 01:08:46,380 li ftit b, kbar Ċ sa ftit ċ. 1396 01:08:46,380 --> 01:08:50,670 >> Kollha ta 'dawn il-lakuni huma 32 bogħod minn xulxin. 1397 01:08:50,670 --> 01:08:54,450 Issa, dan jidher li inessu jagħmel xi ħaġa bħal Microsoft Word, 1398 01:08:54,450 --> 01:08:57,729 jew Google Docs karatteristika, fejn inti jista 'jagħżel kollox u mbagħad jgħidu, 1399 01:08:57,729 --> 01:09:00,520 bidla kollha li zghar, jew bidla kollha li b'ittri kbar, 1400 01:09:00,520 --> 01:09:03,840 jew jibdlu biss l-ewwel kelma ta 'sentenza li b'ittri kbar. 1401 01:09:03,840 --> 01:09:07,390 Nistgħu attwalment jagħmlu xi ħaġa bħal dik nfusna. 1402 01:09:07,390 --> 01:09:12,645 >> Let me imorru quddiem u jiffrankaw fajl hawn imsejħa tikkapitalizza 0.c. 1403 01:09:12,645 --> 01:09:15,770 U ejja imorru quddiem u Whip up programm li ma eżattament dak li ġej. 1404 01:09:15,770 --> 01:09:18,460 Allura jinkludu l-librerija CS50. 1405 01:09:18,460 --> 01:09:21,430 U jinkludu istandard I / O. 1406 01:09:21,430 --> 01:09:22,787 >> U Naf li dan huwa li ġejjin dalwaqt. 1407 01:09:22,787 --> 01:09:24,870 Hekk jien ser poġġih fil hemm diġà, string.h, 1408 01:09:24,870 --> 01:09:26,960 so I jkollhom aċċess għal affarijiet simili Stirling, 1409 01:09:26,960 --> 01:09:29,620 u mbagħad int null prinċipali, bħas-soltu. 1410 01:09:29,620 --> 01:09:33,420 U mbagħad jien ser jimxi 'l quddiem u jagħmlu kordi gets nikseb spag, 1411 01:09:33,420 --> 01:09:35,032 biss li tikseb string mill-utent. 1412 01:09:35,032 --> 01:09:36,740 U mbagħad jien ser do verifika sanità tiegħi. 1413 01:09:36,740 --> 01:09:40,510 Jekk string ma null ugwali, allura huwa tajjeb li jipproċedi. 1414 01:09:40,510 --> 01:09:42,000 U dak ma nixtieq li tagħmel? 1415 01:09:42,000 --> 01:09:48,700 Jien ser jtenni mill i huwa ugwali 0, u n sal-tul sensiela ta 'i. 1416 01:09:48,700 --> 01:09:51,899 >> U jien ser tagħmel dan sakemm i huwa inqas minn n, ui flimkien plus. 1417 01:09:51,899 --> 01:09:55,060 S'issa, jien verament ftit self ideat minn qabel. 1418 01:09:55,060 --> 01:09:57,010 U issa jien ser jintroduċu fergħa. 1419 01:09:57,010 --> 01:09:59,635 >> Allura taħseb lura lill Scratch, fejn kellna dawk frieket fl-triq, 1420 01:09:59,635 --> 01:10:05,110 u l-aħħar ġimgħa fil Ċ jien ser jgħidu dan, jekk il-karattru numru i fir i 1421 01:10:05,110 --> 01:10:09,250 huwa akbar minn jew ugwali għal ibaxxu każ, 1422 01:10:09,250 --> 01:10:13,340 and-- fil Scratch inti litteralment jgħidu u, iżda fl Ċ you say ampersand, 1423 01:10:13,340 --> 01:10:19,830 ampersand-- u l-karattru numru i fir i huwa inqas minn jew ugwali għal ibaxxu każ z, 1424 01:10:19,830 --> 01:10:21,780 ejja nagħmlu xi ħaġa interessanti. 1425 01:10:21,780 --> 01:10:27,020 Ejja attwalment jistampa karattru bla newline 1426 01:10:27,020 --> 01:10:31,760 li huwa l-karattru fil-sekwenza, il-karattru numru i fir-sekwenza. 1427 01:10:31,760 --> 01:10:37,420 >> Imma ejja imorru quddiem u naqqas 32. minnha. 1428 01:10:37,420 --> 01:10:42,120 Inkella, jekk il-karattru fil- sekwenza li aħna qed tfittex 1429 01:10:42,120 --> 01:10:45,950 mhuwiex bejn ftit ta ' u ftit z, imorru quddiem 1430 01:10:45,950 --> 01:10:48,610 u biss stampati out mhux mibdula. 1431 01:10:48,610 --> 01:10:50,840 Allura konna introdotti din il notazzjoni parentesi 1432 01:10:50,840 --> 01:10:53,560 għal kordi tagħna biex jiksbu fl- i-th karattru fil-sekwenza. 1433 01:10:53,560 --> 01:10:57,520 >> Stajt żied xi loġika kondizzjonali, bħall Scratch fil-ġimgħa li għaddiet minn ġimgħa, fejn 1434 01:10:57,520 --> 01:10:59,880 Jien biss jużaw fundamentali tiegħi fehim ta 'x'inhu 1435 01:10:59,880 --> 01:11:01,130 għaddejjin taħt il-barnuża. 1436 01:11:01,130 --> 01:11:04,190 Huwa l-karattru numru i ta 'i ikbar minn jew ugwali għal? 1437 01:11:04,190 --> 01:11:08,290 Simili, huwa 97, jew 98, jew 99, u ibqa 'sejjer hekk? 1438 01:11:08,290 --> 01:11:11,940 >> Imma huwa wkoll anqas minn jew ugwali mal-valur tal zghar z? 1439 01:11:11,940 --> 01:11:16,210 U jekk iva, liema ma din il-linja jfisser? 1440 01:11:16,210 --> 01:11:20,250 14, dan huwa tip ta 'l- nibbieta ta 'l-idea kollha, 1441 01:11:20,250 --> 01:11:23,840 kapitalizzazzjoni l-ittra mill sempliċiment tnaqqas 32 minnha, 1442 01:11:23,840 --> 01:11:29,370 f'dan il-każ, għaliex naf, kull li ċart, kif numri tiegħi huma rappreżentati. 1443 01:11:29,370 --> 01:11:33,925 Mela ejja imorru quddiem u run dan, wara kumpilazzjoni tikkapitalizza 0.c, 1444 01:11:33,925 --> 01:11:36,210 u run kapitalizzazzjoni 0. 1445 01:11:36,210 --> 01:11:40,300 >> Ejja tip fil xi ħaġa simili Zamyla kollha lowercase jidħol. 1446 01:11:40,300 --> 01:11:42,780 U issa għandna Zamyla kollha uppercase. 1447 01:11:42,780 --> 01:11:45,050 Ejja tip fil Rob kollha zghar. 1448 01:11:45,050 --> 01:11:46,674 Ejja nippruvaw Jason kollha zghar. 1449 01:11:46,674 --> 01:11:48,590 U aħna iżommu jkollna l kapitalizzazzjoni sfurzat. 1450 01:11:48,590 --> 01:11:50,960 Hemm bug minuri li I tip ta 'ma kinitx tantiċipa. 1451 01:11:50,960 --> 01:11:54,050 Avviż pront ġdida tiegħi huwa jispiċċaw fuq l-istess linja ismijiet tagħhom, 1452 01:11:54,050 --> 01:11:55,520 li tħoss messy ftit. 1453 01:11:55,520 --> 01:11:59,170 >> Hekk jien se jmorru hawn, u fil-fatt fl-aħħar ta dan il-programm 1454 01:11:59,170 --> 01:12:02,110 jistampa karattru newline. 1455 01:12:02,110 --> 01:12:03,160 Dak kollox. 1456 01:12:03,160 --> 01:12:06,120 Bil printf, inti m'għandekx bżonn li jgħaddu fi varjabbli jew il-kodiċi format. 1457 01:12:06,120 --> 01:12:08,460 Tista 'litteralment biss print xi ħaġa bħal newline. 1458 01:12:08,460 --> 01:12:13,529 >> Mela ejja imorru quddiem u jagħmlu kapitalizzazzjoni 0 darb'oħra, terġa 'ssir din, Zamyla. 1459 01:12:13,529 --> 01:12:14,820 U issa huwa prettier ftit. 1460 01:12:14,820 --> 01:12:17,274 Issa, fil-pront tiegħi huwa fuq il-linja l-ġdida tiegħu stess. 1461 01:12:17,274 --> 01:12:18,440 Allura li kollox multa u tajba. 1462 01:12:18,440 --> 01:12:19,910 Allura li huwa eżempju tajjeb. 1463 01:12:19,910 --> 01:12:22,700 Imma jien ma anki neċessarjament jeħtieġ li kodiċi iebsa l 32. 1464 01:12:22,700 --> 01:12:23,350 Taf xiex? 1465 01:12:23,350 --> 01:12:26,350 I jistgħu say-- I do not qatt ftakar x'inhi d-differenza. 1466 01:12:26,350 --> 01:12:29,330 >> Imma naf li jekk I jkollu ittra żgħira, 1467 01:12:29,330 --> 01:12:34,430 Jien essenzjalment tixtieq li naqqas off ikun x'ikun l-distanza tkun bejn ftit 1468 01:12:34,430 --> 01:12:39,160 au big A, għaliex jekk jien jassumi li kollha ta 'l-ittri l-oħra huma l-istess, 1469 01:12:39,160 --> 01:12:41,045 li għandha x-xogħol isir. 1470 01:12:41,045 --> 01:12:42,670 Iżda pjuttost milli tagħmel dan, inti taf liema? 1471 01:12:42,670 --> 01:12:44,240 Hemm mod ieħor għadu. 1472 01:12:44,240 --> 01:12:48,090 >> Jekk thats tikkapitalizza 1.c-- jekk kienu I biex iqiegħed dak ġo fajl separat. 1473 01:12:48,090 --> 01:12:51,030 ejja do kapitalizzazzjoni 2.c kif ġej. 1474 01:12:51,030 --> 01:12:53,060 Jien ser verament tnaddaf dan up hawn. 1475 01:12:53,060 --> 01:12:57,420 U minflok anki wara li jafu jew kura dwar dawk f'livell baxx 1476 01:12:57,420 --> 01:13:01,090 dettalji ta 'implementazzjoni, jien minflok biss jmorru għal stampar ta 'karattru, 1477 01:13:01,090 --> 01:13:04,610 kwotazzjoni unquote, mija Ċ, u imbagħad jitlob funzjoni oħra li 1478 01:13:04,610 --> 01:13:09,950 teżisti li jieħu l-argument, li huwa karattru, bħal din. 1479 01:13:09,950 --> 01:13:12,630 >> Jirriżulta b'mod Ċ, hemm sejħa funzjoni oħra 1480 01:13:12,630 --> 01:13:15,550 li fuq, li bħala l-isem tagħha jissuġġerixxi tieħu karattru 1481 01:13:15,550 --> 01:13:19,350 u jagħmel lill b'ittri kbar tagħha ekwivalenti, u mbagħad jirritornaha dan 1482 01:13:19,350 --> 01:13:21,410 sabiex printf jistgħu plagg fil hemmhekk. 1483 01:13:21,410 --> 01:13:25,484 U hekk li jagħmlu dan, għalkemm, jiena jeħtieġ li jiġu introdotti fajl ieħor. 1484 01:13:25,484 --> 01:13:28,400 Jirriżulta hemm fajl ieħor li inti taf biss mill-klassi, 1485 01:13:28,400 --> 01:13:33,020 jew textbook, jew online referenza, imsejħa type.h. C 1486 01:13:33,020 --> 01:13:38,570 >> Mela jekk jien nżid li l fosthom header tiegħi fajls, u issa mill-ġdid jiġbor dan il-programm, 1487 01:13:38,570 --> 01:13:43,040 capitalize2, ./capitalize2 Ikteb. 1488 01:13:43,040 --> 01:13:46,690 Ejja tip fil Zamyla kollha zghar, għadu jaħdem l-istess. 1489 01:13:46,690 --> 01:13:48,040 Imma inti taf liema? 1490 01:13:48,040 --> 01:13:55,590 Jirriżulta li biex fuq għandha xi funzjonalità oħra. 1491 01:13:55,590 --> 01:13:58,410 >> U let me jintroduċu din il kmand hawn, tip ta 'awkwardly 1492 01:13:58,410 --> 01:14:00,250 isem, iżda raġel għalih manwali. 1493 01:14:00,250 --> 01:14:03,960 Jirriżulta li l-aktar kompjuters Linux, kif aħna qed jużaw here-- operattiva Linux 1494 01:14:03,960 --> 01:14:06,270 system-- jkunu jafu imsejħa bniedem, li jgħid, 1495 01:14:06,270 --> 01:14:08,530 ħej, kompjuter, agħti lili manwal tal-kompjuter. 1496 01:14:08,530 --> 01:14:10,680 What do inti tixtieq li tfittex up f'dak manwal? 1497 01:14:10,680 --> 01:14:13,840 >> Irrid li tfittex l-funzjoni msejħa biex fuq, Ikteb. 1498 01:14:13,840 --> 01:14:16,070 U huwa ftit cryptic biex jinqara kultant. 1499 01:14:16,070 --> 01:14:18,780 Iżda avviż aħna qed fil- manwal programmer Linux. 1500 01:14:18,780 --> 01:14:19,530 U dan kollu test. 1501 01:14:19,530 --> 01:14:21,905 U avviż li hemm il- isem tal-funzjoni up here. 1502 01:14:21,905 --> 01:14:25,030 Jirriżulta hija għandha ku imsejjaħ biex ibaxxu, li ma l-oppost. 1503 01:14:25,030 --> 01:14:29,710 U avviż taħt sinopsi, biex jużaw din funzjoni tal-paġna bniedem, biex ngħidu hekk, 1504 01:14:29,710 --> 01:14:32,220 huwa javżak me I jeħtieġ li jinkludu type.h. ċ 1505 01:14:32,220 --> 01:14:33,630 U kont naf li mill-prassi. 1506 01:14:33,630 --> 01:14:36,210 >> Hawnhekk, huwa juru lili l-tnejn prototipi għall-funzjoni, 1507 01:14:36,210 --> 01:14:39,070 b'tali mod li jekk jien qatt jridu jużaw din il Naf dak li jieħdu bħala input, 1508 01:14:39,070 --> 01:14:40,652 u dak li jirritornaw bħala output. 1509 01:14:40,652 --> 01:14:42,360 U mbagħad jekk I jaqra id-deskrizzjoni, nara 1510 01:14:42,360 --> 01:14:44,820 f'aktar dettall dak li l-funzjoni ma. 1511 01:14:44,820 --> 01:14:48,100 Iżda aktar importanti minn hekk, jekk Jiena nħares taħt il-valur tar-ritorn, 1512 01:14:48,100 --> 01:14:51,710 jgħid il-valur irritornat huwa dik tal-ittra konvertiti, 1513 01:14:51,710 --> 01:14:57,880 jew Ċ, l-input oriġinali, jekk l-konverżjoni ma kienx possibbli. 1514 01:14:57,880 --> 01:15:01,992 >> Fi kliem ieħor, li fuq se jipprova li jikkonvertu ittra lill b'ittri kbar. 1515 01:15:01,992 --> 01:15:03,450 U jekk iva, li għaddej biex jirritornaha. 1516 01:15:03,450 --> 01:15:07,010 Imma jekk ma tistax għal xi reason-- forsi huwa każ diġà fuq, 1517 01:15:07,010 --> 01:15:09,550 forsi huwa punt exclamation jew xi punctuation-- ieħor 1518 01:15:09,550 --> 01:15:12,200 huwa biss se jirritorna l-oriġinal Ċ, 1519 01:15:12,200 --> 01:15:17,340 li jfisser I jistgħu jagħmlu ZIP tiegħi aħjar imfassla kif ġej. 1520 01:15:17,340 --> 01:15:20,580 >> I m'għandhomx bżonn kollha ta ' dawn il-linji darn ta 'kodiċi. 1521 01:15:20,580 --> 01:15:22,610 Kollha tal-linji stajt biss enfasizzati jistgħu 1522 01:15:22,610 --> 01:15:28,700 jiġu imniżżla fil biss sempliċi wieħed linja, li hija this-- mija printf 1523 01:15:28,700 --> 01:15:33,510 ċ lill ogħla parentesi S i. 1524 01:15:33,510 --> 01:15:36,090 U dan ikun Eżempju ta 'disinn aħjar. 1525 01:15:36,090 --> 01:15:40,040 >> Għaliex jimplimentaw 7 jew 8 linji tal-kodiċi, kwalunkwe kien I biss 1526 01:15:40,040 --> 01:15:44,960 mħassra, meta inti tista 'minflok kollass kollha ta 'dak loġika u teħid ta' deċiżjonijiet 1527 01:15:44,960 --> 01:15:49,620 in linja waħda waħda, 13 issa, li tistrieħ fuq librerija function-- 1528 01:15:49,620 --> 01:15:53,430 funzjoni li jiġi ma Ċ, iżda li ma eżattament dak li trid tagħmel. 1529 01:15:53,430 --> 01:15:55,295 U, franchement, anki jekk hija ma jiġu mal Ċ, 1530 01:15:55,295 --> 01:15:58,880 inti tista 'timplimenta it yourself, kif Rajna, bil nikseb int negattiv 1531 01:15:58,880 --> 01:16:01,700 u jiksbu l-aħħar ġimgħa int pożittiv ukoll. 1532 01:16:01,700 --> 01:16:03,470 >> Dan il-kodiċi issa huwa ħafna aktar leġġibbli. 1533 01:16:03,470 --> 01:16:06,670 U, tabilħaqq, jekk aħna iscroll, tħares kemm aktar kompatt 1534 01:16:06,670 --> 01:16:08,360 din il-verżjoni tal-programm tiegħi huwa. 1535 01:16:08,360 --> 01:16:11,230 Huwa tqil top ftit issa, ma 'dawn kollha jinkludi. 1536 01:16:11,230 --> 01:16:14,380 Imma dak li OK, għaliex issa jien wieqfa fuq l-ispallejn tal programmaturi 1537 01:16:14,380 --> 01:16:15,300 quddiemi. 1538 01:16:15,300 --> 01:16:18,440 U min kien li implimentati biex fuq verament 1539 01:16:18,440 --> 01:16:21,470 ma me a favor, ferm simili min implimentati Stirling verament 1540 01:16:21,470 --> 01:16:24,790 ma me a favor xi żmien ilu. 1541 01:16:24,790 --> 01:16:26,970 U hekk issa għandna programm ta 'disinn aħjar 1542 01:16:26,970 --> 01:16:31,680 li jimplimenta l-istess loġika eżatt. 1543 01:16:31,680 --> 01:16:35,580 >> Taħdit ta 'Stirling, let me go quddiem u tagħmel dan. 1544 01:16:35,580 --> 01:16:38,320 Let me imorru quddiem u jiffrankaw dan il-fajl bħala stirling.c. 1545 01:16:38,320 --> 01:16:43,255 U jirriżulta li, nistgħu qoxra lura waħda saff ieħor pjuttost sempliċi issa. 1546 01:16:43,255 --> 01:16:45,630 Jien ser jimxi 'l quddiem u Whip up programm ieħor fil prinċipali 1547 01:16:45,630 --> 01:16:49,759 hawnhekk li sempliċiment jerġa 'timplimenta Tul sekwenza kif ġej. 1548 01:16:49,759 --> 01:16:52,300 Allura hawnhekk linja ta 'kodiċi li me gets string mill-utent. 1549 01:16:52,300 --> 01:16:53,910 Aħna nżommu jużaw dan għal darb'oħra u darb'oħra. 1550 01:16:53,910 --> 01:16:58,900 Ħalli nagħtikom lili nnifsi varjabbli msejħa n ta 'int tip li l-ħażniet numru. 1551 01:16:58,900 --> 01:17:02,490 >> U let me imorru quddiem u jagħmlu l-loġika ta 'wara. 1552 01:17:02,490 --> 01:17:15,610 Filwaqt li l-karattru n-th fil i ma mhux ugwali backslash 0, imorru quddiem 1553 01:17:15,610 --> 01:17:17,930 u inkrement n. 1554 01:17:17,930 --> 01:17:23,506 U mbagħad jistampa n printf mija i. 1555 01:17:23,506 --> 01:17:29,200 Jien jsostnu li dan il-programm hawn, mingħajr sejħa tul spag, 1556 01:17:29,200 --> 01:17:31,150 figuri fl-tul ta 'sekwenza. 1557 01:17:31,150 --> 01:17:34,600 >> U l-magic huwa kompletament inkapsulati fl Linja 8 1558 01:17:34,600 --> 01:17:39,830 hawn ma 'dak qisu sintassi ġdida, din il backslash 0 fil-kwotazzjonijiet uniku. 1559 01:17:39,830 --> 01:17:41,360 Iżda għaliex huwa li? 1560 01:17:41,360 --> 01:17:44,100 Ukoll, tikkunsidra liema kien għaddej dan il-ħin. 1561 01:17:44,100 --> 01:17:47,990 >> U bħala twarrib qabel ninsa, realizzata wisq, li minbarra l-paġni bniedem 1562 01:17:47,990 --> 01:17:50,920 li jiġu mal tipiku sistema Linux bħal CS50 IDE, 1563 01:17:50,920 --> 01:17:53,770 tirrealizza li aħna, l persunal kors, ikollhom ukoll 1564 01:17:53,770 --> 01:17:56,030 għamlet verżjoni websajt ta 'din l-idea istess imsejħa 1565 01:17:56,030 --> 01:17:59,940 reference.cs50.net, li għandu kollha ta 'dawn l-istess paġni bniedem, 1566 01:17:59,940 --> 01:18:02,020 kollha ta 'dik l-istess dokumentazzjoni, kif ukoll 1567 01:18:02,020 --> 01:18:05,730 kaxxa ftit fil-quċċata li tippermetti inti biex jikkonvertu kollha ta 'l-ġust 1568 01:18:05,730 --> 01:18:09,025 lingwa arcane fis anqas komdi modalità, fejn aħna, il-persunal tal-għalliema, 1569 01:18:09,025 --> 01:18:12,150 għaddew u ppruvaw biex jissimplifikaw xi wħud mill-lingwa li żżomm affarijiet 1570 01:18:12,150 --> 01:18:14,830 iffukat fuq l-ideat, u mhux xi wħud mill-teknikalitajiet. 1571 01:18:14,830 --> 01:18:20,070 Allura wieħed iżomm f'moħħu, reference.cs50.net kif riżors ieħor ukoll. 1572 01:18:20,070 --> 01:18:23,800 >> Iżda għaliex jaħdem tul sekwenza fil il-mod I propost mument ilu? 1573 01:18:23,800 --> 01:18:25,160 Hawn Isem Zamyla darb'oħra. 1574 01:18:25,160 --> 01:18:27,690 U hawnhekk l-isem Zamyla tal boxed hekk kif I iżommu tagħmel, 1575 01:18:27,690 --> 01:18:31,360 li jagħti stampa li din hija, verament, biss sekwenza ta 'karattri. 1576 01:18:31,360 --> 01:18:34,260 Iżda Zamyla ma teżistix f'iżolament fi programm. 1577 01:18:34,260 --> 01:18:37,420 >> Meta inti tikteb u tmexxi programm, inti qed tuża Mac tiegħek jew PC tiegħek 1578 01:18:37,420 --> 01:18:40,010 bħala memorja, jew RAM biex ngħidu hekk. 1579 01:18:40,010 --> 01:18:42,620 U inti tista 'taħseb kompjuter tiegħek bħala li 1580 01:18:42,620 --> 01:18:44,730 lottijiet ta 'gigabytes ta' memorja dawn il-jiem. 1581 01:18:44,730 --> 01:18:47,700 U GIG ifisser biljuni, hekk biljuni ta 'bytes. 1582 01:18:47,700 --> 01:18:48,910 >> Imma ejja kontrina fil-ħin. 1583 01:18:48,910 --> 01:18:51,530 U ejja ngħidu li aħna qed jużaw kompjuter verament qodma li 1584 01:18:51,530 --> 01:18:55,150 biss għandha 32 bytes tal-memorja. 1585 01:18:55,150 --> 01:18:59,310 I tista ', fuq l-iskrin tal-kompjuter tiegħi, sempliċiment jiġbed dan out kif ġej. 1586 01:18:59,310 --> 01:19:05,240 >> I jistgħu sempliċement jgħidu li tiegħi kompjuter għandu dan kollu memorja. 1587 01:19:05,240 --> 01:19:08,830 U dan huwa bħal stick ta 'memorja, jekk inti recall stampa tagħna mill-aħħar darba. 1588 01:19:08,830 --> 01:19:11,670 U jekk I biss jaqsam B'dan darbiet biżżejjed, 1589 01:19:11,670 --> 01:19:15,040 I jsostnu li għandi 32 bytes tal-memorja fuq l-iskrin. 1590 01:19:15,040 --> 01:19:18,239 >> Issa, fir-realtà, nista 'biss jiġbed s'issa fuq dan l-iskrin hawn. 1591 01:19:18,239 --> 01:19:20,280 Hekk jien ser jimxi 'l quddiem, u biss b'konvenzjoni, 1592 01:19:20,280 --> 01:19:24,050 jiġbed memorja tal-kompjuter tiegħi bħala grilja, mhux linja biss bħala wieħed dritta. 1593 01:19:24,050 --> 01:19:28,190 Speċifikament, nitlob issa li dan il grilja, dan il 8 b'4 grilja, 1594 01:19:28,190 --> 01:19:31,800 biss jirrappreżenta 32 bytes kollha tal-memorja disponibbli fil Mac tiegħi, 1595 01:19:31,800 --> 01:19:33,030 jew disponibbli fil-PC tiegħi. 1596 01:19:33,030 --> 01:19:34,780 U dawn qed tgeżwir fuq żewġ linji, biss 1597 01:19:34,780 --> 01:19:38,030 minħabba li taqbel aktar fuq l-iskrin. 1598 01:19:38,030 --> 01:19:40,800 Iżda din hija l-ewwel byte. 1599 01:19:40,800 --> 01:19:41,990 Din hija t-tieni byte. 1600 01:19:41,990 --> 01:19:43,300 Dan huwa t-tielet byte. 1601 01:19:43,300 --> 01:19:45,310 >> U dan huwa l-byte 32. 1602 01:19:45,310 --> 01:19:52,910 Jew, jekk naħsbu bħal kompjuter xjentist, dan huwa byte 0, 1, 2, 3, 31. 1603 01:19:52,910 --> 01:19:55,950 Allura inti għandek 0-31, jekk tibda tgħodd f'0. 1604 01:19:55,950 --> 01:19:59,830 >> Mela jekk nużaw programm li s-sejħiet nikseb spag, 1605 01:19:59,830 --> 01:20:05,280 u nikbru string mill-bniedem bħal I ma sejjaħ Zamyla, Z-A-M-Y-L-A, 1606 01:20:05,280 --> 01:20:09,430 kif fid-dinja ma l- jżommu rekord tal-kompjuter ta 'liema byte, 1607 01:20:09,430 --> 01:20:12,230 li blokki ta 'memorja, jappartjeni għal liema string? 1608 01:20:12,230 --> 01:20:16,270 Fi kliem ieħor, jekk aħna tipproċedi biex tip isem ieħor fil-kompjuter, 1609 01:20:16,270 --> 01:20:19,890 bħal dan Andi, li ssejjaħ jiksbu sekwenza għat-tieni darba, 1610 01:20:19,890 --> 01:20:23,030 A-N-D-I għandu jispiċċa fil- memorja tal-kompjuter kif ukoll. 1611 01:20:23,030 --> 01:20:23,850 Imma kif? 1612 01:20:23,850 --> 01:20:29,700 >> Ukoll, jirriżulta li taħtha l- barnuża, liema Ċ ma meta ħażna kordi 1613 01:20:29,700 --> 01:20:35,080 li t-tipi tal-bniedem fi, jew li ġejjin minn xi sors ieħor, huwa 1614 01:20:35,080 --> 01:20:39,190 jiddelinea l-aħħar wieħed minnhom ma backslash character-- speċjali 1615 01:20:39,190 --> 01:20:44,750 0, li huwa biss mod speċjali kif tgħid 80 bits fil-filliera. 1616 01:20:44,750 --> 01:20:47,950 >> Allura A-- dan huwa n-numru 97 irtirar. 1617 01:20:47,950 --> 01:20:51,770 Allura xi mudell ta '8 bits jirrappreżenta numru deċimali 97.. 1618 01:20:51,770 --> 01:20:58,070 Din il backslash 0 huwa litteralment l-għadd 0, Nul a.k.a., N-U-L, b'differenza qabel, 1619 01:20:58,070 --> 01:20:59,630 N-U L-L, li aħna tkellem dwar. 1620 01:20:59,630 --> 01:21:05,700 Iżda għal issa, biss jafu li dan backslash 0 huwa biss 80 bits fil-filliera. 1621 01:21:05,700 --> 01:21:09,810 >> U huwa biss din il-linja fil- ramel li tgħid xejn fuq ix-xellug 1622 01:21:09,810 --> 01:21:12,610 jappartjeni għal string wieħed, jew tip ta 'data waħda. 1623 01:21:12,610 --> 01:21:15,480 U xejn lejn il-lemin jappartjeni għal xi ħaġa oħra. 1624 01:21:15,480 --> 01:21:17,440 Isem Andi, l sadanittant, li ftit viżwalment 1625 01:21:17,440 --> 01:21:21,310 jiġri biex nagħlaq fuq il-linja l-oħra, iżda li biss fih dettall estetika, 1626 01:21:21,310 --> 01:21:23,990 bl-istess mod huwa Nul terminat. 1627 01:21:23,990 --> 01:21:29,290 >> Hija sensiela ta 'karattri A-N-D-I, flimkien ma wieħed minn ħamsa karattru sigriet, 1628 01:21:29,290 --> 01:21:33,560 kollha 0 bits, li għadha tiddemarka -aħħar ta 'isem Andi kif ukoll. 1629 01:21:33,560 --> 01:21:37,120 U jekk aħna sejħa jiksbu sekwenza tielet darba fil-kompjuter biex tikseb string bħal 1630 01:21:37,120 --> 01:21:44,210 Maria, M-A-R-I-A, bl-istess mod huwa Maria Isem Nul terminat bil backslash 0. 1631 01:21:44,210 --> 01:21:47,170 >> Dan huwa fundamentalment differenti minn kif kompjuter se tipikament 1632 01:21:47,170 --> 01:21:51,850 jaħżnu numru sħiħ, jew float, jew oħrajn tipi ta 'data xorta, għaliex irtirar, 1633 01:21:51,850 --> 01:21:57,420 integer huwa normalment 32 bit, jew 4 bytes, jew forsi anke 64 bits, 1634 01:21:57,420 --> 01:21:59,100 jew tmien bytes. 1635 01:21:59,100 --> 01:22:02,620 Iżda ħafna primitives fil-kompjuter fi lingwa ta 'programmar 1636 01:22:02,620 --> 01:22:05,550 għandhom numru fiss ta ' bytes taħt il hood-- 1637 01:22:05,550 --> 01:22:08,100 forsi 1, forsi 2, forsi 4, forsi 8. 1638 01:22:08,100 --> 01:22:13,250 >> Iżda kordi, mid-disinn, għandhom Numru dinamika ta 'karattri. 1639 01:22:13,250 --> 01:22:16,980 Inti ma taf minn qabel, sakemm it-tipi tal-bniedem fil Z-A-M-Y-L-A, 1640 01:22:16,980 --> 01:22:21,400 jew M-A--R I-A, jew A-N-D-I. Ma tafx kif ħafna drabi l-utent se jintlaqtu 1641 01:22:21,400 --> 01:22:22,070 -keyboard. 1642 01:22:22,070 --> 01:22:26,490 Għalhekk, inti ma tafx kif karattri ħafna bil-quddiem 1643 01:22:26,490 --> 01:22:27,540 int ser bżonn. 1644 01:22:27,540 --> 01:22:31,840 >> U hekk Ċ biss tip ta weraq bħal Breadcrumb sigriet taħt il-barnuża 1645 01:22:31,840 --> 01:22:32,960 fl-aħħar tas-sekwenza. 1646 01:22:32,960 --> 01:22:39,280 Wara ħażna Z-A-M-Y L-A fil-memorja, huwa wkoll biss tpoġġi l-ekwivalenti 1647 01:22:39,280 --> 01:22:40,210 ta 'perjodu. 1648 01:22:40,210 --> 01:22:45,060 Fit-tmiem ta 'sentenza, li tqiegħed 80 bits, hekk kif 1649 01:22:45,060 --> 01:22:49,120 li tiftakar meta Zamyla jibda u jispiċċa. 1650 01:22:49,120 --> 01:22:51,490 >> Allura x'inhu l-konnessjoni, allura, għal dan il-programm? 1651 01:22:51,490 --> 01:22:55,190 Dan il-programm hawn, Stirling, hija sempliċement mekkaniżmu 1652 01:22:55,190 --> 01:22:57,970 biex jinkiseb string mill-utent, linja 6. 1653 01:22:57,970 --> 01:23:01,160 Linja 7, niddikjara varjabbli imsejħa nu stabbilixxa din ugwali għal 0. 1654 01:23:01,160 --> 01:23:08,680 >> U mbagħad fil-linja 8, I sempliċiment talab lill- kwistjoni, filwaqt li l-karattru n th ma 1655 01:23:08,680 --> 01:23:12,120 mhux ugwali kollha 0 bits-- fi kliem ieħor, ma 1656 01:23:12,120 --> 01:23:14,500 ugwali din il speëjali karattru, backslash 0, li 1657 01:23:14,500 --> 01:23:18,470 kien biss li character-- Nul speċjali imorru quddiem u biss inkrement n. 1658 01:23:18,470 --> 01:23:21,460 >> U jżomm tagħmel dan, u jżomm nagħmilx hekk, u tkompli tagħmel dan. 1659 01:23:21,460 --> 01:23:23,430 U hekk anke jekk fl -passat konna użati i, 1660 01:23:23,430 --> 01:23:25,181 huwa perfettament multa semantikament għall-użu n- 1661 01:23:25,181 --> 01:23:27,430 jekk int biss tipprova li count dan iż-żmien deliberatament, 1662 01:23:27,430 --> 01:23:28,720 u biss jixtiequ li hija sejħa n. 1663 01:23:28,720 --> 01:23:34,720 Allura dan biss iżomm tistaqsi l-mistoqsija, huwa l-karattru n-th fil i 0s kollha? 1664 01:23:34,720 --> 01:23:38,470 Jekk le, inħarsu lejn il-ħarsa li jmiss, tfittex għall-ieħor, tfittex għall-ieħor, 1665 01:23:38,470 --> 01:23:39,460 tfittex għall-ieħor. 1666 01:23:39,460 --> 01:23:45,540 >> Iżda hekk kif tara backslash 0, din il-linja loop-- 9 sa 11-- jieqaf. 1667 01:23:45,540 --> 01:23:49,640 Inti break out tal-linja waqt, tħalli ġewwa ta 'dik n varjabbli 1668 01:23:49,640 --> 01:23:54,530 għadd totali ta 'dawn kollha li karattri fit-sekwenza inti raw, 1669 01:23:54,530 --> 01:23:55,660 b'hekk istampar out. 1670 01:23:55,660 --> 01:23:56,760 Mela ejja tipprova dan. 1671 01:23:56,760 --> 01:23:59,500 >> Let me imorru quddiem u, mingħajr tuża l-funzjoni Stirling, 1672 01:23:59,500 --> 01:24:04,240 iżda biss bl-użu verżjoni homegrown tiegħi stess hawn imsejħa Stirling, let me imorru quddiem 1673 01:24:04,240 --> 01:24:07,700 u run Stirling, it-tip fil xi ħaġa bħall Zamyla, li naf minn qabel 1674 01:24:07,700 --> 01:24:08,670 huwa ta 'sitt karattri. 1675 01:24:08,670 --> 01:24:10,080 Ejja naraw jekk din taħdem. 1676 01:24:10,080 --> 01:24:10,920 Tabilħaqq, huwa sitta. 1677 01:24:10,920 --> 01:24:15,257 Ejja nippruvaw ma Rob, tliet karattri, tliet karattri kif ukoll, u ibqa 'sejjer hekk. 1678 01:24:15,257 --> 01:24:17,340 Allura dak kollu li għaddej fuq taħt il-barnuża. 1679 01:24:17,340 --> 01:24:19,548 U avviż l-konnessjonijiet, imbagħad, ma 'l-ewwel ġimgħa 1680 01:24:19,548 --> 01:24:22,370 tal-klassi, fejn tkellimna dwar xi ħaġa bħal estrazzjoni, 1681 01:24:22,370 --> 01:24:26,960 li huwa biss dan l-saffi ta 'ideat, jew kumplessità, fuq quċċata ta 'prinċipji bażiċi. 1682 01:24:26,960 --> 01:24:30,710 Hawnhekk, aħna qed tip ta 'tħares taħt il-barnuża ta Stirling, 1683 01:24:30,710 --> 01:24:33,510 biex ngħidu hekk, biex insemmu, kif se jiġi implimentat? 1684 01:24:33,510 --> 01:24:35,232 >> U nistgħu terġa 'timplimentaha nfusna. 1685 01:24:35,232 --> 01:24:37,440 Iżda aħna qed qatt darb'oħra ser li jerġa 'jimplementa Stirling. 1686 01:24:37,440 --> 01:24:39,780 Aħna biss ser użu Stirling sabiex 1687 01:24:39,780 --> 01:24:42,100 li fil-fatt tikseb xi kordi tul. 1688 01:24:42,100 --> 01:24:44,200 >> Imma hemm ebda magic taħt il-barnuża. 1689 01:24:44,200 --> 01:24:46,716 Jekk taf li taħtha il-barnuża, string 1690 01:24:46,716 --> 01:24:48,090 huwa biss sekwenza ta 'karattri. 1691 01:24:48,090 --> 01:24:51,090 U li sekwenza ta 'karattri kollha jistgħu jiġu indirizzati numerikament 1692 01:24:51,090 --> 01:24:53,330 ma parentesi 0, parentesi 1, parentesi 2, u int 1693 01:24:53,330 --> 01:24:57,420 jafu li fl-aħħar ta 'sekwenza huwa karattru speċjali, inti tista 'figura 1694 01:24:57,420 --> 01:25:01,710 kif jagħmlu l-aktar ħaġa fil- programm, minħabba li kull ma jeħodna għall 1695 01:25:01,710 --> 01:25:03,400 huwa qari u l-kitba memorja. 1696 01:25:03,400 --> 01:25:06,130 Dan huwa, li qed jinbidlu u tfittex fil-memorja, jew li jiċċaqilqu affarijiet 1697 01:25:06,130 --> 01:25:10,940 madwar fil-memorja, l-affarijiet ta 'stampar fuq l-iskrin, u oħrajn. 1698 01:25:10,940 --> 01:25:14,800 >> Mela ejja issa jużaw dan newfound għarfien ta 'dak kordi attwalment 1699 01:25:14,800 --> 01:25:17,910 huma taħt il-barnuża, u qaxxar saff wieħed ieħor 1700 01:25:17,910 --> 01:25:20,080 li sa issa konna ġew jinjora għal kollox. 1701 01:25:20,080 --> 01:25:22,650 B'mod partikolari, kwalunkwe ħin konna implimentat programm, 1702 01:25:22,650 --> 01:25:25,930 aħna kellna din il-linja tal-kodiċi qrib il-quċċata tiddikjara prinċipali. 1703 01:25:25,930 --> 01:25:27,810 U konna speċifikat null prinċipali int. 1704 01:25:27,810 --> 01:25:31,240 >> U li null ġewwa l parentesi Ġie qal dan il-ħin li ewlieni 1705 01:25:31,240 --> 01:25:33,440 innifsu ma tieħu ebda argument. 1706 01:25:33,440 --> 01:25:36,210 Kull input li ewlieni huwa se tikseb mill-utent 1707 01:25:36,210 --> 01:25:39,020 trid tiġi minn xi oħra mekkaniżmu, bħal nikseb int, 1708 01:25:39,020 --> 01:25:42,040 jew jiksbu float, jew tikseb spag, jew xi funzjoni oħra. 1709 01:25:42,040 --> 01:25:44,710 Iżda jirriżulta li meta tikteb programm, 1710 01:25:44,710 --> 01:25:47,690 inti tista 'attwalment tispeċifika li dan il-programm għandu 1711 01:25:47,690 --> 01:25:51,730 jieħdu l-inputs mill-bniedem fil-linja tal-kmand innifsu. 1712 01:25:51,730 --> 01:25:56,310 >> Fi kliem ieħor, anke jekk aħna s'issa ilhom biss ./hello bonjour 1713 01:25:56,310 --> 01:26:00,312 jew programmi simili, kollha tal- programmi oħra li aħna kont qed tuża, 1714 01:26:00,312 --> 01:26:02,770 li aħna lilna nfusna ma jiktbu, ilhom jieħdu, jidher, 1715 01:26:02,770 --> 01:26:05,210 linja ta 'kmand arguments-- affarijiet simili jagħmlu. 1716 01:26:05,210 --> 01:26:07,450 Inti ngħid xi ħaġa simili għamla, u mbagħad it-tieni kelma. 1717 01:26:07,450 --> 01:26:10,950 Jew clang, inti tgħidli clang, u mbagħad tieni kelma, l-isem ta 'fajl. 1718 01:26:10,950 --> 01:26:14,410 >> Jew anki RM jew CP, kif inti tista ' raw jew użati diġà 1719 01:26:14,410 --> 01:26:15,880 biex ineħħi jew kopja fajls. 1720 01:26:15,880 --> 01:26:18,920 Kollha ta 'dawn jieħdu l-hekk imsejħa linja ta 'kmand arguments-- 1721 01:26:18,920 --> 01:26:21,130 Kliem addizzjonali fil-pront tat-terminal. 1722 01:26:21,130 --> 01:26:23,260 Imma sa issa, aħna lilna nfusna ma kellhomx 1723 01:26:23,260 --> 01:26:27,080 dan il-lussu ta 'teħid kontribut mill- utent meta hu jew hi attwalment runs 1724 01:26:27,080 --> 01:26:29,120 il-programm innifsu fil-linja tal-kmand. 1725 01:26:29,120 --> 01:26:33,710 >> Iżda nistgħu nagħmlu dan billi terġa 'tiddikjara prinċipali miexja 'l quddiem, mhux bħala li 1726 01:26:33,710 --> 01:26:36,750 null fil-parentesi, iżda dawn iż-żewġ argumenti 1727 01:26:36,750 --> 01:26:40,600 instead-- l-ewwel numru sħiħ, u t-tieni ħaġa 1728 01:26:40,600 --> 01:26:44,170 ġdid, xi ħaġa li aħna qed tmur biex sejħa firxa, xi ħaġa simili fl-ispirtu 1729 01:26:44,170 --> 01:26:49,220 għal dak li rajna fil-bidu nett bħala lista, iżda firxa ta 'spag, kif aħna ser dalwaqt tara. 1730 01:26:49,220 --> 01:26:51,790 Imma ejja ara dan billi Bħala eżempju, qabel we 1731 01:26:51,790 --> 01:26:53,690 jiddistingwu eżattament dak li tfisser. 1732 01:26:53,690 --> 01:26:56,520 >> Mela jekk immur fis CS50 IDE hawn, stajt marret quddiem 1733 01:26:56,520 --> 01:27:01,840 u ddikjarat fil-fajl imsejjaħ argv0.c-mudell li ġej. 1734 01:27:01,840 --> 01:27:04,120 U tinnota l-unika ħaġa li l differenti s'issa 1735 01:27:04,120 --> 01:27:08,570 huwa li stajt inbidlet null li int argc string ARGV parentesi miftuħa, qrib 1736 01:27:08,570 --> 01:27:09,070 parentesi. 1737 01:27:09,070 --> 01:27:11,730 U avviż għal issa, hemm xejn ġewwa ta 'dawk parentesi. 1738 01:27:11,730 --> 01:27:12,620 >> M'hemm l-ebda numru. 1739 01:27:12,620 --> 01:27:15,070 U hemm l-ebda i, jew n, jew kull ittra oħra. 1740 01:27:15,070 --> 01:27:17,010 Jien biss jużaw il- parentesi kwadri għal issa, 1741 01:27:17,010 --> 01:27:19,510 għal raġunijiet aħna ser jaslu lura fl ftit mument. 1742 01:27:19,510 --> 01:27:21,330 >> U issa dak li jien ser tagħmel hu li din il-. 1743 01:27:21,330 --> 01:27:26,680 Jekk argc huwa daqs huwa daqs 2-- u jfakkru li jkun daqs ugwali 1744 01:27:26,680 --> 01:27:30,040 hija l-operatur ugwaljanza tqabbil ix-xellug u d-dritt għall-ugwaljanza. 1745 01:27:30,040 --> 01:27:31,790 Mhuwiex l-assenjazzjoni operatur, li huwa 1746 01:27:31,790 --> 01:27:36,510 is-sinjal ugwali uniku, li jfisser kopja minn fuq il-lemin li l-xi valur xellug. 1747 01:27:36,510 --> 01:27:42,840 >> Jekk argc huwa ekwivalenti hija daqs 2, nixtieq li jiġifieri, printf, bonjour, percents, linja ġdida, 1748 01:27:42,840 --> 01:27:47,340 u mbagħad plagg in-- u hawn l-ġdida trick-- ARGV parentesi 1, minħabba raġunijiet 1749 01:27:47,340 --> 01:27:48,840 li aħna ser terga 'lura għal fil-mument. 1750 01:27:48,840 --> 01:27:52,110 Inkella jekk argc ma ugwali 2, inti taf liema? 1751 01:27:52,110 --> 01:27:57,400 Ejja biss jmorru 'l quddiem u, bħas-soltu, jistampa l bonjour dinja bl-ebda sostituzzjoni. 1752 01:27:57,400 --> 01:28:02,710 >> Għalhekk jidher li jekk argc, li stands għall-għadd argument, huwa daqs 2, 1753 01:28:02,710 --> 01:28:04,740 Jien ser jistampa bonjour xi ħaġa jew oħra. 1754 01:28:04,740 --> 01:28:07,560 Inkella, fil-kontumaċja, jien morna għall-istampa bonjour dinja. 1755 01:28:07,560 --> 01:28:08,770 Allura dak li jfisser dan? 1756 01:28:08,770 --> 01:28:15,550 >> Well, let me imorru quddiem u jiffrankaw dan il-fajl, u mbagħad ma jagħmlu argv0, 1757 01:28:15,550 --> 01:28:18,940 u mbagħad ./argv0, Ikteb. 1758 01:28:18,940 --> 01:28:20,300 U jgħid bonjour dinja. 1759 01:28:20,300 --> 01:28:21,260 Issa, għaliex huwa li? 1760 01:28:21,260 --> 01:28:24,730 >> Ukoll, jirriżulta ghaċ tmexxi programm fil-linja tal-kmand, 1761 01:28:24,730 --> 01:28:29,570 inti timla dak li aħna ser ġeneralment sejħa vettur argument. 1762 01:28:29,570 --> 01:28:33,100 Fi kliem ieħor, awtomatikament l- kompjuter, is-sistema operattiva, 1763 01:28:33,100 --> 01:28:38,340 se idejn għall-programm tiegħek nnifisha lista ta 'kollha tal-kliem 1764 01:28:38,340 --> 01:28:40,850 li l-bniedem ittajpjat fil il pront, fil-każ li inti 1765 01:28:40,850 --> 01:28:43,790 l-programmer trid tagħmel xi ħaġa ma dik l-informazzjoni. 1766 01:28:43,790 --> 01:28:48,540 U f'dan il-każ, l-unika kelma Stajt ittajpjat fil-prompt huwa ./argv0. 1767 01:28:48,540 --> 01:28:55,420 >> U għalhekk l-għadd ta 'argumenti li hija jiġu mgħoddija lill-programm tiegħi huwa biss wieħed. 1768 01:28:55,420 --> 01:28:58,880 Fi kliem ieħor, l-argument għadd, inkella magħruf bħala argc 1769 01:28:58,880 --> 01:29:00,970 hawnhekk bħala numru sħiħ, huwa biss wieħed. 1770 01:29:00,970 --> 01:29:03,000 Wieħed, naturalment, ma tkunx daqs tnejn. 1771 01:29:03,000 --> 01:29:05,980 U għalhekk dan huwa dak prints, bonjour dinja. 1772 01:29:05,980 --> 01:29:08,170 >> Imma let me jieħdu din x'imkien. 1773 01:29:08,170 --> 01:29:09,930 Ħalluni ngħid, argv0. 1774 01:29:09,930 --> 01:29:12,740 U allura kif madwar Maria? 1775 01:29:12,740 --> 01:29:14,990 U mbagħad hit Ikteb. 1776 01:29:14,990 --> 01:29:18,020 >> U avviż dak li magically jiġri hawn. 1777 01:29:18,020 --> 01:29:22,640 Issa, minflok dinja bonjour, jien biddel l-imġiba ta 'dan il-programm 1778 01:29:22,640 --> 01:29:26,310 billi l-input mhux minn get sekwenza jew xi funzjoni oħra, 1779 01:29:26,310 --> 01:29:30,570 imma minn, apparentement, kmand tiegħi innifsu, dak I oriġinarjament ittajpjat fil. 1780 01:29:30,570 --> 01:29:35,720 U nista 'tilgħab din il-logħba mill-ġdid billi jinbidlu biex Stelios, per eżempju. 1781 01:29:35,720 --> 01:29:38,400 >> U issa nara isem ieħor għadu. 1782 01:29:38,400 --> 01:29:40,540 U hawn, I jista 'jgħid Andi. 1783 01:29:40,540 --> 01:29:42,137 U jien jista 'jgħid Zamyla. 1784 01:29:42,137 --> 01:29:45,220 U nistgħu tilgħab din il-logħba ġurnata kollha, biss fejn jitwaħħal fil-valuri differenti, 1785 01:29:45,220 --> 01:29:49,550 sakemm I jipprovdi eżattament żewġ kelmiet fil-pront, 1786 01:29:49,550 --> 01:29:52,260 b'tali mod li argc, l-argument tiegħi għadd, hija ta '2. 1787 01:29:52,260 --> 01:29:57,240 >> Do nara dak l-isem pplaggjat fil printf, kull din il-kundizzjoni hawn? 1788 01:29:57,240 --> 01:30:00,550 Allura aħna jidhru li jkollhom issa il-kapaċità espressiva 1789 01:30:00,550 --> 01:30:04,410 ta 'teħid input mill b'mekkaniżmu ieħor, mill-hekk imsejħa linja tal-kmand, 1790 01:30:04,410 --> 01:30:07,000 aktar milli jkollhom għalfejn jistennew sakemm l-utent tiġġestixxi l-programm, 1791 01:30:07,000 --> 01:30:10,220 u mbagħad fil-pront lilu jew lilha jużaw xi ħaġa bħal string nikseb. 1792 01:30:10,220 --> 01:30:11,230 >> Allura dak li huwa dan? 1793 01:30:11,230 --> 01:30:15,010 Argc, għal darb'oħra, huwa biss integer, in-numru ta 'words-- arguments-- 1794 01:30:15,010 --> 01:30:18,540 li l-utent ipprovdut fl- pront, fuq it-tieqa terminal, 1795 01:30:18,540 --> 01:30:20,110 inklużi l-isem tal-programm. 1796 01:30:20,110 --> 01:30:23,340 Allura ./argv0 tagħna huwa, effettivament, Isem tal-programm, 1797 01:30:23,340 --> 01:30:24,520 jew kif I run-programm. 1798 01:30:24,520 --> 01:30:25,810 >> Li jgħodd bħala kelma. 1799 01:30:25,810 --> 01:30:27,080 Allura argc ikun 1. 1800 01:30:27,080 --> 01:30:29,750 Imma meta nikteb Stelios, jew Andi, jew Zamyla, jew Maria, 1801 01:30:29,750 --> 01:30:31,660 dan ifisser l-għadd argument huwa tnejn. 1802 01:30:31,660 --> 01:30:33,910 U hekk issa hemm żewġ kelmiet li għaddew bi. 1803 01:30:33,910 --> 01:30:36,070 >> U avviż, nistgħu tkompli din il-loġika. 1804 01:30:36,070 --> 01:30:39,050 Jekk I attwalment ngħid xi ħaġa simili Zamyla Chan, 1805 01:30:39,050 --> 01:30:42,200 isem sħiħ, b'hekk tgħaddi tliet argumenti b'kollox, 1806 01:30:42,200 --> 01:30:47,410 issa jgħid l-inadempjenza mill-ġdid, minħabba li, naturalment, 3 mhuwiex ugwali għal 2. 1807 01:30:47,410 --> 01:30:54,080 >> U għalhekk b'dan il-mod, għandi aċċess permezz ARGV dan l-argument ġdid 1808 01:30:54,080 --> 01:30:56,080 li nistgħu teknikament sejħa xejn li rridu. 1809 01:30:56,080 --> 01:30:58,940 Iżda b'konvenzjoni, huwa ARGV u argc, rispettivament. 1810 01:30:58,940 --> 01:31:04,470 ARGV, l-argument vector, huwa tip ta sinonimu għal programmar 1811 01:31:04,470 --> 01:31:07,140 Karatteristika fis-C imsejħa firxa. 1812 01:31:07,140 --> 01:31:14,410 >> Firxa hija lista ta 'valuri simili lura, li lura, għal wara, biex lura. 1813 01:31:14,410 --> 01:31:17,810 Fi kliem ieħor, jekk wieħed huwa dritt hawn fil RAM, il-wieħed li jmiss huwa dritt li jmiss lilu, 1814 01:31:17,810 --> 01:31:18,800 u d-dritt li jmiss lilu. 1815 01:31:18,800 --> 01:31:20,101 Huma qed mhux kollha fuq il-post. 1816 01:31:20,101 --> 01:31:23,100 U din l-aħħar ipoteżi, fejn l-affarijiet huma kollha fuq il-post fil-memorja, 1817 01:31:23,100 --> 01:31:25,082 jista 'attwalment tkun karatteristika qawwija. 1818 01:31:25,082 --> 01:31:28,040 Iżda aħna ser terga 'lura għal li meta aħna jitkellmu dwar strutturi ta 'dejta fancier. 1819 01:31:28,040 --> 01:31:32,260 Għal issa, firxa hija biss blokki ta 'memorja kontigwa, 1820 01:31:32,260 --> 01:31:36,520 kull wieħed minn l-elementi tagħhom huma lura, li lura, għal wara, għal wara, 1821 01:31:36,520 --> 01:31:38,050 u ġeneralment l-istess tip. 1822 01:31:38,050 --> 01:31:42,630 >> Mela jekk inti taħseb dwar, minn mument ilu, dak li huwa string? 1823 01:31:42,630 --> 01:31:50,460 Ukoll, string, bħall Zamyla, Z-A-M-Y-L-A, hija, teknikament, 1824 01:31:50,460 --> 01:31:51,400 biss firxa. 1825 01:31:51,400 --> 01:31:53,700 Huwa ta 'firxa ta' karattri. 1826 01:31:53,700 --> 01:31:59,250 >> U hekk jekk aħna verament tiġbed dan, kif jien għamlet qabel, bħala blokki ta 'memorja, 1827 01:31:59,250 --> 01:32:04,510 jirriżulta li kull wieħed minn dawn karattri jieħu byte. 1828 01:32:04,510 --> 01:32:07,630 U allura hemm dak speċjali karattru sentinella, l-backslash 0, 1829 01:32:07,630 --> 01:32:12,360 jew kollha tmien 0 bits, li tiddemarka tmiem dak sekwenza. 1830 01:32:12,360 --> 01:32:15,090 Allura string, jirriżulta barra, nikkwota spag unquote, 1831 01:32:15,090 --> 01:32:20,580 huwa biss firxa ta 'chara-- char jkunu ta 'tip ta' data attwali. 1832 01:32:20,580 --> 01:32:24,560 >> U issa ARGV, meanwhile-- ejja jmorru lura għall-programm. 1833 01:32:24,560 --> 01:32:29,582 ARGV, anke jekk naraw il-kelma sekwenza hawnhekk, mhuwiex string innifsu. 1834 01:32:29,582 --> 01:32:33,640 ARGV, l-argument vector, firxa ta 'spag. 1835 01:32:33,640 --> 01:32:37,620 >> Hekk biss kif inti jista 'jkollhom firxa ta' karattri, inti jista 'jkollhom livell ogħla, 1836 01:32:37,620 --> 01:32:46,279 firxa ta 'strings-- hekk, per eżempju, meta I ittajpjat mument ilu ./argv0 1837 01:32:46,279 --> 01:33:00,150 argv0, l-ispazju Z-A-M-Y-L-A, I sostniet li ARGV kellu żewġ kordi fl ./argv0 it--, 1838 01:33:00,150 --> 01:33:03,185 u Z-A-M-Y-L-A. fl kliem ieħor, argc kien 2. 1839 01:33:03,185 --> 01:33:03,980 Għaliex huwa li? 1840 01:33:03,980 --> 01:33:08,370 >> Ukoll, effettivament, x'inhu għaddej fuq hija li kull wieħed minn dawn kordi 1841 01:33:08,370 --> 01:33:13,990 huwa, ovvjament, firxa ta 'karattri bħal qabel, li kull waħda li karattri 1842 01:33:13,990 --> 01:33:15,670 jieħu byte wieħed. 1843 01:33:15,670 --> 01:33:19,720 U ma jikkonfondi 0 attwali fl-isem tal-programm mal-0, 1844 01:33:19,720 --> 01:33:22,040 li jfisser 80 bits kollha. 1845 01:33:22,040 --> 01:33:27,140 U Zamyla, sadanittant, għadha wkoll firxa ta 'karattri. 1846 01:33:27,140 --> 01:33:31,450 >> Għalhekk fl-aħħar tal-ġurnata, huwa verament tidher bħal dan taħt il-barnuża. 1847 01:33:31,450 --> 01:33:38,800 Iżda ARGV, min-natura ta 'kif prinċipali xogħlijiet, tippermetti lili biex nagħlaq dan kollu 1848 01:33:38,800 --> 01:33:44,810 up fis, jekk inti se, firxa akbar li, jekk aħna ftit matul jissimplifikaw 1849 01:33:44,810 --> 01:33:48,180 dak l-istampa Dehra u ma pjuttost tiġbed biex iżidu hemmhekk, 1850 01:33:48,180 --> 01:33:56,720 dan il-firxa hija biss ta 'daqs 2, l-ewwel Element tagħha fih spag, 1851 01:33:56,720 --> 01:33:59,230 it-tieni element ta ' li fih sekwenza. 1852 01:33:59,230 --> 01:34:01,687 U, min-naħa, jekk inti tip ta 'zoom fl fuq kull 1853 01:34:01,687 --> 01:34:03,770 ta 'dawk kordi, dak li ara taħt il-barnuża 1854 01:34:03,770 --> 01:34:07,190 hija li kull sekwenza huwa biss firxa ta 'karattri. 1855 01:34:07,190 --> 01:34:11,680 >> Issa, hekk kif ma kordi, konna kapaċi jiksbu aċċess 1856 01:34:11,680 --> 01:34:15,260 l-karattru numru i fir string jużaw dik parentesi notazzjoni kwadru. 1857 01:34:15,260 --> 01:34:17,320 Bl-istess mod, ma arrays b'mod ġenerali, nistgħu 1858 01:34:17,320 --> 01:34:22,700 użu parentesi kwadri notazzjoni biex tikseb fi kwalunkwe numru ta 'spag fil-firxa? 1859 01:34:22,700 --> 01:34:25,100 Per eżempju, let me imorru quddiem u tagħmel dan. 1860 01:34:25,100 --> 01:34:32,420 >> Let me imorru quddiem u joħolqu argv1.c, li hija differenti ftit dan iż-żmien. 1861 01:34:32,420 --> 01:34:35,635 Minflok ta 'verifika għall argc2, Jien ser minflok tagħmel dan. 1862 01:34:35,635 --> 01:34:41,270 Għal int niġi 0, I hija inqas minn argc, I flimkien ma flimkien, 1863 01:34:41,270 --> 01:34:47,920 u mbagħad jistampa ġewwa ta 'dan, mija i, linja ġdida, u mbagħad 1864 01:34:47,920 --> 01:34:50,740 ARGV parentesi i. 1865 01:34:50,740 --> 01:34:55,220 >> Allura fi kliem ieħor, jien mhux qed jitratta ma ' karattri individwali fil-mument. 1866 01:34:55,220 --> 01:35:00,190 ARGV, kif implikat li dawn kwadru vojta ċingi għad-dritt ta 'l-ARGV isem, 1867 01:35:00,190 --> 01:35:03,320 tfisser ARGV huwa firxa ta 'spag. 1868 01:35:03,320 --> 01:35:04,870 U argc huwa biss int. 1869 01:35:04,870 --> 01:35:08,800 >> Din il-linja hawn, 6, huwa qal sett i ugwali għal 0. 1870 01:35:08,800 --> 01:35:11,980 Count it-triq kollha sa l-, imma ma jinkludux, argc. 1871 01:35:11,980 --> 01:35:14,010 U mbagħad fuq kull iterazzjoni, jistampa string. 1872 01:35:14,010 --> 01:35:14,800 Liema string? 1873 01:35:14,800 --> 01:35:17,270 >> -Sekwenza numru i fir ARGV. 1874 01:35:17,270 --> 01:35:19,530 So filwaqt li qabel I kien bl-użu parentesi kwadra 1875 01:35:19,530 --> 01:35:22,180 notazzjoni li jiksbu fil-ith karattru fi string, issa 1876 01:35:22,180 --> 01:35:27,240 Jien bl-użu notazzjoni parentesi kwadra li jiksbu fil-sekwenza ith fil-firxa. 1877 01:35:27,240 --> 01:35:30,310 Allura huwa tip ta 'saff wieħed hawn fuq, kunċettwalment. 1878 01:35:30,310 --> 01:35:35,390 >> U hekk x'hemm pulita dwar dan -programm issa, jekk I jikkompilaw argv1, 1879 01:35:35,390 --> 01:35:42,067 u mbagħad do ./argv1, u mbagħad it-tip fil xi ħaġa simili Baz bar foo, 1880 01:35:42,067 --> 01:35:45,400 li huma t-tliet kelmiet default li numru xjentist kompjuter jilħaq għal kwalunkwe ħin 1881 01:35:45,400 --> 01:35:51,010 hu jew hi teħtieġ xi kliem placeholder, u hit Ikteb, kull waħda minn dawn il-kliem, 1882 01:35:51,010 --> 01:35:54,980 inklużi l-isem tal-programm, li hija fil ARGV fl-ewwel lok, 1883 01:35:54,980 --> 01:35:58,320 jispiċċa milli jkun stampat wieħed kull darba. 1884 01:35:58,320 --> 01:36:05,290 U jekk nibdel dan, u jien ngħid xi ħaġa bħal argv1 Zamyla Chan, 1885 01:36:05,290 --> 01:36:08,800 aħna nikseb kollha tlieta minn dawk kliem, li huwa argv0, 1886 01:36:08,800 --> 01:36:14,400 argv1, argv2, għaliex f'dan il- każ argc, l-għadd, hija ta '3. 1887 01:36:14,400 --> 01:36:20,020 >> Imma x'hemm pulita hija jekk inti tifhem li ARGV huwa biss firxa ta 'kordi, 1888 01:36:20,020 --> 01:36:24,910 u inti tifhem li string firxa ta 'karattri, 1889 01:36:24,910 --> 01:36:29,470 nistgħu ngħidu tip ta jużaw dan parentesi kwadra notazzjoni iktar minn darba 1890 01:36:29,470 --> 01:36:33,320 biex jagħżlu string, u mbagħad jagħżlu karattru fi ħdan il spag, 1891 01:36:33,320 --> 01:36:35,730 għadis fil-fond kif ġej. 1892 01:36:35,730 --> 01:36:40,100 F'dan l-eżempju, let me go quddiem u sejħa dan argv2.c. 1893 01:36:40,100 --> 01:36:43,920 1894 01:36:43,920 --> 01:36:50,180 U f'dan l-eżempju, let me imorru quddiem u jagħmlu l-following-- għall-int i tikseb 0, 1895 01:36:50,180 --> 01:36:53,286 i huwa inqas minn argc, i flimkien plus, bħad qabel. 1896 01:36:53,286 --> 01:36:55,910 Għalhekk fl words-- oħra u issa din huwa jkollna kkumplikata biżżejjed. 1897 01:36:55,910 --> 01:36:59,940 Imbagħad jien ser ngħid jtenni fuq kordi fl ARGV, 1898 01:36:59,940 --> 01:37:01,294 bħala kumment li myself. 1899 01:37:01,294 --> 01:37:03,960 U mbagħad jien ser ikollhom nested għall loop, li inti probabilment 1900 01:37:03,960 --> 01:37:06,290 għamlu, jew ikkunsidrat tagħmel, fil Scratch, fejn 1901 01:37:06,290 --> 01:37:08,600 Jien se ngħid int-- jien mhux ser tuża i mill-ġdid, 1902 01:37:08,600 --> 01:37:12,590 minħabba I ma jridux dell, jew tip ta 'jissostitwixxu l-i eżistenti. 1903 01:37:12,590 --> 01:37:15,780 >> Jien ser, minflok, ngħidu j, għaliex li l-go tiegħi biex varjabbli wara i, 1904 01:37:15,780 --> 01:37:18,590 meta jien biss tipprova li count numri sempliċi. 1905 01:37:18,590 --> 01:37:28,850 Għal j gets 0-- u wkoll, n, li jkun ser jiksbu t-tul poppa tal faxxa ARGV i, 1906 01:37:28,850 --> 01:37:36,030 sakemm j hija inqas minn metru, j flimkien flimkien, jagħmlu dan li ġej. 1907 01:37:36,030 --> 01:37:37,500 U hawnhekk l-parti interessanti. 1908 01:37:37,500 --> 01:37:46,330 >> Jistampa karattru u linja ġdida, fejn jitwaħħal fil-bracket tal ARGV i, parentesi j. 1909 01:37:46,330 --> 01:37:47,940 OK, so let me żid xi kummenti hawn. 1910 01:37:47,940 --> 01:37:54,820 Jtenni fuq karattri fil string kurrenti, 1911 01:37:54,820 --> 01:38:02,290 print-j th karattru sekwenza numru i. 1912 01:38:02,290 --> 01:38:04,630 Allura issa, ejja jikkunsidraw dak li jfisser dawn il-kummenti. 1913 01:38:04,630 --> 01:38:06,750 >> Jtenni fuq il-kordi fil argv-- kemm 1914 01:38:06,750 --> 01:38:09,300 kordi huma ARGV, li hija l-firxa? 1915 01:38:09,300 --> 01:38:13,420 Argc ħafna, hekk jien iterazzjoni minn i ugwali 0 sa argc. 1916 01:38:13,420 --> 01:38:20,020 Sadanittant, kemm karattri huma fis-sekwenza numru i fir ARGV? 1917 01:38:20,020 --> 01:38:22,880 >> Ukoll, biex tikseb din ir-risposta, I biss sejħa tul sekwenza 1918 01:38:22,880 --> 01:38:26,810 fuq lI kura sekwenza attwali dwar, li hija ARGV parentesi i. 1919 01:38:26,810 --> 01:38:30,090 U jien ser taħżen temporanjament dik valur n, biss għal skopijiet caching, 1920 01:38:30,090 --> 01:38:31,590 biex tiftakar għall-effiċjenza. 1921 01:38:31,590 --> 01:38:36,330 U mbagħad jien ser initialize j għal 0, jibqgħu għaddejjin sakemm j huwa inqas minn n, 1922 01:38:36,330 --> 01:38:38,430 u fuq kull inkrement iterazzjoni j. 1923 01:38:38,430 --> 01:38:41,030 >> U mbagħad fil hawn, kull kumment tiegħi fuq il-linja 12, 1924 01:38:41,030 --> 01:38:43,390 jistampa karattru, segwit minn linja ġdida, 1925 01:38:43,390 --> 01:38:48,140 parentesi speċifikament ARGV i me tagħti l-sekwenza numru i 1926 01:38:48,140 --> 01:38:51,690 fil argv-- hekk l-ewwel kelma, il- tieni kelma, it-tielet kelma, ikun x'ikun. 1927 01:38:51,690 --> 01:38:57,370 U mbagħad ads j fil-fond, u gets lili il-karattru-j th tal-kelma. 1928 01:38:57,370 --> 01:39:02,200 U għalhekk, fil-fatt, inti tista 'tikkura ARGV bħala multi-dimensjonali, 1929 01:39:02,200 --> 01:39:06,050 bħala żewġ dimensjonijiet, array, li permezz tagħha kull tip kelma ta 'jistenna 1930 01:39:06,050 --> 01:39:08,580 bħal dan f'moħħu s tiegħek għajn, u kull karattru 1931 01:39:08,580 --> 01:39:10,930 huwa tip ta 'kompost kolonna, jekk li tgħin. 1932 01:39:10,930 --> 01:39:13,260 >> Fir-realtà, meta aħna tease dan il bogħod minn xulxin fil-ġimgħat li ġejjin, 1933 01:39:13,260 --> 01:39:15,580 li għaddej biex tkun ftit aktar sofistikata minn dik. 1934 01:39:15,580 --> 01:39:17,800 Imma inti tista 'verament think ta 'dak, għal issa, 1935 01:39:17,800 --> 01:39:22,110 kif biss dan b'żewġ dimensjonijiet firxa, fejn livell wieħed ta 'dan 1936 01:39:22,110 --> 01:39:23,260 huwa kollha tal-kordi. 1937 01:39:23,260 --> 01:39:26,760 U mbagħad jekk inti adsa aktar profonda, inti jistgħu jiksbu mill-karattri individwali 1938 01:39:26,760 --> 01:39:29,600 Hemmhekk billi tuża din notazzjoni hawn. 1939 01:39:29,600 --> 01:39:31,620 >> Allura x'inhi l-effett nett? 1940 01:39:31,620 --> 01:39:34,970 Let me imorru quddiem u jagħmluha darn argv2-- dan. 1941 01:39:34,970 --> 01:39:36,210 I għamel żball hawn. 1942 01:39:36,210 --> 01:39:40,160 B'mod impliċitu li tiddikjara l- Stirling funzjoni librerija. 1943 01:39:40,160 --> 01:39:42,190 Allura dan il-ħin, huwa forsi xieraq 1944 01:39:42,190 --> 01:39:45,130 li aħna qed tip ta 'irfinar eżattament fejn bdejna. 1945 01:39:45,130 --> 01:39:48,160 >> I invitat up, impliċitament li tiddikjara Stirling funzjoni librerija. 1946 01:39:48,160 --> 01:39:48,987 OK, stenna minuta. 1947 01:39:48,987 --> 01:39:51,070 Niftakar li, speċjalment peress li huwa dritt hawn. 1948 01:39:51,070 --> 01:39:54,490 I-ħtieġa li jinkludi string.h fil din il-verżjoni tal-programm. 1949 01:39:54,490 --> 01:40:00,050 >> Let me imorru quddiem u jinkludu string.h, ħlief li, imorru quddiem 1950 01:40:00,050 --> 01:40:04,460 u recompile argv2. 1951 01:40:04,460 --> 01:40:08,390 U issa, here we go, jagħmlu argv2, Ikteb. 1952 01:40:08,390 --> 01:40:10,590 U għalkemm huwa ftit cryptic ewwel daqqa t'għajn, 1953 01:40:10,590 --> 01:40:15,690 Avviż li, tabilħaqq, dak huwa stampat huwa dot argv2. 1954 01:40:15,690 --> 01:40:19,970 >> Imma jekk jien tip kelmiet wara l pront, bħal argv2 Zamyla Chan, 1955 01:40:19,970 --> 01:40:22,560 Daħħal, ukoll ftit cryptic ewwel daqqa t'għajn. 1956 01:40:22,560 --> 01:40:30,540 Imma jekk irridu iscroll back-up, ./argv2 Z-A-M-Y L-AC-H-A-N. 1957 01:40:30,540 --> 01:40:32,190 Allura aħna ve tennew fuq kull kelma. 1958 01:40:32,190 --> 01:40:37,770 U, min-naħa, konna tennew aktar minn kull karattru ġo kelma. 1959 01:40:37,770 --> 01:40:40,040 >> Issa, wara dan kollu, tirrealizza li hemm 1960 01:40:40,040 --> 01:40:43,120 Dettall ieħor aħna kont qed tip ta jinjora dan iż-żmien kollu. 1961 01:40:43,120 --> 01:40:46,180 Aħna biss teased barra dak -inputs ewlenin tiegħu tista 'tkun? 1962 01:40:46,180 --> 01:40:47,780 Xi ngħidu dwar l-output prinċipali tal? 1963 01:40:47,780 --> 01:40:50,540 >> Kollha ta 'dan iż-żmien, aħna kont qed biss ikkupjar u pasta 1964 01:40:50,540 --> 01:40:53,870 l-int kelma quddiem prinċipali, għalkemm inti tista 'tara fuq l-internet, 1965 01:40:53,870 --> 01:40:58,340 kultant b'mod żbaljat fil-verżjonijiet anzjani ta 'C u kompilaturi, li jgħidu null, 1966 01:40:58,340 --> 01:40:59,410 jew xejn affattu. 1967 01:40:59,410 --> 01:41:01,580 Iżda, fil-fatt, għall-verżjoni ta 'C li aħna qed jużaw, 1968 01:41:01,580 --> 01:41:06,180 C 11, jew 2011, tirrealizza li għandu jkun int. 1969 01:41:06,180 --> 01:41:09,300 U għandu jkun jew nulli jew argc u ARGV hawn. 1970 01:41:09,300 --> 01:41:10,790 >> Iżda għaliex int prinċipali? 1971 01:41:10,790 --> 01:41:12,480 Dak li huwa attwalment jirritorna? 1972 01:41:12,480 --> 01:41:16,280 Ukoll, jirriżulta kollu ta 'dan iż-żmien, kwalunkwe ħin li inti stajt bil-miktub ta 'prinċipali programm 1973 01:41:16,280 --> 01:41:18,440 huwa dejjem jirritorna xi ħaġa. 1974 01:41:18,440 --> 01:41:19,960 Iżda huwa kien jagħmel dan segretament. 1975 01:41:19,960 --> 01:41:23,350 >> Li xi ħaġa hija int, kif linja 5 jissuġġerixxi. 1976 01:41:23,350 --> 01:41:24,225 Imma dak int? 1977 01:41:24,225 --> 01:41:26,100 Ukoll, hemm dan konvenzjoni fl-ipprogrammar, 1978 01:41:26,100 --> 01:41:29,790 li permezz tiegħu jekk xejn ikollu marret ħażin u kollox huwa tajjeb, 1979 01:41:29,790 --> 01:41:34,250 programmi u l-funzjonijiet ġenerali return-- kemmxejn counterintuitively-- 1980 01:41:34,250 --> 01:41:35,230 0. 1981 01:41:35,230 --> 01:41:38,070 0 ġeneralment ifisser kollox huwa tajjeb. 1982 01:41:38,070 --> 01:41:40,610 Għalhekk anki jekk inti taħseb bħala falz f'ħafna kuntesti, 1983 01:41:40,610 --> 01:41:42,930 fil-fatt ġeneralment ifisser ħaġa tajba 1984 01:41:42,930 --> 01:41:49,560 >> Sadanittant, jekk programm prospetti 1, jew negattiva 1, jew 5, jew negattiva 42, 1985 01:41:49,560 --> 01:41:52,941 jew kwalunkwe 0 nuqqas valur, li ġeneralment ifisser 1986 01:41:52,941 --> 01:41:54,190 li xi ħaġa marret ħażin. 1987 01:41:54,190 --> 01:41:56,700 Fil-fatt, fuq Mac tiegħek stess jew PC, inti jista 'jkollok attwalment raw 1988 01:41:56,700 --> 01:42:01,050 messaġġ ta 'żball, li bih jgħid xi ħaġa jew oħra, iżball 1989 01:42:01,050 --> 01:42:04,940 kodiċi negattiv 42, jew żball kodiċi 23, jew xi ħaġa bħal dik. 1990 01:42:04,940 --> 01:42:08,980 Dak in-numru huwa ġeneralment biss ħjiel li l-programmer, jew il-kumpanija 1991 01:42:08,980 --> 01:42:11,174 li għamel l-software, x'mar ħażin u għaliex, 1992 01:42:11,174 --> 01:42:13,590 sabiex ikunu jistgħu jfittxu permezz dokumentazzjoni tagħhom jew kodiċi, 1993 01:42:13,590 --> 01:42:15,465 u ċifra barra dak l- Żball effettivament tfisser. 1994 01:42:15,465 --> 01:42:18,400 Huwa ġeneralment mhux utli għalina utenti finali. 1995 01:42:18,400 --> 01:42:20,550 >> Imma meta prospetti ewlenin 0, kollox huwa tajjeb. 1996 01:42:20,550 --> 01:42:23,770 U jekk inti ma tispeċifika liema prinċipali għandu jirritorna, 1997 01:42:23,770 --> 01:42:26,950 se biss awtomatikament ritorn 0. għalik. 1998 01:42:26,950 --> 01:42:30,870 Iżda jirritornaw xi ħaġa inkella huwa attwalment utli. 1999 01:42:30,870 --> 01:42:34,660 >> F'dan il-programm finali, let me imorru quddiem u sejħa dan exit.c, 2000 01:42:34,660 --> 01:42:38,630 u jintroduċu l-aħħar tal-lum suġġetti, magħrufa bħala kodiċi żball. 2001 01:42:38,630 --> 01:42:42,930 Let me imorru quddiem u jinkludu tagħna fajls familjari up fuq, do int prinċipali. 2002 01:42:42,930 --> 01:42:49,500 U din id-darba, ejja do argc int, spag ARGV, u bil-parentesi tiegħi 2003 01:42:49,500 --> 01:42:50,836 li jimplika li huwa fid-array. 2004 01:42:50,836 --> 01:42:52,460 U allura let me biss tagħmel verifika sanità. 2005 01:42:52,460 --> 01:42:56,640 Din id-darba, jekk argc ma ugwali 2, imbagħad inti taf liema? 2006 01:42:56,640 --> 01:42:57,520 Insieghha. 2007 01:42:57,520 --> 01:43:03,170 I am ser ngħid li, ħej, utent, inti nieqes argument linja tal-kmand 2008 01:43:03,170 --> 01:43:04,210 n backslash. 2009 01:43:04,210 --> 01:43:05,230 >> U allura li dan. 2010 01:43:05,230 --> 01:43:06,130 Irrid għall-ħruġ. 2011 01:43:06,130 --> 01:43:11,030 I am ser preemptively, u b'mod prematur tassew, ritorn 2012 01:43:11,030 --> 01:43:12,810 xi ħaġa oħra għajr in-numru 1. 2013 01:43:12,810 --> 01:43:15,360 Il mur valur għall-ewwel żball li jista 'jiġri huwa 1. 2014 01:43:15,360 --> 01:43:17,860 Jekk ikollok xi oħra żbaljata sitwazzjoni li tista 'sseħħ, 2015 01:43:17,860 --> 01:43:21,390 inti jista 'jgħid ritorn 2 jew ritorn 3, jew forsi anke negattiv 1 jew negattiv 2. 2016 01:43:21,390 --> 01:43:23,750 >> Dawn huma biss kodiċijiet ħruġ li huma, ġeneralment, 2017 01:43:23,750 --> 01:43:27,770 biss utli għall-programmer, jew il- kumpanija li s-tbaħħir s-software. 2018 01:43:27,770 --> 01:43:30,500 Imma l-fatt li huwa mhux 0. huwa x'inhu importanti. 2019 01:43:30,500 --> 01:43:34,310 Mela jekk f'dan il-programm, nixtieq li jiggarantixxu li dan il-programm biss 2020 01:43:34,310 --> 01:43:38,190 xogħlijiet jekk l-utent jipprovdi lili ma 'għadd argument ta' tnejn, 2021 01:43:38,190 --> 01:43:42,880 l-isem tal-programm, u xi oħrajn kelma, I jistgħu jinfurzaw kemm jista ġej, 2022 01:43:42,880 --> 01:43:46,110 Yell fil-utent ma qal printf, nieqsa argument linja tal-kmand, 2023 01:43:46,110 --> 01:43:46,970 ritorn 1. 2024 01:43:46,970 --> 01:43:49,940 Li se biss immedjatament nieqaf-programm. 2025 01:43:49,940 --> 01:43:55,840 >> Huwa biss jekk argc huwa ekwivalenti 2 se nikbru isfel hawn, f'liema punt Jien se ngħid, 2026 01:43:55,840 --> 01:44:00,410 bonjour mija i, n backslash, argv1. 2027 01:44:00,410 --> 01:44:03,827 Fi kliem ieħor, jien ma jmur wara ARGV 0, 2028 01:44:03,827 --> 01:44:05,410 li huwa biss l-isem tal-programm. 2029 01:44:05,410 --> 01:44:09,450 Irrid li jistampa bonjour, comma, it-tieni kelma li l-bniedem ittajpjat. 2030 01:44:09,450 --> 01:44:12,580 U f'dan il-każ fuq linja 13, kollox huwa tajjeb. 2031 01:44:12,580 --> 01:44:15,920 >> Naf li argc huwa 2 loġikament minn dan il-programm. 2032 01:44:15,920 --> 01:44:17,770 Jien ser jimxi 'l quddiem u r-ritorn 0. 2033 01:44:17,770 --> 01:44:21,230 Bħala twarrib, wieħed iżomm f'moħħu li dan huwa minnu b'mod scratch kif ukoll. 2034 01:44:21,230 --> 01:44:24,760 >> Loġikament, I jistgħu jagħmlu dan u jirrappreżentaw dawn il-linji 2035 01:44:24,760 --> 01:44:27,020 tal-kodiċi fil din il-klawsola inkella hawn. 2036 01:44:27,020 --> 01:44:29,420 Imma dak li tip ta ' bla bżonn indenting kodiċi tiegħi. 2037 01:44:29,420 --> 01:44:31,800 U nixtieq li jagħmlu super ċar li l-ebda kwistjoni liema, 2038 01:44:31,800 --> 01:44:34,670 -kontumaċja, bonjour xi ħaġa se tikseb stampati, 2039 01:44:34,670 --> 01:44:36,050 sakemm l-utent tikkoopera. 2040 01:44:36,050 --> 01:44:39,360 >> Allura huwa komuni ħafna għall-użu kundizzjoni, biss jekk, 2041 01:44:39,360 --> 01:44:41,870 biex jaqbad xi żbaljata sitwazzjoni, u mbagħad ħruġ. 2042 01:44:41,870 --> 01:44:45,690 U mbagħad, sakemm kollox huwa tajjeb, m'għandhiex ħaġa oħra, 2043 01:44:45,690 --> 01:44:48,060 iżda biss ikollhom l-kodiċi barra minn dan, jekk, għaliex dan huwa 2044 01:44:48,060 --> 01:44:51,060 ekwivalenti f'dan il- każ partikolari, loġikament. 2045 01:44:51,060 --> 01:44:54,480 Hekk jien jirritornaw 0, just biex turi espliċitament kollox huwa tajjeb. 2046 01:44:54,480 --> 01:44:58,480 >> Jekk I titħalla barra r-ritorn 0, ikun awtomatikament preżunt għalija. 2047 01:44:58,480 --> 01:45:00,890 Imma issa li jien jirritornaw wieħed mill-inqas il-każ, 2048 01:45:00,890 --> 01:45:04,940 Jien ser, għal miżura tajba u ċarezza, ir-redditu 0 f'dan il-każ. 2049 01:45:04,940 --> 01:45:09,690 Allura issa let me imorru quddiem u jagħmlu l-ħruġ, li hija segue perfetta biex jitilqu biss. 2050 01:45:09,690 --> 01:45:14,401 >> Iżda li jagħmlu l-ħruġ, u let me go quddiem u jagħmlu ./exit, Ikteb. 2051 01:45:14,401 --> 01:45:16,900 U l-programm għajjat ​​fil lili, nieqsa argument kmand tal-linja. 2052 01:45:16,900 --> 01:45:18,120 OK, let me jikkooperaw. 2053 01:45:18,120 --> 01:45:23,810 >> Let me minflok tagħmel ./exit, David, Ikteb. 2054 01:45:23,810 --> 01:45:25,190 U issa huwa jgħid, bonjour David. 2055 01:45:25,190 --> 01:45:27,300 U inti ma tkunx normalment tara dan. 2056 01:45:27,300 --> 01:45:30,650 >> Iżda jirriżulta li hemm Mod speċjali fl-Linux biex effettivament jaraw 2057 01:45:30,650 --> 01:45:34,470 ma 'dak tal-ħruġ kodiċi programm ħareġ. 2058 01:45:34,470 --> 01:45:37,184 Kultant fi grafika dinja bħall Mac OS jew Windows, 2059 01:45:37,184 --> 01:45:40,100 inti biss tara dawn in-numri meta messaġġ ta 'żball pops up fuq l-iskrin 2060 01:45:40,100 --> 01:45:41,940 u l-programmer turi li inti dak in-numru. 2061 01:45:41,940 --> 01:45:44,773 Iżda jekk irridu naraw dak l-iżball messaġġ huwa, nistgħu nagħmlu dan here-- 2062 01:45:44,773 --> 01:45:48,100 hekk ./exit, Ikteb, jistampa nieqsa argument kmand tal-linja. 2063 01:45:48,100 --> 01:45:54,590 >> Jekk jien issa do $ eku ?, li huwa ridiculously cryptic tfittex. 2064 01:45:54,590 --> 01:45:56,590 Iżda $? 2065 01:45:56,590 --> 01:45:59,220 huwa l-incantation maġika li tgħid, ħej, kompjuter, 2066 01:45:59,220 --> 01:46:01,900 tell me dak ta 'qabel Kodiċi ħruġ programm kien. 2067 01:46:01,900 --> 01:46:03,410 U jien hit Ikteb. 2068 01:46:03,410 --> 01:46:07,520 Nara 1, għaliex dan huwa dak I told funzjoni prinċipali tiegħi li jirritornaw. 2069 01:46:07,520 --> 01:46:12,310 >> Sadanittant, jekk nagħmel ./exit David, u hit Ikteb, nara, bonjour David. 2070 01:46:12,310 --> 01:46:16,800 U jekk jien issa do $ eku ?, nara bonjour 0. 2071 01:46:16,800 --> 01:46:19,080 U għalhekk dan se attwalment jkun informazzjoni prezzjuża 2072 01:46:19,080 --> 01:46:23,420 fil-kuntest tal-debugger, mhux hekk ħafna li inti, l-bniedem, se kura. 2073 01:46:23,420 --> 01:46:26,060 Iżda l-debugger u oħrajn Programmi aħna ser tuża dan is-semestru 2074 01:46:26,060 --> 01:46:29,420 spiss se tħares lejn dak in-numru, anki jekk huwa tip ta 'moħbija bogħod 2075 01:46:29,420 --> 01:46:32,780 sakemm inti tfittex għal dan, li jiddeterminaw jekk programm jew le 2076 01:46:32,780 --> 01:46:37,050 eżekuzzjoni kienet korretta jew mhux korretta. 2077 01:46:37,050 --> 01:46:40,450 >> U hekk dan iwassalna għall dan, fl-aħħar tal-ġurnata. 2078 01:46:40,450 --> 01:46:43,917 Bdejna llum billi tħares lejn debugging, u min-naħa fil-kors 2079 01:46:43,917 --> 01:46:46,750 innifsu, u imbagħad aktar interessanti, teknikament taħt il-barnuża 2080 01:46:46,750 --> 01:46:49,490 lejn dak kordi huma, li jdum ġimgħa aħna biss ħa għall mogħtija, 2081 01:46:49,490 --> 01:46:51,900 u ċertament ħadithom għall mogħtija fil scratch. 2082 01:46:51,900 --> 01:46:56,040 >> Aħna mbagħad ħares lejn kif nistgħu aċċess karattri individwali string, 2083 01:46:56,040 --> 01:47:00,310 u mbagħad għal darb'oħra ħa livell ogħla tħares lejn l-affarijiet, tħares lejn kif well-- 2084 01:47:00,310 --> 01:47:04,226 jekk aħna rridu nġibu fil individwali elementi fil-lista bħall-istruttura, 2085 01:47:04,226 --> 01:47:05,850 ma nistgħu nagħmlu dan bil-kordi multipli? 2086 01:47:05,850 --> 01:47:08,050 U nistgħu b'argumenti linja tal-kmand. 2087 01:47:08,050 --> 01:47:12,800 Iżda din l-istampa hawn 'ftit kaxxi hija dimostrattiv ta din l-idea ġenerali 2088 01:47:12,800 --> 01:47:14,451 ta 'firxa, jew lista, jew vector. 2089 01:47:14,451 --> 01:47:16,450 U skond il- kuntest, kollha ta 'dawn il-kliem 2090 01:47:16,450 --> 01:47:17,880 tfisser affarijiet ftit differenti. 2091 01:47:17,880 --> 01:47:20,060 Għalhekk fl Ċ, aħna qed biss se biex jitkellmu dwar firxa. 2092 01:47:20,060 --> 01:47:23,840 U l-firxa hija chunk ta 'memorja, li kull wieħed minnhom huwa 2093 01:47:23,840 --> 01:47:27,720 Elementi huma kontigwi, lura, għal wara, biex lura, lura. 2094 01:47:27,720 --> 01:47:31,970 >> U dawn l-elementi huma, ġeneralment, tal-istess tip ta 'dejta, karattri, 2095 01:47:31,970 --> 01:47:35,966 karattru, karattru, karattri, jew spag, spag, spag, spag, jew int, 2096 01:47:35,966 --> 01:47:38,600 int, int, tkun xi tkun aħna qed jippruvaw biex jaħżnu. 2097 01:47:38,600 --> 01:47:42,540 Iżda fl-aħħar tal-ġurnata, dan huwa dak li jidher qisu kunċettwalment. 2098 01:47:42,540 --> 01:47:44,530 Inti qed tieħu tiegħek Memorja RAM jew kompjuter. 2099 01:47:44,530 --> 01:47:48,590 U int jiddelimitaw out in kaxxi identiku daqs medju, li kollha 2100 01:47:48,590 --> 01:47:50,920 huma lura, li lura, li lura, li lura b'dan il-mod. 2101 01:47:50,920 --> 01:47:53,200 >> U x'hemm sbieħ dwar din l-idea, u l-fatt 2102 01:47:53,200 --> 01:47:58,580 li nistgħu jesprimu valuri b'dan il-mod ma 'l-ewwel ta' strutturi ta 'dejta tagħna 2103 01:47:58,580 --> 01:48:02,520 fil-klassi, tfisser nkunu nistgħu nibdew biex isolvu problemi bil-kodiċi 2104 01:48:02,520 --> 01:48:04,079 li daħal hekk intuwittivament fil-ġimgħa 0. 2105 01:48:04,079 --> 01:48:05,870 Int ser ikollok tfakkar il-phone Eżempju ktieb, fejn 2106 01:48:05,870 --> 01:48:09,110 użajna firda u conquer, jew algoritmu tfittxija binarju, 2107 01:48:09,110 --> 01:48:13,220 biex jiġu ffiltrati permezz inġenerali mazz ta 'ismijiet u n-numri. 2108 01:48:13,220 --> 01:48:18,220 Iżda aħna jassumi, irtirar, li din ktieb tat-telefon kien diġà magħżula, 2109 01:48:18,220 --> 01:48:21,630 li xi ħadd ieħor kien diġà dehret out-- tingħata lista ta 'ismijiet 2110 01:48:21,630 --> 01:48:24,430 u numbers-- kif alphabetize lilhom. 2111 01:48:24,430 --> 01:48:26,950 U issa li fl Ċ aħna, ukoll, għandhom il-ħila 2112 01:48:26,950 --> 01:48:30,290 li jiġu affarijiet out, mhux fiżikament fi ktieb tat-telefon 2113 01:48:30,290 --> 01:48:34,220 iżda virtwalment fil-s kompjuter memorja, se nkunu ġimgħa d-dieħla jistgħu 2114 01:48:34,220 --> 01:48:38,470 li jintroduċi mill-ġdid this---ewwel ta 'strutturi ta' dejta tagħna fi array-- 2115 01:48:38,470 --> 01:48:43,530 iżda, aktar importanti, il-kompjuter attwali algoritmi xjenza implimentati 2116 01:48:43,530 --> 01:48:47,720 fil-kodiċi, li magħhom nistgħu jaħżen dejta fl-istrutturi bħal dan, 2117 01:48:47,720 --> 01:48:50,730 u mbagħad tibda biex jimmanipulaw dan, u li attwalment isolvu problemi ma 'dan, 2118 01:48:50,730 --> 01:48:53,570 u biex jibnu fuq quċċata ta 'dan, finalment, il-programmi fis-C, 2119 01:48:53,570 --> 01:48:56,730 fl-Python, fil JavaScript, juri dubji databases SQL? 2120 01:48:56,730 --> 01:48:59,980 >> U aħna ser tara li dawn kollha ideat differenti jorbtu ma 'xulxin. 2121 01:48:59,980 --> 01:49:04,100 Iżda għal issa, tfakkar li l- dominju li aħna introdotti llum 2122 01:49:04,100 --> 01:49:06,920 Kien dan il-ħaġa hawn, u -dinja ta 'kriptografija. 2123 01:49:06,920 --> 01:49:11,200 U fost il-problemi li jmiss inti stess se ssolvi hija l-arti ta 'kriptografija, 2124 01:49:11,200 --> 01:49:13,630 scrambling u de-scrambling informazzjoni, u ċċifrar 2125 01:49:13,630 --> 01:49:15,930 u deciphering test, u jekk wieħed jassumi finalment 2126 01:49:15,930 --> 01:49:18,970 li inti issa taf liema huwa taħt il-barnuża 2127 01:49:18,970 --> 01:49:21,860 b'tali mod li meta inti tara jew jirċievu messaġġ bħal dan, inti 2128 01:49:21,860 --> 01:49:24,060 lilek innifsek jista jiddeċifraw dan. 2129 01:49:24,060 --> 01:49:26,740 Dan kollu, u l-ħin aktar li jmiss. 2130 01:49:26,740 --> 01:49:29,890 2131 01:49:29,890 --> 01:49:30,790 >> [Daqq video] 2132 01:49:30,790 --> 01:49:32,970 >> -Mover Biss waslu. 2133 01:49:32,970 --> 01:49:35,146 Jien se jmorru żjara professur kulleġġ tiegħu. 2134 01:49:35,146 --> 01:49:37,611 Yep. 2135 01:49:37,611 --> 01:49:40,080 Hi. 2136 01:49:40,080 --> 01:49:40,660 Huwa inti. 2137 01:49:40,660 --> 01:49:44,125 2138 01:49:44,125 --> 01:49:45,110 Stenna! 2139 01:49:45,110 --> 01:49:45,610 David. 2140 01:49:45,610 --> 01:49:53,936 2141 01:49:53,936 --> 01:49:56,060 Jien biss tipprova figura barra dak li ġara lilek. 2142 01:49:56,060 --> 01:49:58,130 Jekk jogħġbok, xejn tista 'tgħin. 2143 01:49:58,130 --> 01:50:05,020 2144 01:50:05,020 --> 01:50:08,354 You kienu kulleġġ tiegħu roommate, ma kinux inti? 2145 01:50:08,354 --> 01:50:10,770 You kienu hemm miegħu meta huwa lest il-proġett CS50? 2146 01:50:10,770 --> 01:50:13,770 2147 01:50:13,770 --> 01:50:15,765 >> [Ddoqq il-mużika] 2148 01:50:15,765 --> 01:50:32,110 2149 01:50:32,110 --> 01:50:33,150 >> -Li Kien CS50. 2150 01:50:33,150 --> 01:50:42,690 2151 01:50:42,690 --> 01:50:44,770 >> I love dan il-post. 2152 01:50:44,770 --> 01:50:45,854 >> -Eat Up. 2153 01:50:45,854 --> 01:50:47,020 Aħna qed tmur fin-negozju. 2154 01:50:47,020 --> 01:50:52,120 2155 01:50:52,120 --> 01:50:53,970 >> [END Daqq]