第3章程序设计初步



《第3章程序设计初步》由会员分享,可在线阅读,更多相关《第3章程序设计初步(166页珍藏版)》请在文档大全上搜索。
1、第第3章章 程序设计初步程序设计初步l 面向过程的程序设计和算法l c+程序和语句l 赋值语句l c+的输入与输出l 编写顺序结构的程序第一讲3.1面向过程的程序设计和算法面向过程的程序设计和算法l在面向过程的程序设计中,程序设计者必须指定计算机执行的具体步骤。l程序=算法+数据结构l算法的表示l自然语言l流程图l伪代码l计算机语言三种基本模块三种基本模块 1. 顺序结构顺序结构 程序模块B程序模块A程序模块A程序模块B新程序模块(a)(b)(c)图 3.1 顺序结构 2. 分支结构分支结构 图 3.2 分支结构 条件程序模块A成立程序模块B不成立程序模块A程序模块B不成立成立条件新程序模块(
2、a)(b)(c) 3. 循环结构循环结构 图 3.3 当型循环结构 程序模块新程序模块(b)(c)(a)当条件成立时执行程序模块条件成立不成立图 3.4 直到型循环结构 新程序模块(b)(c)(a)直到条件不成立时为止程序模块程序模块成立不成立条件伪代码伪代码 if x为正 then print xelse print -x3.2 c+程序和语句程序和语句l预处理命令l声明部分l函数#include using namespace std;int a=3;int main() float b; b=4.5; cout a 0) cout x;else cout -x;for (i=1;i=10
3、0;i+) sum=sum+i;函数和流对象调用语句函数和流对象调用语句sort(x,y,z);cout xy)?x:y;空语句空语句l空语句只有一个分号构成,即:;如:while(getchar()! n ) ;复合语句复合语句复合语句就是用 把多个单一的语句括起来,如: z=x+y; t=z/100; cout t; (1) 逻辑上每个语句最后都必须有一个分号(;), 一个语句可分写成几行, 几个语句也可合写成一行(但不提倡, 因其不利于单步调试)。 (2) 空语句直接由分号(;)组成,常用于控制语句中必须出现语句之处,它不做任何操作,只在逻辑上起到有一个语句的作用。 (3) 复合语句由花
4、括号 括起的若干个语句, 语法上可以看成是一个语句。复合语句中最后一个语句的分号不能省略。 如下面是一个复合语句: z=x+y; y=x/z; x=z-y; (4) 表达式语句是在各种表达式后加一个分号(;)形成一个语句。如赋值语句由赋值表达式加一个分号构成: x=x+y;再如表达式x+后加一个分号构成表达式语句: x+; 表达式和表达式语句的区别是表达式后无分号, 可以出现在其它语句中允许出现表达式的地方;而表达式语句后有分号, 自己独立成一个语句,不能再出现在其它语句的表达式中。 如: if(a=b)0) min=a; (5) 控制语句有条件判断语句(if、 switch), 循环语句(f
5、or、 while、 do-while),转移语句(goto、 continue、 break、 return)。 3.3 赋值语句赋值语句 赋值语句就是在赋值表达式的后面加上分号,一般形式为: 变量变量=表达式表达式; 例如:int i; float a=3.5;i=1;i=i+a; a+1=a+1; /*错误*/ 3.4 C+的输入与输出的输入与输出l输入流和输出流的基本操作cout语句的一般格式: cout 表达式1 表达式2. 变量1 变量2. 变量n ; 输入语句:输入语句:cin程序在执行期间,程序在执行期间,接收外部信息的操作称为接收外部信息的操作称为程序的输入程序的输入;而把;
6、而把程序向外部发送信息的操程序向外部发送信息的操作称为程序的输出作称为程序的输出。在。在C+中没有专门的输中没有专门的输入输出语句,所有输入输出是通过入输出语句,所有输入输出是通过输入输出输入输出流流来实现的。来实现的。 要使用要使用C+提供的输入输出时,必须在程序提供的输入输出时,必须在程序的开头增加一行:的开头增加一行:#include 即包含输入输出流的头文件即包含输入输出流的头文件“iostream.h”。有关包含文件的作用,在编译预处理部分有关包含文件的作用,在编译预处理部分(第五章)作详细介绍。(第五章)作详细介绍。 输入十进制整数和实数cin . (举例说明)(举例说明)int
7、a,b;cinab;/程序运行至此停下,等待从键盘输入变量值程序运行至此停下,等待从键盘输入变量值键盘输入:键盘输入:3 5或:或:3 5 均可。均可。输入语句自动过滤空白字符。输入语句自动过滤空白字符。a3键盘键盘b5键盘键盘浮点型数据同整型数据一样。浮点型数据同整型数据一样。float c,d;cincd;char ch1,ch2;cinch1ch2;若输入:若输入:ab则则ch1为为a, ch2为为b。若输入:若输入:a b则则ch1为为a, ch2为为b。字符型变量过滤空白字符。字符型变量过滤空白字符。cin格式过滤空白字符格式过滤空白字符float a;int i1,i2;char
8、ch1,ch2;cini1ai2ch1ch2;输入:输入:34 5.678 1a bi2:1在缺省的情况下,在缺省的情况下,cin自动跳过输入的空格自动跳过输入的空格,换言,换言之,之,cin不能将输入的空格赋给字符型变量,同样不能将输入的空格赋给字符型变量,同样地,回车键也是作为输入字符之间的分隔符,地,回车键也是作为输入字符之间的分隔符,也也不能将输入的回车键字符赋给字符型变量不能将输入的回车键字符赋给字符型变量。 a:5.578i1:34ch1:ach2:b若要把从键盘上输入的每一个字符,包括若要把从键盘上输入的每一个字符,包括空格和空格和回车键回车键都作为一个输入字符赋给字符型变量时,
9、都作为一个输入字符赋给字符型变量时,必须使用函数必须使用函数cin.get()。其格式为:。其格式为:cin.get();cin.get()从输入行中取出一个字符,并将它赋给字从输入行中取出一个字符,并将它赋给字符型变量符型变量。这个语句一次只能从输入行中提取一。这个语句一次只能从输入行中提取一个字符。个字符。char c1;cin.get(c1);char ch1,ch2,ch3;cin.get(ch1);cin.get(ch2);cin.get(ch3);输入:输入:A B则:则:ch1:A并且在输入缓冲区中保留回车键。并且在输入缓冲区中保留回车键。 ch2:空格空格ch3:B空格的空格的
10、ASCII码为码为3200100000ch2ch2输入十六进制或八进制数据输入十六进制或八进制数据 在缺省的情况下,系统约定输入的整型数是十进在缺省的情况下,系统约定输入的整型数是十进制数据。当要求按八进制或十六进制输入数据时,制数据。当要求按八进制或十六进制输入数据时,在在cin中必须指明相应的数据类型:中必须指明相应的数据类型:hex为十六进为十六进制;制;oct为八进制;为八进制;dec为十进制为十进制。 int i,j,k,l;cinhexi;/指明输入为十六进制数指明输入为十六进制数cinoctj;/指明输入为八进制数指明输入为八进制数cink;/输入仍为八进制数输入仍为八进制数ci
11、ndecl;/指明输入为十进制数指明输入为十进制数当执行到语句当执行到语句cin时,若输入的数据为:时,若输入的数据为:11 11 12 12结果:结果:i:17j:9k:10l:12使用非十进制数输入时,要注意以下几点:使用非十进制数输入时,要注意以下几点:1、八进制或十六进制数的输入,只能适用于、八进制或十六进制数的输入,只能适用于整型整型变量变量,不适用于字符型变量,实型变量。,不适用于字符型变量,实型变量。2、当在、当在cin中指明使用的数制输入后,中指明使用的数制输入后,则所指明的则所指明的数制一直有效,直到在接着的数制一直有效,直到在接着的cin中指明输入时所中指明输入时所使用的另