ZAMYLA Chandler: To ja, Zamyla. Dzisiaj w Mario, będziemy się rysunek pół piramidę Mario wspinać się w górę. Więc porozmawiajmy o naszych do zrobienia dla tego problemu. Jedziemy chcieć do szybkiego i zatwierdź użytkownikowi na wejście, jak ważny wysoka chcą piramidy Mario być. A potem mamy zamiar go wyciągnąć. Warto więc zacząć z prośbą i walidacji użytkownika o ich wejściu. Możemy skorzystać z następujących Funkcja CS50 Biblioteka uzyskać int, która zapewni, że użytkownik wprowadza liczbę całkowitą. Wszelkie całkowite dodatnie, ujemne całkowitymi, numer 0 są uczciwa gra. W przeciwnym wypadku, użytkownik zostanie poproszony o ponownie, dopóki wejście one ważne całkowitej. Teraz choć get int robi dużo pracy za nami w celu zapewnienia, że użytkownik daje nam całkowitą, wciąż musimy zastosować niektóre dodatkowe ograniczenia na ten temat. Po tym wszystkim, nie możemy mieć Mario wspinaczki pół piramidy o wysokości ujemnego 12. Poza tym, specyfikacja problemu mówi, że możemy tylko Mario pozwalają wspinać piramida wysokości pomiędzy 0 i 23. OK, więc oznacza to, że trzeba do ciągłego monitowania użytkownika aby dać nam ważny Numer i dopiero dalej po ich dałeś nam prawidłową wysokość. Jak to robimy? Cóż, procesy ciągłe dają nam idea loops-- robi coś powtarzalnie. Jedną pętlę w C w czasie Pętla, która będzie stale wykonać ciała pętli, o ile dany warunek jest prawdziwy. Jak tylko warunku wartość false, program przystąpi do co przychodzi potem. Więc gdy pętle są jednym ze sposobów zapewnienie, że stale poprosi użytkownika o podanie ważnego wkładu. I raz dają nam ważny wkład, my przystąpić do co będzie dalej. Wiemy, że mamy zamiar zapytać użytkownik do wprowadzania co najmniej raz. Teraz dochodzimy do siostrą pętla, która jest zrobić, gdy pętla. Czy pętli while wykona Ciało pętli co najmniej raz. Więc bez sprawdzania warunku będzie wykonywał ciała pętli. A następnie sprawdzić stan zobaczyć czy to musi się powtarzać. Jest to przydatne, gdy jesteśmy walidacji danych wprowadzanych przez użytkownika. Wiemy, że będziemy zapytać ich co najmniej raz. Więc zrób pętli while może wyglądać następująco. Mamy całkowitą n. Wewnątrz i zrobienia while, natychmiast pyta użytkownika o całkowitej. Jeśli n jest nieważny, to będziemy je skłonić znowu i znowu i znowu, dopóki nie dają nam ten ważny całkowitą. Na koniec, gdy n jest poprawna informacja, będziemy przystąpić do reszty działania programu. Więc wróćmy do spec i sprawdzenie jakie są warunki dla prawidłowego wejścia będzie. Poprawne wysokości zamiar wynosić pomiędzy 0 a 23, włącznie. Więc nieważne wysokości zamiar być mniejsza niż 0 lub więcej niż 23. Dlatego należy pamiętać, aby zaprojektować Twój stan ostrożnie Wiedząc, że warunkiem do zrobienia pętli while powinien być natomiast n jest nieprawidłowy. Teraz to nie będzie proste pojedyncze wyrażenie logiczne. My będziemy musieli połączyć dwa różne wyrażenia aby cały nasz stan. Więc wystarczy spojrzeć na tabelę prawdy Mam Już wam wskazówkę, że jesteśmy będziemy mieć do czynienia z dwóch wartości logicznych. Więc tutaj jest tabela prawdy gdzie mieć dwa Booleans-- logiczną 1 i 2. Mamy więc możliwość oceny bool1 i BOOL2 lub bool1 lub BOOL2. I będzie tylko wtedy, gdy oba prawdziwe Booleans ocenić wartość true, podczas gdy wszystkie albo być prawdziwe, dopóki jeden z dwa Boolean wartość true. OK, więc poświęć chwilę, przerwa ta wideo i strawić tej tabeli prawdy. Będę tu czekał. Kiedy wrócisz, zobacz czy można poskładać Boolean wyrażenie swojej Warunkiem n jest nieprawidłowy wejściowego. Więc teraz, że mamy ważne dane wprowadzone przez użytkownika, niech iść dalej i mówić o tym, jak może zwrócić połowę piramidę. Tu, w tym prostym edytorze tekstowym Mam wyciągnąć lewą wyrównane piramidę. Ale wiemy, że musimy nasze piramida być wyrównany do prawej. Więc jak mogę to zrobić? Cóż, mógłbym spróbować pchnąć wszystko na bok tylko o oddanie trochę znaków pomiędzy. A potem, przez następne linia, mam zamiar umieścić kilka znaków pchnąć ją wzdłuż, i further-- tak dalej i tak forth-- dopóki mam prawo wyrównany piramidę. Tak więc mamy do czynienia z właściwą align piramidę, ale nie wygląda tak wielka, z kropkami. Ale nadal chcemy utrzymać ten piękny odstępy. Więc idę dosłownie wstawić kilka spacji. Zamiast trzech kropek, będę umieścić jeden, dwa, trzy przestrzenie. W drugiej linii. Powiem jedno, dwa pomieszczenia. A w przedostatnim linia, tylko jedno miejsce. I tu mam prawo wyrównany piramidę. Od robienia przykład w tekście redaktor, mamy pomysł na wzór że użyjemy narysować pół piramidy. Dla każdego rzędu, co zrobiliśmy jest wpiszemy jakieś przestrzenie, a następnie wpisane niektóre skróty, a następnie wpisane klawisz Enter, która tworzy nową linię. Więc teraz, że mamy to, chodźmy jeden krok dalej i znaleźć wzór. Więc powiem, bo Zainteresowanie tym przykładzie mamy do czynienia z wysokości 8. Pierwszy rząd będzie miał dwa mieszań Wynika to siedem miejsc. Na skróty second-- trzy, sześć spacji. Po trzecie row-- cztery, pięć skróty spaces-- tak dalej, i tak dalej aż dojdziemy do n-tego rzędu. Tak więc, proszę was o n-tego rzędu, ilu mieszań będziemy mieć a ilu przestrzenie? Więc to do ciebie, aby dowiedzieć się, Wzór do reprezentowania ilu mieszań i ile miejsca są potrzebne n-tego rzędu, kiedy masz jakąś wysokość. Teraz kiedy to zastanawianie się, należy uważać, jak masz indeksowania. Co mam na myśli to, że w codziennym życiu wszystkich nas rozpocząć liczenie, zwykle o 1. Ale w CS50 oraz w informatyce Ogólnie rzecz biorąc, jesteśmy 0 indeksowane. Więc pierwszy wiersz będzie n 0 w przeciwieństwie do 1. Uważaj na to, gdy jesteś próbuje dowiedzieć się swój wzór. Teraz wróćmy do tego, jak mamy zamiar zwrócić naszą piramidę. Dla każdego wiersza, będziemy chcieli wydrukować spacje, wydrukować skrótów, a następnie wydrukować nową linię. Podpowiedź jest tutaj Słowo "dla" każdego wiersza. W C, mamy konstrukt nazywany pętli for która składa się z inicjalizacja, warunek, aktualizacja, a ciało pętli. Powiedzieć, że chciał powiedzieć, hello świecie, 50 razy, My dla pętli będzie wyglądać następująco. Zainicjować mój liczbę całkowitą 0. Warunkiem jest to, że jest mniejszy niż 50. I wtedy mój aktualizacja jest po prostu zwiększając I jeden za każdym razem. Możemy również użyć pętli for iteracyjne nad rzeczy. Zauważcie, jak nie mamy zakodowana numer, ale raczej umieścił zmienną Wysokość zamiast do stanu. Więc co ja robię tu ja iteracji nad każdym rzędzie piramidy. Mogę zrobić coś dla siebie row wewnątrz ciała mojego pętli. Co robimy w środku Ciało pętli? Cóż, jak już powiedziałem, jesteśmy drukowania przestrzenie i jesteśmy drukowania mieszań a my drukowania nową linię. Więc moja zewnętrzna dla pętli będzie wyglądać następująco. I iteracyjne nad każdym rzędzie piramidy, używania, w tym wypadku, wysokość jako zmienna która przechowuje wysokość piramidy. Wewnątrz ciała pętli, jestem zamiar wielokrotnie drukować przestrzenie, druk kilkakrotnie mieszań, a następnie wydrukować nową linię. Teraz, na podstawie wszystkich koncepcjach Rozmawiałem o tym w przechodni, powinieneś być w stanie monitować Użytkownik na wejściu, potwierdzić, że wejście, a następnie narysować pół piramidy. Nazywam się Zamyla, a to CS50.