1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:02,640 ZAMYLA CHAN: Đó là một-me, Zamyla. 3 00:00:02,640 --> 00:00:06,950 Hôm nay, chúng ta sẽ thực hiện Mario, nơi mà chúng ta rút ra Mario 4 00:00:06,950 --> 00:00:10,730 một kim tự tháp đầy đủ cho anh ta để nhảy qua. 5 00:00:10,730 --> 00:00:14,430 Hãy phá vỡ các tiểu nhiệm vụ cho vấn đề này. 6 00:00:14,430 --> 00:00:17,930 >> Đầu tiên, chúng tôi muốn nhắc nhở người dùng cho chiều cao của kim tự tháp. 7 00:00:17,930 --> 00:00:20,510 Và sau đó chúng tôi muốn chắc chắn mà đầu vào là hợp lệ. 8 00:00:20,510 --> 00:00:23,280 Và sau đó chúng ta sẽ muốn vẽ các kim tự tháp. 9 00:00:23,280 --> 00:00:26,850 >> Vì vậy, chúng ta hãy nói về khiến và xác nhận người dùng nhập vào. 10 00:00:26,850 --> 00:00:29,920 Nó có thể trông giống như một cái gì đó này, một vòng lặp do-while mà 11 00:00:29,920 --> 00:00:33,250 nhắc nhở người sử dụng cho một số nguyên và sau đó chỉ lặp đi lặp lại 12 00:00:33,250 --> 00:00:35,700 nếu số nguyên đó là không hợp lệ. 13 00:00:35,700 --> 00:00:38,220 Vì vậy, những gì nên tình trạng này là gì? 14 00:00:38,220 --> 00:00:40,630 >> Đối với điều này, chúng ta hãy quay trở lại với đặc điểm kỹ thuật. 15 00:00:40,630 --> 00:00:46,240 Vâng, spec cho chúng ta biết rằng bất kỳ hợp lệ chiều cao sẽ là giữa 0 và 23, 16 00:00:46,240 --> 00:00:47,350 bao gồm. 17 00:00:47,350 --> 00:00:51,400 Vì vậy, sau đó có nghĩa rằng bất kỳ không hợp lệ Chiều cao sẽ được ít hơn 0 18 00:00:51,400 --> 00:00:53,840 hoặc hơn 23. 19 00:00:53,840 --> 00:00:57,220 >> Vì vậy, bây giờ mà chúng tôi có thông tin này, chúng ta hãy thiết kế điều kiện của chúng tôi. 20 00:00:57,220 --> 00:00:59,230 Nhưng chúng ta cần phải cẩn thận, bởi vì bây giờ chúng tôi có 21 00:00:59,230 --> 00:01:02,130 hai phép toán luận rằng chúng ta muốn đánh giá. 22 00:01:02,130 --> 00:01:04,150 >> Ở đây tôi đã cung cấp cho bạn với một bảng sự thật. 23 00:01:04,150 --> 00:01:07,520 Điều này cho phép chúng tôi để mất hai Boolean, Boolean một và hai. 24 00:01:07,520 --> 00:01:13,600 Và chúng ta có thể đánh giá hoặc bool1 và bool2 hoặc bool1 hoặc bool2. 25 00:01:13,600 --> 00:01:17,390 >> Vì vậy, sự khác biệt là những gì giữa và và hay? 26 00:01:17,390 --> 00:01:21,810 Vâng, bool1 và bool2 sẽ để đánh giá đúng khi và chỉ 27 00:01:21,810 --> 00:01:25,680 nếu cả hai phép toán luận là đúng sự thật, trong khi đó, hoạt động 28 00:01:25,680 --> 00:01:30,190 sẽ là sự thật nếu một trong hai người các phép toán luận hoặc cả hai đều đúng. 29 00:01:30,190 --> 00:01:33,110 Vì vậy, với điều này trong tâm trí, xem bạn có thể tìm ra 30 00:01:33,110 --> 00:01:37,460 những điều kiện thích hợp cho Vòng lặp do-while của bạn cho một n không hợp lệ 31 00:01:37,460 --> 00:01:38,850 sẽ là. 32 00:01:38,850 --> 00:01:43,540 >> Cùng với đó, chúng tôi đã nhắc nhở và xác nhận người sử dụng cho chiều cao của kim tự tháp 33 00:01:43,540 --> 00:01:44,550 mà họ muốn. 34 00:01:44,550 --> 00:01:47,740 Vì vậy, bây giờ, nó đến với chúng tôi để vẽ các kim tự tháp. 35 00:01:47,740 --> 00:01:50,520 Các kim tự tháp đầy đủ cho việc này vấn đề sẽ xem xét một chút 36 00:01:50,520 --> 00:01:56,340 như thế này, nơi chúng tôi có một kim tự tháp bên trái, một số khoảng cách, và sau đó là một kim tự tháp phải. 37 00:01:56,340 --> 00:01:58,630 Vì vậy, hãy phá vỡ này xuống một chút. 38 00:01:58,630 --> 00:02:03,510 >> Nếu tôi đi đến soạn thảo văn bản của tôi, ở đây tôi đã rút ra cho chúng ta một kim tự tháp gióng bên trái. 39 00:02:03,510 --> 00:02:05,160 Nhưng điều đó sẽ không làm. 40 00:02:05,160 --> 00:02:10,139 Những gì chúng tôi muốn làm là chúng ta muốn tạo ra một kim tự tháp canh phải đầu tiên. 41 00:02:10,139 --> 00:02:13,580 Vì vậy, để làm được điều này, chỉ cần đẩy băm của tôi cùng một bên, 42 00:02:13,580 --> 00:02:18,240 Tôi chỉ sẽ đặt một vài ký tự ở giữa, chỉ những dấu chấm. 43 00:02:18,240 --> 00:02:22,560 Sau đó, tôi sẽ đưa hai trên dòng tiếp theo, và một trên đường dây đó. 44 00:02:22,560 --> 00:02:26,070 Và ở đây tôi có một canh phải kim tự tháp. 45 00:02:26,070 --> 00:02:28,540 >> Sau đó, tôi sẽ quay trở lại hàng đầu 46 00:02:28,540 --> 00:02:33,930 và đặt trong khoảng cách, mà là, mỗi spec, hai không gian. 47 00:02:33,930 --> 00:02:37,680 Sau đó, tôi sẽ điền vào phía bên kia của các kim tự tháp. 48 00:02:37,680 --> 00:02:42,030 Tôi sẽ đi đến hàng thứ hai, viết hai không gian cho khoảng cách và sau đó hai 49 00:02:42,030 --> 00:02:42,920 băm. 50 00:02:42,920 --> 00:02:47,020 Quay lại hàng thứ ba, hai không gian cho khoảng cách và ba băm. 51 00:02:47,020 --> 00:02:51,480 Và cuối cùng, hai không gian cho khoảng cách và bốn băm. 52 00:02:51,480 --> 00:02:54,400 Vì vậy, đó là những gì một đầy đủ kim tự tháp sẽ trông như thế nào. 53 00:02:54,400 --> 00:02:57,260 >> Tất nhiên, chúng tôi không muốn các dấu chấm trong cách. 54 00:02:57,260 --> 00:03:01,220 Vì vậy, chúng tôi sẽ thay thế các chấm bằng cách đặt một số không gian trong. 55 00:03:01,220 --> 00:03:03,720 Một, hai, ba trên dòng đầu tiên. 56 00:03:03,720 --> 00:03:05,650 Một, hai ngày thứ hai. 57 00:03:05,650 --> 00:03:08,200 Và một trên dòng thứ ba. 58 00:03:08,200 --> 00:03:12,060 Vì vậy, đây là những gì chúng ta sẽ làm gì nếu chúng tôi muốn chỉ cần thực hiện một kim tự tháp đầy đủ, 59 00:03:12,060 --> 00:03:13,700 nói, trong trình soạn thảo văn bản của chúng tôi. 60 00:03:13,700 --> 00:03:15,860 >> Vì vậy, hãy thực hiện việc này, hiểu các mô hình, 61 00:03:15,860 --> 00:03:19,870 và chuyển đổi nó sang một số giả. 62 00:03:19,870 --> 00:03:24,500 Đối với mỗi hàng của các kim tự tháp, chúng tôi muốn để in các kim tự tháp bên trái và sau đó 63 00:03:24,500 --> 00:03:26,580 khoảng cách và sau đó kim tự tháp phải. 64 00:03:26,580 --> 00:03:30,260 Đối với các kim tự tháp bên trái, chúng tôi in số lượng cần thiết của không gian, 65 00:03:30,260 --> 00:03:31,740 tiếp theo là băm. 66 00:03:31,740 --> 00:03:35,030 Sau đó, chúng tôi in khoảng cách, mà chỉ là hai không gian mỗi lần. 67 00:03:35,030 --> 00:03:38,080 Và trong các kim tự tháp phải, chúng tôi in số điều kiện tiên quyết của băm. 68 00:03:38,080 --> 00:03:41,410 >> Đối với hàng thứ hai, chúng tôi tiến hành cùng một quá trình chính xác. 69 00:03:41,410 --> 00:03:44,510 Chúng tôi in các không gian cho trái kim tự tháp, số lượng cần thiết 70 00:03:44,510 --> 00:03:49,930 băm, khoảng cách, hai không gian, và sau đó băm cho các kim tự tháp phải. 71 00:03:49,930 --> 00:03:52,490 >> Hãy giải quyết những mô hình kim tự tháp bên trái. 72 00:03:52,490 --> 00:03:55,660 Nếu tôi đã có, cho các mục đích Trong ví dụ này, một chiều cao 73 00:03:55,660 --> 00:03:58,790 tám yêu cầu của người sử dụng, sau đó hàng đầu tiên của tôi 74 00:03:58,790 --> 00:04:01,020 sẽ có một băm và bảy chỗ. 75 00:04:01,020 --> 00:04:03,860 hàng thứ hai của tôi sẽ có hai bảng băm, sáu không gian. 76 00:04:03,860 --> 00:04:06,749 hàng thứ ba, ba băm, năm không gian. 77 00:04:06,749 --> 00:04:09,040 Bạn có lẽ có thể làm điều này mình với chiều cao tám 78 00:04:09,040 --> 00:04:13,470 và xác định cho mỗi hàng có bao nhiêu băm và bao nhiêu không gian bạn cần. 79 00:04:13,470 --> 00:04:16,209 Nhưng những gì chúng tôi muốn làm là chúng tôi muốn tóm tắt nó. 80 00:04:16,209 --> 00:04:22,660 Vì vậy, tôi yêu cầu bạn cho bất kỳ hàng thứ n, bao nhiêu băm và bao nhiêu không gian chúng ta cần? 81 00:04:22,660 --> 00:04:25,410 >> Bây giờ, khi bạn xác định mẫu cho bao nhiêu băm 82 00:04:25,410 --> 00:04:29,920 và bao nhiêu không gian bạn cần cho bất kỳ hàng thứ n với chiều cao nhất định, 83 00:04:29,920 --> 00:04:32,910 nhớ phải cẩn thận làm thế nào bạn đang lập chỉ mục. 84 00:04:32,910 --> 00:04:37,160 Những gì tôi có ý nghĩa của điều này là trong hàng ngày cuộc sống hầu hết chúng ta bắt đầu đếm một. 85 00:04:37,160 --> 00:04:39,680 Vì vậy, các hàng đầu tiên sẽ là số một. 86 00:04:39,680 --> 00:04:43,620 Và hàng thứ hai sẽ là hàng thứ hai, vv và vv. 87 00:04:43,620 --> 00:04:47,620 >> Nhưng trong khoa học máy tính và CS50, chúng tôi không lập chỉ mục. 88 00:04:47,620 --> 00:04:50,750 Vì vậy, chúng tôi thực sự bắt đầu đếm từ số không. 89 00:04:50,750 --> 00:04:54,020 Vì vậy, các hàng đầu tiên sẽ có hàng số zero. 90 00:04:54,020 --> 00:04:56,640 Và hàng thứ hai sẽ là hàng số một. 91 00:04:56,640 --> 00:05:02,510 Vì vậy, nếu tôi đã có một chiều cao của tám cho kim tự tháp của tôi, sau đó giá trị cuối cùng của n 92 00:05:02,510 --> 00:05:05,850 thực sự sẽ là bảy và không tám. 93 00:05:05,850 --> 00:05:07,010 >> Vì vậy, hãy cẩn thận về điều này. 94 00:05:07,010 --> 00:05:10,750 Và nhận thức được khi bạn đang xác định mô hình của bạn cho dù bạn không lập chỉ mục 95 00:05:10,750 --> 00:05:12,360 hoặc một lập chỉ mục 96 00:05:12,360 --> 00:05:13,070 >> ĐƯỢC. 97 00:05:13,070 --> 00:05:15,380 Vì vậy, bây giờ chúng ta có mô hình kim tự tháp bên trái, 98 00:05:15,380 --> 00:05:18,650 chúng ta cần phải xác định mô hình cho khoảng cách. 99 00:05:18,650 --> 00:05:20,480 May mắn thay, điều này là rất dễ dàng. 100 00:05:20,480 --> 00:05:22,690 Nó chỉ luôn hai không gian. 101 00:05:22,690 --> 00:05:25,240 >> Vì vậy, bây giờ chúng ta tiến tới mô hình đúng. 102 00:05:25,240 --> 00:05:27,220 Hàng đầu tiên sẽ có một băm. 103 00:05:27,220 --> 00:05:28,640 Hàng thứ hai, hai. 104 00:05:28,640 --> 00:05:29,530 hàng thứ ba, ba. 105 00:05:29,530 --> 00:05:30,790 Vv và vv. 106 00:05:30,790 --> 00:05:35,540 Vì vậy, một lần nữa, xác định cho bất kỳ trừu tượng n và bất kỳ độ cao bao nhiêu băm 107 00:05:35,540 --> 00:05:38,810 và không gian bao nhiêu mỗi hàng phải có. 108 00:05:38,810 --> 00:05:39,700 >> ĐƯỢC. 109 00:05:39,700 --> 00:05:45,050 Vì vậy, chúng tôi biết rằng đối với mỗi chúng ta hàng cần phải tiến hành một số quá trình. 110 00:05:45,050 --> 00:05:46,600 làm sao chúng ta làm việc đó bây giờ? 111 00:05:46,600 --> 00:05:50,440 Vâng, chúng tôi sử dụng cho vòng lặp cấu trúc, bao gồm một khởi tạo, 112 00:05:50,440 --> 00:05:52,310 một điều kiện, và một bản cập nhật. 113 00:05:52,310 --> 00:05:54,830 Đối với các vòng lặp có thể được sử dụng để lặp lại quá trình. 114 00:05:54,830 --> 00:05:59,610 >> Vì vậy, nói tôi muốn nó để chào hỏi, thế giới 50 lần, sau đó tôi cho vòng lặp 115 00:05:59,610 --> 00:06:03,510 sẽ giống như thế này, nơi Tôi khởi tạo biến của tôi không. 116 00:06:03,510 --> 00:06:06,200 Các điều kiện là tôi là ít hơn 50. 117 00:06:06,200 --> 00:06:09,670 Và sau đó cập nhật là nó gia tăng bởi một mỗi lần. 118 00:06:09,670 --> 00:06:14,700 Vì vậy, điều này sẽ làm sẽ là để in hello, thế giới 50 lần trong một hàng. 119 00:06:14,700 --> 00:06:18,080 >> Bây giờ, nói rằng tôi muốn lặp hơn chiều cao của kim tự tháp. 120 00:06:18,080 --> 00:06:21,560 Sau đó, thay vì mã hóa cứng một số giá trị trong điều kiện, 121 00:06:21,560 --> 00:06:23,280 Tôi chỉ sử dụng chiều cao biến. 122 00:06:23,280 --> 00:06:27,180 Vì vậy, điều này sẽ làm là lặp hơn chiều cao mỗi hàng. 123 00:06:27,180 --> 00:06:30,280 Và tôi có thể làm một cái gì đó bên trong của cơ thể của vòng lặp đó. 124 00:06:30,280 --> 00:06:32,710 >> Chúng ta muốn gì để làm bên trong thân của vòng lặp? 125 00:06:32,710 --> 00:06:36,550 Vâng, như chúng tôi chỉ ra trước đây, chúng tôi muốn in các không gian và băm 126 00:06:36,550 --> 00:06:40,730 kim tự tháp bên trái và sau đó in hai không gian và sau đó in băm. 127 00:06:40,730 --> 00:06:42,500 Vì vậy, chúng tôi đã đoán ra. 128 00:06:42,500 --> 00:06:45,670 Vì vậy, chúng ta có thể bắt đầu để điền trong chương trình của chúng tôi nhiều hơn. 129 00:06:45,670 --> 00:06:49,850 >> Ở đây tôi có một bên ngoài vòng lặp cho rằng lặp trên mỗi dòng trong các kim tự tháp. 130 00:06:49,850 --> 00:06:53,340 Và bên trong cơ thể mà tôi sẽ in không gian liên tục, 131 00:06:53,340 --> 00:06:56,860 băm nhiều lần, và sau đó khoảng cách, và sau đó băm cho các kim tự tháp phải, 132 00:06:56,860 --> 00:07:00,440 và sau đó, cuối cùng, một mới dòng để bắt đầu dòng kế tiếp. 133 00:07:00,440 --> 00:07:02,860 >> Cùng với đó, chúng tôi đã nhắc nhở người sử dụng cho đầu vào. 134 00:07:02,860 --> 00:07:04,510 Chúng tôi đã thực hiện chắc chắn rằng đó là hợp lệ. 135 00:07:04,510 --> 00:07:06,280 Và sau đó chúng tôi đã rút ra các kim tự tháp. 136 00:07:06,280 --> 00:07:09,540 Vì vậy, Mario có thể thành công leo lên kim tự tháp. 137 00:07:09,540 --> 00:07:10,970 >> Tên tôi là Zamyla. 138 00:07:10,970 --> 00:07:13,840 Và đây là CS50. 139 00:07:13,840 --> 00:07:15,419