Kryetari 1: Le të flasim për ujë.
Në këtë problem, ne i kërkojmë përdoruesit për të treguar na sa kohë në minuta dush tyre ishte
dhe pastaj ne llogarisim ekuivalent numri i shisheve të ujit
që dushi i tyre përdoret.
>> Pra cilat janë tonë për-do-së për këtë problem?
Së pari, ne do të duan të shpejtë dhe pastaj të vërtetoni
të dhëna që përdoruesi na jep.
Pasi të kemi siguruar që ne kanë të dhëna të saktë,
ne jemi duke shkuar për të llogaritur Numri i barabartë me shishe të ujit
që përdoruesi ka pasur gjatë dush e tyre, dhe pastaj ne jemi
do të tregoni atyre nga shtypjen nga atë numër.
>> Pra, le të trajtuar jonë e parë detyrë, duke bërë dhe Vleresimin
të dhëna përdoruesi.
Për këtë ne kemi shkruar një Funksioni për të thirrur
get_int gjendet në Bibliotekën CS50.
get_int siguron se inputet e përdoruesit një numër të plotë, në mënyrë që çdo numër pozitiv,
numrat negative, ose zero janë pranuar të gjitha.
Por në qoftë se përdoruesi inputeve asgjë tjetër, kështu që çdo kombinim të shkronjave ose numrave
ose numrat dhjetore, atëherë përdoruesi do të nxitet për të rigjykuar
dhe funksioni nuk do të pranojë asgjë derisa përdoruesi jep atyre një numër të plotë.
>> Pra, si nuk kemi përdorim get_int?
Nëse jeni të hapur hapësira e punës tuaj dhe të të krijojë një file me emrin integer.c le
shkruani në vijim.
Hashtag përfshijnë cs50.h.
Kjo është e nevojshme sepse get_int është një funksion bibliotekë CS50,
kështu që ne duhet të përfshijnë hashtag Deklarata e tij në mënyrë
të përdorni funksionin.
Dhe pastaj në Main tim funksionojë Unë jam vetëm duke shkuar
të thjesht thirrje get_int funksion.
>> Pra, le të drejtuar këtë dhe të shohim se si punon.
Unë kam hartuar tashmë atë, kështu që le të thjesht shkoni përpara dhe të drejtuar këtë program,
./integer.
Këtu unë kam një të shpejtë dhe këtu është ku input I vlera.
Thuaj kam vënë në vetëm një numër i plotë, 50, e excepts programit dhe shpërblej
dhe kjo është ajo.
>> Por them se kam drejtuar atë përsëri dhe I input diçka tjetër.
Ndoshta, Hello World.
Kjo nuk është një numër i plotë në mënyrë që Programi do të shkaktonte më të rigjykuar.
Le të provoni përsëri me ndoshta një decimal këtë kohë.
0.5, përsëri, nuk është një numër i plotë në mënyrë programi nuk do të pranojë atë
dhe kjo do të më thoni për të riprovuar.
Pra, le të jepte një numër tjetër.
Programi i e pranon atë, shpërblej, dhe ne jemi duke bërë.
>> Deri tani ne kemi një funksion që na lejon dhe siguron
që përdoruesi inputeve një integer, por si mund të kemi
në fakt mbajnë gjurmët e të futur integer nga ana e përdoruesit?
E pra, të gjithë ne do të bëjmë është dyqan kjo vlerë në një variabël, thonë n.
Pra, nëse unë deklaroj një numër i plotë, dhe kam vendosur këtë vlerë të get_int,
pastaj n do të ruajë gjithçka vlerësojnë përdoruesit e futur.
>> Të gjithë të drejtë, kështu që tani ne kemi siguruar që përdoruesi do të na japë një numër të plotë
dhe ne e dimë se si për të mbajtur nën i numër i plotë, por mos harroni,
integers janë pozitive dhe negative.
Kështu që nuk ka të vërtetë kuptim në kontekstin e këtij problemi
që përdoruesi merr një dush i thonë negative 12 minuta.
Pra, ne duhet të sigurohemi që përdoruesi në fakt na jep një numër i plotë pozitiv.
Tani ne nuk kemi vetëm një Funksioni i vetëm për këtë,
kështu që ne do të kemi për të krijuar atë vetë.
>> Pra, ne duam që vazhdimisht të menjëhershëm të përdoruesit
deri sa të na japin një numër i plotë pozitiv.
Në qoftë se unë jam duke bërë diçka në mënyrë të vazhdueshme, atëherë kjo është e ngjashme me një lak, një përsëritje.
Pra, një nga ndërton që ne përdorim në c për të zbatuar përsëritje dhe sythe
është një lak, ndërsa.
Kështu që një lak, ndërsa, siç treguar këtu, do të ekzekutojë
çdo gjë që është në trupin e lak si kohë sa të vlerësoj dhënë kusht
të vërtetë.
Sapo atë gjendje vlerëson të rreme, atëherë
programi do të vazhdojë të çfarëdo vjen pas trupin e lakut.
>> Kështu, ndërsa sythe do të jenë shumë të dobishme në CS50.
Por në këtë të veçantë rast, ne e dimë se ne jemi
do të menjëhershëm të përdoruesit të paktën një herë dhe pastaj vetëm lak nëse është e nevojshme.
Pra, këtu kemi ardhur për një konstrukt i veçantë dhe kjo është
shumë e ngjashme me kohë loop e quajti një lak do-kohë.
>> Kështu që një lak për ta bërë, ndërsa ekzekuton trupi i lak të paktën një herë
dhe pastaj ajo kontrollon për të parë nëse duhet ta kryejë,
në krahasim me një lak, ndërsa, i cili do të kontrollojë gjendjen
dhe pastaj ekzekutuar trupin.
Pra, në një lak për ta bërë ndërsa ajo që ne fuqi bëni është të menjëhershëm të përdoruesit për një numër të plotë,
dhe pastaj kontrolloni nëse është e pavlefshme ose jo.
Nëse është e pavlefshme, atëherë ne do të përsërisin procesin duke i kërkuar përdoruesit
për të na dhënë një numër i plotë, dhe pastaj vetëm kur se numër i plotë është i vlefshëm,
ne do të vazhdojmë të çdo gjë që vjen më pas.
>> Tani ju do të vëreni se Deklarimi i numër i plotë
është paksa e ndryshme për atë që ne bërë para në shembullin e mëparshëm
dhe kjo është për shkak të fushës.
Nëse do të kishte deklaruar numër i plotë n brenda e trupit të lak do-ndërsa,
atëherë ne nuk do të jetë në gjendje për të hyrë në se vlera e n jashtë atyre kaçurrel
formatimin e teksteve duke treguar trupin e lak.
Por ne në të vërtetë duan për të hyrë në vlera e n më vonë në programin tonë.
>> OK, kështu që tani le të flasim për çfarë duhet të jetë ky kusht.
Ne duam të reprompt vetëm Përdoruesi për aq kohë sa n është e pavlefshme.
Pra, mendoni për veten tuaj atë që një invalid vlerë e plotë do të duken si
dhe pastaj të krijojë një Boolean shprehje për të shprehur atë.
>> Ne jemi pothuajse përfundoi me subtask tonë e bërë dhe Vleresimin dhëna përdoruesi.
Pra, le të bëjnë këtë pak bit përdorues më shumë miqësore
dhe jep përdoruesit pak pak më shumë informacion
nga ajo që ne jemi duke bërë që ato të.
Pra, le të menjëhershëm të përdoruesit, sipas rregulloreve spekulim, me string minuta.
Pra, duke përdorur deklaratat tuaja printf, të bëjë siguruar që ju të përputhen me këtë saktësisht.
>> Në rregull.
Deri tani ne kemi një përdorues të vlefshme input, një numër i plotë pozitiv
Vlera për sa shumë minuta ata kaluan në dush.
Pra, çfarë është tjetër është për të llogaritur numri ekuivalente e shishe.
Ajo që ne jemi duke shkuar për të bërë këtu mund të të jetë shumë e qartë për ju në fillim,
dhe kjo është OK.
Ajo që ne duam të bëjmë është që ne duan të fillojnë praktikimin
ideja për zbulimin e modeleve dhe zhvillimin formulat për problemin.
>> Pra, ne jemi duke thënë sipas spekulim se një minutë në dush
është e barabartë me rreth 12 shishe të ujit.
Kështu, pra, dy minuta do të të jetë e barabartë me 24,
dhe pesë minuta do të të jetë e barabartë me 60.
Kështu që tani, nëse ju mendoni se ju keni marrë atë, atëherë le të
të parë nëse ju mund të dalë me një model ose formules
për të shprehur nëse kemi thënë, n minuta, sa shishe të ujit
do që të shprehet në termat e n?
>> Përsëri, edhe pse kjo mund të jetë e thjeshtë në fillim,
më vonë kur ne të merrni për të Problemet më të komplikuara
ne do të duan të marrin në praktika e identifikimit
modelet dhe zhvillim formula të kuptoj këto gjëra jashtë.
>> Në c ju keni qasje në operacionet standarde aritmetike,
Përveç kësaj, zbritje, shumëzimit, dhe ndarje.
Kështu që unë do të lënë atë për të tani ju të kuptoj se
si për të shprehur Numri i barabartë me shishe
që përdoruesi konsumuar gjatë dush të tyre.
>> Të gjithë të drejtë, ne jemi duke bërë gati.
Ne e kemi bërë që të përdoruesit për kontributin e tyre, ne kemi siguruar që kjo është input vlefshme,
dhe pastaj ne kemi realizuar artistikisht se si për të llogaritur ekuivalentin
numri i shisheve që ata konsumuar.
Pra, gjëja e fundit për të bërë është të prodhimit numri ekuivalente e shisheve
dhe shpresojmë se të inkurajojë ata për të ruajtur ujë.
>> Kompjuteri vlera do të të jetë një deklaratë printf.
Në qoftë se unë të kërkuar për të ju them se unë kanë tre kafshët shtëpiake, për shembull,
Unë mund të përdorin një deklaratë printf që duket diçka si kjo.
Unë kam tre kafshët shtëpiake, dhe një të ri Linja për formatimin e bukur.
>> Tani ne nuk duam të thjesht kodi hard gjëra.
Thuaj numrin e mia kafshe ndryshon me kalimin e kohës.
Atëherë unë jam duke shkuar për të bërë përdorimin e placeholders në deklaratën time printf.
Kështu që këtu numri im është një numër të plotë.
Kështu që unë jam duke shkuar për të bërë një placeholder për një numër të plotë duke përdorur% i.
Unë jam duke shkuar për të shkruar të vargut, dhe pastaj pas vargut
I shkruaj një presje dhe pastaj variable që unë dua të shtypura.
Kështu që vlera do të jenë të shtypura në vend të kësaj, placeholder% i.
>> Ju mund të përdorni placeholders, si mirë, sepse gjithandej me një% f.
Ju gjithashtu mund të ketë të shumta placeholders në një varg.
Për shembull, në qoftë se unë kam disa numrin e qenve dhe një numër të macet,
I vënë dy placeholders këtu dhe pastaj dy variabla e mi në mënyrë përkatëse.
>> Pra, tani që ne e dimë se si për të shtypur vlerat e ruajtura në variablave,
gjëja e fundit për të bëni është për të siguruar që ne
shtypura vlerën në formatin e saktë tregohet në specifikimet.
Me këtë, ne kemi bërë që përdoruesit dhe kontributin e tyre të vlefshme.
Ne kemi llogaritur më pas ekuivalentin numri i shisheve të ujit
që ata konsumojnë gjatë dush të tyre, dhe ne kemi outputted atë vlerë për ta.
Dhe kështu, ne kemi përfunduar ujë.
>> Unë quhem [? Zamila,?] dhe kjo është CS50.