程序设计初步

上传人:豆浆 文档编号:50891549 上传时间:2018-08-11 格式:PPT 页数:113 大小:493KB
返回 下载 相关 举报
程序设计初步_第1页
第1页 / 共113页
程序设计初步_第2页
第2页 / 共113页
程序设计初步_第3页
第3页 / 共113页
程序设计初步_第4页
第4页 / 共113页
程序设计初步_第5页
第5页 / 共113页
点击查看更多>>
资源描述

《程序设计初步》由会员分享,可在线阅读,更多相关《程序设计初步(113页珍藏版)》请在金锄头文库上搜索。

1、第3章 程序设计初步 第4章 函数与预处理 第5章 数组 第6章 指针 第7章 自定义数据类型第2篇面向过程的程序设计第3章 程序设计初步3.1 面向过程的程序设计和算法 3.2 +程序和语句 3.3 赋值语句 3.4 C+的输入与输出 3.5 编写顺序结构的程序 3.6 关系运算和逻辑运算 3.7 选择结构和语句 3.8 条件运算符和条件表达式 3.9 多分支选择结构和switch语句 3.10 编写选择结构的程序 3.11 循环结构和循环语句 3.12 循环的嵌套 3.13 break语句和continue语句 3.14 编写循环结构的程序在面向过程的程序设计中,程序设计者必须指定 计算机

2、执行的具体步骤,程序设计者不仅要考虑程 序要“做什么”,还要解决“怎么做”的问题,根据程 序要“做什么”的要求,写出一个个语句,安排好它 们的执行顺序。怎样设计这些步骤,怎样保证它的 正确性和具有较高的效率,这就是算法需要解决的 问题。3.1 面向过程的程序设计和算法一个面向过程的程序应包括以下两方面内容: (1) 对数据的描述。在程序中要指定数据的类型和 数据的组织形式,即数据结构(data structure)。 (2) 对操作的描述。即操作步骤,也就是算法 (algorithm)。对于面向过程的程序,可以用下面的公式表示: 程序=算法+数据结构 作为程序设计人员,必须认真考虑和设计数据结

3、 构和操作步骤(即算法)。算法是处理问题的一系列的步骤。算法必须具体 地指出在执行时每一步应当怎样做。3.1.1 算法的概念不要认为只有“计算”的问题才有算法。广义地说 ,为解决一个问题而采取的方法和步骤,就称为“ 算法”。计算机算法可分为两大类别:数值算法和非数值 算法。数值算法的目的是求数值解。非数值算法包 括的面十分广泛,最常见的是用于事务管理领域。 目前,计算机在非数值方面的应用远远超过了在数 值方面的应用。 C+既支持面向过程的程序设计,又支持面向对 象的程序设计。无论面向过程的程序设计还是面向 对象的程序设计,都离不开算法设计。1. 自然语言用中文或英文等自然语言描述算法。但容易产

4、生 歧义性,在程序设计中一般不用自然语言表示算法 。 2. 流程图 可以用传统的流程图或结构化流程图。用图的形 式表示算法,比较形象直观,但修改算法时显得不 大方便。 3. 伪代码(pseudo code) 伪代码是用介于自然语言和计算机语言之间的文 字和符号来描述算法。如3.1.2 算法的表示if x is positive thenprint x else print-x用伪代码写算法并无固定的、严格的语法规则, 只需把意思表达清楚,并且书写的格式要写成清晰 易读的形式。它不用图形符号,因此书写方便、格 式紧凑,容易修改,便于向计算机语言算法(即程 序)过渡。 4. 用计算机语言表示算法

5、用一种计算机语言去描述算法,这就是计算机程 序。由第1章已知,一个程序包含一个或多个程序单 位(每个程序单位构成一个程序文件)。每一个程序 单位由以下几个部分组成: (1) 预处理命令。如#include命令和#define命令。 (2) 声明部分。例如对数据类型和函数的声明,以 及对变量的定义。 (3) 函数。包括函数首部和函数体,在函数体中可 以包含若干声明语句和执行语句。 如下面是一个完整的C+程序:3.2 C+程序和语句#include /预处理命令 using namespace std; /在函数之外的声明部分 int a=3; /在函数之外的声明部分 int main( ) /函

6、数首部 float b; /函数内的声明部分b=4.5; /执行语句cout100) z=z-100; cout0) cout000) cout0 尽管cin和cout不是C+本身提供的语句,但是在 不致混淆的情况下,为了叙述方便,常常把由cin 和流提取运算符“”实现输入的语句称为输入语句 或cin语句,把由cout和流插入运算符“变量1变量2变量n;在定义流对象时,系统会在内存中开辟一段缓冲 区,用来暂存输入输出流的数据。在执行cout语句 时,先把插入的数据顺序存放在输出缓冲区中,直 到输出缓冲区满或遇到cout语句中的endl(或n, ends,flush)为止,此时将缓冲区中已有的数

7、据一 起输出,并清空缓冲区。输出流中的数据在系统默 认的设备(一般为显示器)输出。*3.4.1 输入流与输出流的基本操作一个cout语句可以分写成若干行。如 coutabcd;可以写成cina /注意行末尾无分号 b /这样写可能看起来清晰些cd; 也可以写成 cina; cinb; cinc; cind; 以上3种情况均可以从键盘输入: 1 2 3 4 也可以分多行输入数据: 1 2 3 4 在用cin输入时,系统也会根据变量的类型从输入 流中提取相应长度的字节。如有 char c1,c2; int a; float b; cinc1c2ab; 如果输入 1234 56.78注意: 34后面

8、应该有空格以便和56.78分隔开。 也可以按下面格式输入: 1 2 34 56.78 (在1和2之间有空格) 不能用cin语句把空格字符和回车换行符作为字符 输入给字符变量,它们将被跳过。如果想将空格字 符或回车换行符(或任何其他键盘上的字符)输入给 字符变量,可以用3.4.3节介绍的getchar函数。 在组织输入流数据时,要仔细分析cin语句中变量 的类型,按照相应的格式输入,否则容易出错。上面介绍的是使用cout和cin时的默认格式。但有 时人们在输入输出时有一些特殊的要求,如在输出 实数时规定字段宽度,只保留两位小数,数据向左 或向右对齐等。C+提供了在输入输出流中使用的 控制符(有的

9、书中称为操纵符),见书中表3.1。需要注意的是: 如果使用了控制符,在程序单位 的开头除了要加iostream头文件外,还要加iomanip 头文件。 举例: 输出双精度数。*3.4.2 在输入流与输出流中使用控制符double a=123.456789012345;对a赋初值 (1) cout #include using namespace std; int main( ) double a=123.456,b=3.14159,c=-3214.67; cout /或者包含头文件stdio.h: #include using namespace std; int main( ) char a

10、,b,c;a=B;b=O;c=Y;putchar(a);putchar(b);putchar(c);putchar(n);putchar(66);putchar(79);putchar(89);putchar(10);return 0; 运行结果为 BOY BOY可以看到: 用putchar可以输出转义字符, putchar(n)的作用是输出一个换行符,使输出的 当前位置移到下一行的开头。putchar(66)的作用是 将66作为ASCII码转换为字符输出,66是字母B的 ASCII码,因此putchar(66)输出字母B。其余类似 。putchar(10)中的10是换行符的ASCII码, p

11、utchar(10)输出一个换行符,作用与putchar(n) 相同。 也可以输出其他转义字符,如putchar(101) (输出字符A,八进制的101是A的 ASCII码)putchar() (输出单引号字符)putchar(015) (输出回车,不换行,使输出的当前位 置移到本行开头)2. getchar函数(字符输入函数)此函数的作用是从终端(或系统隐含指定的输入 设备)输入一个字符。getchar函数没有参数,其一 般形式为getchar( )函数的值就是从输入设备得 到的字符。 例3.3 输入单个字符。#include using namespace std; int main( )

12、 char c;c=getchar( ); putchar(c+32); putchar(n);return 0; 在运行时,如果从键盘输入大写字母A并按回车 键,就会在屏幕上输出小写字母a。请注意,getchar( )只能接收一个字符。getchar函 数得到的字符可以赋给一个字符变量或整型变量, 也可以不赋给任何变量,作为表达式的一部分。例 如,例3.3第5行可以用下面一行代替: putchar(getchar()+32);putchar(n); 因为getchar( )读入的值为A,A+32是小写字母 a的ASCII码,因此putchar函数输出a。此时不 必定义变量c。 也可用cout

13、输出getchar函数得到字符的ASCII的 值: cout using namespace std; int main( ) int a; float b; char c;scanf(%d %c %f, /注意在变量名前要加地址运 算符return 0; 运行情况如下: 12 A 67.98(本行为输入,输入的3个数据间以空格相间) a=12,b=67.980003,c=A(本行为输出) 输入的整数12送给整型变量a,字符A送给字符 变量c,67.98送给单精度变量b。例3.5 求一元二次方程式ax2+bx+c=0的根。a,b,c 的值在运行时由键盘输入,它们的值满足b2-4ac0 。 根据

14、求x1,x2的算法。它可以编写出以下C+程序 : #include #include /由于程序要用到数学函数sqrt,故应包含 头文件cmath using namespace std; int main( ) float a,b,c,x1,x2;cinabc;x1=(-b+sqrt(b*b-4*a*c)/(2*a);x2=(-b-sqrt(b*b-4*a*c)/(2*a);cout”是一个比较符,称为关系运算符。 C+的关系运算符有: (大于) = (大于或等于) = (等于) != (不等于) 优先级相同 (低)3.6.1 关系运算和关系表达式关于优先次序: 前4种关系运算符(,)的优先 级别相同,后两种也相同。前4种高于后两种。例 如,“”优先于“”。而“”与“a+b 等效于 c(a+b)ab=c 等效于(ab)=ca=bc 等效于a=(bc) 用关系运算符将两个表达式连接起来的式子,称 为关系表达式。关系表达式的一般形式可以表示为表达式 关系运算符 表达式 其中的“表达式”可以是算术表达式或关系表达式 、逻辑表达式、赋值表达式、字符表达式。例如, 下面都是合法的关系表达式: ab, a+bb+c,(a=3)(b=5), ab)(b=0”的 值为“真”。在C和C+中都用数值1代表“真”,用0 代表“假”。如果有以下赋

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号