第章 程序设计语言和编码_第1页
第章 程序设计语言和编码_第2页
第章 程序设计语言和编码_第3页
第章 程序设计语言和编码_第4页
第章 程序设计语言和编码_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程第12章程序设计语言和编码编码阶段的任务是根据详细设计说明书编写程序程序设计语言的特性和程序设计风格会深刻地影响软件的质量和可维护性为了保证程序编码的质量,程序员必须深刻理解、熟练掌握并正确地运用程序设计语言的特性此外,还要求源程序具有良好的结构性和良好的程序设计风格2内容摘要程序设计语言程序设计风格3内容摘要程序设计语言程序设计风格4基本概念程序设计语言是指用于书写计算机程序的语言,它是一种实现性的软件语言程序设计语言包含:语法、语义和语用★★★★★语法(syntax)用来表示构成语言的各个记号之间的组合规则,它是构成语言结构正确成分所需遵循的规则集合如C语言中for语句的构成规则是:

for(表达式1;表达式2;表达式3)语句

语法中不涉及到这些记号的含义,也不涉及使用者5语义(semantic)用来表示按照各种表示方式所表示的各个记号的特定含义,但它不涉及到使用者。

如上述for语句中:表达式1表示循环初值;表达式2表示循环条件;表达式3表示循环的增量;语句为循环体。整个语句的语义是:(1)计算表达式1(2)计算表达式2,若计算结果为0,则终止循环;否则转(3)(3)执行循环体(4)计算表达式3(5)转向(2)6语用(pragmatic)用来表示构成语言的各个记号和使用者的关系。如:语言是否允许递归?是否要规定递归层数的上界?这种上界如何确定?这些都属于语用上的问题。7程序设计语言的基本成分程序设计语言基本成份可归纳为四种:数据成分、运算成分、控制成分、传输成分数据成分:它指明该语言能接受的数据,用来描述程序中的数据。如各种类型的变量、数组、指针、记录等。作为程序操作的对象,具有名称、类型和作用域等特征。使用前要对数据的这些特征加以说明。数据名称由用户通过标识符命名,类型说明数据需占用存储单元的多少和存放形式,作用域说明数据可以使用的范围。8以C语言为例,其数据构造方式可分为基本类型和派生类型

9运算帜成分同:它指纪明该送语言塑允许锋执行形的运真算,柄用来刷描述吴程序坟中所扬需进皂行的慌运算肥。如+、-、*羞、/等。控制献成分捕:它指止明该企语言链允许但的控挖制结肆构,遣人们抛可利延用这觉些控木制成芳分来争构造疑程序毙中的今控制长逻辑洁。基污本的宁控制归成分浮包括梢:顺序悼结构张、条呈件选依择结征构和哑重复御结构。如赠下页馅图10基本朝程序秀控制译结构11传输瓦成分思:它指领明该蔬语言明允许化的数俘据传玻输方颂式,功在程许序中捐可用归它进疫行数垃据传遇输。例如蜻:Tu牲rb乖o略C语言阔标准续库提冤供了脏两个谈控制丛台格挪式化您输入家、输兰出函哭数pr轮in旧tf阻(帐)和sc泰an森f蜂(跟),这哥两个既函数织可以主在标畜准输易入输缎出设宽备上祸以各奸种不浆同的励格式肆读写忍数据荷。Pr份in延tf朽(积)函数些用来览向标衔准输器出设幕备(屏幕)写数恒据蛮,sc厨an胃f柴(聪)函数洒用来坚从标您准输鲜入设愈备(键盘)上读握数据网。12程序律设计笛语言砖的发循展和密分类程序缝设计探语言欧的分隔类按语耻言级怒别:低光级语守言和鸽高级药语言厘;按应让用范晒围:通村用语称言和垒专用近语言辩;按用沫户要棍求:过揭程式湾语言培和非施过程旁式语侍言;按语缓言所竖含的符成分:顺谢序语吉言、株并发召语言码和分掉布式台语言13程序炸设计谈语言类的发盾展史第一付代语周言:蹈机器敌语言酱和汇孩编语什言第二堂代语睁言:伪早期走的高循级语驻言,陷如BA牺SI开C,FO名RT灿RA辟N,CO帖BO侨L等第三悉代语怒言:亦具有滨很强朝的数岔据结男构和倍过程检描述箭能力秋,支胖持结刚构化信编程钉,如Pa可sc烤al,Mo禽du锯la,C,Ad替a等第四奥代语子言(4G咸L):密这类逝语言悦出现发于七星十年妥代,侧其目回的是雾为了斥提高录程序羡开发划速度暖,以限及让间非专蔑业用扭户能皮直接合编制吵计算缸机程繁序14第四般代语忠言的愈特点谷:对用反户友忙善,辩一般狸用类随自然恭语言糟、图伤形或撞表格裁等描胃述方价式,驱普通民用户矩很容铃易掌减握多数证与数石据库琴系统益相结带合,内可直朵接对鞠数据哥库进睬行操楚作对许贩多应嫩用功泳能均娘有默掘认的独假设训,用映户不狗必详续细说耕明每艺一件舞事情割的做倡法程序屡码长煎度及闭获得各结果轻的时游间与邪使用CO语BO良L语言鹊相比卖约少衫一个躺数量约级支持贪结构泻化编肿程,盼易于划理解定和维霸护15目前哑,第雹四代冷语言垦的种驰类繁遥多,绕尚无术标准贷,在输语法希和能宪力上筐有很窑大差衬异,验其中两一些份支持毒非过纺程式符编程益,更钻多的钢是既悲含有革非过础程语页句,归也含抢有过吃程语买句。典型昏的4G唯L有:红数据蛙库查套询语尖言、经报表熟生成租程序婆、应生用生脏成程篇序、肝电子抵表格槽、图勇形语柔言等田。多数4G迁L是面辈向领末域的杂,很科少是兽通用需的。16自然达语言最理离想的装是可廊以使邀用自披然语淡言(晋如英锄语、暴法语册或汉丛语)确,使农计算论机能粪理解席并立通即执教行请免求。超但迄夏今为辽止,伏自然躲语言蓝理解助仍然湖是计饰算机纲科学闸研究避中的培一个肢难点挑,尽容管在叼实验陡室的摘研究夺中取捷得了芽一定胞的成疲果,戚但在仅现实炼中的命应用汤仍然拼是相赢当有歉限的智。17程序膝设计泉语言储的选胆择为一准个特占定的欢开发距项目久选择猴编程俊语言辉时,善通常赢要考兼虑如旨下因霜素:应用拖领域算法抖和计裙算复脚杂性软件花运行晶环境用户女需求畅,特祖别是肠性能台需求数据类结构裕的复他杂性软件城开发身人员际的知夹识水液平可用象的编盯译器锹与交垮叉编和译器18项目兵所属糖的应世用领谋域常捷常是端首要令的标曾准CO拴BO烂L适用撤于商菠业领勺域FO结RT须RA叉N适用泪于工储程和谋科学丈计算倡领域Pr绞ol舌og、Li祖sp适用腥于人盘工智获能领昆域Sm辰al籍lt贯al朝k、C+组+适用垒于OO系统纤的开则发有些缸语言含适用润于多存个应兽用领堆域,虑如C若有数多种姑语言棚都适确合于名某项进目的思开发陈时,赌也可蛾考虑烟选择怀开发案人员携比较互熟悉颜的语币言19选择拉高级辫语言悲还是倍低级形语言优先腐选择弱高级椅语言开发心和维瓣护高倚级语担言程恨序比乏开发哨和维挨护低害级语肆言程靠序容辩易得梁多必要纳时使席用低晓级语液言高级扰语言迅程序补经编哀译后凤所产常生的虏目标竖程序垫的功肆效要豪比完影成相撇同功党能的丹低级颤语言纤程序慕低得旨多,纤所以婚在有要些情汗况下寻会部宜分或惯全部耀使用穷低级掩语言20使用眨低级预语言被的情怀况:对运慎行时属间和撑存储鲁空间翠有过睛高要驴求的蒜项目徒,如踢电子饺笔记膀本中场的软供件在某刷些不炼能提赌供高国级语组言编亮译程料序的茧计算喊机上裕开发匹程序承,如没单片混机上百的软孙件大型跑系统筒中对类系统叉执行仿时间微起关伙键作盏用的集模块21内容风摘要程序晕设计坟语言程序唇设计屡风格22程序外设计卸风格编程晚的依踏据是道详细螺设计斗的结牛果,确因此召程序河的质赴量主东要取态决于咏设计览,但君编程莲的质混量也两在很仆大程钱度上腹影响惜着程足序的芝质量编程眼风格西主要荷包括肃:源程焦序中忍的内孔部文奸档数据馆说明语句连构造输入这/输肯出23源程速序文坛档化在源致程序定中可鸭包含扯一些远内部冲文档佳,以夏帮助牲阅读腿和理火解源榜程序在源熔程序合中的练内部父文档产主要膛包括液:标识浩符的咬命名注解程序银的视范觉组蝴织24标识适符的窃命名选择桐含义堡明确颂的名榨字,送使其聪能正长确提格示标区识符虑所代眯表的泊实体例如聪,表患示总阔量的促变量饲名用To嚼ta陶l,表寒示平柄均值叉的用Av窜er筐ag两e等名字暖不要食太长泛,太烫长会歉增加窃打字虾量,额且易晌出错晃。必榜要时屠可使暂用缩核写不用耻相似木的名利字,栋相似餐的名膏字容现易混泽淆,岸不易陵发现丈错误如cm喇,c比n,沉cm钻n,蹄cn喂m,罗cn坦n,降cm递m25不用县关键龟字作埋标识脆符同一浪个名晕字不模要有退多个液含义名字石中避巷免使故用易忆混淆懒的字谎符。价如数尊字0与字厅母O;数字1与字现母I或l;数字2与字补母z等26程序者的注趋释程序院中的泉注解宏用来怪帮助京人们止理解下程序姨,决延不是默可有勇可无岗的一些减正规抵的程净序文嗓本中甩,注稿解行斥的数切量约询占整仿个源悲程序上的1/3到1/2,甚虎至更前多注解授分为简序言辈性注绸解和育功能殿性注插解27通常殖置于絮每个晓程序铲模块欠的开方头部回分,膛主要番描述出:模块奸的功愁能模块尚的接逝口:璃包括闹调用令格式粪、参铃数的培解释培、该央模块夹需要盘调用截的其屿它子尚模块榴名重要字的局贸部变喘量:匙包括逝用途隐、约狠束和霉限制诞条件开发鹊历史织:包吊括模讯块的炎设计帐者、限评审溜者、皮评审刷日期误、修奶改日盲期以缩慧及对凯修改础的描出述序言算性注发释28通常复嵌在屋源程臣序体证内,慨主要拐描述辣程序像段的借功能咳。书写被功能县性注汉解时停应注插意的倡问题为:注解僻要正塘确,缝错误企的注母解比垃没有熔注解刘更坏由;为程大序段按作注妇解,阀而不帽是为戒每一弦个语至句作榆注解献;用缩古进和紫空行蔬,使苹程序草与注腐释容猛易区锦分;注解委应提跨供一头些从恼程序抵本身帮难以紫得到塘的信温息,最而不术是语皇句的贿重复席。功能态性注衰释29例如榨,下睛面的芽模块浆级注叙释描梁述了禾公共钱的和涌私有架的过巡寿程(陡在类柏模块冲中称袭为“方法”)、行属性店及其叠数据径类型俩,以晨及如骂何将县该类壶作为到对象墙来使胸用的肾有关俊信息:公共婆方法晌:Ma巾il云Ad堂dR病ec页ip嫌ie司nt耀(s岔tr急Na包me抛A折s愚St挤ri窑ng住,怒Op扰ti咽on玩al元f涝Ty紫pe哪A阁s剖Bo花ol晴ea润n)st栋rN报am视e:演//要加印入到唯邮件矩中的奥收件挽人名显称。fT大yp哲e:悲O诵ut确lo牲ok扫M泰ai逝lI杆te哑m椅Ty溉pe罢/脸/属性台设置。Se尊nd尽Ma饥il榴(O佳pt效io爸na奶l肆bl矛nS稀ho腰wM柳ai穗lF积ir斜st扰A烦s亲Bo握ol贯ea丸n)bl屿nS喘ho奥wM棍ai办lF础ir确st父:宴//发送常前是姨否显羽示Ou艇tl雨oo德k邮件坐信息尾。如秒果不功能解打析收笛件人印的地附址,反让代呀码将标它设鲁置为Tr疑ue。私有萍方法的:In折it装ia嫩li瞎ze每Ou故tl故oo寄k(孩)Cr封ea春te掏Ma通il驼()公共各属性助:Ma祝il伍Su佳bj基ec地t:深(W留ri飘te锯o劈燕nl释y,走S除tr乖in沫g)Ma竿il蜡Me筹ss匆ag杜e:资(W距ri袖te墓o亿nl门y,享S具tr亩in吸g)Ma慕il茎At国ta肯ch俊me浴nt贿s:脾(W姥ri疾te带o搅nl届y,吼S负tr播in踢g)30通过岩在程煤序中细添加邻一些六空格轰、空淋行和话缩进莫等技规巧,腐帮助折人们拾从视膛觉上扁看清杏程序贤的结搬构例如却,通轰过缩吴进技腐巧可龟清晰析地观东察到责程序址的嵌遵套层饲次,僻同时稿还容劝易发络现诸语如“遗漏en载d”那样遇的错积误视觉差组织31IF(…)TH殊EN捏IF(…)TH喜EN……EL槐SE……EN太DI池F……EL钢SE……EN械DI拿F32自然误的程录序段头之间印可用空行隔开可通城过添泉加空中格使泳语句迎成分各清晰栽,如(A<-17橡)A罢ND蜘NO删T(祸B<=49律)O伙RC可写豆成(A<-17香)励AN馋D棵N卖OT殖(肉B<=49罗)幕OR者C也可使以通华过添镇加括昨号突介出运沈算的武优先抗级,垄避免归发生曲运算辉的错六误,两如a*唐*(赠b树**拌c抵)33放置另大括弹号一般允首选贝的方染法是K&燥R方法唐:把钢左括蚊号放集在行宏尾,洁右括糠号放波在行哪首。捏如:if(X淋){Y}定义浸函数退时应之当把股左右过括号抗都放婶在行芹首,邻如:in诸tF(杂in琴tx){//}注意素,右冠括号想所在钱的行颤不应利当有剥其它捧语句筑,除失非跟胳随着沾一个著条件买判断务。也股就是do泰-w烦hi傲le语句根中的“wh辱il摆e”和if劲-e平ls酱e语句弟中的“el耻se”。例许如:do{bo慈dyofdo仰-l改oo市p}wh代il贴e(c赛on饥di环ti迷on年);if(x==y){…}el进seif(x>y){..回.}el耍se{…}34数据块说明为了舌使程甘序中写数据过说明脂更易舍于理冶解和搬维护梳,可仓采用泰以下虏风格客:数据功说明喷的次厌序应值当规肆范化说明隔语句凑中变孩量安霜排有狐序化使用杀注解冠说明岗复杂恳数据琴结构35数据既说明静的次己序应盯当规玻范化数据剧说明筋次序厦规范助化,扯使数逼据属安性容榆易查帽找,桐也有必利于留测试靠,排钟错和霉维护原则故上,男数据恋说明煤的次缩慧序与矩语法艰无关然,其升次序皮是任私意的话。但催出于钻阅读碧、理汪解和凯维护边的需疑要,户最好贱使其追规范哀化,辈使说挠明的文先后置次序探固定36说明灵语句桥中变利量安暴排有默序化当多想个变弹量名卫在一虑个说饲明语登句中颂说明挡时,种可以碌将这劝些变抹量按瞧字母只的顺彻序排表列,麻以便检于查握找37使用泥注释稳说明读复杂棒数据汇结构如果境设计赶了一暴个复保杂的跳数据具结构酬,应赞当使坟用注斤释来浆说明述在程适序实子现时孕这个废数据国结构拥的固申有特大点例如劝用户绣自定降义的窑数据扇类型隙,应包当在衫注释哥中做防必要殿的补由充说换明38语句罩构造编码丝式阶段惯的主腥要任汇务就煌是书跟写程际序语擦句。铅有关摄书写洪语句葱的原绩则有万几十蹦种,速总起座来说思,希慈望每劈燕条语聚句尽旧可能营简单消明了妙,能写直截猪了当乏地反筒映程隔序员膛的意火图,冻不能阅为了丧片面施追求息效率疫而使奸语句重复杂恳化。常用贫的规售则如法下:391.在一嫂行内弟只写脚一条和语句在一士行内停只写邀一条垫语句钻,并耐且采旁取适占当添偿加空挥格的宽办法筝,使菌程序革的逻填辑和他功能谊变得艺更加葛明确尺。许多杆程序朱设计法语言意允许图在一欲行内停写多还个语躁句。聋但这拳种方原式会众使程色序可喊读性漂变差迎。因烛而不僵可取咬。402.程序寄编写尸首先凤应当伟考虑奴清晰盾性程序朝编写状首先论应当峡考虑羡清晰宁性,静不要骂刻意险追求泳技巧关性,弯使程恢序编球写得案过于祖紧凑平。例如项,有惹一个衔用C语句佳写出款的程被序段反:A[村I]厨=宋A量[I费]+A[持T];A[兄T]联=毕A膨[I欣]-A[隆T];A[赤I]绍=友A共[I煮]-A[汇T];41此段堆程序毛可能老不易晕看懂戴,有溜时还拾需用健实际稻数据烫试验顾一下痒。实际塌上,酸这段检程序泉的功碎能就络是交哑换A[仰I]和A[距T]中的裂内容冻。目群的是愁为了有节省此一个逃工作寄单元掌。如捉果改恼一下俯:WO幸RK能=涂A取[T屑];A[惰T]输=取A速[I缴];A[懒I]宪=狐W喷OR堵K;药就能斩让读功者一欧目了量然了氧。423.程序屋要能集直截趟了当丙地说纤明程霸序员牺的用讲意。程序锣编写咸得要惰简单眠,写为清楚沾,直荒截了尼当地跪说明脂程序烘员的亮用意六。例轻如,fo签r顶(举i插=夏1;厌i鞭<筑=魄n;框i切++矛)灿f倚or私(禾j怪=堆1背;烧j喊<=秤n透;监j+独+跌)向V[岗i]捡[j甩]=(劳i/j旺)棚*种(蚂j/i四)除法也运算嗓(/族)在忍除数散和被壮除数僵都是脉整型卡量时肥,其故结果码只取妥整数狮部分回,而赞得到绘整型展量。43当i<j时,散i稀/甚j赞=朴0当j<i时,妖j品/技i洋=灰0得到魄的数炼组当i≠朱j时V[犹i]朗[j铁]代=婶(窄i/j浴)舰*澡(宏j/i价)堂=跨0当i=j时V[伴i]熔[j够]渡=妥(己i/j价)取*毒(办j/i撇)扁=堵1这样朵得到葬的结券果V是一累个单预位矩爸阵。44写成葛以下根的形殃式,颤就能矩让读美者直抖接了宿解程旋序编触写者爪的意俗图。fo易r扩(住i=1;刊i表<斜=忘n;莲i书++阳)嘴f籍or付(旋j=1;活j核<焦=范n;捧j宗++直)社if舞(沈i辜=啊=令j狱)忠V秘[i单][忘j]=1.敲0;呈EL枯SE铜V井[i裂][邮j]=0.抽0;454.其他凳常用前规则让编熊译程然序做胁简单丑的优布化。尽可乳能使杏用库海函数避免蔬不必饺要的蛮转移零。尽量解只采沙用三蚕种基绒本的宏控制背结构膜来编屿写程尸序。台除顺欧序结辈构外仍,使缠用if祖-t廊he画n-致el逐se来实美现选假择结那构;付使用do趋-u平nt烦il或do握-w足hi堤le来实封现循较环结努构。46输入次和输汗出输入态和输肠出信拨息是军与用掠户的许使用熄直接骨相关己的。赖输入行和输朋出的误方式吃和格签式应泽当尽铺可能攻方便爷用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论