1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:02,640 ZAMYLA CHAN: این یک من، Zamyla. 3 00:00:02,640 --> 00:00:06,950 امروز، ما قصد داریم برای اجرای ماریو، که در آن ما جلب ماریو 4 00:00:06,950 --> 00:00:10,730 یک هرم کامل برای او به انتخاب بیش از. 5 00:00:10,730 --> 00:00:14,430 بیایید شکستن وظایف فرعی برای این مشکل است. 6 00:00:14,430 --> 00:00:17,930 >> اول، ما می خواهیم به سریع کاربر برای ارتفاع هرم. 7 00:00:17,930 --> 00:00:20,510 و سپس ما خواهید مطمئن شوید که ورودی معتبر است. 8 00:00:20,510 --> 00:00:23,280 و سپس ما در حال رفتن به می خواهم به رسم هرم. 9 00:00:23,280 --> 00:00:26,850 >> بنابراین اجازه دهید در مورد باعث صحبت و اعتبار ورودی کاربر. 10 00:00:26,850 --> 00:00:29,920 این ممکن است چیزی شبیه نگاه این، یک حلقه انجام دهند در حالی که 11 00:00:29,920 --> 00:00:33,250 دهید کاربر برای عدد صحیح و پس از آن تنها تکرار 12 00:00:33,250 --> 00:00:35,700 در صورتی که عدد صحیح نامعتبر است. 13 00:00:35,700 --> 00:00:38,220 پس چه باید این وضعیت می شود؟ 14 00:00:38,220 --> 00:00:40,630 >> برای این کار، اجازه بازگشت به مشخصات. 15 00:00:40,630 --> 00:00:46,240 خوب، تنظیمات به ما می گوید که هر معتبر ارتفاع است که به بین 0 و 23 باشد، 16 00:00:46,240 --> 00:00:47,350 شامل. 17 00:00:47,350 --> 00:00:51,400 بنابراین پس از آن که بدان معنی است که هر نامعتبر ارتفاع است برای رفتن به کمتر از 0 18 00:00:51,400 --> 00:00:53,840 و یا بیش از 23. 19 00:00:53,840 --> 00:00:57,220 >> بنابراین در حال حاضر که ما از این اطلاعات، اجازه دهید به طراحی وضعیت ما. 20 00:00:57,220 --> 00:00:59,230 اما ما باید مراقب باشید، چون در حال حاضر ما 21 00:00:59,230 --> 00:01:02,130 دو Booleans که ما می خواهیم به بررسی. 22 00:01:02,130 --> 00:01:04,150 >> در اینجا من به شما ارائه کرده ایم با یک جدول درستی. 23 00:01:04,150 --> 00:01:07,520 این اجازه می دهد تا ما را به دو Booleans می، بولی یک و دو. 24 00:01:07,520 --> 00:01:13,600 و ما می توانیم هم bool1 ارزیابی و bool2 یا bool1 یا bool2. 25 00:01:13,600 --> 00:01:17,390 >> بنابراین چه تفاوت بین و و یا؟ 26 00:01:17,390 --> 00:01:21,810 خب، bool1 و bool2 خواهد شد ارزیابی درست است اگر و تنها 27 00:01:21,810 --> 00:01:25,680 اگر هر دو Booleans می درست باشد، در حالی که یا عملیات 28 00:01:25,680 --> 00:01:30,190 درست خواهد بود اگر هر یک از Booleans می یا هر دو درست است. 29 00:01:30,190 --> 00:01:33,110 بنابراین با این در ذهن، ببینید اگر شما می توانید از شکل 30 00:01:33,110 --> 00:01:37,460 چه شرایط مناسب برای حلقه انجام دهند در حالی خود را برای یک n نامعتبر 31 00:01:37,460 --> 00:01:38,850 در حال رفتن به. 32 00:01:38,850 --> 00:01:43,540 >> با آن، ما را وادار و اعتبار کاربر برای ارتفاع هرم 33 00:01:43,540 --> 00:01:44,550 که آنها می خواهند. 34 00:01:44,550 --> 00:01:47,740 بنابراین در حال حاضر، آن را تا به ما به منظور جلب هرم. 35 00:01:47,740 --> 00:01:50,520 هرم کامل برای این مشکل یک کمی نگاه کنید 36 00:01:50,520 --> 00:01:56,340 مثل این، که در آن ما یک هرم سمت چپ، برخی شکاف، و پس از آن یک هرم است. 37 00:01:56,340 --> 00:01:58,630 بنابراین اجازه دهید این شکستن یک کمی. 38 00:01:58,630 --> 00:02:03,510 >> اگر من به ویرایشگر متن من بروید، در اینجا من کشیده شده ما یک هرم سمت چپ تراز وسط قرار دارد. 39 00:02:03,510 --> 00:02:05,160 اما انجام خواهد داد. 40 00:02:05,160 --> 00:02:10,139 آنچه ما می خواهیم انجام دهیم این است که ما می خواهید ایجاد یک هرم در تراز راست قرار اول است. 41 00:02:10,139 --> 00:02:13,580 بنابراین برای این کار، به فقط با فشار رشته هش من همراه را به سمت، 42 00:02:13,580 --> 00:02:18,240 من فقط رفتن به قرار دادن برخی از شخصیت های در میان، فقط این نقطه است. 43 00:02:18,240 --> 00:02:22,560 سپس من قصد دارم برای قرار دادن دو در خط بعدی، و یکی بر روی آن خط. 44 00:02:22,560 --> 00:02:26,070 و بنابراین در اینجا من یک تراز راست قرار دارد هرم. 45 00:02:26,070 --> 00:02:28,540 >> پس از آن، من قصد دارم به بازگشت به ردیف بالا 46 00:02:28,540 --> 00:02:33,930 و در فاصله، قرار است که است، در تنظیمات، دو فضا. 47 00:02:33,930 --> 00:02:37,680 سپس من قصد دارم برای پر کردن در طرف دیگر از هرم. 48 00:02:37,680 --> 00:02:42,030 من قصد دارم برای رفتن به سطر دوم، ارسال دو فضا برای شکاف و پس از آن دو 49 00:02:42,030 --> 00:02:42,920 می کردند. 50 00:02:42,920 --> 00:02:47,020 برگشت به ردیف سوم، دو فضا برای شکاف و سه رشته هش. 51 00:02:47,020 --> 00:02:51,480 و در پایان، دو فضا برای شکاف و چهار رشته هش. 52 00:02:51,480 --> 00:02:54,400 به طوری که آنچه کامل هرم خواهد شد. 53 00:02:54,400 --> 00:02:57,260 >> البته، ما نمی خواهیم این نقاط در راه است. 54 00:02:57,260 --> 00:03:01,220 بنابراین ما قصد داریم به جای این نقطه با قرار دادن برخی از فضاهای در. 55 00:03:01,220 --> 00:03:03,720 یک، دو، سه در خط اول. 56 00:03:03,720 --> 00:03:05,650 یک، دو در دوم. 57 00:03:05,650 --> 00:03:08,200 و یکی در خط سوم. 58 00:03:08,200 --> 00:03:12,060 پس این است که آنچه که ما اگر ما می خواستم فقط یک هرم کامل، 59 00:03:12,060 --> 00:03:13,700 می گویند، در ویرایشگر متن است. 60 00:03:13,700 --> 00:03:15,860 >> بنابراین اجازه دهید این، درک الگوها، 61 00:03:15,860 --> 00:03:19,870 و تبدیل آن به برخی از شبه. 62 00:03:19,870 --> 00:03:24,500 برای هر سطر از هرم، ما می خواهیم به چاپ هرم به چپ و سپس 63 00:03:24,500 --> 00:03:26,580 شکاف و سپس هرم است. 64 00:03:26,580 --> 00:03:30,260 برای هرم سمت چپ، ما چاپ مقدار لازم از فاصله، 65 00:03:30,260 --> 00:03:31,740 به دنبال آن رشته هش. 66 00:03:31,740 --> 00:03:35,030 سپس ما شکاف، چاپ که فقط دو فضا در هر زمان است. 67 00:03:35,030 --> 00:03:38,080 و در هرم درست است، ما چاپ تعداد لازم از رشته هش. 68 00:03:38,080 --> 00:03:41,410 >> برای ردیف دوم، ما انجام روند دقیق همان. 69 00:03:41,410 --> 00:03:44,510 ما چاپ فضاهای برای چپ هرم، مقدار لازم 70 00:03:44,510 --> 00:03:49,930 از رشته هش، فاصله، دو فضا، و پس از آن هش برای هرم است. 71 00:03:49,930 --> 00:03:52,490 >> اجازه دهید به مقابله الگوی برای هرم سمت چپ. 72 00:03:52,490 --> 00:03:55,660 اگر من، برای اهداف این مثال، یک ارتفاع 73 00:03:55,660 --> 00:03:58,790 هشت درخواست شده توسط کاربر، پس از آن ردیف اول من 74 00:03:58,790 --> 00:04:01,020 یکی هش و هفت فضاهای دارند. 75 00:04:01,020 --> 00:04:03,860 ردیف دوم من می خواهم که دو رشته هش، شش فاصله است. 76 00:04:03,860 --> 00:04:06,749 ردیف سوم، سه رشته هش، پنج فاصله است. 77 00:04:06,749 --> 00:04:09,040 شما احتمالا می تواند این کار را انجام خودتان را برای یک ارتفاع هشت 78 00:04:09,040 --> 00:04:13,470 و تعیین برای هر سطر که چگونه بسیاری از رشته هش و چگونه بسیاری از فضاهای شما نیاز دارید. 79 00:04:13,470 --> 00:04:16,209 اما آنچه ما می خواهیم انجام دهیم این است ما به انتزاعی آن را می خواهم. 80 00:04:16,209 --> 00:04:22,660 بنابراین من از شما می خواهم برای هر ردیف n ام، چگونه بسیاری از رشته هش و چگونه بسیاری از فضاهای نیاز داریم؟ 81 00:04:22,660 --> 00:04:25,410 >> در حال حاضر، به عنوان شما را تعیین الگوی برای چند رشته هش 82 00:04:25,410 --> 00:04:29,920 و چگونه بسیاری از فضاهای شما را برای نیاز هر ردیف n ام برای یک ارتفاع داده شده، 83 00:04:29,920 --> 00:04:32,910 به یاد داشته باشید که مراقب باشید از چگونه شما نمایه سازی. 84 00:04:32,910 --> 00:04:37,160 چه منظورم این است که این است که در هر روز زندگی بسیاری از ما شروع به شمارش به یک است. 85 00:04:37,160 --> 00:04:39,680 بنابراین در ردیف اول می شود شماره یک. 86 00:04:39,680 --> 00:04:43,620 و ردیف دوم خواهد بود ردیف شماره دو، غیره و غیره. 87 00:04:43,620 --> 00:04:47,620 >> اما در علوم کامپیوتر و CS50، ما به صفر نمایه میشود. 88 00:04:47,620 --> 00:04:50,750 پس ما در واقع شروع به شمارش صفر. 89 00:04:50,750 --> 00:04:54,020 بنابراین سطر اول را شماره ردیف صفر است. 90 00:04:54,020 --> 00:04:56,640 و ردیف دوم خواهد بود تعداد ردیف یکی. 91 00:04:56,640 --> 00:05:02,510 بنابراین اگر من به ارتفاع هشت حال برای هرم من، و سپس آخرین مقدار n 92 00:05:02,510 --> 00:05:05,850 در واقع هفت و هشت است. 93 00:05:05,850 --> 00:05:07,010 >> بنابراین مراقب باشید در مورد این باشد. 94 00:05:07,010 --> 00:05:10,750 و آگاه باشید زمانی که شما تعیین الگوی خود را که آیا خود را صفر نمایه 95 00:05:10,750 --> 00:05:12,360 و یا یک نمایه 96 00:05:12,360 --> 00:05:13,070 >> خوب. 97 00:05:13,070 --> 00:05:15,380 بنابراین در حال حاضر که ما الگوی برای هرم سمت چپ، 98 00:05:15,380 --> 00:05:18,650 ما نیاز به تعیین الگوی برای شکاف. 99 00:05:18,650 --> 00:05:20,480 خوشبختانه، این واقعا آسان است. 100 00:05:20,480 --> 00:05:22,690 این فقط همیشه دو فضا است. 101 00:05:22,690 --> 00:05:25,240 >> بنابراین در حال حاضر ما به الگوی مناسب ادامه دهید. 102 00:05:25,240 --> 00:05:27,220 سطر اول یک هش. 103 00:05:27,220 --> 00:05:28,640 ردیف دوم، دو. 104 00:05:28,640 --> 00:05:29,530 ردیف سوم، سه. 105 00:05:29,530 --> 00:05:30,790 غیره و غیره. 106 00:05:30,790 --> 00:05:35,540 پس دوباره، تعیین برای هر انتزاعی n و هر ارتفاع که چگونه بسیاری از رشته هش 107 00:05:35,540 --> 00:05:38,810 و فضاهای چند هر سطر باید داشته باشد. 108 00:05:38,810 --> 00:05:39,700 >> خوب. 109 00:05:39,700 --> 00:05:45,050 بنابراین ما می دانیم که برای هر ردیف ما نیاز به انجام برخی از فرایند. 110 00:05:45,050 --> 00:05:46,600 چگونه ما آن را انجام دهیم؟ 111 00:05:46,600 --> 00:05:50,440 خب، ما با استفاده از برای ساختار حلقه، متشکل از مقدار دهی اولیه، 112 00:05:50,440 --> 00:05:52,310 وضعیت، و به روز رسانی. 113 00:05:52,310 --> 00:05:54,830 برای حلقه استفاده می شود به تکرار فرآیندهای. 114 00:05:54,830 --> 00:05:59,610 >> بنابراین می گویند من می خواهم آن را به گفتن سلام، جهان 50 بار، و سپس من برای حلقه 115 00:05:59,610 --> 00:06:03,510 چیزی شبیه به این، که در آن من متغیر من مقداردهی اولیه به صفر است. 116 00:06:03,510 --> 00:06:06,200 این وضعیت این است که من کمتر از 50 است. 117 00:06:06,200 --> 00:06:09,670 و پس از آن به روز رسانی است که آن را افزایش توسط یکی در هر زمان. 118 00:06:09,670 --> 00:06:14,700 پس چه این کار را انجام می شود چاپ سلام، جهان 50 بار در یک ردیف. 119 00:06:14,700 --> 00:06:18,080 >> در حال حاضر، می گویند من می خواستم به تکرار در طول ارتفاع هرم. 120 00:06:18,080 --> 00:06:21,560 سپس به جای برنامه نویسی سخت برخی از ارزش در شرایط، 121 00:06:21,560 --> 00:06:23,280 من فقط با استفاده از ارتفاع متغیر. 122 00:06:23,280 --> 00:06:27,180 پس چه انجام این کار خواهد تکرار است در طول ارتفاع هر سطر. 123 00:06:27,180 --> 00:06:30,280 و من می توانم چیزی در درون انجام از بدن که حلقه. 124 00:06:30,280 --> 00:06:32,710 >> ما چه می خواهیم به انجام در داخل بدن از حلقه؟ 125 00:06:32,710 --> 00:06:36,550 خوب، همانطور که ما قبل نشان داد، ما می خواهیم به چاپ فضاها و هش 126 00:06:36,550 --> 00:06:40,730 برای هرم سمت چپ و سپس چاپ دو فضا و سپس چاپ رشته هش. 127 00:06:40,730 --> 00:06:42,500 بنابراین ما در حال حاضر نمیفهمد که. 128 00:06:42,500 --> 00:06:45,670 بنابراین ما می توانیم شروع به پر در برنامه ما خیلی بیشتر. 129 00:06:45,670 --> 00:06:49,850 >> در اینجا من یک خارجی برای حلقه که تکرار می کند در هر سطر در هرم. 130 00:06:49,850 --> 00:06:53,340 و در داخل است که بدن من به چاپ فضاهای بارها و بارها، 131 00:06:53,340 --> 00:06:56,860 هش بارها و بارها، و پس از آن شکاف، و پس از آن رشته های هش هرم راست، 132 00:06:56,860 --> 00:07:00,440 و پس از آن، در نهایت، جدید خط شروع سطر بعدی. 133 00:07:00,440 --> 00:07:02,860 >> با آن، ما را وادار به کاربر برای ورودی. 134 00:07:02,860 --> 00:07:04,510 ما مطمئن هستیم که آن را معتبر ساخته شده است. 135 00:07:04,510 --> 00:07:06,280 و سپس ما هرم کشیده ام. 136 00:07:06,280 --> 00:07:09,540 بنابراین ماریو می تواند با موفقیت بالا رفتن از هرم. 137 00:07:09,540 --> 00:07:10,970 >> نام من ... است Zamyla است. 138 00:07:10,970 --> 00:07:13,840 و این CS50. 139 00:07:13,840 --> 00:07:15,419