ZAMYLA Chandler: To-ja, Zamyla. Dzisiaj mamy zamiar wdrożyć Mario, gdzie zwracamy Mario pełny piramida go przeskoczyć. Złammy dół podzadań tego problemu. Po pierwsze, chcemy, aby skłonić użytkownika dla wysokości piramidy. A potem chcemy się upewnić, że wejście jest ważny. A potem mamy zamiar Aby narysować piramidę. Więc pomówmy o monitowania i walidacji danych wprowadzanych przez użytkownika. To może wyglądać tego, pętla do-while, że prosi użytkownika dla całkowite i to tylko powtarza jeżeli całkowita jest nieprawidłowy. Więc co należy ten warunek być? Do tego, wróćmy specyfikacji. Cóż, spec mówi nam, że każda ważna wysokość będzie wynosić od 0 do 23, włącznie. Więc to znaczy, że wszelkie nieprawidłowe wysokość będzie mniejsza niż 0 lub więcej niż 23. Więc teraz, że mamy tę informację, niech zaprojektować naszą kondycję. Ale musimy być ostrożni, bo teraz mamy dwa Boolean które chcemy ocenić. Tu podajemy wam z tabeli prawdy. To pozwala nam na dwa Boolean, Boolean jeden i dwa. I możemy ocenić zarówno bool1 i BOOL2 lub bool1 lub BOOL2. Więc jaka jest różnica między a i lub? Cóż, bool1 i BOOL2 będzie ocenić wartość true wtedy i tylko jeśli oba Boolean są prawdziwe, natomiast lub operacji będzie prawdziwe, jeśli któryś z gdy Boolean lub oba są prawdziwe. Tak z tego względu, sprawdzić, czy można dowiedzieć się, co odpowiedni warunek Twój pętli do-while za niepoprawną n będzie. Z tym, jakie skłoniły i zatwierdzone użytkownik jest wysokość piramidy że chcą. Więc teraz, to do nas narysować piramidę. Pełne piramidę za to Problem będzie wyglądać trochę jak ten, w którym mamy lewy piramidę, pewne luki, a następnie w prawo piramidy. Warto więc podzielenie go trochę. Jeśli pójdę do mojego edytora tekstu, tutaj mam rysowane nam piramidę wyrównany do lewej. Ale to nie zrobi. To, co chcemy zrobić, to chcemy wpierw stworzyć wyrównany do prawej piramidę. Tak więc, aby to zrobić, po prostu wcisnąć moje skróty wzdłuż boku, Ja tylko zamiar umieścić kilka znaków pomiędzy nimi, tylko tych kropek. Potem mam zamiar umieścić dwa na Następna linia, a jeden na tej linii. I tak oto mam wyrównany do prawej piramidę. Po tym, mam zamiar wróć do górnego rzędu i umieścić w szczelinie, która jest na spec, dwie przestrzenie. Potem idę do wypełnienia Inne boku piramidy. Zamierzam przejść do drugiego rzędu, pisać dwa pomieszczenia do szczeliny, a następnie dwa skróty. Powrót do trzeciego rzędu, dwa miejsca przez szczeliny i trzech skrótów. I na koniec, dwie przestrzenie przez szczeliny i czterech skrótów. Więc to, co pełne piramida będzie wyglądać. Oczywiście, nie chcemy Te punkty na drodze. Więc mamy zamiar zastąpić je kropki, umieszczając kilka spacji. Jeden, dwa, trzy na pierwszej linii. Jeden, dwa na sekundę. I jeden na trzeciej linii. Więc to, co byśmy zrobili, gdybyśmy chciał po prostu zrobić pełną piramidę, powiedzieć, w naszym edytorze tekstowym. Więc weźmy to, rozumienia wzorców, i przekonwertować go do jakiegoś Pseudokod. Dla każdego wiersza piramidy, chcemy aby wydrukować, a następnie w lewo piramidę przerwa, a potem w prawo piramidy. Na lewym piramidy, możemy wydrukować Wymaganą ilość przestrzeniach następnie hashe. Następnie wydrukować lukę, która Zaledwie dwa miejsca za każdym razem. A w prawej piramidy, możemy wydrukować odpowiednia liczba skrótów. Dla drugiego rzędu, przeprowadzono dokładnie taki sam sposób. Drukujemy przestrzenie dla lewego piramida, wymaganą ilość z mieszań, luka, dwóch pomieszczeń oraz potem hashe dla prawej piramidy. Zajmijmy wzór dla lewego piramidy. Gdybym miał do celów w tym przykładzie, wysokość ośmiu wnioskowanych przez użytkownik, to mój pierwszy wiersz miałoby jeden hash i siedem miejsc. Mój drugi rząd musiałby dwa hashe, sześć spacji. Trzeci rząd, trzy, pięć hashe obowiązuje. Prawdopodobnie można to zrobić samodzielnie na wysokości ośmiu i określenie dla każdego rzędu ile mieszań i ile miejsca trzeba. Ale to, co chcemy zrobić, to chcemy abstrakcyjne go. Więc pytam Cię o dowolnej n-tego wiersza, ile mieszań i ile miejsca potrzebujemy? Teraz, jak to określić wzorzec dla ilu mieszań i ile miejsca jest potrzebne do każda n-ty wiersz dla danej wysokości, Pamiętaj, aby być ostrożnym od tego, jak jesteś indeksowania. Co mam na myśli to, że w codziennym Życie większości z nas rozpoczyna liczenie po drugim. Więc pierwszy wiersz będzie numerem jeden. A drugi wiersz byłby wiersz liczba dwóch, tak dalej, i tak dalej. Ale w informatyce i CS50, mamy zero-indeksowane. Więc zacząć odliczanie od zera. Więc pierwszy wiersz będzie będzie numer wiersza zero. A w drugim rzędzie byłoby numer jeden wiersz. Więc gdybym miał wysokość ośmiu do moja piramida, to ostatnia wartość n byłby rzeczywiście siedem, a nie osiem. Więc uważaj na ten temat. A należy pamiętać, gdy jesteś ustalania Twój wzór czy zero-indeksowane lub jeden indeksowane OK. Więc teraz, że mamy wzór dla lewego piramidy musimy określić wzór do szczeliny. Na szczęście, jest to bardzo proste. To po prostu zawsze dwie przestrzenie. Teraz przystępujemy do właściwego wzoru. Pierwszy wiersz będzie miał jeden hash. Drugi rząd, dwa. Trzeci rząd, trzy. Itd. itp. Więc jeszcze raz, określić dla każdego abstrakcyjne n i każda wysokość ilu mieszań A ilu przestrzenie Każdy wiersz powinien mieć. OK. Więc wiemy, że dla każdego wiersza my trzeba przeprowadzić jakiś proces. Jak to robimy? Cóż, możemy użyć pętli for konstruktem, składa się z inicjalizacji stan i aktualizacja. Pętle mogą być stosowane powtórzyć proces. Tak mówią chcę się przywitać, Świat 50 razy, to mój pętli for będzie wyglądać tak, gdzie Zainicjować mój zmienną zero. Warunkiem jest to, że jest mniejszy niż 50. A potem zmiana to chodzi Przyrosty o jeden za każdym razem. Więc co by to zrobić byłoby wydrukować Hello, World 50 razy z rzędu. Teraz, powiedzmy chciałem iteracji na wysokości budowli. Wtedy zamiast ciężkiej kodowania jakaś wartość w warunkach, Ja po prostu użyć zmienną wysokość. Więc co to będzie zrobić, to iterate na wysokości każdego wiersza. I mogę zrobić coś w środku z ciała pętli. Co chcemy zrobić Wewnątrz korpusu pętli? Cóż, jak już wskazano wcześniej, chcemy aby wydrukować spacje i mieszań dla lewej piramidy, a następnie wydrukować dwie przestrzenie, a następnie wydrukować mieszań. Więc już zorientowali, że obecnie. Więc możemy zacząć wypełniać w naszym programie dużo więcej. Tutaj mam zewnętrznej pętli for, które iteracje nad każdym rzędzie piramidy. I wewnątrz tego ciała jadę wielokrotnie drukować przestrzenie, skróty wielokrotnie, a potem przerwa, a następnie skróty dla prawego piramidy a następnie wreszcie nowy Linia do początku następnego wiersza. Z tym, jakie skłoniły użytkownik po wejściu. Postaraliśmy się, że jest to ważne. A potem mamy wyciągnąć piramidę. Więc Mario może z powodzeniem wspiąć się na piramidę. Nazywam się Zamyla. I to jest CS50.