[Seinm ceoil] ZAMYLA Chan: Ar mhaith gheobhaidh tú in áit $ 10,000,000 ceart anois nó a fháil pinginí gach lá den mhí, i gcás ina gach lá ina dhiaidh sin, gheobhaidh tú dhá oiread an méid de pennies agat Fuair ​​an lá roimh? I pinginí, táimid ag dul chun chruthú cén fáth ba chóir duit cinnte a chur ar an pinginí. Is é do phost a scríobh pennies.c-- clár a iarrann ar dtús an t-úsáideoir conas Tá go leor lá ann sa mhí agus ansin iarrann cé mhéad pinginí an t-úsáideoir Beidh a fháil ar an gcéad lá. Ba cheart don chlár ríomh ansin an méid go mbeidh an t-úsáideoir carntha ag deireadh na mí agus é a thaispeáint. Is féidir linn a bhriseadh an clár seo ar bun i cúpla tascanna. Beidh Ní mór dúinn a spreagadh chun ionchuir úsáideora il - laethanta agus míonna, agus pinginí ar an gcéad lá. Ní mór dúinn súil a choinneáil ar cé mhéad airgid Tá an t-úsáideoir agus é a thabhairt cothrom le dáta gach lá, dúbailt ar an méid pinginí a fhaigheann siad. Agus ar deireadh, a phriontáil againn a n- iomlán deiridh, i dollar. A ligean ar ionchur úsáideora dul i ngleic ar dtús. Tá mé ag dul a oscailt suas apples.c, Clár gearr a dhéileálann le ionchuir agus aschuir. Ag barr anseo, tá mé san áireamh roinnt de na leabharlanna gur gá dom - Leabharlann CS50 agus caighdeán I / O leabharlann. Phriontáil mé go pras ag baint úsáide as an fheidhm printf ó na caighdeán leabharlann I /. Ach an iarbhír a ghríosadh an t-úsáideoir tharlaíonn sa chéad líne eile leis an Feidhm GetInt sa leabharlann CS50. GetInt faigheann ionchur ón úsáideoir agus cinntíonn sé go bhfuil an t-ionchur slánuimhir. Mar sin, mé a stóráil an úsáideora ionchur slánuimhir i, dealaigh 1 as i, agus ansin phriontáil amach an luach nua más rud é i. Tar éis a thiomsú apples.c ag baint úsáide as an gceannas "úlla a dhéanamh," Tá mé úlla comhad inrite. Rith go, beidh mé ionchur 1. Insíonn an clár dom go Tá mé 0 úlla fágtha. Agus mar sin gur oibrigh mar a bhí súil. Mar sin, a ligean ar seo a reáchtáil arís agus ionchur diúltach 1. Anois, a bhfuil méid diúltach de úlla ní a dhéanamh i ndáiríre chiall, ach Glacann an clár é, mar gheall diúltach 1, go maith, tá sé ina slánuimhir. Agus anois an gclár nó leis an ollphéist taobh istigh itheann an clár diúltach úll, agus anois tá mé 2 úlla diúltach. Hm, tá ionas go ceacht amháin - cé go bhfuil an fheidhm GetInt agus feidhmeanna a bhaineann, ar nós GetFlow nó GetString a fháil ar an gcineál sonraí a ceart, tú a dhéanamh cinnte go ndéanann an t-ionchur ciall do do chlár. I pinginí, ní bheidh sé a dhéanamh ach pras do slánuimhir, beidh ort a dhéanamh cinnte go bhfuil ionchur an t-úsáideoir slánuimhir a dhéanann ciall mar gheall ar an gcomhthéacs. Is féidir le mí a bheith ach 28, 29, 30, nó 31 lá. Ba mhaith linn a éileamh leanúnach slánuimhir bailí. Má ionchur siad taobh amuigh slánuimhir ar ár Rá inghlactha, beidh orainn iad a spreagadh arís agus arís eile, go dtí go tú a thabhairt dúinn slánuimhir bailí. Athghairm ar an "arís go dtí" bloc i Scratch? Is féidir leat a dhéanamh ar thógáil den chineál céanna i C ag baint úsáide as "agus" lúb nó "a dhéanamh-agus" lúb. Tá an struchtúr lúb agus coinníoll nach mór a chomhlíonadh chun an comhlacht ar an lúb a fhorghníomhú. Ba chóir go cuma beagán den chineál céanna, toisc go bhfuil an coinníoll díreach cosúil leis an Bloic Scratch leis na huillinneacha agus théann isteach na lúibíní an "agus" lúb. Mar sin, beidh an coinníoll sheiceáil cibé an Is é an tslánuimhir laistigh an bounds cuí. Is féidir leat a spreagadh an tslánuimhir ag baint úsáide as GetInt agus ansin fhorghníomhú do "agus" lúb, athrá ar an pras agus priontáil treoracha, agus an t-ionchur nach bhfuil bailí. Bealach eile chun a chinntiú ionchur úsáideora ceart Is trí úsáid a bhaint as "a dhéanamh-agus" lúb, atá an-chosúil le lúb Cé. An "a dhéanamh-cé go" lúb fhorghníomhú an cód taobh istigh na cinn chorp agus ansin seiceálacha cibé an bhfuil an coinníoll a chomhlíonadh, nó nach bhfuil. Tá sé seo úsáideach le haghaidh ionchur úsáideora a fháil, mar a fhios agat gur gá duit go pras dóibh ar a laghad uair amháin. Más rud é nach bhfuil an coinníoll sin comhallta, an clár Beidh fhorghníomhú an líne tar éis do "a dhéanamh-agus" lúb. Má tá an comhlíontar an coinníoll áfach, Beidh an lúb arís A "a dhéanamh-agus" lúb don úsáideoir a bhailíochtú Beidh ionchur cuma rud éigin mar seo. Dearbhaím go n athróg, GetInt, agus ansin arís go dtí go bhfuil n bailí. Agus an próiseas seo, mhínigh mé, bhí ag baint úsáide as an cineál slánuimhir-shonraí, a go mbainfidh tú úsáid a bhaint as an lá den mhí. Ach tá a fhios againn go bhfuil líon na pinginí Beidh carn suas go tapa, mar sin d'fhonn a stóráil uimhreacha níos mó, bain úsáid as an gcineál sonraí a LongLong, ach cuimhnigh mar an gcéanna Baineann prionsabal na bhailíochtaithe. Awesome, mar sin aon uair amháin, tá muid beirt bailí ionchur ón úsáideoir - lá sa mhí agus na pinginí ar an gcéad lá - is féidir linn bogadh isteach ar an chéad cheann eile chuid den chlár. An chéad lá a thosaíonn an t-úsáideoir le áfach, go leor pinginí a shonraítear siad agus an méid de pennies go bhfuil siad a fháil ar an chéad lá eile a dhó. Mar sin, déanann sé ciall súil a choinneáil de na dhá méideanna - cé mhéad airgid a bhfuil an t-úsáideoir agus an chaoi a go leor pinginí go mbainfidh siad a thabhairt. Anois, ag déanamh rud éigin do 28 go 31 lá Is athchleachtach, mar sin a ligean a úsáid "in ionad" lúb a iterate thar na laethanta sa mí, thabhairt cothrom le dáta an t-iomlán agus pingin méid gach uair. "Do" Tá error lúb an méid seo a leanas - ar initialization, coinníoll, agus cothrom le dáta. Dearbhófar do "in ionad" lúb thúsú athróg, nuair a sé thiocfaidh ar dtús leis an lúb. Má tá an coinníoll sin comhallta, an comhlacht Beidh an lúb fhorghníomhú. Ina dhiaidh sin, beidh an nuashonrú fhorghníomhú. Má tá an coinníoll á gcomhall fós, an Beidh lúb fhorghníomhú agus a thabhairt cothrom le dáta, agus arís, chomh fada agus is do riocht meastóireacht ar a fíor. Seo "in ionad" lúb go roinneann an slánuimhir p ag 2 ar an iomlán de 10 uaire. Tabhair faoi deara conas a dhearbhú mé an lch slánuimhir taobh amuigh de mo "in ionad" lúb, ionas go mbeidh an Is féidir le slánuimhir a bheith inrochtana lasmuigh den "in ionad" lúb. Tar éis na míosa a rith, tá sé in am a insint an t-úsáideoir cé mhéad airgid siad gotten. Per an spec, is gá duit a insint an t-úsáideoir cé mhéad dollar, nach bhfuil cé mhéad pinginí, tá siad. Ach go dtí seo, tá tú ag súil a choimeád ar an iomlán agus na pinginí ag baint úsáide as LongLongs, a bhfuil slánuimhreacha. Tá 100 pinginí go $ 1, mar sin mura Is é an líon pennies iolraí de 100, beidh ort a ionadaíocht a dhéanamh ionad de dheachúlacha. Ceadaíonn an autotype dhó tú é seo a dhéanamh. Mar sin, conas is féidir linn thiontú ó ionadaíonn pinginí a dollar? A ligean ar ghlacadh le breathnú pi.c. Bíonn an clár big_pi LongLong agus Roinneann sé ag 100.000, agus priontaí an toradh go dtí cúig ionad de dheachúlacha. Má bhíomar ag iarraidh a thaispeáint ceithre dheachúlach áiteanna, ansin is féidir linn a chur in ionad ach seo Uimhir anseo. Mar sin, a ligean ar a shábháil, pi thiomsú, agus ansin féach ar an toradh, atá againn ag súil le bheith 3.1415 - an chéad cúig dhigit de pi. Níl sé cé. Agus cén fáth? Bhuel, toisc go bhfuil big_pi a LongLong, is slánuimhir, a ní bheidh súil a choinneáil de dheachúlacha. An gá dom a mhodhnú Is é a dhéanamh ar an roinn. Gá dom a chaitheamh le dúbailte anseo roimh roinnt, toisc nach féidir doubles a choinneáil súil ar ionad de dheachúlacha. Agus tá mé ag dul a chur ar líne nua anseo le haghaidh formáidiú níos fearr. Agus anseo ní mór dúinn é - 3.1416. Féadfaidh tú faoi deara go priontaí sé 3.1416 in ionad 3.1415 mar a bhí súil. Sin toisc go babhtaí sé i rith an próiseas roinn, i gcomparáid le díreach theascadh an luach. Anois, ba chóir duit a bheith in ann a phriontáil iomlán deiridh i gceart, a bailchríocha an chláir. Comhghairdeas. Is é mo ainm Zamyla. Agus ba é seo pinginí. [Seinm ceoil]