作业题:
设计TVM(地铁自动售票机)机软件。
输入站数,计算费用,计费规则,6站2元,7-10站3元,11站以上为4元。 输入钱数,计算找零(找零时优先找回面额大的钞票),找零方式为各种面额张数,可识别面额: 100,50,20,10,5,1
案例代码:
运行效果:
循环结构
什么是循环
代码的重复执行,就叫做循环。
循环的分类
无限循环:程序设计中尽量避免无限循环。(程序中的无限循环必须可控)
有限循环:循环限定循环次数或者循环的条件。
循环的构成
循环体
循环条件
当型循环的实现
while
语法:
说明:
1. 循环条件的返回值必须是布尔类型,在C语言中,布尔类型为真使用 非0 来表示,布尔类型为假使 用 0 表示。
2. {} 包起来的内容整体称之为为 循环体 。
3. 我们要在 循环体 中控制 循环条件 的变化,否则会产生死循环。
执行过程:
特点:
先判断,后执行,循环体语句有可能一次都不执行。
案例:
案例:
死循环
for..
语法:
说明:
1. () 中可以只保留两个分号,举例: (;;)
2. ① 是循环变量,我们需要赋初值,循环变量可以是列表,多个循环变量使用逗号分隔,举例: in t i=0,j=0
3. ② 是循环条件,用来限制循环的次数,循环条件支持关系表达式,如果加入逻辑表达式,会变成 复合表达式,举例: i < 10 && j < 10
4. ③ 改变循环条件,支持列表,这里可以使用赋值表达式,举例: i++,j++
5. 执行顺序:①②④③ --> ②④③ --> ②④③ ... --> ②,这里①只执行1次。
执行过程:
特点:
先判断,后执行,循环体语句有可能一次都不执行。
案例:
案例:
总结
for语句使用语法规则上,降低/避免因为忘记循环条件更新操作,而引起的产生无限循环的几率。
应用场合:for语句往往应用于循环次数事先可以确定的场景。
死循环
循环实现的三要素
循环变量初始化
循环条件
循环变量更新
案例:
直到型循环的实现
do..while
语法:
说明:
1. 循环条件的返回值必须是布尔类型,在C语言中,布尔类型为真使用 非0 来表示,布尔类型为假使 用 0 表示。
2. {} 包起来的内容整体称之为为 循环体 。
3. 我们要在 循环体 中控制 循环条件 的变化,否则会产生死循环。
执行过程:
特点:
先执行,后判断,循环体语句至少执行一次。
案例:
循环的嵌套
3种循环(while、do……while、for)可以互相嵌套。在前一个循环结构的内部又存在一个完整的循环 结构,如:
案例:
循环结构的典型应用场景
求累和:举例 1+2+3+4+..+100的和
求累乘:举例 1*2*3*4*..*100的积
求均值:举例: (1+2+3+4+..+100) / 100的值
求极值:举例: 12,34,55,2,66中的最大值或者最小值
元素遍历:常用于数组元素的遍历,比如:从 [1,2,3,4,5] 获取每一个元素。数组我们后续课程讲 解。
...
基础算法模型
1. 累加和
定义一个变量(sum),并赋初值为0;
用该变量累加(+=)每一个数据项(i)
当访问完每一个数据项,此时该变量的取值就是累加和的结果。
2. 累乘
定义一个变量,并赋初值为1;
用该变量累乘(*=)每一个数据项;
当访问完每一个数据项,此时该变量的取值就是累乘的结果。
3. 极值【知识点:数组】
定义一个变量,并赋初值为第一个数据项
从第二个数据项开始,一次性与该变量进行比较,如果大于/小于该变量,则将当前数据项的数 据赋值给该变量。
当访问完每一个数据项,此时该变量的取值就是求极值的结果。
补充
什么是素数
素数也被称作质数,只能被1和自身整除的数就叫做素数。
作业
上机题
1. 计算n以内所有正奇数的和 ? n值通过键盘输入
2. 计算 1 + 1/(2 * 3) + 1/(3 * 4) + ...+ 1/(n * (n + 1)) = ?直到最后一相值小于0.00001为至。
3. 计算1+1/2 - 1/3 + 1/4 - 1/5 ...+1/n= ? n通过键盘输入
4. 计算n的阶乘 ? n! = 123.....*n n值通过键盘输入
5. 输出半径为1~10的圆面积,面积大于100时停止
6. 求输入的十个整数中正数的个数及其平均值
7. 打印出100以内能整除7之外的的自然数
8. 打印乘法表
9. 我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三 值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
10. 从键盘上输入多个无符号整型数据,直到 0 结束 ,输出所输入数据中的最大值。
思考题
11. 判断一个数是不是回文数。(回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整 数。如:12321