HLAS 1: Mluvme o vodě.
V tomto problému, žádáme uživatele, aby sdělit nám, jak dlouho v několika minutách jejich sprchy byly
a pak počítáme ekvivalent počet lahví vody
že jejich sprcha použít.
>> Takže jaké jsou naše na-do je Pro tento problém?
Za prvé, budeme chtít výzvu a potvrďte
vstup, který nám dává uživateli.
Poté, co jsme zjistili, že jsme mají platné vstup uživatele,
jdeme pro výpočet přepočtený počet lahví vody
že uživatel měl v průběhu Jejich sprcha, a pak jsme
bude jim to podle vytisknout toto číslo.
>> Takže pojďme řešit naše první úkol, pobízet a ověřování
vstup uživatele.
Za tímto účelem jsme napsala Funkce pro vás zavolal
get_int nachází v CS50 knihovny.
get_int zajišťuje, že uživatel vstupy celé číslo, takže jakékoliv kladných čísel
záporná čísla, nebo nula jsou přijímány.
Ale v případě, že uživatel zadá něco jiného, takže libovolná kombinace písmen nebo číslic
nebo desetinná čísla, pak se Uživatel bude vyzván, aby znovu
a funkce nebude nic akceptovat dokud jim uživatel dává celé číslo.
>> Tak jak používáme get_int?
Pokud otevřete svůj pracovní prostor a vytvořit soubor s názvem integer.c pojďme
zadejte následující.
Hashtag patří cs50.h.
To je nutné, protože get_int je funkce cs50 knihovna,
takže musíme hashtag zahrnovat jeho prohlášení za účelem
používat funkci.
A pak v mém hlavním fungovaly Právě jdu
jednoduše volání funkce get_int.
>> Takže pojďme běžet to a uvidíte, jak to funguje.
Už jsem sestavil to, tak pojďme prostě jít dopředu a spustit tento program,
./celé číslo.
Tady mám výzva a Zde je místo, kde jsem vstupní hodnota.
Řekněme, že jsem dal jen některé integer, 50, program excepts a ukončí
a to je to.
>> Ale říct, že jsem jej spustit znovu a I vstup něco jiného.
Možná, hello world.
To není celé číslo, takže Program mě vyzve k opakování.
Zkusíme to znovu s snad desítkové tentokrát.
0,5, opět, není celé číslo, takže program nebude přijímám ho
a to mi řekne k opakování.
Takže dejme tomu jiné číslo.
Program akceptuje to, ukončí, a my jsme udělali.
>> Takže teď máme funkci že nám umožňuje a zajišťuje
že uživatel zadá integer, ale jak můžeme
ve skutečnosti sledovat z celé číslo zadaných uživatelem?
No, to vše budeme dělat, je obchod tato hodnota v proměnné, řekněme n.
Takže pokud Prohlašuji celé číslo n, I a nastavit tuto hodnotu na get_int,
pak n pak uložit cokoliv cení uživatele přivedený.
>> Dobře, takže teď máme zajištěno, že Uživatel nám dá celé číslo
a víme, jak sledovat o celé číslo, ale pamatujte,
čísla jsou jak pozitivní, tak negativní.
Takže to není opravdu smysl V souvislosti s tímto problémem
že uživatel má sprchu řekněme negativní 12 minut.
Takže potřebujeme, aby se ujistil, že uživatel ve skutečnosti nám dává kladné celé číslo.
Teď nemáme jen single funkce za to,
takže budeme mít k vytvoření že sami.
>> Takže chceme neustále vyzve uživatele
dokud se nám kladné celé číslo.
V případě, že dělám něco nepřetržitě poté to je podobný smyčky, opakování.
Takže jedním z konstruktů, které používáme vc realizovat opakování a smyčky
Je while.
Takže while, as Zde je ukázáno, vykoná
co je v těle smyčky jako Dokud daných podmínka vyhodnocena
true.
Jakmile je tato podmínka vyhodnocuje jako nepravdivý, pak
Program bude pokračovat na cokoliv přichází po těla smyčky.
>> Takže zatímco smyčky budou bylo opravdu užitečné v CS50.
Ale v tomto konkrétním Případ, víme, že jsme
chystá vyzvat uživatele přinejmenším jednou a to pouze smyčky v případě potřeby.
Tak tady se dostáváme k Speciální konstrukce a to je
velmi podobný chvíli smyčka volal do-while smyčku.
>> Takže do-while provádí tělo smyčky alespoň jednou
a pak zkontroluje zda by měl vykonat,
na rozdíl od while, který bude kontrolovat stav
a pak spustit tělo.
Takže v do-while, co bychom mohli udělat, je vyzve uživatele k celé číslo,
a pak zkontrolovat, jestli je to neplatný nebo není.
Pokud je to neplatné, pak budeme opakujte postup s dotazem uživatele
aby nám dal další číslo, a poté pouze v případě, že číslo je platný,
budeme i nadále co nastane později.
>> Nyní si všimněte si, že Prohlášení o celé číslo n
se mírně liší od toho, co jsme předtím v předchozím příkladě
a to proto, že rozsah.
Kdybychom prohlášena Číslo n uvnitř z těla do-while smyčky,
pak bychom nebyli schopni získat přístup že hodnota n mimo těch kadeřavých
šle uvedením těla smyčky.
Ale my ve skutečnosti chtějí přístup k Hodnota n později v našem programu.
>> OK, takže teď pojďme mluvit o co tato podmínka měla být.
Chceme reprompt jen Uživatel tak dlouho, dokud n je neplatný.
Takže myslíte, že na sebe, co je neplatný celočíselná hodnota bude vypadat
a pak vytvořit logickou Výraz, který má vyjádřit, že.
>> Jsme téměř u konce s naší podúkol podněcovat a ověřování uživatelského vstupu.
Takže pojďme udělat to trochu trochu více uživatelsky přívětivé
a dát uživateli trochu bit více informací
z toho, co jsme jim výzvy k.
Takže pojďme vyzve uživatele, dle spec, s řetězcem minut.
Takže pomocí své printf prohlášení, aby Ujistěte se, že zápas to přesně.
>> Dobře.
Takže teď máme platného uživatele vstup, kladné celé číslo
Hodnota za kolik minut strávili ve sprše.
Takže co dál je vypočítat ekvivalentní počet lahví.
Co budeme dělat tady mohl bude pro vás zcela zřejmá na první pohled,
a to je v pořádku.
To, co chceme udělat, je, že jsme chtějí začít cvičit
Myšlenka odhalovat a rozvíjení vzorce pro výpočet tohoto problému.
>> Takže nám bylo řečeno na spec že jedna minuta ve sprše
odpovídá přibližně 12 lahví s vodou.
Tak dvě minuty by se rovná 24,
a pět minut by se rovná 60.
Takže teď, pokud si myslíte, máte to a pak Nechal
uvidíme, jestli můžete přijít se vzorem nebo obecného vzorce
vyjádřit, zda jsme říci, n minut, kolik láhve s vodou
by to být vyjádřena z hlediska n?
>> Opět platí, že i když tato může být jednoduchý na první,
později, když se dostaneme do složitější problémy
budeme chtít dostat do praxe identifikace
vzory a rozvojových formule vyřešit tyto věci ven.
>> Vc máte přístup k standardní aritmetické operace,
sčítání, odčítání, násobení a dělení.
Takže nechám to na Nyní se přijít na to,
jak vyjádřit přepočtený počet lahví
že uživatel spotřebuje během jejich sprchou.
>> Dobře, my jsme skoro hotovi.
Máme výzva uživateli pro jejich vstup, máme zajištěno, že je to platný vstup,
a pak jsme zjistili, jak pro výpočet ekvivalentu
počet lahví, které konzumovaly.
Takže poslední věc, kterou musíte udělat, je výstup ekvivalentní počet naplněných lahví
a snad podnítí aby šetřit vodu.
>> Výstup hodnoty budou být prohlášení printf.
Pokud bych vám chtěl říct, že jsem tři zvířata, například,
Mohl bych použít příkaz printf která vypadá nějak takto.
Mám tři zvířata, a nová linka pro pěkné formátování.
>> Teď nechceme, aby jednoduše pevný kód věci.
Řekněme, že počet my domácí zvířata se mění v průběhu času.
Pak budu využívat zástupné symboly v mém prohlášení printf.
Tak tady moje číslo je celé číslo.
Takže jdu dělat zástupný symbol představuje celé číslo s použitím% i.
Jdu psát řetězec, a pak po řetězec
Píšu čárku a potom se proměnná, která Chci vytisknout.
Takže hodnota bude vytištěn namísto toho zástupný,% i.
>> Můžete použít zástupné symboly, as No, plováky s% F.
Můžete mít také vícenásobné zástupné symboly v řetězci.
Například, když mám určitý počet psů a koček určitý počet,
Dal jsem dva zástupné symboly sem a poté moje dvě proměnné v daném pořadí.
>> Takže teď, když víme, jak vytisknout hodnoty uložené v proměnných,
ta poslední věc, udělat, je zajistit, abychom
vytisknout hodnotu v přesném formátu je uvedeno ve specifikaci.
S tím jsme přiměly Uživatel a ověřen jejich vstup.
My jsme pak vypočítá ekvivalent počet lahví vody
že spotřebují během jejich společným sprchovým koutem, a my jsme tuto hodnotu na výstupu k nim.
A tak jsme dokončili vodu.
>> Jmenuji se [? Zamila,?] a to je CS50.