1 00:00:00,000 --> 00:00:00,982 2 00:00:00,982 --> 00:00:11,293 >> [მუსიკის დაკვრა] 3 00:00:11,293 --> 00:00:13,580 >> რობ Bowden: ეს ჩემთვის, რობ. 4 00:00:13,580 --> 00:00:16,540 მოდით გავლა, თუ როგორ განახორციელოს Mario. 5 00:00:16,540 --> 00:00:21,040 ასე რომ პირველი რაც უნდა გავაკეთოთ არის შეეკითხება მომხმარებელს ამისთვის შეყვანის. 6 00:00:21,040 --> 00:00:24,440 >> ჩვენ უნდა ვთხოვოთ მათ, თუ როგორ მაღალი პირამიდის უნდა იყოს. 7 00:00:24,440 --> 00:00:27,110 ასე რომ, აქ ჩვენ ვხედავთ, თუ რას ვაკეთებთ სიმაღლე = GetInt. 8 00:00:27,110 --> 00:00:32,479 და გვახსოვდეს, რომ GetInt ფუნქცია ხორციელდება CS50 9 00:00:32,479 --> 00:00:38,060 ბიბლიოთეკა, ასე up დაბრუნება, ჩვენ უნდა მახსოვს # მოიცავს cs50.h. 10 00:00:38,060 --> 00:00:41,360 >> რატომ გვაქვს ამ გახვეული in do-ხოლო loop? 11 00:00:41,360 --> 00:00:45,080 ისე, ჩვენ ასევე უნდა გვახსოვდეს, რომ მომხმარებლის შეყვანის უნდა იყოს სწორი. 12 00:00:45,080 --> 00:00:46,910 რა არის არასწორი შეყვანის? 13 00:00:46,910 --> 00:00:51,460 კარგად pset სპეც კონკრეტულად ამბობს რომ სიმაღლე ნაკლებია, ვიდრე 0 ან მეტი 14 00:00:51,460 --> 00:00:54,530 მეტი 23 არასწორია. 15 00:00:54,530 --> 00:00:59,030 >> ასე რომ, აქ ჩვენ ვხედავთ, რომ ჩვენ განსაზღვრავს მუდმივი მოუწოდა MAX_HEIGHT ერთად 16 00:00:59,030 --> 00:01:00,750 ღირებულება 23. 17 00:01:00,750 --> 00:01:06,380 ეს do-ხოლო loop გააგრძელებს, ხოლო სიმაღლე ნაკლებია, ვიდრე 0 ან MAX_HEIGHT არის 18 00:01:06,380 --> 00:01:11,870 ნაკლებია, ვიდრე სიმაღლე, რაც იმას ნიშნავს, 23 ნაკლებია, ვიდრე სიმაღლე. 19 00:01:11,870 --> 00:01:15,390 ასე რომ, თუ სიმაღლე არის 24 ან მეტი, ჩვენ გავაგრძელებთ looping. 20 00:01:15,390 --> 00:01:18,300 გახსოვდეთ, რომ do-ხოლო მარყუჟების საკმაოდ გამოსადეგი, როდესაც ჩვენ გვინდა 21 00:01:18,300 --> 00:01:22,070 მომხმარებლის შეყვანის და შემდეგ შეამოწმოს, რადგან ჩვენ აუცილებლად უნდა ვთხოვო მომხმარებელს at 22 00:01:22,070 --> 00:01:25,010 თუნდაც ერთხელ, ღირებულება უნდათ. 23 00:01:25,010 --> 00:01:28,500 >> ასე რომ ერთხელ ჩვენ მათი შეყვანის, ჩვენ ახლა შეგვიძლია ავაშენოთ პირამიდის. 24 00:01:28,500 --> 00:01:31,940 ერთი tricks ამ პრობლემის მითითებული რომ ჩვენ უნდა დავიწყოთ ზედა 25 00:01:31,940 --> 00:01:32,750 პირამიდის. 26 00:01:32,750 --> 00:01:36,800 თქვენ არ შეგიძლიათ printf ბოლოში პირამიდის და შემდეგ ავაშენოთ თქვენი გზა მდე. 27 00:01:36,800 --> 00:01:38,830 მოდით შევხედოთ მაგალითად საწყისი pset სპეც. 28 00:01:38,830 --> 00:01:41,530 29 00:01:41,530 --> 00:01:45,430 >> ჩვენ ვხედავთ, აქ რომ როდესაც ჩვენ შეიყვანოთ სიმაღლე 8, ძალიან ბოლოში 30 00:01:45,430 --> 00:01:48,660 პირამიდის ბეჭდავს ცხრა ჰეშები. 31 00:01:48,660 --> 00:01:52,990 ერთ დონეზე up, რომ ანაბეჭდები ერთ სივრცეში და რვა ჰეშები. 32 00:01:52,990 --> 00:01:58,250 ერთ დონეზე up, რომ არის ორი ფართები და შვიდი ჰეშები, ყველა გზა, სანამ ჩვენ 33 00:01:58,250 --> 00:02:03,050 მისაღებად ზევით პირამიდის, რომელიც რვა დონეზე up, რომელიც ბეჭდავს შვიდი 34 00:02:03,050 --> 00:02:06,000 ფართები და ორი ჰეშები. 35 00:02:06,000 --> 00:02:08,810 ასე მახსოვს, რომ ჩვენ ამისათვის მაღალი დონის პირველი. 36 00:02:08,810 --> 00:02:11,620 37 00:02:11,620 --> 00:02:18,500 >> აქ ჩვენ iterating საწყისი ზედა დონეზე, ზედიზედ 8, გრძელდება 38 00:02:18,500 --> 00:02:22,150 სანამ ზედიზედ აღწევს 0. 39 00:02:22,150 --> 00:02:25,820 ასე რომ, რამდენი ფართები არ გვჭირდება ბეჭდვა, რომ ყველაზე ზედიზედ? 40 00:02:25,820 --> 00:02:29,310 ჩვენ იბეჭდება შვიდი ფართები და ორი ჰეშები. 41 00:02:29,310 --> 00:02:34,450 ასე, რომ ნომერი ფართები ჩვენ გვინდა არის ზედიზედ რომ იყო მინუს 1. 42 00:02:34,450 --> 00:02:39,310 >> თუ ზევით ზედიზედ 8, 8 minus 1 გვაძლევს შვიდი ფართები. 43 00:02:39,310 --> 00:02:43,770 მაშინ ჩვენ გვაქვს ციკლი, რომელიც ბეჭდვა ყოველ სივრცეში ერთ დროს. 44 00:02:43,770 --> 00:02:47,450 ასე რომ, როდესაც ფართები 7, ამ loop შვიდჯერ, ბეჭდვა 45 00:02:47,450 --> 00:02:50,300 შვიდი ინდივიდუალური ფართები. 46 00:02:50,300 --> 00:02:54,672 >> ასე რომ, ახლა ჩვენ უნდა ამობეჭდოთ ეს ჰეშები დასასრულს პირამიდის. 47 00:02:54,672 --> 00:02:57,930 ასე რომ აქ, ჩვენ უნდა გამოვთვალოთ რაოდენობა ჰეშები. 48 00:02:57,930 --> 00:03:01,930 ჩვენ ვხედავთ, რომ ვაკეთებთ სიმაღლე მინუს row plus 2. 49 00:03:01,930 --> 00:03:04,170 ასე რომ, როგორ მივიღებთ, რომ? 50 00:03:04,170 --> 00:03:08,630 >> გახსოვდეთ, რომ ზედა პირამიდის არის რიგი 8, და სიმაღლე 8. 51 00:03:08,630 --> 00:03:10,890 და ჩვენ კიდევ იბეჭდება ორი ჰეშები. 52 00:03:10,890 --> 00:03:15,420 ასე რომ, სულ ცოტა, 8 მინუს 8 პლუს 2 გვაძლევს სწორი პასუხი. 53 00:03:15,420 --> 00:03:19,170 და შემდეგ განიხილავს ბოლოში პირამიდის, row 1. 54 00:03:19,170 --> 00:03:24,020 სიმაღლე მინუს row მოგვცემს 7 და მაშინ plus 2 გვაძლევს ცხრა ჰეშები, 55 00:03:24,020 --> 00:03:26,620 სწორედ რაოდენობა საქართველოს ჰეშები რომ ჩვენ დაბეჭდილი. 56 00:03:26,620 --> 00:03:29,880 ასე რომ, ეს არის ფორმულა, ჩვენ გვინდა გამოიყენოთ გამოვთვალოთ ნომერი 57 00:03:29,880 --> 00:03:32,220 ჰეშები თითოეული მწკრივი. 58 00:03:32,220 --> 00:03:36,020 >> გამოყენებით, რომ ნომერი, ან, ჩვენ მაშინ კიდევ ერთი მარყუჟის, ძალიან გავს 59 00:03:36,020 --> 00:03:41,270 მარყუჟი, რომ ჩვენ გამოიყენება ფართები, რომ iterates ნომერი ჰეშები ჯერ 60 00:03:41,270 --> 00:03:43,720 ბეჭდვის ერთი hash ყოველ ჯერზე. 61 00:03:43,720 --> 00:03:46,010 ზედა row, რომ ყველაფერს ბეჭდვა ორი ჰეშები. 62 00:03:46,010 --> 00:03:48,390 ბოლოში row, რომ ყველაფერს ბეჭდვა ცხრა ჰეშები. 63 00:03:48,390 --> 00:03:52,610 და ერთმანეთს row ბეჭდვა ყველა ნომერი ჰეშები შორის. 64 00:03:52,610 --> 00:03:57,340 >> და შემდეგ ბოლომდე, ჩვენ უნდა ბეჭდვა ჩვენი ახალი ხაზი წასვლა მომდევნო 65 00:03:57,340 --> 00:03:59,400 ზედიზედ პირამიდის. 66 00:03:59,400 --> 00:04:03,070 და ბოლოს, ჩვენ უნდა ბეჭდვა ახალი ხაზი ბოლოს ზედიზედ, რათა 67 00:04:03,070 --> 00:04:06,260 გაგრძელდება მომდევნო row პირამიდის. 68 00:04:06,260 --> 00:04:08,980 და ბოლოს, ჩვენი პროგრამა, ჩვენ დაბრუნებას 0. 69 00:04:08,980 --> 00:04:12,770 >> როგორც პოსტი pset Spec, დაბრუნების 0 არ არის მკაცრად აუცილებელია. 70 00:04:12,770 --> 00:04:15,710 მაგრამ ეს იმას ნიშნავდეს, რომ მთავარი კეთდება. 71 00:04:15,710 --> 00:04:17,610 ჩემი სახელი არის რობ, და ეს იყო Mario. 72 00:04:17,610 --> 00:04:22,470 >> [მუსიკის დაკვრა] 73 00:04:22,470 --> 00:04:25,558