《【教学课件】第3章算法和基本程序设计.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第3章算法和基本程序设计.ppt(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第3 3章章 算法和基本程序设计算法和基本程序设计结构化程序设计和基本程序结构结构化程序设计和基本程序结构数据结构数据结构+算法算法=程序程序数据结构:数据结构:指对数据(操作对象)的描述。指对数据(操作对象)的描述。算法:算法:指对操作步骤的描述。指对操作步骤的描述。正确的算法应具有的特性正确的算法应具有的特性:1 1、有穷性、有穷性2 2、确定性、确定性3 3、有、有00n n个输入数据个输入数据4 4、有、有11n n个输出数据个输出数据5 5、有效性、有效性算法的表示形式:算法的表示形式:1 1、自然语言、自然语言 2 2、流程图、流程图3 3、N-SN-S图图4 4、伪代码、伪代码
2、5 5、PADPAD图图流程图流程图例:求三个整数的和例:求三个整数的和main()float x,y,z,sum;scanf(“%f,%f,%fn”,&x,&y,&z);sum=x+y+z;printf(“sum=%fn”,sum);例例2 2:求三个数中最小数:求三个数中最小数main()float a,b,c,min;scanf(“%f,%f,%fn”,&a,&b,&c);if(ac)min=c;printf(“min=%fn”,min);N-S图图完全去掉流程线,由一些基本完全去掉流程线,由一些基本框组成一个大的框基本元素框框组成一个大的框基本元素框例例1 1:求三个整数的和:求三个整
3、数的和流程图流程图N-SN-S图图例例2 2:求三个数中最小数:求三个数中最小数流程图流程图N-SN-S图图结构化程序设计结构化程序设计基本思想:基本思想:把一个复杂问题的求解过程分步进行,后一步在把一个复杂问题的求解过程分步进行,后一步在前一步的基础上细化,这样每步所考虑的子问题前一步的基础上细化,这样每步所考虑的子问题都相对易于理解和处理都相对易于理解和处理,每步都只用三种基本结构每步都只用三种基本结构进行复合和嵌套。进行复合和嵌套。也可以概括为:也可以概括为:自顶向下,逐步求精自顶向下,逐步求精的方法。的方法。基本程序结构基本程序结构三种:顺序结构、选择结构、循环结构三种:顺序结构、选择
4、结构、循环结构1.顺序结构顺序结构AB先执行先执行A A,再执行再执行B B.2.2.选择结构选择结构ABPYN若若P为真为真,则执行则执行A,否则执行否则执行B。APNY若若P为真为真,则执行则执行A,否则否则跳过跳过A。另外另外:由选择结构可以派生出由选择结构可以派生出多分支结构多分支结构。K=K1A1A2AiAnK2KiKn3.循环结构循环结构PNYA(1)(1)当型循环当型循环当当P P为真为真,反复执行反复执行A,A,P P为假时为假时出出循环。循环。APYN(2)(2)直到型直到型循环循环先执行先执行A,A,再判断再判断,若若P P为真为真,反复执行反复执行A,A,直到直到P P为
5、假为假出出循环循环。顺序结构程序设计顺序结构程序设计C C程序概述程序概述语句分类:语句分类:由语句组成,每个语句以由语句组成,每个语句以分号分号结束。结束。控制语句控制语句 表达式语句表达式语句 函数调用语句函数调用语句 空语句空语句 复合语句复合语句C中数据的输入输出中数据的输入输出输入:输入:将数据送入计算机。将数据送入计算机。输出:输出:将计算机处理的结果数据送出到输出设备。将计算机处理的结果数据送出到输出设备。说明:说明:1 1、语言中,数据输入输出是由、语言中,数据输入输出是由库函数库函数完成。完成。2 2、使用库函数时,用预编译命令将有关、使用库函数时,用预编译命令将有关“头文件
6、头文件”包括到源文件中。包括到源文件中。3 3、标准输入输出库函数:、标准输入输出库函数:“stdio.hstdio.h”文件文件4 4、源文件开头应有以下预编译命令:、源文件开头应有以下预编译命令:#include include 或或#include stdio.hinclude stdio.h 1.1.putchar putchar 函数函数(字符输出函数字符输出函数)字符数据的输入字符数据的输入/输出输出格式格式:putchar(c)putchar(c)参数参数:c c为字符常量、变量或表达式为字符常量、变量或表达式功能:功能:把字符把字符c c输出到显示器上输出到显示器上例:例:#i
7、nclude main()int c;char a;c=65;a=B;putchar(c);putchar(n);putchar(a);运行结果:运行结果:A B2 2、getchargetchar函数(字符输入函数)函数(字符输入函数)格式格式:getchar()getchar()功能:功能:从键盘读入一字符,从键盘读入一字符,遇回车结束并回显遇回车结束并回显例:例:#include main()char c;c=getchar();putchar(c);运行时运行时:a 结果结果 aagetchgetch函数函数格式格式:getch()getch()功能:功能:从键盘读入一字符,从键盘读入
8、一字符,不用回车结束,不回显不用回车结束,不回显例:例:#include main()char c;c=getch();putchar(c);运行时运行时:a 结果结果 agetchegetche函数函数格式格式:getche()getche()功能:功能:从键盘读入一字符,从键盘读入一字符,不用回车结束,回显不用回车结束,回显例:例:#include main()char c;c=getche();putchar(c);运行时运行时:a 结果结果 aa格式输入与输出格式输入与输出输出若干个任意类型的数据输出若干个任意类型的数据1 1、printfprintf函数(格式输出)函数(格式输出)格
9、式:格式:printf(“printf(“格式控制串格式控制串”,输出表,输出表)功能:功能:按指定格式向显示器输出数据按指定格式向显示器输出数据说明:说明:标准库函数,函数原型在头文件标准库函数,函数原型在头文件“stdio.h”stdio.h”中中格式控制串:格式控制串:格式说明:格式说明:普通字符或转义序列:普通字符或转义序列:%格式字符格式字符,用于指定输出格式用于指定输出格式原样输出原样输出输出表:输出表:要输出的数据要输出的数据(可以没有,多个时以可以没有,多个时以“,”“,”分隔分隔)格式字符格式字符1 1、%d d十进制格式十进制格式2 2、%o o八进制格式八进制格式3 3、
10、%x x十六进制格式十六进制格式4 4、%u u无符号的十进制格式无符号的十进制格式5 5、%c c一个字符格式一个字符格式6 6、%s s字符串格式字符串格式7 7、%f f实数格式实数格式8 8、%e e指数格式指数格式9 9、%g g2 2、scanfscanf函数(格式输入)函数(格式输入)格式格式:scanf(“格式控制串格式控制串”,地址表),地址表)功能:功能:按指定格式从键盘读入数据,存入地址表指按指定格式从键盘读入数据,存入地址表指 定的存储单元中定的存储单元中,按回车键结束按回车键结束说明:说明:标准库函数标准库函数,在头文件在头文件“stdio.h”中定义中定义格式控制串
11、:格式控制串:和格式输出函数的含义相同和格式输出函数的含义相同地址表:地址表:变量的地址,用取地址运算符变量的地址,用取地址运算符&例例 int a;scanf(“%d”,&a);输入:输入:10 则则 a=10关于格式输入函数的几点说明:关于格式输入函数的几点说明:1 1、输入数据时不能规定精度;、输入数据时不能规定精度;2 2、参数中、参数中“格式控制格式控制”之后应该是变量地址;之后应该是变量地址;3 3、如果在、如果在“格式控制格式控制”字符串中除了格式说明以外,字符串中除了格式说明以外,还有其他字符,则在输入数据时应输入与这些还有其他字符,则在输入数据时应输入与这些 字符相同的字符;
12、字符相同的字符;例:例:scanfscanf(”%7.2f”,&a”%7.2f”,&a););例例:scanfscanf(”%f”%f”,a a););例:例:scanfscanf(”a=%d”a=%d,b=%d”b=%d”,&a&a,&b&b););输入时应该是:输入时应该是:a=a=3 3,b=b=4 4 4 4、在用、在用“%“%c”c”格式输入字符时,空格字符和转义格式输入字符时,空格字符和转义 字符都作为有效的字符输入。字符都作为有效的字符输入。例:例:scanfscanf(”%d%d”%d%d”,&a&a,&b&b););输入时可为:输入时可为:3 4 3 4 3 4 3 4 3
13、3TabTab键键4 4 例:例:scanfscanf(”%c%c%c”%c%c%c”,&c1&c1,&c2&c2,&c3&c3););若输入时为:若输入时为:a b c a b c 则结果为:则结果为:c1=ac1=a,c2=c2=,c3=bc3=b5 5、doubledouble型数据输入时,必须用型数据输入时,必须用%lf%lf或或%le%le格式格式程序举例程序举例例例1 1、输入三角形边长,求面积。输入三角形边长,求面积。公式:公式:s=(a+b+c)/2;s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c);#include include#inclu
14、de#include main()main()float a,b,c,s,area;float a,b,c,s,area;printf(input a,b,c:);printf(input a,b,c:);scanf(%f,%f,%f,&a,&b,&c);scanf(%f,%f,%f,&a,&b,&c);s=(a+b+c)/2;s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c);area=sqrt(s*(s-a)*(s-b)*(s-c);printf(area=%7.2fn,area);printf(area=%7.2fn,area);input a,b,c:3
15、,4,6 area=5.33例例2 2、编写显示如下界面的程序、编写显示如下界面的程序:#include stdio.hmain()clrscr();printf(%sn,学生管理程序学生管理程序”);printf(%sn,Add追追加加数数据据 Modify修修改改数数据据”);printf(%sn,Delete删删除数据除数据 Print打印数据打印数据”);printf(%sn,Sort成成绩绩排序排序 Quit退出程序退出程序”);C程序上机的步骤程序上机的步骤C程序从开发到执行的过程程序从开发到执行的过程编辑源程序编辑源程序*.*.c c预处理预处理编译形成目标程序编译形成目标程序*
16、.*.objobj连接形成可执行程序连接形成可执行程序*.*.exeexe加载加载执行执行修改源程序修改源程序Y YN NY YN N 有语法错误吗?有语法错误吗?连接有错吗?连接有错吗?作作 业业1 1、编一程序,求两点之间的距离,已知直角坐标系、编一程序,求两点之间的距离,已知直角坐标系中求两点(中求两点(x1x1,y1y1)和(和(x2x2,y2y2)之间距离公式为:之间距离公式为:d=d=(x2-x1x2-x1)2 2+(y2-y1y2-y1)2 22 2、编一程序,将输入的摄氏温度转换为华氏温度和、编一程序,将输入的摄氏温度转换为华氏温度和 绝对温度。转换公式为:绝对温度。转换公式为:F=C+32F=C+32 K=273.16+C K=273.16+C5 59 9