最新推荐伪代码范例实用word文档 12页.docx
- 文档编号:5361040
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:10
- 大小:22.28KB
最新推荐伪代码范例实用word文档 12页.docx
《最新推荐伪代码范例实用word文档 12页.docx》由会员分享,可在线阅读,更多相关《最新推荐伪代码范例实用word文档 12页.docx(10页珍藏版)》请在冰豆网上搜索。
最新推荐伪代码范例实用word文档12页
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!
==本文为word格式,下载后可方便编辑和修改!
==
伪代码范例
篇一:
伪代码经典案例
求一元二次方程的根
设计并编写一个程序,用来求解一元二次方程的根。
答案:
我们将本章开头介绍的方法进行编程。
1.陈述问题这个问题的陈述非常的简单,我们要求一元二次方程的根,不管它的根是实根还是复根,有一个根还是两个根。
2.定义输入和输出
本程序的输入应为系数a,b,c
ax2+bx+c=0(3.1)
输出量应为两个不相等的实数。
两个相等的实数或两个复数。
3.写出算法本程序可分为三大块,它的函数分别为输入,运算过程和输出。
我们把每一个大块分解成更小的,更细微的工作。
根据判别式的值,可能有三种计算途径。
读取输入的数据
计算出根
输入出根
所以我们要用到有三种选项的if结构。
产生的伪代码如下
Prompttheuserforthecoefficientsa,b,andc.
Reada,b,andc
discriminant←b^2-4*a*c
ifdiscriminat>0
x1←(-b+sqrt(discriminant))/(2*a)
x1←(-b-sqrt(discriminant))/(2*a)
Writemsgthatequationhastwodistinctrealroots.
Writeoutthetworoots.
elseifdiscriminant==0
x1←-b/(2*a)
Writemsgthatequationhastwoidenticalrealroots.
Writeouttherepeatedroots.
else
real_part←-b/(2*a)
imag_part←sqrt(abs(discriminant))/(2*a)
Writemsgthatequationhastwocomplexroots.
Writeoutthetworoots.
end
4.把算法转化为MATLAB语言
%Scriptfile:
calc_roots.m
%
%Purpose:
%Thisprogramsolvesfortherootsofaquadraticequation
%oftheforma*x^2+b*x+c=0.Itcalculatestheanswers
%regardlessofthetypeofrootsthattheequationpossesses.
%
%Recordofrevisions:
%DateProgrammerDescriptionofchange
%=================================
%12/04/98S.J.ChapmanOriginalcode
%
%Definevariables:
%a--Coefficientofx^2termofequation
%b--Coefficientofxtermofequation
%c--Constanttermofequation
%discriminant--Discriminantoftheequation
%imag_part--Imagpartofequation(forcomplexroots)
%real_part--Realpartofequation(forcomplexroots)
%x1--Firstsolutionofequation(forrealroots)
%x2--Secondsolutionofequation(forrealroots)
%Prompttheuserforthecoefficientsoftheequation
disp('Thisprogramsolvesfortherootsofaquadratic');
disp('equationoftheformA*X^2+B*X+C=0.');
a=input('EnterthecoefficientA:
');
b=input('EnterthecoefficientB:
');
c=input('EnterthecoefficientC:
');
%Calculatediscriminant
discriminant=b^2-4*a*c;
%Solvefortheroots,dependingonthevlaueofthediscriminant.
ifdiscriminant>0%therearetworealroots,so...
x1=(-b+sqrt(discriminant))/(2*a);
x2=(-b-sqrt(discriminant))/(2*a);
disp('Thisequationhastworealroots:
');
fprintf('x1=%f\n',x1);
fprintf('x2=%f\n',x2);
elseifdiscriminant==0%thereisonerepeatedroot,so...
x1=(-b)/(2*a);
disp('Thisequationhastwoidenticalrealroots:
');
fprintf('x1=x2=%f\n',x1);
else%therearecomplexroots,so...
real_part=(-b)/(2*a);
imag_part=sqrt(abs(discriminant))/(2*a);
disp('Thisequationhascomplexroots:
');
fprintf('x1=%f+i%f\n',real_part,imag_part);
fprintf('x1+%f-i%f\n',real_part,imag_part);
end
5.检测这个程序
下一步,我们必须输入实数来检测这个程序。
因这个程序有三个可能的路径。
所以在我们确信每一人路径都工作正常之前,必须把这三个路径检测一遍。
从式子(3.2)中,我们可以有用下面的方法来验证程序的正确性。
x2+5x+6=0x=-2,andx=-=3
x2+4x+4=0x=-2
x2+2x+5=0x=-1±i2
如果输入上面三个方程的系数得到对应的结果,则说明程序是正确的。
>>calc_roots
Thisprogramsolvesfortherootsofaquadratic
equationoftheformA*X^2+B*X+C=0.
EnterthecoefficientA:
1
EnterthecoefficientB:
5
EnterthecoefficientC:
6
Thisequationhastworealroots:
x1=-2.000000
x2=-3.000000
>>calc_roots
Thisprogramsolvesfortherootsofaquadratic
equationoftheformA*X^2+B*X+C=0.
EnterthecoefficientA:
1
EnterthecoefficientB:
4
EnterthecoefficientC:
4
Thisequationhastwoidenticalrealroots:
x1=x2=-2.000000
>>calc_roots
Thisprogramsolvesfortherootsofaquadratic
equationoftheformA*X^2+B*X+C=0.
EnterthecoefficientA:
1
EnterthecoefficientB:
2
EnterthecoefficientC:
5
Thisequationhascomplexroots:
x1=-1.000000+i2.000000
x1+-1.000000-i2.000000
在三种不同的情况下,程序都给出了正确的结果。
篇二:
伪代码定义及实例
伪代码
伪代码(Pseudocode)是一种算法描述语言。
使用伪代码的目的是为了使被描述的算法可以容易地以任何一种编程语言(Pascal,C,Java,etc)实现。
因此,伪代码必须结构清晰、代码简单、可读性好,并且类似自然语言。
介于自然语言与编程语言之间。
以编程语言的书写形式指明算法职能。
使用伪代码,不用拘泥于具体实现。
相比程序语言(例如Java,C++,C,Dephi等等)它更类似自然语言。
它是半角式化、不标准的语言。
可以将整个算法运行过程的结构用接近自然语言的形式(可以使用任何一种你熟悉的文字,关键是把程序的意思表达出来)描述出来。
定义
人们在用不同的编程语言实现同一个算法时意识到,他们的实现(注意:
这里是实现,不是功能)很不同。
尤其是对于那些熟练于不同编程语言的程序员要理解一个(用其他编程语言编写的程序的)功能时可能很难,因为程序语言的形式限制了程序员对程序关键部分的理解。
这样伪代码就应运而生了。
伪代码提供了更多的设计信息,每一个模块的描述都必须与设计结构图一起出现。
伪代码是一种非正式的,类似于英语结构的,用于描述模块结构图的语言。
应用领域
当考虑算法功能(而不是其语言实现)时,伪代码常常得到应用。
伪码中常被用于技术文档和科学出版物中来表示算法,也被用于在软件开发的实际编码过程之前表达程序的逻辑。
伪代码不是用户和分析师的工具,而是设计师和程序员的工具。
计算机科学在教学中通常使用虚拟码,以使得所有的程序员都能理解。
综上,简单的说,让人便于理解的代码。
不依赖于语言的,用来表示程序执行过程,而不一定能编译运行的代码。
在数据结构讲算法的时候用的很多。
伪代码用来表达程序员开始编码前的想法。
语法规则
例如,类Pascal语言的伪代码的语法规则是:
在伪代码中,每一条指令占一行(elseif,例外)。
指令后不跟任何符号(Pascal和C中语句要以分号结尾)。
书写上的“缩进”表示程序中的分支程序结构。
这种缩进风格也适用于if-then-else语句。
用缩进取代传统Pascal中的begin和end语句来表示程序的块结构可以大大提高代码的清晰性;同一模块的语句有相同的缩进量,次一级模块的语句相对与其父级模块的语句缩进。
伪代码实例
伪代码:
是用介于自然语言和计算机语言之间的文字和符号(包括数学符号)来描述算法。
【简单示例】输入3个数,打印输出其中最大的数。
可用如下的伪代
码表示:
Begin(算法开始)输入A,B,CIFA>B则A→Max否
则B→MaxIFC>Max则C→MaxPrintMaxEnd(算法结束)伪代码只是像流程图一样用在程序设计的初期,帮助写出程序流程。
简单的程序一般都不用写流程、写思路,但是复杂的代码,最好还是把流程写下来,总体上去考虑整个功能如何实现。
写完以后不仅可以用来作为以后测试,维护的基础,还可用来与他人交流。
但是,如果把全部的东西写下来必定可能会让费很多时间,那么这个时候可以采用伪代码方式。
比如:
IF九点以前THENdo私人事务;ELSE9点到18点THEN工作;ELSE下班;ENDIF这样不但可以达到文档的效果,同时可以节约时间.更重要的是,使结构比较清晰,表达方式更加直观.下面介绍一种类Pascal语言的伪代码的语法规则。
在伪代码中,每一条指令占一行(elseif例外,),指令后不跟任何符号(Pascal和C中语句要以分号结尾);书写上的“缩进”表示程序中的分支程序结构。
这种缩进风格也适用于if-then-else语句。
用缩进取代传统Pascal中的begin和end语句来表示程序的块结构可以大大提高代码的清晰性;同一模块的语句有相同的缩进量,次一级模块的语句
相对与其父级模块的语句缩进;例如:
line1line2subline1subline2subsubline1subsubline2subline3line3而在Pascal中这种关系用begin和end的嵌套来表示,line1line2beginsubline1subline2beginsubsubline1subsubline2end;subline3end;line3在C中这种关系用{和}的嵌套来表示,line1line2{subline1subline2{subsubline1subsubline2}subline3}line3在伪代码中,通常用连续的数字或字母来标示同一即模块中的连续语句,有时也可省略标号。
例如:
1.line12.line2a.subline1b.subline21.subsubline12.subsubline2c.subline33.line3符号△后的内容表示注释;在伪代码中,变量名和保留字不区分大小写,这一点和Pascal相同,与C或C++不同;在伪代码中,变量不需声明,但变量局部于特定过程,不能不加显示的说明就使用全局变量;赋值语句用符号←表示,x←exp表示将exp的值赋给x,其中x是一个变量,exp是一个与x同类型的变量或表达式(该表达式的结果与x同类型);多重赋值i←j←e是将表达式e的值赋给变量
i和j,这种表示与j←e和i←e等价。
例如:
x←yx←20*(y+1)x←y←30以上语句用Pascal分别表示为:
x:
=y;x:
=20*(y+1);x:
=30;y:
=30;以上语句用C分别表示为:
x=y;x=20*(y+1);x=y=30;选择语句用if-then-else来表示,并且这种if-then-else可以嵌套,与Pascal中的if-then-else没有什么区别。
例如:
if(Condition1)then
[Block1]elseif(Condition2)then[Block2]else[Block3]循环语句有三种:
while循环、repeat-until循环和for循环,其语法均与Pascal类似,只是用缩进代替begin-end;例如:
1.x←02.y←03.z←04.whilex 1.doz←(z+x*y)/1002.repeat1.y←y+12.z←z-y3.untilz<04.z←x*y5.y←y/2上述语句用Pascal来描述是: x: =0;y: =0;z: =0;whilex =x+1;y: =x+y;fort: =0to10dobeginz: =(z+x*y)/100;repeaty: =y+1;z: =z-y;untilz<0;end;z: =x*y;end;y: =y/2;上述语句用C或C++来描述是: x=y=z=0;while(z 例如A[j]指示数组A的第j个元素。 符号“…”用来指示数组中值的范围。 例如: A[1…j]表示含元素A[1],A[2],…,A[j]的子数组;复合数据用对象(Object)来表示,对象由属性(attribute) 和域(field)构成。 域的存取是由域名后接由方括号括住的对象名表示。 例如: 数组可被看作是一个对象,其属性有length,表示其中元素的个数,则length[A]就表示数组A中的元素的个数。 在表示数组元素和对象属性时都要用方括号,一般来说从上下文可以看出其含义。 用于表示一个数组或对象的变量被看作是指向表示数组或对象的数据的一个指针。 对于某个对象x的所有域f,赋值y←x就使f[y]=f[x],更进一步,若有f[x]←3,则不仅有f[x]=3,同时有f[y]=3,换言之,在赋值y←x后,x和y指向同一个对象。 有时,一个指针不指向任何对象,这时我们赋给他nil。 函数和过程语法与Pascal类似。 函数值利用“return(函数返回值)”语句来返回,调用方法与Pascal类似;过程用“call过程名”语句来调用;例如: 1.x←t+102.y←sin(x)3.callCalValue(x,y)参数用按值传递方式传给一个过程: 被调用过程接受参数的一份副本,若他对某个参数赋值,则这种变化对发出调用的过程是不可见的。 当传递一个对象时,只是拷贝指向该对象的指针,而不拷贝其各个域。 篇三: 第二节算法和算法描述 第二节算法和算法描述 一、基本说明 1模块: 高中信息技术基础2年级: 高中二年级 3所用教材版本: 上海科技教育出版社4所属的章节: 第一章第二节 5学时数: 40分钟(多媒体教室授课) 二、教学设计1、教学目标: (1)、知识与技能目标: ①、了解算法的基本概念和特点; ②、掌握算法的描述方法;能用自然语言、流程图、伪代码描述算法; (2)、过程与方法目标: 通过分析实际生活中的问题,理解 和熟悉自然语言、流程图和伪代码等清晰描述解决问题的过程,确立算法的概念; (3)、情感态度价值观目标: ①、通过对生活中具体实例的分析和解决,激发学生的学习兴趣。 培养学生的 自主探究能力; ②、通过算法描述,锻炼学生自行分析问题及解决问题的能力,培养学生严谨 的思维习惯; ③、增强学生的逻辑思维能力和表现意识,鼓励学生分享思想和反思自我的学习理念。 2、内容分析: 本课是高二第一章的内容,也是整个《算法与程序设计》模块的基础知识,本节内容对后续章节的学习起着十分重要的作用,让学生从整体上计算机解决实际问题的过程;因本节内容在高一数学模块三第一章中学生已有初步接触,比较简单,教师可根据具体情况有所深入地进行授课。 3、学情分析: 学生具有一定的分析问题、解决问题的能力,并且在高一数学模块三中对算法的概念和用流程图描述算法有初步的了解,且已初步了解面向过程的三种结构,但未对算法形成抽象认识和理解;还不能对算法做出恰当的描述。 4、设计思路: 本节课是一堂理论性的课,又缺乏理论的深度,如果只由教师讲解就会显得比较枯燥,因此本堂课的设计思路是从具体的案例入手,引导学生进行思考、讨论,最后得出基本的结论,形成一定的概念,达到理解和应用的目的。 教师的主要任务在于积极引导,调动学生的积极性。 三、教学过程 课后反思: 1、整个课堂教学气氛非常活跃,条理清楚,不同层次的学生都能积极参与到课堂讨论中来。 主要得益于两个方面: 一是开始的渡河游戏,一下子将学生从没有上机的失望中吸引过来;二是整堂课都在围绕实例进行讲解,同时有些内容是基于高一数学模块三中的已学知 识,知识点的难度小。 如“课后延伸”部分的求最大公约数的两种经典方法在高一数学中已有介绍,所以整堂课学生的参与度高。 2、本堂课内容略显偏多,由于时间问题,有些地方的讨论不够深入。 篇四: 课程设计报告格式要求与范例 《XXX》 课程设计报告 专业: 班级: 姓名: 指导教师: 年月日 C语言程序课程设计任务书(举例) 一、设计题目: 课程信息管理系统 二、设计目的 1、熟练掌握C语言课程中所学的理论知识; 2、通过综合C语言的基本知识来解决实际问题; 3、加强分析和解决问题的能力; 三、设计内容 设计对n门课程进行管理的课程信息管理系统,每门课程有课程编号,课程名称,课程性质(B为必修,X为选修),总学时,学分等。 系统功能包括: 1、系统以菜单方式工作,密码登陆。 2、课程信息的录入功能(增加数据)。 用数组数据类型赋初值的方法把课程信息送到各个数组中(但注意要是合法数据),然后把它们输出显示。 3、课程信息的删除(删除数据)。 任意输入一门课程的编号,将它所有的信息从数组中删除。 4、课程信息的浏览功能(查找数据)。 任意输入一门课程的编号,打印出所有相关数据。 要求能多次查找。 5、课程信息的删除(修改数据)。 任意输入一门课程的编号,打印出所有相关信息后,可对某一项信息进行修改并保存。 6、课程信息的计算并排序。 计算所有课程的总学分及平均学分(aver,单精度,输出一位小数),将包括所有数据的数组元素按价格从高到低的顺序排序打印出来。 四、设计步骤 1、需求分析: 对系统的应实现的功能进行分析。 2、概要设计: 对系统功能进行模块分解,对模块的功能及模块之间的相互关系进行说明(如用到函数,则对函数间的接口进行说明),对系统使用的数据结构(各数组、主要变量的设置及其代表的含义)进行说明。 3、详细设计: 用流程图、伪代码等方法对各主要算法进行描述。 4、编写代码: 根据设计编写。 源程序要按照程序的格式规范来编写,要求结构 清晰,界面友好,关键部分有必要的注释。 5、调试分析: 准备充分的测试数据对系统进行调试(对错误的数据输入也要进行测试,保证程序的容错性),并通过测试对系统提出改进设想。 (空两行) 1………………………………………………………………页码2………………………………………………………………页码(要求: 给出一级目录,宋体加粗,四号字,1.5倍行距。 ) (报告正文部分): (要求: 正文部分一律用小四号字,宋体,1.5倍行距。 一级大标题靠左,加粗。 二级大标题靠左,不加粗。 ) 课程设计的内容如下: 1.课程设计目的(可参考任务书) 2.课程设计题目描述和要求(可参考任务书) 3.课程设计报告内容(以下仅供参考) 3.1整个系统的框架结构与各个模块的接口设计与简介(可用绘图的方式表达说明系统的结构和个接口的定义) ……. 3.2登陆与主界面模块功能的设计与实现(包括流程图、源代码以及适当功能说明) ……….. 3.3具体负责的模块的功能的设计与实现(包括流程图、源代码以及适当功能说明) …… 3.4模块的集成与调试(描
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新推荐伪代码范例实用word文档 12页 最新 推荐 代码 范例 实用 word 文档 12