1 00:00:00,000 --> 00:00:13,010 2 00:00:13,010 --> 00:00:18,290 >> Rob Bowden: Hi, unë jam Rob, dhe le të hidhen në edicionin e hacker e Mario. 3 00:00:18,290 --> 00:00:21,760 Pra, gjëja e parë që ne duhet të bëni është të të marrë lartësinë nga përdoruesit. 4 00:00:21,760 --> 00:00:26,290 Këtu ne jemi duke i pyetur ata për një integer jo-negative më pak se 24 dhe 5 00:00:26,290 --> 00:00:31,710 ne jemi duke përdorur funksionin CS50 GetInt për të rrëmbyer atë numër të plotë nga ana e përdoruesit. 6 00:00:31,710 --> 00:00:35,260 Ne e shohim ne jemi brenda një lak për ta bërë, ndërsa se do të vazhdojë looping për aq kohë sa 7 00:00:35,260 --> 00:00:38,400 lartësi është më e madhe se 23 ose më pak se 0. 8 00:00:38,400 --> 00:00:42,850 Dhe kështu që ne do të vazhdojmë deri në përdoruesit në fakt na jep atë që duam. 9 00:00:42,850 --> 00:00:46,960 >> Pasi të kemi këtë lartësi, ne kemi marrë për kryesor për lak e programit tonë. 10 00:00:46,960 --> 00:00:49,510 Vështrim të parë kështu që le të në një shembull nga spec pset. 11 00:00:49,510 --> 00:00:52,270 12 00:00:52,270 --> 00:00:56,940 Ne e shohim në këtë shembull se kur të hyjë në një lartësi prej 4, rreshtin e poshtëm 13 00:00:56,940 --> 00:01:01,520 së pari shtyp katër hashes, dy hapësirat, dhe katër më shumë hashes. 14 00:01:01,520 --> 00:01:06,280 >> Pastaj një rresht më lart që shtyp një të tillë hapësirë ​​tre hashes, dy hapësira të 15 00:01:06,280 --> 00:01:09,690 ndarë piramidat, dhe pastaj tre më hashes. 16 00:01:09,690 --> 00:01:13,460 Dhe më lart se, dy hapësira, dy hashes, dy hapësira, dy hashes. 17 00:01:13,460 --> 00:01:18,090 Dhe së fundi, tre hapësira e hash, dy hapësirat e hash. 18 00:01:18,090 --> 00:01:20,980 Kështu që ju duhet të fillojë në njoftim model këtu. 19 00:01:20,980 --> 00:01:22,545 >> Le të shikojmë në kodin për mënyrën se si ne jemi duke shkuar për të bërë këtë. 20 00:01:22,545 --> 00:01:25,290 21 00:01:25,290 --> 00:01:28,840 Ne shohim këtu se ne jemi iterating mbi të gjitha rreshtat e piramidës. 22 00:01:28,840 --> 00:01:31,720 Së pari ne duam të llogaritur Numri i hapësirave. 23 00:01:31,720 --> 00:01:34,690 Dhe mos harroni se ne duhet të fillojë në maja e piramidës dhe të punojnë tonë 24 00:01:34,690 --> 00:01:37,790 Mënyra më poshtë që ne nuk mund të shtypura fund pastaj një rresht dhe 25 00:01:37,790 --> 00:01:39,140 pastaj një rresht up. 26 00:01:39,140 --> 00:01:44,030 Pra, në krye të piramidës, njoftimin se numri i hapësirave është e barabartë tek 27 00:01:44,030 --> 00:01:45,720 lartësi minus 1. 28 00:01:45,720 --> 00:01:50,120 Ne jemi duke shkuar për të shkruar tri hapësira pastaj një hash dhe pastaj dy hapësira të 29 00:01:50,120 --> 00:01:53,350 veçantë dhe një tjetër hash. 30 00:01:53,350 --> 00:01:57,320 >> Kështu hapësira është e barabartë tek rresht minus lartësi. 31 00:01:57,320 --> 00:02:03,180 Nëse rresht është 1 dhe lartësia tonë është 4, që do të na japin 3 hapësira, si ne duam. 32 00:02:03,180 --> 00:02:06,900 Atëherë kjo për loop vetëm shtyp se numri i hapësirave. 33 00:02:06,900 --> 00:02:12,630 Nëse hapësira është tre, atëherë ne do të të krijuar një hapësirë ​​të vetme tri herë. 34 00:02:12,630 --> 00:02:18,750 >> Duke vazhduar, tani ne duam të shtypura hashes e piramide majtë, e cila është 35 00:02:18,750 --> 00:02:20,630 vetëm të barabartë me numrin rresht. 36 00:02:20,630 --> 00:02:23,250 Duke kthyer këtu, në radhë një, kemi shkruar një hash. 37 00:02:23,250 --> 00:02:25,960 Në rradhë dy kemi shkruar dy, në rresht tre kemi shkruar tre. 38 00:02:25,960 --> 00:02:30,440 Pra, ne thjesht lak herë rresht shtypjen hash simbol. 39 00:02:30,440 --> 00:02:34,830 Pastaj për të gjitha rreshtave të piramidës, ne shtypura pikërisht dy hapësira të veçanta 40 00:02:34,830 --> 00:02:36,360 ato piramidat. 41 00:02:36,360 --> 00:02:39,590 >> Dhe së fundi, ne duam të shtypura të drejtë anë e piramide, e cila është 42 00:02:39,590 --> 00:02:42,160 përsëri të njëjtin numër i hashes si në anën e majtë. 43 00:02:42,160 --> 00:02:45,680 Dhe kështu që është e njëjtë e saktë për lak si më lart këtu. 44 00:02:45,680 --> 00:02:49,445 Së fundi, ne kemi nevojë për të krijuar një linjë të re në mënyrë që të lëvizin për në rreshtin e ardhshëm të 45 00:02:49,445 --> 00:02:51,690 piramidale dhe për të vazhduar shtypjen. 46 00:02:51,690 --> 00:02:53,010 Dhe kjo është ajo. 47 00:02:53,010 --> 00:02:54,860 Emri im është Rob dhe kjo ishte Mario. 48 00:02:54,860 --> 00:03:01,718