SPEAKER 1: Beszéljünk a víz.
Ebben a problémát, kérje meg a felhasználót, hogy elmondja nekünk meddig percben a zuhany volt
majd kiszámítjuk az egyenértékű számú palack víz
hogy a zuhany használni.
>> Tehát mi a mi to-do erre a problémára?
Először megyünk akar hogy jelezzen, majd érvényesítse
A bemeneti, hogy a felhasználó megadja nekünk.
Amint arról, hogy mi érvényes felhasználói bemenet,
megyünk kiszámításához azonos számú palack víz
hogy a felhasználónak kellett közben a zuhany, és akkor nem vagyunk
Elmondod nekik kinyomtatásával ezt a számot.
>> Tehát lássuk elleni első feladat, kéri és érvényesítése
a felhasználói beviteli.
Erre írtunk egy funkció hívott
get_int található a CS50 Könyvtár.
get_int biztosítja, hogy a felhasználó bemenetek egy egész, tehát minden pozitív szám,
negatív számok, vagy nulla egyaránt elfogadhatók.
De ha a felhasználó bemenetek mást, így bármilyen kombinációja betűk és számok
vagy egész szám, akkor a felhasználói program kérni fogja újra
és ez a funkció nem fogad el semmit amíg a felhasználó ad nekik egy egész szám.
>> Szóval hogyan használjuk get_int?
Ha megnyitja a munkaterület és hozz létre egy filet integer.c nézzük
írja be a következő.
Hashtag közé cs50.h.
Ez azért szükséges, mert get_int egy CS50 könyvtár funkciója,
ezért kell tartalmaznia hashtag nyilatkozatát annak érdekében,
A funkció használatához.
És akkor a fő működni Csak megyek
egyszerűen hívja a funkciót get_int.
>> Tehát fussunk ez, és hogyan működik.
Már össze is, úgyhogy csak megy előre, és futtatni ezt a programot,
./egész szám.
Itt van egy gyors és itt van, ahol én bemenet értéke.
Mondjuk én hozott néhány egész, 50, a program kivételektől eltekintve és kilép
és ennyi.
>> De mondom, futtassa újra és I bemenet valami mást.
Talán, hello world.
Ez nem egy egész, így a program kérni, hogy újra.
Próbáljuk meg újra talán egy tizedes ebben az időben.
0,5, megint, nem egész szám, így A program nem fogja elfogadni
és megmondja, hogy újra.
Tehát lássuk, hogy ez egy másik számot.
A program fogadja el, kilép, és kész is vagyunk.
>> Tehát most van egy funkció amely lehetővé teszi számunkra, és biztosítja
hogy a felhasználó által bevitt egy egész, de hogyan
ténylegesen nyomon követheti a integer a felhasználó által bevitt?
Nos, mi nem az üzlet ezt az értéket a változó, mondjuk n.
Tehát, ha kijelentem, n egész, és én meg azt az értéket, get_int,
akkor n majd tárolni bármilyen értékelik a felhasználó megadva.
>> Rendben, most már arról, hogy a felhasználó ad nekünk egy egész
és tudjuk, hogyan kell nyomon követni Az egész, de ne felejtsük el,
egészek mind pozitív, mind negatív.
Tehát ez nem igazán van értelme összefüggésben ezt a problémát
hogy a felhasználó vesz egy zuhanyzó mondjuk negatív 12 perc.
Tehát meg kell győződnünk arról, hogy a felhasználó valóban ad nekünk egy pozitív egész szám.
Most nincs csak egy egyfunkciós arra,
így megyünk, hogy létre, hogy a magunk.
>> Ezért szeretnénk, hogy folyamatosan figyelmezteti a felhasználót
amíg adnak nekünk egy pozitív egész szám.
Ha csinálok valamit folyamatosan, majd ez hasonló egy hurok, egy ismétlés.
Tehát az egyik konstrukciók, hogy használjuk ac végrehajtására ismétlés és hurkok
egy while ciklus.
Tehát egy while ciklus, mint itt látható, végrehajtja
bármi is van a szervezetben a hurok amíg az adott állapot értékeli
az igaz.
Amint ez a feltétel értéke hamis, akkor
A program folytatódik, hogy bármilyen után jön a hurok teste.
>> Tehát míg a hurkokat fognak igazán hasznos CS50.
De ebben a konkrét esetben tudjuk, hogy mi vagyunk
majd figyelmezteti a felhasználót, legalább egyszer, és akkor is csak hurok, ha szükséges.
Tehát itt jön a speciális konstrukció, és ez az
nagyon hasonló a miközben hurok úgynevezett do-while ciklus.
>> Tehát a do-while ciklus végrehajtja a a hurok teste legalább egyszer
majd ellenőrzi, hogy hogy célszerű végrehajtani,
szemben az egy darabig hurok, amely ellenőrzi az állapotát
majd végrehajtja a szervezetben.
Tehát a do-while ciklus, amit talán tennie, kéri a felhasználó egy egész,
majd ellenőrizze, ha érvénytelen vagy nincs.
Ha ez érvénytelen, aztán ismételje meg a folyamatot kéri a felhasználót
hogy nekünk egy egész, majd Csak ha ez egész érvényes,
mi továbbra is bármilyen jön utána.
>> Most akkor veszi észre, hogy a nyilatkozat az egész n
kissé más, mint amit előtt tette az előző példában
és ez azért van, mert a hatálya alá.
Ha már bejelentett n egész szám belülről A test a do-while ciklus,
akkor nem lenne képes elérni hogy n értékét azokon kívül göndör
melles jelző hurok teste.
De mi valójában akarja érni a n értéke később a programban.
>> OK, így most beszéljünk mi ez a feltétel legyen.
Azt akarjuk, hogy csak reprompt a felhasználói amíg N érvénytelen.
Tehát azt gondolja, amit egy érvénytelen egész érték nézne
majd hozzon létre egy logikai kifejezése fejezni.
>> Már majdnem kész a részfeladat Célravezető és ellenőrzi a felhasználói input.
Szóval, hogy ez egy kicsit kicsit több felhasználóbarát
és hogy a felhasználó egy kis kicsit több információ
Az, amit mi kéri őket.
Tehát lássuk figyelmezteti a felhasználót, egy a spec, a húr perc.
Így használja a printf kimutatásaiban arról, hogy megfelel ennek pontosan.
>> Rendben.
Tehát most van egy érvényes felhasználói bemenet, egy pozitív egész szám
érték hány percig töltött a zuhany.
Mi a következő kiszámolása a megfelelő számú palackok.
Mit fogunk csinálni itt talán nagyon nyilvánvaló, hogy Ön az első,
és ez rendben.
Amit akarok, hogy mi szeretné kezdeni a gyakorlást
az elképzelést, felderítése minták és fejlődő képletek a problémát.
>> Tehát azt mondták per spec ez az egy perc a zuhany
egyenértékű körülbelül 12 palack vizet.
Így aztán két percig tartanak egyenértékű a 24,
és öt percig tartanak egyenértékű a 60.
Tehát most, ha úgy gondolja, már megvan, akkor menjünk
hátha akkor jön ki egy minta vagy formula
kifejezni, ha már azt mondják, n perc, hány üveg víz
lenne, hogy lehet kifejezni n?
>> Ismét, bár ez a Lehet, hogy egyszerű, első,
később, amikor eljutunk bonyolultabb problémák
megyünk szeretne bejutni a gyakorlatban a azonosítására
minták és a fejlődő képletek kitalálni ezeket a dolgokat.
>> Ezen c van hozzáférése aritmetikai műveletek,
összeadás, kivonás, szorzás, osztás.
Úgyhogy hagyjuk, hogy Ön most kitalálni
hogyan kell kifejezni az megfelelő számú palackok
hogy a felhasználói elfogyasztott során zuhany.
>> Rendben, már majdnem készen vagyunk.
Már kéri a felhasználótól a bemenet, már arról, hogy ez érvényes bemenet,
és akkor kitaláltam, hogy hogyan kiszámításához az egyenértékű
palackok számát, hogy fogyasztott.
Tehát az utolsó dolog, amit tehetünk, hogy kimenet a megfelelő számú palackok
és remélhetőleg ösztönözni ezek megőrzésére egy kis vizet.
>> Kibocsátja az érték egy printf.
Ha azt akartam mondani, hogy én három háziállat, például,
Lehet használni a printf hogy így néz ki.
Van három háziállat, és egy új sor szép formázás.
>> Most nem akar egyszerűen nehéz kód dolgokat.
Mondja ki a számot az én háziállat változik az idő múlásával.
Akkor fogok élni helyőrzők én printf.
Tehát itt az én szám egész.
Így fogok tenni egy helykitöltő egész számára a% i.
Megyek, hogy írjon a húr, majd miután a húr
Írok egy vessző, majd a változó, hogy szeretnék kinyomtatni.
Tehát ez az érték kerül nyomtatásra helyett, hogy helyőrzővel% i.
>> Használhatja helyőrzők, mint Nos, úszók a% f.
Azt is, hogy több helyőrzők a szövegben.
Például, ha van néhány szám A kutyák és néhány macskák száma,
Tettem két helyőrzők ide, majd én két változó megfelelő sorrendben.
>> Most, hogy tudjuk, hogyan kell nyomtatni A tárolt értékeket változó,
Az utolsó dolog, hogy tennie, hogy biztosítsa, hogy
kiírja a pontos méret feltüntetett.
Azzal, hogy már kéri a felhasználó és hitelesítették a bemenet.
Már akkor számítani az egyenértékű számú palack víz
hogy az általuk fogyasztott során zuhanyzó, és mi már outputted, amely érték a számukra.
És így, hogy már elvégeztük a víz.
>> A nevem [? Zamila,?] és ez a CS50.