[Powered by Google Translate] ZAMYLA Chandler: Dobra, wszyscy.
Witamy Walkthrough 1.
Ta instrukcja będzie na PSET 1, który jest C. Mam nadzieję, że
wszyscy bawili się ze swoimi projektami podstaw.
Więc teraz, w tej instrukcji, mamy faktycznie będzie
stanie dostać się do C, dostać się do pisania niektóre kodu maszynowego.
Więc jeśli nie były w Walkthrough 0, to te
solucje naprawdę - jesteśmy zamiar przejść przez
set problem, porozmawiać przez kilka wspólnych wskazówek i technik
że można użyć.
Będziemy łamać przypisanie się do opanowania gryzie, tak że
Chłopaki można zacząć i mam nadzieję, że
zrozumieć, jak to zrobić.
>> Okay.
Więc pset 1.
Psets w tym roku będzie mieć strukturę, gdzie pierwsze -
tam będzie część pytań, seria
pytania, które naprawdę również pomogą Ci zacząć z
pset, pomaga ćwiczyć kilka technik, które potrzebujesz.
I tak na te pytania, nie będę się do pokrycia w
solucja ponieważ w sekcji, nauka przypisany
facet faktycznie się przejść przez te
pytania z tobą.
Na końcu sekcji, musisz odejść z
Odpowiedzi na te pytania, ale także pewność, że
można zaimplementować niektóre z cech, które będą potrzebne
w drugim przypadku części zbior.
>> Pset 1 stanowi Mario.
I to jest fajny program, gdzie w zasadzie mamy
napisać i wydrukować pół piramidy w typowej sceny Mario.
A potem druga część Pset nazywa Greedy.
I tak w istocie Greedy mamy działać jako chciwy
kasjer, gdy ktoś daje nam kwotę
że chcemy obliczyć minimalną ilość monet
możemy powrócić do nich, aby jeszcze dać im tę kwotę.
>> Dobrze.
Więc każdy solucja będzie mieć przybornik.
I znowu, nie może używać wszystkich narzędzi w tym
przybornik lub mogą używać wszyscy.
W każdym razie, to jest naprawdę dobrze wiedzieć, co
jesteś wyposażony.
Mamy więc CS50 urządzenia, które pokażę wam chłopaki i
wprowadzenie do tego.
Wtedy też w ogóle, dobry styl jest zdecydowanie jednym z naszych
Najważniejsze narzędzia.
Style zasadniczo odnosi się do sposobu odczytania jest kod?
Gdy ktoś idzie i czyta kod, oni mają
łatwy czas?
Można je zrozumieć?
Czy jest to elegancki?
Potem będziemy rozmawiać o tym, jak uzyskać ważne dane wprowadzone przez użytkownika w telefonie
Program ponieważ zarówno Mario i Greedy, musisz
zwrócić się do użytkownika do wejścia i dać jakiś numer.
Tak więc chcemy się upewnić, że numer jest prawidłowy.
Potem pamiętam w Scratch, mieliśmy bloki takie jak powtarzanie,
Powtarzaj, aż, lub poczekać, lub na zawsze.
Więc idziemy do rodzaju tłumaczenia, że ​​do teraz i C
spojrzeć na pętli, takich jak na, while i do-while.
Wtedy też będziemy musimy również wyświetlanie wartości z powrotem na
ekran, czy to w Mario lub chciwy.
I tak będziemy rozmawiać o tym, jak drukować rzeczy z ciągów
całkowitymi i pace.
I w końcu, będziemy rozmawiać o Pseudokod, naprawdę
ważne pojęcie, aby pamiętać w całym tym czasie.
Co mi pomaga mi najbardziej z zestawami problemu jest myśleć i
opisać to, co chcę zrobić, zanim myśleć o jakiejkolwiek C.
Ale po prostu opisać działania.
Więc pseudokod jest rodzaj pomiędzy angielskim i C, rodzaj
Opisując procesy bez poprawnej składni, ale
zapewnienie wystarczająco dobre struktury.
I tak będę musiał kilka przykładów Pseudokod dla Ciebie również
w niniejszej instrukcji.
>> Okay.
Więc co będziemy pracować z jest CS50 Appliance.
Jest to w istocie maszyna wirtualna tego rodzaju działa
Komputer wewnątrz własnego komputera.
I nie ma to wiele korzyści.
Jednym z nich jest, że to jest ustawione z wielu narzędzi, które będziesz
potrzeba CS50.
Jak dobrze, to znaczy, że wszyscy są na tym samym terenie,
czy Mac lub PC lub innego systemu operacyjnego.
Wszyscy możemy uruchomić maszynę wirtualną.
I tak istnieją instrukcje w manual.cs50.net/appliance.
A więc jeśli się do tego link i postępować zgodnie z instrukcjami,
wtedy mam nadzieję będzie można zainstalować urządzenie.
>> Więc po pierwsze, musisz zainstalować aplikację,
rzeczywiste zastosowanie, aby móc uruchomić maszynę wirtualną.
A następnie pobrać do urządzenia.
Ale znowu, istnieją instrukcje na
manual.cs50.net/appliance.
Więc mam już pobrane moje urządzenie, mam zainstalowane
to w Fusion VMware.
I tak kiedyś ściągnąłem urządzenia, poszedłem do pliku.
Poszłam do Open, a następnie znaleźć gdzie
składowane CS50 urządzenia.
I tam, wpadłem tutaj.
Ale mam go już tutaj, więc weźmy się bliżej.
>> Dobrze.
Więc teraz jesteśmy wewnątrz CS50 Appliance.
Zrobiłem go na pełnym ekranie.
Możesz to zrobić, jeśli chcesz lub po prostu go jako
mniejsze okno na pulpicie.
Tutaj mamy tylko prosty pulpit
domu i śmieci.
Ale jeśli przejdź do Menu, a następnie do programowania, a następnie zobaczyć
, że mamy coś, co nazywa Terminal.
I tak w tym miejscu możemy poruszać się po naszym komputerze.
Możemy napisać kod.
Ale w rzeczywistości, będziemy używać programu o nazwie gedit lub "g
Edit ", który jest zależności.
Więc będziemy używać, że jeden do pisania kodu.
Więc masz te dwa narzędzia, które będziesz używać głównie
aby napisać kod.
Potem dodatkowo, to jest po prostu jak zwykły komputer.
Mamy przeglądarkę.
Wybraliśmy Google Chrome.
Co zrobiłem to mam skonfigurować Dropbox zawierać wszystkie
dokumentów.
A więc to jest coś, co bardzo zachęca.
Dropbox wykorzystuje chmurę synchronizacji, a jeśli tak -
więc na przykład, coś przez przypadek - miejmy nadzieję, że nie -
dzieje się z urządzeniem, a następnie wszystko będzie
synchronizowane na chmurze.
>> Dobrze.
To są aplikacje, które będziesz używać w
CS50 Appliance.
Teraz, aby poruszać się w linii poleceń.
Terminal może faktycznie działać jako swego rodzaju sposób, aby rzeczywiście
wpisz komendy do -
się, jeśli jesteś Mac Finder.
Lub jeśli jesteś w Windows, uważam, że to jest "Poznaj Moje
komputer "lub coś w tym stylu.
Więc jeśli chcemy wrócić do urządzenia, otwórzmy się
okno terminalu.
Więc ma tego monitu, jharvard @ urządzenia.
Miejmy tylko uczynić ten większy.
Okay.
Jeśli więc wpisać komendy ls, to zawiera listę wszystkich
plików w naszym komputerze, w naszym katalogu.
Katalogi są tak jak folderów.
Używamy tych określeń zamiennie.
W porządku, więc mamy na liście plików
, które są w tym katalogu.
Teraz, jeśli chcemy uzyskać dostęp, na przykład, nasz Dropbox, wtedy możemy
zmieniać katalogów.
Więc CD i Dropbox.
Mamy ls ponownie, a następnie widzimy listę plików, które są w
ten folder.
Jest to analogiczne do mnie dzieje w moim domu, a następnie klikając
Dropbox, a następnie widząc listę tutaj.
>> Dobrze.
Więc powiedzmy -
kiedy macie zamiar dokonać PSET 1, zróbmy
katalog nazywany pset1.
Więc jesteśmy w Dropbox teraz, jak widać z tego,
monitować tutaj.
Więc zróbmy katalog.
Więc mkdir, nazwijmy to pset1.
I tak teraz, jeśli ls ponownie, wówczas
zobaczyć, że pset1 pojawia.
I tak, jeśli chcemy wejść do środka pset1, możemy wejść do środka
że folder z cd poleceń.
Dobrze.
Więc jeszcze raz, zobaczymy, jeśli -
powiedzieć, zróbmy to w inny sposób.
Jest to analogiczne do po prostu mówiąc "Tworzenie
New Folder, pset1.
Ale jak znaleźć, będziesz interakcji z
Terminal dużo.
Więc czasami jest to dużo łatwiejsze, szybsze prostu porażka
pracować w terminalu, aby robić te różne rzeczy.
Okay.
A potem te inne komendy.
Jest rm do usunięcia pliku.
Więc po prostu wpisać rm a następnie nazwa
złożyć go usunąć.
Pójdziemy do niektórych przykładów później.
A potem mamy coś nazwie polecenia człowiek, który
Pojawi się w instrukcji obsługi danego typu funkcji.
Znowu będę wychowywać rzeczywisty przykład, że później.
>> Tak więc kolejny bardzo ważne narzędzie, jak wspomniałem pokrótce
wcześniej, jest styl.
Więc zasadniczo, styl ma zrobić z czytelności.
Czy ktoś będzie w stanie czytać, przestrzegać i
zrozumieć swój kod?
Jest to szczególnie ważne dla Ciebie, siebie, faktycznie.
Jeśli zatrzymujesz się późno kodowania, a potem na ciebie
wrócić i jesteś jak, co to zmienna oznacza?
Powiedz, że pracujesz nad projektem grupy z kimś, a ty
zarówno spojrzeć na kod nawzajem.
To bardzo ważne, że nazywanie zmiennych poprawnie
i sprawiają, że wyglądają ładnie, bo sprawia, że ​​cała różnica.
Ale wtedy przede wszystkim, że jesteśmy w trakcie teraz.
Więc dla interesu CS50 i specjalnie dla Państwa
Stypendyści nauczania i równiarki, którzy będą patrząc na
psets, proszę, proszę użyć właściwego stylu.
A twoi koledzy nauczania będzie bardzo szczęśliwy.
Więc znowu, styl obejmuje wcięć rzeczy poprawnie,
szczególnie przy użyciu swoje szelki i wcięć tych.
Nazywanie zmienne coś, co ma sens.
W tej chwili zgodnie z konwencją, gdy masz
kilka słów w nazwie zmiennej, a następnie
połączyć je z podkreślenia, jak widać, że
Przykład Nazwa tam.
>> Wreszcie, coś o nazwie Magic Numbers.
Zasadniczo, gdy czytasz poprzez kod i powiedzieć
masz zmienna -
powiedz, nie masz zmienną, ale po prostu powiedzieć w porządku do czasu, gdy
i takie jest mniej niż 10.
Wtedy twój równiarka będzie się dobrze, poczekaj,
czego to 10 pochodzi?
Więc tak naprawdę wyjaśnić sobie wiele spraw.
Aby pomóc wyjaśnić siebie jest komentarzy.
Komentarze są prawdopodobnie najważniejszą rzeczą do włączenia
Twoje programy.
I to pomaga nie tylko faktycznie wyjaśnić -
to pomaga trochę wyjaśnić swoje rozumowanie jak
idziesz wzdłuż.
I tak, jeśli to zrobisz, ponownie, to będzie dużo łatwiejsze
cofnąć się w kodzie i rodzaju rozumiem co masz
tam robi.
Ponownie, równiarki naprawdę jak komentarz.
Więc dobrze i komentarz -
coś w rodzaju darmowych punktów.
A kto nie lubi darmowe punkty?
Można również mieć kilka linii komentarz.
I tak wliczone rodzaj szablonu tutaj.
Zasadniczo, zazwyczaj są one wykorzystane na górze
program do rodzaju wyjaśnić w ogóle to, co
Twój zestaw Problem robi.
Zawierać imię i nazwisko, datę, et cetera.
I tak, jak powiedziałem w ten komentarz multi-line,
manual.cs50.net/style_guide ma więcej wskazówek i przepisów o
styl dla pętli, et cetera.
>> Okay.
Więc teraz, że mówiłem trochę o stylu, zobaczmy
w działaniu.
Dobrze.
Więc tutaj, Tommy napisał nam uroczo straszne
przykładem stylu w programie.
Więc widać tutaj, w porządku.
To jest właściwie wszystko w porządku.
Widzisz wielowierszowego komentarz.
Go uruchomić z ukośnikiem, a następnie dwie gwiazdki.
Idziemy dalej, wyrównując gwiazdki wzdłuż linii
i zakończyć go z gwiazdką i ukośnikiem.
Dobrze.
Więc to jest w porządku.
To tutaj w porządku.
On jest w tym jego bibliotek.
Ale potem tu ma komentarzy obejmujących wiele wierszy.
Istnieje wiele rzeczy, w tym złego.
Komentarze zajmującego kilka linii, tutaj, że używa
Składnia tylko pojedynczych komentarzach internetowych.
On także spajanie wszystko w tym samym komentarzu.
Dlatego chcemy, aby tego uniknąć.
Następnie widać tutaj, że aparaty, na przykład, są
na miejsce.
Wcięcie jest źle.
To naprawdę nie ma pokazać, gdzie coś definitywnie
start i co innego się kończy.
Wtedy także, widzimy, że ma określoną zmienną i = 5 tutaj.
Ale wtedy to cztery przychodzi znikąd, i nie ma
komentarz do naprawdę wyjaśnić, jeżeli pochodzi.
>> Okay.
Więc teraz spójrzmy na coś, co jest właściwie tylko same
Kod chyba lepszym stylu.
Więc jeszcze raz, to jest dobry przykład stylu,
multi-line przykładem.
I to tutaj jest całkiem czysta.
Widzimy, że rozpoczyna if tutaj, wchodzi nowa
line, ma otwarty nawias.
Potem ma wcięcia.
Trzyma to wcięcia -
trzyma ten mundur wskazanie przez cały
program i naprawdę widać, kiedy jeden blok kodu zaczyna, kiedy
jeden blok kod kończy.
To może wydawać się trochę nitpicky z naszej strony, aby rozpocząć
z, ale zobaczymy jak piszesz kod.
Jest to bardzo przydatne, aby móc oddzielić to.
I znów, twój równiarki naprawdę podoba.
A więc widzisz, zamiast wprowadzania numeru w
Tam faktycznie nazwie zmiennej iteracji.
I tak nie jesteśmy rzeczywiście patrząc na ten kod teraz
ale tylko trochę widząc przykład
dobry kontra zły styl.
I tak, jeśli spojrzeć na nich obok siebie tu, byś
Zdecydowanie preferuję czytać jeden po prawej stronie.
>> Dobrze.
Więc jedna rzecz zanim nurkować do prawdziwego mięsa
pset jest jak skompilować i uruchomić kod.
I tak w istocie, kiedy piszesz C, to nie jest faktycznie
przetłumaczone na prawdziwego kodu maszyny, zer i
Te, które maszyna może rzeczywiście odczytać i zinterpretować.
Więc mamy coś -
Clang jest kompilator, który używamy do C.
Istnieje wiele kompilatorów.
Ale w CS50, będziemy używać dzyń.
I tak w zasadzie Clang tłumaczy z C na maszynie
Kod dla Ciebie.
Więc spójrzmy na przykład - nurkowanie do urządzenia tutaj.
Dobrze.
Więc teraz mamy w naszym katalogu domowym.
Tak naprawdę nie są tam, gdzie każdy kod jest.
Więc zmieńmy nasz katalog Dropbox/walkthrough1, gdzie
Mam zapisany jakiś kod.
Jeśli więc naciśnij ls, to zobaczymy, że mam
Kilka plików w tutaj.
>> Dobrze.
Więc ja już napisałem hello.c, więc niech go skompilować
a następnie sprawdzić, co robi.
Tak więc podstawowa komenda kompilacji byłoby dzyń następnie hello.c,
zasadniczo mówiąc okay, skompilować hello.c dla mnie.
Klikam Enter, wydaje się, że już w porządku.
Klikamy ls ponownie.
Ten plik a.out obecnie widoczne.
I tak a.out jest plik wykonywalny.
Tak więc, aby go uruchomić, należy zrobić. / A.out.
I tak widzimy, że ta hello.c Program najwyraźniej
wypisuje powitalnych pięć razy.
Dobrze.
Ale powiedzieć, że nie chcemy korzystać z a.out nazw.
Na przykład, chcemy uruchomić program, bo to witaj
łatwiej zrozumieć.
Więc powiedzmy hello.c dzyń, a następnie zasadniczo trzeba
przechodzić w niektórych rzeczach zwanych flagi.
Tak mówiąc w porządku, dobrze, że chcesz nazwać to coś innego.
Możesz również przekazać w wielu różnych bander,
co widzisz.
Więc flaga dla nazwania czegoś programu, który
chce to-o.
Po-o, można wpisać nazwę programu.
Nazwijmy go przywitać.
>> Więc teraz widzimy, że rzeczywiście mają powitania plik wykonywalny.
Tak więc możemy go uruchomić, i robi to samo, co wcześniej.
Więc teraz, że mamy cześć, możemy również usunąć, na
przykład nasz a.out.
Więc rm do usuwania, a.out, terminal poprosi, zapytaj
, aby potwierdzić, czy na pewno chcesz
usunąć czy nie.
Mówimy, y na tak.
A tam idziemy.
A.out ma.
Dobrze.
Ale czasami dostaje mylące pamiętam wszystko
Flagi, które musimy włączyć i wpisać z brzękiem.
I jak widzimy, kiedy używamy bardziej złożonych programów, dowiemy
być w tym różnych bibliotek.
A więc nasze polecenia do Clang dostaniesz dłuższe.
Tak więc zawarte w CS50 Appliance jest polecenie make.
Więc po prostu wpisać się przywitać.
Ups.
Mamy już ten plik wykonywalny.
Więc pozwól mi po prostu usunąć to szybko.
Teraz wpisz się przywitać.
I widzisz w tym wierszu mówi tutaj, że zasadniczo się
witam dotyczy wszystkich tych poleceń, które
iść do niego na Ciebie.
>> Tak więc zawarte w CS50 Appliance jest plik make.
Tak po prostu, gdy masz nazwa.c pliku, a następnie wszystko co robisz
jest powiedzieć, uczynić nazwę pliku.
A potem będziesz mieć plik wykonywalny
plik o tej nazwie.
Tak?
>> SPEAKER 1: Na moim komputerze, zamiast Clang mówi GCC.
Jest to, że jak -
ZAMYLA CHAN: Tak.
Więc komputer może powiedzieć GCC w przeciwieństwie do Clang ponieważ
GCC jest inny rodzaj kompilatora.
Jeśli jesteś w CS50 Appliance choć, to
należy za pomocą szczęk.
Jeśli nie jest, to może przyjść do mnie porozmawiać później lub wysłać
Omów na CS50 i możemy sortować, że obecnie.
>> Dobrze.
Więc teraz, że mamy rodzaj podstawowych narzędzi w dół, potem
Można zanurzyć się Mario.
Okay.
Więc Mario jest program, w którym w istocie jesteśmy będzie
że nasz własny rodzaj prymitywnej wersji Mario
tło gry.
Wiesz, Mario ma zwykle rury i
drzewo i kilka bloków.
A potem to rodzaj piramidy pół.
Więc jesteśmy po prostu będzie się koncentrować na tej piramidy pół,
czyniąc tak, że kod wyświetla skróty do rodzaju
bloków w tym formacie.
Więc co się stanie, to użytkownik będzie wejście pewne
wysokość piramidy, a potem wydrukować, że obecnie
takie, że w lewym dolnym rogu hash -
więc na samym dole tutaj - że jeden będzie wyrównać
z lewej dolnej części terminalu.
Okay.
>> Tak więc pierwszą rzeczą, którą trzeba -
pierwszy mały mini problemem musimy się zmierzyć to, jak
uzyskać dane wejściowe użytkownika.
Musimy więc mieć do czynienia z tym, co użytkownik, a następnie wejść
rodzaju rzeczy wyjściowych tam.
Więc spójrzmy wyglądać plik o nazwie apples.c że napisałem
, która zajmuje się wejść i wyjść.
Okay.
Więc w górę, podaję niektóre bibliotek
że muszę.
Naprawdę ważne tutaj jest stdio (standard I / O). , Która zajmuje
standardowych wejść i wyjść, bo będziemy
mieć do czynienia z wejść użytkowników.
Dobrze.
Więc zacznę główną funkcję.
I wtedy zwrócić się do użytkownika w porządku, ile jabłek masz?
Wtedy właśnie tutaj, co ta linia jest -
Przypisać zmienna i do wartości getInt.
>> Więc getInt to funkcja, która jest zawarta w stdio.
I tak zasadniczo, że zajmie się tym za Ciebie.
Poprosi użytkownika o int.
Cokolwiek oni powrócić, który zostanie przypisany do
zmiennej i.
I tak to jest to tylko mały program, który zmniejsza
wartość i przez 1, a następnie drukuje nową wartość.
Zaletą gedit jest rzeczywiście, że jest mini
prawy zacisk tutaj.
Więc zamiast konieczności przełączania do przodu i do tyłu pomiędzy
gedit i terminal, można rzeczywiście
wystarczy uruchomić go z tego miejsca.
Więc najpierw dostać się do odpowiedniego katalogu.
Więc zmieńmy nasze katalogi do
Dropbox/walkthrough1.
Dobrze.
Więc teraz zróbmy jabłka, kompiluje się za nami.
I tak teraz niech uruchomić jabłka.
Ile jabłek mamy?
I powiedzieć, że mam 3.
I to mówi "mwahaha będę jeść jeden z nich" i powie
"Masz teraz 2 jabłka".
>> Dobrze.
Więc niech się temu ponownie.
I powiedzmy, że mam 1 jabłko.
Teraz mam 0 jabłka.
Okay.
Więc ten program wydaje się działać zgodnie z oczekiwaniami.
Mamy wejście szereg, to spada do 1, a następnie
drukuje go ponownie.
Ale co, jeśli, na przykład, mam -1 jabłka?
To nie całkiem sensu.
Ale to jeszcze całkowite, więc program akceptuje.
I tak to zwraca ci jeszcze ujemną.
Więc to jest jedna lekcja dla nas, że choć getInt
Funkcja i inne związane z nich, takie jak
GetFloat lub GetString -
nawet jeśli te otrzymają nam odpowiedni rodzaj danych, na
przykład, gdybym tylko powiedział [TYPING]
wtedy byłoby mi powiedzieć, aby ponowić próbę.
Więc to będzie zajmować się niezależnie od danych wpisz swój wkład
jest, ale nie faktycznie sprawdzić, cóż, to właściwie rodzaj
wartość, że chcę?
Tak więc jedna część Mario jest, że użytkownik ma do wejścia
liczbę reprezentującą wysokość piramidy pół
że robisz.
I tak wtedy, jeśli jesteśmy skłoniło tego użytkownika na wysokości, a następnie
powinny istnieć dwa granice na ten temat.
Zgadza się?
W specyfikacji, to mówi, że nie powinno być więcej niż 23
znaków, ponieważ jest to swego rodzaju norma
Wzrost terminalu.
Ale wtedy, co inne ograniczenie, może dolny pułap może
chcemy dołączyć?
>> Jeśli mamy rzeczywiście rysunek piramidy, rodzaj myślenia powrót
do jakiego można piramidy, może być niższa niż kiedykolwiek
pewna liczba?
SPEAKER 2: Większy niż trzy.
ZAMYLA CHAN: Hmm?
SPEAKER 2: Większy niż trzy.
ZAMYLA Chandler: To jest dobry punkt.
To może być -
możemy chcieć, aby ograniczyć go tylko trzy piramidy poziomu.
Ale pomyślmy -
powiedzmy jak jeden liczy tabeli mieszania jak piramidy też.
Następnie co powinno nasza rzeczywista dolną granicą jest?
Wracając myślami do jabłek, nie chcemy
negatywny piramida wysokość.
Zgadza się?
Okay.
Więc kiedy pytasz o wprowadzanych przez użytkownika, a następnie będziesz musiał
to jakiś sposób na upewnienie się, że liczba całkowita
one zapewnić Państwu nie jest negatywna, ponieważ nie można
narysować negatywny piramidę.
>> Okay.
Tak więc istnieje kilka sposobów, aby to zrobić.
Zasadniczo, gdy prosisz o dane wprowadzone przez użytkownika chcesz żądać
które zapewniają z odpowiedniego wejścia.
Więc chcesz żądać zapewniają z kilku
, że nie jest negatywna, ale również mniej niż 24.
Tak więc mamy do czynienia z zera do 23 włącznie.
Dobrze.
Dlatego chcemy, aby nieustannie domagać -
jeśli nie dały nam prawidłową liczbą całkowitą, chcą
ciągle żądać nie.
Daj mi ważny wkład.
Daj mi prawidłowy wzrost.
Więc przypominam powrotem Scratch mieliśmy Powtarzaj aż do bloku lub
Zawsze Jeśli bloku.
Pętle są te, które są bardzo podobne do pętli i
zrobić, gdy pętla, która zajmiemy się tylko w drugim.
Więc pętla zasadniczo zawiera warunek, że sprawdzisz
to wartość logiczna, które można umieścić wewnątrz tam, podobnie jak
bloki w Scratch z kątów.
To, co dzieje się w nawiasie w pętli while.
Więc musisz mieć jakiś warunek tam.
A jak właśnie wspomniano wcześniej, warunek ten
mają do czynienia z granicach liczby całkowitej, który został wprowadzony.
Więc warunek miałby coś z tego, czy
całkowita jest w odpowiednich granicach.
>> Więc to jest pętla while.
Na przykład, możesz zwrócić się do liczby całkowitej, a następnie
stałą kontrolę podczas wejście to nie jest ważne.
Na przykład, na bieżąco ponownego monitowania, ciągle pytając
użytkownika do liczby całkowitej.
Tak, że może być w jedną stronę.
Innym sposobem może być wykonać w pętli, która jest bardzo
podobna do pętli while, z wyjątkiem tego, co zrobić, gdy nie jest -
można zobaczyć przez rodzaj składni -
jest to, że ma zrobić, a następnie rzeczywistego ciała pętli pierwszy.
Potem ma warunków jednocześnie.
Co więc zrobić, gdy pętle -
co są przydatne jest to, że faktycznie wykonuje
kod co najmniej raz, a następnie sprawdzić, czy warunek jest
spełnione.
Więc jeśli były zrobić zrobić podczas pętli, a następnie wewnątrz
Oświadczenie można skłonić do liczby całkowitej, ponieważ będziesz w
najmniej zadać użytkownikowi raz.
A potem po skłonić ich, można powiedzieć, w porządku,
dobrze, kiedy już to zrobisz, to jest ważne?
Jeśli tak jest, to możesz po prostu grać do woli.
Ale jeśli nie jest, to będzie to po prostu zachowywać się jak podczas regularnych
pętli, a następnie przechowywać na pytania.
>> Okay.
Więc wracamy do Mario.
Tak więc wiemy, jak skłonić do prawidłowego wprowadzania danych przez użytkownika, który jest
w ramach odpowiednich granicach.
Więc teraz faktycznie trzeba wyciągnąć ten piramidę pół.
Wygląda na to, prostych znaków tekstu.
Więc faktycznie otwarty -
niech po prostu otworzyć okno i powiedzieć, dobrze, dobrze, co, gdybym
rzeczywiście będzie to zrobić ręcznie, wpisz jeden samodzielnie?
Okay.
Zobaczmy więc.
Powiedzmy, na przykład, chcemy zrobić piramidę, która jest
ustawione wzdłuż lewej strony, a potem po prostu zrobić -
w Mario, górny poziom ma dwa bloki zamiast jednego.
Więc zaczynamy od dwóch.
Klikamy Enter.
Mamy trzy, a potem cztery, Enter, pięć.
Okay.
Więc to jest bardzo proste.
Poza tym zestawem problemów, chcemy faktycznie dostosowanie do
prawej stronie naszego ekranu.
Dobrze.
Tak, jak można się z was faktycznie wpisz to takie, że
to jest ustawione wzdłuż prawej?
Zamiast umieszczać hash pierwsze, jak można rodzaj
przenieść go ze sobą?
SPEAKER 3: Napisz wiersz?
ZAMYLA CHAN: Hmm?
SPEAKER 3: Napisz wiersz?
ZAMYLA CHAN: Tak.
Tak.
Możesz napisać jak podkreślenia czy coś
, ale możemy tylko powiedzieć używać spacji.
Postawmy się w jak trzy spacje tutaj.
Potem następna linia, dobrze, że musimy umieścić dwie spacje.
Kolejny wiersz, po prostu umieścić jeden przestrzeń.
I wtedy na naszej ostatniej linii, nie mielibyśmy kłopotów żadnych spacji.
I tam mamy piramidę.
>> Tak, że to rodzaj -
Pamiętam ten rodzaj logiki.
I spróbować dowiedzieć się jakiś wzór, który możemy,
następnie przełożyć na C i angażować w jakieś pętli.
Dobrze.
Tak mówimy mieć wysokość osiem, to nasz pierwszy wiersz będzie miał
dwa skróty.
Jednak, aby te skróty, trzeba by napisać trochę
obowiązuje wcześniej.
Zgadza się?
Co zrobiłem to właśnie przeszedł.
Wyciągnąłem go z siebie, piramidy w moim edytorze tekstu,
piramidy o wysokości ośmiu i oblicza liczbę
obowiązuje musiałem zrobić.
Więc powiedziałem: dobrze, dobrze pierwszy wiersz jest
będzie mieć dwa hashe.
Ale przed tym, muszę wejść siedem miejsc.
Następny ma sześć miejsc, a następnie
trzy skróty, et cetera.
>> Więc spróbujmy i doprowadzić to do innej warstwy
abstrakcja.
Co zrobić, jeśli mieliśmy do n-tego rzędu, jak wiele i jak skróty
wiele miejsca będzie nam potrzebne?
Czy ktoś zobaczyć wzór?
Więc pierwszy wiersz ma dwa hashe.
Druga ma trzy.
Trzeci ma cztery.
Więc nth rząd musiałby -
GŁOŚNIK 4: N plus 1?
ZAMYLA CHAN: Tak.
N plus 1.
Dokładnie.
Tak więc widzimy, że liczba skrótów będzie -
Jeśli liczymy pierwszy wiersz jeden, liczba
z mieszania jest po prostu będzie jeden więcej.
Okay.
Więc co z tym liczba miejsc?
Więc spróbować wyrazić w zakresie wysokości.
Jeśli wysokość jest osiem, to pierwszy
Wiersz ma siedem miejsc.
Tak więc tego rodzaju odpowiada 8 minus 1.
Zgadza się?
Więc drugi wiersz ma mieć sześć pomieszczeń,
który jest 8 minus 2.
Więc mam zamiar zostawić je do Ciebie do rodzaju dowiedzieć
wzór do tego.
>> Okay.
Ale w programie, czasami rzeczywiście wskaźnik zera.
Więc zaczynamy od zera, zamiast jednego.
Zamiast więc w pierwszym rzędzie wywoływanej pierwszy wiersz,
będziemy się nazywając to 0-ty wiersz.
Więc w zależności od sposobu, w jaki chcesz wdrożyć, być
bardzo uważać, czy od zera, czy zaczynają się
jeden, Twój wzór będzie przesunięcie o jeden.
Okay.
Więc teraz, że rodzaj zorientowali się program, możemy
muszę powiedzieć, okay.
Więc dla każdego rodzaju poziomie schodów, mam zamiar wydrukować
taka a taka ilość miejsc i takie i
np. liczba skrótów.
To zależy od wzoru, który ustaliliśmy wcześniej.
Okay.
Więc jeden sposób iteracja i rodzaj dzieje
przez określoną liczbę rzeczy jest dla pętli, trochę jak
powtórz 10 blok lub jak powtarzanie i wprowadzony
numer dla Scratch.
Więc zasadniczo, na każdym poziomie schodów, będziemy chcieli
wydrukować spacje pierwszy.
Następnie wydrukować liczbę skrótów.
A następnie będziemy chcieli wprowadzić nowy wiersz, a następnie powtórzyć
ponownie do kolejnego bloku.
Okay.
>> Więc spójrzmy na pętli za sekundę do rodzaju zobaczyć jeden sposób
że możemy przejść przez określoną liczbę, przejść przez liczby
kroków w tej piramidzie pół.
Tak pętli składa się z trzech części.
Po pierwsze, masz inicjalizacji.
Tak, że w zasadzie ustawia zmienną.
To będzie być ustawione do tej wartości za każdym razem,
że dla startów pętli.
Wtedy będziesz mieć warunek.
Twój na pętli będzie wykonywał tylko tak długo, jak
warunek jest prawdziwy.
I wtedy będziesz miał stan aktualizacji.
Tak, że ma do czynienia z zmiennej, która zainicjowana.
Więc jakiś sposób w zasadzie zapewnienie, że możemy wyrwać
z pętli, że nie trzymają się na realizacji
to na wieki wieków.
Ponieważ w przeciwieństwie Scratch, faktycznie nie ma po prostu
zwykły loop Forever.
W C, program musi zakończyć ostatecznie.
Musimy więc zapewnić, że w jakiś sposób mamy go zatrzymać.
>> Okay.
Więc przykładem dla pętli, które można użyć do
Mario jest to.
Więc masz całkowitą i że zaczynają się 0.
Pod warunkiem, że jest mniejsza niż wysokość, można wykonać korpus
z pętli wewnątrz o.
Następnie ciało pętli jest wykonywany, a następnie byś
podwyższenie I przez 1.
Wtedy twój program będzie sprawdzić jeszcze raz - w porządku, dobrze, jest i mniej niż
wysokość?
Jeśli tak, to wtedy można kontynuować.
Więc tutaj jest przykład zerowej indeksowania, gdzie zaczynamy w
zero, a potem -
zauważyć, że nasz stan jest mniejsza niż wysokość.
Więc powiedzieć, że nasze Wzrost jest cztery, na przykład, i
rozpocznie się na 0.
To będzie 1.
To będzie 2.
To będzie 3.
A następnie raz aktualizuje, gdy aktualizacje pętli, i będzie
być ustawiona na 4.
Ale 4 nie jest mniejsza niż 4, a więc wtedy byłoby
nadal reszty naszej pętli.
>> Okay.
Tak, że zaczyna się od zera.
Ale można również uruchomić w jednym, na przykład.
Ale skoro zaczynamy w jednym, mamy rodzaj iść jeden
czas końca.
Więc dlatego dodawać mniejsza lub równa.
Więc jednym z najlepszych rzeczy, które lubię o komputerze
programowania jest to, że tylko tak
wiele sposobów, aby zrobić rzeczy.
Tak więc można wybrać, czy od zera, czy
rozpocząć w jednym.
Ponadto, jeśli chcesz, możesz po prostu użyć
przy pętli, na przykład.
Więc może -
niech faktycznie otwarty hello.c.
Tak więc mamy do pętli tutaj.
Zaczyna się i = 0, i <5.
Mam komentarz tutaj informujący nas, co robi.
Wypisuje komentarzy pięć razy za pomocą pętli for.
Ale możemy też zrobić za pomocą pętli while, jak również.
>> Warto więc zastanowić się, jak możemy to zrobić.
Więc jeśli chcemy naśladować dla pętli, to chcemy także
naśladować inicjalizacji, stan i aktualizację.
Więc warunek powinien być całkiem proste, ponieważ w
podczas składnia, gdy patrzy się na to, to mówi while (warunek).
Więc wystarczy wpisać warunek tam.
i <5.
Okay.
Więc wiemy, że chcemy wydrukować na pożegnanie.
Wiemy, że to jest ciało naszego pętli.
Ale brakuje nam inicjalizacji
i aktualizacji, prawda?
Ponieważ nie możemy mieć na zawsze pętlę.
To musi zakończyć.
Dodajmy pewną inicjalizację tutaj używając
sam, który kiedyś w naszej pętli for, int i = 0.
Okay.
Więc zaczynamy int.
Powtarzamy tę pętlę while dopóki i jest mniejsze niż 5.
Więc jesteśmy brakuje jednej rzeczy, która jest aktualizacja.
Więc co aktualizacja musielibyśmy użyć jeśli były zasadniczo
odtwarzając na pętli powyżej?
Mamy inicjalizacji i jest równa 0.
Mamy stan i jest mniejsze niż 5.
I to tu jest aktualizacja, prawda?
Dlatego chcemy, aby skopiować to.
Chcemy powiedzieć w porządku, i + +.
To samo, co mówią i = i + 1.
Ale ponieważ jest używany tak często, skrót myślowy, który jest po prostu
Twierdzisz, że + +.
>> Great.
Okay.
Tu faktycznie nie wyjść z mojego programu jabłek.
Więc mam zamiar kliknąć Ctrl-C i że natychmiast
buty mnie z mojego programu i przynosi
mnie z powrotem do terminalu.
Tak więc, na przykład, gdy napotkasz błąd, gdzie
zapomniałem zaktualizować podczas pętli tak, że byłoby
zakończyć i wprowadzić nieskończoną pętlę, a następnie można
użyć Ctrl-C, aby wyrwać się z tego.
Dobrze.
Więc jesteśmy w odpowiednim katalogu.
Więc zróbmy hello.
A następnie, jeśli prowadzimy hello, widzimy, że pętla nie pożegnanie
dokładnie to samo jak nasz pętli for ma.
Więc to tylko wskazówka.
Nieważne, czy jesteś bardziej komfortowe z pętli lub
podczas gdy w pętli mogą być stosowane zamiennie.
Tak więc od tego, którego chcesz użyć do iteracji -
w tym przypadku -
Wysokość Mario piramidy.
I znowu, to tylko przypomnienie, jeśli zaczynają się od zera
zmiennej, a następnie będziemy chcieli mieć inny
warunek, niż gdybyś zaczął w jednym.
Więc to po prostu rodzaj tabeli pokazuje przypomnienia.
Jeśli chcesz, aby powtórzyć 10 razy, na przykład, to
można albo uruchomić swoją zmienną na zero.
I stanu może być mniejsza niż 10.
I tak, że niby pokazuje macierz tego.
>> Okay.
Więc Przeszliśmy przez Mario.
Powiedzieliśmy, Dobra, musimy sprawdzić poprawność danych wejściowych,
zero i 23 włącznie.
Mamy zamiar znaleźć jakiś wzór, jakąś sposób
wyrażania nth-tego wiersza lub wiersz.
I będziemy decydować, Dobra, jedziemy do drukuj
wiele miejsc, to wiele asocjacyjne, nowej linii.
Dobrze.
Więc mamy to.
Więc teraz możemy przejść do Greedy.
Greedy to program, w którym użytkownik daje kwotę
pieniężne, które zasadniczo można jako kasjer musi powrócić.
Ale chcesz użyć jako małe monety, jak to możliwe.
I tak to jest, gdy Algorytm zachłanny przychodzi, gdzie
będziemy chcieli wykorzystać minimalną ilość monet możliwe
sprawiają, że ilość zmian.
>> Okay.
Więc tego przykładem w roztworze może wyglądać
coś takiego.
Uruchomić. / Chciwy.
Monit powiedzieć dobrze, dobrze, jak bardzo zmiana jest winien?
Ta wartość będzie wartość w dolarach.
Tak, że będzie float.
Twój program będzie następnie obliczyć kwotę minimalną
monet potrzebnych do wykonania, w tym przypadku, $ 0,32.
I tak minimalna liczba jest cztery.
Tak więc, zanim dowiemy się, co robić, niech trochę spacer
w procesie, które można przejść o.
Więc jeśli wejście jest 32, to w zasadzie mam zamiar używać
najmniejsza ilość monet, czy używam tak wielu
duże monety jak to możliwe.
Zgadza się?
Tak więc jest to dużo łatwiejsze do korzystania z jednego kwartału
przeciwieństwie do pięciu monet.
Więc powiedzmy, trzeba return $ 0,32.
Cóż, mogę używać kwartał tego?
Tak, można.
I wtedy można byłoby zmniejszyć do 0,07 dolarów.
Zobaczmy, czy mogę użyć innego kwartał płacić Tobą.
No, no.
Nie mogę dopasować kwartał tego.
Więc mam zamiar przejść do kolejnego największego medalu.
Czy mogę używać ani grosza?
0,07 dolarów, no nie można używać ani grosza zapłacić $ 0,07.
Więc powiedz nie.
Przejść do następnego, który jest nikiel.
Można użyć niklu?
Tak.
Siedem jest większa niż 0,05 dolarów, więc możemy użyć nikiel.
A potem mamy dwa centy pozostały.
Możemy używać ani grosza?
Tak możemy.
Możemy użyć innego grosza?
Tak.
Możemy użyć innego grosza?
No bo teraz mamy pomyślnie
zapłacił plecy użytkownika.
I tak, że wynosi cztery monety używane.
>> Więc myśleć o tym procesie, co
Czas podjąć decyzję w porządku,
Jaka jest największa moneta, że ​​możemy użyć?
Po użyciu, że, mamy rodzaj zachować w pamięci, że jak bardzo
więcej pieniędzy musimy powrócić instrukcji, jak również, jak wiele
Monety używamy.
Okay.
Tak, ale jeszcze raz, pierwszy krok - tak jak Mario - jest monitowanie
użytkownik za kwotę pieniężną.
A więc ta kwota będzie -
to będzie mieć wartość dziesiętną, ponieważ mamy zamiar
poprosić o dolarach.
Tak, że typ danych nie będzie liczbą całkowitą.
Ale to będzie -
yeah, float.
Ale podobnie jak jabłek, pływaków może być dodatnia lub ujemna.
Więc kiedy sprawdzić dla wartości, będziesz chciał
Aby zapewnić, że pływak -
wprowadzania danych przez użytkownika - nie jest negatywna.
Okay.
Może mamy do czynienia z pływaków w całym naszym programie, stanowią
czwarte do 0,25, dimes przez 0,1, et cetera.
Ale uważam, że dużo łatwiej radzić sobie w zaledwie czystych centów.
Również -
i porozmawiamy o tym nieco później -
w C, pływające punkty mają coś, co nazywa nieścisłości.
Tak więc, gdy wchodzi w 0,12, na przykład, komputer
faktycznie, jak sklepy czy jak 0.1111119
coś takiego.
>> Tak więc jest to dużo łatwiejsze do konwersji centów.
Więc w jaki sposób możemy przekształcić dolara wartość centów?
GŁOŚNIK 5: Times niej przez 100?
ZAMYLA CHAN: Tak.
Tak.
Więc byłoby to o 100 razy.
Ale jeden tricky rzeczą pływających punktów jest to, że
pewne nieścisłości.
Więc wystarczy spojrzeć na przykład to.
Więc mam zamiar otworzyć imprecision.c.
Okay.
Jest to bardzo prosty program.
Prosi o pływaka, i drukuje je z powrotem.
Jeden miły napiwek w terminalu wpisać jedynie jasne i
wtedy masz jasny ekran.
A więc nie trzeba szukać w każdej poprzedniej produkcji lub
błędów lub błędów raporty, coś takiego.
Okay.
Więc zróbmy niedokładności.
Niech go uruchomić.
Więc haven't -
w kodzie, nie wydrukować dowolny polecenia lub coś w tym stylu.
Więc to po prostu ma migający kursor.
Więc to tylko czeka na mnie do wejścia pływaka.
So let's -
random float.
I widzisz, że drukuje je z powrotem, ale ma kilka dodatkowych
numery, które na pewno nie należą.
Dlatego chcemy, aby upewnić się, że nie
zdarzyć się w naszym programie.
>> Tak więc to, co chcemy zrobić, to upewnić się, że rzeczywiście
rodzaj zaokrąglone do odpowiedniej wartości.
Zgadza się?
I tak szczęście, że mamy funkcję o nazwie runda wliczone
w urządzeniu.
Jest w bibliotece matematycznej.
Jeśli chcesz wiedzieć, jak korzystać runda, to faktycznie korzysta
ręczny.
Możesz kliknąć cały człowiek.
To tutaj przynosi up -
może być trochę trudne do rozszyfrowania, ale w końcu
dostaniesz go powiesić.
To niby pokazuje co funkcja robi i jeszcze trochę
możliwych zastosowań tego.
Więc kiedy w końcu uzyskać właściwe i ważne informacje od
użytkownika, a następnie chcesz przekonwertować go do groszy.
Upewnij się, że wokół wartości, tak aby uniknąć
przestawne niedokładności punkt.
>> Okay.
Więc mamy monit z pytaniem o kwotę pieniężną.
Teraz to, co chcemy zrobić, jest zasadniczo sprawdzić, prawda?
Okay, więc można używać możliwie największą monetę?
Jeśli możesz, a następnie go użyć.
Możesz śledzić ile monet używałeś do tej pory i
również wysokość spada.
Zgadza się?
A potem idziesz do sprawdzenia.
Po rodzaju wyczerpał czwarte, chcesz iść
do następnej możliwej rzeczy.
>> Więc jakie struktury lub jakiego rodzaju pętli możemy
chcesz skorzystać, aby sprawdzić, czy ciągle możemy nadal korzystać
kwartał, na przykład?
SPEAKER 6: wartość Chociaż większa niż?
ZAMYLA Chandler: Tak, doskonale.
Dokładnie.
Więc gdy wartość jest większa niż.
Tak więc, podczas gdy wartość, że mamy oddać jeszcze
większy niż w kwartale, podczas gdy wciąż możemy korzystać na kwartał,
wykorzystywać kwaterę.
Śledzenie tego.
A potem dalej dzieje.
Perfect.
Okay.
O, tu mam tylko włączone tylko kilka wskazówek, jak drukować
wartości na zewnątrz.
Tak w funkcji printf, mamy zazwyczaj było tylko
czynienia z ciągów.
Ale gdy chcesz wydrukować int lub tylko jakikolwiek rodzaj
cyfra, trzeba trochę napisać rodzaj uchwytu miejsce.
Więc to jest reprezentowane przez procent,% d dla liczb całkowitych.
Będziesz pisać, wtedy później będziesz faktycznie -
po przecinku -
umieścić w jakie wartości faktycznie idzie tam.
Racja.
>> Okay.
Więc stwierdziliśmy, że chcemy sprawdzić, czy -
jednym ze sposobów na osiągnięcie tego celu byłoby stale sprawdzać, czy
możemy nadal korzystać z kwartałów, a następnie użyj czwarte, należy
śledzenia, a następnie przejść do następnej największej wartości.
Teraz inny rodzaj schludny sposób, że można to zrobić, jest
pomocą operatora modulo.
Więc już mamy plus, minus, mnożenie i dzielenie
dla nas dostępne.
Ale operator modulo jest rodzaj schludne.
Co robi to właściwie powrót Pozostała
dzielenie dwóch liczb.
Więc jeśli pamiętać w przypadku długiego dzielenia kiedy będzie, powiedzmy,
zrobić 74 podzielone przez 3, możesz napisać to, przeniesienie,
odejmowanie, a następnie na koniec liczba na dole jest
reszta.
Cóż, co modulo to właściwie tylko daje ci to.
Tak więc 74 modulo 3 da ci 2.
Podobnie, 10 modulo 2 daje 0, ponieważ nie ma żadnego
Pozostała po podzielić 10 przez 2.
6 modulo 5, dobrze 5 idzie do 6 razy, a następnie jeden
ona 1 pozostały.
Następnie, jeśli masz 7 modulo 9, dobrze 9 jest większa niż 7.
Więc to nie może pójść inne razy.
Więc to ma sens, że zwracana jest wartość 7.
Więc jeśli myślisz o modulo, jak to daje resztę
po dzielić coś, można trochę zobaczyć jak
może być w stanie wykorzystać w Greedy, prawda?
Więc jeśli rodzaj połączyć modulo może z podziałem
operator, coś w tym stylu, to może masz fajne
rodzaj Mathy sposób podejścia zestaw problemów.
>> Więc teraz, że wiemy, że istnieje kilka różnych
sposoby, że możemy to zrobić - na pewno są dużo
różnych sposobów, aby nawet napisać pętle while.
Więc napisałem trochę Pseudokod tutaj.
To może nie być identyczne z rodzaju szkieletu z twoich
kod, który piszesz.
Ale zasadniczo, proces i sposób myślenia
tak jak rozmawialiśmy.
Więc po pierwsze, pierwszy wiersz mówi, aby uzyskać pewną ilość
w dolarach.
A następnie ukryte tam jest przekształcić go centów.
Następnie a czwarte można chcemy
zwiększyć ilość.
A potem chcemy zmniejszyć ilość, wartość tego
Wracamy z powrotem.
Jak widać tutaj, to nie jest całkiem C. Ale mam również
wcięte rzeczy, kładę moje warunki wewnątrz
nawiasów.
>> Tak więc tego rodzaju dostaje mi się zaczęło.
A później, mogę tylko patrzeć składni.
Często najtrudniejsza część naprawdę o problem jest
zrozumieć, co dokładnie trzeba zrobić.
Więc raz piszesz, że w dół, to jest to dużo łatwiejsze, aby następnie
tlumaczenie Pseudokod.
A następnie od Pseudokod, składnia jest całkiem proste.
Widzimy zatem, a czwarte, mogą być stosowane, zwiększenia liczby,
zmniejszenie ilości.
Chociaż mogą być stosowane Dimes, następnie prowadzi się i tak dalej, tak
dalej, aż do wyczerpania wszystkich swoich groszy.
Wydrukować liczbę monet używanych, które będą
Minimalna kwota do instrukcji wprowadzane wartości.
I tam masz Algorytm zachłanny.
A następnie po zakończeniu, że masz również wykończone Pset 0.
>> Czy ktoś ma jakieś pytania o cokolwiek?
Dobrze.
Cóż, będę trzymać się na trochę później, jeśli masz
wszelkie pytania.
To była solucja 1.
Dzięki za przyjście.