循环结构程序设计(for循环举例)
- 格式:ppt
- 大小:507.50 KB
- 文档页数:16
循环结构程序设计典型例题例1:有数列2/3、4/5、6/9、10/15……求此数列前30项的与。
算法分析:对于数列的题,首先要找出通项公式,或前后项的计算关系公式,根据公式求所需。
由于数列的题一般执行次数能确定,用for语句来编写比较方便。
此题,前后项的关系就是:后一项的分子就是前一项的分母加1,后一项的分母就是前一项的分子加分母。
解题思路就是用循环语句求各项,并把值累加,因为就是求前30项的与,循环执行30次。
1、初值i=2,j=3,s=0;2、用n从1到30循环3、s=s+ i/j;4、c=i; i=j+1; j=c+j;5、输出s;程序:#include<stdio、h>main( ){ int i=2,j=3,n,c;float s=0;for(n=1;n<=30;n++){ s=s+(float)i/j;c=i;i=j+1;j=c+j;}pr intf(“\n%f”,s);}此题中的n与循环体中的执行语句没有数值上的联系,仅仅用做决定循环执行的次数。
例2:下面这个程序,想想它实现的就是什么功能?#include<stdio、h>main( ){ int i,s=0;for(i=1;i<=100;i++){if(i%5==0) continue;s=s+i;}printf(“\n%d”,s);}在左边的程序中,i从1到100循环,当i就是5的倍数时,直接进入下一个i,当i不就是5的倍数时,把i累加到s,最后输出s。
所以,这个程序实现的就是求1~100中间所有非5的倍数的数之与。
例3:输出n~m中(0<n<m)能被3整除,且至少有一个数字就是5的所有数。
算法分析:1 输入n与m的值2 用整型变量a从n-m循环,每次值加13、若a能被3整除,执行第4步,否则执行第9步4令整型变量x=a5、若x>0,执行第6步,否则执行第9步6、i=x%107、若i值不为5,执行第8步,否则输出a,并执行第9步8、x=x/10,并返回第5步9、返回第2步,察瞧下一个a程序:#include<stdio、h>main( ){ long a,x,i,t,n,m;scanf(“%ld%ld”,&n,&m);for(a=n;a<=m;a++)if(a%3==0){ x=a;while(x>0){ i=x%10;if(i==5) {printf(“\t%ld”,a);break;}x=x/10;}}}问:能把a%3==0也放到for循环语句的表式2中,写成a<=m&&a%3==0不?答:不可以!例4:求3-150中所有素数的与。
选择结构复习:单分支:行:If 条件 Then 语句块:If 条件 Then语句End If双分支行:If 条件 Then 语句1 Else 语句2块:If 条件 Then语句1Else语句2End If多分支ElseIf语句If条件1then语句1ElseIf条件2then语句2ElseIf条件3then语句3Else语句End IfSelect Case语句Select Case表达式Case 表达式1语句lCase 表达式2语句2……Case 表达式n语句nCase Else语句n+1End Select循环结构程序设计一循环结构控制语句程序设计三种基本结构结构:顺序结构流程图 选择结构流程图 循环结构流程图选择结构:(如图) If 条件表达式 Then 语句End IfFor 循环结构:(如图)For I = 1 To 10 Step 1 语句Next I循环是指对同一个程序段重复执行若干次,直到指定的条件不满足为止,这段被重复执行的语句序列被称为循环体,由若干个语句构成。
循环结构主要有三种形式:For ...Next 循环 While …Wend 循环 Do …Loop 循环。
二 For 循环(最常用的一种格式) 1、For 循环语句的格式:For 循环变量=初值 To 终值 Step 步长 循环体 Next 循环变量例如: For I = 1 To 10 Step 1 Print “ 你好 ” Next I说明:(1)循环变量:为一个数值型变量。
用来控制循环过程。
(2)初值:循环变量的初始值,一般为数值型常量、变量。
(3)终值:循环变量的终止值,一般为数值型常量、变量。
(4)步长:循环变量的增量。
其值为正,初值应小于终值(递增循环);若为负,初值应大于终值(递减循环)。
但步长不能是0。
会造成死循环。
如果步长是1,Step 1可省略不写。
(5)循环体:在For语句和Next语句之间的语句序列,可以是一个或者多个语句。
For循环是一种常用的控制流语句,用于重复执行特定的代码块。
它的执行顺序如下所述:1. 程序先执行for循环的初始化部分,例如for(int i=0; i<5; i++)中的i=0。
2. 程序会检查循环条件是否为真,即i<5是否成立。
3. 如果循环条件为真,则程序执行循环体内的代码块。
4. 循环体执行完毕后,程序会执行for循环的更新部分,例如i++。
5. 然后程序会再次检查循环条件,如果仍然为真,则重复执行循环体内的代码块;否则,退出for循环,继续执行下一条语句。
举例说明:假设有如下的for循环语句:```for(int i=0; i<5; i++) {System.out.println("Hello, world!");}```根据上述的执行顺序,该for循环的执行流程如下:1. 初始化部分: i=02. 检查循环条件: i<53. 循环体内执行: 打印"Hello, world!"4. 更新部分: i++5. 再次检查循环条件: i<56. 循环体内执行: 打印"Hello, world!"7. 更新部分: i++8. 再次检查循环条件: i<59. 循环体内执行: 打印"Hello, world!"10. 更新部分: i++11. 再次检查循环条件: i<512. 循环体内执行: 打印"Hello, world!"13. 更新部分: i++14. 再次检查循环条件: i<515. 循环体内执行: 打印"Hello, world!"16. 更新部分: i++17. 再次检查循环条件: i<5 (此时不成立,跳出for循环)上述的for循环语句将会执行5次,分别打印出5次"Hello, world!"。
第四章第3节循环结构的程序设计For循环在实际应用中,会经常遇到许多有规律性的重复运算,这就需要掌握本章所介绍的循环结构程序设计。
在Pascal语言中,循环结构程序通常由三种的循环语句来实现。
它们分别为FOR循环、当循环和直到循环。
通常将一组重复执行的语句称为循环体,而控制重复执行或终止执行由重复终止条件决定。
因此,重复语句是由循环体及重复终止条件两部分组成。
一、计数循环(for/to/do)语句的一般格式for <控制变量>:=<表达式1> to <表达式2> do <语句>;for <控制变量>:=<表达式1> downto <表达式2> do <语句>;其中for、to、downto和do是Pascal保留字。
表达式1 与表达式2的值也称为初值和终值。
二、For语句执行过程①先将初值赋给左边的变量(称为循环控制变量);②判断循环控制变量的值是否已"超过"终值,如已超过,则跳到步骤⑥;③如果末超过终值,则执行do后面的那个语句(称为循环体);④循环变量递增(对to)或递减(对downt o)1;⑤返回步骤②;⑥循环结束,执行for 循环下面的一个语句。
三、说明①循环控制变量必须是顺序类型,初值和终值可以是常量、变量、表达式,且与控制变量类型一致。
例如,可以是整型、布尔型、字符型等,但不能为实型。
②循环控制变量的值递增或递减的规律是:选用to则为递增;选用downto则递减。
③所谓循环控制变量的值"超过"终值,对递增型循环,"超过"指大于,对递减型循环,"超过"指小于。
④循环体可以是一个基本语句,也可以是一个复合语句。
⑤循环控制变量的初值和终值一经确定,循环次数就确定了。
但是在循环体内对循环变量的值进行修改,常常会使得循环提前结束或进入死环。
C语言循环结构编程举例1. for循环for循环是最常用的循环结构之一,可以指定循环变量的初始值、终止条件和每次循环的增量。
例如,计算1到100的和可以使用for循环:```#include <stdio.h>int mainint sum = 0;for (int i=1; i<=100; i++)sum += i;}printf("1到100的和为:%d\n", sum);return 0;```2. while循环while循环是另一种常见的循环结构,它只有一个循环条件,当条件为真时,循环执行。
例如,判断一个数是否是素数可以使用while循环:```#include <stdio.h>int mainint num, i = 2;int isPrime = 1;printf("请输入一个正整数:"); scanf("%d", &num);while (i < num)if (num % i == 0)isPrime = 0;break;}i++;}if (isPrime)printf("%d是素数\n", num);}elseprintf("%d不是素数\n", num); }return 0;```3. do-while循环do-while循环是一种先执行循环体再判断条件的循环结构。
例如,计算输入数字的位数可以使用do-while循环:```#include <stdio.h>int mainint num, count = 0;printf("请输入一个正整数:");scanf("%d", &num);donum /= 10;count++;} while (num > 0);printf("该数字的位数为:%d\n", count);return 0;```4.嵌套循环循环结构可以嵌套使用,以实现更复杂的功能。