版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第1章 程序设计基础知识,主要内容: 1、程序设计概述(理解) 程序、程序设计语言的概念 程序设计的一般过程 如何学习程序设计 2、算法(熟悉) 3、结构化程序设计方法(了解),1.1 程序设计概述,一、概念: 1、程序:程序是为解决某一问题而编写的语句序列。通俗的说,将解决一个实际问题的具体操作步骤用某种计算机语言描述出来,就形成了程序。,例如:判断输入的任意整数n能否被3整除,程序如下: main() int n; printf(n enter a integer:); scanf(%d, ,2、程序设计语言:即计算机语言 分类: 机器语言:用计算机能直接理解和执行的“0”和“1” 表示各
2、种操作的程序设计语言,很难使用。 汇编语言:用助记符号来表示各个基本操作的程序设计语言 ,如 add r1, 4 高级语言:用接近自然语言和数学语言的语法符号描述基本操作的程序设计语言 本课程主要介绍:CC+VC+ C# 系列中的基础部分:标准C,然后引入C+的基础知识。,二、程序设计的一般过程,用计算机解决问题的基本过程如图1.1所示: 对于简单问题,前三步可看作一步,即分析问题、设计算法。,程序设计的基本过程,(1)分析要解决的问题,明确任务。 即分析要处理的数据是什么,从哪里来,作怎样的处理,结果送往那里。 例如:求学生的平均成绩。 分析该问题,明确它有三项功能: 输入学生成绩、求平均成
3、绩、输出结果; 要处理的原始数据为:学生的成绩; 要进行的处理为:求平均; 结果为:平均值,送屏幕显示或保存于文件中。,(2)分析问题,建立数学模型,并选择合适的解决方案 例如:分析求平均成绩的处理过程,可以将数据的具体含义去掉,抽象为:计算一批数据的平均值。 (3)确定数据结构和算法 :数据结构及数据的组织方式,算法是对数据处理过程的具体描述。不同的数据结构对应不同的算法。 例如:有一堆盒子,上面有编号(设编号为两为数字),要查找某个编号的盒子,如何实现? 方法1:若该堆盒子已排成一队,则可以从第一个开始逐个比较,直至找到或找完为止。 方法2:若该堆盒子已按编号排成多队,每一队的高位数字相同
4、,则可以根据要找的盒子的高位直接确定他在那一队,然后在该队中再逐个查找。 由此可见,只有线确定了数据结构,才能设计相应的算法。,(4)编码:即编写程序 。 用某种计算机语言将上一步设计好的算法描述出来,就是程序。 可见,算法是编程的基础。 (5)调试程序:将源程序送入计算机,进行排错、试运行,调试的结果是得到一个能正确运行的程序。 通常,调试程序至少占整个程序设计工作量的一半。 (6)整理资料,交付使用,三、学习程序设计的方法,1、一讲、二练、三考 2、多读源程序、多编写程序、多上机调试 3、忌上课只听不记、忌“纸上谈兵”、忌课下不练习 具体要求: 1、上课有重点、有选择的记 2、上机有准备:
5、准备好课本、笔记、作业等 3、除课后习题必须全部解决外,多做一些二级考试的模拟题 4、做一个自己感兴趣的完整的程序(小项目),1.2 算法及其描述,一、算法: 对解决某一特定问题的操作步骤的具体描述。 广义的说,算法就是为解决一个问题而采取的方法和步骤。 程序算法十数据结构 就是说:“程序是在数据的特定的组织方式的基础上,对抽象算法的具体描述”。作为程序设计人员,在设计算法前,必须认真考虑和设计数据的组织方式,即数据结构;然后针对具体的数据结构设计相应的操作步骤,即算法。,二、算法的描述,描述算法的方法有多种,常用有: 自然语言(描述不够严格,限于简单问题) 流程图* (同一问题的流程图不唯一
6、) N-S 图* (结构清晰,但难于修改) PAD图 (结构清晰,唯一性好) 伪代码* (灵活,但需要有一定的程序设计基础) 学习建议: 流程图或N-S图一定要熟练掌握,伪代码表示法在学习完基本的流程控制语句后也经常使用。,1、用自然语言描述,例1. 1 计算任意长方形的面积。 分析: 要实现的功能有: 输入长和宽,计算面积,输出结果。 先定义数据结构:程序中要处理的数据有三个,即长、宽、面积,设分别用实型变量length、width、area表示。则算法如下: 输入长和宽分别存入length, width 计算面积:lengthwidth = area 输出结果area,例1. 2 计算s1
7、+s2+s3+s4+s5(其中si表示第i个数)。 分析:要实现的功能是“加法运算”,要输入的数据是s1s5,对其进行的运算是“加”,结果是“累加和”,并输出。 先定义数据结构: 设变量 s 表示累计和,初值为0; 变量 x 表示每次要处理的数据(s1s5中的一个); 变量 i 表示要处理第几个数(其取值范围可以是:15),设初值为1。,例1.2算法,根据以上定义,算法设计如下: S1: 赋初值 0=s S2: 赋初值 1=i S3: 输入第i个数x S4: 累加:s+x=s S5: 计数增值:i+1=i S6: 若i5,表示数据还未处理完,返回 S3 继续重复S3、S4、S5;否则,计算结束
8、,执行S7。 S7:输出结果 s。,例1. 4 判断任意整数是奇数还是偶数。 分析:设整型变量 n 表示要处理的整数, 则算法为: 首先输入n, 然后判断条件“n%2等于0”(%是求余运算符)是否成立, 若条件成立,则输出“n是偶数”; 否则输出“n是奇数”。,2、用流程图表示算法,流程图是用几种图形、箭头线和文字说明来表示算法的框图。 流程图中规定使用的符号如图1.2所示 用流程图的优点是:直观形象、易于理解,能将设计者的思路清楚地表达出来,便于以后检查修改和编程。,结构化的流程图:即一个流程图由三种基本结构(顺序、选择、循环结构)组成,这三种基本结构可以相互嵌套,组合成复杂的算法。,注:P
9、表示条件,A、B表示一个基本操作或一个基本结构。,例1. 3 计算长方形的面积(用流程图表示的算法如图1.4所示)。,例1. 4 判断任意整数是奇数还是偶数。,3. 用N-S图表示算法,用N-S图表示的三种基本结构,4. 伪代码表示的算法 熟悉:什么是伪代码?(自学),1.3 结构化程序设计,结构化程序设计思想包括两个方面的内容: 模块化设计和结构化编码 特点: 结构化的程序结构清晰,层次分明,便于程序员编写、阅读和修改,提高了程序的可靠性,保证了程序的高质量、高效率。 为了得到结构化的程序,必须强调程序设计的规范化,采用结构化的程序设计方法。,1. 模块化设计方法,自顶向下,逐步细化。(常用
10、) 其基本思想是:将一个复杂的大任务分解为若干个较小的任务,如果这些子任务还较复杂,再将其进行划分,直到每个任务都能很容易的实现其具体细节,然后“分而治之”,即分别实现各个小任务。这样,对一个大任务的处理就变成了对一个个小任务的实现,使问题变得相对简单了。 例学生管理系统。 自下而上,逐步积累。(不常用),例:学生管理系统。 ,2. 结构化编码,用结构化的程序设计语言(如C语言)正确地描述算法,就是结构化编码。 C语言中有直接描述三种基本结构和基本操作的语句,用这些语句将算法表示出来,就是C的源程序。,第2章 C语言概述,主要内容: C语言的特点(了解、自学) C语言程序的一般结构(熟练掌握)
11、 C源程序的上机调试步骤(熟练掌握),2.1 C语言的特点,1、语言简洁、紧凑 2、表达能力强 3、能直接访问物理地址 4、支持结构化程序设计 5、生成的目标代码质量高,程序执行效率高 6、可移植性好:可移植性指程序不加修改或稍加修改就可以从一种机器环境下移到另一种机器环境下运行 7、语法限制不严,程序设计自由度大 8、图形功能强,2.2 C源程序结构,例2.1 在屏幕上输出一句话。 main() /*函数头*/ /* 函数体*/ printf(“How are you?n”); 运行结果: How are you? 说明:该程序只包含一个函数(函数名为main),函数体内只有一个语句。,例2
12、. 2 已知圆的半径为6,计算圆的周长和面积。 main() /*说明三个实型变量,分别表示半径、周长和面积*/ float r, length, area; r=6; /*赋值:将6送给r*/ length=2*3.14*r; /*计算周长,结果送length*/ area=3.14*r*r; /*计算面积,结果送给area*/ /*输出周长、面积*/ printf(n length=%f, area=%fn, length, area); ,说明: *该程序只由一个main函数组成。 *main函数的函数体中可包含多个语句。 *根据语句的功能,该语句分为两类: 说明语句和可执行语句。 *注
13、释:/* */,例2.3 求 1+2+3+4+n. (其中n由用户输入)。 main() int n,s; printf(“ enter n:”); scanf(“%d”, /*返回和值*/,C源程序的一般结构小结:,一个完整的C语言程序一般包含以下4部分: (1)编译预处理命令 (2)全局变量及函数说明 (3)main()函数 (4)用户自定义函数,关于C源程序结构的说明,1.程序的基本组成单位是函数 一个程序可以由一个或多个函数组成。 函数有两类:库函数和用户自定义函数。 库函数是系统提供的,用户可直接调用,如求正弦的函数sin(),开平方函数sqrt()等。对于库函数中没有的功能,需要用
14、户自己编程实现,即自己定义函数。自定义函数的数目由程序的复杂程度决定。,2main函数 因为C程序总是从main函数开始执行,所以一个C语言源程序中只能有且仅有一个main函数。 该函数在程序中的位置任意: 可以在用户自定义的函数前面,也可以在后面,也可以在各个函数之间。,3 .函数的一般结构,C语言的函数由函数头和函数体两部分组成: 函数类型 函数名(形参表) 函数头 说明部分 可执行部分 函数体 其中,函数中必须的部分是: 函数名() 其中: 第一行为函数头,大括号内为函数体,参数根据实际情况可以没有,但括号不能省略。如: void line() printf(“-”); 特别提示:函数体
15、中,说明语句必须在所有可执行语句之前,4语句 根据语句的复杂程度,可将C语言中的语句分为简单语句和复合语句两大类。 简单语句:一般表示一个基本操作,以分号结束。 (其中分号是该语句的必要组成部分) 复合语句 :用花括号 括起来的一系列语句,该语句以“”开始,以“”结束,末尾不需加分号。,5源程序的书写格式 书写(或输入)源程序时,可以一行写一个语句,也可以一行写多个语句,还可以一个语句分几行写。 因为各语句之间是以分号或花括号间隔的。 通常,一行写一个语句,以保证程序结构清晰。 C语言中用“大括号对”即“ ”来表示程序的层次结构,6注释 程序中用/*/给出注释,注释中可以是任意的内容。 位置:
16、原则上,注释可以出现在程序中允许出现空格的位置;实际编程时,一般放在函数之前或语句之后。 作用:编译时注释被忽略,因此注释对程序的运行结果不起作用。使用注释的目的是提高程序的可读性,7C语言中,大小写字符不通用,如a和A表示两个不同的符号。 编程时,一般用小写字母,具有特殊意义的符号用大写,以示区别。 注意培养良好的编程风格,如加注释、大括号的对齐、适当的右缩等(参见P17例2.5),2 .3 C源程序的上机调试步骤,以Turbo C 2.0 环境为例,上机调试包括:编辑、编译、连接、运行 4步 1、编辑:包括源程序的输入、修改、存盘。 文件后缀为 .c 所用命令:File /New(新建) ,Save(存盘),Load(打开), EDIT(编辑
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- QC/T 1294-2026燃料电池发动机故障分类及处理方法
- T/SXJP 063-2023桃红葡萄酒
- T/SZAA 002-2024车身域控制器通用功率驱动装置测试规程
- T/DZJN 434-2025分布式调相机型式试验导则
- T/CI 1254-2025纯钛保温壶杯
- T/BZJK 27-2024疗养式养老服务基本规范
- T/COEMA 109S-2021LED显示屏 术语和定义
- AI在社会学中的应用
- 2025~2026学年安徽毫州市利辛县北师大版三年级下册数册末试卷【附答案】
- 2026学年山西省朔州市四年级语文期末提升素养提升题(附答案)详细答案和解析
- 全国大学生职业规划大赛《法学类》专业生涯发展展示
- JG/T 352-2017混凝土结构用成孔芯模
- DB34T 2182-2025水利工程白蚁防治技术规程
- 2025年江西九江长途汽车运输集团有限公司招聘笔试参考题库含答案解析
- 《矿井运输和提升》课件
- 护士实习申请书
- 2024年国网调控专业安规习题库(含答案)
- 工程热力学知到智慧树章节测试课后答案2024年秋东北电力大学
- 沪教版九年级化学上册核心实验知识梳理
- NB∕T 33008.1-2018 电动汽车充电设备检验试验规范 第1部分:非车载充电机
- 交通运输部上海打捞局拖轮船队招聘笔试参考题库含答案解析2024
评论
0/150
提交评论