[计算机]合工大计算机学院 程序设计 01第一章 程序设计与C++语言初步ppt课件_第1页
[计算机]合工大计算机学院 程序设计 01第一章 程序设计与C++语言初步ppt课件_第2页
[计算机]合工大计算机学院 程序设计 01第一章 程序设计与C++语言初步ppt课件_第3页
[计算机]合工大计算机学院 程序设计 01第一章 程序设计与C++语言初步ppt课件_第4页
[计算机]合工大计算机学院 程序设计 01第一章 程序设计与C++语言初步ppt课件_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、第一章第一章 程序设计与C语言初步 算法、实体与程序 程序设计方法与程序设计语言 Backus-Naur范式 C+语言的程序构造 面向对象程序设计思维方式 概述n程序程序:完成一定功能的指令或语句序列n程序设计程序设计:编写计算机程序的活动n程序设计方法n程序设计语言n本课程以面向对象程序设计方法为核心,并选用C+程序设计语言为工具来介绍程序设计1.1 算法与程序n例例1.1.1: 求解最大公约数的欧几里德算法。步骤1:假如p b+v,那么令m=0,b=b并转向步骤2;否那么令m=m,b=b-m并终止。 步骤2:提示超额透支并终止。1.1.2 实体例例1.1.4: 银行账户实体。 实体:银行账

2、户。 属性:账号、户名、地址、密码、当前余额b、透支限额。 行为:1存款 输入:存款金额m和当前余额b。 输出:无。 步骤:令b=b+m并终止。 2取款 输入:取款金额m。 输出:已取金额m 。 步骤1:假如mb+v,那么令m=0并转向步骤2; 否那么令m=m,b=b-m并终止。 步骤2:提示超额透支并终止1.1.2 实体n1实体的概念:现实生活中的 客观事物人、动物、企业、部门等等 。n 2实体的特点:一个实体应有一个名字,应有描绘这个实体特征的数据状态,应有作用于这些实体上面的操作行为。1.1.3 程序程序n程序就是算法的计算机实现!程序就是算法的计算机实现!n用计算机程序来解决问题n数据

3、在计算机内部的表示n计算机只能识别和理解二进制数:0和1n所有由计算机处理的数据都必须表示为二进制数1.1.3 程序程序n void main int a, b, c; / a,b,c为变量,记录程序所需要的数据。 cina; /输入a cinb; /输入b c=a+b; /计算a+b的和并存于c中 coutc; /输出c的值即a+b的和 1.1.3 程序程序程序在计算机内部的表示n机器语言:二进制指令n汇编语言:用简单的符号表示二进制指令n高级语言n要把高级语言程序翻译成计算机能理解的机器语言n翻译n编译编译n解释解释1.1.4 程序设计程序设计程序设计:编写计算机程序的活动四方面的知识:n

4、应用领域知识n程序设计方法n程序设计语言n程序设计环境与工具1.2 程序设计的演变1.2.1早期的程序设计线性程序设计手工手工作坊式作坊式 BASIC程序程序 10 INPUT A,B 20 C=A+B 30 PRINT C1.2.1 构造化程序设计n采用三种根本构造:顺序、循环、选择分支顺序、循环、选择分支n单入口/单出口控制构造n以流程为主,围绕操作本身来设计1.2.1 构造化程序设计n构造化程序设计的主要思想:由三种根本控制构造组成程序n这三种构造的示意图如下:1.2.1 构造化程序设计1.2.1 构造化程序设计可以看到可以看到,三种根本构造都具有以下特点三种根本构造都具有以下特点: 有

5、一个入口。 有一个出口。 构造中每一部分都应当有被执行到的时机,也就是说,每一部分都应当有一条从入口到出口的途径通过它至少通过一次。 没有死循环无终止的循环。1.2.3 面向对象程序设计围绕被操作的数据来设计1实体:现实生活中的客观事物人、动物、企业、部门等等。一个实体应 有一个名字,应有描绘这个实体特征的数据状态,应有作用于这些实体上面的操作行为。2对象:面向对象方法中的对象,是系统中用来描绘客观事物的一个实体,它是用 于构成系统的一个根本单位。nC+使用类类来描绘对象1.3 程序设计语言的定义程序设计语言的定义1.3.1 语法和语义n语法语法syntax:由程序语言根本符号组成程序中各个语

6、法成分的一组规那么。n语义语义semantics:程序设计语言中按语法规那么构成的各个语法成分的意义 。1.3.2 字符集n字符集字符集:任何一种语言都是建立在某一个有限的字符集上的。C+语言使用的是ASCII字符集。n单词单词:由字符集中的假设干字符构成且具有某一特定含义的字符序列。n保存字保存字:有些语言中预先规定一些单词具有特殊的意义,并保存其名字,不允许程序员另作它用,这种单词被称为保存字。n关键字关键字:还有些语言规定一些特殊单词在一定的上下文中具有预先定义的特殊意义,这种单词被称为关键字。注意注意nC/C是大小写字母是敏感的,同一字母的大写状态和小写状态将视为26个不同字符。下划线

7、视为一个字母。1.3.3 Backus-Naur范式n形式化定义程序设计语言的语法一般包括一个明确定义的字符集和一组有限的规那么,这些规那么规定符号如何组成表达式、语义 和程序等形式。n 较常用的语法定义方法是Backus-Naur范式简写为BNF和语法图。1.3.3 Backus-Naur范式n元符号:元符号:BNF规定了一些符号作为描绘语法的机制,称作元符号,包括: := 表示“定义为。 | 表示“或者。 表示“任选,即方括号内的内容可以出现一次或不出现。 表示“重复,即花括号内的内容可以出现零次或任意屡次。n终结符号:终结符号:BNF中不必定义的符号或字符串,如A、B、0、1等n非终结符

8、号:非终结符号:在用法规那么中需要加以定义的语法变量,如字母、数字、标识符等1.3.3 Backus-Naur范式每一个非终结符号都必须有一个规那么定义它,每一个非终结符号都必须有一个规那么定义它,非终结符号按规那么总是可以展开为一串终结非终结符号按规那么总是可以展开为一串终结符号。符号。例:标识符的BNF描绘。标识符 :=字母 字母 | 数字 字母 := A | B | | Z | a | b | | z | _数字 := 0 | 1 | | 9 1.3.3 Backus-Naur范式整数的BNF描绘整数 :=正负号 无符号整数无符号整数 := 数字 数字 正负号 :=+ | -数字 :=0

9、 | 1 | | 9 1.3.4 语法图n语法图是与BNF等价的另一种语法描绘方法,但比BNF更加直观。n一条BNF可转换成一个语法图1.3.4 语法图nBNF转换为语法图的规那么n1 每一个终结符号的出现对应于 n2 每一个非终结符号X的出现对应于 X n3 形如P := V1 V2 Vk那么转换为 V1V2 Vk n4形如P := V1 | V2 | | Vk那么转换为V1 V2 Vk n5 形如P := V 那么转换为 V n6 形如P := V 那么转换为 V1.3.4 语法图例:标识符可用以下语法图来定义 字母 字母 数字1.4 C C语言的程序构造语言的程序构造1.4.1 C+语言

10、程序的组成n程序程序:一个程序是实体的属性及行为在计算机内的表示。n类类:是对一群具有一样属性,表现一样行为的对象的描绘 。n对象对象:详细的单个存在的实体。n主函数主函数:具有特定名字“main函数,由它去激活调用一个对象的行为函数 。1.4.2. C+语言程序的根本构造n例1:一个很特殊的例子-只有一个主函数 #include void main coutComputer Science.n; 注意:nC+语言程序中有一个特殊的函数,称为主函数主函数main ,这是程序执行的入口,用于实现单入口/单出口构造。n一个一个C+语言程序有且只有一个主函数语言程序有且只有一个主函数/银行帐户存取款

11、程序#include /利用函数库iostream提供的操作在屏幕上输出数据class ACCOUNT float balance; /本帐户当前的余额public: /开设帐户,同时存入金额amount. ACCOUNTfloat amount balance=amount; /往帐户中存款,存款金额为amount. void depositfloat amount balance=balance+amount; 例2:一个带有类完好的C+语言程序。/从帐户中取款,取款金额为amount;假如取款成功那么用1表示,否那么用0表示。 int withdrawfloat amount ifamo

12、untbalance /判断是否透支 return 0; /假如透支那么不作取款,返回0表示取款不成功 else balance=balance-amount; /减少当前的存款余额 return 1; /返回1表示取款成功 /查询帐户中当前的余额。 float get_balance return balance; /返回当前的余额 ;/主函数main /开设帐户 ACCOUNT acc1500; /开设第一个帐户acc1,同时存入500元 ACCOUNT acc21500;/开设第二个帐户acc2,同时存入1500元 /存款与取款 acc1.deposit255.5; /往帐户acc1中存

13、入255.5元 acc2.deposit500; /往帐户acc2中存入500元 acc2.withdraw700; /往帐户acc2中取出700元 acc1.withdraw700; /往帐户acc1中取出700元 acc2.withdraw350; /往帐户acc2中取出350元 /查询余额并在屏幕上显示 cout帐号1的余额还有acc1.get_balance元n; cout帐号2的余额还有acc2.get_balance元n; return 1; n由一个主函数,加上0个或者假设干个其它函数、0个或假设干个其它的类组成。n程序的执行总是从主函数开场,而不管主函数放在程序的任何位置; n

14、由主函数调用其它函数类的行为、主函数执行完,程序也就执行完。归纳归纳C程序的根本构成:1.4.3 两种退化现象 n 1只有函数,没有类。除主函数外,还可能有一些游离的函数,这些游离的函数不属于任何类。 n只有函数,没有类的C程序。 #include /利用该库将数据输出到屏幕 int main cout矩形的面积是78*42balance return 0; else balance=balance-amount; return 1; float get_balance return balance; ;1.5 C+语言程序n源程序源代码n用程序设计语言编写的程序存放在一个文本文件中。n后缀为 .cppn目的程序目的代码n用编译程序将源程序转换为计算机能理解的形式n后缀为 .objn可执行代码n把目的代码和现有的库通过链接程序产生可执行代码n后缀为 .exe1.5 C+语言程序开发一个C+程序的过程源程序源程序目标程序目标程序可执行代码可执行代码库库编译程序链接程序.cpp.hpp.obj.exe1.编辑编辑 2.编译编译 3.链接链接 4.运行运行1.

温馨提示

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

评论

0/150

提交评论