试验4循环结构程序设计
上机实验4:循环结构程序设计

上机实验4:循环结构程序设计 循环结构程序设计
1.《级数求和》 《级数求和》 ( filename: cp41.c ) 编程,计算下列级数和的近似值,x的值从键盘输 入,求和精度为10-6 ,输出达到精度要求的最小n与 级数和,两者间用逗号分隔。例如, 调试数据: 输入:0.523599 输出:4,0.500000 ⑴ 左例 输入:-1 输出:5,-0.841471 ⑵ 4 输入:6.283185 输出:13,0.000000
提示: 提示: 可模拟人工除法求小数的每一位(设 可模拟人工除法求小数的每一位 设 a=1, b=素数): : 商的整数部分: ⑴ 商的整数部分:a/b 输出( .)。 可用 printf("%d.", a/b); 输出(即0.)。 .) 余数: 余数: a=a%b ; ⑵ 商的小数部分: 商的小数部分: 每位商: 每位余数: 每位商:a*10/b 每位余数:a=a*10%b ; ⑶ 从余数判断循环节是一种简便的方法
结
束
4. 《求符合要求的自然数对》 ( filen数对:它们的和为 667,它们的最小公倍数除以最大公约数的商为120。 输出格式为每对一行,小数在前,大数在后,两数间 用逗号分隔,多对则按每对中小数的大小升序排列先 后。
5.《大于正整数a的n个素数》 《大于正整数 的 个素数》 个素数 编程, 输出大于并最接近正整数a的n个素数,每行 打印8个,a 和 n 从键盘输入。例如: 输入: 100 17 输出: 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 ( filename: cp45.c )
实验四 循环结构程序设计

#include "stdio.h"
void main( )
{
}
2.从整数1开始向上找,直至m和n中较小的数,每找到一个能同时被m和n整除的整数,将其存入一个变量中,当循环结束时,变量中存放的即为最大公约数。设n为m和n中较小的数,则如下程序段可实现:
for(k=1; k<=n; k++) if(m%k==0 && n%k==0) x=k;
}
2.字符常量’0’与数值常量0是不同的。
(六)下面程序的功能是:计算1到100之间的奇数之和及偶数之和,并输出。请在程序中的横线上填入适当的内容,将程序补充完整并运行。
/* c4-6.c */
/* 计算1到100之间的奇数之和及偶数之和 */
#include "stdio.h"
void main( )
六、思考题
(一)求两个正整数x和y的最大公约数,请填空。
/* 求最大公约数程序 */
#include "stdio.h"
void main( )
{ int x,y,t,i;
printf("请输入两个数:");
scanf("%d,%d",&x,&y); /*注意scanf语句中间用“,”隔开*/
if(x > y){t = x; x = y; y = t;}
程序的基本结构如下:
/* c4-9.c */
/* 按条件求数列和 */
#include "stdio.h"
void main( )
{定义变量;
变量赋初值;
电大专科c++实验四循环结构程序设计

3.掌握使用for循环语句编写应用程序及其编写技巧.
4.掌握使用break语句及循环语句编写应用程序及其编写技巧.
5.掌握使用continue语句及循环语句编写应用程序及其编写技巧
二、实验要求
能够编写一些有实际应用意义的循环结构的程序
三、实验内容(要求:针对实验案例的每项工作,撰写完成实验的步骤)
#include
Void mian()
{ int x,y,z,num,num1;
For(x=1;x<101;x++)
For(z=1;z<101;z++)
{ num=x+y+z;
Num1=5*x+3*y+z/3.0;
If(num==100&& num1==100)
Cout<<"公鸡="<<X<<",母鸡="<<Y<<",鸡雏="<<Z<<"ENDL;
1.用近似公式∏/4≈1-1/3+1/5-1/7+1/9-1/11+…,计算∏的近似值,要求最后一项小于10-6即可.#include# Nhomakorabeanclude
Void maid()
{ float n,t,pi;int s;
T=1.0;pi=0.0;n=1.0;s=1;
While(favs(t)>=1e-6)
{ pi+=t;
n+=2;
s=-s;
t=s/n;
}
Python程序设计实验报告四循环结构程序设计

Python程序设计实验报告四循环结构程序设计实验报告四:循环结构程序设计实验目的:通过本实验,学生将学会使用Python编程语言中的循环结构来设计和实现程序。
实验内容:1. 了解循环结构的概念和基本语法;2. 熟悉Python中的三种循环结构:for循环、while循环和嵌套循环;3. 设计并实现使用循环结构的程序;4. 调试和运行程序,验证程序的正确性。
实验步骤:1. 确定实验题目和要求;2. 分析问题,确定所需的循环类型和循环变量;3. 根据循环类型和循环变量,编写循环结构的代码;4. 调试代码,确保程序的正确性;5. 运行程序,观察程序输出结果是否符合实验要求;6. 如果结果不正确,根据错误信息进行修改,重新运行程序;7. 记录实验结果和对程序的修改;8. 完成实验报告,并附上程序代码。
实验示例:下面是一个使用循环结构的Python程序设计示例,旨在计算并输出1到100之间所有偶数的和。
```python# 循环结构程序设计示例# 计算1到100之间所有偶数的和sum_even = 0 # 用于存储偶数的和for i in range(1, 101):if i % 2 == 0:sum_even += iprint("1到100之间所有偶数的和为:" + str(sum_even))```在上述示例中,我们使用了for循环结构来遍历1到100之间的所有数字。
通过判断每个数字是否为偶数,我们累加所有偶数的和,并最终输出结果。
结论:通过本次实验,我们学会了使用Python的循环结构来设计和实现程序。
循环结构是程序设计中非常重要的一种结构,可以帮助我们处理大量的重复操作,提高程序的效率。
在实际编程中,我们需要根据问题的需求,选择合适的循环类型和循环变量,并合理地设计和调试程序。
通过不断练习和实践,我们将进一步提升自己的编程能力。
实验报告4

实验四:循环结构程序设计班级:学生姓名:学号:一、实验目的1、理解循环的概念2、理解并掌握循环结构相关语句的含义、格式及使用3、学会循环的应用及控制,包括:①掌握使用循环输入多个数据的方法②掌握在多个数据中有选择地输出数据的方法③掌握在多个数据中对某种数据进行计数的方法④掌握求多个数据中最大值、最小值的方法⑤掌握使用break、continue语句终止循环4、掌握循环的嵌套二、知识要点1、循环变量、循环条件、循环体的概念2、三种循环语句的一般格式、执行过程3、理解选择结构与循环结构中“条件表达式”之不同含义4、二重循环的执行过程三、实验预习(要求做实验前完成)1、循环变量的主要用途是:2、用循环求多个数的和之前,先要把和的初始值赋为:3、用循环求多个数的乘积之前,先要把乘积的初始值赋为:4、字符变量能否作为循环变量?5、循环过程中,如果循环条件成立,但需要结束循环,可采用什么办法?6、什么叫循环的嵌套?四、实验内容(要求提供:①算法描述或流程图②源程序)1. 编程,利用循环计算以下表达式的值:(5+52)*(4+42)*(3+32)*(2+22)*(1+12)*(1/2+1/3+1/4+1/5)(for循环)include <stdio.h>#include <stdlib.h>int main(){int a;double sum=1,sum1=0;for(a=1;a<=5;a++)sum=sum*(a+a*a);printf("结果为%lf\n",sum);for(a=2;a<=5;a++)sum1=sum1+(1.0/a);printf("%lf\n",sum1);printf("结果为%lf\n",sum*sum1);return 0;}2. 编程,从键盘输入若干个整数,当输入0时,输入停止。
matlab实验4_循环结构程序设计_参考解答

高教社刘卫国《MATLAB 程序设计与应用》(第二版)实验参考解答
实验四:循环结构程序设计
clear all; close all; clc; y=0; n=1; while y<3
y=y+1/(2*n-1); n=n+1; end n=n-1; y=y-1/(2*n-1) n=n-1
运行结果:
y= 2.9944
x1=a/(b+x0); y=abs(x1-x0); x0=x1;
MATLAB 语言
3
WangChengyou © 山东大学威海分校
高教社刘卫国《MATLAB 程序设计与应用》(第二版)实验参考解答
实验四:循环结构程序设计
n=n+1; end x1 r1=(-b+sqrt(b^2+4*a))/2 r2=(-b-sqrt(b^2+4*a))/2
clear all; close all; clc; prime=[]; for n=2:49
x=n*(n+1)-1; signx=0; for k=2:sqrt(x)
MATLAB 语言
5
WangChengyou © 山东大学威海分校
高教社刘卫国《MATLAB 程序设计与应用》(第二版)实验参考解答
根据
π2 6
=1 12
+
1 22
+1 32
+"+
1 n2
,求 π 的近似值。当
n
分别取
100、1000、10000
时,
结果是多少?
要求:分别用循环结构和向量运算(使用 sum 函数)来实现。 答:程序设计:
(1) 循环结构
实验4 循环结构程序设计
实验4 循环结构程序设计(一)实验目的要求1.掌握“当”型循环控制语句do while…enddo程序设计的方法。
2.掌握“计数”型循环控制语句for…endfor|Next程序设计的方法。
3. 掌握“指针”型循环控制语句scan…endscan程序设计的方法。
(二)实验内容1.do while…enddo编程。
2.for…endfor|Next编程。
3. scan…endscan编程。
(三)实验指导实验4-1计算1~100之间自然数的和。
具体操作如下:(1)创建程序文件“L10-14-2.prg”,内容如图4-1所示:图4-1⑵运行程序实验4-2根据“员工”表,统计物业部的员工人数。
具体操作如下:(1)创建程序文件“L10-15.prg”,内容如图4-2所示:图4-2(2)运行程序,结果如下:物业部的员工人数是: 6实验4-3从键盘输入10个数,求其中的最大数。
具体操作如下:(1)创建程序文件“bcl4.prg”,内容如图4-3所示:图4-3 (2)一次程序运行的结果如下:实验4-4计算10!。
具体操作如下:(1)创建程序文件“L10-16.prg”,内容如下:图4-4 (2)运行程序,结果如下:实验4-5计算S的值(S=2!+4!+6!+8!+10!)。
具体操作如下:(1)创建程序文件“L10-17.prg”,内容如下:图4-5(2)运行程序,结果如下:实验4-6计算“员工”表中所属“物业部”的职工的人数。
具体操作如下:(1)创建程序文件“L10-17.prg”,内容如下:图4-6(2)运行程序,结果如下:实验4-7输出1-100自然数中被3整除的数据的个数及它们的和。
具体操作如下:(1)创建程序文件“bcl5-1.prg”,内容如下:图4-7(2)运行程序,结果如下:实验4-8计算1+2+3+……,当和刚刚大于10000时,所加的最后一个数和最后的和为多少。
具体操作如下:(1)创建程序文件“bcl6.prg”,内容如下:图4-8(2)运行程序,结果如下:实验4-9由键盘输入10个数,按由小到大的顺序输出这10个数。
项目04 循环结构程序设计
while语句和do„while语句。本章是程序设计的重点内容,
重点培养读者的逻辑思维能力和程序编写基本能力。要求读 者能理解循环结构的工作过程,并且能用循环语句解决
项目四
循环结构程序设计
实际问题,提高编程能力。
【学习目标】
(1) 掌握for语句、while语句和do„while语句的使用。 (2) 掌握break语句和continue语句的使用。 (3) 能够利用循环语句解决实际问题。
所有商品的总价格;收银员每扫描一次,也就是把该商品的
价格输入给x,然后把x的值转移加入到s盒子里,重复操作, 直到收银员按回车键,在这里用“0”代表回车;最后输出s 盒子中的值,就可得到所有商品的总价格。
第一部分
任 务 学 习
【解决方案】
#include<stdio.h> void main() { float x,s=0;
注:从上面的说明可以看出,C语言的for语句功能强大,
使用灵活,可以把循环体和一些与循环控制无关的操作也都 作为表达式出现,程序短小简洁。但是,如果过分使用
(3) 循环。这样的语句一直重复写到h满足题目要求为
止。 程序代码如下:
第一部分
任 务 学 习
#include<stdio.h> void main() { double h=0.1; int n=0; /*n用来累计对折次数*/ while(h<=8848180) { h=h*2;
n=n+1;
} printf("对折次数为:%d,此时厚度:%.2f\n",n-1,h/2);
第一部分
一、while语句 二、for语句
任 务 学 习
循环结构程序设计实验报告
一、实验目的1. 掌握循环结构程序设计的基本方法和应用;2. 熟悉C语言、Java语言等编程语言中的循环结构;3. 提高编程能力,学会运用循环结构解决实际问题。
二、实验环境1. 操作系统:Windows 102. 编程语言:C语言、Java语言3. 编译器:Visual Studio、NetBeans三、实验内容1. C语言循环结构程序设计(1)编写一个C语言程序,实现输出1-100的累加和。
```c#include <stdio.h>int main() {int sum = 0;int i;for (i = 1; i <= 100; i++) {sum += i;}printf("1-100的累加和为:%d\n", sum);return 0;}```(2)编写一个C语言程序,实现输出16行杨辉三角。
```c#include <stdio.h>int main() {int arr[16][16];int i, j;for (i = 0; i < 16; i++) {for (j = 0; j <= i; j++) {if (j == 0 || i == j) {arr[i][j] = 1;} else {arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j]; }printf("%d ", arr[i][j]);}printf("\n");}return 0;}```2. Java语言循环结构程序设计(1)编写一个Java程序,实现输出1-100的累加和。
```javapublic class Sum {public static void main(String[] args) {int sum = 0;int i;for (i = 1; i <= 100; i++) {sum += i;}System.out.println("1-100的累加和为:" + sum);}}```(2)编写一个Java程序,实现输出16行杨辉三角。
实训四 循环结构程序设计和答案
实训四循环结构程序设计(注:答案在后面)班级:学号:姓名:实训时间:一、实训目标掌握循环结构程序的设计和调试方法。
1、掌握while、do whil、for三种C循环语句的执行流程。
2、掌握一般循环程序设计的步骤(循环体、循环条件、循环初始化)。
3、学会提前结束程序的方法(break语句)。
4、学会多循环出口时判断循环出口的方法。
5、学会循环程序的调试方法。
6、掌握求极值、分类统计、求素数等常用算法。
7、学会循环嵌套程序的设计和调试方法。
二、语法基础1. 在C语言中,实现循环的语句有: while语句、 do-while语句和语句2. break语句不能出现在()语句中A. switchB.forC. whileD. if…else3.语句while(!y);中的表达式!y等价于A)y==0 B)y!=1 C)y=!0 D) y==14.若有“int a=1,x=1;”,则循环语句“while(a<10) x++; a++;”的循环执行()A.无限次B.不确定次C.10次D.9次5..以下程序段 ( )x=-1;do { x=x*x; }while(x>0);A. 是死循环B. 循环执行一次C. 循环执行二次D. 有语法错误6. 思考题:在循环中,continue语句与break语句的区别是:continue语句只是,break语句。
break语句只能用于语句和语句中。
7.熟悉三种循环语句的执行流程,以计算 s=1+2+3+…+100为例,分别写出三种循环结构的核心程序。
示例:while 语句:s=0;i=1;while(i<=100){s=s+i;i++;}依据右侧的流程,改写为for 语句:do while 语句程序 do while结构流程图NO yes i<=100 i=0 s=s+i s=0 i++ while 下条语句三、实训内容和步骤1、改错(copy下面源程序到VC编辑界面,调试并改错)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验4 循环结构程序设计
一、实验目的
1. 掌握while、do-while、for循环的语法结构与应用。
2. 掌握while、do-while、for循环的区别。
3. 熟练掌握循环结构程序设计方法
4. 掌握循环结构算法的NS图表示法
5. 掌握在VS2008中设置断点、单步执行等程序调试方法
二、实验内容
实训1由键盘输入全体考生的C语言成绩,并求平均分。
实验步骤:
1) 在VS2008中新建项目,在项目中新建C++源文件,输入下面程序,并且编译、连接。
//***************************************************************
//* 程序名:实训4_1.cpp *
//* 主要功能: *
//* 由键盘输入考生成绩,求平均值 *
//***************************************************************
#include <iostream> // 包含输入输出接口文件
using namespace std; // 引用标准命名空间
int main() // 定义主函数
{
int i = 0; // 循环变量
int num = 0; // 考生人数
double score = 0; // 当前考生的成绩
double sum = 0; // 总成绩
double avg = 0; // 平均成绩
cout << "请输入考生人数:";
cin >> num;
cout << "请逐一输入各位考生的成绩:" << endl;
18 for(i = 1; i <= num; i++)
19 {
20 cin >> score; // 输入当前考生成绩
21 sum = sum + score; // 累加
22 }
avg = sum / num; // 求平均值
cout << "平均分是" << avg << endl;
return 0;
} // 主函数结束
2) 运行实训1,输入数据,观察输出结果。
3) 利用VS2008的调试功能,查看累加了3位学生的成绩后,变量sum的值。
提示:使用VS2008的调试功能方法是:在循环中第22行设置一个断点,然后运行3次循环,再查看变量sum的值,具体使用方法为:
①将光标移到要添加断点的行(即第22行)上,按F9即切换此行的断点状态,
原来第9行不是断点,按一次F9后,即将其设置为断点。
②按F5或点击调试菜单中的“启动调试”菜单项,开始进行调试,系统会自动将程
序运行至断点行,然后等待用户的下一步操作。
③此时,可在监视窗口中查看想查看的变量的值。
如,在监视窗口中的名称列中
输入变量名sum,即可看到变量sum的当前值,如图4-1所示。
图4-1 实训1调试界面
④按F11进行单步执行,程序会逐行执行,每执行完成当前行后,程序都会等待
用户的下一步操作。
也可以按F5继续执行,程序会执行到结束或断点处。
⑤本题可按三次F5,执行三次断点语句后,再查看变量sum的当前值,即为所
求。
此外,本题也有更好的方法:就是使用VS2008的条件断点功能,在第22行处设置一个条件断点,条件为i==3,具体设置方法为:
①将光标移到要添加断点的行(即第22行)上,按F9将此行设置为断点,再按
Alt+F9打开断点设置窗口,如图4-2所示。
图4-2 断点设置窗口
②鼠标右击断点行后,选择条件,会显示断点条件设置对话框如图4-3所示。
图4-3 断点条件设置对话框
③将断点条件设置为i==3,按确定。
断点设置结果如图4-4所示。
图4-4 条件断点设置结果
④按F5执行调试,程序会在输入完3位同学的成绩后,跳转至断点行处,等待用户的下一步处理。
此时,就与普通断点的使用方法相同了,可以查看变量的当前值,也可以进行单步执行或跳转。
实训2输入下面的程序,运行调试后回答其后的问题。
实验步骤:
1) 在VS2008中新建项目,在项目中新建C++源文件,输入下面程序,并且编译、连接。
//***************************************************************
//* 程序名:实训4_2.cpp *
//***************************************************************
#include <iostream> // 包含输入输出接口文件
using namespace std; // 引用标准命名空间
int main() // 定义主函数
{
short a = 1, b = 1, counter = 0; // 定义短整型变量
for(counter = 0; counter < 1000; counter++)
{ // 计数循环
a = a * a + b;
b = a + b * b;
}
if(a < 0)
{
cout<<"变量a的值溢出,现在其值为"<<a<<endl;
}
else
{
cout<<"a的值为"<<a<<endl;
}
return 0;
} // 主函数结束
2) 运行实训2,观察输出结果,从数学上描述上面程序所实现的递推功能。
3) 通过设置条件断点,快速查看第一次出现a或b的值为负时变量counter的值。
4) 不改变代码,通过断点设置直接观察if分支的执行情况,查看打印结果。
5) 分析:为什么正数连续相加若干次会变为负数?
6) 修改此程序,使其能正确完成2)中描述的递推功能。
实训3 若干位同学选修了3门课程,学分分别是4、3、2。
编写程序,依次输入他们的各科成绩,并输出每位同学的加权平均分。
算法分析:
本题需要利用循环实现对多位同学成绩的处理,循环体中实现成绩的录入和加权平均分计算,循环条件是各科成绩均不为负值。
利用while( )循环结构实现时,因为首先判断循环条件,所以必须在while( )语句之前先录入一位同学的成绩;计算并输出后,循环体的最后一句是录入下一位同学的成绩,以备下一次循环条件的判断。
算法NS图如图4-5所示:
初始化各科学分
输入一位同学的各科成绩
while(各科成绩均不为负值)
求各科成绩的加权平均
输出加权平均分
输入下一位同学成绩
图4-5 习题3.3的算法NS 图
变量说明:score1、score2、score3分别为三门课程的成绩,credit1、credit2、credit3分别为三门课程的学分,avgScore 为成绩加权平均分。
实验步骤:
1) 在VS2008中新建项目,在项目中新建C++源文件,输入程序,并且编译、连接。
2) 运行实训3,输入数据,观察输出结果。
实训4 编程求∑=n i i 1!(即求1!+2!+3!+…+n!)
,要求从键盘输入项数n ,运行后输出。
例如,输入n 的值为5,则输出:
1!+2!+...+5!=153
提示:需注意整数是否越界的问题,并且要求设计出一个只需做n 次乘法的算法。
实验步骤:
1) 在VS2008中新建项目,在项目中新建C++源文件,输入程序,并且编译、连接。
2) 运行实训4,输入整数10,观察输出结果。
3) 运行实训4,输入整数20,观察输出结果。
4) 通过设置条件断点,快速查看输出结果第一次为负时变量i 的值。
5) 分析:为什么正整数连续相乘若干次会变为负数?
三、实验报告要求
1. 根据程序要求对运行结果进行分析。
如果程序未能调试通过,分析其原因。
2. 根据实验步骤,说明未能编译通过的原因,并正确进行修改。
3. 总结实验中遇到的问题,理解C 语言的循环结构语句及其执行流程,并谈谈本次实验的收获与经验。
4. 在问题描述项中使用NS 图描述各实训算法。