>> DAVID J. Malan: As you know probabbilment, temperaturi jitkejlu bl-użu
skali differenti fi Stati partijiet tad-dinja.
Per eżempju, 212 grad Fahrenheit huwa 100 gradi Celsius u 32 grad
Fahrenheit huwa 0 gradi Celsius.
Ma Ikun sbieħ jekk kellna kompjuter programm li ħallietna nsiru
jikkonvertu minn, ngħidu aħna, Fahrenheit biex Celsius?
>> Well, nistgħu jiktbu dak il-programm.
Ejja ewwel tibda bil jinkludu cs50.h, sabiex inkunu jistgħu jużaw funzjoni msejħa
tikseb float, li, bħal get int, gets numru mill-utent, iżda din id-darba
floating point numru - wieħed ma 'punt deċimali.
>> Ejja jinkludu wkoll io.h standard sabiex ikollna aċċess għal
funzjonijiet simili stampati f.
U ejja wkoll jiddikjara prinċipali bil-mod normali.
>> Ejja jmiss fil-pront l-utent għall- temperatura fil Fahrenheit.
Ejja issa fil-fatt tikseb dik it-temperatura mill-utent, l-ewwel billi
tiddikjara varjabbli imsejjaħ f ta float tip.
A float, għal darb'oħra, li jfisser varjabbli li Taħżen valur b'punt li jvarja,
wieħed ma 'punt deċimali.
>> Ejja tassenja din ir-ritorn valur tal get float.
U mbagħad ejja jagħmlu daqsxejn ta 'aritmetika fuqha, l-ewwel tiddikjara float ieħor
sejjaħ C għal Celsius u jaħżen fil C tal- riżultat ta 'xi aritmetika komuni.
5.0 diviż bil-9.0 drabi F minus 32.0.
>> Ejja issa jistampaw il-riżultat ta 'din il-komputazzjoni.
mija f -
li jfisser placeholder għal floating punt valur -
comma C biex jistampa l- temperatura Celsius.
Ejja tiffranka finali tiegħi.
Jikkompilaw mal F għall C. Mexxi l-programm ma dot slash F biex C.
>> U ejja jippruvaw dawk komuni temperaturi.
212 gradi fil Fahrenheit huwa 100 grad Celsius.
32 gradi fil Fahrenheit huwa 0 gradi fil Celsius.
>> Issa tikri tirfina dan il-programm ftit bit billi ma istampar pjuttost ħafna ta '0
wara li post deċimali.
Biex tagħmel dan, jien ser jmorru lura għal-linja 11.
U aktar milli biss tispeċifika mija f, Jien ser minflok tispeċifika, ngħidu aħna,
0.1 f, tinforma print f dak I biss tixtieq li jistampaw valur b'punt li jvarja
għall-valur wieħed wara l-punt deċimali.
>> Ejja resave-programm tiegħi.
Recompile ma make F li C. Imbagħad terġa 'ssir bl dot slash F biex C. U
ejja retry ma ', ngħidu aħna, 212, li tagħti me 100.0.
>> Issa huwa min jinnota li għamilt xi ħaġa very deliberatament fil-linja 9.
Avviż kif I kiteb 5 huwa 5.0, 9 bħala 9.0, u anke 32 bħala 32.0.
Ukoll, l-ewwel tnejn ta 'dawk il-valuri kienu ħafna deliberatament magħżula bħala
Valuri b'punt li jvarja, mhux biss għax ta 'konsistenza mal-bqija
tal-programm tiegħi -
li b'mod ċar tinvolvi f'wiċċ l-ilma punt valuri -
iżda minħabba jirriżulta li C, Jekk inti jaqsam l-int minn int ieħor, il-
tweġiba jirriżultaw int ser tikseb hija innifsu int, anki jekk dak il-mezz
jkollhom armih kollox wara l-punt deċimali.
>> Fi kliem ieħor, jekk nibdel dan 5.0 sa 5 jew din 9.0-9 u mbagħad resave
programm tiegħi, recompile bil make F sa C, u mbagħad jerġa 'run ma dot slash F
li C u t-tip fl-input ta 'prodotti simili 212, avviż li r-risposta jien ser
nikseb dan iż-żmien huwa attwalment pjuttost ħażin.
0.0 mhuwiex il-grad korrett fil- Celsius bħala 212 Fahrenheit.
>> Well, x'inhu għaddej?
Ukoll, f'konformità 9, minħabba 5 issa hija integer u minħabba 9 issa huwa
numru sħiħ, ir-riżultat matematikament għandha tkun 0.5555 u l-bqija.
Iżda minħabba r-riżultat, skond Regoli Ċ, għandu jkun hemm int, li
0.5555 gets tintrema, jħallu lilna biss 0.
>> Għalhekk fl-aħħar, I jispiċċaw multiplikazzjoni pjuttost aċċidentalment 0 darbiet f minus
32.0, li huwa irrelevanti x'inhu dejjem ser jagħti me 0.
Allura wieħed iżomm f'moħħu, kwalunkwe ħin jużaw Valuri b'punt li jvarja fil-viċinanza ta '
ints, inti tista 'ma neċessarjament jiksbu l-risposta sabiex inti tistenna.
U sabiex jieħdu ħsieb għall-użu, kif għamilt fil- Valuri ewwel każ, b'punt li jvarja
madwar biex jevitaw xi kwistjonijiet bħal dawn.