三种基本结构程序设计
程序的三种基本结构
![程序的三种基本结构](https://img.taocdn.com/s3/m/f5d90d4caaea998fcc220e76.png)
else
statement4
例 输入两数并判断其大小关系
/*ch4_4.c*/
#include <stdio.h>
main()
运行:Enter integer x,y:12,23
{ int x,y; printf("Enter integer x,y:");
scanf("%d,%d",&x,&y); if(x!=y)
main()
{ int x,y;
scanf(“%d,%d”,&x,&y); Compile Error! if(x>y)
x=y; y=x;
else
5.i1f.语2 句嵌套
一般形式: if (expr1)
if (expr2)
statement1
else if (estxapter1m)ent2
statement1
X<Y Enter integer x,y:12,6
X>Y Enter integer x,y:12,12
X==Y
if(x>y) printf("X>Y\n");
程序的三种基本结构
– 结构化程序设计
基本思想:任何程序都可以用三种基本结构表示,限 制使用无条件转移语句(goto)
结构化程序:由三种基本结构反复嵌套构成的程序叫 ~
优点:结构清晰,易读,提高程序设计质量和效率
– 三种基本结构
顺序结构
A
流程图
B
A B
N-S图
选择结构
真
假
P
二分支选择结构 A
[例5.2」输入三个数,按由小到大顺序输出。 •main( )
第四章三种基本结构程序设计
![第四章三种基本结构程序设计](https://img.taocdn.com/s3/m/ac34edb78762caaedd33d4eb.png)
>0 初值<终值 =1 时,可省略 步长 <0 初值>终值 =0 死循环
4.2.3 循环结构实例
例: For I=2 To 13 Step 3 Print I , Next I Print “I=“, I
输出I的值分别为: 2 5 8 11 出了循环输出为: I=14
4.2.3 循环结构实例
2、 Do…Loop循环语句
4.2.2 选择结构实例
例 输入一学生成绩,评定其等级。方法是:90~100分为 “优秀”,80~89分为“良好”,70~79分为“中等”, 60~69分为“及格”,60分以为“不合格” 使用IF语句实现的程序段如下: If x>=90 then Print "优秀" ElseIf x>=80 Then Print "良好" ElseIf x>=70 Then Print "中等" ElseIf x>=60 Then Print "及格" Else Print "不及格" End If
不同分支中执行某一分支的相应操作(程序块),并且任何情 况下总有“无论条件多寡,必择其一;虽然条件众多,仅选其 一”的特性。
4.2.2 选择结构实例
1. If…Then语句(单分支结构)
If <表达式> Then
语句块 End If
或
If <表达式> Then <语句块>
例:已知两个数x和y,比较它们的大小,使得x大于y. If x<y Then t=x : x=y: y=t End If 或 If x<y Then t=x: x=y: y=t
程序设计的三种基本结构
![程序设计的三种基本结构](https://img.taocdn.com/s3/m/1271193930b765ce0508763231126edb6f1a76f1.png)
程序设计的三种基本结构程序设计中的三种基本结构是顺序结构、选择结构和循环结构。
这些结构是用来控制程序执行顺序和逻辑流程的基础。
一、顺序结构:顺序结构是程序中最简单的结构,即按照顺序执行各个语句,一条接一条地执行,没有跳转和分支。
顺序结构利用语句的执行顺序来确定程序的执行流程。
例子如下:```int a, b, c;a=10;b=20;c=a+b;```在上面的例子中,按照顺序结构,首先给变量a赋值为10,然后给变量b赋值为20,最后将a和b的和赋值给变量c。
程序将按照这个顺序执行下去。
二、选择结构:选择结构用来根据一些条件的真假来决定程序的执行流程。
根据条件的结果,可能会选择执行一段代码或者另一段代码。
常见的选择结构有if语句、switch语句等。
例子如下:int x = 10;if (x > 0)//x大于0的情况下执行的代码printf("x is positive");} else//x小于等于0的情况下执行的代码printf("x is not positive");```在上面的例子中,根据if语句中的条件判断表达式x > 0的结果,如果为真,则执行if语句块内的代码;如果为假,则执行else语句块内的代码。
通过选择结构,程序可以根据不同的条件来执行不同的代码块。
三、循环结构:循环结构用来进行重复执行一段代码的操作。
通过判断循环条件的真假来控制循环的执行和退出。
常见的循环结构有for循环、while循环、do-while循环等。
例子如下:```int i;for (i = 0; i < 10; i++)printf("%d\n", i);在上面的例子中,利用for循环结构,通过初始化循环变量i并设置循环条件i < 10以及每次循环完执行的表达式i++来实现了循环打印数字0到9的功能。
循环结构使得程序可以重复执行同一段代码,以达到需要重复执行的任务。
程序设计的三种基本结构
![程序设计的三种基本结构](https://img.taocdn.com/s3/m/53a6907fa9956bec0975f46527d3240c8447a1cc.png)
程序设计的三种基本结构一、概述程序设计的三种基本结构是顺序结构、选择结构和循环结构。
这三种结构是程序设计中最基础且最重要的部分,它们构成了程序的主体框架,决定了程序的执行流程。
二、顺序结构顺序结构是最简单的一种程序结构,按照程序编写的顺序执行,没有条件判断和循环。
通过顺序结构,我们可以实现程序按照预定的操作步骤依次执行。
例如,在一个简单的计算器程序中,用户输入两个数,程序按照先后顺序进行加、减、乘、除的计算。
顺序结构示例代码:1. 输入第一个数2. 输入第二个数3. 计算两个数的和4. 输出计算结果三、选择结构选择结构根据条件判断的结果选择执行不同的代码块。
条件判断通常使用逻辑表达式,判断结果为真或假。
根据判断结果,程序将执行相应的代码块。
例如,在一个学生成绩管理系统中,根据学生的分数判断其等级,可以使用选择结构实现。
如果分数大于等于90,则为优秀;如果大于等于80,则为良好;如果大于等于60,则为及格;否则为不及格。
选择结构示例代码:1. 输入学生分数2. 如果分数大于等于90,输出优秀3. 如果分数大于等于80,输出良好4. 如果分数大于等于60,输出及格5. 否则,输出不及格四、循环结构循环结构根据条件是否满足重复执行某一段代码块,直到条件不满足为止。
循环结构包括while循环、do-while循环和for循环。
循环结构在需要重复执行相同或类似操作的情况下非常有用。
例如,在一个打印九九乘法表的程序中,可以使用循环结构实现。
通过嵌套的循环不断改变乘法表中的行和列,直到打印完整个九九乘法表。
循环结构示例代码:1. 初始化行数和列数2. 当行数小于等于9时执行循环1. 当列数小于等于行数时执行循环1. 计算乘积并输出2. 列数加12. 行数加1五、总结顺序结构、选择结构和循环结构是程序设计的三种基本结构。
通过这三种结构的组合和嵌套,我们可以实现复杂的程序逻辑,完成各种任务。
在实际的程序开发中,我们需要合理运用这些基本结构,以提高程序的可读性和可维护性。
程序的三种基本结构
![程序的三种基本结构](https://img.taocdn.com/s3/m/1433d473a8956bec0975e3f9.png)
假 表达式
语句2
输入两个数, 比较其大小, 将较大的数输出。
流程分析: (1) 输入两个数据a,b ; (2) 如果a>b 则输出a ;否则,输出b。
#include <stdio.h> main( ) { float a, b; scanf(“%f, %f”,&a, &b); if (a>b) printf (“%f”, a ); else printf (“%f”, b ); }
下一页
看下面的例子
switch ( i )
{case 1:printf(″A\n″);
case 2: printf (″ B\n ″);
case 3:printf( ″C\n″);
case 4:printf(″D\n″);
default:printf(″E\n″);
}
假设i=3时,则会从i=3 时做起始语句。运行结 果见右图。如果给每条 语句加上break这样就 只执行一条语句。
printf(“a!=b”);
正
确 配
修改: if (a==b)
对 方
{ if(b==c)
法
printf(“a==b==c”);
}
else
printf(“a!=b”);
实现if ~ else 正确配对方法:加{ }
•
5.2 switch语句
• switch语句是多分支选择语句。if语句只有两个分支可供选择, 而实际问题中常常需要用到多分支的选择。例如,学生成绩分类(90分 以为‘A’等,80~89分为‘B’等,70~79分为‘c’ 等,……);人口统
X<Y
scanf("%d,%d",&x,&y); if(x!=y)
结构化程序设计的三种基本结构
![结构化程序设计的三种基本结构](https://img.taocdn.com/s3/m/cdd30ec1e53a580217fcfe0a.png)
结构化程序设计共有以下3种基本结构: 顺序结构 分支结构 (选择结构 )
循环结构,
(1)顺序结构,如图3.1(a)所示,该结构先执行A,再 执行B,两者是顺序执行的关系
A B 流程图
A B
N-S结构图
(2)分支结构,也叫选择结构,如图3.1(b)所示, 该结构先判断条件是否成立,当条件成立时执 行A,否则执行B。该结构只能执行A或B其中之 一
例如: m和n是整形变量,则: scanf (“%d%d”,m,n );是错误的, 应将“m,n”改为“&m,&n” 。
②如果在“格式控制串”中除了格式标识符、修饰符和格式 说明符以外还有其他字符,则应在输入数据时输入与这些字 符相同的字符。例如: scanf ("%d,%d",&m,&n );
输入时两个整数之间应加入“,”: 234,123↙ 因为,在scanf函数中的“格式控制串”中使用了逗号分 隔,所以必须在234后面加一个逗号。
表3.2 scanf函数常用的格式说明符
格式说明符 d o x c s f
功能说明 表示输入带符号的十进制整数 表示输入无符号八进制整数 表示输入十六进制无符号整数 表示输入单个字符 表示输入多个字符,即一个字符串 表示输入实数,可以用小数形式输入
表3.2 scanf函数常用③从键盘输入的数据类型和个数必须与参数表中的数 据类型和个数相匹配。例如:
scanf (“%d,%d”,&m,&n ); 输入数据时的形式:
234,10.5↙ (错误,因为数据类型不匹配) 234,105,123↙ (错误,因为数据个数不匹配) 234,123↙ (正确) ④可以指定输入数据所占的列数,系统自动按指定列 数截取数据。例如:
程序的三种基本结构
![程序的三种基本结构](https://img.taocdn.com/s3/m/dc865e4ef56527d3240c844769eae009581ba2f7.png)
• case 常量表达式2:语句2
• case 常量表达式i:语句n
• default
:语句n+1
•}
功能
首先计算表达式的值,然后依次与常量表达式 i(i=1,2,……,n)比较。 ① 若表达式的值与某一个常量表达式, 如 j (1 ≤j ≤ n)相等,则执行语句 j。 ② 若表达式的值与所有的常量表达式 i(i=1,2,……,n)均不
{ int x,y;
scanf(“%d,%d”,&x,&y);
if(x>y)
x=y; y=x; else
Compile Error!
x++; y++;
printf(“%d,%d\n”,x,y);
}
5.1.2 if语句嵌套
一般形式:
if (expr1) if (expr2) statement1 else statement2
• 5.1 if 条件语句 • 5.2 switch多分支选择语句 • 5.3 程序举例
返回
5.1 if条件语句
•if语句是用来判定所给定的条件是否满足,根据判定的结果(真或假)决定 执行给出的两种操作之一。
5.1.1 if语句的三种形式
•1.单分支选择语句的形式: if(表达式) 语句
•
main( )
内嵌if
else
if(expr3) else
statement3 statement4
内嵌if
例 输入两数并判断其大小关系
/*ch4_4.c*/
#include <stdio.h>
main()
{ int x,y;
运行:Enter integer x,y:12,23
结构化程序设计的原则是任何程序都可以由三种基本流
![结构化程序设计的原则是任何程序都可以由三种基本流](https://img.taocdn.com/s3/m/57429c09b4daa58da0114a8d.png)
软件编程基础
if 语句
(2)if(布尔表达式)语句1 else 语句2 布尔表达式的结果为ture,执行语句1, 否则跳过语句1,执行语句2。 注意: 语句可以是单句, 可以是语句块, 甚至是空语句。
软件编程基础
if 语句
例 if (i % 2 == 0) { g.setColor(Color.red); g.fillOval(i * size, y+(i*size), size, size); } else { g.setColor(Color.green); g.fillRect(i * size, y+(i*size), size, size); }
软件编程基础
if 语句
2、swit到break;跳出。
case1: break; case2: break; default: break;
软件编程基础
if 语句
简单控制结构 结构化程序设计的原则是:任何程序都可以由三种 基本流程结构构成,即顺序结构、选择结构、循环结构。 顺序结构:按照书写的顺序依次执行。 选择结构:根据计算所得的表达式的值来判断应选 择执行哪一个流程的分支。 循环结构:在一定的条件下反复执行一段语句的流 程结构。
软件编程基础
if 语句
三种基本结构特点: (1) 单入单出结构。 (2 ) 顺序结构和选择结构为开放式结构,执行 完后立即退出。循环结构为封闭式结构,只要条 件满足则反复执行结构内的内容。 (3) 一种结构执行完,就进入下一个结构。 (4)三种基本结构可以相互嵌套。
软件编程基础
if 语句
选择语句 1、if 语句 (1)if(布尔表达式)语句1 语句2 布尔表达式的结果为ture, 执行语句1,否则跳过语句1,执行语句2。
程序设计3(3种基本结构)
![程序设计3(3种基本结构)](https://img.taocdn.com/s3/m/5651738c6529647d27285265.png)
流程图:
3.2.5 条件运算符(了解即可) 若if语句中,在表达式为“真”和“假”时,且都 只执行一个赋值语句给同一个变量赋值时,可以用 简单的条件运算符来处理。例如,若有以下if语句: if (a>b) max=a; else max=b; 可以用下面的条件运算符来处理: max=(a>b)?a∶b; 其中“(a>b)?a∶b”是一个“条件表达式”。它是 这样执行的:如果(a>b)条件为真,则条件表达式 取值a,否则取值b。
3.3.5 示例:
4பைடு நூலகம்
1
1 3 1 5 1 7
例:多项式如下:π/4 =1 - 1/3 + 1/5 - 1/7 + 1/9 ... 计算的项数n由键盘输入,求π。结果保留2位小数。 #include <iomanip> int main(){ int n, sign=1; double sum=0.0; cin>>n; for(int i=1; i<=n; i+=2) { sum = sum + sign*1.0/i; sign = -sign; } // 设置浮点数的小数个数2位 cout<<fixed<<setprecision(2)<<4*sum<<endl; return 0; }
3.3.3 for
for语句使用最为灵活,不仅可以用于循 环次数已经确定的情况,而且可以用于循环 次数不确定而只给出循环结束条件的情况, 它完全可以代替while语句。一般形式为: for(表达式1;表达式2;表达式3) 语句
它的执行过程如下: (1) 先求解表达式1。 (2) 求解表达式2,若其值为真, 则执行for语句中指定的内嵌语句, 然后执行下面第(3)步。若为假, 则结束循环。 (3) 求解表达式3。 (4) 转回上面第(2)步骤继续执 行。
C语言程序设计 第3章结构化程序设计的三种基本结构
![C语言程序设计 第3章结构化程序设计的三种基本结构](https://img.taocdn.com/s3/m/112787a158fb770bf78a55eb.png)
其中输出函数printf( )只原样显示一个普通的字符串,用来 提示用户输入的数据是“成绩”。 ⑦如果是多个参数时,参数之间必须必须用逗号分隔,每 个参数要求是一个表达式(单独一个变量是表达式的特殊情 况),参数的个数和类型要与格式控制串中的格式说明符的 个数和类型相匹配。
③不可打印的特殊字符指的是该字符不能直接从输出设备输出, 也称为“转义字符”,转义字符用转义序列来表示。所谓转义 序列是用来表示字符的一种方法,即用该字符的ASCII值表示, 具体的格式为:\字母。其中: “\”表示转义字符序列的标识符,表示后面的字符是转义字符, 即是不可打印的字符; “字母”表示不可打印的转义字符,用来使输出设备输出某一 种格式,c语言中的常用转义字符如表3.4所示。
int a=4; float x=3.14; char c=’A’; 也可以对几个变量赋同一个初值,例如: int a=4,b=4,c=4; 也可以只对部分变量赋初值,例如: int a=4, b,c;
【例3.1】算术赋值运算符的使用。 #include <stdio.h> void main ( ) {
修饰符
功能说明
字母l
表示输入长整型整数,可加在格式说明符d、o、x 前面
m 表示输出数据的最小宽度 m.n 表示输出总宽度占m列,其中小数位占n位
- 表示输出的数字或字符在输出区域内向左靠
⑥如果是0个参数时,即该函数中只有格式控制串部分, 没有参数表部分,二者之间的逗号可以省略。这时格式控 制串部分是一个普通的字符串,该字符串将原样显示在屏 幕上,常常用来作为提示信息或字符串的输出。例如:
A
程序的三种基本结构
![程序的三种基本结构](https://img.taocdn.com/s3/m/d8789da3b0717fd5360cdc8c.png)
程序的三种基本结构荷兰学者Dijkstra提出了"结构化程序设计"的思想,它规定了一套方法,使程序具有合理的结构,以保证和验证程序的正确性.这种方法要求程序设计者不能随心所欲地编写程序,而要按照一定的结构形式来设计和编写程序.它的一个重要目的是使程序具有良好的结构,使程序易于设计,易于理解,易于调试修改,以提高设计和维护程序工作的效率.结构化程序规定了以下三种基本结构作为程序的基本单元:(1) 顺序结构. 见图1-1在这个结构中的各块是只能顺序执行的. (2) 判断选择结构.见图1-2根据给定的条件是否满足执行A块或B块.图1-1 图1-2 (3) 循环结构.见图1-3和图1-4.图1-3表示的结构称为"当型"循环.当给定的条件满足时执行A块,否则不执行A块而直接跳到下面部分执行.图1-4表示的结构称为"直到型"循环,它的含义是:执行A块直到满足给定的条件为止(满足了条件就不再执行A块).这两种循环的区别是:当型循环是先判断(条件)再执行,而直到型循环是先执行后判断.图1-3图1-4 以上三种基本结构可以派生出其它形式的结构.由这三种基本结构所构成的算法可以处理任何复杂的问题.所谓结构化程序就是由这三种基本结构所组成的程序.可以看到,三种基本结构都具有以下特点:① 有一个入口.② 有一个出口.③ 结构中每一部分都应当有被执行到的机会,也就是说,每一部分都应当有一条从入口到出口的路径通过它(至少通过一次).④ 没有死循环(无终止的循环).结构化程序要求每一基本结构具有单入口和单出口的性质是十分重要的,这是为了便于保证和验证程序的正确性.设计程序时一个结构一个结构地顺序写下来,整个程序结构如同一串珠子一样顺序清楚,层次分明.在需要修改程序时,可以将某一基本结构单独孤立出来进行修改,由于单入口单出口的性质,不致影响到其它的基本结构.。
程序的三种基本结构
![程序的三种基本结构](https://img.taocdn.com/s3/m/8e2c5a212f60ddccda38a07a.png)
内嵌if
else
if(expr3) else
statement3 statement4
内嵌if
例 输入两数并判断其大小关系
/*ch4_4.c*/
#include <stdio.h>
main()
{ int x,y;
运行:Enter integer x,y:12,23
printf("Enter integer x,y:");
计分类(按年龄分为老、中、青、少、儿童);工资统计分类;银行存 款分类;……等。当然这些都可以用嵌套的if语句或多分支来处理,但
如果分支较多,则嵌套的if语句层数多,程序冗长而且可读性降低。C 语言提供switch语句直接处理多分支选择,它的一般形式如下:
• switch (表达式)
• { case 常量表达式1:语句1
}
}
返回
内嵌if
if (expr1) if (expr2) statement1
else statement3
内嵌if
if (expr1) statement1
else if(expr3) statement3 else statement4
内嵌if
if (expr1)
if (expr2) else
statement1 statement2
X<Y
scanf("%d,%d",&x,&y); if(x!=y)
Enter integer x,y:12,6 X>Y Enter integer x,y:12,12
if(x>y) printf("X>Y\n");
程序的三种基本结构
![程序的三种基本结构](https://img.taocdn.com/s3/m/c2a7a65a783e0912a2162ac9.png)
10, 9 7,8 6
default
因此,可以用 score /10的值
来确定分支
score和 score /10 有如下对应关系:
下一页
#include <stdio.h>
程序
main( ) /*用switch 语句评级 */
{ int score;
scanf("%d" ,&score);
switch (score /10)
default一般出现在所有case之后,也可以出现在case之 前或两个case之间,default也可以缺省。
为了在执行完一个case分支后能跳出switch多分支选择 语句,可在case分支结束后,插入一个break语句。若有 break语句,就从此break语句跳出break所在的当前结构; 若无break语句,执行该语句后,流程控制转移到下一个 分支: 继续执行这一个分支的语句,一直到最后一个语句 执行完。
printf(“a!=b”);
正
确 配
修改: if (a==b)
对 方
{ if(b==c)
法
printf(“a==b==c”);
}
else
printf(“a!=b”);
实现if ~ else 正确配对方法:加{ }
•
5.2 switch语句
• switch语句是多分支选择语句。if语句只有两个分支可供选择, 而实际问题中常常需要用到多分支的选择。例如,学生成绩分类(90分 以为‘A’等,80~89分为‘B’等,70~79分为‘c’ 等,……);人口统
下一页
看下面的例子
switch ( i )
{case 1:printf(″A\n″);
程序的三种基本结构
![程序的三种基本结构](https://img.taocdn.com/s3/m/2d9816a58ad63186bceb19e8b8f67c1cfad6eeec.png)
switch ( i ) {case 1:printf(″A\n″); case 3:printf( ″C\n″); case 4:printf(″D\n″); default:printf(″E\n″); }
假设i=3时,则会从i=3时做起始语句。运行结果见右图。如果给每条语句加上break这样就只执行一条语句。
程序
if后面的表达式类型任意
如:if(a==b&&x==y) printf(“a=b,x=y”); if(3) printf(“OK”); if(‘a’) printf(“%d”,’a’);
语句可以是复合语句 if(x) if(x!=0) if(!x) if(x==0)
程序的三种基本结构
结构化程序设计 基本思想:任何程序都可以用三种基本结构表示,限制使用无条件转移语句(goto) 结构化程序:由三种基本结构反复嵌套构成的程序叫~ 优点:结构清晰,易读,提高程序设计质量和效率 三种基本结构 顺序结构
A
B
A
B
流程图
N-S图
A
B
真
假
P
B
A
真
假
A1
A2
Ai
An
k=k2
k=k1
实现if ~ else 正确配对方法:加{ }
5.2 switch语句 switch语句是多分支选择语句。if语句只有两个分支可供选择,而实际问题中常常需要用到多分支的选择。例如,学生成绩分类(90分以为‘A’等,80~89分为‘B’等,70~79分为‘c’ 等,……);人口统计分类(按年龄分为老、中、青、少、儿童);工资统计分类;银行存款分类;……等。当然这些都可以用嵌套的if语句或多分支来处理,但如果分支较多,则嵌套的if语句层数多,程序冗长而且可读性降低。C语言提供switch语句直接处理多分支选择,它的一般形式如下: switch (表达式) { case 常量表达式1:语句1 case 常量表达式2:语句2 case 常量表达式i:语句n default :语句n+1 }
程序的三种基本结构
![程序的三种基本结构](https://img.taocdn.com/s3/m/2333f4cde53a580216fcfe7e.png)
写一个程序完成下列功能:
1. 输入一个分数score
2 .score<60
输出 E
3 .60<=score <70 输出 D
4. 70<=score <80 输出 C
5 .80<=score <90 输出 B
6 .90<=score
输出 A
a
11
#include<stdio.h>
main( )
{ int score;
a
9
• 3.多分支选择语句的形式:
• if (表达式1)
语句1
• else if (表达式2)
语句2
•
else if(表达式3)
语句3
•
else if (表达式m)
语句m
•
else
语句n
•
流程图
F
表达式
1 T
F
表达式
2 T
F
表达式
3 T
F
表达式
4 T
语句1
语句2
语句3
a
语句4
语句5
10
多分支问题
程序
scanf(“%d”, &score);
if ( score<60) printf(“E” );
else if ( score <70)
printf(“D” );
else if (score <80)
printf(“C” );
else if (score <90)
printf(“B” );
else
内嵌if
if (expr1) if (expr2) statement1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
x y
例:已知两个数 和y,比较它们的 已知两个数x和 , 已知两个数 大小, 大小, 使得x大于 使得 大于y. 大于 If x<y Then t=x : x=y: y=t End If 或 If x<y Then t=x: x=y: y=t
执行过程
例:输入一学生成绩,评定其等级。方法是:90~100分为 输入一学生成绩,评定其等级。方法是: 分为 优秀” 分为“ 分为“ “优秀”,80~89分为“良好”,70~79分为“中等”, 分为 良好” 分为 中等” 60~69分为“及格”,60分以为“不合格” 分为“ 分以为“ 分为 及格” 分以为 不合格”
4.4 循环结构
1. For循环语句 (一般用于循环次数已知 一般用于循环次数已知) 循环语句 一般用于循环次数已知 形式 For 循环变量=初值 to 终值 [Step 步长 循环变量= 步长] 语句块 循环变量得初 [Exit For] 循环体 值 语句块 循 环 变 量 在 终值 Next 循环变量 内
语句块
F
T
>0 初值<终值 =1 时,可省略 步长 <0 初值>终值 =0 死循环
Exit For
语句块 循环变量加步长
图 1-3-13
For 循环语句
循环次数
= Int ( 终值 初值 + 1) 步长
例: For I=2 To 13 Step 3 Print I , Next I Print “I=“, I
4.1 算法及算法的表示
4. 1.1 算法概述 什么是算法: 广义地讲:算法是为完成一项任务所应当遵循的一步 一步的规则的、精确的、无歧义的描述,它的总步数是有 限的。 狭义地讲:算法是解决一个问题采取的方法和步骤的 描述。 下面通过两个简单的例子加以说明: 输入三个数,然后输出其中最大的数。 例4.1 输入三个数,然后输出其中最大的数。 将三个数依次输入到变量A、B、C中,设变量MAX存放 最大数。其算法如下:
t
2. If…Then…Else语句(双分支结构) If <表达式> Then <语句块1> Else <语句块2> End If
If <表达式> Then <语句1> Else <语句2>
双分支选择结构执行过程
例如:输出 两个中值较大的一个值 两个中值较大的一个值。 例如:输出x,y两个中值较大的一个值。 IF X>Y Then Print X Else Print Y End If 也可以写成如下的单行形式: 也可以写成如下的单行形式: IF X>Y Then Print X Else 例4.1 设计一个求解一元二次方程的程序
使用IF语句实现的程序段如下: If x>=90 then Print "优秀" ElseIf x>=80 Then Print "良好" ElseIf x>=70 Then Print "中等" ElseIf x>=60 Then Print "及格" Else Print "不及格" End If
2、三种基本结构的表示 、
(1)顺序结构 ) (2)选择结构 )
语句1 语句2
Y 语句1
条件
N 语句2
(3)循环结构 )
a) 当型循环 b) 直到循环
条件 Y 语句组
N 语句组 Y 条件 N
(a)
(b)
从10个数中选出最大的数的流程图 个数中选出最大的数的流程图
开始 输入A Max =A N=1
例如:将例 使用select case…..语句来实现的程序段如下: 语句来实现的程序段如下: 例如:将例4.3 使用 语句来实现的程序段如下 Select Case x Case 90 to 100 Print "优秀 优秀" 优秀 Case 80 to 89 Print "良好 良好" 良好 Case 70 to 79 Print "中等 中等" 中等 Case 60 to 69 Print "及格 及格" 及格 Case Else Print "不及格 不及格" 不及格 End Select
= Int ( 133 2 + 1) = 4
循环执行次数 2 5
输出I的值分别为 输出 的值分别为: 的值分别为 8 11 出了循环输出为: 出了循环输出为 I=14
例4.5 编程计算:S=1+2+3+…+100 Dim S%, I% S=0 ' 累加前变量S为0
S=0,N=1 当N<=100 S=S+N N=N+1 打印S
执行过程如右图
4.赋值符号“=”左边一定只能是变量名或对象的属性引 用,不能是常量、符号常量、表达式。 下面的赋值语句都是错的: 5=X Abs(X)=20 ' 左边是常量。 ' 左边是函数调用,即是表达式。
5. 赋值符号“=”两边的数据类型一般要求应一致。
4.3 选择结构
1. If…Then语句 单分支结构 语句(单分支结构 语句 单分支结构)
Private Sub Form_Click() Dim a%, max%, i% max = a For i = 1 To 10 a = Val(InputBox("A=?")) If a > max Then max = a Next i Print "Max="; max End Sub
4.2 顺序结构
4.3.2 Select Case语句(情况语句) 语句( 语句 情况语句)
形式: 形式: 数值型或字符串表达式 Select Case 变量或表达式 Case 表达式列表 表达式列表1 语句块1 语句块 Case 表达式列表 表达式列表2 语句块2 语句块 … [Case Else 语句块n+1] 语句块 End Select <表达式列表 :与<变量或表达式 同类型的下面四种形式之一: 表达式列表>: 变量或表达式>同类型的下面四种形式之一 表达式列表 变量或表达式 同类型的下面四种形式之一: 表达式 例: A +5 一组枚举表达式(用逗号分隔 用逗号分隔) 2, 4, 6, 8 一组枚举表达式 用逗号分隔 表达式1 表达式2 60 to 100 表达式 To 表达式 Is 关系运算符表达式 Is < 60
4.3.3 选择结构的嵌套 在IF语句的Then分支和Else分支中可以完整地嵌套另一IF语 句或Select Case语句,同样Select Case语句每一个Case分支中 都可嵌套另一IF语句或另一Select Case语句。下面是两种正确 的嵌套形式:
条件1> (1)IF <条件 Then ) 条件 ….. Then <条件 Then 条件2> 条件 …… Else ….. End If …. Else …. IF <条件 条件3> Then 条件 ….. Else ….. End If ….. End IF (2)IF <条件 Then ) 条件1> 条件 ….. Select Case … Case …… IF <条件 条件1> Then 条件 …… Else ….. End If …… Case…. ….. End Select …. End IF
N<10
Y
再输入给A
N
N
A>Max
Y
Max =A
N=N+1
打印Max 结束
开始 输入A Max =A N=1
输入A 当N<=10
输入A
N<10
Y
再输入给A
N
N
A>=Max
Y
Max =A N=N+1
N
A>Max
Y
Max =A
打印Max
N—S流程图
N=N+1
打印Max 结束
传统流程图
最后需要说明的是:上面介绍的算法表示是给人看的, 即是为帮助程序开发人员阅读、编写程序而设计的一种辅 助工具,程序则必须符一计算机语言的语法规则。 下面是例4.2的计算机 程序,即为用计算机语言表示算 用计算机语言表示算 法:
1) 输入A、B、C。 2) A与B中大的一个放入MAX中。 3) 把C与MAX中大的一个放入MAX中。 4) 输出MAX,MAX即为最大数。 输入10个数 打印输出其中最大的数。 个数, 例4.2 输入 个数,打印输出其中最大的数。 算法设计如下: 算法设计如下: (1)输入1个数,存入变量A中,将记录数据个数的变量N赋值 为1,即N=1 (2)将A存入表示最大值的变量Max中,即Max=A (3)再输入一个值给A,如果A>Max 则 Max=A, 否则Max 不变 (4)让记录数据个数的变量增加1,即N=N+1 (5)判断N是否小于10,若成立则转到第(3)步执行,否 则转到第(6)步。 (6)打印输出max
4.1.3 算法的表示
一、自然语言与伪代码表示算法 自然语言:就是指人们日常使用的语言,可以是汉语、 英语或其它语言。 伪代码:是用介于自然语言和计算机语言之间的文字和 符号(包括数学符号)来描述算法。 例如: 例如:例4.1可用如下的伪代码表示 可用如下的伪代码表示 Begin(算法开始) 输入 A,B,C IF A>B 则 A→Max 否则 B→Max IF C>Max 则 C→Max Print Max End (算法结束)