当前位置:首页 >> 其它课程 >> 循环结构初步

循环结构初步







陈雪兵



复旦大学附属中学

问题一:

判断一个正整数x是否为偶数

关键点: 什么叫 “偶数”?

True

x是偶数吗?

False

/>
输出 Yes

输出 No

问题一:

判断一个正整数x是否为偶数

关键点: 什么叫 “偶数”?

x = Val(InputBox("请输入一个整数: ")) if x Mod 2 = 0 Then Print "Yes" else Print "No" end if

问题二:

打印1~100内的所有偶数

先简化为打印一个偶数

True

x是偶数吗?

False

输出 x

???

问题二:

打印1~100内的所有偶数

先简化为打印一个偶数

x是偶数吗?

N

Y
打印 x

if x mod 2=0 then Print x end if

问题二:

打印1~100内的所有偶数

判断数字 1, 不打印

判断数字 2, 打印

判断数字 3, 不打印

反复的判断和打印
什么时候停下来?

问题二:

打印1~100内的所有偶数

x<=100 吗?
True 重复判断和打印

False

选择与循环结构的比较
循环结构 选择结构

重复比较

单次比较

VS

当型循环 Do While <条件> <语句> Loop
其意义为: 当条件表达式的值为True时,反复执行<语句>。

Do While语句的执行过程为: ①判断布尔表达式的值,如果其值为真,执行步骤2, 否则执行步骤④; ②执行循环体语句; ③返回步骤① ; ④结束循环,执行后面的下一个语句。

问题二:

打印1~100内的所有偶数

打印出所有的数

x=1 Do while x<=100 Print x Loop

症状: 陷入死循环

原因: x的值没有变化

x<=100永远成立

修正: 使得x发生变化,逐渐地
由1变化到2,3,…,101. 一句 x=x+1 增加

问题二:

打印1~100内的所有偶数

x 称为“计数器”, 1 称为“步长”

打印出所有的数

打印出所有的偶数

x=1 Do while x<=100 Print x
x=x+1 Loop

x=1 Do while x<=100 if x mod 2=0 then Print x end if
x=x+1 Loop

问题二:

打印1~100内的所有偶数

不同的 “步长”

打印出所有的偶数

打印出所有的偶数

x=2 ' x初始化 Do while x<=100 Print x x=x+2 Loop

x=1 ' x初始化 Do while x<=100 if x mod 2=0 then Print x end if x=x+1 Loop

问题二:

打印1~100内的所有偶数
通用做法 知道数学规律

x=1 Do while x<=100 if x mod 2=0 then Print x endif x=x+1 Loop
通用性好

x=2 ''初值为0对不对? Do while x<=100 Print x x=x+2 Loop

循环次数少,运行速度快。

问题三:

生活中的例子

有一个爱哭的小娃娃,有一天他要求父母给买一个玩具, 可是父母不同意,于是他就开始一个循环: Do While ( 父母不给买玩具) 我哭 Loop

问题三:

生活中的例子

如果父母铁了心就是不给买怎么办?这时小娃娃不可能 无限制哭下去(死循环),还需有一个能结束的条件: Do While (父母不给买玩具) and (还没有哭累) 我哭 Loop

问题:如何表示哭累的程度?

问题三:

生活中的例子

为表示是否哭累,我们假设小娃娃有一个疲劳度,每哭 一次疲劳度加1,当疲劳度到达某个极限数值,比如100 时,可怜的小娃娃累了…… 程序如下: 疲劳度初始化为0 Do While (父母不给买玩具) and (疲劳度 < 极限值) 我哭 疲劳度=疲劳度+1 loop

问题三:

生活中的例子

如果父母中途同意了呢?

为表示是否哭累,我们假设小娃娃有一个疲劳度,每哭 一次疲劳度加1,当疲劳度到达某个极限数值,比如100 时,可怜的小娃娃累了…… 程序如下: 疲劳度初始化为0 Do While (父母不给买玩具) and (疲劳度 < 极限值) 我哭 if 爸妈同意购买,则 break (立即退出循环 ) end if 疲劳度=疲劳度+1 loop

练习一: 打印出所有的三位回文数

x=100 ' x初始化 Do while x<=999 if …条件… then Print x end if x=x+1 Loop

练习二: 打印出正整数N的所有因子
N = Val(InputBox("请输入一个正整数")) x = …???... ' x初始化为N的最小因子

'如果这句 x=1 不写,系统自动设置为0, '下面循环的时候会出现“除零错误”。

Do While x <= N if …条件… then Print x end if
x=x+1 Loop
关键点: 条件里的被除数和除数不要写反

练习三: 尼克切斯定理

任何一个正整数N的立方,都可以写成 连续N个奇数的和,例如:2^3=3+5, 4^3=13+15+17+19等。 从键盘输入N,请编程输出这N个连续 奇数。为防止电脑崩溃,N不要超过1000。

提示:先找一找第一个和最后一个奇数的规律

提示: 找出这N个奇数的开始值和结束值 即把开始值和结束值写成关于N的表达式 N = Val(InputBox("请输入一个正整数")) i=开始值 Do while i<=结束值 if i mod 2=1 then Print i endif x=x+1 Loop
找规律,红色一列数字和N之间是什么规律? N=1时,N^3=1 N=2时,N^3=3 + 5 N=3时,N^3=7 + 9 + 11 N=4时,N^3=13+15+17+19 N=5时,N^3=21+23+25+27+29 …… 把红色的数字写成关于N的表达式

课后练习四

阅读大赛

FDFZ是一个高度现代化的农场,饲养了许多优质奶牛。为了使奶牛尽可能的 高产,贪婪的农场主经常为奶牛们举行各种文体活动,例如跑步比赛、阅读比赛、 猜数比赛等等。 阅读比赛的内容是读一本 N (1 ≤ N ≤ 10,000) 页的书,比谁读的最快。某参赛 奶牛的阅读速度为每分钟speed (1 ≤ speed ≤ 100) 页,最长连续读书的时间为 T (1 ≤ T ≤ 100) 分钟,需要休息的时间为 rest (1 ≤ rest ≤ 100) 分钟。参赛奶牛只能 一次连续读 T 分钟,接下来她必须休息 rest 分钟,才能继续读书。请你计算出这 头奶牛读完书需要的时间,结果保留到整数。 输入 第 1 行: 一个整数 N 第 2 行: 三个整数 speed , T , rest 分别表示 阅读速度、最长持续阅读时间、休息时间 输出 一个整数,表示奶牛读完书需要的时间,不够一分钟时算为一分钟。 样例见下页

样例输入 10 3 3 3 10 6 1 5 1583 67 83 1 538 4 10 15

对应输出 及 说明 7 说明:一共10页,读3分钟,休息3分钟,再读1分钟,一共7分钟。

7 说明:一共10页,读1分钟,休息5分钟,再读1分钟,一共7分钟。

24 说明:一共1583页,读23.6分钟,算为24分钟,中间没有休息。

330 说明:一共538页,中间共休息13次(每次15分钟),总共330分钟。

N=val(inputbox("请输入总页数")) speed=val(inputbox("请输入阅读速度")) T=val(inputbox("请输入最大连续阅读时间")) rest=val(inputbox("请输入休息时间")) cost=…???... ''总花费时间初始化 busy=…???... ''连续阅读时间初始化 Do while N>0 ''只要还没读完,就一直循环。 busy=…???... ''每过1分钟,连续阅读时间增加。 cost=…???... ''每过1分钟,总花费时间增加。 N=…???... ''每过1分钟,未读页数减少。 if N<=0 then ''如果中途就读完了,则立刻退出循环。 exit do ''当体力耗尽,同时又正好读完…… endif if busy=T then ''如果连续阅读时间达到上限T,则要休息了。 cost=…???... ''rest只会加1次 busy=…???... ''休息完毕,准备重新开始阅读之前,busy变成多少? endif loop Print cost

注:不要用time这个单词作为变量名,VB里已经有固定的含义了。

课后练习五

跑步训练

为了能在下一次的奶牛运动会跑步比赛中有好的发挥,奶牛贝茜在一条山路 上开始了她的训练。贝茜希望能在每次训练中跑得尽可能远,不过她也知道必须 遵守农场中的一条规定:奶牛独自进山的时间不得超过M秒(1 ≤ M ≤ 10,000)。 整条山路被贝茜划分成T个长度相同的小段(1 ≤ T ≤ 10,000 ),并且,贝茜用 S_i表示第i个小段的路况。S_i为u,f,d这3个字母之一,它们分别表示第i个小段 是上坡、平地,或是下坡。 贝茜要花U秒(1 ≤ U ≤ 100)才能跑完一段上坡路,跑完一段平地的耗时是F秒 (1 ≤ F ≤ 100),跑完一段下坡路要花D秒(1 ≤ D ≤ 100)。注意,沿山路原路返回的 时候,原本是上坡路的路段变成了下坡路,原本是下坡路的路段变成了上坡路。 贝茜想知道,在能按时返回农场的前提下,她最多能在这条山路上跑多远。 输入格式: 第1行:5个用空格隔开的整数:M,T,U,F,以及D 第2..T+1行:第i+1行为1个字母S_i,描述了第i段山路的路况

输入样例: 13 5 3 2 1 u f u d f 输入说明:贝茜跑步的最大耗时为13秒(这么短…...),她跑步的山路一共被划 成5段。贝茜跑完一段上坡路的耗时为3秒,平地为2秒,下坡路为1秒。 山路各段的走向,如下图所示: _/\_ / 输出格式: 输出1个整数,为贝茜在按时回到农场的前提下,最多能跑到多远。 ( “多远”是指单程的长度。来回总时间不能超过M。) 输出样例: 3 输出说明: 贝茜跑完山路的前3段,然后返回,总耗时为3 + 2 + 3 + 1 + 2 + 1 = 12 秒,只比她能在外面呆的时限少1秒。如果她跑得更远,就无法按时回到农场。

Dim c as string M=val(inputbox("请输入总时间")) T=val(inputbox("请输入T")) U=val(inputbox("请输入U")) F=val(inputbox("请输入F")) D=val(inputbox("请输入D")) ans=0 '' 结果ans初始化 Do while M>=0 '' 跑步时,总时间不能小于0 c=inputbox("请输入c") '' 不断读入路况c,一边读入一边处理 if c="f" then M=…???... '' 如果是平坡,总时间如何变化? endif …???... '' 如果是上坡,总时间如何变化? …???... '' 如果是下坡,总时间如何变化? …???... Loop Print …???...


更多相关文档:

实验七-循环结构初步了解

程序设计》 《C 程序设计》实验报告实验序号:实验 7 学号 实验项目名称:循环结构初步了解信计 姓 名 专业、班 实验时间 实验地点 教师成绩等级评定 指导教师 一...

算法初步第四课时(循环结构)

人教版必修5第一章算法初步第四课时人教版必修5第一章算法初步第四课时隐藏>> 算法初步 第四课时:循环结构学习要求 1.掌握两种循环结构的程序框图的画法. 2.能...

初中信息技术循环结构

初步掌握”的基础上,旨在 让学生通过对循环结构的学习,提高运用循环结构分析解决实际问题的能 力, 初步感受使用循环结构编程的便利, 激发学生对信息技术学科的求知...

1、1、2.循环结构教案(必修三)

循环结构 1.1.2 编写人 张彦东 编号 教研主任签字 循环结构第 4 课时 日期 班级 备课组长签字 小组 姓名 成绩 一、学习目标 : 初步认识循环结构的简单程序,理...

九年级第八课《循环结构-FOR循环》教学设计_图文

九年级第八课《循环结构-FOR循环》教学设计_其它课程_初中教育_教育专区。九...学生初步理解了 VB 中的对象、属性、事件、事件处理过程等 基础的概念,能够熟练...

算法初步全章 1.4 循环结构

教学重点:运用流程图表示循环结构的算法. 教学难点:规范流程图的表示以及循环结构算法的流程图. 教学过程: 一.问题情境 1.情境:北京获得了 2008 年第 29 届奥运...

1.2.3循环结构(第2课时)

2.右图表示的算法解决的问题是 第 2 题图 3 江苏丰县顺河中学高一数学组导学案其流程图输出的结果为 必修三第一章算法初步 ,把该流程图改为当型循环结构. ? ...

循环结构的嵌套

循环结构是程序设计三大基本结构中最难 的一种,循环嵌套是循环结构的高级应用。...(普通高中数学课程必 修 3 第一章《算法初步》知识与本节知识有着一定的相关...

高中信息技术 ForNext循环语句初步教案 教科版

会使用程序设计语言实现循环控制结构。 (2)理解模块化程序设计的基本思想,初步掌握其基本方法。 (3)初步掌握调试、运行程序的方法。 (4) 在使用某种面向对象程序...

绵中实校小练习54 循环结构

绵阳中学实验学校高 2012 级数学小练习 54 必修 3 命题人:王婷婷 审题人:钱敏 陈立勇 第三章 算法初步 算法的基本结构 --- 循环结构 班级 一.选择题 1....
更多相关标签:
钢结构入门与预算初步 | 结构初步设计说明 | 结构初步设计深度 | 结构初步设计深度要求 | 钢结构初步设计说明 | 结构初步设计 | 结构初步设计深度图样 | 概率初步知识结构图 |
网站地图

文档资料共享网 nexoncn.com copyright ©right 2010-2020。
文档资料共享网内容来自网络,如有侵犯请联系客服。email:zhit325@126.com