第13周报告1:用函数完成分段数学函数的求解

任务1:编写函数,求解分段函数的值,并设计能够满足路径覆盖的测试用例完成测试。

          0                           当x<0.3时;

f(x)=  (x-0.3)/(0.8-0.3)  当0.3≤x≤0.8时

         1                             当x>0.8时

实验目的:学会使用函数编程,以及设计比较完备的测试用例完成对小程序的测试

实验内容:用函数完成分段数学函数的求解

/*
* 程序的版权和版本声明部分
* Copyright (c)2011, 烟台大学计算机学院学生
* All rightsreserved.
* 文件名称: fun.cpp
* 作    者: 贺利坚
* 完成日期: 2011 年 11 月 22  日
* 版本号: v1.0      

* 对任务及求解方法的描述部分
* 输入描述:函数自变量x
* 问题描述:求函数的值:当x<0.3时,f(x)=0; 当0.3≤x≤0.8时,f(x)=(x-0.3)/(0.8-0.3);当x>0.8时,f(x)=1;
* 程序输出:f(x)的值
*/
 #include<iostream>
using namespacestd;
const doublex1=0.3, x2=0.8; //定义为全局常变量,方便,易维护
doublef(double);     //此处加入对自定义函数f的声明

int main( )
{
   double x;
   cout<<"请输入x的值:";
   cin>>x;
   cout<<"解得:f("<<x<<")="<<f(x)<<"\n";
  return 0;
}
//下面是自定义函数的定义部分
//当x<0.3时,f(x)=0; 当0.3≤x≤0.8时,f(x)=(x-0.3)/(0.8-0.3);当x>0.8时,f(x)=1;

double f(doublex)
{
   double result;
   if(x<x1)
             result=0;
   else if (x>x2)
             result=1;
   else
             result = (x-x1)/(x2-x1);
   return result;
}

测试用例设计及测试结果(请程序设计者将?位置上的内容补充完整):

(1) 遵循“判定/条件测试”覆盖原则(设计足够的测试用例,使得判定表达式的每个条件的所有可能取值至少出现一次,并使每个判定表达式所有可能的结果也至少出现一次),我设计了三组测试用例,测试方案及结果如下

序号 程序输入 预期结果 执行结果 结论
1 x=0.2 0 0 正确
2 x=0.5 0.4 0.4 正确
3 x=0.9 1 1 正确

(2)判定的边界值是测试的“敏感”区,针对本程序的两个边界值,我设计了下面的两组测试用例,测试方案及结果如下

序号 程序输入 预期结果 执行结果 结论
4 x=0.3 0 0 正确
5 x=0.8 1 1 正确

 经验积累:

1. 程序的测试也是技术活,需要考虑各种可能的情况,设计用于测试的输入,将执行结果与预期的结果对比后才能得出结论。程序工作并不是能输出结果(不管对错)就视为完成。

2. 布置题目时,专门选择了以前做过的题目,同学们只要专心写函数而不用多想算法。用心良苦,感动ing

3. 同学们做的不错,几乎全做出来了,并且真的将函数中的几个概念通过这个题搞清楚了。

 

上机感言:

编程需要积累经验,多练习是硬道理。光喊难,不投入做,有的是喊难的时候,直至“难”字都喊不出来了。

其实,只要实践过了,也就不难了。只要上路,一路顺风,挡都挡不住。

看小宗——[转载]应该如何学习计算机编程【写给计算机专业的同学们】http://blog.sina.com.cn/s/blog_5d1b834f0100wy45.html

时间: 2024-09-21 17:12:02

第13周报告1:用函数完成分段数学函数的求解的相关文章

函数整理(数学函数)

数学函数简化了有关数学和几何过程的编程.使用这些函数时,记住有些函数可以从其他函数得到.radians = degrees * PI/180degrees = radians * 180/PIPI = 3.1415926535897932自然对数:e = 2.718322Sin(a) = a/cCos(a) = b/cTan(a) = a/bSec(a) = 1/Cos(a)Cosec(a) = 1/Sin(a)Cotan(a) = 1/Tan(a)Arcsin(x) = Atn(x/Sqr(-

第13周报告2:定义自定义函数,计算sin和cos的近似值

任务2:先听故事,再编程序.故事是这样的:话说sin和cos是一对夫妇.一天,sin去听相声了,cos在家.过了一会,有人敲门,cos开门一看,是一个不认识的多项式函数.cos问:你是谁啊?他说:我是你的老公sin啊.cos说:你不是去听相声了吗?怎么成这幅摸样了?他说:是啊,太乐了!故事讲完了.不懂吗?好好学高数.否则,挂了不冤.   编程序求出sin(π/2).cos(87°) 程序的要求是这样的:(1)求sin.cos时,不能用数学库函数(即不得用#include<Cmath>),而是自

【函数】Oracle函数系列(2)--数学函数及日期函数

[函数]Oracle函数系列(2)--数学函数及日期函数   1  BLOG文档结构图   2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 数学函数 ② trunc和round函数 ③ 常用日期函数 Tips: ① 本文在itpub(http://blog.itpub.net/26736162).博客园(http://www.cnblogs.com/lhrbest)和微信公众号(xiaoma

asp之数学函数

函数 asp之数学函数常用的数学函数: 函数 语法 功能 Abs Abs(num) 返回一个数的绝对值 Sqr Squ(num) 返回一个数的平方根 Sin Sin(num) 返回角度的正弦值 Cos Cos(num) 返回角度的余弦值 Tan Tan(num) 返回角度的正切值 Atn Atn(num) 返回角度的反正切值 Log Log(num) 返回一个数的对数值 Int Int(num) 取整函数,返回小于等于number的第一个整数 FormatNumber FormatNumber(

C02-程序设计基础提高班(C++)第13周上机任务-多态与虚函数

第13周:阅读教材第12章(p395-416),主要内容是多态性,完成第13周上机任务 (回到C02-程序设计基础提高班(C++)学习安排) [任务1]下面给出了基类Animal和main()函数.(1)根据main()函数给出的注释提示,设计出相关的各个类.(2)显然,Animal设计为抽象类更合适,Animal不需要能够实例化,是专门作基类使用的.改造程序,使Animal设计为抽象类,这时main()函数中p = new Animal();将出错,将此行删除.(3)每一个Animal的派生类

计算机科学-第13周 函数 题目及参考解答

<计算机科学>课程主页在:http://blog.csdn.net/sxhelijian/article/details/13705597 1.阅读程序:阅读下面的程序,写出运行结果,上机时运行程序,记录结果,从而能够理解函数的用法(1) #include <stdio.h> void fun(int x, int y) { x=x*10; y=y+x; printf("%d\t%d\n",x,y); } int main() { int a=2, b=3; f

C++程序设计课程师生互动(2012年春第13周)

[本周感言--一点牢骚] 一些同学的状态还没有恢复.实际上,状态好的仍然保持,状态差的有持续下滑的趋势.结合期中测验的结果,如果有些同学还不改善状态,我真不看好了.近期的时间比春假前要松一些了,但完成的任务却少了.一直处于"赶上来"阶段的同学,每周的任务不去全部完成,跟不住,谈何赶上来.不少同学已经有了属于自己的电脑,是否用于学习,自己知道.反倒是,编程很疯狂的几位,依赖的仅是公共机房. 某天,下课后,几位同学站在路口,商量去哪.有一位提议:"去烟大市场吧." 我知

C++第13周项目4——多文件组织回文、素数

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565 [项目4-多文件程序组织] 按<C++程序设计题解与上机指导>P226第15.4节的提示,建立一个包含多个文件的项目,将第12周"项目4-回文.素数"中所做工作用多文件组织起来.其中,main()函数保存在一个文件中,所有自定义函数保存到另外一个文件中,运行程序并得到正确的结果,体会在实际的工程项目中(有很多的函数)这样组织程序的好处. 参考解答 (

第16周报告1:冒泡排序指针版

题目:(数组的排序) 按模板中的要求,用指向数组的指针变量作为形式参数编写函数,完成冒泡排序.重点体会:(1)冒泡排序算法:(2)用指向数组的指针变量作为形式参数,用数组名(即数组的地址)作为实际参数,函数中对于形参的改变实质上也就是对实参对应内存单元的改变:(3)形式参数中不指定数组大小,实际数组的大小也一并作为参数传递.详见 指导书 实验目的:学会冒泡排序算法 实验内容:实现冒泡排序算法,并将之定义为一个函数,其中参数是指向数组的指针变量 /* 程序头部注释开始 * 程序的版权和版本声明部分