Głośnik 1: Porozmawiajmy o wodzie.
W tym problem, poproś użytkownika, aby powiedzieć nam, jak długo w ciągu kilku minut ich prysznic był
a następnie obliczyć ekwiwalent liczba butelek wody
że ich prysznic używany.
>> Więc jakie są nasze do robić, dla tego problemu?
Po pierwsze, będziemy chcieli z pytaniem, a następnie zatwierdź
wejście, które użytkownik podaje nam.
Gdy mamy pewność, że mamy posiadają ważne dane wprowadzone przez użytkownika,
jedziemy do obliczenia równoważna ilość butelek wody
aby użytkownik miał podczas ich prysznic, a potem jesteśmy
Powiesz im przez drukując ten numer.
>> Warto więc zająć nasz pierwszy Zadanie, monitowania i walidacji
wejście użytkownika.
Do tego mamy napisane Funkcja zadzwoniłeś
get_int się w Bibliotece CS50.
get_int zapewnia, że ​​dane wejściowe użytkownika liczbą całkowitą, więc żadnych liczb dodatnich,
Liczby ujemne, lub wszystkie zera są akceptowane.
Ale jeśli użytkownik wprowadza niczego innego, więc dowolna kombinacja liter lub cyfr
lub liczby dziesiętne, a następnie użytkownik zostanie poproszony, aby ponowić próbę
a funkcja nie zaakceptuje niczego dopóki użytkownik nie daje im całkowitą.
>> Więc jak używamy get_int?
Jeśli otworzysz swoje miejsce pracy i utwórz plik o nazwie integer.c niech
wpisz następujące.
Hashtag obejmują cs50.h.
Jest to konieczne, ponieważ get_int Jest to funkcja biblioteki CS50,
więc musimy hashtag m.in. jego oświadczenie w celu
korzystanie z funkcji.
A potem w moim głównym funkcjonować Idę
po prostu zadzwonić do get_int funkcyjny.
>> Warto więc uruchomić to i zobaczyć, jak to działa.
Ja już skompilowane, więc niech po prostu iść do przodu i uruchomić ten program,
./liczba całkowita.
Tutaj mam szybka i oto gdzie wejście I wartość.
Say I umieścić w tylko niektóre liczby całkowitej, 50, excepts programu i kończy pracę
i tyle.
>> Ale powiedzieć, że go uruchomić ponownie i I coś innego wejścia.
Być może, hello world.
To nie jest liczbą całkowitą, więc Program poprosi mnie, aby ponowić próbę.
Spróbujmy ponownie Być może tym razem dziesiętną.
0.5 znowu nie jest to liczba całkowita program nie zaakceptuje go
i będzie to powiedz mi, aby ponowić próbę.
Więc dajmy mu kolejny numer.
Program przyjmuje go, zamykany, a skończymy.
>> Więc teraz mamy funkcję która pozwala nam i zapewnia
które użytkownik wprowadza całkowitą, ale jak możemy
faktycznie śledzić całkowita wprowadzane przez użytkownika?
Cóż, zrobimy to sklep ta wartość w zmiennej, powiedzmy n.
Więc jeśli zadeklarować liczbę całkowitą n, i ustawić tę wartość do get_int,
to n będzie przechowywać cokolwiek cenią użytkownikowi wprowadzonego.
>> Dobrze, więc teraz mamy zapewnione, że użytkownik dadzą nam całkowitą
i wiemy, jak śledzić liczby całkowitej, ale należy pamiętać,
całkowitymi są zarówno pozytywne jak i negatywne.
Więc to nie ma sensu W związku z tym problemem
że użytkownik bierze prysznic powiedzmy negatywne 12 minut.
Dlatego musimy się upewnić, że użytkownik w rzeczywistości daje nam dodatnia.
Teraz nie mamy tylko jednofunkcyjny za to,
więc będziemy mieć stworzyć, że my sami.
>> Dlatego chcemy, aby stale poprosi użytkownika
dopóki oni dają nam dodatnia.
Jeśli robię coś ciągle następnie to jest zbliżona do pętli, powtórzenia.
Tak więc jednym z konstruktami, które wykorzystują wc wdrożyć powtórzeń i pętle
Jest to pętla while.
Więc pętla while, jak pokazano tutaj, będzie wykonywał
co jest w korpusie pętlowe Dopóki podanych analizuje schemat stan
true.
Jak tylko warunku wartość false, a następnie
program przejdzie do czegokolwiek przychodzi po ciała pętli.
>> Więc gdy pętle będą być bardzo przydatny w CS50.
Jednak w tym konkretnym Sprawa, wiemy, że jesteśmy
będzie monitować użytkownika co najmniej tylko raz, a następnie w pętli, jeśli jest to konieczne.
Tak oto dochodzimy do Specjalna konstrukcja i to
Bardzo podobny do chwili Pętla nazywany pętli do-while.
>> Więc pętli do-while wykonuje ciało pętli przynajmniej raz
a następnie sprawdza, czy powinien on wykonać,
w przeciwieństwie do pętli while które będą sprawdzać stan
a następnie wykonać ciało.
Więc w pętli do-while, co może zrobić to skłonić użytkownika do liczby całkowitej,
a następnie sprawdzić, czy jest nieprawidłowy lub nie.
Jeśli jest nieprawidłowy, wtedy będziemy powtórzyć proces pytając użytkownika
dać nam kolejną liczbę całkowitą, a następnie jedynie wówczas, gdy całkowita jest ważna
będziemy kontynuować co przychodzi potem.
>> Teraz można zauważyć, że Oświadczenie o całkowitej n
różni się nieco od tego, co przedtem w poprzednim przykładzie
a to ze względu na zakres.
Gdybyśmy ogłosił całkowitą n wewnątrz ciała pętli do-while,
wtedy nie będzie w stanie uzyskać dostęp do że wartość n poza tymi kręconymi
szelki wskazujący ciała pętli.
Ale w rzeczywistości chcą uzyskać dostęp do Wartość n później w naszym programie.
>> OK, więc teraz pomówmy o co ten warunek powinien być.
Chcemy tylko reprompt użytkownik dopóki n jest nieprawidłowy.
Więc myślę sobie, co za nieważne Wartość całkowita będzie wyglądać
a następnie utworzyć logiczną Wyrażenie wyrazić to.
>> Już prawie wykończone naszej podzadania z monitowania i walidacji danych wprowadzanych przez użytkownika.
Więc zróbmy to trochę nieco bardziej przyjazny dla użytkownika
i dają użytkownikowi trochę Nieco więcej informacji
z czym mamy co skłoniło ich do.
Więc niech zapyta użytkownika, za Spec, z minuty smyczkowych.
Więc przy użyciu printf, aby upewnić się, że to dokładnie takie same.
>> W porządku.
Więc teraz mamy ważny użytkownikowi Wejście, dodatnia
wart, ile minut wydali pod prysznicem.
Więc co dalej jest obliczenie równoważna liczba butelek.
Co zamierzamy zrobić tutaj może być bardzo oczywiste dla Ciebie na początku,
i to jest OK.
To, co chcemy zrobić, to mamy chce zacząć ćwiczyć
pomysł wykrywania wzorców i rozwijania formuły problemu.
>> Więc powiedziano nam na spec że jeden minut pod prysznicem
odpowiada ok 12 butelek wody.
Tak więc dwie minuty będzie równoważne 24,
i pięć minut będzie jest równoważne 60.
Więc teraz, jeśli myślisz masz to, to niech
sprawdzić, czy można wymyślić o wzorze lub o wzorze
wyrazić, jeśli mamy mówić, n minut, ile butelek wody
byłoby to wyrażone w N?
>> Ponownie, chociaż Może być proste na pierwszy,
później, gdy mamy do bardziej skomplikowane problemy
będziemy chcieli dostać się do praktyka identyfikacji
wzory i formuły rozwijające zrozumieć te rzeczy.
>> W c masz dostęp do standardowe operacje arytmetyczne,
dodawanie, odejmowanie, mnożenie i dzielenie.
Więc zostawię go Teraz, aby dowiedzieć się,
Jak wyrazić równoważna ilość butelek
że użytkownik spożywane podczas prysznica.
>> Dobra, mamy już prawie gotowe.
Mamy monit z pytaniem o ich wejściu, mamy zapewnione, że to ważne wejście,
a potem już zorientowali się, jak obliczyć równoważną
ilość butelek, które są spożywane.
Więc ostatnią rzeczą do zrobienia jest wyjściem równoważna ilość butelek
i zachęci im oszczędzać wodę.
>> Wyprowadzanie wartość będzie być oświadczenie printf.
Gdybym chciał powiedzieć, że trzy zwierzęta, na przykład,
Mógłbym użyć instrukcji printf który wygląda mniej więcej tak.
Mam trzy zwierzęta, a nowy Linia do ładnej formatowania.
>> Teraz nie chcą po prostu rzeczy trudne kodu.
Wypowiedz numer mojego zwierzaki zmienia się w czasie.
Potem idę do wykorzystania zastępcze w mojej instrukcji printf.
Więc oto mój numer jest liczbą całkowitą.
Więc mam zamiar zrobić zastępczy dla liczb całkowitych przy użyciu% I.
Zamierzam napisać ciąg, a następnie po napisu
Piszę przecinek a potem zmienna, że ​​chcesz wydrukować.
Tak, że wartość zostanie wydrukowany zamiast tego zastępczego,% I.
>> Można użyć zastępczych, jak Cóż, dla pływaków z% f.
Można też mieć wiele zastępcze w ciągu.
Na przykład, jeśli mam jakiś numer psów i pewnej liczby kotów
Włożyłem dwa zastępcze tutaj, a następnie moje dwie zmienne w odpowiedniej kolejności.
>> Więc teraz, że wiemy, jak wydrukować wartości przechowywane w zmiennych,
bardzo Ostatnią rzeczą do zrobić, to zapewnić, że
drukować wartość w dokładny format wskazany w specyfikacji.
Z tym, jakie skłoniły użytkownika i zatwierdzone swój wkład.
Mamy wówczas wyliczyć ekwiwalent liczba butelek wody
które zużywają się podczas prysznicem, a my wyprowadzane tę wartość do nich.
I tak, mamy wypełniony wodą.
>> Nazywam się [? Zamila,?] i jest CS50.