HLAS 1: Hovorme o vode.
V tomto probléme, žiadame užívateľov, aby oznámiť nám, ako dlho v niekoľkých minútach ich sprchy boli
a potom počítame ekvivalent počet fliaš vody
že ich sprcha použiť.
>> Takže aké sú naše na-do je Pre tento problém?
Po prvé, budeme chcieť výzvu a potvrďte
vstup, ktorý nám dáva užívateľovi.
Potom, čo sme zistili, že sme majú platné vstup užívateľa,
ideme pre výpočet prepočítaný počet fliaš vody
že používateľ mal v priebehu Ich sprcha, a potom sme
bude im to podľa vytlačiť toto číslo.
>> Takže poďme riešiť naše prvé úloha, pobádať a overovanie
vstup užívateľa.
Za týmto účelom sme napísala Funkcie pre vás zavolal
get_int nachádza v CS50 knižnice.
get_int zaisťuje, že používateľ vstupy celé číslo, takže akékoľvek kladných čísiel
záporné čísla, alebo nula sú prijímané.
Ale v prípade, že používateľ zadá niečo iné, takže ľubovoľná kombinácia písmen alebo číslic
alebo desatinné čísla, potom sa Používateľ bude vyzvaný, aby znovu
a funkcia nebude nič akceptovať kým im užívateľ dáva celé číslo.
>> Tak ako používame get_int?
Ak otvoríte svoj pracovný priestor a vytvoriť súbor s názvom integer.c poďme
zadajte nasledovné.
Hashtag patrí cs50.h.
To je nutné, pretože get_int je funkcia CS50 knižnica,
takže musíme hashtag zahŕňať jeho vyhlásenie za účelom
používať funkciu.
A potom v mojom hlavnom fungovali Práve idem
jednoducho volanie funkcie get_int.
>> Takže poďme bežať to a uvidíte, ako to funguje.
Už som zostavil to, tak poďme jednoducho ísť dopredu a spustiť tento program,
./integer.
Tu mám výzva a Tu je miesto, kde som vstupná hodnota.
Povedzme, že som dal len niektoré integer, 50, program excepts a ukončí
a to je to.
>> Ale povedať, že som ho spustiť znova a Aj vstup niečo iné.
Možno, hello world.
To nie je celé číslo, takže Program ma vyzve na opakovanie.
Skúsime to znova s snáď desiatkovej tentoraz.
0,5, opäť, nie je celé číslo, takže program nebude prijímam ho
a to mi povie k opakovaniu.
Takže dajme tomu iné číslo.
Program akceptuje to, ukončí, a my sme urobili.
>> Takže teraz máme funkciu že nám umožňuje a zaisťuje
že používateľ zadá integer, ale ako môžeme
v skutočnosti sledovať z celé číslo zadaných užívateľom?
No, to všetko budeme robiť, je obchod táto hodnota v premennej, povedzme n.
Takže ak Prehlasujem celé číslo n, I a nastaviť túto hodnotu na get_int,
potom n potom uložiť čokoľvek cení užívateľa privedený.
>> Dobre, takže teraz máme zabezpečené, že Užívateľ nám dá celé číslo
a vieme, ako sledovať o celé číslo, ale pamätajte,
čísla sú pozitívne aj negatívne.
Takže to nie je naozaj zmysel V súvislosti s týmto problémom
že používateľ má sprchu povedzme negatívne 12 minút.
Takže potrebujeme, aby sa ubezpečil, že používateľ v skutočnosti nám dáva kladné celé číslo.
Teraz nemáme len single funkcie za to,
takže budeme mať k vytvoreniu že sami.
>> Takže chceme neustále vyzve užívateľa
kým sa nám kladné celé číslo.
V prípade, že robím niečo nepretržite po tom to je podobný slučky, opakovanie.
Takže jedným z konštruktov, ktoré používame vc realizovať opakovanie a slučky
Je while.
Takže while, as Tu je ukázané, vykoná
čo je v tele slučky ako Kým daných podmienka vyhodnotená
true.
Akonáhle je táto podmienka vyhodnocuje ako nepravdivý, potom
Program bude pokračovať na čokoľvek prichádza po tela slučky.
>> Takže zatiaľ čo slučky budú bolo naozaj užitočné v CS50.
Ale v tomto konkrétnom Prípad, vieme, že sme
chystá vyzvať užívateľa prinajmenšom raz a to iba slučky v prípade potreby.
Tak tu sa dostávame k Špeciálna konštrukcia a to je
veľmi podobný chvíľu slučka volal do-while slučku.
>> Takže do-while vykonáva telo slučky aspoň raz
a potom skontroluje či by mal vykonať,
na rozdiel od while, ktorý bude kontrolovať stav
a potom spustiť telo.
Takže v do-while, čo by sme mohli urobiť, je vyzve užívateľa k celé číslo,
a potom skontrolovať, či je to neplatný alebo nie je.
Ak je to neplatné, potom budeme opakujte postup s dotazom užívateľa
aby nám dal ďalšie číslo, a potom iba v prípade, že číslo je platný,
budeme aj naďalej čo nastane neskôr.
>> Teraz si všimnite si, že Vyhlásenie o celé číslo n
sa mierne líši od toho, čo sme predtým v predchádzajúcom príklade
a to preto, že rozsah.
Keby sme vyhlásená Číslo n vnútri z tela do-while slučky,
potom by sme neboli schopní získať prístup že hodnota n mimo tých Kučeravým
traky uvedením tela slučky.
Ale my v skutočnosti chcú prístup k Hodnota n neskôr v našom programe.
>> OK, takže teraz poďme hovoriť o čo táto podmienka mala byť.
Chceme reprompt len Užívateľ tak dlho, kým n je neplatný.
Takže myslíte, že na seba, čo je neplatný celočíselná hodnota bude vyzerať
a potom vytvoriť logickú Výraz, ktorý má vyjadriť, že.
>> Sme takmer na konci s našou Podúlohy podnecovať a overovanie užívateľského vstupu.
Takže poďme urobiť to trochu trochu viac užívateľsky prívetivé
a dať užívateľovi trochu bit viac informácií
z toho, čo sme im výzvy na.
Takže poďme vyzve užívateľa, podľa spec, s reťazcom minút.
Takže pomocou svojej printf vyhlásenie, aby Uistite sa, že zápas to presne.
>> Dobre.
Takže teraz máme platného užívateľa vstup, kladné celé číslo
Hodnota za koľko minút strávili v sprche.
Takže čo ďalej je vypočítať ekvivalentný počet fliaš.
Čo budeme robiť tu mohol bude pre vás úplne zrejmá na prvý pohľad,
a to je v poriadku.
To, čo chceme urobiť, je, že sme chcú začať cvičiť
Myšlienka odhaľovať a rozvíjanie vzorca pre výpočet tohto problému.
>> Takže nám bolo povedané na spec že jedna minúta v sprche
zodpovedá približne 12 fliaš s vodou.
Tak dve minúty by sa rovná 24,
a päť minút by sa rovná 60.
Takže teraz, ak si myslíte, máte to a potom Nechal
uvidíme, či môžete prísť sa vzorom alebo všeobecného vzorca
vyjadriť, či sme povedať, n minút, koľko fľaše s vodou
by to byť vyjadrená z hľadiska n?
>> Opäť platí, že aj keď táto môže byť jednoduchý na prvý,
neskôr, keď sa dostaneme do zložitejšie problémy
budeme chcieť dostať do praxe identifikácia
vzory a rozvojových formula vyriešiť tieto veci von.
>> Vc máte prístup k štandardné aritmetické operácie,
sčítanie, odčítanie, násobenie a delenie.
Takže nechám to na Teraz sa prísť na to,
ako vyjadriť prepočítaný počet fliaš
že užívateľ spotrebuje počas ich sprchou.
>> Dobre, my sme skoro hotoví.
Máme výzva užívateľovi pre ich vstup, máme zabezpečené, že je to platný vstup,
a potom sme zistili, ako pre výpočet ekvivalentu
počet fliaš, ktoré konzumovali.
Takže posledná vec, ktorú musíte urobiť, je výstup ekvivalentný počet získaných fliaš
a snáď podnieti aby šetriť vodu.
>> Výstup hodnoty budú byť vyhlásenie printf.
Ak by som vám chcel povedať, že som tri zvieratá, napríklad,
Mohol by som použiť príkaz printf ktorá vyzerá nejako takto.
Mám tri zvieratá, a nová linka pre pekné formátovanie.
>> Teraz nechceme, aby jednoducho pevný kód veci.
Povedzme, že počet my domáce zvieratá sa mení v priebehu času.
Potom budem využívať zástupné symboly v mojom vyhlásení printf.
Tak tu moje číslo je celé číslo.
Takže idem robiť zástupný symbol predstavuje celé číslo s použitím% i.
Idem písať reťazec, a potom po reťazec
Píšem čiarku a potom sa premenná, ktorá Chcem vytlačiť.
Takže hodnota bude vytlačený namiesto toho zástupný,% i.
>> Môžete použiť zástupné symboly, as No, plaváky s% F.
Môžete mať tiež viacnásobné zástupné symboly v reťazci.
Napríklad, keď mám určitý počet psov a mačiek určitý počet,
Dal som dva zástupné symboly sem a potom moje dve premenné v danom poradí.
>> Takže teraz, keď vieme, ako vytlačiť hodnoty uložené v premenných,
tá posledná vec, urobiť, je zabezpečiť, aby sme
vytlačiť hodnotu v presnom formáte je uvedené v špecifikácii.
S tým sme prinútili Užívateľ a overený ich vstup.
My sme potom vypočíta ekvivalent počet fliaš vody
že spotrebujú počas ich sprchovacím kútom, a my sme túto hodnotu na výstupe k nim.
A tak sme dokončili vodu.
>> Moje meno je [? Zamil ,?] a to je CS50.