[TOC] ## 课后习题 ### 习题 2.2.1 习题2.2.1定义程序 `Fahrenheit->Celsius`,输入为华氏温度值,输出为等值的摄氏温度值。请查看化学或物理书籍了解温度的转换公式。 设计出函数后,使用教学软件包 teachpack中的 convert. ss对所设计的函数进行测试, teachpack提供了3个函数 convert-gui、 convert-repl和 convert -file,第1个函数用于创建图形界面,请按以下方式调用(convert-gui Fahrenheit->Celsius)以创建一个包含按钮和滑动条的窗口。 答: 转换公式 `°C =(°F-32)×5/9` ``` (define (Fahrenheit->Celsius f) (/ (* (- f 32) 5) 9)) ;(Fahrenheit->Celsius 20) ; -6.6 ``` 1. convert-gui `(convert-gui Fahrenheit->Celsius)` ![8B15DFC8-EE21-4E4A-945C-3E79264F5367.png](http://yanxuan.nosdn.127.net/8b8dd3334be902563bb8fc408e7f220b.png) 2. convert-repl 交互输出 `(convert-repl Fahrenheit->Celsius)` ![B4304CE8-7A81-43F6-9DF9-D0949EBD57BF.png](http://yanxuan.nosdn.127.net/ac75f771afab9072f0ec59f01a380be8.png) 3. convert-file 数据文件导入导出 `(convert-file "in.dat" Fahrenheit->Celsius "out.dat")` 先把 DrRacket 的文件保存,在统计目录创建 `in.dat` in.dat ``` 4 50 345 ``` out.dat ``` -140/9 10 1565/9 ```