当前课程知识点:程序设计基础 >  第一章 编程初步 >  1.3 数学运算 >  1.3.2 数学函数

返回《程序设计基础》慕课在线视频课程列表

1.3.2 数学函数在线视频

1.3.2 数学函数

下一节:1.4.1 编程环境的下载与安装

返回《程序设计基础》慕课在线视频列表

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.1.1 什么是程序?什么是语言?

--1.1.2 什么是程序设计?

--1.1.3 计算机发展史

-1.2 买菜问题

--1.2.1 问题描述

--1.2.2 程序的基本结构

-1.3 数学运算

--1.3.1 数学运算符

--1.3.2 数学函数

-1.4 补充说明

--1.4.1 编程环境的下载与安装

--1.4.2 程序基本结构中的含义

--1.4.3 格式与风格

-1.5 总结

--1.5 总结

-程设论道

--程设论道

-师生问答

--师生问答一:怎样学好程序设计

--师生问答二:语言选择

--师生问答三:关于函数

-第一章 编程初步--语法自测

第二章 变量与代数思维

-2.1 关于超级计算器的几点思考

--2.1.1 关于超级计算器的几点思考

-2.2 电子秤模拟 — 背景介绍及需求分析

--2.2.1 电子秤模拟 — 背景介绍及需求分析

-2.3 电子秤模拟 — 代码实现

--2.3.1 电子秤模拟 — 代码实现

-2.4 变量定义与变量类型

--2.4.1 变量定义与变量类型

-2.5 猜数游戏与数据表示

--2.5.1 猜数游戏与数据表示

-2.6 关于变量的讨论

--2.6.1 变量的初始值

--2.6.2 变量类型

--2.6.3 变量内存单元地址

--2.6.4 存“变量地址”的变量——指针

--2.6.5 指针的 读/写 操作

--2.6.6 指针的 加/减 操作

--公告

-2.7 变量体现的计算思维

--2.7.1 变量体现的计算思维

-程设论道

--程设论道

-师生问答

--师生问答

-第二章 变量与代数思维--语法自测

第三章 逻辑推理与枚举解题

-3.1 谁做的好事——语义表示

--3.1.1 谁做的好事——语义表示

-3.2 谁做的好事——真假检查

--3.2.1 谁做的好事——真假检查

-3.3 谁做的好事——循环枚举

--3.3.1 谁做的好事——循环枚举

-3.4 谁是嫌疑犯——多重循环枚举

--3.4.1 谁是嫌疑犯——多重循环枚举

-3.5 谁是嫌疑犯——破案线索表示

--3.5.1 谁是嫌疑犯——破案线索表示

-3.6 谁是嫌疑犯——用二进制枚举

--3.6.1 谁是嫌疑犯——用二进制枚举

-程设论道

--程设论道一

--程设论道二

--程设论道三

-师生问答

--师生问答一:字符与ASCII码表

--师生问答二:其他循环语句、运算符优先级与变量作用域

-第三章 逻辑推理与枚举解题--语法自测

第四章 筛法与查找

-4.1 插花游戏

--4.1.1 问题提出(求素数)

--4.1.2 函数初探

--4.1.3 运行演示

-4.2 筛法

--4.2.1 筛法思路

--4.2.2 数组的定义

--4.2.3 代码翻译

--4.2.4 运行演示

--4.2.5 小朋友数人数

--4.2.6 运行演示

--4.2.7 韩信点兵

-4.3 线性查找

--4.3.1 扑克查找问题

--4.3.2 扑克查找问题代码翻译

--4.3.3 最小值问题

--4.3.4 最小值问题代码翻译

-4.4 折半查找

--4.4.1 提问

--4.4.2 折半查找思路

--4.4.3 折半查找代码翻译

--4.4.4 折半查找运行演示

-4.5 排序问题

--4.5.1 插入排序

--4.5.2 选择排序

--4.5.3 函数写法

--4.5.4 运行演示

-4.6 总结

--4.6.1 总结

-程设论道

--程设论道一:数组与编码思维

--程设论道二:筛法

-师生问答

--师生问答一:函数与面向过程编程

--师生问答二:数组的下标越界

-第四章 筛法与查找--语法自测

第五章 分治思想与递归

-5.1 阶乘

--5.1.1 阶乘问题

--5.1.2 递归解法

--5.1.3 递归小结

-5.2 排序

--5.2.1 归并排序——总体思路

--5.2.2 归并排序——思路分解

--5.2.3 归并排序——代码解说

--5.2.4 快速排序——总体思路

--5.2.5 快速排序——代码解说

--5.2.6 排序总结

-5.3 矩阵填充

--5.3.1 矩阵填充问题

--5.3.2 代码解说

-5.4 分书与八皇后

--5.4.1 问题描述

--5.4.2 问题分析——共性

--5.4.3 问题分析——区别

--5.4.4 解题准备——二维数组

--5.4.5 解题准备——递归设计

--5.4.6 代码解说——分书问题

--5.4.7 代码解说——八皇后问题

-5.5 青蛙过河

--5.5.1 问题描述

--5.5.2 问题分析——简单情况

--5.5.3 问题分析——复杂情况

--5.5.4 问题分析——一般情况

-程设论道

--程设论道一

--程设论道二

-师生问答

--师生问答一

--师生问答二

-第五章 分治思想与递归--语法自测

第六章 递推与动态规划

-6.1 兔子数列问题

--6.1.1 问题描述

--6.1.2 按大小兔子分别递推

--6.1.3 按总数递推

--6.1.4 不用数组递推

-6.2 分鱼问题

--6.2.1 问题描述

--6.2.2 从A到E递推

--6.2.3 从E到A递推

-6.3 橱窗的插花问题

--6.3.1 问题描述

--6.3.2 题意理解与分析

--6.3.3 用枚举思想解题

--6.3.4 采用递推的优化算法

--6.3.5.1 采用动态规划算法—优化分析

--6.3.5.2 采用动态规划算法—递推代码

--6.3.5.3 采用动态规划算法—计算过程

--6.3.5.4 采用动态规划算法—输出方案

--6.3.6 动态规划总结

-6.4 最长公共子序列问题

--6.4.1 问题描述与理解

--6.4.2 问题分析

--6.4.3.1 动态规划解题(1)

--6.4.3.2 动态规划解题(2)

--6.4.3.3 动态规划代码

-程设论道

--程设论道一

--程设论道二

-师生问答

--师生问答

-第六章 递推与动态规划--语法自测

第七章 文本数据处理

-7.1 统计记录总数

--7.1.1 问题分析

--7.1.2 读文件操作

-7.2 统计活跃用户数

--7.2.1 问题分析

--7.2.2 字符串

--7.2.3 程序翻译与演示

-7.3 统计在线时长

--7.3.1 问题分析

--7.3.2 结构

--7.3.3 程序翻译与演示

--7.3.4 写文件操作

-7.4 总结

--7.4.1 总结

-程设论道

--程设论道

-师生问答

--师生问答

-第七章 文本数据处理--语法自测

第八章 非文本数据处理

-8.1 将数据组织成链表

--8.1.1 链表的基本概念

--8.1.2 代码讲解

--8.1.3 链表遍历与释放

-8.2 提高链表访问效率 —— 哈希链表

--8.2.1 简单的哈希算法

--8.2.2 算法实现

-8.3 以二进制文件存储链表

--8.3.1 二进制文件的操作方法

--8.3.2 代码讲解

-程设论道

--程设论道一

--程设论道二

-师生问答

--师生问答

-第八章 非文本数据处理--语法自测

第九章 可配置的程序设计

-9.1 自动售卖程序

--9.1.1 提出问题与初步设计

--9.1.2 细化实现订单处理

--9.1.3 使程序更健壮

-9.2 配制水果信息

--9.2.1 提出问题与设计文件格式

--9.2.2 实现订单处理功能

-9.3 指定界面语言

--9.3.1 提出问题与命令行参数

--9.3.2 实现程序功能

-程设论道

--程设论道

-师生问答

--师生问答

-第九章 可配置的程序设计--语法自测

1.3.2 数学函数笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。