资源描述:
《C语言课件-第3章算法和基本程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、主要内容:算法的表示方法、C程序的基本结构和输入输出。3.1算法算法:是解决问题的一系列操作步骤的集合。科学家沃思(NikiklausWirth)提出一个公式:数据结构+算法=程序数据结构:对数据(操作对象)的描述。算法:对操作步骤的描述。编写程序的本质:对哪些数据进行什么样的一系列加工就可以达到目标。第3章算法和基本程序设计例:依次读入30个学生成绩,输出平均成绩及最高成绩算法:s1:0=>i,0=>sum,0=>maxs2:读入一个学生成绩存入scores3:i+1=>is4;sum+score=>sums5:如果score大于max,则score=>m
2、axs6:如果i小于30,转移至s2s7:sum/30=>averages8:打印average,maxs2,s3,s4,s5,s6这些步骤会被重复执行30次,变量i用于统计已处理的学生人数当i值小于30时,流程转至s2读下一个学生成绩当i值等于30时,所有学生成绩处理完毕,按顺序到s7计算平均成绩,再到s8输出结果。算法举例算法是解决问题逻辑思路的表述,同一问题有不同的解题方法和步骤,设计出不同的算法。正确的算法应该具备以下特性。有穷性:包含有限的操作步骤,不能无限制地执行下去。确定性:算法中所描述的每个步骤都应该是明确的有0—n个输入数据:输入是指在算法
3、执行过程中需要用户输入的信息。有1—n个输出数据:一般地,算法都有一个或多个输出数据,因为设计算法的目的就是进行数值运算或进行某种数据处理,给用户输出处理结果是必然的要求。有效性:在一个算法中,要求每个步骤都能被有效地执行算法的特性算法的表示算法可用自然语言将其表述,但自然语言不严格,容易出现“二义性”。当算法包含多个分支和循环时,自然语言表述就更为困难。可采用更规范化的方法表示,常用的有:流程图、N-S图、伪代码、PAD图等。流程图是最常用的一种方法。它用图形符号配合文字表示流程和操作,形象直观,易于理解。起止框I/O框判断框处理框流程线连接点例:求三个整
4、数的和流程图开始输出sum的值结束输入x,y,zsum=x+y+zmain(){floatx,y,z,sum;scanf(“%f%f%f”,&x,&y,&z);sum=x+y+z;printf(“sum=%f”,sum);}例2:求三个数中最小数流程图开始输出min的值输入a,b,camain(){inta,b,c,min;scanf("%d%d%d",&a,&b,&c);if(a5、"min=%d",min);}例:求三个数中最小数。流程图开始输出min的值输入a,b,ca6、,经过有限次复合和嵌套就可以解决程序设计的全部问题。程序结构清晰可读性好,易维护。顺序结构、选择结构、循环结构1.顺序结构先执行A,再执行B.AB2.选择结构ABPYN若P为真,则执行A,否则执行B。APNY若P为真,则执行A,否则跳过A。3.循环结构(1)当型循环当P为真,反复执行A,P为假时出循环。(2)直到型循环先执行A,再判断,若P为假,反复执行A,直到P为真出循环。PNYAAPNYx<5另外:由选择结构可以派生出多分支结构.K=K1A1A2AiAn……K2KiKnC程序是由语句组成,每个语句以分号结束。语句分类:①控制语句:控制程序执行流程②表达式
7、语句③函数调用语句:调用函数④空语句:执行空操作⑤复合语句:执行一组语句用{}把一些语句括起来,相当于一个语句如:{x1=-(-b+sqrt(d))/(2*a);x2=-(-b-sqrt(d))/(2*a);}3.4顺序结构程序设计输入:将数据送入计算机输出:将计算机处理的结果数据送出到输出设备。◆C语言中,数据输入/输出是由库函数完成。◆使用库函数时,用预编译命令将有关“头文件”包括到源文件中。◆标准输入输出库函数:“stdio.h”文件◆源文件开头应有以下预编译命令:#include#include"stdio.h"3.5数据的输入输出
8、格式:putchar(c)参数:c为字符常量、变量或