温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
大学计算机
A3
实验
实验六 程序三种基本结构
一、实验目的
1.了解程序的基本控制结构顺序结构。
2.了解选择结构的格式。
3.了解循环结构的格式。
二、实验内容
依据实验步骤,将需要填写的内容填写在素材的“算法实验报告.doc”文件中,在实验十三、实验十四两个实验完成后,将该文件命名为“算法-班级-学号-姓名.doc”,(用个人具体信息替换命名格式),然后上传。
1.了解顺序结构
任务名称:交换两个变量的值。如a=1, b=2,交换后a=2, b=1
源代码://1.cpp
#include<iostream>
using namespace std;
int main()
{
int a=1, b=2;
int tmp;
cout<<"交换前: a="<<a<<", b="<<b<<endl;
tmp=a;
a=b;
b=tmp;
cout<<"交换后: a="<<a<<", b="<<b<<endl;
return 0;
}
运行结果:(需要截图)
运行结果分析:
(1)什么是顺序结构?
(2)如何借助第三个变量实现交换两个变量的值?
2.了解选择结构
任务名称:使用if语句判断学生成绩是否及格:大于或等于60分认为及格,否则不及格。
源代码://2.cpp
#include<iostream>
using namespace std;
int main()
{
int i;
cout<<"请输入(百分制)分数:";
cin>>i;
if(i>=60)
cout<<"成绩为"<<i<<"的分数:及格"<<endl;
else
cout<<"成绩为"<<i<<"的分数:不及格"<<endl;
return 0;
}
运行结果:(需要截图)
运行结果分析:
(1)什么是选择结构?if语句的基本格式
(2)如果输入的数据不是0~100之间的数,如何处理?
3.了解循环结构
任务名称:使用for语句计算整数1~100的和
源代码://3.cpp
#include<iostream>
using namespace std;
int main()
{
int sum=0;
for(int i=1;i<=100;i++)
sum=sum+i;
cout<<"1+2+3+...+100="<<sum<<endl;
return 0;
}
运行结果:(需要截图)
运行结果分析:
(1)什么是循环结构?for语句的基本格式是什么?
(2)针对for语句的表达式赋初值、控制循环的条件、循环变量的修正,思考下述问题:
如何计算0~100之间的偶数或奇数?
如何计算50~100之间的和,包括50和100?
如何计算0~50之间的和,包括50?
4.开阔思路(选做)
问题:如何依据平时的成绩划分标准,将百分制的成绩转换为优秀、良好、中等、及格、不及格?感兴趣的同学可以参考或运行3-1.cpp
实验六 算法
一、实验目的
1.掌握选择排序的方法
2.掌握冒泡排序的方法。
二、实验内容
依据实验步骤,将需要填写的内容继续填写在素材的“算法实验报告.doc”文件中,在完成本实验十四后,将该文件命名为“算法-班级-学号-姓名.doc”,(用个人具体信息替换命名格式),然后上传。
1.选择排序
任务名称:给出6个数,按照从小到大的顺序,给出利用选择排序方法排序的过程和结果。
//4.cpp能输出每一轮比较的结果,4-1.cpp只能输出原始和最后的结果
源代码:
#include<iostream>
#define N 10
using namespace std;
int main()
{
int a[N]={8,6,9,3,2,7,11,15,0,4};
int i,j,m,min,tmp;
//先输出原始数据
cout<<"排序之前数据为: ";
for(i=0;i<N;i++)
cout<<"a["<<i<<"]="<<a[i]<<" ";
cout<<endl;
//比较并输出每轮比较结果
//每次在无序数中找到最小数的下标,然后存放在无序数的第一个位置
for(i=0;i<N-1;i++)
{
min=i;
for(j=i+1;j<N;j++)
if(a[j]<a[min])
min=j;
tmp=a[i];
a[i]=a[min];
a[min]=tmp;
cout<<"第"<<i+1<<"轮比较交换之后 ";
for(m=0;m<N;m++)
{
cout<<"a["<<m<<"]="<<a[m]<<" ";
}
cout<<endl;
}
//输出最后结果
cout<<"最后排序结果为: ";
for(i=0;i<N;i++)
cout<<"a["<<i<<"]="<<a[i]<<" ";
cout<<endl;
return 0;
}
运行结果:(需要截图)
运行结果分析:
(1)什么是选择排序?
//每次在无序数中找到最小数的下标,然后存放在无序数的第一个位置
(2)如果要求从大到小排序,如何修改程序?
2.冒泡排序
任务名称:给出10个数,按照从小到大的顺序,给出利用冒泡排序方法排序的过程和结果
源代码://5.cpp
#include<iostream>
#define N 10
using namespace std;
int main()
{
int a[N]={8,6,9,3,2,7,11,15,0,4};
int i,j,m,min,tmp;
//先输出原始数据
cout<<"排序之前数据为: ";
for(i=0;i<N;i++)
cout<<"a["<<i<<"]="<<a[i]<<" ";
cout<<endl;
//比较并输出每轮比较结果
//在每一轮排序时将相邻的两个数组元素进行比较,次序不对时立即交换位置
//一轮比较结束时小数上浮,大数沉底,有n个数需进行n-1轮操作。
for(i=0;i<N-1;i++)
{
for(j=0;j<N-i-1;j++)
if(a[j]>a[j+1])
{
tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
cout<<"第"<<i+1<<"轮比较交换之后 ";
for(m=0;m<N;m++)
{
cout<<"a["<<m<<"]="<<a[m]<<" ";
}
cout<<endl;
}
//输出最后结果
cout<<"最后排序结果为: ";
for(i=0;i<N;i++)
cout<<"a["<<i<<"]="<<a[i]<<" ";
cout<<endl;
return 0;
}
运行结果:(需要截图)
运行结果分析:
(1)什么是冒泡排序?
//在每一轮排序时将相邻的两个数组元素进行比较,次序不对时立即交换位置,一轮比较结束时小数上浮,大数沉底,有n个数需进行n-1轮操作。
(2)如果要求从大到小排序,如何修改程序?