1 00:00:00,000 --> 00:00:01,940 [Powered by Google Translate] [Kiirtutvustus - Ülesanded 2] 2 00:00:01,940 --> 00:00:04,130 [Zamyla Chan - Harvardi Ülikool] 3 00:00:05,170 --> 00:00:07,490 [See on CS50. CS50.TV] 4 00:00:07,490 --> 00:00:10,750 Hea küll. Tere kõigile ja tere tulemast kiirtutvustus 2. 5 00:00:10,750 --> 00:00:14,330 Esiteks, ma tahan teid õnnitleda viimistlemiseks pset 1. 6 00:00:14,330 --> 00:00:18,140 Ma tean, et see oleks võinud olla natuke raske mõnda teist, 7 00:00:18,140 --> 00:00:20,460 oleks võinud oma esimese arvutiprogrammi, mis sa kirjutasid, 8 00:00:20,460 --> 00:00:24,500 kuid pea meeles, et lõpus see, kui sa vaatad tagasi semestri lõpuks, 9 00:00:24,500 --> 00:00:29,820 saate vaadata pset 1 ja saad öelda: "Hei, ma oleks võinud teha, et 5 minutiga." 10 00:00:29,820 --> 00:00:35,700 Nii tunnete ja usaldate, et lõpus see saate kindlasti leida pset 1 üsna lihtne. 11 00:00:35,700 --> 00:00:40,640 Aga nüüd see on tohutu saavutus ja õnnitlused eest saada teha. 12 00:00:40,640 --> 00:00:44,010 Nüüd ka kiire märkuse enne kui me sattuda liha läbikäiguks. 13 00:00:44,010 --> 00:00:48,340 Ma tahan teha kiire märkuse, et ma mõnikord ei ole piisavalt aega 14 00:00:48,340 --> 00:00:52,500 ajal walkthroughs minna läbi iga viisiks probleemi komplekt 15 00:00:52,500 --> 00:00:56,140 ja üsna lihtsalt võibolla keskenduda 1 või 2 tüüpi rakendusi, 16 00:00:56,140 --> 00:00:57,750 võimalusi, et sa võiksid seda teha. 17 00:00:57,750 --> 00:01:01,970 Aga see ei tähenda, et sa on keelatud seda teha muul viisil. 18 00:01:01,970 --> 00:01:05,980 Sageli, nagu infotehnoloogia, palju viise asju, 19 00:01:05,980 --> 00:01:12,190 ja nii kindlasti võite vabalt kasutada teistsugust lahendust kui ma võinud esitada. 20 00:01:12,190 --> 00:01:14,520 [Pset 2: Crypto - Zamyla Chan - zamyla@cs50.net] 21 00:01:14,520 --> 00:01:17,160 [Pset2 - 0. Osas Küsimused - 1. Caesar - 2. Vigenere] 22 00:01:17,160 --> 00:01:20,650 Hea küll. Nii et probleem seatud 2: Crypto on lõbus. 23 00:01:20,650 --> 00:01:24,500 Jällegi iga pset hakkate koos osa küsimused 24 00:01:24,500 --> 00:01:29,600 et läheb läbi oma osad koos määratud õpetajate mehe. 25 00:01:29,600 --> 00:01:31,670 Me ei lähe läbi need üle ülevaadet, 26 00:01:31,670 --> 00:01:35,100 kuid nad kindlasti aitavad teil täita pset. 27 00:01:35,100 --> 00:01:38,100 Nii et esimene osa probleemist komplekt on Caesar. 28 00:01:38,100 --> 00:01:43,470 Ja nii Caesar keegi läheb teil võtit täisarv, 29 00:01:43,470 --> 00:01:48,420 ja te krüptida tekstistringi et nad pakuvad teile 30 00:01:48,420 --> 00:01:50,670 ja anda neile tagasi krüpteeritud asi. 31 00:01:50,670 --> 00:01:56,050 Kui keegi vaatasin jõulujutt, seal on näide, et seal. 32 00:01:56,050 --> 00:01:59,090 Siis teine ​​osa probleemist komplekt on Vigenere, 33 00:01:59,090 --> 00:02:01,790 mis on rohkem Advanced Encryption tehnikat. 34 00:02:01,790 --> 00:02:05,640 Ja nii me lähme encipher tekstilõiku 35 00:02:05,640 --> 00:02:09,600 Kuid selle asemel vaid ühe täisarv, me tegelikult läheb kodeerida see 36 00:02:09,600 --> 00:02:13,340 koos märksõna, et kasutaja annab meile. 37 00:02:16,270 --> 00:02:22,090 Okei, nii et esimene töövahend täna on tegelikult saab olema ajakohastamine aparaat. 38 00:02:22,090 --> 00:02:26,430 On vestlusgrupis näeksime asju nagu "Miks see toimib?" 39 00:02:26,430 --> 00:02:28,110 "Miks ei esita 50 tööd?" 40 00:02:28,110 --> 00:02:31,830 ja sageli lahendus on tegelikult lihtsalt värskendada oma seade. 41 00:02:31,830 --> 00:02:36,730 Ja nii kui sa lihtsalt sõidetud terminaliakent oma seadme sudo yum-y - 42 00:02:36,730 --> 00:02:40,040 see lipp öeldes jah, ajakohastada kõike - uuendus, 43 00:02:40,040 --> 00:02:42,280 siis teie seade uuendab vajadusel muuta. 44 00:02:42,280 --> 00:02:46,960 Ja see ei ole valus, kui sa juba oled kõige uuem versioon aparaat. 45 00:02:46,960 --> 00:02:51,280 Siis lihtsalt öelda ühtegi uut uuendused saadaval ja saate jätkata tööd mööda. 46 00:02:51,280 --> 00:02:55,800 Aga see on hea täita ka iga kord, kui avate seadme 47 00:02:55,800 --> 00:02:57,140 sest me oleme ikka väga palju - 48 00:02:57,140 --> 00:03:00,320 mõnikord, kui me tuleme viga - millega see aparaat. 49 00:03:00,320 --> 00:03:03,180 Seega veenduge, et teil on kõige uuem versioon seadme 50 00:03:03,180 --> 00:03:07,710 ja käivitage et uuendada seal. 51 00:03:07,710 --> 00:03:14,360 Hea küll. Niisiis, kuna me tegeleme tähed ja muutuv, enciphering asju, 52 00:03:14,360 --> 00:03:20,410 me läheme tõesti tahad saada parimad sõbrad meie ASCII diagramm. 53 00:03:20,410 --> 00:03:24,350 On mitmeid neist online, kui sa leiad. Võib-olla isegi teha oma. 54 00:03:24,350 --> 00:03:29,950 Põhimõtteliselt iga täht ja iga arv ja iga märk 55 00:03:29,950 --> 00:03:32,210 seal on mitu nendega seotud 56 00:03:32,210 --> 00:03:38,670 ja nii on hea näha oma ASCII väärtused kõrval tegelik kirja. 57 00:03:38,670 --> 00:03:42,310 See kindlasti aitab teil probleemi komplekti. 58 00:03:42,310 --> 00:03:45,750 Üks asi, mis tõesti aitas mind selle probleemi komplekt oli tegelikult välja trükkida, 59 00:03:45,750 --> 00:03:48,380 ja kui ma läksin läbi, ma tegelikult teha seda, 60 00:03:48,380 --> 00:03:51,150 kirjutada: "Kui see peab minema sinna, siis ..." 61 00:03:51,150 --> 00:03:55,270 Kind of juhtida seda ja märkige see üles, saama parimad sõbrad oma ASCII tabelis. 62 00:03:57,240 --> 00:04:00,750 Siis on meil veel mõned meie käsutuses olevaid vahendeid. 63 00:04:00,750 --> 00:04:03,750 Seekord asemel tegelikult ajendades kasutajal kogu oma panus 64 00:04:03,750 --> 00:04:05,230 me teeme koos. 65 00:04:05,230 --> 00:04:06,880 Me läheme kallutada neid mingil sisend, 66 00:04:06,880 --> 00:04:11,350 aga me oleme ka läheb lihtsalt kasutada käsurea argumente. 67 00:04:11,350 --> 00:04:15,600 Nii et kui nad juhivad oma programmi, tavaliselt sa ütled. / Hello, näiteks 68 00:04:15,600 --> 00:04:17,310 Kui teie programm oli hello.c. 69 00:04:17,310 --> 00:04:22,500 Aga seekord mitte lihtsalt ütlen, et neid saab panna sõnad, argumendid hiljem. 70 00:04:22,500 --> 00:04:27,210 Ja nii me ei kavatse kasutada mida iganes nad läbima meile oma sisend ka, 71 00:04:27,210 --> 00:04:31,720 nii väljudes lihtsalt küsimine täisarv, vaid ka kasutades käsurea argumente. 72 00:04:31,720 --> 00:04:36,590 Ja siis me astume massiivid ja stringid, mis me kasutame palju ka. 73 00:04:41,460 --> 00:04:44,810 Siin on lihtsalt näide 1 mini ASCII diagramm. 74 00:04:44,810 --> 00:04:48,460 Nagu ma ütlesin, iga täht vastab number, 75 00:04:48,460 --> 00:04:52,510 ja nii end kurssi sellega. See tulevad mugav. 76 00:04:52,510 --> 00:04:55,610 Ja hiljem, kui me alustada tehes mõned ASCIIMath tegelevad numbrid - 77 00:04:55,610 --> 00:05:00,110 lisades, lahutades neist - siis kindlasti hea viidata seda tabelit. 78 00:05:02,860 --> 00:05:06,920 Nii et siin on näide Caesar salakiri - midagi, mida te võib-olla mängitakse. 79 00:05:06,920 --> 00:05:11,190 See on lihtsalt ratast. Sisuliselt on välimine tähestik ja siis on sisemine tähestikku. 80 00:05:11,190 --> 00:05:15,290 Nii et siin on näide Caesar salakiri kuid oluline on 0. 81 00:05:15,290 --> 00:05:21,540 Sisuliselt on joondatud, B on joondatud B, kõik viis kuni Z. 82 00:05:21,540 --> 00:05:26,590 Aga siis öelda tahtsime võti 3, näiteks. 83 00:05:26,590 --> 00:05:33,280 Siis võiks pöörata sisemine ratas, nii et nüüd joondub D jne 84 00:05:33,280 --> 00:05:35,250 Ja nii see on sisuliselt mida me teeme. 85 00:05:35,250 --> 00:05:38,340 Meil ei ole rool, vaid see, mida me kavatseme teha, on muuta meie programm 86 00:05:38,340 --> 00:05:44,490 selline nihe tähestik koos meiega teatud numbrid. 87 00:05:44,490 --> 00:05:48,650 Nii nagu ma enne ütlesin, me ei kavatse tegelema käsurea argumente 88 00:05:48,650 --> 00:05:50,390 samuti saada täisarv. 89 00:05:50,390 --> 00:05:55,050 Nii, et kasutaja käivitab oma Caesari programmi juurde. / Caesar 90 00:05:55,050 --> 00:05:58,090 ja seejärel sisestades numbri pärast seda. 91 00:05:58,090 --> 00:06:01,130 Ja see number näitab võti, nihe, 92 00:06:01,130 --> 00:06:06,740 mitu korda sa lähed tuleb pöörleva sisemise ratta oma Caesari šiffer. 93 00:06:06,740 --> 00:06:08,390 Ja nii sa näed siin näiteks. 94 00:06:08,390 --> 00:06:14,550 Kui me sisenesime tähed A kuni L meie Caesar salakiri, 95 00:06:14,550 --> 00:06:19,520 siis oleks sisend D läbi O, sest see on iga täht nihkunud üle 3 korra, 96 00:06:19,520 --> 00:06:22,080 nagu näiteks ratta, mis ma näitasin sulle. 97 00:06:22,080 --> 00:06:25,300 Nii et siis, kui olete sisestanud, näiteks See on CS50! 98 00:06:25,300 --> 00:06:27,960 siis oleks ka liigutada kõik tähed. 99 00:06:27,960 --> 00:06:31,040 Ja see on oluline asi nii Caesari ja Vigenere 100 00:06:31,040 --> 00:06:34,890 on see, et me ei kavatse jätta vahele ühtegi mitte-kirju. 101 00:06:34,890 --> 00:06:39,160 Nii et kõik ruumid, tegelased jne, numbrid, me hoida neid sama. 102 00:06:39,160 --> 00:06:42,920 Me ainult hakkab nihkuma tähed käesolevas asjas. 103 00:06:42,920 --> 00:06:45,870 Nii et nagu näete rool, meil on ainult tähed meile kättesaadavad, 104 00:06:45,870 --> 00:06:50,150 nii et me ainult tahame nihutada tähed ja krüptida kirju. 105 00:06:51,370 --> 00:06:56,720 Nii et esimene asi, mida teha, siis nägin, et kasutamine Caesar probleem komplekt 2 106 00:06:56,720 --> 00:07:05,280 on joosta Caesar ja sisestage number, kui sa jooksed ta terminalis. 107 00:07:05,280 --> 00:07:10,940 Mida me peame tegema, on kuidagi saada, et võti ja sellele juurde. 108 00:07:10,940 --> 00:07:14,730 Ja nii me tahame kuidagi näha, et see saab olema teine ​​käsurea argument. 109 00:07:14,730 --> 00:07:20,950 Esimene saab olema. / Caesar, ja järgmine saab olema võtme number. 110 00:07:22,190 --> 00:07:29,200 Nii et enne oli meil int main (void), et alustada meie C programmid. 111 00:07:29,200 --> 00:07:31,790 Me läheme koor tagasi kiht natuke 112 00:07:31,790 --> 00:07:34,720 ja tegelikult näha, et lähitulede asemel sisse tühiseks, meie peamine ülesanne 113 00:07:34,720 --> 00:07:37,920 me tegelikult tegeleme 2 parameetrit. 114 00:07:37,920 --> 00:07:44,070 Meil on int nimega argc ja seejärel massiivi stringe nimetatakse argv. 115 00:07:44,070 --> 00:07:46,030 Nii argc on täisarv, 116 00:07:46,030 --> 00:07:49,640 ja see esindab mitmeid argumente möödunud aastal oma programmi. 117 00:07:49,640 --> 00:07:53,590 Ja siis argv on tegelikult nimekirja argumente möödas. 118 00:07:53,590 --> 00:08:00,820 Kõik argumendid on stringid, ja nii argv esindab massiivi, nimekiri, stringid. 119 00:08:01,830 --> 00:08:03,990 Räägime massiivid natuke. 120 00:08:03,990 --> 00:08:05,940 Massiivid on sisuliselt uus andmestruktuur. 121 00:08:05,940 --> 00:08:09,660 Meil on ints oleme kahekordistab, meil on stringid, ja nüüd on meil massiivid. 122 00:08:09,660 --> 00:08:13,820 Massiivid on andmestruktuurid, mis mahutab mitu väärtust sama tüüpi, 123 00:08:13,820 --> 00:08:18,320 Nii et sisuliselt nimekirja tahes liiki soovite. 124 00:08:18,320 --> 00:08:24,400 Sisuliselt kui sa tahad nimekirja täisarvud kõik 1 muutuja, 125 00:08:24,400 --> 00:08:29,090 siis oleks luua uus muutuja, mis oli tüüpi int massiiv. 126 00:08:29,090 --> 00:08:34,450 Nii massiivid on null indekseeritud, mis tähendab, et esimene element massiivi on indeks 0.. 127 00:08:34,450 --> 00:08:41,799 Kui massiiv on pikkus 4, nagu selles näites, siis oma viimase elemendi oleks kell indeks 3, 128 00:08:41,799 --> 00:08:44,810 mis on 4-1. 129 00:08:45,940 --> 00:08:48,420 Nii, et luua massiivi, siis oleks midagi sellist teha. 130 00:08:48,420 --> 00:08:51,440 Ütle sa tahtsid double array. 131 00:08:51,440 --> 00:08:56,520 See kehtib igat liiki andmete tüüp, kuigi. 132 00:08:56,520 --> 00:09:00,210 Nii öelda tahad topelt massiivi. Ütle sa tahad seda kutsuda postkast. 133 00:09:00,210 --> 00:09:04,760 Nii nagu te initsialiseerida muu topelt, 134 00:09:04,760 --> 00:09:09,760 siis ütleksin topelt ja siis nimi, kuid seekord me paneme nurksulud, 135 00:09:09,760 --> 00:09:13,570 ja seejärel number tekib pikkus array. 136 00:09:13,570 --> 00:09:16,840 Pange tähele, et massiivid me ei saa kunagi muuta pikkus, 137 00:09:16,840 --> 00:09:21,230 et sa alati määratleda ja valida mitu kasti, 138 00:09:21,230 --> 00:09:25,440 mitu väärtust oma massiivi saab omada. 139 00:09:25,440 --> 00:09:31,820 Nii määrata erinevaid väärtusi oma massiiv, sa lähed, et kasutada seda järgmine süntaks, 140 00:09:31,820 --> 00:09:33,200 nagu näete slaidil. 141 00:09:33,200 --> 00:09:37,620 Sul on postkast indeks 0 seatakse 1.2 142 00:09:37,620 --> 00:09:42,180 postkast indeks 1 komplekt 2,4 jne 143 00:09:42,180 --> 00:09:47,910 Nüüd, et oleme läbi vaadanud massiivid natuke, lähme tagasi argc ja argv. 144 00:09:47,910 --> 00:09:52,220 Me teame, et argv on nüüd massiiv stringe. 145 00:09:52,220 --> 00:09:55,080 Nii et kui kasutaja möödub - ütlevad nad töötavad programm - 146 00:09:55,080 --> 00:09:58,740 nad ütlevad. / hello David Malan, 147 00:09:58,740 --> 00:10:05,160 mida programm teeb sinu jaoks juba tegelikult tulla mida argc ja argv on. 148 00:10:05,160 --> 00:10:07,620 Nii et sa ei pea muretsema, et. 149 00:10:07,620 --> 00:10:14,370 Argc sel juhul oleks 3, sest ta näeb 3 eraldi sõnad eraldatud tühikutega. 150 00:10:14,370 --> 00:10:18,850 Ja nii siis massiivi antud juhul esimene indeks oleks. / Hello, 151 00:10:18,850 --> 00:10:21,770 kõrval üks David, järgmine Malan. 152 00:10:21,770 --> 00:10:25,640 Kas keegi näeb kohe, mida suhet argv, 153 00:10:25,640 --> 00:10:28,990  massiiv, ja argc on? 154 00:10:32,820 --> 00:10:38,090 Jah. Me võtame arvesse, et näiteks args.c. 155 00:10:38,090 --> 00:10:42,880 Vaatame, kas saame ära suhete 2. 156 00:10:42,880 --> 00:10:46,550 Siin Te võite leida, et seade vaikimisi rakenduse 157 00:10:46,550 --> 00:10:49,450 avada. c failid on mõnikord Emacs. 158 00:10:49,450 --> 00:10:54,660 Aga me tahame tulla toime gedit, nii et mida saate teha, on saate paremklõps oma C faili 159 00:10:54,660 --> 00:11:04,580 minna omadused, Open With ja siis vali gedit, Vaikimisi, 160 00:11:04,580 --> 00:11:13,020 ja nüüd oma programmi peaks avanema gedit asemel Emacs. 161 00:11:14,710 --> 00:11:16,290 Perfect. 162 00:11:17,120 --> 00:11:25,520 Nii et siin on mul programmi, et ma tahan välja printida iga käsurea argument. 163 00:11:25,520 --> 00:11:32,050 Mida iganes kasutaja sisendite, ma tahan sisuliselt tagastab selle tagasi neile uuele reale. 164 00:11:32,050 --> 00:11:36,710 Mis siis struktuuri, et saame kasutada itereerime midagi - 165 00:11:36,710 --> 00:11:40,380 midagi, mida sa ilmselt kasutada oma pset 1? 166 00:11:40,380 --> 00:11:45,840 Kui soovite läbida kindel arv asju? >> [Üliõpilane] For loop. 167 00:11:45,840 --> 00:11:48,910 Jaoks silmus. Täpselt. Nii alustame jaoks silmus. 168 00:11:48,910 --> 00:11:56,900 Meil on int i = 0. Lihtsalt alustada standard initsialiseerimise muutuja. 169 00:11:56,900 --> 00:12:02,370 Ma jätan tingimuseks seatud ja siis öelda, i + +, teeme asju seal. 170 00:12:02,370 --> 00:12:04,090 Hea küll. 171 00:12:04,090 --> 00:12:11,590 Nii mõtlesin tagasi argv, kui argv on argumentide loetelus möödunud aastal programmi 172 00:12:11,590 --> 00:12:15,380 ja argc on mitmeid argumente programmi 173 00:12:15,380 --> 00:12:21,280 siis see tähendab, et argc on sisuliselt pikkus argv, paremale, 174 00:12:21,280 --> 00:12:28,970 sest seal saab olla nii palju argumente, sest nende väärtus argc. 175 00:12:28,970 --> 00:12:35,910 Nii et kui me tahame kinnitada, üle iga elemendi argv, 176 00:12:35,910 --> 00:12:43,290 me ei kavatse soovite iga kord pääseda muutuja argv juures antud indeksiga. 177 00:12:43,290 --> 00:12:49,060 See võib olla esindaja, eks? 178 00:12:49,060 --> 00:12:53,430 See muutuja näitab siin eriti stringi antud juhul 179 00:12:53,430 --> 00:12:57,030 sest see on stringi massiivi - eriti stringis et antud indeksiga. 180 00:12:57,030 --> 00:13:00,690 Mida me tahame teha, antud juhul me tahame seda välja printida, nii oletame printf. 181 00:13:00,690 --> 00:13:04,680 Ja nüüd argv on string, nii et me tahame panna, et kohatäide seal. 182 00:13:04,680 --> 00:13:08,430 Soovime uue liini lihtsalt oleks hea. 183 00:13:08,430 --> 00:13:12,530 Nii et siin on meil jaoks silmus. Meil ei ole tingimus veel. 184 00:13:12,530 --> 00:13:20,020 Nii et ma algab 0 ja seejärel iga kord see saab printida antud stringi 185 00:13:20,020 --> 00:13:22,980 selle konkreetse indeksi massiiv. 186 00:13:22,980 --> 00:13:28,410 Nii et kui me tahame, et peatada väljatrükk massiivi elementide? 187 00:13:28,410 --> 00:13:35,720 Kui oleme valmis, eks? Kui me oleme jõudnud lõpuks massiiv. 188 00:13:35,720 --> 00:13:38,870 Nii et me ei taha ületada mineviku pikkus array, 189 00:13:38,870 --> 00:13:43,700 ja me juba teame, et me ei pea tegelikult aktiivselt teada, mis pikkus argv on 190 00:13:43,700 --> 00:13:47,520 sest see on meile antud, ja mis see on? Argc. Täpselt. 191 00:13:47,520 --> 00:13:56,640 Nii et me tahame teha seda protsessi argc arv kordi. 192 00:13:56,640 --> 00:13:59,550 Ma ei ole õiges kataloogis. 193 00:14:02,100 --> 00:14:03,490 Hea küll. 194 00:14:03,490 --> 00:14:08,990 Nüüd teeme args. Vigu ei, mis on suurepärane. 195 00:14:08,990 --> 00:14:11,430 Nii et olgem lihtsalt joosta args. 196 00:14:11,430 --> 00:14:15,130 Mida see läheb tagasi meile? See on lihtsalt trükkimise tagasi. 197 00:14:15,130 --> 00:14:18,320 "Te sisestanud args arvesse programmi; ma annan selle sulle tagasi." 198 00:14:18,320 --> 00:14:23,170 Ütleme, me tahame öelda, args siis foo bar. 199 00:14:23,170 --> 00:14:26,570 Nii siis prindib meile tagasi. Olgu? 200 00:14:26,570 --> 00:14:30,790 Seega on näide sellest, kuidas saab kasutada argc ja argv 201 00:14:30,790 --> 00:14:33,460 teades, et argc tähendab pikkus argv. 202 00:14:33,460 --> 00:14:42,750 Veenduge, et te ei ole kunagi massiivid juurdepääsu abil ületada pikkus array 203 00:14:42,750 --> 00:14:45,140 sest C kindlasti hüüavad teile. 204 00:14:45,140 --> 00:14:47,560 Sa saad midagi, mida nimetatakse killustatust süü, 205 00:14:47,560 --> 00:14:52,470 mis ei ole kunagi lõbus, põhimõtteliselt öelda üritad pääseda midagi 206 00:14:52,470 --> 00:14:55,000 mida ei eksisteeri, ei kuulu teile. 207 00:14:55,000 --> 00:14:59,430 Seega veenduge, ja eriti null-indekseerimine, me ei taha - 208 00:14:59,430 --> 00:15:02,390 Nagu näiteks, kui meil on massiiv pikkusega 4, 209 00:15:02,390 --> 00:15:07,240 et massiivi indeks 4 ei eksisteeri, sest hakkame 0, null indeks. 210 00:15:07,240 --> 00:15:11,730 See saab teist laadi nagu jaoks silmuseid, kui hakkame 0. 211 00:15:11,730 --> 00:15:13,610 Nii lihtsalt hoida seda silmas pidades. 212 00:15:13,610 --> 00:15:22,590 Sa ei taha kunagi pääseda indeks array, mis on väljaspool sinu käeulatuses. 213 00:15:26,710 --> 00:15:32,560 Nii näeme nüüd, kuidas me suudame sellist juurdepääsu 214 00:15:32,560 --> 00:15:35,930 käsurea argumente, mis on möödunud sisse 215 00:15:35,930 --> 00:15:41,330 Aga kui te nägite string, argv on tegelikult stringi massiivi. 216 00:15:41,330 --> 00:15:45,740 Nii see tegelikult ei ole täisarv veel, kuid Caesari tahame tegeleda täisarvud. 217 00:15:45,740 --> 00:15:54,430 Õnneks on funktsioon loodud meie jaoks, mida saab tegelikult teisendada stringi täisarvuks. 218 00:15:54,430 --> 00:15:58,710 Ka siin me ei tegele kasutaja sisend, kuhu me sundides neid 219 00:15:58,710 --> 00:16:03,740 sisendkäibemaksu siin võti, nii et me ei saa tegelikult reprompt ja öelda, 220 00:16:03,740 --> 00:16:07,840 "Oh, anna mulle veel üks täisarv, ütleme, kui see ei kehti." 221 00:16:07,840 --> 00:16:10,540 Aga me ei vaja veel kontrollida õiget kasutusviisi. 222 00:16:10,540 --> 00:16:13,520 Aastal Caesar nad ainult lubatud edastada arv 1, 223 00:16:13,520 --> 00:16:18,030 ja nii nad peavad töötama. / Caesar ja siis nad peavad sulle arvu. 224 00:16:18,030 --> 00:16:23,660 Nii argc peab olema teatud arv. 225 00:16:23,660 --> 00:16:29,060 Mis number see oleks, kui nad peavad läbima sa. / Caesar ja siis võti? 226 00:16:29,060 --> 00:16:32,920 Mis on argc? >> [Üliõpilane] 2. >> Kaks. Täpselt. 227 00:16:32,920 --> 00:16:35,490 Nii et sa tahad veenduda, et argc on 2. 228 00:16:35,490 --> 00:16:39,620 Muidu sa põhimõtteliselt keelduda käivitada programmi. 229 00:16:39,620 --> 00:16:43,040 Aasta peamised see on funktsioon, mis ütleb, int main, 230 00:16:43,040 --> 00:16:47,360 nii siis me alati hea tava return 0 lõpus edukas programm. 231 00:16:47,360 --> 00:16:50,840 Nii et kui, ütleme, nad annavad sulle 3 käsurea argumente 2 asemel 232 00:16:50,840 --> 00:16:54,350 või sulle 1 näiteks siis mida sa saad teha on, mida sa tahad, et kontrollida, et 233 00:16:54,350 --> 00:16:59,900 ja siis return 1 öeldes, ei, ma ei saa jätkata selle programmi. 234 00:16:59,900 --> 00:17:03,190 [Üliõpilane] Ei saa olla ruumi oma teksti. >> Vabandust? 235 00:17:03,190 --> 00:17:06,780 [Üliõpilane] Ei saa olla ruumi teksti üritad varjata. 236 00:17:06,780 --> 00:17:08,480 Ah! 237 00:17:08,480 --> 00:17:11,280 Seoses teksti, et me üritame varjata, et tegelikult tuleb hiljem 238 00:17:11,280 --> 00:17:13,970 kui me anname seda teksti. 239 00:17:13,970 --> 00:17:18,260 Nii et praegu me lihtsalt aktsepteerimist käsureaargumendid tegeliku arvu, 240 00:17:18,260 --> 00:17:21,579 tegelik vahetustega Caesar krüpteerimist. 241 00:17:21,579 --> 00:17:27,569 [Üliõpilane] Miks sa vajad 2 asemel vaid 1 argc? Seal on kindlasti 1 number. 242 00:17:27,569 --> 00:17:32,200 Õigus. Põhjus, miks me peame 2 argc mitte 1. 243 00:17:32,200 --> 00:17:36,260 sest kui te käivitate programmi ja öelda. / Caesar või. / hello, 244 00:17:36,260 --> 00:17:38,280 et tegelikult loeb käsureal. 245 00:17:38,280 --> 00:17:43,020 Nii siis, et juba kulub 1 ja nii siis me sisestanud 1 extra. 246 00:17:45,030 --> 00:17:49,440 Nii et sa oled sisestanud tegelikult stringi käsurea argument. 247 00:17:49,440 --> 00:17:52,730 Mida sa teha tahad, sest Caesar tahame tegeleda täisarv, 248 00:17:52,730 --> 00:17:57,180 nii saad kasutada seda atoi funktsioon. 249 00:17:57,180 --> 00:18:02,850 Ja põhimõtteliselt, te kaotate seda stringi ja siis teid tagasi täisarv 250 00:18:02,850 --> 00:18:06,070 kui see on võimalik, et string täisarv. 251 00:18:06,070 --> 00:18:10,960 Nüüd mäletan, kui me tegeleme printf või getString, asjad niimoodi, 252 00:18:10,960 --> 00:18:13,390 me hulka raamatukogudes, mis on omased meile. 253 00:18:13,390 --> 00:18:19,450 Nii et alguses hakkame koos räsi tag standard I / O,. H, midagi sellist. 254 00:18:19,450 --> 00:18:22,430 Noh, atoi ei ole ühe nimetatud raamatukogud, 255 00:18:22,430 --> 00:18:26,600 nii et mida me peame tegema, on meil hõlmavad õigust raamatukogu eest. 256 00:18:26,600 --> 00:18:32,720 Nii meenutavad tagasi kiirtutvustus 1, kus vestlesin käsitsi funktsioon. 257 00:18:32,720 --> 00:18:37,110 Kirjutad mees oma terminali ja siis järgneb nimi funktsiooni. 258 00:18:37,110 --> 00:18:39,720 Ja nii, et avab terve nimekirja selle kasutamine, 259 00:18:39,720 --> 00:18:42,890 kuid samuti see avab mille raamatukogu, mis kuulub. 260 00:18:42,890 --> 00:18:47,000 Nii et ma jätan selle sulle kasutada käsitsi funktsiooni atoi 261 00:18:47,000 --> 00:18:53,360 ja aru saada, mis raamatukogu teil lisada, et oleks võimalik kasutada atoi funktsioon. 262 00:18:54,450 --> 00:18:57,670 Nii et meil on võti ja nüüd tegemist on saada lihttekstina 263 00:18:57,670 --> 00:19:01,820 ja et tegelikult saab olema kasutaja sisend, kuhu kiire. 264 00:19:01,820 --> 00:19:05,540 Käsil GetInt ja GetFloat, ja nii samas vaimus 265 00:19:05,540 --> 00:19:07,670 me hakkame tegelema getString. 266 00:19:07,670 --> 00:19:12,440 Aga sel juhul me ei pea tegema muud teha, kui või samas silmuseid, et kontrollida. 267 00:19:12,440 --> 00:19:14,480 GetString kindlasti annavad meile stringi, 268 00:19:14,480 --> 00:19:17,630 ja me ei kavatse varjata iganes kasutaja annab meile. 269 00:19:17,630 --> 00:19:23,770 Nii saab eeldada, et kõik need kasutaja ümbritsevat stringid on õiged. 270 00:19:23,770 --> 00:19:24,670 Suur. 271 00:19:24,670 --> 00:19:27,270 Siis kui sul on võti ja kui sul on tekst, 272 00:19:27,270 --> 00:19:31,660 nüüd Mis vasakul on teil encipher polegi. 273 00:19:31,660 --> 00:19:36,530 Lihtsalt kiiresti katta üle Lingo, polegi mida kasutaja annab teile, 274 00:19:36,530 --> 00:19:41,030 ja krüptotekstiga on see, mida sa jälle neid. 275 00:19:42,450 --> 00:19:45,850 Nii stringid, et oleks võimalik läbida tegelikult on täht 276 00:19:45,850 --> 00:19:48,550 sest me peame minema iga täht, 277 00:19:48,550 --> 00:19:51,390 saame aru, et stringid, kui me sellist koor tagasi kiht, 278 00:19:51,390 --> 00:19:54,130 me näeme, et nad on lihtsalt väga tähti. 279 00:19:54,130 --> 00:19:55,930 Üks on teise järel. 280 00:19:55,930 --> 00:20:01,690 Ja nii me ravib stringe nagu massiivid, sest nad on massiive tähemärki. 281 00:20:01,690 --> 00:20:05,640 Nii et teil on string nimega teksti, 282 00:20:05,640 --> 00:20:09,400 ja selles muutuv tekst on salvestatud See on CS50. 283 00:20:09,400 --> 00:20:15,680 Siis teksti indeks 0. oleks suur T-punktidele 1 oleks h jne 284 00:20:17,530 --> 00:20:23,970 Ja siis massiivid, mis argc näiteks args.c, 285 00:20:23,970 --> 00:20:27,090 nägime, et meil oli itereerime massiivi 286 00:20:27,090 --> 00:20:32,440 ja nii pidime itereerima alates i = 0 kuni i on väiksem kui pikkus. 287 00:20:32,440 --> 00:20:35,560 Nii et me peame mingi võimalus figuring mida pikkusega meie string 288 00:20:35,560 --> 00:20:37,090 kui me lähme itereerima üle. 289 00:20:37,090 --> 00:20:42,300 Õnneks jällegi on funktsioon meie jaoks olemas, kuigi hiljem CS50 290 00:20:42,300 --> 00:20:45,860 saate kindlasti suutma rakendada ja teha oma funktsioon 291 00:20:45,860 --> 00:20:48,260 mida saab arvutada pikkuse stringi. 292 00:20:48,260 --> 00:20:52,120 Aga nüüd me ei kavatse kasutada stringi pikkus, nii strlen. 293 00:20:52,120 --> 00:21:00,440 Jätate on string, ja siis tagasi sa int, mis tähistab pikkuse oma nöör. 294 00:21:00,440 --> 00:21:05,840 Vaatame näiteks, kuidas me võiksime olla võimeline itereerima üle tähtede jada 295 00:21:05,840 --> 00:21:08,470 ja midagi sellega. 296 00:21:08,470 --> 00:21:13,250 Mida me tahame teha, on itereerime iga märk string, 297 00:21:13,250 --> 00:21:19,150 ja mida me tahame teha, on meil printida tagasi iga märk 1 x 1 298 00:21:19,150 --> 00:21:22,060 välja arvatud lisame midagi selle kõrval. 299 00:21:22,060 --> 00:21:27,020 Nii alustame jaoks silmus. Int i = 0. 300 00:21:27,020 --> 00:21:30,070 Me läheme jäta ruumi seisukorras. 301 00:21:32,700 --> 00:21:36,840 Me tahame kinnitada, kuni jõuame stringi lõpuni, eks? 302 00:21:36,840 --> 00:21:41,340 Nii siis mida funktsioon annab meile stringi pikkusena? 303 00:21:41,340 --> 00:21:43,160 [Kuuldamatu õpilase vastus] 304 00:21:43,160 --> 00:21:46,420 See on pikkus käsurea argumente. 305 00:21:46,420 --> 00:21:50,650 Aga string tahame kasutada funktsiooni, mis annab meile stringi pikkusena. 306 00:21:50,650 --> 00:21:53,090 Nii et string pikkusega. 307 00:21:53,090 --> 00:21:57,130 Ja nii siis sa pead läbima string ta. 308 00:21:57,130 --> 00:21:59,760 See peab teadma, mida string on vaja arvutada pikkuse. 309 00:21:59,760 --> 00:22:03,160 Nii siis sel juhul me tegeleme string s. 310 00:22:04,790 --> 00:22:05,860 Suur. 311 00:22:05,860 --> 00:22:10,770 Nii siis mida me tahame teha, olgem printf. 312 00:22:10,770 --> 00:22:14,850 Nüüd tahame tegeleda tähemärki. Me tahame välja trükkida iga märk. 313 00:22:14,850 --> 00:22:22,150 Kui sa tahad seda välja trükkida float, siis oleks kasutada kohatäide nagu% f. 314 00:22:22,150 --> 00:22:24,580 Mis int kasutad% d. 315 00:22:24,580 --> 00:22:30,890 Ja nii sarnaselt, kus tegelane te kasutate% c ütlema, ma lähen tuleb trükkimine iseloomu 316 00:22:30,890 --> 00:22:34,570 mis on talletatud muutuv. 317 00:22:34,570 --> 00:22:40,840 Nii et meil on see, ja lisame aja ja ruumi ta. 318 00:22:40,840 --> 00:22:45,430 Mis märk on meil kasutada? 319 00:22:45,430 --> 00:22:49,780 Me ei kavatse kasutada mis tahes laadi me oleme string. 320 00:22:49,780 --> 00:22:52,890 Siis me ei kavatse olla kasutades midagi nööriga, 321 00:22:52,890 --> 00:22:56,420 kuid me tahame olla juurdepääs teatud laadi seal. 322 00:22:56,420 --> 00:23:02,740 Nii et kui string on lihtsalt massiivi, siis kuidas me juurdepääs elemendid massiivi? 323 00:23:02,740 --> 00:23:06,480 Meil on need nurksulud, ja siis me paneme indeks seal. 324 00:23:06,480 --> 00:23:11,820 Nii et meil on nurksulgudes. Meie indeks Antud juhul saame lihtsalt kasutada i. Täpselt. 325 00:23:15,290 --> 00:23:22,370 Nii et siin me ütleme me ei kavatse olla prindite iseloomu järgneb dot ja ruumi, 326 00:23:22,370 --> 00:23:30,870 ja et märk saab olema nda kirja meie string s. 327 00:23:32,920 --> 00:23:39,330 Ma lihtsalt salvestada et. Okei. 328 00:23:42,510 --> 00:23:46,840 Nüüd ma lähen jooksma string pikkusega. 329 00:23:46,840 --> 00:23:53,440 Seega oli meil string nimega OMG, ja nüüd on see rõhutas veelgi. 330 00:23:53,440 --> 00:23:57,870 Samamoodi oletame, et me tegelikult tahame saada stringi kasutaja. 331 00:23:57,870 --> 00:23:59,580 Kuidas võiks me seda teeme? 332 00:23:59,580 --> 00:24:01,610 Enne, kui me saime int? 333 00:24:01,610 --> 00:24:08,040 Me ütlesime GetInt, eks? Kuid see ei ole int, niiet getString. 334 00:24:11,780 --> 00:24:17,770 Teeme string pikkusega. Siin ei sisestanud konkreetse kiire. 335 00:24:17,770 --> 00:24:19,940 Nii et ma ei tea. 336 00:24:19,940 --> 00:24:23,820 Ma lähen panen nime siin ja nii siis ma saan üks nendest asjadest 337 00:24:23,820 --> 00:24:29,600 kus ma anda sõna iga tähe või midagi sellist. Lahe. 338 00:24:29,600 --> 00:24:31,900 Nii et string pikkusega. 339 00:24:33,000 --> 00:24:34,640 Nii et oleme tagasi Caesar. 340 00:24:34,640 --> 00:24:38,620 Meil on mõned vahendid, kuidas me itereerime stringi, 341 00:24:38,620 --> 00:24:41,250 kuidas me juurdepääs iga element. 342 00:24:41,250 --> 00:24:44,720 Nii et nüüd saame tagasi programmi. 343 00:24:44,720 --> 00:24:48,650 Nagu ütlesin, on ASCII tabelis, teie parim sõber, 344 00:24:48,650 --> 00:24:52,300 sa lähed, et näha numbrid, mis on seotud iga täht. 345 00:24:52,300 --> 00:24:55,900 Nii et siin öelda meie polegi on mul uimane! 346 00:24:55,900 --> 00:25:01,090 Siis kõik need tegelased läheb on number ja ASCII väärtus sellega seotud, 347 00:25:01,090 --> 00:25:04,710 isegi ülakoma isegi ruumi, isegi hüüumärk, 348 00:25:04,710 --> 00:25:06,600 et sa tahad, et hoida seda meeles. 349 00:25:06,600 --> 00:25:12,360 Nii ütleme meie peamiste et kasutaja kuuluvad nende käsurea argument on 6. 350 00:25:12,360 --> 00:25:17,770 See tähendab, et esimene täht, mis on I, mis on esindatud 73, 351 00:25:17,770 --> 00:25:25,610 soovite naasta neid iganes kirjas on esindatud ASCII väärtus 73 + 6. 352 00:25:25,610 --> 00:25:29,020 Sellisel juhul oleks 79. 353 00:25:30,840 --> 00:25:35,040 Nüüd tahame minna järgmisele iseloomu. 354 00:25:35,040 --> 00:25:40,960 Nii et järgmine aasta indeks 1 polegi oleks ülakoma. 355 00:25:40,960 --> 00:25:46,780 Kuid pidage meeles, me tahame ainult encipher tähed. 356 00:25:46,780 --> 00:25:50,040 Nii et me tahame veenduda, et ülakoma tegelikult jääb samaks, 357 00:25:50,040 --> 00:25:54,310 et me ei muuda 39-lt iganes 45 on. 358 00:25:54,310 --> 00:25:57,150 Me tahame hoida seda ülakoma. 359 00:25:57,150 --> 00:26:00,780 Nii et me tahame meeles pidada, et ainult encipher tähed 360 00:26:00,780 --> 00:26:04,560 sest me tahame kõik teised sümbolid jäävad samaks meie programmis. 361 00:26:04,560 --> 00:26:07,130 Teine asi, mida me tahame on säilitada kapitaliseeritust. 362 00:26:07,130 --> 00:26:10,250 Nii et kui teil on suurtähe, see peaks jääma suur. 363 00:26:10,250 --> 00:26:12,830 Lowercases peaks jääma väiketähti. 364 00:26:13,620 --> 00:26:19,480 Nii et mõned kasulikud funktsioonid, et oleks võimalik toime tulla ainult enciphering tähed 365 00:26:19,480 --> 00:26:22,380 ja hoida säilitades kapitaliseeritus asjad 366 00:26:22,380 --> 00:26:25,130 on isalpha, isupper, islower funktsioone. 367 00:26:25,130 --> 00:26:29,270 Ja nii need funktsioonid, mis tagastavad teile tõeväärtuse. 368 00:26:29,270 --> 00:26:34,180 Põhimõtteliselt õige või vale. Kas see suur? Kas see täht? 369 00:26:34,180 --> 00:26:37,180 Kas see kirjas sisuliselt. 370 00:26:37,180 --> 00:26:41,070 Nii et siin on 3 näiteid, kuidas te kasutate seda funktsiooni. 371 00:26:41,070 --> 00:26:47,060 Põhimõtteliselt võid katsetada, kas väärtus tagastatakse teile, et funktsioon on õige või vale 372 00:26:47,060 --> 00:26:49,400 põhineb sellel sisend. 373 00:26:49,400 --> 00:26:54,880 Kas ei šifreerimine midagi või salakiri see või veenduge, et see on suur jne 374 00:26:54,880 --> 00:27:01,080 [Üliõpilane] Kas sa lihtsalt selgitada neile veidi rohkem ja kuidas neid kasutada? >> Jah, kindlasti. 375 00:27:01,080 --> 00:27:08,470 Nii et kui me vaatame tagasi, siin on meil kapitali ma, eks? 376 00:27:08,470 --> 00:27:14,550 Nii et me teame, et ma läheb O sest ma + 6 on O. 377 00:27:14,550 --> 00:27:18,740 Aga me tahame veenduda, et O saab olema kapitali O. 378 00:27:18,740 --> 00:27:22,940 Nii et põhimõtteliselt, et on selline muutu meie panus. 379 00:27:22,940 --> 00:27:26,870 Niisiis, kas see on suur või mitte, selline muuta nii, et me tegeleme sellega. 380 00:27:26,870 --> 00:27:32,360 Siis kui me kasutame isupper funktsioon selle konkreetse indeksi 381 00:27:32,360 --> 00:27:36,480 nii isupper ("mina"), mis tagastab meile tõsi, et me teame, et see on ülemine. 382 00:27:36,480 --> 00:27:40,360 Siis põhines sellel, et hiljem me astume valem 383 00:27:40,360 --> 00:27:42,750 et teid kasutades suunata asju Caesar, 384 00:27:42,750 --> 00:27:46,560 nii siis põhimõtteliselt, seal saab olema veidi erinev kui see on suur 385 00:27:46,560 --> 00:27:50,670 erinevalt väiketähtedeks. Mõtet? 386 00:27:51,020 --> 00:27:52,760 Jah. Pole muret. 387 00:27:54,900 --> 00:27:58,990 Ma rääkisin natuke lisades 6 kirja, mis ei ole päris mõtet 388 00:27:58,990 --> 00:28:05,500 välja arvatud siis, kui me sellist aru, et need märgid 389 00:28:05,500 --> 00:28:08,920 on selline vahetatavad täisarvud. 390 00:28:08,920 --> 00:28:11,250 Mis me teeme, on meil selline kasutamine kaudsete valu. 391 00:28:11,250 --> 00:28:18,100 Me läheme sisse casting veidi hiljem, kui te võtate raha ja sa muuta see eri tüüpi 392 00:28:18,100 --> 00:28:20,440 kui see algselt oli. 393 00:28:20,440 --> 00:28:25,910 Aga see pset me saaks sellist vaheldumisi kasutada sümbolit 394 00:28:25,910 --> 00:28:30,880 ja vastavad täisarvu. 395 00:28:30,880 --> 00:28:35,140 Nii et kui sa lihtsalt ümbritseda sümbol lihtsalt ülakoma, 396 00:28:35,140 --> 00:28:40,390 siis sa pead olema võimeline töötama seda täisarvud, käsitledes seda kui täisarv. 397 00:28:40,390 --> 00:28:48,040 Nii kapitali C puudutab 67. Väiketähed f puudutab 102. 398 00:28:48,040 --> 00:28:51,480 Jällegi, kui sa tahad teada, need väärtused, vaata oma ASCII tabelis. 399 00:28:51,480 --> 00:28:56,160 Nii et lähme sisse mõned näited sellest, kuidas sa võiksid lahutada ja liita, 400 00:28:56,160 --> 00:29:03,130 kuidas tegelikult võite tõesti töötavad need märgid, kasutada neid vaheldumisi. 401 00:29:03,870 --> 00:29:11,350 Ma ütlen, et ASCIIMath läheb arvutada, lisades märgi täisarv 402 00:29:11,350 --> 00:29:17,590 ja kuvab saadud iseloomu, samuti sellest tulenev ASCII väärtus. 403 00:29:17,590 --> 00:29:22,290 Ja siin ma räägin - we'll tegelevad selle osa hiljem - 404 00:29:22,290 --> 00:29:29,100 Aga põhimõtteliselt ma väidan, et kasutaja peaks ütlema joosta ASCIIMath koos võtmega, 405 00:29:29,100 --> 00:29:30,880 ja ma väidan, et see võti saab olema number 406 00:29:30,880 --> 00:29:34,600 kellega me kavatseme lisada see märk. 407 00:29:34,600 --> 00:29:38,560 Nii et siin märgata, et kuna ma olen nõudlik võti, 408 00:29:38,560 --> 00:29:40,590 kuna ma olen nõudlik, et nad annavad mulle 1 asi, 409 00:29:40,590 --> 00:29:45,600 Ma tahan ainult nõustuda. / Asciimath ja võti. 410 00:29:45,600 --> 00:29:49,330 Ma lähen nõuda argc on võrdne 2. 411 00:29:49,330 --> 00:29:54,360 Kui see ei ole, siis ma lähen tagasi 1 ja programm sulgub. 412 00:29:55,070 --> 00:29:58,540 Nii et ma väidan, et võtit ei kavatse olla esimene käsurea argument, 413 00:29:58,540 --> 00:30:05,080 see saab olema teine, ja nagu näete siin, 414 00:30:05,080 --> 00:30:11,790 Ma lähen keerata, et täisarv. 415 00:30:15,740 --> 00:30:19,230 Siis ma lähen seatud märk olema r. 416 00:30:19,230 --> 00:30:23,970 Pange tähele, et tüüpi muutuja chr on tegelikult täisarv. 417 00:30:23,970 --> 00:30:30,480 Nii, et ma olen võimeline kasutama r täisarvuna on poolt encasing see nende ülakoma. 418 00:30:33,850 --> 00:30:40,560 Nii tagasi meie printf avaldusega, kus meil on kohatäide iseloomu 419 00:30:40,560 --> 00:30:43,590 ja siis kohatäide täisarv, 420 00:30:43,590 --> 00:30:49,450 märk on esindatud chr, ja täisarv on võti. 421 00:30:49,450 --> 00:30:54,320 Ja nii siis me lähme ka tulemus lisada 2 kokku. 422 00:30:54,320 --> 00:30:58,420 Nii et me ei kavatse lisada r + mis iganes võti on, 423 00:30:58,420 --> 00:31:03,520 ja siis me läheme välja printida tulemus seda. 424 00:31:06,210 --> 00:31:14,220 Nii et teeme asciimath. See on ajakohane, niiet lihtsalt joosta asciimath. 425 00:31:14,220 --> 00:31:18,290 Oh, aga vaata, see ei tee midagi, sest me tegelikult ei anna see võti. 426 00:31:18,290 --> 00:31:23,850 Nii et kui ta lihtsalt andis 1, meie peamine ülesanne, see lihtsalt tagasi meie juurde tagasi. 427 00:31:23,850 --> 00:31:29,250 Siis olgem läbida võti. Keegi mulle number. >> [Üliõpilane] 4. 428 00:31:29,250 --> 00:31:30,920 4. Okei. 429 00:31:30,920 --> 00:31:39,280 Nii r kasvanud 4 läheb meile v, mis vastab ASCII väärtus 118. 430 00:31:39,280 --> 00:31:43,880 Nii et siis selline loogiline, et - 431 00:31:43,880 --> 00:31:51,250 Tegelikult ma saan küsida, mis sa arvad ASCII väärtus r on kui r + 4 on 118? 432 00:31:53,070 --> 00:31:55,470 Siis jah, r on 114. 433 00:31:55,470 --> 00:32:03,010 Nii et kui sa vaatad ASCII tabel siis, jumala eest, te näete, et r on esindatud 114. 434 00:32:03,010 --> 00:32:08,610 Nüüd, et me teame, et me saame lisada täisarvude tähemärki, see tundub üsna lihtne. 435 00:32:08,610 --> 00:32:12,740 Me lihtsalt läheb itereerime stringi nagu nägime näiteks enne. 436 00:32:12,740 --> 00:32:17,170 Me kontrollime, kas see on kirjas. 437 00:32:17,170 --> 00:32:20,420 Kui on, siis me minema seda iganes võti on. 438 00:32:20,420 --> 00:32:23,650 Päris lihtne, välja arvatud, kui saad niimoodi, 439 00:32:23,650 --> 00:32:32,140 näed, et z, keda esindab 122, siis annaks sulle teistsuguse iseloomuga. 440 00:32:32,140 --> 00:32:37,770 Me tahame tegelikult jäävad meie tähestik, eks? 441 00:32:37,770 --> 00:32:43,180 Nii et me peame välja mõtlema mingi viisi liiki ümbriste ümber. 442 00:32:43,180 --> 00:32:47,190 Kui jõuad Teed ja soovite suurendada teatud arvu, 443 00:32:47,190 --> 00:32:51,230 sa ei taha minna kaugemale ASCII tähestiku jagu; 444 00:32:51,230 --> 00:32:54,140 soovite murrab tagasi kõik viis A. 445 00:32:54,140 --> 00:32:58,550 Kuid pidage meeles, sa ikka säilitada puhul. 446 00:32:58,550 --> 00:33:00,980 Nii et teades, et kirjad ei ole muutunud sümbolid 447 00:33:00,980 --> 00:33:05,290 nagu Sümboleid ei kavatse muutuvad samuti. 448 00:33:05,290 --> 00:33:08,170 Viimase pset sa kindlasti ei vaja, 449 00:33:08,170 --> 00:33:14,310 kuid võimalus oli rakendada oma ahne pset abil moodul funktsioon. 450 00:33:14,310 --> 00:33:17,230 Aga nüüd me oleme tegelikult läheb vaja kasutada moodul, 451 00:33:17,230 --> 00:33:19,900 niiet minge üle selle natuke. 452 00:33:19,900 --> 00:33:26,920 Sisuliselt kui sul on x modulo y, mis annab teile ülejäänud x jagatud y. 453 00:33:26,920 --> 00:33:30,930 Siin on mõned näited siin. Meil on 27% 15. 454 00:33:30,930 --> 00:33:36,200 Põhimõtteliselt, kui sa lahutama 15 alates 27 kui palju kordi kui võimalik ilma saada negatiivne 455 00:33:36,200 --> 00:33:39,060 siis sa teenid 12 üle jäänud. 456 00:33:39,060 --> 00:33:44,650 Nii et on selline nagu on matemaatika kontekstis, kuid kuidas me saame tegelikult seda kasutada? 457 00:33:44,650 --> 00:33:47,100 See saab olla kasulik meie wrapover. 458 00:33:47,100 --> 00:33:55,420 Selleks ütleme lihtsalt palusin kõik jagamiseks 3 gruppi. 459 00:33:55,420 --> 00:33:58,010 Mõnikord sa seda rühmades ja midagi sellist. 460 00:33:58,010 --> 00:34:01,320 Ütle Ma ütlesin: "Okei, ma tahan teid kõiki jagada 3." 461 00:34:01,320 --> 00:34:04,240 Kuidas võiks sa seda tegid? 462 00:34:04,240 --> 00:34:06,810 [Kuuldamatu õpilase vastus] Jah, täpselt. Krahv välja. Okei. 463 00:34:06,810 --> 00:34:10,260 Olgem tegelikult teha. Kas sa tahad alustada? 464 00:34:10,260 --> 00:34:13,810 [Õpilased lugedes väljas] 1, 2, 3, 4. 465 00:34:13,810 --> 00:34:16,620 Kuid pidage meeles ... >> [Üliõpilane] Oh, vabandust. 466 00:34:16,620 --> 00:34:18,730 See on tõesti hea punkt. 467 00:34:18,730 --> 00:34:24,130 Sa ütlesid, 4, kuid me tegelikult tahame teile öelda 1, sest me tahame ainult 3 gruppi. 468 00:34:24,130 --> 00:34:30,159 Niisiis, kuidas - Ei, see on tõesti hea näide, sest siis kuidas võib teile öelda 1? 469 00:34:30,159 --> 00:34:33,370 Mis seos 4 ja 1? 470 00:34:33,370 --> 00:34:36,760 Noh, 4 MOD 3 1. 471 00:34:36,760 --> 00:34:41,460 Nii et kui te jätkate, siis oleks 2. 472 00:34:41,460 --> 00:34:44,540 Nii et meil on 1, 2, 3, 1, 2. 473 00:34:44,540 --> 00:34:49,420 Jällegi, sa oled tegelikult 5. isik. Kuidas sa tead, et öelda 2 5 asemel? 474 00:34:49,420 --> 00:34:53,760 Te ütlete 5 mod 3 on 2. 475 00:34:53,760 --> 00:34:59,100 Ma tahan näha, kuidas paljud rühmad on 3 on üle jäänud, siis mis järjekorras ma olen! 476 00:34:59,100 --> 00:35:02,860 Ja nii siis kui me jätkame mööda kogu ruumi, 477 00:35:02,860 --> 00:35:07,760 siis näeme, et me oleme alati tegelikult kohaldavad mod funktsiooni ise 478 00:35:07,760 --> 00:35:09,990 et selline loota maha. 479 00:35:09,990 --> 00:35:14,490 See on rohkem selline materiaalne näide sellest, kuidas sa võiksid kasutada mooduli 480 00:35:14,490 --> 00:35:17,960 sest ma olen kindel, et enamik meist on ilmselt läbi käinud, et protsess 481 00:35:17,960 --> 00:35:19,630 kus me oleme olnud loota maha. 482 00:35:19,630 --> 00:35:21,840 Iga küsimustele mooduli? 483 00:35:21,840 --> 00:35:25,360 See on päris oluline mõista, mis on see, 484 00:35:25,360 --> 00:35:28,640 nii et ma tahan veenduda, te aru. 485 00:35:28,640 --> 00:35:34,660 [Üliõpilane] Kui ei ole ülejäänud, see annab teile tegelik number? 486 00:35:34,660 --> 00:35:40,430 Kui üks esimesi neist 3 olid seda teinud, oleks ta pidanud seda, mida nad tegelikult olid, 487 00:35:40,430 --> 00:35:43,310 või oleks see andnud neile [kuuldamatu] >> See on hea küsimus. 488 00:35:43,310 --> 00:35:48,750 Kui puudub ülejäänu moodul - nii et teil on 6 mod 3 - 489 00:35:48,750 --> 00:35:52,340 et tegelikult annab teile tagasi 0. 490 00:35:53,670 --> 00:35:57,290 Me räägime, et natuke hiljem. 491 00:35:58,810 --> 00:36:07,720 Ah jaa, näiteks 3. isiku - 3 mod 3 on tegelikult 0, kuid ta ütles 3. 492 00:36:07,720 --> 00:36:14,900 Nii et see on nagu sisemine saagi, näiteks 493 00:36:14,900 --> 00:36:17,620 nagu okei, kui moderaator on 0, siis ma lähen 3. isikule. 494 00:36:17,620 --> 00:36:22,740 Aga me võtame arvesse omamoodi kuidas me võiksime taha tegeleda sellega, mida 0 on hiljem. 495 00:36:22,740 --> 00:36:32,750 Nii et nüüd me kuidagi on viis kaardistamine Teed paremale kirja. 496 00:36:32,750 --> 00:36:34,920 Nüüd oleme läbi käinud neid näiteid, 497 00:36:34,920 --> 00:36:37,880 me sellist näha, kuidas Caesar võiks töötada. 498 00:36:37,880 --> 00:36:42,640 Näete 2 tähestikku ja seejärel näed neid nihutades. 499 00:36:42,640 --> 00:36:44,430 Nii et proovime ja väljendada, et seoses valem. 500 00:36:44,430 --> 00:36:46,940 See valem on tegelikult antud teile spec, 501 00:36:46,940 --> 00:36:52,070 kuid olgem sellist vaadata läbi, mida iga muutuja tähendab. 502 00:36:52,070 --> 00:36:55,000 Meie lõpptulemus saab olema krüptotekstiga. 503 00:36:55,000 --> 00:36:58,300 Nii et see ütleb, et nda iseloomu krüptotekstiga 504 00:36:58,300 --> 00:37:02,500 läheb vastavad nda iseloomu polegi. 505 00:37:02,500 --> 00:37:08,130 See on loogiline, sest me tahame alati vooder neid asju. 506 00:37:08,130 --> 00:37:13,480 Nii et see saab olema nda iseloomu krüptotekstiga pluss k, mis on meie peamine - 507 00:37:13,480 --> 00:37:17,230 et mõistlik - ja siis meil on see mod 26. 508 00:37:17,230 --> 00:37:19,860 Jäta tagasi, kui meil oli zed 509 00:37:19,860 --> 00:37:24,190 me ei taha sattuda iseloomu, nii et me tahtsime mod see 510 00:37:24,190 --> 00:37:26,540 ja sellist ümbritsev tähestikku. 511 00:37:26,540 --> 00:37:33,430 Pärast Teed sa ei tahaks minna a, b, c, d, kuni sul õige number. 512 00:37:33,430 --> 00:37:44,690 Nii et me teame, et Zed, kui + 6, annaks meile f sest pärast Teed on a, b, c, d, e, f. 513 00:37:44,690 --> 00:37:52,530 Nii et pidagem meeles me teame kindlasti, et Zed + 6 läheb meile f. 514 00:37:52,530 --> 00:38:03,530 ASCII väärtused on z 122 ja f on 102. 515 00:38:03,530 --> 00:38:10,570 Nii et me peame leidma mingi viisi muutes meie Caesar valem annab meile 102 516 00:38:10,570 --> 00:38:13,590 pärast pildistamist 122. 517 00:38:13,590 --> 00:38:19,550 Nii et kui me lihtsalt kohaldada selle valemi ("z" + 6)% 26, mis tegelikult annab teile 24 518 00:38:19,550 --> 00:38:25,980 sest 122 + 6 on 128 128% 26 annab sulle 24 ülejäänud. 519 00:38:25,980 --> 00:38:29,140 Aga see tegelikult ei tähenda f. See pole kindlasti 102. 520 00:38:29,140 --> 00:38:33,590 See on ka mitte 6. tähestiku tähe. 521 00:38:33,590 --> 00:38:41,550 Nii et ilmselt peame olema mingi võimalus tutistamine see natuke. 522 00:38:42,970 --> 00:38:51,340 Seoses regulaarsete tähestik, me teame, et z on 26. täht ja f on 6.. 523 00:38:51,340 --> 00:38:55,460 Aga me oleme infotehnoloogia, nii et me läheme indeks on 0. 524 00:38:55,460 --> 00:39:00,690 Siis asemel z on number 26, me ei kavatse öelda, et see number 25. 525 00:39:00,690 --> 00:39:02,630 sest on 0. 526 00:39:02,630 --> 00:39:04,770 Nii et nüüd lähme kohaldatakse seda valemit. 527 00:39:04,770 --> 00:39:11,710 Meil on z esindatud 25 + 6, mis annab sulle 31. 528 00:39:11,710 --> 00:39:15,790 Ja 31 mod 26 annab teile 5, nagu ülejäänud. 529 00:39:15,790 --> 00:39:20,500 See on täiuslik, sest me teame, et f on 5. tähestiku tähe. 530 00:39:20,500 --> 00:39:26,400 Aga see ikka ei ole f, eks? See ikka ei ole 102. 531 00:39:26,400 --> 00:39:32,730 Nii siis selle pset, väljakutse on püüdnud välja selgitada suhe 532 00:39:32,730 --> 00:39:36,910 vahel vahetustoiminguteks need ASCII väärtused ja tähestikregister. 533 00:39:36,910 --> 00:39:40,280 Sisuliselt, mida sa teha tahad, sa tahad hakata läbi ASCII väärtused, 534 00:39:40,280 --> 00:39:45,390 aga siis sa tahad kuidagi tõlkida seda arvesse tähestikregister 535 00:39:45,390 --> 00:39:52,610 Seejärel arvutab mida kirjas peaks olema - Põhimõtteliselt, mida tema tähestikregister 536 00:39:52,610 --> 00:39:57,660 Euroopa salakiri iseloomu - siis tõlkida, et tagasi ASCII väärtused. 537 00:39:57,660 --> 00:40:04,870 Nii et kui sa võtab välja oma ASCII tabelis, proovige ja leida seoseid, ütleme, 102 ja 5. 538 00:40:04,870 --> 00:40:10,440 või 122 ja 25. 539 00:40:12,140 --> 00:40:15,690 Oleme saanud meie võti käsurea argumente, oleme saanud polegi, 540 00:40:15,690 --> 00:40:17,520 oleme šifreeritud ta. 541 00:40:17,520 --> 00:40:19,820 Nüüd kõik oleme vasakule teha, on seda trükkida. 542 00:40:19,820 --> 00:40:22,040 Me võiksime seda teha paari erinevalt. 543 00:40:22,040 --> 00:40:24,570 Mida saaksime teha, on tegelikult printida kui me läheme mööda. 544 00:40:24,570 --> 00:40:28,250 Nagu me itereerime märkide string, 545 00:40:28,250 --> 00:40:31,660 me võiks lihtsalt lihtsalt printida küll siis, kui me seda arvutada. 546 00:40:31,660 --> 00:40:36,030 Teise võimalusena võid ka seda säilitada massiivi ja on array tähemärki 547 00:40:36,030 --> 00:40:39,280 ja lõpus itereerima üle, et kogu massiivi ja printida. 548 00:40:39,280 --> 00:40:40,980 Nii et teil on paar võimalust selle eest. 549 00:40:40,980 --> 00:40:47,280 Ja pidage meeles, et% c saab olema kohatäide trükkimine iseloomu. 550 00:40:47,280 --> 00:40:50,420 Nii et meil on Caesari, ja nüüd me liigume edasi Vigenere, 551 00:40:50,420 --> 00:40:57,580 mis on väga sarnane Caesar kuid lihtsalt veidi keerulisem. 552 00:40:57,580 --> 00:41:03,310 Nii et sisuliselt koos Vigenere on sa lähed olema läbivad märksõna. 553 00:41:03,310 --> 00:41:06,510 Nii et selle asemel number, sa lähed on string, 554 00:41:06,510 --> 00:41:09,200 ja nii see läheb tegutseda märksõna. 555 00:41:09,200 --> 00:41:14,440 Siis, nagu tavaliselt, sa lähed, et saada küsima string kasutaja 556 00:41:14,440 --> 00:41:19,050 ja siis encipher ja siis anda neile krüptotekstiga tagasi. 557 00:41:19,050 --> 00:41:24,650 Nii nagu ma ütlesin, see on väga sarnane Caesar, välja arvatud asemel nihkub teatav arv, 558 00:41:24,650 --> 00:41:30,620 number on tegelikult muutu iga kord alates märgi iseloomu. 559 00:41:30,620 --> 00:41:34,890 Esindada et tegelik arv nihutada, see esindab klaviatuuri tähed. 560 00:41:34,890 --> 00:41:43,150 Nii et kui sisestate nihe, näiteks, siis oleks vastavad nihe 0. 561 00:41:43,150 --> 00:41:45,900 Nii et see on jälle tagasi tähestikregister. 562 00:41:45,900 --> 00:41:49,100 Mis võib olla kasulik, kui te näete, et me tegelikult tegelevad ASCII väärtused 563 00:41:49,100 --> 00:41:51,790 samuti kirjad, samuti tähestikregistris, 564 00:41:51,790 --> 00:41:58,020 võib-olla leida või teha oma ASCII tabel, mis näitab tähestikuline indeks 0 kuni 25, 565 00:41:58,020 --> 00:42:03,750 kaudu z, ja ASCII väärtused, et saaksite liiki vaata suhe 566 00:42:03,750 --> 00:42:07,020 ja visandada ja püüda leida mõned mustrid. 567 00:42:07,020 --> 00:42:11,010 Samamoodi, kui sa olid suunamisest teatud näiteks f - 568 00:42:11,010 --> 00:42:21,110 ja see on kas väikese või suure algustähega f - siis oleks vasta-5. 569 00:42:21,110 --> 00:42:24,180 Kas me oleme hea nii palju? 570 00:42:25,770 --> 00:42:30,050 Valem Vigenere on natuke erinev. 571 00:42:30,050 --> 00:42:32,960 Põhimõtteliselt te näete, et see on nagu Caesar, 572 00:42:32,960 --> 00:42:37,390 Kuid selle asemel, et lihtsalt k meil k indeks j. 573 00:42:37,390 --> 00:42:44,810 Pange tähele, et me ei kasuta ma, sest sisuliselt, pikkus märksõna 574 00:42:44,810 --> 00:42:49,850 ei pruugi pikkus meie krüptotekstiga. 575 00:42:49,850 --> 00:42:56,130 See on natuke selgem, kui me näeme näiteks, et mul on natuke hiljem. 576 00:42:56,130 --> 00:43:03,160 Põhimõtteliselt, kui sa jooksed oma programmi märksõnaks Ohai, 577 00:43:03,160 --> 00:43:08,560 siis see tähendab, et iga kord, Ohai saab olema oma vahetuses. 578 00:43:08,560 --> 00:43:11,060 Nii et olenevalt millisel positsioonil sa oled oma märksõna, 579 00:43:11,060 --> 00:43:15,800 sa lähed minema oma teatud krüptotekstiga iseloomu selle summa võrra. 580 00:43:15,800 --> 00:43:19,630 Jällegi, nagu Caesar, tahame veenduda, et me säilitame kapitaliseeritus asjad 581 00:43:19,630 --> 00:43:22,900 ja me ainult šifreerimine tähti, mitte märke või tühikuid. 582 00:43:22,900 --> 00:43:26,330 Nii vaatame tagasi Caesar funktsioonide kohta, mida olete kasutanud, 583 00:43:26,330 --> 00:43:32,570 nii, et sa otsustada, kuidas suunata asju ja kohaldada seda oma programmi siin. 584 00:43:32,570 --> 00:43:35,260 Nii et olgem map seda. 585 00:43:35,260 --> 00:43:39,680 Meil on polegi, et oleme saanud, et kasutaja getString 586 00:43:39,680 --> 00:43:44,090 ütlen seda ... on CS50! 587 00:43:44,090 --> 00:43:47,090 Siis on meil märksõnaks Ohai. 588 00:43:47,090 --> 00:43:50,930 Esimese 4 tähemärki on päris lihtne. 589 00:43:50,930 --> 00:43:55,580 Me teame, et T läheb nihutatakse o, 590 00:43:55,580 --> 00:44:01,990 siis h läheb nihutatakse h, i läheb nihutatakse. 591 00:44:01,990 --> 00:44:04,610 Siin näed, et on 0, 592 00:44:04,610 --> 00:44:11,940 nii siis lõpuks väärtus on tegelikult just sama kirja nagu enne. 593 00:44:11,940 --> 00:44:15,250 Siis s nihutatakse i. 594 00:44:15,250 --> 00:44:19,370 Aga siis on need perioodid siin. 595 00:44:19,370 --> 00:44:25,960 Me ei taha encipher, et nii siis me ei muuda seda miski 596 00:44:25,960 --> 00:44:31,280 ja lihtsalt välja printida jooksul muutumatuks. 597 00:44:31,280 --> 00:44:38,020 [Üliõpilane] Ma ei saa aru, kuidas sa tead, et see nihutatakse - Kust sa - >> Oh, vabandust. 598 00:44:38,020 --> 00:44:41,620 Ülaosas siin näed, et käsurea argument Ohai siin, 599 00:44:41,620 --> 00:44:43,740 et see saab olema märksõna. 600 00:44:43,740 --> 00:44:49,550 Ja nii põhimõtteliselt, sa jalgrattaga üle tähemärki märksõna. 601 00:44:49,550 --> 00:44:52,020 [Üliõpilane] Nii o läheb käiguvahetus sama - 602 00:44:52,020 --> 00:44:56,260 Nii o vastab teatud arv tähestikus. 603 00:44:56,260 --> 00:44:58,400 [Üliõpilane] Õigus. Aga kust sa CS50 osaliselt? 604 00:44:58,400 --> 00:45:02,540 Oh. See on getString kus sa oled nagu "Andke mulle string kodeerida." 605 00:45:02,540 --> 00:45:07,510 [Üliõpilane] Nad annan sulle selle argumendi soovid vahetada 606 00:45:07,510 --> 00:45:09,380 ja siis saate küsida oma esimese stringi. >> Jah. 607 00:45:09,380 --> 00:45:12,440 Nii et kui nad käivitada programmi, nad ei kavatse ka märksõna 608 00:45:12,440 --> 00:45:14,740 oma käsurea argumente kui need käivitada. 609 00:45:14,740 --> 00:45:19,740 Siis kui olete kontrollinud, et nad on tegelikult andnud teile 1 ja mitte rohkem, mitte vähem 610 00:45:19,740 --> 00:45:23,750 siis sa lähed küsima neid string, ütlevad: "Anna mulle string." 611 00:45:23,750 --> 00:45:27,630 Nii et kui sellisel juhul nad olen andnud teile See ... on CS50! 612 00:45:27,630 --> 00:45:32,090 Nii et siis sa lähed kasutada seda ja kasutavad Ohai ja itereerime. 613 00:45:32,090 --> 00:45:38,200 Pange tähele, et siin me vahele üle krüptides perioodid, 614 00:45:38,200 --> 00:45:51,660 kuid seoses meie positsiooni Ohai, kõrval üks me kasutasime o. 615 00:45:51,660 --> 00:45:54,990 Sel juhul on see natuke raskem näha, sest see on 4 616 00:45:54,990 --> 00:45:57,710 niiet jätkuvalt natuke. Lihtsalt jääda koos minuga siin. 617 00:45:57,710 --> 00:46:02,960 Siis on meil i ja s, mis seejärel tõlkida o ja h võrra. 618 00:46:02,960 --> 00:46:09,370 Siis on meil ruumi ja nii siis me teame, et me ei kavatse encipher ruumid. 619 00:46:09,370 --> 00:46:18,930 Aga teate, et asemel läheb sel hetkel siin, 620 00:46:18,930 --> 00:46:28,330 me krüptimist poolt - ma ei tea, kas te näete, et - siin. 621 00:46:28,330 --> 00:46:33,710 Nii, et see ei meeldi mulle tegelikult ettemääratud, ütleme, o läheb siia, t läheb siia, 622 00:46:33,710 --> 00:46:39,200 läheb siia, ma läheb siia, o, h, i, o, t,, i. Sa ei saa seda teha. 623 00:46:39,200 --> 00:46:43,760 Sa ainult suunata oma positsiooni märksõna 624 00:46:43,760 --> 00:46:51,020 kui sa tead, et sa oled tegelikult saab olema krüpteerimise tegelik kirja. 625 00:46:51,020 --> 00:46:53,920 Kas sellist mõtet? 626 00:46:53,920 --> 00:46:55,800 Okei. 627 00:46:56,490 --> 00:46:58,500 Nii lihtsalt mõned meeldetuletused. 628 00:46:58,500 --> 00:47:03,760 Sa tahad teha kindel, et te ainult edasi järgmisele kirjale oma märksõna 629 00:47:03,760 --> 00:47:06,390 kui märk teie polegi on kirjas. 630 00:47:06,390 --> 00:47:09,120 Nii ütleme me oleme o. 631 00:47:09,120 --> 00:47:19,310 Näeme, et järgmine sümbol i indeks polegi, on mitmeid, näiteks. 632 00:47:19,310 --> 00:47:31,630 Siis me ei kanna j, indeks meie märksõna, kuni jõuame veel ühe kirja. 633 00:47:31,630 --> 00:47:36,230 Jällegi, sa ka tahad teha kindel, et sa Kietaisu algusega märksõna 634 00:47:36,230 --> 00:47:37,770 kui oled lõpuks see. 635 00:47:37,770 --> 00:47:42,030 Kui näed siin me oleme i, järgmise üks peab olema o. 636 00:47:42,030 --> 00:47:47,690 Nii et sa tahad leida mingi võimalus, et suudetakse Kietaisu algusega märksõna 637 00:47:47,690 --> 00:47:49,470 iga kord, kui jõuad lõppu. 638 00:47:49,470 --> 00:47:55,040 Ja nii uuesti, millist operaator on kasulik sel juhul pakkimiseks ümber? 639 00:47:56,630 --> 00:47:59,840 Nagu loendamise maha näiteks. 640 00:47:59,840 --> 00:48:03,710 [Üliõpilane] protsendimärk. >> Jah, protsendimärk, mis on moodul. 641 00:48:03,710 --> 00:48:11,250 Nii mooduli tulevad mugav siin, kui soovite murrab üle indeks oma Ohai. 642 00:48:11,250 --> 00:48:17,700 Ja just kiire vihje: Püüdke mõelda pakkimine üle märksõna natuke nagu lugedes maha, 643 00:48:17,700 --> 00:48:23,590 kus, kas seal on 3 rühma, 4. isik, 644 00:48:23,590 --> 00:48:30,610 nende arv, et nad ütlesid oli 4 mod 3, mis oli 1. 645 00:48:30,610 --> 00:48:32,880 Nii et proovida ja mõelda seda. 646 00:48:34,770 --> 00:48:42,740 Nagu te nägite valem, kus teil on CI ja siis pi kuid siis kj, 647 00:48:42,740 --> 00:48:44,700 soovite veenduda, et teil jälgida neid. 648 00:48:44,700 --> 00:48:47,580 Sa ei pea seda kutsuda i, ei pea te seda kutsuda j, 649 00:48:47,580 --> 00:48:53,270 aga sa tahad teha kindel, et teil jälgida seisukohta, et sa oled oma polegi 650 00:48:53,270 --> 00:48:55,790 samuti seisukohta, et sa oled oma märksõna 651 00:48:55,790 --> 00:48:59,840 sest need ei pruugi saab olema sama. 652 00:48:59,840 --> 00:49:06,400 Mitte ainult ei võtmesõna - see võiks olla täiesti erineva pikkusega kui teie polegi. 653 00:49:06,400 --> 00:49:09,140 Ka teie polegi, on numbrite ja tähtede, 654 00:49:09,140 --> 00:49:14,450 nii see ei lähe sobiks ideaalselt koos üles. Jah. 655 00:49:14,450 --> 00:49:19,280 [Üliõpilane] Kas funktsioon muuta juhul? 656 00:49:19,280 --> 00:49:24,530 Kas te muudate kapitalile? >> Jah, kindlasti on. 657 00:49:24,530 --> 00:49:27,890 Saate vaadata läbi - ma usun, et see toupper, kõik 1 sõna. 658 00:49:30,650 --> 00:49:36,310 Aga kui sa üritad salakiri asju ja säilitada teksti, 659 00:49:36,310 --> 00:49:39,350 see on parim põhimõtteliselt olema eraldi juhtudel. 660 00:49:39,350 --> 00:49:42,040 Kui see on suur, siis sa tahad suunata käesoleva 661 00:49:42,040 --> 00:49:46,460 sest oma valem, kui sa vaatad tagasi, kui meil selline minna 662 00:49:46,460 --> 00:49:50,900 vaheldumisi vahel ASCII viis esindavad numbrid 663 00:49:50,900 --> 00:49:55,020 ja tegelik tähestikregistris, tahame veenduda 664 00:49:55,020 --> 00:50:01,850 seal saab olema mingi muster, mida ei kavatse kasutada. 665 00:50:01,850 --> 00:50:04,580 Teine märkus muster, tegelikult. 666 00:50:04,580 --> 00:50:07,250 Sa lähed kindlasti tegelevad numbrid. 667 00:50:07,250 --> 00:50:11,280 Püüa mitte kasutada magic numbrid, mis on näide stiilis. 668 00:50:11,280 --> 00:50:18,470 Nii oletame, et soovite iga kord vahetuses midagi, mida soovite - 669 00:50:18,470 --> 00:50:22,400 Okei, nii et vihje, teine ​​spoiler on, kui sa lähed tuleb suunata midagi 670 00:50:22,400 --> 00:50:26,310 teatava summa, püüdke mitte esindama, et tegelik arv 671 00:50:26,310 --> 00:50:32,810 vaid pigem proovida ja vaata, kas saad kasutada ASCII väärtus, mis liiki mõttekam. 672 00:50:32,810 --> 00:50:35,470 Teine märkus: et me tegeleme valemid, 673 00:50:35,470 --> 00:50:41,200 kuigi oma TF liiki tea, mis muster võite olla kasutades, 674 00:50:41,200 --> 00:50:44,430 parima, et teie kommentaare omamoodi seletada loogika, nagu, 675 00:50:44,430 --> 00:50:51,880 "Ma kasutan seda mudelit, sest ..." ja selline selgitada muster lühidalt oma kommentaare. 676 00:50:54,090 --> 00:50:58,990 [See oli läbikäiguks 2] Kui ei ole muid küsimusi, siis ma lihtsalt jääda siia natuke. 677 00:50:58,990 --> 00:51:04,370 Õnn oma pset 2: Crypto ja tänu tulevad. 678 00:51:06,070 --> 00:51:08,620 [Üliõpilane] Aitäh. >> Aitäh. 679 00:51:09,220 --> 00:51:10,800 [Media Ära intro]