1 00:00:00,000 --> 00:00:11,960 2 00:00:11,960 --> 00:00:13,750 >> ROB Bowden: Saluton, mi estas Rob. 3 00:00:13,750 --> 00:00:17,360 Kiam en Romo, ni programo kiel la romanoj fari. 4 00:00:17,360 --> 00:00:22,280 Do, unue ni devas fari estas ĉeko certigi la uzanto efektive eniris 5 00:00:22,280 --> 00:00:26,670 la numero kiun ni volas turni ĉiu karaktero de la komandlinio. 6 00:00:26,670 --> 00:00:27,740 >> Do, ni kontrolu. 7 00:00:27,740 --> 00:00:30,180 Ĉu argc egala al 2? 8 00:00:30,180 --> 00:00:34,190 Se ĝi ne estas, kiu signifas la uzanton ĉu ne eniris la nombro je la 9 00:00:34,190 --> 00:00:37,770 komandlinio aŭ ili eniris tro multaj aferojn en la komandlinio, en kiu 10 00:00:37,770 --> 00:00:40,560 kazo ni ne scias kion fari kun la resto de la diritajxo. 11 00:00:40,560 --> 00:00:45,750 Do, tiel longe kiel argc Estis du, ni povas daŭrigi kun la resto de la programo. 12 00:00:45,750 --> 00:00:49,610 >> Nu, memoru, ke argv 1 estas ĉiam ĉenon. 13 00:00:49,610 --> 00:00:52,490 Sed ni volas trakti ĝin kiel entjero. 14 00:00:52,490 --> 00:00:57,550 Do, ni uzu la atoi funkcio kiu estas menciita p aro spec konverti la 15 00:00:57,550 --> 00:01:02,330 kordo argv 1 al entjero, kaj ni stoki ke en klavo. 16 00:01:02,330 --> 00:01:06,050 Ni volas certigi ke la entjero kiu eniris ne estas negativa. 17 00:01:06,050 --> 00:01:09,490 Kaj se li estis, ni deziras presi ke la uzanton ke ili ne permesis 18 00:01:09,490 --> 00:01:11,980 por fari tion, kaj reveni. 19 00:01:11,980 --> 00:01:15,100 >> Do, nun ni havas validan numeron de la uzanto. 20 00:01:15,100 --> 00:01:19,780 Sed ni bezonas por akiri kordo de la uzanton, ke ni volas kodi. 21 00:01:19,780 --> 00:01:25,340 Do ni kutimis fari-dum loop kaj uzu akiri kordo akiri tiun ĉenon de la 22 00:01:25,340 --> 00:01:29,190 uzanto, kaj daŭre ricevas kordo ĝis ili reale 23 00:01:29,190 --> 00:01:31,270 entajpi validan kordo. 24 00:01:31,270 --> 00:01:34,400 >> Iam ni havi tiun ĉenon, ni povas iri al ĉifri ĝin. 25 00:01:34,400 --> 00:01:38,120 Do, ĉi por buklo estas faranta ke ĉifrado. 26 00:01:38,120 --> 00:01:43,250 Rimarku ke ni ripetanta de i egalas 0 t tuta vojo supren al mi egalaj 27 00:01:43,250 --> 00:01:47,790 n, kie n estas difinita kiel la longeco de nian mesaĝon, kie la mesaĝo estas la 28 00:01:47,790 --> 00:01:50,260 kordo, ke la uzanto eniris. 29 00:01:50,260 --> 00:01:54,330 >> Do ni estas ripetanta super ĉiuj signoj en la ĉeno. 30 00:01:54,330 --> 00:01:59,740 Kaj se karaktero estas majuskla, do Ni tuj ŝanĝi ĝin uzante ĉi 31 00:01:59,740 --> 00:02:01,860 formulo, kiun ni atingi en sekundo. 32 00:02:01,860 --> 00:02:05,260 Kaj se ĝi minuskle, tiam ni devos ŝanĝi ĝin uzante ĉi estas 33 00:02:05,260 --> 00:02:07,290 tre similan formulon. 34 00:02:07,290 --> 00:02:10,850 Kaj se ĝi estis nek an majuskle nek minuskla litero - por ekzemplo, tio 35 00:02:10,850 --> 00:02:15,370 povus esti nombro aŭ simbolo - tiam ni Ne tuj fari ion al ŝi. 36 00:02:15,370 --> 00:02:18,220 >> Do, kion signifas tiuj formuloj? 37 00:02:18,220 --> 00:02:22,090 Nu, kial ni ŝanĝos la karakteron A? 38 00:02:22,090 --> 00:02:27,250 Ni volas trakti la karaktero A kiel la nombro 0. 39 00:02:27,250 --> 00:02:30,710 Kaj ni volas trakti la karaktero B kiel la numeron 1, kaj tiel plu. 40 00:02:30,710 --> 00:02:35,170 Ĝi estas la nula kaj unua karakteroj de la alfabeto kaj tiel plu. 41 00:02:35,170 --> 00:02:42,900 >> Do jen, mesaĝo i minus A estas supozata doni al ni la nombran lokon de la 42 00:02:42,900 --> 00:02:44,400 litero en la alfabeto. 43 00:02:44,400 --> 00:02:48,080 Do se mesaĝon i estas A, tiu tuj donu al ni 0. 44 00:02:48,080 --> 00:02:52,880 Nun, ni volas aldoni ke la nombro, ke la uzanto volas 45 00:02:52,880 --> 00:02:54,840 turni la leteron per. 46 00:02:54,840 --> 00:03:03,280 Do, se ili eniris 3, tiam se mesaĝon Mi estis, tio donos al ni 0 kaj pli 47 00:03:03,280 --> 00:03:05,400 ŝlosilaj donos al ni 3. 48 00:03:05,400 --> 00:03:09,450 >> Do nun, ni konsideras la trian lokon en la alfabeto. 49 00:03:09,450 --> 00:03:12,810 Ni vidos, kial ni bezonas mod per num literojn en sekundo. 50 00:03:12,810 --> 00:03:18,700 Sed fine, ni volas aldoni al la fini A denove ŝanĝi ni denove en la 51 00:03:18,700 --> 00:03:22,020 Askio valoroj por tiuj karakteroj anstataŭ la nombraj lokoj en la 52 00:03:22,020 --> 00:03:24,260 Alfabeto de tiuj signoj. 53 00:03:24,260 --> 00:03:26,580 >> Do, kial ni mod per num literojn? 54 00:03:26,580 --> 00:03:29,960 Memoru, ke ni volas enpaki ĉirkaŭe de la fino de la alfabeto al la 55 00:03:29,960 --> 00:03:31,470 komencante de la alfabeto. 56 00:03:31,470 --> 00:03:38,530 Do, se la uzanto jam eniris Z, tiam subtrahanta A el kiu tuj 57 00:03:38,530 --> 00:03:40,520 donu al ni 25. 58 00:03:40,520 --> 00:03:44,800 Kaj se la ŝlosilo estis 3, tiam Ni tuj havas 28. 59 00:03:44,800 --> 00:03:53,000 Sed Z devus ĉirkaŭfermi ĉirkaŭe al ABC, do 28 mod num literoj, kiuj estas hash difinita 60 00:03:53,000 --> 00:04:01,890 kiel 26 al atendi, tuj donu ni 2, kie C estas la dua letero de 61 00:04:01,890 --> 00:04:05,880 la alfabeto, se vi memoras, ke A estas la nula litero de la alfabeto. 62 00:04:05,880 --> 00:04:09,210 >> Do jen kial ni bezonas mod per num literoj. 63 00:04:09,210 --> 00:04:13,540 Nun, ni devas fari la saman ĝusta afero por minusklaj literoj, escepte 64 00:04:13,540 --> 00:04:17,240 memoru, ke kiam ni pritraktas minusklaj literoj, ili havas malsamajn 65 00:04:17,240 --> 00:04:18,579 Askio valoroj. 66 00:04:18,579 --> 00:04:24,550 Kaj tial ni devas subtrahi kaj aldonu sur por ŝanĝi ĝin malsupren de la minuskla 67 00:04:24,550 --> 00:04:30,020 Askio valoroj kaj reen sur la originalaj minusklaj ASCII valoroj. 68 00:04:30,020 --> 00:04:33,140 >> Kaj laste, kiu donos al ni nia ĉifrita mesaĝo. 69 00:04:33,140 --> 00:04:37,780 Kaj en la fino, ni simple printi tiun mesaĝon, kaj tio estas ĝi. 70 00:04:37,780 --> 00:04:39,875 Mia nomo estas Rob, kaj estis Cezaro. 71 00:04:39,875 --> 00:04:49,856