1 00:00:00,000 --> 00:00:02,742 2 00:00:02,742 --> 00:00:05,680 >> SPEAKER 1: Hi kulħadd. 3 00:00:05,680 --> 00:00:07,530 Aħna ser tibda. 4 00:00:07,530 --> 00:00:09,330 I think nies għadhom għaddejjin li jkun filtrar. 5 00:00:09,330 --> 00:00:12,840 Iżda fl-interess ta 'żmien, sabiex inkunu nistgħu nikseb inti guys minn hawn fil-ħin, 6 00:00:12,840 --> 00:00:14,110 aħna qed tmur biex tibda. 7 00:00:14,110 --> 00:00:18,780 Allura merħba għall-CS50 Quiz 0 reviżjoni. 8 00:00:18,780 --> 00:00:23,020 Għal dawk minnkom li ma induna għadhom, għandek xi mistoqsija nhar l-Erbgħa. 9 00:00:23,020 --> 00:00:25,700 Woo-hoo. 10 00:00:25,700 --> 00:00:29,780 >> Jekk int ma bdew jistudjaw jew għadhom ma induna li dan s'issa ma teżisti, 11 00:00:29,780 --> 00:00:34,070 kwizzijiet passat u l-informazzjoni kollha dwar kwizz tiegħek huma fuq cs50.net/quizzes. 12 00:00:34,070 --> 00:00:38,090 Hemm xi għalf pretty tajba fuq hemmhekk, kwizzijiet passat mill-aħħar 10 13 00:00:38,090 --> 00:00:43,760 snin kif ukoll informazzjoni dwar dan il-kwizz u suġġetti 14 00:00:43,760 --> 00:00:46,250 li se jkun kopert. 15 00:00:46,250 --> 00:00:48,980 Mela ejja tibda. 16 00:00:48,980 --> 00:00:54,240 >> Allura inti guys tista 'tiftakar, l-ewwel jum ta 'klassi David kellhom dawk lampi fuq. 17 00:00:54,240 --> 00:00:59,650 Allura essenzjalment, dak kollu li jmur fuq taħt il-barnuża ta 'kompjuter hija 18 00:00:59,650 --> 00:01:00,860 isir fil binarja. 19 00:01:00,860 --> 00:01:04,080 Binarju ifisser dak li ħsejjes simili, 0 u 1 tal-. 20 00:01:04,080 --> 00:01:09,290 Din għandha żewġ valuri li jistgħu jkunu rappreżentati. 21 00:01:09,290 --> 00:01:14,675 >> Hekk biss bħal fl-ewwel jum tat-taqsima meta David mixgħula dawl 22 00:01:14,675 --> 00:01:21,990 bozza jirrappreżentaw fuq, jew 1, kompjuter tagħna jifhem binarju bħala 0 u 23 00:01:21,990 --> 00:01:24,110 1, il-fuq jew barra. 24 00:01:24,110 --> 00:01:25,360 Għeruq ta 'Binarju. 25 00:01:25,360 --> 00:01:29,440 26 00:01:29,440 --> 00:01:32,470 Kull post huwa rappreżentat fil-bażi tnejn. 27 00:01:32,470 --> 00:01:36,260 Allura inti żid 2 għall-0 għat- 1 għall-2-triq kollha up. 28 00:01:36,260 --> 00:01:41,970 >> Biex jiġi kkalkulat dak binarja tiegħek huwa li informazzjoni, inti biss issegwi din l-ekwazzjoni 29 00:01:41,970 --> 00:01:42,840 Ħaġa tip. 30 00:01:42,840 --> 00:01:49,510 Jekk għandek 1 fi kwalunkwe ta 'dawk il-postijiet, inti immoltiplika lilha bi kwalunkwe 31 00:01:49,510 --> 00:01:53,820 jibbażaw huwa fil, żid it up, u ikollok l-deċimali. 32 00:01:53,820 --> 00:01:57,930 Allura dan huwa kif inti għadd sa 5 fil-binarju. 33 00:01:57,930 --> 00:02:01,400 Eżatt bħal dak li aħna kienu qed jagħmlu fuq il- aħħar slide, dan huwa kif inti 34 00:02:01,400 --> 00:02:02,650 jirrappreżentaw 1 sa 5. 35 00:02:02,650 --> 00:02:05,320 36 00:02:05,320 --> 00:02:09,660 >> Bl-istess mod, bħad inti tista 'żżid u naqqas fir deċimali jew bażi 10, jew 37 00:02:09,660 --> 00:02:13,040 verament xi bażi, fuq jistgħu jżidu u naqqas fil binarja. 38 00:02:13,040 --> 00:02:18,400 Eżattament dak li għandek tistenna meta inti żid it-tnejn up, jekk ikun ugwali akbar 39 00:02:18,400 --> 00:02:24,220 minn 1, qed iġġorr 1, jagħmilha 0, u jagħmlu ż-żieda li mod, biss 40 00:02:24,220 --> 00:02:29,910 bħal inti tistenna b'informazzjoni regolari informazzjoni jew kwalunkwe bażi oħra. 41 00:02:29,910 --> 00:02:30,970 Kessaħ. 42 00:02:30,970 --> 00:02:35,140 >> So bħal I said qabel, dak kollu li tmur fuq taħt il-barnuża tal-kompjuter tagħna 43 00:02:35,140 --> 00:02:37,560 isir 0 u 1 ta, jew binarja. 44 00:02:37,560 --> 00:02:43,470 Allura kif nistgħu jesprimu, per eżempju, ittri, jew numri, jew karattri? 45 00:02:43,470 --> 00:02:45,560 U r-risposta għal din hija ASCII. 46 00:02:45,560 --> 00:02:49,380 >> ASCII huwa mapping bejn karattri li aħna normalment tara fil- 47 00:02:49,380 --> 00:02:53,360 Lingwa Ingliża bħal A, il B, Ċ, jtennu, daxxijiet, u 48 00:02:53,360 --> 00:02:54,910 xi ħaġa bħal dik. 49 00:02:54,910 --> 00:02:57,260 U mapep li għal valur ASCII. 50 00:02:57,260 --> 00:03:03,080 Valur ASCII huwa biss numru li tista 'tinftiehem mill-kompjuter tiegħek. 51 00:03:03,080 --> 00:03:07,430 U bħad inti tista 'tagħmel żieda u tnaqqis bin-numri, inti tista 'tagħmel 52 00:03:07,430 --> 00:03:10,890 minnhom mal-valuri ASCII. 53 00:03:10,890 --> 00:03:14,050 >> Allura f'dan l-eżempju, dak dan se jistampa? 54 00:03:14,050 --> 00:03:26,790 55 00:03:26,790 --> 00:03:35,480 Yeah, hekk biss A ispazju B ispazju ispazju C D. Fejn ma ġurdien tiegħi tmur? 56 00:03:35,480 --> 00:03:39,200 57 00:03:39,200 --> 00:03:43,380 Avviż inti tista tiddefinixxi int f'65. 58 00:03:43,380 --> 00:03:47,080 U meta inti print li bl-użu mija C, dan ser tinterpreta dan bħala 59 00:03:47,080 --> 00:03:49,330 karattru u se jistampa A. 60 00:03:49,330 --> 00:03:52,800 >> Bl-istess mod, inti tista 'tiddikjara bħala char. 61 00:03:52,800 --> 00:03:56,860 U meta inti ipprintjaha użu mija C, dan ser tinterpreta li bħala 62 00:03:56,860 --> 00:04:05,240 mija D. U bħad inti tista 'żżid numru, inti tista 'żżid karattri huma 63 00:04:05,240 --> 00:04:06,878 Valuri ASCII, f'dan il-każ. 64 00:04:06,878 --> 00:04:11,370 65 00:04:11,370 --> 00:04:16,130 >> Allura pointer ftit għal kulħadd. 66 00:04:16,130 --> 00:04:19,610 5, bħala string, ma attwalment ekwivalenti għal 5. 67 00:04:19,610 --> 00:04:26,610 Allura kif tista aħna jikkonvertu l- string 5 għall-eqreb numru sħiħ 5? 68 00:04:26,610 --> 00:04:28,930 Xi ideat? 69 00:04:28,930 --> 00:04:31,630 Yeah. 70 00:04:31,630 --> 00:04:36,720 >> Mela jekk ikollna 5 bħala string, nistgħu naqqas 0. 71 00:04:36,720 --> 00:04:37,820 U li ser tagħtina 5. 72 00:04:37,820 --> 00:04:41,670 U bl-istess mod, jekk ikollna 5 bħala numru sħiħ, żid li biex l-sekwenza 0. 73 00:04:41,670 --> 00:04:43,112 U li jagħtina l-string 5. 74 00:04:43,112 --> 00:04:46,350 75 00:04:46,350 --> 00:04:48,350 Kessaħ. 76 00:04:48,350 --> 00:04:52,940 >> Issa, recall lura biex jagħti konferenza wieħed fejn tkellimna dwar algoritmi. 77 00:04:52,940 --> 00:04:57,260 Allura kif nistgħu fil-fatt tixtieq kompjuter li tagħmel affarijiet interessanti? 78 00:04:57,260 --> 00:05:00,460 You know, sempliċement tiżdied u bit-tnaqqis numri u l-istampar affarijiet out mhix 79 00:05:00,460 --> 00:05:01,730 dik eċċitanti. 80 00:05:01,730 --> 00:05:04,620 Normalment, irridu kompjuter tagħna li iwettaq xi tip ta 'algoritmu. 81 00:05:04,620 --> 00:05:07,820 Xi ħaġa ftit aktar kumpless milli sempliċiment aritmetika sempliċi. 82 00:05:07,820 --> 00:05:11,930 >> An algoritmu huwa biss pass sett pass ta 'istruzzjonijiet għall kif iwettqu 83 00:05:11,930 --> 00:05:14,640 a task-- ċerta 84 00:05:14,640 --> 00:05:15,660 bħad riċetta. 85 00:05:15,660 --> 00:05:19,990 Inti tista 'tiftakar l-ewwel jum ta' klassi meta David kien us għadd kamra 86 00:05:19,990 --> 00:05:22,550 ta 'nies u kif ħafna nies kienu fil-kamra. 87 00:05:22,550 --> 00:05:24,480 Inti tista 'tintuża biex għadd wieħed wieħed. 88 00:05:24,480 --> 00:05:25,860 1, 2, 3, 4. 89 00:05:25,860 --> 00:05:28,010 F'dak il-każ, algoritmu żmien lineari. 90 00:05:28,010 --> 00:05:31,710 >> Iżda David introduċiet algoritmu għall inti jgħoddu l-poplu fil-kamra 91 00:05:31,710 --> 00:05:37,340 fejn kulħadd stands up, inti tgħidli tiegħek numru lil persuna oħra, inżid li 92 00:05:37,340 --> 00:05:39,200 numru up, u persuna waħda tiltaqa stabbiliti. 93 00:05:39,200 --> 00:05:40,410 U inti jirrepetu dak. 94 00:05:40,410 --> 00:05:42,910 C'est tip wieħed ta 'algoritmu. 95 00:05:42,910 --> 00:05:47,520 Nistgħu tanalizza l kif effiċjenti algoriżmu tkun ibbażata fuq huwa run time. 96 00:05:47,520 --> 00:05:49,680 Iżda aħna ser nitkellmu ftit aktar dwar dan aktar tard. 97 00:05:49,680 --> 00:05:52,740 98 00:05:52,740 --> 00:05:57,090 >> Allura algoritmi kollha jistgħu wkoll tkun miktuba bl pseudocode. 99 00:05:57,090 --> 00:06:01,120 Pseudocode huwa biss bl-Ingliż bħal sintassi użat biex jirrappreżentaw 100 00:06:01,120 --> 00:06:02,420 lingwa ta 'programmar. 101 00:06:02,420 --> 00:06:06,070 Per eżempju, jekk ridna li jitolbu lill-utent raden numru favorit tiegħi, aħna 102 00:06:06,070 --> 00:06:08,390 jista 'jkollhom pseudocode bħala tali. 103 00:06:08,390 --> 00:06:09,850 >> Get utenti raden. 104 00:06:09,850 --> 00:06:13,570 Jekk il-raden hija korretta, jgħidulhom dawn qed korretta, inkella jgħidulhom 105 00:06:13,570 --> 00:06:15,560 dawn mhux qed korretta. 106 00:06:15,560 --> 00:06:22,530 U pseudocode huwa mod ta 'faċilment jirrappreżenta idea jew algoritmu. 107 00:06:22,530 --> 00:06:26,910 Allura issa aħna tista 'tixtieq li attwalment jiktbu dan fil-lingwa li l-kompjuter 108 00:06:26,910 --> 00:06:27,980 jista fehim. 109 00:06:27,980 --> 00:06:35,660 Allura aħna tista 'tikteb pseudocode tagħna u jinterpretaw dan in-kodiċi sors. 110 00:06:35,660 --> 00:06:41,320 >> S'issa, il-kodiċi sors għandhom jaderixxu għal ċertu sintassi ta 111 00:06:41,320 --> 00:06:42,490 lingwa ta 'programmar. 112 00:06:42,490 --> 00:06:45,430 U s'issa, fil CS50, konna kienu jużaw l-aktar c. 113 00:06:45,430 --> 00:06:48,320 Allura dan jista 'jkun source code għall c. 114 00:06:48,320 --> 00:06:51,440 Aktar tard fil-kors, inti lejl come f'kuntatt mal-programmazzjoni oħra 115 00:06:51,440 --> 00:06:52,480 lingwi bħal PHP. 116 00:06:52,480 --> 00:06:57,540 Jew jekk inti anki tieħu klassijiet oħra, inti tista 'tagħmel Java, Python, jew saħansitra OCML. 117 00:06:57,540 --> 00:07:01,570 Iżda fil-lingwa program c tagħna, dan huwa kif nistgħu jikteb il-kodiċi sors għall 118 00:07:01,570 --> 00:07:04,760 l-algoritmu pseudocode li I biss deskritt qabel. 119 00:07:04,760 --> 00:07:08,630 120 00:07:08,630 --> 00:07:11,430 >> Allura kif ma kompjuter tiegħek attwalment jifhmu li? 121 00:07:11,430 --> 00:07:14,490 Like I said qabel, huwa biss verament jifhem żerijiet u dawk. 122 00:07:14,490 --> 00:07:17,880 Allura kif ma jiksbu mis-sors kodiċi għal xi ħaġa li jista 'jkun 123 00:07:17,880 --> 00:07:18,960 mifhum? 124 00:07:18,960 --> 00:07:22,920 Well, aħna għandna xi ħaġa imsejħa kompilatur. 125 00:07:22,920 --> 00:07:28,450 >> Jekk inti recall lura fil-maġġoranza tal tiegħek psets, kellek xi tip ta 'programm 126 00:07:28,450 --> 00:07:30,370 miktuba fil-fajl dot c. 127 00:07:30,370 --> 00:07:32,550 U allura inti tip make. 128 00:07:32,550 --> 00:07:35,970 Allura dak li qed tagħmel tagħmel? 129 00:07:35,970 --> 00:07:39,970 >> Tista 'tip make biex jikkompilaw tiegħek programm minħabba someone-- 130 00:07:39,970 --> 00:07:42,730 min kiteb sett p tiegħek; probabbilment David-- 131 00:07:42,730 --> 00:07:44,190 ħolqot make fajl. 132 00:07:44,190 --> 00:07:51,320 U li tg jagħmlu tkun taf biex imexxu tiegħek kompilatur, imsejħa clang, li se 133 00:07:51,320 --> 00:07:55,560 imbagħad jikkompilaw kodiċi sors tiegħek biex joġġezzjonaw kodiċi, li hija żerijiet u dawk 134 00:07:55,560 --> 00:07:57,720 li l-kompjuter tiegħek jifhem. 135 00:07:57,720 --> 00:08:01,610 Iżda ftit aktar tard, aħna se jmorru aktar fil-fond dwar kompilaturi. 136 00:08:01,610 --> 00:08:05,640 137 00:08:05,640 --> 00:08:10,800 >> Allura tfakkar pset 0, where-- iva, Għandek xi mistoqsija? 138 00:08:10,800 --> 00:08:11,620 >> UDJENZA: [inaudible]? 139 00:08:11,620 --> 00:08:12,490 >> SPEAKER 1: Iva. 140 00:08:12,490 --> 00:08:14,960 Jien naħseb li attwalment għandhom ikunu online. 141 00:08:14,960 --> 00:08:15,120 Yeah. 142 00:08:15,120 --> 00:08:16,572 >> UDJENZA: Huwa simili [inaudible]? 143 00:08:16,572 --> 00:08:19,476 144 00:08:19,476 --> 00:08:20,830 >> SPEAKER 1: Mhuwiex. 145 00:08:20,830 --> 00:08:25,810 Il huma fuq cs50.net/quizzes. 146 00:08:25,810 --> 00:08:32,900 >> UDJENZA: kwizzijiet Slash, mmejla 2013, mmejla 0, u biss ikklikkja permezz 147 00:08:32,900 --> 00:08:35,956 kwizzijiet 2013 u kwizz 0, tirrevedi slides taqsima. 148 00:08:35,956 --> 00:08:40,380 >> SPEAKER 1: Yeah, hekk jekk inti guys tixtieq li pull it up u tħares lejn din fuq tiegħek 149 00:08:40,380 --> 00:08:42,740 kompjuter stess, li l-multa wisq. 150 00:08:42,740 --> 00:08:43,130 Jgħidu li għal darb'oħra. 151 00:08:43,130 --> 00:08:44,546 >> UDJENZA: [inaudible]. 152 00:08:44,546 --> 00:08:48,780 >> SPEAKER 1: Yeah, [inaudible] hija l-varjabbli finta. 153 00:08:48,780 --> 00:08:49,644 Oh, iva? 154 00:08:49,644 --> 00:08:51,372 >> UDJENZA: [inaudible]? 155 00:08:51,372 --> 00:08:54,300 >> SPEAKER 1: Ebda, strajks mhumiex fuq l-eżami. 156 00:08:54,300 --> 00:08:55,950 Jiddispjacini, mistoqsija tagħha kien, kien strajkijiet dwar l-eżami. 157 00:08:55,950 --> 00:08:59,530 U mhuwiex. 158 00:08:59,530 --> 00:09:05,780 Allura pset 0, inti guys għandek kollha implimentati xi ħaġa jużaw scratch. 159 00:09:05,780 --> 00:09:13,100 U aħna tgħallimna xi programmazzjoni bażika blokki tal-bini li jużaw scratch. 160 00:09:13,100 --> 00:09:15,590 >> Mela ejja tagħti ħarsa lejn uħud ta 'dawn il-blokok tal-bini 161 00:09:15,590 --> 00:09:18,170 li jiffurmaw program. 162 00:09:18,170 --> 00:09:20,570 L-ewwel huwa espressjoni Boolean. 163 00:09:20,570 --> 00:09:24,540 Espressjonijiet Boolean huma dawk u 0 tal-jew xi ħaġa li għandha 164 00:09:24,540 --> 00:09:25,700 żewġ valuri possibbli. 165 00:09:25,700 --> 00:09:30,320 F'dan il-każ, vera jew falza, fuq jew barra, u iva jew le. 166 00:09:30,320 --> 00:09:35,390 Eżempju ta 'sempliċi, sempliċi ħafna, programm li juża Boolean 167 00:09:35,390 --> 00:09:39,140 espressjoni up here. 168 00:09:39,140 --> 00:09:43,220 >> Allura sabiex espressjonijiet Boolean għall jkun utli, għandna operaturi Boolean. 169 00:09:43,220 --> 00:09:48,920 Dawn huma l-operaturi li jistgħu jintużaw li jqabblu ċerti valuri. 170 00:09:48,920 --> 00:09:52,820 Allura aħna għandna u jew le ugwali għal, inqas minn jew ugwali għal, jew akbar minn 171 00:09:52,820 --> 00:09:55,130 ugwali għal, u inqas minn jew akbar minn. 172 00:09:55,130 --> 00:09:59,060 Iżda dawn l-operaturi mhumiex utli ħafna sakemm nistgħu jgħaqqdu minnhom fil 173 00:09:59,060 --> 00:10:00,320 kondizzjonijiet. 174 00:10:00,320 --> 00:10:04,370 >> Allura inti guys tista 'tiftakar mill-bidu u mill-p tiegħek settijiet li aħna 175 00:10:04,370 --> 00:10:05,400 kellhom kundizzjonijiet. 176 00:10:05,400 --> 00:10:09,710 Dawn huma, essenzjalment, bħall-frieket fil il-loġika tal-programm tiegħek li 177 00:10:09,710 --> 00:10:12,670 tesegwixxi skond jekk kundizzjoni hija sodisfatta. 178 00:10:12,670 --> 00:10:18,150 Allura wieħed mill-kundizzjonijiet li kellna użat ħafna drabi f'dan il-kors huwa l- 179 00:10:18,150 --> 00:10:21,470 jekk, inkella, jekk, u kundizzjonijiet oħra. 180 00:10:21,470 --> 00:10:24,060 >> Hawn eżempju ta 'kif inti tista 'tuża dik. 181 00:10:24,060 --> 00:10:28,430 Ħadd ma jaf id-differenza bejn biss bl-użu jekk id-dikjarazzjonijiet kollha 182 00:10:28,430 --> 00:10:32,530 il-mod stabbiliti versi jekk, inkella, jekk, u inkella flimkien? 183 00:10:32,530 --> 00:10:33,013 Iva? 184 00:10:33,013 --> 00:10:34,263 >> UDJENZA: [inaudible]. 185 00:10:34,263 --> 00:10:40,741 186 00:10:40,741 --> 00:10:42,160 >> SPEAKER 1: Eżattament. 187 00:10:42,160 --> 00:10:50,210 Mela jekk kelli jekk it-triq kollha din mod, anki jekk din il-kundizzjoni prospetti 188 00:10:50,210 --> 00:10:52,800 vera, hija xorta se tkompli ittestjar it-tnejn li jmiss. 189 00:10:52,800 --> 00:11:00,120 Billi, bi inkella 'jekk, l ħaġ'oħra dikjarazzjoni, jekk il-wieħed prospetti vera, 190 00:11:00,120 --> 00:11:02,640 l-oħrajn mhumiex ittestjati. 191 00:11:02,640 --> 00:11:05,955 Kwalunkwe mistoqsijiet dwar dan? 192 00:11:05,955 --> 00:11:06,890 Kessaħ. 193 00:11:06,890 --> 00:11:12,240 >> Allura inti tuża jekk-ieħor ta 'ħaddieħor dikjarazzjoni jekk inti taf li tista 'biss 194 00:11:12,240 --> 00:11:14,470 tkun waħda ta 'dawn il-każijiet. 195 00:11:14,470 --> 00:11:21,550 Allura aħna nafu jekk x huwa inqas minn 0, huwa żgur li mhux se tkun 196 00:11:21,550 --> 00:11:22,890 akbar minn 0. 197 00:11:22,890 --> 00:11:26,940 198 00:11:26,940 --> 00:11:31,480 >> Sussegwentement, blokk ieħor bini li aħna tgħallimna huma loops. 199 00:11:31,480 --> 00:11:33,310 Għandna tliet tipi ta 'loops. 200 00:11:33,310 --> 00:11:35,830 Għal loops, filwaqt loops, u tagħmel waqt loops. 201 00:11:35,830 --> 00:11:38,730 U ġeneralment, meta inti tiltaqa biex jiktbu xi ħaġa, inti għandek tiddeċiedi 202 00:11:38,730 --> 00:11:40,060 liema mit-tliet inti tixtieq li tuża. 203 00:11:40,060 --> 00:11:41,900 Allura kif nistgħu jiddeċiedi liema waħda? 204 00:11:41,900 --> 00:11:44,920 205 00:11:44,920 --> 00:11:48,790 >> Aħna ġeneralment jużaw għall loop jekk nafu kif ħafna drabi aħna rridu li jtenni 206 00:11:48,790 --> 00:11:53,650 permezz xi ħaġa jew kif ħafna drabi irridu biex twettaq xogħol. 207 00:11:53,650 --> 00:11:58,830 Aħna nużaw filwaqt loops jekk għandna bżonn xi kundizzjoni li jkun veru li jżomm running. 208 00:11:58,830 --> 00:12:03,730 U nużaw tagħmel waqt simili ħafna għal filwaqt li, imma irridu kodiċi tagħna li jimxu fuq 209 00:12:03,730 --> 00:12:04,880 inqas darba waħda. 210 00:12:04,880 --> 00:12:09,410 >> So do filwaqt, dak kollu li huwa fil-do se dejjem jimxu mill-inqas darba. 211 00:12:09,410 --> 00:12:13,120 Billi, bil-waqt, dan ma tista 'tmexxi fil-livelli kollha jekk il- 212 00:12:13,120 --> 00:12:15,490 kundizzjoni mhijiex sodisfatta. 213 00:12:15,490 --> 00:12:16,740 Kwalunkwe mistoqsijiet ma 'dak? 214 00:12:16,740 --> 00:12:20,480 215 00:12:20,480 --> 00:12:22,860 >> Allura struttura ta 'għall-loop. 216 00:12:22,860 --> 00:12:23,620 You guys kollha raw dan. 217 00:12:23,620 --> 00:12:25,320 You initialize dan. 218 00:12:25,320 --> 00:12:26,600 Inti għandek xi tip ta 'kundizzjoni. 219 00:12:26,600 --> 00:12:32,340 Għalhekk, per eżempju, nistgħu initialize bħala għall i egwali għal 0. 220 00:12:32,340 --> 00:12:34,040 i huwa inqas minn 10. 221 00:12:34,040 --> 00:12:35,442 U i ++. 222 00:12:35,442 --> 00:12:39,010 Sempliċi ħafna wieħed li aħna ghamilt. 223 00:12:39,010 --> 00:12:42,210 >> Għal loop waqt, bl-istess mod, inti għandek li jkollhom xi tip ta 'inizjalizzazzjoni, 224 00:12:42,210 --> 00:12:44,980 xi tip ta 'kundizzjoni, u xi tip ta 'aġġornament. 225 00:12:44,980 --> 00:12:51,990 Allura nistgħu jimplimentaw tagħna għall loop wkoll bħala loop waqt li jużaw dan. 226 00:12:51,990 --> 00:12:56,000 U bl-istess mod ma 'do waqt loop, aħna jista 'jkollha xi inizjalizzazzjoni, 227 00:12:56,000 --> 00:12:58,640 tesegwixxi xi ħaġa, taġġornah, u mbagħad tiċċekkja l-kundizzjoni. 228 00:12:58,640 --> 00:13:03,500 229 00:13:03,500 --> 00:13:05,140 >> Allura issa funzjonijiet. 230 00:13:05,140 --> 00:13:06,460 Aħna tpoġġi kollox flimkien. 231 00:13:06,460 --> 00:13:10,140 Aħna tista 'tixtieq li tikteb xi tip ta 'funzjoni. 232 00:13:10,140 --> 00:13:12,790 Funzjoni Komuni li inti tista kienu diġà raw hija prinċipali. 233 00:13:12,790 --> 00:13:13,770 Main hija funzjoni. 234 00:13:13,770 --> 00:13:16,160 Hija għandha tip ritorn, int. 235 00:13:16,160 --> 00:13:18,470 Hija għandha isem funzjoni, prinċipali. 236 00:13:18,470 --> 00:13:20,810 U għandu argumenti, argc u ARGV. 237 00:13:20,810 --> 00:13:24,040 Allura prinċipali huwa biss funzjoni. 238 00:13:24,040 --> 00:13:27,230 >> Funzjonijiet oħra inti jista 'jkollok użati, printf printf-- huwa function-- 239 00:13:27,230 --> 00:13:29,330 GetInt, toupper. 240 00:13:29,330 --> 00:13:32,010 Iżda dawn jiġri li kienu implimentati għalina minn 241 00:13:32,010 --> 00:13:33,270 xi tip ta 'librerija. 242 00:13:33,270 --> 00:13:37,400 Jekk inti guys tiftakar inkluż din il-librerija CS50.h jew il- 243 00:13:37,400 --> 00:13:38,510 I standard / librerija O. 244 00:13:38,510 --> 00:13:39,200 Iva, mistoqsija? 245 00:13:39,200 --> 00:13:41,610 >> UDJENZA: Huwa prinċipali biss inerenti fl ċ? 246 00:13:41,610 --> 00:13:44,740 Ma hija biss tip ta '[inaudible]? 247 00:13:44,740 --> 00:13:47,370 >> SPEAKER 1: Il-kwistjoni hija jekk prinċipali hija inerenti fil-c. 248 00:13:47,370 --> 00:13:51,460 U iva, funzjonijiet kollha għandhom funzjoni ewlenija. 249 00:13:51,460 --> 00:13:55,290 Huwa tip ta neċessarju għall-kompjuter li tkun taf fejn tibda 250 00:13:55,290 --> 00:13:55,993 tmexxija tal-kodiċi. 251 00:13:55,993 --> 00:13:58,108 >> UDJENZA: Allura inti ma tkunx [inaudible]? 252 00:13:58,108 --> 00:13:59,480 >> SPEAKER 1: No 253 00:13:59,480 --> 00:14:00,760 Kwalunkwe mistoqsijiet oħra? 254 00:14:00,760 --> 00:14:03,430 255 00:14:03,430 --> 00:14:04,770 Kessaħ. 256 00:14:04,770 --> 00:14:08,050 Hekk biss bħal inti tista 'tuża l-funzjoni thats miktub għalik, inti tista 'wkoll 257 00:14:08,050 --> 00:14:10,380 jiktbu funzjoni tiegħek stess. 258 00:14:10,380 --> 00:14:17,050 Din hija funzjoni li xi ħadd jista ' kitbu biex tikkalkula l-volum 259 00:14:17,050 --> 00:14:18,395 ta 'Q, per eżempju. 260 00:14:18,395 --> 00:14:21,300 261 00:14:21,300 --> 00:14:29,500 Hemm tip ta 'ritorn hawn, f'dan il-każ int, tagħna isem funzjoni q u tagħna 262 00:14:29,500 --> 00:14:31,360 lista tal-parametri. 263 00:14:31,360 --> 00:14:34,550 >> U jinnota li inti għandek tikteb id-data tip tal-parametru inti tixtieq li 264 00:14:34,550 --> 00:14:38,660 jużaw jew inkella l-funzjoni ma taf x'tip ta ' 265 00:14:38,660 --> 00:14:41,650 parametru għandi jiġu taċċetta. 266 00:14:41,650 --> 00:14:48,110 Allura, f'dan il-każ, irridu integer bħala input tagħna. 267 00:14:48,110 --> 00:14:50,390 Allura għaliex tista irridu li jużaw funzjonijiet? 268 00:14:50,390 --> 00:14:52,800 >> L-ewwelnett, kbir għall-organizzazzjoni. 269 00:14:52,800 --> 00:14:56,350 Huma jgħinu ikissru kodiċi tiegħek fis biċċiet aktar organizzati u jagħmlu 270 00:14:56,350 --> 00:14:57,960 aktar faċli biex jinqara. 271 00:14:57,960 --> 00:14:59,760 Simplifikazzjoni. 272 00:14:59,760 --> 00:15:01,740 Dan huwa tajjeb għad-disinn. 273 00:15:01,740 --> 00:15:04,570 Meta inti qed taqra biċċa tal-kodiċi u l-funzjoni ewlenija hija verament, 274 00:15:04,570 --> 00:15:07,750 verament twila, jista 'jkun aktar diffiċli biex raġuni dwar x'inhu għaddej. 275 00:15:07,750 --> 00:15:11,710 Mela jekk inti din tinqasam funzjonijiet, jista 'jkun aktar faċli biex jinqara. 276 00:15:11,710 --> 00:15:12,750 And-użu mill-ġdid kapaċità. 277 00:15:12,750 --> 00:15:16,940 Jekk għandek blokki ta 'kodiċi thats qed imsejħa jew run drabi multipli, 278 00:15:16,940 --> 00:15:20,690 minflok riskrittura dan il-kodiċi 10 darbiet fil-funzjoni prinċipali tiegħek, inti tista ' 279 00:15:20,690 --> 00:15:21,440 tixtieq li użu mill-ġdid. 280 00:15:21,440 --> 00:15:25,740 U mbagħad kull darba li inti għandek bżonn tuża dik biċċa tal-kodiċi, sejħa tal-funzjoni. 281 00:15:25,740 --> 00:15:30,550 282 00:15:30,550 --> 00:15:35,380 >> Allura issa jekk irridu niftakru lura li tobrox, aħna wkoll tkellem dwar kunċetti ftit, 283 00:15:35,380 --> 00:15:37,680 waħda minnhom hija kamini. 284 00:15:37,680 --> 00:15:41,120 Thread huwa l-kunċett ta 'multipli sekwenzi ta 'kodiċi 285 00:15:41,120 --> 00:15:43,040 eżekuzzjoni fl-istess ħin. 286 00:15:43,040 --> 00:15:47,490 Allura taħseb lura għal jum wieħed fejn David kellhom inti guys għadd off-numru ta ' 287 00:15:47,490 --> 00:15:48,440 nies fil-kamra. 288 00:15:48,440 --> 00:15:50,550 >> Essenzjalment, dak li kien għaddej fuq hija kollha inti guys kienu 289 00:15:50,550 --> 00:15:52,370 running ħjut separati. 290 00:15:52,370 --> 00:15:55,540 U dawk ħjut kienu ġejjin flimkien biex nikseb xi tip ta 'tweġiba. 291 00:15:55,540 --> 00:15:58,890 Bl-istess mod, fil Scratch, meta jkollok sprites multipli, inti tista 292 00:15:58,890 --> 00:16:01,070 jkollhom qattus u kelb. 293 00:16:01,070 --> 00:16:08,770 U huma jkunu simultanjament running skripts tagħhom stess. 294 00:16:08,770 --> 00:16:10,020 Dan huwa eżempju ta 'kamini. 295 00:16:10,020 --> 00:16:12,860 296 00:16:12,860 --> 00:16:18,000 >> U l-kunċett ieħor li kien introdott fl scratch kien avvenimenti. 297 00:16:18,000 --> 00:16:22,550 U avvenimenti huma partijiet meta multipli ta ' kodiċi tiegħek jikkomunikaw ma 'xulxin. 298 00:16:22,550 --> 00:16:26,840 Fil Scratch, dan kien meta inti użati l- kontroll tax-xandir u l-Meta I 299 00:16:26,840 --> 00:16:29,500 Irċievi blokki. 300 00:16:29,500 --> 00:16:35,170 >> U wkoll, fil Problema Set 4, rajna xi ftit ta 'avvenimenti kif ukoll. 301 00:16:35,170 --> 00:16:38,250 You guys jista użaw il-librerija Gevent. 302 00:16:38,250 --> 00:16:42,450 U kien hemm funzjoni waitForClick fejn inti kienu qed jistennew 303 00:16:42,450 --> 00:16:44,300 għall-utent biex ikklikkja. 304 00:16:44,300 --> 00:16:47,870 U kklikkja tiegħek, f'dan il-każ, ikun l-avveniment u stenna għal click huwa tiegħek 305 00:16:47,870 --> 00:16:49,120 handler avveniment. 306 00:16:49,120 --> 00:16:53,690 307 00:16:53,690 --> 00:16:58,630 >> U wkoll, matul running psets tiegħek u jaħdmu fuq psets tiegħek, inti 308 00:16:58,630 --> 00:17:01,920 jista 'jkollhom jiġu f'kuntatt ma' xi wħud minn dawn il-kmandijiet. 309 00:17:01,920 --> 00:17:05,579 Dan huwa dak li inti ittajpjat fil tiegħek tieqa terminal jew kwalunkwe tieqa 310 00:17:05,579 --> 00:17:12,119 li juri fuq g jeditjaw tiegħek biex, essenzjalment, jinnaviga-kompjuter tiegħek. 311 00:17:12,119 --> 00:17:19,440 >> Hekk per eżempju, LS jelenka l- kontenut ta 'direttorju. 312 00:17:19,440 --> 00:17:22,510 Agħmel direttorju joħloq folder ġdid. 313 00:17:22,510 --> 00:17:24,819 CD, direttorju bidla. 314 00:17:24,819 --> 00:17:28,400 RM, neħħi, tħassar fajl jew xi direttorju. 315 00:17:28,400 --> 00:17:31,050 U mbagħad neħħi direttorju tneħħi direttorju. 316 00:17:31,050 --> 00:17:32,300 >> UDJENZA: [inaudible]? 317 00:17:32,300 --> 00:17:36,978 318 00:17:36,978 --> 00:17:38,370 >> SPEAKER 1: Yeah, żgur. 319 00:17:38,370 --> 00:17:42,530 320 00:17:42,530 --> 00:17:46,040 Jiddispjacini, il-kwistjoni kienet jekk inti jissuġġerixxi tqegħid dan 321 00:17:46,040 --> 00:17:48,840 fuq il-folja iqarrqu. 322 00:17:48,840 --> 00:17:49,440 Hija tista 'tgħin. 323 00:17:49,440 --> 00:17:51,490 Jekk għandek spazju, inti tista 'poġġih fuq. 324 00:17:51,490 --> 00:17:56,170 Huwa wkoll biss ġeneralment tajba biżżejjed li tiftakar għaliex meta inti tużaha 325 00:17:56,170 --> 00:17:59,060 inti tista 'tixtieq li biss għandhom dan memorizzati. 326 00:17:59,060 --> 00:18:02,750 Li ser jagħmlu l-ħajja tiegħek ħafna aktar faċli. 327 00:18:02,750 --> 00:18:04,000 Did I iwieġeb il-mistoqsija tiegħek? 328 00:18:04,000 --> 00:18:10,528 329 00:18:10,528 --> 00:18:14,290 >> Allura issa, tkellimna ftit fil-qosor dwar libreriji. 330 00:18:14,290 --> 00:18:18,570 Iżda l-żewġ dawk prinċipali li aħna kont qed użu s'issa fil-kors huma 331 00:18:18,570 --> 00:18:20,860 I standard / O u CS50. 332 00:18:20,860 --> 00:18:25,410 Liema tip ta 'affarijiet huma inklużi fil-I / O librerija standard? 333 00:18:25,410 --> 00:18:28,410 >> Yeah, s'issa konna użati printf. 334 00:18:28,410 --> 00:18:31,150 Fl CS50, konna użati GetInt u GetString. 335 00:18:31,150 --> 00:18:37,200 U l-string tip ta 'data jiġri wkoll li jiġu ddikjarati f'din librerija CS50. 336 00:18:37,200 --> 00:18:40,250 Aħna ser nitkellmu ftit aktar fil-fond dwar kif libreriji jaħdmu u kif dawn 337 00:18:40,250 --> 00:18:41,870 jinteraġixxu mal-bqija tal-kodiċi tiegħek. 338 00:18:41,870 --> 00:18:46,220 Iżda dawn huma l-żewġ dawk prinċipali li aħna waslu f'kuntatt ma s'issa fl 339 00:18:46,220 --> 00:18:48,430 il-kors. 340 00:18:48,430 --> 00:18:50,050 >> Tipi. 341 00:18:50,050 --> 00:18:58,120 Dawn huma tajbin biex tiftakar kemm kull tip hija rappreżentata minn jew kif 342 00:18:58,120 --> 00:19:02,840 ħafna bytes kull wieħed tip requires-- 343 00:19:02,840 --> 00:19:04,990 int, 4 bytes; char, 1 byte. 344 00:19:04,990 --> 00:19:06,550 Float huwa 4 bytes. 345 00:19:06,550 --> 00:19:07,782 X'inhu doppja? 346 00:19:07,782 --> 00:19:09,032 >> UDJENZA: [inaudible]. 347 00:19:09,032 --> 00:19:11,398 348 00:19:11,398 --> 00:19:16,240 >> SPEAKER 1: Yeah, so a float iżda doppju tad-daqs. 349 00:19:16,240 --> 00:19:17,150 What about twil? 350 00:19:17,150 --> 00:19:18,400 >> UDJENZA: [inaudible]. 351 00:19:18,400 --> 00:19:21,614 352 00:19:21,614 --> 00:19:24,680 >> SPEAKER 1: OK. 353 00:19:24,680 --> 00:19:25,410 X'inhu twil? 354 00:19:25,410 --> 00:19:26,660 >> UDJENZA: [inaudible]. 355 00:19:26,660 --> 00:19:29,400 356 00:19:29,400 --> 00:19:31,450 >> SPEAKER 1: Yeah, irduppjar ta int. 357 00:19:31,450 --> 00:19:34,240 358 00:19:34,240 --> 00:19:34,705 Iva. 359 00:19:34,705 --> 00:19:36,100 >> UDJENZA: [inaudible]. 360 00:19:36,100 --> 00:19:38,030 >> SPEAKER 1: Long [inaudible]. 361 00:19:38,030 --> 00:19:41,860 U allura twil twil huwa d-doppju dak. 362 00:19:41,860 --> 00:19:42,814 >> UDJENZA: No, no. 363 00:19:42,814 --> 00:19:47,107 A twil huwa biss int. 364 00:19:47,107 --> 00:19:50,910 Hija tiddependi fuq l-arkitettura qabel il-[inaudible] 365 00:19:50,910 --> 00:19:52,922 u int jkollhom l-istess daqs. 366 00:19:52,922 --> 00:19:54,172 [Inaudible]. 367 00:19:54,172 --> 00:19:58,841 368 00:19:58,841 --> 00:20:00,920 >> SPEAKER 1: Allura twil u l int huma l-istess. 369 00:20:00,920 --> 00:20:02,943 U allura twil twil huwa d-doppju l-int. 370 00:20:02,943 --> 00:20:03,910 Kessaħ. 371 00:20:03,910 --> 00:20:05,550 U allura, dak li huwa l-aħħar tip? 372 00:20:05,550 --> 00:20:06,510 >> UDJENZA: Pointer. 373 00:20:06,510 --> 00:20:10,350 >> SPEAKER 1: Yeah, hekk aħna tgħallimna ftit dwar pointers. 374 00:20:10,350 --> 00:20:14,015 U irrispettivament ta 'dak pointer huwa tipponta to-- din tista 'tkun stilla char 375 00:20:14,015 --> 00:20:15,880 jew int star-- 376 00:20:15,880 --> 00:20:20,530 huwa dejjem 4 bytes għal pointer. 377 00:20:20,530 --> 00:20:21,633 Mistoqsijiet dwar dan? 378 00:20:21,633 --> 00:20:22,116 Iva? 379 00:20:22,116 --> 00:20:24,531 >> UDJENZA: [inaudible]? 380 00:20:24,531 --> 00:20:29,530 >> SPEAKER 1: Allura twil u int huma l-istess f'dan appliance CS50. 381 00:20:29,530 --> 00:20:32,302 >> UDJENZA: L-apparat huma kompletament interkambjabbli. 382 00:20:32,302 --> 00:20:33,510 >> SPEAKER 1: Yeah. 383 00:20:33,510 --> 00:20:36,610 Mela allura twil twil huwa doppju ta int. 384 00:20:36,610 --> 00:20:39,250 >> UDJENZA: Dan huwa l-32 bit? 385 00:20:39,250 --> 00:20:40,620 >> SPEAKER 1: 32 bit, yeah. 386 00:20:40,620 --> 00:20:43,572 >> UDJENZA: Allura [inaudible]? 387 00:20:43,572 --> 00:20:46,790 >> SPEAKER 1: Iva, jekk dan ma jkunx espliċitament jgħidu, inti 388 00:20:46,790 --> 00:20:47,870 għandhom jassumu 32 bit. 389 00:20:47,870 --> 00:20:50,040 >> UDJENZA: Huwa ngħid xi ħaġa bħal jekk wieħed jassumi 390 00:20:50,040 --> 00:20:51,498 arkitettura bħall-appliance. 391 00:20:51,498 --> 00:20:58,800 392 00:20:58,800 --> 00:21:01,710 Għal 64 bit, l-uniċi affarijiet li bidla huma twal u pointers. 393 00:21:01,710 --> 00:21:05,614 Huma t-tnejn [inaudible]. 394 00:21:05,614 --> 00:21:06,590 >> SPEAKER 1: Iva? 395 00:21:06,590 --> 00:21:07,566 >> UDJENZA: Mistoqsija. 396 00:21:07,566 --> 00:21:10,982 Allura fuq waħda mill-kwizzijiet prattika, hija tistaqsi madwar int mhux iffirmat. 397 00:21:10,982 --> 00:21:15,374 Allura kif kieku jiġi determinat minn int [inaudible]? 398 00:21:15,374 --> 00:21:18,140 >> SPEAKER 1: An mhux iffirmat fil hija wkoll 4 bytes. 399 00:21:18,140 --> 00:21:21,172 Imma dak li hu differenti madwar iffirmat int u int mhux iffirmat? 400 00:21:21,172 --> 00:21:22,422 >> UDJENZA: [inaudible]. 401 00:21:22,422 --> 00:21:24,868 402 00:21:24,868 --> 00:21:25,630 >> SPEAKER 1: Dritt. 403 00:21:25,630 --> 00:21:27,570 Wieħed jista 'jirrappreżenta valuri negattivi. 404 00:21:27,570 --> 00:21:28,580 Imma kif ma tagħmel dan? 405 00:21:28,580 --> 00:21:30,536 >> UDJENZA: [inaudible]. 406 00:21:30,536 --> 00:21:36,370 >> SPEAKER 1: Yeah, li jiffranka 1 ftit biex jirrappreżentaw il-sinjal. 407 00:21:36,370 --> 00:21:40,910 408 00:21:40,910 --> 00:21:45,040 Il ffirmat għandha waħda daqsxejn li jirrappreżenta l-sinjal. 409 00:21:45,040 --> 00:21:48,886 U mhux iffirmat biss huwa pożittivi kollha. 410 00:21:48,886 --> 00:21:50,365 >> UDJENZA: OK. 411 00:21:50,365 --> 00:21:54,230 Allura inti jgħidu li doppja hija darbtejn id-daqs ta 'flowt? 412 00:21:54,230 --> 00:21:58,202 >> SPEAKER 1: Double huwa darbtejn -daqs ta 'float, iva. 413 00:21:58,202 --> 00:22:01,639 >> UDJENZA: Kif ma 'pointer għal twil twil [inaudible]? 414 00:22:01,639 --> 00:22:06,058 415 00:22:06,058 --> 00:22:10,870 >> SPEAKER 1: Għalhekk il-kwistjoni hija dwar kif ma il-pointer lejn long-- twil 416 00:22:10,870 --> 00:22:13,800 Kif huwa li biss erba bytes meta twil twil 8 bytes tagħha. 417 00:22:13,800 --> 00:22:17,310 Mela ftakar dak huwa pointer, essenzjalment, għall-valur ħafna bażi. 418 00:22:17,310 --> 00:22:19,046 >> UDJENZA: [inaudible]. 419 00:22:19,046 --> 00:22:22,670 >> SPEAKER 1: Yeah, so a pointer huwa biss post memorja. 420 00:22:22,670 --> 00:22:28,040 Allura ma jimpurtax kemm l-ispazju li pointer hija li tipponta lejn. 421 00:22:28,040 --> 00:22:32,060 Hija teħtieġ biss 4 bytes li jżommu rekord ta 'dik lokazzjoni memorja. 422 00:22:32,060 --> 00:22:34,760 423 00:22:34,760 --> 00:22:36,010 Kwalunkwe mistoqsijiet oħra? 424 00:22:36,010 --> 00:22:39,800 425 00:22:39,800 --> 00:22:41,050 Kessaħ. 426 00:22:41,050 --> 00:22:42,920 427 00:22:42,920 --> 00:22:47,460 >> Allura l-aħħar ħaġa I jkollhom huwa output standard. 428 00:22:47,460 --> 00:22:51,020 Għandek jużawhom spiss biżżejjed li inti tista tiftakar. 429 00:22:51,020 --> 00:22:54,800 Imma dan huwa meta nużaw printf, per eżempju. 430 00:22:54,800 --> 00:22:59,260 U għandna dawn placeholders li kienu jissejħu kodiċijiet format. 431 00:22:59,260 --> 00:23:03,910 >> Allura fil-mija c char, mija i għall int, u nistgħu wkoll tuża mija d. 432 00:23:03,910 --> 00:23:05,130 Hu l-istess ħaġa. 433 00:23:05,130 --> 00:23:08,200 Iżda, ġeneralment, fil CS50 aħna jippruvaw jużaw mija i. 434 00:23:08,200 --> 00:23:09,860 Perċentwali f għall float. 435 00:23:09,860 --> 00:23:15,620 Ld-mija għal żmien twil twil u mija s għal string. 436 00:23:15,620 --> 00:23:18,550 >> Bl-istess mod, aħna kont qed tuża ftit ta 'dawn is-sekwenzi ħarba. 437 00:23:18,550 --> 00:23:22,431 Per eżempju, backslash n għal linja ġdida. 438 00:23:22,431 --> 00:23:26,910 Dan huwa biss għal meta inti qed ifformattjar kodiċi tiegħek għall-istampar f. 439 00:23:26,910 --> 00:23:27,260 Iva? 440 00:23:27,260 --> 00:23:28,906 >> UDJENZA: X'inhu mija d għall? 441 00:23:28,906 --> 00:23:31,850 >> SPEAKER 1: Għalhekk il-kwistjoni huwa dak li huwa fil-mija d għall? 442 00:23:31,850 --> 00:23:33,270 Perċentwali d huwa għall ints. 443 00:23:33,270 --> 00:23:37,392 Perċentwali d u mija i huma l-istess. 444 00:23:37,392 --> 00:23:41,130 >> UDJENZA: X'hemm differenza bejn backslash n u backslash r? 445 00:23:41,130 --> 00:23:45,300 >> SPEAKER 1: Għalhekk il-kwistjoni hija x'inhu l- differenza bejn backlash n u 446 00:23:45,300 --> 00:23:48,615 r backlash? 447 00:23:48,615 --> 00:23:50,906 I think backslash r is-- 448 00:23:50,906 --> 00:23:54,340 >> UDJENZA: Allura backslash r biss jimplika ritorni lejn il-bidu tal-linja 449 00:23:54,340 --> 00:23:56,670 mingħajr ma attwalment għaddejjin għal linja ġdida. 450 00:23:56,670 --> 00:24:01,000 Mela jekk inti print backslash r u int mur lura għall-bidu tal-linja 451 00:24:01,000 --> 00:24:04,005 allura inti print aktar Jittieħed, inti jissostitwixxu l-għalf li li diġà fuq 452 00:24:04,005 --> 00:24:04,390 [Inaudible]. 453 00:24:04,390 --> 00:24:06,725 Billi, n fatt tmur lil ġdida line u tmur lil [inaudible]. 454 00:24:06,725 --> 00:24:10,525 455 00:24:10,525 --> 00:24:13,915 >> SPEAKER 1: Well, xi mistoqsijiet oħra? 456 00:24:13,915 --> 00:24:15,430 Kull dritt. 457 00:24:15,430 --> 00:24:18,617 Jien ser jagħtih off biex Dan li se jkomplu. 458 00:24:18,617 --> 00:24:25,078 >> [Applause] 459 00:24:25,078 --> 00:25:08,814 460 00:25:08,814 --> 00:25:09,720 >> DAN: righty All. 461 00:25:09,720 --> 00:25:18,590 So I ser tkun jitkellem dwar wiesgħa ieħor firxa ta 'ideat mill-klassi li huma 462 00:25:18,590 --> 00:25:23,220 bejn wieħed u ieħor rappreżentattiv ta 'żewġ ġimgħa u il-bidu ta 'tliet ġimgħat jibda off 463 00:25:23,220 --> 00:25:28,690 mal ikkastjar, li huwa biss mod ta ' trattament ta 'valur ta' ċertu tip bħala 464 00:25:28,690 --> 00:25:30,830 valur ta 'tip differenti. 465 00:25:30,830 --> 00:25:34,110 Allura nistgħu nagħmlu dan bl Chars għall ints, sufruni li ints, u 466 00:25:34,110 --> 00:25:35,360 twal twal għad-doppju. 467 00:25:35,360 --> 00:25:38,170 468 00:25:38,170 --> 00:25:44,500 >> Kollha ta 'dawn l-affarijiet jistgħu jintużaw bħala modi ta 'trattament xi valur numeriku 469 00:25:44,500 --> 00:25:48,370 char minus bħala xi oħra valur numeriku. 470 00:25:48,370 --> 00:25:54,480 Allura hemm xi kwistjonijiet ma 'dan, ta' Naturalment, li ġejja meta inti mitfugħa 471 00:25:54,480 --> 00:25:57,860 affarijiet simili float li ints. 472 00:25:57,860 --> 00:26:00,500 Allura dan huwa ftit stramb. 473 00:26:00,500 --> 00:26:03,170 Għandna float li huwa 1.31. 474 00:26:03,170 --> 00:26:05,220 Aħna immoltiplika lilha mill 10,000. 475 00:26:05,220 --> 00:26:08,380 U allura aħna jistampaw bħala int. 476 00:26:08,380 --> 00:26:09,630 X'jagħmel din output? 477 00:26:09,630 --> 00:26:11,600 478 00:26:11,600 --> 00:26:14,020 10,000 darba 1.31. 479 00:26:14,020 --> 00:26:18,761 Allura 13,000, hija li l-raden? 480 00:26:18,761 --> 00:26:20,685 >> UDJENZA: Naħseb li huwa 10,000. 481 00:26:20,685 --> 00:26:24,234 >> DAN: So jien mmultiplikat bil 10,000 qabel jien ikkastjar. 482 00:26:24,234 --> 00:26:25,202 >> UDJENZA: Oh. 483 00:26:25,202 --> 00:26:27,622 Would ma jkun hemm wieħed 9 u xi 0 numri? 484 00:26:27,622 --> 00:26:29,270 >> DAN: Inti jista 'jkollok xi numri stramb. 485 00:26:29,270 --> 00:26:32,410 486 00:26:32,410 --> 00:26:37,670 Għalhekk id-dritt, huwa 1.3 darbiet 10,000. 487 00:26:37,670 --> 00:26:40,040 Allura dak 13,000. 488 00:26:40,040 --> 00:26:41,313 U dan weird-- żejda 489 00:26:41,313 --> 00:26:42,160 >> UDJENZA: 13,100. 490 00:26:42,160 --> 00:26:42,650 >> DAN: 13,100. 491 00:26:42,650 --> 00:26:44,910 Grazzi, Rob. 492 00:26:44,910 --> 00:26:46,610 U dan weirdness-- żejda 493 00:26:46,610 --> 00:26:48,060 dan 9,9-- 494 00:26:48,060 --> 00:26:53,860 hija sempliċement minħabba din ikkastjar ended up arrotondament 'l isfel fejn 495 00:26:53,860 --> 00:26:55,394 ma għandhiex ikollha. 496 00:26:55,394 --> 00:26:55,871 Yeah. 497 00:26:55,871 --> 00:26:58,256 >> UDJENZA: Il ikkastjar jiġri wara xi ħaġa oħra? 498 00:26:58,256 --> 00:27:03,865 >> DAN: So minħabba I jkollhom din fil-istampar, dan ma dan multiplikazzjoni quddiemu 499 00:27:03,865 --> 00:27:05,230 ma dan ikkastjar. 500 00:27:05,230 --> 00:27:06,140 >> UDJENZA: [inaudible]. 501 00:27:06,140 --> 00:27:11,350 >> DAN: Naħseb li jitfa ewwel, yeah, li jkun 10,000. 502 00:27:11,350 --> 00:27:12,610 Xi ħaġa oħra? 503 00:27:12,610 --> 00:27:13,330 Kessaħ. 504 00:27:13,330 --> 00:27:16,344 Allura dan huwa 13,099. 505 00:27:16,344 --> 00:27:17,840 Għaliex ma dan jiġri? 506 00:27:17,840 --> 00:27:18,900 Impreċiżjoni. 507 00:27:18,900 --> 00:27:21,020 >> Sufruni mhumiex perfetti. 508 00:27:21,020 --> 00:27:27,550 Huma jistgħu jirrappreżentaw biss numri għal Ċertu numru ta 'ċifri sinifikanti. 509 00:27:27,550 --> 00:27:35,120 Allura jekk aħna jistampa 8 tin sig fuq dan float, irridu jiksbu tip ta ' 510 00:27:35,120 --> 00:27:36,800 ikrah numru tfittex. 511 00:27:36,800 --> 00:27:45,580 U dan għaliex 1.31 ma tistax b'mod preċiż ikunu rappreżentati minn sempliċi 512 00:27:45,580 --> 00:27:49,000 poteri ta 'tnejn fil-magna. 513 00:27:49,000 --> 00:27:53,530 Allura dan jispiċċa tieħu l-eqreb raden, li jispiċċa 514 00:27:53,530 --> 00:27:55,710 tkun ftit baxxa. 515 00:27:55,710 --> 00:27:57,730 Jagħmel sens? 516 00:27:57,730 --> 00:27:59,110 OK. 517 00:27:59,110 --> 00:28:05,840 >> Issa, mixgħula huma mod differenti ta ' tagħmel dikjarazzjonijiet kondizzjonali fejn kollha 518 00:28:05,840 --> 00:28:09,900 we care about hija varjabbli waħda. 519 00:28:09,900 --> 00:28:16,570 Allura f'dan l-eżempju partikolari, aħna qed jkollna integer mill-utent. 520 00:28:16,570 --> 00:28:21,070 U allura aħna qed tħares lejn dak li integer huwa. 521 00:28:21,070 --> 00:28:23,500 Preżumibbilment, huwa numru bejn wieħed u erbgħa. 522 00:28:23,500 --> 00:28:24,800 Dak hu li aħna qed jitolbu għal. 523 00:28:24,800 --> 00:28:28,450 >> Allura inti tagħmel bidla ta ' l-isem varjabbli. 524 00:28:28,450 --> 00:28:34,290 Imbagħad inti twaqqaf każijiet ta 'possibbli Valuri jista 'jkun. 525 00:28:34,290 --> 00:28:37,730 Allura f'każ wieħed, jgħidu huwa baxx. 526 00:28:37,730 --> 00:28:41,080 U allura inti break li toħroġ tal-kundizzjoni swiċċ hekk 527 00:28:41,080 --> 00:28:43,270 inti ma żżomm għaddej. 528 00:28:43,270 --> 00:28:44,830 >> Fil-case-- jmiss 529 00:28:44,830 --> 00:28:46,940 hekk każ tnejn u każ three-- 530 00:28:46,940 --> 00:28:51,920 jekk huwa każ żewġ hija biss qtar stabbiliti biex l-ewwel linja tal-kodiċi li hija tqis bħala ma 531 00:28:51,920 --> 00:28:55,400 'każijiet tlieta sakemm jara pawża. 532 00:28:55,400 --> 00:29:00,430 Allura r-raġuni ikollok każ wieħed li biss baxxa print huwa għaliex I 533 00:29:00,430 --> 00:29:01,890 jkollhom din break hawn. 534 00:29:01,890 --> 00:29:05,360 Jekk I, ngħidu aħna, injorat dan break-- jekk I threw din breakaway-- 535 00:29:05,360 --> 00:29:09,740 ikun jistampaw baxxa, u allura jistampaw nofs, u allura break. 536 00:29:09,740 --> 00:29:12,200 >> Allura pawżi huma parti importanti ta 'switch kundizzjonijiet u 537 00:29:12,200 --> 00:29:14,340 dawn għandhom ikunu hemm. 538 00:29:14,340 --> 00:29:20,070 Kwalunkwe każijiet li mhumiex iddikjarati b'mod espliċitu li huma ttrattati mill-inadempjenza 539 00:29:20,070 --> 00:29:26,645 każ fil-bidla u għandhom jiġu mitfugħa. 540 00:29:26,645 --> 00:29:31,363 >> UDJENZA: Allura 1, 2, 3, u 4 jkunu n? 541 00:29:31,363 --> 00:29:33,310 >> DAN: Valuri li n jistgħu jkunu. 542 00:29:33,310 --> 00:29:34,654 Iva. 543 00:29:34,654 --> 00:29:35,146 Yeah? 544 00:29:35,146 --> 00:29:37,606 >> UDJENZA: Allura meta jkollok li [inaudible]? 545 00:29:37,606 --> 00:29:44,002 546 00:29:44,002 --> 00:29:46,830 >> DAN: Int tkun tipprintja baxx, u mbagħad ikun jistampaw nofs, u 547 00:29:46,830 --> 00:29:47,400 allura break. 548 00:29:47,400 --> 00:29:50,244 >> UDJENZA: Għaliex kieku dan jistampaw nofs jekk [inaudible]? 549 00:29:50,244 --> 00:29:54,036 550 00:29:54,036 --> 00:30:00,550 >> DAN: Allura kollox taħt każ qabel pawża taqa 'taħt. 551 00:30:00,550 --> 00:30:09,390 Allura każ print wieħed huwa każ taħt wieħed kif dan l-istampar ta 'wara. 552 00:30:09,390 --> 00:30:09,890 Yeah? 553 00:30:09,890 --> 00:30:11,140 >> UDJENZA: [inaudible]? 554 00:30:11,140 --> 00:30:15,890 555 00:30:15,890 --> 00:30:22,170 >> DAN: Allura dan in-numru huwa biss partikolari valur li dan il-varjabbli 556 00:30:22,170 --> 00:30:23,420 jista 'jieħu, right? 557 00:30:23,420 --> 00:30:26,740 558 00:30:26,740 --> 00:30:28,490 Does li jagħmel sens? 559 00:30:28,490 --> 00:30:28,990 Yeah. 560 00:30:28,990 --> 00:30:31,490 >> UDJENZA: [inaudible]? 561 00:30:31,490 --> 00:30:34,130 >> DAN: Iva, każ tnejn se print nofs u mbagħad break. 562 00:30:34,130 --> 00:30:35,380 >> UDJENZA: [inaudible]? 563 00:30:35,380 --> 00:30:37,954 564 00:30:37,954 --> 00:30:40,050 >> DAN: I think kwalunkwe? 565 00:30:40,050 --> 00:30:43,855 Liema tipi ta 'data oħra inti tista 'taqleb fuq? 566 00:30:43,855 --> 00:30:46,320 >> UDJENZA: Tista 'taqleb fuq kwalunkwe tipi ta 'data. 567 00:30:46,320 --> 00:30:50,905 Iżda dan ifisser xejn fuq Chars biss u ints u għalf bħal dik, minħabba 568 00:30:50,905 --> 00:30:55,600 jekk int jaqilbu fuq pointer li ma verament jagħmel sens, 569 00:30:55,600 --> 00:30:59,555 jaqilbu fuq tagħbijiet, anke jekk dan ejja inti tagħmel dan, minħabba l-punt floating 570 00:30:59,555 --> 00:31:02,840 fil-preċiżjoni, inti ma tkunx verament tixtieq li tagħmel dan xorta waħda. 571 00:31:02,840 --> 00:31:07,320 So pretty ħafna, biss ints u Chars u għalf bħal dik. 572 00:31:07,320 --> 00:31:12,360 >> DAN: Yeah, huwa meta jkollok espliċita valuri li inti taf, I think, jista 'jkun 573 00:31:12,360 --> 00:31:14,250 li bidla huwa attwalment utli. 574 00:31:14,250 --> 00:31:17,094 575 00:31:17,094 --> 00:31:18,990 Tajba? 576 00:31:18,990 --> 00:31:21,370 OK. 577 00:31:21,370 --> 00:31:26,180 >> Ambitu huwa l-firxa li ddikjarat varjabbli testendi. 578 00:31:26,180 --> 00:31:32,190 Allura f'dan il-blokki ftit tal-kodiċi I jkollhom, ikun sħiħa ta 'żbalji. 579 00:31:32,190 --> 00:31:41,450 U r-raġuni hija I dikjarata dan int i fl-ambitu ta 'dan għall loop. 580 00:31:41,450 --> 00:31:46,390 U mbagħad jien jippruvaw biex referenza li i barra minn dak għat-ambitu loop. 581 00:31:46,390 --> 00:31:50,330 >> Allura bażikament, inti tista 'taħseb dwar ambitu bħala xi ħaġa li inti tiddikjara 582 00:31:50,330 --> 00:31:59,750 ma ħdan sett ta 'ċingi kaboċċi biss teżisti fi ħdan dawk braces kaboċċi. 583 00:31:59,750 --> 00:32:04,990 U jekk inti tipprova u l-użu dak il-varjabbli barra minn dawk ċingi kaboċċi, inti ser 584 00:32:04,990 --> 00:32:08,356 tikseb żball mill-kompilatur. 585 00:32:08,356 --> 00:32:08,812 Yeah? 586 00:32:08,812 --> 00:32:09,724 >> UDJENZA: Allura dan wieħed ma taħdimx? 587 00:32:09,724 --> 00:32:11,790 >> DAN: Dan ma taħdimx, iva. 588 00:32:11,790 --> 00:32:17,190 589 00:32:17,190 --> 00:32:18,660 Strings. 590 00:32:18,660 --> 00:32:19,780 String char *. 591 00:32:19,780 --> 00:32:22,250 Huma qed eżattament l-istess. 592 00:32:22,250 --> 00:32:25,540 Huma biss pointers għall-karattri. 593 00:32:25,540 --> 00:32:33,000 U kull kordi li għandek għandha tintemm ma backslash żero, li huwa biss 594 00:32:33,000 --> 00:32:34,410 konvenzjoni c. 595 00:32:34,410 --> 00:32:36,680 >> Huwa sejjaħ il-terminatur NULL. 596 00:32:36,680 --> 00:32:39,050 U NULL-- 597 00:32:39,050 --> 00:32:41,670 kapital N, kapital U, kapital L, kapital L-- 598 00:32:41,670 --> 00:32:44,290 mhuwiex l-istess bħall- Terminatur NULL. 599 00:32:44,290 --> 00:32:46,640 Dan huwa pointer. 600 00:32:46,640 --> 00:32:48,280 Dan huwa karattru. 601 00:32:48,280 --> 00:32:49,530 Huma distinti ħafna. 602 00:32:49,530 --> 00:32:50,200 Ftakar dan. 603 00:32:50,200 --> 00:32:52,320 Din se tkun fuq l-kwizz, probabbilment. 604 00:32:52,320 --> 00:32:54,040 I ma bbenefikawx l-kwizz. 605 00:32:54,040 --> 00:32:57,880 606 00:32:57,880 --> 00:32:58,840 Yeah? 607 00:32:58,840 --> 00:33:01,232 >> UDJENZA: Allura NULL huwa, ngħidu aħna, il-pointer? 608 00:33:01,232 --> 00:33:01,995 >> DAN: Iva. 609 00:33:01,995 --> 00:33:05,170 >> UDJENZA: X'tagħmel [inaudible]? 610 00:33:05,170 --> 00:33:10,050 >> DAN: Jekk, ngħidu, malloc tissejjaħ meta inti ma jkollhom memorja biżżejjed biex jiksbu 611 00:33:10,050 --> 00:33:14,400 irrispettivament mid-daqs inti qed tistaqsi għal, malloc se terġa 'lura NULL. 612 00:33:14,400 --> 00:33:19,550 Huwa, bażikament, kull meta il-funzjoni huwa suppost jirritornaw pointer, inti 613 00:33:19,550 --> 00:33:22,600 bżonn li jiċċekkja kontra NULL għaliex NULL huwa good-- pretty 614 00:33:22,600 --> 00:33:25,260 huwa, tip ta ', il-valur żibel. 615 00:33:25,260 --> 00:33:27,050 Huwa żero safejn pointers go. 616 00:33:27,050 --> 00:33:29,630 617 00:33:29,630 --> 00:33:32,250 >> Kull meta inti sejħa funzjoni, li jirritorna pointer. 618 00:33:32,250 --> 00:33:35,960 Int ser jridu jiċċekkjaw li jkunu ċert li din pointer mhux NULL 619 00:33:35,960 --> 00:33:37,760 minħabba NULL huwa komuni ħafna. 620 00:33:37,760 --> 00:33:40,160 Huwa tip ta 'ritorn żibel. 621 00:33:40,160 --> 00:33:44,902 Mela jekk xi ħaġa ma tmurx dritt, biss jirritorna NULL minflok. 622 00:33:44,902 --> 00:33:45,898 >> UDJENZA: [inaudible]? 623 00:33:45,898 --> 00:33:48,922 >> DAN: Iva, u li din. 624 00:33:48,922 --> 00:33:51,750 >> UDJENZA: [inaudible]? 625 00:33:51,750 --> 00:33:52,800 >> DAN: Jifformulaw bħala dan. 626 00:33:52,800 --> 00:33:54,150 Hu l-terminatur NULL. 627 00:33:54,150 --> 00:33:56,560 Huwa zghar N-U-L-L jekk int ortografija dan. 628 00:33:56,560 --> 00:33:59,860 >> UDJENZA: U I biss marru lura u ttestjati. 629 00:33:59,860 --> 00:34:03,010 U jekk inti tipprova tpoġġi punt floating valur fis-swiċċ, dan ser Yell fi inti 630 00:34:03,010 --> 00:34:05,916 qal, stqarrija teħtieġ espressjoni tat-tip numru sħiħ. 631 00:34:05,916 --> 00:34:07,166 >> DAN: Hemm inti tmur. 632 00:34:07,166 --> 00:34:09,639 633 00:34:09,639 --> 00:34:12,246 Imma yeah, dak li kien il-kwistjoni mill-ġdid? 634 00:34:12,246 --> 00:34:13,496 >> UDJENZA: [inaudible]? 635 00:34:13,496 --> 00:34:16,150 636 00:34:16,150 --> 00:34:23,679 >> DAN: Allura kapital N, kapital U, kapital L, kapital L hija ħaġa attwali c. 637 00:34:23,679 --> 00:34:29,719 Huwa l-pointer NULL u se biss ikunu ittrattati bħala tali. 638 00:34:29,719 --> 00:34:33,530 Inti mhux se qatt tipprova u jespliċitaw il- Karattru NULL u tara l-ebda 639 00:34:33,530 --> 00:34:35,630 mod ieħor minn dan. 640 00:34:35,630 --> 00:34:36,610 Yeah? 641 00:34:36,610 --> 00:34:42,490 >> UDJENZA: Allura jirritornaw lejn char max jew xi ħaġa fin-noti, ikun jidher 642 00:34:42,490 --> 00:34:43,960 jinkorporaw l-istess funzjoni bħala [inaudible]? 643 00:34:43,960 --> 00:34:50,655 644 00:34:50,655 --> 00:34:54,949 >> UDJENZA: Allura huma inti jirreferu għal jirritornaw max char minn getchar, jew 645 00:34:54,949 --> 00:34:55,444 kwalunkwe huwa? 646 00:34:55,444 --> 00:34:55,940 >> UDJENZA: Yeah. 647 00:34:55,940 --> 00:34:58,620 >> UDJENZA: Yeah, hekk l-ġenerali tul għal dawk kollha affarijiet 648 00:34:58,620 --> 00:34:59,920 huma valuri sentinella. 649 00:34:59,920 --> 00:35:03,640 Allura bħal jirritornaw max int minn GetInt u max char minn getchar, huwa 650 00:35:03,640 --> 00:35:06,010 mistennija li jkunu simili, id-dritt, jekk dawn l-affarijiet huma jirritornaw lilna, 651 00:35:06,010 --> 00:35:07,210 xi ħaġa li marret ħażin. 652 00:35:07,210 --> 00:35:09,950 >> Għal pointers, aħna biss jiġri li jkollhom dan il-valur sentinella li kulħadd 653 00:35:09,950 --> 00:35:10,750 jaqbel fuq. 654 00:35:10,750 --> 00:35:13,210 U dan huwa l-ħaġa inti tirritorna meta l-affarijiet imorru ħażin. 655 00:35:13,210 --> 00:35:15,910 Allura max char huwa dak li aħna qed jużaw biex jirrappreżentaw xi ħaġa 656 00:35:15,910 --> 00:35:18,100 bħal NULL jew getchar. 657 00:35:18,100 --> 00:35:23,420 >> UDJENZA: Mela jekk int ittestjar getchar, inti tista 'biss jitqiegħed NULL? 658 00:35:23,420 --> 00:35:23,910 Would li tagħmel differenza? 659 00:35:23,910 --> 00:35:25,400 >> DAN: Inti ma tista 'biss tivverifika NULL. 660 00:35:25,400 --> 00:35:30,130 Youd għandek tiċċekkja max char minħabba li l- valur tar-ritorn mill-funzjoni huwa 661 00:35:30,130 --> 00:35:35,416 karattru mhux pointer. 662 00:35:35,416 --> 00:35:35,888 Yeah? 663 00:35:35,888 --> 00:35:38,248 >> UDJENZA: Din il-kwistjoni titlob għat-tul string. 664 00:35:38,248 --> 00:35:40,136 Does that jinkludu l-karattru NULL? 665 00:35:40,136 --> 00:35:41,000 >> DAN: No 666 00:35:41,000 --> 00:35:45,930 U li attwalment kif tul string jaf li tieqaf għaliex tmur permezz 667 00:35:45,930 --> 00:35:49,070 firxa tiegħek ta 'karattri sakemm jara karattru NULL. 668 00:35:49,070 --> 00:35:51,030 U allura huwa simili, kollha dritt, jien jsir. 669 00:35:51,030 --> 00:35:52,130 >> UDJENZA: [inaudible] ħamsa? 670 00:35:52,130 --> 00:35:53,990 >> DAN: Hello tkun ħamsa. 671 00:35:53,990 --> 00:35:55,240 Yep. 672 00:35:55,240 --> 00:35:59,580 673 00:35:59,580 --> 00:36:02,880 Allura arrays huma kontinwi blokki ta 'memorja. 674 00:36:02,880 --> 00:36:08,480 Huma għandhom aċċess immedjat billi qal l- isem tal-firxa u mbagħad, fl kaboċċi 675 00:36:08,480 --> 00:36:16,720 ċingi, tkun xi indiċi inti tixtieq li tmur biex, dawn qed indiċjati minn żero permezz 676 00:36:16,720 --> 00:36:20,100 it-tul tal-firxa minus 1. 677 00:36:20,100 --> 00:36:23,070 >> U dawn qed iddikjarati mill-tip ta 'l- ħaġa li int ħażna fil- 678 00:36:23,070 --> 00:36:29,750 array, l-isem tal-firxa, u mbagħad x'ikun id-daqs huwa ta 'dik array. 679 00:36:29,750 --> 00:36:36,660 Allura dan huwa firxa char ta 'tul sitta li għandha dawn il-valuri. 680 00:36:36,660 --> 00:36:42,050 681 00:36:42,050 --> 00:36:42,700 Yeah? 682 00:36:42,700 --> 00:36:43,950 >> UDJENZA: [inaudible]? 683 00:36:43,950 --> 00:36:47,980 684 00:36:47,980 --> 00:36:48,460 >> DAN: Yeah. 685 00:36:48,460 --> 00:36:51,340 >> UDJENZA: [inaudible]? 686 00:36:51,340 --> 00:36:56,700 >> DAN: Jekk ikollok dak li qed jiġri fil-firxa li diġà saru. 687 00:36:56,700 --> 00:37:02,260 Allura inti tista 'tispeċifika dan minflok bħala, jiġifieri, char, ikun x'ikun l-isem ta 'tiegħek 688 00:37:02,260 --> 00:37:12,200 array huwa, parentesi vojta ugwali kaboċċi Brace H comma E comma L comma L comma 689 00:37:12,200 --> 00:37:16,290 O comma karattru NULL u kaboċċi Brace. 690 00:37:16,290 --> 00:37:18,180 Li tkun taħdem ukoll bħala dikjarazzjoni. 691 00:37:18,180 --> 00:37:20,886 >> UDJENZA: [inaudible]? 692 00:37:20,886 --> 00:37:23,110 >> DAN: Imbagħad għandek bżonn li jkollhom id-daqs diġà saru. 693 00:37:23,110 --> 00:37:23,896 >> UDJENZA: [inaudible]? 694 00:37:23,896 --> 00:37:25,146 >> DAN: Iva. 695 00:37:25,146 --> 00:37:30,114 696 00:37:30,114 --> 00:37:32,420 Kollha righty. 697 00:37:32,420 --> 00:37:36,430 Argumenti linja Kmand huma mod ta ' jkollna input mill-utent bħala 698 00:37:36,430 --> 00:37:39,380 argumenti prinċipali. 699 00:37:39,380 --> 00:37:40,600 Main jieħu żewġ argumenti. 700 00:37:40,600 --> 00:37:47,680 In-numru ta 'argumenti li qed mgħoddija flimkien kmand tal-linja u 701 00:37:47,680 --> 00:37:55,340 vector string jew firxa string kollha ta 'l-argumenti. 702 00:37:55,340 --> 00:38:07,840 >> Mela jekk jien, ngħidu aħna, imsejħa funzjoni bħal dot out 1 ispazju, 2 ispazju, tlieta, 703 00:38:07,840 --> 00:38:10,110 argc tkun 4. 704 00:38:10,110 --> 00:38:17,370 U l-ARGV 0 tkun dot out. 705 00:38:17,370 --> 00:38:19,130 Argv1 tkun 1. 706 00:38:19,130 --> 00:38:23,030 argv2 ikun 2. argv3 tkun 3, f'dak il-każ partikolari. 707 00:38:23,030 --> 00:38:23,310 Yeah? 708 00:38:23,310 --> 00:38:25,400 >> UDJENZA: [inaudible]? 709 00:38:25,400 --> 00:38:34,010 >> DAN: L-aħħar element fil-firxa minħabba l-firxa hija tul argc plus 710 00:38:34,010 --> 00:38:41,050 wieħed mill argb, l-aħħar element hija l-pointer NULL. 711 00:38:41,050 --> 00:38:42,580 Huwa argc plus 1. 712 00:38:42,580 --> 00:38:46,210 713 00:38:46,210 --> 00:38:52,150 Allura fil-każ li I biss qal, huwa tkun ARGV 0 hija dot out. 714 00:38:52,150 --> 00:38:56,330 ARGV 1 hija l-1 argv2 huwa 2. ARGV 3 huwa 3. 715 00:38:56,330 --> 00:39:03,490 ARGV 4, li hija waħda akbar milli argc tkun NULL. 716 00:39:03,490 --> 00:39:04,870 >> U dak l-pointer NULL. 717 00:39:04,870 --> 00:39:06,590 Iva. 718 00:39:06,590 --> 00:39:11,250 U dan għaliex string huwa stilla char huwa pointer. 719 00:39:11,250 --> 00:39:14,102 Għalhekk għandu jkun l-istess tip. 720 00:39:14,102 --> 00:39:14,595 Yeah? 721 00:39:14,595 --> 00:39:16,074 >> UDJENZA: Żewġ mistoqsijiet. 722 00:39:16,074 --> 00:39:21,004 Allura wieħed, x'inhu l-differenza bejn dan u GetString għajr tip wieħed 723 00:39:21,004 --> 00:39:22,483 fil-magna utent? 724 00:39:22,483 --> 00:39:25,934 U tnejn, huwa dan maħżun fi ħdan memorja riċenti tiegħek? 725 00:39:25,934 --> 00:39:28,399 Allura simili, GetString kieku jkun [inaudible]? 726 00:39:28,399 --> 00:39:31,357 727 00:39:31,357 --> 00:39:33,650 >> DAN: Fejn huwa maħżun? 728 00:39:33,650 --> 00:39:34,905 I do not know fejn huwa maħżun. 729 00:39:34,905 --> 00:39:40,000 >> UDJENZA: Allura, fil-fatt, inti taf kif xi funzjoni inti sejħa huwa l-argumenti 730 00:39:40,000 --> 00:39:42,170 huma maħżuna fil-ċmieni? 731 00:39:42,170 --> 00:39:46,610 Allura argc u ARGV huma argumenti għal main u huma fuq il-munzell, jew verament 732 00:39:46,610 --> 00:39:49,131 eżatt fuq X'taħseb bħala il-bidu tal-munzell. 733 00:39:49,131 --> 00:39:53,490 Liema kienet il-parti l-oħra mill-kwistjoni? 734 00:39:53,490 --> 00:39:56,821 >> UDJENZA: Allura x'inhu l-[inaudible]? 735 00:39:56,821 --> 00:40:00,990 >> DAN: Yeah, huwa biss b'mod differenti ta 'jkollna input mill-utent. 736 00:40:00,990 --> 00:40:06,030 Dan wieħed ftit aktar effiċjenti u huwa handier għal skripts għaliex inti 737 00:40:06,030 --> 00:40:10,070 tista 'biss jgħaddu argumenti biex prinċipali tiegħek funzjoni aktar milli jkollhom għalfejn jistennew 738 00:40:10,070 --> 00:40:13,400 għall-utenti jekk inti ma għandekx xi utenti. 739 00:40:13,400 --> 00:40:16,280 >> UDJENZA: U yeah, nikseb kordi Ikun [inaudible]. 740 00:40:16,280 --> 00:40:17,922 Ikun taħżen l-għalf li għandek bżonn. 741 00:40:17,922 --> 00:40:18,834 >> DAN: Yeah? 742 00:40:18,834 --> 00:40:21,114 >> UDJENZA: [inaudible]? 743 00:40:21,114 --> 00:40:27,545 >> DAN: Iva, ARGV 0 dejjem tinkludi l- dot mmejla tas-sejħa funzjoni. 744 00:40:27,545 --> 00:40:28,042 Yeah? 745 00:40:28,042 --> 00:40:29,292 >> UDJENZA: [inaudible]? 746 00:40:29,292 --> 00:40:33,509 747 00:40:33,509 --> 00:40:37,310 >> DAN: Iva, kull wieħed mill-argumenti huma ntemmet fil-karattru NULL għaliex 748 00:40:37,310 --> 00:40:38,310 huma kordi. 749 00:40:38,310 --> 00:40:40,892 >> UDJENZA: [inaudible]? 750 00:40:40,892 --> 00:40:44,116 >> DAN: Iva, argc ARGV huwa pointer NULL. 751 00:40:44,116 --> 00:40:45,112 >> UDJENZA: [inaudible]? 752 00:40:45,112 --> 00:40:47,104 >> DAN: Oh yeah. 753 00:40:47,104 --> 00:40:48,100 Yeah, sorry. 754 00:40:48,100 --> 00:40:49,594 >> UDJENZA: Allura [inaudible]? 755 00:40:49,594 --> 00:41:08,518 756 00:41:08,518 --> 00:41:16,340 >> DAN: Għalhekk il-kwistjoni hija jekk kellek l- linja ta 'kmand dot mmejla dot out 1, 2, 757 00:41:16,340 --> 00:41:20,410 kieku l-għadd ta 'kmand tal-linja argumenti tkun tnejn jew ma jkun tliet? 758 00:41:20,410 --> 00:41:24,420 759 00:41:24,420 --> 00:41:28,240 >> UDJENZA: Naħseb li ma verament kwistjoni. 760 00:41:28,240 --> 00:41:31,370 I-tendenza li jgħidu, oh, inti ma jgħaddu kwalunkwe argument kmand linja meta, 761 00:41:31,370 --> 00:41:32,730 ovvjament, inti imsejjaħ il-funzjoni. 762 00:41:32,730 --> 00:41:37,950 So I-tendenza li vocally jeskludu l- funzjoni mil-linja tal-kmand 763 00:41:37,950 --> 00:41:40,350 argumenti Anki jekk huwa inklużi fil ARGV. 764 00:41:40,350 --> 00:41:42,600 >> DAN: Iżda jekk kien fuq il-test-- 765 00:41:42,600 --> 00:41:46,550 yeah-- u wkoll jekk inti tgħidli xi ħaġa bħal argc ugwali 3, 766 00:41:46,550 --> 00:41:48,512 int fil-reputazzjoni sikur. 767 00:41:48,512 --> 00:41:49,416 Yeah? 768 00:41:49,416 --> 00:41:50,666 >> UDJENZA: [inaudible]? 769 00:41:50,666 --> 00:42:00,990 770 00:42:00,990 --> 00:42:09,510 >> DAN: Naħseb jekk minflok ta 'sejħa dan fil argc u spag parentesi ARGV 771 00:42:09,510 --> 00:42:14,350 imma żamm l-istess tipi u biss imsejħa xi ħaġa differenti bħal 772 00:42:14,350 --> 00:42:16,640 u b, kieku xorta taħdem? 773 00:42:16,640 --> 00:42:18,790 U xorta tkun taħdem, inti just-- 774 00:42:18,790 --> 00:42:21,520 minflok jużaw argc-- youd tuża u b. 775 00:42:21,520 --> 00:42:24,436 776 00:42:24,436 --> 00:42:25,408 Yeah? 777 00:42:25,408 --> 00:42:26,658 >> UDJENZA: [inaudible]? 778 00:42:26,658 --> 00:42:34,642 779 00:42:34,642 --> 00:42:38,850 >> DAN: Għalhekk il-kwistjoni hija GetString huwa ser taħżen memorja fil-borġ 780 00:42:38,850 --> 00:42:42,280 minħabba GetString huwa char *. 781 00:42:42,280 --> 00:42:47,530 Taħżen memorja fil-borġ għaliex jitlob issa malloc fi ħdan l-attwali 782 00:42:47,530 --> 00:42:49,258 implimentazzjoni ta 'GetString. 783 00:42:49,258 --> 00:42:53,210 784 00:42:53,210 --> 00:42:55,090 OK, miexja fuq. 785 00:42:55,090 --> 00:42:55,950 >> Sigurtà. 786 00:42:55,950 --> 00:43:01,090 Allura biex tkun verament sigura, inti tistrieħ fuq l-ebda wieħed u inti jippermettu l-ebda aċċess wieħed għal kull 787 00:43:01,090 --> 00:43:04,540 ta 'informazzjoni tiegħek, u huwa għalhekk li kulħadd jibni magni tagħhom stess, 788 00:43:04,540 --> 00:43:09,580 sistemi operattivi tagħhom stess, kollha tagħhom programmi mill-bidunett, u ovvjament 789 00:43:09,580 --> 00:43:13,410 ma qabbad lil xi magni oħra permezz tal-internet. 790 00:43:13,410 --> 00:43:17,350 Allura kompjuters huma prekarji. 791 00:43:17,350 --> 00:43:19,200 Huma verament huma. 792 00:43:19,200 --> 00:43:20,940 Irridu fiduċja nies oħra. 793 00:43:20,940 --> 00:43:26,500 >> U l-idea ta 'sigurtà hija li int jippruvaw jillimitaw l-ammont ta ' 794 00:43:26,500 --> 00:43:27,540 fiduċja li għandek bżonn. 795 00:43:27,540 --> 00:43:32,080 U wieħed mill-mezzi li inti tagħmel dan huwa permezz kriptografija. 796 00:43:32,080 --> 00:43:34,950 Kriptografija hija, essenzjalment, għandna sigrieti. 797 00:43:34,950 --> 00:43:38,880 >> Kultant aħna għandna biex jgħaddu sigrieti tagħna flimkien permezz, ngħidu aħna, l-internet jew 798 00:43:38,880 --> 00:43:39,980 affarijiet oħra. 799 00:43:39,980 --> 00:43:43,180 U ma rridux nies li tkun taf dawn sigrieti. 800 00:43:43,180 --> 00:43:50,100 Allura aħna kriptaġġ sigrieti tagħna fis-mod li nittamaw ebda wieħed jista figura. 801 00:43:50,100 --> 00:43:51,600 >> Allura aħna used-- 802 00:43:51,600 --> 00:43:54,340 permezz tal-kors ta 'din class-- 803 00:43:54,340 --> 00:44:00,750 affarijiet simili cipher Caesar u [Inaudible], li huma t-tnejn ħafna, ħafna 804 00:44:00,750 --> 00:44:03,200 modi prekarji ta 'encrypting affarijiet. 805 00:44:03,200 --> 00:44:07,930 Huma qed faċli biex insemmu dak li huma u liema sigrieti tiegħek huma. 806 00:44:07,930 --> 00:44:12,130 Id-dinja reali juża ħafna aktar skemi encryption kkumplikata. 807 00:44:12,130 --> 00:44:13,880 U aħna mhux se jsibu rwieħhom ħafna aktar minn dak. 808 00:44:13,880 --> 00:44:18,280 809 00:44:18,280 --> 00:44:19,430 >> Debugging. 810 00:44:19,430 --> 00:44:20,785 GDB huwa l-aħjar. 811 00:44:20,785 --> 00:44:24,014 812 00:44:24,014 --> 00:44:25,810 Jien ser biex tenfasizza dan mill-ġdid. 813 00:44:25,810 --> 00:44:30,920 Uża GDB il-ħin kollu kull darba li inti għandek problema. 814 00:44:30,920 --> 00:44:36,030 Kmandijiet li huma utli fil GDB huma break, li inti tgħaddi jew linja 815 00:44:36,030 --> 00:44:41,330 numru, isem funzjoni, essenzjalment fejn fil-kodiċi tiegħek inti tixtieq li twaqqaf, 816 00:44:41,330 --> 00:44:45,600 u tkun tista 'tieħu l-kontroll. 817 00:44:45,600 --> 00:44:54,140 >> Stampa tieħu varjabbli u prints out x'ikun dak il-varjabbli huwa fil dak 818 00:44:54,140 --> 00:44:55,990 punt fl-eżekuzzjoni tiegħek. 819 00:44:55,990 --> 00:45:00,130 Li jmiss jiċċaqlaq eżekuzzjoni tiegħek flimkien pass wieħed. 820 00:45:00,130 --> 00:45:05,050 U pass passi ġewwa funzjoni fl-eżekuzzjoni tiegħek. 821 00:45:05,050 --> 00:45:10,480 >> Affarijiet oħra huma mmexxija, li hija kif inti tmexxi effettivament kodiċi tiegħek. 822 00:45:10,480 --> 00:45:16,630 Kompli jieħu l-passi kollha meħtieġa biex jasal sal-punt tal-qasma li jmiss. 823 00:45:16,630 --> 00:45:18,300 U hemm ħafna, ħafna oħrajn. 824 00:45:18,300 --> 00:45:19,040 Ħares minnhom up. 825 00:45:19,040 --> 00:45:19,901 Huma qed kbira. 826 00:45:19,901 --> 00:45:20,863 Yeah? 827 00:45:20,863 --> 00:45:22,113 >> UDJENZA: [inaudible]? 828 00:45:22,113 --> 00:45:26,635 829 00:45:26,635 --> 00:45:28,200 >> DAN: Iva, li huwa debugger. 830 00:45:28,200 --> 00:45:34,230 Allura debugger huwa programm li ihallik debug program tiegħek. 831 00:45:34,230 --> 00:45:39,931 Mhuwiex programm li ssib bugs għall inti, għalkemm li tkun kbira. 832 00:45:39,931 --> 00:45:43,020 833 00:45:43,020 --> 00:45:46,040 >> U l-aħħar għalija hija search. 834 00:45:46,040 --> 00:45:51,470 Allura l-tipi ta 'tfittxija li tkellimna dwar f'din il-klassi huma tfittxija lineari, 835 00:45:51,470 --> 00:45:55,960 li huwa biss li inti tfittex permezz ta 'kull element ta 'l-ispazju tfittxija, wieħed 836 00:45:55,960 --> 00:46:00,410 element fi żmien, sakemm issib dak li inti qed tfittex jew sakemm inti tilħaq 837 00:46:00,410 --> 00:46:03,350 l-aħħar tal-ispazju tfittxija tiegħek li fih punt inti jgħidu li inti ma setgħetx issib 838 00:46:03,350 --> 00:46:06,360 l-element li inti kienu qed ifittxu. 839 00:46:06,360 --> 00:46:13,450 U dan jieħu ż-żmien fl-aħjar kostanti, li huwa ta '0 mill-1 u fl-agħar lineari 840 00:46:13,450 --> 00:46:16,070 time, li huwa ta '0 tas n. 841 00:46:16,070 --> 00:46:19,250 >> Tfittxija Binarju, li jeħtieġ Elementi sordid. 842 00:46:19,250 --> 00:46:24,230 Inti tmur għall-nofs ta 'elementi tiegħek, ara jekk l-element li qed tfittex 843 00:46:24,230 --> 00:46:30,120 hija akbar jew iżgħar mill-element li int fil-nofs. 844 00:46:30,120 --> 00:46:36,510 Huwa huwa akbar, inti tgħidli li l-qiegħ tat-tfittxija tiegħek ispazju huwa tiegħek 845 00:46:36,510 --> 00:46:41,550 lokazzjoni attwali, l-nofs, u terġa 'tibda l-proċess. 846 00:46:41,550 --> 00:46:46,150 Jekk huwa iżgħar, inti tfittex say li the-- yeah, x'hemm up? 847 00:46:46,150 --> 00:46:47,400 >> UDJENZA: [inaudible]? 848 00:46:47,400 --> 00:46:51,000 849 00:46:51,000 --> 00:46:54,260 >> DAN: Iva. 850 00:46:54,260 --> 00:46:58,360 Kwalunkwe tip ta 'tip li kien mgħallma fl- il-klassi hija logħba ġust għat-test. 851 00:46:58,360 --> 00:47:01,504 852 00:47:01,504 --> 00:47:04,920 >> [Rires] 853 00:47:04,920 --> 00:47:10,260 >> DAN: U l-fatt li inti ma kellhomx biex tagħmel dan għal sett problema, huwa ġust 854 00:47:10,260 --> 00:47:12,420 logħba għat-test. 855 00:47:12,420 --> 00:47:15,186 >> UDJENZA: Jista immorru fuqha kif to-- 856 00:47:15,186 --> 00:47:17,052 >> DAN: Huwa se tkun marret fuq. 857 00:47:17,052 --> 00:47:20,496 >> SPEAKER 2: Il-kodiċi attwali għall [Inaudible] huwa fuq study.cs50.net. 858 00:47:20,496 --> 00:47:25,910 859 00:47:25,910 --> 00:47:32,680 Mela jekk inti tħares lejn il-problema prattika fil-paġna tip inkorporazzjoni ta 860 00:47:32,680 --> 00:47:35,880 study.cs50.net, hemm huwa l-kodiċi għall-implimentazzjoni jingħaqdu sort. 861 00:47:35,880 --> 00:47:38,550 Allura inti ma għandekx biex jimplimentaw it yourself tonight. 862 00:47:38,550 --> 00:47:42,090 Iżda aċċerta ruħek li tifhem dan pjuttost milli sempliċiment memorizing lilha. 863 00:47:42,090 --> 00:47:45,035 >> UDJENZA: [inaudible]? 864 00:47:45,035 --> 00:47:49,720 >> SPEAKER 2: Il-paġna sort jingħaqdu fuq study.cs50.net, hemm prattika 865 00:47:49,720 --> 00:47:53,570 problema li, jekk inti ikklikkja permezz tal- problema, fl-aħħar nett hemm 866 00:47:53,570 --> 00:47:56,280 soluzzjoni, li hija l-inkorporazzjoni implimentazzjoni sort. 867 00:47:56,280 --> 00:47:58,510 Iżda aċċerta ruħek li tifhem li aktar milli biss memorizing lilha 868 00:47:58,510 --> 00:47:59,760 jew ikkupjar l-isfel. 869 00:47:59,760 --> 00:48:02,870 870 00:48:02,870 --> 00:48:06,340 >> UDJENZA: U perfettament valida problema għall-eżami għandu jkun 871 00:48:06,340 --> 00:48:07,990 xi ħaġa bħal hawn lista. 872 00:48:07,990 --> 00:48:12,100 X'jagħmel din il-lista look like wara pass wieħed ta 'selezzjonijiet tip jew 873 00:48:12,100 --> 00:48:13,330 sort inserzjoni jew ikun x'ikun. 874 00:48:13,330 --> 00:48:14,940 Wieħed iterazzjoni sħiħa tal-lista. 875 00:48:14,940 --> 00:48:18,530 Għalhekk anki jekk inti ma tispiċċa jeħtieġu li kodiċi għal dan, inti jeħtieġ li jifhmu 876 00:48:18,530 --> 00:48:20,440 biżżejjed biex tkun taf kif li għaddej li għandha timmodifika din array. 877 00:48:20,440 --> 00:48:24,144 878 00:48:24,144 --> 00:48:25,394 >> DAN: Li għalija. 879 00:48:25,394 --> 00:48:30,604 880 00:48:30,604 --> 00:48:32,588 >> [Applause] 881 00:48:32,588 --> 00:49:06,316 882 00:49:06,316 --> 00:49:07,410 >> LUCAS: Hey kulħadd. 883 00:49:07,410 --> 00:49:08,390 Jisimni Lucas. 884 00:49:08,390 --> 00:49:16,840 Jien ser jitkellmu dwar recursion, kollha t-tipi li aħna tgħallimna, u 885 00:49:16,840 --> 00:49:18,050 Ftit ftit ta 'pointers kollha. 886 00:49:18,050 --> 00:49:18,740 OK? 887 00:49:18,740 --> 00:49:20,340 Allura l-ewwel nett, recursion. 888 00:49:20,340 --> 00:49:22,951 Xi jfisser li jgħidu li funzjoni huwa jirrikorri? 889 00:49:22,951 --> 00:49:24,675 >> UDJENZA: Sejħiet innifsu. 890 00:49:24,675 --> 00:49:26,500 >> LUCAS: OK, jitlob huwa stess, yeah. 891 00:49:26,500 --> 00:49:27,700 Allura bħal din l-istampa, per eżempju. 892 00:49:27,700 --> 00:49:30,280 Huwa bħall-istampa ġewwa ta 'stampa u l-bqija. 893 00:49:30,280 --> 00:49:35,740 Hekk per eżempju, inti tista have-- bħala Dan li kien jitkellem dwar search binarja. 894 00:49:35,740 --> 00:49:41,840 Mod wieħed li bih tfittxija binarja huwa rikursivi huwa l-fatt li int 895 00:49:41,840 --> 00:49:43,130 jippruvaw isibu numru. 896 00:49:43,130 --> 00:49:44,250 Allura inti tmur għall-nofs. 897 00:49:44,250 --> 00:49:47,130 U allura inti tiċċekkja jekk in-numri hemmhekk fil-xellug u fid-dritt. 898 00:49:47,130 --> 00:49:49,650 >> U mbagħad jekk issib out in-numru huwa se tkun fuq ix-xellug, huwa l-istess 899 00:49:49,650 --> 00:49:53,340 ħaġa bħala tagħmel l-tfittxija darb'oħra iżda biss fuq ix-xellug tal-lista. 900 00:49:53,340 --> 00:49:57,350 Allura li kif ħsejjes simili huwa rikursivi. 901 00:49:57,350 --> 00:50:01,870 Allura hu għalhekk li inti guys jkollhom rikursivi soluzzjoni għall sort jingħaqdu. 902 00:50:01,870 --> 00:50:04,270 >> OK, so Hawn eżempju. 903 00:50:04,270 --> 00:50:07,280 Mela ejja ngħidu li nixtieq li jagħżlu il-numri minn 1 sa n. 904 00:50:07,280 --> 00:50:13,790 I tista tirrealizza li s-somma ta 'l-n numru huwa n plus n minus 1 sa 1. 905 00:50:13,790 --> 00:50:17,810 Iżda mbagħad, jekk I tħares lejn n minus 1 plus n minus 2 flimkien ma '1, dak l-istess 906 00:50:17,810 --> 00:50:20,680 Ħaġa bħala numri jingħaddu sa n minus 1. 907 00:50:20,680 --> 00:50:25,890 So I tista 'tgħid is-somma ta' somma ugwali ugwali n flimkien mat-total tal-n minus 1. 908 00:50:25,890 --> 00:50:28,010 Does li jagħmel sens? 909 00:50:28,010 --> 00:50:32,630 >> U jien ukoll se jkollhom xi ħaġa oħra imsejjaħ il-każ bażi, li huwa li 910 00:50:32,630 --> 00:50:37,440 is-somma tal-numri up għal żero tkun żero. 911 00:50:37,440 --> 00:50:42,770 Hekk malli nasal biex in-numru żero, I stop għadd. 912 00:50:42,770 --> 00:50:45,330 Does li jagħmel sens? 913 00:50:45,330 --> 00:50:48,120 >> Allura hawnhekk eżempju ta 'kif I tista 'timplimenta dak. 914 00:50:48,120 --> 00:50:49,860 So I jkollhom din il-funzjoni f'xi. 915 00:50:49,860 --> 00:50:51,700 Li jieħu n integer. 916 00:50:51,700 --> 00:50:56,300 So here I ewwel jiċċekkja jekk n hija inqas jew ugwali għal żero. 917 00:50:56,300 --> 00:51:00,310 Mela jekk huwa inqas jew ugwali għal żero, I ritorn żero, li huwa każ bażi tagħna. 918 00:51:00,310 --> 00:51:05,690 Inkella, I tista 'biss jirritorna n plus is-somma tal-numri minn 919 00:51:05,690 --> 00:51:07,190 wieħed għal wieħed nieqes n. 920 00:51:07,190 --> 00:51:09,360 Jagħmel sens? 921 00:51:09,360 --> 00:51:10,100 OK. 922 00:51:10,100 --> 00:51:11,610 >> Allura hawnhekk huwa dak li jidher qisu. 923 00:51:11,610 --> 00:51:15,260 Inti għandek somma ta '2 partijiet ugwali 2 flimkien mat-total tal-1. 924 00:51:15,260 --> 00:51:18,930 U xi wħud 1 huwa 1 flimkien mal- somma ta '0, li huwa ta' 0. 925 00:51:18,930 --> 00:51:20,216 Jagħmel sens? 926 00:51:20,216 --> 00:51:25,342 Mela jekk inħarsu lejn il-munzell ta 'tiegħek programm, dan huwa dak li jidher qisu. 927 00:51:25,342 --> 00:51:26,820 >> L-ewwel, aħna għandna l-funzjoni prinċipali. 928 00:51:26,820 --> 00:51:30,320 U allura l-funzjoni ewlenija imsejħa somma 2. 929 00:51:30,320 --> 00:51:36,690 U mbagħad somma 2 huwa se ngħid, oh, somma 2 ugwali 2 flimkien mat-total ta 'wieħed. 930 00:51:36,690 --> 00:51:39,460 So I żid somma ta '1 għall-munzell. 931 00:51:39,460 --> 00:51:43,860 U s-somma ta '1 huwa ser sejħa somma ta' 0, li huwa wkoll se tkun miżjuda 932 00:51:43,860 --> 00:51:44,630 għall-munzell. 933 00:51:44,630 --> 00:51:49,240 U mbagħad kull wieħed minn dawn dawk li huma fuq quċċata ta 'ieħor jkollu jagħti lura 934 00:51:49,240 --> 00:51:52,020 qabel l-oħrajn jistgħu jibqgħu għaddejjin. 935 00:51:52,020 --> 00:51:56,240 >> Hekk per eżempju, hawn, total ta '0, ewwel, huwa se jirritorna 0. 936 00:51:56,240 --> 00:51:58,320 U mbagħad jagħżlu somma ta '1. 937 00:51:58,320 --> 00:52:00,850 Imbagħad somma ta '1 se ritorn 1 sa somma ta '2. 938 00:52:00,850 --> 00:52:03,900 U fl-aħħarnett, is-somma ta '2 huwa għaddej li jirritornaw 3 sa prinċipali. 939 00:52:03,900 --> 00:52:05,320 Does li jagħmel sens? 940 00:52:05,320 --> 00:52:09,496 >> Huwa tassew importanti li wieħed jifhem kif il-munzell qed taħdem u tipprova 941 00:52:09,496 --> 00:52:11,980 ara jekk jagħmel sens. 942 00:52:11,980 --> 00:52:13,260 OK, hekk issortjar. 943 00:52:13,260 --> 00:52:16,170 Allura għaliex huwa issortjar importanti, ewwel nett? 944 00:52:16,170 --> 00:52:18,260 Għaliex aħna kura? 945 00:52:18,260 --> 00:52:20,310 Kulħadd? 946 00:52:20,310 --> 00:52:20,695 Agħti me eżempju? 947 00:52:20,695 --> 00:52:21,040 Yeah? 948 00:52:21,040 --> 00:52:22,968 >> UDJENZA: [inaudible]. 949 00:52:22,968 --> 00:52:24,700 >> LUCAS: Yeah, OK. 950 00:52:24,700 --> 00:52:26,090 Allura inti tista 'tfittex aktar effiċjenti. 951 00:52:26,090 --> 00:52:28,580 C'est mod tajjeb. 952 00:52:28,580 --> 00:52:32,462 Għalhekk, per eżempju, għandna ħafna ta ' affarijiet, attwalment, fil-ħajja tagħna li 953 00:52:32,462 --> 00:52:32,920 huma magħżula. 954 00:52:32,920 --> 00:52:34,830 Per eżempju, dizzjunarji. 955 00:52:34,830 --> 00:52:39,210 >> Huwa importanti ħafna li jkollhom l- kliem fil xi tip ta 'ordni li aħna 956 00:52:39,210 --> 00:52:41,970 tista 'aċċess faċilment. 957 00:52:41,970 --> 00:52:43,280 Allura dan huwa dak li kien qal. 958 00:52:43,280 --> 00:52:45,530 Tista 'tfittex aktar effiċjenti. 959 00:52:45,530 --> 00:52:48,740 Aħseb ta 'kif iebes ikun li jkollha dizzjunarju li fih il-kliem huma fil- 960 00:52:48,740 --> 00:52:49,500 sabiex każwali. 961 00:52:49,500 --> 00:52:53,120 Int ser ikollok tħares lejn, pretty ħafna, kull kelma waħda sakemm issib il- 962 00:52:53,120 --> 00:52:54,720 kelma li inti qed tfittex. 963 00:52:54,720 --> 00:52:58,710 >> Jekk inti qed tuża Facebook wkoll, meta qed tfittex fi ħbieb tiegħek, int 964 00:52:58,710 --> 00:53:03,540 ser tara li Facebook tpoġġi tiegħek ħabib eqreb i fuq quċċata ta 'dawk 965 00:53:03,540 --> 00:53:05,470 li inti ma tkellem lit-li ħafna. 966 00:53:05,470 --> 00:53:08,080 Jekk inti tmur-triq kollha lejn il-qiegħ tal- lista ħabib tiegħek, int ser tara 967 00:53:08,080 --> 00:53:11,250 nies li inti probabilment ma anki ftakar li int ħbieb ma. 968 00:53:11,250 --> 00:53:14,590 U dan għaliex xorta Facebook ħbieb tiegħek bbażati fuq kif 969 00:53:14,590 --> 00:53:16,472 qrib inti lilhom. 970 00:53:16,472 --> 00:53:17,930 >> Allura organizzazzjoni data. 971 00:53:17,930 --> 00:53:18,450 Ukoll Pokémon. 972 00:53:18,450 --> 00:53:21,400 Allura inti tara li Pokemons kollha jkollhom in-numri. 973 00:53:21,400 --> 00:53:27,210 U li bħal faċli mod ta 'aċċess tad-data. 974 00:53:27,210 --> 00:53:29,050 >> UDJENZA: Aċċess Pokémon. 975 00:53:29,050 --> 00:53:29,890 >> LUCAS: Yeah. 976 00:53:29,890 --> 00:53:32,395 >> UDJENZA: [inaudible]. 977 00:53:32,395 --> 00:53:33,460 >> LUCAS: Yep. 978 00:53:33,460 --> 00:53:35,140 OK, hekk sort għażla. 979 00:53:35,140 --> 00:53:41,610 Sort Għażla se tagħżel l- iżgħar valur mhux magħżul ta 'lista kull 980 00:53:41,610 --> 00:53:43,300 time f'kull iterazzjoni. 981 00:53:43,300 --> 00:53:46,800 Huwa tip ta 'bħall-tip li inti tagħmel fir-ras tiegħek meta inti qed tipprova 982 00:53:46,800 --> 00:53:48,430 sort lista fuq naħa. 983 00:53:48,430 --> 00:53:51,990 >> Bażikament, kull ma għandek tagħmel hu li inti tħares għall-iżgħar numru. 984 00:53:51,990 --> 00:53:54,280 You poġġih fil-lista Issortjati. 985 00:53:54,280 --> 00:53:56,230 U allura inti tfittex għall- jmiss iżgħar numru. 986 00:53:56,230 --> 00:54:00,080 U allura inti żżomm tagħmel li u l-bqija. 987 00:54:00,080 --> 00:54:04,600 >> Allura sort għażla hija bażikament inti tagħżel kull darba li l-iżgħar 988 00:54:04,600 --> 00:54:05,750 valur mhux magħżul. 989 00:54:05,750 --> 00:54:10,840 Poġġi fl-aħħar ta 'l-magħżula parti tal-lista. 990 00:54:10,840 --> 00:54:12,370 U iżommu tagħmel dan. 991 00:54:12,370 --> 00:54:15,890 Mela ejja malajr tara dak dan qisu. 992 00:54:15,890 --> 00:54:19,340 Allura hawnhekk-magħżula u l-lista mhux magħżul. 993 00:54:19,340 --> 00:54:23,350 >> Allura għall-magħżula tal-lista, huwa inizjalment vojta. 994 00:54:23,350 --> 00:54:26,760 U mbagħad jien ser tagħżel l- iżgħar numru hawnhekk, li huwa 2. 995 00:54:26,760 --> 00:54:30,650 So I nikseb in-numru 2 u nressaq fil-faċċata tal-lista. 996 00:54:30,650 --> 00:54:34,910 U mbagħad I tfittex għall-iżgħar li jmiss element, li huwa 3. 997 00:54:34,910 --> 00:54:37,050 So I poġġih fl-aħħar tal-lista magħżula. 998 00:54:37,050 --> 00:54:38,140 U mbagħad I iżommu tagħmel dan. 999 00:54:38,140 --> 00:54:40,040 I isibu 4 u poġġih fl-aħħar. 1000 00:54:40,040 --> 00:54:41,360 Sib 5 u poġġih fl-aħħar. 1001 00:54:41,360 --> 00:54:44,830 >> U tħares lejn kif kollha ta 'dawk il-ħinijiet li Jien qal poġġih fl-aħħar huwa, 1002 00:54:44,830 --> 00:54:46,850 bażikament, jagħmlu skambju żewġ valuri. 1003 00:54:46,850 --> 00:54:48,100 OK? 1004 00:54:48,100 --> 00:54:50,140 1005 00:54:50,140 --> 00:54:52,825 U allura l-aħħar wieħed, inti biss jkollhom waħda element aktar. 1006 00:54:52,825 --> 00:54:55,870 Allura huwa diġà magħżula. 1007 00:54:55,870 --> 00:54:57,800 >> OK, hekk sort inserzjoni. 1008 00:54:57,800 --> 00:55:03,180 Sort Inserzjoni int ser jkollhom ukoll li ħaġa li jkollhom magħżula u 1009 00:55:03,180 --> 00:55:04,690 lista mhux magħżul. 1010 00:55:04,690 --> 00:55:14,540 L-unika ħaġa hija li kull darba li int żżid element li l-magħżula 1011 00:55:14,540 --> 00:55:18,170 lista, inti biss pick-element li hija fuq quddiem tal-lista mhux magħżul. 1012 00:55:18,170 --> 00:55:20,880 U allura int ser issib dak pożizzjoni li għandha tkun fil-Issortjati 1013 00:55:20,880 --> 00:55:22,300 parti tal-lista. 1014 00:55:22,300 --> 00:55:25,840 >> Ejja naraw dak li dan huwa hekk dan jagħmel aktar sens. 1015 00:55:25,840 --> 00:55:29,360 Allura inizjalment, per eżempju, jien jippruvaw li daħħal in-numru tlieta fil- 1016 00:55:29,360 --> 00:55:30,680 parti Issortjati tal-lista. 1017 00:55:30,680 --> 00:55:31,800 Allura l-lista ma jkollhom xejn. 1018 00:55:31,800 --> 00:55:34,160 So I tista 'biss jitqiegħed il-numru 3. 1019 00:55:34,160 --> 00:55:37,480 >> Issa, nixtieq li żżid in-numru 5 sa il-parti Issortjati tal-lista. 1020 00:55:37,480 --> 00:55:38,900 So I tħares lejn in-numru 5. 1021 00:55:38,900 --> 00:55:40,450 I Avviż li huwa akbar minn 3. 1022 00:55:40,450 --> 00:55:41,980 So I jafu li għandu jkun wara 3. 1023 00:55:41,980 --> 00:55:44,100 So I tpoġġi 3 u 5. 1024 00:55:44,100 --> 00:55:45,940 >> Imbagħad I tixtieq li daħħal in-numru 2. 1025 00:55:45,940 --> 00:55:51,630 I Avviż li n-numru 2 huwa attwalment aħħar imbagħad kemm 3 u 5. 1026 00:55:51,630 --> 00:55:54,580 So I attwalment ikollhom qiegħdu kollu l- mod fil-bidu tal-lista. 1027 00:55:54,580 --> 00:55:59,030 So I għandhom, tip ta ', bidla l- elementi fil-lista magħżula so I tista ' 1028 00:55:59,030 --> 00:56:01,970 tagħmel spazju għall-numru 2. 1029 00:56:01,970 --> 00:56:03,160 >> Imbagħad I tara n-numru 6. 1030 00:56:03,160 --> 00:56:05,450 Nara li għandu jkun wara l-5. 1031 00:56:05,450 --> 00:56:06,240 So I poġġih hemmhekk. 1032 00:56:06,240 --> 00:56:07,965 U fl-aħħarnett, I tħares lejn in-numru 4. 1033 00:56:07,965 --> 00:56:11,030 U I Avviż suppost jkun bejn 3 u 5. 1034 00:56:11,030 --> 00:56:14,870 U mbagħad I poġġih hemmhekk u shift l-elementi kollha l-oħra. 1035 00:56:14,870 --> 00:56:16,120 Jagħmel sens? 1036 00:56:16,120 --> 00:56:17,880 1037 00:56:17,880 --> 00:56:19,150 >> Sort Bubble. 1038 00:56:19,150 --> 00:56:25,730 Allura sort bużżieqa huwa bażikament dak li int ser do-- nagħmlu sejħa hija bużżieqa 1039 00:56:25,730 --> 00:56:30,113 sort għaliex inti tmur permezz tal-list-- huwa attwalment aħjar jekk I biss juru 1040 00:56:30,113 --> 00:56:32,300 inti tixtieq this-- 1041 00:56:32,300 --> 00:56:35,030 u int ser iqabblu numri li jmissu. 1042 00:56:35,030 --> 00:56:38,410 U int ser tpartit tagħhom pożizzjonijiet jekk dawn mhux qed 1043 00:56:38,410 --> 00:56:39,190 fl-ordni dritt. 1044 00:56:39,190 --> 00:56:42,570 >> Allura bażikament, dak li qed jiġri li jiġri huwa hawnhekk, per eżempju, 1045 00:56:42,570 --> 00:56:44,160 għandek 8 u 6. 1046 00:56:44,160 --> 00:56:47,270 Inti taf li l-ordni Issortjati se fil-fatt tkun 6 u 5, id-dritt? 1047 00:56:47,270 --> 00:56:49,540 Allura inti qed tmur biex tpartit l-ordnijiet. 1048 00:56:49,540 --> 00:56:51,370 Imbagħad I tara 8 u 4 hawn. 1049 00:56:51,370 --> 00:56:52,250 U jien jagħmlu l-istess ħaġa. 1050 00:56:52,250 --> 00:56:53,400 I tpartit darb'oħra. 1051 00:56:53,400 --> 00:56:55,070 U fl-aħħarnett, 2 u 8. 1052 00:56:55,070 --> 00:56:56,670 I wkoll swap lilhom. 1053 00:56:56,670 --> 00:57:01,690 >> Huwa sejjaħ Bubble Sort għaliex wara kull wieħed minn dawn iterazzjonijiet, fil-fatt, 1054 00:57:01,690 --> 00:57:05,910 l-akbar numru fil-lista gets kollha il-mod sa l-aħħar tal-lista. 1055 00:57:05,910 --> 00:57:06,940 Does li jagħmel sens? 1056 00:57:06,940 --> 00:57:11,880 Minħabba li żżomm iskambji it u jmexxuh lejn il-lemin. 1057 00:57:11,880 --> 00:57:14,440 >> OK, għalhekk dan huwa t-tieni iterazzjoni. 1058 00:57:14,440 --> 00:57:17,200 Ikun l-istess ħaġa. 1059 00:57:17,200 --> 00:57:20,190 I ser tagħmel swap wieħed u allura l-aħħar wieħed. 1060 00:57:20,190 --> 00:57:23,290 I li m'hemm l-ebda tpartit u l-lista hija magħżula. 1061 00:57:23,290 --> 00:57:27,460 Għalhekk fl Sort Bubble, aħna bażikament iżommu għaddejja l-lista u iskambji 1062 00:57:27,460 --> 00:57:32,310 affarijiet sal I Avviż li jien ma tagħmel xi tpartit tagħmel dak iterazzjoni, li 1063 00:57:32,310 --> 00:57:34,270 ifisser dik il-lista hija diġà riżolta. 1064 00:57:34,270 --> 00:57:35,520 Jagħmel sens? 1065 00:57:35,520 --> 00:57:38,400 1066 00:57:38,400 --> 00:57:40,870 >> Ejja nitkellmu ftit dwar running time. 1067 00:57:40,870 --> 00:57:45,165 Allura Do you guys tiftakar Big O, Omega, u Theta? 1068 00:57:45,165 --> 00:57:49,290 1069 00:57:49,290 --> 00:57:50,990 Yeah? 1070 00:57:50,990 --> 00:57:53,070 OK, dak li huwa O Big, l-ewwel nett? 1071 00:57:53,070 --> 00:57:54,315 >> UDJENZA: [inaudible]. 1072 00:57:54,315 --> 00:57:59,070 >> LUCAS: Yeah, huwa msejjaħ agħar każ runtime, li ifisser biss li huwa 1073 00:57:59,070 --> 00:58:03,470 kemm inti tistenna l-programm li jieħdu jiddekorri. 1074 00:58:03,470 --> 00:58:04,910 Bħal, f'termini of-- 1075 00:58:04,910 --> 00:58:06,660 f'dan case-- n. 1076 00:58:06,660 --> 00:58:09,150 In-numru ta 'elementi fil- lista fl-agħar każ. 1077 00:58:09,150 --> 00:58:12,520 Bħal, fl-agħar każ possibbli. 1078 00:58:12,520 --> 00:58:17,100 >> Allura għal Sort Bubble, per eżempju, għandna O Big ta n kwadru. 1079 00:58:17,100 --> 00:58:20,580 Għalfejn għandna li? 1080 00:58:20,580 --> 00:58:24,716 Għaliex hija Bubble Sort Big kwadru O n? 1081 00:58:24,716 --> 00:58:27,614 >> UDJENZA: [inaudible]. 1082 00:58:27,614 --> 00:58:35,670 >> LUCAS: Yeah, hekk l-agħar każ se jkun li I ser ikollok tagħmel iterazzjonijiet n. 1083 00:58:35,670 --> 00:58:39,260 Allura kull wieħed mill-iterazzjonijiet se iġibu l-akbar element sa l-aħħar 1084 00:58:39,260 --> 00:58:40,290 tal-lista. 1085 00:58:40,290 --> 00:58:44,230 Allura l-agħar każ hija li għandi biex tagħmel dan ħaġa n żminijiet. 1086 00:58:44,230 --> 00:58:48,550 U għal kull waħda minn dawk il-ħinijiet, I għandhom do Swaps n minħabba I jkollu jqabbel 1087 00:58:48,550 --> 00:58:49,870 kull żewġ elementi. 1088 00:58:49,870 --> 00:58:53,730 Allura hu għalhekk li huwa n kwadra għaliex dan huwa n żminijiet n. 1089 00:58:53,730 --> 00:59:00,120 >> Imbagħad, sort għażla hija wkoll n kwadru minħabba li, għal kull iterazzjoni, ikolli 1090 00:59:00,120 --> 00:59:02,650 tħares lejn kull element uniku fil-lista. 1091 00:59:02,650 --> 00:59:04,980 U mbagħad isibu l-iżgħar, li jfisser li għandi 1092 00:59:04,980 --> 00:59:06,130 tfittex permezz ta 'elementi n. 1093 00:59:06,130 --> 00:59:11,750 U nagħmel li n drabi minħabba I għandhom jagħżlu l-elementi kollha n. 1094 00:59:11,750 --> 00:59:18,273 >> An sort inserzjoni huwa wkoll n kwadru minħabba li l-agħar każ se 1095 00:59:18,273 --> 00:59:20,950 jkun, wieħed, għandi li daħħal n-numri, id-dritt? 1096 00:59:20,950 --> 00:59:22,765 So I diġà jafu li jien ser li jkollhom iterazzjonijiet n. 1097 00:59:22,765 --> 00:59:25,466 1098 00:59:25,466 --> 00:59:29,840 Iżda għal kull waħda minn dawn in-numri, jekk kelli li tħares lejn kollha tal-numri fil- 1099 00:59:29,840 --> 00:59:34,380 il-lista magħżula u qiegħdu kollu il-mod fl-quddiem, li se jkun n kwadri 1100 00:59:34,380 --> 00:59:36,230 minħabba li se jkun n żminijiet n-ġdid. 1101 00:59:36,230 --> 00:59:38,280 Jagħmel sens? 1102 00:59:38,280 --> 00:59:41,512 Xi ngħidu dwar omega? 1103 00:59:41,512 --> 00:59:42,886 >> UDJENZA: [inaudible]. 1104 00:59:42,886 --> 00:59:44,620 >> LUCAS: Huwa l-aħjar xenarju każ. 1105 00:59:44,620 --> 00:59:48,810 Allura huwa simili, fil-lott ta 'drabi biex issortjar, ix-xenarju każ-aħjar huwa 1106 00:59:48,810 --> 00:59:50,660 meta l-lista hija diġà riżolta. 1107 00:59:50,660 --> 00:59:52,670 Allura inti ma verament ikollhom li tagħmel xejn. 1108 00:59:52,670 --> 00:59:56,290 Sort Bubble għandu l-aħjar xenarju ta 'n. 1109 00:59:56,290 --> 00:59:58,820 Do you guys taf għaliex? 1110 00:59:58,820 --> 01:00:00,620 >> UDJENZA: [inaudible]. 1111 01:00:00,620 --> 01:00:05,640 >> LUCAS: Yeah, jekk inti żżomm rekord ta ' jekk razzjon data kellha xi tpartit jew 1112 01:00:05,640 --> 01:00:10,533 le, jekk għandek xi ħaġa simili stabbiliti biex minnu jekk kien hemm iterazzjoni, jekk il- 1113 01:00:10,533 --> 01:00:15,140 lista hija diġà magħżula, bażikament, x'inhu jiġri huwa jien ser 1114 01:00:15,140 --> 01:00:17,890 jippruvaw li tpartit kull tnejn elementi ħdejn xulxin. 1115 01:00:17,890 --> 01:00:19,920 Jien ser tara li m'hemm l-ebda tpartit. 1116 01:00:19,920 --> 01:00:21,230 U jien biss jirritorna dritt bogħod. 1117 01:00:21,230 --> 01:00:24,240 >> Allura dan ifisser li jien biss kellhom jgħaddu l-lista ta 'darba. 1118 01:00:24,240 --> 01:00:28,990 Allura huwa n għaliex nħares fil n elementi. 1119 01:00:28,990 --> 01:00:30,930 Għaliex għażla sort n kwadru? 1120 01:00:30,930 --> 01:00:35,150 1121 01:00:35,150 --> 01:00:45,520 >> Yeah, anki jekk l-lista hija magħżula, għall- kull iterazzjoni ta 'tip ta' għażla, I 1122 01:00:45,520 --> 01:00:47,590 għandhom jagħżlu l-element minimu. 1123 01:00:47,590 --> 01:00:49,980 Allura dan ifisser li għandi biex tfittex lejn l-elementi fil-mhux magħżul 1124 01:00:49,980 --> 01:00:53,350 lista u jsibu l-minimu għal kull iterazzjoni. 1125 01:00:53,350 --> 01:00:54,600 Does li jagħmel sens? 1126 01:00:54,600 --> 01:00:56,880 1127 01:00:56,880 --> 01:01:04,690 >> U xabla inserzjoni huwa n għaliex fil- każ li jien jippruvaw li daħħal il- 1128 01:01:04,690 --> 01:01:09,320 numri u kollha tal-numri, meta I jippruvaw daħħal lilhom, nara li dawn 1129 01:01:09,320 --> 01:01:10,510 huma fil-pożizzjoni dritt. 1130 01:01:10,510 --> 01:01:15,120 I ma jkollhom imorru jiċċekkjaw kollha l-oħra numri fil-lista mhux magħżul. 1131 01:01:15,120 --> 01:01:17,170 Allura hu għalhekk li se jkun n. 1132 01:01:17,170 --> 01:01:19,480 Jagħmel sens? 1133 01:01:19,480 --> 01:01:21,035 U dak li huwa theta? 1134 01:01:21,035 --> 01:01:23,410 >> UDJENZA: [inaudible]. 1135 01:01:23,410 --> 01:01:24,380 >> LUCAS: Liema, sorry? 1136 01:01:24,380 --> 01:01:24,960 Ngħid mill-ġdid. 1137 01:01:24,960 --> 01:01:25,666 >> UDJENZA: [inaudible]. 1138 01:01:25,666 --> 01:01:26,490 >> LUCAS: Eżattament. 1139 01:01:26,490 --> 01:01:31,280 Allura tista 'tara li biss selezzjoni maħżuna fil Merge sort jkollhom thetas. 1140 01:01:31,280 --> 01:01:39,920 U dan għaliex inti biss għandek theta jekk kemm Big O u Omega huma l-istess. 1141 01:01:39,920 --> 01:01:41,520 OK. 1142 01:01:41,520 --> 01:01:44,210 U fl-aħħarnett, jingħaqdu sort jiġifieri fil log n. 1143 01:01:44,210 --> 01:01:48,910 >> U mbagħad, kif Dan kien qal, Jingħaqdu sort huwa tip ta bħall-istess mod li 1144 01:01:48,910 --> 01:01:50,320 inti tagħmel tfittxija binarja. 1145 01:01:50,320 --> 01:01:53,530 Allura inti tikseb il-lista. 1146 01:01:53,530 --> 01:01:55,170 U int ser maqtugħa f'nofsijiet. 1147 01:01:55,170 --> 01:02:00,580 U allura inti maqtugħin minnhom f'nofsijiet iżgħar. 1148 01:02:00,580 --> 01:02:01,730 U allura inti jingħaqdu. 1149 01:02:01,730 --> 01:02:02,960 Inti guys ftakar li, id-dritt? 1150 01:02:02,960 --> 01:02:04,960 OK, kif kien qal. 1151 01:02:04,960 --> 01:02:08,330 >> OK, pointers. 1152 01:02:08,330 --> 01:02:11,078 Allura dak li huwa pointer? 1153 01:02:11,078 --> 01:02:12,050 >> UDJENZA: [inaudible]. 1154 01:02:12,050 --> 01:02:12,820 >> LUCAS: An indirizz. 1155 01:02:12,820 --> 01:02:13,720 OK. 1156 01:02:13,720 --> 01:02:18,530 Naf li David juri mazz ta ' videos ta Binky u affarijiet tipponta 1157 01:02:18,530 --> 01:02:19,080 xulxin. 1158 01:02:19,080 --> 01:02:22,960 Imma I simili biex jaħsbu ta 'pointers bħala sempliċi indirizz. 1159 01:02:22,960 --> 01:02:26,110 Allura huwa varjabbli li huwa għaddej biex jaħżnu indirizz. 1160 01:02:26,110 --> 01:02:31,940 >> Allura huwa biss dan il-varjabbli speċjali li huwa erba bytes twil. 1161 01:02:31,940 --> 01:02:36,550 Ftakar, li pointer li xejn huwa dejjem erbgħa bytes twil għall 32-bit tagħna 1162 01:02:36,550 --> 01:02:39,370 magna sabiex il-każ ma ' l-appliance. 1163 01:02:39,370 --> 01:02:41,920 1164 01:02:41,920 --> 01:02:47,050 U hija biss għandha l-post ta 'varjabbli ġewwa ta' dan. 1165 01:02:47,050 --> 01:02:50,240 >> OK, hekk hemm din il-memorja, bażikament. 1166 01:02:50,240 --> 01:02:57,420 Allura kull blokk ta 'memorja attwalment għandha tikketta, li hija l-indirizz tal- 1167 01:02:57,420 --> 01:02:58,890 memorja slotty. 1168 01:02:58,890 --> 01:03:02,370 Allura dan ifisser li nista 'jkollhom tipponta pointer biex 1169 01:03:02,370 --> 01:03:03,380 kwalunkwe minn dawn l-indirizzi. 1170 01:03:03,380 --> 01:03:09,930 Allura r-raġuni għaliex aħna ser tuża pointers huwa jekk ikolli biex tiftakar l-post 1171 01:03:09,930 --> 01:03:12,300 li varjabbli speċifiku huwa memorja. 1172 01:03:12,300 --> 01:03:16,560 >> U inti guys ftakar li wieħed minn dawk każijiet kien jekk ikolli funzjoni 1173 01:03:16,560 --> 01:03:20,820 jekk ikolli fil-fatt tixtieq li inti tpartit għall reals, I attwalment 1174 01:03:20,820 --> 01:03:22,110 għandek tibgħat pointer. 1175 01:03:22,110 --> 01:03:23,460 Mhux l-varjabbli. 1176 01:03:23,460 --> 01:03:25,200 Do you guys ftakar li? 1177 01:03:25,200 --> 01:03:26,450 Il between-- differenza 1178 01:03:26,450 --> 01:03:33,350 1179 01:03:33,350 --> 01:03:34,120 dak huwa l-isem? 1180 01:03:34,120 --> 01:03:36,010 Sejħat mill-valur u ssejjaħ b'referenza, id-dritt? 1181 01:03:36,010 --> 01:03:36,840 >> OK, yeah. 1182 01:03:36,840 --> 01:03:38,330 Allura sejħa mill-valur. 1183 01:03:38,330 --> 01:03:43,570 Meta inti biss tibgħat varjabbli li jiffunzjonaw int biss tibgħat valur. 1184 01:03:43,570 --> 01:03:45,610 Allura int fil-fatt tibgħat kopja tal-varjabbli. 1185 01:03:45,610 --> 01:03:49,720 U l-programm tiegħek ma setgħux kura inqas dwar jekk l-istess varjabbli attwalment 1186 01:03:49,720 --> 01:03:51,650 jagħmel kopja. 1187 01:03:51,650 --> 01:03:56,330 >> U ssejjaħ b'referenza ifisser li Jien fil-fatt tibgħat kopja ta 'l- 1188 01:03:56,330 --> 01:03:57,550 pointer li dak il-varjabbli. 1189 01:03:57,550 --> 01:04:00,970 Allura dan ifisser li jien jibgħat il- post ta 'dak il-varjabbli. 1190 01:04:00,970 --> 01:04:04,440 So sens Għandi l-post ta 'l- varjabbli, meta I-sejħa l-funzjoni 1191 01:04:04,440 --> 01:04:09,700 ma pointers, jien kapaċi biex effettivament jibdlu l-data li kien fil prinċipali. 1192 01:04:09,700 --> 01:04:12,050 Jagħmel sens? 1193 01:04:12,050 --> 01:04:17,560 >> Għalkemm, il-pointer hija kopja, il- pointer għad għandu l-indirizz reali ta ' 1194 01:04:17,560 --> 01:04:20,090 il-varjabbli li I trid tibdel. 1195 01:04:20,090 --> 01:04:21,920 Jagħmel sens? 1196 01:04:21,920 --> 01:04:24,290 >> Allura ħolqien pointers. 1197 01:04:24,290 --> 01:04:28,410 Ftakar, il-pointer dejjem ikollhom it-tip li huwa tipponta 1198 01:04:28,410 --> 01:04:29,890 biex u mbagħad stilla. 1199 01:04:29,890 --> 01:04:31,030 U allura inti tpoġġi l-isem. 1200 01:04:31,030 --> 01:04:35,765 Mela ftakar li kull meta inti għandek kwalunkwe star, huwa simili pointer biex 1201 01:04:35,765 --> 01:04:38,990 li kwalunkwe varjabbli tip li kellek. 1202 01:04:38,990 --> 01:04:42,850 >> Allura hawn fil star, per eżempju, huwa pointer u integer. 1203 01:04:42,850 --> 01:04:47,680 U allura star char huwa pointer star char u ibqa 'sejjer hekk. 1204 01:04:47,680 --> 01:04:47,960 Yeah? 1205 01:04:47,960 --> 01:04:52,710 >> UDJENZA: X'jiġri jekk għandna pointer li n-istilla x. 1206 01:04:52,710 --> 01:04:55,255 Naf li toħloq pointer li x. 1207 01:04:55,255 --> 01:04:59,432 Ma tiddikjara wkoll x integer? 1208 01:04:59,432 --> 01:05:05,170 >> LUCAS: OK, hekk meta inti tgħidli n star x, int ma toħloq pointer għal 1209 01:05:05,170 --> 01:05:06,000 x varjabbli. 1210 01:05:06,000 --> 01:05:08,170 Inti toħloq pointer jismu x. 1211 01:05:08,170 --> 01:05:09,396 >> UDJENZA: [inaudible]. 1212 01:05:09,396 --> 01:05:14,250 >> LUCAS: Allura meta I say n star x, jien qal, ħej, fil-memorja, jien ser 1213 01:05:14,250 --> 01:05:16,390 tikseb wieħed minn dawn it-tliet kaxxi. 1214 01:05:16,390 --> 01:05:20,750 U jien se ngħid li dan se tkun x, li hija 1215 01:05:20,750 --> 01:05:22,000 ser tkun pointer. 1216 01:05:22,000 --> 01:05:26,860 1217 01:05:26,860 --> 01:05:30,640 U xi ħaġa interessanti dwar pointers hija li aħna ngħidu li dawn ikollhom 1218 01:05:30,640 --> 01:05:32,620 4 bytes għal magna 32-bit. 1219 01:05:32,620 --> 01:05:36,320 U r-raġuni għal dan hija għaliex 4 bytes huma 32-bits. 1220 01:05:36,320 --> 01:05:40,490 >> U magni li huma 64 bits attwalment jkollhom indirizzi pointers 1221 01:05:40,490 --> 01:05:43,480 li huma 64 bits tul. 1222 01:05:43,480 --> 01:05:49,820 Allura dan ifisser biss li d-daqs tal- indirizzi fil-magna hija differenti. 1223 01:05:49,820 --> 01:05:52,270 >> Allura Referenzar u Dereferencing. 1224 01:05:52,270 --> 01:05:54,310 Hemm żewġ operaturi li inti guys għandhom jiftakru. 1225 01:05:54,310 --> 01:05:55,450 L-ewwel hija ampersand. 1226 01:05:55,450 --> 01:05:56,810 It-tieni huwa star. 1227 01:05:56,810 --> 01:06:05,060 Ma jsibux konfuż minn dak star u dan STAR minħabba ftakar li, fil- 1228 01:06:05,060 --> 01:06:06,950 F'dan il-każ, inti għandek n star. 1229 01:06:06,950 --> 01:06:08,700 >> Huwa simili ħaġa sħiħa flimkien. 1230 01:06:08,700 --> 01:06:10,720 M'hemm l-ebda stilla ispazju n. 1231 01:06:10,720 --> 01:06:12,070 Allura dan ifisser li huwa t-tip. 1232 01:06:12,070 --> 01:06:14,870 Ftakar, li meta jkollok l-istilla varjabbli, int 1233 01:06:14,870 --> 01:06:16,230 jitkellem dwar it-tip. 1234 01:06:16,230 --> 01:06:20,540 >> Meta inti għandek biss star u allura l- isem tal-varjabbli, dan ifisser li 1235 01:06:20,540 --> 01:06:24,100 int dereferencing l pointer, li ifisser li inti qed tfittex fil- 1236 01:06:24,100 --> 01:06:28,290 pointer, konstatazzjoni-indirizz huwa tipponta lejn, tmur f'dak l-indirizz, 1237 01:06:28,290 --> 01:06:30,850 u tħares lejn kull meta għandek hemmhekk. 1238 01:06:30,850 --> 01:06:34,310 So I tell istudenti tiegħi li meta jkollok star, inti għandek taħseb li huwa 1239 01:06:34,310 --> 01:06:36,850 l-abbrevjazzjoni tal-kontenut ta '. 1240 01:06:36,850 --> 01:06:39,770 >> Mela jekk għandek pointer u int do pointer star, huwa l- 1241 01:06:39,770 --> 01:06:41,720 kontenut tal-pointer. 1242 01:06:41,720 --> 01:06:44,580 Allura inti tmur għal dak kollu huwa li tipponta lejn u ħarsa lejn il-kontenut kostanti. 1243 01:06:44,580 --> 01:06:47,730 U l-ampersand huwa l-istess Ħaġa bħala indirizz tal. 1244 01:06:47,730 --> 01:06:52,560 >> Mela jekk ikolli varjabbli a-- simili, ejja ngħid li għamilt int a ugwali 3-- 1245 01:06:52,560 --> 01:06:56,900 jekk irrid biex isibu l-indirizz ta 'dik varjabbli memorja, I tista 'biss tagħmel 1246 01:06:56,900 --> 01:06:58,240 ampersand a. 1247 01:06:58,240 --> 01:07:00,280 Allura huwa indirizz ta '. 1248 01:07:00,280 --> 01:07:01,530 Jagħmel sens? 1249 01:07:01,530 --> 01:07:03,790 1250 01:07:03,790 --> 01:07:05,040 >> Allura hawnhekk eżempju. 1251 01:07:05,040 --> 01:07:08,370 1252 01:07:08,370 --> 01:07:11,530 Dan hija nieqsa int b u int c. 1253 01:07:11,530 --> 01:07:16,520 Allura int a ugwali 3 mezz li Jien se jmorru għall-memorja. 1254 01:07:16,520 --> 01:07:19,870 U jien ser isibu slot u tpoġġi l-numru 3 hawn. 1255 01:07:19,870 --> 01:07:22,200 >> U mbagħad int b ugwali 4. 1256 01:07:22,200 --> 01:07:23,100 Jien ser jagħmlu l-istess ħaġa. 1257 01:07:23,100 --> 01:07:25,840 Mur memorja u tpoġġi numru 4 f'wieħed mill-kaxxi. 1258 01:07:25,840 --> 01:07:27,100 U int ugwali 5. 1259 01:07:27,100 --> 01:07:29,740 Sib ieħor kaxxa u mqiegħda numru 5. 1260 01:07:29,740 --> 01:07:36,160 >> Allura x'inhi din il-linja tagħmel out? pa n star ugwali ampersand a. 1261 01:07:36,160 --> 01:07:37,800 Allura l-ewwel nett, n pa star. 1262 01:07:37,800 --> 01:07:39,050 X'inhu tagħmel? 1263 01:07:39,050 --> 01:07:40,930 1264 01:07:40,930 --> 01:07:42,298 >> UDJENZA: [inaudible]. 1265 01:07:42,298 --> 01:07:47,890 >> LUCAS: Yeah, hekk n pa star, l-ewwel, tiddikjara pointer imsejjaħ pa. 1266 01:07:47,890 --> 01:07:53,720 U allura huwa assenjata l-valur ta ' li pointer li jkun l-indirizz ta '. 1267 01:07:53,720 --> 01:07:55,790 Allura ampersand a. 1268 01:07:55,790 --> 01:07:58,510 Imbagħad, jekk I do pb star, dak huwa pb star? 1269 01:07:58,510 --> 01:08:02,418 1270 01:08:02,418 --> 01:08:03,150 >> Oh, sorry. 1271 01:08:03,150 --> 01:08:06,330 Dan huwa wkoll nieqsa. n pb star. 1272 01:08:06,330 --> 01:08:07,905 I jfisser star pc. 1273 01:08:07,905 --> 01:08:11,200 Jien hekk sorry. 1274 01:08:11,200 --> 01:08:11,940 Hu l-istess ħaġa. 1275 01:08:11,940 --> 01:08:16,408 Imma issa jien tajba ar-ħolqien ta 'pointer biex b u mbagħad pointer sa c. 1276 01:08:16,408 --> 01:08:16,886 Yeah? 1277 01:08:16,886 --> 01:08:18,136 >> UDJENZA: [inaudible]? 1278 01:08:18,136 --> 01:08:25,490 1279 01:08:25,490 --> 01:08:26,670 >> LUCAS: Iva. 1280 01:08:26,670 --> 01:08:32,630 Mela jekk inti tmur għall-memorja u inti tmur biex l-kaxxa li hija designator għall pa, 1281 01:08:32,630 --> 01:08:37,149 int fil-fatt se tara l-indirizz ta '. 1282 01:08:37,149 --> 01:08:38,399 OK? 1283 01:08:38,399 --> 01:08:42,970 1284 01:08:42,970 --> 01:08:43,300 Yeah? 1285 01:08:43,300 --> 01:08:45,605 >> UDJENZA: [inaudible]? 1286 01:08:45,605 --> 01:08:49,260 >> LUCAS: Yeah, pointer huwa indirizz. 1287 01:08:49,260 --> 01:08:50,120 Qatt tinsa li. 1288 01:08:50,120 --> 01:08:52,800 Huwa simili l-aktar importanti parti dwar pointers. 1289 01:08:52,800 --> 01:08:56,180 Hemm ħażna u l-indirizz għal xi varjabbli. 1290 01:08:56,180 --> 01:08:56,890 Xi ħaġa oħra? 1291 01:08:56,890 --> 01:08:58,370 Kwalunkwe mistoqsijiet oħra? 1292 01:08:58,370 --> 01:08:59,189 OK. 1293 01:08:59,189 --> 01:09:00,399 >> Allura Pointers u Arrays. 1294 01:09:00,399 --> 01:09:08,189 Ftakar li meta I do int firxa 3, bażikament, dak li qed nagħmel huwa jien, it-tip 1295 01:09:08,189 --> 01:09:12,779 ta ', li tiddikjara fil-pointer. 1296 01:09:12,779 --> 01:09:18,960 Allura firxa hija tip simili ta 'pointer għal post speċifiku fil-memorja li fiha I 1297 01:09:18,960 --> 01:09:21,999 allokati tliet slots għal kulħadd interi. 1298 01:09:21,999 --> 01:09:23,430 Does li jagħmel sens? 1299 01:09:23,430 --> 01:09:30,250 >> Allura meta I do firxa int 3, dak jien tagħmel, bażikament, qed toħloq tlieta 1300 01:09:30,250 --> 01:09:31,479 slots fil-memorja. 1301 01:09:31,479 --> 01:09:33,899 So I biss issib tliet slots fil-memorja. 1302 01:09:33,899 --> 01:09:38,810 Mela jekk jien do, imbagħad, firxa star, huwa bażikament ifisser il-kontenut ta 'firxa, 1303 01:09:38,810 --> 01:09:46,180 li jfisser I tħassar il-pointer, I go għal dak il-post li huwa tipponta lejn, 1304 01:09:46,180 --> 01:09:47,939 u I tpoġġi l-numru wieħed. 1305 01:09:47,939 --> 01:09:53,729 >> U mbagħad, jekk nagħmel star firxa plus 1, dak l-istess ħaġa bħat tagħmel firxa 1306 01:09:53,729 --> 01:09:59,690 ħin, l waħda, li ifisser biss mmur il-post li huwa tipponta lejn. 1307 01:09:59,690 --> 01:10:03,000 U allura l-għamliet plus 1 me shift pożizzjoni waħda. 1308 01:10:03,000 --> 01:10:06,510 So I mur din il-pożizzjoni, fil-fatt, u tpoġġi l-numru tnejn. 1309 01:10:06,510 --> 01:10:10,900 >> U mbagħad, finalment, meta I do array plus 2, I jmorru fejn 1310 01:10:10,900 --> 01:10:11,825 tipponta firxa fiż. 1311 01:10:11,825 --> 01:10:14,690 U mbagħad I jimxu għal blokki memorja. 1312 01:10:14,690 --> 01:10:16,240 U mbagħad I tpoġġi l-numru tlieta hawnhekk. 1313 01:10:16,240 --> 01:10:16,600 Yeah? 1314 01:10:16,600 --> 01:10:21,400 >> UDJENZA: array Allura star huwa sempliċement qal l-ewwel punt. 1315 01:10:21,400 --> 01:10:25,090 U inti tista 'żżid 1, sempliċement minħabba aħna qed biss verament 1316 01:10:25,090 --> 01:10:27,295 referenzar li l-ewwel indirizz. 1317 01:10:27,295 --> 01:10:28,545 >> LUCAS: Yeah. 1318 01:10:28,545 --> 01:10:32,720 1319 01:10:32,720 --> 01:10:36,020 Għalfejn nagħmlu, per eżempju, jgħidu array 0, array 1, u array 2? 1320 01:10:36,020 --> 01:10:38,970 1321 01:10:38,970 --> 01:10:42,790 Jien qal, għaliex do you do 0, 1, 2, 3 minflok 1, 2, 3? 1322 01:10:42,790 --> 01:10:46,550 Waħda mir-raġunijiet hija, waħda, kompjuter programmaturi jippreferu li jibdew 1323 01:10:46,550 --> 01:10:47,750 li jibda jgħodd mill 0. 1324 01:10:47,750 --> 01:10:52,370 Żewġ huwa għaliex meta inti tagħmel firxa 0, huwa l-istess ħaġa bħat tagħmel firxa 1325 01:10:52,370 --> 01:10:56,330 plus 0, li jfisser mmur dik il-pożizzjoni, u jien ma 1326 01:10:56,330 --> 01:10:59,320 skip xi blokki memorja. 1327 01:10:59,320 --> 01:11:01,750 So I ma jiċċaqalqux xi blokki memorja. 1328 01:11:01,750 --> 01:11:02,015 Yeah? 1329 01:11:02,015 --> 01:11:03,265 >> UDJENZA: [inaudible]? 1330 01:11:03,265 --> 01:11:05,928 1331 01:11:05,928 --> 01:11:12,670 >> LUCAS: Hekk hi s tistaqsi liema huwa id-differenza bejn li jagħmlu 1332 01:11:12,670 --> 01:11:14,000 dan jew tagħmel malloc. 1333 01:11:14,000 --> 01:11:17,550 Waħda mid-differenzi hija li array int 3 huwa ħolqien ta ' 1334 01:11:17,550 --> 01:11:19,260 array fuq il-munzell. 1335 01:11:19,260 --> 01:11:23,080 U meta I do malloc, dan joħloq fuq il-borġ. 1336 01:11:23,080 --> 01:11:25,250 Does li jagħmel sens? 1337 01:11:25,250 --> 01:11:28,870 >> Allura kif ma malloc attwalment jaħdmu? 1338 01:11:28,870 --> 01:11:32,245 Allura għaliex għandna anke bżonn l-użu malloc? 1339 01:11:32,245 --> 01:11:35,730 1340 01:11:35,730 --> 01:11:39,700 Kompilatur tip ta 'figuri Your out kollha l-varjabbli li inti ddikjarati. 1341 01:11:39,700 --> 01:11:44,040 U hu joħloq spazju għal kulħadd minnhom fil-ċmieni. 1342 01:11:44,040 --> 01:11:47,180 Allura kollha ta 'varjabbli tiegħek ser li tkun x'imkien fil-ċmieni. 1343 01:11:47,180 --> 01:11:49,460 Allura hawnhekk huwa l-varjabbli ambjent. 1344 01:11:49,460 --> 01:11:53,850 >> Allura bażikament, spazju għall-dawk il-varjabbli fil-memorja huwa allokat fuq 1345 01:11:53,850 --> 01:11:55,080 jikkompilaw ħin. 1346 01:11:55,080 --> 01:11:58,790 Allura dan ifisser li l-kompjuter tiegħek għandha tkun taf kollha ta 'dawk il-varjabbli 1347 01:11:58,790 --> 01:11:59,790 qabel. 1348 01:11:59,790 --> 01:12:02,500 Dan ma jeħtieġx li jkunu jafu liema valur int ser tpoġġi fihom. 1349 01:12:02,500 --> 01:12:05,490 Iżda jeħtieġ li tkun taf kif ħafna memorja għandek bżonn. 1350 01:12:05,490 --> 01:12:09,380 >> Imma issa ejja ngħidu li, per eżempju, int ħolqien firxa jew tieħu 1351 01:12:09,380 --> 01:12:13,430 string li inti qed tieħu mill-utent. 1352 01:12:13,430 --> 01:12:17,300 Inti ma nafx kemm-sekwenza se tkun, per eżempju. 1353 01:12:17,300 --> 01:12:20,600 Allura inti ma tafx eżattament kemm blokki memorja inti jallokaw, id-dritt? 1354 01:12:20,600 --> 01:12:24,120 >> Allura ma verament jagħmel sens għall inti ngħid tpoġġi 100 karattru. 1355 01:12:24,120 --> 01:12:26,420 U mbagħad jekk dak l-utent jikteb 150? 1356 01:12:26,420 --> 01:12:27,670 Int ser tkun invitat. 1357 01:12:27,670 --> 01:12:30,160 1358 01:12:30,160 --> 01:12:34,620 >> Allura bażikament, inti ma tistax tkun ċert ta 'kif ħafna memorja għandek bżonn biex jallokaw 1359 01:12:34,620 --> 01:12:35,960 meta inti tiġbor l-programm. 1360 01:12:35,960 --> 01:12:38,240 Inti biss taf li fil-ħin run. 1361 01:12:38,240 --> 01:12:39,950 Allura hu għalhekk li inti għandek il-borġ. 1362 01:12:39,950 --> 01:12:47,610 Allura l-borġ huwa se jkollu memorja li int allokazzjoni matul il- 1363 01:12:47,610 --> 01:12:50,810 tul tal-programm running. 1364 01:12:50,810 --> 01:12:55,780 >> Allura bażikament, meta inti tagħmel malloc, liema qed tagħmel qed jalloka memorja fi 1365 01:12:55,780 --> 01:13:00,160 runtime, li jfisser li int jiddeċiedu dritt f'dak il-mument li inti 1366 01:13:00,160 --> 01:13:02,670 għandu jkollhom li l-memorja. 1367 01:13:02,670 --> 01:13:04,210 Allura dak meta int allokazzjoni tiegħu. 1368 01:13:04,210 --> 01:13:06,430 Does li jagħmel sens? 1369 01:13:06,430 --> 01:13:11,690 >> Mela ftakar, il-munzell għandu varjabbli li huma maħluqa fil-ħin jikkompilaw. 1370 01:13:11,690 --> 01:13:14,560 U allura l-borġ ikollu varjabbli li huma maħluqa kif tmur 1371 01:13:14,560 --> 01:13:15,600 ma malloc, per eżempju. 1372 01:13:15,600 --> 01:13:16,850 >> UDJENZA: [inaudible]? 1373 01:13:16,850 --> 01:13:19,179 1374 01:13:19,179 --> 01:13:24,340 >> LUCAS: Allura GetString huwa ser sejħa malloc. 1375 01:13:24,340 --> 01:13:26,710 Let me jitkellmu dwar malloc, u I ser jispjegaw GetString. 1376 01:13:26,710 --> 01:13:32,000 Allura malloc huwa l-istess ħaġa bħala allokazzjoni memorja. 1377 01:13:32,000 --> 01:13:34,600 Allura li għaddej biex jallokaw memorja fuq il-borġ. 1378 01:13:34,600 --> 01:13:40,010 U li għaddej biex jirritornaw pointer biex fejn dak memorja kienet allokata fil. 1379 01:13:40,010 --> 01:13:43,090 >> Allura meta inti do-- 1380 01:13:43,090 --> 01:13:44,910 hawn għal example-- 1381 01:13:44,910 --> 01:13:45,830 n pointer star. 1382 01:13:45,830 --> 01:13:50,520 U mbagħad pointer ugwali malloc daqs ta 'drabi pulzier 10. 1383 01:13:50,520 --> 01:13:52,110 Jien ħolqien ta 'pointer. 1384 01:13:52,110 --> 01:13:59,020 U mbagħad jien assenjazzjoni li pointer biex il-valur tal-pointer li malloc 1385 01:13:59,020 --> 01:13:59,680 qed tagħti me. 1386 01:13:59,680 --> 01:14:04,150 >> So jien tistaqsi malloc tista talloka spazju għal 10 interi. 1387 01:14:04,150 --> 01:14:05,390 Dak hu li huwa qal. 1388 01:14:05,390 --> 01:14:09,020 U malloc tagħti me lura pointer li dak il-post. 1389 01:14:09,020 --> 01:14:11,460 Jagħmel sens? 1390 01:14:11,460 --> 01:14:12,270 OK. 1391 01:14:12,270 --> 01:14:17,940 I U GetString huwa, bażikament, tagħmel sejħa biex malloc sabiex inti tista 'talloka 1392 01:14:17,940 --> 01:14:21,680 memorja matul runtime. 1393 01:14:21,680 --> 01:14:26,460 >> Dejjem ftakar biex jiċċekkja għal null minħabba malloc se jirritorna null 1394 01:14:26,460 --> 01:14:28,200 jekk ma jistax jalloka memorja. 1395 01:14:28,200 --> 01:14:31,660 Ejja ngħidu li inti titlob għal redikoli ammont tal-memorja. 1396 01:14:31,660 --> 01:14:33,950 Kompjuter tiegħek mhux se tkun kapaċi jallokaw li ħafna. 1397 01:14:33,950 --> 01:14:36,410 >> Allura malloc huwa biss se li jirritornaw null. 1398 01:14:36,410 --> 01:14:42,210 Allura dejjem ftakar biex jiċċekkjaw jekk il- pointer li inti ltqajna minn malloc huwa 1399 01:14:42,210 --> 01:14:45,640 null jew mhux minħabba, jekk huwa, inti tista ' jiġu dereferencing pointer u 1400 01:14:45,640 --> 01:14:48,340 jikkawżaw difetti sekondarji. 1401 01:14:48,340 --> 01:14:50,930 U fl-aħħarnett, ma ninsewx memorja liberu tiegħek. 1402 01:14:50,930 --> 01:14:57,800 1403 01:14:57,800 --> 01:15:00,560 >> Malloc qed toħloq memorja fil-borġ. 1404 01:15:00,560 --> 01:15:03,436 U inti għandek biex tilliberalizza l-memorja qabel jintemm il-programm. 1405 01:15:03,436 --> 01:15:05,370 OK, li kollox għalija. 1406 01:15:05,370 --> 01:15:07,900 Jiddispjacini, Rob. 1407 01:15:07,900 --> 01:15:07,950 Grazzi. 1408 01:15:07,950 --> 01:15:09,878 >> [Applause] 1409 01:15:09,878 --> 01:15:12,679 >> LUCAS: Kwalunkwe mistoqsijiet aħħar qabel Rob taqa? 1410 01:15:12,679 --> 01:15:13,138 Nru? 1411 01:15:13,138 --> 01:15:13,597 Yeah? 1412 01:15:13,597 --> 01:15:15,892 >> UDJENZA: I ma tara dan online wieħed. 1413 01:15:15,892 --> 01:15:17,269 Have you uploaded encore? 1414 01:15:17,269 --> 01:15:19,106 >> LUCAS: I think Dave hija uploading malajr. 1415 01:15:19,106 --> 01:15:19,880 >> DAVE: Hija ser jiġu impustati. 1416 01:15:19,880 --> 01:15:20,310 >> LUCAS: Hija ser ikunu online. 1417 01:15:20,310 --> 01:15:21,175 >> UDJENZA: Huwa up. 1418 01:15:21,175 --> 01:15:22,090 >> LUCAS: Huwa up? 1419 01:15:22,090 --> 01:15:23,157 OK. 1420 01:15:23,157 --> 01:15:23,644 Yeah? 1421 01:15:23,644 --> 01:15:27,053 >> UDJENZA: [inaudible]? 1422 01:15:27,053 --> 01:15:30,285 >> LUCAS: Iva, inti għandek ħielsa kollha l- memorja li jitqiegħed fil-borġ. 1423 01:15:30,285 --> 01:15:31,535 >> UDJENZA: [inaudible]? 1424 01:15:31,535 --> 01:15:34,518 1425 01:15:34,518 --> 01:15:36,160 >> LUCAS: Iva. 1426 01:15:36,160 --> 01:15:39,980 Kwalunkwe ħin li inti għandek malloc kultura, inti għandu jkollhom kultura ħielsa 1427 01:15:39,980 --> 01:15:42,640 wara li inti tieqaf tuża dak il-varjabbli. 1428 01:15:42,640 --> 01:15:44,800 Allura malloc u ħielsa huma dejjem flimkien. 1429 01:15:44,800 --> 01:15:45,410 Aħjar ħbieb tagħhom. 1430 01:15:45,410 --> 01:15:46,720 Yeah. 1431 01:15:46,720 --> 01:15:47,970 Rob? 1432 01:15:47,970 --> 01:15:55,595 1433 01:15:55,595 --> 01:15:56,850 >> ROB: I ser imorru malajr. 1434 01:15:56,850 --> 01:16:00,466 U wkoll il-video se jitpoġġew up. 1435 01:16:00,466 --> 01:16:01,716 Għandi l-mic fuq. 1436 01:16:01,716 --> 01:16:24,060 1437 01:16:24,060 --> 01:16:26,230 >> OK, hekk ġimgħa ta 'ħamest Jittieħed. 1438 01:16:26,230 --> 01:16:27,970 L-ewwel ħaġa li għandna huwa l-munzell. 1439 01:16:27,970 --> 01:16:33,390 Mela ftakar li hemm biss munzell wieħed frejm kull sejħa funzjoni attiva. 1440 01:16:33,390 --> 01:16:34,710 Aħna ser tara li fit-tieni. 1441 01:16:34,710 --> 01:16:37,850 U tiftakar ukoll x'inhu dak li attwalment tmur f'kull frame munzell ser ikunu 1442 01:16:37,850 --> 01:16:41,880 il-varjabbli lokali ta 'funzjonijiet tagħna, l-argumenti li huma mgħoddija fis tagħna 1443 01:16:41,880 --> 01:16:43,880 funzjonijiet, flimkien ma 'koppja affarijiet oħra li inti ma verament 1444 01:16:43,880 --> 01:16:45,260 bżonn ninkwetaw dwar. 1445 01:16:45,260 --> 01:16:50,950 >> Allura hawnhekk programm eżempju fejn, avviż, prinċipali huwa printfing-ritorn 1446 01:16:50,950 --> 01:16:52,830 valur ta 'foo 4. 1447 01:16:52,830 --> 01:16:57,930 foo huwa biss se jirritorna l- valur ta 'bar 4 comma 6. 1448 01:16:57,930 --> 01:17:02,380 U bar se jistabbilixxu xi lokali n varjabbli ugwali għal 4 darbiet 6. 1449 01:17:02,380 --> 01:17:03,920 U mbagħad jirritornaw n. 1450 01:17:03,920 --> 01:17:09,130 >> Mela ejja nħarsu lejn il-munzell kollu l-iterazzjoni attwali ta 'dan il-programm. 1451 01:17:09,130 --> 01:17:10,500 Allura hemm il-qiegħ tal munzell tagħna. 1452 01:17:10,500 --> 01:17:12,620 Ftakar li l-munzell tikber up. 1453 01:17:12,620 --> 01:17:15,370 Allura fil-qiegħ tal-munzell tagħna, aħna jkollhom qafas munzell għall prinċipali. 1454 01:17:15,370 --> 01:17:17,000 Meta l-programm jibda, prinċipali huwa dejjem se tkun fil- 1455 01:17:17,000 --> 01:17:18,560 qiegħ tal munzell tagħna. 1456 01:17:18,560 --> 01:17:20,880 >> U dak li hu ġewwa ta 'tagħna munzell frame għall ewlenija? 1457 01:17:20,880 --> 01:17:23,810 Allura anke jekk kien hemm l-ebda lokali Varjabbli li prinċipali, bħal I said qabel, 1458 01:17:23,810 --> 01:17:29,670 għandna argc u RGV jieħu spazju ġewwa ta 'qafas munzell prinċipali. 1459 01:17:29,670 --> 01:17:33,260 Allura ewlenija issa se sejħa tal-foo funzjoni. 1460 01:17:33,260 --> 01:17:35,125 U dan ifisser foo se tikseb frejm munzell tagħha stess. 1461 01:17:35,125 --> 01:17:36,970 >> Allura issa aħna qed ġewwa tal l-foo funzjoni. 1462 01:17:36,970 --> 01:17:38,610 U dak li jeħtieġ li tmur fil- frame munzell foo tal? 1463 01:17:38,610 --> 01:17:41,100 Well, foo għandu argument n. 1464 01:17:41,100 --> 01:17:45,440 U n huwa ugwali għal 4 peress li dan huwa dak prinċipali hija tgħaddi bħala argument foo tal. 1465 01:17:45,440 --> 01:17:48,490 >> Allura issa foo huwa ser sejħa bar. 1466 01:17:48,490 --> 01:17:52,070 X'inhu bar se jkollhom ġewwa ta 'qafas munzell tagħha? 1467 01:17:52,070 --> 01:17:55,610 Hija għandha x ugwali għal 4 y ugwali għal sitta. 1468 01:17:55,610 --> 01:17:58,540 Li mhux kollha li aħna qed tmur biex ikollhom fil-qafas munzell għaliex bar 1469 01:17:58,540 --> 01:18:00,580 għandha wkoll varjabbli n lokali. 1470 01:18:00,580 --> 01:18:03,370 U n aħna qed tmur biex jistabbilixxu ugwali għal 24. 1471 01:18:03,370 --> 01:18:05,750 >> Allura issa bar se jirritorna n. 1472 01:18:05,750 --> 01:18:09,300 Allura bar huwa jirritorna 24 sa l-foo qafas munzell. 1473 01:18:09,300 --> 01:18:12,560 U minħabba bar issa huwa jirritorna, li ifisser li aħna qed popping l-qafas munzell 1474 01:18:12,560 --> 01:18:14,250 għall bar off tal-munzell. 1475 01:18:14,250 --> 01:18:18,430 Allura l-memorja li bar kien użu issa huwa off-munzell. 1476 01:18:18,430 --> 01:18:21,550 >> Issa, foo huwa wkoll se li jirritornaw 24 sa prinċipali. 1477 01:18:21,550 --> 01:18:25,470 Allura issa li foo huwa jirritorna, il-memorja li foo kienet qed tuża fil-"tagħha 1478 01:18:25,470 --> 01:18:27,550 frame munzell hu wkoll marret. 1479 01:18:27,550 --> 01:18:29,660 U issa, prinċipali huwa ser sejħa printf. 1480 01:18:29,660 --> 01:18:31,660 Allura printf huwa biss funzjoni oħra. 1481 01:18:31,660 --> 01:18:35,320 Meta nagħmlu sejħa printf, li għaddej biex tkun frame ieħor munzell għall-printf 1482 01:18:35,320 --> 01:18:36,470 sejħa funzjoni. 1483 01:18:36,470 --> 01:18:37,990 >> Liema huma aħna tgħaddi printf? 1484 01:18:37,990 --> 01:18:40,090 Dak hu għaddej biex tmur fuq qafas munzell tagħha. 1485 01:18:40,090 --> 01:18:44,970 Għall-inqas, aħna qed tgħaddi li fil-mija i backslash n u 1486 01:18:44,970 --> 01:18:47,180 l-argument 24. 1487 01:18:47,180 --> 01:18:50,370 Hija jista 'jkollhom aktar fl huwa frame stack jekk printf jiġri li tkun qed tuża xi 1488 01:18:50,370 --> 01:18:51,200 varjabbli lokali. 1489 01:18:51,200 --> 01:18:51,920 Ma nafux. 1490 01:18:51,920 --> 01:18:53,810 >> Imma dak kollu li jmur fil-proċess tat printf munzell frame. 1491 01:18:53,810 --> 01:18:55,740 Huwa ser tesegwixxi l-printf. 1492 01:18:55,740 --> 01:18:56,830 Imbagħad printf isir. 1493 01:18:56,830 --> 01:18:57,820 Huwa ser jerġa. 1494 01:18:57,820 --> 01:18:58,960 Fl-aħħarnett, isir prinċipali. 1495 01:18:58,960 --> 01:18:59,860 Main se terġa 'lura. 1496 01:18:59,860 --> 01:19:02,020 U allura programm tagħna isir. 1497 01:19:02,020 --> 01:19:02,480 Yeah? 1498 01:19:02,480 --> 01:19:04,505 >> UDJENZA: Inti tara [inaudible] 1499 01:19:04,505 --> 01:19:05,900 argumenti [inaudible] 1500 01:19:05,900 --> 01:19:06,830 parametri? 1501 01:19:06,830 --> 01:19:09,970 >> ROB: Allura hemm differenza sottili bejn argumenti u parametri. 1502 01:19:09,970 --> 01:19:14,400 U tassew, fil jitkellmu komuni, in-nies għandhom tendenza għal ftit taħlita minnhom up il-ħin kollu. 1503 01:19:14,400 --> 01:19:17,550 Iżda parametri huma l-formali Isem ta 'l-affarijiet. 1504 01:19:17,550 --> 01:19:20,180 >> Allura argc u ARGV huma l- Parametri għal main. 1505 01:19:20,180 --> 01:19:23,440 Argumenti huma dak li inti fil-fatt jgħaddu dawn il-parametri. 1506 01:19:23,440 --> 01:19:28,340 Allura hemm meta I call foo ta '4, 4 huwa l-argument jien tgħaddi fil. 1507 01:19:28,340 --> 01:19:31,460 U l-n parametru, ġewwa ta ' foo, jieħu fuq il-valur 4 1508 01:19:31,460 --> 01:19:32,880 peress 4 kien l-argument. 1509 01:19:32,880 --> 01:19:35,826 >> UDJENZA: [inaudible]? 1510 01:19:35,826 --> 01:19:37,880 >> ROB: n huwa varjabbli lokali biex bar. 1511 01:19:37,880 --> 01:19:41,420 1512 01:19:41,420 --> 01:19:44,960 n għadu lokali li foo, iżda huwa parametru li foo. 1513 01:19:44,960 --> 01:19:48,190 Mhuwiex varjabbli lokali. 1514 01:19:48,190 --> 01:19:48,546 Yeah? 1515 01:19:48,546 --> 01:19:51,180 >> UDJENZA: [inaudible]? 1516 01:19:51,180 --> 01:19:55,400 >> ROB: foo huwa biss ssejjaħ bar u jirritornaw kwalunkwe prospetti bar. 1517 01:19:55,400 --> 01:19:56,786 >> UDJENZA: [inaudible]? 1518 01:19:56,786 --> 01:19:59,591 >> ROB: Yeah, biss biex tara multipli munzell frames. 1519 01:19:59,591 --> 01:20:00,082 Yeah? 1520 01:20:00,082 --> 01:20:03,519 >> UDJENZA: Għaliex kien foo imsejħa qabel printf? 1521 01:20:03,519 --> 01:20:05,920 >> ROB: Għaliex kien foo tissejjaħ qabel printf? 1522 01:20:05,920 --> 01:20:10,740 So I jista 'jkollhom, minflok, għamlu xi ħaġa bħal int x ugwali foo tal-4 1523 01:20:10,740 --> 01:20:12,980 u mbagħad stampat x. 1524 01:20:12,980 --> 01:20:17,900 Iżda minflok, I flimkien il-funzjoni titfa 'l-argument printf. 1525 01:20:17,900 --> 01:20:23,670 >> Iżda avviż li ma nistgħux attwalment tesegwixxi l-sejħa biex printf sakemm aħna 1526 01:20:23,670 --> 01:20:25,610 ċifra barra dak foo tal-4 hu. 1527 01:20:25,610 --> 01:20:27,480 Allura aħna qed tmur biex tevalwa din. 1528 01:20:27,480 --> 01:20:32,504 U biss ladarba li isir huma għaddejjin li jiġu lura u tevalwa dan. 1529 01:20:32,504 --> 01:20:32,990 Yeah? 1530 01:20:32,990 --> 01:20:37,364 >> UDJENZA: Billi kemm bar [inaudible] 1531 01:20:37,364 --> 01:20:41,738 valur, għaliex aħna ma jkollhom [inaudible]? 1532 01:20:41,738 --> 01:20:44,400 >> ROB: Huma totalment għandhom ikunu int. 1533 01:20:44,400 --> 01:20:46,260 Li ma nqabadtx fuq passes multipli. 1534 01:20:46,260 --> 01:20:49,010 Għalhekk għandu jkun bar int u int foo peress li kemm dawk 1535 01:20:49,010 --> 01:20:50,460 huma jirritornaw interi. 1536 01:20:50,460 --> 01:20:54,214 Null huwa biss jekk dawn mhux qed tmur li jirritornaw valuri attwali. 1537 01:20:54,214 --> 01:20:54,692 Yeah? 1538 01:20:54,692 --> 01:20:58,038 >> UDJENZA: Jekk kellek linja hawn fuq ir-ritorn, [inaudible]? 1539 01:20:58,038 --> 01:21:01,862 1540 01:21:01,862 --> 01:21:03,730 >> ROB: A Linja fuq ir-ritorn? 1541 01:21:03,730 --> 01:21:04,410 >> UDJENZA: Yeah. 1542 01:21:04,410 --> 01:21:10,780 Bħal jekk inti ma printf u [inaudible], ikun jidher print darbtejn? 1543 01:21:10,780 --> 01:21:12,992 >> ROB: Allura ġewwa tal foo? 1544 01:21:12,992 --> 01:21:15,945 Jekk kellna printf dritt hawn? 1545 01:21:15,945 --> 01:21:16,750 >> UDJENZA: Yeah. 1546 01:21:16,750 --> 01:21:19,510 >> ROB: Mela jekk kellna dritt printf hawn, ikun jistampaw darba. 1547 01:21:19,510 --> 01:21:23,400 Peress li aħna qed jitolbu foo darba dritt hawn, allura aħna ser laqat il-printf. 1548 01:21:23,400 --> 01:21:24,620 Imbagħad aħna ser sejħa bar. 1549 01:21:24,620 --> 01:21:25,710 U mbagħad foo se terġa 'lura. 1550 01:21:25,710 --> 01:21:26,275 U li huwa. 1551 01:21:26,275 --> 01:21:30,985 Aħna biss qatt jiltaqgħu l printf darba. 1552 01:21:30,985 --> 01:21:31,482 Yeah? 1553 01:21:31,482 --> 01:21:32,973 >> UDJENZA: [inaudible] 1554 01:21:32,973 --> 01:21:37,950 printf ssejjaħ foo għaliex aħna qed l-ewwel ssejjaħ printf u allura aħna qed tgħaddi 1555 01:21:37,950 --> 01:21:38,580 l-argumenti. 1556 01:21:38,580 --> 01:21:40,960 >> ROB: Allura fit-teorija, mhuwiex printf ssejjaħ foo? 1557 01:21:40,960 --> 01:21:42,220 Allura l-ebda. 1558 01:21:42,220 --> 01:21:47,360 Just l-ordni li ċ se tesegwixxi dawn l-affarijiet huwa, qabel nistgħu 1559 01:21:47,360 --> 01:21:49,800 sejħa funzjoni, l-argumenti kollha għall-funzjoni jkollhom 1560 01:21:49,800 --> 01:21:51,600 jiġu evalwati kompletament. 1561 01:21:51,600 --> 01:21:53,540 Allura dan huwa evalwat kompletament? 1562 01:21:53,540 --> 01:21:54,610 Iva, huwa biss string. 1563 01:21:54,610 --> 01:21:55,480 Huwa biss valur. 1564 01:21:55,480 --> 01:21:57,200 >> Imbagħad għandna biex kompletament tevalwa din. 1565 01:21:57,200 --> 01:21:59,720 Ladarba dan isir, issa kollha ta ' argumenti tagħha huma evalwati. 1566 01:21:59,720 --> 01:22:01,982 U issa nistgħu nagħmlu l- sejħa biex printf. 1567 01:22:01,982 --> 01:22:02,478 Yeah? 1568 01:22:02,478 --> 01:22:03,966 >> UDJENZA: Mistoqsija waħda. 1569 01:22:03,966 --> 01:22:06,942 Jekk għandek funzjoni null, għandhom għandek virgola ritorn? 1570 01:22:06,942 --> 01:22:09,910 >> ROB: Inti ma punto virgola ritorn jekk għandek funzjoni null. 1571 01:22:09,910 --> 01:22:13,370 1572 01:22:13,370 --> 01:22:14,780 OK. 1573 01:22:14,780 --> 01:22:15,830 Allura issa xi għalf borġ. 1574 01:22:15,830 --> 01:22:19,640 Allura borġ huwa kif aħna qed tmur biex jittrattaw mal-ġestjoni tal-memorja dinamika. 1575 01:22:19,640 --> 01:22:23,100 U dan jikkuntrasta direttament mal- munzell li aħna kieku ssejjaħ awtomatika 1576 01:22:23,100 --> 01:22:24,100 ġestjoni tal-memorja. 1577 01:22:24,100 --> 01:22:27,140 >> Allura fuq il-munzell, int qatt ma verament ikollhom biex jittrattaw kif il-varjabbli lokali 1578 01:22:27,140 --> 01:22:30,400 qed jiġu imbuttati u popped off kollha dawn il-frejms munzell u dak kollu li Jittieħed. 1579 01:22:30,400 --> 01:22:31,070 Inti ma għandekx għalfejn tinkwieta dwar dan. 1580 01:22:31,070 --> 01:22:32,070 Huwa awtomatiku. 1581 01:22:32,070 --> 01:22:36,990 Allura l-borġ huwa manwali. 1582 01:22:36,990 --> 01:22:38,070 U l-[inaudible] 1583 01:22:38,070 --> 01:22:41,260 ġej minn dawn il-funzjonijiet malloc u ħielsa. 1584 01:22:41,260 --> 01:22:43,550 >> Allura hawnhekk programm ieħor. 1585 01:22:43,550 --> 01:22:47,145 Kollha għandna qed tagħmel huwa mallocing integer. 1586 01:22:47,145 --> 01:22:49,360 Aħna qed maħżuna fil star x. 1587 01:22:49,360 --> 01:22:52,520 Of course, aħna għandna biex jiċċekkjaw biex tara jekk x huwa null. 1588 01:22:52,520 --> 01:22:56,400 Imbagħad aħna qed tmur biex biss sett liema x hija li tipponta lejn 50. 1589 01:22:56,400 --> 01:23:00,350 1590 01:23:00,350 --> 01:23:03,260 Stampa dak x hija li tipponta lejn, print x, u mbagħad ħielsa x. 1591 01:23:03,260 --> 01:23:08,920 >> Allura kif dan huwa attwalment għaddejjin biex tfittex jekk inħarsu lejn munzell tagħna u borġ? 1592 01:23:08,920 --> 01:23:10,950 Allura aħna ser jerġa 'jibda. 1593 01:23:10,950 --> 01:23:12,580 Il-qiegħ tal munzell tagħna bħal qabel. 1594 01:23:12,580 --> 01:23:15,930 Ftakar li thee borġ direttament jopponi l-munzell? 1595 01:23:15,930 --> 01:23:18,850 Allura aħna qed tmur biex ikollhom l- quċċata tal-borġ tagħna up hemm. 1596 01:23:18,850 --> 01:23:22,590 >> Allura l-qiegħ tal munzell tagħna, aħna għandna qafas munzell tagħna għall prinċipali. 1597 01:23:22,590 --> 01:23:28,000 Hija għandha l-ispazju għall argc, ARGV, u aħna issa għandhom varjabbli x lokali, li 1598 01:23:28,000 --> 01:23:30,030 huwa star int. 1599 01:23:30,030 --> 01:23:32,240 Allura aħna qed tmur biex jtenni permezz ta 'dan il-programm. 1600 01:23:32,240 --> 01:23:34,420 L-ewwel ħaġa li għandna huwa sejħa għall malloc. 1601 01:23:34,420 --> 01:23:36,250 >> Allura aħna qed jagħmlu sejħa lill malloc. 1602 01:23:36,250 --> 01:23:37,100 Malloc hija funzjoni. 1603 01:23:37,100 --> 01:23:38,770 Huwa ser tikseb frame munzell. 1604 01:23:38,770 --> 01:23:40,180 Liema huma aħna tgħaddi lill malloc? 1605 01:23:40,180 --> 01:23:41,610 Li għaddej biex tmur ġewwa tal-qafas munzell. 1606 01:23:41,610 --> 01:23:45,130 Aħna qed tgħaddi daqs tal n, li huwa ta '4. 1607 01:23:45,130 --> 01:23:49,700 Allura li huwa mgħoddi lill malloc. 1608 01:23:49,700 --> 01:23:50,910 >> X'jagħmel malloc do? 1609 01:23:50,910 --> 01:23:53,820 Hija grabs us xi spazju fuq il-borġ. 1610 01:23:53,820 --> 01:23:55,320 Allura aħna qed tmur biex tmur fil-borġ. 1611 01:23:55,320 --> 01:23:57,990 U aħna qed tmur biex grab 4 bytes mill-borġ. 1612 01:23:57,990 --> 01:24:01,500 Mela ejja biss jagħtu dik indirizz arbitrarja. 1613 01:24:01,500 --> 01:24:06,680 0x123 Just nippretendu li huwa indirizz li huwa fuq il-borġ. 1614 01:24:06,680 --> 01:24:12,300 >> Allura dak li huwa effettivament ġewwa ta 'dik reġjun ta 'memorja fl-indirizz Ox123? 1615 01:24:12,300 --> 01:24:13,080 Żibel. 1616 01:24:13,080 --> 01:24:15,270 Allura aħna ma maħżuna xejn fiha. 1617 01:24:15,270 --> 01:24:18,830 Hekk safejn nafu, dan jista 'jkun xejn. 1618 01:24:18,830 --> 01:24:20,560 Inti ma għandha tassumi huwa żero. 1619 01:24:20,560 --> 01:24:23,870 Huwa aktar probabbli mhux żero. 1620 01:24:23,870 --> 01:24:26,260 >> Prospetti Allura issa malloc. 1621 01:24:26,260 --> 01:24:28,020 U dak li nagħmlu meta jerġa 'jibda malloc? 1622 01:24:28,020 --> 01:24:29,800 Waqqafna dak dan jirritorna. 1623 01:24:29,800 --> 01:24:32,290 Waqqafna x ugwali għal dak huwa jirritorna. 1624 01:24:32,290 --> 01:24:33,690 Allura x'inhu jirritornaw? 1625 01:24:33,690 --> 01:24:38,150 Huwa jirritornaw 0x123 peress li hija l- indirizz tal-blokka tal-memorja li 1626 01:24:38,150 --> 01:24:40,850 biss allokati fil-borġ. 1627 01:24:40,850 --> 01:24:47,160 >> Allura ritorn 0x123 x issa se jiġu stabbiliti ugwali għal 0x123 li, pictorially, 1628 01:24:47,160 --> 01:24:52,940 aħna ta 'spiss jiġbdu bħala x jkollhom attwali vleġġa li tipponta lejn li jimblukkaw. 1629 01:24:52,940 --> 01:24:55,820 Iżda x huwa biss ħażna dak l-indirizz. 1630 01:24:55,820 --> 01:24:58,670 Allura issa għandna biex jiċċekkjaw jekk x huwa null. 1631 01:24:58,670 --> 01:24:59,120 Mhuwiex null. 1632 01:24:59,120 --> 01:25:02,170 Aħna nippretendu li dan malloc irnexxielu. 1633 01:25:02,170 --> 01:25:04,950 >> Allura issa star x ugwali 50. 1634 01:25:04,950 --> 01:25:08,450 Allura star jiftakar dan ifisser tmur f'dak indirizz. 1635 01:25:08,450 --> 01:25:12,700 Allura 0x123 Aħna ser tmur f'dak indirizz. 1636 01:25:12,700 --> 01:25:14,660 Allura li twassalna up hemm. 1637 01:25:14,660 --> 01:25:16,310 Dak li qed nagħmlu f'dak l-indirizz? 1638 01:25:16,310 --> 01:25:19,020 Aħna qed ħażna 50. 1639 01:25:19,020 --> 01:25:22,500 >> Allura wara din il-linja, dan huwa dak li l-affarijiet se look like. 1640 01:25:22,500 --> 01:25:24,640 Allura issa huwa m'għadux żibel up hemm. 1641 01:25:24,640 --> 01:25:28,910 Issa nafu li 50 huwa f'dak partikolari indirizz minħabba 1642 01:25:28,910 --> 01:25:32,410 aħna stabbilit li dik. 1643 01:25:32,410 --> 01:25:32,790 OK? 1644 01:25:32,790 --> 01:25:34,370 Allura issa aħna qed tmur biex jistampaw f. 1645 01:25:34,370 --> 01:25:38,490 >> Allura l-ewwel aħna qed tmur biex jistampaw star x. 1646 01:25:38,490 --> 01:25:39,640 Allura dak li huwa star x? 1647 01:25:39,640 --> 01:25:44,300 Għal darb'oħra, star x ifisser mur l- ħaġa li x hija li tipponta lejn. 1648 01:25:44,300 --> 01:25:47,140 Allura x hija ħażna 0x123 Mur għal dak. 1649 01:25:47,140 --> 01:25:48,490 Nikbru 50. 1650 01:25:48,490 --> 01:25:50,540 Allura print f dik. 1651 01:25:50,540 --> 01:25:54,900 U dan ifisser li għaddej biex jistampaw 50. 1652 01:25:54,900 --> 01:25:56,850 U allura dik jirritorna. 1653 01:25:56,850 --> 01:25:58,340 >> U allura għandna t-tieni printf. 1654 01:25:58,340 --> 01:25:59,370 Aħna issa fil-mija p. 1655 01:25:59,370 --> 01:26:01,680 Jekk inti ma bbenefikawx, li l- kemm tistampa pointer. 1656 01:26:01,680 --> 01:26:04,960 Allura aħna għandna fil-mija i, mija f, u kollha ta 'dawk diġà. 1657 01:26:04,960 --> 01:26:07,160 Allura fil-mija p, stampar ta 'pointer. 1658 01:26:07,160 --> 01:26:08,920 >> Allura x hija pointer. 1659 01:26:08,920 --> 01:26:13,440 Allura jekk aħna qed tmur biex jistampaw x innifsu, aħna qed istampar dak li huwa effettivament ġewwa 1660 01:26:13,440 --> 01:26:19,220 x, li huwa 0x123 Allura l-ewwel print f se jistampaw 50. 1661 01:26:19,220 --> 01:26:23,620 It-tieni print f huwa għaddej li jistampaw 0x123 Yeah? 1662 01:26:23,620 --> 01:26:27,460 >> UDJENZA: Do inti tuża fil-mija x li jistampaw pointer? 1663 01:26:27,460 --> 01:26:31,200 >> ROB: Allura tuza mija x li jistampaw pointer? 1664 01:26:31,200 --> 01:26:38,350 Allura inti tista 'iżda fil-mija x hija biss, ġeneralment, simili għal jekk ikollok xi 1665 01:26:38,350 --> 01:26:40,325 integer u inti tixtieq li jistampaw bħala hexadecimal. 1666 01:26:40,325 --> 01:26:43,250 1667 01:26:43,250 --> 01:26:44,880 Li jinsab biss kif inti tagħmel dan. 1668 01:26:44,880 --> 01:26:47,160 >> Billi, fil-mija d kieku tipprintja deċimali. 1669 01:26:47,160 --> 01:26:50,310 Li kienu nikbru fil-mija d. i huwa biss numru sħiħ. 1670 01:26:50,310 --> 01:26:52,690 mija p huwa speċifikament għal pointers. 1671 01:26:52,690 --> 01:26:54,060 >> Allura x hija pointer. 1672 01:26:54,060 --> 01:26:56,360 Aħna rridu li jużaw mija p. 1673 01:26:56,360 --> 01:26:57,937 Iżda fil-mija x jistgħu jaħdmu. 1674 01:26:57,937 --> 01:26:58,414 Yeah? 1675 01:26:58,414 --> 01:26:59,664 >> UDJENZA: [inaudible]? 1676 01:26:59,664 --> 01:27:04,138 1677 01:27:04,138 --> 01:27:05,388 >> ROB: Yeah. 1678 01:27:05,388 --> 01:27:07,870 1679 01:27:07,870 --> 01:27:13,440 Mill-inqas għal din call-- so I ma kienx jinkludi dan fil hawn. 1680 01:27:13,440 --> 01:27:19,850 Imma dawn iż-żewġ argumenti huma neċessarjament ġewwa ta 'dan il-qafas munzell 1681 01:27:19,850 --> 01:27:23,040 flimkien ma 'kwalunkwe varjabbli lokali printf jiġri li tkun qed tuża. 1682 01:27:23,040 --> 01:27:27,020 U allura l-sejħa li jmiss biex printf issa ġewwa tal printf qafas munzell hu 1683 01:27:27,020 --> 01:27:33,960 mija backslash p n u tkun xi tkun l- valur ta 'x hija, li hija 0x123. 1684 01:27:33,960 --> 01:27:34,425 Yeah? 1685 01:27:34,425 --> 01:27:35,675 >> UDJENZA: [inaudible]? 1686 01:27:35,675 --> 01:27:38,145 1687 01:27:38,145 --> 01:27:40,880 >> ROB: Hija ser jistampaw xi ħaġa li tidher bħal dan. 1688 01:27:40,880 --> 01:27:41,846 >> UDJENZA: [inaudible]. 1689 01:27:41,846 --> 01:27:44,510 >> ROB: Allura huwa prints f'forma indirizz. 1690 01:27:44,510 --> 01:27:47,003 Jidher qisu indirizz. 1691 01:27:47,003 --> 01:27:47,494 Yeah? 1692 01:27:47,494 --> 01:27:49,458 >> UDJENZA: [inaudible]? 1693 01:27:49,458 --> 01:27:51,075 >> ROB: Għaliex huwa dak? 1694 01:27:51,075 --> 01:27:52,920 >> UDJENZA: [inaudible]? 1695 01:27:52,920 --> 01:27:55,240 >> ROB: Għaliex huwa dan il-werrej 4 bytes? 1696 01:27:55,240 --> 01:27:58,500 Allura hemm mazz sħiħ ta '0 fil-faċċata ta' dan. 1697 01:27:58,500 --> 01:28:03,740 Allura huwa verament 0x0000000123. 1698 01:28:03,740 --> 01:28:06,510 Fuq sistema 64-bit, se jkun hemm mazz sħiħ ta 'aktar żerijiet. 1699 01:28:06,510 --> 01:28:11,410 1700 01:28:11,410 --> 01:28:11,900 Yeah? 1701 01:28:11,900 --> 01:28:13,150 >> UDJENZA: [inaudible]. 1702 01:28:13,150 --> 01:28:17,290 1703 01:28:17,290 --> 01:28:21,130 >> ROB: Allura l-ewwel printf se print-- 1704 01:28:21,130 --> 01:28:21,980 >> UDJENZA: [inaudible]. 1705 01:28:21,980 --> 01:28:24,420 >> ROB: Iva, li għaddej biex jistampaw dak x hija li tipponta lejn. 1706 01:28:24,420 --> 01:28:27,030 1707 01:28:27,030 --> 01:28:29,070 Star jgħid dak li huwa dan ħaġa li tipponta lejn. 1708 01:28:29,070 --> 01:28:30,300 Grab dan. 1709 01:28:30,300 --> 01:28:31,455 Allura x'inhu li tipponta lejn? 1710 01:28:31,455 --> 01:28:31,850 50. 1711 01:28:31,850 --> 01:28:32,410 Grab dan. 1712 01:28:32,410 --> 01:28:33,390 Dak hu li aħna qed tmur biex jistampaw. 1713 01:28:33,390 --> 01:28:37,020 Billi, il-wieħed li jmiss, aħna qed biss istampar x innifsu. 1714 01:28:37,020 --> 01:28:38,850 X'inhu ġewwa ta 'f? 1715 01:28:38,850 --> 01:28:43,710 0x123. 1716 01:28:43,710 --> 01:28:44,500 OK. 1717 01:28:44,500 --> 01:28:46,620 >> U mbagħad, finalment, aħna għandna l-ħielsa. 1718 01:28:46,620 --> 01:28:48,040 Liema huma aħna tgħaddi biex ħielsa? 1719 01:28:48,040 --> 01:28:49,470 Aħna qed tgħaddi x. 1720 01:28:49,470 --> 01:28:52,380 Dak iż-żmien I attwalment murija fil-qafas munzell. 1721 01:28:52,380 --> 01:28:56,370 >> Allura aħna qed tgħaddi l-valur 0x123 biex ħielsa. 1722 01:28:56,370 --> 01:28:59,070 Allura issa ħielsa jaf, id-dritt, I ikollhom imorru sa l-borġ 1723 01:28:59,070 --> 01:29:00,050 u ħielsa li l-memorja. 1724 01:29:00,050 --> 01:29:03,920 Huwa m'għadekx jużaw dak huwa fl-indirizz 0x123. 1725 01:29:03,920 --> 01:29:07,010 >> Allura ħielsa se rilaxx li mill-borġ. 1726 01:29:07,010 --> 01:29:09,490 Issa borġ tagħna hija vojta darb'oħra. 1727 01:29:09,490 --> 01:29:11,120 Għandna l-ebda tnixxijiet memorja. 1728 01:29:11,120 --> 01:29:12,940 Issa ħielsa se terġa 'lura. 1729 01:29:12,940 --> 01:29:16,130 Avviż li x għadu 0x123. 1730 01:29:16,130 --> 01:29:18,240 Imma li issa mhuwiex memorja validu. 1731 01:29:18,240 --> 01:29:21,220 1732 01:29:21,220 --> 01:29:23,986 Aħna m'għandhiex tibqa dereference x. 1733 01:29:23,986 --> 01:29:24,440 Yeah? 1734 01:29:24,440 --> 01:29:27,240 >> UDJENZA: Huwa jirritorna 0 żejda? 1735 01:29:27,240 --> 01:29:28,290 >> ROB: Huwa returen 0 żejda? 1736 01:29:28,290 --> 01:29:31,110 Iva. 1737 01:29:31,110 --> 01:29:33,950 Aħna biss jitqiegħed li hemm għaliex aħna għandna ritorn wieħed għall-arja. 1738 01:29:33,950 --> 01:29:36,830 Allura huwa simili, yeah, tikri jinkludu r-ritorn 0. 1739 01:29:36,830 --> 01:29:37,310 Yeah? 1740 01:29:37,310 --> 01:29:38,560 >> UDJENZA: [inaudible]? 1741 01:29:38,560 --> 01:29:42,110 1742 01:29:42,110 --> 01:29:45,580 >> ROB: Allura wara ħielsa x, x'jiġri jekk nippruvaw li dereference l-pointer? 1743 01:29:45,580 --> 01:29:47,240 Huwa possibbli li xejn tmur ħażin. 1744 01:29:47,240 --> 01:29:49,330 Huwa possibbli li aħna ser xorta jiksbu 50. 1745 01:29:49,330 --> 01:29:53,590 >> Huwa possibbli, wkoll, li din tal-memorja huwa issa qed jintużaw għal xi ħaġa oħra. 1746 01:29:53,590 --> 01:29:57,140 Allura huwa imġieba mhux definiti. 1747 01:29:57,140 --> 01:30:00,772 U undefined ifisser xejn jista 'jiġri. 1748 01:30:00,772 --> 01:30:01,250 Yeah? 1749 01:30:01,250 --> 01:30:02,500 >> UDJENZA: [inaudible]? 1750 01:30:02,500 --> 01:30:07,942 1751 01:30:07,942 --> 01:30:10,830 >> ROB: Nru, hekk jekk inti tassenja x għal xi ħaġa oħra. 1752 01:30:10,830 --> 01:30:15,870 Mela jekk dritt hawn għidna x ugwali xi ħaġa malloc else-- 1753 01:30:15,870 --> 01:30:17,100 daqs malloc event-- 1754 01:30:17,100 --> 01:30:20,180 allura dak blokk oriġinali ta 'memorja mhux meħlus. 1755 01:30:20,180 --> 01:30:21,490 U aħna għandna uffiċjalment mitlufa. 1756 01:30:21,490 --> 01:30:23,150 Din hija nixxija memorja. 1757 01:30:23,150 --> 01:30:25,090 Imxejna mitlufa ir-referenzi kollha għal dak blokk ta 'memorja. 1758 01:30:25,090 --> 01:30:26,827 Allura hemm ebda mod nistgħu qatt ħielsa it. 1759 01:30:26,827 --> 01:30:32,074 1760 01:30:32,074 --> 01:30:36,630 OK, hekk mbagħad jirritornaw 0 mezzi jsir. 1761 01:30:36,630 --> 01:30:37,900 >> Kull dritt, overflow hekk munzell. 1762 01:30:37,900 --> 01:30:39,320 X'hemm l-idea hawnhekk? 1763 01:30:39,320 --> 01:30:41,210 Mela ftakar, borġ hija ser tistabbilixxi. 1764 01:30:41,210 --> 01:30:43,480 Munzell qed jogħla. 1765 01:30:43,480 --> 01:30:48,000 Allura dan kien l-eżempju minn lecture, I think, fejn prinċipali huwa biss se 1766 01:30:48,000 --> 01:30:51,380 sejħa dan foo funzjoni, li se li sejħa nnifisha recursively aktar u 1767 01:30:51,380 --> 01:30:52,320 aktar mill-ġdid. 1768 01:30:52,320 --> 01:30:55,370 >> Allura munzell frames huma ser xogħol eżattament l-istess. 1769 01:30:55,370 --> 01:30:58,130 Allura aħna qed tmur biex tibda bil prinċipali bħala l-qafas munzell qiegħ. 1770 01:30:58,130 --> 01:31:02,000 Imbagħad prinċipali hija ser sejħa foo, li hija se tikseb qafas munzell. 1771 01:31:02,000 --> 01:31:04,260 >> Imbagħad foo huwa ser sejħa foo għal darb'oħra, li hija se tikseb 1772 01:31:04,260 --> 01:31:05,500 frame ieħor munzell. 1773 01:31:05,500 --> 01:31:08,270 U mbagħad għal darb'oħra, u għal darb'oħra, u għal darb'oħra, u għal darb'oħra sakemm, eventwalment, we run 1774 01:31:08,270 --> 01:31:09,190 fil-borġ. 1775 01:31:09,190 --> 01:31:11,990 Allura dan huwa kif nikbru a overflow munzell. 1776 01:31:11,990 --> 01:31:14,910 U f'dan il-punt, inti SEG tort. 1777 01:31:14,910 --> 01:31:17,335 Jew youd verament seg tort qabel dan il-punt iżda yeah. 1778 01:31:17,335 --> 01:31:19,660 >> UDJENZA: Huwa qalba dump l- istess bħal tort seg? 1779 01:31:19,660 --> 01:31:26,140 >> ROB: Allura inti taf tara segmentazzjoni qalba tort iddampjati. 1780 01:31:26,140 --> 01:31:28,760 Ikollok dump qalba meta inti SEG tort. 1781 01:31:28,760 --> 01:31:32,580 U huwa simili dump kollha tal- kontenut tal-memorja attwali tiegħek sabiex 1782 01:31:32,580 --> 01:31:36,670 li inti tista 'tipprova u jidentifikaw għaliex inti SEG akkużati. 1783 01:31:36,670 --> 01:31:37,135 Yeah? 1784 01:31:37,135 --> 01:31:38,385 >> UDJENZA: [inaudible]? 1785 01:31:38,385 --> 01:31:40,855 1786 01:31:40,855 --> 01:31:45,460 >> ROB: Allura mezz tort segmentazzjoni hemm overflow munzell. 1787 01:31:45,460 --> 01:31:47,060 Allura mhux bilfors. 1788 01:31:47,060 --> 01:31:49,880 A tort segmentazzjoni ifisser li int memorja jmissu b'mod 1789 01:31:49,880 --> 01:31:50,880 inti m'għandekx tkun. 1790 01:31:50,880 --> 01:31:54,750 Allura mod wieħed ta 'dan jiġri huwa, meta inti munzell overflow, nibdew jmissu 1791 01:31:54,750 --> 01:31:58,736 memorja b'mod li aħna ma għandhom ikunu. 1792 01:31:58,736 --> 01:31:59,208 Yeah? 1793 01:31:59,208 --> 01:32:00,458 >> UDJENZA: [inaudible]? 1794 01:32:00,458 --> 01:32:03,456 1795 01:32:03,456 --> 01:32:05,830 >> ROB: Allura ġewwa ta 'loop infinita. 1796 01:32:05,830 --> 01:32:08,770 Bħal, dan huwa bħal infinita rikursivi loop u hekk aħna nikseb ieħor 1797 01:32:08,770 --> 01:32:09,770 munzell jinkwadra kull darba. 1798 01:32:09,770 --> 01:32:13,540 Iżda biss ġewwa ta 'regolari infinita filwaqt one-- 1799 01:32:13,540 --> 01:32:16,390 ukoll, ejja ma anki print f-- 1800 01:32:16,390 --> 01:32:17,040 tagħmel xi ħaġa. 1801 01:32:17,040 --> 01:32:18,390 Tkun xi tkun. 1802 01:32:18,390 --> 01:32:20,610 >> Aħna mhux qed tmur biex tkun jkollna frame ieħor munzell. 1803 01:32:20,610 --> 01:32:22,530 Aħna biss tmur biex iżommu looping matul dan struzzjoni waħda. 1804 01:32:22,530 --> 01:32:23,920 Il-munzell hu mhux qed jikber. 1805 01:32:23,920 --> 01:32:27,290 Hu l-fatt li kull rikursivi sejħa qed tagħti us qafas munzell. 1806 01:32:27,290 --> 01:32:31,231 C'est pourquoi irridu jiksbu overflow munzell. 1807 01:32:31,231 --> 01:32:31,728 Yeah? 1808 01:32:31,728 --> 01:32:38,189 >> UDJENZA: Mela jekk inti qal li tikseb l- filwaqt loop u mbagħad [inaudible]? 1809 01:32:38,189 --> 01:32:42,000 >> ROB: Mela jekk ġewwa tal-linja waqt kien hemm printf, inti xorta 1810 01:32:42,000 --> 01:32:42,790 tort mhux seg. 1811 01:32:42,790 --> 01:32:46,090 I biss ma riedx li jħawdu affarijiet. 1812 01:32:46,090 --> 01:32:46,610 Ikun loop. 1813 01:32:46,610 --> 01:32:48,225 Youd tikseb munzell wieħed qafas għall-printf. 1814 01:32:48,225 --> 01:32:49,580 >> Imbagħad printf se jerġa 'lura. 1815 01:32:49,580 --> 01:32:50,280 Imbagħad youd loop darb'oħra. 1816 01:32:50,280 --> 01:32:51,460 Youd tikseb munzell wieħed qafas għall-printf. 1817 01:32:51,460 --> 01:32:52,850 Hija se jerġa 'lura. 1818 01:32:52,850 --> 01:32:54,060 Frame munzell Uniku. 1819 01:32:54,060 --> 01:33:00,215 Allura int ma jkollna dan infinita piling up frames munzell. 1820 01:33:00,215 --> 01:33:03,185 >> UDJENZA: [inaudible]? 1821 01:33:03,185 --> 01:33:04,040 >> ROB: Iva. 1822 01:33:04,040 --> 01:33:09,360 Allura dan overflow munzell jiġri għaliex ħadd minn dawn 1823 01:33:09,360 --> 01:33:11,600 sejħiet għall-foo huma jirritornaw. 1824 01:33:11,600 --> 01:33:15,250 Mela jekk nerġgħu lura, allura aħna kieku jibdew jitilfu frames munzell. 1825 01:33:15,250 --> 01:33:17,870 U allura aħna mhux se munzell overflow. 1826 01:33:17,870 --> 01:33:20,070 U hu għalhekk li għandek bżonn każ bażi għall-funzjonijiet personali tiegħek. 1827 01:33:20,070 --> 01:33:22,992 1828 01:33:22,992 --> 01:33:23,479 Yeah? 1829 01:33:23,479 --> 01:33:27,375 >> UDJENZA: Huwa d-daqs potenzjali u l- munzell għall-borġ l-istess għal 1830 01:33:27,375 --> 01:33:29,880 programmi kollha? 1831 01:33:29,880 --> 01:33:31,910 >> ROB: Bejn wieħed u ieħor. 1832 01:33:31,910 --> 01:33:35,090 Huwa d-daqs potenzjali tal-munzell u l-borġ l-istess għall-programmi kollha? 1833 01:33:35,090 --> 01:33:37,180 Bejn wieħed u ieħor. 1834 01:33:37,180 --> 01:33:40,080 Hemm xi randomized sa fejn jibda munzell u 1835 01:33:40,080 --> 01:33:42,400 fejn il-borġ jibda. 1836 01:33:42,400 --> 01:33:45,870 Jekk jiġri li jkollhom lott kollu ta ' varjabbli globali u affarijiet, inti tista 1837 01:33:45,870 --> 01:33:49,520 jieħdu l bogħod minn xi spazju għall borġ tiegħek. 1838 01:33:49,520 --> 01:33:54,060 >> Fuq sistema 64-bit, inti prattikament jkollhom memorja infinita. 1839 01:33:54,060 --> 01:33:55,820 Hemm biss tant. 1840 01:33:55,820 --> 01:33:59,250 Bejn 32 bits u 64 bits, li differenza sinifikanti. 1841 01:33:59,250 --> 01:34:02,350 >> Inti qed tmur biex tikseb aktar lott kollu munzell u spazju borġ fuq 64-bit 1842 01:34:02,350 --> 01:34:05,810 sistema għaliex hemm biss aktar jindirizza li jistgħu jużaw. 1843 01:34:05,810 --> 01:34:09,360 Iżda fuq sistema individwali, li se tkun bejn wieħed u ieħor l-istess ammont ta 'stack 1844 01:34:09,360 --> 01:34:10,785 u l-ispazju borġ. 1845 01:34:10,785 --> 01:34:13,635 1846 01:34:13,635 --> 01:34:15,530 Kull dritt. 1847 01:34:15,530 --> 01:34:18,220 >> Allura aħħar ħaġa hija kumpilazzjoni. 1848 01:34:18,220 --> 01:34:19,810 Allura inti għandek tkun taf dan il-proċess. 1849 01:34:19,810 --> 01:34:22,240 Hemm erba 'passi kbar. 1850 01:34:22,240 --> 01:34:24,400 Allura l-ewwel wieħed għandu jkun faċli biex tiftakar. 1851 01:34:24,400 --> 01:34:25,085 Pre-ipproċessar. 1852 01:34:25,085 --> 01:34:28,390 Hija għandha l-prefiss pre fiha. 1853 01:34:28,390 --> 01:34:32,080 Għalhekk tiġi qabel kollox. 1854 01:34:32,080 --> 01:34:34,000 >> Il-ħaġa li tiftakar huwa l-hash. 1855 01:34:34,000 --> 01:34:37,250 Allura hash jiddefinixxi u hash jinkludi fil kollha ta 'dawk. 1856 01:34:37,250 --> 01:34:39,560 Dawk huma kollha pre-proċessur direttivi. 1857 01:34:39,560 --> 01:34:42,030 Dawn huma l-affarijiet li l- pre-proċessur jieħu kura ta '. 1858 01:34:42,030 --> 01:34:43,680 >> Allura dak li ma a-proċessur pre do? 1859 01:34:43,680 --> 01:34:44,850 Hija ħaġa tassew dumb. 1860 01:34:44,850 --> 01:34:49,380 Kollha huwa kapaċi huma kollha ta 'dawn kopja, u maqtugħa, u pejst operazzjonijiet. 1861 01:34:49,380 --> 01:34:51,790 >> Allura hash jinkludi standard i0 dot h. 1862 01:34:51,790 --> 01:34:52,990 X'inhu li tagħmel? 1863 01:34:52,990 --> 01:34:56,610 Huwa ħtif l-istandard i0 dot h fajl u pasta hija fil-quċċata 1864 01:34:56,610 --> 01:34:58,960 kulfejn jgħid hash jinkludi standard i0 dot h. 1865 01:34:58,960 --> 01:35:02,480 >> U kull hash jiddefinixxu li konna raw, dak li huwa li tagħmel? 1866 01:35:02,480 --> 01:35:06,730 Ikkupjar tagħha l-valur li l-hash definita hija definita bħala u pasta li 1867 01:35:06,730 --> 01:35:08,500 fejn inti qed tuża l-valur. 1868 01:35:08,500 --> 01:35:13,400 Allura l-Preprocessor biss ma verament operazzjonijiet ibbażati test sempliċi. 1869 01:35:13,400 --> 01:35:15,870 Hija ma xejn intelliġenti. 1870 01:35:15,870 --> 01:35:18,920 Allura kull ħaġa oħra huwa aktar ikkumplikat. 1871 01:35:18,920 --> 01:35:22,970 >> Allura issa li Preprocessor hija isir, aħna fil-fatt jikkompilaw. 1872 01:35:22,970 --> 01:35:24,320 Allura dak li ma kumpilazzjoni jfisser? 1873 01:35:24,320 --> 01:35:27,310 Aħna qed issa jmorru minn kodiċi c għall-kodiċi assemblaġġ. 1874 01:35:27,310 --> 01:35:27,570 Yeah? 1875 01:35:27,570 --> 01:35:28,820 >> UDJENZA: [inaudible]? 1876 01:35:28,820 --> 01:35:32,390 1877 01:35:32,390 --> 01:35:34,220 >> ROB: Yeah, aħna maqbud li. 1878 01:35:34,220 --> 01:35:36,880 1879 01:35:36,880 --> 01:35:38,660 Allura kumpilazzjoni. 1880 01:35:38,660 --> 01:35:40,310 Aħna ser mit c għall-assemblaġġ. 1881 01:35:40,310 --> 01:35:42,470 Allura dan huwa bidla lingwa attwali. 1882 01:35:42,470 --> 01:35:45,240 Kumpilazzjoni innifsu jfisser li jmorru minn lingwa livell ogħla li 1883 01:35:45,240 --> 01:35:47,340 lingwa livell aktar baxx. 1884 01:35:47,340 --> 01:35:50,720 >> U c hija lingwa livell għoli meta mqabbla ma 'assemblaġġ. 1885 01:35:50,720 --> 01:35:52,320 X'inhu assemblaġġ? 1886 01:35:52,320 --> 01:35:56,440 Istruzzjonijiet tiegħu li huma, pretty ħafna, magħmula għall CPU tiegħek. 1887 01:35:56,440 --> 01:35:59,130 Iżda kompjuter tiegħek xorta ma ma jifhmux assemblaġġ. 1888 01:35:59,130 --> 01:36:01,570 Hija biss jifhem dawk żerijiet. 1889 01:36:01,570 --> 01:36:06,160 Allura l-pass li jmiss huwa assemblaġġ, li iwassalna minn dawn l-istruzzjonijiet li 1890 01:36:06,160 --> 01:36:08,760 CPU tiegħek jifhem u fil-fatt jittraduċi minnhom, li 1891 01:36:08,760 --> 01:36:10,820 dawk żerijiet. 1892 01:36:10,820 --> 01:36:13,570 >> Allura C assemblea biex binarju. 1893 01:36:13,570 --> 01:36:15,870 Imma jien ma jkollhom eżekutibbli għadhom. 1894 01:36:15,870 --> 01:36:19,550 Allura taħseb tal-librerija CS50. 1895 01:36:19,550 --> 01:36:23,070 Aħna sakemm inti ma 'binarju għal din il-librerija CS50, li għandha GetString 1896 01:36:23,070 --> 01:36:24,400 u GetInt u dak kollu li. 1897 01:36:24,400 --> 01:36:25,700 >> Iżda l-CS50 library-- 1898 01:36:25,700 --> 01:36:27,650 fi u ta itself-- mhix eżekutibbli. 1899 01:36:27,650 --> 01:36:29,570 Huwa ma jkollu funzjoni ewlenija. 1900 01:36:29,570 --> 01:36:32,230 Huwa biss mazz ta 'binarju li tista 'tuża. 1901 01:36:32,230 --> 01:36:41,730 Allura tgħaqqad huwa kif aħna iġibu flimkien kollha ta 'dawn il-fajls binarji differenti 1902 01:36:41,730 --> 01:36:43,110 fi eżekutibbli attwali. 1903 01:36:43,110 --> 01:36:45,900 Wieħed li inti tista tip dot mmejla dot out. 1904 01:36:45,900 --> 01:36:51,660 >> Allura dan huwa bħall-fajl li inti kiteb, - ikun x'ikun program tiegħek is-- 1905 01:36:51,660 --> 01:36:53,620 Ceaser dot c. 1906 01:36:53,620 --> 01:36:55,100 Imma issa huwa kien kompilat sa binarju. 1907 01:36:55,100 --> 01:36:56,480 Allura Ceaser dot o. 1908 01:36:56,480 --> 01:36:59,620 U dan huwa CS50 tagħna Libreriji binarja. 1909 01:36:59,620 --> 01:37:02,284 U dawn qed jiġu kombinati fi eżekutibbli wieħed. 1910 01:37:02,284 --> 01:37:02,758 Yeah? 1911 01:37:02,758 --> 01:37:04,008 >> UDJENZA: [inaudible]? 1912 01:37:04,008 --> 01:37:08,800 1913 01:37:08,800 --> 01:37:12,710 >> ROB: Allura l-ewwel jinkludu, ftakar, l-hash jinkludu huwa attwalment 1914 01:37:12,710 --> 01:37:13,810 pass pre-proċessur. 1915 01:37:13,810 --> 01:37:14,750 Imma dak li separat. 1916 01:37:14,750 --> 01:37:20,730 Jekk ma tkunx qed tużah funzjonijiet li huma barra ta 'fajl waħdieni tiegħek imbagħad, 1917 01:37:20,730 --> 01:37:26,100 ebda, inti m'għandekx bżonn biex tagħmel link xejn peress li inti għandek kollox. 1918 01:37:26,100 --> 01:37:30,310 >> Cela dit, printf qed marbuta fil. 1919 01:37:30,310 --> 01:37:32,820 Jekk inti qatt tuża printf, li xi ħaġa li jeħtieġ li jkun marbut fil- 1920 01:37:32,820 --> 01:37:35,740 għaliex inti ma jiktbu dik. 1921 01:37:35,740 --> 01:37:39,530 U, fil-fatt, printf huwa awtomatikament marbuta. 1922 01:37:39,530 --> 01:37:42,760 Inti taf kif fil-linja tal-kmand jew meta inti tip tagħmel, inti tara dan għandek 1923 01:37:42,760 --> 01:37:46,690 CS50 l sing, li għandu rabta fil-librerija CS50? 1924 01:37:46,690 --> 01:37:49,070 Printf, u għalf bħal dik, huwa għaddej li jkunu marbuta fil awtomatikament. 1925 01:37:49,070 --> 01:37:51,730 1926 01:37:51,730 --> 01:37:53,930 Kwalunkwe mistoqsijiet oħra fuq xejn? 1927 01:37:53,930 --> 01:37:56,280 >> UDJENZA: [inaudible]? 1928 01:37:56,280 --> 01:37:58,300 >> ROB: Linking? 1929 01:37:58,300 --> 01:38:03,450 Għandna mazz sħiħ ta ' fajls binarji differenti. 1930 01:38:03,450 --> 01:38:06,410 Dan huwa l-eżempju canonical li nużaw hija librerija CS50. 1931 01:38:06,410 --> 01:38:09,960 Aħna miġbura u mogħtija lilek l- binarju għal din il-librerija CS50. 1932 01:38:09,960 --> 01:38:12,410 >> Inti tixtieq li tuża GetString fil-programm tiegħek. 1933 01:38:12,410 --> 01:38:14,750 Allura inti tmur u l-użu GetString. 1934 01:38:14,750 --> 01:38:19,700 Iżda mingħajr kodiċi binarju tiegħi għall GetString, meta inti tiġbor kodiċi tiegħek 1935 01:38:19,700 --> 01:38:23,140 isfel, inti ma tistax tmexxi effettivament tiegħek programm minħabba GetString String huwa 1936 01:38:23,140 --> 01:38:25,080 li għadha ma ġietx iddefinita kompletament. 1937 01:38:25,080 --> 01:38:29,220 >> Huwa biss meta inti link fil binarja tiegħi li fih GetString li issa, kollha 1938 01:38:29,220 --> 01:38:31,130 dritt, I tista 'attwalment tesegwixxi GetString. 1939 01:38:31,130 --> 01:38:32,330 Fajl tiegħi hija kompluta. 1940 01:38:32,330 --> 01:38:34,208 U nista run dan. 1941 01:38:34,208 --> 01:38:34,697 Yeah? 1942 01:38:34,697 --> 01:38:37,631 >> UDJENZA: Does Linking jikkonvertu l binarja li egwibbli? 1943 01:38:37,631 --> 01:38:42,032 Għalhekk anki jekk inti ma għandekx ieħor libreriji, ma kienx ikun xorta jkun 1944 01:38:42,032 --> 01:38:44,477 meħtieġ biex tittraduċi l-[inaudible]? 1945 01:38:44,477 --> 01:38:48,640 >> ROB: Allura eżekutibbli għadu fil binarja. 1946 01:38:48,640 --> 01:38:51,750 Huwa biss jgħaqqad kollu mazz ta 'binaries. 1947 01:38:51,750 --> 01:38:55,124 1948 01:38:55,124 --> 01:38:56,591 >> UDJENZA: Grazzi tant. 1949 01:38:56,591 --> 01:38:58,560 >> ROB: L-ebda problema. 1950 01:38:58,560 --> 01:38:59,540 Kwalunkwe mistoqsijiet oħra? 1951 01:38:59,540 --> 01:39:02,001 Inkella, aħna qed kollha stabbiliti. 1952 01:39:02,001 --> 01:39:02,690 Kull dritt. 1953 01:39:02,690 --> 01:39:02,990 Grazzi. 1954 01:39:02,990 --> 01:39:03,590 >> [Applause] 1955 01:39:03,590 --> 01:39:04,490 >> UDJENZA: Grazzi. 1956 01:39:04,490 --> 01:39:05,740 >> ROB: Yeah. 1957 01:39:05,740 --> 01:39:06,582