>> Дэвід Дж. Малан: Як вы, напэўна, ведаеце, тэмпература вымяраецца з дапамогай
розныя маштабы ў розныя частках свету.
Напрыклад, 212 градусаў па Фарэнгейце з'яўляецца 100 градусаў па Цэльсіі і 32 градусаў
Фарэнгейце 0 градусаў Цэльсія.
Не было б нядрэнна, калі б у нас быў кампутар праграма, якая дазволіла нам
пераўтварыць, скажам, па Фарэнгейце у градусы Цэльсія?
>> Ну, мы можам напісаць гэтую праграму.
Давайце спачатку пачнём з ўключаюць cs50.h, так што мы можам выкарыстоўваць функцыю з імем
атрымаць паплавок, які, як і кароткатэрміновы Int, атрымлівае лік ад карыстальніка, але на гэты раз
лік з якая плавае кропкай - адзін з коскі.
>> Давайце таксама ўключаюць у сябе стандартныя io.h так што мы маем доступ да
функцыі, такія як друк ф.
І давайце таксама абвясціць галоўным звычайным спосабам.
>> Давайце наступны запытваць у карыстальніка тэмпература ў градусах Фарэнгейта.
Давайце цяпер на самай справе атрымаць, што тэмпература ад карыстальніка, спачатку
абвясціўшы зменную е тыпу паплаўка.
Паплавок, зноў жа, гэта азначае, зменную, якая захоўвае значэнне з якая плавае коскі,
адзін з коскі.
>> Давайце прысвоіць яму вяртанне кошт кароткатэрміновага паплаўка.
А потым давайце зробім трохі арыфметыкі на ім, у першую абвясціўшы іншы паплавок
называецца C для Цэльсіі і захоўваць у C вынікам некаторай агульнай арыфметыкі.
5.0 падзеленае на 9.0 разы F мінус 32,0.
>> Давайце зараз раздрукаваць вынік з гэтага вылічэнні.
адсоткаў е -
якое азначае запаўняльнік для значэнне з якая плавае кропкай -
коска C раздрукаваць тэмпература ў градусах Цэльсія.
Давайце выратаваць маю фінал.
Кампіляцыя з F на C. Запусціце праграму з кропкавай слэш F ў C.
>> І давайце паспрабуем тыя агульныя тэмпература.
212 градусаў па шкале Фарэнгейта 100 градусаў па Цэльсіі.
32 градуса па шкале Фарэнгейта з'яўляецца 0 градусаў па шкале Цэльсія.
>> Зараз давайце ўдакладніць гэтую праграму трохі трохі, ня друк даволі столькі 0-х
пасля гэтага знака пасля коскі.
Каб зрабіць гэта, я збіраюся вярнуцца да лініі 11.
І замест таго, проста пакажыце працэнтнае е, Я збіраюся замест пазначыць, скажам,
0,1 у, інфармаванне друку е, што толькі я хочаце надрукаваць значэнне з якая плавае коскі
аднаму значэнні пасля коскі.
>> Давайце захаваеце маю праграму.
Перекомпилируйте яго з макіяжам F ў C. Тады паўторна яго кропка слэш F да С. І
давайце паўтарыць, скажам, 212, што дае мне 100,0.
>> Цяпер варта заўважыць, што я зрабіў нешта вельмі свядома ў радку 9.
Звярніце ўвагу, як я напісаў 5 складае 5,0, 9 як 9,0, і нават 32, як 32,0.
Ну, першыя два з гэтых каштоўнасцяў былі цалкам свядома абраны, каб быць
значэння з якая плавае кропкай, а не толькі таму, што ўзгодненасці з астатнімі
маёй праграмы -
у якім выразна прадугледжвае плавае кропкавыя значэння -
а таму, што атрымліваецца, што C, калі вы падзяліць Int іншым Int,
у выніку адказ вы збіраецеся атрымаць гэта Сам унутр, нават калі гэта азначае
таго, каб выкінуць усе пасля коскі.
>> Іншымі словамі, калі я змяню гэты 5,0 да 5 ці гэта ад 9,0 да 9, а затым захавайце
мая праграма, перакампіляваць з макіяжам F да C, , А затым зноў запусціць яго з кропка слэш F
да З і ўвядзіце уваходам, як 212, заўважыць, што адказ я збіраюся
атрымаць на гэты раз на самай справе зусім не так.
0.0 не з'яўляецца правільным ступень у Цэльсія, як 212 па Фарэнгейце.
>> Ну, што адбываецца?
Ну, у радку 9, таму што 5 цяпер цэлы лік, а таму, што 9 Цяпер
цэлае, то вынік матэматычна павінен быць 0,5555 і так далей.
Але так як вынік, у адпаведнасці з Правілы Сі, павінен быць унутр, што
0,5555 атрымлівае выкінутыя, пакідаючы нас з проста 0.
>> Такім чынам, у рэшце рэшт, я ў канчатковым выніку множання цалкам выпадкова 0 раз е мінус
32.0, якая ёсць не што нягледзячы ні на што заўсёды дасць мне 0.
Так што майце на ўвазе, у любы час з дапамогай значэння з якая плавае коскі ў блізкасці
Інтс, вы не маглі б абавязкова атрымаць адказ, так што вы чакаеце.
І таму паклапаціцеся, каб выкарыстоўваць, як я зрабіў у значэнні першы выпадак, з якая плавае кропкай
па ўсім, каб пазбегнуць любых такіх пытанняў.