矩形件排样程序的实现王晨浩试题b

合集下载

2014下半年程序员考试真题及答案-下午卷

2014下半年程序员考试真题及答案-下午卷

2014下半年程序员考试真题及答案-下午卷试题一(共15分)阅读以下说明和流程图,填补流程图中的空缺(1)〜(5),将解答填入答题纸的对应栏内。

【说明】本流程图旨在统计一本电子书中各个关键词出现的次数。

假设已经对该书从头到尾依次分离出各个关键词{A(i)|i=1,…,n}(n>1) },其中包含了很多重复项,经下面的流程处理后,从中挑选出所有不同的关键词共m个{K(j)lj=l,…,m},而每个关键词K(j)出现的次数为K(j),j=1,…,m。

【流程图】【参考答案】(1) 1 (2) K(j)(3)NK(j)+1->NK(j) 或NK(j)++ 或等价表示(4)m+1->m 或m++ 或等价表示(5)A(i)【试题解析】流程图中的第1框显然是初始化。

A (1) ->K(1)意味着将本书的第1个关键词作为选出的第1个关键词。

1->NK (1)意味着此时该关键词的个数置为1。

m是动态选出的关键词数目,此时应该为1,因此(1)处应填1。

本题的算法是对每个关键词与已选出的关键词进行逐个比较。

凡是遇到相同的,相应的计数就增加1;如果始终没有遇到相同关键词的,则作为新选出的关键词。

流程图第2框开始对i=2,n循环,就是对书中其他关键词逐个进行处理。

流程图第3 框开始j=l,m循环,就是按已选出的关键词依次进行处理。

接着就是将关键词A(I)与选出的关键词K(j)进行比较。

因此(2)处应填K(j)。

如果A(i)=K(j),则需要对计数器NK(j)增1,即执行NK(j)+1->NK(j)。

因此(3)处应填NK(j)+1->NK(j)。

执行后,需要跳出j循环,继续进行i循环,即根据书中的下一个关键词进行处理。

如果A(i)不等于NK(j),则需要继续与下个NK(j)进行比较,即继续执行j循环。

如果直到j循环结束仍没有找到匹配的关键词,则要将该A(i)作为新的已选出的关键词。

软件工程期末复习应用题

软件工程期末复习应用题

1.建立窗口系统旳对象模型。

问题陈说如下.窗口分为对话窗、图形窗、流动窗三种;对话窗中有若干对话项, 由唯一旳项名字来确定, 对.项分为按钮、选择项、正文项三种, 选择项中有若干选项入口;图形窗口有若干形状元素, 形.元素分为一维形状和二维形状, 一维形状又分为直线、圆弧、折线;二维形状分为圆、椭圆、.形、多边形, 其中多边形和折线由若干有序顶点构成, 正文窗是滚动窗旳一种, 而图形滚动窗.是一种图形窗又是一种滚动窗。

答案:2.假设某航空企业规定, 乘客可以免费托运行李旳重量不超过30公斤。

当行李旳重量超过30公斤时, 对一般舱旳国内乘客超重部分每公斤收费4元, 对头等舱旳国内乘客超重部分每公斤收费6元。

对国外乘客超重部分每公斤收费比国内乘客多一倍, 对残疾乘客超重部分每公斤收费比正常乘客少二分之一。

试画出对应鉴定表。

答案:请用鉴定表画出如下问题旳行为逻辑。

人们往往根据天气状况决定出门时旳行装;天气也许下雨, 也也许不下雨;天气也许变冷, 也也许不变冷。

假如天气要下雨, 出门时带上雨伞;假如天气变冷, 出门时要穿上大衣。

建立鉴定表旳环节:2.用SA措施画出下列问题旳顶层和0层数据流图。

某运动会管理系统接受来自运动员旳报名单、裁判旳比赛项目及项目成绩, 产生运动员号码单发送给运动员, 项目参与者发送给裁判, 单项名次、团体名次发送给公布台。

该系统有两部分功能:(1)登记报名单: 接受报名单、比赛项目, 产生运动员号码单、项目参与者, 形成运动员名单及团体成绩表两种数据存储。

(2)记录成绩:接受项目成绩, 查询运动员名单, 产生单项名次, 填写团体成绩, 最终产生团体名次。

3.某图书馆借阅系统有如下功能:(1)借书: 根据读者旳借书证查询读者档案, 若借书数目未超过规定数量, 则办理借阅手续(修改库存记录及读者档案), 超过规定数量者不予借阅。

对于第一次借阅者则直接办理借阅手续。

(2)还书:根据读者书中旳条形码, 修改库存记录及读者档案, 若借阅时间超过规定期限则罚款。

(典型题)高中数学选修1-2第二章《框图》测试卷(含答案解析)

(典型题)高中数学选修1-2第二章《框图》测试卷(含答案解析)

一、选择题1.执行如图所示的程序后,输出的结果是()A.5B.16C.29D.542.如图所示的程序框图的算法思路来源于“欧几里得算法”.图中的“a MODb”表示a除以b的余数,若输入,a b的值分别为195和52,则执行该程序输出的结果为( )A.13B.26C.39D.783.某程序框图如图所示,则该程序运行后输出i的值为()A .6B .7C .8D .94.执行如下程序框图,如果输入的[,]4x ππ∈-,则输出y 的取值范围是( )A .[1,0]-B .[1,2]-C .[1,2]D .[1,1]- 5.某算法的程序框如图所示,若输出结果为12,则输入的实数x 的值是 ( )A 2B .32-C .52D .46.执行如图所示的算法流程图,则输出的结果的值为A .2B .1C .0D .-1 7.一程序框图如图所示,如果输出的函数值在区间[]1,2上,那么输入的实数x 的取值范围是( )A .(),0-∞B .[]1,0-C .[)1,+∞ D .[]0,1 8.执行如图1所示的程序框图,若输出b 的值为16,则图中判断框内①处应填( )A .0B .1C .2D .39.执行如图所示的程序框图,若输入的40N =,则输出的S =( )A .115B .116C .357D .35810.阅读如图所示的程序,若执行循环体的次数为5,则程序中a 的取值范围为()A .56a ≤≤B .56a <<C .56a ≤<D .56a <≤ 11.执行如图所示的程序框图,若输入2x =,则输出的S 值为( )A .8B .19C .42D .8912.执行如图所示的程序语句,则输出的s 的值为( )A .22 B .1 C .212+ D 21二、填空题13.下面程序运行后输出的结果为________.520033"";""x y IF x THENy x ELSE y x END IFPRINT x y y x END=-=-<=-=+-=-=14.如图的算法,最后输出的k =_______.15.执行如图所示的流程图,若输入n的值为8,则输出s的值为_________.16.如图程序是求一个函数的函数值的程序,若执行此程序的结果为3,则输入的x值为.17.如图所示的茎叶图为高二某班54名学生的政治考试成绩,程序框图中输入的1254,,a a a 为茎叶图中的学生成绩,则输出的S 和n 的值之和是___.18.程序框图如图所示,若输出的y =0,那么输入的x 为________.19.如图是计算1111232010232010+++++⋅⋅⋅++的值的程序框图.(I)图中空白的判断框应填,执行框应填;(II)写出与程序框图相对应的程序.20.执行如图所示的流程图,则输出的n为________.三、解答题21.银行办理房屋抵押贷款手续如下:先按顺序进行房屋评估、银行审查、签订合同、办理保险产权过户.然后有三种选择:(1)若直接办理抵押贷款,则只进行抵押登记,然后发放贷款;(2)若采用全程担保方式,则直接发放贷款;(3)若采用阶段性担保方式,则先发放贷款,然后再办理抵押登记.试画出办理房屋抵押贷款手续的流程图.22.把下列程序用程序框图表示出来.A=20B=15A=A+BB=A-B A=A BPRINT A+BEND23.[2019·朝鲜中学]在如图所示的程序框图中,有这样一个执行框1()i i x f x -=,其中的函数关系式为42()1x f x x -=+,程序框图中的D 为函数()f x 的定义域.(1)若输入04965x =,请写出输出的所有x 的值; (2)若输出的所有i x 都相等,试求输入的初始值0x .24.我们在人教A 版选修1-2教材的第一章中学习了《统计案例》,请你画出《统计案例》这一章的章节结构图.25.回忆人教A 版必修3《算法初步》这一章,试画出《算法初步》这一章的知识结构图.26.已知函数y=2x+3,设计一个算法,给出函数图象上任一点的横坐标x,求该点到坐标原点的距离,并画出程序框图.【参考答案】***试卷处理标记,请不要删除一、选择题1.D解析:D【解析】【分析】结合所给的程序语句确定输出值即可.【详解】程序运行过程如下:首先初始化数据:1,0J A ==,此时满足5J <;执行12,*4J J A A J J =+==+=,此时满足5J <;执行13,*13J J A A J J =+==+=,此时满足5J <;执行14,*29J J A A J J =+==+=,此时满足5J <;执行15,*54J J A A J J =+==+=,此时不满足5J <;跳出循环,输出54A =. 本题选择D 选项. 【点睛】本题主要考查循环语句的理解及其计算等知识,意在考查学生的转化能力和计算求解能力.2.A解析:A 【解析】 【分析】模拟执行程序框图,只要按照程序框图规定的运算方法逐次计算,直到达到输出条件即可得到输出的a 的值. . 【详解】若输入,a b 的值分别为195,52,则39,52,39c a b ===,不满足条件,循环;5239÷,余数为13 ,即13,39,31c a b ===,不满足条件,循环; 3913÷,余数为0 ,即0,13,1c a b ===,满足条件,输出13a =,故选A.【点睛】本题主要考查程序框图的循环结构流程图,属于中档题. 解决程序框图问题时一定注意以下几点:(1) 不要混淆处理框和输入框;(2) 注意区分程序框图是条件分支结构还是循环结构;(3) 注意区分当型循环结构和直到型循环结构;(4) 处理循环结构的问题时一定要正确控制循环次数;(5) 要注意各个框的顺序,(6)在给出程序框图求解输出结果的试题中只要按照程序框图规定的运算方法逐次计算,直到达到输出条件即可.3.B解析:B 【解析】 【分析】模拟执行程序框图,只要按照程序框图规定的运算方法逐次计算,直到达到输出条件即可得到输出的i 的值. 【详解】执行程序框图,输入1,1,1m n i ===, 第一次循环2,4,2m n i ===; 第二次循环4,9,3m n i ===; 第三次循环8,16,4m n i ===; 第四次循环16,25,5m n i ===; 第五次循环32,36,6m n i ===; 第六次循环64,49,7m n i ===, 退出循环,输出7i =,故选B. 【点睛】本题主要考查程序框图的循环结构流程图,属于中档题. 解决程序框图问题时一定注意以下几点:(1) 不要混淆处理框和输入框;(2) 注意区分程序框图是条件分支结构还是循环结构;(3) 注意区分当型循环结构和直到型循环结构;(4) 处理循环结构的问题时一定要正确控制循环次数;(5) 要注意各个框的顺序,(6)在给出程序框图求解输出结果的试题中只要按照程序框图规定的运算方法逐次计算,直到达到输出条件即可.4.B解析:B 【解析】分析:讲原问题转化为分段函数的问题,然后求解函数的值域即可. 详解:流程图计算的输出值为分段函数:()222cos sin 21,2cos 2sin 1,2x x x f x x x x ππ⎧+-<⎪⎪=⎨⎪+-≥⎪⎩,原问题即求解函数()f x 在区间,4ππ⎡⎤-⎢⎥⎣⎦上的值域. 当42x ππ-≤<时:()22cos sin 21cos 21sin 2124f x x x x x x π⎛⎫=+-=++-=+ ⎪⎝⎭,42x ππ-≤<,则152444x πππ-≤+<,此时函数的值域为1,2;当2x ππ≤≤时:()22cos 2sin 1sin 2sin f x x x x x =+-=-+,2x ππ≤≤,则0sin 1x ≤≤,此时函数的值域为[]0,1;综上可得,函数的值域为[]0,1⎡⎡-⋃=-⎣⎣. 即输出y的取值范围是⎡-⎣.本题选择B 选项.点睛:识别、运行程序框图和完善程序框图的思路: (1)要明确程序框图的顺序结构、条件结构和循环结构. (2)要识别、运行程序框图,理解框图所解决的实际问题. (3)按照题目的要求完成解答并验证.5.A解析:A 【解析】分析:先根据循环得函数解析式,再解方程得实数x 的值.详解:因为2log ,12,1x x y x x >⎧=⎨-≤⎩,所以211log 2x x >⎧⎪⎨=⎪⎩或1122x x ≤⎧⎪⎨-=⎪⎩所以x = 选A.点睛:本题考查算法与流程图,考查识别流程图的含义,利用分段函数解决问题能力.6.C解析:C 【解析】分析:由程序框图可知,该程序的功能是利用循环结构计算并输出变量S 的值,模拟程序的运行过程,可得结果.详解:因为cos2n y π=的周期为4, 且一个周期内函数值的和为0,而满足进行循环的n 的最大值为2017,201745041÷=+,故32017cos cos cos ...cos 222S ππππ=++++cos 02π==,故选C.点睛:本题主要考查程序框图,分组求和法求和,余弦函数的周期性,属于中档题. 算法是新课标高考的一大热点,其中算法的交汇性问题已成为高考的一大亮,这类问题常常与函数、数列、不等式等交汇自然,很好地考查考生的信息处理能力及综合运用知识解决问題的能力,解决算法的交汇性问题的方:(1)读懂程序框图、明确交汇知识,(2)根据给出问题与程序框图处理问题即可.7.D解析:D 【解析】分析:分析程序中各变量、各语句的作用,再根据流程图所示的顺序,可知:该程序的作用是计算分段函数的函数值.根据函数的解析式,结合输出的函数值在区间[]1,2,即可得到答案.详解::根据题意,得 当x ∈[﹣2,2]时,f (x )=2x , ∴1≤2x ≤2, ∴0≤x≤1;当x ∉[﹣2,2]时,f (x )=3,不符合, ∴x 的取值范围是[0,1].故选:D .点睛:本题考查了程序框图的应用问题,也考查了分段函数的应用问题,解题时应模拟程序框图的运行过程,以便正确解答问题,属于基础题.8.C解析:C 【解析】分析:模拟执行程序框图,只要按照程序框图规定的运算方法逐次计算,直到达到到输出b 的值为16,即可得输出条件.详解:执行程序框图,输入0,1a b ==,第一次循环,2,1b a ==; 第二次循环,4,2b a ==;第三次循环,16,3b a ==时,应退出循环, 故图中判断框内①处应填2,故选C.点睛:本题主要考查程序框图的循环结构流程图,属于中档题. 解决程序框图问题时一定注意以下几点:(1) 不要混淆处理框和输入框;(2) 注意区分程序框图是条件分支结构还是循环结构;(3) 注意区分当型循环结构和直到型循环结构;(4) 处理循环结构的问题时一定要正确控制循环次数;(5) 要注意各个框的顺序,(6)在给出程序框图求解输出结果的试题中只要按照程序框图规定的运算方法逐次计算,直到达到输出条件即可.9.D解析:D 【解析】结合题意,程序运行如下: 首先初始化40,1,0N n S ===,第一次循环,22S S n =+=,此时不满足n N >,执行314n n =+=; 第二次循环,210S S n =+=,此时不满足n N >,执行3113n n =+=; 第三次循环,236S S n =+=,此时不满足n N >,执行3140n n =+=; 第四次循环,2116S S n =+=,此时不满足n N >,执行31121n n =+=; 第五次循环,2358S S n =+=,此时满足n N >,跳出循环,输出358S =. 本题选择D 选项.点睛:此类问题的一般解法是严格按照程序框图设计的计算步骤逐步计算,逐次判断是否满足判断框内的条件,决定循环是否结束.要注意初始值的变化,分清计数变量与累加(乘)变量,掌握循环体等关键环节.10.C解析:C 【解析】 输入0,1S i ==执行循环体1,12S S i i i =+==+=,不满足i a > 继续执行循环体3,13S S i i i =+==+=,不满足i a > 继续执行循环体6,14S S i i i =+==+=,不满足i a >继续执行循环体10,15S S i i i =+==+=,不满足i a >继续执行循环体15,16S S i i i =+==+=,由题可知满足6i a =>,输出15S = 故[)5,6a ∈ 故选C11.C解析:C 【解析】执行程序框图,输入,2,0,1,x k S === 第一次循环1,3,k S ==第二次循环2,8,k S ==第三次循环3,19,k S ==第四次循环4,42,k S ==第五次循环5k =,退出循环,输出42S = ,故选C.【方法点睛】本题主要考查程序框图的循环结构流程图,属于中档题. 解决程序框图问题时一定注意以下几点:(1) 不要混淆处理框和输入框;(2) 注意区分程序框图是条件分支结构还是循环结构;(3) 注意区分当型循环结构和直到型循环结构;(4) 处理循环结构的问题时一定要正确控制循环次数;(5) 要注意各个框的顺序,(6)在给出程序框图求解输出结果的试题中只要按照程序框图规定的运算方法逐次计算,直到达到输出条件即可.12.C解析:C 【解析】模拟程序框图的运行过程,如下:1i =,0s =,0sin 42S π=+=;2i =,50i ≥?,否,2sin 222S π=+=;3i =,50i ≥?,否,3sin 14S π=+==;4i =,50i ≥?,否,101S =+=;5i =,50i ≥?,否,521sin 42S π=+=;6i =,50i ≥?,否,2122S =-=;7i =,50i ≥?,否,7sin 024S π=+=;8i =,50i ≥?,否,0sin 20S π=+=;9i =,50i ≥?,否,90sin42S π=+=;…;s 的值是随i 的变化而改变的,且周期为8,又50682=⨯+,此时终止循环,∴输出的s 值与2i =时相同,为12S =+,故选C. 二、填空题13.3-3【解析】∵输入x =-5<0∴y =x -3=-5-3=-8∴输出x -y =-5-(-8)=3y -x =-8-(-5)=-3点睛:(1)条件结构中条件的判断关键是明确条件结构的功能然后根据是的分支成立的解析:3,-3 【解析】 ∵输入x =-5<0, ∴y =x -3=-5-3=-8,∴输出x -y =-5-(-8)=3,y -x =-8-(-5)=-3.点睛: (1)条件结构中条件的判断关键是明确条件结构的功能,然后根据“是”的分支成立的条件进行判断. (2)对条件结构,无论判断框中的条件是否成立,都只能执行两个分支中的一个,不能同时执行两个分支.14.11【解析】阅读流程图首先初始化数据:进入循环体:满足进行第一次循环:;满足进行第二次循环:;满足进行第三次循环:;满足进行第四次循环:;满足进行第五次循环:;不满足此时跳出循环输出点睛:利用循环结解析:11 【解析】阅读流程图,首先初始化数据:1,0kS,进入循环体:满足20s <,进行第一次循环:1,23S S k k k =+==+=; 满足20s <,进行第二次循环:4,25S S k k k =+==+=; 满足20s <,进行第三次循环:9,27S S k k k =+==+=; 满足20s <,进行第四次循环:16,29S S k k k =+==+=; 满足20s <,进行第五次循环:25,211S S k k k =+==+=; 不满足20s <,此时跳出循环,输出11k =.点睛:利用循环结构表示算法,一定要先确定是用当型循环结构,还是用直到型循环结构;当型循环结构的特点是先判断再循环,直到型循环结构的特点是先执行一次循环体,再判断.15.【解析】试题分析:通过第一次循环得到通过第二次循环得到通过第三次循环得到此时不满足判断框中的条件执行输出故答案应填:考点:程序框图 解析:8【解析】试题分析:通过第一次循环得到1,4,22s i k ←←←,通过第二次循环得到1(24)4,6,32s i k ←⨯=←←,通过第三次循环得到1(46)8,8,43s i k ←⨯=←←,此时不满足判断框中的条件,执行输出8s ←.故答案应填:8. 考点:程序框图.16.4或﹣3【解析】试题分析:根据程序语言的运行过程得程序运行后输出的函数y=;令y=3求出对应x 的值解:根据程序语言的运行过程得该程序运行后输出的是函数y=;又输出y=3所以当x≤0时y=﹣x=3解得解析:4或﹣3【解析】试题分析:根据程序语言的运行过程,得程序运行后输出的函数y=;令y=3,求出对应x的值.解:根据程序语言的运行过程,得该程序运行后输出的是函数y=;又输出y=3,所以,当x≤0时,y=﹣x=3,解得x=﹣3,满足题意;当0<≤1时,y=0,不满足题意;当x>1时,y=x﹣1=3,解得x=4,满足题意;综上,x的值是4或﹣3.故答案为4或﹣3考点:程序框图.17.8613【解析】S为大于等于80分的学生的平均成绩计算得S=86;n表示60分以下的学生人数由茎叶图可知n=13解析:86,13【解析】S为大于等于80分的学生的平均成绩,计算得S=86;n表示60分以下的学生人数,由茎叶图可知n=13.18.-3或0【解析】分析程序中各变量各语句的作用再根据流程图所示的顺序可知:该程序的作用是计算分段函数的函数值当x<0时y=x+3=0∴x=-3满足要求当x=0时y=0∴x=0满足要求当x>0时y=x+解析:-3或0【解析】分析程序中各变量、各语句的作用,再根据流程图所示的顺序,可知:该程序的作用是计算分段函数3,00,05,0x xy xx x+<⎧⎪==⎨⎪+>⎩的函数值,当x<0时,y=x+3=0,∴x=-3满足要求,当x=0时,y=0,∴x=0满足要求,当x>0时,y=x+5,∴x=-5,不满足要求,故输入的x的值为:-3或0.19.(I);(II)见解析【解析】试题分析:(I)由已知得本程序的作用是计算由于第一次执行循环时的循环变量初值为2步长为1最后一次执行循环进循环变量值为2010我们根据利用循环结构进行累加的方法不难给出解析:(I )2010?i ≤,1S S i i=++;(II )见解析. 【解析】试题分析:(I )由已知得本程序的作用是计算111123 (2010232010)+++++++,由于第一次执行循环时的循环变量初值为2,步长为1,最后一次执行循环进循环变量值为2010,我们根据利用循环结构进行累加的方法,不难给出结论;(II )先判定循环的结构,然后选择对应的循环语句,对照流程图进行逐句写成语句即可.试题解:(I )判断框:i≤2010或i <2011 执行框:S=S+i+1/i… (II )程序: 程序语言不对扣分 1.运算符号不对扣一分 2.程序结构翻译错误扣2分 (当型用直到型) 3.没有输出语句扣一分 4.没有END 扣一分 考点:循环结构;伪代码.20.【解析】试题分析:第一次循环:第二次循环:第三次循环:结束循环输出考点:循环结构流程图 解析:4【解析】试题分析:第一次循环:255,2S n ==,第二次循环:127,3S n ==,第三次循环:6363,4S n =≤=,结束循环输出4n =考点:循环结构流程图三、解答题21.见解析【解析】【分析】根据顺序确定流程图.【详解】解:【点睛】本题考查流程图画法,考查基本设计能力.22.见解析;【解析】试题分析:首尾加开始与结束圆角矩形框图,赋值语句改为矩形框图,输出语句改为平行四边形框图试题程序框图如下:点睛:23.(1)111,195(2)01x =或02x = 【分析】 ⑴当04965x =时,可以求出11119x =,满足条件i x D ∈,执行循环体,依此类推,而1D -∉,不满足于条件,终止循环,解出i x 的所有项即可⑵要使输出的所有i x 都相等,根据程序框图可得000421x x x -=+,解方程求出初始值0x 的值即可 【详解】(1)当x 0=时,x 1=f(x 0)=f =,x 2=f(x 1)=f=,x 3=f(x 2)=f=-1,终止循环.∴输出的数为,.(2)要使输出的所有x i 都相等,则x i =f(x i -1)=x i -1,此时有x 1=f(x 0)=x 0,即=x 0,解得x 0=1或x 0=2,∴当输入的初始值x 0=1或x 0=2时,输出的所有x i 都相等. 【点睛】本题是一道关于程序框图和函数的综合题,需要理清题中程序框图的逻辑关系,属于中档题.24.【解析】【分析】根据结构图的定义,结合第一章《统计案例》的知识体系可完成其知识结构图.【详解】人教A版选修1-2教材的第一章《统计案例》中,一共有两节:1 回归分析的基本思想及其初步应用,2 独立性检验的基本思想及其初步应用.章节结构图如下图所示:【点睛】本题考查流程图的画法,考查利用数学知识解决实际问题的能力,比较基础.25.见解析.【分析】根据要表达的先后关系,画出环形结构图即可.【详解】知识结构图如下图所示:【点睛】(1)表达逻辑先后关系时,通常使用“环”形结构图.在绘制“环”形结构图时,可以先根据逻辑先后关系按照从左到右或从上到下的顺序画出各要素的图框,再用连线或方向箭头适当连接.(2)“环”形结构图经常用来表示知识的网络关系,即复杂的知识结构图一般都呈“环”形结构,这种图能从多种不同联系的角度来理解知识各版块之间的关系.(3)画“环”形结构图时,必须从整体上理清层次,并抓住系统的主要要素进行分解至基本单元,通过把握各要素之间的相互关系,确定各基本单元之间的逻辑先后顺序,然后按照一定的顺序连接基本单元.26.见解析【解析】试题分析:根据到原点的距离公式22d x y =+,先求出y 值,再求出距离。

2024年编程思想训练总题库

2024年编程思想训练总题库

1:定义一个学生的成绩 mark 变量, 假如小于80,且打印"不及格" 假如不小于等于80且小于100,则及格 假如不小于等于100且小于120,则良好 假如不小于等于120且小于150,则优秀2: 求分段函数的值。

f(x)= 0 (x<0) = 2x+1 (x>=0)3: 编写程序,输出1-100间的所有偶数。

4: 求1+2+3+ 。

+20的成果。

分别使用(while,do_while,for 三种循环语句)5:打印输出上三角,不能使用直接打印 * ** *** **** *****6: 定义一个数组,初始化5个数值,打印输出最大数,最小数,平均数。

7: 输出1-100之间不能被6整除的所有数字。

8: 计算输出1-100 之间的所有奇数的累加和。

9: 计算1-100间所有整数的和,当和为4位数时终止求和并输出该和的值。

10: 打印输出九九乘法表。

11: 打印输出平方值小于0的最大整数。

12 创建一个People类,定义组员变量 编号、姓名、性别、年龄;定义组员措施“取得编号”、“取得姓名”、“取得年龄”等,创建people 类的对象,调用定义的组员措施。

13: 完成上题People 类后,把组员变量‘编号’、‘姓名’、‘性别’赋予私有修饰符,“取得编号”、“取得姓名”,“取得性别”三个措施赋予公共修饰符,“取得年龄”措施赋予静态的措施修饰符。

对编译问题予以分析且处理。

14:创建一个Rectangle 类,添加两个属性width、height. 在Rectangle 中添加两个措施计算矩形的周长和面积。

 编程利用Rectangle 输出一个矩形的周长和面积。

设计一个MyArray 类,添加一个整形数组,添加结构措施对数组赋初值。

 为MyArray类添加数组求和措施,添加返回求和值的措施。

编程利用MyArray 计算数组的求和值并输出。

15: 创建类且定义adding 措施,求1+2+3+。

课时作业3:章末检测

课时作业3:章末检测

章末检测一、选择题1.算法共有三种逻辑结构,即顺序结构、条件结构、循环结构,下列说法正确的是() A.一个算法只能含有一种逻辑结构B.一个算法最多可以包含两种逻辑结构C.一个算法必须含有上述三种逻辑结构D.一个算法可以含有上述三种逻辑结构的任意组合答案 D解析任何一种算法都是由上述三种逻辑结构组成的,它可以含有三种结构中的一种、两种或三种.2.中国古代有计算多项式值的秦九韶算法,如图是实现该算法的程序框图.执行该程序框图,若输入的x=2,n=2,依次输入的a为2,2,5,则输出的s=()A.7 B.12 C.17 D.34答案 C解析由框图可知,输入x=2,n=2,a=2,s=2,k=1,不满足条件;a=2,s=4+2=6,k=2,不满足条件;a=5,s=12+5=17,k=3,满足条件输出s=17,故选C.3.如图所示,程序框图的输出结果是()A.3B.4C.5D.8答案 B解析当x=1,y=1时,满足x≤4,则x=2,y=2;当x=2,y=2时,满足x≤4,则x=2×2=4,y=2+1=3;当x=4,y=3时,满足x≤4,则x=2×4=8,y=3+1=4;当x=8,y=4时,不满足x≤4,则输出y=4.4.下面程序若输出的结果为4,则输入的x值可能是()A.1 B.-3 C.-1 D.1或-3答案 D解析由x2+2x+1=4,得x=1或x=-3.5.490和910的最大公约数为()A.2 B.10 C.30 D.70答案 D解析由辗转相除法,得910=490×1+420,490=420×1+70,420=70×6,所以两数的最大公约数为70.6.下列各数中,与1010(4)相等的数是()A.76(9)B.103(8)C.2 111(3)D.1 000 100(2)答案 D解析1010(4)=1×43+1×4=68.因为76(9)=7×9+6=69;103(8)=1×82+3=67;2111(3)=2×33+1×32+1×3+1=67;1000100(2)=1×26+1×22=68,所以1010(4)=1000100(2) 7.下面程序运行时,从键盘输入-3,则输出值为()y =-1END IFEND IFPRINT yENDA .-3B .3C .1D .-1答案 D解析 由程序知,当x >0时,y =1;否则,当x =0时,y =0;当x <0时,y =-1.∴y =⎩⎪⎨⎪⎧ 1 (x >0),0(x =0),-1(x <0).8.用秦九韶算法求一元n 次多项式f (x )=a n x n +a n -1x n -1+…+a 1x +a 0当x =x 0时的值,一个反复执行的步骤是( )A.⎩⎪⎨⎪⎧ v 0=a 0,v k =v k -1x +a n -k (k =1,2,…,n ) B.⎩⎪⎨⎪⎧ v 0=a n ,v k =v k -1x +a n -k(k =1,2,…,n ) C.⎩⎪⎨⎪⎧ v 0=a 0,v k =v k -1x +a k (k =1,2,…,n ) D.⎩⎪⎨⎪⎧v 0=a n ,v k =v k -1x +a k (k =1,2,…,n ) 答案 B解析 由秦九韶算法可知,若v 0=a n ,则v k =v k -1x +a n -k ,故选B.9.阅读如下程序框图,如果输出i =5,那么在空白矩形框中应填入的语句为( )A.S =2*i -2B.S =2*i -1C.S =2*iD.S =2*i +4答案 C 解析 当空白矩形框中应填入的语句为S =2*i 时,程序在运行过程中各变量的值如下表示: IS 是否继续循环循环前10第一圈25是第二圈36是第三圈49是第四圈510否故输出的i 值为5,符合题意.故选C.10.某程序框图如图所示,若该程序运行后输出S 的值是95,则( )A .a =4B .a =5C .a =6D .a =7答案 A解析 由程序框图及最后输出S 的值是95,知当k =1时,S =1,k >a 不成立,故S =1+11×2=32,k =2>a 不成立,故S =32+12×3=53,k =3>a 不成立,故S =53+13×4=74,k =4>a 不成立,故S =74+14×5=95,此时k =5>a 成立,所以a =4. 二、填空题11.一个算法如下:第一步,S 取值0,i 取值1.第二步,若i 不大于12,则执行下一步;否则执行第六步.第三步,计算S +i 并得结果代替S .第四步,用i+2的值代替i.第五步,转去执行第二步.第六步,输出S.则运行以上步骤输出的结果为________.答案36解析根据算法逐步执行:S=0,i=1,满足“i不大于12”,则S=0+1.i=1+2=3,满足“i不大于12”,则S=0+1+3,i=3+2=5,满足“i不大于12”,…则S=0+1+3+5+7+9+11,i=11+2=13,不满足“i不大于12”.所以输出S,故S=0+1+3+5+7+9+11=36.12.输入x=5,运行下面的程序之后得到y=________.答案 4解析由于x=5>1,故y=5-1=4.13.若输入t=8,则程序执行后输出的结果是________.答案0.7解析该程序表示的算法是求分段函数C =⎩⎪⎨⎪⎧0.2,t ≤4,0.2+0.1(t -3),t >4的值,当t =8时,C =0.2+0.1(8-3)=0.7.14.执行右边的程序框图,若输入的a ,b 的值分别为0和9,则输出的i 的值为________.答案 3解析 第1次循环:i =1,a =1,b =8,a <b ;第2次循环:i =2,a =3,b =6,a <b ;第3次循环:i =3,a =6,b =3,a >b ,输出i 的值为3.三、解答题15.分别用辗转相除法和更相减损术求282与470的最大公约数.解 辗转相除法:470=1×282+188,282=1×188+94,188=2×94,∴282与470的最大公约数为94.更相减损术:470与282分别除以2得235和141.∴235-141=94,141-94=47,94-47=47,∴470与282的最大公约数为47×2=94.16.为了节约用水,学校改革澡堂收费制度,开始实行计时收费,30min 以内每分钟收费0.1元,30min 以上超过部分每分钟收费0.2元,编写程序并画出程序框图,要求输入洗澡时间,输出洗澡费用.解 用y (单位:元)表示洗澡费用,x (单位:min)表示洗澡时间,则y =⎩⎪⎨⎪⎧0.1x , 0<x ≤30,3+0.2(x -30),x >30. 程序框图如图所示.程序如下:17.下列语句是求S=2+3+4+…+99的一个程序,请回答问题:(1)程序中是否有错误?若有,请加以改正;(2)把程序改成另一种类型的循环语句.解(1)错误有两处:第一处:语句i=1应改为i=2.第二处:语句LOOP UNTIL i>=99应改为LOOP UNTIL i>99.(2)改为当型循环语句为: i =2 S =0WHILE i <=99S =S +ii =i +1WENDPRINT SEND18.下列是某个问题的算法程序,将其改为程序语言,并画出程序框图. 算法:第一步,令i =1,S =0.第二步,若i ≤999成立,则执行第三步;否则,输出S ,结束算法.第三步,S =S +1i. 第四步,i =i +2,返回第二步.解 程序如下:i =1S =0WHILE i<=999S =S +1/ii =i +2WENDPRINT SEND程序框图如下:。

(好题)高中数学选修1-2第二章《框图》检测卷(有答案解析)(1)

(好题)高中数学选修1-2第二章《框图》检测卷(有答案解析)(1)

一、选择题1.下图所示的算法流程图最后输出的结果是()A.1 B.4 C.7 D.11 2.如图是计算的一个程序框图,判断框内应填入的条件是A.B.C.D.3.阅读下面的程序框图,运行相应的程序,则输出的S的值为()A .56B .72C .84D .904.阅读下边的程序框图,运行相应的程序,则输出S 的值为( )A .4B .-4C .8D .-85.执行下边的程序框图,若输出的S 是121,则判断框内应填写( )A .3?n <B .4?n <C .3?n >D .4?n > 6.如图给出的是计算111112468100+++++的一个程序框图,则判断框内应填入关于i 的不等式为( ).A .50i <B .50i >C .51i <D .51i > 7.执行如图1所示的程序框图,若输出b 的值为16,则图中判断框内①处应填( )A .0B .1C .2D .3 8.执行如图所示的程序框图(其中mod10b c 表示b 等于c 除以10的余数),则输出的b为( )A .2B .4C .6D .89.执行如图所示的程序框图,则输出的结果为( )A .2B .3C .4D .510.数列{}n a 中,*12211,()n n n a a a a a n N ++===+∈,设计一种计算{}n a 的前n 项和的算法框图如右,其中赋值框中应填入的是A .,a b b a b ==+B .,b a b a b =+=C .,,x b a x b a b ===+D .,,x b b a b a x ==+=11.执行如图的框图,则输出的s 是( )A.9 B.10 C.132 D.132012.若某程序框图如图所示,则该程序运行后输出的i的值是()A.4 B.5 C.6 D.7二、填空题13.执行如图所示的算法流程图,则输出的值是______.14.下图是出租汽车计价器的程序框图,其中x表示乘车里程(单位:km),S表示应支付的出租汽车费用(单位:元).有下列表述:①在里程不超过3km 的情况下,出租车费为8元;②若乘车8.6km ,需支付出租车费20元;③乘车xkm 的出租车费为()823x +-④乘车xkm 与出租车费S 的关系如图所示:则正确表述的序号是__________.15.如图程序是求一个函数的函数值的程序,若执行此程序的结果为3,则输入的x 值为 .16.图中是某工厂2014年9月份10个车间产量的条形图,条形图从左到右表示各车间的产量依次记为123,,,,n A A A A ,(如3A 表示3号车间的产量为950件),图2是统计图1中产量在一定范围内车间个数的一个算法流程图,那么运行该算法流程图输出的结果是 .17.某工程的工序流程图如图所示,现已知工程总工时数为9天,工序c 所需工时为x (x ∈N )天,则x 的最大值为__________.18.如图所示的程序框图(未完成),设当箭头a 指向①时,输出的结果s m =,当箭头a 指向②时,输出的结果s n =,则m n +=_____.19.某程序框图如图所示,则该程序运行后输出k的值是:__________.20.已知程序框图如下,则输出的i=_______.三、解答题21.已知数列{}n a 的各项均为正数,观察程序框图,若5k =,10k =时,分别有511S =和1021S =,求数列{}n a 的通项;22.明天小强要参加班里组织的郊游活动,为了做好参加这次郊游的准备工作,他测算了如下数据:整理床铺、收拾携带物品8分钟,洗脸、刷牙7分钟,煮牛奶15分钟,吃早饭10分钟,查公交线路图9分钟,给出差在外的父亲发手机短信6分钟,走到公共汽车站10分钟,等公共汽车10分钟.小强粗略地算了一下,总共需要75分钟,为了赶上7:50的公共汽车,小强决定6:30起床,不幸的是他一下子睡到6:50,请你帮小强安排一下时间,画出一份郊游出行前时间安排流程图,使他还能来得及参加此次郊游. 23.某公司招工需要遵循以下程序:在招工前要明确招工事宜,如果是大学毕业的,需出示大学毕业证及身份证,填写应聘书,直接录取;如果不是大学毕业的,需要参加考试培训,首先要填写考生注册表,领取考生编号,明确考试科目和时间,然后缴纳考试费用,按规定时间参加考试,领取成绩单,如果成绩合格,被录用,并填写应聘书,成绩不合格不予录用,即落聘. 请设计一个流程图,表示这个公司的招工程序.24.画出求112122+++的值的算法程序框图.25.根据下面的要求,求满足123500n ++++>的最小的自然数n .(1)画出执行该问题的程序框图;(2)以上是解决该问题的一个程序,但有几处错误,请找出错误并予以更正,并把正确的程序写下来.26.我们学过圆的有关知识及应用,试画出与圆有关的知识结构图.【参考答案】***试卷处理标记,请不要删除一、选择题1.C解析:C【解析】【分析】该程序的功能是利用循环结构计算并输出S 的值,模拟程序的运行过程,分析循环中各变量值的变化情况,可得答案.【详解】S =1,i =1第一次执行循环体后,S =2,i =2,不满足条件;第二次执行循环体后,S =4,i =3,不满足条件;第三次执行循环体后,S =7,i =4,满足退出循环的条件;故输出的S 值为7,故选:C .【点睛】本题考查了程序框图的应用问题,解题时应模拟程序框图的运行过程,以便得出正确的结论,是基础题.2.D解析:D【解析】【分析】根据题意,模拟程序的运行过程,即可得出程序运行后输出的S 值.【详解】第1次循环得,,; 第2次循环得,,; 第3次循环得,,;;第8次循环得,,; 此时循环结束.故选:D .【点睛】本题考查了程序语言的应用问题,是基础题. 3.B解析:B【解析】阅读流程图可得,该流程图的功能为计算:()()188212228212382722S +⨯=⨯+⨯++⨯=⨯++++=⨯=. 本题选择B 选项. 4.D解析:D【解析】分析:根据框图的流程依次计算程序运行的结果,直到满足条件3n >,计算输出S 的值. 详解:模拟执行程序,可得4,1S n ==,满足条件4S ≥,462S =-=-,2n =,不满足条件3n >,不满足条件4S ≥,()224S =⨯-=-,3n =,不满足条件3n >,不满足条件4S ≥,()248S =⨯-=-,4n =,满足条件3n >,退出循环,输出S 的值为8-.故选:D.点睛:本题考查了循环结构的程序框图,根据框图的流程依次计算程序运行的结果是解答此类问题的常用方法,属于基础题.5.D解析:D【解析】分析:该程序框图表示的功能是求等比数列的和,利用等比数列的求和公式可得结果. 详解:由程序框图可知,该程序框图表示的功能是求等比数列的和, 由1313...312113nn-+++==-,可得5n =, 故判断框内应填写4?n >,故选D.点睛:算法是新课标高考的一大热点,其中算法的交汇性问题已成为高考的一大亮,这类问题常常与函数、数列、不等式等交汇自然,很好地考查考生的信息处理能力及综合运用知识解决问題的能力,解决算法的交汇性问题的方:(1)读懂程序框图、明确交汇知识,(2)根据给出问题与程序框图处理问题即可.6.B解析:B【解析】分析:先确定循次数,再确定关于i 的不等式. 详解:11124100+++进行了50次, 第50次结束时,102n =,=51i ,此时输出,因此50i >.选B .点睛:算法与流程图的考查,侧重于对流程图循环结构的考查.先明晰算法及流程图的相关概念,包括选择结构、循环结构、伪代码,其次要重视循环起点条件、循环次数、循环终止条件,更要通过循环规律,明确流程图研究的数学问题,是求和还是求项.7.C解析:C【解析】分析:模拟执行程序框图,只要按照程序框图规定的运算方法逐次计算,直到达到到输出b 的值为16,即可得输出条件.详解:执行程序框图,输入0,1a b ==,第一次循环,2,1b a ==;第二次循环,4,2b a ==;第三次循环,16,3b a ==时,应退出循环,故图中判断框内①处应填2,故选C.点睛:本题主要考查程序框图的循环结构流程图,属于中档题. 解决程序框图问题时一定注意以下几点:(1) 不要混淆处理框和输入框;(2) 注意区分程序框图是条件分支结构还是循环结构;(3) 注意区分当型循环结构和直到型循环结构;(4) 处理循环结构的问题时一定要正确控制循环次数;(5) 要注意各个框的顺序,(6)在给出程序框图求解输出结果的试题中只要按照程序框图规定的运算方法逐次计算,直到达到输出条件即可.8.D解析:D【解析】1n = 时,第一次进入循环,16,8,6,c a b === 2n =时,第二次进入循环48,6,8c a b ===,3n =时,第三次进入循环,48,8,8c a b === ,4n =时,第四次进入循环,64,8,4c a b ===,当5n =时,第五次进入循环,32,4,2c a b === 6n =时,第六次进入循环,8,2,8c a b === ,由此可知此循环的周期为6,当2016n =时,第2016次进入循环,20166336=⨯ ,所以此时8,2,8c a b ===,退出循环,输出的b 值等于8,故选D.9.D解析:D【解析】执行程序框图,20,120,210,S i S i S ==⇒==⇒=1053,4136i S i S =⇒==⇒=<,输出5i =,故选D. 【方法点睛】本题主要考查程序框图的循环结构流程图,属于中档题. 解决程序框图问题时一定注意以下几点:(1) 不要混淆处理框和输入框;(2) 注意区分程序框图是条件分支结构还是循环结构;(3) 注意区分当型循环结构和直到型循环结构;(4) 处理循环结构的问题时一定要正确控制循环次数;(5) 要注意各个框的顺序,(6)在给出程序框图求解输出结果的试题中只要按照程序框图规定的运算方法逐次计算,直到达到输出条件即可.10.D解析:D【解析】执行A 得1124S =++++执行B 得1124S =++++执行C 得1124S =++++执行D 得1123S =++++所以选D11.C解析:C【解析】循环依次为11212,11;1112132,10S i S i =⨯===⨯==,结束循环,输出132S = ,选C. 12.C解析:C【解析】由题设提供的算法流程图可知:当10,0n i ==时,1105,1,52n i =⨯==是奇数,则35116,2n i =⨯+==,运算程序继续进行,1168,3,82n i =⨯==不是奇数,此时184,4,42n i =⨯==不是奇数,运算程序继续进行,142,5,22n i =⨯==不是奇数;运算程序继续进行,121,6,12n i n =⨯===运算程序结束,应选答案C 。

一种矩形件优化排样综合算法

一种矩形件优化排样综合算法

收稿日期:2002-11-20.作者简介:王华昌(1968-),男,讲师;武汉,华中科技大学塑性成形模拟及模具技术国家重点实验室(430074).一种矩形件优化排样综合算法王华昌 陶献伟 李志刚(华中科技大学塑性成形模拟及模具技术国家重点实验室)摘要:提出了应用于矩形件优化排样中的关键算法:条料生成算法与填充算法.把二者融合在一起,提出了一种适用于矩形件优化排样的最小残料算法.该算法依据残料大小决定条料,并对空白矩形进行有效填充,可快速得到排样结果.将其与模拟退火算法相结合,能够跳出局部搜索,最终可获得近似总体最优的排样结果.关 键 词:矩形件优化排样;条料生成算法;填充算法;最小残料算法;模拟退火算法中图分类号:T G316 文献标识码:A 文章编号:1671-4512(2003)06-0009-04矩形件优化排样是指有多种不同矩形件,每种矩形件需要若干个,尽可能多地排放,使给定的矩形板材利用率最高.矩形件优化排样问题实质是一个组合优化的二维布局问题,具有工件种类多、数量大等特点,是计算复杂性最高的一类NP 完全问题,至今还无法找到解决该问题的有效多项式时间算法.国内外已经有不少专家学者在这个领域做了很多研究工作,并且取得了一些成果,例如背包算法[1]、组块技术[2]等,都能够得到较好的排样效果.但是,前者是近似优化算法,后者是局部搜索方法,达不到排样的总体最优.而不经任何处理的模拟退火排样算法虽然可达到近似最优解,却不适合/一刀切0的下料工艺,只适合/正交切割0.为获得总体最优解,作者提出了最小残料算法.该算法是一种接近最优解的局部搜索算法,适用于矩形件毛坯的优化排样.将其与模拟退火算法思想相结合,能随机地接受某些劣化解,跳出局部极小点,因而有较强的全局搜索能力.同时,可满足排样速度快、板材利用率高的要求和/一刀切0高效率下料工艺,从而较好地解决了现行排样算法中存在的上述问题.1 最小残料算法1.1 数据结构设板材的长度为l,宽度为w ,工件种类数为n,则矩形工件基本信息存储如下:typedef struct tagRect{int w ;M 工件宽度 int l ;M 工件长度int n ;M 工件数目}Rect,*pRect;矩形工件输出坐标如下:typedef struct tag Point{int x 1;M 当前输出工件左下角点横坐标 int y 1;M 当前输出工件左下角点纵坐标 int x 2;M 当前输出工件右上角点横坐标 int y 2;M 当前输出工件右上角点纵坐标}XPoint,*pXPoint;1.2 约束条件和目标函数排样的基本目标是使得排样所用的板材数尽可能少,以提高材料的利用率;排样的基本约束条件是矩形件之间不能有相互重叠区域,并且矩形件不能有排出板材的部分.排样规则为每一个矩形件可以被横向排放或者纵排.排样方式为从板材的最左下角开始排到板材的右上角结束一块板材的排样.设板材左下角的坐标为(0,0),(x 1i ,y 1i )和(x 2i ,y 2i )为第i 块矩形工件在板材上左下角和右上角坐标,那么他们的关系为x 2i =x 1i +Rect [i].l ;y 2i =y 1i +Rect [i].w ,或者x 2i =x 1i +Rect [i].w ;y 2i =y 1i +Rect [i].l ,其中前者为横排时同一矩形件坐标关系,后者为第31卷第6期 华 中 科 技 大 学 学 报(自然科学版) V ol.31 No.62003年 6月J.Huazhong U niv.of Sci.&T ech.(Nature Science Editio n)Jun. 2003纵排时同一矩形件坐标关系,则排样的过程就是根据一定的寻优规则,确定每个矩形工件在板材上的左下角和右上角坐标.设任意两个参加排样的矩形工件的左下角和右上角坐标分别是(x1s,y1s),(x2s,y2s)和(x1t, y1t),(x2t,y2t),则满足下面任何一种情况,工件不会相互重叠:a.x2s[x1t;b.x1s\x2t;c.y1t\x2s;d.y2t[x1s.对于任意第i种工件,必须满足下面的约束,否则工件必然越出板材之外:a.x1i\0;b.y1i\0;c.x2i[nl;d.y2i[w;在满足以上初始约束条件的前提下,使得板材利用率尽可能地高,因此,优化排样的目标函数可表达为max E n i=1(Rect[i].l Rect[i].w#Rect[i].n)/([Point[last].x2-w]w),式中,Point[last].x2为最后一个排样工件右上角横坐标;w为板材之间间隔.1.3条料生成算法排样问题是二维布局的问题,化二维布局为一维布局,即沿板材的宽度方向不断产生条料.生成条料的方式很多,作者所提出的基于最小残料的条料生成算法能够使板材利用率在宽度方向达到最高,算法描述如下:a.把所有的工件按照长度从大到小排序;b.令i=n,k=1;c.从第i种工件沿着板材宽度方向试探排样;d.令h=i,若当前第h种工件排样完毕,则令h=h-1,若Rect[h].n不为0,则紧邻以上工件继续试探排样;若为0,则续排下一种工件.同时,每排一个工件,须判定板材宽度是否排完;e.若板材宽度仍可排,则转d,继续排样,直到不可排.否则,返回剩余宽度Leftw idth[k].若Leftw idth[k]为0,则中止循环,转g,否则,顺序执行;f.令i=i-1,k=k+1,转c,继续第k种方案排样,直到i=0,中止循环;g.确认Leftw idth[k]为最优条料生成途径;h.输出此次沿宽度方向的排样结果.为更加清楚地说明条料生成过程,下面给出一个典型例子.表1所示为排样数据,共有4种工件,板材宽度为1000mm,长度不定.按照以上描述的条料生成算法,表中矩形工件的首次条料生成过程如图1~4所示.表14种工件的参数序号n l/mm w/mm11283040236801403746011049230160图1条料生成方案1图2条料生成方案2L eftw idth[1]=100mm Leftwidth[2]=30mm图3条料生成方案3图4条料生成方案4L eftw idth[3]=70mm L eftw idt h[4]=40mm由图中可知,条料生成方案2的剩余宽度最小.根据算法判断准则,该方案为首次条料最终生成方案.在条料产生的同时,会出现如图中阴影表示的空白矩形,如何对这些空白矩形进行填充,则是算法的关键.1.4空白矩形的填充算法每个空白矩形都可看作一块一定尺寸的板材.由于其尺寸相对较小,针对这种情况,作者开发了专门用于空白矩形排样的填充算法.对未排工件分别进行横向排列和纵向排列的试探,判断是否能够对其进行填充.如果能够填充,则选择横向填充或者纵向填充,并进而得到排样的条料.在完成上述填充过程的同时,在原空白矩形上会产生更多的更小的空白矩形,调用填充算法对其进一步填充,直到任何待排工件都不能再填充为止.算法描述如下:a.设由条料生成算法得到空白矩形长度和宽度分别为l和w;b.令i=n-1,若i\0,Rect[i].n>0,判断工件长度是否大于板材宽度,如果是,采用连续横排,转e;否则,顺序执行;c.对于所有待排工件,计算最小工件长度10华中科技大学学报(自然科学版)第31卷min -l =min{Rect [i].l};d .分别计算局部利用率,LocalRatio1=(Rect [i ].n Rect [i ].l #Rect [i].w )/(l 1w ),LocalRatio2=(Rect [i ].n Rect [i ].l #Rect [i].w )/(l 2w ),并取M ax {LocalRatio1,LocalRatio2},由此判定选用连续横排或者连续纵排;e .对于所产生的空白矩形进行填充,令k =n -1,若k \0,则Rect [k ].n >0;对工件k 进行试探填充,若满足约束条件,则调用相应空白矩形填充算法,对其填充.对于所产生的新的空白矩形,继续调用填充算法,直到不能填充任何工件为止.填充完毕后,令k =k -1,更新工件数目;f .判断剩余板材长度l 是否大于m in -l ,如果大于,转b ;否则,调用结尾空白矩形填充算法对其填充,更新工件信息.若工件的总数目大于0,产生下一张板材,转c .否则,顺序执行;g .输出排样结果,包括用于输出图形的坐标文件和每块板材的排样信息.1.5 最小残料算法综合条料生成算法与填充算法,导出适合于矩形件排样的最小残料算法,可描述如图5所示.图5 最小残料算法流程图2 模拟退火算法的应用利用最小残料算法的排样存在一个缺陷,那就是在产生条料时,只能按照对工件的长度排序依次产生,虽然能够保证得到当前最小残料的条料,却不能保证第i 个工件在该位置是最合适的.为解决上述问题,作者将模拟退火算法思想应用于最小残料算法中,增加解的空间,一定程度接受劣质解,提高全局搜索能力,可得到近似最优解.模拟退火算法[3]应用的一般形式是:从选定的初始解开始,利用一个新解产生装置和接受准则,重复执行包括/产生新解)))计算目标函数差)))判断是否接受新解)))接受(或者舍弃)新解0这四个任务的试验,不断对当前解迭代,从而达到使目标函数最优的执行过程.当满足以下条件时,算法中止[4]:a .算法获得的当前最优解达到预定值;b .算法对所有可能点搜索完毕.综合最小残料算法和模拟退火算法的最优毛坯排样算法可用图6表示.图6 模拟退火求解算法流程图3 排样实例基于上述算法,给出了两个典型算例.算例1 表2所示为7种工件的参数,该组工件中,每种工件的数量较多,而且工件尺寸与板材尺寸相对差异较大,工件之间尺寸差异不大,属于中等规模排样.板材的尺寸为4000mm @2900mm,获得的排样结果如图7所示.表2 7种工件的参数序号n l /mm w /mm 1103450602705001003905407041204001005150200100640360150745450120图7 排样图(板料利用率为97.75%)算例2 表3所示为26种工件的参数,该组工件中,每种工件的数量很少,而且工件尺寸与板11第6期 王华昌等:一种矩形件优化排样综合算法表326种工件的参数序号n l/mm w/mm147402902211902903111705041119069052117022062730600735902908288029091860501011820290111180050121181069013189022014473045015460029016254020017214802901811460501918805402028602202146004502216902702311480540241880220252570220262600590材尺寸相对差异较为接近,工件之间尺寸差异不大,属于难度较高的排样问题,适用于非批量生产.板材的尺寸为1850mm@1240mm,获得的排样结果如图8所示.图8排样图(板料利用率为90.38%)参考文献[1]曹炬,周济,余俊.矩形件排样的背包算法.中国机械工程,1994,5(2):11~12[2]崔耀东.矩形毛坯下料排样的一种优化算法.机械工艺师,1998(6):32~33[3]康立山,谢云,尤矢勇等.非数值并行算法(第一册))))模拟退火算法.北京:科学出版社,1994. [4]贾志欣,殷国富,罗阳等.矩形件排样的模拟退火算法求解.四川大学学报(工程科学版),2001,33(5): 35~38A synthetical algorithm for the optimal layout of rectangular partWang H uachang Tao X ianw ei L i ZhigangAbstract:A minimal area algorithm for the optimal layout for rectang ular parts w as proposed based on strip creation algorithm and rectangle-filling algorithm.This algorithm means the choice of the created strip de-termined by the remained area and filling the rectangle created by the strip efficiently.T o find global opt-i mal layout solution,the simulated annealing algorithm w as integ rated w ith the minimal area.It overcomes the defect of the minimal area algorithm and jum ps out of the poor qualified result point.Key words:rectangular parts optimal layout;strip creation algorithm;rectangle-filling algorithm;m inim al area algorithm;simulated annealing algorithmW ang Huachang Lect.;State Key Lab.of Plastic Forming Simulation and Die&Mould Tech., Huazhong Univ.of Sci.&Tech.,Wuhan430074,China.12华中科技大学学报(自然科学版)第31卷。

2024-2025学年高二上学期浙教版(2019)选修一 2.2 链表 同步练习(含答案)

2024-2025学年高二上学期浙教版(2019)选修一 2.2 链表 同步练习(含答案)

2023-2024学年高二上学期浙教版(2019)选修一2.2 链表一、选择题1.如下图所示的链表:假如要查找元素11,共需遍历的次数为()A.5B.6C.7D.82.寻宝游戏中通过一个线索找到下一个线索,最好用下列数据组织形式中的()来表示。

A.数组B.链表C.栈D.队列3.小张准备去多个城市旅游,他设计的行程若采用链表结构表示,如图a所示。

若行程有变,需在“上海”与“成都”之间增加一站“杭州”,链表修改为如图b所示,有以下可选操作:①“上海”所在节点的next值赋为“杭州”所在节点的next值①“上海”所在节点的next值赋为5①“杭州”所在节点的next值赋为“上海”所在节点的next值①“杭州”所在节点的next值赋为-1链表更新顺序正确的是()A.①①B.①①C.①①D.①①4.把单向链表第1个节点的位置口叫奇数位置,第2个节点的位置叫偶数位置,以此类推。

现将所有偶数位置的节点依次取出后,放在所有奇数位置节点的后面。

实现该功能的Python 代码段如下,方框中应填入的正确代码为()a=[['a',1],['b',2]. ['c',3],['d',4],[ 'e',-1]]head=odd=0 #链表a头节点指针是headevenhead=even=a[head][1]while even!=-1 and a[even][1]!=-1:a[odd][1]=evenhead #将链表连接在奇数链表之后A.B.C.D.5.链表中的节点通常包含哪两部分()A.数据域和控制域B.数据域和指针域C.指令域和地址域D.标志域和内容域6.有如下Python程序,用于判断链表是否为回文链表(回文链表是指正序遍历和逆序遍历得到的结点顺序一致的链表),则划线处代码是()a=[[1,1],[2,2],[8,3],[2,4],[1,-1]]st=[];head=0;flag=Trueslow, fast=head, headwhile ① :st.append (a[slow][o])slow=a[slow][1]fast=a[a[fast][1]][1]if ① :slow=a[slow][1]while slow!=-1:if st.pop () !=a[slow][0]:flag=Falseslow=a[slow][1]if flag:print("是回文链表!")else:print("不是回文链表!")A.①fast!=-1 or a[fast][1]!=-1①fast!=-1B.①fast!=-1 or a[fast][1]!=-1①a[fast][1]!=-1 C.①fast!=-1 and a[fast][1]!=-1①fast!=-1D.①fast!=-1 and a[fast][1]!=-1①a[fast][1]!=-1 7.有如下图所示的单向链表:从头指针head指向的节点开始查找数据元素“5”,并删除该节点,下列说法正确的是()A.共需查找3次B.删除数据元素“5”的节点,后续节点需要移动3次C.头指针head将指向数据元素“7”的节点D.操作完成后,链表中数据元素的个数为6个8.创建一个空链表时,通常会设置什么来表示链表的起始()A.尾指针B.头指针指向一个空节点C.头指针指向NULL或-1D.无需设置特殊标记9.一头指针head=2 的单向链表L=[[30,4], [10,-1], [20,0], [15,1],[21,3]]通过以下Python 程序段,转换为原链表的逆序链表,即头指针head=1,L=[[30,2], [10,3], [20,-1], [15,4],[21,0]]。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

矩形件排样程序的实现王晨浩-试题b————————————————————————————————作者: ————————————————————————————————日期:矩形件排样程序的实现王晨浩摘要针对样板矩形排样程序的实现问题,本人通过实施FORTRAN90编程,采用直接明了的数字排列的方式,直观清晰的展现了一个矩形样板中矩形件排样的最优方案。

而程序语言本身,结构明朗,层次清晰,适合懂本语言的人斟酌损益和修缮完美;程序运行系统,清晰明朗的输入输出步骤,将程序层序化和普遍化展现淋漓;程序表述方式,人性化的中文语言提示,将程序的可接受度和观赏度大大提高。

本程序采取了通过对板面和具体矩形的数字化展现,通过对整体的数字比较描摹和判定板面的整体矩形排列方式,最终以一个具体的数字排列,实现对矩形排列的宏观显现。

关键词:FORTRAN90程序,矩形排列方案,板面矩形设计一、问题重述(一) 问题简介工业上经常需要在一块大板材上下料得到若干个小的矩形件,使得板材的利用率最高,即所剩余的边角料最少。

例如在一块宽15、高无限制的矩形板材上,排列25块尺寸已知的小矩形,25块小矩形的尺寸如表1,板材的利用率达100%,如图1所示。

图1 一种排样方案表1 小矩形的尺寸序号宽 高 112 6 24 7 36 7 410 2 52 5 66 4 74 2 84 6 97 9 104 5 116 4 124 6 136 3 144 5 152 4 168 4 178 6 188 3 196 3 202 6 218 2 223 5 232 5 243 4 252 4如果上述排样方案未知,即不知道图1的排法,那么如何将这25块小矩形按照某种次序排在一个大的板材上呢?目前这仍是一个世界难题。

通常要求在一个排样图中,任何一个矩形件在不超出板材边界的情况下,按照一个排样方案(给定的次序)采用下列一些方法来安排实际矩形件的排列,对于一个排样方案(解)},{R P D =,其中),,,(21n p p p P =,),,,(21n r r r R =,p i 为矩形件的序号,r i 为排样方式,r i =1表示将矩形件旋转90°, r i =0表示矩形件不旋转。

将第i 个矩形件安排在板材上的过程中,均不能再往下、往左移动,则称其满足B L条件(bo ttom-l eft-con dition ,B L-c ondition)。

(二) 剩余矩形排样法简介剩余矩形排样法是目前所提出的一种有效的排样算法,该方法记录了所有可利用的空间,更能合理地分配给待排样的矩形件,提高了每个排样方案的板材利用率,更接近最优排样方案。

例如对于同一个矩形件序列)4,3,2,1(进行排样,图3(a)中下方的空洞以往的排样算法都无法利用,矩形4只能被排到上方。

而利用剩余矩形排样法可以很好的解决这个问题,它可以使矩形4充分利用下方的空间,如图3(b )。

图3 剩余矩形排样法的优越性剩余矩形排样算法用一个矩形数据集合来表示板材目前的剩余位置情况,任何未被排样的空间(包括孤立的缝隙),都在剩余矩形集合中表示,不会遗漏任何一个。

而在每一个矩形件被排入前,都需根据这个剩余矩形集合中的数据来选择最为合理的位置进行排放。

下面给出剩余矩形的具体形成方法(这里用矩形的左下角坐标和右上角坐标来确定这个矩形的的位置):(1) 板材的左下角和右上角坐标分别为),()0,0(H W 和,于是开始时剩余矩形数据集中只有一个矩形为)],(),0,0[(1H W R =。

(2) 当排入一个矩形件i (宽i w 高i h )后,需将剩余矩形数据集合中的每一个矩形都减掉此矩形件所占的位置。

若此矩形件的左下角坐标为),(11i i y x ,且为横排(即矩形件不旋转90°),则每个剩余矩形都减掉与矩形件)],(),,[(11111i i i i i i h y w x y x ++相交的部分。

例如矩形)],(),0,0[(1H W R =减掉与矩形件i 相交的部分后,形成了四个新的剩余矩形为:)],(),,[()],(),0,0[(1111i i i i i i h y w x y x H W ++- )]},(),0,[()],,(),,0[()],,(),0,0[()],,(),0,0{[(1111H W w x H W h y H x y W i i i i i i ++=按顺时针方向记录矩形。

如图4所示。

若为竖排(即矩形件旋转90°),计算方法类似。

图4 剩余矩形表示法依此类推,将矩形数据集中的所有剩余矩形都作如此操作,减去所排入矩形件i 所占位置,形成新的剩余矩形。

(3) 由于新的剩余矩形的产生,又将引起原矩形数据集的改变,因此对其进行整理:去掉面积为零的或已无法排下所剩的任何一个矩形件的剩余矩形;把具有完全包含关系的剩余矩形中面积小的矩形去除、有相交关系的矩形全部保留。

得到新的剩余矩形集,为下一次排放使用。

用剩余矩形表示法可记录每个可形成最大矩形的空间,用于排样。

将这种表示法与B L排样算法结合,就形成了剩余矩形排样算法,对于给定的一个排样方案},{R P D =,其中),,,(21n p p p P =,),,,(21n r r r R =,具体排样过程如下:(1) 开始时剩余矩形集S 中仅有一个矩形,即板材本身)],(),0,0[(1H W R =。

(2) 从排列P 中取出第一个需排的矩形件1p (宽1p w ,高1p h ),将1p 根据相应排放方式 1r 排放在板材的左下角,用上面所述的剩余矩形表示法计算新的板材剩余矩形集},{21R R S =:若01=r (横排),则)],(),0,[(11H W w R p =,)],(),,0[(12H W h R p =,如图5; 若11=r (竖排),则)],(),0,[(11H W h R p =,)],(),,0[(12H W w R p =。

图5 剩余矩形排样过程(3) 依此类推,按顺序逐一排放),,2(n i p i =,直至所有矩形排放完毕。

每放入一矩形件,都需根据剩余矩形集确定其排放位置,即在剩余矩形集中选择宽高均大于等于此矩形件的底部最低的最靠左的剩余矩形(先靠下后靠左),让矩形件与剩余矩形的左下角重叠。

同时放入矩形后要对剩余矩形集进行整理更新。

同样,剩余矩形排样算法也满足B L条件。

二、 问题分析随着科学技术的日益发展,计算机科学的进步往往使我们叹为观止,在工业等领域的一些现实生活的难题,往往为我们所关注并且深深的影响着我们。

对于本题,现有的一些方法往往比较复杂和难算,那么计算机能不能帮助我们较简便的解决这个问题呢?面对着本题中的算法,我想采用了学过的FORTRAN90来编程实现。

而此计算机语言最大的特点就是用于计算,那么能不能把实际问题和计算交织在一起呢?所以我选择了用数组中的数字宏观显现此实际的分配方案,并采用数字的整改来体现排列矩形的过程,采用对数字的比较和相应的算法来实现判别和判定。

而此方法的难点在于判定算法的确定,回顾此计算机语言,我们采用最多的是数组定义、循环语句和条件选择等程序的设计。

反观本算法,我们可以得到以下结论:1,在判定之前,我们要对本题所已知的已知量进行分析和总结,即板面特点(宽15米,长度不限),25个矩形的规格(宽和高),矩形在此期间的变化(顺序和旋转)。

并将其合理载入。

2,在判定时,我们首先从板面的最底行判定,并且以最底行的宽为判定首要问题,而后以由底行到高层的顺序依次进行判定,其次在判定行后,我们需要对整个矩形的版面数字进行综合判定,即对该矩形的确定行进行展开,综合判定此矩形的位置。

3,在判定后,我们需要在判定合格的基础上进行整改,及将所要求的矩形进行摆放。

三、模型假设模型假设分别对判定前、中、后期进行假设。

1、前期:记板面整体为一个大数组,由于本题可假设为高50,宽15的数组,数组元素全为0,其他矩形可依次按序号和规格确定该矩形,即用1—25的序号表示。

并可用三维数组综合表示此几个矩形。

在排列矩形顺序和旋转方式上可分别定义为一个含25个元素的一维数组。

2、中期:可分别建立3个循环:1,25个矩形顺序循环,即一个一个的写入板面。

2,判定最底行的宽是否符合矩形宽的要求,即判断一共有几个连续的0。

3,判定整个矩形边框内是否都符合要求,即判断以上述边为底边,向上判断该矩形的面积内的元素是否都是0。

4、后期:可以建立一个循环,即整改数组内的元素,如果以上条件均符合,那么将该矩形的代号均写入该板面的数组内。

并按照要求输出。

四、模型建立(一)模型准备设一个三维数组(s),分别以矩形的长(chang)、宽(kuan)、矩形序数(i)为三维坐标。

定义一个四个一维数组,分别把各矩形的长(chang)、宽(kuan)、顺序(shunxu)、旋转方式(xuanzhuan)记为一个数组。

ﻩ用三维数组s(chang,kuan,i)分别综合表示1个样板面和25个矩形,chang(i)、kuan(i)分别依次表示25个矩形的长和宽,shunxu(i)代表本次排列的顺序,xuanzhuan(i)代表本次矩形旋转的角度(1—代表旋转90度,0—代表不旋转)。

运行时,当xuanzhuan(shunxu(i))=1时,该矩形chang(sh unxu(i))和kuan(shunxu(i))互换。

(二) 模型实施模型按矩形顺序shunxu(i)输入,循环25次,分别写入juxing(chang(shunxu(i)),kuan(shunxu(i)),shunxu(i)),并从下至上依次对连续0个数(即未被剩余的空间长)进行检验count,以寻找chang(i)=count的矩形的底层线段末端在某点(横坐标j,纵坐标k)上,在意这条线为底做矩形,划定区域{j-chang(shunxu(i))——j,k-kuan(shunxu(i))——k},一次检验此区域的0个数(未被剩余空间区域),如果0的个数(c)=chang(shunxu(i))*kuan(shunxu(i)),则进行依次写入给矩形的顺序号(shunxu(i)),一旦写入成功,则轮到下一个矩形juxing(chang(shunxu(i+1)),kuan(shunxu(i+1)),shunxu(i+1))的写入程序。

(三) 模型求解ﻩ按照实施阶段具体实施后,结果将以一个长为15,高为50的矩阵输出,1—25的数字将以一个横纵方块的形式在样板面上出现。

除此之外,还可以将各个板面进程和相关数据进行写入和输出。

五、模型分析本程序采取了通过对板面和具体矩形的数字化展现,通过对整体的数字比较描摹和判定板面的整体矩形排列方式,最终以一个具体的数字排列,实现对矩形排列的宏观显现。

相关文档
最新文档