1 00:00:00,000 --> 00:00:11,960 2 00:00:11,960 --> 00:00:13,750 >> ROB BOWDEN: Hi, Im 'Rob. 3 00:00:13,750 --> 00:00:17,360 A phan yn Rhufain, gadewch i raglen gan fod y Rhufeiniaid yn ei wneud. 4 00:00:17,360 --> 00:00:22,280 Felly, y peth cyntaf mae angen i ni ei wneud yw gwirio i sicrhau bod y defnyddiwr gofnodi mewn gwirionedd 5 00:00:22,280 --> 00:00:26,670 nifer yr ydym am i gylchdroi bob cymeriad gan o 'r archa bannod. 6 00:00:26,670 --> 00:00:27,740 >> Felly, byddwn yn gwirio. 7 00:00:27,740 --> 00:00:30,180 A yw argc gyfartal i 2? 8 00:00:30,180 --> 00:00:34,190 Os nad yw'n, mae hynny'n golygu y defnyddiwr naill ai Nid oedd mynd i mewn i'r rhif ar y 9 00:00:34,190 --> 00:00:37,770 llinell orchymyn neu a gofnodwyd ganddynt ormod o pethau ar y llinell orchymyn, lle 10 00:00:37,770 --> 00:00:40,560 achos hwn nid ydym yn gwybod beth i'w wneud gyda gweddill y pethau. 11 00:00:40,560 --> 00:00:45,750 Felly, cyn belled â bod argc oedd dau, gallwn barhau â gweddill y rhaglen. 12 00:00:45,750 --> 00:00:49,610 >> Nawr, cofiwch fod argv 1 yn llinyn bob amser. 13 00:00:49,610 --> 00:00:52,490 Ond rydym am ei drin fel cyfanrif. 14 00:00:52,490 --> 00:00:57,550 Felly, rydym yn defnyddio'r swyddogaeth atoi sy'n spec p set grybwyllwyd i drosi'r 15 00:00:57,550 --> 00:01:02,330 argv llinyn 1 i cyfanrif, ac rydym yn cadw hynny mewn allweddol. 16 00:01:02,330 --> 00:01:06,050 Rydym eisiau gwneud yn siŵr bod y cyfanrif na chafodd ei gofnodi yn negyddol. 17 00:01:06,050 --> 00:01:09,490 Ac os oedd, rydym am i print that i y defnyddiwr nad ydynt yn chaniateir 18 00:01:09,490 --> 00:01:11,980 i wneud hynny, a dychwelyd. 19 00:01:11,980 --> 00:01:15,100 >> Felly, erbyn hyn mae gennym dilys nifer o'r defnyddwyr. 20 00:01:15,100 --> 00:01:19,780 Ond mae angen i ni gael llinyn gan y defnyddiwr yr ydym am i amgryptio. 21 00:01:19,780 --> 00:01:25,340 Felly, rydym yn arfer ei wneud-tra dolen a defnyddio chael llinyn i gael llinyn hwn gan y 22 00:01:25,340 --> 00:01:29,190 defnyddiwr, ac yn parhau i gael llinyn nes eu bod mewn gwirionedd yn 23 00:01:29,190 --> 00:01:31,270 fynd i mewn i llinyn dilys. 24 00:01:31,270 --> 00:01:34,400 >> Unwaith y byddwn yn cael y llinyn, rydym yn yn gallu mynd ymlaen i amgryptio iddo. 25 00:01:34,400 --> 00:01:38,120 Felly, mae hyn yn ar gyfer dolen yn ei wneud y amgryptio. 26 00:01:38,120 --> 00:01:43,250 Sylwch ein bod yn bwysleisio'r o i yn hafal i 0 t yr holl ffordd i fyny at i gydradd 27 00:01:43,250 --> 00:01:47,790 n, lle mae n cael ei ddiffinio fel hyd ein neges, lle mae'r neges yn y 28 00:01:47,790 --> 00:01:50,260 llinyn bod y defnyddiwr gofnodi. 29 00:01:50,260 --> 00:01:54,330 >> Felly, rydym yn bwysleisio'r dros yr holl gymeriadau yn y llinyn. 30 00:01:54,330 --> 00:01:59,740 Ac os yw cymeriad yn priflythyren, yna rydym yn mynd i newid gan ddefnyddio hyn 31 00:01:59,740 --> 00:02:01,860 fformiwla, yr ydym yn annhymerus ' cyrraedd mewn eiliad. 32 00:02:01,860 --> 00:02:05,260 Ac os oedd yn llythrennau bach, yna byddwn yn symud gan ddefnyddio hyn yn 33 00:02:05,260 --> 00:02:07,290 fformiwla debyg iawn. 34 00:02:07,290 --> 00:02:10,850 Ac os oedd nid yn priflythyren nac lythyr llythrennau bach - er enghraifft, 35 00:02:10,850 --> 00:02:15,370 Gallai fod yn rhif neu symbol - yna rydym yn nad ydynt yn mynd i wneud unrhyw beth iddo. 36 00:02:15,370 --> 00:02:18,220 >> Felly, beth yw'r fformiwlâu hyn? 37 00:02:18,220 --> 00:02:22,090 Wel, sut yr ydym yn symud y cymeriad A? 38 00:02:22,090 --> 00:02:27,250 Rydym yn awyddus i drin y cymeriad A fel y nifer 0. 39 00:02:27,250 --> 00:02:30,710 Ac rydym am i drin y cymeriad B gan fod y rhif 1, ac yn y blaen. 40 00:02:30,710 --> 00:02:35,170 Mae'n y 0 ac yn gyntaf cymeriadau o'r wyddor ac yn y blaen. 41 00:02:35,170 --> 00:02:42,900 >> Felly dyma, neges i minws A i fod i roi lle rhifol y ni 42 00:02:42,900 --> 00:02:44,400 llythyr yn y wyddor. 43 00:02:44,400 --> 00:02:48,080 Felly, os neges i yw A, mae hyn yn mynd i roi i ni 0. 44 00:02:48,080 --> 00:02:52,880 Nawr, rydym am ychwanegu at hynny y rhif y mae'r defnyddiwr eisiau 45 00:02:52,880 --> 00:02:54,840 cylchdroi y llythyr gan. 46 00:02:54,840 --> 00:03:03,280 Felly, os ydynt yn mynd i 3, yna os neges fi oedd A, bydd hyn yn rhoi i ni 0 a yn ogystal â 47 00:03:03,280 --> 00:03:05,400 Bydd yn rhoi i ni allweddol 3. 48 00:03:05,400 --> 00:03:09,450 >> Felly nawr, rydym yn ystyried y trydydd safle yn yr wyddor. 49 00:03:09,450 --> 00:03:12,810 Byddwn yn gweld pam fod angen i mod gan lythyrau NUM mewn eiliad. 50 00:03:12,810 --> 00:03:18,700 Ond o'r diwedd, rydym yn awyddus i ychwanegu at y yn dod i ben Mae eto i symud â ni yn ôl i mewn i'r 51 00:03:18,700 --> 00:03:22,020 Gwerthoedd ASCII ar gyfer cymeriadau hyn yn hytrach na'r llefydd rhifiadol yn y 52 00:03:22,020 --> 00:03:24,260 wyddor nodau hyn. 53 00:03:24,260 --> 00:03:26,580 >> Felly, pam yr ydym yn mod gan lythrennau NUM? 54 00:03:26,580 --> 00:03:29,960 Cofiwch ein bod am i lapio o amgylch o ddiwedd y wyddor i'r 55 00:03:29,960 --> 00:03:31,470 ddechrau'r wyddor. 56 00:03:31,470 --> 00:03:38,530 Felly Z os bydd y defnyddiwr wedi mynd i mewn, yna thynnu A o hynny yn mynd i 57 00:03:38,530 --> 00:03:40,520 rhoi i ni 25. 58 00:03:40,520 --> 00:03:44,800 Ac os bydd y allweddol oedd 3, yna rydym yn mynd i gael 28. 59 00:03:44,800 --> 00:03:53,000 Ond dylai Z lapio o gwmpas i ABC, felly 28 llythyrau NUM mod, sy'n cael ei hash ddiffinnir 60 00:03:53,000 --> 00:04:01,890 fel 26 i gael eu disgwyl, yn mynd i roi ni 2, lle C yw'r ail lythyr o 61 00:04:01,890 --> 00:04:05,880 yr wyddor, os ydych yn cofio nad yw A yn y llythyr 0 wyddor. 62 00:04:05,880 --> 00:04:09,210 >> Felly dyna pam mae angen i mod llythyrau NUM. 63 00:04:09,210 --> 00:04:13,540 Yn awr, mae angen i ni wneud yr un peth yn union beth ar gyfer llythyrau llythrennau bach, ac eithrio 64 00:04:13,540 --> 00:04:17,240 cofio bod pan fyddwn yn delio â llythrennau bach, maent yn wahanol 65 00:04:17,240 --> 00:04:18,579 Gwerthoedd ASCII. 66 00:04:18,579 --> 00:04:24,550 Ac felly mae angen i ni dynnu ac ychwanegu ar i symud i lawr oddi wrth y llythrennau bach 67 00:04:24,550 --> 00:04:30,020 Gwerthoedd ASCII ac yna yn ôl i'r gwerthoedd ASCII lythrennau bach gwreiddiol. 68 00:04:30,020 --> 00:04:33,140 >> Ac yn olaf, bydd hynny'n ei roi i ni ein neges wedi ei hamgryptio. 69 00:04:33,140 --> 00:04:37,780 Ac yn y diwedd, rydym yn unig argraffu neges honno, a dyna ni. 70 00:04:37,780 --> 00:04:39,875 Fy enw i yw Rob, ac roedd Cesar. 71 00:04:39,875 --> 00:04:49,856