Oratè 1: Se pou nou pale sou dlo. Nan pwoblèm sa a, nou mande itilizatè a di nou konbyen tan nan kèk minit douch yo te ak Lè sa a nou kalkile ekivalan a kantite boutèy dlo ki douch yo itilize. Se konsa, ki sa yo nou an a-fè a pou pwoblèm sa a? Premyèman, nou ap ale nan vle de motive-ak Lè sa a valide D 'a ki itilizatè a ba nou. Yon fwa nou asire ke nou gen opinyon itilizatè ki valab, nou ap ale nan kalkile nan Nimewo ekivalan nan boutèy dlo ki itilizatè a te gen pandan douch yo, ak Lè sa a nou ap pral di yo pa enprime soti ki kantite. Se konsa nou atake premye nou an travay, sa ki pouse ak validation D 'a itilizatè. Pou sa nou te ekri yon fonksyon pou ou rele get_int sitiye nan bibliyotèk la CS50. get_int asire ke entrain yo itilizatè yon nonb antye relatif, se konsa nenpòt nimewo pozitif, nimewo negatif, oswa zewo, yo tout aksepte. Men, si itilizatè a entrain nenpòt lòt bagay, se konsa nenpòt konbinezon de lèt oswa nimewo oswa nimewo desimal, lè sa a nan pral itilizatè dwe pouse yo rekoumanse ak fonksyon an yo p ap aksepte anyen jouk itilizatè a ba yo yon nonb antye relatif. Se konsa, kouman fè nou itilize get_int? Si ou louvri vorkspas ou ak kreye yon dosye yo te rele integer.c kite nan tape sa ki annapre yo. Hashtag gen ladan cs50.h. Sa a se nesesè paske get_int se yon fonksyon cs50 bibliyotèk, se konsa nou dwe hashtag gen ladan deklarasyon li yo nan lòd yo sèvi ak fonksyon an. Lè sa a, nan prensipal mwen an fonksyone mwen jis ale tou senpleman rele get_int nan fonksyon. Se konsa, kite a kouri sa a ak wè kijan li fonksyone. Mwen te deja konpile li, kidonk kite a jis ale pi devan epi kouri pwogram sa a, ./integer. Men mwen gen yon èd memwa redaksyon ak isit la nan kote mwen D 'valè an. Di mwen mete nan sèlman kèk nonb antye relatif, 50, excepts yo pwogram yo epi demisyon e ke sa a sa. Men, di mwen kouri l 'ankò ak Mwen D 'yon lòt bagay. Petèt, alo nan lemonn. Sa a pa yon nonb antye relatif se konsa nan pwogram pral fè m 'rekoumanse. Ann eseye ankò ak petèt yon desimal moman sa a. 0.5, ankò, se pa yon nonb antye relatif se konsa pwogram nan p ap aksepte li epi li pral di m 'rekoumanse. Se konsa nou bay li yon lòt kantite. Pwogram nan aksepte li, kit, epi nou ap fè. Se konsa, kounye a nou gen yon fonksyon ki pèmèt nou, epi ki asire ki itilizatè a entrain yon nonb antye relatif, men ki jan nou kapab aktyèlman kenbe tras nan la nonb antye relatif antre pa itilizatè a? Oke, tout sa nou pral fè se magazen valè sa a nan yon varyab, di n. Se konsa, si mwen deklare yon n nonb antye relatif, ak mwen mete ke valè nan get_int, Lè sa a, n pral Lè sa a magazen tou sa valè itilizatè a antre. Tout dwa, se konsa kounye a nou te asire ke itilizatè a pral ban nou yon nonb antye relatif epi nou konnen ki jan yo kenbe tras nan nonb antye relatif la, men sonje, nonm antye relatif, yo toulède yo pozitif ak negatif. Se konsa, li pa reyèlman fè sans nan yon kontèks la nan pwoblèm sa a ki itilizatè a pran yon douch nan di negatif 12 minit. Se konsa, nou bezwen asire w ke itilizatè a aktyèlman ba nou yon nonb antye relatif pozitif. Koulye a, nou pa gen jis yon sèl fonksyon pou sa, se konsa nou ap ale nan gen yo kreye ki tèt nou. Se konsa, nou vle toujou pouse itilizatè a jiskaske yo ban nou yon nonb antye relatif pozitif. Si mwen fè yon bagay kontinyèlman Lè sa a, sa a, se analogue nan yon riban, yon repetisyon. Se konsa yonn nan konstwi yo ke nou itilize nan c aplike repetisyon ak pasan se yon riban pandan y ap. Se konsa, yon riban pandan y ap, kòm montre la a, ap egzekite tou sa ki nan kò a nan riban an kòm lontan ke bay evalye yo kondisyon nan vrè. Le pli vit ke ke kondisyon evalye ak fo, lè sa a pwogram lan pral kontinye nan tou sa vin apre kò a nan riban an. Se konsa, pandan y ap pasan yo ale nan dwe reyèlman itil nan CS50. Men, nan sa a an patikilye ka, nou konnen ke nou ap pral vit itilizatè a omwen yon fwa ak Lè sa a sèlman bouk si sa nesesè. Se konsa, isit la nou vini nan yon espesyal konstwi e ke sa a trè menm jan ak pandan y ap nan bouk rele yon riban fè-pandan y ap. Se konsa, yon bouk fè-pandan y ap ègzekutra nan kò a riban an omwen yon fwa ak Lè sa a li tcheke yo wè si wi ou non li ta dwe egzekite, kòm opoze a yon riban pandan y ap, ki pral tcheke kondisyon an ak Lè sa a egzekite kò a. Se konsa, nan yon bouk fè-pandan y ap sa nou ta ka fè se pouse itilizatè a pou yon nonb antye relatif, ak Lè sa a tcheke si li nan valab oswa ou pa. Si li nan valab, lè sa a nou pral repete pwosesis la mande itilizatè a bay nou yon lòt nonb antye relatif, ak Lè sa a sèlman lè ki nonb antye ki pè a valab, nou pral kontinye kèlkeswa sa ki vini apre sa. Koulye a, ou pral avi ke nan deklarasyon nan n nan nonb antye relatif se yon ti kras diferan nan sa nou te fè anvan nan egzanp lan anvan ak sa a se paske nan sijè ki abòde. Si nou te deklare n nan nonb antye relatif andedan nan kò a nan riban an fè-pandan y ap, lè sa a nou pa ta dwe kapab jwenn aksè nan ke valè nan n deyò nan tout sa yo Curly aparèy òtopedik ki endike kò a nan riban an. Men, nou nan reyalite vle jwenn aksè nan la valè nan n pita sou nan pwogram nou an. OK, se konsa kounye a kite a pale sou sa kondisyon sa a ta dwe. Nou vle sèlman reprompt la itilizatè osi lontan ke n se valab. Se konsa, panse nan tèt ou ki sa yon valab valè nonb antye relatif ta sanble ak Lè sa a kreye yon Boolean ekspresyon eksprime sa yo panse sa. Nou ap prèske fini ak subtask nou an nan direksyon ak validation opinyon itilizatè. Se konsa nou fè sa-a yon ti kras ti jan pi plis itilizatè zanmitay epi bay itilizatè a yon ti kras ti jan pi plis enfòmasyon nan ki sa nou ap pouse yo pou. Se konsa an n èd memwa itilizatè a, pou chak nan espèk, ak minit yo fisèl. Se konsa, lè l sèvi avèk deklarasyon printf ou a, fè asire w ke ou matche ak sa a egzakteman. Tout dwa. Se konsa, kounye a nou gen yon itilizatè ki valab D ', yon nonb antye relatif pozitif valè pou konbyen minit yo te depanse nan douch la. Se konsa, sa ki nan pwochen se kalkile nimewo a ekivalan nan boutèy. Ki sa nou ap ale nan fè isit la ta ka dwe pran anpil evidan ak ou an premye, e ke sa a OK. Ki sa nou vle fè se nou vle kòmanse pratike lide a nan detekte menm modèl yo epi devlope fòmil pou pwoblèm nan. Se konsa, nou ap di pou chak espèk a ki minit yon sèl nan douch la ki ekivalan a sou 12 boutèy nan dlo. Se konsa, Lè sa a, de minit ta dwe ekivalan a 24, ak senk minit ta dwe ekivalan a 60. Se konsa, kounye si ou panse ou te gen li, lè sa a se pou yo wè si ou ka vini ak yon modèl oswa fòmil eksprime sa yo panse si nou te di, n minit, konbyen boutèy dlo ta pou yo eksprime an tèm de n? Yon fwa ankò, menm si sa a ta ka senp nan premye, pita sou lè nou ale nan pwoblèm pi konplike nou ap ale nan vle jwenn nan pratik la pou idantifye menm modèl yo epi devlope fòmil eseye figi bagay sa yo deyò. Nan c ou gen aksè a estanda operasyon aritmetik, adisyon, soustraksyon, miltiplikasyon, ak divizyon. Se konsa, mwen pral kite li nan ou koulye a eseye figi konnen Ki jan yo eksprime nan Nimewo ekivalan nan boutèy ki itilizatè a boule pandan douch yo. Tout dwa, nou ap prèske fè. Nou te pouse itilizatè a pou D 'yo, nou te asire ke li nan D 'ki valab, ak Lè sa a nou te kalkile konnen kouman yo kalkile ekivalan a kantite boutèy ke yo boule. Se konsa, bagay la pase fè se pwodiksyon nimewo a ekivalan nan boutèy ak èspere ke ankouraje yo konsève kèk dlo. Sorti valè a ap gen yon deklarasyon printf. Si mwen te vle di ou ke mwen gen twa bèt kay, pou egzanp, Mwen ta ka sèvi ak yon deklarasyon printf ki sanble yon bagay konsa. Mwen gen twa bèt kay, ak yon nouvo liy pou bèl fòma. Koulye a, nou pa vle tou senpleman difisil Kòd bagay sa yo. Di ki kantite mwen bèt kay chanje sou tan. Lè sa a, mwen pral fè pou sèvi ak placeholders nan deklarasyon printf m 'yo. Se konsa, isit nimewo mwen an se yon nonb antye relatif. Se konsa, mwen pral fè yon kontneur pou yon nonb antye relatif lè l sèvi avèk% m. Mwen pral ekri fisèl la, ak Lè sa a apre fisèl la Mwen ekri yon vigil ak Lè sa a nan varyab ke mwen vle enprime. Se konsa, pral ke valè ap enprime nan plas ki kontneur,% mwen. Ou kapab sèvi ak placeholders, kòm byen, pou flote ak yon% f. Ou ka gen tou plizyè placeholders nan yon fisèl. Pou egzanp, si mwen gen kèk nimewo nan chen ak kèk nimewo nan chat, Mwen mete de placeholders isit la ak Lè sa a de varyab m 'ki nan lòd respektif. Se konsa, kounye a ke nou konnen ki jan yo enprime valè yo ki estoke nan varyab, bagay la trè dènye an a fè se asire ke nou enprime valè a nan fòma an egzak endike nan spesifikasyon la. Avèk sa, nou te pouse nan itilizatè yo ak valide opinyon yo. Nou te Lè sa a, kalkile ekivalan a kantite boutèy dlo yo ke yo konsome pandan douch yo, e nou te outputted ke valè yo. Se konsa, nou te ranpli dlo. Non mwen se [? Zamila,?] e sa se CS50.