RAPTOR程序设计例题参考标准答案
RAPTOR程序设计例题参考答案
2
———————————————————————————————— 作者:
———————————————————————————————— 日期:
3
RAPTOR程序设计
一、顺序结构编程
1.输入任意一个华氏温度值,然后将其转换成摄氏温度输出。算法:c = 5 / 9 (f - 32)
2.输入任意三角形的三边之长存入变量a、b、c中,然后计算并输出该三角形的面积。
海伦公式:p = (a + b + c)/2 S = sqrt (p * (p - a) * ( p – b ) * ( p – c ))
4
二、选择结构编程
3.输入任意一个年份,判断该年是否为润年。若是则打印“Yes!”,否则打印”No!”。
5
4. 输入任意两个数存入变量a、b中,要求:变量a中存储较大数,b中存储较小数,
然后输出变量a和b的值。
6
5.输入任意三个数存入变量a、b、c中,然后计算并输出其中的最大值。
7
8
6.输入任意三个数存入变量a、b、c中,然后按从小到大的顺序打印输出。
9
10
7.输入任意一个学生的考试成绩,然后按其所属分数段打印对应等级:90-100分为A
等,80-89分为B等,70-79为C等,60-69为D等,60分以下为E等。
三、循环结构编程
8.计算并输出sum = 1 + 2 + 3 + … + 10的和。改进程序计算sum = 1 + 2 + 3 + … + n的和。
11
12
9.输入任意自然数n,然后计算并输出n!值。
13
14
10. 计算并输出sum = 1! + 2! + 3! + … + n!
15
16
11. 输入任意整数存入变量n中,若n≤0则输出“Error!”;否则组织循环结构流程计
算sum = 1 / 2 + 2 / 3 + 3 / 4 + … + n / ( n + 1 )的值,然后分别输出变量n和sum的值。
17
12.设计循环结构程序输入任意10个整数,分别统计其中的奇数个数、偶数个数、所
18
有数的累加和,然后显示结果。
19
20
13.设计校园歌手大赛计分程序,假设有10评委按10分制打分,计算每位选手扣除
一个最高分、最低分后的平均分,显示计分结果。
21
22
14. 输入任意两个数存入变量a和b,然后求a和b最大公约数和最小公倍数。(穷举
法)
23
24
15. 判断输入的任意自然数n是否为素数?(素数也叫质数是指除1和它自身以外不
能被任何数整除的数)
25
16. 翻番问题:设某企业2014年产值为1000万元,计划以后每年按8.5%递增,问该
26
企业的产值在哪一年可以实现翻一番,输出翻番的年份和产值。(迭代法)
27
28
17. “猴子吃桃”问题。(递推法)
18. 任意输入50个学生的考试成绩存入一维数组S,然后分别统计及格与不及格人数,
29
计算全部学生的平均分,输出结果。(数组的应用)
30
31
19. 任意输入10个数存入一维数组S,然后再输入一个待查找数据存入变量X,要求在
数组S中用顺序查找法查找X,若找到数据则打印该数,否则打印“Not find!”。(数组
的应用)
32
33
20. 打印九九乘法表。(双重循环)
34
35
36
21. 打印菲波拉契数列前30项的值。
37
38
22. 任意输入10个数存入一维数组S,然后按数据值从大到小排序输出。(双重循环)
39
RAPTOR
深圳大学实验报告课程名称:大学计算机基础教程实验指导实验项目名称:Raptor算法工具学院:信息工程学院专业:无指导教师:张坤华报告人:苏伟涛学号:2014130003 班级:一班实验时间:2014.12.31实验报告提交时间:2015.01.06教务部制实验目的与要求:1.掌握Raptor的基本符号和基本操作;2.掌握Raptor的控制结构(顺序结构、选择结构和循环结构);3.掌握Raptor的子图和调用语句;4.学会自己提出问题,并得出解决问题的方法。
实验过程及内容:一、顺序结构:顺序结构是简单的程序构造,它就是把每个语句按顺序排列,程序执行时,从开始(Start)语句执行到结束(End)语句,箭头连接着语句并指示程序的执行方向。
顺序结构是最简单的控制结构。
例题:计算存款利息。
有10000元,想存一年。
有如下两种方法可选。
①活期存款,年利率为r1。
②一年定期存款,年利率r2。
请分别计算出一年后按照这两种方法所得的本息和。
解:流程图及运行结果如下:二、选择结构:在Raptor中,选择语句是用一个菱形符号表示,用Yes/No表示对问题的决策结果以及决策后程序语言的执行指向。
选择符号代表了if-then和if-then-else这类语句,当把选择符号拖曳到编辑区域并双击菱形符号时,会弹出“选择”对话框,在这里输入决策条件以确定程序分支的流向。
如图值得注意的是,选择语句的两个途经之一有可能是空的,也可能有多个语句。
如果两个语句同时为空或具有完全相同的语句,则是不合适的。
因此无论决策的结果如何,对程序的运行过程都没有影响。
例题:有一个函数:x ,x<1y = 2x-1,1<=x<103x-2,x>=10请编写程序,实现输入x的值时输出相应的y值。
解:流程图及运行结果如下:三、循环结构:循环结构就是反复执行某一段程序,直到某种条件满足时才结束执行该段程序的结构。
一个循环结构允许重复执行一个或多个语句,直到某些条件为真。
C++程序设计实践_北京科技大学中国大学mooc课后章节答案期末考试题库2023年
C++程序设计实践_北京科技大学中国大学mooc课后章节答案期末考试题库2023年1.Raptor流程通过拖动顺序、选择、循环、赋值等流程图框进行算法描述,能够根据输入数据得到运行结果吗?答案:可以,只要raptor流程图正确描述了算法,九能够根据输入执行得到正确结果2.Hanoi塔问题,现要求将塔座A上的所有圆盘移到塔座B上,并仍按同样顺序叠置,移动圆盘时遵守Hanoi塔问题的移动规则,由此设计出解Hanoi塔问题的递归算法正确的是()答案:void Hanoi(int n, int A,int B,int C){ if(n>0){ Hanoi (n-1,A,C,B);Move(n,a,b); Hanoi(n-1,C,B,A);} }3.在寻找n个元素中第k小元素问题中,如快速排序算法思想,运用分治算法对n个元素进行划分,如何选择划分基准?下面()答案解释最合理。
答案:以上皆可行,但不同方法,算法复杂度上界可能不同4.使用分治法求解不需要满足的条件是( )。
答案:子问题必须是一样的5.实现合并排序利用的算法是( )答案:分治策略6.求递归次数,请问当调用f(10)时, f() 被调用()次?int f(int x) { if(x <= 2) return1; returnf(x - 2) + f(x -4) + 1; }答案:157.设计模式一般用来解决什么样的问题( )答案:同一问题的不同表相8.关于继承表述错误的是:()答案:继承本质上是“白盒复用”,对父类的修改,不会影响到子类。
9.应用设计模式的一个优点是【】。
答案:适应需求变化10.某公司欲开发一个软件系统的在线文档帮助系统,用户可以在任何一个查询上下文中输入查询关键字,如果当前查询环境下没有相关内容,则系统会将查询按照一定的顺序转发给其他查询环境。
基于上述需求,采用【】最为合适。
答案:责任链模式11.已知int a[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, *p = a;,不能表示数组a中元素的式子是()。
raptor程序设计案例教程-ch6
阻塞性键盘输入函数
(1) Wait_For_Key
等待击键
(2) Character_variable Get_Key
等待并取得用户输入的字符键值,返回用户输 入的字符键给某个变量
(3) String_variable Get_Key_String
取得用户输入的特殊键键值,如“home”
+鼠标位置的计算非常关键,这里使用了圆 的标准方程“(x-a) 2+(y-b)2=r2”(在算法中的 表达为(x-a)^2+(y-125)^2<=2500的决策语句 )进行判断
-执行效率较低 -一旦出错,出错信息没有清除功能
一个矩形按钮输入程序的设计
Main子图
负责用户输入全局 控制
绘制按钮画面( drawbuttons子图)
第6章 视窗交互程序设计
《RAPTOR程序设计案例教程》
学习目标
如何在图形界面中设置按钮? 如何在图形界面中设置键盘响应? 如何在图形界面下接收字符串输入? 如何在图形界面下布点并连线?
视窗交互程序设计基础
程序设计中,用户与图形程序的互动形式 很多,如用户点击鼠标或者按键盘上的某 个键,就会触发相应的事件
需求与设计
1.“开始”和“结束”按钮如何产生? 2. 如何获取鼠标点击位置? 3.鼠标点击点坐标的判断。 4.相关文本如何显示。
鼠标输入的实现案例
鼠标输入视线中的资源
位图图片装载功能,分别载入标识有“开始”和 “结束”的两张图片
借助Get_Mouse_Button(Which_Button,X,Y)获取鼠 标点击位置,并用Which_Button指明点击的是哪 个键,用X和Y来接收鼠标点击点的坐标
RAPTOR流程图编程13548
輸入
把數據及指令 輸入電腦
處理
電腦對輸入的 數據進行運算
輸出
電腦顯示處理 數據的結果
甚麼是變量(VARIABLES)?
在主記憶體訂定的一個存貯位置。 存貯空間大小視定義類型而定。 程序運行時,變量的值是可改變的。
名稱:x 類型:數字
主記憶體 名稱:myname 類型:文字
變量(VARIABLES)
能夠處理不同的輸入,才是一個較 具意義的程序。
變量(VARIABLES)
使用變量時須注意的地方
命名限制: 起首字符必須為英文字母。 其後的字符可以是英文字母、數字或底橫線,但不可以是 其他符號或空白鍵。 對:Hello, send2you, it_a_nice_day 錯:2myfriend, iamveryangry! 名字不可與一些內定的預留字(Reserved word)相同。
編程的良好習慣 有意義的命名 (e.g. a, exam_mark) 妥善管理變量 (e.g. Average, Avg)
甚麼是常數(CONSTANT)?
預設的變量,它的值是不可被改變的。
例子:pi, e, true, false, yes, no pi 即是 3.14159274101257. e 即是 2.71828174591064. True 與 Yes 即是 1. False 與 No 即是 0.
RAPTOR流程圖編程
介紹 和 變量
中三級
流程圖編程介紹
Raptor程序是一個有向圖(Directed Graph) 必須要有「Start」和「End」。
程序會由「Start」開始, 運行至「End」才完成。 在「Start」和「End」之間插入其他部件,便可製作一
raptor程序设计案例教程-ch2
如果交换一下这些语句的顺序,则程序根本无法执 行
顺序控制在英语环境中被称为“and-then”结 构
选择控制
•当程序执行时,如果决策的 结果是“Yes”(True),则 执行左侧分支 •如果结果是“No”(False), 则执行右侧分支
第2章 基本程序设计
《RAPTOR程序设计案例教程》
学习目标
什么是常量和变量? RAPTOR的运算符有哪些? RAPTOR的系统函数和应用方式。 什么是程序的基本结构?
常量
所谓常量(Constant),就是在程序运行过 程中固定不变且不可改变其值的量。
RAPTOR目前没有为用户提供定义常量的功 能,而只是在系统内部定义了若干符号表 示常用的数值型常量。当用户需要相应的 值时,可使用代表这些常数的符号。
关系运算符(=、 / =、 <、<=、>、> =), 必须针对两个相同的数据类型值比较
例如,3 = 4或"Wayne" = Mike"则是无效的
关系运算
运算 = != /= < <= > >= and
说明 等于 不等于
小于 小于或等于 大于 大于或等于 与
RAPTOR常量
RAPTOR定义了四个常量(Constant)
pi(圆周率) 定义为 3.1416 e (自然对数的底)定义为 2.7183 true /yes(布尔值: 真) 定义为 1 false/no(布尔值:假) 定义为 0
变量
变量(variable)表示的是计算机内存中的 位置,用于保存数据值
未定义引用
变量报错的原因
raptor程序设计案例教程-ch8
解题思路
数据结构自然是采用数组,并且是数据为1 至N的随机数组
所以程序首先要生成一个N元的全排列。要 生成N元的全排列,需要N次生成随机数, 但是每一次都要与之前的不重复
可以使用另一个布尔型数组存储各个数是否被 使用过
解题思路
使用着色的方法可以让这个过程变得直观 ,所以可以给数据着色,然后在变更某个 数据的时候改变它的颜色,可以做出一种 不错的效果
那么如何确定子边的属性呢?
分析与设计思路
假设父边的阶数为level,边长为length,坐标为(x, y),方向为orientation
则子边的阶数显然是level-1,子边的边长则是 length÷3。
再看方向,①号边和④号边的方向与父边相同, 为orientation,②号边的方向为orientation+1,而 ③号边的方向为orientation-1
第8章 综合应用
《RAPTOR程序设计案例教程》
本章案例
科赫雪花的原理及简单绘制 可视化排序方法如何设计? 图形界面下如何输入无向图? 如何用RAPTOR设计画图程序?
科赫雪花的原理及简单绘制
将一条线段三等分,先以中 间的一段为底边作一个正三 角形,然后再去掉这个正三 角形的底边, 于是我们可以 得到一条由4条长度为原线段 长度三分之一的线段构成的 折线
一种较为方便的方法是使 用另一个一维数组used[i] 来表示数字i是否已经被 使用过
这样在生成第二个数的时 候,检查第二个数是否被 使用过,如果已经被使用 过了,那么就重新生成一 个新的随机数直到出现没 有使用过的为止
数组的排序-冒泡
Bubble_Sort子程序
数组的排序-插入
第1章RAPTOR程序设计基础(B)
例 3 = 4 结果为 No(false) 3 != 4结果为Yes(true) 3 /= 4结果为 Yes(true) 3 < 4结果为Yes(true) 3 <= 4结果为Yes(true) 3 > 4结果为No(false) 3 >= 4结果为No(false)
(3 < 4) and (10 < 20) 结果为Yes(true)
关系运算符(=、 / =、 <、<=、>、> =), 必须针对两个相同的数据类型值比较
例如,3 = 4或"Wayne" = "Sam"是有效的比较, 但3 = "Mike"则是无效的
7
关系运算
运算 = != /= < <= > >= and
说明 等于 不等于
小于 小于或等于 大于 大于或等于 与
21
RAPTOR一维数组的元素表示
形式一 形式二
22
一维数组的创建
数组变量必须在使用之前创建 所创建的数组大小由赋值语句中给定的最
大元素下标来决定 第一次给values[]数组赋值:
values[7] <- 3 结果如下图:
23
一维数组的扩展
第二次再给该数组赋值:
values[9] <- 6 则将数组进行了扩展,得到的结果如下图:
第1章 RAPTOR程序设计基础 PART B
控制结构
程序员合理利用控制结构和控制语句,可 以确定程序语句的执行顺序
这些控制结构可以做三件事:
1. 按照顺序执行某些语句; 2. 根据条件判断结果,跳过某些语句而执行其
他语句; 3. 条件为真时重复执行一条或多条语句
raptor程序设计案例教程-ch5
默认的文本高度为个8像素高,在两行文本 行之间的垂直方向默认间距约为12像素
图形案例
卡通图像
简单汉字的绘制
例5-2利用RAPTOR 图形函数画一个“ 囧”字
画老鼠
例5-3利用图形函 数生成一个可爱 的老鼠头像
对称原理具体到该题目:坐标系中(x1,y)关 于对称轴x=x0对称的坐标为(2x0-x1,y); (x1,y1)关于对称中心(x0,y0)的对称坐标为 (2x0-x1,2y0-y1)
对称图形的绘制技法
在RAPTOR中利用对称作图时,可以不必自 己计算数值,只需要直接写出算式即可, RAPTOR运行时将会自动计算
将已经绘制好的位图图片放入一款图像 (image)处理软件,通过软件来获取图片中 各个元素的坐标位置
但是,有时坐标系统的设置,两个软件系 统不一致,怎么?
Windows画图程序的坐标
Windows画图程序的坐标原点在左下角,而 RAPTOR的在左上角
卡通图片绘制要点-对称问题
从哆啦A梦的图片中我们可以看到,整个图 片基本以纵轴对称,所以在图形对称时, 利用对称原理作图会给绘制工作带来很大 的便利
矢量图可以用来表达数据曲线、物理装置、化 学、生物过程等的动态变化
位图则可以反映现实世界中的图像,并与程序 结合,产生栩栩如生的效果
位图实现蝴蝶飞翔的动画
例5-8:试在RAPTOR中以下10幅图像,在 RAPTOR下进行动态图形表达
那么如何在图形界面下编程,使得程序设 计进入一个千姿百态、丰富多彩的图形世 界呢?
RAPTOR与图形编程
RAPTOR的主要长项之一,是流程图设计的 方法在程序设计上的便利
raptor复习题
raptor复习题Raptor复习题在编程学习的过程中,我们经常会遇到各种各样的语言和工具。
其中,Raptor 是一种流程图编程语言,它以图形化的方式帮助我们理解和解决问题。
为了更好地掌握Raptor的使用,我们需要进行一些复习题的练习。
在本文中,我将为大家提供一些Raptor复习题,帮助大家巩固对Raptor的理解和应用。
1. 根据下面的流程图,编写一个Raptor程序,计算并输出一个三角形的面积。
输入:三角形的底和高输出:三角形的面积提示:三角形的面积可以通过底乘以高再除以2来计算。
2. 编写一个Raptor程序,接受用户输入一个整数,然后判断该数是否为偶数。
如果是偶数,则输出"偶数";如果是奇数,则输出"奇数"。
提示:可以使用取余操作符(%)来判断一个数是否为偶数。
如果一个数除以2的余数为0,则说明它是偶数。
3. 编写一个Raptor程序,接受用户输入一个字符串,然后判断该字符串是否为回文字符串。
如果是回文字符串,则输出"是回文字符串";如果不是回文字符串,则输出"不是回文字符串"。
提示:回文字符串是指正着读和倒着读都一样的字符串。
可以使用循环和字符串索引来判断一个字符串是否为回文字符串。
4. 编写一个Raptor程序,接受用户输入一个正整数n,然后输出从1到n之间所有的素数。
提示:素数是指只能被1和自身整除的正整数。
可以使用循环和条件语句来判断一个数是否为素数。
5. 编写一个Raptor程序,接受用户输入一个字符串,然后输出该字符串中每个字符的ASCII码值。
提示:可以使用字符串索引和ASCII码表来获取每个字符的ASCII码值。
通过以上的复习题练习,我们可以更好地熟悉和掌握Raptor的使用。
Raptor作为一种流程图编程语言,可以帮助我们更直观地理解和解决问题。
raptor程序设计案例教程-ch7
《RAPTOR程序设计案例教程》
学习目标
何为工程化计算? 计算的原始数据从何而来? 计算的结果可以在哪里输出? 伪随机数的重要性和用途。
何为工程化计算?
对于很多实用的工程软件来说,它所需要 输入的数据量比较大,有时候需要借助大 量的输入数据完成科学计算,在这种情况 下,依靠前面所说的通过用户键盘输入显 然既费时费力,又不太可能实现
由于字符串可以当成是元素全为字符的数 组,所以每次读入一行字符串后,使用循 环语句将每个字符的ascii加1即可
文档的加密与解密
Main子图
加密与解密
加密与解密 Cipher Vs. decipher
加密解密中的文件内容
图形界面中的输入输出
例7-5 设计一个视窗界面下的
加法程序,要求在图形 界面下列出算式,并使 用视窗交互功能完成加 法数据的输入
输出重定向结束
经过成功调用Redirect_Output函数,程序将 其计算结果输出到指定的文件。在文件输 出的完成后,需要重新设置RAPTOR环境, 使后续的输出内容继续写到其输出主控制 台,需要重新调用Redirect_Output函数,这 个时候用False(No)作为参数
Redirect_Output(False)
分析与思考
图形界面下如何接收来自键盘的单个输入 数字?
如何将来自键盘的多个数字输入组合成一 个完整的参与加法运算的数?
两个加数如何结束输入? 为了使程序界面更为美观,整个符号的显
示需要对该符号区域做居中处理。
模块设计
Main子图控制整个过程; Init子图负责初始化视窗和加数; Screen_input子程序负责从键盘接受
Redirect_Output("file.csv") Redirect_Output("C:\User\cxq\CS101\datafile")
