1 00:00:00,000 --> 00:00:09,250 2 00:00:09,250 --> 00:00:11,070 >> ZAMYLA Chan: Dewch i neidio i mewn i Mario. 3 00:00:11,070 --> 00:00:14,850 Mario yn rhaglen lle byddwn yn gwneud ein eu hunain, er cyntefig, fersiwn 4 00:00:14,850 --> 00:00:17,760 a Mario Super Brothers clasurol cefndir gêm. 5 00:00:17,760 --> 00:00:21,100 Ar gyfer y broblem hon set, rydym yn mynd i ail-greu'r hanner-pyramid ar gyfer 6 00:00:21,100 --> 00:00:23,000 Mario neidio ar. 7 00:00:23,000 --> 00:00:27,330 Bydd ein rhaglen yn rhyngweithiol, felly mae'n yn gofyn i'r defnyddiwr i fewnbynnu benodol 8 00:00:27,330 --> 00:00:28,660 uchder ar gyfer y pyramid. 9 00:00:28,660 --> 00:00:32,920 A bydd y rhaglen argraffu hanner-pyramid yr uchder, lle mae'r 10 00:00:32,920 --> 00:00:37,390 gwaelod chwith hash cyd-fynd â gwaelod cornel chwith y derfynell 11 00:00:37,390 --> 00:00:39,710 ffenestr allbwn. 12 00:00:39,710 --> 00:00:44,870 >> Gadewch i dorri y broblem hon yn ddwy ran, un, yn cael mewnbwn defnyddwyr, a dau, 13 00:00:44,870 --> 00:00:47,040 argraffwch y pyramid. 14 00:00:47,040 --> 00:00:51,150 Cofiwch, er bod y swyddogaeth GetInt yn adfer yn gyfanrif, rydych 15 00:00:51,150 --> 00:00:56,260 rhaid i ni wneud yn siwr bod y mewnbwn hwn yn gwneud synnwyr ar gyfer eich rhaglen, felly yn 16 00:00:56,260 --> 00:00:59,690 Mario, ni fydd yn gwneud dim ond cynnyrch ar gyfer cyfanrif. 17 00:00:59,690 --> 00:01:03,440 Bydd angen i chi wneud yn siŵr bod y defnyddiwr mewnbynnau cyfanrif dyna o fewn y 18 00:01:03,440 --> 00:01:06,985 arffiniau isaf ac uchaf y pyramid y gallwch ei hargraffu. 19 00:01:06,985 --> 00:01:12,300 Fesul spec hwn, mae hyn yn 0 a 23 yn gynhwysol. 20 00:01:12,300 --> 00:01:16,410 Os mewnbynnau y defnyddiwr yn gyfanrif y tu allan i ein terfynau derbyniol, yna rydym am 21 00:01:16,410 --> 00:01:20,840 i ysgogi nhw eto ac eto nes maent yn rhoi cyfanrif dilys i ni. 22 00:01:20,840 --> 00:01:25,990 >> Un ffordd o sicrhau mewnbwn defnyddwyr cywir drwy ddefnyddio dolen Do-Er, sy'n 23 00:01:25,990 --> 00:01:28,100 debyg iawn i ddolen Er. 24 00:01:28,100 --> 00:01:32,580 Mae'r Do-Er ddolen executes y cod y tu mewn i'r corff unwaith, ac wedyn gwiriadau 25 00:01:32,580 --> 00:01:35,270 a yw'r amod yn cael ei fodloni ai peidio. 26 00:01:35,270 --> 00:01:38,830 Mae hyn yn ddefnyddiol ar gyfer cael mewnbwn defnyddwyr oherwydd eich bod yn gwybod bod angen i chi 27 00:01:38,830 --> 00:01:41,805 i'w hannog o leiaf unwaith. 28 00:01:41,805 --> 00:01:45,940 Os nad yw'r amod yn cael ei fodloni, y rhaglen , yn gweithredu y llinell ar ôl 29 00:01:45,940 --> 00:01:47,270 eich Do-Er y ddolen. 30 00:01:47,270 --> 00:01:50,950 Os yw'r amod yn cael ei fodloni, fodd bynnag, Bydd y ddolen ailadrodd. 31 00:01:50,950 --> 00:01:55,560 >> Mae dolen Do-Tra ar gyfer dilysu defnyddwyr bydd mewnbwn edrych rhywbeth fel hyn. 32 00:01:55,560 --> 00:02:02,920 Yr wyf yn datgan a n amrywiol, GetInt, ac ailadrodd nes n yn ddilys. 33 00:02:02,920 --> 00:02:06,270 Cofiwch, pan fyddwch yn datgan eich amrywiol, mae angen y lle priodol 34 00:02:06,270 --> 00:02:08,449 cwmpas, yn union fel yn Scratch. 35 00:02:08,449 --> 00:02:12,510 Os wyf yn datgan n y tu mewn fy Do-Er ddolen, Ni fydd gweddill y rhaglen fydd 36 00:02:12,510 --> 00:02:13,750 gallu cael mynediad iddo. 37 00:02:13,750 --> 00:02:16,100 Mae'n gyfyngedig i'r cyfyngiadau o'r braces cyrliog. 38 00:02:16,100 --> 00:02:19,010 39 00:02:19,010 --> 00:02:23,090 >> Mae pob hawl, felly nawr ein bod ni wedi dilysu fewnbwn y defnyddiwr, mae angen i ni mewn gwirionedd 40 00:02:23,090 --> 00:02:25,020 tynnu yr hanner-pyramid. 41 00:02:25,020 --> 00:02:29,700 Mae'n cynnwys gymeriadau hargraffu, felly gadewch i ni wneud hanner-pyramid yn syml 42 00:02:29,700 --> 00:02:31,480 golygydd testun. 43 00:02:31,480 --> 00:02:35,920 Os ydym am wneud pyramid arddull Mario o uchder tri sy'n cael ei halinio 44 00:02:35,920 --> 00:02:41,370 ar yr ochr chwith ein ffenestr, yna byddem yn teipio dau hashes, cliciwch Mewnbynnu, 45 00:02:41,370 --> 00:02:47,180 yna teipiwch tri hashes, cliciwch Fynd i mewn, ac yna teipiwch pedwar. 46 00:02:47,180 --> 00:02:51,090 >> Ond yn y broblem hon set, mae ein hanner-pyramid gael ei alinio i'r dde. 47 00:02:51,090 --> 00:02:55,550 Gan ddefnyddio bysellfwrdd safonol, sut y gallai chi addasu y ffeil i symud hashes 48 00:02:55,550 --> 00:02:57,210 drosodd i'r ochr dde? 49 00:02:57,210 --> 00:03:03,190 Efallai y byddwn yn eu defnyddio i tanlinellu, dau ar y rhes uchaf ac un ar yr ail. 50 00:03:03,190 --> 00:03:07,690 Nid yw hynny'n edrych mor neis, fodd bynnag, felly gadewch i ni yn lle'r tanlinellu gyda 51 00:03:07,690 --> 00:03:12,450 mannau, ac mae gennym hanner-pyramid o uchder tri. 52 00:03:12,450 --> 00:03:16,330 >> Ceisiwch gofio hyn golygydd testun enghraifft wrth i chi ddechrau meddwl yn ôl i 53 00:03:16,330 --> 00:03:20,100 C. Gadewch i ni geisio a chyfrif i maes rhai math o batrwm y gallwn 54 00:03:20,100 --> 00:03:22,750 rhoi mewn lluniad ddolen. 55 00:03:22,750 --> 00:03:27,570 Cymerwch uchder enghraifft, yn dweud wyth, a gweld os allwch chi ddechrau 56 00:03:27,570 --> 00:03:29,470 dod o hyd i batrwm. 57 00:03:29,470 --> 00:03:34,710 Bydd y rhes gyntaf wedi saith man ac yna dau hashes. 58 00:03:34,710 --> 00:03:40,090 Bydd yr ail reng wedi chwe lle a tri hashes, ac yn y blaen hyd nes y 59 00:03:40,090 --> 00:03:41,440 wythfed rhes. 60 00:03:41,440 --> 00:03:45,210 >> Ond sut ydych byddech yn cynrychioli y rhes nfed? 61 00:03:45,210 --> 00:03:48,170 Cofiwch fod confensiwn rhaglennu mynegeio yw sero. 62 00:03:48,170 --> 00:03:51,870 Mae hynny'n golygu eich bod yn dechrau cyfrif yn sero, felly mae'r rhes gyntaf yn dechnegol 63 00:03:51,870 --> 00:03:57,110 Rhif y rhes sero gyda dau hatches, rhes rhif un Mae tair hashes, rhes 64 00:03:57,110 --> 00:04:01,860 rhif dau bedair hashes, hynny yn dilyn patrwm hwn ar gyfer unrhyw res 65 00:04:01,860 --> 00:04:05,800 rhif n, mae n plws 2 hashes. 66 00:04:05,800 --> 00:04:09,270 'N annhymerus' yn gadael i chi, fodd bynnag, i ddod o hyd y patrwm ar gyfer y lleoedd gwag. 67 00:04:09,270 --> 00:04:12,240 Cofiwch y bydd eich patrwm yn ychydig yn wahanol os ydych yn dewis 68 00:04:12,240 --> 00:04:16,649 ddechrau eich cyfrif o un ac nid yn sero. 69 00:04:16,649 --> 00:04:19,560 >> Yn awr, mae gennych patrwm ar gyfer unrhyw n rhes haniaethol. 70 00:04:19,560 --> 00:04:25,190 Rydych yn gwybod faint o fannau i argraffu a faint o hashes, felly ar gyfer pob rhes, fel y 71 00:04:25,190 --> 00:04:26,270 bydd y nifer yn newid. 72 00:04:26,270 --> 00:04:30,700 Ond mae'r un broses o argraffu cymeriad unigol, naill ai le neu 73 00:04:30,700 --> 00:04:33,200 hash, yn cael ei ailadrodd. 74 00:04:33,200 --> 00:04:37,470 Felly, rhaid i chi ei wneud yw dro ar ôl tro argraffu cymeriad hwnnw am gymaint o weithiau 75 00:04:37,470 --> 00:04:40,120 fel eich patrwm penderfynu. 76 00:04:40,120 --> 00:04:42,522 >> Felly, sut rydym yn ailadrodd prosesau? 77 00:04:42,522 --> 00:04:45,160 Yn Scratch, defnyddiwyd y bloc ailadrodd. 78 00:04:45,160 --> 00:04:48,580 Yn C, byddwn yn defnyddio a Ar gyfer dolen. 79 00:04:48,580 --> 00:04:51,290 Gadewch i ni edrych ar y gystrawen am I dolenni. 80 00:04:51,290 --> 00:04:57,140 >> Ar gyfer pob dolen yn cynnwys tri ran, initialization, cyflwr, 81 00:04:57,140 --> 00:04:58,592 a diweddariad. 82 00:04:58,592 --> 00:05:01,550 Bydd eich dolen ar gyfer ymgychwyn newidyn pan fydd gyntaf 83 00:05:01,550 --> 00:05:02,960 Ar gyfer mynd i mewn i'r ddolen. 84 00:05:02,960 --> 00:05:07,100 Os yw'r amod yn cael ei fodloni, y corff Bydd y ddolen gweithredu. 85 00:05:07,100 --> 00:05:10,070 Wedyn, bydd y diweddariad gweithredu. 86 00:05:10,070 --> 00:05:13,630 >> Os yw'r amod yn cael ei fodloni o hyd, mae'r Bydd dolen gweithredu a diweddaru a 87 00:05:13,630 --> 00:05:18,580 ailadrodd yr amod bod eich cyflwr gwerthuso i Gwir. 88 00:05:18,580 --> 00:05:21,450 Rydych yn rhaid i gyflwr valuate yn y pen draw i Anghywir, fodd bynnag, oherwydd 89 00:05:21,450 --> 00:05:24,490 yn wahanol i Scratch, nid ydym yn ei wneud gennych unrhyw dolenni Forever. 90 00:05:24,490 --> 00:05:28,270 Mae'n rhaid i'ch rhaglen orffen yn y pen draw. 91 00:05:28,270 --> 00:05:32,330 >> Dyma enghraifft o Ar gyfer dolen y efallai y byddwch am ddefnyddio ar gyfer Mario. 92 00:05:32,330 --> 00:05:36,790 Y initialization datgan mae i cyfanrif gyda gwerth 0. 93 00:05:36,790 --> 00:05:40,750 Cyn belled fel fi yn llai na'r uchder, bydd y corff y ddolen weithredu a 94 00:05:40,750 --> 00:05:44,980 cynyddu i gan un ac yn ailadrodd nes i yn fwy na neu'n 95 00:05:44,980 --> 00:05:47,220 hafal i uchder. 96 00:05:47,220 --> 00:05:49,140 >> Yn awr, fy Er ddolen yn sero mynegai. 97 00:05:49,140 --> 00:05:52,270 Mae'r Int i cychwyn ar sero, nid yw un. 98 00:05:52,270 --> 00:05:55,320 Os byddaf yn dewis un, yna byddai fy nghyflwr hefyd fod yn wahanol ar gyfer 99 00:05:55,320 --> 00:05:58,740 y ddolen i gyflawni'r un nifer o weithiau. 100 00:05:58,740 --> 00:06:03,490 Cofiwch hyn yn ofalus pan fyddwch yn dewis eich initialization a'ch 101 00:06:03,490 --> 00:06:08,660 cyflwr, ac ymgynghori hyn siart i ddyblu siec. 102 00:06:08,660 --> 00:06:13,430 >> Un o'r pethau gwych am gyfrifiadur gwyddoniaeth yw bod yna dim ond cymaint o 103 00:06:13,430 --> 00:06:15,490 ffyrdd o gyflawni pethau. 104 00:06:15,490 --> 00:06:19,450 Gallwch ddewis a ydych dechrau ar sero neu un. 105 00:06:19,450 --> 00:06:22,380 Os nad ydych am ddefnyddio a Ar gyfer dolen, gallwch hefyd ddefnyddio dolen Er i 106 00:06:22,380 --> 00:06:26,530 datganiadau ailadrodd cyn belled ag y byddwch yn cadw hanfod a Ar gyfer dolen, 107 00:06:26,530 --> 00:06:31,430 initialization, cyflwr, a diweddaru. 108 00:06:31,430 --> 00:06:36,890 Unwaith y byddwn yn chyfrif i maes y ddolen sydd ar gyfer rydym yn fwyaf cyfforddus ag ef, yna rydym yn 109 00:06:36,890 --> 00:06:38,450 gallu cwblhau Mario. 110 00:06:38,450 --> 00:06:41,540 >> Rydym yn gwirio gyntaf ar gyfer mewnbwn defnyddwyr ac yna nodi 111 00:06:41,540 --> 00:06:43,580 patrwm ar gyfer unrhyw n olynol. 112 00:06:43,580 --> 00:06:49,990 Felly, ar gyfer pob rhes o sero i n minws 1 Bydd argraffwch y nifer priodol o 113 00:06:49,990 --> 00:06:55,340 mannau, yna bydd y nifer priodol o hashes yn ôl ein patrwm, a 114 00:06:55,340 --> 00:06:57,180 Yna llinell newydd. 115 00:06:57,180 --> 00:06:59,640 Gyda hynny, mae gennych eich pyramid. 116 00:06:59,640 --> 00:07:02,630 Fy enw i yw Zamyla, ac roedd hyn yn Mario. 117 00:07:02,630 --> 00:07:11,765