1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Sadaļa 4] [mazāk apmierināti] 2 00:00:02,000 --> 00:00:04,000 [Nate Hardison] [Hārvarda] 3 00:00:04,000 --> 00:00:07,000 [Tas ir CS50.] [CS50.TV] 4 00:00:07,000 --> 00:00:10,000 >> Labi, welcome atpakaļ uz sadaļu. 5 00:00:10,000 --> 00:00:13,000 Šajā nedēļas nodaļā mēs esam gatavojas darīt pāris lietas. 6 00:00:13,000 --> 00:00:17,000 Mēs ejam uz pirmo Atgādinājums Problem Set 2, 7 00:00:17,000 --> 00:00:20,000 kas ir Cēzara un Vigenère problēmu kopumu. 8 00:00:20,000 --> 00:00:23,000 Un tad mēs esam gatavojas nodoties Viktorīnas 0 Review 9 00:00:23,000 --> 00:00:26,000 un pavadīt mazliet laika mazliet recapping ko mēs esam runājuši par 10 00:00:26,000 --> 00:00:30,000 Katrā no lekcijām tik tālu, un mēs arī darīt dažas problēmas 11 00:00:30,000 --> 00:00:32,000 no iepriekšējā gada viktorīnas. 12 00:00:32,000 --> 00:00:36,000 Tādā veidā jums puiši ir labs veids, lai sagatavotos to. 13 00:00:36,000 --> 00:00:40,000 >> Lai sāktu, es esmu booted up pāris labu risinājumu 14 00:00:40,000 --> 00:00:45,000 par iepriekšējo problēmu kopumu, Problem Set 2, šajā telpā. 15 00:00:45,000 --> 00:00:48,000 Ja jūs puiši visi hit šo saiti, 16 00:00:48,000 --> 00:00:53,000 un ja jūs noklikšķiniet manu vārdu un noklikšķiniet uz manu pirmo pārskatīšanu 17 00:00:53,000 --> 00:00:56,000 jūs redzēsiet caesar.c, kas ir tieši tas, ko es esmu meklē. 18 00:00:56,000 --> 00:01:00,000 Parunāsim par to tiešām ātri. 19 00:01:00,000 --> 00:01:02,000 Tas ir tikai parauga šķīdumu. 20 00:01:02,000 --> 00:01:05,000 Tas ne vienmēr ir ideāls risinājums. 21 00:01:05,000 --> 00:01:08,000 Ir daudz dažādi veidi, kā rakstīt šo, 22 00:01:08,000 --> 00:01:10,000 bet ir dažas lietas, ka es gribēju uzsvērt 23 00:01:10,000 --> 00:01:13,000 ka es redzēju, kā es bija šķirošanai, kopējās kļūdas, kas, manuprāt 24 00:01:13,000 --> 00:01:18,000 šis risinājums dara ļoti labu darbu apstrādi. 25 00:01:18,000 --> 00:01:22,000 >> Pirmais ir ar kaut kādu header komentāra augšpusē. 26 00:01:22,000 --> 00:01:25,000 Gada 1 līnijās līdz 7 jūs redzētu detaļas, 27 00:01:25,000 --> 00:01:28,000 Ko tieši šī programma dara. 28 00:01:28,000 --> 00:01:32,000 Labs standarta prakse, rakstot C kodu 29 00:01:32,000 --> 00:01:35,000 neatkarīgi, ja jūsu programma ir ietverta vienā failā vai 30 00:01:35,000 --> 00:01:38,000 vai tas sadalīts pa vairākiem failiem ir jābūt sava veida 31 00:01:38,000 --> 00:01:40,000 orientējot komentāru augšpusē. 32 00:01:40,000 --> 00:01:43,000 Tas ir arī cilvēkiem, kas iet un rakstīt kodu, kas reālajā pasaulē. 33 00:01:43,000 --> 00:01:47,000 Tas ir, ja viņi būs nodot autortiesību informāciju. 34 00:01:47,000 --> 00:01:50,000 Zemāk ir # ietver. 35 00:01:50,000 --> 00:01:55,000 Gada 16 līnijas tur tas # define, ko mēs būsim atpakaļ uz tikai mazliet. 36 00:01:55,000 --> 00:01:59,000 Un tad, kad funkcija sākas, kad galvenie starti, 37 00:01:59,000 --> 00:02:03,000 jo šī programma ir visu salej vienā funkciju 38 00:02:03,000 --> 00:02:09,000 pati pirmā lieta, kas notiek, un šis ir ļoti vārdkopas un tipisks C programmu 39 00:02:09,000 --> 00:02:14,000 kas notiek ar komandrindas argumentus-ir, ka tā uzreiz pārbauda 40 00:02:14,000 --> 00:02:18,000 >> Attiecībā uz argumentu skaits, argc. 41 00:02:18,000 --> 00:02:24,000 Tieši šeit mēs redzam, ka šī programma ir gaidījis 2 argumentus precīzi. 42 00:02:24,000 --> 00:02:27,000 Atcerieties tur ir, ka pirmais arguments, kas ir īpašs 43 00:02:27,000 --> 00:02:29,000 tas vienmēr programmas nosaukums, kas ir tiek palaists, 44 00:02:29,000 --> 00:02:31,000 nosaukums izpildāmo failu. 45 00:02:31,000 --> 00:02:36,000 Un tā, ko tas dara, ir tas novērš lietotāju no braukšanas programmas 46 00:02:36,000 --> 00:02:42,000 ar vairāk vai mazāk argumentiem. 47 00:02:42,000 --> 00:02:44,000 Iemesls, kāpēc mēs gribam, lai pārbaudītu šo tiesību prom ir tāpēc 48 00:02:44,000 --> 00:02:52,000 mēs faktiski nevar piekļūt šai argv masīvs tieši šeit ticami 49 00:02:52,000 --> 00:02:55,000 kamēr mēs esam pārbaudīti, lai redzētu, cik liels tas ir. 50 00:02:55,000 --> 00:02:58,000 >> Viens no kopējās kļūdas es redzēju, bija cilvēki uzreiz iet 51 00:02:58,000 --> 00:03:01,000 un paķert argv [1]. 52 00:03:01,000 --> 00:03:06,000 Viņi greifers atslēgu argumentu no masīva un darīt, lai es varētu pārbaudīt par to, 53 00:03:06,000 --> 00:03:11,000 un tad viņi gribētu darīt testu, argc kā arī nākamo testu, 54 00:03:11,000 --> 00:03:16,000 vai pirmais arguments bija patiešām vesels tajā pašā laikā, 55 00:03:16,000 --> 00:03:20,000 un kas nedarbojas, jo gadījumā, ka nav sniegti argumenti 56 00:03:20,000 --> 00:03:26,000 jums tiks satveršanas argumentu, ka nav tur vai mēģina paķert vienu, kas nav tur. 57 00:03:26,000 --> 00:03:29,000 >> Otra lielā lieta, kas jums vajadzētu pamanīt, ka 58 00:03:29,000 --> 00:03:32,000 Jūs vienmēr vēlaties izdrukāt kaut kādu noderīgu kļūdas ziņojuma 59 00:03:32,000 --> 00:03:34,000 lietotājam orientēties viņiem. 60 00:03:34,000 --> 00:03:37,000 Es esmu pārliecināts, ka jūs visi esam palaist programmas, kur visi pēkšņi tas atteici, 61 00:03:37,000 --> 00:03:41,000 un jūs saņemsiet šo absurda maz dialogu, kas NOP up un saka 62 00:03:41,000 --> 00:03:44,000 kaut briesmīgi noslēpumains un varbūt dod jums kļūdas kodu vai kaut kas tamlīdzīgs 63 00:03:44,000 --> 00:03:47,000 ka nav jēgas. 64 00:03:47,000 --> 00:03:50,000 Tas ir, ja jūs patiešām vēlaties, lai nodrošinātu kaut noderīgu 65 00:03:50,000 --> 00:03:54,000 un mērķtiecīgi, lai lietotājam, lai tad, kad viņi palaist to viņi iet "Ak," sejas palmu. 66 00:03:54,000 --> 00:03:58,000 "Es zinu, tieši to, ko darīt es zinu, kā noteikt šo.". 67 00:03:58,000 --> 00:04:01,000 >> Ja jums nav izdrukātu ziņu, tad jūs galu galā tiešām 68 00:04:01,000 --> 00:04:04,000 atstājot lietotājam iet pārbaudīt savu pirmkodu 69 00:04:04,000 --> 00:04:07,000 izdomāt, kas nogāja greizi. 70 00:04:07,000 --> 00:04:11,000 Ir arī dažas reizes, ka jūs izmanto dažādus kļūdu kodus. 71 00:04:11,000 --> 00:04:14,000 Šeit mēs vienkārši izmanto vienu teikt, ka bija kļūda, 72 00:04:14,000 --> 00:04:16,000 tur bija kļūda, tur bija kļūda. 73 00:04:16,000 --> 00:04:20,000 Lielāks programmas, kas bieži raidījumi, kas tiek saukti par citām programmām, 74 00:04:20,000 --> 00:04:25,000 atgriezīsies kaut kādas īpašas kļūdu kodus dažādiem scenārijiem 75 00:04:25,000 --> 00:04:28,000 programmiski zināmu ko jūs citādi 76 00:04:28,000 --> 00:04:32,000 tikai izmantot jauku angļu ziņu. 77 00:04:32,000 --> 00:04:35,000 Atdzist. 78 00:04:35,000 --> 00:04:37,000 Kā mēs strādājam uz leju, jūs varat redzēt, mēs pull taustiņu out. 79 00:04:37,000 --> 00:04:40,000 Mēs testu, lai redzētu, vai atslēga der. 80 00:04:40,000 --> 00:04:42,000 Mēs saņemt ziņu no lietotāja. 81 00:04:42,000 --> 00:04:46,000 Iemesls, kāpēc mēs to darīt šajā darīt, kamēr cilpa, un tas ir kaut kas mums segs 82 00:04:46,000 --> 00:04:50,000 kas mazliet-bet izrādās, ka, ja jūs tipa kontroles D 83 00:04:50,000 --> 00:04:54,000 kad jūs saņemsiet, ka GetString tūlītēja uz termināla 84 00:04:54,000 --> 00:04:59,000 kas tas patiesībā tas ir tas nosūta īpašu raksturu 85 00:04:59,000 --> 00:05:01,000 ar programmu. 86 00:05:01,000 --> 00:05:05,000 To sauc par ELF vai faila rakstura beigas. 87 00:05:05,000 --> 00:05:08,000 Un šajā gadījumā, mūsu vēstījums stīgu būs spēkā, 88 00:05:08,000 --> 00:05:14,000 tāpēc tas nav kaut mēs pārbaudīta ar problēmu sev. 89 00:05:14,000 --> 00:05:17,000 >> Bet kā mēs ejam tālāk, tagad, ka mēs esam sākuši runāt par norādes 90 00:05:17,000 --> 00:05:21,000 un dinamisku atmiņas sadalījumu uz kaudzes, 91 00:05:21,000 --> 00:05:25,000 pārbaudot null, ja jums ir funkcija, kas varētu 92 00:05:25,000 --> 00:05:30,000 atgriezties null kā vērtība ir kaut kas jūs vēlaties saņemt paraduši. 93 00:05:30,000 --> 00:05:33,000 Tas ir šeit galvenokārt ilustrācija. 94 00:05:33,000 --> 00:05:36,000 Bet, kad jūs redzēt GetString nākotnē, 95 00:05:36,000 --> 00:05:41,000 tāpēc no Problem Set 4, jūs vēlaties, lai saglabātu to prātā. 96 00:05:41,000 --> 00:05:44,000 Atkal, tas nav jautājums par problēmu Set 3 nu kopš mēs nebūtu uz to vēl. 97 00:05:44,000 --> 00:05:53,000 Visbeidzot, mēs uz šo daļu, kur mēs uz galveno šifrēšanas cilpa, 98 00:05:53,000 --> 00:05:57,000 un tur ir lietas notiek šeit pāris. 99 00:05:57,000 --> 00:06:02,000 Pirmkārt, mēs atkārtot visā ziņu virkni pati. 100 00:06:02,000 --> 00:06:07,000 Šeit mēs esam tur strlen zvanu nosacījumu, 101 00:06:07,000 --> 00:06:12,000 kas no jums skaits ir norādījusi, nav lielisks veids, kā iet. 102 00:06:12,000 --> 00:06:15,000 Izrādās, šajā gadījumā tas arī nav liels, 103 00:06:15,000 --> 00:06:20,000 daļēji tāpēc mēs mainīt saturu paša ziņojuma 104 00:06:20,000 --> 00:06:27,000 iekšpusē cilpa, tāpēc, ja mums ir ziņojums, kas ir 10 rakstzīmes garš, 105 00:06:27,000 --> 00:06:32,000 Pirmo reizi mēs sāktu ka strlen cilpa atgriezīsies ko? 106 00:06:32,000 --> 00:06:35,000 10. 107 00:06:35,000 --> 00:06:40,000 >> Bet, ja mēs pēc tam mainīt ziņu, ka mēs mainīt savu 5 raksturu, 108 00:06:40,000 --> 00:06:46,000 un mēs iemest \ 0 rakstura jau 5 stāvoklī, 109 00:06:46,000 --> 00:06:49,000 uz vēlāku atkārtojumā strlen (ziņu) neatgriezīs ko tā izdarīja 110 00:06:49,000 --> 00:06:52,000 ļoti pirmo reizi mēs uzsvēra, 111 00:06:52,000 --> 00:06:56,000 bet tas būs tā vietā atgriezīsies 5, jo mēs iemeta šajā null terminatoru, 112 00:06:56,000 --> 00:06:59,000 un string ir garums ir definēts 113 00:06:59,000 --> 00:07:03,000 ko vada no šīs \ 0. 114 00:07:03,000 --> 00:07:09,000 Šajā gadījumā, tas ir lielisks veids, kā iet, jo mēs esam pārveidojot to vietā. 115 00:07:09,000 --> 00:07:13,000 Bet jūs ievērosiet, ka tas ir faktiski pārsteidzoši vienkārši šifrēt 116 00:07:13,000 --> 00:07:16,000 ja jūs varat saņemt math pareiza. 117 00:07:16,000 --> 00:07:19,000 Viss, kas ir nepieciešams, ir jāpārbauda, ​​ka jūs meklējat pie, vai šai vēstuli 118 00:07:19,000 --> 00:07:21,000 ir lielie vai mazie. 119 00:07:21,000 --> 00:07:24,000 >> Iemesls mums ir tikai, lai pārbaudītu to un mums nav, lai pārbaudītu 120 00:07:24,000 --> 00:07:27,000 ir alfa lieta ir, jo 121 00:07:27,000 --> 00:07:30,000 ja raksturs ir lielie vai ja tas ir mazie 122 00:07:30,000 --> 00:07:33,000 tad tas noteikti alfabēta burtu, 123 00:07:33,000 --> 00:07:38,000 jo mums nav lielie un mazie cipari. 124 00:07:38,000 --> 00:07:41,000 Otra lieta, ko mēs darām, un tas ir nedaudz grūts, 125 00:07:41,000 --> 00:07:45,000 ir mēs esam modificēts standarta Caesar šifra formulu 126 00:07:45,000 --> 00:07:49,000 ka mēs padevās problemātisko noteiktajā specifikācijā. 127 00:07:49,000 --> 00:07:52,000 Kas ir atšķirīgs ir tas, ka mēs atņemti 128 00:07:52,000 --> 00:07:58,000 ar lielo lietu galvaspilsētā, un tad mēs pievienot kapitāla A 129 00:07:58,000 --> 00:08:02,000 Atpakaļ beigās. 130 00:08:02,000 --> 00:08:05,000 >> Es zinu no jums maz ir izdarīts jūsu kodu. 131 00:08:05,000 --> 00:08:09,000 Vai kāds no jums izdarīt jūsu iesniegumiem? 132 00:08:09,000 --> 00:08:13,000 Jūs šo. Vai jūs varat paskaidrot, ko tas dara, Sahb? 133 00:08:13,000 --> 00:08:18,000 Atņemot to ārā, jo jūs mod uzreiz pēc tam, 134 00:08:18,000 --> 00:08:21,000 Jums ir ņemt to ārā, tāpēc Tādā veidā jums [klepu] nostāju. 135 00:08:21,000 --> 00:08:25,000 Un pēc tam pievienojot to atpakaļ vēlāk jūs pārvietoti vairāk nekā to, kas jums vēlējās. 136 00:08:25,000 --> 00:08:27,000 Jā, tieši tā. 137 00:08:27,000 --> 00:08:32,000 Kas Sahb teica, bija, ka, ja mēs vēlamies, lai pievienotu 138 00:08:32,000 --> 00:08:36,000 Mūsu vēstījums un mūsu galvenais kopā 139 00:08:36,000 --> 00:08:42,000 un tad mod, kas, mod, kas ar NUM_LETTERS, 140 00:08:42,000 --> 00:08:50,000 ja mēs neveido mūsu ziņu atbilstošajā 0-25 robežās, pirmkārt, 141 00:08:50,000 --> 00:08:54,000 tad mēs varētu galu galā kļūst patiešām dīvaini numuru 142 00:08:54,000 --> 00:08:59,000 jo vērtības, kas mēs esam meklē, kad mēs skatāmies uz ziņu [i], 143 00:08:59,000 --> 00:09:03,000 kad mēs skatāmies kārtējam raksturu mūsu vienkārša īsziņu, 144 00:09:03,000 --> 00:09:08,000 ir vērtība, kaut kur šajā 65-122 diapazonā 145 00:09:08,000 --> 00:09:13,000 pamatojoties uz ASCII vērtībām lielos A caur mazajiem burtiem z. 146 00:09:13,000 --> 00:09:18,000 Un tad, kad mēs mod to ar 26 vai pa NUM_LETTERS, 147 00:09:18,000 --> 00:09:23,000 jo tas bija mūsu # define augšējā labajā šeit, 148 00:09:23,000 --> 00:09:28,000 kas notiek, lai dotu mums vērtību, kas ir no 0-25 robežās, 149 00:09:28,000 --> 00:09:30,000 un mums ir nepieciešams veids, tad mērogu, ka atpakaļ uz augšu 150 00:09:30,000 --> 00:09:32,000 un saņemt to atbilstošā ASCII diapazonā. 151 00:09:32,000 --> 00:09:36,000 Vieglākais veids, kā to darīt, ir tikai skalu viss uz leju 152 00:09:36,000 --> 00:09:39,000 uz 0-25 robežās, lai sāktu ar, 153 00:09:39,000 --> 00:09:43,000 un pēc tam pāriet viss atpakaļ uz augšu beigās. 154 00:09:43,000 --> 00:09:46,000 >> Vēl viena kopīga kļūda, ka es redzēju cilvēkus uzskriet ka 155 00:09:46,000 --> 00:09:50,000 ja jums nav faktiski darīt zvīņošanās uzreiz 156 00:09:50,000 --> 00:09:53,000 un jūs pievienot ziņu un atslēgu kopā un jūs pievienojat tos, teiksim, 157 00:09:53,000 --> 00:09:58,000 uz char mainīgs, problēma ar šo 158 00:09:58,000 --> 00:10:01,000 ir kopš ziņojuma [i] ir salīdzinoši liels skaits, lai sāktu ar, 159 00:10:01,000 --> 00:10:05,000 atceraties, tas ir vismaz 65, ja tas lielais raksturs- 160 00:10:05,000 --> 00:10:09,000 ja jums ir liels atslēgu, teiksim, kaut kas līdzīgs 100, 161 00:10:09,000 --> 00:10:13,000 un jūs pievienojat šiem 2 kopā vērā parakstīts CHAR jūs gatavojas saņemt pārslodzi. 162 00:10:13,000 --> 00:10:17,000 Jūs gatavojas iegūt vērtību, kas ir lielāka nekā 127, 163 00:10:17,000 --> 00:10:22,000 kas ir lielākā vērtība, CHAR mainīgais var turēt. 164 00:10:22,000 --> 00:10:26,000 Atkal, tas ir, kāpēc jūs vēlaties darīt, ka veida lieta, lai sāktu ar. 165 00:10:26,000 --> 00:10:29,000 Daži cilvēki ieguva ap gadījumā darot ja cits un testēšanas 166 00:10:29,000 --> 00:10:33,000 lai redzētu, vai tas būtu pārpildīts pirms to dara, 167 00:10:33,000 --> 00:10:36,000 bet šādā veidā izpaužas ap to. 168 00:10:36,000 --> 00:10:40,000 Un tad šajā šķīdumā mēs izdrukāt visu virkni pašās beigās. 169 00:10:40,000 --> 00:10:45,000 Citi cilvēki izdrukāt raksturs laikā. Abi ir lieliski. 170 00:10:45,000 --> 00:10:51,000 Šajā brīdī, jūs guys ir kādi jautājumi, kādi komentāri par šo? 171 00:10:51,000 --> 00:10:56,000 Things jums patīk, lietas jums nepatīk? 172 00:10:56,000 --> 00:10:58,000 >> Man bija jautājums. 173 00:10:58,000 --> 00:11:01,000 Varbūt es nokavēju to laikā jūsu paskaidrojumu, bet kā šī programma 174 00:11:01,000 --> 00:11:07,000 izlaist atstarpes, lai savienotu taustiņu uz teksta garuma? 175 00:11:07,000 --> 00:11:10,000 Tas ir tikai Cēzara šifra. >> Ak, piedodiet, jā. 176 00:11:10,000 --> 00:11:13,000 Jā, mēs redzam, ka. 177 00:11:13,000 --> 00:11:16,000 Jo Cēzara šifra mēs saņēmām aptuveni ka tāpēc 178 00:11:16,000 --> 00:11:18,000 Mēs tikai Pagriezts rakstzīmes. 179 00:11:18,000 --> 00:11:27,000 Mēs tikai griež tos, ja tie ir lielie vai mazie. 180 00:11:27,000 --> 00:11:32,000 Jūs puiši sajūta diezgan labs par šo? 181 00:11:32,000 --> 00:11:34,000 Jūtieties brīvi kopēt šo māju, ņemt to, 182 00:11:34,000 --> 00:11:37,000 salīdzināt to, ko jūs guys rakstīja. 183 00:11:37,000 --> 00:11:42,000 Noteikti justies brīvi sūtīt jautājumus par to pārāk. 184 00:11:42,000 --> 00:11:46,000 Un atkal, saprotam, ka mērķis šeit ar savu problēmu komplekti 185 00:11:46,000 --> 00:11:50,000 nav, lai saņemtu jums puiši rakstīt perfektu kodu jūsu problēma komplekti. 186 00:11:50,000 --> 00:11:57,000 Tas ir mācīšanās pieredzi. Yeah. 187 00:11:57,000 --> 00:12:01,000 >> Atpakaļ uz darīt, kamēr cilpa, ja tas būs vienāds null, 188 00:12:01,000 --> 00:12:06,000 tāpēc Null nozīmē tikai neko, viņi vienkārši hit ieiet? 189 00:12:06,000 --> 00:12:12,000 Null ir īpašs rādītājs vērtību, 190 00:12:12,000 --> 00:12:17,000 un mēs izmantojam Null, kad mēs vēlamies pateikt 191 00:12:17,000 --> 00:12:23,000 mums ir rādītājs mainīgo, kas ir vērsta uz neko. 192 00:12:23,000 --> 00:12:28,000 Un tā parasti tas nozīmē, ka šis mainīgais, šī ziņa mainīgs 193 00:12:28,000 --> 00:12:35,000 ir tukša, un šeit, jo mēs esam izmantojot CS50 speciālu stīgu veidu, 194 00:12:35,000 --> 00:12:37,000 kāda ir CS50 virkne veidu? 195 00:12:37,000 --> 00:12:42,000 Vai esat redzējuši, kas tas ir, kad Dāvids velk atpakaļ pārsegu lekciju? 196 00:12:42,000 --> 00:12:44,000 Tas bailīgs-tas ir rādītājs, vai ne? 197 00:12:44,000 --> 00:12:48,000 Labi, jā >> Tas. Ir char *. 198 00:12:48,000 --> 00:12:52,000 Un tā tiešām mēs varētu aizvietot šo 199 00:12:52,000 --> 00:12:56,000 tepat ar char * ziņu, 200 00:12:56,000 --> 00:13:04,000 un tā GetString funkcija, ja tas nav veiksmīgi iegūt virkni no lietotāja, 201 00:13:04,000 --> 00:13:08,000 tā nevar parsēt virkni, un viens gadījums, kurā tas nevar parsēt virkni 202 00:13:08,000 --> 00:13:11,000 ir, ja lietotājs beigām failu raksturu, kontroles D, 203 00:13:11,000 --> 00:13:17,000 kas nav kaut ko jūs parasti darīt, bet, ja tas notiek 204 00:13:17,000 --> 00:13:20,000 tad funkcija atgriezīs šo null vērtību, kā veids, kā pateikt 205 00:13:20,000 --> 00:13:23,000 "Hei, man nav iegūt virkni." 206 00:13:23,000 --> 00:13:27,000 Kas notiktu, ja mums nav likts ziņu = null, 207 00:13:27,000 --> 00:13:30,000 kas ir kaut kas, mēs neesam darījuši vēl? 208 00:13:30,000 --> 00:13:32,000 Kāpēc tas var būt problēma? 209 00:13:32,000 --> 00:13:38,000 Jo es zinu, ka mēs runājām mazliet lekciju par atmiņas noplūdes. 210 00:13:38,000 --> 00:13:42,000 Jā, pieņemsim darīt, un redzēsim, kas notiek. 211 00:13:42,000 --> 00:13:44,000 >> Svētlaimīgā jautājums bija, kas notiek, ja mēs faktiski nav 212 00:13:44,000 --> 00:13:48,000 Šī ziņa = null tests? 213 00:13:48,000 --> 00:13:51,000 Pieņemsim ritiniet uz augšu uz augšu. 214 00:13:51,000 --> 00:13:53,000 Jūs guys var komentēt šo out. 215 00:13:53,000 --> 00:13:55,000 Patiesībā, es ņemšu to saglabāt pārskatot. 216 00:13:55,000 --> 00:13:58,000 Tas būs pārskatīšana 3. 217 00:13:58,000 --> 00:14:02,000 Kas jums ir jādara, lai palaistu šo programmu, ir jums ir jāaiziet uz šo rīku ikonas šeit, 218 00:14:02,000 --> 00:14:04,000 un jums ir pievienot argumentu uz to. 219 00:14:04,000 --> 00:14:10,000 Jums ir arī tā galveno argumentu, jo mēs vēlamies, lai iet ar komandrindas argumentu. 220 00:14:10,000 --> 00:14:13,000 Šeit es esmu gatavojas sniegt tai numuru 3. Man patīk 3. 221 00:14:13,000 --> 00:14:19,000 Tagad attālināt atkal ārā, darbības programmu. 222 00:14:19,000 --> 00:14:24,000 Tas darbojas, apkopojot, celtniecības. 223 00:14:24,000 --> 00:14:27,000 Šeit mēs iet. Tā gaida, lai tiktu paziņots. 224 00:14:27,000 --> 00:14:33,000 Ja es rakstīt kaut ko līdzīgu sveiki-kur bija, ka iet? 225 00:14:33,000 --> 00:14:38,000 Ak, mana programma bija pārāk ilgi, lai palaistu. Man bija jawing pārāk ilgi. 226 00:14:38,000 --> 00:14:40,000 Šeit tas pats. 227 00:14:40,000 --> 00:14:43,000 Tagad es rakstīt sveiki. 228 00:14:43,000 --> 00:14:46,000 Mēs redzam, ka tas šifrē pienācīgi. 229 00:14:46,000 --> 00:14:52,000 Tagad to, kas notiek, ja mēs nekavējoties GetString atgriezties null? 230 00:14:52,000 --> 00:14:57,000 Atcerieties, es teicu, ka mums bija, ka, nospiežot kontroles D tajā pašā laikā. 231 00:14:57,000 --> 00:14:59,000 Es ritiniet šeit. Mēs to vēlreiz. 232 00:14:59,000 --> 00:15:01,000 Ēka. Tur tas notiek. 233 00:15:01,000 --> 00:15:04,000 Tagad, kad es hit kontroles D 234 00:15:04,000 --> 00:15:12,000 Man šo līniju, kas saka opt/sandbox50/bin/run.sh, segmentācija vaina. 235 00:15:12,000 --> 00:15:15,000 Vai jums puiši redzams, ka pirms? 236 00:15:15,000 --> 00:15:17,000 >> [Studentu] Kāpēc nav->> Atvainojiet? 237 00:15:17,000 --> 00:15:20,000 [Studentu] Kāpēc nav kodols izgāztuve šajā gadījumā? 238 00:15:20,000 --> 00:15:26,000 Kodols dump ir-jautājums ir, kāpēc tur nav kodols izgāztuve šeit? 239 00:15:26,000 --> 00:15:29,000 Jautājums ir, ka var būt, bet kodols dump ir fails 240 00:15:29,000 --> 00:15:31,000 kas izpaužas saglabāti uz cietā diska. 241 00:15:31,000 --> 00:15:34,000 Šajā gadījumā mēs esam invalīdi core izgāztuves 242 00:15:34,000 --> 00:15:37,000 par palaist serveri, lai mums nav cilvēku SEG faulting 243 00:15:37,000 --> 00:15:40,000 un veidojot tonnas kodols izgāztuves. 244 00:15:40,000 --> 00:15:46,000 Bet jūs varat saņemt vienu. 245 00:15:46,000 --> 00:15:48,000 Kodols izgāztuves ir veida lieta, ka jūs bieži vien var atslēgt, 246 00:15:48,000 --> 00:15:52,000 un reizēm jums. 247 00:15:52,000 --> 00:15:55,000 Segmentācija vaina, lai atbildētu uz jūsu jautājumu, baziliks, 248 00:15:55,000 --> 00:16:00,000 saka, ka mēs centāmies piekļūt rādītāju 249 00:16:00,000 --> 00:16:05,000 ka nav noteikts norādīt uz jebko. 250 00:16:05,000 --> 00:16:09,000 Atceros Binky ar video, ja Binky mēģina 251 00:16:09,000 --> 00:16:12,000 go piekļūt rādītāju, ka nav, kas norāda uz kaut ko? 252 00:16:12,000 --> 00:16:16,000 Šajā gadījumā es domāju tehniski rādītājs ir vērsta uz kaut ko. 253 00:16:16,000 --> 00:16:20,000 Tas norāda uz nulli, kas ir tehniski 0, 254 00:16:20,000 --> 00:16:25,000 bet ir noteikts kā segmentā, kas nav pieejama 255 00:16:25,000 --> 00:16:28,000 ar savu programmu, lai jūs iegūtu segmentēšanas vaina 256 00:16:28,000 --> 00:16:31,000 jo jūs neesat piekļūstot atmiņas, kas ir ar derīgu segmentā 257 00:16:31,000 --> 00:16:38,000 piemēram kaudze segmentā vai kaudze segmentu vai datu segmentā. 258 00:16:38,000 --> 00:16:40,000 Atdzist. 259 00:16:40,000 --> 00:16:48,000 Vai ir vēl kādi jautājumi par ķeizaru? 260 00:16:48,000 --> 00:16:51,000 >> Pāriesim. Apskatīsim 2 Revision tiešām ātri. 261 00:16:51,000 --> 00:17:00,000 Tas ir Vigenère. 262 00:17:00,000 --> 00:17:04,000 Šeit Vigenère 263 00:17:04,000 --> 00:17:06,000 mēs staigāt pa šo vienu diezgan ātri, jo, atkal, 264 00:17:06,000 --> 00:17:10,000 Vigenère un Cēzara ir diezgan līdzīgas. 265 00:17:10,000 --> 00:17:12,000 Galvene komentārs ir pirms, 266 00:17:12,000 --> 00:17:17,000 # Define ir pirms izvairīties, izmantojot šos burvju numurus. 267 00:17:17,000 --> 00:17:21,000 Jauka lieta ir pateikt, ka mēs vēlējāmies, lai pārietu 268 00:17:21,000 --> 00:17:23,000 atšķirīgs alfabēts vai kaut kas tamlīdzīgs. 269 00:17:23,000 --> 00:17:26,000 Nevis iet manuāli mainīt visu 26 grādu kodu 270 00:17:26,000 --> 00:17:30,000 mēs varētu mainīt līdz 27 vai no tā uz leju 271 00:17:30,000 --> 00:17:34,000 ja mēs, izmantojot dažādus alfabētus, dažādās valodās. 272 00:17:34,000 --> 00:17:38,000 Atgādināsim, ka mēs esam ieguvuši šo pārbaudi argumentu skaits, 273 00:17:38,000 --> 00:17:42,000 un tiešām jūs varat gandrīz lietot to kā veidni. 274 00:17:42,000 --> 00:17:46,000 Diezgan daudz ik programma jums rakstīt jābūt- 275 00:17:46,000 --> 00:17:50,000 ja tas notiek komandrindas argumentus, daži secība līniju 276 00:17:50,000 --> 00:17:55,000 kas skan kā šis pašā sākumā. 277 00:17:55,000 --> 00:17:59,000 Tas ir viens no pirmajiem veselība testos, ko vēlaties darīt. 278 00:17:59,000 --> 00:18:03,000 >> Lūk, ko mēs bija mēs nodrošinājām, ka 279 00:18:03,000 --> 00:18:06,000 atslēgvārds bija spēkā, un tas bija otrais pārbaude, ko mēs darījām. 280 00:18:06,000 --> 00:18:11,000 Ievērojiet, atkal, ka mēs atdalīta tas no argc un 2. 281 00:18:11,000 --> 00:18:14,000 Ņemiet vērā, ka šajā gadījumā viena lieta, kas mums bija darīt bija vietā 282 00:18:14,000 --> 00:18:18,000 izmantot, lai I Mēs vēlējāmies, lai apstiprinātu virtenei, 283 00:18:18,000 --> 00:18:21,000 un lai to izdarītu, jums tiešām ir iet raksturs pēc rakstura 284 00:18:21,000 --> 00:18:23,000 pār virkni. 285 00:18:23,000 --> 00:18:29,000 Nav labs veids, lai izsauktu kaut par to 286 00:18:29,000 --> 00:18:31,000 jo pat, piemēram, lai es atpakaļ 0 287 00:18:31,000 --> 00:18:37,000 ja to nevar parsēt skaitlim, lai nav pat darbu. 288 00:18:37,000 --> 00:18:42,000 Atkal, jauku ziņu stāsta lietotājs tieši tas noticis. 289 00:18:42,000 --> 00:18:45,000 Tad šeit, atkal, mēs arī rīkoties gadījumā, ja 290 00:18:45,000 --> 00:18:50,000 lietotājs veidi kontroles D izlases raksturs. 291 00:18:50,000 --> 00:18:54,000 >> Un tad Šarlote bija jautājums agrāk par to, kā mēs spējam izlaist atstarpes 292 00:18:54,000 --> 00:18:57,000 mūsu virknes šeit. 293 00:18:57,000 --> 00:19:00,000 Tas bija sava veida līdzīgs tam, ko mēs darījām ar Myspace programmu 294 00:19:00,000 --> 00:19:04,000 ka mēs sadaļā, un, kā tas darbojās 295 00:19:04,000 --> 00:19:08,000 ir tas, ka mēs kāpurķēžu burtu skaits, ko mēs gribētu redzēt. 296 00:19:08,000 --> 00:19:13,000 Kā mēs gājām pa ziņu virkne, kā mēs gājām pa raksturu pēc rakstura, 297 00:19:13,000 --> 00:19:16,000 Mēs kāpurķēžu indeksu kā daļu no mūsu uz cilpas, un tad mēs arī kāpurķēžu 298 00:19:16,000 --> 00:19:21,000 skaitu vēstuļu, tā nav speciālās rakstzīmes, kas nav cipari, ne-balto laukumu 299 00:19:21,000 --> 00:19:27,000 ka mēs gribētu redzēt atsevišķs mainīgais. 300 00:19:27,000 --> 00:19:33,000 Un tad šis risinājums maina taustiņu 301 00:19:33,000 --> 00:19:41,000 lai iegūtu faktisko atslēgu skaitlis, un tas, ka par lidot, 302 00:19:41,000 --> 00:19:47,000 tieši pirms tā, tad iet, lai šifrētu faktisko ziņu raksturu. 303 00:19:47,000 --> 00:19:50,000 Ir daži risinājumi, kas bija perfekti pārāk liels 304 00:19:50,000 --> 00:19:58,000 kas mainītu taustiņu uz augšu, pārbaudot no galvenajiem spēkā esamības. 305 00:19:58,000 --> 00:20:01,000 Papildus pārliecinoties, ka raksturs un atslēgvārds 306 00:20:01,000 --> 00:20:05,000 Tika alfabēta burtu tas arī izrādījās, ka par skaitlim 307 00:20:05,000 --> 00:20:13,000 no 0-25 robežās, lai pēc tam izlaist kam darīt, kas vēlāk šajā cilpa. 308 00:20:13,000 --> 00:20:18,000 Atkal, jūs redzat šeit tas ir patiešām precīzs pašu kodu 309 00:20:18,000 --> 00:20:22,000 ka mēs izmantoti Cēzars šajā brīdī. 310 00:20:22,000 --> 00:20:25,000 Jūs darāt tieši to pašu, tāpēc reāls triks ir norādītas 311 00:20:25,000 --> 00:20:30,000 Kā pārvērst atslēgvārdu veselam skaitlim. 312 00:20:30,000 --> 00:20:35,000 >> Viena lieta, ka mēs darījām šeit, ka ir maz blīvs 313 00:20:35,000 --> 00:20:39,000 ir mums atkārtoja šo frāzi, es domāju, jūs varētu to sauc, 314 00:20:39,000 --> 00:20:45,000 3 atsevišķas reizes uz 58 līnijām, 59, 61 un. 315 00:20:45,000 --> 00:20:52,000 Var kāds paskaidrot, ko tieši šī frāze dara? 316 00:20:52,000 --> 00:20:55,000 Tas piekļuvei raksturs, tāpat kā jūs teicāt. 317 00:20:55,000 --> 00:20:59,000 Jā, tas ir [dzirdams] varonis atslēgvārdu, 318 00:20:59,000 --> 00:21:04,000 un tāpēc tas ir skaits redzējis burtiem, jo ​​jūs esat tikai pārvietojas pa 319 00:21:04,000 --> 00:21:06,000 atslēgvārds kad jūs esat redzējis vēstuli, 320 00:21:06,000 --> 00:21:10,000 lai notiek, lai efektīvi izlaist atstarpes un, piemēram, ka stuff. 321 00:21:10,000 --> 00:21:12,000 Jā, tieši tā. 322 00:21:12,000 --> 00:21:16,000 Un tad, kad jūs esat redzējuši atslēgvārdu tukšu tikko Mod, lai jūs pārvietoties atpakaļ apkārt. 323 00:21:16,000 --> 00:21:18,000 Tieši tā. Tas ir ideāls izskaidrojums. 324 00:21:18,000 --> 00:21:23,000 Kas Kevins teica, ka mēs vēlamies, lai indeksu uz atslēgvārdu. 325 00:21:23,000 --> 00:21:28,000 Mēs vēlamies, lai iegūtu num_letters_seen raksturs, ja jūs, 326 00:21:28,000 --> 00:21:32,000 bet, ja num_letters_seen pārsniedz garumu atslēgvārdu, 327 00:21:32,000 --> 00:21:37,000 kā mēs saņemam atpakaļ uz atbilstošu klāsts ir mēs izmantojam mod operatoru 328 00:21:37,000 --> 00:21:40,000 efektīvi wrap apkārt. 329 00:21:40,000 --> 00:21:43,000 Piemēram, tāpat kā īstermiņa, mūsu atslēgvārds ir bekons, 330 00:21:43,000 --> 00:21:46,000 un tas ir 5 burtiem. 331 00:21:46,000 --> 00:21:50,000 Bet mēs esam redzējuši 6 burti mūsu teksta šajā brīdī 332 00:21:50,000 --> 00:21:52,000 un šifrētu 6. 333 00:21:52,000 --> 00:21:57,000 Mēs galu galā piekļūstot num_letters_seen, 334 00:21:57,000 --> 00:22:00,000 kas ir 6, mod garumu atslēgvārda, 5, 335 00:22:00,000 --> 00:22:04,000 un tāpēc mēs iegūtu 1, un lai ko mēs darīt, ir mēs 336 00:22:04,000 --> 00:22:14,000 piekļūt pirmo rakstzīmi iekšpusē mūsu atslēgvārdu šajā punktā. 337 00:22:14,000 --> 00:22:21,000 >> Viss labais, kādi jautājumi par Vigenère 338 00:22:21,000 --> 00:22:26,000 Pirms mēs doties tālāk? 339 00:22:26,000 --> 00:22:31,000 Jūs puiši sajūta diezgan labs par šo? 340 00:22:31,000 --> 00:22:35,000 Atdzesē, lieliski. 341 00:22:35,000 --> 00:22:38,000 Es gribu, lai pārliecinātos, ka jūs puiši kļūst iespēja redzēt kodu 342 00:22:38,000 --> 00:22:48,000 ka mēs domājam izskatās labi un ir iespēja mācīties no tā. 343 00:22:48,000 --> 00:22:53,000 Tas būs pēdējais, mēs būsim, izmantojot telpas pagaidām, 344 00:22:53,000 --> 00:22:59,000 un mēs esam gatavojas pārejai tagad, un es esmu gatavojas doties uz cs50.net/lectures 345 00:22:59,000 --> 00:23:06,000 lai mēs varētu darīt mazliet viktorīna pārskatīšanu. 346 00:23:06,000 --> 00:23:10,000 Labākais veids, kā es domāju, ka, lai sāktu darīt viktorīna pārskats 347 00:23:10,000 --> 00:23:15,000 ir nākt uz šo lekcijas lapā, cs50.net/lectures, 348 00:23:15,000 --> 00:23:20,000 un zem katras nedēļas pozīcijās, tāpēc, ja es paskatos šeit pie 0 nedēļā, 349 00:23:20,000 --> 00:23:27,000 Es redzu, ka mums ir saraksts ar tēmām, ka mēs uz pieejama 0 nedēļa. 350 00:23:27,000 --> 00:23:31,000 >> Ja kāds no šiem jautājumiem šķiet svešs jums 351 00:23:31,000 --> 00:23:34,000 jūs noteikti vēlaties doties atpakaļ un berzt lekciju piezīmes un, iespējams, 352 00:23:34,000 --> 00:23:39,000 pat iziet caur lekciju, noskatīties vēlreiz, ja jūs vēlaties 353 00:23:39,000 --> 00:23:44,000 lai iegūtu justies par to, kas notiek ar katru no šiem tematiem. 354 00:23:44,000 --> 00:23:49,000 Es saku papildus šogad viens no atdzist resursus, mēs esam ieguvuši 355 00:23:49,000 --> 00:23:55,000 Tieši šīs šorti, ka mēs esam radīti, un ja paskatās pie 0 nedēļā, 356 00:23:55,000 --> 00:24:00,000 mums nav visi tēmām, bet mēs esam ieguvuši diezgan maz no tiem, 357 00:24:00,000 --> 00:24:03,000 dažas no trickier tiem, tāpēc skatoties šos šorti atkal 358 00:24:03,000 --> 00:24:08,000 ir labs veids, kā iegūt jums līdz ātrumu. 359 00:24:08,000 --> 00:24:15,000 Jo īpaši es esmu gatavojas ielikt kontaktdakšu 3 apakšā, jo es darīju tiem. 360 00:24:15,000 --> 00:24:20,000 Bet, ja jūs cīnās ar bināro, biti, hex, šāda veida stuff, 361 00:24:20,000 --> 00:24:22,000 binārs ir lieliska vieta, kur sākt. 362 00:24:22,000 --> 00:24:25,000 ASCII ir vēl viens, kas ir labi, lai apskatītu pārāk. 363 00:24:25,000 --> 00:24:31,000 Jūs pat varat skatīties mani 1.5x ātrumu, ja es esmu pārāk lēns, lai jums. 364 00:24:31,000 --> 00:24:35,000 Kopš tā pārskatīšanas, justies brīvi, lai to izdarītu. 365 00:24:35,000 --> 00:24:40,000 >> Tikai, lai sāktu patiešām ātri, mēs gatavojamies iet cauri pāris šīs viktorīnu problēmu 366 00:24:40,000 --> 00:24:44,000 tikai, lai ātri kannu caur tiem. 367 00:24:44,000 --> 00:24:50,000 Piemēram, pieņemsim apskatīt pie 16 problēmu, ka es esam ieguvuši tiesības uz augšu šeit uz kuģa. 368 00:24:50,000 --> 00:24:54,000 Mēs esam ieguvuši šo šādu aprēķinu binārā, 369 00:24:54,000 --> 00:24:56,000 un mēs vēlamies parādīt jebkuru darbu. 370 00:24:56,000 --> 00:24:59,000 Labi, es esmu gatavojas sniegt šo shot. 371 00:24:59,000 --> 00:25:01,000 Jūs puiši būtu sekot kopā ar papīru, 372 00:25:01,000 --> 00:25:04,000 un mēs darīsim tas tiešām ātri. 373 00:25:04,000 --> 00:25:06,000 Mēs vēlamies, lai veiktu šādu aprēķinu bināro. 374 00:25:06,000 --> 00:25:16,000 Man 00.110.010. 375 00:25:16,000 --> 00:25:27,000 Un es esmu gatavojas pievienot 00110010 to. 376 00:25:27,000 --> 00:25:30,000 Par math ģēniji pēc kopā mājās, 377 00:25:30,000 --> 00:25:35,000 Tas ir faktiski reizinot ar 2. 378 00:25:35,000 --> 00:25:37,000 Sāksim. 379 00:25:37,000 --> 00:25:39,000 Mēs ejam, lai to pašu papildinājumu algoritmu, kas mums jādara 380 00:25:39,000 --> 00:25:43,000 kad mēs pievienot decimal numurus kopā. 381 00:25:43,000 --> 00:25:46,000 Tiešām vienīgā atšķirība ir tā, ka mēs cilpa atpakaļ apkārt 382 00:25:46,000 --> 00:25:51,000 kad mums ir 1 + 1 vietā kad mēs līdz 10. 383 00:25:51,000 --> 00:25:53,000 >> Ja mēs sāktu no tiesībām, tiešām ātri, kas ir pirmais cipars? 384 00:25:53,000 --> 00:25:55,000 [Studentu] 0 >> [Neits H.]. 0. 385 00:25:55,000 --> 00:25:58,000 Lieliski, otrais cipars? 386 00:25:58,000 --> 00:26:00,000 [Studentu] 1. 387 00:26:00,000 --> 00:26:02,000 [Nate H.] Vai tā 1? 1 + 1 ir? 388 00:26:02,000 --> 00:26:04,000 [Studentu] 10. 389 00:26:04,000 --> 00:26:08,000 [Nate H.] Tieši tā, lai to, kas ir cipars, ka es rakstīt pareizi zem 2 jāpapildina, kopā? 390 00:26:08,000 --> 00:26:11,000 [Studentu] 1, 0, 0 vai tad veikt 1. 391 00:26:11,000 --> 00:26:15,000 [Nate H.] 0 un veikt 1, tieši tā. 392 00:26:15,000 --> 00:26:18,000 Nākamais augšu, baziliks, tu esi uz augšu. 393 00:26:18,000 --> 00:26:20,000 Kas trešais? >> [Baziliks] 1. 394 00:26:20,000 --> 00:26:23,000 [Nate H.] 1, perfekta. Kevin? 395 00:26:23,000 --> 00:26:27,000 [Kevins] 0 >> [Neits H.]. 0, Šarlote? 396 00:26:27,000 --> 00:26:30,000 [Šarlote] 0 >> [Neits H.]. Jā, un ko man darīt? 397 00:26:30,000 --> 00:26:32,000 [Studentu] 1. 398 00:26:32,000 --> 00:26:34,000 [Nate H.] Un ko man darīt? Un tad es veikt 1. 399 00:26:34,000 --> 00:26:36,000 Ideāls, Sahb >>? [Sahb] Tagad jums ir 1. 400 00:26:36,000 --> 00:26:40,000 [Nate H.] Un man darīt kaut ko šeit? 401 00:26:40,000 --> 00:26:43,000 [Sahb] Tad nākamo jums ir 1, jo jūs veikta vairāk nekā 1. 402 00:26:43,000 --> 00:26:49,000 [Nate H.] Great, tāpēc šeit mēs varam pabeigt to uz augšu. 403 00:26:49,000 --> 00:26:51,000 Atdzist. 404 00:26:51,000 --> 00:26:54,000 [Studentu] Vai 0 + 0 = 0? 405 00:26:54,000 --> 00:26:56,000 0 + 0 = 0. 406 00:26:56,000 --> 00:27:01,000 1 + 1, kā jūs teicāt, ir 10, 1 vai 0, nevis. 407 00:27:01,000 --> 00:27:07,000 10 ir nepareiza lietošana, jo man 10 ir numurs 10, 408 00:27:07,000 --> 00:27:12,000 un tas ir untums kā mēs esam pārstāv to, kad mēs to rakstīt. 409 00:27:12,000 --> 00:27:20,000 Mēs pārstāvam numuru 2 līdz 1, 0, un skaitlis 10 ir nedaudz atšķirīgs. 410 00:27:20,000 --> 00:27:23,000 >> Kas veida jauki par bināro ir, ka tur tiešām nav nemaz tik daudz 411 00:27:23,000 --> 00:27:25,000 lietas, jums ir nepieciešams mācīties. 412 00:27:25,000 --> 00:27:30,000 Tur 0 + 0 = 0, 0 + 1 = 1, 413 00:27:30,000 --> 00:27:34,000 1 + 1 ir 0, un tad veikt 1, 414 00:27:34,000 --> 00:27:37,000 un tad jūs varat redzēt šeit trešajā kolonnā no tiesībām 415 00:27:37,000 --> 00:27:40,000 mums bija šis 1, 1, 1 un. 416 00:27:40,000 --> 00:27:43,000 Un 1 + 1 + 1 ir 1, 417 00:27:43,000 --> 00:27:45,000 un jūs veikt vēl 1. 418 00:27:45,000 --> 00:27:48,000 Kad jūs darāt bināro saskaitīšanu, diezgan vienkārši. 419 00:27:48,000 --> 00:27:51,000 Es gribētu darīt pāris vairāk šos veselība pārbaudītu sevi 420 00:27:51,000 --> 00:27:54,000 Pirms jūs iet, jo tas ir 421 00:27:54,000 --> 00:28:00,000 iespējams, kaut kas, mēs redzēsim uz viktorīnas. 422 00:28:00,000 --> 00:28:03,000 Tagad pieņemsim darīt nākamo, kā arī. 423 00:28:03,000 --> 00:28:06,000 Darīsim problēmu 17. 424 00:28:06,000 --> 00:28:12,000 Mēs ejam, lai pārvērstu šo bināro numuru decimālu. 425 00:28:12,000 --> 00:28:28,000 Man 10100111001. 426 00:28:28,000 --> 00:28:33,000 Atceros binārā video ka es darīju 427 00:28:33,000 --> 00:28:36,000 Gāju cauri pāris piemērus, un es parādīja, kā 428 00:28:36,000 --> 00:28:41,000 viss darbojas, ja jūs darāt to decimālā. 429 00:28:41,000 --> 00:28:45,000 Kad jūs strādājat aiz pārstāvība Es domāju, ka mēs esam 430 00:28:45,000 --> 00:28:48,000 šajā brīdī mūsu dzīvē tik brīvi to, ka 431 00:28:48,000 --> 00:28:53,000 tas ir diezgan viegli spīdums pār mehānika kā tā faktiski darbojas. 432 00:28:53,000 --> 00:28:59,000 >> Bet darīt ātri Atgādinājums, ja man ir numurs 137 433 00:28:59,000 --> 00:29:06,000 tas tiešām nozīmē, un atkal, tas ir aiz pārstāvība- 434 00:29:06,000 --> 00:29:19,000 numuru 137 decimālais nozīmē, ka man ir 1 x 100 + 3 x 10 + 7 x 1. 435 00:29:19,000 --> 00:29:22,000 Tas ir viss uzturas uz ekrāna. 436 00:29:22,000 --> 00:29:29,000 Un tad, ja paskatās uz šiem skaitļiem tieši šeit, 437 00:29:29,000 --> 00:29:34,000 100, 10 un 1, jūs redzēsiet, ka viņi faktiski visas pilnvaras 10. 438 00:29:34,000 --> 00:29:43,000 Man ir 10 m², 10 ¹, 10 un uz nulli. 439 00:29:43,000 --> 00:29:48,000 Mums ir līdzīga veida lieta binārā, 440 00:29:48,000 --> 00:29:55,000 izņemot mūsu bāze, kā mēs to saucam, ir 2 nevis 10. 441 00:29:55,000 --> 00:29:58,000 Šie 10s, ka es pierakstīju šeit apakšā, 442 00:29:58,000 --> 00:30:02,000 šo 10 ², 10 ¹, 10 līdz nulles, 10 ir mūsu bāze, 443 00:30:02,000 --> 00:30:08,000 un eksponents, 0, 1, 2 vai, 444 00:30:08,000 --> 00:30:14,000 ir netieši nostāju ciparu skaits, ko mēs rakstīt. 445 00:30:14,000 --> 00:30:21,000 1, ja mēs skatāmies uz to, šis 1 ir gada 2 stāvoklī. 446 00:30:21,000 --> 00:30:27,000 3 ir gada 1 stāvoklī, un 7 ir no 0. stāvoklī. 447 00:30:27,000 --> 00:30:35,000 Tas ir, kā mēs dažādas exponents zemāk par mūsu bāzēm. 448 00:30:35,000 --> 00:30:40,000 >> Pēc visu šo we'll-tiešām, jūs zināt, ko? 449 00:30:40,000 --> 00:30:43,000 Mēs darīsim-kur bija mana atsaukt poga iet? 450 00:30:43,000 --> 00:30:45,000 Tur tas notiek. 451 00:30:45,000 --> 00:30:47,000 Es mīlu šo atsaukt lieta. 452 00:30:47,000 --> 00:30:51,000 Pēc tam es domāju par mani vismaz 453 00:30:51,000 --> 00:30:54,000 Vieglākais veids, lai sāktu pārveidot bināro numuru 454 00:30:54,000 --> 00:30:57,000 vai heksadecimālais skaits, kur bāze ir 16 455 00:30:57,000 --> 00:31:02,000 un nevis 10 vai 2 ir iet uz priekšu un rakstīt 456 00:31:02,000 --> 00:31:09,000 bāzes un eksponentiem par visu, kas manā bināro numuru augšā numuriem. 457 00:31:09,000 --> 00:31:14,000 Ja mēs sākam no kreisās puses uz labo atkal, 458 00:31:14,000 --> 00:31:17,000 kas ir veida counterintuitive, 459 00:31:17,000 --> 00:31:23,000 Es mainīt atpakaļ uz melna šeit, mums ir 2 līdz 0. stāvoklī, 460 00:31:23,000 --> 00:31:27,000 un tad mums ir 2 ¹, 2 ², 461 00:31:27,000 --> 00:31:33,000 un pēc tam 2 līdz 3, 2 līdz 4, 2 līdz 5 x, 6, 462 00:31:33,000 --> 00:31:39,000 7, 8, 9, 10 un. 463 00:31:39,000 --> 00:31:41,000 Šie skaitļi es esmu izrakstīti ir visi eksponentiem. 464 00:31:41,000 --> 00:31:48,000 Es tikai uzrakstīju bāzēm šeit pirmo 3 tikai par telpu. 465 00:31:48,000 --> 00:31:50,000 >> Šajā brīdī es esmu gatavojas iet uz priekšu, un es esmu patiešām gatavojas dzēst 466 00:31:50,000 --> 00:31:53,000 sīkumi, ko mēs darījām aiz, ja tas ir labi. 467 00:31:53,000 --> 00:31:57,000 Jūs visi esat ieguvuši, ka. 468 00:31:57,000 --> 00:32:05,000 Tiem no jums skatīties internetā es esmu pārliecināts, ka būs iespēja attīt man, ja vēlaties. 469 00:32:05,000 --> 00:32:07,000 Pārejot atpakaļ uz pildspalvu. 470 00:32:07,000 --> 00:32:12,000 Tagad, ko mēs varam darīt,-ja jūs puiši nav pilnīgi līdz ātruma par savu pilnvaru 2, 471 00:32:12,000 --> 00:32:15,000 kas ir pilnīgi atdzist. 472 00:32:15,000 --> 00:32:18,000 Tas notiek. Es saprotu. 473 00:32:18,000 --> 00:32:23,000 Man reiz bija darba intervija, kur man pateica man būtu jāzina visas pilnvaras 2 474 00:32:23,000 --> 00:32:26,000 augšu pa 2 no 30.. 475 00:32:26,000 --> 00:32:29,000 Tas nebija darbs es saņēmu. 476 00:32:29,000 --> 00:32:32,000 Anyway, jūs guys var iet uz priekšu un darīt to math šeit, 477 00:32:32,000 --> 00:32:35,000 bet ar binārā tas nav īsti jēgas, 478 00:32:35,000 --> 00:32:38,000 un arī tā jēga ar decimālā vai heksadecimālo nu, 479 00:32:38,000 --> 00:32:43,000 rēķināt, kur jums ir nullēm. 480 00:32:43,000 --> 00:32:49,000 Jūs varat redzēt, man ir 0 šeit, 0 šeit, 0 šeit, 0 šeit, 0 šeit, 0 šeit. 481 00:32:49,000 --> 00:32:52,000 Kāpēc tā varētu nav jēgas darīt faktisko math 482 00:32:52,000 --> 00:32:56,000 lai aprēķinātu atbilstošu jaudu 2 par šo pozīciju? 483 00:32:56,000 --> 00:32:59,000 Tieši tāpat kā Šarlote teica, ka būs 0. 484 00:32:59,000 --> 00:33:05,000 Varētu arī ietaupīt sev laiku, ja aprēķināšanas pilnvaras 2 nav jūsu stiprā puse. 485 00:33:05,000 --> 00:33:10,000 Šajā gadījumā mēs tikai nepieciešams aprēķināt to par 2 līdz 0, kas ir-? 486 00:33:10,000 --> 00:33:12,000 [Studentu] 1. 487 00:33:12,000 --> 00:33:14,000 [Nate H.] 1, 2 līdz 3, kas ir-? 488 00:33:14,000 --> 00:33:16,000 [Studentu] 8 >> [Neits H.]. 8. 489 00:33:16,000 --> 00:33:18,000 2 4? 490 00:33:18,000 --> 00:33:21,000 [Studentu] 2. Man žēl, 1. 491 00:33:21,000 --> 00:33:26,000 [Nate H.] 2 līdz 4 ir 16, tieši tā. 492 00:33:26,000 --> 00:33:28,000 2-5 ar, Kevins >> 32.? 493 00:33:28,000 --> 00:33:32,000 [Nate H.] 32, 2 līdz 8? 494 00:33:32,000 --> 00:33:38,000 [Studentu] 32 x 8, 256. 495 00:33:38,000 --> 00:33:41,000 [Nate H.] Perfect. 496 00:33:41,000 --> 00:33:43,000 Un 2 10 valstis? 497 00:33:43,000 --> 00:33:45,000 [Studentu] 1024. 498 00:33:45,000 --> 00:33:49,000 [Nate H.] Jā, 1024. 499 00:33:49,000 --> 00:33:57,000 >> Kad mēs esam ieguvuši šos skaitļus mēs varam Rezumējot tos visus uz augšu. 500 00:33:57,000 --> 00:34:01,000 Un tas ir, ja tas ir patiešām svarīgi darīt pāris lietas. 501 00:34:01,000 --> 00:34:07,000 Viens ir iet lēni un pārbaudīt savu darbu. 502 00:34:07,000 --> 00:34:10,000 Jūs varat pateikt, ka tur ir 1 pie beigām šo numuru, 503 00:34:10,000 --> 00:34:15,000 tāpēc es noteikti vajadzētu saņemt nepāra numuru, kā mans rezultāts, 504 00:34:15,000 --> 00:34:18,000 jo visi citi tiem ir būs vēl skaitļi 505 00:34:18,000 --> 00:34:21,000 ņemot vērā, ka tas ir bināro numuru. 506 00:34:21,000 --> 00:34:24,000 Otra lieta, kas jādara, ir, ja jums šo jautājumu uz testa 507 00:34:24,000 --> 00:34:27,000 un jūs esat rakstiski to ārā tik tālu 508 00:34:27,000 --> 00:34:30,000 un jūs pietrūkt laika 509 00:34:30,000 --> 00:34:33,000 apskatīt punktu skaitu, ka šī problēma ir vērts. 510 00:34:33,000 --> 00:34:40,000 Šī problēma, kā jūs varat redzēt, ja es uzsist atpakaļ uz manu klēpjdators tiešām ātri- 511 00:34:40,000 --> 00:34:44,000 šī problēma ir vērts 2 punkti, tāpēc tas nav sava veida papildus 512 00:34:44,000 --> 00:34:47,000 Jums vajadzētu iet cauri, ja jūs tiešām spiež laiks. 513 00:34:47,000 --> 00:34:52,000 Bet mēs pāriet atpakaļ uz iPad, un mēs iet caur to tiešām ātri. 514 00:34:52,000 --> 00:34:54,000 >> Man patīk darīt to nelielo skaitu 1. 515 00:34:54,000 --> 00:34:56,000 jo es uzskatu, ka vieglāk. 516 00:34:56,000 --> 00:35:00,000 Man patīk 32 un 8, jo tie iet kopā diezgan viegli, un mēs 50. 517 00:35:00,000 --> 00:35:03,000 16 un 1 izpaužas 17. 518 00:35:03,000 --> 00:35:05,000 Tur mēs 57, 519 00:35:05,000 --> 00:35:14,000 un tad mēs varam darīt pārējo šo, lai mēs varam darīt 57, 156. 520 00:35:14,000 --> 00:35:16,000 Come on. 521 00:35:16,000 --> 00:35:19,000 Vīrietis, labi, paskatīsimies. 522 00:35:19,000 --> 00:35:27,000 Mums bija 57, 256, 1024 un. 523 00:35:27,000 --> 00:35:31,000 Šajā brīdī, es labprātāk tikai iet cauri. 524 00:35:31,000 --> 00:35:35,000 Man nav ne jausmas. Man ir jādomā, lai izlasītu up par šo. 525 00:35:35,000 --> 00:35:40,000 7, 6, 4, un jūs saņemsiet 17. 526 00:35:40,000 --> 00:35:42,000 1, 5, 5, 2, 13. 527 00:35:42,000 --> 00:35:45,000 Tad mēs iegūt 3, un tad mēs iegūt 1. 528 00:35:45,000 --> 00:35:52,000 1337. 529 00:35:52,000 --> 00:35:55,000 Lieldienu ola, kāds? 530 00:35:55,000 --> 00:35:59,000 Ikviens atzīst šis numurs? 531 00:35:59,000 --> 00:36:02,000 Kriss atzīst numuru. Ko tas nozīmē, Chris? 532 00:36:02,000 --> 00:36:04,000 [Kriss] Leet. 533 00:36:04,000 --> 00:36:11,000 Leet, tādēļ, ja paskatās to, tas izskatās Leet. 534 00:36:11,000 --> 00:36:15,000 Hacker sīkumi. Uzmanies, ka veida sīkumi par vidusposma vai viktorīna, drīzāk. 535 00:36:15,000 --> 00:36:19,000 Ja redzat, ka veida stuff, un jūs domājām "Huh," 536 00:36:19,000 --> 00:36:22,000 kas tiešām kaut ko nozīmē. 537 00:36:22,000 --> 00:36:24,000 Es nezinu. Deivids patīk liekot to iekšā 538 00:36:24,000 --> 00:36:26,000 Tas ir labs veids, lai veselība pārbaudītu to. 539 00:36:26,000 --> 00:36:30,000 Tāpat labi, es varētu redzēt, kas notiek. 540 00:36:30,000 --> 00:36:34,000 >> Tas ir Nedēļa 0/Week 1 sīkumi. 541 00:36:34,000 --> 00:36:39,000 Ja mēs pāriet atpakaļ uz mūsu klēpjdatoru tagad, 542 00:36:39,000 --> 00:36:46,000 zoom out, un citas lietas pāris. 543 00:36:46,000 --> 00:36:50,000 Tur ASCII, ko mēs esam darījuši daudz problēmu kopas. 544 00:36:50,000 --> 00:36:55,000 Šis kapitāla A. jēdziens Kas ir tas, ka tiešām? 545 00:36:55,000 --> 00:36:57,000 Zinot tā decimālais skaitlis. 546 00:36:57,000 --> 00:37:00,000 65 ir, ko tas plānots ar ASCII tabulu, 547 00:37:00,000 --> 00:37:03,000 un tas ir tāpēc, kā dators raksta to, 548 00:37:03,000 --> 00:37:06,000 un tas, kā mēs esam kļūst prom ar faktiski rakstot 549 00:37:06,000 --> 00:37:09,000 raksturu kapitāla un raksturs mazajiem 550 00:37:09,000 --> 00:37:14,000 Dažiem no šiem risinājumiem un problēmu komplekti, ka jūs esat dara. 551 00:37:14,000 --> 00:37:16,000 Pāris citām lietām. 552 00:37:16,000 --> 00:37:25,000 Mēs esam ieguvuši paziņojumus, boolean izteiksmes, nosacījumus, cilpas, mainīgos un diegus. 553 00:37:25,000 --> 00:37:29,000 >> Tie, visi, šķiet, jēgas par lielāko daļu? 554 00:37:29,000 --> 00:37:35,000 Daži no šī terminoloģija ir nedaudz bailīgs pie reizes. 555 00:37:35,000 --> 00:37:46,000 Man patīk domāt par paziņojumu kā par lielāko daļu kaut kas beidzas ar semikolu. 556 00:37:46,000 --> 00:37:51,000 Tādi izteikumi kā x = 7, kas nosaka mainīgo, 557 00:37:51,000 --> 00:37:54,000 domājams sauc x = 7. 558 00:37:54,000 --> 00:38:01,000 Jādomā x ir arī veids, kas var uzglabāt numuru 7, 559 00:38:01,000 --> 00:38:05,000 tāpēc tas int vai, iespējams peldēt vai īss vai palija, 560 00:38:05,000 --> 00:38:07,000 kaut kā tā. 561 00:38:07,000 --> 00:38:12,000 Būla izteiksme ir, izmantojot šos dubultā vienāds 562 00:38:12,000 --> 00:38:17,000 un sprādziena vienāds vai nav vienāds, mazāks nekā, lielāks, 563 00:38:17,000 --> 00:38:22,000 mazāks vai vienāds ar visiem, ka veida stuff. 564 00:38:22,000 --> 00:38:28,000 Nosacījumiem, tad ir, ja cits paziņojumi. 565 00:38:28,000 --> 00:38:32,000 Es atceros, ka jums nevar būt cits bez atbilstošo ja. 566 00:38:32,000 --> 00:38:37,000 Tāpat jūs nevarat būt cits, ja bez atbilstošo ja. 567 00:38:37,000 --> 00:38:40,000 Cilpas, atceramies 3 veidu cilpu mēs esam kalšanai uz jums 568 00:38:40,000 --> 00:38:43,000 par pēdējo pāris nodaļās un problēmu kopas. 569 00:38:43,000 --> 00:38:46,000 Lietojot šo izstrādājumu, bet kad jūs saņemat lietotāja ievadi, 570 00:38:46,000 --> 00:38:51,000 Izmantojot bet cilpas līdz konkrētam nosacījumam ir taisnība, 571 00:38:51,000 --> 00:38:56,000 un tad, izmantojot tos uz cilpas, ja jums ir nepieciešams, lai 572 00:38:56,000 --> 00:39:01,000 zināt, kura atkārtojuma no cilpas jūs šobrīd ir, kā es domāju par to. 573 00:39:01,000 --> 00:39:07,000 Vai, ja jūs darāt katru rakstzīmi virknē es gribu kaut ko darīt, 574 00:39:07,000 --> 00:39:15,000 katram elementam masīvs es gribu kaut ko darīt, lai šo elementu. 575 00:39:15,000 --> 00:39:18,000 >> Pavedieni un notikumi. 576 00:39:18,000 --> 00:39:21,000 Tie mums nav ietvertas tik skaidri C, 577 00:39:21,000 --> 00:39:23,000 bet jāatceras tas no nulles. 578 00:39:23,000 --> 00:39:26,000 Tas ir jēdziens, kam ir dažādas skriptus. 579 00:39:26,000 --> 00:39:32,000 Tas ir arī šis jēdziens apraides notikumu. 580 00:39:32,000 --> 00:39:37,000 Daži cilvēki neizmantoja raidīt savos projektos sākotnēji, 581 00:39:37,000 --> 00:39:40,000 kas ir pilnīgi atdzist, 582 00:39:40,000 --> 00:39:46,000 bet tie ir 2 dažādas apstrādes metodes šo lielāku jautājumu veidi sauc laiksakritība, 583 00:39:46,000 --> 00:39:49,000 kas ir, kā jūs saņemsiet programmas izpildīt 584 00:39:49,000 --> 00:39:54,000 vai šķietami izpildīt tajā pašā laikā? 585 00:39:54,000 --> 00:39:59,000 Dažādi uzdevumi darbojas, kamēr citi uzdevumi ir arī darbojas. 586 00:39:59,000 --> 00:40:01,000 Tas ir kā jūsu operētājsistēma, šķiet, darbojas. 587 00:40:01,000 --> 00:40:04,000 Tas ir iemesls, kāpēc kaut gan, piemēram, 588 00:40:04,000 --> 00:40:10,000 Man mans pārlūks darbojas, es varētu arī ieslēgt Spotify un atskaņotu dziesmu. 589 00:40:10,000 --> 00:40:14,000 Tas ir vairāk par konceptuāla lieta, lai saprastu. 590 00:40:14,000 --> 00:40:17,000 Es to apskatīt diegiem īsiem 591 00:40:17,000 --> 00:40:21,000 ja jūs vēlaties uzzināt vairāk par to. 592 00:40:21,000 --> 00:40:26,000 >> Let 's redzēt, es uzskatu, ka varētu būt 593 00:40:26,000 --> 00:40:31,000 problēma par šo vienā no tiem. 594 00:40:31,000 --> 00:40:35,000 Atkal, es domāju diegi un notikumi nav kaut kas mums segs C 595 00:40:35,000 --> 00:40:41,000 tikai tāpēc, ka tas ir daudz grūtāk nekā jauna. 596 00:40:41,000 --> 00:40:44,000 Jums nav jāuztraucas par to tur, bet noteikti saprast jēdzienus, 597 00:40:44,000 --> 00:40:47,000 saprast, kas notiek. 598 00:40:47,000 --> 00:40:52,000 Pirms mēs virzāmies tālāk, kādi jautājumi par nedēļā 0 materiāls? 599 00:40:52,000 --> 00:40:55,000 Ikviens sajūta diezgan labs? 600 00:40:55,000 --> 00:41:03,000 Izpratne mainīgie un ko mainīgais ir? 601 00:41:03,000 --> 00:41:08,000 >> Pārvietojas on. Nedēļu 1. 602 00:41:08,000 --> 00:41:12,000 Pāris lietas šeit nav īpaši ietvertas 603 00:41:12,000 --> 00:41:21,000 ar viktorīnu pārskatā obligāti un arī ir vairāk konceptuālas lietas, kas domā par. 604 00:41:21,000 --> 00:41:30,000 Pirmais ir šis jēdziens, ko pirmkoda, sastādītāji un objekta kodu ir. 605 00:41:30,000 --> 00:41:32,000 Kāds? Baziliks. 606 00:41:32,000 --> 00:41:37,000 Vai objekta kodu, es domāju pirmkods ir tas, ko jūs laist šķindēt, 607 00:41:37,000 --> 00:41:42,000 un objekta kodu ir tas šķindoņa liek veic, lai jūsu dators var nolasīt programmu. 608 00:41:42,000 --> 00:41:44,000 Tieši tā. 609 00:41:44,000 --> 00:41:47,000 Pirmkods ir C kods, ka jūs faktiski rakstīt uz augšu. 610 00:41:47,000 --> 00:41:50,000 Objekta kodu ir tas, ko jūs saņemsiet no šķindēt. 611 00:41:50,000 --> 00:41:54,000 Tas 0s un 1s šajā binārā formātā. 612 00:41:54,000 --> 00:41:59,000 Tad kas notiek, ir, ja jums ir ķekars objekta failu, 613 00:41:59,000 --> 00:42:04,000 say jūs apkopojot projektu vai programmu, kas izmanto vairākus pirmkods failus, 614 00:42:04,000 --> 00:42:09,000 ko pēc vienošanās dota. c faila paplašinājums. 615 00:42:09,000 --> 00:42:13,000 Tieši tāpēc mums ir caesar.c, vigenère.c. 616 00:42:13,000 --> 00:42:18,000 Ja jūs esat rakstiski Java programmas jums dot viņiem pagarinājumu. Java. 617 00:42:18,000 --> 00:42:24,000 Python programmās ir paplašinājums py bieži.. 618 00:42:24,000 --> 00:42:26,000 >> Kad jums ir vairākas. C failus, jūs apkopošanai. 619 00:42:26,000 --> 00:42:29,000 Šķindēt atklepo visu šo bināro junk. 620 00:42:29,000 --> 00:42:33,000 Tad jo jūs tikai vēlaties 1 programma 621 00:42:33,000 --> 00:42:37,000 Jums ir linker saikne visu šo objektu failus kopā 622 00:42:37,000 --> 00:42:40,000 stāšanās 1 izpildāmo failu. 623 00:42:40,000 --> 00:42:45,000 Tas ir arī tas, kas notiek, ja jūs izmantojat CS50 bibliotēku, piemēram. 624 00:42:45,000 --> 00:42:50,000 CS50 bibliotēka ir gan tā. H header failu 625 00:42:50,000 --> 00:42:53,000 izlasīt, ka # includecs50.h. 626 00:42:53,000 --> 00:42:58,000 Un tad tas ir arī īpašs bināro bibliotēkas fails 627 00:42:58,000 --> 00:43:02,000 kas ir apkopota kas ir 0s un 1s, 628 00:43:02,000 --> 00:43:08,000 un ka-l ​​karogs, tāpēc, ja mēs ejam atpakaļ uz mūsu telpām un mēs izskatās tiešām ātri 629 00:43:08,000 --> 00:43:11,000 Uz ko šeit notiek, kad mēs skatāmies uz mūsu šķindēt komandu, 630 00:43:11,000 --> 00:43:15,000 ko mēs esam ieguvuši, ir tas mūsu avots kods failu tieši šeit. 631 00:43:15,000 --> 00:43:18,000 Tie ir ķekars kompilators karogiem. 632 00:43:18,000 --> 00:43:22,000 Un tad pašās beigās, šie-L karogi saite 633 00:43:22,000 --> 00:43:30,000 faktiskie bināro failus šiem 2 bibliotēkām, CS50 bibliotēku un pēc tam matemātikas bibliotēka. 634 00:43:30,000 --> 00:43:35,000 >> Izpratne katra veida failiem "mērķi 635 00:43:35,000 --> 00:43:38,000 apkopošanā procesā ir kaut kas jūs vēlaties, lai varētu 636 00:43:38,000 --> 00:43:43,000 sniegt vismaz augsta līmeņa pārskatu par. 637 00:43:43,000 --> 00:43:46,000 Kods ir iekšā Mērķa kods nāk ārā. 638 00:43:46,000 --> 00:43:53,000 Objekta kodu failus saistīt kopā, un jūs saņemsiet skaistu, izpildāmo failu. 639 00:43:53,000 --> 00:43:55,000 Atdzist. 640 00:43:55,000 --> 00:43:58,000 Tas ir arī tad, ja jūs varat saņemt kļūdas pie vairākiem punktiem 641 00:43:58,000 --> 00:44:00,000 jo datu apkopošanas procesa. 642 00:44:00,000 --> 00:44:04,000 Tas ir, ja, piemēram, ja jūs lietojat šo saistot karogu, 643 00:44:04,000 --> 00:44:10,000 CS50 karogu, un jūs izlaist to telpās vai, ja jūs strādājat savu kodu, 644 00:44:10,000 --> 00:44:13,000 Tas ir, ja jūs saņemsiet kļūdu saistot posmā, 645 00:44:13,000 --> 00:44:18,000 un Linker teiks: "Hei, tu sauc funkciju GetString 646 00:44:18,000 --> 00:44:20,000 kas ir kas CS50 bibliotēkā. " 647 00:44:20,000 --> 00:44:25,000 "Tu man teica, tas bija CS50 bibliotēkā, un es nevaru atrast kodu par to." 648 00:44:25,000 --> 00:44:28,000 Tas ir, ja jums ir saistīt to, un tas ir atsevišķs 649 00:44:28,000 --> 00:44:33,000 no kompilatora kļūdu, jo kompilators meklē sintaksi un ka stuff veida. 650 00:44:33,000 --> 00:44:38,000 Tas ir labi zināt, kas notiek, kad. 651 00:44:38,000 --> 00:44:42,000 >> Citas lietas, kas jāzina par. 652 00:44:42,000 --> 00:44:49,000 Es teiktu, ka jums noteikti vēlaties veikt apskatīt uz typecasting īsā izdarīt Jordānija 653 00:44:49,000 --> 00:44:55,000 lai saprastu, ko Ints ir saskaņā ar kapuci, 654 00:44:55,000 --> 00:44:58,000 kādi simboli ir saskaņā ar kapuci. 655 00:44:58,000 --> 00:45:02,000 Kad mēs runājam par ASCII un mēs patiešām apskatīt ASCII tabulu, 656 00:45:02,000 --> 00:45:07,000 ko tas dara dod mums ar kapuci izskatu 657 00:45:07,000 --> 00:45:13,000 pie kā dators patiešām pārstāv kapitālu un ciparu 7 658 00:45:13,000 --> 00:45:17,000 un komats, un jautājuma zīme. 659 00:45:17,000 --> 00:45:20,000 Dators ir arī īpašas veidus pārstāv 660 00:45:20,000 --> 00:45:23,000 skaits 7 kā veselums. 661 00:45:23,000 --> 00:45:27,000 Tā ir īpašā veidā pārstāvēt numuru 7 kā peldošo punktu skaitu, 662 00:45:27,000 --> 00:45:29,000 un tie ir ļoti atšķirīgi. 663 00:45:29,000 --> 00:45:32,000 Typecasting ir, kā jūs pateikt dators "Hei, es gribu, lai jūs pārvērst 664 00:45:32,000 --> 00:45:37,000 no vienas pārstāvniecības uz citu pārstāvību. " 665 00:45:37,000 --> 00:45:40,000 Kāpēc nav mēs to apskatīt to. 666 00:45:40,000 --> 00:45:44,000 >> Es arī to apskatīt īsā bibliotēkām un par kompilatoru īss. 667 00:45:44,000 --> 00:45:47,000 Tiem runāt par procesu, apkopošanai, 668 00:45:47,000 --> 00:45:53,000 kāda bibliotēka ir, un iet pār daži no šiem jautājumiem, ka jūs varētu saņemt lūdza. 669 00:45:53,000 --> 00:45:55,000 Jautājumi par Nedēļu 1 materiāls? 670 00:45:55,000 --> 00:46:03,000 Vai ir kādi šeit tēmas, kas šķietami biedējošu vēlaties, lai segtu? 671 00:46:03,000 --> 00:46:07,000 Es cenšos, lai trieciens pa lielāko daļu no šīs iepriekšējās tēmas, lai mēs varētu nokļūt 672 00:46:07,000 --> 00:46:13,000 norādes un darīt mazliet recursion. 673 00:46:13,000 --> 00:46:15,000 Domas? 674 00:46:15,000 --> 00:46:19,000 Jebkas, lai segtu? 675 00:46:19,000 --> 00:46:21,000 Laiks dažiem šokolādes varbūt? 676 00:46:21,000 --> 00:46:23,000 Jūs puiši strādā caur to. 677 00:46:23,000 --> 00:46:26,000 Es esmu gatavojas glabāt dzer uz manu kafiju. 678 00:46:26,000 --> 00:46:31,000 Nedēļa 2. 679 00:46:31,000 --> 00:46:34,000 Labs zvanu, labi zvanu. 680 00:46:34,000 --> 00:46:38,000 Jo nedēļa 2 Mēs runājām mazliet vairāk par funkcijām. 681 00:46:38,000 --> 00:46:43,000 >> Dažos pirmajos problēma komplektiem mēs neesam īsti rakstīt kādas funkcijas vispār 682 00:46:43,000 --> 00:46:45,000 izņemot kura funkcija? 683 00:46:45,000 --> 00:46:47,000 [Studentu] Galvenā >> Mainas., Tieši tā. 684 00:46:47,000 --> 00:46:51,000 Un tāpēc mēs esam redzējuši dažādus tērpus, ka galvenais nodilst. 685 00:46:51,000 --> 00:46:54,000 Tur, kurā tas aizņem nav argumentu, 686 00:46:54,000 --> 00:46:58,000 un mēs tikai teikt tukšumu starp iekavās, 687 00:46:58,000 --> 00:47:01,000 un tad tur ir otrs, kur mēs gribam, lai komandrindas argumentus, 688 00:47:01,000 --> 00:47:08,000 un kā mēs redzējām, ka tur jums ir int argc un stīgu argv masīvs 689 00:47:08,000 --> 00:47:13,000 vai tagad, ka mēs esam faktiski pakļauti stīgu būt char *, ka tā ir 690 00:47:13,000 --> 00:47:20,000 mēs ejam, lai sāktu rakstīt to kā char * argv un tad iekavās. 691 00:47:20,000 --> 00:47:22,000 Problemātiskajās Set 3, jūs puiši redzēja ķekars funkcijas, 692 00:47:22,000 --> 00:47:27,000 un tu īsteno ķekars funkcijas, zīmēt, meklēt, motokross. 693 00:47:27,000 --> 00:47:31,000 Prototipi visi bija rakstīts tur jums. 694 00:47:31,000 --> 00:47:33,000 >> Ko es gribēju runāt par šeit ar funkcijām tiešām ātri 695 00:47:33,000 --> 00:47:38,000 ir, ka ir 3 daļas, lai viņiem, ja jums uzrakstīt funkciju. 696 00:47:38,000 --> 00:47:43,000 Jums ir jānorāda atgriešanās veidu funkcijas. 697 00:47:43,000 --> 00:47:46,000 Jums ir jānorāda nosaukumu funkcijas, un tad jums ir jānorāda 698 00:47:46,000 --> 00:47:51,000 arguments sarakstu vai parametru saraksts. 699 00:47:51,000 --> 00:47:57,000 Piemēram, ja man bija uzrakstīt funkciju Apkopojot ķekars integers 700 00:47:57,000 --> 00:48:03,000 un pēc tam atgriezties pie manis summu, kāds būtu mans atgriešanās tips 701 00:48:03,000 --> 00:48:06,000 ja es gribēju, lai apkopotu integers un pēc tam atgriezties summu? 702 00:48:06,000 --> 00:48:12,000 Tad vārds funkcijas. 703 00:48:12,000 --> 00:48:27,000 Ja es iet uz priekšu un rakstīt zaļā krāsā, šī daļa ir atgriešanās tips. 704 00:48:27,000 --> 00:48:34,000 Šī daļa ir nosaukums. 705 00:48:34,000 --> 00:48:40,000 Un tad iekavās 706 00:48:40,000 --> 00:48:46,000 ir, ja es dotu argumentus, 707 00:48:46,000 --> 00:48:56,000 bieži saīsināti args, dažreiz sauc params parametriem. 708 00:48:56,000 --> 00:49:00,000 Un, ja jums ir viens, jums vienkārši norādīt vienu. 709 00:49:00,000 --> 00:49:06,000 Ja jums ir vairākas jūs atsevišķi katrs ar komatu. 710 00:49:06,000 --> 00:49:13,000 Un par katru argumentu jūs arī tā 2 lietas, kas ir-Kevins? 711 00:49:13,000 --> 00:49:18,000 [Kevins] Jums ir sniegt veidu un tad nosaukumu. 712 00:49:18,000 --> 00:49:21,000 Un tad vārdu, un vārds ir vārds, ka jūs gatavojas izmantot 713 00:49:21,000 --> 00:49:25,000 atsaukties uz šo argumentu ietvaros summa funkciju, 714 00:49:25,000 --> 00:49:27,000 ietvaros funkciju, kas jūs pašlaik rakstāt. 715 00:49:27,000 --> 00:49:32,000 >> Jums nav, piemēram, ja es esmu gatavojas Rezumējot, 716 00:49:32,000 --> 00:49:41,000 saka, integers-we'll masīvs darīt int masīvu, 717 00:49:41,000 --> 00:49:46,000 un es došu sev dažus cirtaini bikšturi tur- 718 00:49:46,000 --> 00:49:51,000 tad, kad es iet masīvu funkciju SUM 719 00:49:51,000 --> 00:49:55,000 Man iet to pirmajā pozīcijā argumentu sarakstā. 720 00:49:55,000 --> 00:49:59,000 Bet masīvs, ka es iet uz nav jābūt vārdu arr. 721 00:49:59,000 --> 00:50:07,000 Arr būs kā es atsaucos uz šo argumentu, kas organismā funkciju. 722 00:50:07,000 --> 00:50:10,000 Otra lieta, ka mums ir jāņem vērā, 723 00:50:10,000 --> 00:50:14,000 un tas ir nedaudz atšķiras no funkcijām, bet es domāju, ka tas ir svarīgs punkts, 724 00:50:14,000 --> 00:50:20,000 ir tas, ka C, kad es esmu rakstot funkciju, kā šis 725 00:50:20,000 --> 00:50:29,000 Kā es varu zināt, cik daudz elementi šajā masīvā? 726 00:50:29,000 --> 00:50:31,000 Tas ir nedaudz par āķīgs jautājums. 727 00:50:31,000 --> 00:50:35,000 Mēs runājām par to mazliet pagājušās nedēļas sadaļā. 728 00:50:35,000 --> 00:50:40,000 Kā es varu zināt, cik elementu iekšpusē masīva C? 729 00:50:40,000 --> 00:50:44,000 Vai ir veids, kā? 730 00:50:44,000 --> 00:50:49,000 >> Izrādās, ka tur nav iespējams zināt. 731 00:50:49,000 --> 00:50:52,000 Jums ir nodot to atsevišķi. 732 00:50:52,000 --> 00:50:55,000 Ir triks, ka jūs varat darīt 733 00:50:55,000 --> 00:51:00,000 ja tu esi tajā pašā funkciju, kurai masīvs pasludināts, 734 00:51:00,000 --> 00:51:04,000 un jūs strādājat ar kaudze masīvs. 735 00:51:04,000 --> 00:51:06,000 Bet tas darbojas tikai tad, ja tu esi to pašu funkciju. 736 00:51:06,000 --> 00:51:09,000 Tiklīdz jūs iet masīvs uz citu funkciju vai ja esat deklarēta masīvs 737 00:51:09,000 --> 00:51:12,000 un jūs nodot šo masīvs uz kaudzes, kad esat izmantojis malloc 738 00:51:12,000 --> 00:51:15,000  un ka stuff veida, tad visas derības tiek off. 739 00:51:15,000 --> 00:51:18,000 Tad jums tiešām ir iet apkārt 740 00:51:18,000 --> 00:51:21,000 īpašs arguments vai citu parametru 741 00:51:21,000 --> 00:51:23,000 stāsta jums, cik liels masīvs ir. 742 00:51:23,000 --> 00:51:28,000 Šajā gadījumā, es gribu izmantot komatu I'm sorry, tas būs pie ekrāna šeit- 743 00:51:28,000 --> 00:51:32,000 un es gribētu iet citā arguments 744 00:51:32,000 --> 00:51:40,000  un to sauc par int len ​​par garumu. 745 00:51:40,000 --> 00:51:44,000 >> Viena lieta, kas varētu nākt klajā uz viktorīnas 746 00:51:44,000 --> 00:51:49,000 tev jautā rakstīt vai izpildīt noteiktu funkciju sauc kaut. 747 00:51:49,000 --> 00:51:54,000 Ja mums nav jums prototips, tāpēc šis viss šeit, 748 00:51:54,000 --> 00:51:58,000 tas viss haoss sauc funkciju deklarāciju vai funkciju prototips, 749 00:51:58,000 --> 00:52:01,000 šis ir viens no pirmajām lietām, kas jūs vēlaties, lai aiznaglot ja tas nav dots 750 00:52:01,000 --> 00:52:03,000 Jums uzreiz uz viktorīnas. 751 00:52:03,000 --> 00:52:06,000 Otra triks es esam iemācījušies, ka 752 00:52:06,000 --> 00:52:11,000 saka mēs jums prototips funkciju, un mēs sakām, "Hei, tev rakstīt to." 753 00:52:11,000 --> 00:52:16,000 Iekšpusē cirtaini bikšturi, kas jums ir uz viktorīnas 754 00:52:16,000 --> 00:52:20,000 ja pamanāt, ka ir atgriešanās tips un jūs ievērosiet, ka atgriešanās tips 755 00:52:20,000 --> 00:52:25,000 ir kaut kas nav tukšums, kas nozīmē, ka funkcija neatgriežas neko, 756 00:52:25,000 --> 00:52:28,000 tad viena lieta, jūs noteikti vēlaties darīt, ir rakstīt 757 00:52:28,000 --> 00:52:33,000 kaut kādas atgriešanās paziņojumu pašās beigās funkcija. 758 00:52:33,000 --> 00:52:40,000 Atgriešanās, un šajā gadījumā mēs ielieciet tukšu, jo mēs vēlamies, lai aizpildītu tukšās. 759 00:52:40,000 --> 00:52:44,000 Bet tas izpaužas jums domāt pareizajā veidā par to, kā man iet, lai pieeja šo problēmu? 760 00:52:44,000 --> 00:52:49,000 Un tas jums atgādina jums nāksies atgriezties vērtību 761 00:52:49,000 --> 00:52:51,000 zvanītājam funkciju. 762 00:52:51,000 --> 00:52:54,000 >> Yeah >> [Studentu]. Vai stils piemēro tad, kad mēs rakstiski kodu uz viktorīnas? 763 00:52:54,000 --> 00:52:58,000 Piemēram, atkāpes un ka stuff veida >> [Studentu]? Jā. 764 00:52:58,000 --> 00:53:00,000 Nē, nav tik daudz. 765 00:53:00,000 --> 00:53:09,000 Es domāju par-daudz tas ir kaut mēs izskaidrot par viktorīnas dienā, 766 00:53:09,000 --> 00:53:15,000 bet parasti neuztraucoties par # ietver un šāda veida stuff, tas ir sava veida ārpuses. 767 00:53:15,000 --> 00:53:17,000 [Studentu] Vai jums ir nepieciešams, lai komentētu jūsu rokraksta kodu? 768 00:53:17,000 --> 00:53:19,000 Vai jums ir nepieciešams, lai komentētu jūsu rokraksta kodu? 769 00:53:19,000 --> 00:53:24,000 Komentējot vienmēr ir labi, ja jūs uztrauc daļēju kredīta 770 00:53:24,000 --> 00:53:29,000 vai jūs vēlaties, lai sazinātos savu nodomu uz greiders. 771 00:53:29,000 --> 00:53:33,000 Bet es atkal būs noskaidrot uz viktorīnas sevi un uz viktorīnu dienu, 772 00:53:33,000 --> 00:53:39,000 bet es neticu, ka jums būs nepieciešams, lai rakstītu komentārus, nē. 773 00:53:39,000 --> 00:53:42,000 Parasti nav, bet tas noteikti veida lieta, kur 774 00:53:42,000 --> 00:53:45,000 Jūs varat sazināties savu nodomu, piemēram, "Hei, tas ir, ja es esmu, kas ar to." 775 00:53:45,000 --> 00:53:49,000 Un dažreiz, ka var palīdzēt ar daļēju kredīta. 776 00:53:49,000 --> 00:53:51,000 Atdzist. 777 00:53:51,000 --> 00:53:53,000 >> Baziliks. 778 00:53:53,000 --> 00:53:56,000 [Baziliks] Kāda ir atšķirība starp paziņojot, teiksim, Int lang atšķirība 779 00:53:56,000 --> 00:54:03,000 no argumentiem vai parametriem, salīdzinot deklarējot maināma funkciju? 780 00:54:03,000 --> 00:54:05,000 Wow, kafija nogāja balsene. 781 00:54:05,000 --> 00:54:07,000 [Baziliks] Tāpat kuras lietas mēs vēlamies īstenot argumentiem. 782 00:54:07,000 --> 00:54:09,000 Jā, tas ir liels jautājums. 783 00:54:09,000 --> 00:54:11,000 Kā jūs izvēlaties, ko lietas jūs vēlaties, lai no argumentiem 784 00:54:11,000 --> 00:54:17,000 pret ko lietas, jums vajadzētu darīt iekšpusē funkciju? 785 00:54:17,000 --> 00:54:24,000 Šajā gadījumā mēs iekļauta gan no šiem, kā argumentu 786 00:54:24,000 --> 00:54:29,000 tāpēc, ka viņi kaut ka tas, kurš gatavojas izmantot summēšanas funkciju 787 00:54:29,000 --> 00:54:32,000 nepieciešams precizēt šīs lietas. 788 00:54:32,000 --> 00:54:35,000 >> Summa funkcija, tāpat kā mēs runājām, ir nekādi nevar zināt 789 00:54:35,000 --> 00:54:40,000 cik liels masīvs ir tas izpaužas no tā zvanītājam vai kurš izmanto summēšanas funkciju. 790 00:54:40,000 --> 00:54:44,000 Tā ir nekādi nevar zināt, cik liels masīvs. 791 00:54:44,000 --> 00:54:48,000 Iemesls mums iet šajā garumā šeit kā argumentu 792 00:54:48,000 --> 00:54:51,000 ir tāpēc, ka tas ir kaut kas mēs būtībā stāsta zvanītāju par funkciju, 793 00:54:51,000 --> 00:54:55,000 kurš gatavojas izmantot summēšanas funkciju, "Hei, ne tikai jums ir, lai dotu mums masīvs 794 00:54:55,000 --> 00:54:59,000 gada Ints, jums ir arī, lai pastāstītu mums, cik liels masīvs, ka jūs esat dota mums ir. " 795 00:54:59,000 --> 00:55:03,000 [Baziliks] Tie būs gan komandrindas argumentus? 796 00:55:03,000 --> 00:55:06,000 Nē, tie ir faktiskie argumenti, ka jūs varētu iet uz funkciju. 797 00:55:06,000 --> 00:55:10,000 >> Ļaujiet man darīt jaunu lapu šeit. 798 00:55:10,000 --> 00:55:13,000 [Baziliks] Tāpat nosaukumu, kas iet- 799 00:55:13,000 --> 00:55:24,000 [Nate H.] Ja man ir int galvenais (spēkā neesošs), 800 00:55:24,000 --> 00:55:27,000 un es esmu gatavojas nodot manā atpakaļ 0 leju šeit apakšā, 801 00:55:27,000 --> 00:55:31,000 un teikt, es gribu, lai izsauktu summēšanas funkciju. 802 00:55:31,000 --> 00:55:42,000 Es gribu teikt, int x = summa (); 803 00:55:42,000 --> 00:55:46,000 Lai izmantotu summēšanas funkciju man iet gan masīvā, ka es gribu, lai apkopotu 804 00:55:46,000 --> 00:55:51,000 un masīva garumu, tāpēc šī ir vieta, kur 805 00:55:51,000 --> 00:55:54,000 pieņemot Man bija masīvs Ints, 806 00:55:54,000 --> 00:56:12,000 say Man bija int numbaz [] = 1, 2, 3, 807 00:56:12,000 --> 00:56:16,000 veida izmantošanu, kas ielauzies līdz sintaksi labi tur, 808 00:56:16,000 --> 00:56:21,000 tad ko es varētu darīt, ir summas es gribētu iet uz 809 00:56:21,000 --> 00:56:27,000 gan numbaz un numuru 3 810 00:56:27,000 --> 00:56:30,000 pateikt summēšanas funkciju "Labi, šeit ir masīvs es gribu, lai jūs summa." 811 00:56:30,000 --> 00:56:34,000 "Lūk tā lielumu." 812 00:56:34,000 --> 00:56:39,000 Vai ir jēga? Vai tas atbildētu uz jūsu jautājumu? 813 00:56:39,000 --> 00:56:42,000 >> Daudzos veidos tas paralēli ko mēs darām ar galveno 814 00:56:42,000 --> 00:56:44,000 kad mums ir komandrindas argumentus. 815 00:56:44,000 --> 00:56:47,000 Piemēram Cēzara šifra programma, piemēram, tās, kas vajadzīgas 816 00:56:47,000 --> 00:56:53,000 komandrindas argumenti nevarētu darīt neko. 817 00:56:53,000 --> 00:56:57,000 Tas nevar zināt, kā šifrētu ja Jums nav pateikt to, ko taustiņu, lai izmantotu 818 00:56:57,000 --> 00:57:03,000 vai, ja jums nav pateikt to, ko stīgu vēlaties šifrēt. 819 00:57:03,000 --> 00:57:08,000 Pamudinot ievadi, tas ir, ja mēs esam ieguvuši 2 dažādus mehānismus 820 00:57:08,000 --> 00:57:14,000 lai veiktu ieguldījumu no lietotāja, lai veiktu informāciju no lietotāja. 821 00:57:14,000 --> 00:57:19,000 Par Problēma Set 1 mēs redzējām šo GetInt, GetString, GetFloat ceļu 822 00:57:19,000 --> 00:57:26,000 gada pamudinot ievadi, un ka sauc izmantojot standarta ievades plūsma. 823 00:57:26,000 --> 00:57:28,000 Tas ir nedaudz atšķirīgs. 824 00:57:28,000 --> 00:57:31,000 Tas ir kaut kas jūs varat darīt vienā reizē, nevis 825 00:57:31,000 --> 00:57:35,000 kad jūs izmantot programmu, kad jūs sākat programma darbojas. 826 00:57:35,000 --> 00:57:41,000 Komandrindas argumenti visi tiek norādīts, kad jūs sākat programma darbojas. 827 00:57:41,000 --> 00:57:47,000 Mēs esam sajaucot divus no tiem. 828 00:57:47,000 --> 00:57:52,000 Kad mēs izmantojam argumentus, lai funkciju, tas ir daudz, piemēram, komandrindas argumentu galvenais. 829 00:57:52,000 --> 00:57:56,000 Tas ir, kad jūs atsaucaties uz funkciju, jums pateikt to 830 00:57:56,000 --> 00:58:05,000 ko tas īsti nepieciešams, lai veiktu savus uzdevumus. 831 00:58:05,000 --> 00:58:08,000 Vēl viena laba lieta, lai apskatīt un es jums apskatīt to savā brīvajā laikā, 832 00:58:08,000 --> 00:58:11,000 un tas bija klāts ar viktorīnā-bija šis jēdziens jomas 833 00:58:11,000 --> 00:58:15,000 un vietējās mainīgie salīdzinot globālo mainīgo. 834 00:58:15,000 --> 00:58:18,000 Vai pievērst uzmanību to. 835 00:58:18,000 --> 00:58:23,000 >> Tagad, ka mēs esam nonākuši pie šīs citas lietas, 836 00:58:23,000 --> 00:58:27,000 3 nedēļu mēs sākām runāt par meklēšanu un kārtošanu. 837 00:58:27,000 --> 00:58:32,000 Meklēšanu un kārtošanu, vismaz CS50, 838 00:58:32,000 --> 00:58:39,000 ir ļoti daudz ievads daži no vairāk teorētisko daļu datorzinātnes. 839 00:58:39,000 --> 00:58:42,000 Problēma ir meklējumu, problēma šķirošanas 840 00:58:42,000 --> 00:58:46,000 ir lieli, kanoniskā problēmas. 841 00:58:46,000 --> 00:58:52,000 Kā jūs atrast konkrētu skaitli masīva miljardu integers? 842 00:58:52,000 --> 00:58:55,000 Kā jūs atrast konkrētu vārdu iekšā tālruņu grāmatas 843 00:58:55,000 --> 00:58:59,000 kas ir saglabāti uz jūsu klēpjdators? 844 00:58:59,000 --> 00:59:04,000 Un tā mēs ieviest šo jēdzienu asimptotiskās jaunākas reizes 845 00:59:04,000 --> 00:59:11,000 lai tiešām kvantitatīvi cik ilgi, cik grūti tie problēma ir, 846 00:59:11,000 --> 00:59:14,000 cik ilgi tās veic, lai atrisinātu. 847 00:59:14,000 --> 00:59:20,000 Jo, es uzskatu, 2011 s viktorīnā tur problēma, ka es domāju nopelni 848 00:59:20,000 --> 00:59:27,000 aptver ļoti ātri, kas tas ir viens, problēma 12. 849 00:59:27,000 --> 00:59:32,000 O nē, tas ir Omega. 850 00:59:32,000 --> 00:59:41,000 >> Šeit mēs runājam par ātrāko iespējamo darbības laiku 851 00:59:41,000 --> 00:59:46,000 par īpašu algoritmu, un tad vislēnākais iespējams palaist laiks. 852 00:59:46,000 --> 00:59:52,000 Tas Omega un O ir tiešām tikai īsceļus. 853 00:59:52,000 --> 00:59:55,000 Viņi notational īsceļus, lai sakot 854 00:59:55,000 --> 00:59:59,000 cik ātri iespējami labākajā gadījumā būs mūsu algoritms palaist, 855 00:59:59,000 --> 01:00:06,000 un cik lēni sliktākā iespējamā lietas būs mūsu algoritms palaist? 856 01:00:06,000 --> 01:00:10,000 Darīsim pāris no tiem, un tie ietvēra arī 857 01:00:10,000 --> 01:00:13,000 kas īsā asimptotiskās notācijas, kuru es ļoti ieteiktu. 858 01:00:13,000 --> 01:00:17,000 Džeksons bija patiešām labu darbu. 859 01:00:17,000 --> 01:00:23,000 Ar bināro meklēšanu, mēs runājam par bināro meklēšanu kā ir algoritms, 860 01:00:23,000 --> 01:00:28,000 un mēs parasti runājam par to saistībā ar tās lielo O. 861 01:00:28,000 --> 01:00:30,000 Kas ir liels O? 862 01:00:30,000 --> 01:00:34,000 Kas ir vislēnākais iespējams palaist laiks binārā meklēt? 863 01:00:34,000 --> 01:00:36,000 [Studentu] N ²? 864 01:00:36,000 --> 01:00:41,000 Tuvu, es domāju līdzīgi kā. 865 01:00:41,000 --> 01:00:43,000 Tas daudz ātrāk nekā. 866 01:00:43,000 --> 01:00:45,000 [Studentu] binārā >> Jā?, Binārā meklēšana. 867 01:00:45,000 --> 01:00:47,000 [Studentu] Tas log n. 868 01:00:47,000 --> 01:00:49,000 Log n, lai ko tas log n nozīmē? 869 01:00:49,000 --> 01:00:51,000 Tā pusītes to katru atkārtojuma. 870 01:00:51,000 --> 01:00:56,000 Tieši tā, tāpēc, vislēnāko iespējamo lietas, 871 01:00:56,000 --> 01:01:00,000 teikt, ja jums ir sakārtoti masīvs 872 01:01:00,000 --> 01:01:08,000 gada miljons integers un skaitli jūs meklējat 873 01:01:08,000 --> 01:01:14,000 ir vai nu ļoti pirmais elements masīva vai ļoti pēdējais elements masīvā. 874 01:01:14,000 --> 01:01:18,000 Atcerieties, ka bināro meklēšanas algoritms darbojas, skatoties vidējā elementa, 875 01:01:18,000 --> 01:01:21,000 redzēt, ja tas ir spēles, ka jūs meklējat. 876 01:01:21,000 --> 01:01:23,000 Ja tā ir, tad liels, jums atrast to. 877 01:01:23,000 --> 01:01:27,000 >> Iespējami labākajā gadījumā, cik ātri tas bināro meklēšanas palaist? 878 01:01:27,000 --> 01:01:29,000 [Studentiem] 1. 879 01:01:29,000 --> 01:01:32,000 1, tas ir nemainīgs laiks, Big O gada 1. Yeah. 880 01:01:32,000 --> 01:01:36,000 [Studentu] Man ir jautājums. Kad jūs sakāt log n, tu domā attiecībā uz 2 bāzes, labi? 881 01:01:36,000 --> 01:01:40,000 Jā, tā ka ir cita lieta. 882 01:01:40,000 --> 01:01:44,000 Mēs sakām log n, un es domāju, kad es biju vidusskolā 883 01:01:44,000 --> 01:01:48,000 Es vienmēr pieņemts, ka žurnāls bija bāze 10. 884 01:01:48,000 --> 01:01:57,000 Jā, tāpēc, jā, piesakieties bāze 2 parasti ir tas, ko mēs izmantojam. 885 01:01:57,000 --> 01:02:02,000 Atkal dodas atpakaļ uz bināro meklēšanu, ja jūs meklējat vai nu 886 01:02:02,000 --> 01:02:05,000 pie pašām beigām elements vai pašā sākumā elements, 887 01:02:05,000 --> 01:02:08,000 jo jūs sākat vidū, un tad jums atbrīvoties 888 01:02:08,000 --> 01:02:13,000 kurš puse nav jāatbilst kritērijiem, kas jūs meklējat, 889 01:02:13,000 --> 01:02:15,000 un doties uz nākamo pusē un nākamā pusgada un nākamā pusgada. 890 01:02:15,000 --> 01:02:19,000 Ja es esmu meklē lielāko elementu miljonu skaitlim masīvs 891 01:02:19,000 --> 01:02:25,000 Es esmu gatavojas uz pusi to visvairāk žurnālu 1 miljons reižu 892 01:02:25,000 --> 01:02:28,000 pirms es beidzot izmēģināt un redzēt, ka elements es meklēju 893 01:02:28,000 --> 01:02:33,000 ir lielākais vai augstākajā indeksu masīva, 894 01:02:33,000 --> 01:02:38,000 un ka būs žurnālu no n, piesakieties 1 miljons reižu. 895 01:02:38,000 --> 01:02:40,000 >> Burbulis šķirot. 896 01:02:40,000 --> 01:02:43,000 Vai jūs guys atcerēties burbulis kārtošanas algoritmu? 897 01:02:43,000 --> 01:02:47,000 Kevin, jūs varat sniegt man ātri Atgādinājums par to, kas notika burbuļa kārtošanas algoritmu? 898 01:02:47,000 --> 01:02:50,000 [Kevins] Būtībā tas iet cauri visam sarakstā. 899 01:02:50,000 --> 01:02:52,000 Tas izskatās pēc pirmajiem diviem. 900 01:02:52,000 --> 01:02:55,000 Ja pirmais ir lielāks par otru tas mijmaiņas darījumi viņiem. 901 01:02:55,000 --> 01:02:58,000 Tad tā salīdzina otro un trešo, pašu, mijmaiņas darījumiem, 902 01:02:58,000 --> 01:03:00,000 trešais un ceturtais, visu ceļu uz leju. 903 01:03:00,000 --> 01:03:03,000 Lielāks skaits būs sekot līdz gada beigām. 904 01:03:03,000 --> 01:03:07,000 Un pēc tomēr daudziem cilpas esat pabeidzis. 905 01:03:07,000 --> 01:03:11,000 Tieši tā, lai to, ko Kevins teica, ka mēs skatīties lielākas numurus 906 01:03:11,000 --> 01:03:15,000 burbulis līdz beigām masīva. 907 01:03:15,000 --> 01:03:19,000 Piemēram, jūs prātā ejot mums, izmantojot šo piemēru, ja tas ir mūsu masīvs? 908 01:03:19,000 --> 01:03:21,000 [Kevins] Jūs ņemšu 2 un 3. 909 01:03:21,000 --> 01:03:23,000 3 ir lielāks par 2, lai jūs mijmaiņas tiem. 910 01:03:23,000 --> 01:03:29,000 [Nate H.] tiesības, tāpēc mēs swap šiem, un lai mēs iegūtu 2, 3, 6, 4, 9 un. 911 01:03:29,000 --> 01:03:31,000 [Kevin] Tad jūs salīdzināt 3 un 6. 912 01:03:31,000 --> 01:03:33,000 3 ir mazāks par 6, lai jūs atstāt tos, 913 01:03:33,000 --> 01:03:37,000 un 6 un 4, jūs mijmaiņas tiem, jo ​​4 ir mazāks par 6. 914 01:03:37,000 --> 01:03:42,000 [Nate H.] labo, tāpēc man 2, 3, 4, 6, 9. 915 01:03:42,000 --> 01:03:46,000 [Kevins] un 9 ir lielāks par 6, lai jūs atstāt to. 916 01:03:46,000 --> 01:03:48,000 Un jūs gribētu iet atpakaļ caur to vēlreiz. 917 01:03:48,000 --> 01:03:50,000 >> [Nate H.] Man darīts šajā brīdī? >> [Kevins] Nē 918 01:03:50,000 --> 01:03:52,000 Un kāpēc man nav darīts šajā brīdī? 919 01:03:52,000 --> 01:03:54,000 Jo tas izskatās mans masīvs ir sakārtots. Es skatos uz to. 920 01:03:54,000 --> 01:03:57,000 [Kevins] iet caur to vēlreiz un pārliecinieties, ka ir ne vairāk mijmaiņas darījumi 921 01:03:57,000 --> 01:04:00,000 Pirms jūs varat pilnībā apstāties. 922 01:04:00,000 --> 01:04:04,000 Tieši tā, tāpēc jums ir nepieciešams, lai saglabātu dodas cauri un pārliecinieties, ka nav mijmaiņas darījumi 923 01:04:04,000 --> 01:04:06,000 ka jūs varat veikt šajā brīdī. 924 01:04:06,000 --> 01:04:08,000 Tas bija tiešām tikai laimīgs, tāpat kā jūs teicāt, ka mēs nonācām 925 01:04:08,000 --> 01:04:12,000 tikai ņemot, lai 1 cauri un mēs esam sakārtoti. 926 01:04:12,000 --> 01:04:16,000 Bet, lai to izdarītu vispārējā gadījumā mēs tiešām tas ir jādara atkal un atkal. 927 01:04:16,000 --> 01:04:20,000 Un patiesībā, tas bija piemērs par labāko iespējamo lietas, 928 01:04:20,000 --> 01:04:24,000 tāpat mēs redzējām problēmu. 929 01:04:24,000 --> 01:04:28,000 Mēs redzējām, ka vislabākā lieta tika n. 930 01:04:28,000 --> 01:04:32,000 Mēs devāmies cauri masīva 1 reizi. 931 01:04:32,000 --> 01:04:35,000 Kas ir vissliktākais iespējamais gadījums šo algoritmu? 932 01:04:35,000 --> 01:04:37,000 [Kevins] N ². 933 01:04:37,000 --> 01:04:41,000 Un ko tas izskatās? Kas būtu masīvs izskatās, ka būtu nepieciešams n ² laiku? 934 01:04:41,000 --> 01:04:43,000 [Kevins] [nedzirdamas] sakārtoti. 935 01:04:43,000 --> 01:04:51,000 Tieši tā, tāpēc, ja man bija masīva 9, 7, 6, 5, 2, 936 01:04:51,000 --> 01:04:54,000 1. 9 būtu burbulis visu ceļu uz augšu. 937 01:04:54,000 --> 01:04:59,000 Pēc 1 atkārtojuma mēs ir 7, 6, 5, 2, 9. 938 01:04:59,000 --> 01:05:07,000 Tad 7 tiktu burbulis augšu, 6, 5, 2, 7, 9, un tā tālāk un tā tālāk. 939 01:05:07,000 --> 01:05:13,000 >> Mēs gribētu iet cauri visai masīvs n reizes, 940 01:05:13,000 --> 01:05:16,000 un jūs faktiski var iegūt mazliet precīzāki nekā šī 941 01:05:16,000 --> 01:05:23,000 jo, ja mēs esam pārvietots 9 visu ceļu līdz savā pēdējā iespējamā pozīcijā 942 01:05:23,000 --> 01:05:26,000 mēs zinām, ka mums nekad nebūs salīdzināt pret šo elementu vēlreiz. 943 01:05:26,000 --> 01:05:29,000 Kad mēs sākam burbuļošana no 7 līdz 944 01:05:29,000 --> 01:05:35,000 mēs zinām, ka mēs varam apturēt reiz 7 ir tiesības pirms 9 mēnešu 945 01:05:35,000 --> 01:05:37,000 jo mēs esam jau salīdzināja 9 uz to. 946 01:05:37,000 --> 01:05:46,000 Ja jūs darīt to smart veidā tas nav patiesi, es domāju, ka daudz laika. 947 01:05:46,000 --> 01:05:49,000 Jūs neesat gatavojas salīdzināt visus iespējamos [gandrīz nedzirdama] kombinācijas 948 01:05:49,000 --> 01:05:55,000 katru reizi, kad iet caur katru atkārtojuma. 949 01:05:55,000 --> 01:05:59,000 Bet tomēr, ja mēs runājam par šo augšējo robežu, mēs sakām, ka 950 01:05:59,000 --> 01:06:04,000 Jūs meklējat pie n ² salīdzinājumi visu ceļu caur. 951 01:06:04,000 --> 01:06:12,000 >> Iesim atpakaļ, un, jo mēs sākam saņemt mazliet īsā laikā 952 01:06:12,000 --> 01:06:15,000 Es teiktu, ka jums noteikti vajadzētu iet cauri pārējo šīs tabulas, 953 01:06:15,000 --> 01:06:17,000 aizpildīt to visu ārā. 954 01:06:17,000 --> 01:06:20,000 Padomājiet par piemēru. Domājiet par konkrētiem piemēriem. 955 01:06:20,000 --> 01:06:22,000 Tas ir patiešām ērts un noderīgs darīt. 956 01:06:22,000 --> 01:06:25,000 Izdarīt to ārā. 957 01:06:25,000 --> 01:06:28,000 Tas ir sava veida tabulas, kas, kā jūs iet cauri datorzinātnēs 958 01:06:28,000 --> 01:06:32,000 Jums vajadzētu tiešām sākt zināt šos no galvas. 959 01:06:32,000 --> 01:06:34,000 Šie ir veida jautājumiem jūs saņemsiet intervijās. 960 01:06:34,000 --> 01:06:36,000 Tie ir veidu lietas, kas ir labi zināt, 961 01:06:36,000 --> 01:06:41,000 un domāt par tiem malas gadījumos, tiešām norādītas, kā domāt par 962 01:06:41,000 --> 01:06:45,000 zinot, ka burbuļa kārtot sliktāko iespējamo masīvs 963 01:06:45,000 --> 01:06:52,000 kārtot ar to ir viens, kas ir apgrieztā secībā. 964 01:06:52,000 --> 01:06:58,000 >> Norādes. Parunāsim mazliet par norādes. 965 01:06:58,000 --> 01:07:03,000 Pēdējos pāris minūtēm mēs esam šeit 966 01:07:03,000 --> 01:07:11,000 Es zinu, tas ir kaut kas kopā ar failu I / O, kas ir samērā jauns. 967 01:07:11,000 --> 01:07:19,000 Kad mēs runājam par šautru iemeslu mēs vēlamies runāt par norādes 968 01:07:19,000 --> 01:07:24,000 ir tāpēc, viens, kad mēs strādājam C 969 01:07:24,000 --> 01:07:33,000 Mēs esam patiesi pie diezgan zemā līmenī, salīdzinot ar lielāko daļu mūsdienu programmēšanas valodām. 970 01:07:33,000 --> 01:07:38,000 Mēs esam patiešām spēj manipulēt mainīgos atmiņā, 971 01:07:38,000 --> 01:07:43,000 izdomāt, kur viņi faktiski atrodas mūsu RAM. 972 01:07:43,000 --> 01:07:46,000 Kad esat devies uz veikt operētājsistēmas nodarbības jūs redzēsiet 973 01:07:46,000 --> 01:07:48,000 ka tas ir, atkal, sava veida abstrakcija. 974 01:07:48,000 --> 01:07:50,000 Tas nav reāli gadījums. 975 01:07:50,000 --> 01:07:52,000 Mēs esam ieguvuši virtuālo atmiņu, kas slēpjas šīs detaļas no mums. 976 01:07:52,000 --> 01:07:58,000 >> Bet tagad jūs varat pieņemt, ka tad, kad jums ir programma, 977 01:07:58,000 --> 01:08:02,000 Piemēram, ja jūs sāktu rādīt savu Caesar šifra programma- 978 01:08:02,000 --> 01:08:06,000 Es pāriet atpakaļ uz manu iPad tiešām ātri- 979 01:08:06,000 --> 01:08:12,000 ka pašā sākumā savu programmu, ja jums ir, teiksim, 980 01:08:12,000 --> 01:08:15,000 4 gigabaitu RAM uz jūsu klēpjdators, 981 01:08:15,000 --> 01:08:21,000 jums atcelt šo gabalu, un mēs to saucam par RAM. 982 01:08:21,000 --> 01:08:25,000 Un tas sākas vietā mēs ejam, lai izsauktu 0, 983 01:08:25,000 --> 01:08:30,000 un tas beidzas vieta, kas mēs saucam 4 gigabaitus. 984 01:08:30,000 --> 01:08:37,000 Es tiešām nevaru uzrakstīt. Vīrietis, kas ir hacked. 985 01:08:37,000 --> 01:08:40,000 Kad jūsu programma izpilda 986 01:08:40,000 --> 01:08:44,000 operētājsistēma carves RAM, 987 01:08:44,000 --> 01:08:51,000 un precizē dažādos segmentos dažādām daļām savu programmu dzīvošanai 988 01:08:51,000 --> 01:08:58,000 Noteikti šeit šajā jomā ir sava veida ne cilvēka zemes. 989 01:08:58,000 --> 01:09:02,000 Kad jūs iet uz augšu nedaudz tālāk šeit 990 01:09:02,000 --> 01:09:05,000 tev tiešām vieta, kur 991 01:09:05,000 --> 01:09:09,000 kods, lai jūsu programmā dzīvi. 992 01:09:09,000 --> 01:09:13,000 Ka faktiskais binārā koda, ka izpildāmais fails patiesībā izpaužas iekrauj atmiņā 993 01:09:13,000 --> 01:09:17,000 palaižot programmu, un tā dzīvo kodu segmentā. 994 01:09:17,000 --> 01:09:22,000 Un kā jūsu programma izpilda procesors aplūko šo kodu segmentā 995 01:09:22,000 --> 01:09:24,000 lai saprastu, kas ir nākamais instrukcija? 996 01:09:24,000 --> 01:09:27,000 Kas ir nākamais rindā kodu man ir nepieciešams, lai izpildītu? 997 01:09:27,000 --> 01:09:31,000 >> Pastāv arī datu segments, un tas ir, ja šie stīgu konstantes 998 01:09:31,000 --> 01:09:34,000 saņemt saglabāti, ka jūs esat, izmantojot. 999 01:09:34,000 --> 01:09:42,000 Un tad tālāk tur ir šī vieta sauc kaudze. 1000 01:09:42,000 --> 01:09:46,000 Mēs piekļūtu atmiņas tur izmantojot malloc, 1001 01:09:46,000 --> 01:09:49,000 un tad uz ļoti top jūsu programmā 1002 01:09:49,000 --> 01:09:52,000 tur kaudze, 1003 01:09:52,000 --> 01:09:57,000 un ka tur mēs esam spēlē par lielāko daļu no sākuma. 1004 01:09:57,000 --> 01:09:59,000 Tas nav mērogā vai neko. 1005 01:09:59,000 --> 01:10:03,000 Šīs partijas ir ļoti mašīna atkarīgs, 1006 01:10:03,000 --> 01:10:10,000 operētājsistēmas atkarīgs, bet tas ir relatīvi, kā lietas iegūt chunked augšu. 1007 01:10:10,000 --> 01:10:17,000 Palaižot programmu un jums paziņot mainīgo sauc x- 1008 01:10:17,000 --> 01:10:27,000 Es esmu gatavojas izdarīt citu lodziņā zemāk, un tas būs RAM, kā arī. 1009 01:10:27,000 --> 01:10:29,000 Un es esmu gatavojas skatīties. 1010 01:10:29,000 --> 01:10:34,000 Mēs izdarīt robainas līnijas, lai norādītu tas ir tikai maza daļa no RAM 1011 01:10:34,000 --> 01:10:38,000 un ne visi no tā, kā mēs izdarīt augšā. 1012 01:10:38,000 --> 01:10:43,000 >> Ja es paziņot skaitlim mainīgo sauc x, 1013 01:10:43,000 --> 01:10:49,000 tad ko es tiešām iegūt ir kartēšanas 1014 01:10:49,000 --> 01:10:54,000 kas tiek glabāta simbolu tabulā manā programmā 1015 01:10:54,000 --> 01:11:00,000 kas savieno nosaukums X šajā reģionā atmiņu ka es esmu sastādīts 1016 01:11:00,000 --> 01:11:03,000 tepat starp vertikāliem stieņiem. 1017 01:11:03,000 --> 01:11:08,000 Ja man ir līnijas kodu manā programmā, kas saka x = 7 1018 01:11:08,000 --> 01:11:15,000 procesors zina "Ak, labi, es zinu, ka x dzīvo šajā vietā atmiņā." 1019 01:11:15,000 --> 01:11:25,000 "Es esmu gatavojas iet uz priekšu un rakstīt 7 tur." 1020 01:11:25,000 --> 01:11:28,000 Kā tas zina, kādu atrašanās vietu šī ir atmiņā? 1021 01:11:28,000 --> 01:11:30,000 Labi, ka viss ir darīts kompilēšanas laikā. 1022 01:11:30,000 --> 01:11:34,000 Sastādītājs rūpējas par piešķirot kur katrs no mainīgajiem ir gatavojas iet 1023 01:11:34,000 --> 01:11:40,000 un izveidot speciālu kartēšanu vai drīzāk savieno punktus 1024 01:11:40,000 --> 01:11:43,000 starp simbolu un kur tas notiek, mainīgā vārds 1025 01:11:43,000 --> 01:11:46,000 un ja tas notiek, lai dzīvotu atmiņā. 1026 01:11:46,000 --> 01:11:50,000 Bet izrādās, ka mēs faktiski var piekļūt mūsu programmās, kā arī. 1027 01:11:50,000 --> 01:11:55,000 Tas izpaužas svarīgi, ja mēs sākam runāt par kādu datu struktūras, 1028 01:11:55,000 --> 01:11:58,000 kas ir jēdziens, ka mēs spēsim ieviest vēlāk. 1029 01:11:58,000 --> 01:12:09,000 >> Bet tagad, ko jūs varat zināt, ka es varētu izveidot rādītāju uz šo vietu, x. 1030 01:12:09,000 --> 01:12:12,000 Piemēram, es varētu izveidot rādītāju mainīgo. 1031 01:12:12,000 --> 01:12:16,000 Kad mēs izveidot rādītāju mainīgo mēs izmantojam zvaigzne notācija. 1032 01:12:16,000 --> 01:12:21,000 Šajā gadījumā, tas saka, ka es esmu gatavojas izveidot rādītāju uz int. 1033 01:12:21,000 --> 01:12:24,000 Tas ir veids, tāpat kā jebkurš cits. 1034 01:12:24,000 --> 01:12:27,000 Mēs arī tā mainīgo kā y, 1035 01:12:27,000 --> 01:12:32,000 un tad mēs noteikti to vienāds ar adresi, uz kādu adresi. 1036 01:12:32,000 --> 01:12:38,000 Šajā gadījumā, mēs varam noteikt y norādīt uz x 1037 01:12:38,000 --> 01:12:43,000 ņemot adresi X, kas mēs ar šī zīme, 1038 01:12:43,000 --> 01:12:55,000 un tad mēs noteikti y norādīt uz to. 1039 01:12:55,000 --> 01:12:59,000 Ko tas būtībā dara, ir, ja mēs skatāmies uz mūsu RAM 1040 01:12:59,000 --> 01:13:02,000 tas rada atsevišķu mainīgo. 1041 01:13:02,000 --> 01:13:04,000 Tas notiek, lai izsauktu to y, 1042 01:13:04,000 --> 01:13:06,000 un ja šī koda līnijas izpilda 1043 01:13:06,000 --> 01:13:13,000 tas patiesībā notiek, lai radītu nelielu rādītāju, ko mēs parasti izdarīt kā bulta, 1044 01:13:13,000 --> 01:13:15,000 un tas nosaka y norādīt uz x. 1045 01:13:15,000 --> 01:13:17,000 Jā. 1046 01:13:17,000 --> 01:13:19,000 [Studentu] Ja x ir jau rādītājs, jūs vienkārši darīt 1047 01:13:19,000 --> 01:13:22,000 int * y = x, tā vietā & zīmi? 1048 01:13:22,000 --> 01:13:24,000 Jā. 1049 01:13:24,000 --> 01:13:27,000 Ja x ir jau rādītājs, tad jūs varat iestatīt 2 norādes vienāds ar otru, 1050 01:13:27,000 --> 01:13:30,000 tādā gadījumā y neliecina x, 1051 01:13:30,000 --> 01:13:34,000 bet tas norādīs uz kāda x ir vērsta uz. 1052 01:13:34,000 --> 01:13:37,000 Diemžēl, mēs esam no laika. 1053 01:13:37,000 --> 01:13:44,000 >> Ko es teiktu šajā brīdī, mēs varam runāt par šo bezsaistē, 1054 01:13:44,000 --> 01:13:49,000 bet es teiktu sākt strādāt ar šo problēmu, # 14. 1055 01:13:49,000 --> 01:13:53,000 Jūs varat redzēt tur jau nedaudz jāaizpilda par jums šeit. 1056 01:13:53,000 --> 01:13:57,000 Jūs varat redzēt, ka tad, kad mēs paziņojam 2 norādes, int * x un y *, 1057 01:13:57,000 --> 01:14:01,000 un atzīmē, ka norādot * blakus mainīgo bija kaut kas tika darīts pagājušajā gadā. 1058 01:14:01,000 --> 01:14:05,000 Izrādās, ka tas ir līdzīgs tam, ko mēs darām šajā gadā. 1059 01:14:05,000 --> 01:14:11,000 Tas nav svarīgi, kur tu rakstīt * Kad jūs deklarējot rādītāju. 1060 01:14:11,000 --> 01:14:17,000 Bet mēs esam uzrakstījuši * blakus tipam 1061 01:14:17,000 --> 01:14:24,000 jo tas padara to ļoti skaidri, ka jūs esat deklarējot rādītājs mainīgo. 1062 01:14:24,000 --> 01:14:27,000 Jūs varat redzēt, ka deklarējot 2 norādes dod mums 2 kastes. 1063 01:14:27,000 --> 01:14:31,000 Šeit, ja mēs noteikti x vienāds ar malloc 1064 01:14:31,000 --> 01:14:34,000 ko tas saka, ir atcelt atmiņas kaudzes. 1065 01:14:34,000 --> 01:14:41,000 Šī maz kaste tieši šeit, tas aplis, atrodas uz kaudzes. 1066 01:14:41,000 --> 01:14:43,000 X ir vērsta uz to. 1067 01:14:43,000 --> 01:14:46,000 Ievērojiet, ka y joprojām nav vērsta uz neko. 1068 01:14:46,000 --> 01:14:50,000 Lai iegūtu atmiņu-saglabāt numuru 42 uz X 1069 01:14:50,000 --> 01:14:55,000 mēs varētu izmantot to, ko notācija? 1070 01:14:55,000 --> 01:14:59,000 [Studentu] * x = 42. 1071 01:14:59,000 --> 01:15:01,000 Tieši tā, * x = 42. 1072 01:15:01,000 --> 01:15:06,000 Tas nozīmē sekot bultiņas un iemest tur 42. 1073 01:15:06,000 --> 01:15:09,000 Šeit, kur mēs noteikti y un x mēs esam y norādot uz x. 1074 01:15:09,000 --> 01:15:13,000 Atkal, tas ir tāpat kā to, Kevins teica, kur mēs noteikti y vienāds ar x. 1075 01:15:13,000 --> 01:15:15,000 Y nav vērsta uz x. 1076 01:15:15,000 --> 01:15:19,000 Drīzāk, tas norāda uz to, x ir vērsta uz kā labi. 1077 01:15:19,000 --> 01:15:24,000 >> Un tad beidzot šajā pēdējā ailē ir 2 iespējamie lietas, ko mēs varētu darīt. 1078 01:15:24,000 --> 01:15:28,000 Viens no tiem ir, mēs varētu teikt * x = 13. 1079 01:15:28,000 --> 01:15:33,000 Otra lieta ir, mēs varētu teikt-Aleksi, vai jūs zināt, ko mēs varētu darīt šeit? 1080 01:15:33,000 --> 01:15:37,000 Jūs varētu teikt * x = 13 vai- 1081 01:15:37,000 --> 01:15:41,000 [Studentu] Jūs varētu teikt int neatkarīgi. 1082 01:15:41,000 --> 01:15:45,000 [Nate H.] Ja tas tika minēts kā int mainīgo mēs varētu darīt. 1083 01:15:45,000 --> 01:15:49,000 Mēs varētu arī teikt * y = 13, jo viņi abi norādot uz to pašu vietu, 1084 01:15:49,000 --> 01:15:51,000 lai mēs varētu izmantot vai nu mainīga tur nokļūt. 1085 01:15:51,000 --> 01:15:56,000 Yeah >> [Studentu]. Ko tas izskatīsies, ja mēs vienkārši teikt int x ir 13? 1086 01:15:56,000 --> 01:16:00,000 Tas būtu deklarējot jaunu mainīgo sauc x, kas nedarbojas. 1087 01:16:00,000 --> 01:16:04,000 Mēs ir sadursmes, jo mēs paziņoja x būt rādītājs šeit. 1088 01:16:04,000 --> 01:16:10,000 [Studentu] Ja mēs tikko bija šo paziņojumu ar sevi, ko tas izskatīsies ziņā apļa? 1089 01:16:10,000 --> 01:16:14,000 Ja mums būtu x = 13, tad mēs ir kastē, un nevis ar bultiņu 1090 01:16:14,000 --> 01:16:16,000 nāk no kastē mēs gribētu izdarīt tā kā tikai 13. 1091 01:16:16,000 --> 01:16:19,000 [Studentu] lodziņā. Labi. 1092 01:16:19,000 --> 01:16:24,000 >> Paldies, lai skatītos, un labu veiksmi 0 viktorīnā. 1093 01:16:24,000 --> 01:16:28,000 [CS50.TV]