文档介绍:C语言
第1章程序设计基础
学****目标
了解算法的概念和特性,掌握一种流程图的画法
了解程序设计及结构化程序设计方法
掌握C语言程序的构成及书写风格,对C语言程序有一个初步了解
计算机是20世纪最大的发明,它的出现和飞速发展对社会的各个领域都产生了深远的影响,已被广泛地应用到各行各业。使用计算机语言开发应用程序,解决实际问题是科学技术人员应具备的能力。
为了有效地进行程序设计,编写质量高、易读性好的程序,至少应掌握以下三个方面的知识:
(1)掌握一门高级语言
(2)掌握解题的方法和步骤即算法设计,它是程序设计的核心
(3)掌握结构化程序的设计方法
算法及表示
为了解决一个问题而采取的方法和步骤称为算法。
一个程序应包括以下两方面的内容:
(1)数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构。
(2)对数据操作的描述。即操作步骤,也就是算法。
算法的特性
算法须具备如下5个特性:
(1)有穷性
一个算法必须总是在执行有限个操作步骤和可以接受的时间内完成其执行过程。
(2)确定性
算法的每一步操作都必须有确切的含义,不允许有二义性;对于相同的输入数据则应有相同的输出结果。
(3)输入
有零个或多个输入,即执行算法时需要从外界取得要处理的信息。
(4)输出
有一个或多个输出,输出结果。
(5)可行性
算法中的操作都是可以通过已经实现的基本运算执行有限次来完成。
算法的表示
算法可以使用各种不同的方法来描述。常见的算法表示方法有:自然语言、伪码、传统流程图、N-S结构图等。
自然语言就是人们日常使用的语言,可以是中文、英文等。
【例1-1】求即1+2+3+4+5用自然语言表示算法。
第1步;将1存放到变量sum中,即sum=1;
第2步:将2存放到变量k中,即k=2;
第3步:计算sum+k,并将结果存放到sum中,即sum= sum+k;
第4步:将k的值增加1,即k=k+1;
第5步:判断k是否大于5,若k≤5,再执行第3~5步;若k>5,算法结束,此时变量sum的值就是最后的结果。
此算法不仅可以计算,还可以计算,只不过要将第5步改为判断k是否大于100。
用自然语言表示的算法简单、通俗易懂,但文字冗长,表达上不易准确,易有二义性,所以一般不用自然语言描述算法。
在算法设计时,常用流程图表示算法。
传统流程图是用规定的一组图形符号、流程线和文字说明来表示各种操作的算法。如表1-1所示。
表1-1传统流程图常用符号
符号
符号名称
含义
起止框
表示算法的开始和结束
输入/输出框
表示输入/输出操作
处理框
表示对框内的内容进行处理
判断框
表示对框内的条件进行判断
流程线
表示流程的方向
连接点
表示两个具有同一标记的“连接点”应连接成一个点
用传统流程图表示算法直观形象,算法的逻辑流程一目了然,便于理解,但画起来比较麻烦,且由于允许使用流程线,使用者可以随心所欲,使流程可以任意转移,从而造成阅读和修改上的困难。
为克服上述弊病,提出了结构化的程序设计方法。在结构化的程序设计方法中,流程图只包括三种基本程序结构:
(1)顺序结构
顺序结构是结构化程序设计中最简单的结构,它由若干条简单语句组成,完全按照语句排列顺序执行。顺序结构有一个入口和一个出口,中间可以包含若干个操作。顺序结构的流程图如图1-2所示,该图表示先执行处理过程A,然后再顺序执行处理过程B。
图1- 1 两个数由小到大输出
(2)选择结构
图1-3选择结构条件处理B处理A
分支结构又称选择结构,它由一个条件和两组语句组成,执行时根据条件的真假来选择执行的分支。它有一个入口和两个出口。选择结构的流程图如图1-3所示,当判断条件成立时,执行处理过程A,否则执行处理过程B。
(3)循环结构
循环结构是根据一定的条件,对某些语句重复执行的结构,被重复执行的部分称为循环体。循环结构由两部分组成,一是循环条件,二是循环体。是否执行循环体由循环条件决定。根据对循环条件判断位置的不同,循环结构又分为当型循环和直到型循环两种。
①当型循环
当型循环是先判断循环条件。如果条件满足,执行一次循环体;如果条件不满足,退出循环结构。在当型循环结构中,当判断条件成立时,就反复执行处理过程A(循环体),直到条件不成立时结束。当型循环结构的流程图如图l-4所示。