程序设计方法学04 教师用书_第4章_循环结构 201702
第四章《程序设计基础》第4课时《运用循环结构描述问题求解过程教学设计粤教版高中信息技术必修1

-循环结构在实际编程中的应用场景。
-如何避免循环结构中的常见错误,如死循环、无限循环等。
- while循环和for循环在实际问题中的选择策略。
请同学们认真完成作业,通过实践提高自己的编程能力。在完成作业的过程中,如有疑问,可以随时向老师和小组成员请教。期待大家在信息技术学科上取得更好的成绩!
6.设想六:评价反馈,促进成长
教学结束后,教师对学生的学习情况进行评价,包括知识掌握、团队合作、创新能力等方面。评价应以鼓励为主,关注学生的个体差异,促进他们在信息技术学科上的持续成长。
四、教学内容与过程
(一)导入新课
1.教学活动:以一个简单的数学问题“计算1到100的累加和”作为引入,让学生思考如何利用已学的程序设计知识解决这个问题。
二、学情分析
在本章节的学习中,学生已经掌握了程序设计的基本概念、顺序结构以及选择结构,具备了初步的程序设计能力。在此基础上,他们对循环结构的学习将进入一个新的阶段。由于循环结构在算法中的广泛应用,学生需要在此阶段加强对循环概念的理解,以便能够熟练地运用循环结构解决实际问题。
考虑到学生的认知水平,他们对循环结构的理解可能还存在一定的困难。部分学生对循环变量的设置、循环条件的判断以及循环体的编写可能感到困惑。因此,在教学过程中,教师应关注这些难点,通过生动的案例和形象的解释帮助学生克服困难。
2.教师示范:通过案例演示,展示如何使用while循环和for循环解决实际问题,如计算1到100的累加和。
3.知识拓展:介绍循环结构的其他应用场景,如遍历数组、实现排序算法等。
(三)学生小组讨论
1.教学活动:将学生分成小组,每组讨论以下问题:
- while循环和for循环有哪些区别和联系?
第02讲_第四章_程序设计的基本方法

INC指令不影响CF标志位,指令选择错误。
25
Hale Waihona Puke 例:分析以下程序段,指出所完成的功能。 DATA SEGMENT X DW n Y DW 0 OVERF DB 0AH,0DH,‘IS overflow!$’ DATA ENDS ┋ MOV Y,-1 MOV AX,X CMP AX,0 JZ EXIT1 ; X=0转EXIT1(将0->Y) ADD AX,1000H ; 如(X)≠0,则(X)+1000H→AX JO OVER ; 溢出转OVER(打印字串,-1→Y) JNS EXIT1 ; 和为正转EXIT1 NEG AX ; 为负求补,即X的绝对值 EXIT1:MOV Y,AX ; 结果(AX)→Y EXIT0: MOV AH,4CH INT 21H OVER: LEA DX,OVERF MOV AH,9 INT 21H JMP EXIT0
几种程序设计方法: 顺序程序设计 分支程序设计 循环程序设计 子程序的设计 本章主要讲解: 各种转移指令格式、功能及使用条件 分支程序设计 循环程序设计 子程序的设计
3
几种框图符号 1. 起始、终止框
Y
2.判断框 3.处理说明框 4.子程序或过程调用框
N
1
2
5. 流向框
1013h进栈1138hip下一条指令ip1013h下一条指令cs1000h8384简单条件转移指令jzjezf1时转移jnzjnezf0时转移jssf1时转移jnssf0时转移joof1时转移jnoof0时转移jccf1时转移jnccf0时转移jpjpepf1时转移jnpjpopf0时转移运算结果为0运算结果不为0运算结果为负数运算结果不为负数运算结果溢出运算结果没有溢出运算产生进位借位运算没有产生进位借位结果低8位1的个数为偶数结果低8为1的个数为奇数8586无符号数大小比较cmpcf有没有借位zf相不相等cf
第4章 循环结构程序设计

i++; }
4.2.2 for 语句的使用
3个表达式都可以省略。 for(;;) 即不设初值,不判断条件(认为循环条件永远为真),
循环变量不增值,无终止地执行循环体语句。
4.2.2 for 语句的使用
for (sum=0 ; i<=100; i++) sum=sum+i;
控制输出3行
for (j=1;j<=4;j++,n++)
{ if (n%4==0) printf (“\n”);
printf ("%d\t",i*j);
}
printf("\n");
return 0;
}
#include <stdio.h>
int main()
{ int i,j,n=0; for (i=1;i<=3;i++)
for(i=1;i<=30;i++) { scanf(“%f,%f,%f”,&score1,&score2,&score3); aver=(score1+score2+score3)/3; printf(“aver=%6.1f”,aver); }
➢大多数的应用程序都会包含循环结构
➢循环结构和顺序结构、选择结构是结构 化程序设计的三种基本结构,它们是各 种复杂程序的基本构造单元
scanf(“%d”,&i);
scanf(“%d”,&i);
while(i<=10)
do
广教版高中信息技术 算法与程序设计第四章第二节 《for循环语句的应用——用穷举法设计程序》说课课件

print …
Next cz Next by Next ax
教学过程
将穷举法设计程序能够合理的进行优化的重要性和必要性。
礼品问题
7
班里要举行班级聚会,要用600元班会费为50名同学
准备50份礼品进行抽奖。你要负责去购买礼品,选定了公
程序优化
仔(20元/个)、水杯(15元/个)和笔筒(10元/个)三类商品。 要求刚好用完600元买50件礼品(每种礼品至少一件),
Next a
教学过程
5
难点突破
防范黑客用穷举法破解密码的对策。 学生小组讨论,总结归纳。
右侧表格是用P4 3.0CPU本地穷举 破解密码的时间对照表,请从这些数据 中总结出穷举法破解密码所用时间与哪 些因素有关?为什么?
教学过程
5
教师对学生们的总结加以汇总完成了突破难点
难点突破
穷举法设计程序破解密码所用时间与两个因素有关:
’for-next循环:表示密码的十位a从0-9变化
For b =0 to 9 ’for-next循环:表示密码的个位b从0-9变化
If 10*a+b = mima then msgbox(“密码是”+cstr(a*10+b)) ’对于ab的每一种组合都要与随机产生的两位密码相比较
Next b Next a
For z = 1 to 48
If …… then…….
If ……then…….
Next z
Next z
Next c
Next c
Next x
Next x
For x = 1 to 28 For y =1 to 38 z=50-x-y If ……then…….
Next y Next x
汇编语言程序设计(第四版)第4章【课后答案】【精选】

汇编语言程序设计 第四版【课后习题答案】--囮裑為檤第4章 基本汇编语言程序设计〔习题4.1〕例题4.2如果要求算术右移8位,如何修改程序。
〔解答〕思路: 首先由最高位字节向次低位字节传送……次低位字节向最低位字节传送(共7次);再判最高位字节符号位,如为0,送00h 到最高位字节;如为1,送ffh 到最高位字节。
传送可参考例题4.2,不过应从第一号字节送第零号字节,……最高位字节向次低位字节传送;也可以用循环来完成: .model small .stack 256 .dataqvar dq 1234567887654321h .code .startup mov cx,7 mov si,1again: mov al, byte ptr qvar[si] mov byte ptr qvar[si-1],al inc siloop again test al,80h jz ezzmov bl,0ffh jmp done ezz: mov bl,0done: mov byte ptr qvar[7],bl .exit 0 end〔习题4.2〕例题4.2如果要求算术左移7位,如何用移位指令实现。
〔解答〕思路:可设计外循环体为8个字节左移一次,方法是:最低位字节算术左移一次, 次低位字节至最高位字节依次带 CF 位循环左移一次(内循环共8次),外循环体控制执行7次即可。
.model small .stack 256 .dataqvar dq 1234567887654321h4 11 201628.code.startupmov dx, 7 ;外循环次数mov ax, byte ptr qvar[0] ;最低位字节送axlpp: shl ax, 1 ;最低位字节左移一次,其d7移入CF 位 mov si, 1mov cx, 7 ;内循环次数again: rcl byte ptr qvar[si], 1 ;高位字节依次左移 P50 inc siloop again dec dx jnz lpp .exit 0 .end〔习题4.3〕将AX 寄存器中的16位数连续4位分成一组,共4组,然后把这4组数分别放在AL 、BL 、CL 和DL 寄存器中。
第四章_循环结构介绍

循环体语句
回顾for 语句
基本形式: for (表达式1;表达式2;表达式3) 语句; 首先求解表达式1,然后: 1. 计算表达式2的值: 2. 如果步骤1的结果为0,则结束整个 for 语句。 3. 如果步骤1的结果为非0,则执行语 句。 4. 求解表达式3。 5. 重复第1到第4步的过程。
4.2统计一个整数的位数
从键盘接收一个整数,统计该整数的位数
数字在计算机中是用特定数目的存储单元存放的,从机 器的角度看不出它的十进制数有几位 如何统计为数?需要一个循环过程 由于事先不知道处理的是什么数据,故无法确定循环次 数 如何实现?
ch4-4.cpp 把例4-4改成while循环执行,要怎么做? ch4-4-1.cpp
C程序设计语言
第四章 循环结构 刘文斌
业精于勤,荒于嬉,行成于思,毁于随 回顾:for循环语句
三个表达式
本章:
什么是循环?为什么要使用循环?如何实现? 如何确定循环条件和循环体 while循环和do~while循环
4.1求PI的近似值
使用格里高利公式求PI的近似值
求解表达式1
表达式2
0
!0
语句
求解表达的判断表达式可以是任意合法 的逻辑组合表达式,循环体语句只能是一条 语句
如果有多条语句,要用{}括起来,成为一条复 合语句
while语句构成简单
循环条件表达式 循环体语句
循环实现一般包括4个部分:
Ch4-12
习题讲解(P83)
题目12:求1-1000之间的水仙花数 定义:各位数字的立方和等于它本身 分析: 既然是1-1000之间,肯定要有一个循环 如何确定各位数?
C语言程序设计教程 第4章

4.4.1 列举算法 所谓列举算法,是指根据提出的问题,列举所有可能的 情况,并根据条件检验哪些是需要的,哪些是不需要的。
例4.11 某单位要在A,B,C,D,E,F 6人中选派若干人去 执行一项任务,选人的条件如下: (1)若C不去,则B也不去; (2)C和D两人中去一个; (3)D和E要么都去,要么都不去; (4)A,B,F 3人中要去两个; (5)C和F不能一起去: (6)E和F两人中至少去一个。 问应该选哪几个人去?
printf("%d \n",n);
} }
实际上,上述程序等价于 #include "stdio.h" main() { int n; for (n=100; n<=200; n=n+1) { if (n%7==0) | | (n%9==0)) printf("%d \n",n); } }
4.4 程序举例
例4.3 计算并输出下列级数和:
1 1 (1) K SUM 1 1 2 2 3 K ( K 1)
直到某项的绝对值小于 104为止。
相应的流程图如图4.5所示。其中f用于改变每一项的符号, 因为这是一个各项符号相间的级数。
sum=1.0 ,k=0 ,f=1.0 k=k+1 ,f=–f d=1.0/((k(k+1)) sum=sum+f*d 直到 d<10–4 输出 sum 值
对分法的基本过程如下: 取子区间[xi,xi+1]的中点
xi xi 1 x 2
如果f(x)与f(xi)同号,则令xi=x;否则令xi+1=x。 然后重复这个过程,直到满足条件 | xi 1 xi |
为止。其中ε为事先给定的精度要求。
C语言循环结构程序设计PPT课件

知识点精讲
printf(″%d\n″,fun(″056a0″)); } 【解析】 while循环是先判断条件,如果条件成立就执行语句,然后回到条件继续判断,直 到条件不成立就结束循环。while后的表达式为“*s<=′9′&&*s>=′0′”,当表达式的值为0时 循环结束,可以看出这道题就是把连续的数字字符转换成对应的数值,遇到非数字字符就结束, 所以最后的输出结果是56。 【答案】 56
知识点ቤተ መጻሕፍቲ ባይዱ讲
L7 i++; L8 } L9 printf("%f",s); L10 }
答案:第6行改成:{ s=s+1.0/i; //若不使用1.0/i,那么会把小数部分丢掉//
4.下列程序的运行结果是______2_,_-_1_____ #include "stdio.h" main) {int i=2,a=0; while ( i一) a++; printf ("% d,%d",a,i); }
第四章 循环结构程序设计
考纲要求
结构化程序的设计方法,for语句、while语句编程方法。
知识准备
高频考点:当型循环与直到型循环、循环控制变量、利用循环设计算法。 重难点分析:利用循环设计算法。
知识点精讲
知识点1 while循环
真题回顾 (2019年真题)下列程序的运行结果是___________ #include″stdio.h″ int fun(char s[]){ int n=0; while(*s<=′9′&&*s>=′0′) { n=10*n+*s-′0′; s++; } return n; } main(){
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
flag = -flag;
denominator = denominator + 2;
4 357
4.1.1
2-8 的异同,简要分析,提供思路,聚焦在 如何确定循环条件。 可运行例 4-1 程序,让学生感受场景。 本节介绍为解决这个问题所编写的程序和 涉及到的语言知识。
4.1.2 while!
4
对比分析例 2-8 源程序,共同点在于循环体
4.1.1#(π!)
4.2 节通过案例“统计一个整数的位数”,详细介绍 do-while 语句的执行流程以及使用 方法,教师在讲授时,应详细介绍 do-while 语句的执行流程、循环条件以及循环体,并通 过与 for、while 语句的比较,加深理解 do-while 语句,使学生不仅能使用 do-while 语句进行 循环程序的设计,并且能合理选择循环语句。
! whiledo-while' !
"break' ! !
(
3
借助引例提出要解决的问题,并比较与例
4.1#& π"
4-1 $# π"
%
104
π =1− 1 + 1 − 1 +…
第 4 章 循环结构
4.1 教学要点
本章通过典型程序解析,介绍循环结构程序设计的基本思想和实现方法,以及典型算法, 使学生理解 C 语言所提供的三种循环语句即 for、while 和 do-while 语句的执行机制,并能 综合运用编写循环结构类的程序。
4.1 节通过引例“用格里高利公式求 π 的近似值”和示例“统计学生成绩”,针对没有
|item| >= 0.0001 fabs(item) >= 0.0001
不变,差异在于本例并没有显性给出循环 次数,但给出了循环的结束条件。通过具 体分析示例的处理流程,提出问题: (1)循环条件是什么? (2)如何确保循环的初始条件为真?使循 环能正常启动? (3)程序如何实现? 提醒:学习就是在已有的基础上(循环体 不变),从已知到未知(循环条件变化),
不断探索深化的过程,要扎实走好每一步。
5
展示、运行例 4-1 程序,并解读程序:
4-1
π
(1)程序运行过程:当 item 的值尚未足够
# include <math.h>
pi = 3.141613
int main (void)
{
int denominator, flag; double item, pi;
while (fabs(item) >= 0.0001)
for (i = 1; i <= n; i++)
{
item = flag * 1.0 / denominator;
sum = sum + item ;
flag = -flag;
denominator = denominator + 2;
}
4.5 节综合介绍循环结构的程序设计,涉及到多个典型的算法,教师在讲授时,重点应 放在问题的分析、算法分析以及选择合理的循环语句上。使学生充分理解程序设计的思想与 方法。
讲授学时:4 学时,实验学时同讲授学时。 本章的知识能力结构图见图 4.1。
循环结构的 概念
循环语句
典型算法 (循环嵌套)
循环体 循环条件 循环语句选择
显性给出循环次数的情况(分别对比例 2-8 和例 3-3),介绍如何确定循环条件,并引入 while 语句。教师在讲授时,应重点说明根据具体问题,确定循环条件和循环体的基本思路,并针 对 3 种常见的循环控制方式(计数控制、计算值控制和输入值控制),选择合适的循环语句 实现。还要介绍 while 语句的执行流程和使用方法,通过与 for 语句的比较,加深对循环语 句的理解,使学生能使用 for/while 语句进行循环程序设计。
能正确分析实际问题
while 语句 do-while 语句 for 语句
break 语句 continue 语句
能根据实际情况合理使用
典型问题的 算法框架
能根据实际情况熟练编写程序
图 4.1 知识能力结构图
4.2 讲稿
1
!
本章分 4 节。
4.1(' π&while% 4.2"#do-while%
4.3 节通过案例“判断素数”,详细介绍循环结构中 break 和 continue 语句的功能以及执 行流程,教师在讲授时,应详细介绍判断素数的算法以及 break 和 continue 语句的执行流程, 使学生能在循环结构中正确使用 break 和 continue 语句。
4.4 节通过案例“求 1!+2!+3!+…+100!”,详细介绍嵌套循环的程序设计方法,教师在讲 授时,应详细嵌套循环的执行流程(过程),使学生能正确使用嵌套循环进行程序设计。
4-1 +*π!)
'$",!& 104
π
=1−
1 +
1
−
1
+…4源自357 2-81-1/3+1/5-… !n,
flag = 1; denominator = 1; sum = 0 ;
item = 1;
% |item| < 0.0001
4.3
break continue % 4.41! + 2! + … + 100! 4.5!$#
2
提出本章的学习要点。
%&
! & "
!
$
! "whiledo-while' $#
item = 0.0 ?
flag = 1; denominator = 1; item = 1.0; pi = 0;
while (fabs (item) >= 0.0001) { item = flag * 1.0 / denominator;
fabs
(item)
<
0.0001?
pi = pi + item;