欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > PPT文档下载
 

《程序设计初步》课件

  • 资源ID:16087199       资源大小:532KB        全文页数:36页
  • 资源格式: PPT        下载积分:9.9积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要9.9积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

《程序设计初步》课件

第3章 程序设计初步,3.1 面向过程的程序设计和算法 3.2 C+程序结构和语句 3.3 C+的输入与输出 3.4 C+程序的控制结构 3.5 程序举例,在面向过程的程序设计中,程序设计者必须指定计算机执行的具体步骤,清晰程序要“做什么”,清晰“怎么做”,并写出一个个语句,安排好它们的执行顺序。 步骤要合理,保证它的正确性和具有较高的效率,这就是算法(algorithm)需要解决的问题。,3.1 面向过程的程序设计和算法,一个面向过程的程序应包括以下两方面内容: (1) 对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构(data structure)。 (2) 对操作的描述。即操作步骤,也就是算法(algorithm)。算法是处理问题的一系列的步骤。 对于面向过程的程序,可以用下面的公式表示: 程序=算法+数据结构 如:处理的数据如何读入与存放?如何处理?结果如何存放与输出?(必须考虑与设计清晰!) (3)算法可分为两大类别:数值算法和非数值算法。数值算法的目的是求数值解。非数值算法包括的面十分广泛,最常见的是用于事务管理领域。 C+既支持面向过程的程序设计,又支持面向对象的程序设计。无论面向过程的程序设计还是面向对象的程序设计,都离不开算法设计。,3.1.1 算法的概念,1、自然语言 2、流程图 3、伪代码 介于自然语言和计算机程序设计语言之间的文字和符号来描述算法。一般无固定、严格的语法规则,只须把意思表达清楚,并且要书写的格式要写成清晰易读的形式。 4、计算机语言表示,3.1.2 算法的表示,1、程序结构 一个程序包含一个或多个程序单位,C+程序单位一般由3个部分组成: (1)预处理指令。如#include和#define指令。 (2)全局声明,如果需要时。 (3)函数。 例3. 1: #include using namespace std; int a=3; int main() float b; b=4.5; cout<<a<<b; return 0; ,3. 2 C+程序结构和语句,2、语句 (1)说明语句 (3)空语句,单独的一个分号。 (4)复合语句 一对 之间的若干个语句的组合,如:,3. 2 C+程序结构和语句,如 int a;,(2)执行语句 控制语句 函数调用语句,如 sort(x,y,z); 表达式语句,如 i=i+1;,t=a; a=b; b=t; ,相对内存,处理的数据如何进行输入和输出? 输入和输出并不是C+语言中的正式组成成分。C和C+本身都没有为输入和输出提供专门的语句结构。输入输出不是由C+本身定义的,而是在编译系统提供的I/O库 中定义的。 C+的输出和输入是用“流”(stream)的方式实现的。下图分别表示C+通过流进行输入输出的过程。,3.3 C+的输入与输出,有关流对象cin、cout和流运算符的定义等信息是存放在C+的输入输出流库中的,因此使用cin、cout和流运算符,就必须: #include 为了叙述方便,常常把由cin和流提取运算符“”实现输入的语句称为输入语句或cin语句; 把由cout和流插入运算符“<<”实现输出的语句称为输出语句或cout语句。 流运算符相当于一个输入或输出函数,由对象调用之。,cout语句的一般格式为 cout变量1变量2变量n; 输出流中的数据在系统默认的设备(一般为显示器)输出。,3.3.1 输入流与输出流的基本操作,例如: int i; float x; cinix; cout<<i<<x; 运行时输入: 12 34.5, 若输入:34.5 12 ,,char c1,c2,c3; cinc1c2c3;,若输入:abc,则c1、c2、c3的值分别为字符a、b、c 若输入: abc,则c1、c2、c3的值分别为字符、a、 若输入:a b c,则c1、c2、c3的值分别为字符a、b、c,则i的值为12,x的值为34.5,则i的值为34,x的值为0.5,输出为:340.5,有时为了输入输出特殊的要求,如在输出实数时规定字段宽度,只保留两位小数,数据向左或向右对齐等。 C+提供了在输入输出流中使用的控制符(有的书中称为操纵符),见书中表3.1,P.54页。 需要注意的是: 如果使用了控制符,在程序单位的开头除了要加iostream头文件外,还要加iomanip头文件。,3.3.2 在输入流与输出流中使用控制符,设置输出内容的格式 用字符和字符串 cout<<n<<t<<m<<“n”; cout<<“n=”<<n<<“,m=”<<m<<n;,1020 n=10,m=20,用setw()函数 ( #include ) cout<<setw(4)<<n<<setw(4)<<m<<n; setw只对其后一个输出项有效,10 20,用科学计数法表示实数(纯小数,小数后6位) cout.setf(ios:scientific,ios:floatfield);,输出十六进制/八进制整数 cout<<oct<<n<<t<<hex<<m<<n; 只适用于整型数。,12 14,如 3.140000e+000,C+中用于输入和输出单个字符的函数: 其中最常用的有getchar函数和putchar函数。 1、putchar函数(字符输出函数) putchar函数的作用是向终端输出一个字符。如 putchar(c); 它输出字符变量的值。 2、getchar函数(字符输入函数) 此函数的作用是从终端输入一个字符。其一般形式为getchar( ),函数的值就是从输入设备得到的字符。,3.3.3 用getchar和putchar函数进行字符的输入和输出,例3.2 输出单个字符。 #include /或者 #include using namespace std; int main( ) char a,b,c; a=B;b=O; c=getchar( ); putchar(a);putchar(b);putchar(c+32);putchar(n); return 0; ,用putchar可以输出转义字符。 如果从键盘输入大写字母A并按回车键,第三个输出的结果在屏幕上实际显示就是小写字母a。,请注意,getchar( )只能接收一个字符。getchar函数得到的字符可以赋给一个字符变量或整型变量,也可以不赋给任何变量,作为表达式的一部分。,3. 4 C+程序的基本结构,1. 顺序结构 2. 选择结构 3. 循环结构,一、条件语句 1. 单选条件语句(if语句) 语句格式:条 件 if(表达式) S 执行过程,3.4.1 选择结构语句,例3.3 从键盘输入一个数,若该数为正数,输出1。,2. 双选条件语句(if.else语句) 语句格式: if(表达式) S1 else S2 执行过程,例3.4 从键盘输入一个数。若该数为正数,输出1; 否则输出-1。,3.4.1 选择结构语句,3. 嵌套的条件语句 语句格式: if(表达式1) S1 else if(表达式2) S2 else if(表达式3) S3 else S4 执行过程,例3.5 从键盘输入一个实数。若该数为正数,输出1; 若为负数输出-1;否则,输出0。,3.4.1 选择结构语句,if后面的表达式可以是逻辑表达式、关系表达式、赋值表达式等,其值非0时等同于1,表示条件成立;否则为0表示条件不成立。 if和else后的语句可以是单个语句,也可以是复合语句,还可以是空语句。 if与else的配对规则:else总是与其前面的同一个块中的最近的尚未配对的if配对。 例如:int a=5,b=10,c=20,d=0;if(a=b) if(b5)a=30;d=100;else d=200;else d=300;,a的值为30, d的值为100,3.4.1 选择结构语句,例3.6 求一元二次方程ax2+bx+c=0的解。其中系数a、b、c由键盘输入。 可用数学库函数sqrt(参数)求参数的平方根, 此时应有头文件:#include 例3.7 判断从键盘输入的字符的种类。假设字符分为5类:数字、大写字母、小写字母、控制字符(其ASCII值小于32)和其他字符。,3.4.1 选择结构语句,基本格式: switch (表达式) case 常量表达式 1:语句序列1 case 常量表达式 2:语句序列2 case 常量表达式 n:语句序列n default : 语句序列n+1 ,执行过程 以case中的常量表达式的值为入口标号,由此开始顺序执行,遇到break语句时结束switch语句的执行。,二、开关语句,switch 后面的表达式通常为变量表达式; case 后面的表达式必须为常量表达式; 上述表达式值的类型通常为整型; default分支不是必须的,习惯上放在最后面,当放在前面满足条件被执行时,若没有break,则后续case会被继续执行,不管是否匹配。 例如:,当a的值为5时,输出25150 当a的值为10时,输出150 当a的值为15时,输出5,二、 开关语句,int a,m=15,n=10;cina;switch(a) default:cout<<m-n; case 5:cout<<m+n; case 10:cout<<m*n;break;,int a,m=15,n=10;cina;switch(a) case 5:cout<<m+n; case 10:cout<<m*n;break; default:cout<<m-n;,例3.8 设计一个程序,按下列规则,将从键盘上输入的百分制成绩,转换成对应的五分制成绩,并输出。转换规则:90分以上为A;8089分为B;7079分为C;6069分为D;60分以下为E。,二、开关语句,基本格式:表达式1 ? 表达式2 : 表达式3 运算规则: 先计算表达式1的值,若为1,则计算表达式2的值,否则计算表达式3的值。 条件运算符要求有3个操作对象,称三目(元)运算符,唯一的三目运算符。 应用:代替简单的if.else语句。 例如: max=a=b?a:b;等同于: if(a=b)max=a; else max=b;,三、条件运算符,三目运算符允许嵌套使用,如 ab?ac?a:c:bc?b:c;,当需要程序重复地做相似工作时,可通过循环语句实现。 该类问题通常有4个要素: 循环变量的初始化; 循环的条件; 循环体 (循环过程中要做的事); 改变循环控制变量的值。 例如:求S=1+2+3+.+100的值。 算法:S=S+i(i=1,2,3,.,100),S=0i=1 i<=100 S=S+i(S+=i) i=i+1(i+),3.4.2 循环结构语句,一、while 语句 语句格式 while (表达式) S ,执行过程 先判断表达式的值,非 0 时执行语句S;然后再判断表达式的值,直至表达式的值为0时,退出循环。,例3.9 用while语句求S=1+2+3+.+100的值。,3.4.2 循环结构语句,二、do.while 语句 语句格式 do S while (表达式);,执行过程 先执行语句,再判断条件;当表达式非0时,继续执行循环体;直至表达式为0时,退出循环。,例3.10用do.while语句求S=1+2+3+.+100的值。,3.4.2 循环结构语句,三、 for 语句 语句格式for (表达式1;表达式2;表达式3) S ,执行过程执行表达式1;执行表达式2 (循环条件);表达式2 为非0时,先执行循环体S,然后执行表达式3,再执行表达式2 ;当表达式2为0时,退出循环。,例3.11 用for语句求S=1+2+3+.+100的值。,3.4.2 循环结构语句,例3.12 用迭代法求x= 的近似值。,算法(迭代公式):Xn+1=(Xn+a/Xn)/2 ; 当| Xn+1-Xn | 0为止。 可设定一个起始初值X0(如a/2)。,3.4.2 循环结构语句,四、 循环嵌套 循环语句的循环体又包含一个循环语句。 例3.13:打印如下所示的九九乘法表: 1 2 3 4 5 6 7 8 91 12 2 43 3 6 94 4 8 12 16.9 9 18 27 36 45 54 63 72 81,3.4.2 循环结构语句,1、break 语句 结束循环语句或switch语句的执行。 2、continue 语句 结束本次循环,进入下一次循环。 例如:比较下列程序段的差异。 for(int i=1;i<=10;i+) for(int i=1;i<=10;i+) if(i%3=0)break; if(i%3=0)continue; cout<<i<<t; cout<<i<<t; ,3.4.3 控制执行顺序的语句,图3.18 图3.19,3、exit()和abort()函数 (1) exit()函数格式: exit(表达式); (2) abort()函数格式: abort() ; 相同:终止程序的运行,将控制返还给操作系统; 使用头文件stdlib.h 。 区别:exit()函数有参数,abort()函数无参数; exit()函数做结束前的收尾工作,abort()函 数直接结束C+程序的运行。,3.4.3 控制执行顺序的语句,例3.14 设计一个密码登录程序,用户至多尝试三次密码。 算法(流程图),程序段: int pw=999,count=0,password; coutpassword; if (pw=password) cout<<“Welcome!n”; exit(0); else cout<<“Input again:”; count+; cout <<“You failed!n”;,3.4.3 控制执行顺序的语句,3.5 程序举例,例3.16 求2100之间所有的素数。,例3.17 设计一个程序,求键盘输入的整数的各位数字之和。,例3.18 设计一个程序,求前4项之和为120、首项和公差都 不为0的正整数等差序列。,例3.19 用下面公式求的近似值。/41-1/3+1/5-1/7+直到最后一项的绝对值小于10-7为止。,作业:第3章所有例题。习题12、15、17、18、21,

注意事项

本文(《程序设计初步》课件)为本站会员(san****019)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!