1 00:00:00,000 --> 00:00:01,940 [Powered by Google Translate] [Walkthrough - Set Problema 2] 2 00:00:01,940 --> 00:00:04,130 [Zamyla Chan - Università ta 'Harvard] 3 00:00:05,170 --> 00:00:07,490 [Dan huwa CS50. CS50.TV] 4 00:00:07,490 --> 00:00:10,750 Kull dritt. Hello, kulħadd, u jilqgħu għall Walkthrough 2. 5 00:00:10,750 --> 00:00:14,330 L-ewwel, nixtieq li nifraħ lilek għall-irfinar pset 1. 6 00:00:14,330 --> 00:00:18,140 Naf li dan seta 'kien daqsxejn iebsa għal xi wħud minnkom, 7 00:00:18,140 --> 00:00:20,460 seta 'kien ewwel kompjuter tiegħek programm li inti kiteb, 8 00:00:20,460 --> 00:00:24,500 iżda biss ftakar li fl-aħħar ta 'dan, meta inti tħares lura fl-aħħar tas-semestru, 9 00:00:24,500 --> 00:00:29,820 inti ser tħares lejn pset 1 u int ser jgħidu, "ħej, I seta 'jsir dan fil-5 minuti." 10 00:00:29,820 --> 00:00:35,700 Allura taf u fiduċja li fl-aħħar ta 'dan inti ser issib definittivament pset 1 pjuttost sempliċi. 11 00:00:35,700 --> 00:00:40,640 Iżda għal issa huwa tlestija enormi, u congratulations għal jkollna jsir. 12 00:00:40,640 --> 00:00:44,010 Issa, wkoll nota ta 'malajr qabel nikbru fil-laħam ta' l-walkthrough. 13 00:00:44,010 --> 00:00:48,340 I biss jixtiequ jagħmlu nota ta 'malajr li jien kultant mhux se jkollhom ħin biżżejjed 14 00:00:48,340 --> 00:00:52,500 matul l-walkthroughs li jmorru permezz ta 'kull mod wieħed ta' kif isir is-sett problema 15 00:00:52,500 --> 00:00:56,140 u pjuttost ftit forsi jiffoka fuq 1 jew 2 tip ta 'implimentazzjonijiet, 16 00:00:56,140 --> 00:00:57,750 modi li inti tista 'tagħmel dan. 17 00:00:57,750 --> 00:01:01,970 Iżda dan ma jfissirx li inti huma projbiti milli jagħmlu dan mod ieħor. 18 00:01:01,970 --> 00:01:05,980 Spiss ikun hemm, kif ma 'xjenza tal-kompjuter, modi diversi ta' nagħmlu l-affarijiet, 19 00:01:05,980 --> 00:01:12,190 u għalhekk definittivament tħossok liberu li juża tip differenti ta 'soluzzjoni minn I jista' jkollhom ppreżentati. 20 00:01:12,190 --> 00:01:14,520 [Pset 2: kripto - Zamyla Chan - zamyla@cs50.net] 21 00:01:14,520 --> 00:01:17,160 [Pset2 - 0. A Sezzjoni ta 'Mistoqsijiet - 1. Caesar - 2. Vigenere] 22 00:01:17,160 --> 00:01:20,650 Kull dritt. Allura problema stabbiliti 2: kripto hija waħda gost. 23 00:01:20,650 --> 00:01:24,500 Għal darb'oħra, ma 'kull pset inti ser tibda ma' taqsima tal-mistoqsijiet 24 00:01:24,500 --> 00:01:29,600 li għaddej biex isiru taqsimiet tiegħek ma 'sħabi tiegħek tagħlim assenjati. 25 00:01:29,600 --> 00:01:31,670 Aħna mhux se jmorru permezz ta 'dawn fuq il-walkthrough, 26 00:01:31,670 --> 00:01:35,100 iżda huma definittivament se jgħinuk tlesti l-pset. 27 00:01:35,100 --> 00:01:38,100 Allura l-ewwel parti tas-sett problema hija Caesar. 28 00:01:38,100 --> 00:01:43,470 U hekk fil Caesar xi ħadd se jgħaddi għalik ewlieni ma 'numru sħiħ, 29 00:01:43,470 --> 00:01:48,420 u int se kriptaġġ sekwenza ta 'test li huma jipprovdu inti 30 00:01:48,420 --> 00:01:50,670 u tagħtihom lura ħaġa encrypted. 31 00:01:50,670 --> 00:01:56,050 Jekk xi ħadd jarah A Story Milied, hemm eżempju ta 'dak hemm. 32 00:01:56,050 --> 00:01:59,090 Imbagħad it-tieni parti tas-sett problema hija Vigenere, 33 00:01:59,090 --> 00:02:01,790 li hija teknika ta 'encryption aktar avvanzati. 34 00:02:01,790 --> 00:02:05,640 U hekk aħna qed tmur biex encipher biċċa tat-test, 35 00:02:05,640 --> 00:02:09,600 ħlief minflok biss bi sħiħ wieħed, aħna qed fil-fatt se encode 36 00:02:09,600 --> 00:02:13,340 bil-keyword li l-utent se tagħtina. 37 00:02:16,270 --> 00:02:22,090 Okay, hekk l-ewwel għodda fil-toolbox llum huwa attwalment se tkun aġġornata l-appliance. 38 00:02:22,090 --> 00:02:26,430 Fuq il-bord ta 'diskussjoni aħna se jaraw affarijiet simili, "Għaliex ma dan ix-xogħol?" 39 00:02:26,430 --> 00:02:28,110 "Għaliex ma Issottometti 50 xogħol?" 40 00:02:28,110 --> 00:02:31,830 u ħafna drabi s-soluzzjoni hija attwalment biss biex taġġorna appliance tiegħek. 41 00:02:31,830 --> 00:02:36,730 U għalhekk jekk inti biss run fil-tieqa terminal fil sudo appliance tiegħek yum-y - 42 00:02:36,730 --> 00:02:40,040 thats bandiera qal iva, jaġġornaw kollox - aġġornament, 43 00:02:40,040 --> 00:02:42,280 allura appliance tiegħek se taġġorna tkun ħtieġa jekk. 44 00:02:42,280 --> 00:02:46,960 U ma iweġġgħu jekk inti diġà huma fil-verżjoni l-aktar reċenti tal-apparat. 45 00:02:46,960 --> 00:02:51,280 Imbagħad se biss jgħidu l-ebda aġġornamenti ġodda disponibbli u inti tista 'tkompli taħdem flimkien. 46 00:02:51,280 --> 00:02:55,800 Iżda dan huwa tajjeb biex iwettaq anki kull darba li inti tiftaħ il-appliance 47 00:02:55,800 --> 00:02:57,140 għaliex aħna qed għadhom ħafna - 48 00:02:57,140 --> 00:03:00,320 kultant jekk aħna jidħlu fis bug - iffissar fl-appliance. 49 00:03:00,320 --> 00:03:03,180 Sabiex tagħmel ċert li għandek l-aktar verżjoni reċenti tal-apparat 50 00:03:03,180 --> 00:03:07,710 u run li taġġorna hemmhekk. 51 00:03:07,710 --> 00:03:14,360 Kull dritt. Allura peress li aħna qed jittrattaw ma 'ittri u l-bdil, enciphering affarijiet, 52 00:03:14,360 --> 00:03:20,410 aħna qed tmur biex verament tixtieq li jsiru ħbieb aħjar mal chart ASCII tagħna. 53 00:03:20,410 --> 00:03:24,350 Hemm dawk numerużi online, jekk issib. Forsi anki tagħmel tiegħek. 54 00:03:24,350 --> 00:03:29,950 Bażikament, ma 'kull ittra u kull numru u kull karattru 55 00:03:29,950 --> 00:03:32,210 hemm numru assoċjati magħhom, 56 00:03:32,210 --> 00:03:38,670 u għalhekk huwa tajjeb biex tara valuri ASCII tagħhom flimkien mal-ittra attwali. 57 00:03:38,670 --> 00:03:42,310 Li definittivament se jgħinek fis-sett problema. 58 00:03:42,310 --> 00:03:45,750 Ħaġa waħda li verament għenuni f'dan is-sett il-problema kienet li fil-fatt ipprintjaha, 59 00:03:45,750 --> 00:03:48,380 u kif I kienet għaddejja, nixtieq attwalment tiġbed fuqha, 60 00:03:48,380 --> 00:03:51,150 jikteb, "Jekk dan irid imur biex hemmhekk, allura ..." 61 00:03:51,150 --> 00:03:55,270 Tip ta 'tiġbed fuqha u jimmarkaw it up, jsiru ħbieb aħjar mal-mejda ASCII tiegħek. 62 00:03:57,240 --> 00:04:00,750 Imbagħad għandna għodod oħra ftit għad-dispożizzjoni tagħna. 63 00:04:00,750 --> 00:04:03,750 Din id-darba minflok attwalment ġiegħlet lill-utent għal kulħadd ta 'l-input tagħhom 64 00:04:03,750 --> 00:04:05,230 aħna qed tmur biex tagħmel kombinazzjoni. 65 00:04:05,230 --> 00:04:06,880 Aħna ser twassalhom għal xi input, 66 00:04:06,880 --> 00:04:11,350 imma aħna wkoll qed tmur għall-użu biss l-argumenti linja tal-kmand. 67 00:04:11,350 --> 00:04:15,600 Allura meta tmexxi programm tagħhom, normalment inti tgħidli. / Bonjour, per eżempju, 68 00:04:15,600 --> 00:04:17,310 jekk program tiegħek kien hello.c. 69 00:04:17,310 --> 00:04:22,500 Iżda dan iż-żmien minflok sempliċiment tgħid li, dawn ikunu jistgħu jitqiegħdu kliem, l-argumenti wara. 70 00:04:22,500 --> 00:04:27,210 U hekk aħna qed tmur għall-użu kollu li jgħaddu fil lilna bħala input tagħhom kif ukoll, 71 00:04:27,210 --> 00:04:31,720 hekk superazzjoni biss suġġeriment għal numru sħiħ, iżda wkoll bl-użu argumenti kmand tal-linja. 72 00:04:31,720 --> 00:04:36,590 U allura aħna ser imorru fis matriċi u kordi, li aħna ser tkun qed tuża ħafna ukoll. 73 00:04:41,460 --> 00:04:44,810 Hawn biss eżempju ta '1 chart ASCII mini. 74 00:04:44,810 --> 00:04:48,460 As I said, kull ittra tikkorrispondi għal numru, 75 00:04:48,460 --> 00:04:52,510 u għalhekk tiffamiljarizza ruħek ma 'dak. Hija se jidħlu fil handy. 76 00:04:52,510 --> 00:04:55,610 U aktar tard meta aħna tibda tagħmel xi ASCIIMath jittrattaw il-numri - 77 00:04:55,610 --> 00:05:00,110 żieda, tnaqqis minnhom - imbagħad definittivament tajba biex jirreferi għal din it-tabella. 78 00:05:02,860 --> 00:05:06,920 Allura hawnhekk eżempju ta 'cipher Caesar - xi ħaġa li jista' jkollok lagħbu. 79 00:05:06,920 --> 00:05:11,190 Huwa biss rota. Essenzjalment, hemm alfabett barra u allura hemm alfabett ġewwa. 80 00:05:11,190 --> 00:05:15,290 Allura dritt hawn huwa eżempju ta 'l-cipher Caesar iżda ma' ċavetta ta '0. 81 00:05:15,290 --> 00:05:21,540 Essenzjalment, A huwa allinjat ma 'A, B huwa allinjat ma' B, it-triq kollha sa l-Z. 82 00:05:21,540 --> 00:05:26,590 Iżda mbagħad jgħidu li ridna ewlieni ta '3, pereżempju. 83 00:05:26,590 --> 00:05:33,280 Imbagħad aħna se dawwar il-rota ġewwa hekk li A issa tallinja ma 'D, eċċ 84 00:05:33,280 --> 00:05:35,250 U hekk dan huwa essenzjalment dak li aħna qed tmur biex tagħmel. 85 00:05:35,250 --> 00:05:38,340 Aħna ma jkollhom rota, imma dak li aħna qed tmur biex tagħmel hu li tagħmel programm tagħna 86 00:05:38,340 --> 00:05:44,490 tip ta 'bidla l-alfabett flimkien magħna ċertu ammont ta' numri. 87 00:05:44,490 --> 00:05:48,650 Allura kif għidt qabel, aħna qed tmur biex tkun jittrattaw argumenti kmand tal-linja 88 00:05:48,650 --> 00:05:50,390 kif ukoll jkollna numru sħiħ. 89 00:05:50,390 --> 00:05:55,050 Allura l-mod li l-utent se jimxu program Caesar tiegħek huwa billi qal. / Caesar 90 00:05:55,050 --> 00:05:58,090 u mbagħad jidħlu numru wara dik. 91 00:05:58,090 --> 00:06:01,130 U dak in-numru jirrappreżenta l-muftieħ, il-bidla, 92 00:06:01,130 --> 00:06:06,740 kif ħafna drabi int se tkun li jdur tar-rota ta 'ġewwa tal cipher Caesar tiegħek. 93 00:06:06,740 --> 00:06:08,390 U għalhekk inti tara hawn eżempju. 94 00:06:08,390 --> 00:06:14,550 Jekk aħna daħal l-ittri minn A L fil cipher Caesar tagħna, 95 00:06:14,550 --> 00:06:19,520 allura kieku input D permezz O għaliex dan huwa kull ittra qalbu minn 3 darbiet, 96 00:06:19,520 --> 00:06:22,080 bħad-eżempju tar-rota li I wera inti. 97 00:06:22,080 --> 00:06:25,300 Mela allura jekk inti daħal, per eżempju, Dan huwa CS50! 98 00:06:25,300 --> 00:06:27,960 allura wkoll timxi kollha ta 'l-ittri. 99 00:06:27,960 --> 00:06:31,040 U dan huwa ħaġa importanti kemm fil Caesar u Vigenere 100 00:06:31,040 --> 00:06:34,890 huwa li aħna qed tmur biex skip fuq xi ittri mhux. 101 00:06:34,890 --> 00:06:39,160 Allura xi spazji, karattri, eċċ, numri, aħna qed tmur biex jinżammu l-istess. 102 00:06:39,160 --> 00:06:42,920 Aħna biss se ċċaqlaq l-ittri f'din il-kawża. 103 00:06:42,920 --> 00:06:45,870 Allura kif tara fil-rota, aħna biss l-ittri disponibbli lilna, 104 00:06:45,870 --> 00:06:50,150 hekk aħna biss trid li ċċaqlaq l-ittri u kriptaġġ l-ittri. 105 00:06:51,370 --> 00:06:56,720 Allura l-ewwel ħaġa li tagħmel, inti raw li l-użu ta 'Caesar fil-problema sett 2 106 00:06:56,720 --> 00:07:05,280 huwa jiddekorri Caesar u mbagħad tidħol numru meta inti run fis-terminal. 107 00:07:05,280 --> 00:07:10,940 Allura dak li għandna bżonn tagħmel huwa li b'xi mod tikseb li ewlenin u jkollhom aċċess għaliha. 108 00:07:10,940 --> 00:07:14,730 U hekk irridu b'xi mod jara li għaddej biex tkun l-tieni argument linja tal-kmand. 109 00:07:14,730 --> 00:07:20,950 L-ewwel waħda se tkun. / Caesar, u dak li jmiss se jkun in-numru ċavetta. 110 00:07:22,190 --> 00:07:29,200 Għalhekk qabel ma kellna int prinċipali (vojt) biex jibdew programmi Ċ tagħna. 111 00:07:29,200 --> 00:07:31,790 Aħna ser qoxra lura saff ftit 112 00:07:31,790 --> 00:07:34,720 u fil-fatt jaraw li minflok jgħaddu fil null għall-funzjoni prinċipali tagħna 113 00:07:34,720 --> 00:07:37,920 aħna qed attwalment jittrattaw 2 parametri. 114 00:07:37,920 --> 00:07:44,070 Għandna int jismu argc u mbagħad firxa ta 'spag imsejħa ARGV. 115 00:07:44,070 --> 00:07:46,030 Allura argc huwa integer, 116 00:07:46,030 --> 00:07:49,640 u dan jirrappreżenta n-numru ta 'argumenti li għaddew bi għall-programm tiegħek. 117 00:07:49,640 --> 00:07:53,590 U allura ARGV effettivament hija l-lista ta 'l-argumenti għadda. 118 00:07:53,590 --> 00:08:00,820 Kollha ta 'l-argumenti huma sensiliet, u għalhekk ARGV jirrappreżenta firxa, lista, ta' spag. 119 00:08:01,830 --> 00:08:03,990 Ejja nitkellmu dwar arrays xi ftit. 120 00:08:03,990 --> 00:08:05,940 Arrays huma essenzjalment struttura tad-data ġdida. 121 00:08:05,940 --> 00:08:09,660 Aħna ints, għandna jirdoppja, għandna kordi, u issa għandna arrays. 122 00:08:09,660 --> 00:08:13,820 Arrays huma strutturi ta 'dejta li tista' żżomm il-valuri multipli tal-istess tip, 123 00:08:13,820 --> 00:08:18,320 hekk essenzjalment, lista ta 'kwalunkwe tip li trid. 124 00:08:18,320 --> 00:08:24,400 Essenzjalment, jekk int riedu lista ta 'interi kollha fl-1 varjabbli, 125 00:08:24,400 --> 00:08:29,090 allura inti toħloq varjabbli ġodda li kien ta 'firxa int tip. 126 00:08:29,090 --> 00:08:34,450 Allura arrays huma żero indiċi, li jfisser li l-ewwel element ta 'l-array huwa fil indiċi 0. 127 00:08:34,450 --> 00:08:41,799 Jekk l-firxa hija ta 'tul 4, kif f'dan l-eżempju, allura aħħar element tiegħek se tkun fi indiċi 3, 128 00:08:41,799 --> 00:08:44,810 li huwa 4 - 1. 129 00:08:45,940 --> 00:08:48,420 Allura biex joħolqu array, inti se tagħmel xi ħaġa bħal din. 130 00:08:48,420 --> 00:08:51,440 Tgħid li inti riedu firxa doppja. 131 00:08:51,440 --> 00:08:56,520 Dan imur għal kwalunkwe tip ta 'data tip, għalkemm. 132 00:08:56,520 --> 00:09:00,210 Allura ngħidu li inti tixtieq firxa doppja. Tgħid li inti tixtieq li hija sejħa mailbox. 133 00:09:00,210 --> 00:09:04,760 Eżatt bħal inti initialize kwalunkwe doppja ieħor, 134 00:09:04,760 --> 00:09:09,760 inti ngħid doppja u allura l-isem, iżda din id-darba aħna tpoġġi l-parentesi kwadri, 135 00:09:09,760 --> 00:09:13,570 u allura n-numru se jkun hemm it-tul tal-firxa. 136 00:09:13,570 --> 00:09:16,840 Innota li fl-arrays aħna ma tista 'qatt tbiddel it-tul, 137 00:09:16,840 --> 00:09:21,230 sabiex inti dejjem ikollhom biex jiddefinixxu u jagħżlu kemm kaxxi, 138 00:09:21,230 --> 00:09:25,440 kemm il-valuri array tiegħek se jżommu. 139 00:09:25,440 --> 00:09:31,820 Allura li jiġu stabbiliti valuri differenti fil array tiegħek, int ser tuża din sintassi li ġej, 140 00:09:31,820 --> 00:09:33,200 kif tara fuq il-pjastra. 141 00:09:33,200 --> 00:09:37,620 0 Inti għandek indiċi mailbox se jiġu ffissati għal 1.2, 142 00:09:37,620 --> 00:09:42,180 indiċi mailbox 1 stabbilit sa 2.4, eċċ 143 00:09:42,180 --> 00:09:47,910 Allura issa li aħna ve riveduti matriċi ftit, ejja mur lura għall argc u ARGV. 144 00:09:47,910 --> 00:09:52,220 Aħna nafu li ARGV issa huwa firxa ta 'spag. 145 00:09:52,220 --> 00:09:55,080 Allura meta utent jgħaddi fil - jgħidu li qed tmexxi programm - 146 00:09:55,080 --> 00:09:58,740 jgħidu. / bonjour David Malan, 147 00:09:58,740 --> 00:10:05,160 dak il-programm se jagħmel għalik diġà huwa attwalment toħroġ ma 'dak argc u ARGV huma. 148 00:10:05,160 --> 00:10:07,620 Allura inti m'għandekx bżonn ninkwetaw dwar dan. 149 00:10:07,620 --> 00:10:14,370 Argc f'dan il-każ ikun ta '3 għaliex jara 3 kliem distinti separati spazji. 150 00:10:14,370 --> 00:10:18,850 U hekk imbagħad il-firxa f'dan il-każ, l-indiċi 1 tkun. / Hello, 151 00:10:18,850 --> 00:10:21,770 il-li jmiss 1 David, dak li jmiss 1 Malan. 152 00:10:21,770 --> 00:10:25,640 Hawn xi ħadd tara dritt bogħod dak ir-relazzjoni bejn ARGV, 153 00:10:25,640 --> 00:10:28,990  il-firxa, u argc hu? 154 00:10:32,820 --> 00:10:38,090 Yeah. Aħna ser jsibu rwieħhom li fl eżempju fil args.c. 155 00:10:38,090 --> 00:10:42,880 Ejja naraw jekk nistgħu jieħdu vantaġġ tar-relazzjoni bejn il-2. 156 00:10:42,880 --> 00:10:46,550 Hawnhekk inti tista 'ssib li fl-appliance-applikazzjoni default 157 00:10:46,550 --> 00:10:49,450 biex tiftaħ. fajls ċ kultant huwa emacs. 158 00:10:49,450 --> 00:10:54,660 Iżda rridu li jittrattaw ma gedit, sabiex x'tista 'tagħmel huwa inti tista' dritt ikklikkja fuq fajl tiegħek C, 159 00:10:54,660 --> 00:11:04,580 mur Properties, Open Bil, u mbagħad jagħżlu gedit, Set bħala default, 160 00:11:04,580 --> 00:11:13,020 u issa program tiegħek għandha tiftaħ fi gedit minflok emacs. 161 00:11:14,710 --> 00:11:16,290 Perfect. 162 00:11:17,120 --> 00:11:25,520 So here I jkollhom programm li nixtieq li jistampa kull argument linja tal-kmand. 163 00:11:25,520 --> 00:11:32,050 Sabiex ikun x'ikun l-utent inputs, nixtieq li essenzjalment jirritornaw lura lilhom fuq linja ġdida. 164 00:11:32,050 --> 00:11:36,710 Allura x'hemm struttura li nistgħu nużaw biex jtenni fuq xi ħaġa - 165 00:11:36,710 --> 00:11:40,380 xi ħaġa li inti probabilment użati fil-1 pset tiegħek? 166 00:11:40,380 --> 00:11:45,840 Jekk inti tixtieq li tmur permezz ta 'numru sett ta' affarijiet? >> [Student] Għall loop. 167 00:11:45,840 --> 00:11:48,910 Għal loop. Eżattament. Mela ejja tibda bil-linja għal. 168 00:11:48,910 --> 00:11:56,900 Aħna għall i int = 0. Ejja biss tibda bil-varjabbli inizjalizzazzjoni standard. 169 00:11:56,900 --> 00:12:02,370 Jien ser iħallu l-kundizzjoni għal sett u mbagħad jgħidu i + +, se tagħmel affarijiet hemmhekk. 170 00:12:02,370 --> 00:12:04,090 Kull dritt. 171 00:12:04,090 --> 00:12:11,590 Allura taħseb lura għall ARGV, jekk ARGV hija l-lista ta 'argumenti mogħtija fl għall-programm 172 00:12:11,590 --> 00:12:15,380 u argc huwa n-numru ta 'argumenti fil-programm, 173 00:12:15,380 --> 00:12:21,280 allura dan ifisser li argc huwa essenzjalment l-tul ta 'ARGV, id-dritt, 174 00:12:21,280 --> 00:12:28,970 minħabba li hemm ser jkun argumenti kemm il-valur ta argc. 175 00:12:28,970 --> 00:12:35,910 Mela jekk irridu li jtenni fuq kull element ARGV, 176 00:12:35,910 --> 00:12:43,290 aħna qed tmur jridu kull darba aċċess għall-varjabbli fir ARGV fil-indiċi speċifika. 177 00:12:43,290 --> 00:12:49,060 Li jistgħu jkunu rappreżentati ma 'dan, id-dritt? 178 00:12:49,060 --> 00:12:53,430 Din il-varjabbli hawn tirrappreżenta l-sekwenza partikolari f'dan il-każ 179 00:12:53,430 --> 00:12:57,030 għaliex dan huwa firxa string - l-sekwenza partikolari f'dak indiċi speċifika. 180 00:12:57,030 --> 00:13:00,690 Dak li rridu nagħmlu, f'dan il-każ irridu ipprintjaha, hekk ejja ngħidu printf. 181 00:13:00,690 --> 00:13:04,680 U issa ARGV hija sekwenza, hekk aħna tixtieq li tqiegħed l placeholder hemmhekk. 182 00:13:04,680 --> 00:13:08,430 Irridu linja ġdida biss biex jagħmluha ħarsa tajba. 183 00:13:08,430 --> 00:13:12,530 Allura hawnhekk għandna loop għall. Aħna ma jkollhomx il-kundizzjoni s'issa. 184 00:13:12,530 --> 00:13:20,020 Hekk i jibda fil 0, u mbagħad kull darba li għaddej biex jistampaw l-sekwenza mogħtija 185 00:13:20,020 --> 00:13:22,980 f'dak indiċi partikolari fil-firxa. 186 00:13:22,980 --> 00:13:28,410 Allura meta irridu li tieqaf istampar l-elementi fil-firxa? 187 00:13:28,410 --> 00:13:35,720 Meta aħna ħadthom lest, id-dritt? Meta konna laħqu t-tmiem ta 'l-array. 188 00:13:35,720 --> 00:13:38,870 Allura aħna ma rridux li jaqbeż passat it-tul ta 'l-array, 189 00:13:38,870 --> 00:13:43,700 u aħna diġà jafu li ma kellniex bżonn li attwalment attiv issir taf liema t-tul ta ARGV huwa 190 00:13:43,700 --> 00:13:47,520 għaliex dan huwa mogħtija lilna, u dak li? Argc. Eżattament. 191 00:13:47,520 --> 00:13:56,640 Allura rridu nagħmlu dan in-numru argc proċess ta 'drabi. 192 00:13:56,640 --> 00:13:59,550 M'inix fid-direttorju dritt. 193 00:14:02,100 --> 00:14:03,490 Kull dritt. 194 00:14:03,490 --> 00:14:08,990 Issa ejja jagħmlu args. Ebda żbalji, li hija kbira. 195 00:14:08,990 --> 00:14:11,430 Mela ejja biss run args. 196 00:14:11,430 --> 00:14:15,130 X'inhu dan se jirritornaw lilna? Huwa biss se jistampaw lura. 197 00:14:15,130 --> 00:14:18,320 "Inti inputted args fil-programm; jien ser jagħti lura lilek." 198 00:14:18,320 --> 00:14:23,170 Mela ejja ngħidu li rridu ngħidu args allura bar foo. 199 00:14:23,170 --> 00:14:26,570 Mela allura prints out lura lilna. Kull dritt? 200 00:14:26,570 --> 00:14:30,790 Għalhekk hemm eżempju ta 'kif tista' tuża argc u ARGV 201 00:14:30,790 --> 00:14:33,460 jafu li argc jirrappreżenta t-tul ta 'ARGV. 202 00:14:33,460 --> 00:14:42,750 Kun żgur li int ma qatt ma arrays aċċess 1 lil hinn mill-tul tal-firxa 203 00:14:42,750 --> 00:14:45,140 għaliex C definittivament se shout fi inti. 204 00:14:45,140 --> 00:14:47,560 Int ser tingħata xi ħaġa imsejħa tort segmentazzjoni, 205 00:14:47,560 --> 00:14:52,470 li hija qatt gost, bażikament tgħid inti qed tipprova aċċess xi ħaġa 206 00:14:52,470 --> 00:14:55,000 li ma teżistix, ma jappartjenix lilek. 207 00:14:55,000 --> 00:14:59,430 Sabiex tagħmel ċert, u speċjalment mal-zero-indiċjar, aħna ma rridux li - 208 00:14:59,430 --> 00:15:02,390 Bħal per eżempju, jekk ikollna firxa ta 'tul 4, 209 00:15:02,390 --> 00:15:07,240 l-indiċi array 4 ma jeżistix għaliex nibdew f'0, żero indiċi. 210 00:15:07,240 --> 00:15:11,730 Se jsiru tieni natura bħad għal linji meta nibdew ta '0. 211 00:15:11,730 --> 00:15:13,610 Hekk biss iżommu dan f'moħħhom. 212 00:15:13,610 --> 00:15:22,590 Inti ma tridx li qatt aċċess għall-indiċi ta 'firxa li l-hinn jilħqu tiegħek. 213 00:15:26,710 --> 00:15:32,560 Allura nistgħu naraw issa kif nistgħu tip ta 'aċċess 214 00:15:32,560 --> 00:15:35,930 l-argumenti kmand tal-linja li huma mgħoddija pulzieri 215 00:15:35,930 --> 00:15:41,330 Imma kif inti raw-sekwenza, il-ARGV huwa attwalment firxa sekwenza. 216 00:15:41,330 --> 00:15:45,740 Allura huwa attwalment mhux numru sħiħ s'issa, iżda fl Caesar irridu li jittrattaw interi. 217 00:15:45,740 --> 00:15:54,430 Fortunatament, hemm funzjoni maħluqa għalina li jkunu jistgħu attwalment jikkonvertu string għal numru sħiħ. 218 00:15:54,430 --> 00:15:58,710 Ukoll fil hawn aħna mhux qed jitratta ma jintuza mill-utent fejn aħna qed tħeġġeġ lilhom 219 00:15:58,710 --> 00:16:03,740 għall-input hawn għall-ċavetta, hekk aħna ma tistax fil-fatt reprompt u jgħidu, 220 00:16:03,740 --> 00:16:07,840 "Oh, jagħtu me ieħor numru sħiħ, jiġifieri, jekk mhuwiex validu." 221 00:16:07,840 --> 00:16:10,540 Iżda aħna ma għad għandhom bżonn sabiex jikkontrolla għal użu korrett. 222 00:16:10,540 --> 00:16:13,520 Fil Caesar huma permessi biss li jgħaddu numru 1, 223 00:16:13,520 --> 00:16:18,030 u għalhekk huma jkollhom jiddekorri. / Caesar u allura dawn għandhom jagħtuk numru. 224 00:16:18,030 --> 00:16:23,660 Allura argc għandu jkun hemm ċertu numru. 225 00:16:23,660 --> 00:16:29,060 X'inhu n-numru li kieku jkun jekk ikollhom jgħaddu inti l-. / Caesar u mbagħad ewlieni? 226 00:16:29,060 --> 00:16:32,920 X'inhu argc? >> [Student] 2. >> Żewġ. Eżattament. 227 00:16:32,920 --> 00:16:35,490 Allura inti tixtieq li tagħmel ċert li argc huwa 2. 228 00:16:35,490 --> 00:16:39,620 Inkella int bażikament tirrifjuta li tmexxi l-programm. 229 00:16:39,620 --> 00:16:43,040 Fil ewlieni huwa funzjoni li tgħid int prinċipali, 230 00:16:43,040 --> 00:16:47,360 hekk allura aħna dejjem fil-0-ritorn ta 'prattika tajba fl-aħħar ta' programm ta 'suċċess. 231 00:16:47,360 --> 00:16:50,840 Mela jekk, per eżempju, huma jagħtuk l-argumenti kmand 3 linja minflok ta '2 232 00:16:50,840 --> 00:16:54,350 jew jagħtuk 1, per eżempju, allura dak li inti ser tagħmel hu li tkun taf jridu check għal dak 233 00:16:54,350 --> 00:16:59,900 u mbagħad jirritornaw 1 tgħid, l-ebda, I ma tistax tipproċedi ma 'dan il-programm. 234 00:16:59,900 --> 00:17:03,190 [Student] Ma jistax ikun spazju fil-test tiegħek. >> Maħfra lili? 235 00:17:03,190 --> 00:17:06,780 [Student] Ma jistax ikun spazju fit-test inti qed tipprova għall-kriptaġġ. 236 00:17:06,780 --> 00:17:08,480 Ah! 237 00:17:08,480 --> 00:17:11,280 F'termini tat-test li aħna qed jippruvaw jagħmlu encryption, li fil-fatt tiġi aktar tard 238 00:17:11,280 --> 00:17:13,970 meta aħna nagħtu dak it-test. 239 00:17:13,970 --> 00:17:18,260 Allura issa dritt aħna qed biss taċċetta l-argumenti kmand-numru attwali, 240 00:17:18,260 --> 00:17:21,579 l-bidla attwali għall-encryption Caesar. 241 00:17:21,579 --> 00:17:27,569 [Student] Għaliex għandek bżonn 2 għall-kuntrarju biss 1 argc? Hemm definittivament numru 1. 242 00:17:27,569 --> 00:17:32,200 Dritt. Ir-raġuni għaliex għandna bżonn 2 għal argc minflok ta '1 243 00:17:32,200 --> 00:17:36,260 għaliex meta inti tmexxi programm u jgħidu. / Caesar jew. / hello, 244 00:17:36,260 --> 00:17:38,280 li attwalment jgħodd bħala argument linja tal-kmand. 245 00:17:38,280 --> 00:17:43,020 Mela allura li diġà jieħu 1 u hekk allura aħna qed inputjar 1 extra. 246 00:17:45,030 --> 00:17:49,440 Allura int inputjar attwalment string fil-argument linja tal-kmand. 247 00:17:49,440 --> 00:17:52,730 Dak li trid tagħmel, għal Caesar irridu li jittrattaw ma 'numru sħiħ, 248 00:17:52,730 --> 00:17:57,180 sabiex inti tista 'tuża din il-funzjoni atoi. 249 00:17:57,180 --> 00:18:02,850 U bażikament, inti jgħaddi bi string u mbagħad se jirritornaw lura int integer 250 00:18:02,850 --> 00:18:06,070 jekk huwa possibbli li jagħmlu dan string fis integer. 251 00:18:06,070 --> 00:18:10,960 Issa ftakar meta aħna qed jittrattaw ma 'affarijiet printf jew GetString, bħal dik, 252 00:18:10,960 --> 00:18:13,390 aħna jinkludu l-libreriji li huma speċifiċi lilna. 253 00:18:13,390 --> 00:18:19,450 Allura fil-bidu nibdew ma 'hash tag standard I / O,. H, xi ħaġa bħal dik. 254 00:18:19,450 --> 00:18:22,430 Ukoll, atoi mhuwiex taħt waħda minn dawn libreriji, 255 00:18:22,430 --> 00:18:26,600 sabiex dak li għandna nagħmlu hija li għandna biex tinkludi l-librerija dritt għal dan. 256 00:18:26,600 --> 00:18:32,720 Allura lura lura għall Walkthrough 1 fejn I diskuss il-funzjoni manwali. 257 00:18:32,720 --> 00:18:37,110 Inti tip raġel fl terminal tiegħek u mbagħad segwit mill-isem ta 'funzjoni. 258 00:18:37,110 --> 00:18:39,720 U hekk li se jtella 'lista sħiħa ta' l-użu tagħha, 259 00:18:39,720 --> 00:18:42,890 iżda wkoll se jġib up li librerija li jappartjeni għal. 260 00:18:42,890 --> 00:18:47,000 So I ser tħalli li lilek biex tuża l-funzjoni manwali ma atoi 261 00:18:47,000 --> 00:18:53,360 u figura liema librerija għandek bżonn biex tinkludi li tkun tista 'tuża l-funzjoni atoi. 262 00:18:54,450 --> 00:18:57,670 Allura konna ltqajna l-ewlenin u issa niġu biex jkollna l-test sempliċi, 263 00:18:57,670 --> 00:19:01,820 u hekk li attwalment se tkun jintuza mill-utent fejn inti fil-pront. 264 00:19:01,820 --> 00:19:05,540 Aħna ttrattati GetInt u GetFloat, u għalhekk fl-istess 265 00:19:05,540 --> 00:19:07,670 aħna qed tmur biex tkun jittrattaw GetString. 266 00:19:07,670 --> 00:19:12,440 Iżda f'dan il-każ aħna ma bżonn li tagħmel xi do waqt jew waqt loops biex jiċċekkjaw. 267 00:19:12,440 --> 00:19:14,480 GetString definittivament se tagħtina string, 268 00:19:14,480 --> 00:19:17,630 u aħna qed tmur għall-kriptaġġ ikun x'ikun l-utent tagħtina. 269 00:19:17,630 --> 00:19:23,770 Allura inti jista 'jassumi li kollha ta' dawn kordi utent mdaħħlin huma korretti. 270 00:19:23,770 --> 00:19:24,670 Great. 271 00:19:24,670 --> 00:19:27,270 Mela allura ladarba inti stajt ltqajna l-ewlenin u ladarba inti stajt ltqajna-test, 272 00:19:27,270 --> 00:19:31,660 Issa dak ix-xellug huwa inti għandek encipher l-plaintext. 273 00:19:31,660 --> 00:19:36,530 Just biex malajr ikopru aktar minn Lingo, il plaintext huwa dak li l-utent jagħtik, 274 00:19:36,530 --> 00:19:41,030 u l-ciphertext huwa dak li inti tirritorna lilhom. 275 00:19:42,450 --> 00:19:45,850 Allura kordi, biex ikunu jistgħu jgħaddu fil-fatt l-ittra permezz ta 'ittra 276 00:19:45,850 --> 00:19:48,550 għaliex għandna għall-bidla kull ittra, 277 00:19:48,550 --> 00:19:51,390 aħna nifhmu li kordi, jekk aħna tip ta 'qoxra lura l-saff, 278 00:19:51,390 --> 00:19:54,130 naraw li dawn qed biss verament lista ta 'karattri. 279 00:19:54,130 --> 00:19:55,930 Wieħed jidħol wara l-oħra. 280 00:19:55,930 --> 00:20:01,690 U hekk nistgħu jittrattaw kordi kif arrays għaliex huma arrays ta 'karattri. 281 00:20:01,690 --> 00:20:05,640 Allura ngħid li għandek string jismu test, 282 00:20:05,640 --> 00:20:09,400 u fi ħdan dak it-test varjabbli hija maħżuna Dan huwa CS50. 283 00:20:09,400 --> 00:20:15,680 Imbagħad it-test fil-indiċi 0 tkun T kapitali, indiċi 1 ikun siegħa, eċċ 284 00:20:17,530 --> 00:20:23,970 U mbagħad mal-arrays, fl-eżempju argc fil args.c, 285 00:20:23,970 --> 00:20:27,090 rajna li kellna jtenni fuq firxa 286 00:20:27,090 --> 00:20:32,440 u hekk kellna jtenni mill i = 0 sa i huwa inqas mit-tul. 287 00:20:32,440 --> 00:20:35,560 Għalhekk għandna bżonn xi mod tal jidhru dak it-tul ta 'sekwenza tagħna huwa 288 00:20:35,560 --> 00:20:37,090 jekk aħna qed tmur biex jtenni fuqha. 289 00:20:37,090 --> 00:20:42,300 Fortunatament darb'oħra, hemm funzjoni hemm għalina, għalkemm aktar tard fil CS50 290 00:20:42,300 --> 00:20:45,860 inti ser definittivament ikunu jistgħu jimplimentaw u jagħmlu funzjoni tiegħek 291 00:20:45,860 --> 00:20:48,260 li jistgħu jikkalkolaw l-tul ta 'sekwenza. 292 00:20:48,260 --> 00:20:52,120 Iżda għal issa aħna qed tmur għall-użu tul string, hekk strlen. 293 00:20:52,120 --> 00:21:00,440 You jgħaddu fi string, u mbagħad se terġa 'lura inti int li tirrappreżenta t-tul ta' sekwenza tiegħek. 294 00:21:00,440 --> 00:21:05,840 Ejja nħarsu lejn eżempju ta 'kif aħna jista' jkun kapaċi li jtenni fuq kull karattru fi string 295 00:21:05,840 --> 00:21:08,470 u tagħmel xi ħaġa ma 'dak. 296 00:21:08,470 --> 00:21:13,250 Dak li rridu nagħmlu huwa jtenni fuq kull karattru tas-sekwenza, 297 00:21:13,250 --> 00:21:19,150 u dak li rridu nagħmlu huwa li aħna jistampaw lura kull karattru 1 ta '1 298 00:21:19,150 --> 00:21:22,060 ħlief aħna żżid xi ħaġa li jmiss lilu. 299 00:21:22,060 --> 00:21:27,020 Mela ejja tibda bil-linja għal. I int = 0. 300 00:21:27,020 --> 00:21:30,070 Aħna ser iħallu spazju għall-kondizzjoni. 301 00:21:32,700 --> 00:21:36,840 Aħna rridu li jtenni sakemm aħna jilħqu t-tmiem tas-sekwenza, id-dritt? 302 00:21:36,840 --> 00:21:41,340 Mela allura dak funzjoni jagħtina t-tul tas-sekwenza? 303 00:21:41,340 --> 00:21:43,160 [Rispons istudent inaudible] 304 00:21:43,160 --> 00:21:46,420 Dik hija t-tul tal-argumenti linja tal-kmand. 305 00:21:46,420 --> 00:21:50,650 Iżda għal string irridu li tuża l-funzjoni li jagħtina t-tul tas-sekwenza. 306 00:21:50,650 --> 00:21:53,090 Allura dak it-tul sekwenza. 307 00:21:53,090 --> 00:21:57,130 U hekk imbagħad inti għandek jgħaddu string lilha. 308 00:21:57,130 --> 00:21:59,760 Jeħtieġ li tkun taf dak string li jeħtieġ li jikkalkula t-tul ta '. 309 00:21:59,760 --> 00:22:03,160 Mela allura f'dan il-każ aħna qed jittrattaw ma 'sekwenza s. 310 00:22:04,790 --> 00:22:05,860 Great. 311 00:22:05,860 --> 00:22:10,770 Mela allura dak li rridu nagħmlu, ejja printf. 312 00:22:10,770 --> 00:22:14,850 Issa, irridu li jittrattaw ma 'karattri. Aħna rridu li jistampa kull karattru individwali. 313 00:22:14,850 --> 00:22:22,150 Meta inti tixtieq li jistampa float, inti tuża l-placeholder bħal f%. 314 00:22:22,150 --> 00:22:24,580 Ma 'int għandek tuża d%. 315 00:22:24,580 --> 00:22:30,890 U għalhekk simili, b'karattru tuża ċ% ngħid jien ser tkun l-istampar karattru 316 00:22:30,890 --> 00:22:34,570 li l-maħżuna ġewwa varjabbli. 317 00:22:34,570 --> 00:22:40,840 Allura aħna għandna dan, u ejja żid perjodu u spazju lilha. 318 00:22:40,840 --> 00:22:45,430 Liema karattru aħna jużaw? 319 00:22:45,430 --> 00:22:49,780 Aħna ser tkun qed tuża kwalunkwe karattru aħna qed fil tas-sekwenza. 320 00:22:49,780 --> 00:22:52,890 Mela allura aħna qed tmur biex tkun qed tuża xi ħaġa ma string, 321 00:22:52,890 --> 00:22:56,420 imma irridu li jkun aċċess għall-karattru ċert hemm. 322 00:22:56,420 --> 00:23:02,740 Mela jekk string huwa biss firxa, allura kif nistgħu aċċess elementi ta 'arrays? 323 00:23:02,740 --> 00:23:06,480 Għandna dawk parentesi kwadri, u allura aħna tpoġġi l-indiċi fil hemmhekk. 324 00:23:06,480 --> 00:23:11,820 Allura aħna għandna parentesi kwadri. Indiċi tagħna f'dan il-każ nistgħu biss jużaw i. Eżattament. 325 00:23:15,290 --> 00:23:22,370 Allura hawnhekk għandna qed tgħid li aħna qed tmur biex tkun l-istampar karattru segwita b'tikka u spazju, 326 00:23:22,370 --> 00:23:30,870 u li l-karattru se tkun l-ittra ith fl-i string tagħna. 327 00:23:32,920 --> 00:23:39,330 Jien biss se jiffrankaw dan. Okay. 328 00:23:42,510 --> 00:23:46,840 Issa jien ser jimxu tul sekwenza. 329 00:23:46,840 --> 00:23:53,440 Allura kellna sensiela imsejjaħ OMG, u issa huwa enfasizzat aktar. 330 00:23:53,440 --> 00:23:57,870 Bl-istess mod, ejja ngħidu aħna fil-fatt tixtieq li tikseb string mill-utent. 331 00:23:57,870 --> 00:23:59,580 Kif jista 'nagħmlu dan? 332 00:23:59,580 --> 00:24:01,610 Qabel, kif aħna ma jiksbu int? 333 00:24:01,610 --> 00:24:08,040 Aħna qal GetInt, id-dritt? Iżda dan mhux int, hekk ejja GetString. 334 00:24:11,780 --> 00:24:17,770 Ejja jagħmlu tul sekwenza. Hawnhekk aħna ma jidħol fil-pront speċifiku. 335 00:24:17,770 --> 00:24:19,940 So I do not know. 336 00:24:19,940 --> 00:24:23,820 Jien ser tpoġġi l-isem tiegħi fil hawn u hekk allura I jistgħu jagħmlu waħda minn dawk l-affarijiet 337 00:24:23,820 --> 00:24:29,600 fejn I tassenja kelma għal kull ittra jew xi ħaġa bħal dik. Kessaħ. 338 00:24:29,600 --> 00:24:31,900 Allura dak it-tul sekwenza. 339 00:24:33,000 --> 00:24:34,640 Allura aħna qed lura għall Caesar. 340 00:24:34,640 --> 00:24:38,620 Għandna għodod ftit dwar kif aħna jtenni fuq string, 341 00:24:38,620 --> 00:24:41,250 kif aħna aċċess kull element individwali. 342 00:24:41,250 --> 00:24:44,720 Allura issa nistgħu jiksbu lura lill-programm. 343 00:24:44,720 --> 00:24:48,650 Kif semmejt qabel, fit-tabella ASCII, l-aqwa ħabib tiegħek, 344 00:24:48,650 --> 00:24:52,300 int ser tara l-numri li huma assoċjati ma 'kull ittra. 345 00:24:52,300 --> 00:24:55,900 Allura hawnhekk ngħid plaintext tagħna huwa jien sturdut! 346 00:24:55,900 --> 00:25:01,090 Imbagħad kull wieħed minn dawn il-karattri se jkollha numru u l-valur ASCII assoċjat miegħu, 347 00:25:01,090 --> 00:25:04,710 anke l-apostrophe, anke l-ispazju, anki l-marka exclamation, 348 00:25:04,710 --> 00:25:06,600 sabiex tkun taf tixtieq li iżommu dan f'moħħhom. 349 00:25:06,600 --> 00:25:12,360 Allura ngħid ewlieni tagħna li l-utent inkluża fil argument tagħhom linja ta 'kmand hija 6. 350 00:25:12,360 --> 00:25:17,770 Dan ifisser għall-ewwel ittra, li hija I, li huma rappreżentati permezz 73, 351 00:25:17,770 --> 00:25:25,610 inti tixtieq li jirritornaw għall lilhom kwalunkwe ittra huwa rappreżentat mill-valur ASCII ta '73 + 6. 352 00:25:25,610 --> 00:25:29,020 F'dan il-każ li jkun 79. 353 00:25:30,840 --> 00:25:35,040 Issa rridu li jmorru għall-karattru li jmiss. 354 00:25:35,040 --> 00:25:40,960 Allura l-li jmiss fl-indiċi 1 tal-plaintext tkun l-apostrophe. 355 00:25:40,960 --> 00:25:46,780 Imma ftakar aħna biss jixtiequ encipher-ittri. 356 00:25:46,780 --> 00:25:50,040 Allura aħna tixtieq li tagħmel ċert li l-apostrophe attwalment jibqa l-istess, 357 00:25:50,040 --> 00:25:54,310 li aħna ma bidla minn 39 għal kwalunkwe 45 hija. 358 00:25:54,310 --> 00:25:57,150 Aħna rridu li jinżamm bħala apostrophe. 359 00:25:57,150 --> 00:26:00,780 Allura rridu niftakru li biss encipher-ittri 360 00:26:00,780 --> 00:26:04,560 għaliex irridu kollha ta 'l-simboli l-oħra jibqgħu mhux mibdula fil-programm tagħna. 361 00:26:04,560 --> 00:26:07,130 Ħaġa oħra li rridu huwa li tippreserva kapitalizzazzjoni. 362 00:26:07,130 --> 00:26:10,250 Allura meta għandek ittra kapitali, għandu jibqa bħala uppercase. 363 00:26:10,250 --> 00:26:12,830 Lowercases għandhom jibqgħu bħala zghar. 364 00:26:13,620 --> 00:26:19,480 Allura xi funzjonijiet utli biex ikunu jistgħu jittrattaw ma 'ittri biss enciphering 365 00:26:19,480 --> 00:26:22,380 u jżommu jippreserva l-kapitalizzazzjoni ta 'l-affarijiet 366 00:26:22,380 --> 00:26:25,130 huwa l-funzjonijiet islower isalpha, isupper,. 367 00:26:25,130 --> 00:26:29,270 U għalhekk dawn huma funzjonijiet li jirritornaw inti valur Boolean. 368 00:26:29,270 --> 00:26:34,180 Bażikament, vera jew falza. Huwa dan uppercase? Huwa dan alfanumerika? 369 00:26:34,180 --> 00:26:37,180 Huwa dan ta 'ittra, essenzjalment. 370 00:26:37,180 --> 00:26:41,070 Allura hawnhekk huma 3 eżempji ta 'kif inti tuża dik il-funzjoni. 371 00:26:41,070 --> 00:26:47,060 Bażikament, inti tista 'test jekk il-valur lura lilek minn dik il-funzjoni hija vera jew falza 372 00:26:47,060 --> 00:26:49,400 ibbażata fuq dik l-input. 373 00:26:49,400 --> 00:26:54,880 Jew tagħmel xi ħaġa ma encipher jew cipher dan jew jagħmlu ċert li huwa uppercase, eċċ 374 00:26:54,880 --> 00:27:01,080 [Student] Tista 'biss tispjega dawk ftit aktar u kif tuzahom? >> Yeah, għall-żgur. 375 00:27:01,080 --> 00:27:08,470 Mela jekk inħarsu lura, hawn għandna kapital I, id-dritt? 376 00:27:08,470 --> 00:27:14,550 Allura aħna nafu li jien tmur sa O minħabba I + 6 huwa O. 377 00:27:14,550 --> 00:27:18,740 Iżda aħna tixtieq li tagħmel ċert li din O se jkun O. kapital 378 00:27:18,740 --> 00:27:22,940 Allura bażikament, dan huwa tip ta 'se jibdlu l-input tagħna. 379 00:27:22,940 --> 00:27:26,870 Allura jekk huwa uppercase jew le se tip ta 'tibdel il-mod li aħna jittrattaw dan. 380 00:27:26,870 --> 00:27:32,360 Mela allura jekk nużaw l-funzjoni isupper fuq l-indiċi partikolari, 381 00:27:32,360 --> 00:27:36,480 hekk isupper ("I"), li jirritorna għalina veru, hekk aħna nafu li huwa fuq. 382 00:27:36,480 --> 00:27:40,360 Allura mbagħad bbażat fuq din, wara aħna ser imorru ġo formula 383 00:27:40,360 --> 00:27:42,750 li inti ser tkun qed tuża għal bidla affarijiet fil Caesar, 384 00:27:42,750 --> 00:27:46,560 hekk allura bażikament, hemm għaddej li jkun formula kemmxejn differenti jekk huwa uppercase 385 00:27:46,560 --> 00:27:50,670 għall-kuntrarju zghar. Jagħmel sens? 386 00:27:51,020 --> 00:27:52,760 Yeah. Nru inkwiet. 387 00:27:54,900 --> 00:27:58,990 I tkellmu ftit dwar żżid 6 għal ittra, li ma pjuttost tagħmel sens 388 00:27:58,990 --> 00:28:05,500 ħlief meta aħna tip ta 'jifhmu li dawn il-karattri 389 00:28:05,500 --> 00:28:08,920 huma tip ta 'interskambjabbli ma interi. 390 00:28:08,920 --> 00:28:11,250 Dak li nagħmlu huwa li aħna tip ta 'ikkastjar użu impliċitu. 391 00:28:11,250 --> 00:28:18,100 Aħna ser jmorru fil-ikkastjar daqsxejn aktar tard fejn inti tieħu valur u inti jibdluh tip differenti 392 00:28:18,100 --> 00:28:20,440 milli oriġinarjament kien. 393 00:28:20,440 --> 00:28:25,910 Iżda ma 'dan pset aħna ser ikunu jistgħu tip ta' xulxin tuża karattri 394 00:28:25,910 --> 00:28:30,880 u l-Istati valuri numru sħiħ korrispondenti. 395 00:28:30,880 --> 00:28:35,140 Mela jekk inti sempliċiment encase karattru ma 'biss il-kwotazzjonijiet wieħed, 396 00:28:35,140 --> 00:28:40,390 allura inti ser tkun kapaċi taħdem magħha ma interi, li jittrattaw bħala numru sħiħ. 397 00:28:40,390 --> 00:28:48,040 Allura l-kapital C tirrigwarda 67. F zghar tirrigwarda sa 102. 398 00:28:48,040 --> 00:28:51,480 Għal darb'oħra, jekk inti trid tkun taf dawn il-valuri, tħares fuq il-mejda ASCII tiegħek. 399 00:28:51,480 --> 00:28:56,160 Mela ejja jmorru fil xi eżempji ta 'kif inti tista' tkun kapaċi li naqqas u żid, 400 00:28:56,160 --> 00:29:03,130 kif inti tista 'attwalment verament jaħdmu ma' dawn il-karattri, jużawhom minflok xulxin. 401 00:29:03,870 --> 00:29:11,350 Jien ngħid li ASCIIMath se jikkalkulaw iż-żieda ta 'karattru li integer 402 00:29:11,350 --> 00:29:17,590 u mbagħad juri l-karattru riżultanti kif ukoll il-valur ASCII riżultanti. 403 00:29:17,590 --> 00:29:22,290 U hekk hawn jien tgħid - jittrattaw we'll ma 'din il-parti aktar tard - 404 00:29:22,290 --> 00:29:29,100 imma bażikament, jien qal li l-utent għandha tgħid ASCIIMath jimxu flimkien ma 'ċavetta, 405 00:29:29,100 --> 00:29:30,880 u jien qal li din muftieħ se jkun in-numru 406 00:29:30,880 --> 00:29:34,600 li magħhom aħna qed tmur biex iżżid dan il-karattru. 407 00:29:34,600 --> 00:29:38,560 Allura hawnhekk tinnota li peress li jien eżiġenti ewlieni, 408 00:29:38,560 --> 00:29:40,590 peress li jien titlob li dawn qed jagħti lili 1 ħaġa, 409 00:29:40,590 --> 00:29:45,600 I biss tixtieq li taċċetta. / Asciimath u ċavetta. 410 00:29:45,600 --> 00:29:49,330 Allura jien ser titlob li argc huwa ugwali għal 2. 411 00:29:49,330 --> 00:29:54,360 Jekk mhuwiex, allura jien ser jirritorna 1 u l-programm se ħruġ. 412 00:29:55,070 --> 00:29:58,540 Allura jien qal il-muftieħ huwa mhux se tkun l-ewwel argument linja tal-kmand, 413 00:29:58,540 --> 00:30:05,080 li għaddej biex tkun it-tieni waħda, u kif tara hawn, 414 00:30:05,080 --> 00:30:11,790 Jien ser tibdel din in numru sħiħ. 415 00:30:15,740 --> 00:30:19,230 Imbagħad jien ser jistabbilixxu karattru li jkun r. 416 00:30:19,230 --> 00:30:23,970 Avviż li t-tip ta 'l-CHR varjabbli huwa attwalment integer. 417 00:30:23,970 --> 00:30:30,480 Il-mod li jien kapaċi jużaw r bħala numru sħiħ huwa billi encasing ma dawn il-kwotazzjonijiet uniku. 418 00:30:33,850 --> 00:30:40,560 Allura lura għall-istqarrija printf tagħna fejn għandna placeholder għal karattru 419 00:30:40,560 --> 00:30:43,590 u mbagħad placeholder għal integer, 420 00:30:43,590 --> 00:30:49,450 il-karattru huwa rappreżentat mill-CHR, u l-eqreb numru sħiħ hija ċ-ċavetta. 421 00:30:49,450 --> 00:30:54,320 U hekk allura aħna qed tmur biex fil riżultat jżidu l-2 flimkien. 422 00:30:54,320 --> 00:30:58,420 Allura aħna qed tmur biex iżżid r + x'ikun il-muftieħ huwa, 423 00:30:58,420 --> 00:31:03,520 u allura aħna qed tmur biex jistampaw il-riżultat ta 'dak. 424 00:31:06,210 --> 00:31:14,220 Mela ejja jagħmlu asciimath. Huwa aġġornata, so ejja biss run asciimath. 425 00:31:14,220 --> 00:31:18,290 Oh, iżda tara, ma tagħmel xejn għaliex aħna ma attwalment tagħtiha a ċavetta. 426 00:31:18,290 --> 00:31:23,850 Allura meta biss lura 1, il-funzjoni prinċipali tagħna, hija biss rritornati lura lilna. 427 00:31:23,850 --> 00:31:29,250 Mela allura ejja jgħaddu fi ewlenin. Xi ħadd jagħti me numru. >> [Student] 4. 428 00:31:29,250 --> 00:31:30,920 4. Okay. 429 00:31:30,920 --> 00:31:39,280 Allura r żdiedet b'4 se tagħtina v, li jikkorrispondi għall-valur ASCII tal 118. 430 00:31:39,280 --> 00:31:43,880 Mela allura tip ta 'jagħmel sens li - 431 00:31:43,880 --> 00:31:51,250 Fil-fatt, jista Nitlobkom, x'taħseb l-valur ASCII tal r huwa jekk r + 4 huwa 118? 432 00:31:53,070 --> 00:31:55,470 Imbagħad yeah, r huwa 114. 433 00:31:55,470 --> 00:32:03,010 Mela jekk inti tħares fuq il-mejda ASCII allura, żgur biżżejjed, tkun taf tara li r huwa rappreżentat minn 114. 434 00:32:03,010 --> 00:32:08,610 Allura issa li nafu li nistgħu żid interi għal karattri, dan jidher pjuttost sempliċi. 435 00:32:08,610 --> 00:32:12,740 Aħna biss se jtenni fuq string simili rajna fil eżempju qabel. 436 00:32:12,740 --> 00:32:17,170 Aħna ser jiċċekkja jekk huwa ittra. 437 00:32:17,170 --> 00:32:20,420 Jekk huwa, allura aħna ser bidla lilu mill x'ikun il-muftieħ huwa. 438 00:32:20,420 --> 00:32:23,650 Pretty sempliċi, ħlief meta ikollok bħal dan, 439 00:32:23,650 --> 00:32:32,140 tara li z, irrappreżentata minn 122, allura se jagħtuk karattru differenti. 440 00:32:32,140 --> 00:32:37,770 Aħna fil-fatt tixtieq li toqgħod ġewwa alfabett tagħna, id-dritt? 441 00:32:37,770 --> 00:32:43,180 Allura għandna bżonn biex insemmu xi mod ta 'tip ta' kisi madwar. 442 00:32:43,180 --> 00:32:47,190 Meta inti tilħaq zed u inti tixtieq li jiżdied minn ċertu numru, 443 00:32:47,190 --> 00:32:51,230 inti ma tridx li jmorru fil hinn mill-taqsima alfabett ASCII; 444 00:32:51,230 --> 00:32:54,140 inti tixtieq li nagħlaq lura fit-triq kollha sa A. 445 00:32:54,140 --> 00:32:58,550 Iżda jżomm f'moħħu int xorta tippreserva l-każ. 446 00:32:58,550 --> 00:33:00,980 Allura jafu li l-ittri ma tistax issir simboli 447 00:33:00,980 --> 00:33:05,290 bħad simboli mhumiex ser jinbidlu wkoll. 448 00:33:05,290 --> 00:33:08,170 Fl-aħħar pset inti definittivament ma kellhomx bżonn, 449 00:33:08,170 --> 00:33:14,310 iżda għażla kienet li jimplimentaw pset greedy tiegħek billi tuża l-funzjoni modulu. 450 00:33:14,310 --> 00:33:17,230 Imma issa aħna qed fil-fatt se jkollhom bżonn jużaw modulus, 451 00:33:17,230 --> 00:33:19,900 hekk ejja biss jmorru fuq din id-daqsxejn ftit. 452 00:33:19,900 --> 00:33:26,920 Essenzjalment, meta jkollok x modulo y, li jagħtik il-bqija ta 'x diviż bil y. 453 00:33:26,920 --> 00:33:30,930 Dawn huma xi eżempji hawn. Għandna 27% 15. 454 00:33:30,930 --> 00:33:36,200 Bażikament, meta inti naqqas 15 minn 27 kemm drabi possibbli mingħajr ma jkollna negattiv 455 00:33:36,200 --> 00:33:39,060 imbagħad ikollok 12 mħollija. 456 00:33:39,060 --> 00:33:44,650 Allura dak it-tip ta 'prodotti simili fil-kuntest matematika, imma kif nistgħu attwalment jużaw dan? 457 00:33:44,650 --> 00:33:47,100 Huwa ser tkun utli għall wrapover tagħna. 458 00:33:47,100 --> 00:33:55,420 Għal dan, ejja biss jgħidu inti tlabt kollha li jaqsam fi 3 gruppi. 459 00:33:55,420 --> 00:33:58,010 Kultant inti tagħmel dan fi gruppi u xi ħaġa bħal dik. 460 00:33:58,010 --> 00:34:01,320 Tgħid I said, "Okay, nixtieq lilkom kollha li tkun maqsuma fi 3." 461 00:34:01,320 --> 00:34:04,240 Kif tista 'inti tagħmel dan? 462 00:34:04,240 --> 00:34:06,810 [Rispons istudent inaudible] Yeah, eżattament. Count off. Okay. 463 00:34:06,810 --> 00:34:10,260 Ejja fil-fatt jagħmlu dan. Tixtieq li tibda? 464 00:34:10,260 --> 00:34:13,810 [Studenti għadd off] 1, 2, 3, 4. 465 00:34:13,810 --> 00:34:16,620 Imma ftakar ... >> [Student] Oh, sorry. 466 00:34:16,620 --> 00:34:18,730 Li l-punt verament tajba. 467 00:34:18,730 --> 00:34:24,130 Inti qal 4, imma aħna fil-fatt li inti tgħid 1 għaliex aħna biss trid 3 gruppi. 468 00:34:24,130 --> 00:34:30,159 Allura mbagħad, kif - Le, dak huwa eżempju verament tajba għaliex allura kif jista inti tgħidli 1? 469 00:34:30,159 --> 00:34:33,370 X'hemm-relazzjoni bejn 4 u 1? 470 00:34:33,370 --> 00:34:36,760 Ukoll, 4 mod 3 huwa 1. 471 00:34:36,760 --> 00:34:41,460 Mela jekk inti tkompli, inti tkun 2. 472 00:34:41,460 --> 00:34:44,540 Allura aħna għandna 1, 2, 3, 1, 2. 473 00:34:44,540 --> 00:34:49,420 Għal darb'oħra, int fil-fatt il-persuna 5. Kif tkun taf li jgħidu 2 minflok ta '5? 474 00:34:49,420 --> 00:34:53,760 You say 5 mod 3 huwa 2. 475 00:34:53,760 --> 00:34:59,100 Irrid nara kemm gruppi ta '3 huma mħollija, allura li ordni am I. 476 00:34:59,100 --> 00:35:02,860 U hekk allura jekk irridu kompla matul il-kamra kollha, 477 00:35:02,860 --> 00:35:07,760 allura aħna se tara li aħna qed dejjem attwalment japplikaw l-funzjoni mod li lilna nfusna 478 00:35:07,760 --> 00:35:09,990 għall tip ta 'għadd off. 479 00:35:09,990 --> 00:35:14,490 Li l-aktar tip ta 'eżempju tanġibbli ta' kif inti tista 'tuża modulo 480 00:35:14,490 --> 00:35:17,960 għaliex jien ċert ħafna minna probabbilment għaddew dak il-proċess 481 00:35:17,960 --> 00:35:19,630 fejn aħna kellna biex jingħaddu off. 482 00:35:19,630 --> 00:35:21,840 Kwalunkwe mistoqsijiet dwar modulo? 483 00:35:21,840 --> 00:35:25,360 Se jkun pjuttost importanti li wieħed jifhem l-kunċetti ta 'dan, 484 00:35:25,360 --> 00:35:28,640 so I tixtieq tagħmel żgur li inti guys jifhmu. 485 00:35:28,640 --> 00:35:34,660 [Student] Jekk ma jkun hemm ebda bqija, ma jtik in-numru attwali? 486 00:35:34,660 --> 00:35:40,430 Jekk waħda mill-ewwel 3 minnhom kienu għamlu dan, ikun taw lilhom dak li fil-fatt kienu, 487 00:35:40,430 --> 00:35:43,310 jew kien ikun taw lilhom [inaudible] >> Li hija mistoqsija tajba. 488 00:35:43,310 --> 00:35:48,750 Meta jkun hemm l-ebda bqija għall-modulo - sabiex jgħidu ikollok 6 mod 3 - 489 00:35:48,750 --> 00:35:52,340 li attwalment jagħtik lura 0. 490 00:35:53,670 --> 00:35:57,290 Aħna ser jitkellmu dwar li ftit aktar tard. 491 00:35:58,810 --> 00:36:07,720 Oh yeah, per eżempju, il-persuna 3 - 3 mod 3 huwa attwalment 0 imma qalet 3. 492 00:36:07,720 --> 00:36:14,900 Allura dak it-tip ta 'prodotti simili qabda ġewwa, per eżempju, 493 00:36:14,900 --> 00:36:17,620 bħal okay, jekk il-mod ikun 0 mbagħad jien ser jkun il-persuna 3. 494 00:36:17,620 --> 00:36:22,740 Iżda aħna ser jsibu rwieħhom tip ta 'kif aħna tista' tixtieq li jittrattaw ma 'dak 0 hija aktar tard. 495 00:36:22,740 --> 00:36:32,750 Allura issa aħna b'xi mod għandhom mod ta 'mapping tal-zed l-ittra dritt. 496 00:36:32,750 --> 00:36:34,920 Allura issa aħna ħadthom marret permezz dawn l-eżempji, 497 00:36:34,920 --> 00:36:37,880 aħna tip ta 'tara kif Caesar jista' jaħdem. 498 00:36:37,880 --> 00:36:42,640 You see-alfabett 2 u mbagħad tara minnhom ċaqliq. 499 00:36:42,640 --> 00:36:44,430 Mela ejja jippruvaw u jesprimu li f'termini ta 'formula. 500 00:36:44,430 --> 00:36:46,940 Din il-formula hija attwalment mogħtija lilek fil-spec, 501 00:36:46,940 --> 00:36:52,070 iżda xorta ejja ta 'ħarsa permezz dak li kull varjabbli mezzi. 502 00:36:52,070 --> 00:36:55,000 Riżultat aħħari tagħna se tkun l-ciphertext. 503 00:36:55,000 --> 00:36:58,300 Allura dan jgħid li l-karattru ith tal-ciphertext 504 00:36:58,300 --> 00:37:02,500 se jikkorrespondu mal-karattru ith tal-plaintext. 505 00:37:02,500 --> 00:37:08,130 Dan jagħmel sens għaliex irridu li dejjem tkun lining dawn l-affarijiet up. 506 00:37:08,130 --> 00:37:13,480 Allura li għaddej biex tkun il-karattru ith tal-k plus ciphertext, li hija essenzjali tagħna - 507 00:37:13,480 --> 00:37:17,230 li jagħmel sens - u allura għandna dan il-mod 26. 508 00:37:17,230 --> 00:37:19,860 Ftakar lura meta kellna l zed 509 00:37:19,860 --> 00:37:24,190 aħna ma rridu nġibu fis-karattru, hekk ridna li mod li 510 00:37:24,190 --> 00:37:26,540 u tip ta 'around l-alfabett. 511 00:37:26,540 --> 00:37:33,430 Wara zed inti tmur a, b, c, d, sakemm inti ltqajna l-għadd dritt. 512 00:37:33,430 --> 00:37:44,690 Allura aħna nafu li zed, jekk + 6, tagħtina f għax wara zed taqa a, b, c, d, e, f. 513 00:37:44,690 --> 00:37:52,530 Mela ejja niftakru aħna nafu fiċ-ċert li zed + 6 se tagħtina f. 514 00:37:52,530 --> 00:38:03,530 Fil-valuri ASCII, z huwa 122 uf hija 102. 515 00:38:03,530 --> 00:38:10,570 Allura aħna għandna biex isibu xi mod ta 'kif issir formula Caesar tagħna tagħtina 102 516 00:38:10,570 --> 00:38:13,590 wara li fil-122. 517 00:38:13,590 --> 00:38:19,550 Allura jekk aħna biss japplikaw din il-formula, il-% ("z" + 6) 26, li attwalment jagħtik 24 518 00:38:19,550 --> 00:38:25,980 għaliex 122 + 6 huwa 128; 128% 26 jagħtik 24 kumplament. 519 00:38:25,980 --> 00:38:29,140 Iżda dan ma verament tfisser f. Li definittivament mhux 102. 520 00:38:29,140 --> 00:38:33,590 Li wkoll mhux l-ittra 6 fi-alfabett. 521 00:38:33,590 --> 00:38:41,550 Allura ovvjament, għandna bżonn li jkollhom xi mod ta 'tweaking din id-daqsxejn ftit. 522 00:38:42,970 --> 00:38:51,340 F'termini ta 'l-alfabett regolari, nafu li z hija l-ittra 26 uf hija l-6. 523 00:38:51,340 --> 00:38:55,460 Iżda aħna qed fl-xjenza tal-kompjuter, hekk aħna qed tmur biex indiċi ta '0. 524 00:38:55,460 --> 00:39:00,690 Mela allura minflok z huwa n-numru 26, aħna qed tmur biex ngħid numru huwa 25 525 00:39:00,690 --> 00:39:02,630 għaliex hija 0. 526 00:39:02,630 --> 00:39:04,770 Allura issa ejja japplikaw din il-formula. 527 00:39:04,770 --> 00:39:11,710 Għandna z rappreżentata minn 25 + 6, li tagħtik 31. 528 00:39:11,710 --> 00:39:15,790 U 31 26 mod jagħtik 5 bħala kumplament. 529 00:39:15,790 --> 00:39:20,500 Dak perfetta għax aħna nafu li f hija l-ittra 5 fil-alfabett. 530 00:39:20,500 --> 00:39:26,400 Iżda xorta waħda mhuwiex f, id-dritt? Hija xorta mhix 102. 531 00:39:26,400 --> 00:39:32,730 Allura mbagħad għal dan pset, sfida se tkun qed tipprova biex issir taf ir-relazzjoni 532 00:39:32,730 --> 00:39:36,910 bejn konverżjoni bejn dawn il-valuri ASCII u l-indiċi alfabetiku. 533 00:39:36,910 --> 00:39:40,280 Essenzjalment, dak li tixtieq tkun taf biex tagħmel, inti tixtieq li tibda mal-valuri ASCII, 534 00:39:40,280 --> 00:39:45,390 iżda imbagħad inti tixtieq li b'xi mod tittraduċi dan in indiċi alfabetiku 535 00:39:45,390 --> 00:39:52,610 imbagħad tikkalkula liema ittra għandu jkun - bażikament, liema indiċi alfabetiku tagħha huwa 536 00:39:52,610 --> 00:39:57,660 tal-karattru cipher - imbagħad tittraduċi li lura għall-valuri ASCII. 537 00:39:57,660 --> 00:40:04,870 Mela jekk inti Whip tabella ASCII tiegħek, allura jippruvaw isibu relazzjonijiet bejn, jiġifieri, 102 u 5 538 00:40:04,870 --> 00:40:10,440 jew il-122 u 25. 539 00:40:12,140 --> 00:40:15,690 Imxejna gotten ewlieni tagħna mill-argumenti kmand tal-linja, aħna ve gotten-plaintext, 540 00:40:15,690 --> 00:40:17,520 konna enciphered dan. 541 00:40:17,520 --> 00:40:19,820 Issa kollha għandna xellug tagħmel huwa jistampaw. 542 00:40:19,820 --> 00:40:22,040 Stajna nagħmlu dan ftit ta 'modi differenti. 543 00:40:22,040 --> 00:40:24,570 Dak li stajna nagħmlu huwa attwalment print kif aħna jmorru flimkien. 544 00:40:24,570 --> 00:40:28,250 Kif aħna jtenni matul il-karattri fit-sekwenza, 545 00:40:28,250 --> 00:40:31,660 nistgħu sempliċiment biss jistampaw id-dritt allura meta aħna kkalkulata. 546 00:40:31,660 --> 00:40:36,030 Alternattivament, inti tista 'wkoll jaħżnu fil-firxa u jkollhom firxa ta' karattri 547 00:40:36,030 --> 00:40:39,280 u fl-aħħar jtenni fuq dak firxa sħiħa u ipprintjaha. 548 00:40:39,280 --> 00:40:40,980 Allura inti għandek koppja ta 'għażliet għal dak. 549 00:40:40,980 --> 00:40:47,280 U ftakar li% c se tkun l-placeholder għall-istampar karattru. 550 00:40:47,280 --> 00:40:50,420 Allura hemm aħna għandna Caesar, u issa aħna jimxu fuq Vigenere, 551 00:40:50,420 --> 00:40:57,580 li hija simili ħafna għal Caesar imma biss ftit aktar kumplessi. 552 00:40:57,580 --> 00:41:03,310 Allura essenzjalment ma Vigenere huwa int ser tkun tgħaddi fil-keyword. 553 00:41:03,310 --> 00:41:06,510 Allura minflok ta 'numru, int ser ikollhom string, 554 00:41:06,510 --> 00:41:09,200 u hekk li għaddej biex jaġixxu bħala keyword tiegħek. 555 00:41:09,200 --> 00:41:14,440 Imbagħad, bħas-soltu, int ser tikseb fil-pront għal string mill-utent 556 00:41:14,440 --> 00:41:19,050 u mbagħad encipher u mbagħad jagħtuhom id-dahar ciphertext. 557 00:41:19,050 --> 00:41:24,650 Allura kif għidt, huwa simili ħafna għall Caesar, ħlief minflok ta 'ċaqliq minn ċertu numru, 558 00:41:24,650 --> 00:41:30,620 in-numru huwa attwalment se jibdlu kull darba minn karattru karattru. 559 00:41:30,620 --> 00:41:34,890 Biex jirrappreżenta dak in-numru attwali għall-bidla, huwa rappreżentat mill-ittri keyboard. 560 00:41:34,890 --> 00:41:43,150 Mela jekk inti tidħol fil-bidla ta ', per eżempju, allura dan ikun jikkorrispondi għal ċaqliqa ta' 0. 561 00:41:43,150 --> 00:41:45,900 Allura huwa jerġa 'lura għall-indiċi alfabetiku. 562 00:41:45,900 --> 00:41:49,100 Liema jista 'jkun utli jekk int tara li aħna qed attwalment nittrattaw ma' valuri ASCII 563 00:41:49,100 --> 00:41:51,790 kif ukoll l-ittri, kif ukoll l-indiċi alfabetiku, 564 00:41:51,790 --> 00:41:58,020 forsi jsibu jew tagħmel tabella ASCII tiegħek stess li turi l-indiċi alfabetiku ta '0 sa 25, 565 00:41:58,020 --> 00:42:03,750 a permezz z, u l-valuri ASCII sabiex inti tista 'tip ta' jara r-relazzjoni 566 00:42:03,750 --> 00:42:07,020 u jfassal u jippruvaw isibu xi mudelli. 567 00:42:07,020 --> 00:42:11,010 Bl-istess mod, jekk inti kienu ċaqliq fil-każ ċerti f - 568 00:42:11,010 --> 00:42:21,110 u dan huwa jew f zghar jew uppercase - allura dan ikun jikkorrispondi għal 5. 569 00:42:21,110 --> 00:42:24,180 Are we tajba s'issa? 570 00:42:25,770 --> 00:42:30,050 Il-formula għall Vigenere huwa daqsxejn differenti. 571 00:42:30,050 --> 00:42:32,960 Bażikament, inti tara li huwa biss bħal Caesar, 572 00:42:32,960 --> 00:42:37,390 ħlief minflok sempliċiment k għandna k indiċi j. 573 00:42:37,390 --> 00:42:44,810 Avviż li aħna ma tkunx qed tużah i, minħabba essenzjalment, it-tul ta 'l-keyword 574 00:42:44,810 --> 00:42:49,850 mhux neċessarjament it-tul ta 'ciphertext tagħna. 575 00:42:49,850 --> 00:42:56,130 Dan se jkun aktar ċara daqsxejn meta naraw eżempju li għandi daqsxejn aktar tard. 576 00:42:56,130 --> 00:43:03,160 Bażikament, jekk inti tmexxi programm tiegħek ma 'keyword ta ohai, 577 00:43:03,160 --> 00:43:08,560 allura dan ifisser li kull darba, ohai se tkun bidla tiegħek. 578 00:43:08,560 --> 00:43:11,060 Allura jiddependi fuq dak il-pożizzjoni inti fil keyword tiegħek, 579 00:43:11,060 --> 00:43:15,800 int ser jaqilbu karattru ċert tiegħek ciphertext b'dak l-ammont. 580 00:43:15,800 --> 00:43:19,630 Għal darb'oħra, bħal Caesar, irridu niżguraw li aħna jippreservaw l-kapitalizzazzjoni ta 'l-affarijiet 581 00:43:19,630 --> 00:43:22,900 u aħna biss ittri encipher, mhux karattri jew spazji. 582 00:43:22,900 --> 00:43:26,330 Allura ħarsa lura lill Caesar fuq il-funzjonijiet li jista 'jkollok użati, 583 00:43:26,330 --> 00:43:32,570 il-mod li inti iddeċidejt kif shift affarijiet, u japplikaw dak li programm tiegħek hawn. 584 00:43:32,570 --> 00:43:35,260 Mela ejja Mappa dan. 585 00:43:35,260 --> 00:43:39,680 Għandna plaintext li aħna ħadthom gotten mill-utent mill-GetString 586 00:43:39,680 --> 00:43:44,090 qal Dan ... huwa CS50! 587 00:43:44,090 --> 00:43:47,090 Imbagħad għandna keyword ta ohai. 588 00:43:47,090 --> 00:43:50,930 L-ewwel 4 karattri huma pjuttost sempliċi. 589 00:43:50,930 --> 00:43:55,580 Aħna nafu li T se jiġi mċaqlaq minn o, 590 00:43:55,580 --> 00:44:01,990 allura h se jiġi mċaqlaq minn h, i se jiġi mċaqlaq minn. 591 00:44:01,990 --> 00:44:04,610 Hawnhekk għandek tara li tirrappreżenta 0, 592 00:44:04,610 --> 00:44:11,940 hekk allura l-valur finali huwa attwalment biss l-ittra istess bħal qabel. 593 00:44:11,940 --> 00:44:15,250 Imbagħad i huwa mċaqlaq minn i. 594 00:44:15,250 --> 00:44:19,370 Imma mbagħad għandek dawn il-perjodi hawn. 595 00:44:19,370 --> 00:44:25,960 Aħna ma rridux li encipher li, hekk allura aħna ma jibdlu minn xejn 596 00:44:25,960 --> 00:44:31,280 u biss jistampa l-perjodu l-istess. 597 00:44:31,280 --> 00:44:38,020 [Student] Ma nifhimx kif inti taf li dan huwa mċaqlaq mill - Fejn ma inti - >> Oh, sorry. 598 00:44:38,020 --> 00:44:41,620 Fil-quċċata hawn tara li l-kmand linja argument ohai hawn, 599 00:44:41,620 --> 00:44:43,740 li għaddej biex tkun l-keyword. 600 00:44:43,740 --> 00:44:49,550 U għalhekk bażikament, int ċikliżmu fuq il-karattri fit-keyword. 601 00:44:49,550 --> 00:44:52,020 [Student] Mela o se jiġi trasferit l-istess - 602 00:44:52,020 --> 00:44:56,260 Allura o jikkorrispondi għal ċertu numru fil-alfabett. 603 00:44:56,260 --> 00:44:58,400 [Student] Dritt. Iżda fejn ma ikollok l-parti CS50 minn? 604 00:44:58,400 --> 00:45:02,540 Oh. Li fil GetString fejn int simili, "Give me string li encode." 605 00:45:02,540 --> 00:45:07,510 [Student] Huma qed tmur biex jagħtuk dan l-argument li bidla minn 606 00:45:07,510 --> 00:45:09,380 u allura inti taf titlob għal string tiegħek ewwel. >> Yeah. 607 00:45:09,380 --> 00:45:12,440 Allura meta tmexxi l-programm, dawn qed tmur biex tinkludi l-keyword 608 00:45:12,440 --> 00:45:14,740 fl-argumenti tagħhom kmand tal-linja meta run. 609 00:45:14,740 --> 00:45:19,740 Imbagħad ladarba inti stajt ċċekkjati li ħadthom attwalment tak 1 u mhux aktar, mhux inqas, 610 00:45:19,740 --> 00:45:23,750 allura int ser twassalhom għal string, jgħidu, "Give me string." 611 00:45:23,750 --> 00:45:27,630 Allura dak fejn f'dan il-każ li ħadthom tak Dan ... huwa CS50! 612 00:45:27,630 --> 00:45:32,090 Mela allura int ser tuża din u l-użu ohai u jtenni fuq. 613 00:45:32,090 --> 00:45:38,200 Avviż li hawnhekk aħna skipped fuq encrypting il-perjodi, 614 00:45:38,200 --> 00:45:51,660 imma f'termini ta 'pożizzjoni tagħna għall ohai, dak li jmiss aħna użati o. 615 00:45:51,660 --> 00:45:54,990 F'dan il-każ huwa daqsxejn aktar diffiċli biex tara għaliex dan huwa 4, 616 00:45:54,990 --> 00:45:57,710 hekk ejja tkompli daqsxejn. Just stick miegħi hawn. 617 00:45:57,710 --> 00:46:02,960 Imbagħad għandna i u s, li mbagħad tradotti minn o uh rispettivament. 618 00:46:02,960 --> 00:46:09,370 Imbagħad għandna spazju, u hekk allura nafu li aħna mhux se encipher-ispazji. 619 00:46:09,370 --> 00:46:18,930 Iżda l-avviż li minflok tmur lil f'dan il-post dritt hawn, 620 00:46:18,930 --> 00:46:28,330 aħna qed encrypting minn - I do not know jekk inti tista 'tara li - dritt hawn. 621 00:46:28,330 --> 00:46:33,710 Għalhekk mhuwiex simili inti fil-fatt predeterminat, jiġifieri, o tmur hawn, h tmur hawn, 622 00:46:33,710 --> 00:46:39,200 a tmur hawn, i tmur hawn, o, h, a, i, o, h, a, i. Inti ma tagħmel dan. 623 00:46:39,200 --> 00:46:43,760 Inti biss bidla pożizzjoni tiegħek fil-keyword 624 00:46:43,760 --> 00:46:51,020 meta taf li int fil-fatt se jiġu kkodifikati ittra attwali. 625 00:46:51,020 --> 00:46:53,920 Does li tip ta 'jagħmel sens? 626 00:46:53,920 --> 00:46:55,800 Okay. 627 00:46:56,490 --> 00:46:58,500 Allura biss xi tfakkiriet. 628 00:46:58,500 --> 00:47:03,760 Inti tixtieq li tagħmel ċert li inti biss bil-quddiem għall-ittra li jmiss fil keyword tiegħek 629 00:47:03,760 --> 00:47:06,390 jekk il-karattru fil plaintext tiegħek hija ittra. 630 00:47:06,390 --> 00:47:09,120 Allura ngħid aħna qed fil-o. 631 00:47:09,120 --> 00:47:19,310 Aħna avviż li l-karattru li jmiss, l-indiċi i ta 'l-plaintext, huwa numru, per eżempju. 632 00:47:19,310 --> 00:47:31,630 Imbagħad aħna ma qabel j, l-indiċi għall-keyword tagħna, sakemm nilħqu ittra oħra. 633 00:47:31,630 --> 00:47:36,230 Għal darb'oħra, inti wkoll tixtieq li tagħmel ċert li inti trembil għall-bidu tal-keyword 634 00:47:36,230 --> 00:47:37,770 meta int fl-aħħar ta 'dan. 635 00:47:37,770 --> 00:47:42,030 Jekk tara hawn aħna qed fil i, il-wieħed li jmiss għandu jkun o. 636 00:47:42,030 --> 00:47:47,690 Allura inti tixtieq li ssib xi mod li tkun tista 'trembil għall-bidu ta' keyword tiegħek 637 00:47:47,690 --> 00:47:49,470 kull darba li inti jilħqu t-tmiem. 638 00:47:49,470 --> 00:47:55,040 U għalhekk għal darb'oħra, liema tip ta 'operatur huwa utli f'dak il-każ għall-kisi madwar? 639 00:47:56,630 --> 00:47:59,840 Bħal fil-għadd off eżempju. 640 00:47:59,840 --> 00:48:03,710 [Student] Is-sinjal fil-mija. >> Yeah, is-sinjal fil-mija, li hija modulo. 641 00:48:03,710 --> 00:48:11,250 Allura modulo se jidħlu fil handy hawn meta inti tixtieq li nagħlaq fuq l-indiċi fil-ohai tiegħek. 642 00:48:11,250 --> 00:48:17,700 U biss ħjiel ta 'malajr: Ipprova aħseb ta' tgeżwir fuq il-keyword qisu l-off-għadd, 643 00:48:17,700 --> 00:48:23,590 fejn jekk ikun hemm 3 gruppi, il-persuna 4, 644 00:48:23,590 --> 00:48:30,610 numru tagħhom li huma qalu kienet ta '4 mod 3, li kien 1. 645 00:48:30,610 --> 00:48:32,880 Sabiex jippruvaw u think ta 'dan il-mod. 646 00:48:34,770 --> 00:48:42,740 Kif inti raw fil-formula, fejn inti għandek ci u mbagħad pi imma mbagħad kj, 647 00:48:42,740 --> 00:48:44,700 inti tixtieq li tagħmel ċert li inti żżomm rekord minn dawn. 648 00:48:44,700 --> 00:48:47,580 Inti ma għandekx bżonn li hija sejħa i, inti m'għandekx bżonn li hija sejħa j, 649 00:48:47,580 --> 00:48:53,270 iżda inti tixtieq li tagħmel ċert li inti żżomm rekord tal-pożizzjoni li int fid fil plaintext tiegħek 650 00:48:53,270 --> 00:48:55,790 kif ukoll il-pożizzjoni li int fid fil keyword tiegħek 651 00:48:55,790 --> 00:48:59,840 għaliex dawk mhumiex neċessarjament se jkunu l-istess. 652 00:48:59,840 --> 00:49:06,400 Mhux biss il-keyword - jista 'jkun ta' tul kompletament differenti minn plaintext tiegħek. 653 00:49:06,400 --> 00:49:09,140 Ukoll, plaintext tiegħek, hemm numri u l-karattri, 654 00:49:09,140 --> 00:49:14,450 għalhekk mhuwiex ser perfettament jaqblu flimkien. Iva. 655 00:49:14,450 --> 00:49:19,280 [Student] Hemm funzjoni għall-bidla każ? 656 00:49:19,280 --> 00:49:24,530 Tista bidla għall-kapital A? >> Yeah, hemm definittivament. 657 00:49:24,530 --> 00:49:27,890 Tista 'tiċċekkja - Nemmen toupper huwa, kollu kelma 1. 658 00:49:30,650 --> 00:49:36,310 Imma meta inti qed tipprova cipher affarijiet u jippreservaw it-test, 659 00:49:36,310 --> 00:49:39,350 huwa aħjar bażikament li jkollhom każijiet separati. 660 00:49:39,350 --> 00:49:42,040 Jekk huwa ta 'uppercase, imbagħad inti tixtieq li bidla minn din 661 00:49:42,040 --> 00:49:46,460 minħabba fil-formula tiegħek, meta inti tħares lura kif għandna tip ta 'go 662 00:49:46,460 --> 00:49:50,900 minflok xulxin bejn il-mod ASCII ta jirrappreżentaw in-numri 663 00:49:50,900 --> 00:49:55,020 u l-indiċi alfabetiku attwali, irridu li jagħmlu ċert 664 00:49:55,020 --> 00:50:01,850 hemm għaddej li jkun hemm xi tip ta 'mudell li int ser tuża. 665 00:50:01,850 --> 00:50:04,580 Ieħor nota dwar il-mudell, fil-fatt. 666 00:50:04,580 --> 00:50:07,250 Inti ser definittivament jittrattaw numri. 667 00:50:07,250 --> 00:50:11,280 Ipprova ma jużawx in-numri magic, li hija eżempju ta 'stil. 668 00:50:11,280 --> 00:50:18,470 Allura ngħid li inti tixtieq li kull ħaġa time shift bil tixtieq - 669 00:50:18,470 --> 00:50:22,400 Okay, hekk ħjiel, ieħor spoiler huwa meta int ser jiġi trasferit xi ħaġa 670 00:50:22,400 --> 00:50:26,310 billi ċertu ammont, ipprova ma jirrappreżenta dak minn numru attwali 671 00:50:26,310 --> 00:50:32,810 iżda ipprova u ara jekk inti tista 'tuża l-valur ASCII, li se tip ta' jagħmel aktar sens. 672 00:50:32,810 --> 00:50:35,470 Ieħor nota: Għaliex aħna qed jittrattaw ma 'formuli, 673 00:50:35,470 --> 00:50:41,200 anki jekk TF tiegħek se tip ta 'jafu liema mudell inti jista' jkun bl-użu, 674 00:50:41,200 --> 00:50:44,430 aħjar fil-tip kummenti tiegħek tal jispjegaw il-loġika, bħal, 675 00:50:44,430 --> 00:50:51,880 "Jien jużaw dan il-mudell għaliex ..." u tip ta 'tispjega l-mudell fil-qosor fil-kummenti tiegħek. 676 00:50:54,090 --> 00:50:58,990 [Dan kien walkthrough 2] Jekk ma jkunx hemm xi mistoqsijiet oħra, imbagħad I ser biss jibqgħu hawn għal ftit. 677 00:50:58,990 --> 00:51:04,370 Xorti tajba mal tiegħek pset 2: kripto u grazzi għall ġejjin. 678 00:51:06,070 --> 00:51:08,620 [Student] Grazzi. Grazzi >>. 679 00:51:09,220 --> 00:51:10,800 [Intro Media Offline]