当前课程知识点:程序设计基础 > 第一章 编程初步 > 1.3 数学运算 > 1.3.2 数学函数
在前一段视频当中呢
我们学会了加减乘除百分号
实际上就是四则运算
这都是小学生的水平
下面我们来看看中学生
能做些什么更多的事情
C语言除了普通的运算符
还提供了很多数学函数
我们可以把这些数学函数分成几类
第一类呢是一些
与数学上一致的表达方式
比如说左边的这个sin(π/6)
我们可以写成右边的
也有对应的函数sin(π/6)
只不过注意一下在计算机当中呢
π和e这些数的值没有办法进行精确的表达
没有这个希腊字母π这个符号
写成一个e呢也并不代表
这个2.71828等等
这样一个无限不循环的小数
只能是写一个近似值来表达
下面呢我们选几个来试一试
那么首先来第一个sin(π/6)
跟之前一样我们把中间的这个表达式
换成新的更复杂的sin函数
输入sin(3.14159/6)如果能倍数更多位的
大家可以去试一下写更多位的π
也没有关系
保存,编译运行
可以看到一个黑道
提示编译错误
错误是说sin这个函数没有声明
实际上是因为我们这个sin函数
需要包含一个特殊的头文件C的数学库
包含了头文件之后重新编译运行
好 这次编译通过
得到的运行结果的是0.5
大家中学的数学知识告诉我们
sin(π/6)应该得二分之一
得到了0.5是个正确的结果
再选一个比如说这个tan(-4π/3)
回到编辑器这 好
我们可以把tan(-4π/3)输入到中间
注意一下我们这个4π/3表达方式
并不是按照我说的这个顺序
三分之四乘以π这样写下来的
我用-π乘上4除以3这样来运算的
为什么 大家可以试一下
用不同运算顺序会得到什么样的结果
编译运行 得到的是-1.73204
通过我们数学知识我们可以知道
tan(-4π/3)应该得负的根号三
这也是一个近似值
这一类其他的数学函数
我就不一一给大家演示了
大家课下可以按照
右边的这个写法一个一个的试一下
看看它们运行出来得到怎样的结果
是不是跟你在数学知识得到的结果是一致的
除了这种和数学当中比较相近的写法之外
还有一些数学符号是我们键盘上找不到的
比如说绝对值 根号 下取整等等
这些呢我们在C语言当中
提供了一个函数式的写法
给他一个跟刚才sin cos类似的一个写法
比如说我们试一下这个根号
是用sqrt这个函数代表的是
square root这个英文的缩写
同样的把中间这个表达式替换成
我们程序的写法sqrt(10*10-4*2*3)
数学比较好的同学有可能反应过来
我这是有可能在解一个一元二次方程组
求根号下的△
编译运行我们可以得到这个运行的结果
大家可以自己去验算一下
那么其他更复杂的式子
比如说双曲正弦
尽管我们没有相应的函数能够直接完成它
但是我们可以通过e的多少次方
这样一个函数来实现同样的功能
因此在遇到更复杂的数学函数的时候
可能需要我们开动自己的智慧
想一个通过已有的这些函数能够完成的一个写法
除了前面两类能够通过C语言函数
来完成的这些数学公式之外
还有些数学公式我们也能见到 比如说
很大型的公式带∑求和
π求连续成积 !阶乘
以及中间一个括号上面一个数下面一个数
求组合数等等等等
这样复杂的运算符要怎么写呢
我们C语言当中也没有提供对应的直接的函数
那么这些公式的写法将会在
后面的几节课当中逐渐为大家展示
-1.1 基础知识
-1.2 买菜问题
-1.3 数学运算
-1.4 补充说明
-1.5 总结
--1.5 总结
-程设论道
--程设论道
-师生问答
-第一章 编程初步--语法自测
-2.1 关于超级计算器的几点思考
-2.2 电子秤模拟 — 背景介绍及需求分析
-2.3 电子秤模拟 — 代码实现
-2.4 变量定义与变量类型
-2.5 猜数游戏与数据表示
-2.6 关于变量的讨论
--公告
-2.7 变量体现的计算思维
-程设论道
--程设论道
-师生问答
--师生问答
-第二章 变量与代数思维--语法自测
-3.1 谁做的好事——语义表示
-3.2 谁做的好事——真假检查
-3.3 谁做的好事——循环枚举
-3.4 谁是嫌疑犯——多重循环枚举
-3.5 谁是嫌疑犯——破案线索表示
-3.6 谁是嫌疑犯——用二进制枚举
-程设论道
--程设论道一
--程设论道二
--程设论道三
-师生问答
-第三章 逻辑推理与枚举解题--语法自测
-4.1 插花游戏
-4.2 筛法
-4.3 线性查找
-4.4 折半查找
--4.4.1 提问
-4.5 排序问题
-4.6 总结
--4.6.1 总结
-程设论道
--程设论道二:筛法
-师生问答
-第四章 筛法与查找--语法自测
-5.1 阶乘
-5.2 排序
-5.3 矩阵填充
-5.4 分书与八皇后
-5.5 青蛙过河
-程设论道
--程设论道一
--程设论道二
-师生问答
--师生问答一
--师生问答二
-第五章 分治思想与递归--语法自测
-6.1 兔子数列问题
-6.2 分鱼问题
-6.3 橱窗的插花问题
-6.4 最长公共子序列问题
-程设论道
--程设论道一
--程设论道二
-师生问答
--师生问答
-第六章 递推与动态规划--语法自测
-7.1 统计记录总数
-7.2 统计活跃用户数
-7.3 统计在线时长
--7.3.2 结构
-7.4 总结
--7.4.1 总结
-程设论道
--程设论道
-师生问答
--师生问答
-第七章 文本数据处理--语法自测
-8.1 将数据组织成链表
-8.2 提高链表访问效率 —— 哈希链表
-8.3 以二进制文件存储链表
-程设论道
--程设论道一
--程设论道二
-师生问答
--师生问答
-第八章 非文本数据处理--语法自测
-9.1 自动售卖程序
-9.2 配制水果信息
-9.3 指定界面语言
-程设论道
--程设论道
-师生问答
--师生问答
-第九章 可配置的程序设计--语法自测