1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:02,640 ZAMYLA CHAN: Ito ay isang-me, Zamyla. 3 00:00:02,640 --> 00:00:06,950 Ngayon, kami ay pagpunta upang ipatupad Mario, kung saan namin gumuhit Mario 4 00:00:06,950 --> 00:00:10,730 isang buong pyramid para sa kanya upang tumalon sa ibabaw. 5 00:00:10,730 --> 00:00:14,430 ni masira ang Let sub-gawain para sa problemang ito. 6 00:00:14,430 --> 00:00:17,930 >> Una, gusto naming upang i-prompt ang user para sa taas ng pyramid. 7 00:00:17,930 --> 00:00:20,510 At pagkatapos ay nais naming tiyakin na na input ay may-bisa. 8 00:00:20,510 --> 00:00:23,280 At pagkatapos ay kami ay pagpunta sa nais na gumuhit ng pyramid. 9 00:00:23,280 --> 00:00:26,850 >> Kaya sabihin makipag-usap tungkol pagdikta at pagpapatunay user input. 10 00:00:26,850 --> 00:00:29,920 Maaaring magmukhang parang ito, ang isang do-habang loop na 11 00:00:29,920 --> 00:00:33,250 senyales ng gumagamit para sa isang integer at pagkatapos lamang repeats 12 00:00:33,250 --> 00:00:35,700 kung na integer ay hindi wasto. 13 00:00:35,700 --> 00:00:38,220 Kaya ano ang dapat kondisyon na ito ay? 14 00:00:38,220 --> 00:00:40,630 >> Para sa, sabihin bumalik sa mga detalye. 15 00:00:40,630 --> 00:00:46,240 Well, ang spec ay nagsasabi sa amin na ang anumang mga wastong taas ay pagpunta sa maging sa pagitan ng 0 at 23, 16 00:00:46,240 --> 00:00:47,350 inclusive. 17 00:00:47,350 --> 00:00:51,400 Kaya pagkatapos na nangangahulugan na ang anumang di-wasto taas ay pagpunta sa maging mas mababa kaysa sa 0 18 00:00:51,400 --> 00:00:53,840 o higit sa 23. 19 00:00:53,840 --> 00:00:57,220 >> Kaya ngayon na kami ay may impormasyon na ito, sabihin disenyo ng aming kalagayan. 20 00:00:57,220 --> 00:00:59,230 Ngunit kailangan namin upang mag-ingat, dahil ngayon kami ay may 21 00:00:59,230 --> 00:01:02,130 dalawang Booleans na gusto naming suriin. 22 00:01:02,130 --> 00:01:04,150 >> Here I ibinigay na sa iyo may katotohanan table. 23 00:01:04,150 --> 00:01:07,520 Ito ay nagpapahintulot sa amin upang magsagawa ng dalawang Booleans, Boolean isa at dalawa. 24 00:01:07,520 --> 00:01:13,600 At maaari naming pag-aralan mag bool1 at bool2 o bool1 o bool2. 25 00:01:13,600 --> 00:01:17,390 >> Kaya ano ang mga pagkakaiba sa pagitan ng at at o? 26 00:01:17,390 --> 00:01:21,810 Well, bool1 at bool2 habilin suriin sa tunay at kung lamang 27 00:01:21,810 --> 00:01:25,680 kung ang parehong Booleans ay totoo, samantalang ang o operasyon 28 00:01:25,680 --> 00:01:30,190 ay magiging totoo kung alinman sa isa sa ang Booleans o pareho ay totoo. 29 00:01:30,190 --> 00:01:33,110 Kaya sa mga ito sa isip, tingnan kung maaari mong malaman kung 30 00:01:33,110 --> 00:01:37,460 kung ano ang naaangkop na kondisyon para sa iyong gawin-habang loop para sa isang di-wastong n 31 00:01:37,460 --> 00:01:38,850 ay magiging. 32 00:01:38,850 --> 00:01:43,540 >> Gamit na, na-prompt kami at napatunayan ng gumagamit para sa ang taas ng pyramid 33 00:01:43,540 --> 00:01:44,550 na gusto nila. 34 00:01:44,550 --> 00:01:47,740 Kaya ngayon, ikaw ang bahala sa amin upang gumuhit ng pyramid. 35 00:01:47,740 --> 00:01:50,520 Ang buong pyramid para sa mga ito problema ang magiging hitsura nang kaunti 36 00:01:50,520 --> 00:01:56,340 tulad nito, kung saan mayroon kaming isang kaliwa pyramid, ilang puwang, at pagkatapos ay isang karapatan pyramid. 37 00:01:56,340 --> 00:01:58,630 Kaya sabihin break na ito pababa ng kaunti bit. 38 00:01:58,630 --> 00:02:03,510 >> Kung pupunta ako sa aking text editor, dito na ako iguguhit sa amin ng isang kaliwa-hile-hilera pyramid. 39 00:02:03,510 --> 00:02:05,160 Ngunit iyon ay hindi gawin. 40 00:02:05,160 --> 00:02:10,139 Ano ang gusto naming gawin ay gusto naming lumikha ng isang right-nakahanay pyramid muna. 41 00:02:10,139 --> 00:02:13,580 Kaya upang gawin ito, sa makatarungan itulak aking hashes kasama sa gilid, 42 00:02:13,580 --> 00:02:18,240 Tingin lang ako sa pagpunta sa ilagay ang ilang mga character sa pagitan, lamang ang mga tuldok. 43 00:02:18,240 --> 00:02:22,560 Pagkatapos ako pagpunta sa ilagay ang dalawang sa susunod na linya, at isa sa na linya. 44 00:02:22,560 --> 00:02:26,070 At kaya dito mayroon akong isang right-nakahanay pyramid. 45 00:02:26,070 --> 00:02:28,540 >> Pagkatapos nito, ako pagpunta sa bumalik sa tuktok na hilera 46 00:02:28,540 --> 00:02:33,930 at ilagay sa ang puwang, na kung saan ay, bawat ang spec, dalawang mga puwang. 47 00:02:33,930 --> 00:02:37,680 Pagkatapos ay ako pagpunta upang punan ang kabilang bahagi ng pyramid. 48 00:02:37,680 --> 00:02:42,030 Pupunta ako sa pumunta sa pangalawang hilera, isulat dalawang mga puwang para sa mga puwang at pagkatapos ng dalawang 49 00:02:42,030 --> 00:02:42,920 hashes. 50 00:02:42,920 --> 00:02:47,020 Bumalik sa ang ikatlong hanay, dalawang mga puwang para sa mga puwang at tatlong hashes. 51 00:02:47,020 --> 00:02:51,480 At sa dulo, dalawang mga puwang para sa mga puwang at apat hashes. 52 00:02:51,480 --> 00:02:54,400 Kaya na kung ano ang isang buong pyramid ay ang hitsura. 53 00:02:54,400 --> 00:02:57,260 >> Of course, hindi namin nais mga tuldok sa paraan. 54 00:02:57,260 --> 00:03:01,220 Kaya kami ay pagpunta sa palitan ang mga mga tuldok sa pamamagitan ng paglagay ng ilang mga puwang sa. 55 00:03:01,220 --> 00:03:03,720 Isa, dalawa, tatlo sa unang linya. 56 00:03:03,720 --> 00:03:05,650 Isa, dalawa sa ikalawang. 57 00:03:05,650 --> 00:03:08,200 At isa sa ikatlong linya. 58 00:03:08,200 --> 00:03:12,060 Kaya ito ay kung ano ang nais nating gawin kung nais na lamang gumawa ng isang buong pyramid, 59 00:03:12,060 --> 00:03:13,700 sabihin, sa aming text editor. 60 00:03:13,700 --> 00:03:15,860 >> Kaya ipaalam sa tumagal ito, pag-unawa sa mga pattern, 61 00:03:15,860 --> 00:03:19,870 at i-convert ito sa paglipas ng sa ilang pseudocode. 62 00:03:19,870 --> 00:03:24,500 Para sa bawat hilera ng pyramid, nais naming upang i-print sa kaliwa pyramid at pagkatapos ay 63 00:03:24,500 --> 00:03:26,580 ang puwang at pagkatapos ay sa kanang pyramid. 64 00:03:26,580 --> 00:03:30,260 Para sa kaliwang pyramid, i-print namin ang kinakailangang halaga ng mga puwang, 65 00:03:30,260 --> 00:03:31,740 kasunod ang hashes. 66 00:03:31,740 --> 00:03:35,030 Pagkatapos i-print namin ang puwang, na kung saan ay lamang ng dalawang mga puwang sa bawat oras. 67 00:03:35,030 --> 00:03:38,080 At sa tamang pyramid, i-print namin ang kinakailangang bilang ng mga hashes. 68 00:03:38,080 --> 00:03:41,410 >> Para sa ikalawang hilera, na isinasagawa namin ang parehong eksaktong proseso. 69 00:03:41,410 --> 00:03:44,510 I-print namin ang mga puwang para sa kaliwa pyramid, ang kinakailangang halaga 70 00:03:44,510 --> 00:03:49,930 ng hashes, ang puwang, dalawang mga puwang, at pagkatapos ay ang hashes para sa mga karapatan pyramid. 71 00:03:49,930 --> 00:03:52,490 >> ni harapin ang mga pattern Hayaan para sa kaliwa pyramid. 72 00:03:52,490 --> 00:03:55,660 Kung ako ay, para sa mga layunin ng halimbawang ito, isang taas 73 00:03:55,660 --> 00:03:58,790 ng walong hiniling ng user, pagkatapos ay ang aking unang hanay 74 00:03:58,790 --> 00:04:01,020 ay magkakaroon ng isa hash at pitong mga puwang. 75 00:04:01,020 --> 00:04:03,860 Aking ikalawang hanay ay may dalawang hashes, anim na mga puwang. 76 00:04:03,860 --> 00:04:06,749 Ikatlong hanay, ay tatlong hashes, limang mga puwang. 77 00:04:06,749 --> 00:04:09,040 Maaari mong marahil gawin ito ang iyong sarili para sa isang taas ng walong 78 00:04:09,040 --> 00:04:13,470 at matukoy para sa bawat hilera kung gaano karaming hashes at kung gaano karaming mga puwang na kailangan mo. 79 00:04:13,470 --> 00:04:16,209 Ngunit kung ano ang gusto naming gawin ay gusto naming abstract ito. 80 00:04:16,209 --> 00:04:22,660 Kaya hinihiling ko sa iyo para sa anumang nth hilera, kung gaano karaming mga hashes at kung gaano karaming mga puwang ang kailangan natin? 81 00:04:22,660 --> 00:04:25,410 >> Ngayon, tulad ng sa iyo na matukoy ang pattern para sa kung gaano karaming mga hashes 82 00:04:25,410 --> 00:04:29,920 at kung gaano karaming mga puwang na kailangan mo para anumang nth hilera para sa isang naibigay taas, 83 00:04:29,920 --> 00:04:32,910 tandaan na maging maingat ng kung paano ka na-index. 84 00:04:32,910 --> 00:04:37,160 Ano ang ibig sabihin ko sa pamamagitan ng ito ay na sa araw-araw buhay karamihan sa atin magbilangan-isa. 85 00:04:37,160 --> 00:04:39,680 Kaya ang unang hilera ay magiging bilang isa. 86 00:04:39,680 --> 00:04:43,620 At ang ikalawang hanay ay magiging hilera bilang dalawang, iba pa at iba pa. 87 00:04:43,620 --> 00:04:47,620 >> Ngunit sa computer science at CS50, kami ay zero-index. 88 00:04:47,620 --> 00:04:50,750 Kaya namin talagang simulan ang pagbibilang sa zero. 89 00:04:50,750 --> 00:04:54,020 Kaya ang unang hilera ng gagawin maging row number zero. 90 00:04:54,020 --> 00:04:56,640 At ang ikalawang hanay ay magiging hilera bilang isa. 91 00:04:56,640 --> 00:05:02,510 Kaya kung ako ay nagkaroon ng isang taas ng walong para aking pyramid, pagkatapos ay ang huling halaga ng n 92 00:05:02,510 --> 00:05:05,850 ay tunay na maging pitong at hindi walo. 93 00:05:05,850 --> 00:05:07,010 >> Kaya mag-ingat tungkol dito. 94 00:05:07,010 --> 00:05:10,750 At magkaroon ng kamalayan kapag kayo ay pagtukoy ang iyong pattern kung ang iyong zero-index 95 00:05:10,750 --> 00:05:12,360 o isang-index 96 00:05:12,360 --> 00:05:13,070 >> OK. 97 00:05:13,070 --> 00:05:15,380 Kaya ngayon na kami ay may mga pattern para sa kaliwa pyramid, 98 00:05:15,380 --> 00:05:18,650 kailangan namin upang matukoy ang pattern para sa puwang. 99 00:05:18,650 --> 00:05:20,480 Sa kabutihang-palad, ito ay talagang madali. 100 00:05:20,480 --> 00:05:22,690 Ito ay lamang ng palaging dalawang mga puwang. 101 00:05:22,690 --> 00:05:25,240 >> Kaya ngayon kami ay magpatuloy sa kanan pattern. 102 00:05:25,240 --> 00:05:27,220 Ang unang hanay ay magkakaroon ng isa hash. 103 00:05:27,220 --> 00:05:28,640 Ang ikalawang hanay, ay dalawa. 104 00:05:28,640 --> 00:05:29,530 Ikatlong hanay, ay tatlo. 105 00:05:29,530 --> 00:05:30,790 Iba pa at iba pa. 106 00:05:30,790 --> 00:05:35,540 Kaya muli, matukoy para sa anumang abstract n at anumang taas kung gaano karaming mga hashes 107 00:05:35,540 --> 00:05:38,810 at kung gaano karaming mga puwang bawat hilera ay dapat magkaroon. 108 00:05:38,810 --> 00:05:39,700 >> OK. 109 00:05:39,700 --> 00:05:45,050 Kaya alam namin na para sa bawat hilera namin kailangan upang magsagawa ng ilang mga proseso. 110 00:05:45,050 --> 00:05:46,600 Paano namin gawin iyon? 111 00:05:46,600 --> 00:05:50,440 Well, kami ay gumagamit ng para sa loop ay makagawa, binubuo ng isang initialization, 112 00:05:50,440 --> 00:05:52,310 isang kondisyon, at isang pag-update. 113 00:05:52,310 --> 00:05:54,830 Para sa mga loop ay maaaring gamitin upang ulitin proseso. 114 00:05:54,830 --> 00:05:59,610 >> Kaya sinasabi Gusto ko ito upang kamustahin, mundo 50 beses, pagkatapos ay ang aking para sa loop 115 00:05:59,610 --> 00:06:03,510 magiging hitsura ng isang bagay tulad nito, kung saan magpasimula ko ang aking variable sa zero. 116 00:06:03,510 --> 00:06:06,200 Ang kalagayan ay na ako ay mas mababa sa 50. 117 00:06:06,200 --> 00:06:09,670 At pagkatapos ay ang update ay na ito palugit sa pamamagitan ng isa sa bawat oras. 118 00:06:09,670 --> 00:06:14,700 Kaya kung ano ito ay gawin ay upang i-print kumusta, mundo 50 beses sa isang hilera. 119 00:06:14,700 --> 00:06:18,080 >> Ngayon, sinasabi ko nais na umulit sa ibabaw ng taas ng pyramid. 120 00:06:18,080 --> 00:06:21,560 Pagkatapos ay sa halip ng matapang na coding ilang mga halaga sa ang mga kondisyon, 121 00:06:21,560 --> 00:06:23,280 Ko na lang gamitin ang mga variable taas. 122 00:06:23,280 --> 00:06:27,180 Kaya kung ano ito ay gawin ay umulit sa ibabaw ng taas ng bawat hilera. 123 00:06:27,180 --> 00:06:30,280 At maaari kong gawin ang isang bagay sa loob ng katawan ng na loop. 124 00:06:30,280 --> 00:06:32,710 >> Ano ang gusto naming gawin sa loob ng katawan ng loop? 125 00:06:32,710 --> 00:06:36,550 Well, bilang namin na ipinahiwatig bago, gusto naming upang i-print ang mga puwang at ang hashes 126 00:06:36,550 --> 00:06:40,730 para sa kaliwa pyramid at pagkatapos ay i-print dalawang mga puwang at pagkatapos ay i-print ang hashes. 127 00:06:40,730 --> 00:06:42,500 Kaya ko na may korte namin na out. 128 00:06:42,500 --> 00:06:45,670 Upang maaari naming simulan upang punan sa aming programa ng maraming mas. 129 00:06:45,670 --> 00:06:49,850 >> Narito Mayroon akong isang panlabas na para sa loop na iterates sa paglipas ng bawat hilera sa pyramid. 130 00:06:49,850 --> 00:06:53,340 At sa loob ng katawan na pupuntahan ko upang i-print puwang paulit-ulit, 131 00:06:53,340 --> 00:06:56,860 hashes paulit-ulit, at pagkatapos ay ang puwang, at pagkatapos ay hashes para sa mga karapatan pyramid, 132 00:06:56,860 --> 00:07:00,440 at pagkatapos, sa wakas, ang isang bagong linya upang simulan ang susunod na hilera. 133 00:07:00,440 --> 00:07:02,860 >> Gamit na, na-prompt kami ang user para sa input. 134 00:07:02,860 --> 00:07:04,510 Gumawa kami sigurado na ito ay may-bisa. 135 00:07:04,510 --> 00:07:06,280 At pagkatapos ay inilabas na namin ang pyramid. 136 00:07:06,280 --> 00:07:09,540 Kaya Mario Maaari matagumpay umakyat ang pyramid. 137 00:07:09,540 --> 00:07:10,970 >> Ang pangalan ko ay Zamyla. 138 00:07:10,970 --> 00:07:13,840 At ito ay CS50. 139 00:07:13,840 --> 00:07:15,419