[Daqq tal-mużika] ZAMYLA Chan: Would you pjuttost tirċievi $ 10,000,000 dritt issa jew jirċievu pennies kull jum tax-xahar, fejn kull jum sussegwenti, inti tirċievi jirduppjaw l-ammont ta 'pennies inti rċeviet il-jum qabel? Fil pennies, aħna qed tmur biex tipprova għalfejn inti għandek definittivament jieħdu l-pennies. Xogħol tiegħek huwa li tikteb pennies.c-- programm li l-ewwel jitlob lill-utent kif ħafna ġranet hemm fix-xahar u allura tistaqsi kemm pennies-utent se jirċievu fl-ewwel jum. Il-programm għandu mbagħad tikkalkula l- ammont li l-utent ikollu akkumulat fit-tmiem tal- xahar u l-wiri. Nistgħu jiksru dan il-programm sa fi ftit tal-kompiti. Aħna ser bżonn fil-pront għall- inputs multipli utent - ġranet u xhur, u pennies fl-ewwel jum. Għandna bżonn li jżommu rekord ta 'flus kemm l-utent għandu u taġġornaha kull jum, irduppjar tal-ammont ta ' pennies li huma jirċievu. U fl-aħħarnett, aħna jistampaw tagħhom total finali, f'dollari. Ejja input utent jindirizzaw ewwel. Jien ser jiftħu apples.c, programm qasir li jittratta mal inputs u l-outputs. Fil-quċċata hawn, stajt inklużi xi tal-libreriji li għandi bżonn - Librerija CS50 u standard I / O librerija. I jistampa fil-pront permezz tal- funzjoni printf mill- standard I / O librerija. Iżda l-idea attwali tal-utent jiġri fil-linja li jmiss ma 'din Funzjoni GetInt fil-librerija CS50. GetInt jikseb input mill-utent u jiżgura li l-input huwa integer. So I taħżen input-utent fis integer i, naqqas 1 minn i, u mbagħad jistampa l-valur il-ġdid jekk i. Wara kompilazzjoni apples.c tuża l- kmand "jagħmlu tuffieħ," I jkollhom fajl eżekutibbli tuffieħ. Running li, jien ser input 1. Il-programm jgħidlekx me li I għandhom 0 tuffieħ xellug. U hekk li ħadmu kif mistenni. Mela ejja run dan mill-ġdid u input negattivi 1. Issa, li ammont negattiv ta 'tuffieħ ma verament jagħmel sens, iżda il-programm taċċetta dan, għaliex negattiv 1, ukoll, huwa integer. U issa l-programm jew l-monster ġewwa l-programm jiekol negattiv tuffieħ, u issa għandi negattivi 2 tuffieħ. Hm, b'tali mod li wieħed lezzjoni - anki jekk il-funzjoni GetInt u funzjonijiet relatati, bħall GetFlow jew GetString tikseb it-tip tad-data d-dritt, int għandhom jagħmlu ċert li l-input jagħmel sens għall-programm tiegħek. Fil pennies, mhux se do biss fil-pront għal integer, ikollok bzonn li jagħmlu żgur li l-inputs tal-utent integer li jagħmlu sens minħabba l-kuntest. Xahar jista 'jkollhom 28 biss, 29, 30, jew 31 jum. Aħna rridu li jitlob kontinwament numru sħiħ validu. Jekk dawn input ta 'barra integer ta' tagħna limiti aċċettati, aħna ser twassalhom ġdid u għal darb'oħra, sakemm inti tagħtina numru sħiħ valida. Ifakkru l-"irrepeti sakemm" blokk fil Scratch? Inti tista 'tagħmel tibni simili fis-C bl-użu ta "filwaqt li" linja jew "do-waqt" linja. L-istruttura loop filwaqt li għandu kundizzjoni li għandhom jiġu sodisfatti għall- korp tal-linja biex tesegwixxi. Dan għandu tfittex ftit simili, minħabba li l-kundizzjoni hija biss bħall- Blokki scratch mal-angoli u tmur fil-parentesi tal-"filwaqt li" loop. Allura din il-kundizzjoni ser jiċċekkja jekk l-eqreb numru sħiħ huwa fi ħdan il-limiti xierqa. Tista 'tkun inkoraġġuta l GetInt jużaw numru sħiħ u mbagħad tesegwixxi tiegħek "filwaqt li" loop, tirrepeti l-pront u l-istampar istruzzjonijiet, filwaqt li l-input mhuwiex validu. Mod ieħor kif tiġi żgurata input korretta utent huwa bl-użu ta '"do-waqt" linja, li hija simili ħafna għal loop Filwaqt. Il-"do-waqt" linja tesegwixxi l-kodiċi ġewwa l-ġisem u mbagħad dawk kontrolli jekk il-kundizzjoni hija sodisfatta jew le. Dan huwa utli għall-kisba input utent, għax inti taf li għandek bżonn biex tkun inkoraġġuta mill-anqas darba. Jekk il-kondizzjoni ma tiġix sodisfatta, il-programm se tesegwixxi l-linja wara tiegħek "do-waqt" linja. Jekk il-kundizzjoni hija sodisfatta għalkemm, l-loop se jirrepeti A "do-waqt" linja għall-validazzjoni utent input se tfittex xi ħaġa bħal din. Niddikjara a n varjabbli, GetInt, u imbagħad irrepeti sakemm n huwa validu. U dan il-proċess, I spjegat, kienet qed tuża it-tip integer-data, li inti ser tuża għall-jiem tax-xahar. Iżda nafu li n-numru ta 'pennies se pile up malajr, dan sabiex taħżen numri akbar, jużaw it-tip data LongLong, iżda tiftakar l-istess prinċipju ta 'validazzjoni japplika. Tal-biża ', hekk darba għandna żewġ validu inputs mill-utent - ġranet fix-xahar u l-pennies fl-ewwel jum - nistgħu jimxu fuq il-li jmiss parti mill-programm. L-ewwel jum, l-utent jibda madankollu ħafna pennies huma speċifikati u l-ammont ta 'pennies li jirċievu l-jum li jmiss għandu jiġi rduppjat. Għalhekk jagħmel sens li jżommu rekord ta 'dawn iż-żewġ ammonti - kemm flus l-utent għandu u kif ħafna pennies dawn ser jingħataw. Issa, tagħmel xi ħaġa għal 28 sa 31 jum hija ripetittiva, so ejja użu ta '"għal" loop tirrepeti l fuq il-jiem fil- xahar, l-aġġornament il-totali u Penny jammonta kull darba. "Għall" sintassi loop fih li ġej - l-inizjalizzazzjoni, kundizzjoni, u aġġornament. Your "għal" loop se initialize varjabbli, meta ewwel jidħol fil-linja. Jekk il-kundizzjoni tkun sodisfatta, il-korp tal-linja se tesegwixxi. Wara, l-aġġornament se tesegwixxi. Jekk il-kundizzjoni hija għadhom sodisfatti, il- loop se jesegwixxu u taġġorna, u irrepeti, sakemm il-kundizzjoni tiegħek jevalwa l veru. Hawn "għal" loop li jaqsam l p integer minn 2 b'total ta '10 darbiet. Nota kif I ddikjarat ir p integer barra ta '"għal" tiegħi loop, sabiex il- integer jista 'jkun aċċessibbli barra l-"għal" loop. Wara x-xahar ikun għadda, il-ħin li tgħid l-utent kemm flus li ħadthom gotten. Per l-spec, int trid tghid-utent kemm dollari, ma kemm pennies, huma għandhom. Iżda s'issa, inti stajt tinżamm track tal- totali u l-pennies jużaw LongLongs, li huma numri sħaħ. Hemm 100 pennies għal $ 1, hekk sakemm in-numru ta pennies huwa multiplu ta '100, ikollok bzonn li jirrappreżentaw postijiet deċimali. Il autotype rdoppja tippermetti li tagħmel dan. Allura kif nistgħu jikkonvertu milli jirrappreżentaw pennies għal dollari? Ejja tagħti ħarsa pi.c. Dan il-programm jieħu big_pi LongLong u jaqsam lilha mill 100,000, u stampi ir-riżultat għal ħames postijiet deċimali. Jekk ridna li juri erba 'postijiet deċimali postijiet, allura nistgħu biss jissostitwixxu dan Numru hawn. Mela ejja jiffrankaw, tikkompila pi, u imbagħad tara r-riżultat, li aħna jistennew li jkunu 3.1415 - l-ewwel ħames numri tas pi. Mhuwiex għalkemm. U għaliex? Ukoll, minħabba big_pi huwa LongLong, li hija numru sħiħ, li mhux se jżommu rekord ta 'deċimali. Il-modifika I ħtieġa li jagħmlu huwa fid-diviżjoni. I ħtieġa li jitfa għal doppja hawn qabel diviżjoni, minħabba doubles ma jistgħux iżommu track ta 'postijiet deċimali. U jien ser żid linja ġdida hawn għal ifformattjar aħjar. U hawn aħna għandna hija - 3.1416. Tista 'tinnota li prints 3.1416 minflok 3.1415 kif mistenni. Dak għax rawnds matul il- proċess diviżjoni, għall-kuntrarju biss jqassru l-valur. Issa inti għandek tkun kapaċi li jistampa l- total finali korrett, li finituri il-programm. Prosit. Jisimni Zamyla. U dan kien pennies. [Daqq tal-mużika]