1 00:00:00,000 --> 00:00:10,103 2 00:00:10,103 --> 00:00:11,270 >> ZAMYLA Chan: Congratulations fuq irfinar tiegħek 3 00:00:11,270 --> 00:00:13,200 ewwel koppja ta 'programmi Ċ. 4 00:00:13,200 --> 00:00:16,379 Naf li l-ewwel foray tiegħek fis Sintassi C jistgħu jkunu kbar. 5 00:00:16,379 --> 00:00:20,060 Imma jiena nassigurakom, fl-aħħar tal- Naturalment, inti ser tkun kapaċi li tħares lejn il- 6 00:00:20,060 --> 00:00:23,870 ewwel koppja ta 'assenjazzjonijiet u jwettaqhom fil-minuti. 7 00:00:23,870 --> 00:00:27,830 >> Issa li int jkollna aktar familjari ma sintassi, ejja nikseb biex Caesar. 8 00:00:27,830 --> 00:00:31,720 Fil Caesar, l-utent se jissottometti ewlieni integer bħala linja ta 'kmand 9 00:00:31,720 --> 00:00:35,300 argument, imbagħad tidħol plain messaġġ ta 'test fil-prompt. 10 00:00:35,300 --> 00:00:38,050 Il-programm imbagħad encipher it-test u l-istampar 11 00:00:38,050 --> 00:00:40,020 messaġġ ciphertext tagħhom. 12 00:00:40,020 --> 00:00:42,980 >> Il enciphering għall Caesar huwa pjuttost sempliċi. 13 00:00:42,980 --> 00:00:46,455 Shift kull ittra, fl tagħhom test sempliċi, mill-ċavetta. 14 00:00:46,455 --> 00:00:49,220 Bħala riżultat, huwa wkoll pretty sikur. 15 00:00:49,220 --> 00:00:53,850 Iżda li timplimenta Caesar se jintroduċi ahna data ASCIIMath u firxa 16 00:00:53,850 --> 00:00:54,460 istrutturi. 17 00:00:54,460 --> 00:00:57,510 Aħna ser tingħata biex aktar kumplessi ciphers wara. 18 00:00:57,510 --> 00:01:01,680 B'ċavetta Caesar ta '2, l-ittra A fil- test sempliċi tkun rappreżentata minn 19 00:01:01,680 --> 00:01:07,580 l-ittra C fi ciphertext għaliex C huwa ta 'żewġ ittri wara A. B tkunx 20 00:01:07,580 --> 00:01:12,450 irrappreżentata minn D u C minn E. Lejn l-aħħar ta 'l-alfabett, W hija 21 00:01:12,450 --> 00:01:18,550 irrappreżentata minn Y, u X minn Z. Iżda Y ma jkollhom żewġ ittri wara dan, sabiex 22 00:01:18,550 --> 00:01:21,070 l ciphers garżi madwar l-alfabett. 23 00:01:21,070 --> 00:01:27,190 Y fi kliem sempliċi huwa għalhekk rappreżentat minn A fl ciphertext, u Z minn B. Hija tista ' 24 00:01:27,190 --> 00:01:32,080 jgħinu biex tara l-Ċifra Caesar simili rota alfabett kontinwu. 25 00:01:32,080 --> 00:01:35,760 >> Biex encipher test tagħhom, l-utent se jidħlu żewġ argumenti 26 00:01:35,760 --> 00:01:37,090 fil-linja tal-kmand - 27 00:01:37,090 --> 00:01:40,010 . / Caesar segwit minn ċavetta. 28 00:01:40,010 --> 00:01:44,710 Bħal dejjem, aħna ma tistax fiduċja l-utent kompletament jidħlu input li jagħmlu 29 00:01:44,710 --> 00:01:45,800 sens għall-programm tagħna. 30 00:01:45,800 --> 00:01:50,670 Allura aħna ser ikollhom biex jivvalida tagħhom linja input kmand. 31 00:01:50,670 --> 00:01:57,285 >> Minflok tuża null prinċipali int, aħna qed użu int prinċipali, argc int, string ARGV. 32 00:01:57,285 --> 00:02:01,730 Il argc varjabbli numru sħiħ jirrappreżenta in-numru ta 'argumenti mgħoddija fis 33 00:02:01,730 --> 00:02:02,880 kmand tal-linja. 34 00:02:02,880 --> 00:02:09,070 U ARGV huwa array, jew jaħsbu li bħala lista, tal-argumenti għadda pulzieri 35 00:02:09,070 --> 00:02:12,000 >> Allura għal Caesar, kif nistgħu jivvalida input l-utent? 36 00:02:12,000 --> 00:02:15,870 Ukoll, dawn għandhom ikunu jidħlu biss żewġ linja argumenti kmand - 37 00:02:15,870 --> 00:02:18,150 . / Caesar u ewlieni. 38 00:02:18,150 --> 00:02:22,340 Hekk jekk argc mhuwiex 2, dan ifisser li huma jew nesa ewlieni u biss 39 00:02:22,340 --> 00:02:27,230 daħal. / Caesar, jew daħal ċwievet multipli. 40 00:02:27,230 --> 00:02:29,770 >> Jekk dan huwa l-każ, allura inti ser tixtieq li jistampaw istruzzjonijiet 41 00:02:29,770 --> 00:02:30,910 u nieqaf-programm. 42 00:02:30,910 --> 00:02:34,320 Huma bzonn li erġa 'pprova mill-linja tal-kmand. 43 00:02:34,320 --> 00:02:37,430 Iżda anke jekk argc huwa 2, inti ser bżonn li jiċċekkja jekk 44 00:02:37,430 --> 00:02:39,100 jagħtuk ewlieni valida. 45 00:02:39,100 --> 00:02:40,730 Għal Caesar, għandek bżonn ta 'numru sħiħ. 46 00:02:40,730 --> 00:02:43,260 Iżda ARGV huwa firxa ta 'kordi. 47 00:02:43,260 --> 00:02:46,490 Kif inti aċċess li ċavetta? 48 00:02:46,490 --> 00:02:47,850 >> A quick tħares lejn arrays - 49 00:02:47,850 --> 00:02:51,410 strutturi ta 'dejta li jżommu multipli valuri ta 'l-istess tip ta' data. 50 00:02:51,410 --> 00:02:55,350 Entries huma zero-indiċi, li jfisser li l-ewwel element huwa l-żero indiċi 51 00:02:55,350 --> 00:03:00,260 u l-aħħar element huwa fil-daqs indiċi minus 1, fejn id-daqs huwa n-numru ta ' 52 00:03:00,260 --> 00:03:02,850 elementi fil-firxa. 53 00:03:02,850 --> 00:03:07,380 >> Jekk I iddikjarat mailbox ġdid firxa string ta 'tul ta' 3, viżwalment, huwa 54 00:03:07,380 --> 00:03:08,570 tidher bħal dan. 55 00:03:08,570 --> 00:03:11,520 Tliet kontenituri għall kordi , Ħdejn xulxin. 56 00:03:11,520 --> 00:03:15,445 Biex ikollok aċċess għal kwalunkwe element, inti tip l-isem tal-firxa u mbagħad tindika 57 00:03:15,445 --> 00:03:18,080 l-indiċi fil-parentesi kwadri. 58 00:03:18,080 --> 00:03:21,610 Hawnhekk, jien assenjazzjoni ta 'valur għal kull element, eżatt kif nixtieq nagħmel ma 'kwalunkwe 59 00:03:21,610 --> 00:03:24,310 varjabbli oħra string. 60 00:03:24,310 --> 00:03:29,020 >> Allura biex jaċċessaw argumenti tagħna linja tal-kmand, kollha għandna nagħmlu huwa aċċess 61 00:03:29,020 --> 00:03:31,690 l-element dritt ta 'l-array ARGV. 62 00:03:31,690 --> 00:03:37,360 Jekk l-utent daħal Tim. / Blastoff Rocket fil-terminal, ARGV 0 kieku 63 00:03:37,360 --> 00:03:38,950 jkun. / blastoff. 64 00:03:38,950 --> 00:03:45,010 ARGV ikun Team, u arg2 ikun rokit. 65 00:03:45,010 --> 00:03:47,670 >> Issa li nistgħu aċċess ewlieni tagħna, għad għandna bżonn biex jagħmlu 66 00:03:47,670 --> 00:03:49,040 ċert li huwa korrett. 67 00:03:49,040 --> 00:03:51,060 Għandna bżonn sabiex jissarfu fi integer. 68 00:03:51,060 --> 00:03:54,680 Iżda aħna ma tistax sempliċement jitfa bħal aħna ghamilt qabel. 69 00:03:54,680 --> 00:03:58,800 Fortunatament, il-A għall-funzjoni Y jieħu ħsieb ta 'dan għalina u anke prospetti 0 70 00:03:58,800 --> 00:04:02,110 jekk il-string ma tistax tiġi konvertita fis integer. 71 00:04:02,110 --> 00:04:04,450 Huwa sa inti, għalkemm, li tgħid l-utent għaliex inti mhux se 72 00:04:04,450 --> 00:04:06,220 ħalli l-programm jipproċedi. 73 00:04:06,220 --> 00:04:10,710 Aħżen ir-riżultat ta 'A għal Y fi numru sħiħ, u hemm ikollok prinċipali tiegħek. 74 00:04:10,710 --> 00:04:12,070 Il-parti li jmiss huwa sempliċi. 75 00:04:12,070 --> 00:04:15,940 Prompt l-utent għall-test sempliċi tagħhom, li tkun ta 'tip string data. 76 00:04:15,940 --> 00:04:18,339 Fortunatament għalina, kollha utent inputted kordi huma validi. 77 00:04:18,339 --> 00:04:21,170 78 00:04:21,170 --> 00:04:24,760 >> Issa li għandna input kollha meħtieġa mill-utent, wasal iż-żmien għalina biex 79 00:04:24,760 --> 00:04:26,520 encipher messaġġ tagħhom. 80 00:04:26,520 --> 00:04:29,200 Il-kunċett ta 'Caesar huwa sempliċi biżżejjed biex jifhmu. 81 00:04:29,200 --> 00:04:33,750 Imma kif ma kompjuter tiegħek jafu liema ittri jiġu wara xulxin? 82 00:04:33,750 --> 00:04:36,100 >> Hawn fejn il-mejda ASCII taqa pulzieri 83 00:04:36,100 --> 00:04:39,420 Kull karattru għandu integer Numru assoċjati magħha. 84 00:04:39,420 --> 00:04:41,380 Kapital A huwa 65. 85 00:04:41,380 --> 00:04:43,310 Kapital B huwa 66. 86 00:04:43,310 --> 00:04:45,260 Zghar a huwa 97. 87 00:04:45,260 --> 00:04:47,590 B zghar huwa 98. 88 00:04:47,590 --> 00:04:50,770 Iżda karattri mhumiex limitati għal ftit numri alfabetiċi. 89 00:04:50,770 --> 00:04:56,020 Per eżempju, is-simbolu @ huwa 64 numru ASCII. 90 00:04:56,020 --> 00:04:59,690 >> Qabel jittrattaw il-string kollu, ejja nippretendu aħna biss għandhom shift 91 00:04:59,690 --> 00:05:01,220 karattru wieħed. 92 00:05:01,220 --> 00:05:04,640 Well, aħna biss tixtieq li bidla attwali ittri fit-test sempliċi, mhux 93 00:05:04,640 --> 00:05:06,020 karattri jew numri. 94 00:05:06,020 --> 00:05:09,100 Allura l-ewwel ħaġa li aħna inneħħu jridu jivverifika hu jekk il-karattru huwa fil 95 00:05:09,100 --> 00:05:10,430 l-alfabett. 96 00:05:10,430 --> 00:05:14,460 >> Il isalpha funzjoni ma dan għal magħna u jirritorna Boolean - 97 00:05:14,460 --> 00:05:18,570 minnu jekk l-karattri hija ittra, falza jekk mod ieħor. 98 00:05:18,570 --> 00:05:22,270 Żewġ funzjonijiet utli oħra huma isupper u islower, ma 99 00:05:22,270 --> 00:05:23,860 ismijiet ta 'spjegazzjoni. 100 00:05:23,860 --> 00:05:27,370 Huma jirritornaw lura minnu jekk il-karattru partikolari huwa uppercase jew zghar, 101 00:05:27,370 --> 00:05:28,740 rispettivament. 102 00:05:28,740 --> 00:05:33,770 Peress li dawn huma Booleans, dawn qed utli li tintuża bħala kundizzjoni. 103 00:05:33,770 --> 00:05:38,310 >> Jekk isalpha prospetti vera, ikollok bzonn li ċċaqlaq dan il-karattru mill-ċavetta. 104 00:05:38,310 --> 00:05:43,750 Mela ejja miftuħa għall ASCIIMath u jagħmlu xi matematika ASCII. 105 00:05:43,750 --> 00:05:48,700 L-użu huwa simili ħafna għall-użu għall Caesar u tieħu fi ewlenin fil- 106 00:05:48,700 --> 00:05:50,870 kmand linja. 107 00:05:50,870 --> 00:05:59,590 >> Jekk I run ASCIIMath 5, jidher li żżid 5 lejn, tajtu lili l-ittra f, u 108 00:05:59,590 --> 00:06:01,260 juri l-valur ASCII. 109 00:06:01,260 --> 00:06:04,090 Mela ejja tagħti ħarsa lejn il-programm. 110 00:06:04,090 --> 00:06:11,820 >> Inti tista wonder, dritt hawn, għaliex ittra huwa integer, meta huwa 111 00:06:11,820 --> 00:06:14,330 b'mod ċar, ukoll, ittra. 112 00:06:14,330 --> 00:06:17,690 Jirriżulta li l-karattri u interi huma interkambjabbli. 113 00:06:17,690 --> 00:06:21,730 Billi titnieda l-ittra A fil-wieħed virgoletti, n-numru sħiħ jista 'jaħżen 114 00:06:21,730 --> 00:06:25,390 il-valur ASCII tal-kapital A. Oqgħod attent, għalkemm. 115 00:06:25,390 --> 00:06:27,150 Għandek bżonn l-ħwejjeġ waħda. 116 00:06:27,150 --> 00:06:31,260 Mingħajr il-marki kwotazzjoni waħda, l- kompilatur se tfittex għal varjabbli 117 00:06:31,260 --> 00:06:35,510 jismu A, u mhux il-karattru. 118 00:06:35,510 --> 00:06:42,140 >> Imbagħad I żid ittra u ewlieni, ħażna tal- somma fil-varjabbli riżultat int. 119 00:06:42,140 --> 00:06:47,740 Anki jekk ir-riżultat huwa ta 'tip ta' dejta numru sħiħ, dikjarazzjoni printf tiegħi juża l- 120 00:06:47,740 --> 00:06:50,370 % Placeholder c għall-karattri. 121 00:06:50,370 --> 00:06:54,530 Allura l-programm prints-karattru assoċjat mar-riżultat numru sħiħ. 122 00:06:54,530 --> 00:07:00,400 U peress li aħna stampati-eqreb numru sħiħ forma kif ukoll jużaw% d, naraw 123 00:07:00,400 --> 00:07:02,110 in-numru kif ukoll. 124 00:07:02,110 --> 00:07:04,450 Allura issa tista 'tara li aħna jittrattaw karattri u 125 00:07:04,450 --> 00:07:06,980 interi, u viċe versa. 126 00:07:06,980 --> 00:07:12,205 >> Ejja test out ASCIIMath ftit darbiet aktar bl-użu ta 25 bħala ċ-ċavetta. 127 00:07:12,205 --> 00:07:15,510 128 00:07:15,510 --> 00:07:17,090 Irridu jiksbu l-ittra z. 129 00:07:17,090 --> 00:07:19,750 Issa nippruvaw 26. 130 00:07:19,750 --> 00:07:25,600 Aħna rridu nġibu l-ittra a, imma minflok irridu jiksbu bracket xellug. 131 00:07:25,600 --> 00:07:29,490 Allura ovvjament, sempliċement tiżdied il- ewlieni għall-ittra mhux se tagħmel. 132 00:07:29,490 --> 00:07:32,780 Għandna bżonn biex insemmu formula biex nagħlaq madwar l-alfabett, bħal tagħna 133 00:07:32,780 --> 00:07:34,570 eżempju fil-bidu għamlet. 134 00:07:34,570 --> 00:07:38,520 >> A formula għall-Caesar shift hija kif ġej. 135 00:07:38,520 --> 00:07:42,750 c ugwali p plus k modulo 26. 136 00:07:42,750 --> 00:07:46,040 Ftakar li modulo hija utli operazzjoni li jagħtina l-bqija 137 00:07:46,040 --> 00:07:49,880 ta 'diviżjoni numru wieħed mill-ieħor. 138 00:07:49,880 --> 00:07:54,870 Ejja japplikaw din il-formula għall-pjanura ittra test ma 'ċavetta ta' 2. 139 00:07:54,870 --> 00:08:01,810 Il-valur ASCII tal y hija l 89, li tagħtina 91 modulo 26, 140 00:08:01,810 --> 00:08:03,690 li jkun ugwali għal 13 - 141 00:08:03,690 --> 00:08:08,740 definittivament mhux il-valur ASCII ta ', li huwa 67. 142 00:08:08,740 --> 00:08:12,810 >> Humer lili issa u jwarrab mill- Valuri ASCII għal indiċi alfabetiku 143 00:08:12,810 --> 00:08:18,690 fejn A huwa żero u Z hija 25, li jfisser li Y huwa ta '24. 144 00:08:18,690 --> 00:08:25,830 24 flimkien ma '2, modulo 6, jagħtina 26, modulo 26, 0, li hija l- 145 00:08:25,830 --> 00:08:28,170 Indiċi alfabetiku ta '. 146 00:08:28,170 --> 00:08:32,980 Allura din il-formula tidher li tapplika għall- Indiċi alfabetiku tal-ittra u 147 00:08:32,980 --> 00:08:34,960 mhux il-valur ASCII tagħha. 148 00:08:34,960 --> 00:08:37,630 >> Imma inti tibda bil-valuri ASCII. 149 00:08:37,630 --> 00:08:41,650 U li jistampaw il-karattru ciphertext, ikollok bzonn valur ASCII tagħha kif ukoll. 150 00:08:41,650 --> 00:08:46,400 Huwa sa inti, allura, biex insemmu kif wieħed jaqleb quddiem u lura. 151 00:08:46,400 --> 00:08:49,850 >> Ladarba inti figura l-formula dritt għall-karattru wieħed, kull ma għandek bżonn tagħmel 152 00:08:49,850 --> 00:08:53,520 hija tapplika l-istess formula li kull ittra fit-test sempliċi - 153 00:08:53,520 --> 00:08:57,720 biss jekk l-imsemmija ittra alfabetika, tal-kors. 154 00:08:57,720 --> 00:09:02,360 U ftakar li inti jeħtieġ li jippreservaw il-każ, fuq jew t'isfel, li fejn 155 00:09:02,360 --> 00:09:06,890 l isUpper u l-funzjonijiet isLower issemma qabel se jidħlu fil handy. 156 00:09:06,890 --> 00:09:08,830 Inti jista 'jkollok żewġ formuli li - 157 00:09:08,830 --> 00:09:11,680 wieħed għall-ittri majjuskoli ta 'kulur u waħda għall zghar. 158 00:09:11,680 --> 00:09:18,420 Allura isUpper l isLower tgħinek jiddeterminaw liema formula japplikaw. 159 00:09:18,420 --> 00:09:22,460 >> Kif inti tapplika formula tiegħek għal kull karattru wieħed fi string? 160 00:09:22,460 --> 00:09:25,910 Well, string huwa biss firxa ta 'karattri. 161 00:09:25,910 --> 00:09:31,150 Allura inti tista 'aċċess kull karattru minn grupp fuq kull karattru fil- 162 00:09:31,150 --> 00:09:33,450 string fil għal loop. 163 00:09:33,450 --> 00:09:37,550 Fir-rigward tal-kundizzjoni ta 'tiegħek għall-loop, il-funzjoni strlen, għal string 164 00:09:37,550 --> 00:09:39,280 tul, se jidħlu fil handy. 165 00:09:39,280 --> 00:09:44,020 Huwa jieħu fil string bħala input u jirritorna l-tul ta 'dak string. 166 00:09:44,020 --> 00:09:49,250 Kun żgur li jinkludi l-librerija dritt li tuża l-funzjoni tul string. 167 00:09:49,250 --> 00:09:51,790 >> U hemm ikollok ciphertext tiegħek. 168 00:09:51,790 --> 00:09:53,260 Jisimni l Zamyla. 169 00:09:53,260 --> 00:09:54,510 U [KODIĊI TITKELLEM]. 170 00:09:54,510 --> 00:10:02,944