第1章程序设计与C语言概述课件.ppt
《第1章程序设计与C语言概述课件.ppt》由会员分享,可在线阅读,更多相关《第1章程序设计与C语言概述课件.ppt(66页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第1章 程序设计与 C语言概述 1C C 语言程序设计语言程序设计 2023/1/621.1 程序与程序设计程序与程序设计1.2 程序设计语言程序设计语言1.3 C语言概述语言概述1.4 程序开发环境与程序调试程序开发环境与程序调试 本章主要内容本章主要内容1.1 程序与程序设计1.1.1 1.1.1 程序程序1.1.2 1.1.2 算法算法1.1.3 1.1.3 程序设计方法和风格程序设计方法和风格2023/1/63返回1.1.1 程序 程序是指存储在计算机内部存储器中可以连续执行的一条条指令的集合。著名计算机科学家沃思(Nikiklaus Wirth)提出一个公式:程序=数据结构+算法。即
2、一个程序应该包括两方面的内容:数据结构和算法。2023/1/641.1.1 程序 数据结构(data structure)是对数据的描述,在程序中要指定数据的类型和数据的组织形式。算法(algorithm)是对操作的描述,即操作步骤。是用来解决做什么和怎么做的问题。计算机算法可分为两大类:数值运算算法和非数值运算算法。2023/1/651.1.1 程序 设计一个程序时,除了考虑数据结构和算法这两个因素之外,还应当采用程序设计方法进行程序设计,并且考虑用一种语言来表示。因此,一个程序应该表示为:2023/1/66程序=数据结构+算法+程序设计方法+语言工具和环境1.1.2 算法 1算法概述 算法
3、是指为解决某个问题而采用的方法和步骤。这些步骤是按一定的顺序进行的,每个步骤不能缺少,它们之间的次序也不能颠倒。算法体现了人们解决某一类问题时的思维方法和过程,描述了人类解决某类问题所依据的规则和操作。2023/1/671.1.2 算法 计算机算法可分为两大类:数值运算算法和非数值运算算法。数值运算算法主要用于求解数值问题,如求函数值、求方程的根等。一般数值运算有现成的模型,可以运用数值分析方法,因此对数值运算的算法的研究比较深入,各种数值运算都有比较成熟的算法可供选用。非数值运算算法常用于事务管理领域,如人事管理、行车调度管理等。由于非数值运算要求各异,很难规范化,因此一般只对一些典型的非数
4、值运算算法作比较深入的研究。2023/1/681.1.2 算法2算法的特性v 有有穷穷性性:一个算法应包含有限的操作步骤,且每一步都可在有穷的时间内完成。v 确确定定性性:算法中每一个步骤必须有确切的含义,并且在任何条件下,算法只有惟一的一条执行路径,即对于相同的输入只能得出相同的输出。v 可可行行性性:一个算法是能行的,即算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现的。2023/1/691.1.2 算法v有有零零个个或或多多个个输输入入:这些输入取自于某个特定的对象的集合。v有有一一个个或或多多个个输输出出:这些输出是同输入有着某些特定关系的量,在一个完整的算法中至少会有一
5、个输出。2023/1/6101.1.2 算法3算法的描述方法 1966年,Bohra和jacopini证明了任何单入口单出口没有死循环的程序都可以由三种基本的控制结构构造出来。这三种基本结构就是顺序结构、选择结构和循环结构,它们作为表示一个良好算法的基本单元。2023/1/6111.1.2 算法 算法的表示方法很多,常用的有自然语言、传统流程图、N-S流程图、伪代码、计算机语言等。2023/1/6121.1.2 算法(1)用自然语言表示算法 自然语言就是人们日常使用的语言,可以是汉语、英语或其他语言。下面通过实例来说明用自然语言来描述三种基本结构的算法。2023/1/6131.1.2 算法【例
6、1-1】已知a的值是7,b的值是10,将a、b的值互换,互换后a的值为10、b的值为7,然后输出交换后a、b的值。步骤1:把7赋给变量a步骤2:把10赋给变量b步骤3:将变量a的值赋给变量c步骤4:将变量b的值赋给变量a步骤5:将变量c的值赋给变量b步骤6:输出变量a和变量b的值步骤7:算法结束。2023/1/6141.1.2 算法【例1-2】输出a、b两个不同数中的较大数。步骤1:输入a和b的值步骤2:判断a大于b否,如果a大于b,执行第3步,否则执行第4步步骤3:输出a的值步骤4:输出b的值步骤5:算法结束。2023/1/6151.1.2 算法【例1-3】求1+2+3+100。步骤1:使p
7、=1步骤2:使q=2步骤3:使p+q,和仍放在p中,可表示为 p+qp步骤4:使q的值加1,即q+1q。步骤5:如果q不大于100,返回重新执行步骤3、步骤4和步骤5。否则,算法结束。最后得到p的值就是1+2+3+100的和。2023/1/6161.1.2 算法(2)用流程图表示算法 流程图是用一些图框表示各种操作。美国国家标准化协会ANSI规定了一些常用的流程图符号,已为世界各国程序工作者普遍采用。流程图符号如图1-1所示。2023/1/617图1-11.1.2 算法【例1-4】已知a的值是7,b的值是10,将a、b的值互换,互换后a的值为10、b的值为7,然后输出交换后a、b的值。用流程图
8、表示算法。流程图如图1-2所示。2023/1/618图1-21.1.2 算法【例1-5】输出a、b两个不同数中的大数。用流程图表示算法。流程图如图1-3所示。2023/1/619图1-31.1.2 算法【例1-6】求1+2+3+100。算法用流程图表示。流程图如图1-4所示。2023/1/620图1-41.1.2 算法 用流程图表示算法直观形象,易于理解,不会产生“歧义性”。三种基本结构的共同特点:v只有一个入口v只有一个出口v结构内的每一部分都有机会被执行到v结构内不存在“死循环”2023/1/6211.1.2 算法(3)用N-S流程图表示算法 N-S流程图是美国学者I.Nassi和B.Sh
9、neiderman于1973年提出的一种新的流程图。N-S流程图的主要特点是取消了带箭头的流程线,全部算法写在一个矩形框内,在该框内还可以包含其他的从属于它的框。N-S流程图如同一个多层的盒子,又称盒图。2023/1/6221.1.2 算法图1-5表示顺序结构 图1-6表示选择结构 2023/1/623图1-5图1-61.1.2 算法图1-7表示当型循环结构 图1-8表示直到型循环结构 2023/1/624图1-7图1-81.1.2 算法已知a的值是7,b的值是10,将a、b的值互换,互换后a的值为10、b的值为7,然后输出交换后a、b的值。用N-S流程图表示算法。如图1-9所示。2023/1
10、/625图1-91.1.2 算法输出a、b两个不同数中的大数。用N-S流程图表示算法。如图1-10所示。2023/1/626图1-101.1.2 算法求1+2+3+100。用N-S流程图表示算法。如图1-11所示。2023/1/627图1-111.1.2 算法(4)用伪代码表示算法 伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法的。用伪代码表示算法时,可以用英文伪代码,也可以用汉字伪代码,还可以中英文混用。2023/1/628用伪代码写算法并无固定的、严格的语法规则,只要用清晰易读的形式把意思表达清楚即可。1.1.2 算法【例1-7】求1+2+3+100。用伪代码表示算法。BEG
11、IN(算法开始)1p2qwhile q=100p+qpq+1qprint pEND(算法结束)2023/1/6291.1.2 算法(5)用计算机语言表示算法 要完成一项工作,包括设计算法和实现算法两个部分。前面介绍的只是描述算法,计算机无法识别流程图和伪代码,只能识别并执行用计算机语言编写的程序,因此,用流程图或伪代码描述出一个算法后,还要将它转换成计算机语言程序。用计算机语言表示算法必须严格遵循所用语言的语法规则。下面用C语言表示一个算法。2023/1/6301.1.2 算法【例1-8】将变量a,b的值互置。用C语言表示。2023/1/631#include void main()int a
12、,b,c;/*定义a,b,c为整型变量*/a=7;/*给a赋以整数7*/b=10;/*给b赋以整数10*/c=a;/*把a的值赋给c*/a=b;b=c;printf(“a=%d,b=%dn”,a,b);/*输出变量a,b的值*/1.1.2 算法【例1-9】输出a,b两个不同数中的大数。用C语言表示算法。#include void main()int a,b,c;scanf(%d%d,&a,&b);if(ab)printf(%dn,a);else printf(%dn,b);2023/1/6321.1.2 算法【例1-10】求1+2+3+100)用C语言表示算法。#include void ma
13、in()int p,q;p=1;q=2;while(q=100)p=p+q;q=q+1;printf(1+2+3+100=%dn,p);2023/1/6331.1.3 程序设计方法和风格 程序设计(Programming)是指对提出的问题进行分析、确定数据模型、设计算法、编写源代码、调试并运行程序的方法和过程。按照结构性质,程序设计分为非结构化程序设计和结构化程序设计。非结构化的程序设计方法设计出来的程序无章可循,程序常常带有强烈的个人色彩。这样的程序可读性差,编写、调试和维护工作都十分困难。2023/1/6341.1.3 程序设计方法和风格 结构化程序设计强调从程序的结构上和风格上来研究程序
14、设计方法,提倡利用三种基本结构进行规范化程序设计,使程序具有良好的结构框架。用结构化程序设计方法得到的程序不仅在结构上良好、清晰易读易写,而且易维护、易排错、易验证正确性。在前面介绍的算法中,顺序、选择和循环就是结构化程序设计方法强调使用的三种基本结构。2023/1/6351.1.3 程序设计方法和风格 程序设计风格是指编写程序时表现出的特点、习惯和逻辑思路。良好的程序设计风格是程序质量的重要保证,因为良好的程序设计风格使程序结构清晰合理,便于阅读和维护,提高软件的开发效率。2023/1/6361.2 程序设计语言 程 序 设 计 语 言(Programming Language)就是计算机所
15、能识别的代码,计算机代码通常要能够向计算机描述清楚做什么,用什么做这两个问题,因此计算机代码的一般形式是:2023/1/637操作码 目的操作数 源操作数1.2 程序设计语言 程序设计语言按照语言级别可以分为低级程序设计语言和高级程序设计语言。低级程序设计语言提供的语句是计算机所能进行的基本操作,如:数据传送指令,算术运算指令,逻辑运算指令等。高级程序设计语言是接近于自然语言或数学语言的计算机语言。高级语言不再面向机器,而是面向解题的过程,因而又称为算法语言或称为过程语言。2023/1/6381.2 程序设计语言 对于计算机本身来说,它并不能直接识别由高级语言编写的程序,它只能接收和处理由0和
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 章程 设计 语言 概述 课件
限制150内