1 00:00:00,000 --> 00:00:10,103 2 00:00:10,103 --> 00:00:11,270 >> ZAMYLA Chan: Konpliman sou fini ou 3 00:00:11,270 --> 00:00:13,200 premye koup la C pwogram yo. 4 00:00:13,200 --> 00:00:16,379 Mwen konnen ke plonge premye fwa ou antre nan C sentaks ka redoutable. 5 00:00:16,379 --> 00:00:20,060 Men, mwen asire ou, nan fen a Natirèlman, ou pral kapab fè yon gade nan la 6 00:00:20,060 --> 00:00:23,870 premye koup la devwa ak ranpli yo nan kèk minit. 7 00:00:23,870 --> 00:00:27,830 >> Kounye a ke w ap vin plis abitye ak sentaks, se pou yo ale nan Seza li ye. 8 00:00:27,830 --> 00:00:31,720 Nan Seza, itilizatè a ap soumèt yon nonb antye ki pè kle kòm yon liy lòd 9 00:00:31,720 --> 00:00:35,300 agiman, lè sa a antre nan yon plenn mesaj tèks nan èd memwa a. 10 00:00:35,300 --> 00:00:38,050 Pwogram nan pral Lè sa a chifre tèks la ak ekri an lèt detache 11 00:00:38,050 --> 00:00:40,020 mesaj chifre yo. 12 00:00:40,020 --> 00:00:42,980 >> Enciphering a pou Seza tande kòz se byen senp. 13 00:00:42,980 --> 00:00:46,455 Chanjman chak lèt, nan yo plenn tèks, pa kle a. 14 00:00:46,455 --> 00:00:49,220 Kòm yon rezilta, li la tou trè sekirite. 15 00:00:49,220 --> 00:00:53,850 Men, Aplikasyon Seza, n ap entwodui nou ASCIIMath ak etalaj done 16 00:00:53,850 --> 00:00:54,460 estrikti. 17 00:00:54,460 --> 00:00:57,510 Nou pral jwenn pi konplèks Algorithms pita. 18 00:00:57,510 --> 00:01:01,680 Ak yon kle Seza tande kòz nan 2, lèt A nan ta plenn tèks dwe reprezante pa 19 00:01:01,680 --> 00:01:07,580 lèt C a nan chifre paske C se de lèt apre A. B ta dwe 20 00:01:07,580 --> 00:01:12,450 reprezante pa D ak C pa E. Rive sou fen a nan alfabè a, W se 21 00:01:12,450 --> 00:01:18,550 reprezante pa Y, ak X pa Z. Men, Y pa gen de lèt apre li fin, se konsa 22 00:01:18,550 --> 00:01:21,070 Algorithms yo vlope toutotou alfabè a. 23 00:01:21,070 --> 00:01:27,190 Se y nan tèks plenn konsa reprezante pa A nan chifre ak Z pa B. Li kapab 24 00:01:27,190 --> 00:01:32,080 ede wè kalkile nan Seza tande kòz tankou yon wou alfabè kontinyèl. 25 00:01:32,080 --> 00:01:35,760 >> Chifre tèks yo, itilizatè a pral antre nan de agiman 26 00:01:35,760 --> 00:01:37,090 nan liy lan bay lòd - 27 00:01:37,090 --> 00:01:40,010 . / Seza tande kòz ki te swiv pa yon kle. 28 00:01:40,010 --> 00:01:44,710 Kòm toujou, nou pa ka fè konfyans itilizatè a konplètman antre nan opinyon ki fè 29 00:01:44,710 --> 00:01:45,800 sans pou pwogram nou an. 30 00:01:45,800 --> 00:01:50,670 Se konsa, nou pral gen valide yo lòd liy opinyon. 31 00:01:50,670 --> 00:01:57,285 >> Olye pou yo lè l sèvi avèk Int anile prensipal yo, nou ap lè l sèvi avèk Int prensipal yo, Int arg, fisèl argv. 32 00:01:57,285 --> 00:02:01,730 Arg nan nonb antye ki pè varyab reprezante nimewo a nan agiman te pase nan 33 00:02:01,730 --> 00:02:02,880 lòd liy lan. 34 00:02:02,880 --> 00:02:09,070 Men, argv se yon etalaj, oswa panse a li kòm yon lis, nan agiman yo te pase pous 35 00:02:09,070 --> 00:02:12,000 >> Se konsa, pou Seza, ki jan nou valide D 'itilizatè a la? 36 00:02:12,000 --> 00:02:15,870 Bon, yo ta dwe sèlman ap rantre nan agiman de liy lòd - 37 00:02:15,870 --> 00:02:18,150 . / Seza ak kle a. 38 00:02:18,150 --> 00:02:22,340 Se konsa, si arg se pa 2, sa vle di yo swa bliye yon kle ak jis 39 00:02:22,340 --> 00:02:27,230 antre nan. / Seza, oswa yo antre nan kle miltip. 40 00:02:27,230 --> 00:02:29,770 >> Si sa a se ka a, Lè sa a, ou pral vle ekri ak lèt ​​detache enstriksyon 41 00:02:29,770 --> 00:02:30,910 ak kite pwogram nan. 42 00:02:30,910 --> 00:02:34,320 Yo pral bezwen eseye ankò soti nan liy la lòd. 43 00:02:34,320 --> 00:02:37,430 Men, menm si arg se 2, ou pral bezwen tcheke si yo 44 00:02:37,430 --> 00:02:39,100 ba ou yon kle ki valid. 45 00:02:39,100 --> 00:02:40,730 Pou Seza, ou bezwen yon nonb antye ki pè. 46 00:02:40,730 --> 00:02:43,260 Men, argv se yon etalaj de strings. 47 00:02:43,260 --> 00:02:46,490 Ki jan ou fè jwenn aksè ki kle? 48 00:02:46,490 --> 00:02:47,850 >> Yon gade rapid nan ranje - 49 00:02:47,850 --> 00:02:51,410 done estrikti ki kenbe miltip valè nan kalite la menm done. 50 00:02:51,410 --> 00:02:55,350 Entries yo zewo-endèks, sa vle di eleman nan premye se zewo nan endèks 51 00:02:55,350 --> 00:03:00,260 ak eleman an pase a se nan gwosè endèks 1 mwens, kote gwosè se nimewo a nan 52 00:03:00,260 --> 00:03:02,850 eleman nan etalaj la. 53 00:03:02,850 --> 00:03:07,380 >> Si mwen te deklare yon fisèl nouvo bwat etalaj longè 3, vizyèlman, li 54 00:03:07,380 --> 00:03:08,570 sanble tankou sa a. 55 00:03:08,570 --> 00:03:11,520 Twa kontenè ki pou strings , Kòt a kòt. 56 00:03:11,520 --> 00:03:15,445 Pou jwenn aksè a nenpòt eleman, ou tape non an nan etalaj la ak Lè sa a endike 57 00:03:15,445 --> 00:03:18,080 endèks la nan parantèz kare. 58 00:03:18,080 --> 00:03:21,610 Isit la, mwen voye yon ti valè nan chak eleman, menm jan mwen ta fè ak nenpòt ki 59 00:03:21,610 --> 00:03:24,310 lòt fisèl varyab. 60 00:03:24,310 --> 00:03:29,020 >> Se konsa, jwenn aksè nan agiman lòd liy nou an, tout sa nou dwe fè se jwenn aksè 61 00:03:29,020 --> 00:03:31,690 eleman nan dwa nan etalaj la argv. 62 00:03:31,690 --> 00:03:37,360 Si itilizatè a te antre nan. / Blastoff Ekip Wòkèt nan tèminal la, argv 0 ta 63 00:03:37,360 --> 00:03:38,950 dwe. / blastoff. 64 00:03:38,950 --> 00:03:45,010 argv ta dwe Ekip, ak arg2 ta dwe fize. 65 00:03:45,010 --> 00:03:47,670 >> Koulye a, ke nou kapab jwenn aksè kle nou yo, nou toujou bezwen fè 66 00:03:47,670 --> 00:03:49,040 asire w ke li nan kòrèk. 67 00:03:49,040 --> 00:03:51,060 Nou bezwen konvèti li nan yon nonb antye ki pè. 68 00:03:51,060 --> 00:03:54,680 Men, nou pa ka jis jete tankou nou te fè deja. 69 00:03:54,680 --> 00:03:58,800 Chans, A rive Y fonksyon an pran swen sa a pou nou e menm retounen 0 70 00:03:58,800 --> 00:04:02,110 si fisèl la pa ka konvèti nan yon nonb antye ki pè. 71 00:04:02,110 --> 00:04:04,450 Li a jiska ou, menm si, di itilizatè a poukisa ou pa pral 72 00:04:04,450 --> 00:04:06,220 kite pwogram nan kontinye. 73 00:04:06,220 --> 00:04:10,710 Sere rezilta a nan A Y nan yon nonb antye ki pè, epi gen ou gen kle ou. 74 00:04:10,710 --> 00:04:12,070 Pati nan pwochen se senp. 75 00:04:12,070 --> 00:04:15,940 Èd memwa itilizatè a pou tèks plenn yo, ki pral nan fisèl done kalite. 76 00:04:15,940 --> 00:04:18,339 Chans pou nou, tout itilizatè antre strings yo valab. 77 00:04:18,339 --> 00:04:21,170 78 00:04:21,170 --> 00:04:24,760 >> Koulye a, ke nou gen tout opinyon nesesè soti nan itilizatè a, li lè pou nou pou n 79 00:04:24,760 --> 00:04:26,520 chifre mesaj yo. 80 00:04:26,520 --> 00:04:29,200 Konsèp la nan Seza se senp ase yo konprann. 81 00:04:29,200 --> 00:04:33,750 Men, ki jan òdinatè w lan konnen ki lèt vini apre youn ak lòt? 82 00:04:33,750 --> 00:04:36,100 >> Isit la nan kote tab la ASCII vini pous 83 00:04:36,100 --> 00:04:39,420 Chak karaktè gen yon nonb antye ki pè nimewo ki asosye ak li. 84 00:04:39,420 --> 00:04:41,380 Kapital A se 65. 85 00:04:41,380 --> 00:04:43,310 Kapital B se 66. 86 00:04:43,310 --> 00:04:45,260 Miniskil yon se 97. 87 00:04:45,260 --> 00:04:47,590 B miniskil se 98. 88 00:04:47,590 --> 00:04:50,770 Men, karaktè yo pa limite jis nimewo alfabetik. 89 00:04:50,770 --> 00:04:56,020 Pou egzanp, @ senbòl la se 64 ASCII nimewo. 90 00:04:56,020 --> 00:04:59,690 >> Anvan fè fas ak fisèl la tout antye, kite a pretann nou jis gen chanjman 91 00:04:59,690 --> 00:05:01,220 yon karaktè. 92 00:05:01,220 --> 00:05:04,640 Oke, nou sèlman vle chanjman reyèl lèt nan tèks la plenn, pa 93 00:05:04,640 --> 00:05:06,020 karaktè oubyen nimewo yo. 94 00:05:06,020 --> 00:05:09,100 Se konsa, nan premye bagay ke nou pral vle tcheke se si pèsonaj la se nan 95 00:05:09,100 --> 00:05:10,430 alfabè an. 96 00:05:10,430 --> 00:05:14,460 >> Isalpha nan fonksyon fè sa a pou nou epi retounen yon Boolean - 97 00:05:14,460 --> 00:05:18,570 vre si karaktè yo se yon lèt, fo si otreman. 98 00:05:18,570 --> 00:05:22,270 De lòt aktivite itil yo isupper ak islower, ak 99 00:05:22,270 --> 00:05:23,860 pwòp tèt ou-eksplikasyon non. 100 00:05:23,860 --> 00:05:27,370 Yo tounen vre si pèsonaj la bay se majuskul oswa miniskil, 101 00:05:27,370 --> 00:05:28,740 respektivman. 102 00:05:28,740 --> 00:05:33,770 Depi yo Booleans, yo ap itil nan itilize kòm kondisyon yo. 103 00:05:33,770 --> 00:05:38,310 >> Si isalpha retounen vre, ou pral bezwen chanjman ki N. pa kle a. 104 00:05:38,310 --> 00:05:43,750 Se konsa, kite a ouvè a ASCIIMath ak fè kèk matematik ASCII. 105 00:05:43,750 --> 00:05:48,700 L 'a se trè menm jan ak l' a pou Seza tande kòz ak pran nan yon kle nan la 106 00:05:48,700 --> 00:05:50,870 liy lòd. 107 00:05:50,870 --> 00:05:59,590 >> Si mwen kouri ASCIIMath 5, li sanble yo ajoute 5 nan yon, bay m 'f a lèt, ak 108 00:05:59,590 --> 00:06:01,260 montre valè a ASCII. 109 00:06:01,260 --> 00:06:04,090 Se konsa, kite a pran yon gade nan pwogram nan. 110 00:06:04,090 --> 00:06:11,820 >> Ou ta ka mande, dwa isit la, poukisa lèt se yon nonb antye, lè li nan 111 00:06:11,820 --> 00:06:14,330 byen klè, byen, yon lèt. 112 00:06:14,330 --> 00:06:17,690 Li sanble ke karaktè ak nonm antye yo ka ranplase. 113 00:06:17,690 --> 00:06:21,730 Pa mete lèt la A nan sèl giymè, nonb antye ki pè a ka magazen 114 00:06:21,730 --> 00:06:25,390 valè a ASCII nan kapital A. Fè atansyon, menm si. 115 00:06:25,390 --> 00:06:27,150 Ou bezwen rad yo sèl. 116 00:06:27,150 --> 00:06:31,260 San yo pa mak yo quote yon sèl, nan du ta gade pou yon varyab 117 00:06:31,260 --> 00:06:35,510 yo te rele A, epi yo pa pèsonaj la. 118 00:06:35,510 --> 00:06:42,140 >> Apre sa, mwen ajoute lèt ak kle yon, sere nan sòm nan rezilta a Int varyab. 119 00:06:42,140 --> 00:06:47,740 Menm si rezilta a se nan kalite done nonb antye ki pè, deklarasyon printf mwen sèvi ak nan 120 00:06:47,740 --> 00:06:50,370 % C kontneur pou karaktè. 121 00:06:50,370 --> 00:06:54,530 Se konsa, pwogram nan simagri pèsonaj la ki asosye ak rezilta a nonb antye ki pè. 122 00:06:54,530 --> 00:07:00,400 Men, depi nou enprime nonb antye ki pè a fòm kòm byen lè l sèvi avèk d%, nou wè 123 00:07:00,400 --> 00:07:02,110 nimewo a tou. 124 00:07:02,110 --> 00:07:04,450 Se konsa, kounye a ou ka wè ke nou trete karaktè ak 125 00:07:04,450 --> 00:07:06,980 nonm antye yo, ak vis vèrsa. 126 00:07:06,980 --> 00:07:12,205 >> Ann tès soti ASCIIMath yon kèk fwa plis lè l sèvi avèk 25 kòm yon kle. 127 00:07:12,205 --> 00:07:15,510 128 00:07:15,510 --> 00:07:17,090 Nou jwenn z la lèt. 129 00:07:17,090 --> 00:07:19,750 Koulye a, nou eseye 26. 130 00:07:19,750 --> 00:07:25,600 Nou vle jwenn lèt la yon, men olye pou nou jwenn yon bracket bò gòch. 131 00:07:25,600 --> 00:07:29,490 Se konsa, evidamman, jis ajoute a kle nan lèt la pa pral fè. 132 00:07:29,490 --> 00:07:32,780 Nou bezwen konnen yon fòmil vlope alantou alfabè a, renmen nou an 133 00:07:32,780 --> 00:07:34,570 egzanp depi nan konmansman an te fè sa. 134 00:07:34,570 --> 00:07:38,520 >> Yon fòmil pou la nan Seza tande kòz chanjman se jan sa a. 135 00:07:38,520 --> 00:07:42,750 c egal p plis k modulo 26. 136 00:07:42,750 --> 00:07:46,040 Sonje ke modulo se yon itil operasyon ki ba nou rès la 137 00:07:46,040 --> 00:07:49,880 nan divize yon sèl nimewo pa lòt la. 138 00:07:49,880 --> 00:07:54,870 Se pou yo aplike sa a fòmil plenn lan lèt tèks ak yon kle nan 2. 139 00:07:54,870 --> 00:08:01,810 Valè a ASCII y la se 89, ki ba nou 91 modulo 26, 140 00:08:01,810 --> 00:08:03,690 ki egal 13 - 141 00:08:03,690 --> 00:08:08,740 definitivman pa valè a ASCII nan yon, ki se 67. 142 00:08:08,740 --> 00:08:12,810 >> Imè m 'koulye a ak avanse pou pi lwen nan Valè ASCII nan yon endèks alfabetik 143 00:08:12,810 --> 00:08:18,690 kote A se zewo ak Z se 25, sa vle di Y se 24. 144 00:08:18,690 --> 00:08:25,830 24, 2 plis modulo 6, ba nou 26, 26 modulo, 0, ki se nan 145 00:08:25,830 --> 00:08:28,170 alfabetik endèks nan yon. 146 00:08:28,170 --> 00:08:32,980 Se konsa, sa a fòmil sanble pou aplike pou la alfabetik endèks nan lèt la ak 147 00:08:32,980 --> 00:08:34,960 pa valè ASCII li yo. 148 00:08:34,960 --> 00:08:37,630 >> Men, ou kòmanse ak valè ASCII. 149 00:08:37,630 --> 00:08:41,650 Men, ekri ak lèt ​​detache pèsonaj la chifre, ou pral bezwen valè ASCII li yo tou. 150 00:08:41,650 --> 00:08:46,400 Li a jiska ou, Lè sa a, figi konnen ki jan yo chanje retounen ak lide. 151 00:08:46,400 --> 00:08:49,850 >> Yon fwa ou konnen fòmil la dwa pou yon karaktè yo, tout sa ou bezwen fè 152 00:08:49,850 --> 00:08:53,520 se aplike fòmil la menm chak lèt nan tèks la plenn - 153 00:08:53,520 --> 00:08:57,720 sèlman si lèt sa a se alfabetik, nan kou. 154 00:08:57,720 --> 00:09:02,360 Epi sonje ke ou bezwen prezève ka a, anwo oswa pi ba, ki nan kote 155 00:09:02,360 --> 00:09:06,890 isUpper la ak fonksyon isLower mansyone pi bonè ap vini an sou la men. 156 00:09:06,890 --> 00:09:08,830 Ou ta ka gen de fòmil - 157 00:09:08,830 --> 00:09:11,680 yonn pou lèt majuskul ak yonn pou miniskil. 158 00:09:11,680 --> 00:09:18,420 Se konsa, isUpper yon isLower pral ede w detèmine ki fòmil pou aplike pou. 159 00:09:18,420 --> 00:09:22,460 >> Ki jan ou fè aplike fòmil ou a chak yon sèl karaktè nan yon fisèl? 160 00:09:22,460 --> 00:09:25,910 Oke, yon kòd se jis yon etalaj de karaktè. 161 00:09:25,910 --> 00:09:31,150 Se konsa, ou kapab jwenn aksè chak karaktè pa gwoupman sou tout karaktè nan la 162 00:09:31,150 --> 00:09:33,450 fisèl nan yon pou bouk. 163 00:09:33,450 --> 00:09:37,550 Kòm pou kondisyon an nan ou pou bouk, fonksyon an strlèn, pou fisèl 164 00:09:37,550 --> 00:09:39,280 longè, ap vini an sou la men. 165 00:09:39,280 --> 00:09:44,020 Li pran nan yon fisèl kòm opinyon ak retounen longè a nan ki fil. 166 00:09:44,020 --> 00:09:49,250 Asire w ke w gen ladan bibliyotèk la dwa yo sèvi ak fonksyon an longè fil. 167 00:09:49,250 --> 00:09:51,790 >> Apre sa, ou gen chifre ou. 168 00:09:51,790 --> 00:09:53,260 Non mwen se Zamyla la. 169 00:09:53,260 --> 00:09:54,510 Men, [PALE KÒD]. 170 00:09:54,510 --> 00:10:02,944