《程序设计与C语言初步.ppt》由会员分享,可在线阅读,更多相关《程序设计与C语言初步.ppt(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第一章第一章程序设计与C语言初步算法、实体与程序程序设计方法与程序设计语言Backus-Naur范式C+语言的程序结构面向对象程序设计思维方式概述n程序程序:完成一定功能的指令或语句序列n程序设计程序设计:编写计算机程序的活动n程序设计方法n程序设计语言n本课程以面向对象程序设计方法为核心,并选用C+程序设计语言为工具来介绍程序设计一、算法与程序n例例:求解最大公约数的欧几里德算法。步骤1:如果pa;cinb;c=a+b;coutc;n这个程序实现的算法是:输入a输入b计算a+b的和并存于c中输出c的值(即a+b的和)a,b,c称为变量,是用来记录程序所需要的数据。程序在计算机内部的表示n机器
2、语言:二进制指令n汇编语言:用简单的符号表示二进制指令n高级语言n要把高级语言程序翻译成计算机能理解的机器语言n翻译n编译编译n解释解释二、程序设计的演变1.早期的程序设计手工作坊式手工作坊式2.结构化程序设计n采用三种基本结构:顺序、循环、选择分支顺序、循环、选择分支n单入口/单出口控制结构n以流程为主,围绕操作本身来设计3.面向对象程序设计n围绕被操作的数据来设计结构化程序设计n结构化程序设计的主要思想:由三种基本控制结构组成程序n这三种结构的示意图如下:可以看到,三种基本结构都具有以下特点:有一个入口。有一个出口。结构中每一部分都应当有被执行到的机会,也就是说,每一部分都应当有一条从入口
3、到出口的路径通过它(至少通过一次)。没有死循环(无终止的循环)。面向对象程序设计n1)实体:现实生活中的客观事物(人、动物、企业、部门等等)。一个实体应有一个名字,应有描述这个实体特征的数据(状态),应有作用于这些实体上面的操作(行为)。n2)对象:面向对象方法中的对象,是系统中用来描述客观事物的一个实体,它是用于构成系统的一个基本单位。nC+使用类类来描述对象三、C+语言程序n源程序(源代码)n用程序设计语言编写的程序存放在一个文本文件中。n后缀为.cppn目标程序(目标代码)n用编译程序将源程序转换为计算机能理解的形式n后缀为.objn可执行代码n把目标代码和现有的库通过链接程序产生可执行
4、代码n后缀为.exe开发一个C+程序的过程源程序源程序目标程序目标程序可执行代码可执行代码库库编译程序链接程序.cpp.hpp.obj.exe1.编辑编辑2.编译编译3.链接链接4.运行运行四、程序设计语言的定义程序设计语言的定义1.程序设计语言的描述n语法语法(syntax):由程序语言基本符号组成程序中各个语法成分的一组规则。n语义语义(semantics):程序设计语言中按语法规则构成的各个语法成分的意义。2.字符集n字符集字符集:任何一种语言都是建立在某一个有限的字符集上的。C+语言使用的是ASCII字符集。n单词单词:由字符集中的若干字符构成且具有某一特定含义的字符序列。n保留字保留
5、字:有些语言中预先规定一些单词具有特殊的意义,并保留其名字,不允许程序员另作它用,这种单词被称为保留字。n关键字关键字:还有些语言规定一些特殊单词在一定的上下文中具有预先定义的特殊意义,这种单词被称为关键字。注意注意nC/C是大小写字母是敏感的,同一字母的大写状态和小写状态将视为22个不同字符。下划线视为一个字母。3.语法描述n形式化定义程序设计语言的语法一般包括一个明确定义的字符集和一组有限的规则,这些规则规定符号如何组成表达式、语义和程序等形式。n较常用的语法定义方法是Backus-Naur范式(简写为BNF)和语法图。Backus-Naur范式(BNF)n元符号:元符号:BNF规定了一些
6、符号作为描述语法的机制,称作元符号,包括::=表示“定义为”。|表示“或者”。表示“任选”,即方括号内的内容可以出现一次或不出现。表示“重复”,即花括号内的内容可以出现零次或任意多次。n终结符号:终结符号:BNF中不必定义的符号或字符串,如A、B、0、1等n非终结符号:非终结符号:在用法规则中需要加以定义的语法变量,如字母、数字、标识符等每一个非终结符号都必须有一个规则定义它,非终结符号按规则总是可以展开为一串终结符号。例:标识符的BNF描述。标识符:=字母字母|数字字母:=A|B|Z|a|b|z|_数字:=0|1|9整数的BNF描述整数:=正负号无符号整数无符号整数:=数字数字正负号:=+|
7、-数字:=0|1|9非零数字非零数字:=1|9数字:=0|非零数字|0语法图n语法图是与BNF等价的另一种语法描述方法,但比BNF更加直观。n一条BNF可转换成一个语法图BNF转换为语法图的规则n(1)每一个终结符号的出现对应于n(2)每一个非终结符号X的出现对应于Xn(3)形如P:=V1V2Vk则转换为V1V2Vkn(4)形如P:=V1|V2|Vk则转换为V1V2Vkn(5)形如P:=V则转换为Vn(6)形如P:=V则转换为V例:标识符可用以下语法图来定义字母字母数字五、C C程序的基本结构程序的基本结构1.基本概念n程序程序:一个程序是实体的属性及行为在计算机内的表示。n类类:是对一群具有
8、相同属性,表现相同行为的对象的描述。n对象对象:具体的单个存在的实体。n主函数主函数:具有特定名字“main”函数,由它去激活(调用)一个对象的行为(函数)。2.C+程序的基本结构n例1:一个很特殊的例子-只有一个主函数#includevoidmain()coutComputerScience.n;注意:nC+语言程序中有一个特殊的函数,称为主函数主函数main(),这是程序执行的入口,用于实现单入口/单出口结构。n一个一个C语言程序有且只有一个主函数语言程序有且只有一个主函数/银行帐户存取款程序#include/利用函数库iostream提供的操作在屏幕上输出数据classACCOUNTfl
9、oatbalance;/本帐户当前的余额public:/开设帐户,同时存入金额amount.ACCOUNT(floatamount)balance=amount;/往帐户中存款,存款金额为amount.voiddeposit(floatamount)balance=balance+amount;例2:一个带有类完整的C+语言程序。/从帐户中取款,取款金额为amount;如果取款成功则用1表示,否则用0表示。intwithdraw(floatamount)if(amountbalance)/判断是否透支return0;/如果透支则不作取款,返回0表示取款不成功elsebalance=balanc
10、e-amount;/减少当前的存款余额return1;/返回1表示取款成功/查询帐户中当前的余额。floatget_balance()returnbalance;/返回当前的余额;/主函数main()/开设帐户ACCOUNTacc1(500);/开设第一个帐户acc1,同时存入500元ACCOUNTacc2(1500);/开设第二个帐户acc2,同时存入1500元/存款与取款acc1.deposit(255.5);/往帐户acc1中存入255.5元acc2.deposit(500);/往帐户acc2中存入500元acc2.withdraw(700);/往帐户acc2中取出700元acc1.wi
11、thdraw(700);/往帐户acc1中取出700元acc2.withdraw(350);/往帐户acc2中取出350元/查询余额并在屏幕上显示cout帐号1的余额还有acc1.get_balance()元n;cout帐号2的余额还有acc2.get_balance()元n;return1;n由一个主函数,加上0个或者若干个其它函数、0个或若干个其它的类组成。n程序的执行总是从主函数开始,而不管主函数放在程序的任何位置;n由主函数调用其它函数(类的行为)、主函数执行完,程序也就执行完。归纳归纳C程序的基本构成:3.两种退化现象n1)只有函数,没有类。除主函数外,还可能有一些游离的函数,这些游离的函数不属于任何类。n只有函数,没有类的C程序。#include/利用该库将数据输出到屏幕intmain()cout矩形的面积是”78*42balance)return0;elsebalance=balance-amount;return1;floatget_balance()returnbalance;
限制150内