1 00:00:00,000 --> 00:00:10,103 2 00:00:10,103 --> 00:00:11,270 >> ZAMYLA Chan: Apsveicu par apdares savu 3 00:00:11,270 --> 00:00:13,200 Pirmais pāris C programmas. 4 00:00:13,200 --> 00:00:16,379 Es zinu, ka tavs pirmais iebrukums C sintakse var būt pagrūti. 5 00:00:16,379 --> 00:00:20,060 Bet es apliecinu jums, beigās Protams, jūs varēsiet apskatīt 6 00:00:20,060 --> 00:00:23,870 pirmo uzdevumu pāris un pabeigt tos minūtēs. 7 00:00:23,870 --> 00:00:27,830 >> Tagad, ka jūs saņemat vairāk pazīstams ar sintaksi, pieņemsim nokļūt līdz ķeizaram. 8 00:00:27,830 --> 00:00:31,720 Jo ķeizaram, lietotājs iesniedz vesels skaitlis atslēgu kā komandrindas 9 00:00:31,720 --> 00:00:35,300 arguments, tad ievadiet plain īsziņa par ātru. 10 00:00:35,300 --> 00:00:38,050 Programma pēc tam šifrēt teksts un drukas 11 00:00:38,050 --> 00:00:40,020 to ciphertext ziņu. 12 00:00:40,020 --> 00:00:42,980 >> Šifrēšanas par ķeizaru ir diezgan vienkārši. 13 00:00:42,980 --> 00:00:46,455 Shift katru burtu, jo viņu teksta, ko atslēgu. 14 00:00:46,455 --> 00:00:49,220 Kā rezultātā, tas ir arī diezgan nedroši. 15 00:00:49,220 --> 00:00:53,850 Bet īstenošanas Caesar ieviesīs mums ASCIIMath un masīvs datu 16 00:00:53,850 --> 00:00:54,460 struktūras. 17 00:00:54,460 --> 00:00:57,510 Mēs sāksim sarežģītāka šifrēšana vēlāk. 18 00:00:57,510 --> 00:01:01,680 Ar Cēzara atslēgu 2, vēstule, kas teksta varētu pārstāvēt 19 00:01:01,680 --> 00:01:07,580 burtu C ciphertext, jo C ir divi burti, pēc tam, kad A. B, būtu 20 00:01:07,580 --> 00:01:12,450 pārstāv D un C E. Ceļā alfabēta gals, W ir 21 00:01:12,450 --> 00:01:18,550 pārstāv Y un X līdz Z. Bet Y nav divi burti, pēc tam, kad tā, lai 22 00:01:18,550 --> 00:01:21,070 ka šifrēšana wraps ap alfabētu. 23 00:01:21,070 --> 00:01:27,190 Y teksta tādējādi pārstāv In ciphertext, un Z ar B. tā var 24 00:01:27,190 --> 00:01:32,080 palīdzēt, lai apskatītu Caesar Cypher, piemēram, nepārtraukta alfabēts ritenis. 25 00:01:32,080 --> 00:01:35,760 >> Lai šifrēt savu tekstu, lietotāja stāsies divi argumenti 26 00:01:35,760 --> 00:01:37,090 uz komandrindas - 27 00:01:37,090 --> 00:01:40,010 . / Caesar seko atslēgu. 28 00:01:40,010 --> 00:01:44,710 Kā vienmēr, mēs nevaram uzticēties lietotāju pilnīgi ievadīt ievadi, kas padara 29 00:01:44,710 --> 00:01:45,800 sajūtu par mūsu programmu. 30 00:01:45,800 --> 00:01:50,670 Tātad mums būs, lai apstiprinātu savus komandrindas ieejas. 31 00:01:50,670 --> 00:01:57,285 >> Tā vietā, izmantojot int galveno trūkumu, mēs esam izmantojot int galvenais, int argc, stīgu ARGV. 32 00:01:57,285 --> 00:02:01,730 Skaitlis mainīgo argc pārstāv argumentu skaits pārgāja 33 00:02:01,730 --> 00:02:02,880 komandrindas. 34 00:02:02,880 --> 00:02:09,070 Un argv ir masīvs, vai domā par to, kā sarakstu, no argumentiem pagājis collas 35 00:02:09,070 --> 00:02:12,000 >> Tātad Cēzars, kā mēs apstiprinātu lietotāja ievadi? 36 00:02:12,000 --> 00:02:15,870 Nu, tie ir tikai ievadot Divi komandrindas argumenti - 37 00:02:15,870 --> 00:02:18,150 . / Caesar un atslēgu. 38 00:02:18,150 --> 00:02:22,340 Tātad, ja argc nav 2, kas nozīmē, ka viņi vai nu aizmirsa atslēgu un tikai 39 00:02:22,340 --> 00:02:27,230 ieraksta / Caesar., vai arī tie ievada vairākas atslēgas. 40 00:02:27,230 --> 00:02:29,770 >> Ja tas ir gadījumā, tad jūs vēlaties izdrukāt instrukcijas 41 00:02:29,770 --> 00:02:30,910 un atmest programmu. 42 00:02:30,910 --> 00:02:34,320 Viņiem būs nepieciešama, lai mēģinātu vēlreiz no komandrindas. 43 00:02:34,320 --> 00:02:37,430 Bet, pat ja argc ir 2, jūs ir nepieciešams, lai pārbaudītu, vai tie 44 00:02:37,430 --> 00:02:39,100 jums derīgu atslēgu. 45 00:02:39,100 --> 00:02:40,730 Par ķeizaram, jums ir nepieciešams vesels skaitlis. 46 00:02:40,730 --> 00:02:43,260 Bet argv ir masīvs stīgas. 47 00:02:43,260 --> 00:02:46,490 Kā jūs piekļūt šo atslēgu? 48 00:02:46,490 --> 00:02:47,850 >> Ātri apskatīt masīvi - 49 00:02:47,850 --> 00:02:51,410 datu struktūras, kas tur vairākas vērtības, ar tādu pašu datu tipu. 50 00:02:51,410 --> 00:02:55,350 Ieraksti ir nulles indeksētas, kas nozīmē, ka pirmais elements ir indekss nulle 51 00:02:55,350 --> 00:03:00,260 un pēdējais elements ir indeksa lielums mīnus 1, kur izmērs ir skaitlis no 52 00:03:00,260 --> 00:03:02,850 elementus masīvā. 53 00:03:02,850 --> 00:03:07,380 >> Ja man paziņoja jaunu string masīvs pastkasti 3 garuma, vizuāli, tā 54 00:03:07,380 --> 00:03:08,570 izskatās šādi. 55 00:03:08,570 --> 00:03:11,520 Trīs konteineri stīgām , Viens otram blakus. 56 00:03:11,520 --> 00:03:15,445 Piekļūt jebkurš elements, rakstot vārdu no masīva un tad norādīt 57 00:03:15,445 --> 00:03:18,080 indekss kvadrātiekavās. 58 00:03:18,080 --> 00:03:21,610 Lūk, es esmu piešķirot vērtību katrai elements, tāpat kā es to darītu ar jebkuru 59 00:03:21,610 --> 00:03:24,310 citi stīgu mainīgs. 60 00:03:24,310 --> 00:03:29,020 >> Tātad, lai piekļūtu mūsu komandrindas argumentus, viss, kas mums ir jādara, ir piekļuve 61 00:03:29,020 --> 00:03:31,690 tiesības elements ARGV masīva. 62 00:03:31,690 --> 00:03:37,360 Ja lietotājs ievada. / Blastoff Team Raķešu uz terminālu, argv 0 būtu 63 00:03:37,360 --> 00:03:38,950 būt. / Blastoff. 64 00:03:38,950 --> 00:03:45,010 argv būtu komanda, un ARG2 būtu raķešu. 65 00:03:45,010 --> 00:03:47,670 >> Tagad, ka mēs varam piekļūt mūsu atslēga, mums joprojām ir nepieciešams, lai 66 00:03:47,670 --> 00:03:49,040 pārliecināts, ka tas ir pareizi. 67 00:03:49,040 --> 00:03:51,060 Mums ir nepieciešams, lai pārvērstu to par skaitlim. 68 00:03:51,060 --> 00:03:54,680 Bet mēs nevaram vienkārši nodot, piemēram, mēs esam darījuši iepriekš. 69 00:03:54,680 --> 00:03:58,800 Par laimi, lai Y funkcija rūpējas Šī mums un pat atgriež 0 70 00:03:58,800 --> 00:04:02,110 ja string nevar tikt pārvērsts stājas skaitlim. 71 00:04:02,110 --> 00:04:04,450 Tas ir atkarīgs no jums, lai gan, lai pastāstītu lietotājs kāpēc jums nav 72 00:04:04,450 --> 00:04:06,220 ļaujiet programmu turpināt. 73 00:04:06,220 --> 00:04:10,710 Uzglabāt rezultātu, lai Y vesels skaitlis, un tur jums ir savu atslēgu. 74 00:04:10,710 --> 00:04:12,070 Nākamā daļa ir vienkārši. 75 00:04:12,070 --> 00:04:15,940 Atgādinās lietotājam par to teksta, kas būs datu tipa virknes. 76 00:04:15,940 --> 00:04:18,339 Par laimi mums, visiem lietotāja ievadīti stīgas ir spēkā. 77 00:04:18,339 --> 00:04:21,170 78 00:04:21,170 --> 00:04:24,760 >> Tagad, kad mums ir visa vajadzīgā informācija, no lietotāja, ir pienācis laiks mums 79 00:04:24,760 --> 00:04:26,520 šifrēt savu ziņu. 80 00:04:26,520 --> 00:04:29,200 No ķeizara koncepcija ir vienkārša pietiekami, lai saprastu. 81 00:04:29,200 --> 00:04:33,750 Bet kā jūsu dators zina, kas burti nāk pēc tam viens ar otru? 82 00:04:33,750 --> 00:04:36,100 >> Lūk, kur ASCII tabula nāk collas 83 00:04:36,100 --> 00:04:39,420 Katram varonim ir vesels skaitlis numuru, kas saistīts ar to. 84 00:04:39,420 --> 00:04:41,380 Kapitāls ir 65. 85 00:04:41,380 --> 00:04:43,310 Kapitāls B ir 66. 86 00:04:43,310 --> 00:04:45,260 Mazajiem ir 97. 87 00:04:45,260 --> 00:04:47,590 Mazie b ir 98. 88 00:04:47,590 --> 00:04:50,770 Bet rakstzīmes netiek ierobežotas lai tikai alfabētisku numuriem. 89 00:04:50,770 --> 00:04:56,020 Piemēram, @ simbols ir ASCII numurs 64. 90 00:04:56,020 --> 00:04:59,690 >> Pirms nodarbojas ar visu auklu, pieņemsim izlikties, mums vienkārši ir novirzīt 91 00:04:59,690 --> 00:05:01,220 viena rakstzīme. 92 00:05:01,220 --> 00:05:04,640 Nu, mēs tikai vēlamies, lai novirzītu faktisko burti teksta, ne 93 00:05:04,640 --> 00:05:06,020 burti vai cipari. 94 00:05:06,020 --> 00:05:09,100 Tātad, pirmā lieta, ko mēs vēlamies, lai pārbaudīt, vai raksturs ir 95 00:05:09,100 --> 00:05:10,430 alfabēts. 96 00:05:10,430 --> 00:05:14,460 >> Funkcija isalpha tas par mums un atgriež Būla - 97 00:05:14,460 --> 00:05:18,570 taisnība, ja rakstzīmes ir burts, false, ja citādi. 98 00:05:18,570 --> 00:05:22,270 Divas citas noderīgas funkcijas isupper un islower, ar 99 00:05:22,270 --> 00:05:23,860 sev saprotamus nosaukumus. 100 00:05:23,860 --> 00:05:27,370 Viņi atgriežas taisnība, ja, ņemot vērā raksturu ir lielie vai mazie, 101 00:05:27,370 --> 00:05:28,740 attiecīgi. 102 00:05:28,740 --> 00:05:33,770 Tā kā tie ir booleans, viņi lietderīgi izmantot kā apstākļos. 103 00:05:33,770 --> 00:05:38,310 >> Ja isalpha atgriež taisnība, jums būs nepieciešams novirzīt šo raksturu ar atslēgu. 104 00:05:38,310 --> 00:05:43,750 Tātad, pieņemsim atvērts ASCIIMath un tie daži ASCII math. 105 00:05:43,750 --> 00:05:48,700 Izmantošana ir ļoti līdzīgs izmantošanu par ķeizaru un ņem ar taustiņu 106 00:05:48,700 --> 00:05:50,870 komandrindas. 107 00:05:50,870 --> 00:05:59,590 >> Ja es palaist ASCIIMath 5, šķiet, lai pievienotu 5, dod man burtu F, un 108 00:05:59,590 --> 00:06:01,260 parādot ASCII vērtību. 109 00:06:01,260 --> 00:06:04,090 Tātad, pieņemsim to apskatīt programmā. 110 00:06:04,090 --> 00:06:11,820 >> Jūs varētu brīnīties, tieši šeit, kāpēc vēstule ir skaitlis, ja tas ir 111 00:06:11,820 --> 00:06:14,330 skaidri, labi, vēstule. 112 00:06:14,330 --> 00:06:17,690 Izrādās, ka zīmes un veseli skaitļi ir savstarpēji aizvietojami. 113 00:06:17,690 --> 00:06:21,730 Izpētot vēstuli ar viena pēdiņas, skaitlis var uzglabāt 114 00:06:21,730 --> 00:06:25,390 ASCII vērtību kapitāla A. Esiet uzmanīgi, lai gan. 115 00:06:25,390 --> 00:06:27,150 Jums ir nepieciešams vienu drēbes. 116 00:06:27,150 --> 00:06:31,260 Bez vienu pēdiņām, kompilators varētu meklēt mainīgā 117 00:06:31,260 --> 00:06:35,510 nosaukts, un nevis raksturu. 118 00:06:35,510 --> 00:06:42,140 >> Tad es varu pievienot vēstuli un taustiņu, glabāšanai summa int mainīgo rezultātu. 119 00:06:42,140 --> 00:06:47,740 Pat ja rezultāts ir datu tips skaitlis, mans printf paziņojumu izmanto 120 00:06:47,740 --> 00:06:50,370 % C vietturis rakstzīmes. 121 00:06:50,370 --> 00:06:54,530 Tātad Programma drukā raksturu saistīts ar vesela skaitļa rezultātā. 122 00:06:54,530 --> 00:07:00,400 Un, tā kā mēs drukāts skaitlim formā, kā arī, izmantojot% d, mēs redzēt 123 00:07:00,400 --> 00:07:02,110 numuru, kā arī. 124 00:07:02,110 --> 00:07:04,450 Tātad tagad jūs varat redzēt, ka mēs ārstēt rakstzīmes un 125 00:07:04,450 --> 00:07:06,980 veseli skaitļi, un otrādi. 126 00:07:06,980 --> 00:07:12,205 >> Let 's testu veic ASCIIMath pāris vairākas reizes, izmantojot 25 kā atslēgu. 127 00:07:12,205 --> 00:07:15,510 128 00:07:15,510 --> 00:07:17,090 Mēs saņemam burtu z. 129 00:07:17,090 --> 00:07:19,750 Tagad mēs cenšamies 26. 130 00:07:19,750 --> 00:07:25,600 Mēs vēlamies, lai iegūtu burtu A, bet tā vietā mēs iegūstam kreiso iekavu. 131 00:07:25,600 --> 00:07:29,490 Tātad, protams, tikai pievienojot Galvenais, lai burtu nedarīs. 132 00:07:29,490 --> 00:07:32,780 Mums ir nepieciešams, lai noskaidrotu formulu, lai wrap ap alfabētu, piemēram, mūsu 133 00:07:32,780 --> 00:07:34,570 piemērs sākumā izdarīja. 134 00:07:34,570 --> 00:07:38,520 >> Formula Ķeizara pāreja ir šāds. 135 00:07:38,520 --> 00:07:42,750 c vienāds p plus k moduļa 26. 136 00:07:42,750 --> 00:07:46,040 Atcerieties, ka pēc moduļa ir noderīgs darbība, kas dod mums atlikušo 137 00:07:46,040 --> 00:07:49,880 no dalot vienu skaitli ar otru. 138 00:07:49,880 --> 00:07:54,870 Pieņemsim piemērot šo formulu, lai vienkāršā Teksts vēstule ar A atslēgu gada 2. 139 00:07:54,870 --> 00:08:01,810 ASCII vērtība y ir 89, kas dod mums 26 91 modulo, 140 00:08:01,810 --> 00:08:03,690 kas ir vienāds ar 13 - 141 00:08:03,690 --> 00:08:08,740 noteikti nav ASCII vērtība no, kas ir 67. 142 00:08:08,740 --> 00:08:12,810 >> Humors mani tagad un attālināties no ASCII vērtības uz alfabētiskajā sarakstā 143 00:08:12,810 --> 00:08:18,690 kur ir nulle, un Z ir 25, kas nozīmē, ka Y ir 24. 144 00:08:18,690 --> 00:08:25,830 2 24 plus, modulo 6, dod mums 26, pēc moduļa 26, 0, kas ir 145 00:08:25,830 --> 00:08:28,170 alfabētisko rādītāju. 146 00:08:28,170 --> 00:08:32,980 Tātad šī formula, šķiet, attiecas uz alfabētisko vēstules indekss un 147 00:08:32,980 --> 00:08:34,960 nevis tās ASCII vērtību. 148 00:08:34,960 --> 00:08:37,630 >> Bet jūs sākat ar ASCII vērtībām. 149 00:08:37,630 --> 00:08:41,650 Un, lai izdrukātu ciphertext raksturu, jums ir nepieciešams savu ASCII vērtību, kā arī. 150 00:08:41,650 --> 00:08:46,400 Tas ir atkarīgs no jums, tad, lai noskaidrotu kā pārslēgties uz priekšu un atpakaļ. 151 00:08:46,400 --> 00:08:49,850 >> Kad jūs izrēķināt pareizo formulu par vienu rakstzīmi, viss, kas jums jādara, 152 00:08:49,850 --> 00:08:53,520 ir jāpiemēro to pašu formulu, lai katru burts teksta - 153 00:08:53,520 --> 00:08:57,720 tikai tad, ja vēstule ir alfabēta, protams. 154 00:08:57,720 --> 00:09:02,360 Un atcerieties, ka jums ir nepieciešams, lai saglabātu gadījumā, augšējā vai apakšējā, tas ir, ja 155 00:09:02,360 --> 00:09:06,890 isUpper un isLower funkcijas minēts iepriekš noderēs. 156 00:09:06,890 --> 00:09:08,830 Jums varētu būt divas formulas - 157 00:09:08,830 --> 00:09:11,680 viens lielajiem burtiem un viens mazie burti. 158 00:09:11,680 --> 00:09:18,420 Tātad isUpper isLower palīdzēs jums nosaka, kuras formula piemērot. 159 00:09:18,420 --> 00:09:22,460 >> Kā jūs pieteikties savu formulu ik vienu rakstzīmi virknē? 160 00:09:22,460 --> 00:09:25,910 Nu, virkne ir tikai masīvs rakstzīmes. 161 00:09:25,910 --> 00:09:31,150 Tātad, jūs varat piekļūt katru rakstzīmi, Grupējot pār katru rakstura 162 00:09:31,150 --> 00:09:33,450 virknes uz cilpas. 163 00:09:33,450 --> 00:09:37,550 Attiecībā uz stāvokli jūsu uz cilpas, funkciju strlen, stīgu 164 00:09:37,550 --> 00:09:39,280 garums, noderēs. 165 00:09:39,280 --> 00:09:44,020 Tā veic virkni kā ievade un atgriež garums šīs virknes. 166 00:09:44,020 --> 00:09:49,250 Pārliecinieties, lai iekļautu pareizo bibliotēka izmantot virknes garuma funkciju. 167 00:09:49,250 --> 00:09:51,790 >> Un tur jums ir jūsu ciphertext. 168 00:09:51,790 --> 00:09:53,260 Mans vārds ir Zamyla. 169 00:09:53,260 --> 00:09:54,510 Un [runāšana CODE]. 170 00:09:54,510 --> 00:10:02,944