1 00:00:00,000 --> 00:00:11,960 2 00:00:11,960 --> 00:00:13,750 >> ROB BOWDEN: Hi, ek is Rob. 3 00:00:13,750 --> 00:00:17,360 En toe in Rome, laat se program soos die Romeine. 4 00:00:17,360 --> 00:00:22,280 So, in die eerste ding wat ons moet doen, is om tjek om seker te maak die gebruiker eintlik ingevoer 5 00:00:22,280 --> 00:00:26,670 die getal wat ons wil elke draai karakter deur op die opdrag lyn. 6 00:00:26,670 --> 00:00:27,740 >> So, ons kyk. 7 00:00:27,740 --> 00:00:30,180 Is argc gelyk aan 2? 8 00:00:30,180 --> 00:00:34,190 As dit is nie, wat beteken dat die gebruiker nie nie die nommer by die voer 9 00:00:34,190 --> 00:00:37,770 command line of hulle het te veel dinge op die opdrag lyn, waarin 10 00:00:37,770 --> 00:00:40,560 geval dat ons nie weet wat om te doen met die res van die dinge. 11 00:00:40,560 --> 00:00:45,750 So, solank argc was twee, kan ons voort te gaan met die res van die program. 12 00:00:45,750 --> 00:00:49,610 >> Nou, onthou dat bevat SPASIES 1 is altyd 'n string. 13 00:00:49,610 --> 00:00:52,490 Maar ons wil dit as 'n heelgetal te behandel. 14 00:00:52,490 --> 00:00:57,550 So, ons gebruik die atoi funksie wat genoemde p stel spec te omskep die 15 00:00:57,550 --> 00:01:02,330 string bevat SPASIES 1 tot 'n heelgetal, en ons slaan wat in die sleutel. 16 00:01:02,330 --> 00:01:06,050 Ons wil om seker te maak dat die integriteit wat aangegaan is nie negatief. 17 00:01:06,050 --> 00:01:09,490 En as dit was, ons wil hê dat die druk te die gebruiker dat hulle nie toegelaat 18 00:01:09,490 --> 00:01:11,980 om dit te doen, en terug te keer. 19 00:01:11,980 --> 00:01:15,100 >> So, nou het ons 'n geldige nommer van die gebruiker. 20 00:01:15,100 --> 00:01:19,780 Maar ons moet 'n string te kry van die gebruiker wat ons wil te enkripteer. 21 00:01:19,780 --> 00:01:25,340 So het ons gebruik om te doen-lus en gebruik kry string hierdie string te kry van die 22 00:01:25,340 --> 00:01:29,190 gebruiker, en gaan voort om string totdat hulle eintlik 23 00:01:29,190 --> 00:01:31,270 Gee 'n geldige string. 24 00:01:31,270 --> 00:01:34,400 >> Sodra ons daardie string ons kan op om dit te enkripteer. 25 00:01:34,400 --> 00:01:38,120 So, is dit vir lus doen dat kodering. 26 00:01:38,120 --> 00:01:43,250 Let daarop dat ons iterating van i gelyk aan 0 t al die pad tot by i gelykes 27 00:01:43,250 --> 00:01:47,790 n, waar n word gedefinieer as die lengte van ons boodskap, waar die boodskap is die 28 00:01:47,790 --> 00:01:50,260 string wat die gebruiker aangegaan is. 29 00:01:50,260 --> 00:01:54,330 >> So ons iterating oor al karakters in die string. 30 00:01:54,330 --> 00:01:59,740 En as 'n karakter is hoofletters, dan ons gaan om dit te skuif met behulp van hierdie 31 00:01:59,740 --> 00:02:01,860 formule, wat ons sal kry om in 'n tweede. 32 00:02:01,860 --> 00:02:05,260 En as dit is klein letters, dan ons sal dit verskuif die gebruik van hierdie is 33 00:02:05,260 --> 00:02:07,290 baie soortgelyk formule. 34 00:02:07,290 --> 00:02:10,850 En as dit was nie 'n hoof-of 'n klein letter - byvoorbeeld, is dit 35 00:02:10,850 --> 00:02:15,370 kan 'n getal of 'n simbool wees - dan moet ons is nie van plan om iets te doen om dit te. 36 00:02:15,370 --> 00:02:18,220 >> So, wat is hierdie formules? 37 00:02:18,220 --> 00:02:22,090 Wel, hoe kan ons skuif die karakter A? 38 00:02:22,090 --> 00:02:27,250 Ons wil die karakter te behandel A as die nommer 0. 39 00:02:27,250 --> 00:02:30,710 En ons wil die karakter te behandel B as die nommer 1, en so aan. 40 00:02:30,710 --> 00:02:35,170 Dit is die nulde en die eerste karakters van die alfabet en so aan. 41 00:02:35,170 --> 00:02:42,900 >> So hier is die boodskap wat ek minus 'n veronderstelde om te gee ons die numeriese die plek van die 42 00:02:42,900 --> 00:02:44,400 letter in die alfabet. 43 00:02:44,400 --> 00:02:48,080 So as boodskap wat ek is A, hierdie gaan ons te gee 0. 44 00:02:48,080 --> 00:02:52,880 Nou, ons wil voeg by dat die getal wat die gebruiker wil 45 00:02:52,880 --> 00:02:54,840 draai die brief deur. 46 00:02:54,840 --> 00:03:03,280 Dus, as hulle het 3, dan as die boodskap Ek was 'n, sal hierdie gee ons 0 en plus 47 00:03:03,280 --> 00:03:05,400 sleutel 3 gee ons. 48 00:03:05,400 --> 00:03:09,450 >> So nou is ons die oorweging van die derde plek in die alfabet. 49 00:03:09,450 --> 00:03:12,810 Ons sal sien waarom ons nodig het om te mod deur num letters in 'n tweede. 50 00:03:12,810 --> 00:03:18,700 Maar uiteindelik, ons wil by te voeg op die 'n einde weer vir ons om terug te skuif na die 51 00:03:18,700 --> 00:03:22,020 ASCII waardes vir hierdie karakters in plaas van die numeriese plekke in die 52 00:03:22,020 --> 00:03:24,260 alfabet van hierdie karakters. 53 00:03:24,260 --> 00:03:26,580 >> So, hoekom moet ons mod deur num letters? 54 00:03:26,580 --> 00:03:29,960 Onthou dat ons wil hê om rond te draai van die einde van die alfabet tot die 55 00:03:29,960 --> 00:03:31,470 die begin van die alfabet. 56 00:03:31,470 --> 00:03:38,530 So as die gebruiker aangegaan het Z, dan aftrek A van wat gaan 57 00:03:38,530 --> 00:03:40,520 gee ons 25. 58 00:03:40,520 --> 00:03:44,800 En as die sleutel was 3, dan ons gaan 28 te hê. 59 00:03:44,800 --> 00:03:53,000 Maar Z moet rond draai te ABC, so 28 mod num letters, wat hash gedefinieer 60 00:03:53,000 --> 00:04:01,890 as 26 verwag word, gaan gee ons 2, waar C die tweede brief van 61 00:04:01,890 --> 00:04:05,880 die alfabet, as jy onthou dat A die nulde letter van die alfabet. 62 00:04:05,880 --> 00:04:09,210 >> So dit is waarom ons moet mod deur num letters. 63 00:04:09,210 --> 00:04:13,540 Nou moet ons die presies dieselfde ding om te doen vir klein letters, behalwe 64 00:04:13,540 --> 00:04:17,240 onthou dat wanneer ons te doen het met kleinletters, het hulle verskillende 65 00:04:17,240 --> 00:04:18,579 ASCII waardes. 66 00:04:18,579 --> 00:04:24,550 En so het ons nodig het om te trek en voeg op 'n om dit te skuif af van die klein 67 00:04:24,550 --> 00:04:30,020 ASCII waardes en dan weer terug na die oorspronklike klein ASCII waardes. 68 00:04:30,020 --> 00:04:33,140 >> En uiteindelik, sal wat ons gee ons geïnkripteer boodskap. 69 00:04:33,140 --> 00:04:37,780 En in die einde, het ons net uit te druk dat die boodskap, en dit is dit. 70 00:04:37,780 --> 00:04:39,875 My naam is Rob, en was die keiser. 71 00:04:39,875 --> 00:04:49,856