【文档说明】计算机编程导论课件.ppt,共(32)页,229.788 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-77269.html
以下为本文档部分文字说明:
计算机编程导论课件计算机编程导论程序设计的3种基本结构(1)顺序结构(2)选择结构(3)循环结构顺序结构——是指程序流程按先后顺序执行,只有执行了前一步,才能执行后一步。例如火车在轨道上行驶,只有过了上一站点才能到达下一站点。选择结构——
又称分支结构,是指程序流程可以分几条路径执行。例如在一个十字路口处,可以选择向东、南、西、北几个方向行走。循环结构——又称重复结构,是指程序流程重复执行某一段代码。例如万米跑,围着足球场跑道不停地跑,直到满足条件时(25圈)才停
下来。计算机编程导论语句A语句B顺序结构流程图条件判断语句A真语句B假选择结构流程图条件判断循环体真假循环结构流程图3种基本结构的流程图计算机编程导论4.1循环结构设计问题【问题4-1】用户输入一个列表,求出列表中所有正偶
数之和。分析:由于不知道用户输入的具体数据及个数,因此需要在循环结构中进行判断和累加。计算机编程导论#ques4_1.pyli=input('请输入一个列表:')sum=0forxinli:ifx>0andx%2==0:sum+=xprint'sum=',sum程序输入
及运行结果:请输入一个列表:[2,3,4,-5,6,12]sum=24图4-1求列表的正偶数之和开始结束FalseTrue为sum赋初值0列表li中还有元素未取吗?将列表元素累加到sum中输入列表liFalseTrue取出的元素x是正偶数吗?输出sum计算机编程导论4.2循
环结构概述循环结构是一种重复执行的程序结构。实际应用中,常会碰到一些需要重复执行的步骤,如级数求和、统计报表等等。例如:(1)计算1+2+3+…+100,这是一个级数求和问题,需要重复执行100次,对100个数依次进行累加。(2)假设
1个班级中有n名同学,统计男同学和女同学各有多少名。该问题的求解需要重复执行n次,对每1个同学依次进行判断,同时统计男同学和女同学的人数。计算机编程导论4.2循环结构概述(3)给定2个整数,求它们的最大公约数和最小公倍数。例如:给定6和9,求最大公约
数时,循环过程从6依次递减至1,当循环到3时,判断得6和9都能被3整除,于是终止循环,求得最大公约数是3.;求最小公倍数时,循环过程从9依次递增至54,当循环到18时,判断得18同时能被6和9整除,于是终止循环,求得最小公倍数是18。Python提供了两种基本的循环结构语句——w
hile语句、for语句。计算机编程导论4.3while语句表达式循环体真(非零)假(零)计算机编程导论(1)while语句是一个条件循环语句,即首先计算表达式,根据表达式值的真、假来决定是否继续循环。(2)while语句的语法与if语句类似,要使用缩进来分隔子句。(3)while语句的条件表
达式不需要用括号括起来,但是表达式后面必须有冒号。(4)使用while语句编程通常会遇到两种题型,一种是循环次数事先确定的问题;一种是循环次数事先不确定的问题。说明:计算机编程导论4.3.1while语句用于有限循环【分析
】该问题使用循环结构解决,由于不确定用户即将输入几个正整数,因此属于不确定循环次数的问题。x>=0?将x累加到s中图4-3累加若干整数值的框图开始结束FalseTrue输入第一个整数x输入后续整数x输出s计算机编程导论#Exp4_1.pyprint'请输入若干正整数进行求和操作,当输入负数时结
束:'s=0x=input("请输入一个整数:")whilex>=0:s=s+xx=input("请输入一个整数:")print'整数之和=',s程序:程序运行结果:请输入若干正整数进行求和操作,当输入负数时结束:请输入一个整数:10请输入一个整数:20请输入一个整数:30计算机编程导论【分析】(
1)本题使用循环结构解决,每次循环从键盘输入一个字符,直到输入为“#”字符时停止循环。(2)由于输入的字符个数无法确定,因此循环次数不确定。是否计算机编程导论a=raw_input('请输入字符,如果输入#号则结束输入操作:')whilea!='#':#判断输入的是否是井号print'您输
入的字符是:',a#打印输入的字符#以下语句是再次输入一个新的字符a=raw_input('请输入字符,如果输入#号则结束输入操作:')else:print'输入结束'程序:提问:(1)循环结束后,变量a中的
值是什么?(2)如果循环体中没有下面这条语句会怎么样?a=raw_input('请输入字符,如果输入#号则结束输入操作:')计算机编程导论4.3.2while语句解决确定循环次数的问题确定循环次数的问题是指循环之前可以预知循环即
将执行的次数,为了控制循环次数,通常在程序中设置一个计数变量,每次循环,该变量进行自增或自减操作,当变量值自增到大于设定的上限值或者自减到小于设定的下限值时,循环自动结束。计算机编程导论4.3.2while语句解决确定循环次
数的问题【例4-3】编程计算1+2+3+…+100的值。分析:本题使用循环结构解决,每循环一次累加一个整数值,整数的取值范围为1~100。由于整数的范围是确定的,因此循环次数也是确定的。计算机编程导论4.3.2while语句解决确定循环次数的问题程序:#Exp4_3.py
i,s=1,0whilei<=100:s=s+ii+=1print'1+2+3+...+100=',si<=100?将i累加到s中图4-5从1累加到100的框图i、s赋初值1、0开始i自增1结束FalseTrue输出s框图:计算机编程导论4.3.2while语句解决确定循环次数的问题
分析:本题使用循环结构解决,每循环一次输出一个列表元素值,由于列表定义后,其长度是已知的,因此循环次数也是确定的。计算机编程导论4.3.2while语句解决确定循环次数的问题程序:#Exp4_4.pya_list=['a','b','mpilgrim','z','example']a_len=
len(a_list)i=0whilei<a_len:print'列表的第',i+1,'个元素是:',a_list[i]i+=1图4-6依次输出列表元素的框图创建列表a_list开始i自增1结束FalseTrue输出列表元素a_len,i赋初值i小于列表长度
吗?计算机编程导论4.3.3while语句用于无限循环当while语句的“表达式”永远不会为布尔假时,循环将永远不会结束,形成无限循环,也称死循环。使用while语句构成无限循环的格式通常为:whileTrue:循环体可以在循环体内使用break语句强制结束死循环。
计算机编程导论a=input('请输入字符,如果输入#号则结束输入操作:')whileTrue:print('您输入的字符是:',a)a=input('请输入字符,如果输入#号则结束输入操作:')ifa=='#':break程序:图4
-7无限循环的框图开始结束FalseTrue输入一个字符不是字符#吗?True输出该字符表达式恒为真计算机编程导论ns321132112111计算机编程导论【分析】(1)以上问题属于数学中的级数
求和问题,是使用循环结构解决的一类常见问题。(2)级数求和问题编程的重点在于通过观察表达式的规律,分析每次循环都要完成的事件。通常将这些事件进行局部分解,称为“通式”。该题的通式有以下几个:(1)分母的通式:(2)变量i的通式:(3)当前项的通式:(4)求和的通式:mu=mu+i
i=i+1t=1.0/mus=s+t计算机编程导论i=1mu=0s=0.0n=input('请输入n值:')#或用书上的代码whilei<=n:#判断是否计算到表达式的最后一项mu=mu+i#求分母的通式i+=1
#i自增的通式t=1.0/mu#求当前项的通式s=s+t#求和的通式print's=',s#循环结束后,打印总和程序:提问:(1)变量i、mu、s的初值只能是1、0、0.0吗?(2)循环体内语句的先后顺序可以随意调换吗?计算机编程导论)12(53219753432175332153
213112nn计算机编程导论分析:该题使用循环结构来解决,只有当某一项小于1e-8时才停止迭代,因此循环次数是不确定的。观察表达式中相邻两项的规律是——①前一项的分子乘以1个整数值“
i”可得后一项的分子,而这个整数值“i”随着循环次数由1递增到n;②前一项的分母乘以“2*i+1”可得后一项的分母。该题的通式有以下几个:(1)分子的通式:zi=zi*i(2)分母的通式:mu=mu*(2*i+1)(3)变
量i的通式:i=i+1计算机编程导论程序:#Exp4_7.pyi=1zi=1.0mu=1.0t=1.0s=0.0whilet>=1e-8:s=s+tzi=zi*imu=mu*(2*i+1)t=zi*1.0
/mui+=1print'PAI=',(2*s)判断t>=1e-8?将t累加到s图4-9求π近似值的框图开始结束FalseTrue初始化zi、mu、i、t、s求分子zi、分母mu求当前项ti自增1输出π的近似值计算机编程导论
【分析】(1)本题需要对1~100范围内的所有数一一进行判断。(2)本题的循环次数确定是100次。(3)在每次循环过程中需要用if语句进行条件判断。因此本题是循环嵌套选择的结构。判断i<=100?图4-10整除问题的框图开始结束FalseTruei自增1为i赋初值
1判断i是否能被7整除但不能被5整除?TrueFalse输出i计算机编程导论i=1#i既是循环变量,同时又是被判断的数print('1~100之间能被7整除,但不能同时被5整除的所有数是:')whilei<
=100:#判断循环是否结束ifi%7==0andi%5!=0:#判断本次的i是否满足条件printi,'\t'#打印满足条件的ii+=1#每次循环i应自增程序:提问:请问语句“i+=1”可以和语句“printi,'\t'”对齐吗?计算机编程导论【分
析】(1)本题需要对100~999范围内的所有数一一进行判断。(2)本题的变量i既是循环变量,同时也是被判断的数。(3)每次循环过程中需要用if语句进行条件判断。因此本题也是循环嵌套选择的结构。计算机编程导论提问:变量i是一个三位整数,例如i=123(1
)请写出分离i的百位数的表达式。(2)请写出分离i的十位数的表达式。(3)请写出分离i的个位数的表达式。i=100print('所有的水仙花数是:')whilei<=999:#判断循环是否结束bai=int(i/100)#分离i的百位数shi=int((i%100)/10)#分离i的十位数ge=i
nt(i%10)#分离i的个位数ifbai**3+shi**3+ge**3==i:#判断条件printi,'\t',#打印水仙花数i+=1#变量i自增程序:计算机编程导论第7次上机作业:4.14.3