好文档 - 专业文书写作范文服务资料分享网站

程序设计艺术与方法

天下 分享 时间: 加入收藏 我要投稿 点赞

compare(0,0,0);

cout<<\问题的解如下:\ return 0;

}

运行截图:

(4)倒水问题 源代码: 4.倒水问题: #include\int main() {

int ca,cb,cc,x,y;

while(scanf(\ {

if(cb==cc) { printf(\ }

else if(ca==cc) {

printf(\ printf(\ } else {

x=y=0; if(ca

while(1) { if(y==0)

精选文档

6

精选文档

{ y=cb;

printf(\ }

if(y>ca-x) //如果b中的水大于a中的剩余容积,就把a灌满// {

y-=ca-x; x=ca;

printf(\ }

else //如果b中的水小于a中的剩余容积,那么把b中的水全加入a// { x+=y; y=0;

printf(\ }

if(y==cc) //如果b中的水已经和cc相等,那就结束// {

break; }

if(ca==x) //如果a中的水满了,就把a倒空// { x=0;

printf(\ } } } else {

7

精选文档

while(1) {

if(x==0) { x=ca;

printf(\ }

if(x>cb-y) //如果a中的水大于b中的剩余容积,就把b灌满// {

x-=cb-y; y=cb;

printf(\ }

else //如果a中的水小于b中的剩余容积,那么把a中的水全加入b// { y+=x; x=0;

printf(\ }

if(y==cc) //如果b中的水已经和cc相等,那就结束// {

break; }

if(y==cb) //如果b中的水满了,就把b倒空// { y=0;

printf(\ } }

8

精选文档

} }

printf(\ } return 0; } 运行截图:

实验三 计算几何算法的实现

1. 实验目的 (1) 理解线段的性质、叉积和有向面积。 (2) 掌握寻找凸包的算法。 (3) 综合运用计算几何和搜索中的知识求解有关问题。 2. 试验设备 硬件环境:PC 计算机 软件环

操作系统:Windows 2000 / Windows XP / Linux 语言环境:Dev cpp / gnu c++ 3. 试验内容 (1) 将讲义第三章第三节中的凸包代码上机运行并检验结果。 (2) 完成讲义第三章的课后习题,上机运行并检验结果。 (3) 思考: 判线段相交时,如果有个线段的端点在另一条线段上,注意可能与另一条线段上的 端点重合,思考这样的情况怎么办。 (4) 房间短路问题: 给顶一个内含阻碍墙的房间,求解出一条从起点到终点的短路径。房间的边界 固定在 x=0,x=10,y=0 和 y=10。起点和重点固定在(0,5)和(10,5)。房间里还有 0 到 18 个 墙,每个墙有两个门。输入给定的墙的个数,每个墙的 x 位置和两个门的 y 坐标区间, 输出最短路的长度。 (4)房间短路问题

9

精选文档

源代码: #include #include #include #include using namespace std;

typedef pair POINT;//线段 double direction(POINT p,POINT p1,POINT p2){ POINT v1,v2;

v1.first=p2.first-p1.first; v1.second=p2.second-p1.first; v2.first=p1.first-p.first; v2.second=p1.second-p.second;

return v1.first*v2.second-v1.second*v2.second;} bool on_segment(POINT p,POINT p1,POINT p2){ double min_x=p1.firstp2.first?p1.first:p2.first; double min_y=p1.secondp2.second?p1.second:p2.second; if(p.first>=min_x&&p.first= min_y&&p.second<=max_y) return true; else return false;} POINT startPoint;

bool sortByPolorAngle(const POINT &p1,const POINT &p2) {

double d=direction(startPoint,p1,p2); if(d<0)return true; if(d >0)return false;

if(d==0&&on_segment(startPoint,p1,p2))return true; if(d==0&&on_segment(p2,startPoint,p1))return true;

10

程序设计艺术与方法

compare(0,0,0);cout<<\问题的解如下:\return0;}运行截图:(4)倒水问题源代码:4.倒水问题:#include\intmain(){intca,cb,cc,x,y;while(scanf(\{
推荐度:
点击下载文档文档为doc格式
9415d4a8lz3blzb1bwa62p7v43zg0p00hwx
领取福利

微信扫码领取福利

微信扫码分享