>> DAVID J. Malan: Fel y gwyddoch mae'n debyg, tymheredd yn cael eu mesur gan ddefnyddio
gwahanol raddfeydd mewn gwahanol rannau o'r byd.
Er enghraifft, 212 gradd Fahrenheit yn 100 gradd Celsius a 32 gradd
Fahrenheit yw 0 gradd Celsius.
Oni fyddai'n braf pe bai gennym gyfrifiadur rhaglen sy'n caniatáu i ni
drosi o, dyweder, Fahrenheit i Celsius?
>> Wel, gallwn ysgrifennu y rhaglen honno.
Gadewch i ni ddechrau yn gyntaf â nhw yn cynnwys cs50.h, fel y gallwn ddefnyddio'r swyddogaeth o'r enw
cael arnofio, sydd, fel int gael, yn cael nifer o'r defnyddiwr, ond y tro hwn mae
Rhif pwynt arnawf - un gyda phwynt degol.
>> Gadewch i ni hefyd yn cynnwys io.h safonol fel ein bod yn cael mynediad i
swyddogaethau fel print f.
A gadewch i ni hefyd yn datgan prif yn y ffordd arferol.
>> Gadewch i ni nesaf annog y defnyddiwr ar gyfer tymheredd yn Fahrenheit.
Gadewch i ni yn awr mewn gwirionedd yn cael y tymheredd gan y defnyddiwr, yn gyntaf gan
datgan newidyn a elwir yn f o'r math arnofio.
Mae arnofio, unwaith eto, sy'n golygu newidyn sy'n storio gwerth pwynt arnawf,
un gyda phwynt degol.
>> Gadewch i neilltuo ei dychwelyd gwerth arnofio get.
Ac yna gadewch i ni wneud ychydig o rifyddeg arno, gan ddatgan arnofio arall yn gyntaf
a elwir yn C ar gyfer Celsius a storio yn C y ganlyniad i rai rifyddeg cyffredin.
5.0 wedi'i rannu gan 9.0 gwaith F minws 32.0.
>> Gadewch i ni yn awr argraffu'r canlyniad o gyfrifiannu hwn.
y cant f -
dynodi yn cadw'r fel y bo'r angen gwerth pwynt -
coma C i argraffu'r tymheredd mewn Celsius.
Gadewch i achub fy derfynol.
Llunio gyda F i C. Rhedeg y rhaglen gyda slaes dot F i C.
>> A gadewch i ni geisio y rhai cyffredin tymheredd.
212 gradd mewn Fahrenheit yn 100 gradd Celsius.
32 gradd yn Fahrenheit yn 0 gradd Celsius yn.
>> Nawr yn gadael i fireinio rhaglen hon ychydig bit drwy beidio â argraffu yn eithaf cymaint o 0 yn
ar ôl hynny lle degol.
I wneud hyn, yr wyf i'n mynd i mynd yn ôl i linell 11.
Ac yn hytrach na dim ond nodi y cant f, Rydw i'n mynd i lle hynny bennu, dyweder,
0.1 f, hysbysu print f mai dim ond eisiau argraffu gwerth pwynt arnawf
i un gwerth yn ôl y lle degol.
>> Gadewch i ni resave fy rhaglen.
Ail-grynhoi gyda gwneud F i C. Yna ailgynnal gyda slaes dot F i C. A
gadewch i ailgeisio â, dyweder, 212, sy'n rhoi i mi 100.0.
>> Nawr mae'n werth nodi bod y gwneuthum rhywbeth yn fwriadol iawn yn unol 9.
Hysbysiad sut Ysgrifennais 5 yn 5.0, 9 fel 9.0, a hyd yn oed 32 fel 32.0.
Wel, y ddau gyntaf o'r gwerthoedd hynny yn iawn dewis yn fwriadol i fod yn
Gwerthoedd pwynt arnawf, nid yn unig oherwydd cysondeb gyda gweddill
fy rhaglen -
sydd yn amlwg yn golygu fel y bo'r angen Gwerthoedd pwynt -
ond oherwydd ei fod yn troi allan y C, Os ydych yn rhannu yn int gan int arall, y
deillio ateb rydych yn mynd i gael yw hun yn int, hyd yn oed os yw hynny'n golygu
gorfod taflu popeth ar ôl y pwynt degol.
>> Mewn geiriau eraill, os byddaf yn newid hyn 5.0 i 5 neu hyn 9.0-9 ac yna resave
fy rhaglen, ail-grynhoi â gwneud F i C, ac yna ail-redeg gyda dot slaes F
i C a theipiwch mewnbwn o fel 212, sylwi bod yr ateb Rydw i'n mynd i
cael y tro hwn mewn gwirionedd yn eithaf anghywir.
0.0 Nid yw'r elfen gywir yn Celsius fel 212 Fahrenheit.
>> Wel, beth sy'n mynd ymlaen?
Wel, yn unol 9, gan fod 5 bellach yn cyfanrif ac oherwydd 9 bellach yn
cyfanrif, y canlyniad fathemategol Dylai fod yn 0.5555 ac yn y blaen.
Ond oherwydd bod y canlyniad, yn ôl Rheolau C, rhaid iddo fod yn int, bod
0.5555 yn cael ei daflu i ffwrdd, ein gadael gyda dim ond 0.
>> Felly, yn y diwedd, yn y diwedd yn lluosi eithaf ddamweiniol 0 gwaith f minws
32.0, sydd yn waeth beth bob amser yn mynd i roi i mi 0.
Felly, yn cadw mewn cof, unrhyw amser gan ddefnyddio Gwerthoedd pwynt arnawf yn agos o
ints, efallai nad ydych o reidrwydd yn gael yr ateb er mwyn i chi ei ddisgwyl.
Ac felly yn cymryd gofal i ddefnyddio, fel y gwneuthum yn y gwerthoedd achos cyntaf, pwynt arnawf
drwy gydol er mwyn osgoi unrhyw faterion o'r fath.