资源描述
计算机基础与程序设计课程目录第一章 计算机及程序设计基础知识第二章 关于C语言的基本知识第三章 C的基本语句及顺序结构程序设计第四章 条件语句与选择结构程序设计第五章 循环语句与循环结构程序设计第六章 数组第七章 函数第八章 指针第九章 结构体和共用体第十章 位运算与编译预处理第十一章 文件课程内容第一章计算机系统组成和算法的概念,数制转换、流程图描述。第二章C 语言的常量、变量、运算符和表达式。第三章顺序结构程序的设计方法,赋值语句及输入输出语句的应用。第四章三种形式的if语句和选择结构的编程方法,switch语句。第五章三种形式的循环语句和循环结构的编程方法和编程技巧,一重循环和二重循环的编程和简单算法。第六章一维、二维数值型和一维字符型数组的定义、引用、初始化方法。第七章函数的定义、调用,设计多个函数组成的C 程序,变量的作用域和变量存储类别的特点。第八章变量、数组、字符串三类指针变量的定义与引用,其中重点掌握变量的指针、一维数组的指针、字符串的指针的定义与引用方法。第九章掌握结构体类型的定义方法、引用规则及初始化方法,掌握动态存储分配,单向链表的一般操作。重点掌握单向链表的建立、删除、插入、查找。第十章掌握对位运算、宏定义、宏调用的方法。第十一章掌握文件指针的概念和文件指针变量的定义方法,掌握磁盘文件的打开、关闭、读、写、定位等函数的调用。课程目标掌握计算机系统的基本组成和工作原理。掌握C 语言的特点、规则、语句和C 语言的基本算法。具有较强的阅读分析程序的能力。理论与实践相结合,能运用算法编写基本的C 语言程序。第一章计算机及程序设计基础知识第一节 计算机系统组成及基本工作原理第二节 微型机的系统结构第三节 计算机中数据的表示及存储形式第四节 计算机程序与算法第一章计算机及程序设计基础知识计算机作为一种现代化的处理信息的工具,已应用于各行各业各个领域之中,数值信息、文字信息、图像信息、动画信息甚至声音信息都可以通过计算机来存储和处理。计算机所做的任何工作都是在程序的控制下进行的,因此重点将学习程序设计的基础方法。数值信息诸如网上银行、excel表中的统计等;文字信息像word中的内容、网页小说和新闻等;图像信息诸如明星照片、屏幕截图、网络电视等;动画信息像网络游戏、flash等;声音信息就是只要能从电脑上听到的即是。第一节计算机系统组成及基本工作原理一、计算机系统概述一个完整的计算机系统有硬件系统和软件系统两大部分组成。硬件系统指的是组成计算机的具体的物理设备(看的见,摸得着的,举例)。软件系统包括了计算机运行所需的各种程序及其有关的文档资料。根据程序的不同用途,通常分为系统软件和应用软件。冯诺依曼结构:计算机由运算器、控制器、存储器、输入设备、输出设备等五个基本部件组成。采用二进制。程序和数据一样都存放在存储器中。(存储程序、自动控制)输入设备存储器输出设备运算器控制器代表数据流代表控制流计算机基本结构运算器:负责完成所有算术运算、逻辑运算任务。控制器:负责控制指挥计算机各部件按照指令指定的功能进行各种操作,使计算机能够按照程序的安排,自动完成规定的任务。存储器:程序和数据以及运算的中间和最终结果均以二进制的形式存储在其中。输入设备:用来接受用户输入的原始数据和程序,并将它们变为计算机能够识别的代码形式存放在存储器中。输出设备:用于将存储器中经计算机处理得到的运算结果转变为人们所能接受的形式,输出到相应的介质上,供使用者观看、分析和保存。运算器和控制器统称为CPU,即中央处理器(Central Processing Unit)的英文缩写,并把CPU和存储器合称为主机。根据程序的不同用途,通常把软件分为系统软件和应用软件两大部分。(举例)系统软件是计算机设计制造者提供的管理计算机全部软硬件资源的软件。通常包括操作系统、语言处理程序、数据库管理系统、网络管理程序、工具与服务程序等。其中操作系统是最核心的软件,其他所有程序都要在它的支持下工作。应用软件是专门为某一应用目的而编制的通用或专用程序。应用软件必须在系统软件的支持下才能工作。计算机系统硬件系统软件系统运算器控制器存储器输入输出设备系统软件应用软件计算机系统组成裸机操作系统其他系统程序应用程序用户用户、软件、硬件之间的关系二、计算机的基本工作原理计算机中有两股信息流在流动,一股是数据流,它包括参加运算的原始数据、运算过程中的中间结果和最终结果,还包括程序中的指令;另一股是控制流,是由控制器发往各部件的命令。这些信息都以二进制代码来表示。程序和数据同时存储在存储器中,在发出运行命令以后,计算机能够自动完成运算,就是因为在存储器中存储了程序。计算机是在程序的控制下自动完成相应操作的,这就是所谓“存储程序”的原理,它是计算机的基本工作原理。指令、程序的概念指令。指令由一串二进制代码组成,是控制计算机完成一个基本操作的命令,如:传送、加法、移位、停机等都是一个基本操作。指令应能由控制器中的指令译码器所识别,因此,不同类型的计算机由于硬件的差异,指令代码也不同。一条指令通常由两部分组成:操作码和地址码。操作码指明计算机应该干什么、地址码则指出被操作的对象。指令系统。计算机所能识别的所有基本指令的集合称为指令系统。指令系统的丰富与否,决定了计算机对数据的运算和处理能力的强弱。程序。程序就是解题步骤的实现。根据解决某一问题的过程和步骤,选用一条条指令进行有序的排列,这一指令序列就是程序。程序在计算机中的执行过程。计算机执行程序是依规定顺序执行一条条指令,每一条指令的执行都分为两个阶段:一是从存储器将指令码取到cpu中;二是cpu对取入的指令进行分析译码,判断该指令要做什么,然后向各部件发出完成该操作的控制信号,使各部件产生相应的动作,这样就完成了一条指令的执行过程。程序是一系列指令的有序集合,因此程序的执行,就是依次不断地对程序中所有指令取出、执行的全过程。第二节微型机的系统结构一、微型机的硬件系统微型机的运算器和控制器被集成在一片大规模集成电路芯片中,一般称其为微处理器,即微型机的CPU。微型机硬件系统一般分为主机和外设两大部分。微型机遵循冯诺依曼结构,但结构形式与一般计算机不同,主要体现在CPU大规模集成在一起和采用总线结构方面。微型机由微处理器、内存、外存、I/O接口及I/O设备、总线等几大部分组成。微处理器(CPU)系统总线内存外存接口输入设备接口输出设备接口其他外设接口软盘、硬盘、光盘驱动器键盘等输入设备显示器、打印机等输出设备各种其他I/O设备主机外设微型机的结构组成微处理器(CPU)微处理器是整个微型计算机的核心部件,包含运算器和控制器,用来执行指令,完成各种运算和控制功能。微处理器一般含有下列部件:算术逻辑部件ALU;累加器及通用寄存器组;程序计数器、指令寄存器和指令译码器;时序和控制部件等。存储器是计算机存储信息的“仓库”,所谓信息是指计算机系统所要处理的数据和程序。按照存储器和CPU的关系,被分为内部存储器(简称内存)和外部存储器。内存用来存放当前计算机运行立刻就需要的程序和数据,内存的大小直接影响程序的运行效果。内存的存取速度与CPU相当,它直接通过系统总线和CPU相连;外存用来存放不立刻运行的程序和数据,它可以和内存进行大量的信息交换,既可以将外存中的信息调入内存进行运算,也可以将内存中处理过的程序和数据写入外存,以便保存。外存属于外设,内存属于主机。内存的主要特点是:容量小、速度快,价格贵;外存特点是:容量大、速度慢,价格便宜。内部存储器一般分为ROM和RAM,ROM的特点是只能从中读出信息,而不能写入信息,内容不会丢失;RAM的特点是其中存放的内容可随机读写,但是信息易失。计算机在运行时,系统程序、用户程序以及所用数据都存放在RAM中。一般用户直接使用的是RAM,通常所说的内存大小也是指的RAM。有关存储器的概念:存储器由若干个单元组成,每个单元有一个唯一的编号,称为地址。信息的最小单位是二进制的位(bit),每8个二进制位定义为一个字节(Byte),存储器以字节为单位来进行编址。CPU访问内存时,一次读写几个字节取决于字长是多少,字长与数据总线有关。若干字节称为一个字。存储器的存储单元总数,称为存储器的容量,微型机中以B、KB、MB、GB、TB作为表示存储容量的单位。存储器的容量和单位也适用于外存。外部存储器常用的外存有软盘、硬盘、CD-ROM光盘。软盘和硬盘上的信息都是可以读写的,并可以长期保存,断电也不会消失。硬盘容量大,读写速度快,但硬盘和硬盘驱动器被密封在一起的,而软盘和软盘驱动器可分。CD-ROM是一种只读光盘,容量可达600MB,常用来存放一些信息量很大的软件。I/O接口和I/O设备I/O接口 I/O接口是微处理器与I/O设备之间交换信息的连接电路,外设必须通过接口连接到系统总线上再与CPU相连。I/O接口的作用,主要是协调CPU与外设间的速度、信息格式、信息类型等差异,使之能正确完成CPU与I/O设备间的信息交换。因此I/O接口又常被称为适配器,适配器一般作为插板形式,故也称为适配卡或接口卡。常用的接口卡有:显示器适配卡、多功能适配卡、软盘接口卡、硬盘接口卡等。ISA:工业标准体系结构总线工业标准体系结构总线EISA:扩充的工业标准体系结构总线扩充的工业标准体系结构总线PCI:外部设备互连总线。常用于显卡、网卡外部设备互连总线。常用于显卡、网卡AGP:图形加速接口总线。在图形卡与内存之间图形加速接口总线。在图形卡与内存之间 提供了一条直接的访问途径。提供了一条直接的访问途径。USB:通用串行标准总线。支持即插即用,常通用串行标准总线。支持即插即用,常 用于鼠标、用于鼠标、U盘、打印机等盘、打印机等常用总线常用总线标准标准总线宽度:一次能并行传输的二进制位数总线宽度:一次能并行传输的二进制位数总线频率(外频):总线速度总线频率(外频):总线速度总线性能总线性能指标指标I/O设备(输入输出设备)I/O设备是指那些用于输入或输出的具体设备,每一台设备都需要有与之匹配的接口卡。I/O设备通过I/O接口、总线和CPU之间建立联系。微型机常用的I/O设备有键盘、鼠标、显示器、打印机。对于多媒体计算机,还常用语言输入机、扫描仪、绘图机、录像机、VCD机,音箱等设备。系统总线采用系统总线结构是微型机组成结构的显著特点之一。所谓总线(BUS)就是指计算机部件与部件之间进行信息传输的一组公共信号线及相关的控制逻辑电路。它是一组能为计算机多个部件服务的公共信息传输通路,能分时地发送或接收各部件的信息。在系统总线上通常传输三种信号:数据、地址和控制信号,相应的总线也分为数据总线、地址总线、控制总线三类。系统总线被恰当的比作“高速公路”,总线上的数据流则视为公路上的“车辆”,显然,交通是否畅通直接依赖于总线,因此总线技术成为微机系统结构的一个重要方面。二、微型机的软件系统没有任何软件的计算机称为“裸机”,裸机是不能完成任何工作的,可以说软件是计算机工作的“灵魂”。软件系统是由系统软件和应用软件两大部分组成的。1、微型机的系统软件操作系统。对计算机系统的全部软、硬件资源进行管理的大型、多模块程序。如单用户单任务的磁盘操作系统DOS,基于图形界面的多任务操作系统WINDOWS,多用户多任务的UNIX等。语言处理程序。汇编程序、解释程序、编译程序等对各种汇编语言、高级语言源程序进行翻译的系统程序。如MASM汇编程序、Turbo C 2.0系统等。数据库管理系统。对数据库中的数据进行维护和管理的系统程序。如关系型数据库管理系统:FoxBASE、Foxpro、Oracle、Access等。常用服务性程序。包括了编辑程序、调试程序、装配和连接程序、系统的维护与测试程序等。所谓操作系统是一个功能强大的,能对计算机的软硬件资源进行管理的软件。它是系统软件的核心,其他所有程序都要在它的支持下工作。操作系统一般应具备处理机管理、存储器管理、文件管理、设备管理、作业管理等五大功能。DOS(Disk Operating System)DOS是基于文字界面的单用户、单任务操作系统。MS-DOS的基本组成。MS-DOS是由许多模块组成的程序组,但其中最主要的模块有4个,称为DOS的核心模块。一是引导程序(BOOT)。二是输入输出模块(IO.SYS)。三是文件管理模块(MSDOS.SYS)。四是键盘命令处理程序(COMMAND.COM)DOS的启动。所谓DOS的启动就是指把系统盘(C盘或A盘)上的四个系统模块装入内存。DOS的启动方法有冷启动和热启动两种。文件的概念。文件是一组相关信息的集合。文件可以是高级语言的一个源程序、一篇文稿、一封信、一组数据、一个表格或其他一组信息。DOS系统的数据信息绝大多数都是存放在磁盘上的,并且以文件的形式进行组织和管理。DOS从磁盘上读取信息或向磁盘写入信息,都是以文件为单位,文件是DOS管理的基本对象。DOS文件的命名是有规则的。如FILE1.C。DOS文件命名规则采用8.3结构,即主文件名由1-8个字符(或1-4个汉字)组成,扩展名用0-3个字符组成。可用的字符有26个英文字母,10个数字和专用字符!、#、$、&、(、)、-、_、等,主文件名和扩展文件名中间用“.”隔开。主文件名是必须的,扩展文件名是可选的。扩展名通常用来表示文件的类型,DOS有不少约定的扩展名,如.EXE、.COM、.BAT、.FOR、.TXT等分别表示可执行文件、命令文件、批处理文件、FORTRAN源文件、文本文件等,C语言源文件的扩展名为.C。通配符的使用概念。在文件名和扩展名中,“?”可以代替任意一个字符,“*”可以代替剩余部分的任意个字符。如有时想对几个文件做相同的操作,一次复制一组文件或列出一组文件名等。如:copy a:user*.doc c:DOS对磁盘文件的管理采用目录及其树型结构。DOS采用多级目录结构进行文件管理,通常把系统软件、各种应用软件、用户程序和数据文件等磁盘文件分类存于不同的目录下。文件4文件2子目录1(一级)子目录2(一级)文件3子目录4(三级)子目录3(二级)文件A文件C文件5文件6文件1文件7文件8磁盘根目录 图 1-6 磁盘树型目录结构“当前盘”和“当前目录”的概念在系统启动成功后,自动显示包含系统盘符的提示符,如C:,此时对磁盘的操作默认是对C盘操作,这时C盘就是“当前盘”当一个盘建立了目录结构,操作时就需指明,要找的文件在哪个目录下,DOS对每个磁盘都记忆一个目录,操作一个文件时,如果没指明目录,则自动到DOS记忆的这个目录中去找,该目录被称为“当前目录”,DOS启动后系统默认的当前目录是根目录。当前盘是可以改变的,如C:A:,则A盘变为当前盘;当前的目录也是可以改变的,如C:CD UCDOS 则UCDOS子目录变为当前目录。目录名的命名规则与文件命名规则相同,但DOS允许用一个小圆点“.”表示当前目录,如C:COPY.A:(注意小圆点的左右都有空格)表示把当前目录下的所有文件拷贝到A盘;用两个并排的小圆点“.”表示当前目录的父目录,如C:CD.,表示当前目录的父目录被置为当前目录。路径及文件标识。所谓路径是指从根目录或当前目录到指定的目录或文件所要经过的路线的描述。依次所经过的各个目录之间要用反斜杠”隔开。对路径的描述方法有两种:绝对路径和相对路径。从根目录开始的路径,称为绝对路径;从当前目录开始的路径,称为相对路径。假如当前目录为子目录1,则:绝对路径为:子目录1子目录3子目录4文件7相对路径为:子目录3子目录4文件7一个完整的文件标识应由三部分组成:盘符路径 DOS命令的一般格式:参数例1:type c:tcexam1.c 显示C盘tc子目录下的名为exam1.c的C源文件内容。例2:copy a:user*.doc c:把A盘根目录下user子目录下所有的.doc文件拷贝到C盘当前目录下。微型机的应用软件所谓的应用软件是指在系统软件的支持下,为解决各类实际问题,针对用户需要而设计的通用或专用程序。通用型:word、excel、各种绘图及动画制作软件,各种开发工具软件等。专业型:某单位的工资管理程序,学校的选课系统、排课系统等。第三节 计算机中数据的表示及存储形式因为计算机只能识别和处理二进制信息,所以计算机内部处理的数据都是二进制的。一、数的位置计数法及进制的概念不同进制有共同的特点:逢进制(或称基数)进位;X进制的数有0X-1共X个数码;数的值不仅仅取决于数码的大小,还取决于它所在的位置。1、数制的基本概念(1)进位计数制:按进位的原则进行计数,称为进位计数制。在日常生活中,我们会遇到不同进制的数。例如:一周七天,逢七进一;一小时60分钟,逢六十进一等。我们用的最多的是十进制数,而计算机中使用的是二进制数。(2)基数:在进位计数制中每个数位上允许使用数码的个数是基数。例如:十进制数,基数是10;十六进制数,基数是16;八进制数,基数是8;二进制数,基数是2。(3)权:以基数为底,数码所在位置的序号为指数的整数次冥(整数部分个位的位置序号为0),称为这个数码的权。例如:(28.6)10是十进制数,基数是10,其中2的权是101,8的权是100,6的权是10-1。2、常用数制(1)二进制数:以2为基数,以0、1作数字符号,按逢二进一规则来计数,约定在数据后加上字母“B”表示十进制数据。(2)八进制数:以8为基数,以0、1、2、3、4、5、6、7作数字符号,按逢八进一规则来计数,约定在数据后加上字母“Q”表示十进制数据。(3)十进制数:以10为基数,以0、1、2、3、4、5、6、7、8、9作数字符号,按逢十进一规则来计数,约定在数据后加上字母“D”表示十进制数据。(4)十六进制数:以16为基数,以0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F作数字符号,按逢十六进一规则来计数,约定在数据后加上字母“H”表示十六进制数据。20133、各种数制之间的转换(1)非十进制数转换为十进制数非十进制数转换为十进制数只需要将非十进制数各位按位权展开求和即可。例1:分别将(1110.1)2、(1110.1)8、(1110.1)16 转换为十进制数(1110.1)2=123+122+121+020+12-1=(14.5)10(1110.1)8=183+182+181+080+18-1=(584.125)10 (1110.1)16=1163+1162+1161+0160+116-1=(4368.0625)10 2013(2)十进制数转换为二进制数十进制数转换为二进制数分整数部分和小数部分分别处理。整数部分:除2取余,直至商为0;将取出的余数序列倒序排列,得到二进制整数。小数部分:乘2取整,直至小数部分为0或取得相应的有效位数;取出的整数序列顺序排列,得到二进制小数。2013例2:将十进制数56.875转换为二进制数。2013(3)十进制数转换为八进制数十进制数转换为八进制数分整数部分和小数部分分别处理。以下只说明整数部分的转换。整数部分:除8取余,直至商为0;将取出的余数序列倒序排列,得到八进制整数。例3:将十进制数267转换为八进制数。2013(4)十进制数转换为十六进制数十进制数转换为十六进制数分整数部分和小数部分分别处理。以下只说明整数部分的转换。整数部分:除16取余,直至商为0;取出的余数序列倒序排列,得到十六进制整数。例4:将十进制数938转换为十六进制。2013(5)二进制数与八进制数的相互转换二进制数转换为八进制数,只需以小数点为界,整数部分从小数点开始向左每三位一组,不足三位在左边以0补足三位,小数部分从小数点开始向右每三位一组,不足三位在右边以0补足三位,然后将每组二进制转为相应的八进制数。八进制数转换为二进制数,只需将每位八进制数转换为相应的三位二进制数。例5:将11010000101.1111B转换为八进制数,将563.4Q转换为二进制数。2013(6)二进制数与十六进制数的相互转换二进制数转换为十六进制数,只需以小数点为界,整数部分从小数点开始向左每四位一组,不足四位在左边以0补足四位,小数部分从小数点开始向右每四位一组,不足四位在右边以0补足四位,然后将每组二进制转为相应的十六进制数。十六进制数转换为二进制数,只需将每位十六进制数转换为相应的四位二进制数。2013例6:将101001110001.0011B转换为十六进制数,将4F0.3H转换为二进制数。转换过程如图1-21所示。2013练习:1计算机硬件系统的组成和功能。2将二进制数(11011101)2转换成十进制数。3将八进制数(334)8转换成十进制数。4将十六进制数(DA)16转换成十进制数。5将十进制数100转换成二进制数、八进制数和十六进制数。6将二进制数(101110.011)2转换成八进制数和十六进制数。7存储400个2424点阵汉字字型所需的存储容量是多少?三、带符号数在计算机内部的表示(一)如何表示一个带符号数的符号数有正负之分,在计算机中怎样表示数的符号呢?通常,对于n位二进制数,将其最高位作为符号位,“0”表示正,“1”表示负。例如:设n=8 则A=+1011011 表示为01011011,B=-1011011表示为11011011。设n=16 则C=+1011011表示为0000000001011011,D=-1011011表示为1000000001011011。数的符号位连同该数值本身一起作为一个数称为机器数,机器数的二进制编码有原码、反码、补码三种。(二)关于机器数的原码、反码、补码在计算机内部存储的带符号数都是以补码形式存储,用补码形式进行运算的。1、原码符号位除外(0正1负),数值部分为该数绝对值的二进制用1个字节表示(12)原码=0000 1100(-12)原码=1000 1100用2个字节表示(12)原码=00000000 00001100(-12)原码=10000000 00001100 2、反码正数的反码与原码相同,负数的反码符号位不变,其余数位取反。(12)反码=0000 1100 (-12)反码=1111 00113、补码正数的补码与原码相同,负数的补码等于反码加1(12)补码=0000 1100(-12)补码=1111 0100正数:原码,反码,补码都相同负数:原码,符号位除外,数值部分为该数绝对 值的二进制反码=原码除符号位外求反补码=反码+1练习:1.十进制数-5在微机内的存储形式是A00000101 B10000101C11111010 D111110112.用一个字节表示十进制数-15的补码是 数值数据的编码1、定点数的表示定点整数的小数点位置约定在最低位后面有符号整数:最高位为符号位,0为正;1为负无符号整数:都是数值位,没有符号位。例:00100011100011118位有符号整数 3515(原码)8位无符号整数 351432、浮点数(实数)的表示(P15)浮点数由阶码和尾数两部分组成:例:20.59375转换成浮点数的二进制 10100.100111.010010011*24 S=0,E=127+4=131,M=010010011 0100 0001 1010 0100 1100 0000 0000 0000阶符阶符阶码阶码数符数符尾数尾数阶码部分阶码部分尾数部分尾数部分四、字符数据的编码字符数据也是计算机经常要处理的数据,如英文字符、标点符号、数字字符等在计算机内部存储时,也要给它们进行二进制编码。通常使用的字符编码是ASC编码。ASC码是用7位二进制数编码,它可以表示27=128个字符,每个字符的7位二进制编码排列次序为d6d5d4d3d2d1d0,d6是最高位,d0是最低位。而一个字符在计算机内是用一个字节(8位)来存储。一般情况下,最高位d7是0,在通信中需要奇偶校验时,这一位可用作奇偶校验位。十进制ASC码值是031和127共33个字符是不可显示的控制字符,其余95个字符是用于程序和命令中的可显示字符,这128个字符是标准的ASC字符,128255是IBM PC机扩展的图形符号。汉字也要用二进制来编码,由于汉字数量大,故在计算机内部采用二个字节对一个汉字进行编码,通常采用国际码。ASCII码考点:1、几个特殊字符的ASCII码 “0”,“a”,“A”2、在同一序列里ASCII码逐渐增加。字符比较大小时按其ASCII码大小进行。3、小写字母的ASCII码比大写字母的ASCII码大32计算机中数据存储单位1、位:一个二进制位,一个“1”,或者一个“0”。最小单位,英文名bit2、字节:八位为一个字节。英文名Byte,简写为B,1Byte=8bit3、千字节(KB):1 KB=1024Byte 4、兆字节(MB):1 MB=1024KB5、吉字节(GB):1 GB=1024MB第四节计算机程序与算法一、程序设计语言要计算机按人们预先安排好的步骤进行工作,就要解决人机交流问题,人们给计算机一系列的命令,计算机按给定的命令一步步地工作,这种命令就是人机交流的语言。称为程序设计语言。根据计算机基数发展的不同阶段和应用场合不同,程序设计语言可分为三类。机器语言以二进制指令代码表示的指令集合,是计算机能直接识别和执行的语言。用机器语言编写的程序进行效率高,占用内存少,但缺点是面向机器,因机而异,通用性差,而且程序不直观,编程、维护都很困难。汇编语言用助记符来表示指令的符号语言。每一条汇编指令和机器指令都有一一对应的关系,这些助记符通常是指令功能的英文缩写,所以编程容易,缺点是仍然面向机器、通用性差。用汇编语言编写的程序成为源程序,计算机不能直接识别和执行源程序,必须翻译成机器语言的目标程序后才能执行,这一翻译工作由“汇编程序”来完成,翻译的过程称为“汇编”。高级语言是一种接近于人们的自然语言与数学语言的程序设计语言,用高级语言编程简单,方便、直观、易读、不易出错。高级语言是面向过程的,它不依赖于机器,通用性好,用高级语言编写的程序在各种机型上均可运行。不过,用高级语言编写的源程序计算机室不能直接识别和执行的,必须将它翻译成机器语言目标程序才能执行,完成翻译工作的程序叫“编译程序”,翻译的过程称为“编译”。二、语言处理程序语言处理程序是系统软件的一种,它的作用是将源程序翻译成机器语言目标程序,汇编程序、编译程序均属于语言处理程序之列。高级语言翻译成机器语言的翻译方式有两种:一种叫编译方式,它是把整个源程序翻译成可执行的目标程序,再执行目标程序;另一种叫解释方式,它是对源程序一边解释一边执行,不形成目标程序。大多数的高级语言都采用编译方式,其翻译过程如下图。编译程序(事先放入计算机)高级语言源程序机器语言目标程序运行结果编译运行图:高级语言程序的编译过程三、程序设计的含义程序设计主要包含两重任务,首先是把要用计算机处理的实际问题抽象为数学模型,设计出解题步骤即所谓算法,然后用所选程序设计语言对所设计的算法编码,这就是编程,即实现算法,可以说程序是算法的具体实现。这是最简单的程序设计含义,对于大型的复杂的程序设计,还需考虑软件工程方法、开发软件的环境和工具、程序设计风格等。四、计算机算法的概念算法的含义算法是规则的非空有穷集,具体地说,算法是解某一特定类型问题的一组规则。例如求5!的算法如下:算法1:(1)1N;(2)N*2N;(3)N*3N;(4)N*4N;(5)N*5N;(6)输出N,结束。算法不是唯一的。算法2:(1)1N;(2)2I;(3)N*IN;(4)I+1I;(5)判断I5?是则转(6),否则转(3);(6)输出N,结束。当阶值很大的时候,算法2优于算法1。算法应具有以下五个性质:(1)算法应在有限步骤内结束。(2)组成算法的规则必须是清楚、准确、无误的,没有二义性。(3)有零个或多个输入,有一个或多个输出。(4)算法的每一步骤都应当有效地执行,并得到确定的结果。(5)算法应是一套描述规则所组成的准确完整的过程。算法的常用表示方法(1)用自然语言表示。汉语、英语等。(2)用流程图表示。算法可以用传统流程图、N-S图、PAD图等流程图来表示。五、结构化程序设计的思想和结构化流程图(一)结构化程序设计的思想1、使用顺序结构、选择结构、循环结构以及它们的组合来组织一个程序,各个结构之间只有一个入口一个出口,程序流程进入某一结构时只能从入口进入,从出口退出。2、采用自顶向下逐步求精的方法编写程序。依据这种思想编写出来的程序称为“结构化程序”,结构化程序可以使程序的结构清晰,容易阅读,容易维护,容易扩展。(二)结构化流程图(N-S图)N-S图不使用流程线,全部算法写在一个矩形框内。顺序结构其中A框与B框分别代表一个基本操作,如加、减、乘、除、打印等。两个或多个矩形组成一个顺序结构。选择结构它表示当条件P成立时,执行A操作;当条件P不成立时,执行B操作。AB顺序结构P成立不成立选择结构AB循环结构循环结构包括当型循环结构和直到型循环结构。(1)当型循环结构。它表示当条件P1满足时,执行操作A,执行完A后,再回去判断条件P1是否成立,若成立就再执行操作A,如此反复,直至条件P1不满足为止。(2)直到型循环结构。它表示先执行操作A,然后判断条件P2是否满足,若不满足,则去执行操作A,如此继续,直到条件P2不满足为止。比较(1)和(2),当型循环的特点是“先判后做”,直到型循环的特点是”先做后判“。当P1AA直到P2(a)(b)循环结构:(a)当型循环;(b)直到型循环(3)用N-S 图描述算法应用实例N-S图的每一种基本结构是一个矩形框,整个算法可以像搭积木一样堆成,从整体上看,任何一个程序都是由很多个基本结构顺序组成的,前一个结构的出口,是后一个结构的入口。例1:依次读入5个数,每输入一个数就打印该数的绝对值,打印完5个数后停止。例2:求 中的奇数项之和。1I当I0是否打印a打印-aI+1I1i0sum当i100打印输出sumi+2 isum+1 sum例2流程图例1流程图例3:求两整数的最大公约数和最小公倍数。输入a,bam,bnayTFTTFFxzyz输出maxzmaxymaxz max例4流程图
展开阅读全文