Removed_怎样表示一个算法3﹎.pdf





《Removed_怎样表示一个算法3﹎.pdf》由会员分享,可在线阅读,更多相关《Removed_怎样表示一个算法3﹎.pdf(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、怎样表示一个算法 对于算法的描述有很多种方法,如自然语言、流程图、计算机语言和伪代码等,其中 使用最广泛的是流程图。 第一章程序设计基础知识 1用自然语言表示算法 2. 传统的流程图 3N-S 流程图 例:键盘输入两个数,求出其中较大的并输出 三种基本结构 1.顺序结构 2.选择结构 3.循环结构 循环结构 算法的概念 一个程序应包括: 对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构(data structure) 。 对操作的描述。即操作步骤,也就是算法(algorithm ) 。 3+5 12-sin( /6) 数据: 3、5、12、 6 解题步骤: 1.计算sin(/
2、6) 2.计算 512 3.计算 3+60 4.计算 63+0.5 5.给出结果 算法的特性 算法是解决某一问题的方法和步骤。 程序实际上就是用计算机语言描述的算法。 一算法的特性和要素 1算法的特性: 有穷性 可行性 确定性 输入。一个算法可以有0 个或多个输入。 输出。一个算法必须产生一个或多个输出。 2算法的要素: 操作,即构成算法的操作取自哪个操作集。计算机操作主要包括:算术运算、关系运算、 逻辑运算、函数运算、位运算及I/O 操作等。 控制结构,即如何控制算法中的各操作的执行顺序。 例:键盘输入两个数,求出其中较大的并输出 三种基本结构 1.顺序结构 2.选择结构 3.循环结构 循环
3、结构 1.2 C 语言特点 (1)语言简洁、紧凑,使用方便、灵活。32 个关键字、 9 种控制语句 ,程序形式自由。 (2)运算符丰富。34 种运算符。 (3)数据类型丰富,具有现代语言的各种数据结构。 (4)具有结构化的控制语句,是完全模块化和结构化的语言。 (5)语法限制不太严格,程序设计自由度大 (6)C 语言允许直接访问物理地址,可以直接对硬件操作 (7)生成目标代码质量高,程序执行效率高 (8)程序可移植性好 32 个关键字 34 种运算符: 1.3 C 程序格式和结构特点 例 1.2 求圆的面积 main( ) float r,s ; /* 定义实数类型变量r,s*/ r = 2.
4、5 ; /*圆的半径值为2.5*/ s = 3.14159 * r * r ; /* 求圆的面积值s*/ printf (area is : %f n , s); /*输出圆的面积值*/ 程序运行结果是: area is :19.634937 格式特点 习惯用小写字母,大小写敏感 不使用行号,无程序行概念 可使用空行和空格 常用锯齿形书写格式 结构特点 函数与主函数 程序由一个或多个函数组成 必须有且只能有一个主函数main() 程序执行从main 开始,在main 中结束,其它函数通过嵌套调用得以执行。 函数的定义分为两部分:函数首部分和函数体。 float area (float r) 函
5、数首部 函数体的开始 float s ; 函数体的声明部分 s = 3.14159 * r * r ; 函数体的执行部分 return(s); 函数体的结束 程序语句: C 程序由语句组成,用“ ;”作为语句终止符 注释/* */为注释 1.4 运行 C 程序的步骤与方法 程序的调试 二、 VC 集成开发环境 1、编辑源程序(应用举例) 运行 VC+6.0 编辑源程序 保存源程序文件 新建文件 打开文件 退出 VC 2、编译生成目标程序 3、连接生成可执行程序 4、运行查看结果 第二章C 语言设计初步知识 2.1语言的数据类型 2.2 常量与变量 1.常量和符号常量 在程序执行过程中,其值不发
6、生改变的量称为常量。 整型常量: 12、0、-3; 实型常量: 4.6、-1.23; 字符常量: a 、 b 符号常量在使用之前必须先定义,其一般形式为:#define 标识符常量 例:符号常量的使用。 #define PRICE 30 main() int num,total; num=10; total=num* PRICE; printf(“ total=%d” ,total); 变量名的规定: 只能用字母、数字和下划线3 种字符组成,且第一个字符必须为字母或下划线。 注意:编译系统将大写字母和小写字母认为是两个不同的字符 习惯:符号常量名用大写,变量名用小写 2.3 整型数据 一、整型
7、常量的表示方法 1.十进制整常数:其数码为09 2.八进制整常数:前缀为0,数码取值为07 例: 015(十进制为13)、0101(十进制为65) 3.十六进制整常数:前缀为0X 或 0 x,其数码取值为09,AF 或 af 例: 0X2A( 十进制为42)、0XA0 ( 十进制为160) 课后复习:二、八、十、十六进制的转换 二、整型变量 1.整型数据在内存中的存放形式 int i; i=10; 2.整型变量的分类 3.整型变量的定义 类型说明符变量名标识符1,变量名标识符2,.; 例如: int a,b,c; (a,b,c 为整型变量 ) long x,y; (x,y 为长整型变量 ) u
8、nsigned p,q; (p,q 为无符号整型变量) 4.整型数据的溢出 2.4 实型数据 一、实型常量的表示方法 语言中,实数只采用十进制,它有二种形式 1.十进制小数形式:0.0、25.0、5.789、0.13、5.0、300.、-267.8230 2.指数形式:a E n(a 为十进制数, n 为十进制整数) 例: 2.1E5 (等于 2.1*105) 3.7E-2 (等于 3.7*10-2) 0.5E7 (等于 0.5*107) 二、实型变量 1.实型数据在内存中的存放形式 实型数据一般占4 个字节( 32 位)内存空间。按指数形式存储。 2.实型变量的分类 3.实型数据的舍入误差
9、4.实型变量的定义 float a1,a2; double b1,b2; 2.5 字符型数据 2.6 变量赋初值 一、变量定义的同时给变量赋以初值 例如: int a=3; int b,c=5; float x=3.2,y=3f,z=0.75; char ch1=K,ch2=P; 二、变量定义中赋初值的一般形式为: 类型说明符变量 1= 值 1,变量 2= 值 2, ; 三、注意:在定义中不允许连续赋值,a=b=c=5 是不合法的 2.7 各类数值型数据之间的混合运算 一、自动转换: 自动转换发生在不同数据类型的量混合运算时,由编译系统自动完成。 二、强制转换 : 强制类型转换是通过类型转换运
10、算来实现的。 其一般形式为:(类型说明符 ) (表达式 ) 例如:(float) a 把 a转换为实型 (int)(x+y) 把 x+y 的结果转换为整型 三、说明: 转换是为了本次运算的需要而对变量的数据长度进行的临时性转换,而不改变数据说 明时对该变量定义的类型。 2.8 算术运算符和算术表达式 一、 C 运算符简介 算术运算符:+、-、* 、/、 % 赋值运算符:=、+=、-=、*= 、/=、%=、 ch=B; /*B 的 ascii 码的值为66*/ printf(“ %c,%dn ” ,ch,ch) 2.5 写出下面程序的运行结果: main() int a=10, b , c ,
11、d ; int b,c; a+=6; b = (c=20, 6, a+2 ); printf(a=%d,b=%d,c=%dn,a,b,c); 第三章顺序程序设计 3.1语句概述 一、语句 C 语言是通过语句向计算机系统发出操作指令的 C 程序是由函数构成的 函数是由若干个语句构成的 二、语句分类 C 语句可分为以下五类: 表达式语句 函数调用语句 控制语句 复合语句 空语句 1.表达式语句 2.函数调用语句 3.控制语句 4.复合语句 5.空语句 3.2 赋值语句 赋值语句是由赋值表达式再加上分号构成的表达式语句。 其一般形式为:变量 =表达式 ; 注意: 1.变量 =(变量 =表达式 );是
12、成立的,例如x=(y=5) ; 其展开之后的一般形式为:变量=变量 =表达式 ; 2.变量说明中给变量赋初值和赋值语句的区别 例: int a=5,b,c; 中 a=5 不是赋值语句 3.在变量说明中,不允许连续给多个变量赋初值。 int a=b=c=5 (错误!) 必须写为 : int a=5,b=5,c=5; 而赋值语句允许连续赋值例如: a=b=c=d=e=5; 4.注意赋值表达式和赋值语句的区别 if(x=y+5)0) z=x; 3.4 字符数据的输入输出 引言: 在语言中,所有的数据输入输出都是由库函数完成的 在程序开头要有:#include 或 #include ”stdio.h”
13、 默认的输入设备是键盘,输出设备是显示器 一、 putchar 函数(字符输出函数) 其一般形式为:putchar(c) c 是函数参数 功能是在显示器上输出单个字符 C 可以是字符型或整型的变量或常量 3.4 字符数据的输入输出 二、 getchar函数(键盘输入函数) 其一般形式为:getchar( ); 功能:从键盘上输入一个字符 通常把输入的字符赋予一个字符变量,构成赋值语句,如: char c; c=getchar( ) 3.5 格式输入与输出 一、格式输出函数printf 作用:向终端输出若干个类型任意的数据 形式: printf( “格式控制字符串” ,输出表列 ) 格式字符串的
14、一般形式 % - m.n l/h 格式符 2.长度修正 l : %ld %lx %lo %lu %lf h: %ld %lx %lo %lu (整型) 3.宽度 m:在屏幕上输出的宽度 若实际 m,则按实际输出;若实际 m,则左补空格 4.精度 n:小数位数 二、格式输入函数 格式: scanf(“格式控制字符串” ,地址表列 ); 作用:按用户指定的格式从键盘上把数据输入到指定的变量之中 1.变量地址:地址运算符“ 例: if(A0)printf( “A is positive. ”); 例: if(mn) t=m;m=n;n=t; 2. 分支选择if( 条件 ) A;else B; 例:
15、if(A0)printf( “A is positive. ”); else printf(“ A is not positive.” ); 3.多个分支选择 例:输入一个学生的百分制成绩,输出相应的等级 成绩在90100 等级为 :A 成绩在8090 等级为 :B 成绩在7080 等级为 :C 成绩在6070 等级为 :D 成绩在59 等级为 :E 二. if 语句的嵌套 三、条件运算符和条件表达式 1.条件运算符:? : 它是一个三目运算符,即有三个参与运算的量 2.条件表达式:表达式1? 表达式 2: 表达式 3 例: ab?a:b 3.求值规则:如果表达式1 的值为真,则以表达式2 的
16、值作为条件表达式的值,否则以表 达式 3 的值作为整个条件表达式的值. 例如: a b?10:20 4.运算顺序:低于关系运算符和算术运算符,高于赋值符 例: max=ab?a:b 应理解为max=( ab)?a:b ) 5. 结合方向 :自右至左 例如: ab?a:cd?c:d 应理解为ab?a:(cd?c:d) #include main( ) int a,b,max; printf(n input a b: ); scanf(%d%d, max= ab?a:b printf(max=%d,max); 4.4 switch 语句 语言还提供了另一种多分支选择语句switch,用其编写的程序
17、结构清晰,通俗易懂。 一、格式 【例 4.4】 #include main( ) int a; printf(input integer number: ); scanf(%d, switch (a) case 1:printf(Mondayn); case 2:printf(Tuesdayn); case 3:printf(Wednesdayn); case 4:printf(Thursdayn); case 5:printf(Fridayn); case 6:printf(Saturdayn); case 7:printf(Sundayn); default:printf(errorn);
18、 【例 4.6】计算器程序。用户输入运算数和四则运算符,输出计算结果。 #include main( ) float a,b; char c; printf( “ input expression: a+(-,*,/)b n ”); /* 输入数据时不能有空格*/ scanf(%f%c%f, switch(c) case +: printf(%fn,a+b);break; case -: printf(%fn,a-b);break; case *: printf(%fn,a*b);break; case /: printf(%fn,a/b);break; default: printf(inp
19、ut errorn); 第五章循环程序设计 5.1 循环概述 循环结构是程序中一种很重要的结构 其特点是,在给定条件成立时,反复执行某程序段,直到条件不成立为止。给定的条件称 为循环条件,反复执行的程序段称为循环体。 实现循环的四种语句: goto 语句和 if 语句构成循环(不提倡) while 语句(先判断,后执行) do-while 语句(先执行,后判断) for 语句(多功能) 5.2 goto 语句以及用goto 语句构成循环 一、 goto 语句 格式 : goto 语句标号; 语句标号:用于定义程序中的某个位置 用标识符表示,不能只用数字。 例: goto lable_1 (合法
20、) goto 123 (不合法) 功能:无条件转移标号所指的语句 二、goto 语句构成循环 【例 5.1】用 goto 语句和 if 语句构成循环 ,求 #include main( ) int i,sum=0; i=1; loop: if(i=100) sum=sum+i; i+; goto loop; printf(%dn,sum); 5.3 while 语句 while 语句实现的是当型循环 while 语句的一般形式为: while(表达式 )语句 其中表达式是循环条件,语句为循环体 while 语句的一般形式为:while (表达式 ) 语句 例如 : i=1; while(i=1
21、00) sum=sum+i; i+; 例 5.1 阅读程序 #include main( ) int i,s; s=0; i=1; while(i=3) s=s+i; i+; printf(s=%d,i=%dn,s,i); 读程序 例: 输入两个任意的正整数,求它们的最大公约数。 5.4 do-while 语句 do-while 语句实现的是直到型循环 一般形式为 : do 语句 while( 表达式 ); 求: 5.5 for 语句 for 语句的一般形式: for( 表达式 1;表达式2;表达式3) 语句 for 语句的其它形式 1.省略了 “表达式 1”, 应在 for 循环前给循环变量
22、赋初值。 例:k=1; for( ;k=5;k+) 2.省略了 “表达式 2”, 则不做其它处理时便成为死循环。(加 break) 例: for(i=1; ;i+)sum=sum+i; 3.省略了 “表达式 3”, 则不对循环控制变量进行操作,这时可在语句体中加入修改循环控制 变量的语句。 例如: for(i=1;i=100; ) sum=sum+i; i+; 4.省略了 “表达式 1”和“ 表达式 3” 例如:i=1; for( ;i=100; ) sum=sum+i; i+; 5.表达式 2 一般是关系表达式或逻辑表达式,但也可是数值表达式或字符表达式,只要其 值非零,就执行循环体。 例如
23、: for(i=0;(c=getchar() )!= n ;i+=c); 又如: for(k=1;k-5;k+) s=s+k); 6.表达式 1 和表达式3 可以是一个简单表达式也可以是逗号表达式。 例如: for(sum=0,i=1; i=100; i+) sum=sum+i; 又如: for(i=0,j=100;i=100; i+, j- ) k=i+j; 5.6 循环的嵌套 一个循环体内包含着另一个完整的循环结构,就称为循环嵌套。 内嵌的循环中又可以嵌套循环,构成多重循环。 三种循环可以互相嵌套 说明: 嵌套的循环变量不能相同 内循环变化快,外循环变化慢 例: for(i=1;i=2;i
24、+) for(j=1;j=3;j+) 外循环的循环体 printf( “%4d”,i*j); 内循环的循环体 外循环由变量i 控制循环2 次,内循环由变量j 控制循环3 次 例:试求满足下列条件的所有三位数 其百位数不大于2 讲个位与百位对换,得到的三位数是原三位数的二倍多 5.7 几种循环的比较 1.不提倡用goto 型循环 2.关于循环的控制 3.循环体的执行 5.8 break 和 continue 语句 一、 break 语句 break 语句通常用以结束在三种循环和switch 结构 二、 continue 语句 continue 语句的作用是跳过循环本中剩余的语句而强行执行下一次循
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- removed_ 怎样 怎么 怎么样 表示 一个 算法

限制150内