1 / 49
文档名称:

专业C第讲变量设计.ppt

格式:ppt   大小:1,163KB   页数:49页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

专业C第讲变量设计.ppt

上传人:sxlw2018 2021/1/15 文件大小:1.14 MB

下载得到文件列表

专业C第讲变量设计.ppt

相关文档

文档介绍

文档介绍:1
本章通过几种不同类型的算法实现,着重讨论算法实现中的变量设计问题,包括函数的参数、局部变量、标志变量的设计与应用。
从本章起,将围绕所谓的“评委评分”程序的设计和优化、程序功能的扩充逐步展开讨论。
本章涉及一些基本算法,这些算法的设计思想是朴素的。
第九讲 变量设计
2
~ 穷举、迭代计算
穷举计算
“百钱买百鸡”问题
判定素数
迭代计算
牛顿迭代法
级数计算(即:数列求和)
指数函数
正弦函数
最大公因数和最小公倍数
3
“百钱买百鸡”问题
公元前5世纪,我国古代数学家张丘建在《算经》一书中提出了“百鸡问题”:
鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、母、雏各几何?
【数学模型】
记x, y, z分别表示购买鸡翁、母、雏的数量,则有
这是一个不定方程,数学方法求解有较大难度。
4
“百钱买百鸡”问题
【算法设计】
显然有
即:将解集合投影到xoy平面上,将被包含在如下集合中
集合A共有 21×34=714个元素
利用计算机的高速度,对上述714个元素逐个试算,判断是否满足题意,并输出满足题意者。 ———— 这就是穷举法、亦称为枚举法。
5
计算流程
6
// 源程序文件名 #include <iostream> using namespace std;
int chicken100(); // 函数原型用于函数声明
int main()
{ chicken100(); // 函数调用
return 0; }
// 主函数起调度作用,尽可能地简单
7
int chicken100() { int cocks, hens, chicks, n=0;
for(cocks=0; cocks<=20; cocks++)
{
for(hens=0; hens<=33; hens++)
{
chicks = 100 – cocks – hens;
if(3*100 == 3*(5*cocks+3*hens)+chicks)
{
cout << ”鸡翁 ” << cocks << ” 只,鸡母 ” << hens << ” 只,鸡雏 ” << chicks << ” 只。” << endl;
n++;
}
}
}
return n; }
8
int chicken100() { int cocks, hens, chicks, n=0;
for(cocks=0; cocks<=20; cocks++)
{
for(hens=0; hens<=33; hens++)
{
chicks = 100 – cocks – hens;
if(3*100 == 3*(5*cocks+3*hens)+chicks)
{
cout << ”鸡翁 ” << cocks << ” 只,鸡母 ” << hens << ” 只,鸡雏 ” << chicks << ” 只。” << endl;
n++;
}
}
}
return n; }
9
程序编译、连接生成可执行文件 可执行文件的运行结果
10