1 00:00:00,000 --> 00:00:10,103 2 00:00:10,103 --> 00:00:11,270 >> ZAMYLA CHAN: Til hamingju að klára þinni 3 00:00:11,270 --> 00:00:13,200 Fyrsta par af C forrit. 4 00:00:13,200 --> 00:00:16,379 Ég veit að fyrsta skyndiárás inn C setningafræði hægt að draga kjark. 5 00:00:16,379 --> 00:00:20,060 En ég fullvissa þig, í lok Auðvitað, youll 'vera fær til að líta á 6 00:00:20,060 --> 00:00:23,870 Fyrsta par af verkefnum og ljúka þeim á augabragði. 7 00:00:23,870 --> 00:00:27,830 >> Nú þegar þú ert að fá fleiri kunnugleg með setningafræði, við skulum fá til keisarans. 8 00:00:27,830 --> 00:00:31,720 Í keisaranum sem notandinn verður að leggja fram heiltala lykill sem stjórn lína 9 00:00:31,720 --> 00:00:35,300 rök, svo inn a látlaus texti skilaboð á the hvetja. 10 00:00:35,300 --> 00:00:38,050 The program vilja þá encipher texta og prenta 11 00:00:38,050 --> 00:00:40,020 þeirra ciphertext skilaboð. 12 00:00:40,020 --> 00:00:42,980 >> The enciphering fyrir keisaranum er alveg einfalt. 13 00:00:42,980 --> 00:00:46,455 Shift hvert bréf, í þeirra látlaus texti, með takkanum. 14 00:00:46,455 --> 00:00:49,220 Þess vegna er það líka nokkuð óörugg. 15 00:00:49,220 --> 00:00:53,850 En innleiða Caesar mun kynna okkur að ASCIIMath og array gögn 16 00:00:53,850 --> 00:00:54,460 mannvirki. 17 00:00:54,460 --> 00:00:57,510 Við munum fá til flóknari dulmál síðar. 18 00:00:57,510 --> 00:01:01,680 Með Caesar lykill af 2, stafinn A í látlaus texti yrði fulltrúi 19 00:01:01,680 --> 00:01:07,580 bréf C í ciphertext vegna C er tveir stafir eftir A. B myndi vera 20 00:01:07,580 --> 00:01:12,450 fulltrúa af D og C eftir E. Undir í lok stafrófinu, W er 21 00:01:12,450 --> 00:01:18,550 táknað með Y, og X með Z. en Y ekki hafa tvo stafi eftir það, svo 22 00:01:18,550 --> 00:01:21,070 the dulmál hula kringum stafrófinu. 23 00:01:21,070 --> 00:01:27,190 Y í látlaus texti er þannig táknuð með A í ciphertext, og Z af B. Það kann að 24 00:01:27,190 --> 00:01:32,080 hjálpa til að skoða Caesar Cypher eins samfellt stafrófið hjól. 25 00:01:32,080 --> 00:01:35,760 >> Til encipher texta þeirra, notandi verður að slá tvær röksemdir 26 00:01:35,760 --> 00:01:37,090 í skipanalínunni - 27 00:01:37,090 --> 00:01:40,010 . / Caesar eftir takka. 28 00:01:40,010 --> 00:01:44,710 Eins og alltaf, við getum ekki treyst notanda alveg að slá inntak sem gera 29 00:01:44,710 --> 00:01:45,800 vit fyrir áætlun okkar. 30 00:01:45,800 --> 00:01:50,670 Þannig að við verðum að staðfesta þeirra stjórn lína inntak. 31 00:01:50,670 --> 00:01:57,285 >> Stað þess að nota int helstu tóm, erum við nota int helstu, int argc, band argv. 32 00:01:57,285 --> 00:02:01,730 The heiltölubreytu argc táknar fjölda rök liðin í 33 00:02:01,730 --> 00:02:02,880 stjórn lína. 34 00:02:02,880 --> 00:02:09,070 Og argv er fylki, eða hugsa um það sem listi, af rök liðin inn 35 00:02:09,070 --> 00:02:12,000 >> Svo fyrir keisaranum, hvernig sannreyna við notandans inntak? 36 00:02:12,000 --> 00:02:15,870 Jæja, ættu þeir aðeins að slá tveir stjórn lína rifrildi - 37 00:02:15,870 --> 00:02:18,150 . / Caesar og lykill. 38 00:02:18,150 --> 00:02:22,340 Svo ef argc er ekki 2, sem þýðir að þeir gleymdu annaðhvort takkann og bara 39 00:02:22,340 --> 00:02:27,230 slegið. / Caesar, eða þeir slegið margar lykla. 40 00:02:27,230 --> 00:02:29,770 >> Ef þetta er raunin, þá munt þú langar að prenta leiðbeiningar 41 00:02:29,770 --> 00:02:30,910 og hætta forritið. 42 00:02:30,910 --> 00:02:34,320 Þeir þurfa að reyna aftur frá the stjórn lína. 43 00:02:34,320 --> 00:02:37,430 En jafnvel þótt argc er 2, munt þú þarf að athuga hvort þeir 44 00:02:37,430 --> 00:02:39,100 gefa þér gilt takkann. 45 00:02:39,100 --> 00:02:40,730 Fyrir keisaranum, þú þarft heiltölu. 46 00:02:40,730 --> 00:02:43,260 En argv er fylki af strengjum. 47 00:02:43,260 --> 00:02:46,490 Hvernig fæ ég aðgang að þessi lykill? 48 00:02:46,490 --> 00:02:47,850 >> A fljótur líta á fylki - 49 00:02:47,850 --> 00:02:51,410 gögn uppbygging sem eiga marga gildi sömu gögn tegund. 50 00:02:51,410 --> 00:02:55,350 Færslur eru núll verðtryggingar, sem þýðir að Fyrsti þátturinn er vísitalan núll 51 00:02:55,350 --> 00:03:00,260 og síðasti þátturinn er á stærð efnisyfirlit mínus 1, þar sem stærð er fjöldi 52 00:03:00,260 --> 00:03:02,850 þættir í array. 53 00:03:02,850 --> 00:03:07,380 >> Ef ég lýsti nýja band array pósthólf af lengd 3, sjónrænt, það 54 00:03:07,380 --> 00:03:08,570 lítur svona út. 55 00:03:08,570 --> 00:03:11,520 Þrjár ílát fyrir strengi , Hlið við hlið. 56 00:03:11,520 --> 00:03:15,445 Til aðgangur allir frumefni, þú slærð inn nafnið í fylkinu og þá benda 57 00:03:15,445 --> 00:03:18,080 vísitalan í hornklofum. 58 00:03:18,080 --> 00:03:21,610 Hér er ég að gefa gildi á hverjum þáttur, rétt eins og ég myndi gera með einhverju 59 00:03:21,610 --> 00:03:24,310 annað band breytu. 60 00:03:24,310 --> 00:03:29,020 >> Svo til að fá aðgang stjórn lína rifrildi okkar, allt sem við þurfum að gera er að opna 61 00:03:29,020 --> 00:03:31,690 rétt þáttur í argv array. 62 00:03:31,690 --> 00:03:37,360 Ef notandinn slær inn. / BlastOff Team Rocket í flugstöðinni, argv 0 myndi 63 00:03:37,360 --> 00:03:38,950 vera. / BlastOff. 64 00:03:38,950 --> 00:03:45,010 argv væri Team og arg2 væri flugeldur. 65 00:03:45,010 --> 00:03:47,670 >> Nú þegar við getum nálgast lykilinn okkar, við þurfum samt að gera 66 00:03:47,670 --> 00:03:49,040 viss um að það er rétt. 67 00:03:49,040 --> 00:03:51,060 Við þurfum að umbreyta það inn í heiltölu. 68 00:03:51,060 --> 00:03:54,680 En við getum ekki bara kastað eins og við höfum gert áður. 69 00:03:54,680 --> 00:03:58,800 Til allrar hamingju, A til Y virka tekur standa þetta fyrir okkur og jafnvel skilar 0 70 00:03:58,800 --> 00:04:02,110 ef strengur er ekki hægt að breyta í heiltala. 71 00:04:02,110 --> 00:04:04,450 Það er komið að þér, þó að segja notandi af hverju þú munt ekki 72 00:04:04,450 --> 00:04:06,220 láta forritið halda áfram. 73 00:04:06,220 --> 00:04:10,710 Geymið niðurstöðu A til Y in an heiltala, og þar hafið þið lykil. 74 00:04:10,710 --> 00:04:12,070 Í næsta hluta er einföld. 75 00:04:12,070 --> 00:04:15,940 Hvetja notandann til texta þeirra, sem verður af gögnum tegund band. 76 00:04:15,940 --> 00:04:18,339 Sem betur fer fyrir okkur, allir notandi inputted strengir eru í gildi. 77 00:04:18,339 --> 00:04:21,170 78 00:04:21,170 --> 00:04:24,760 >> Nú þegar við höfum allar nauðsynlegar inntak frá notandanum, er kominn tími fyrir okkur að 79 00:04:24,760 --> 00:04:26,520 encipher skilaboðum þeirra. 80 00:04:26,520 --> 00:04:29,200 Hugmyndin um keisarans er einfalt nóg að skilja. 81 00:04:29,200 --> 00:04:33,750 En hvernig er tölvan þín vita hver bréf koma á eftir öðrum? 82 00:04:33,750 --> 00:04:36,100 >> Hér er þar sem ASCII töflunni kemur inn 83 00:04:36,100 --> 00:04:39,420 Sérhver persóna hefur heiltölu númer í tengslum við það. 84 00:04:39,420 --> 00:04:41,380 Capital A er 65. 85 00:04:41,380 --> 00:04:43,310 Capital B er 66. 86 00:04:43,310 --> 00:04:45,260 Lágstafir a er 97. 87 00:04:45,260 --> 00:04:47,590 Lágstafir b er 98. 88 00:04:47,590 --> 00:04:50,770 En stafir eru ekki takmörkuð að bara stafrófsröð númer. 89 00:04:50,770 --> 00:04:56,020 Til dæmis, the @ tákn er ASCII númer 64. 90 00:04:56,020 --> 00:04:59,690 >> Áður takast á við allt band, skulum þykjast að við verðum bara að skipta 91 00:04:59,690 --> 00:05:01,220 einn staf. 92 00:05:01,220 --> 00:05:04,640 Jæja, við viljum bara að skipta raunveruleg bréf í látlaus texti, ekki 93 00:05:04,640 --> 00:05:06,020 stafir eða tölur. 94 00:05:06,020 --> 00:05:09,100 Svo það fyrsta sem við munum vilja til athuga hvort eðli er 95 00:05:09,100 --> 00:05:10,430 stafrófið. 96 00:05:10,430 --> 00:05:14,460 >> Fallið isalpha gerir þetta fyrir okkur og skilar Boole - 97 00:05:14,460 --> 00:05:18,570 satt ef persónurnar er bréf, rangar ef annað. 98 00:05:18,570 --> 00:05:22,270 Tvær aðrar gagnlegar aðgerðir eru isupper og islower með 99 00:05:22,270 --> 00:05:23,860 sjálf-útskýringar nöfn. 100 00:05:23,860 --> 00:05:27,370 Þeir aftur satt ef gefið eðli er hástafi eða lágstafir, 101 00:05:27,370 --> 00:05:28,740 hver um sig. 102 00:05:28,740 --> 00:05:33,770 Þar sem þeir eru Booleans, þá eru þeir gagnlegt til að nota sem skilyrði. 103 00:05:33,770 --> 00:05:38,310 >> Ef isalpha skilar satt, þú þarft til að skipta þessi karakter með takkanum. 104 00:05:38,310 --> 00:05:43,750 Svo skulum opin ASCIIMath og gera sumir ASCII stærðfræði. 105 00:05:43,750 --> 00:05:48,700 Notkun er mjög svipuð við notkun fyrir keisaranum og tekur í takkann í 106 00:05:48,700 --> 00:05:50,870 stjórn lína. 107 00:05:50,870 --> 00:05:59,590 >> Ef ég keyrt ASCIIMath 5, virðist það að bæta 5 til a, að gefa mér stafinn f og 108 00:05:59,590 --> 00:06:01,260 sýna ASCII gildi. 109 00:06:01,260 --> 00:06:04,090 Þannig að við skulum taka a líta á the program. 110 00:06:04,090 --> 00:06:11,820 >> Þú gætir furða, hérna, hvers vegna bréf er heiltala, þegar það er 111 00:06:11,820 --> 00:06:14,330 greinilega vel, bréf. 112 00:06:14,330 --> 00:06:17,690 Það kemur í ljós að stafir og heiltölur eru víxlanlegur. 113 00:06:17,690 --> 00:06:21,730 Með því að setja stafinn A í einu gæsalöppum, talan getur geymt 114 00:06:21,730 --> 00:06:25,390 ASCII gildi fjármagns A. Verið varkár, þó. 115 00:06:25,390 --> 00:06:27,150 Þú þarft að einstaklings föt. 116 00:06:27,150 --> 00:06:31,260 Án einn skytta vitna, að þýðanda myndi leita breytu 117 00:06:31,260 --> 00:06:35,510 heitir A, og ekki eðli. 118 00:06:35,510 --> 00:06:42,140 >> Þá vil ég bæta bréf og lykill, geyma Summa í int breytur niðurstöðu. 119 00:06:42,140 --> 00:06:47,740 Jafnvel þó niðurstaða er af gerðinni gögn heiltala, printf yfirlýsingu mína notar 120 00:06:47,740 --> 00:06:50,370 % C-tákn fyrir stafi. 121 00:06:50,370 --> 00:06:54,530 Svo prentar forritið eðli í tengslum við heiltölu niðurstöðu. 122 00:06:54,530 --> 00:07:00,400 Og þar sem við prenta á heiltölu mynd eins vel með% d, sjáum við 123 00:07:00,400 --> 00:07:02,110 fjöldi eins vel. 124 00:07:02,110 --> 00:07:04,450 Svo nú er hægt að sjá að við meðhöndla stafi og 125 00:07:04,450 --> 00:07:06,980 heiltölur, og öfugt. 126 00:07:06,980 --> 00:07:12,205 >> Skulum prófa ASCIIMath sé nefnt fleiri sinnum með 25 sem lykill. 127 00:07:12,205 --> 00:07:15,510 128 00:07:15,510 --> 00:07:17,090 Við fáum stafnum Z. 129 00:07:17,090 --> 00:07:19,750 Nú erum við að reyna 26. 130 00:07:19,750 --> 00:07:25,600 Við viljum fá bréf a, en staðinn fáum við vinstri krappi. 131 00:07:25,600 --> 00:07:29,490 Svo augljóslega, bara að bæta við lykillinn að bréf mun ekki gera. 132 00:07:29,490 --> 00:07:32,780 Við þurfum að reikna út formúlu til að vefja um stafrófið, eins okkar 133 00:07:32,780 --> 00:07:34,570 Dæmið í upphafi gerði. 134 00:07:34,570 --> 00:07:38,520 >> A uppskrift fyrir keisarans breyting er eins og hér segir. 135 00:07:38,520 --> 00:07:42,750 C jafngildir bls plús k modulo 26. 136 00:07:42,750 --> 00:07:46,040 Mundu að modulo er gagnlegt aðgerð sem gefur okkur afganginn 137 00:07:46,040 --> 00:07:49,880 að deila eitt númer af öðrum. 138 00:07:49,880 --> 00:07:54,870 Skulum beita þessari formúlu í dalinn texti bréf með lykli í 2. 139 00:07:54,870 --> 00:08:01,810 The ASCII gildi y er 89, sem gefur okkur 91 modulo 26, 140 00:08:01,810 --> 00:08:03,690 sem jafngildir 13 - 141 00:08:03,690 --> 00:08:08,740 örugglega ekki ASCII gildi af a, sem er 67. 142 00:08:08,740 --> 00:08:12,810 >> Húmor mig núna og fara burt frá ASCII gildi til stafrófsröð 143 00:08:12,810 --> 00:08:18,690 þar sem A er núll og Z er 25, sem þýðir að Y er 24. 144 00:08:18,690 --> 00:08:25,830 24 plús 2, modulo 6, gefur okkur 26, modulo 26, 0, sem er 145 00:08:25,830 --> 00:08:28,170 stafrófsröð um a. 146 00:08:28,170 --> 00:08:32,980 Svo virðist þessi formúla að gilda um stafrófsröð af bréfinu og 147 00:08:32,980 --> 00:08:34,960 ekki þess ASCII gildi. 148 00:08:34,960 --> 00:08:37,630 >> En þú byrjar með ASCII gildi. 149 00:08:37,630 --> 00:08:41,650 Og til að prenta ciphertext staf, þú þarft ASCII gildi sínu eins og heilbrigður. 150 00:08:41,650 --> 00:08:46,400 Það er komið að þér, þá að reikna út hvernig á að skipta fram og til baka. 151 00:08:46,400 --> 00:08:49,850 >> Þegar þú reikna út rétt uppskrift fyrir einn staf, þurfum öll að gera 152 00:08:49,850 --> 00:08:53,520 er beita sömu formúlu til að hvert bréf í látlaus texti - 153 00:08:53,520 --> 00:08:57,720 ef þessi bréf er stafrófsröð, auðvitað. 154 00:08:57,720 --> 00:09:02,360 Og mundu að þú þarft að varðveita að ræða, efri eða neðri, það er þar 155 00:09:02,360 --> 00:09:06,890 The isUpper og isLower aðgerðir fyrr mun koma sér vel. 156 00:09:06,890 --> 00:09:08,830 Þú gætir hafa tvær formúlur - 157 00:09:08,830 --> 00:09:11,680 einn fyrir hástafi bréf og einn fyrir lágstafir. 158 00:09:11,680 --> 00:09:18,420 Svo isUpper að isLower mun hjálpa þér ákvarða hvaða uppskrift að sækja. 159 00:09:18,420 --> 00:09:22,460 >> Hvernig sækir maður um formúlu til sérhver einn staf í streng? 160 00:09:22,460 --> 00:09:25,910 Jæja, band er bara array af stöfum. 161 00:09:25,910 --> 00:09:31,150 Svo þú getur fengið aðgang hvern staf með því hópar yfir hvern staf í 162 00:09:31,150 --> 00:09:33,450 band í fyrir lykkja. 163 00:09:33,450 --> 00:09:37,550 Eins og fyrir the ástand af þinn fyrir lykkju, virka strlen, fyrir band 164 00:09:37,550 --> 00:09:39,280 lengd, mun koma sér vel. 165 00:09:39,280 --> 00:09:44,020 Það tekur í streng sem inntak og skilar lengd strengsins. 166 00:09:44,020 --> 00:09:49,250 Gakktu úr skugga um að rétt bókasafn til að nota lengd strengur. 167 00:09:49,250 --> 00:09:51,790 >> Og þar hafið þið ciphertext þinn. 168 00:09:51,790 --> 00:09:53,260 Mitt nafn er Zamyla. 169 00:09:53,260 --> 00:09:54,510 Og [Talandi CODE]. 170 00:09:54,510 --> 00:10:02,944