实验五 数组

合集下载

C++语言程序设计形考二实验五

C++语言程序设计形考二实验五

C++语言程序设计形考二实验五上机实验5:数组应用程序设计一、实验内容有如下程序:#include<iostream>using namespacestd;intmain(){__________________ //定义具有6个元素的整形数组dint data,i=0.// data用于暂存每一个输入数据,i记录已插入数据的个数。

cout<<"请输入6个整数:";do{ //输入并处理6个数据cin。

data;int j=i。

//j是候选的插入位置while(j>0){ //若j==0,它就是第一个数据的插入位置,无需进入循环。

if(data>=d[j-1]) __________。

//若找到插入位置,退出循环。

d[j]=d[j-1]。

//否则数据后移一个位置j--;}d[j]=data。

//数据插入到位置j处i++。

//i记录已插入数据的个数}while(________)。

//若缺乏6个数据,连续输入。

for(_______________________) cout<<d[i]<<' ';//表现数组中的6个数据cout<<endl;return 0;}此程序输入6个整数保存到一维数组d中,使得输入的数据在数组中始终按从小到大的顺序排列,最后顺序输出数组中的数据。

例如,若输入是5 7 4 29 3,程序的输出是:2 3 4 5 79.二、实验要求读懂步伐,弥补步伐中下划线处缺失的部分,上机测试,直至产生精确的输出成效。

三、实验结果截图。

FORTRAN实验报告2016LI

FORTRAN实验报告2016LI
四、程序清单
五、调试和测试结果
六、教师批语与成绩评定:
年月日
《FORTRAN语言》实验(上机)报告
班级·学号姓名实验日期任课教师
实验名称
实验二选择结构程序设计
验证型
一、实验目的
(1)掌握逻辑表达式的书写方法和逻辑型数据的使用;
(2)学会正确使用逻辑运算符和逻辑表达式;
(3)掌握块IF结构、块CASE结构、逻辑IF语句和算术IF语句。
(1)掌握字符型、双精度型常量变量的表示方法及其运算;
(2)掌握字符型数据的输入输出格式及数据类型之间的转换和运算规则。
二、实验内容:
(1)编写程序:输入一个字符,若为小写字母,则输出其大写字母;若为大写字母,则输出其小写字母;若为数字,则原样输出该数字字符;否则,输出*。
(2)编写程序,用双精度数据计算:
(1)编写程序:从键盘输入若干字符串,并把这些字符串存放到文件FILE1.TXT中。
(2)编写程序,读出当前文件夹下文件README.TXT的内容,显示在屏幕上。
三、实验平台
Fortran PowerStation4.0
四、程序清单
五、调试和测试结果
六、教师批语与成绩评定:
年月日
《FORTRAN语言》实验(上机)报告
PRINT*,Y
READ*,N
END
五、调试和测试结果
实验一正常运行,共有143个素数,其和为75067
实验二正常运行,当输入m=10时,输出结果为445
六、教师批语与成绩评定:
年月日
《FORTRAN语言》实验(上机)报告
班级·学号姓名实验日期任课教师
实验名称
实验四字符型数据程序设计
操作型

C语言实验五实验报告——数组

C语言实验五实验报告——数组

C语言实验五实验报告——数组一、实验目的:1.了解数组的概念和基本使用方法;2.掌握一维数组和二维数组的定义、初始化、赋值及基本运算实现;二、实验内容与方法1.理论部分数组是一些具有相同类型的数据元素按一定顺序排列组合而成的集合,在程序设计中它是一个变量列表,由若干相同数据类型的元素组成。

通常用一个名字和一个下标来表示,下标可理解为数组元素在数组中的位置编号。

数组的特点:数组是根据顺序排列的元素的集合;所有的元素必须是相同类型。

数组的定义方法:1. 定义数组,数组元素类型 + 数组名[元素的个数];2. 元素的个数必须是整型常量或变量,定义时必须明确、指定元素的个数;3. 声明一个数组时,除了要指定数组的类型外,还要指定数组的名称;4. 数组定义完后,需要对其中的每个元素进行初始化。

可以在定义数组时赋初值,也可以通过赋值符号,对数组元素逐个进行赋值。

数组的初始化:1. 元素个数之间用逗号分开,最后1个元素后无逗号;2. 支持部分元素初始化;3. 定义和初始化可以一步完成。

二维数组数组可分为一维和多维数组。

一维数组可以看作是包含多个元素的向量,而二维数组可以看做是包含了多个一维数组的矩阵。

二维数组有行号和列号,因此,它同样需要两个下标。

数组元素类型数组名[行数][列数];数组元素类型数组名[ ][ ] = { {元素1, 元素2, ……}, {元素1, 元素2, ……}, ……{元素1, 元素2, ……}}2.实验代码**问题1:**定义一个一维数组a,包含有5个元素,分别为1,2,3,4,5;**问题2:**定义一个一维数组a,接收用户从键盘输入的5个数值,分别打印存储的各个元素。

三、实验结果与分析结果分析:定义了一个5个元素的一维数组a,并初始化了各个元素的值,其元素分别为1,2,3,4,5.循环遍历一遍数组a,并打印数组元素。

程序执行正常。

3.针对问题3:定义一个二维数组a,由4行3列组成,每个元素初始化为0,打印存储的各个元素;程序运行结果如下:四、实验总结:该实验主要是通过对C语言数组的理论知识和基本操作进行练习,加深了对数组的了解和掌握。

程序设计实验报告总结.doc

程序设计实验报告总结.doc

程序设计实验报告总结实验五使用数组的程序设计班级学号姓名一、实验目的(1)掌握一维数组和二维数组的定义、赋值和输入输出方法。

(2)掌握字符数组的使用。

(3)掌握与数组有关的算法。

二、实验内容及步骤1、验证性实验输入已编好的源程序,然后进行编辑、编译、连接和运行,观察运行结果。

(1)某数列前两项为0,1,以后各项均为前相邻两项之和,输出该数列前20项。

#include&lt;stdio.h&gt;main(){long i,x[20];x[0]=0;x[1]=1;for(i=2;i&lt;20;i++)x[i] =x[i-1]+x[i-2];for(i=0;i&lt;20;i++)printf(&quot;% ld\t&quot;,x[i]);}输出结果:(2)从键盘输入N个自然数,然后按升序进行排列。

用;比较法;#include&lt;stdio.h&gt;#define N 10main(){int a[N],t,i,j;for(i=0;i&lt;N;i++) /*本循环输入N个原始数据*/scanf (&quot;%d&quot;, &amp;a[i]);for(i=0;i&lt;N-1;i++) /*本循环完成排序*/for(j=i+1;j&lt;N;j++) /* x[i]与它后边所有元素逐一比较,大则交换*/if (a[j]&lt;a[i]) {t=a[j];a[j]=a[i];a[i]=t;}for(i=0;i&lt;N;i++) /* 输出排序后的数组*/printf(&quot; %d&quot;,a[i]);}输出结果:2、完成以下程序,并进行调试(1)从键盘输入一个班(全班最多不超过30人)学生某门课的成绩,当输入成绩为负值时,输入结束,分别统计下列内容:a)统计不及格人数并打印不及格学生名单;b)统计成绩在全班平均分及平均分之上的学生人数并打印其学生名单;c)统计各分数段的学生人数及所占的百分比程序代码:#include&lt;stdio.h&gt;int F1(int i,int sum,int *a,int *counter){int j;printf(&quot;不及格学生名单:&quot;);for(j=1;j&lt;i-1;j++){sum+=a[j];if(a[j]&lt;60){printf(&quot;%3d&quot;,j);counter[0]++;}}return sum;}F2(int i,float average,int *a,int *counter){int j;printf(&quot;average=%f,成绩大于等于平均分的学生名单:&quot;,average);for(j=1;j&lt;i-1;j++){if(a[j]&gt;=average){printf(&quot;%3d&quot;,j);counter[11]++;}}}F3(int i,int *a,int *counter){int j;for(j=1;j&lt;i-1;j++){if(a[j]&lt;=10) counter[1]++;else if(a[j]&gt;10&amp;&amp;a[j]&lt;=20) counter[2]++;else if(a[j]&gt;20&amp;&amp;a[j]&lt;=30) counter[3]++;else if(a[j]&gt;30&amp;&amp;a[j]&lt;=40) counter[4]++;else if(a[j]&gt;40&amp;&amp;a[j]&lt;=50) counter[5]++;else if(a[j]&gt;50&amp;&amp;a[j]&lt;=60) counter[6]++;else if(a[j]&gt;60&amp;&amp;a[j]&lt;=70) counter[7]++;else if(a[j]&gt;70&amp;&amp;a[j]&lt;=80) counter[8]++;else if(a[j]&gt;80&amp;&amp;a[j]&lt;=90) counter[9]++;else if(a[j]&gt;90&amp;&amp;a[j]&lt;=100) counter[10]++;}printf(&quot;各分数段人数: 百分比:\n&quot;);for(j=1;j&lt;=10;j++)printf(&quot;%d %f\n&quot;,counter[j],(float)(counter[j])/(i-2)); }main(){static int a[31],counter[12],flag;int i=1,j=1,sum=0;float average;printf(&quot;请输入学生成绩并以负值结束: &quot;);do{scanf(&quot;%d&quot;,&amp;a[i]);if(a[i]&lt;0)flag=1;i++;}while(flag==0);sum=F1(i,sum,a,counter);printf(&quot;不及格人数=%d\n&quot;,counter[0]);average=(float)sum/(i-2);F2(i,average,a,counter);printf(&quot;大于等于平均分人数=%d\n&quot;,counter[11]);F3(i,a,counter);}运行结果:(2)编写一个程序,利用字符数组实现两个字符串的比较。

实验报告

实验报告

实验四类,对象和接口一.实验目的(1)掌握类的声明,对象的创建以及方法的定义和调用。

(2)掌握打包机制。

(3)掌握类的继承。

(4)掌握类接口的使用。

二、实验方案(1)//Father.java;package tom.jiafei;public class Father{int height;protected int money;public int weight;public Father(int m){money=m;}protected int getMoney(){return money;}void setMoney(int newMoney){money=newMoney;}}//Jerry.java:import tom.jiafei.Father;public class Jerry extends Father{public Jerry(){super(20);}public static void main(String args[]){Jerry jerry=new Jerry();jerry.weight=200;jerry.money=800;int m=jerry.getMoney();System.out.println("m="+m);}}(2)interface ShowMessage{void 显示商标(String s);}class TV implements ShowMessage{public void 显示商标(String s){System.out.println(s);}}class PC implements ShowMessage{public void 显示商标(String s){System.out.println(s);}}public class Example4_28{public static void main(String args[]){ShowMessage sm;sm=new TV();sm.显示商标("长城牌电视机");sm=new PC();sm.显示商标("联想奔月5008PC");}}(3)求50以内的素数//Number.javapackage sushu;//将Number.java打包到文件夹sushu中public class Number{public void prn()//创建方法prn(){boolean flag ;for (int i=2;i<50;i++){flag = true ;//将flag初始化for (int j=2 ;j <= i/2 ; j++){ //只需对2到i/2之间取余,因为假如i/2到i有某个数x被i整除,则在2到i/2必定能找到一个数y(y*x=i)被i整除if (i%j == 0 ){flag = false ;break;//假如2到i/2有某个数被i整除,则跳出,执行下一次循环}}if (flag == true ){System.out.print(i+"\t");}//若flag为真,则i为素数,输出i的值}}}//Num.javaimport sushu.Number;//引用定义的包public class Num extends Number{public static void main(String args[]){Number num=new Number();num.prn();}}三、实验结果和数据处理(1)(2)(3)实验五数组与字符串一.实验目的(1)掌握一维数组的概念、定义和使用。

C语言实验五实验报告——数组

C语言实验五实验报告——数组

C语言实验五实验报告——数组实验五:数组实验目的:1.掌握数组的定义和使用;2.熟悉数组在函数中的传递;3.练习编写使用数组的程序。

实验原理:数组是一组相同类型的变量的集合,这些变量称为数组的元素。

数组的名字是一个指针常量,它存放的是数组首个元素的地址。

数组元素在内存中是连续存放的,可以通过下标访问每一个元素。

数组的定义:数组的定义格式为:数据类型数组名[数组长度];数组的初始化:数组可以在定义时进行初始化,也可以在定义之后通过赋值进行初始化。

数组作为函数参数:数组可以作为函数的形参进行传递,可以通过指针传递整个数组,也可以传递数组的部分元素。

实验步骤:1.编写一个程序,实现对学生成绩的管理。

要求如下:-使用一个数组保存学生的成绩;-能够动态添加学生的成绩,并显示添加成功的信息;-能够计算学生的平均成绩,并显示;-能够根据用户输入的学号查找对应学生的成绩,并显示。

2.编写一个程序,实现对一组整数进行排序。

要求如下:-首先自定义一个整数数组,数组元素个数为用户输入;-编写一个函数,实现对数组进行排序,要求使用选择排序算法;-在主函数中调用该函数,对数组进行排序后显示。

实验结果与分析:1.学生成绩管理程序运行结果如下:```-------学生成绩管理系统-------[1]添加学生成绩[2]计算平均成绩[3]查找学生成绩[4]退出系统请输入选项:1请输入成绩:90添加成功![1]添加学生成绩[2]计算平均成绩[3]查找学生成绩[4]退出系统请输入选项:1请输入成绩:85添加成功![1]添加学生成绩[2]计算平均成绩[3]查找学生成绩[4]退出系统请输入选项:2平均成绩为:87.5[1]添加学生成绩[2]计算平均成绩[3]查找学生成绩[4]退出系统请输入选项:3 [1]添加学生成绩[2]计算平均成绩[3]查找学生成绩[4]退出系统请输入选项:4退出系统。

```2.整数排序程序运行结果如下:```-------整数排序-------请输入待排序的整数个数:6请输入第1个整数:5请输入第2个整数:3请输入第3个整数:9请输入第4个整数:2请输入第5个整数:7请输入第6个整数:1排序前的整数序列为:539271排序后的整数序列为:123579 ```实验总结:通过本次实验,我深入理解了数组的原理和用法,并且掌握了数组在函数中的传递。

C++语言程序设计形考二实验五

C++语言程序设计形考二实验五

上机实验5:数组应用程序设计一、实验内容有如下程序:#include <iostream>using namespace std;int main(){__________________ //定义具有6个元素的整形数组dint data,i=0; // data用于暂存每一个输入数据,i记录已插入数据的个数。

cout<<"请输入6个整数:";do{ //输入并处理6个数据cin>>data;int j=i; //j是候选的插入位置while(j>0){ //若j==0,它就是第一个数据的插入位置,无需进入循环。

if(data>=d[j-1]) __________; //若找到插入位置,退出循环。

d[j]=d[j-1]; //否则数据后移一个位置j--;}d[j]=data; //数据插入到位置j处i++; //i记录已插入数据的个数}while(________); //若不足6个数据,继续输入。

for(_______________________) cout<<d[i]<<' ';//显示数组中的6个数据cout<<endl;return 0;}此程序输入6个整数保存到一维数组d 中,使得输入的数据在数组中始终按从小到大的顺序排列,最后顺序输出数组中的数据。

例如,若输入是5 7 4 29 3,程序的输出是:2 3 4 5 7 9。

二、实验要求读懂程序,补充程序中下划线处缺失的部分,上机测试,直至产生正确的输出结果。

三、实验结果截图(请将实际上机运行的结果截图并上传)。

山东大学汇编语言上机实验——实验五

山东大学汇编语言上机实验——实验五

子程序设计2.6显示学生名次表rank编制一个程序,要求接受键盘输入的一个班的学生成绩,并存放于一个50字的grade数组中,其中grade+i保存学号为I+1的学生成绩。

然后根据grade中的学生成绩,把学生成绩依次填入50字的rank数组中,其中rank+i的内容是学号为i+1的学生的名次。

再按学号顺序把名次从终端上显示出来。

本题要做的主要工作和例2.2的内容是完全一样的,只是增加了由用户键入学生成绩及输出学生名次两个部分的内容,因此这三个部分可以用子程序结构来完成。

子程序结构划分的层次图如图2.17所示,可以看出,main为主要模块,其下一层的三个模块为程序的三大部分。

现将各模块说明如下:1.模块名:main 为总模块输入:从键盘输入一个班的学生成绩输出:显示一个班的学生成绩功能:根据输入的学生成绩,计算并显示学生名次。

算法如下:一个学生名次等于成绩高于该学生的人数+1.2.模块名:input输入:以学号为序型键盘输入一个班的学生成绩。

各个成绩之间用逗号隔开,最后以回车符号结束。

输出:把一个班的学生成绩存入grade数组。

功能:接受一个班的学生成绩。

调用子模块decibin把键盘输入的一个十进制数转换为二进制数。

调用子模块crlf完成回车,换行功能。

3.模块名:rankp输入:从grade数组取得一个班的学生成绩。

输出:以学号为序计算出该班每个学生的名次存入rank数组。

功能:计算一个班的学生成绩。

算法为:一个学生的名次等于成绩高于该生的学生人数加1.4,。

模块名;output输入:把rank数组取得一个班的学生名次。

输出:把一个班的学生名次以学号为序在总端上显示出来。

功能:先是一个班的学生名次。

调用子模块decibin把键盘输入的一个十进制数转换为二进制数。

调用子模块crlf完成回车,换行功能。

5:模块名:decilin输入:从键盘输入一个十进制数。

输出:把该数转换成二进制数并存入BX寄存器中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
i=0;//使i指向str1的第一个元素
while (str1[i]!='\0')//判断str1是否结束
i++;//str1没有结束,使i指向下一个元素
j=0;//使j指向str2的第一个元素
while (str2[j]!='\0')//判断str2是否结束
{
str1[i]=str2[j];//str2没有结束,将str2[j]赋给;str1[i]
分析:建立两个变量i、j,先使i指向字符数组str1的第一个元素,然后移动i使其指向str1的末尾,即指向str1的最后一个元素‘\0’;再使j指向字符数组str2的第一个元素,然后将str2中的元素分别赋给str1中相应位置的元素,直到str2结束为止,即j指向str2的最后一个元素‘\0’;最后在str1的末尾添加一个结束标志‘\0’。
cout<<aver[i]<<" ";
cout<<endl;
return 0;
2.已有一按从小到大次序排序好的数组,现输入一数,要求用折半查找法找出该数在数组中的位置。
3、完备数:一个数的真因子和---除了本身以外的正因子和刚好等于它本身,则称此数为完被数。最小的完备数是6,因为6的真因子有1、2、3,加起来正好等于6;下一个是28,因为1+2+4+7+14=28。请编程找出100000以下的所有完备数。
解:
#include <iostream.h>
int main()
{
int a[10]; //A
int i,j,t;
cout<<"输入数据:"<<endl;
for(i=0;i<10;i++)//B
{
cout<<"a["<<i+1<<"]=";
cin>>a[i];
}
for(i=0;i<=8;i++)
{
i++;//使i指向str1的下一个元素
j++;//使j指向str2的下一个元素
}
str1[i]='\0';//在str1末尾添加结束标志‘\0’
cout<<str1<<endl;//输出str1
return 0;
}
4.编程序将输入的字符串删去空格后输出。
分析:逐个读取每个字符,若为空格将其后面的字符和字符串结束标志前移一位,再从该位置开始,重复上述操作,直到字符串结束。
程序如下:
解:
#include <iostream.h>
int main(void)
{
char str1[40],str2[20];//定义字符数组str1、str2
int i,j;
cout<<"输入二个字符串:";
cin.getline(str1,20);//输入字符串1到str1中
cin.getline(str2,20);//输入字符串2到str2中
2个标准学时。
for(i=1; i<10; i++)
{
for(j=0; j<10-i; j++)
{
if(aver[j]<aver[j+1])
{
t=aver[j];
aver[j]=aver[j+1];
aver[j+1]=t;
}
}
}
cout<<"学生按平均成绩高低排序为:"<<endl;
for(i=0; i<10; i++)
解:
#include<iostream.h>
int main()
{
char str[]="This is a book!"; //A
int i=0,j;
while(str[i]!=NULL)
{
if(str[i]==' ')
{ //B
j=i;
while(str[j]!=NULL)
{
str[j]=str[j+1];
实验五
一、目的和要求
1.掌握一维数组、二维数组、字符数组的定义、初始化赋值、数组元素的引用方法;
2.掌握求最大、小值、平均值、排序的方法以及有序数组的查找、增加、删除的编程方法;
3.初步掌握字符串处理函数的使用方法以及字符串复制、连接、测长等程序的编写方法;
4.掌握数组的典型应用。
二、实验设备及分组
}
cout<<"杨辉三角形:"<<endl;
for(i=0;i<n;i++)
{
cout<<" ";
for(j=0;j<=i;j++) cout<<y[i][j]<<" ";
cout<<endl;
}
return 0;
}
思考:
添加语句输出如图5-2所示杨辉三角形。
3.从键盘输入两个字符串,将它们连接成一个字符串。
4.某班有10个学生,进行了“数学”、“语文”、“英语”、“C++语言”等科目的考试,编写程序:
(1)将考试成绩输入一个二维数组;
(2)求每门课的平均成绩、每门课的不及格学生的人数及每门课的最高分与最低分;
(3)求每个学生的平均成绩、总分、不及格门数;
(4)按学生平均成绩的高低排序并输出。
5.设计一个程序,打印杨辉三角形。(使用其它方法)
j++;
}
}
i++;
}
cout<<str<<endl; //C
return 0;
}
思考:
将程序中A行的“"”用“'”改写,观察现象。
将程序中B行的“'”用“"”改写,观察现象。
将程序中C行改写为:
for(j=1;str[j]!=NULL;j++,cout<<str[j]) ;
cout<<endl;
观察输出结果。
6.编写程序,实现str=str1+str2的操作,此处运算符“+”表示将二个字符串str1、str2连接成一个字符串str。用键盘将二个字符串输入字符数组str1与str2中,连接后的字符串存放在字符数组str中,并输出连接后的字符串str。
四、课后作业
1.设A、B、C为m行n列矩阵。设计矩阵加法程序,能完成C=A+B的操作。m与n用define定义为常量,其值由用户自定义。
4.友爱数:若两数彼此的真因子之和等于对方,则称此两数为友爱数。
如:最小的友爱数为220与284。
220的真因子有1、2、4、5、10、11、20、22、44、55、110,和为284
284的真因子有1、2、4、71、142,和为220
请编程找出100000以下的所有友爱数。
5.撰写实验报告。五、实验机时将A行改来自下列程序段:int n;
cin>>n;
int a[n]”
观察运行结果?分析原因。
将B行改为“for(i=1;i<=10;i++)”,观察现象。
2.应用二维数组打印如图5-1所示杨辉三角形。
分析:由杨辉三角形可以看出每行数存在以下规律:每行数据的个数与行序相同;每行的第一个数和最后一个数均为1;中间的数为上一行同一列的数和其前一列的数之和。
编程序将输入字符串中出现的字符除空格外,按从大到小的顺序输出(每个字符只输出一次)。
(二)完成实验项目
1.编程实现将一十进制整数M转换为D进制数。
2.已知一int a[20]数组,编程将值为偶数的元素移到数组前端,值为奇数的元素移到数组后端。(要求元素比较、移动次数尽量最少)
3.求 ,其中n≥20。
1.Windows XP操作系统;
2.Visual C++6.0语言环境;
3.每人一台PC机。
三内容和步骤
(一)验证实验程序
1.应用一维数组,对10个数进行冒泡排序,使其按照从大到小的顺序输出。
分析:n个数冒泡排序的方法是将第一个数与其后面的数逐个进行比较,发现大者进行交换,完成后最大的数就放到了第一个的位置;第二个数与其后面的数逐个进行比较,发现大者进行交换,完成后次大的数就放到了第二个的位置;如此循环,直到第n-1个数与第n个数进行比较,发现大者进行交换。
for(j=i+1;j<=9;j++)
{
if(a[i]<a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
cout<<"排序结果为:"<<endl;
for(i=0;i<=9;i++) cout<<"a["<<i+1<<"]="<<a[i]<<" "<<endl;
return 0;
}
思考:
解:
#include <iostream.h>
int main()
{
int y[5][5];
int i,j,n=5;
相关文档
最新文档