当前课程知识点:C语言程序设计(上) >  数据计算实现与顺序结构程序设计(二) >  2.7 顺序结构程序实例 >  2.7.1 第一个程序:三角形

返回《C语言程序设计(上)》慕课在线视频课程列表

2.7.1 第一个程序:三角形在线视频

2.7.1 第一个程序:三角形

下一节:Video

返回《C语言程序设计(上)》慕课在线视频列表

2.7.1 第一个程序:三角形课程教案、知识点、字幕

这一部分的内容

我们基本上讨论了C里边涉及到的

绝大多数的计算问题

包括了算术的 关系的 逻辑的

以及位运算

还有一些比较特殊的

比如说条件运算 逗号运算这些

这些运算我们目前涉及到的

基本上都是在顺序结构的程序里边

怎么去实施这个计算

很少的涉及到了一些简单的判断

我们最后用两个简单的例子

来把咱们这个关于计算

在程序设计里边

尤其是在C程序设计里边

这么多种的计算

是如何的在一个顺序结构的程序里边

去实现的

通过两例子 一个是

关于求三角形面积的一个例子

输入三角形三条边的长度

然后这是人机交互需要输入的

然后程序完成什么

完成给出三角形的面积

由这个输入的三条边

构成的三角形的面积是多大

这里边必然要涉及到了计算的问题

都计算什么东西呢

这个问题因为很简单

它的数学模型是已经有了

如果你给三角形的三个边

根据三角形的计算公式

这边我们就说这个问题

就是数学模型的建立

就没有那么复杂

我们不需要对这个问题进行

分解 抽象 建立数学模型的一个过程

模型是现成的

也就说你给了三条边

这个三角形的面积的公式

就已经有了

其中s是什么

是三角形三个边加起来周长的一半

也就是周长的一半

所有问题都非常明确

我们可以直接计算了

把这个式子

就是上边求三角形面积的式子

如果我们写成C语言的表达式的话

它还有一些变化

因为我们看到了这里边

是整个对后边的计算做了一个开平方

开平方怎么做

我们前面其实已经遇到过了

有数学函数可以专门解决

开平方的问题

这里边还涉及到了几个变量

一个是三角形的三条边a b c

还有一个是我们刚才说

周长折半

我们用s表示

在我们这个写C语言的表达式里边

首先就要考虑到

你用哪几个变量

这里边涉及到了四个a b c和s

还有圆面积放在一个变量里

这样我们考虑

C语言的表达式就可以写成

下面的这样一个形式

在这里边我们做了什么工作

做了s和括弧之间的关系

是什么关系 乘的关系

所以这一块

这个乘号必须是加进来的

还有这一块我们说

s减a和后边这个括弧之间

也是乘的关系

所以这个乘号下边一个乘号

都是要加进来的

所以在这个式子里边

这是一个数学表达式

我们大家一看都知道它是乘的关系

我们现在在这一部分要强调的是说

把一个自然语言里边的也就说

用数学语言表达的一个计算公式

你要描述的

让计算机的程序能认识的话

那你用的C语言

就用C语言的规则去描述它

C语言的规则也就是非常明确的

告诉它确定的这两个量

计算量之间是什么样的一个计算

比如说这个乘号

它表达的是它是双目运算

这两个量是做的是乘的操作

这就是比较确定

然后调用了一个函数这里边

我们调用的开平方的函数

函数用括弧括起来

最外边的这个括弧

是表达的

是对里边这个表达式的运算结果

去开平方

这一块有一个数学函数调用

大家是不是还记得我们前面讨论的时候

一旦你用了一个数学的函数调用

你在你的程序里边是不是就应该包含

我们前面已经见到过的这样的程序

所以在这里边我们还要考虑一个问题

你输入的这三个边

是整型的还是实型的

我们在这个问题里边是说

通常可以是整型可以是实型的

所以我们把这几个量

a b c area和s

我们都把它定义为double型

这个问题的一个流程的描述

是不是就成了这样

开始

然后用人机交互的方式

为计算机提供数据

a b c这是你的输入的数据

给了abc

计算机就可以开始计算它的s

也就说周长折半

可以计算它的面积

然后完了

我们最终要的就是这个面积

把面积输出来

这个流程就结束

我们对这样的一个流程

把它的C语言的程序

给出来的话

前边的开始

这应该对应的是开始的这一部分

开始这一部分通常是

指示大家做什么

一些准备的工作

通常我们在程序里边把它叫初始化

就是初始化的时候

你都需要做哪些准备

你需要包含一些什么东西

你需要说明一些什么东西

都应该在main之前

来做这个工作

所以在这个程序里边

我们需要做两件事

第一件事情是

我们要输出

那应该include是标准的

输入输出的头文件

第二件事情

我们要用到开平方根的这个函数

我们要把数学的math.h

包含进来

在咱们这里边的初始化的时候

准备工作应该做

这两个包含

下来就进入到我们的主题main

在main这一块有了一个int

咱以前有时候是有void

有时候是什么都没有

有时候是int

这样的程序大家可能是在

很多地方都会看到不同的

不同是什么

我们加void的时候是说

这个main函数不要返回值了

我该要的东西我在这里边

print什么的该看见我都看见了

int是什么意思

int表达的是说

main的返回值是一个整型

返回的这个整型有人用吗

没有人调用

只是一个就是说我给这个main

函数返回它一定是有一个参数的

只是说这个参数到底是什么

你明确的说明的话

这个参数返回的是int型

是通常我们对main的返回值

并没有使用

所以这一块并不关注

main返回的是什么

所以写int写void

或者不写

在这一块对这个程序来说都是一样的

接下来下边是定义

定义什么

定义我们要用到的所有的参数

是double型的

然后就开始做我们输入

流程里边的这个输入

a b c就做scanf

这是人机交互的一个过程

给了三个a b c

我们提供的

下边的s area

都是我们这个程序计算出来的

做下边两个计算

s和area的面积的计算

把这两个C语言表达式写在这

然后赋值给s赋值给area

这两个计算做完了就开始输出

printf我们输出的是说

咱要的结果是a是什么b是什么

c是什么然后s是什么

最后的结果是什么

最后返回

这是这个程序

我们运行一下这个程序

打开这个环境

找到我这个程序是编好了

编好了的情况下

大家就可以说直接双击这个程序

原程序

系统自动给你打开了语言处理系统

然后把这个程序打开

这跟刚才我们看到的程序是一样的

如果是1f

我们以前说过scanf里边

不给它域的一个选择

如果是1f就不对了

所以这块是l

因为它两个长得有点像

l为什么是l

因为我们是double型

所以这一块给一个l的格式

你可以输入的数据

精度比较高

那我们现在来看一下

运算就是通过这两步完成的

然后后边这两步是输出

输入的abc和s在一行上

输出的三角形的面积在另外一个行上

应该是这样子

我们来编译链接运行一下

我们给几个数

然后a给1.2

b我想是一个整数

这是可以的

然后下一个c也是整数 回车

我们得到了这是三个输入

我们看刚才b给的是整数

整型数5

现在看见的是5.00

实际上大家会考虑说

这个5到底在计算机里存的是

一个整型的5

还是一个实型的5

是取决于你的b定义的是什么

b我们是double

它一定是按实型的

double型的去存的

到底它存的是5.0000六个0

还是两个0

我们为什么看见的是两个0

是因为你要的f给的格式是

点2 你要的两位

所以就说输出到底保留几位小数

是在于你printf里边带的格式

而你在内存里到底占几个字节

在于你定义的这个变量

到底是什么类型的

所以我们看到的这个完全是

printf里边给的点2的格式

这个后边一样1.81

是这个三角形的面积

我们再运行一次

再给三个2.3 4.5

然后给一个大的数

给一个很奇怪的三角形40.5

这里边现在出现了一个

有问题的一个结果

这是为什么

我们把这个问题

现在目前运行的这个结果

输入的数据是

现在这个能不能构成一个

三角形的面积

构成一个合适的三角形

为什么这个结果会是这样子

到底是它的

是变量类型定义的有问题

还是它输出的存储有问题

还是你输出的格式有问题

这个问题我们留给大家讨论

下一次我们在讨论里边

再来给大家这个答案

C语言程序设计(上)课程列表:

从问题到C语言程序设计

-1.1 计算机的问题求解方法

--1.1.1--程序设计面向的问题

--1.1.2--关于计算

--1.1.3-1关于算法-算法的特征

--1.1.3-2关于算法——算法的表示

--1.1.3-3关于算法——算法的优化

--1.1.4-1-程序设计方法

--1.1.4-2-程序设计方法

--讨论题:数学模型

-1.1 计算机的问题求解方法--作业

-1.2 C语言与C程序

--1.2.1-1-C概述

--1.2.1-2-C概述

--1.2.2-C初步

--讨论题:运算符

-1.3 C语言处理系统与程序调试运行

--1.3.1C程序如何调试运行

--1.3.2常用C语言处理系统

--1.3.3DEVC++的使用-v1

--1.3.4C语言概貌小程序

--例程

-1.4 程序中的人机交互

--1.4 printf用法

--1.4.2 scanf的用法

--例程

--作业讨论区

数据计算实现与顺序结构程序设计(一)

-2.1 算术运算的C程序实现

--2.1.1 第二章

--2.1.2 C语言算术表达式概念

--2.1.3 算术运算的实现

--2.1.4 整数相除

--2.1.5 输入格式造成的计算错误

--2.1.6 求余运算

--2.1.7 自增自减运算

--2.1.8 复合运算

--fangcheng.c

--fangcheng-1.c

--fangcheng-2.c

--fangcheng-3.c

--fangcheng-4.c

--算术混合运算.c

--讨论题:自增自减符

--讨论题:程序输出结果

--讨论题:程序运行结果

-2.1 算术运算的C程序实现--作业

-2.2 关系运算的C程序实现

--2.2.1 关系比较问题

--2.2.2 C语言关系表达式

--2.2.3关系运算优先级

--2.2.4 用关系运算做判断条件

--2.2.5 程序实例

--2.2.6 字符比较

--bukao.c

--pingshifen-1.c

--panduanzhengshu.c

--pingshifen-2.c

--字符比较.c

--讨论题:比较大小

--讨论题:程序的运行

-2.2 关系运算的C程序实现--作业

-第二周作业--作业

数据计算实现与顺序结构程序设计(二)

-2.3 逻辑运算的C程序实现

--2.3.1 逻辑运算问题~1

--2.3.2 逻辑运算表达式

--2.3.3 如何判断闰年

--2.3.4 逻辑运算优先级

--2.3.5 条件运算符

--计算结合性

--2.3.7 一个简单实例

--闰年.c

--自动购票问题.c

--讨论题:逻辑表达式

-2.3 逻辑运算的C程序实现--作业

-2.4 位运算的C程序实现

--2.4.1 什么是位运算

--2.4.2 位运算有哪些

--2.4.3 位运算怎么用

--讨论题:位运算

-2.5 几种很个别的运算

--2.5 几个很个别的运算

--讨论题

--讨论题

-2.5 几种很个别的运算--作业

-2.6 混合运算及数据类型转换

--2.6 混合运算及数据类型转换

--讨论题:数据类型

-2.7 顺序结构程序实例

--2.7.1 第一个程序:三角形

--Video

--三角形面积.c

--讨论题:工业产值

--讨论题:程序无效结果

-2.7 顺序结构程序实例--作业

选择结构的程序设计

-3.1 程序中的路径选择实现

--3.1.1_1 第三章

--3.1.1_2 神奇的if_else

--打印学生成绩.c

--一元二次方程.c

-3.1 程序中的路径选择实现--作业

-3.2 路径中的再选择——嵌套判断

--3.2.1_1 if语句的嵌套

--3.2.1_2三个数排序1029

--例程

--3.2.2 用户登录检查

--三个数排序_未优化.c

--三个数排序_优化.c

--讨论题:程序改错

-3.2 路径中的再选择——嵌套判断--作业

-3.3 复杂判断问题的C程序设计

--3.3 多级选择

--银行存款.c

--讨论题:多级选择

-3.4 多分支问题的C程序设计

--3.4.1 switch语句表达式

--3.4.2 加减乘除计算

--3.4.3 几类说明

--加减乘除运算.c

--讨论题:关于switch

-3.4 多分支问题的C程序设计--作业

-3.5 GOTO的适当使用

--3.5 GOTO的适当使用

-3.6 选择结构的程序实例

--3.6 程序展示

--计算第几天.c

--存款利息__switch实现.c

--讨论题:输出奇数

--讨论题:计算税金

-3.6 选择结构的程序实例--作业

-第四周作业--作业

循环结构的程序设计(一)

-4.1 需要重复执行的程序

--4.1.1----第四章~1

--4.1.2---while实现先判断后循环~1

--4.1.3----while循环的应用-录入速度~1

--求和.c

--打印学生成绩.c

--统计录入速度.c

--求平均数.c

-4.1 需要重复执行的程序--作业

-4.2 至少要执行一次的循环

--4.2.1至少要执行一次的循环

--4.2.2-do-while循环应用

--成绩录入_do while实现.c

--n的阶乘.c

--字符分类统计.c

--讨论题:关于while

-4.2 至少要执行一次的循环--作业

-4.3 已知循环次数用for语句

--4.3.1--用for语句控制循环次数

--4.3.2--循环的应用-求和

--求和问题.c

--斐波那契数列问题.c

--数列求和.c

--讨论题:循环语句的不同

--讨论题:循环语句

-4.3 已知循环次数用for语句--作业

-4.4 循环控制——简单循环应用

--4.4.1-循环的应用-找数-水仙花数

--4.4.2--循环的应用-求素数

--水仙花数.c

--讨论题:死循环

--讨论题:continue和break

--讨论题:猜数字

-循环结构的程序设计(一)--4.4 循环控制——简单循环应用

循环结构的程序设计(二)

-4.5 循环的嵌套

--4.5.1 循环的嵌套——九九乘法表

--4.5.2 循环的嵌套——打印三角形

--打印九九乘法表.c

--打印实心三角图案.c

--打印空心三角图案.c

--讨论题:程序运行

-4.5 循环的嵌套--作业

-4.6 break与continue

--4.6 循环中断与继续循环——break再讨论

--最大素数.c

--求正数个数及平均数.c

-4.6 break与continue--作业

-4.7 循环的综合应用

--4.7.1 数的排列组合问题

--4.7.2 循环综合应用——穷举算法

--4.7.3 循环综合应用——满足条件的数

--4.7.4 循环综合应用——求最后三位数

--4.7.5 循环综合应用——打印空心图案

--数的排列组合.c

--数的排列组合优化.c

--鸡兔同笼.c

--找满足条件的数.c

--输出14的13次方的最后三位数.c

--打印空心字符.c

--讨论题:打印图形

--讨论题:打印空心图形

--讨论题:计算闰年

-第六周作业

--虚拟实验:循环程序设计实验

-第六周作业--作业

数组(一)

-5.1 同类有序数据处理问题

--5.1.0 数组开篇

--5.1.1 同类有序数据存储问题

--讨论题:下标变量与下标

-5.2 一维数组的定义和引用

--5.2.1_1 数组的定义~1

--5.2.1_2 数组的初始化

--5.2.2 一维数组的输入输出

--5.2.3 一维数组的应用1--成绩排序(选择法)~2

--5.2.4 一维数组的应用2--Fibonacci数列

--数组定义.c

--数组初始化.c

--输出大于平均值的数.c

--反向输出.c

--选择法_成绩排序.c

--求斐波那契数列前n项.c

--讨论题:对称数

--讨论题:关于'\0'

-5.2 一维数组的定义和引用--作业

-5.3 一维字符串数组

--5.3 一维字符串数组11.24~1

--用函数测试字符串长度.c

--讨论题:编程

-5.4 字符串处理函数

--5.4 字符数组的输入与输出

--字符串反向.c

--字符串函数

--讨论题:程序如何运行

--讨论题:黑色星期五

数组(二)

-5.5 二维数组的定义与使用

--5.5 二维数组定义

--二维数组的定义与初始化.c

-5.6 二维数组的输入输出

--5.6 二维数组的输入与输出

--二位数组输出_矩阵输出.c

--讨论题:随机数据存储

-5.6 二维数组的输入输出--作业

-5.7 二维数组的应用‍

--5.7.1二维数组的应用-转置矩阵

--5.7.2 用一维数组方式引用二维数组元素

--转置矩阵.c

--找二维数组最大数.c

--讨论题:修改程序

--讨论题:关于随机数函数 rand()

-5.8 二维字符数组

--5.8 单词排序

--单词排序.c

--讨论题:回文字符串

-5.8 二维字符数组--作业

-5.9 数组综合应用

--5.9.1 应用1——学生成绩统计

--统计成绩.c

--5.9.2 应用2——删除重复字符

--删除串中的重复字符串

--5.9.3 应用3——统计字符

--5.9_4数组的应用4--矩阵相乘

--统计字符次数.c

--讨论题:洗牌

-本期课程结束语

--end

-第八周编程作业

--虚拟实验:冒泡排序算法程序设计实验

期末复习

-《C语言程序设计(上)》期末复习参考

--html

期末复习答案

-《C语言程序设计(上)》期末复习参考答案

--html

2.7.1 第一个程序:三角形笔记与讨论

也许你还感兴趣的课程:

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