ZAMYLA CHAN: Đó là một tôi, Zamyla. Hôm nay trong Mario, chúng ta sẽ được vẽ nửa kim tự tháp cho Mario để leo lên. Vì vậy, chúng ta hãy nói về chúng tôi phải làm cho vấn đề này. Chúng tôi sẽ muốn để nhắc nhở và xác nhận người sử dụng cho một đầu vào có giá trị như thế nào cao mà họ muốn kim tự tháp của Mario được. Và sau đó, chúng ta sẽ rút ra nó. Vì vậy, hãy để cùng bắt đầu với thúc đẩy và chứng thực người dùng cho đầu vào của họ. Chúng tôi có thể sử dụng các CS50 Thư viện Chức năng được int đó sẽ đảm bảo rằng người sử dụng đầu vào một số nguyên. Bất kỳ số nguyên dương, âm số nguyên, số 0 là tất cả các trò chơi công bằng. Nếu không, người dùng sẽ được nhắc nhở để thử lại cho đến khi họ nhập vào một số nguyên hợp lệ. Bây giờ mặc dù get int không rất nhiều công việc cho chúng tôi trong việc đảm bảo rằng người sử dụng cung cấp cho chúng tôi một số nguyên, chúng ta vẫn cần phải áp dụng một số khó khăn thêm về điều đó. Sau khi tất cả, chúng ta không thể có Mario leo một nửa kim tự tháp có chiều cao tiêu cực 12. Bên cạnh đó, các đặc điểm kỹ thuật vấn đề nói rằng chúng tôi chỉ có thể cho phép Mario leo một kim tự tháp của đỉnh cao giữa 0 và 23. OK, do đó có nghĩa rằng chúng ta cần để liên tục nhắc nhở người dùng để cung cấp cho chúng ta một hợp lệ số lượng và chỉ tiếp tục một khi họ đã cho chúng tôi một chiều cao hợp lệ. làm sao chúng ta làm việc đó bây giờ? Vâng, các quá trình liên tục cung cấp cho chúng tôi ý tưởng về một cái gì đó làm loops-- lặp đi lặp lại. Một vòng lặp trong C như một thời vòng lặp đó sẽ liên tục thực hiện cơ thể của vòng lặp miễn là các điều kiện nhất định để đánh giá đúng. Ngay sau khi điều kiện để đánh giá sai, chương trình sẽ tiến hành bất cứ điều gì đến sau đó. Vì vậy, trong khi các vòng lặp là một trong những cách đảm bảo rằng chúng tôi liên tục nhắc nhở người dùng cho một đầu vào hợp lệ. Và một khi họ cung cấp cho chúng ta một đầu vào hợp lệ, chúng tôi sẽ tiến hành bất cứ điều gì xảy ra tiếp theo. Chúng tôi biết rằng chúng tôi sẽ yêu cầu người sử dụng cho đầu vào ít nhất một lần. Vì vậy, bây giờ chúng ta đi đến một em gái của trong khi vòng lặp, mà là việc phải làm trong khi vòng lặp. Làm trong khi vòng lặp sẽ thực hiện các cơ thể của vòng ít nhất một lần. Vì vậy, không cần kiểm tra điều kiện, nó sẽ thực hiện cơ thể của vòng lặp. Và sau đó kiểm tra các điều kiện để xem cho dù nó cần phải lặp lại chính nó. Điều này có ích khi chúng tôi xác nhận người dùng nhập vào. Chúng tôi biết rằng chúng tôi đang đi hỏi họ ít nhất một lần. Vì vậy, một làm trong khi vòng lặp might giống như thế này. Chúng tôi có một số nguyên n. Và bên trong những việc phải làm trong khi vòng lặp, chúng tôi ngay lập tức nhắc nhở người dùng cho một số nguyên. Nếu n là không hợp lệ, sau đó chúng tôi sẽ nhắc chúng một lần nữa và một lần nữa và một lần nữa cho đến khi họ cung cấp cho chúng ta biết rằng nguyên hợp lệ. Cuối cùng, khi n là một đầu vào hợp lệ, chúng tôi sẽ tiến tới phần còn lại của chương trình của chúng tôi. Vì vậy, chúng ta hãy quay trở lại spec và kiểm tra những điều kiện cho một đầu vào hợp lệ sẽ là. Các mực nước hợp lệ sẽ được từ 0 đến 23, bao gồm. Vì vậy chiều cao không hợp lệ sẽ được ít hơn 0 hoặc lớn hơn 23. Vì vậy, hãy nhớ để thiết kế tình trạng của bạn một cách cẩn thận, biết rằng điều kiện cho làm trong khi vòng lặp nên khi n là không hợp lệ. Bây giờ điều này sẽ không thể là một đơn giản biểu thức Boolean đơn. Chúng ta sẽ phải kết hợp hai biểu thức khác nhau làm cho toàn bộ điều kiện của chúng tôi. Vì vậy, chúng ta hãy nhìn vào một bảng sự thật tôi đã đã đưa cho bạn những gợi ý rằng chúng tôi sẽ được giao dịch với hai phép toán luận. Vì vậy, đây là một bảng sự thật mà tôi có hai Booleans-- Boolean 1 và 2. Vì vậy, chúng tôi có các tùy chọn để đánh giá bool1 và bool2 hoặc bool1 hoặc bool2. Và sẽ chỉ có thể đúng nếu cả hai Các phép toán luận để đánh giá đúng, trong khi tất cả hoặc sẽ là sự thật miễn là một trong hai phép toán luận để đánh giá đúng. OK, do đó, mất một lúc, tạm dừng này video và tiêu hóa bảng sự thật này. Tôi sẽ ở đây chờ đợi. Khi bạn quay lại, nhìn thấy nếu bạn có thể mảnh với nhau một biểu thức Boolean cho bạn điều kiện của n là một đầu vào không hợp lệ. Vì vậy, bây giờ mà chúng tôi có người sử dụng đầu vào hợp lệ, chúng ta hãy đi trước và nói về cách chúng tôi có thể rút ra một nửa kim tự tháp. Ở đây trong trình soạn thảo văn bản đơn giản này, Tôi đã vẽ một trái kết kim tự tháp. Nhưng chúng ta biết rằng chúng ta cần chúng tôi kim tự tháp được chỉnh lề phải. Vì vậy, làm thế nào tôi có thể làm điều này? Vâng, tôi có thể cố gắng để đẩy tất cả mọi thứ sang một bên bằng cách chỉ đưa một ít nhân vật ở giữa. Và sau đó, cho tới dòng, tôi sẽ đặt một số nhân vật khác để đẩy nó cùng, và further-- vv và vv forth-- cho đến khi tôi có quyền liên kết kim tự tháp. Vì vậy, chúng tôi có một kim tự tháp class đúng, nhưng nó không nhìn tuyệt vời như vậy với các dấu chấm. Nhưng chúng tôi vẫn muốn duy trì khoảng cách tốt đẹp. Vì vậy, tôi sẽ theo nghĩa đen chèn một số không gian. Thay vì ba dấu chấm, tôi sẽ đặt một, hai, ba gian. Trên dòng thứ hai. Tôi sẽ đặt một, hai không gian. Và trên áp chót dòng, chỉ cần một không gian. Và ở đây tôi có quyền liên kết kim tự tháp. Từ làm ví dụ trong văn bản biên tập, chúng tôi có một ý tưởng cho các mẫu mà chúng ta sẽ sử dụng để vẽ nửa kim tự tháp. Đối với mỗi hàng, những gì chúng tôi đã làm được chúng tôi gõ một số không gian, và sau đó gõ một số băm, và sau đó gõ phím Enter, mà đang tạo ra một dòng mới. Vì vậy, bây giờ chúng ta có điều đó, chúng ta hãy đi một bước nữa và tìm thấy một mô hình. Vì vậy, tôi sẽ nói, cho lợi ích của ví dụ này, chúng ta đang đối phó với một chiều cao của 8. Hàng đầu tiên là sẽ có hai băm mà sau bảy gian. Các second-- ba băm, sáu không gian. Thứ ba row-- bốn băm, năm spaces-- vv và vv cho đến khi chúng tôi nhận được hàng NTH. Vì vậy, sau đó, tôi yêu cầu bạn cho hàng NTH, bao nhiêu băm chúng ta sẽ có và bao nhiêu không gian? Vì vậy, nó là vào bạn để tìm ra một công thức để đại diện cho bao nhiêu băm và bao nhiêu không gian cần thiết cho hàng NTH khi bạn có một độ cao nào. Bây giờ khi bạn đang tính toán này ra, cẩn thận như thế nào bạn đang lập chỉ mục. Những gì tôi có ý nghĩa của điều này là trong cuộc sống hàng ngày tất cả chúng ta bắt đầu đếm, thường là bằng 1. Nhưng trong CS50 và khoa học máy tính nói chung, chúng tôi đang có 0 được lập chỉ mục. Vì vậy, các hàng đầu tiên sẽ là n từ 0 như trái ngược với 1. Hãy cẩn thận về điều này khi bạn cố gắng tìm ra mô hình của bạn. Vì vậy bây giờ chúng ta hãy quay trở lại như thế nào chúng ta sẽ rút ra kim tự tháp của chúng tôi. Đối với mỗi hàng, chúng ta sẽ muốn in các không gian, in băm, và sau đó in ra một dòng mới. Các gợi ý ở đây là từ "cho" mỗi hàng. Trong C, chúng ta có một cấu trúc được gọi là một vòng lặp for, trong đó bao gồm một khởi tạo, một điều kiện, một bản cập nhật, và cơ thể của vòng lặp. Nói rằng tôi muốn nói, xin chào thế giới, 50 lần, tôi cho vòng lặp sẽ giống như thế này. Tôi khởi nguyên của tôi 0. Các điều kiện là tôi là ít hơn 50. Và sau đó cập nhật của tôi chỉ là incrementing tôi bằng một trong mỗi thời gian. Chúng tôi cũng có thể sử dụng cho các vòng để lặp qua mọi thứ. Chú ý ở đây như thế nào chúng ta có không cứng mã hoá một số, nhưng thay vì đặt các biến chiều cao thay vì vào tình trạng này. Vì vậy, những gì tôi đang làm ở đây là tôi đang lặp lại trên mỗi dòng của các kim tự tháp. Tôi có thể làm gì đó cho mỗi hàng bên trong cơ thể của vòng lặp của tôi. chúng tôi đang làm gì bên trong cơ thể của vòng lặp? Vâng, như chúng tôi đã nói, chúng tôi đang in không gian và chúng tôi đang in băm và chúng tôi đang in một dòng mới. Vì vậy, bên ngoài của tôi cho vòng lặp sẽ giống như thế này. Tôi lặp lại trên mỗi dòng của kim tự tháp, sử dụng, trong trường hợp này, chiều cao là biến mà các cửa hàng chiều cao của kim tự tháp. Bên trong cơ thể của vòng lặp đó, tôi sẽ in các không gian liên tục, in băm nhiều lần, và sau đó in ra một dòng mới. Vì vậy, bây giờ, sử dụng tất cả các khái niệm Tôi đã nói chuyện về trong đi bộ qua đây, bạn sẽ có thể nhắc nhở người sử dụng cho đầu vào, xác nhận đầu vào đó, và sau đó vẽ một nửa kim tự tháp. Tên tôi là Zamyla, và điều này là CS50.