上机实验五 循环结构程序设计一
- 格式:doc
- 大小:50.50 KB
- 文档页数:6
python程序设计实验报告五:循环结构程序设计(综合性实验)安徽⼯程⼤学Python程序设计实验报告班级物流192 姓名张⽻学号 3190505221 成绩⽇期 2020.4.23 指导⽼师修宇实验五综合运⽤三种基本结构进⾏程序设计(综合性实验)(⼆学时)【实验⽬的】(1)进⼀步掌握选择与循环结构程序设计的⽅法和技巧;(2)综合运⽤三种基本结构进⾏程序设计;【实验条件】PC机或者远程编程环境【实验内容】1、完成三个编程题。
(1)计算并输出指定范围内的素数素数⼜称质数。
指整数在⼀个⼤于1的⾃然数中,除了1和此整数⾃⾝外,没法被其他⾃然数整除的数。
换句话说,只有两个正因数(1和⾃⼰)的⾃然数即为素数。
⽐1⼤但不是素数的数称为合数。
1和0既⾮素数也⾮合数。
素数在数论中有着很重要的作⽤。
2300多年前,古希腊数学家欧⼏⾥得在《⼏何原本》⼀书中证明了素数有⽆穷多个,如2、3、5、7、11等等。
问题描述:编程实现输出指定范围内的素数,输⼊以逗号间隔,输出以空格间隔。
指定范围由⽤户输⼊指定。
(2)九九乘法表问题描述:请按照如下格式设计⼀个“九九乘法⼝诀表”,并打印出来。
编程要点及提⽰:1. 使⽤for循环或者while循环实现以上功能2. 代码量不超过10⾏3. 在⼀⾏中,每个等式之间使⽤制表符"\t"进⾏分隔;对于每⼀⾏等式之间使⽤print()打印空字符实现,即print("")(3)统计不同字符个数问题描述:⽤户从键盘输⼊⼀⾏字符。
请编写⼀个程序,统计并输出其中英⽂字符、数字符号、空格和其他字符的个数。
输⼊格式:输⼊⼀⾏字符输出:按照顺序输出字母,数字,空格,及其他字符的个数,个数以空格分隔如:【实验记录与分析】(请在填写实验记录与分析结果)1.计算并输出指定范围内的素数输⼊代码,输出结果及分析如下:易错点:1.程序⽆法同时处理两个输⼊数据,在输⼊未处理时。
2.本题中的else语句不能和第⼆个的if对齐。
实验一C程序的运行环境及简单程序编写一、实验目的1.了解tc2.0编译系统的基本操作方法,学会独立使用该系统。
2.了解在该系统上如何编辑、编译、连接和运行一个C程序。
3.通过运行简单的C程序,初步了解C源程序的特点。
二、实验内容1.编写一个计算球体体积的程序,要求用户自行录入球体的半径。
参考公式V=4/3πr3.。
2.编写一个程序,要求用户输入一个美金数量,然后显示出如何用最少的20美元、10美元、5美元和1美元来付款。
运行结果:Ener a dollar amount:93$20 bills:4$10 bills:1$5 bills:0$1 bills:3实验二顺序结构程序设计一、实验目的1.熟悉C语言中的基本数据类型,掌握定义常量和变量以及对它们赋值的方法,了解数据输出时所用格式转换符。
2.掌握格式输入/输出函数的用法。
3.学会简单顺序程序的设计。
4.养成良好的程序设计习惯。
二、实验内容1.编写一个程序,对用户录入的产品信息进行格式化。
Enter item number:583Enter unit price:13.5Enter purchase date(mm/dd/yyyy):3/24/2010Item Unit PurchasePrice date583 $ 13.50 3/24/20102.编写一个程序,要求用户输入一个两位数,然后按数位的逆序打印出这个数。
Enter a two-digit number:28The reversal is :82实验三选择结构程序设计一、实验目的1.熟练使用if、switch编写程序。
二、实验内容1.编写一个程序,确定一个数的位数。
Enter a number:374The number 374 has 3 digits假设输入的数最多不超过4位。
提示:利用if语句进行数的判定。
例如,如果数在0到9之间,那么位数为1;如果数在10到99之间,那么位数为2。
一、实验目的1. 理解循环程序设计的基本原理和方法。
2. 掌握不同编程语言中循环结构的实现方式。
3. 学会使用循环程序解决实际问题。
二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.8.03. 编程工具:PyCharm三、实验内容1. 循环结构的基本概念循环结构是程序设计中的一种常见结构,用于重复执行一段代码。
在Python中,常见的循环结构有while循环、for循环和嵌套循环。
2. while循环while循环是一种基于条件的循环结构,当条件满足时,循环体中的代码会被重复执行。
实验示例:```pythoni = 0while i < 5:print(i)i += 1```3. for循环for循环是一种基于迭代对象的循环结构,通常用于遍历列表、元组、字符串等可迭代对象。
实验示例:```pythonfor i in range(5):print(i)```4. 嵌套循环嵌套循环是指在循环体内部再嵌套一个循环结构。
实验示例:```pythonfor i in range(3):for j in range(3):print(f"i={i}, j={j}")```5. 循环控制语句循环控制语句用于改变循环的执行流程,包括break、continue和pass。
实验示例:```pythonfor i in range(5):if i == 3:breakprint(i)```6. 循环程序解决实际问题(1)计算1到100的偶数之和```pythonsum = 0for i in range(1, 101):if i % 2 == 0:sum += iprint(sum)```(2)判断一个整数是否为水仙花数```pythonnum = int(input("请输入一个整数:")) temp = numsum = 0while temp > 0:digit = temp % 10sum += digit 3temp //= 10if sum == num:print(f"{num}是水仙花数")else:print(f"{num}不是水仙花数")```四、实验总结通过本次实验,我对循环程序设计有了更深入的了解。
实验五:循环结构程序设计实验报告一、实验目的1. 了解循环结构的基本概念和原理;2. 掌握使用Matlab进行循环结构程序设计的方法;3. 提高编程能力和问题解决能力。
二、实验内容1. 学习while循环和for循环的基本语法和用法;2. 设计并编写一些基于循环结构的Matlab程序;3. 分析程序运行结果并进行总结。
三、实验原理循环结构是程序设计中的重要组成部分,它可以让一段代码重复执行多次,从而简化程序的编写。
在Matlab中,循环结构主要有while 循环和for循环两种形式。
while循环在执行循环体前判断条件是否为真,只有条件为真时才会执行循环体;for循环则是指定循环的次数,每次迭代时执行一次循环体。
四、实验步骤与结果1. 编写一个使用while循环的程序,实现1~100的累加。
程序代码如下:```matlabsum = 0;i = 1;while i <= 100sum = sum + i;i = i + 1;enddisp(sum);```运行程序后,得到的结果为5050。
2. 编写一个使用for循环的程序,实现1~10的阶乘。
程序代码如下:```matlabresult = 1;for i = 1:10result = result * i;enddisp(result);```运行程序后,得到的结果为xxx。
五、实验总结通过本次实验,我深刻理解了循环结构的基本概念和原理,掌握了使用Matlab进行循环结构程序设计的方法。
在编写循环程序的过程中,我发现循环结构可以大大简化程序的编写,并且能够高效地处理重复性任务。
我也进一步提高了自己的编程能力和问题解决能力。
本次实验使我对Matlab中的循环结构有了更加深入的了解,我相信这对我的编程能力和日后的学习工作都将大有裨益。
六、实验感想和改进意见通过本次实验,我深刻认识到循环结构在程序设计中的重要性和灵活性。
循环结构能够帮助我们简化程序的编写,提高代码的重用性和可读性,因此在实际的程序设计中,合理地运用循环结构能够大大提高程序的效率和逻辑清晰度。
程序设计基础(C语言)实验报告课程名称:程序设计基础(C语言)姓名:学号:年级:专业:指导教师:实验地点:目录实验一顺序结构程序设计实验二选择结构程序设计实验三循环结构程序设计实验四数组及其应用实验五函数及其应用实验六指针及其应用实验(一)顺序结构程序设计一、实验目的1.掌握顺序结构程序的设计思想,领会顺序结构的程序执行时顺次执行的特点。
2.掌握赋值语句的特点、功能。
3.掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。
4.掌握编写程序和调试程序的方法。
二、实验内容及要求1.用下面的scanf函数输入数据使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。
#include <stdio.h>int main(){int a,b;float x,y;char c1,c2;scanf("a=%db=%d",&a,&b);scanf("%f%e",&x,&y);scanf("%c%c",&c1,&c2);printf("a=%d,b=%d,x=%.1f,y=%.2f,c1=%c,c2=%c\n",a,b,x,y,c1,c2);return 0;}运行时分别按以下方式输入数据,观察输出结果,分析原因(□表示空格,↙表示回车)。
(1)a=3,b=7,x=8.5,y=71.82,A,a↙(2)a=3□b=7□x=8.5□y=71.82□A□a↙(3)a=3□b=7□8.5□71.82□A□a↙(4)a=3□b=7□8.5□71.82Aa↙(5)3□7□8.5□71.82Aa↙(6)a=3□b=7↙8.5□71.82↙A↙a↙(7)a=3□b=7↙8.5□71.82↙Aa↙(8)a=3□b=7↙8.5□71.82Aa↙通过此题,总结输入数据的规律和容易出错的地方。
实验结论循环结构程序设计一、引言二、实验目的三、实验原理1.循环结构的概念2.循环结构的分类3.循环结构程序设计的基本原则四、实验步骤1.确定循环次数和循环条件2.选择合适的循环结构语句3.编写循环体语句五、实验结果分析六、结论与讨论引言:编程是计算机科学中非常重要的一部分,而程序设计中常用到的循环结构也是非常重要的一种控制流程方式。
本文将介绍如何进行循环结构程序设计,并给出相应实验结果及分析。
实验目的:通过本次实验,我们将学会如何使用不同类型的循环结构来控制程序流程,并能够编写简单而有效的程序。
实验原理:1. 循环结构的概念:在程序运行过程中,为了重复执行某些操作或者根据特定条件反复执行某些操作,需要使用到循环结构。
2. 循环结构的分类:常见的有while循环、do-while循环和for循环。
3. 循环结构程序设计基本原则:确定好需要重复执行多少次或在什么情况下需要重复执行,选择合适的循环结构语句,编写循环体语句。
实验步骤:1. 确定循环次数和循环条件:在程序设计之前,需要明确需要重复执行多少次或在什么情况下需要重复执行。
2. 选择合适的循环结构语句:根据确定好的循环次数和循环条件,选择while、do-while或for等不同类型的循环结构语句。
3. 编写循环体语句:在循环结构中,需要编写具体的操作语句来实现所需功能。
实验结果分析:通过本次实验,我们可以发现,在程序设计中使用不同类型的循环结构可以有效地控制程序流程,并且能够编写出简单而有效的程序。
同时,在实际应用中也需要根据具体需求来选择合适的循环结构类型以及确定好相应的循环次数和条件。
结论与讨论:通过本次实验,我们深入了解了循环结构程序设计,并掌握了相应技能。
在今后的学习和工作中,我们将继续深入研究相关知识,并且不断提高自己在编程方面的能力。
上机实验五循环结构程序设计(一)
一.目的要求
1.掌握while、do-while、for语句的语法规则、执行流程。
2.比较3种循环语句的异同。
3.按题目要求,完成代码。
二.实验内容
思考问题:3种循环的异同点?能否相互转换?for循环控制单元的表达式与while循环中表达式是如何对应的?
第1题、分别用while、do-while、for语句编程,求数列前20项之和:2/1,3/2,5/3,8/5,13/8······
算法提示:
1)定义实变量sum、term、a、b、c,整变量i
2)初始化:sum=0,分子a=2,分母b=1
3)初始化:i(计数器)=1
4)计算第i项term =a/b
5)累加sum=sum+term
6)计算c=a+b,更新b= a,更新a=c
7)计数器加1,i++
8)重复4、5、6、7,直到i>20
9)输出2位精度的结果
编写程序:
方法一,用while语句:
#include<stdio.h>
void main(){
float sum=0,term=0,a=2,b=1,c;
int i=1;
while(i<=20){
s=s+a/b
c=a+b;
b=a;
a=c;
i++;
}
printf(“s=%.2f”,s);
}
方法二,用do-while语句:
#include<stdio.h>
void main(){
float sum=0,term=0,a=2,b=1,c;
int i=1;
do while(i<=20){
s=s+a/b
c=a+b;
b=a;
a=c;
i++;
};
printf(“s=%.2f”,s);
}
方法三,用for语句:
#include<stdio.h>
void main(){
float sum=0,term=0,a=2,b=1,c;
int i;
for(i=1;i<=20;i++){
s=s+a/b
c=a+b;
b=a;
a=c;
}
printf(“s=%.2f”,s);
}
第2题、计算多项式的值:s=1!+2!+3!+4!+ (20)
算法提示:该多项式迭代公式为:term=term*i,sum=sum+term 注意:哪些变量需要初始化?变量应采用什么类型?
编写程序:
#include<stdio.h>
void main(){
int i;
double s=0,fact=1;
for(i=1;i<=20;i++){
fact*=i;
s=s+fact;
}
printf(“s=%f”,s);
}
把每一次迭代结果输出,程序应做怎样的修改?
第3题、输入x和n,计算并输出下式的值:s=x/1+x/3+……+x/n
参考答案:
int main()
{
int n,i;
float x,s=0;
printf("请输入x,n,以,分隔");
scanf("%f,%d",&x,&n);
for(i=1;i<=n;i+=2)
{
s+=(x/i);
}
printf("\ns=%f",s);
}
第4题、输入一批正整数,求出其中的偶数之和。
(思考:如何表示输入的结束?)参考答案:
int main()
{
int sum=0,n;
printf("请输入若干正整数,以空格分隔,并以0表示结束");
scanf("%d",&n);
while(n>0)
{
if(n%2==0) sum+=n;
scanf("%d",&n);
}
printf("sum=%d",sum);
}
第6题、输入x,计算并输出下式的值:
s=x/(1*2)+x/(3*4)+x/(5*6)+……
直到最后一项的绝对值小于1E-5
参考答案:
int main()
{
float sum,x,item;
int i=1;
printf("请输入x=");
scanf("%f",&x);
do
{
item=x/(i*(i+1));
sum+=item;
i+=2;
}while(fabs(item)>1E-5);
printf("sum=%f",sum);
}
第5题、输入正数n,要求输出Fibonacci数列的前n项。
1,1,2,3,5,8……
参考答案:
int main()
{
long x1=1,x2=1,x,n,i;
printf("请输入n=");
scanf("%d",&n);
printf("%d\t%d\t",x1,x2);
for(i=3;i<=n;i++)
{
x=x1+x2;
printf("%d\t",x);
if(i%5==0) //每行输出5个数
printf("\n");
x1=x2;
x2=x;
}
}
第6题、求下列多项式的和,直到最后一项的绝对值小于1E-5。
s=1/2-1/5+1/8-1/11+……
参考答案:
#include<math.h>
int main()
{
int flag=1;
float sum,n=2,item;
do
{
item= flag*1/n;
sum+=item;
flag=-flag;
n+=3;
}while(fabs(item)>=1E-5);
printf("sum=%f",sum);
}
第7题:计算e=1+1/1!+1/2!+1/3!+1/4!......,直到最后一项的绝对值<1E-5。
(分别用while语句和do...while语句实现)
参考代码:(While自己完成)
#include <stdio.h>
void main()
{
float sum=1,item;
int fm=1,i=1;
do
{
item=1.0/fm;
sum=sum+item;
i++;
fm*=i;
}while(fabs(item)>1E-5);
printf("e=%f\n",sum);
printf("谢谢,按回车键结束");
}
第8题、给出任意一个位数不确定的正整数,要求分别从低位到高位、从高位到低位逐位分割输出。
比如输入123456,输出6,5,4,3,2,1和1,2,3,4,5,6
从高位到低位的参考答案:
int main()
{
long n,t=1;
printf("请输入一个长整数n=");
scanf("%ld",&n);
while (n/t!=0)
{
t*=10;
}
t/=10;
while (t!=0)
{
printf("\n%d\t%d\t%d",n,t,n/t);
n=n%t;
t=t/10;
}
putchar('\n');
}
第9题、36块砖36人搬,男搬4女搬3,小孩2人搬1砖。
要求一次全搬完,问男、女、小孩各需多少(人)?如有多种方案,输出第一种方案及方案的数量。
算法提示:设x,y,z 表示男、女、小孩的人数,则有不定方程:
x+y+z=36
4x+3y+z/2=36
对x,y,z所有可能的组合测试出满足条件的解。
x、y、z的取值范围:
✧x:1~9,步长1
✧y:1~ 12,步长1
✧z:2~36,步长2
对x,y,z所有可能的组合重复测试条件:
4*x+3*y+z/2==36 &&x+y+z==36
是否成立,若成立则打印出x、y、z的值。
编写程序:
#include<stdio.h>
void main(){
int x,y,z;
for(x=1;x<=9;x++)
for(y=1;y<=12;y++)
for(z=2;z<=36;z=z+2)
if(x+y+z==36 && 4*x+3*y+z/2==36) printf(“%d,%d,%d\n”,x,y,z); }。