程序设计语言与编码
- 格式:doc
- 大小:110.00 KB
- 文档页数:9
信息技术课教案计算机程序设计与编程语言教案主题:计算机程序设计与编程语言背景:计算机程序设计是信息技术课程的重要组成部分,它涉及到学生开发和实现算法的能力,以及对编程语言的理解和应用。
本教案旨在帮助学生掌握计算机程序设计的基本概念和技巧,培养他们的逻辑思维和问题解决能力。
一、引入1.1 激发学生兴趣在计算机程序设计课程的开始,我将展示一个有趣的视频或展示一段有趣的代码,并向学生提出问题:“你知道这是如何实现的吗?你有没有想过写出类似的程序?”通过这个引入,我可以激发学生对计算机程序设计的兴趣,并引起他们对本课程的好奇心。
1.2 介绍计算机程序设计的重要性我将向学生解释计算机程序设计的重要性,包括它在我们日常生活中的应用、它对现代科技的贡献以及它对学生未来职业发展的影响。
通过这样的介绍,我可以增强学生对学习计算机程序设计的动力。
二、理论知识2.1 介绍计算机程序设计基本概念我将简要介绍计算机程序设计的基本概念,包括算法、程序、数据类型、变量等,并通过生动的例子解释这些概念的含义和关系。
通过这一部分的讲解,学生可以对计算机程序设计有一个整体的认识。
2.2 探索编程语言我将向学生介绍常见的编程语言,如Python、Java、C++等,并简要介绍它们的特点和应用领域。
同时,我将与学生一起探索这些编程语言的语法和语义,让他们能够对编程语言有一个初步的了解。
三、实践操作3.1 编写简单的程序我将向学生提供一些简单的问题,并引导他们使用所学的编程语言编写相应的程序进行解决。
通过实践操作,学生可以巩固和应用所学的理论知识,并培养他们解决实际问题的能力。
3.2 解决实际问题我将组织学生参与一些实际问题的解决,如编写一个计算器程序、制作一个简单的游戏等。
通过这些实际问题的解决,学生可以将所学的理论知识应用到实际场景中,并提升他们的创造力和问题解决能力。
四、小结与拓展4.1 小结所学知识我将对本课程所学的知识进行小结,并与学生一起回顾所学内容。
计算机程序设计语言介绍——C语言人工智能系陆汉奇一、简介C语言是一种计算机程序设计语言。
它既有高级语言的特点,又具有汇编语言的特点。
它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
冯.诺依曼在1945年提出了现代计算机的若干思想,被后人称为冯.诺依曼思想,这是计算机发展史上的里程碑。
C 语言是一种十分强大的语言,可以进行多种方式进行程序的设计,它是一种很有特色的高级语言通过若干个函数组成,它具备构成程序设计的 3 种基本结构顺序,选择和循环结构。
C语言编辑简洁明了,运算符丰富且功能强大还有编译预处理功能。
此语言的移植性好不同的处理器用不同的编译器编译指令达到移植的效果。
二、特点C 语言普适性最强的一种计算机程序编辑语言,它不仅可以发挥出高级编程语言的功用,还具有汇编语言的优点,因此相对于其它编程语言,它具有自己独特的特点。
具体体现在以下三个方面:其一,广泛性。
C 语言的运算范围的大小直接决定了其优劣性。
C 语言中包含了 34 种运算符,因此运算范围要超出许多其它语言,此外其运算结果的表达形式也十分丰富。
此外,C 语言包含了字符型、指针型等多种数据结构形式,因此,更为庞大的数据结构运算它也可以应付。
其二,简洁性。
9 类控制语句和 32个KEYWORDS是C语言所具有的基础特性,使得其在计算机应用程序编写中具有广泛的适用性,不仅可以使用广大编程人员的操作,提高其工作效率,同时还能够支持高级编程,避免了语言切换的繁琐。
其三,结构完善。
C 语言是一种结构化语言,它可以通过组建模块单位的形式实现模块化的应用程序,在系统描述方面具有显著优势,同时这一特性也使得它能够适应多种不同的编程要求,且执行效率高。
三、C语言的结构化设计1、自顶向下逐步细化通过自顶向下逐步细化可以使C语言代码的出错率降低,更能提高C语言程序的执行效率,它能使一个具体的问题抽象化再加以注释方便人们的理解。
第三部分程序设计基础程序、程序设计、程序设计语言的定义⑴程序:计算机程序,是指为了得到某种结果而可以由计算机等具有信息处理能力的装置执行的代码化指令序列,或者可以被自动转换成代码化指令序列的符号化指令序列或者符号化语句序列.⑵程序设计:程序设计是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分.程序设计往往以某种程序设计语言为工具,给出这种语言下的程序.程序设计过程应当包括分析、设计、编码、测试、排错等不同阶段.⑶程序设计语言:程序设计语言用于书写计算机程序的语言.语言的基础是一组记号和一组规则.根据规则由记号构成的记号串的总体就是语言.在程序设计语言中,这些记号串就是程序.程序设计语言有3个方面的因素,即语法、语义和语用.高级语言和低级语言的概念及区别⑴高级语言:高级语言High-level programming language是高度封装了的编程语言,与低级语言相对.它是以人类的日常语言为基础的一种编程语言,使用一般人易于接受的文字来表示例如汉字、不规则英文或其他外语,从而使程序编写员编写更容易,亦有较高的可读性,以方便对电脑认知较浅的人亦可以大概明白其内容.⑵低级语言:低级语言分机器语言二进制语言和语言符号语言,这两种语言都是面向机器的语言,和具体机器的指令系统密切相关.机器语言用指令代码编写程序,而符号语言用指令助记符来编写程序.⑶区别:高级语言:实现效率高,执行效率低,对硬件的可控性弱,目标代码大,可维护性好,可移植性好低级语言:实现效率低,执行效率高,对硬件的可控性强,目标代码小,可维护性差,可移植性差了解知识:CPU运行的是二进制指令,所有的语言编写的程序最终都要翻译成二进制代码.越低级的语言,形式上越接近机器指令,语言就是与机器指令一一对应的.而越高级的语言,一条语句对应的指令数越多,其中原因就是高级语言对底层操作进行了抽象和封装,使编写程序的过程更符合人类的思维习惯,并且极大了简化了人力劳动.也就是说用高级语言写一句,会被转换成许多底层操作,大部分的工作交给了负责转换的机器即编译器,从而人力得到了解放.编译程序的概念及作用⑴编译程序Compiler,compiling program也称为编译器,是指把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序.⑵作用:它以高级程序设计语言书写的源程序作为输入,而以语言或机器语言表示的目标程序作为输出.计算机求解问题的过程分析问题确定计算机做什么→设计算法寻找解决问题的途径和方法,即要计算机怎么做→编写程序将算法翻译成计算机程序设计语言→上机运行和测试程序正确性的含义程序正确性证明就是采用严格的数学方法评价一个程序是否达到了预定的性能,即对于任何一组允许的输入信息,程序执行后能得到一组和这组信息对应的正确的输出信息.程序错误的几种类型程序错误,即英文的Bug,也称为缺陷,是指在软件运行中因为程序本身有错误而造成的功能不正常、死机、数据丢失、非正常中断等现象.⑴语法错误⑵逻辑错误程序调试、程序测试的概念以及区别⑴程序调试:是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程.这是保证计算机信息系统正确性的必不可少的步骤.编完计算机程序,必须送入计算机中测试.⑵程序测试:program testing是指对一个完成了全部或部分功能、模块的计算机程序在正式使用前的检测,以确保该程序能按预定的方式正确地运行.了解知识:程序测试的方法灰盒测试,确实是介于白盒测试与黑盒测试之间的,可以这样理解,灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不象白盒那样详细、完整,只是通过一些表征性的现象、事件、标志来判断内部的运行状态,有时候输出是正确的,但内部其实已经错误了,这种情况非常多,如果每次都通过白盒测试来操作,效率会很低,因此需要采取这样的一种灰盒的方法.白盒测试,又称结构测试.他的前提是可以把程序看成在一个透明的白盒子里,测试者完全知道程序的结构和处理算法.这种方法按照程序内部逻辑设计测试用例,检测程序中的主要执行通路是否能按照预定要求正确工作.白盒测试根据软件的内部逻辑设计设施用例,常用的技术是逻辑覆盖,即考察用测试数据运行被测程序是对程序逻辑的覆盖程度.主要的覆盖标准有:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合条件覆盖和路径覆盖.黑盒测试根据关键需求说明书所规定的功能来设计测试用例,它不考虑软件的内部结构和处理算法.常用的黑盒测试技术包括等价类划分、边值分析、错误推测和因果图等.⑶区别:①目的不同软件测试的目的是发现错误,至于找出错误的原因和错误发生的地方不是软件测试的任务,而是调试的任务.调试的目的是为了证明程序的正确,因此它必须不断地排除错误.它们的出发点不一样.前者是挑错,是一种挑剔过程,属于质盘保证活动.后者是排错,是一种排除过程,是编码活动的一部分.②指导原则和方法不同软件测试的输出是预知的,其软件测试用例必须包括预期的结果,而调试的输出大多是不可预见的,需要调试者去解释、去发现产生的原因.③操作者不同因为心理状态是软件测试程序的障碍,所以执行软件测试的人一般不是开发人员,以使软件测试更客观、更有效,而调试人员一般都是开发人员.结构化程序设计概念及类型结构化程序设计structured programming是进行以模块功能和处理过程设计为主的详细设计的基本原则.结构化程序设计的三种基本结构是:顺序结构、选择结构和循环结构.顺序结构表示程序中的各操作是按照它们出现的先后顺序执行的.选择结构表示程序的处理步骤出现了分支,它需要根据某一特定的条件选择其中的一个分支执行.选择结构有单选择、双选择和多选择三种形式.循环结构表示程序反复执行某个或某些操作,直到某条件为假或为真时才可终止循环.在循环结构中最主要的是:什么情况下执行循环哪些操作需要循环执行循环结构的基本形式有两种:当型循环和直到型循环.当型循环:表示先判断条件,当满足给定的条件时执行循环体,并且在循环终端处流程自动返回到循环入口;如果条件不满足,则退出循环体直接到达流程出口处.因为是"当条件满足时执行循环",即先判断后执行,所以称为当型循环.直到型循环:表示从结构入口处直接执行循环体,在循环终端处判断条件,如果条件不满足,返回入口处继续执行循环体,直到条件为真时再退出循环到达流程出口处,是先执行后判断.因为是"直到条件为真时为止",所以称为直到型循环.面向对象程序设计概念面向对象编程Object OrientedProgramming,OOP,面向对象程序设计是一种计算机编程架构.OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成.OOP 达到了软件工程的三个主要目标:重用性、灵活性和扩展性.为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息.面向对象程序设计中的概念主要包括:对象、类、数据抽象、继承、动态绑定、数据封装、多态性、消息传递.通过这些概念面向对象的思想得到了具体的体现.ASCII字符集ASCIIAmerican Standard Code for Information Interchange,美国标准信息交换代码是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言.它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646.标准ASCII 码也叫基础ASCII码,使用7 位二进制数来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符.大小规则1数字0~9比字母要小.如"7"<"F";2数字0比数字9要小,并按0到9顺序递增.如"3"<"8"3字母A比字母Z要小,并按A到Z顺序递增.如"A"<"Z"4同个字母的大写字母比小写字母要小.如"A"<"a".记住几个常见字母的ASCII码大小:“换行LF”为10;“回车CR”为13;空格为32;"0"为48; "A"为65;"a"为97.标识符、关键字的概念在编程语言中,标识符就是程序员自己规定的具有特定含义的词,比如类名称,属性名称,变量名等.关键字就是程序发明者规定的有特殊含义的单词,又叫保留字 .注释语句的作用注释语句在程序的开始或中间,不具有任何功能实现的作用,仅仅是对程序进行说明的语句.注释语句在程序运行过程中不运行,却是程序编写时的重要内容,对于理解程序很重要.表达式的组成及类型表达式,是由数字、算符、数字分组符号括号、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合.类型:算术表达式:是最常用的表达式,又称为数值表达式.它是通过算术运算符来进行运算的数学公式.加法、减法、乘法、除法、求余关系表达式:用关系运算符将两个表达式连接起来的式子,称关系表达式.关系表达式的值是逻辑值“真”或“假”.=等于、<小于、<=小于等于、>大于、>=大于等于、<>不等于逻辑表达式:用逻辑运算符将关系表达式或逻辑量连接起来的有意义的式子称为逻辑表达式.逻辑表达式的值是一个逻辑值,即“true”或“false”.NOT非、AND与、OR或子程序和函数的概念子程序:在计算机科学中,子程序英语:Subroutine, procedure, function, routine, method, subprogram, callable unit,是一个大型程序中的某部份代码,由一个或多个语句块组成.它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性.函数:在程序设计中,常将一些常用的功能模块编写成函数,放在函数库中供公共选用.要善于利用函数,以减少重复编写程序段的工作量.许多程序设计语言中,可以将一段经常需要使用的代码封装起来,在需要使用时可以直接调用,所以,函数也可以说是许多代码的集合,这就是程序中的函数.数据、数据元素、数据对象、数据项的概念数据:数据就是数值,也就是我们通过观察、实验或计算得出的结果.数据有很多种,最简单的就是数字.数据也可以是文字、图像、声音等.数据可以用于科学研究、设计、查证等.数据元素:数据元素data element是计算机科学术语.它是数据的基本单位,数据元素也叫做结点或记录.在计算机程序中通常作为一个整体进行考虑和处理.有时,一个数据元素可由若干个数据项组成,例如,一本书的书目信息为一个数据元素,而书目信息的每一项如书名、作者名等为一个数据项.数据项是数据的不可分割的最小单位.数据对象:Data Object是性质相同的数据元素的集合,是数据的一个子集,数据对象是一种运行时的概念.可以是外部实体例如,产生或使用信息的任何事物、事物例如,报表、行为例如,打电话、事件例如,响警报、角色例如,教师、学生、单位例如,会计科、地点例如,仓库或结构例如,文件等.总之,可以由一组属性来定义的实体都可以被认为是数据对象.数据项:数据项又称数据元素data element,是数据的基本单位,一个数据可由若干个数据项data item组成,数据项是数据的不可分割的最小单位.数据的逻辑结构、存储结构数据的逻辑结构是对数据之间关系的描述,有时就把逻辑结构简称为数据结构.逻辑结构形式地定义为K,R或D,S,其中,K是数据元素的有限集,R是K上的关系的有限集.了解知识:逻辑结构有四种基本类型:集合结构、线性结构、树状结构和网络结构.表和树是最常用的两种高效数据结构,许多高效的算法能够用这两种数据结构来设计实现.表是线性结构的全序关系,树偏序或层次关系和图局部有序weak/local order是非线性结构.数据结构在计算机中的表示映像称为数据的物理存储结构.它包括数据元素的表示和关系的表示.数据运算数据运算是对数据依某种模式而建立起来的关系进行处理的过程.最基本的数据运算有:①算术运算,如:加、减、乘、除、乘方、开方、取模等;②关系运算,如:等于、不等于、大于、小于等;③逻辑运算,如:与、或、非、恒等、蕴含等.数据结构的两大逻辑结构和四种常用的存储表示方法数据的逻辑结构分两大类:线性结构和非线性结构了解知识:线性结构是一个有序数据元素的集合.常用的线性结构有:线性表,栈,队列,双队列,数组,串.常见的非线性结构有:二维数组,多维数组,广义表,树二叉树等,图.数据的存储方法有四种:顺序存储方法、链接存储方法、索引存储方法和散列存储方法了解知识:1顺序存储方法:该方法把逻辑上相邻的结点存储在物理位置上相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现.由此得到的存储表示称为顺序存储结构Sequential Storage Structure,通常借助程序语言的数组描述.该方法主要应用于线性的数据结构.非线性的数据结构也可通过某种线性化的方法实现顺序存储.2链接存储方法:该方法不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系由附加的指针字段表示.由此得到的存储表示称为链式存储结构Linked Storage Structure,通常借助于程序语言的指针类型描述.3索引存储方法:该方法通常在储存结点信息的同时,还建立附加的索引表.索引表由若干索引项组成.若每个结点在索引表中都有一个索引项,则该索引表称之为稠密索引Dense Index.若一组结点在索引表中只对应一个索引项,则该索引表称为稀疏索引Spare Index.索引项的一般形式是:关键字、地址关键字是能唯一标识一个结点的那些数据项.稠密索引中索引项的地址指示结点所在的存储位置;稀疏索引中索引项的地址指示一组结点的起始存储位置.4散列存储方法:该方法的基本思想是:根据结点的关键字直接计算出该结点的存储地址.四种基本存储方法,既可单独使用,也可组合起来对数据结构进行存储映像.同一逻辑结构采用不同的存储方法,可以得到不同的存储结构.选择何种存储结构来表示相应的逻辑结构,视具体要求而定,主要考虑运算方便及算法的时空要求.算法和程序的关系算法是对特定问题求解步骤的描述,它是指令的有限序列.算法与程序的关系:算法和程序都是指令的有限序列 ,但是,程序是算法,而算法不一定是程序.算法和程序的区别主要在于:1 在语言描述上,程序必须是用规定的程序设计语言来写,而算法很随意;2 在执行时间上,算法所描述的步骤一定是有限的,而程序可以无限地执行下去.所以:程序 = 数据结构 + 算法常用数据类型种类及特性不同的变成语言,数据类型的说法有差异.一般而言包含:数字型或者数值型,常有 Integer整型、Long 长整型、Single单精度浮点型、Double双精度浮点型和 Currency货币型.文本型:常有String 字符串型逻辑型:若变量的值只是“true/false”、“yes/no”、“on/off”信息,则可将它声明为Boolean 类型.常量和变量的概念“常量”在程序运行时,不会被修改的量.换言之,常量虽然是为了硬件、软件、编程语言服务,但是它并不是因为硬件、软件、编程语言而引入.变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念.变量可以通过变量名访问.字符串的概念及应用字符串或串String是由数字、字母、下划线组成的一串字符.一般记为 s=“a1a2···an”n>=0.它是编程语言中表示文本的数据类型.在程序设计中,字符串string为符号或数值的一个连续序列,如符号串一串字符或二进制数字串一串二进制数字.数组、数组元素、下标变量数组:就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标.组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量.数组是在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来的一种形式.这些按序排列的同类数据元素的集合称为数组.数组元素是组成数组的基本单元.数组元素也是一种变量, 其标识方法为数组名后跟一个下标.下标表示了元素在数组中的顺序号.数组元素通常也称为下标变量.了解知识:数组元素的一般形式为:数组名下标,其中下标只能为整型常量或整型表达式.。
计算机程序设计语言分为机器语言汇编语言和高级语言三种简述计算机程序设计语言机器语言计算机程序设计语言是指用于编写计算机程序的语言。
根据其表达能力和使用方式的不同,计算机程序设计语言可以分为机器语言、汇编语言和高级语言三种。
一、机器语言机器语言是计算机可以直接识别和执行的语言。
它是由二进制代码组成的指令集,对应着计算机的硬件指令,使用数字编码来表示不同的操作和数据。
机器语言具有与硬件紧密结合、执行效率高的特点,但是编写和阅读机器语言程序非常困难,因为它需要了解特定计算机的指令集和操作方式。
所以,机器语言往往只是由计算机专家来使用,且应用广泛的高级语言编写的程序通常需要通过编译器或解释器将其转换为机器语言才能执行。
二、汇编语言汇编语言是在机器语言的基础上进行了一定的抽象和简化,使用助记符(Mnemonic)来代替二进制码表示指令。
每个助记符对应一个具体的机器指令,这使得程序员不再需要记忆和编写一长串的0和1。
汇编语言相对于机器语言更易于理解和编写,但是仍然需要对特定的硬件架构有一定的了解。
为了将汇编语言程序转换为机器语言,需要使用汇编器进行汇编过程。
三、高级语言高级语言是相对于机器语言和汇编语言而言的,它更加接近自然语言,更容易理解和编写。
高级语言的语法和结构以及与硬件的关系都经过了抽象和简化,使得程序员可以更加专注于解决问题本身,而不需要过多关注底层细节。
常见的高级语言有C、C++、Java、Python等。
高级语言编写的程序通常以源代码的形式存储,并通过编译器或解释器将其转换为机器语言执行。
在实际开发中,高级语言被广泛应用。
相对于机器语言和汇编语言,高级语言具有更高的灵活性和可维护性,对程序员的要求也相应降低。
不同的高级语言适用于不同的应用场景,例如C语言适用于系统级编程,Java适用于跨平台应用开发,Python适用于科学计算和数据分析等。
总结而言,计算机程序设计语言分为机器语言、汇编语言和高级语言三种。
第三部分程序设计基础3.1 程序、程序设计、程序设计语言的定义⑴程序:计算机程序,是指为了得到某种结果而可以由计算机等具有信息处理能力的装置执行的代码化指令序列,或者可以被自动转换成代码化指令序列的符号化指令序列或者符号化语句序列。
⑵程序设计:程序设计是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分。
程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。
程序设计过程应当包括分析、设计、编码、测试、排错等不同阶段。
⑶程序设计语言:程序设计语言用于书写计算机程序的语言。
语言的基础是一组记号和一组规则。
根据规则由记号构成的记号串的总体就是语言。
在程序设计语言中,这些记号串就是程序。
程序设计语言有3个方面的因素,即语法、语义和语用。
3.2 高级语言和低级语言的概念及区别⑴高级语言:高级语言(High-level programming language)是高度封装了的编程语言,与低级语言相对。
它是以人类的日常语言为基础的一种编程语言,使用一般人易于接受的文字来表示(例如汉字、不规则英文或其他外语),从而使程序编写员编写更容易,亦有较高的可读性,以方便对电脑认知较浅的人亦可以大概明白其内容。
⑵低级语言:低级语言分机器语言(二进制语言)和汇编语言(符号语言),这两种语言都是面向机器的语言,和具体机器的指令系统密切相关。
机器语言用指令代码编写程序,而符号语言用指令助记符来编写程序。
⑶区别:高级语言:实现效率高,执行效率低,对硬件的可控性弱,目标代码大,可维护性好,可移植性好低级语言:实现效率低,执行效率高,对硬件的可控性强,目标代码小,可维护性差,可移植性差了解知识:CPU运行的是二进制指令,所有的语言编写的程序最终都要翻译成二进制代码。
越低级的语言,形式上越接近机器指令,汇编语言就是与机器指令一一对应的。
而越高级的语言,一条语句对应的指令数越多,其中原因就是高级语言对底层操作进行了抽象和封装,使编写程序的过程更符合人类的思维习惯,并且极大了简化了人力劳动。
程序设计语言的分类及特点:1)机器语言(第一代语言):由机器指令构成的语言称机器语言,即用二进制编码组成。
(如01110101)特点:○1费时费事○2难懂容易错○3只能在一种型号计算机上运行○4可以直接在计算机上运行2)汇编语言(第二代语言:50年代初期出现):用容易记忆的符号来代替机器指令中操作码和地址码的一种语言.(如:ADD 代表“+” SUB代表“-” MOV代表“传递”)特点:优点——(1)程序直观容易阅读;(2)编程工作量相对小;缺点——(1)只能在一种型号机器上运行;(2)不能直接在计算机上运行。
3)高级程序设计语言(第三代语言:50年代中期提出):高级程序设计语言是一种面向过程或者面向对象的语言,不面向机器,用一些符号或者数字对求解的问题或者现实世界进行描述。
特点:a) 直观、易写、易读、工作量小b) 不依赖于具体的机器c) 便于程序交流d) 不可直接在计算机上运行,经编译程序编译成机器语言后方可运行4)超高级程序设计语言(第四代语言):只需指出所求问题、输入数据及输出形式,就能得到输出结果,无需对算法和计算过程描述的语言。
特点:a) 语言功能强,效率高,使用方便;b) 开发应用系统修改方便、维护容易;c) 系统复杂,不但要编译还要生成程序。
1.三种翻译程序的定义解释程序:将高级语言写的源程序作为输入数据,但并不产生目标程序,而是边解释边执行源程序本身的一种程序。
编译程序:是将高级语言写的源程序翻译成目标语言(汇编语言、机器语言)的程序。
这种翻译过程称为编译。
编译系统:目标程序,再加上运行系统(如服务子程序、动态分配程序、装配程序等)就可获得计算结果,整个系统称为编译系统。
汇编程序:把汇编语言写的源程序翻译成机器语言的目标程序,这个翻译过程称为汇编。
4.编译基本过程编译过程基本包括以下几个步骤:1.词法分析 2.语法分析 3.语义分析 4.中间代码生成 5.修饰优化 6.生成目标程序。
简述计算机程序设计语言的分类和各类的特点计算机程序设计语言是计算机能够理解和执行的指令集合,它是人与计算机之间进行信息交流的重要工具。
不同的程序设计语言有不同的特点和用途,根据其特点可以将这些语言分为以下几类:1.机器语言:机器语言是计算机直接能够识别和执行的指令代码,它是由二进制码表示的。
机器语言编程需要了解计算机底层硬件结构,编写工作量大且容易出错,理解困难。
机器语言程序执行效率高,但可读性差,难以维护和移植。
2.汇编语言:汇编语言是机器语言的助记符表示,使用助记符代替了机器语言的二进制码,使得程序的可读性得到提高。
汇编语言是一种低级语言,一条汇编语言指令通常对应于一条机器指令。
汇编语言编写相对简单,但需要了解计算机底层硬件架构。
汇编语言程序执行效率高,适用于对性能要求较高的场景。
3.高级语言:高级语言是相对于机器语言和汇编语言而言的,它采用更接近人类自然语言的形式。
高级语言的程序员更关注算法和逻辑,而非底层硬件。
高级语言屏蔽了底层细节,提供了更高的抽象级别和更易于理解的语法。
高级语言编译成机器语言或解释执行。
根据编译方式和执行方式的不同,高级语言可以分为以下两类:-编译型语言:编译型语言的源代码需要通过编译器转换为目标机器平台的机器代码,生成可执行文件。
在执行时,操作系统直接执行目标代码,无需再次编译。
编译型语言的优点是执行效率高,但需要不同平台编译生成不同的可执行文件。
-解释型语言:解释型语言的源代码在执行时通过解释器一行一行地被解释执行,无需编译成可执行文件。
解释型语言的优点是跨平台,源代码不依赖于特定的硬件或操作系统,可移植性强。
但解释型语言的执行效率相对较低。
根据语言特性和用途的不同,高级语言可以分为以下几类:-面向过程语言:面向过程语言侧重于算法和过程的设计,以过程为基本思维单元。
它强调数据和功能的结合,对数据的处理是通过函数或者函数调用来实现。
面向过程语言的特点是效率较高,可读性强,适用于对执行效率要求较高的场景。
第9章程序设计语言与编码9.1 典型问题分析和解答【例1】设下图给出的程序流程图代表一个非结构化的程序,试问:(1) 为什么说它是一个非结构化的?(2) 设计一个等价的使用附加标志变量flag的结构化程序;(3) 设计一个使用break(用于代替goto)的程序。
答:(1) 它是一个单入口、两出口的结构,所以是一个非结构化的程序;(2) 等价的结构化程序:{do G;(3) 使用break的程序{do G;if ( !Q ) break;【例 2】下面给出一个求实函数方程F(x)在自变量区间 [a, b] 中的全部实根的算法。
首先阅读此程序,然后(1) 画出消去全部goto语句的结构化程序流程图;(2) 将它改成N_S图;(3) 计算该程序的McCabe复杂性度量。
在算法中,a与b是区间[a, b]的两端点值;eps1与eps2是用户要求的求解精度。
如果区间中点的函数值的绝对值小于eps1或新的小区间的长度小于eps2,就认为这个中点为根;float BinRoot ( float a,float b, float eps1, float eps2 ){float low= a, high = b,mid,fmid;float flow = Func(low), fhigh := Func(high);label L1, L2, L3;//标号说明,给定某些程序地址if ( flow * fhigh > 0.0 ) { BinRoot = 0;goto L3; }//无实根L1:mid = (low + high) / 2;fmid = Func(mid);if ( abs ( fmid ) <= eps1 ){L2: BinRoot = mid; goto L3;}else if ( high - mid <= eps2 ) goto L2;else if (flow * fmid > 0.0 ) { low = mid;flow = fmid; goto L1; }else { high = mid; goto L1 };L3:}答:(1) 结构化的程序流程图:(2) N-S图:(3) 环路复杂性度量 V(G) = 6。
【例3】有一种循环结构,叫做N+1/2循环。
其流程图如下所示。
这种控制结构不属于基本控制结构:它既不是先判断型循环,又不是后判断型循环。
试修改此流程图,将它改为用基本控制结构表示的等效的流程图。
答:等效的控制流程图如下图中(a)所示。
先判断型循环,要求在进入循环体之前,先判断是否要继续执行此循环。
因此,在这种控制结构的入口处应是一个判断语句。
这种循环的循环体可能一次也不执行。
参看图(b)、(c);图(d)是另一种等效方案。
【例4】用某种软件复杂性度量算法来度量不同类型的程序时,得出的度量值是否真正反映了它们的复杂性? 如果对同类型的程序进行度量,其结果是否就比较有价值?答:开发规模相同,但复杂性不同的软件,花费的成本和时间会有很大的差异。
因此到目前为止,还没有一个软件复杂性度量的方法能够全面、系统地度量任一软件的复杂性,某一种度量方法只偏重于某一方面。
所以,用某一种软件复杂性来度量不同类型的程序,所得到的度量值不一定真正反映它们的复杂性。
但对同一类型的程序,按某种视点来度量它们的复杂性,其结果还是比较有价值的。
【例5】从供选择的答案中选出适当的字句填入下面关于程序生产率的描述中的( )内:(1) 1960年底Dijkstra提倡的(A)是一种有效的提高程序设计效率的方法;(2) Dijkstra为了使程序结构易于理解,把基本结构限于顺序、(B)、(C)3种,应避免使用(D);(3) (A)不仅提高程序设计的生产率,同时也容易进行程序的(E)。
供选择的答案:A.①标准化程序设计②模块化程序设计③多道程序设计④宏语言⑤结构化程序设计⑥汇编语言⑦表格处理语言B~C. ①分支②选择③重复④计算⑤输入输出① GOTO语句② DO语句③ IF语句④ REPEAT语句①设计②调试③维护④编码答:A.⑤, B.②, C.③, D.①, E.③9.2 习题一、填空题1. 软件需求分析之后,软件的设计、编码、测试与语言的特性有很大的关系,这个特性主要是语言的______特性。
2. 为了提高程序的易读性,同时减少错误,提高软件开发效率,编码时注意养成良好的_____。
3. 源程序中加注释是帮助理解程序的重要手段,注释分为_______两类。
4. 程序设计语言的特性主要有_______三方面。
5. 程序设计语言的心理特性在语言中的表现形式为_______。
6. 程序设计语言的工程特性主要表现为_____。
7. 项目的应用领域一般有_____几种类型。
8. 与编码风格有关的因素有数据说明、语句构造、输入输出、效率等,其中还有一个重要的因素是_______。
二、单选题1. 在结构化程序设计之前,在程序设计中曾强调程序的效率,现在人们更重视程序的( )。
A. 技巧性B. 保密性C. 一致性D. 可理解性2. 与选择编程语言无关的因素是( )。
A. 软件开发的方法B. 软件执行的环境C. 程序设计风格D. 软件开发人员的知识3. 源程序文档化要求在每个模块之前加序言性注释。
该注释内容不应有( )。
A. 模块的功能B. 语句的功能C. 模块的接口D. 开发历史4. 不适合作为数据处理的语言是( )。
A. PROLOGB. CC. 4GLD. SQL5. 提高程序效率的根本途径并非在于( )。
A. 选择良好的设计方法B. 选择良好的数据结构C. 选择良好的算法D. 对程序语句作调整6. 项目的应用领域是选择编程语言关键的因素之一,不适合作为项目应用领域的类型是( )。
A. 系统软件B. 数据处理与数据库应用C. 实时处理D. UNIX操作系统7. 为了提高易读性,源程序内部应加功能性注释,用于说明( )。
A. 模块总的功能B. 程序段或语句的功能C. 模块参数的用途D. 数据的用途8. 程序设计语言的心理特性在语言中表现不应包括( )。
A. 歧义性B. 简洁性C. 保密性D. 传统性9. 程序设计语言的工程特性其中之一表现在( )。
A. 软件的可重用性B. 数据结构的描述性C. 抽象类型的描述性D. 数据库的易操作性10. 程序设计语言的技术特性不应包括( )。
A. 数据结构的描述性B. 抽象类型的描述性C. 数据库的易操作性D. 软件的可移植性11. 请回答下列有关计算机语言的问题:(1) 下列语言中哪个语言是低级语言( )A. PASCALB. VISUAL BASICC. C++D. 汇编语言(2) 下列语言中哪个语言是高级语言( )A. 机器B. 汇编语言C. FORTRAND. OS/2(3) ( )语言是描述性(说明性)语言A. PASCALB. CC. FORTRAND. SQL(4) ( )是面向对象的语言A. FORTRANB. SQLC. SMALLTALKD. COBOL12. 在商业系统的开发中应用最广的语言是( )A. PROLOG语言B. SMALLTALK语言C. FORTRAN语言D. COBOL语言13. 使用高级程序设计语言编程时,首先可通过编译程序发现源程序中的全部(1)及部分(2),然后可采用(3)来发现程序中的运行错误和采用(4)来确定错误的位置,(5)是泛指用户在验收中发现的结果与需求不符的错误。
(1)、(2)、(5)的可选答案:A. 符号错误B. 逻辑错误C. 语法错误D. 通路错误E. 语义错误F. 溢出错误G. 设计错误(3)、(4)的可选答案:A. 诊断B. 测试C. 校验D. 排错E. 普查F. 试探14. 在高级语言中,子程序调用语句中的(1)在个数、类型、顺序方面都要与子程序说明中给出的(2)相一致。
用高级语言编写的程序经编译后产生的程序叫(3)。
用不同语言编写的程序产生(3)后,可用(4)连接在一起生成机器可执行的程序。
在机器里真正执行的是(5)。
(1)、(2)的选择答案:A. 实际参数B. 条件参数C. 形式参数D. 局部参数E. 全局参数(3)、(4)、(5)的选择答案:A. 源程序幕B. 目标程序C. 函数D. 过程E. 机器指令代码F. 模块G. 连接程序H. 程序库三、选择题1. 从下列关于模块化程序设计的叙述中选出5条正确的叙述。
(1) 程序设计比较方便,但比较难以维护。
(2) 便于由多个人分工编制大型程序。
(3) 软件的功能便于扩充。
(4) 程序易于理解,也便于排错。
(5) 在主存储器能够容纳得下的前提下,应使模块尽可能大,以便减少模块的个数。
(6) 模块之间的接口叫做数据文件。
(7) 只要模块之间的接口关系不变,各模块内部实现细节的修改将不会影响别的模块。
(8) 模块间的单向调用关系叫做模块的层次结构。
(9) 模块越小,模块化的优点越明显。
一般来说,模块的大小都在10行以下。
2. 从下列叙述中选出5条符合程序设计风格指导原则的叙述。
(1) 嵌套的重数应加以限制。
(2) 尽量多使用临时变量。
(3) 不滥用语言特色。
(4) 不用可以省略的括号。
(5) 使用有意义的变量名。
(6) 应尽可能把程序编得短些。
(7) 把常见的局部优化工作留给编译程序去做。
(8) 注解越少越好。
(9) 程序的格式应有助于读者理解程序。
(10) 应尽可能多用GOTO语句。
3. 从下面关于程序编制的叙述中,选出三条正确的叙述。
(1) 在编制程序之前,首先必须仔细阅读给定的程序说明书。
然后,必须如实地依照说明书编写程序。
说明书中常会有含糊不清或难以理解的地方。
程序员在作业时应该对这些地方作出适当的解释。
(2) 在着手编制程序时,重要的是采用既能使程序正确地按设计说明书进行处理,又易于出错的编写方法。
(3) 在编制程序时,首先应该对程序的结构充分考虑,不要急于开始编码,而要象写软件文档那样,很好地琢磨程序具有什么样的功能,这些功能如何安排等等。
(4) 考虑到以后的程序变更,为程序编写完整的说明书是一项很重要的工作。
只要有了完整的程序说明书,即使程序的编写形式难以让他人看懂也没有什么关系。
(5) 编制程序时不可缺少的条件是,程序的输入和输出数据的格式都应确定。
其他各项规定都是附带的,无足轻重。
(6) 作为一个好的程序,不仅处理速度要快,而且易读易修改等等也都是重要的条件。
为了能得到这样的程序,不仅要熟悉程序设计语言的语法,还要注意采用适当的规程和单纯的表现方法,注意使整个程序的结构简洁。
4. 从供选择的答案中选出应该填入下面( )中的正确答案。
A. 汇编程序是指( )。
①用汇编语言写的程序②符号程序③汇编语言的处理程序B. 为了实现递归子程序的正确调用,人们必须用( )来保存( )及有关信息。