3. while循环和do...while循环

信息科学技术学院

指定教材: 程序设计与算法(一)

李文新郭炜

主讲教师互动微博:

https://www.360docs.net/doc/4110121570.html,/guoweiofpku

信息科学技术学院《程序设计与算法》while循环和do...while 循环

并非到达指定次数,而是满足某条件时即停

止循环,则适合用while语句来实现循环

while(表达式) {

语句组

}

1) 判断“表达式”是否为真,如果不为真,则转4)

2) 执行“语句组”

3) 转1)

4) while语句结束,继续执行while语句后面的语句。

while(表达式) { 语句组 }

1) 判断“表达式”是否为真,如果不为真,则转4) 2) 执行“语句组” 3) 转1)

4) while 语句结束,从while 语句后面的语句继续执行。

并非到达指定次数,而是满足某条件时即停止循环,则适合用while 语句来实现循环

while(true) { 语句组

} //死循环,可以用break 跳出

例题:输入若干个(至少1个)不超过100的正整数,输出其中的最大值、最小值以及所有数的和。输入的最后一个数是0,标志着输入结束。

#include

using namespace std;

int main()

{

int sum = 0, maxN = 0, minN = 200,n;

cin >> n;

while( n ) {

if( n > maxN) maxN = n;

if( n < minN) minN = n;

sum += n;

cin >> n;

}

cout << maxN << " " << minN << " " << sum; return 0; 5 8 2 7 0 ↙

8 2 22

12 43 11 98 47 34 0 ↙98 11 245

1 0 ↙

例题:用牛顿迭代法求输入的数的平方根。

欲求a 的平方根,首先猜测一个值x 1=a/2(也可以是随便什么其他值)作为其平方根,然后根据下面的迭代公式算出x 2,再将x 2代入公式右边算出x 3……直到连续两次算出的x n 和x n+1的差的绝对值小于某个值ε,即认为找到了足够精确的平方根。这个ε值取得越小,计算出来的平方根就越精确。

迭代公式: x n+1 = (x n + a / x n ) / 2

double EPS = 0.001; //用以控制计算精度

int main()

{

double a;

cin >> a ; //输入a,要求a的平方根

if( a >= 0) {

double x = a/2, lastX = x + 1 + EPS;//确保能够进行至少一次迭代

while( x - lastX > EPS || lastX - x > EPS){ //只要精度未达要求,

//就继续迭代

lastX = x;

x = (x + a/x)/2;

}

cout << x;

}

else

cout << "It can't be nagitive.";

return 0;

double EPS = 0.001; //用以控制计算精度

int main()

{

double a;

cin >> a ; //输入a,要求a的平方根

if( a >= 0) {

double x = a/2, lastX = x + 1 + EPS;//确保能够进行至少一次迭代

while( x - lastX > EPS || lastX - x > EPS){ //只要精度未达要求,

//就继续迭代

lastX = x;

x = (x + a/x)/2;

}

cout << x;

}

else

cout << "It can't be nagitive."; return 0; 输入 2时,

EPS取值输出结果1 1.5

0.1 1.41667 0.01 1.41422 0.001 1.41421 0.0001 1.41421

如果希望循环至少要执行一次,

就可以使用do…while语句

do {

语句组

} while(表达式);

每执行一次循环后,都要判断“表达式”的值是否为真,如果真就继续循环,如果为假,就停止循环。

输出1到10000以内所有2的整数次幂:int n = 1;

do {

cout << n << endl;

n *= 2;

} while( n < 10000);

while循环

while 循环 语法形式: while(条件) { 需要循环执行的语句; } while 是“当”的意思。 请首先和if语句作一个比较: if(条件) { 条件成立时执行的语句; } 二者除了关键字不一样以外,结构完全一样。但一定要注意,在条件成立时,if语句仅仅执行一遍,而while语句则将反复执行,直到条件不再成立。 请看while循环的流程图: 程序从“前面的语句”开始执行,然后进行条件判断,如果条件成立,则执行一次“每次循环执行 的语句”,再后请特别注意红色部分,这是我们碰上的,第一次会往后走流程:红线就像汽车拐弯, 掉头到条件处(并不包括前面的语句),然后再进行下一次的条件判断……直到某一次判断时条件不 成立了,程序“继续后面的语句”。

我们用while的语法套用生活中的实际例子,可以直观地看出while的用法。 假设有一个爱哭的小娃娃,有一天她要求父母给买一条小红裙,可惜父母不同意,于是她就开始一个循环: while ( 父母不给买小红裙) { 我哭; } 这段“代码”的意思是:当“父母不给买小红裙”,那么,小女孩就一遍一遍地哭。 这就是我们和循环流程的第一个遭遇战。所举的例子看似直观:“小孩一遍遍地哭,直到父母给买裙”,但真正要用程序的语言来正确地表达出来,需要很多方面要考虑到,必竟,程序是严谨的。 首先,一个合适的判断是否继续的条件相当重要。小女孩要继续哭,仅仅“父母不给买小红裙”,这显示不符合事实,想想我们小时候,再会哭,最终也有累的时候,所以,要想继续哭,我们的条件有两个:“父母不给买小红裙”并且“我还没有哭累”。 while ( 父母不给买小红裙&& 我还没有哭累) { 我哭; } 其次,大多数情况下,条件需要被恰当地改变。小女孩在不停地哭,那么她如何知道父母是否买了红裙呢?所以,她不能只顾哭,还得在哭的间隙观察大人是否同意买裙。至于是否哭累,我们假设小女孩有一个疲劳度,每哭一次疲劳度加1,当疲劳度到达200时,可怜的小女孩累了…… while(父母不给买小红裙&& 疲劳度< 200) { 我哭; 我偷看爸妈是否同意买裙; 疲劳度++; } 例一:用while 语句实现求从1到100的累加和。 求1+2的和,我们可以写a = 1 + 2;求1加到100,我们当然可以这样写a = 1 + 2 + 3 + ... 100.不过这样写显然太累人了,要从1写到100啊!所以聪明如高斯的你,当然也知道这样写:a = (1+100) * 50;这确实是个在任何时候都值得称赞的,又快又简的方法,只是今天我们想让计算机累一点,老老实实地从1加到100。首先用我们先学的while式的循环。 请同学们打开CB,然后新建一空白的控制台程序,在main()函数体加入下面黑体部分代码。然后按F9运行。查看运行结果以加深印象。 //--------------------------------------------------------------------------- #include #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused int main(int argc, char* argv[])

循环结构(While_Do循环)

四. While循环 1.While循环的格式: While <条件表达式> 循环体 Wend 说明:<条件表达式>为关系或逻辑表达式。 2.执行过程:判断条件;条件满足,执行循环体语句;再继续判断条件,继续执行循环; 直到条件不满足,结束循环。 结合下面我们熟悉的For程序,来说明: For I = 1 To 10 S = S + I Next I Print I 改用While循环表示: I = 1 ‘初值 While I<=10 ‘循环条件 S=S+I I=I+1 ‘变量自增,加步长 Wend Print S 3.While循环的说明 For循环语句必须给出初值、终值、步长值;循环条件也就给出了。 While循环语句中只给出循环条件和终值,所以一定要注意给出初值和增量。如上面程序段中的3处颜色部分语句。 例如:以下程序段循环几次,y值结果如何。 y = 2 While y < = 8 y = y + y Wend Print y 分析: 循环条件:y<=8 执行过程如下: Y=2,y<=8 满足,执行语句:y = y + y,y=4;遇到Wend返回继续判断条件。 Y=4,y<=8 满足,执行语句:y = y + y,y=8;遇到Wend返回继续判断条件。 Y=8,y<=8 满足,执行语句:y = y + y ,y=16;遇到Wend返回继续判断条件。 Y=16,y<=8 不满足,结束循环。 循环执行了3次。

五.Do循环 Do循环是在While循环基础上做了一点修改。整个格式结构和执行过程基本一样。 但增加了一种格式:条件不满足就循环,满足就结束循环。 格式1:Do While (条件) 循环体 Loop I=1 Do While I<4 S=S+1 I=I+1 Loop Print S I=1 Do Until I>=40 S=S+1 I=I+1 Loop 格式2:Do 循环体 Loop While (条件) 说明:格式1、格式2和While基本一样,格式2不同在于先执行一次循环,再判断条件是否满足。 格式3:Do Until(条件) 循环体 Loop 格式4:Do 循环体 Loop Until(条件) 说明:Until和While的不同在于条件不满足才循环。 注意:为了避免循环条件的混淆,我们一般是将Until 循环转换为While 循环做题。即将Until改为While,后面的条件改取相反值条件。

while循环结构例题

引子 #include "stdio.h" main() { int i=1; for(i=1;i<=10000;i++) printf(“%d\t”,i); } 题型1 输入输出多个数据 eg1、输出1~10000之间所有的整数#include "stdio.h" main() { int i=1; while(i<=1000) {printf(“%d\t”,i); i++;} } 拓展:1、换成所有的奇数 2、换成所有的偶数 题型2 有限个数连加和连乘

eg2.1、求1+2+3+4+………+100的值 #include "stdio.h" main() { int i=1,s=0; while(i<=100) {s=s+i; i++;} printf(“%d\n”,s); } 拓展:1、求1+2+3+4+………+n的值 2、求12+22+32+………+n2的值 3、求1+1/2+1/3+………+1/n的值eg2.2、求n!的值 #include "stdio.h" main() { int i=1,n,p=1; scanf(“%d”,&n); while(i<=n) {p=p*i; i++;} printf(“%d\n”,p); }

拓展:求1!+2!+3!+………+n!的值 #include "stdio.h" main() { int i=1,n,p=1,s; scanf(“%d”,&n); while(i<=n) {p=p*i; s=s+p; i++;} printf(“%d\n”,s); } 题型3 无限个数连加 eg3、求1-1/3+1/5-1/7+………的近似值,要求精度要达到10-4 #include "stdio.h" #include "math.h" main() { float n=1,s=0,f=1,t=1; while(fabs(t)>=1e-4) {t=f/(2*n-1); s=s+t;

while循环练习

一、选择题 1.设有程序段 int k=10; while(k=0)k=k-1; 这下面描述中正确的是_________. a)while循环执行10次 b)循环是无限循环 c)循环体语句以此也不执行 d)循环体语句执行一次 a)E==0 b)E!=1 c)E!=0 d)E==1 2.语句while(!E);中的表达式!E等价于________. 3.下面程序段的运行结果是__________. int n=0; while(n++<=2);printf("%d",n); a)2 b)3 c)4 d)有语法错 4.下面程序的运行结果是____. #include main() { int num=0; while(num<=2) { num++; printf("%d\n",num); } } a)1 b)1 c)1 d)1 2 2 2 3 3 4 二、编程计算 1、求1~100中所有偶数的和。 2、下面程序的功能是输出1至100之间每位数的乘积大于每位数的和的数。 3、计算并输出1-3+5-7+……-99+101的值。

三、写一个小型计算器。 界面如下: 要求: 1.有简单运算选择界面 2.采用循环实现菜单显示 3.采用switch结构实现菜单的选择 4.运算对象为两个操作数,从键盘输入 5.运算结果输出 1、计算下列式子的值: (1)1+3+……+99 (2)1+2+4+8+……+128+256 2、输入一个整数,计算它各位上数字的和。(注意:是任意位的整数) 3、输入一整数A,判断它是否质数。(提示:若从2到A的平方根的范围内,没有一个数能整除A,则A是质数。) 4、求两个数的最小公倍数和最大公约数。(提示:公约数一定小于等于两数中的小数,且能整除两数中的大数。公倍数一定大于等于两数中的大数,且是大数的倍数,又能给两数中的小数整除。) 5、编写一个译码程序,把一个英语句子译成数字代码。译码规则是以数字1代替字母A,数字2代替字母B,……,26代替字母Z,如遇空格则打印一个星号…*?,英文句子以….…结束。 6、求水仙花数。所谓水仙花数,是指一个三位数abc,如果满足a^3+b^3+c^3=abc,则abc 是水仙花数。 7、“百钱买百鸡”是我国古代的著名数学题。题目这样描述:3文钱可以买1只公鸡,2文钱可以买一只母鸡,1文钱可以买3只小鸡。用100文钱买100只鸡,那么各有公鸡、母鸡、小鸡多少只?与之相似,有"鸡兔同笼"问题。

while语句的一般形式为

while语句的一般形式为: while(表达式)语句,其中表达式是循环条件,语句为循环体。 while语句的语义是:计算表达式的值,当值为真(非0)时。执行循环体语句。当值为假(等于0)时,跳出循环体。 while语句格式为: while(表达式) 语句;/*循环体*/ 这里的表达式是循环能否继续下去的条件,而语句是循环体。只要表达式为真,则执行循环体内语句。否则终止循环,执行循环体外语句 while常用于循环次数未知, for常用于已知循环次数 for循环语句 1.1 for表达式 表达式1:一般为赋值表达式,给控制变量赋初值; 表达式2:关系表达式或逻辑表达式,循环控制条件; 表达式3:一般为赋值表达式,给控制变量增量或减量。 语句:循环体,当有多条语句时,必须使用复合语句。 1.2 for语句格式为: for(表达式1;表达式2;表达式3) 循环语句:/*循环体*/ 1.3 for语句执行过程如下: ①先对表达式1赋初值; ②判别表达式2是否满足给定条件,若其值为真,满足循环条件,则执行循环体内语句,然后执行表达式3,进入第二次循环,再判别表达式2……;否则判断表达式2的值为假,不满足条件,就终止for循环,执行循环体外语句。 在c语言中开关语句switch中case是什么意思 switch(表达式) { case 常量表达式1: 语句1;

break; case 常量表达式2: 语句2; break; …… case 常量表达式n: 语句n; break; default: 语句n+1; break; } (资料素材和资料部分来自网络,供参考。可复制、编制,期待你的好评与关注)

while循环和do-while循环的主要区别是(

第4章 一、选择题 1. while循环和do-while循环的主要区别是()。 A. do-while的循环体至少无条件执行一次 B. while的循环控制条件比do-while的控制条件严格 C. do-while允许从循环外部转到循环体内 D. do-while的循环体不能是复合语句 2. 关于for循环的正确描述是()。 A. for循环只能用于循环次数已经确定的情况 B. for循环是先执行循环体语句后判断表达式 C. for循环中不能用break语句结束循环 D. for循环体可以包含多条语句,但必须用花括号括起来 3. 以下正确的说法是()。 A. continue语句的作用是结束整个循环的执行 B. 只能在循环体内和swtich语句体内使用break语句 C. 在循环体内使用break或continue语句的作用相同 D. 从多层嵌套中退出只能使用goto语句 4. 以下描述正确的是()。 A. goto语句只能用于退出多层循环 B. swtich语句中不能使用continue语句 C. 只能用continue语句来终止本次循环 D. 在循环中break语句不能独立出现 5. 求“s=1+2+3+...+9+10”,下列语句中错误的是()。 A. s=0;for(i=1;i<=10;i++) s+=i; B. s=0;i=1;for(;i<=10;i++) s=s+i; C. for(i=1,s=0;i<=10;s+=i,i=i+1); D. for(i=1;s=0;i<=10;i++) s=s+i; 6. 下列语句中,哪一个可以输出26个大写英文字母()。 A. for(a=’A’;a<=’Z’;printf("%c",++a)); B. for(a=’A’;a<’Z’;a++)printf("%c",a); C. for(a=’A’;a<=’Z’;printf("%c",a++)); D. for(a=’A’;a<’Z’;printf("%c",++a)); 7. 有程序段“int k=10;while(k=0) k=k-1;”,则正确的是()。 A. while循环10次 B. 循环是无限循环 C. 循环体一次也不执行 D. 循环体只执行一次 8. 语句“while(!E);”中的表达式!E等价于()。 A. E==0 B. E!=1 C. E!=0 D. E==1 9. 程序段“int n=0; while(n++<=2);printf(“%d ”,n);”的运行结果是()。 A. 2 B. 3 C. 4 D. 1 2 3 10. 程序段“int i=4; while(--i) printf("%d",i);”中循环体将执行()。 A. 3次 B. 4次 C. 0次 D. 无限次 11. 执行“for(s=0,k=1;s<20||k<10;k=k+2) s+=k;”后,s、k的值为()。 A. 25、9 B. 25、11 C. 36、11 D. 36、9 12. 执行“int k=4,s=0; while(--k) s+=k;”后k、s值分别为()。 A. 10、0 B. 0、10 C. 6、0 D. 0、6

WHILE循环语句的翻译程序设计课设报告

1.题目:将WHILE语句转换成四元式的程序实现 设计内容及要求:设计一个语法制导翻译器,将WHILE语句翻译成四元式。要求:先确定一个定义WHILE语句的文法,为其设计一个语法分析程序,为每条产生式配备一个语义子程序,按照一遍扫描的语法制导翻译方法,实现翻译程序。对用户输入的任意一个正确的WHILE语句,程序将其转换成四元式输出(可按一定格式输出到指定文件中)。 1、系统描述 通过设计、编制、调试一个WHILE循环语句的语法及语义分析程序,加深对语法 及语义分析原理的理解,并实现词法分析程序对单词序列的词法检查和分析。用语法 制导完成语义分析,并将形成的中间代码以四元式的形式输出。 2 、文法及属性文法的描述 2.1 文法的描述 该文法的产生式如下所示: (1)S->while(B){E} (2)E->AE (3)E->A (4)A->iPA (5)A->i (6)B->iTi (7)B->i 其中while、( 、) 、{ 、} 、P、T 、;和i均为终结符,而S、A、B、E这些大写字母均为非终结符。T表示比较运算符,P表示算术运算符,i表示合法标识符。 2.2 属性文法的描述 对该文法的属性文法描述如下: (1) S->while(B){E}prinf(if B goto E else goto next) (2) E->AE print(E.val = A.val·E.val) (3) E->A print(E.val = A.val) (4) A->i P A print(A= i.Val P A.Val) (5) A->i; A.Val = i;

(7) B->i B.Val = i 3 、语法分析方法描述及语法分析表设计3.1 语法分析表设计 3.1.1 文法的DFA

while循环

While循环 今天呢我们学习的循环是while循环,while循环的意思呢就是当什么样的时候,可以把while 循环看成是一个加强版的if。我们学到循环三要素,首先去确定他的循环变量,是相当于我们初期在理解循环的时候,是我们的拐杖。当我们熟悉了循环的时候,拐杖是一定要被我们扔掉的,所以今天呢我们通过循环去写了一个比较好玩的程序。最后呢我们了解了while循环和do while循环的一个区别。While循环是先判断后执行,而do while循环是先执行后判断。最后我们一定要提到我们的程序里面为什么要更新循环变量,他是控制循环的执行次数的,如果循环变量没有的话,或者while(1)这种情况的话,他就被称为死循环,所谓死循环就是永远都不退出的循环,在现实世界中,死循环是大量存在的。比如说日月星辰,比如说我们的心跳,基本上都是死循环。包括我们的计算机在启动以后,他也是一个死循环。玩的游戏在运行以后他也是一个死循环。好吧,那今天这堂课我们就讲解到这里。下堂课呢,我们去学习另一个循环,叫做for循环。以及我们也会去做一些循环的习题课。也希望这两天大家好好的做练习,如果有一些循环方面的题目,大家觉得比较难懂的。我会给大家单独的讲解一下。 这是非常重要的啊,在讲完以后我们给大家讲一个题目啊。循环的三要素,大家记一下笔记啊,第一要素呢:就是循环变量的初值。第二个要素呢是循环变量的判断,第三个要素呢就是循环变量的更新。这就是我们非常重点的循环三要素,我们刚开始学习循环的钥匙。这里你会发现三要素都离不开什么?都离不开循环变量。所以在我们的循环里面呢,什么叫循环变量呢?就是可以控制循环次数的变量,我们一般称之为循环变量。循环变量干嘛呢,循环变量可以控制循环的次数,所以标准循环我们在记忆的时候,int i =0;while i <某一个数字,比如10,然后是i++。这就是标准循环啊,标准循环里面一般都会有这三要素,循环变量的初值,循环变量的判断,循环变量的更新。整个结构来讲的话呢,就是把以前的if语句改成现在的while语句。整个循环语句就这里有区别啊,那有同学讲了,循环变量的初值是不是循环变量一定要为0 呢?是不是呢?其实未必啊,循环变量可以为任何的值,任何的类型,你可以是整形,可以是double类型,甚至可以是char类型,那循环变量的判断不一定非得是小于啊,大于,比如说我把这个变量改一下,我把他改成9,然后把条件改成i>1;循环变量的更新为什么是更新呢?更新我原来是++的,现在我改成--。那有的同学说--不过瘾,那我每次-=2,这也是可以的嘛。- =3 %=3 /=3 这些都是可以的,所以在循环变量里面的话,我们最终统计的,最重要的就是这循环变量的初值。判断还有更新,至于初值是什么,判断是怎么判断的,更新是怎么更新的,以后他一定会进行变化的。所以灵活变化,我们好多同学在搞不懂循环的时候,很可能就是在这里搞不懂循环,因为他太灵活了嘛。好了,我们回过头来再去看一下他的语法,所以整个while循环,学习的时候,他的特点是什么?他的特点就是先判断再执行,对不对?像不像我们的高考,你先考了,考了之后进大学了。进大学以后你爱学不学。

While 循环 例子

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace while循环 { class Program { static void Main(string[] args) { int i =0; while(i<10) { i++; Console.WriteLine(i); } // i) 计算1到100之间整数的和 int i=0; int sum =0; while(i<=100) { sum = sum + i; i++; } Console.WriteLine("0-100所有整数和为{0}",sum); // ii) 要求用户输入用户名和密码,只要不是admin 888888 就一直提示重新输入。 string username ="admin"; string pwd ="888888"; string input_username; string input_pwd; do { Console.WriteLine("请输入用户名:"); input_username = Console.ReadLine(); Console.WriteLine("请输入密码:"); input_pwd = Console.ReadLine(); if(username != input_username || pwd != input_pwd) { Console.WriteLine("错误!请重新输入!"); }

else { Console.WriteLine("恭喜!输入正确!"); } }while(username != input_username || pwd != input_pwd); // iii) 不断要求用户输入一个数字,然后打印这个数字的2倍,当用户输入q 的时候,程序退出。 while(true) { Console.WriteLine("请输入一个数字:"); string s1 = Console.ReadLine(); if(s1=="q") { return; } else { int i1 = Convert.ToInt32(s1); Console.WriteLine("这个数的2倍是:{0}", i1 *2); } } // iv) 不断要求用户输入一个数字,当用户输入end时显示刚才输入数字的最大值。 int max =0; while(true) { Console.WriteLine("请输入一个数字:(结束请输入end)"); string s1 = Console.ReadLine(); if(s1 =="end") { Console.WriteLine("你输入的数字中,最大的数是:{0}",max); Console.ReadLine(); return; } int num = Convert.ToInt32(s1); if(num>max) {

while语句的用法

while语句用法 while(表达式) {}/*循环体*/ 要学会WHILE很简单首先记住不要拼写错误 表达式的值是1就继续进行{}这个循环体,否则就退出循环 WHILE(1)不能说是无限循环,因为还不知道函数体的组成 退出循环,有种中方法 1.表达试的值是假的(值为0) 2.循环体里执行了BREAK语句 3.在循环题内返回了某值 至于while(k)是什么意思,这一类的问题,就要读者自己思考了 因为要放到程序里才能明白它的实际意思 LZ的程序里while(k)的意思是,如果K小于1那么就退出循环 使用while语句 使用while语句,可以在一个布尔表达式为true的前提下重复运行一个语句。 while语句的语法如下: while(booleanExpression) statement 首先会对布尔表达式进行求值,如果为true,就运行语句,然后再次求值布尔表达式。如果表达式仍为true,就再次运行语句,并再次求值表达式。这个过程会反复进行下去,直到布尔表达式求值为false;届时,while语句将退出,并从while之后的第一个语句继续。while语句在语法上与if语句有许多相似的地方(事实上,两者除了关键字不同,语法是完全一样的): l表达式必须是一个布尔表达式。 l布尔表达式必须放在圆括号内。 l假如首次求值时,布尔表达式为false,语句不会运行。 l假如想要在一个while的控制下执行两个或者更多的语句,必须使用大括号将语句分组到一个块中。 以下while语句向控制台写入0~9的值: int i=0; while(i!=10) { Console.WriteLine(i); i++; } 所有while语句都应该在某个时候终止。新手常犯的错误是忘记添加一个特别的语句,它最终能造成布尔表达式求值为false并终止循环。在上例中,i++;就属于这种情况。

while循环教学设计

第7课《while循环》教学设计 【教学目标】 1.知识与技能:巩固Python语言中的if-else语句和取余运算符%;了解并学会while循环结构及其用法,学会使用计数变量控制循环次数。会用while循环重复打印相同的语句,会用while循环找到100以内的奇数和偶数。 2.过程与方法:鼓励学生通过自主探究、小组合作等方法解决问题,在学习中不断经历分析思考、实践求证、反馈调适的计算思维过程,进一步熟悉Python语言的编程环境。 3.情感态度价值观:培养学生学习计算机科学的兴趣,体验信息技术与生活的密切联系,养成严谨的科学态度。 【教学重难点】 重点:while循环结构的组成和用法,进一步熟悉Python语言的编程环境。难点:理解在while循环结构中用计数变量控制循环次数。 【教学过程】 一、复习旧知,引入新课 师:上一节课,我们学习了在Python中用if-else语句解决问题(点击课件出示),妈妈说如果我能数学考100并且英语考100,就给我买自行车。否则没门!你能试着补全程序吗?指名学生回答,师根据回答课件出示答案。 课件出示if-else语句的基本格式,让学生说一说使用if-else语句时,

格式上要注意哪些问题? 师:指名学生回答,师根据回答出示课件。 9%3==?9%5==?a%b==0表示a能被b整除。a%b==x 表示a除以b余数是x。说说运算结果?%是什么运算符? 二、主动探究,学习新知 (-)用while循环重复打印5次“love mom” 师:同学们,这个星期天就是母亲节了,如果想用python跟妈妈说一百遍“妈妈,我爱您!”课件出示。追问:要输入100条print语句麻不麻烦?有没有一种简便的方法一次搞定?当然有! 课件出示: x = 1 while x<=100: print (“妈妈,我爱您!”) x =x+ 1 我们运行一下来看看。在教师机上运行一下。追问:用while语句是不是很快很方便?这就是让我们的python循环起来的while语句(板贴课题)。While读两遍,拼两遍。While在英语中有当……的时候的意思,在python 中是一种循环语句,只要条件成立,就可以重复执行很多次。相当于scratch 中的重复执行。 我们再来看个例子: 万米跑,围着足球场跑道(400米一圈)不停地跑,每跑一圈打印一次“running!”一共要跑25圈。

C语言while循环教案——钟智君2013180502

第五章循环结构程序设计 用while语句实现循环 【课程】:C语言程序设计 【课题】:循环结构程序设计 【授课对象】:职高高二计算机专业学生 【授课时数】:45分钟 【教学目标】: 认知目标 了解while循环的概念。 熟练掌握while循环的基本用法。 技能目标 能够正确分析问题,并得出解决方案 能够正确使用while循环 能够运用while循环解决一些必要的问题 情感和价值观目标 培养学生分析错误、独立思考、解决问题的能力 让学生学会合理规划生活,做事不断坚持的毅力 【教学重点】:while循环的基本思想 【教学难点】:循环到底怎么使用 【教学方法】:以实践法为主,其他方法为辅,尽量少讲理论性知识,将原理更简单的交给学生。 【教学步骤】:

1、复习引导 2、讲授新课 3、示例训练 4、课堂总结 5、作业布置 【教具】:黑板、粉笔、多媒体 【使用教材】:《C程序设计》第四版谭浩强著 清华大学出版社

【教学过程】: 1、复习引导 全班有30个学生,统计各学生三门课的平均成绩。 输入学生1的三门课成绩,并计算平均值后输出 要: scanf(“%f,%f,%f”,&s1,&s2,&s3); aver=(s1+s2+s3)/3; printf(“aver=%7.2f”,aver); 从键盘输入一个小于100的正整数,要求输出它的平方根.(若平方根不是整数,则输出其整数部分) 要求: 在输入数据后先对其进行检查是否为小于100的正整数。若不是,则要求重新输入。 #include #include #define M 1000 int main(){ int i,k; printf("请输入一个小于%d的整数i:",M); scanf("%d",&i); if (i>M){ printf("输入数不合要求,请重新输入一个小于%d的整数i:",M); scanf("%d",&i); } k=sqrt(i);

相关文档
最新文档