实验五 数组

实验五  数组
实验五  数组

实验五数组

一、目的和要求

1.掌握一维数组、二维数组、字符数组的定义、初始化赋值、数组元素的引用方法;

2.掌握求最大、小值、平均值、排序的方法以及有序数组的查找、增加、删除的编

程方法;

3.初步掌握字符串处理函数的使用方法以及字符串复制、连接、测长等程序的编写

方法;

4.掌握数组的典型应用。

二、实验设备及分组

1.Windows XP操作系统;

2.Visual C++6.0语言环境;

3.每人一台PC机。

三内容和步骤

(一)验证实验程序

1.应用一维数组,对10个数进行冒泡排序,使其按照从大到小的顺序输出。

分析:n个数冒泡排序的方法是将第一个数与其后面的数逐个进行比较,发现大者进行交换,完成后最大的数就放到了第一个的位置;第二个数与其后面的数逐个进行比较,发现大者进行交换,完成后次大的数就放到了第二个的位置;如此循环,直到第n-1个数与第n 个数进行比较,发现大者进行交换。

解:

#include

int main()

{

int a[10]; //A

inti,j,t;

cout<<"输入数据:"<

for(i=0;i<10;i++) //B

{

cout<<"a["<

cin>>a[i];

}

for(i=0;i<=8;i++)

{

for(j=i+1;j<=9;j++)

{

if(a[i]

{

t=a[i];

1 1 1 1

2 1 1

3 3 1 1

4 6 4 1 图5-1 杨辉三角形 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 图5-2 杨辉三角形

a[i]=a[j];

a[j]=t;

}

}

}

cout<<"排序结果为:"<

for(i=0;i<=9;i++) cout<<"a["<

}

思考: ● 将A 行改为下列程序段:

int n ;

cin>>n;

int a[n]”

观察运行结果?分析原因。

● 将B 行改为“for(i=1;i<=10;i++)”,观察现象。

2.应用二维数组打印如图5-1所示杨辉三角形。

分析:由杨辉三角形可以看出每行数存在以下规律:每行数据的个数与行序相同;每行的第一个数和最后一个数均为1;中间的数为上一行同一列的数和其前一列的数之和。

解: #include int main() { int y[5][5]; inti,j,n=5; for(i=0;i

y[i][i]=1;

y[i][0]=1;

}

for(i=2;i

{

for(j=1;j

y[i][j]=y[i-1][j-1]+y[i-1][j];

}

cout<<"杨辉三角形:"<

cout<<" ";

for(j=0;j<=i;j++) cout<

cout<

} return 0;

}

思考:

添加语句输出如图5-2所示杨辉三角形。

3.从键盘输入两个字符串,将它们连接成一个字符串。

分析:建立两个变量i、j,先使i指向字符数组str1的第一个元素,然后移动i使其指向str1的末尾,即指向str1的最后一个元素‘\0’;再使j指向字符数组str2的第一个元素,然后将str2中的元素分别赋给str1中相应位置的元素,直到str2结束为止,即j指向str2的最后一个元素‘\0’;最后在str1的末尾添加一个结束标志‘\0’。

程序如下:

解:

#include

int main(void)

{

char str1[40],str2[20]; //定义字符数组str1、str2 inti,j;

cout<<"输入二个字符串:";

cin.getline(str1,20); //输入字符串1到str1中

cin.getline(str2,20); //输入字符串2到str2中

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++; //使i指向str1的下一个元素j++; //使j指向str2 的下一个元素

}

str1[i]='\0'; //在str1末尾添加结束标志‘\0’cout<

return 0;

}

4.编程序将输入的字符串删去空格后输出。

分析:逐个读取每个字符,若为空格将其后面的字符和字符串结束标志前移一位,再从该位置开始,重复上述操作,直到字符串结束。

解:

#include

int main()

{

charstr[]="This is a book!"; //A

inti=0,j;

while(str[i]!=NULL)

{

if(str[i]==' ')

{ //B

j=i;

while(str[j]!=NULL)

{

str[j]=str[j+1];

j++;

}

}

i++;

}

cout<

}

思考: ● 将程序中A 行的“"”用“'”改写,观察现象。

● 将程序中B 行的“'”用“"”改写,观察现象。

● 将程序中C 行改写为:

for(j=1;str[j]!=NULL;j++,cout<

cout<

观察输出结果。

● 编程序将输入字符串中出现的字符除空格外,按从大到小的顺序输出(每个字符只输出一次)。

(二)完成实验项目

1.编程实现将一十进制整数M 转换为D 进制数。

2.已知一int a[20]数组,编程将值为偶数的元素移到数组前端,值为奇数的元素移到数组后端。(要求元素比较、移动次数尽量最少)

3.求n

n S +-+-+-= 1310741310741,其中n ≥20。

4.某班有10个学生,进行了“数学”、“语文”、“英语”、“C++语言”等科目的考试,编写程序:

(1) 将考试成绩输入一个二维数组;

(2) 求每门课的平均成绩、每门课的不及格学生的人数及每门课的最高分与最低分;

(3) 求每个学生的平均成绩、总分、不及格门数;

(4) 按学生平均成绩的高低排序并输出。

5.设计一个程序,打印杨辉三角形。(使用其它方法)

6.编写程序,实现str=str1+str2的操作,此处运算符“+”表示将二个字符串str1、str2连接成一个字符串str 。用键盘将二个字符串输入字符数组str1与str2中,连接后的字符串存放在字符数组str 中,并输出连接后的字符串str 。 四、课后作业

1. 设A 、B 、C 为m 行n 列矩阵。设计矩阵加法程序,能完成C=A+B 的操作。m 与n 用define 定义为常量,其值由用户自定义。

2. 已有一按从小到大次序排序好的数组,现输入一数,要求用折半查找法找出该数在数组中的位置。

3、完备数:一个数的真因子和---除了本身以外的正因子和刚好等于它本身,则称此数为完被数。最小的完备数是6,因为6的真因子有1、2、3,加起来正好等于6;下一个是28,因为1+2+4+7+14=28。请编程找出100000以下的所有完备数。

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.撰写实验报告。

五、实验机时

2个标准学时。

for(i=1; i<10; i++)

{

for(j=0; j<10-i; j++)

{

if(aver[j]

{

t=aver[j];

aver[j]=aver[j+1];

aver[j+1]=t;

}

}

}

cout<<"学生按平均成绩高低排序为:"<

for(i=0; i<10; i++)

cout<

cout<

return 0;

Java语言程序设计实验四 方法及数组实验报告

**大学 Java语言程序设计实验报告

四、实验步骤: 1: import java.util.Scanner; public class sy41 { public static void main(String[] args) { // TODO Auto-generated method stub int t,bbk=0; int []a; a=new int[10]; Scanner chm=new Scanner(System.in); System.out.println("请输入十个数"); for(int i=0;i<10;i++) { a[i]=chm.nextInt(); } System.out.println("请输入要找的数"); t=chm.nextInt(); for(int j=0;j<10;j++) { if(t==a[j]) bbk=1; } if(bbk==1) System.out.println("有"); else System.out.println("无"); } } 2: package syyyy; import java.util.*; class first {

System.out.println("输出排序前"); f.printarray(a); f.sort(a); System.out.println("输出排序后"); f.printarray(a); f.delelement(a, 2); System.out.println("输出删除第2个数后"); f.printarray(a); } } 3): import java.util.Scanner; public class syyyyyyyy43 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner bbk=new Scanner(System.in); System.out.println("请输入一个十进制数:"); int a=bbk.nextInt(); int pok=a/2; int shu[]=new int [pok+1]; if(pok<3000){ if(a%2==0){ shu[0]=1; System.out.print(shu[0]); for(int i=1;i

实验五 数组

实验五数组 一、实验目的 1. 掌握一维、二维数组的定义和使用方法; 2. 掌握字符串的定义和处理方法; 3. 熟悉并掌握应用数组解决实际应用问题; 二、实验内容 1. 用冒泡法将从键盘输入的10个学生的成绩从高到低进行排序;输入一个学生的成绩,插入到已排好序的学生成绩数组中去;最后将排好序的成绩单进行反序存放。(用函数完成) 2. 首先输入一个大于二且小于十的整数n,然后定义一个二维整型数组(n*n),初始化该数组,将数组中最大元素所在的行和最小元素所在的行对调。 要求:① n*n数组元素的值由scanf函数从键盘输入(假定最大值最小值不在同一行上),然后输出该数组;②查找最大值最小值所在的行,将数组中最大元素所在的行和最小元素所在的行对调,并输出对调后的数组;③为直观起见,数组按n行n列的方式输出;④修改程序,对最大值与最小值可能出现在一行种的情况进行处理。 3. 一个数组A中存有n(n>0)个整数,在不允许使用其他数组的前提下,将每个整数循环向右移m(m>=0)个位置,即将A中的数据由(A0A1...An-1)变换为(An-m...An-1A0A1...An-m-1)(最后m个数循环移至最前面的m个数)。 要求:输入n(1=

实验六 一维数组程序设计

实验六一维数组程序设计 一、实验学时 2学时 二、实验目的 (一)掌握一维数组的定义、初始化方法; (二)掌握一维数组中数据的输入和输出方法; (三)掌握与一维数组有关的程序和算法; (四)了解用数组处理大量数据时的优越性。 三、预习要求 (一)理解数组的概念、利用数组存放数据有何特点; (二)一维数组的定义、初始化方法; (三)一维数组中数据的输入和输出方法。 四、实验内容 (一)下面的几个程序都能为数组元素赋值,请输入程序并运行。比较一下这些赋值方法的异同。 1.在定义数组的同时对数组初始化。 /* c6-1.c */ /*在定义数组的同时对数组初始化*/ #include "stdio.h" void main( ) { int a[4]={0,1,2,3}; printf("\n%d %d %d %d\n",a[0],a[1],a[2],a[3]); } 2.不使用循环对单个数组元素赋值。 /* c6-2.c */ /*不使用循环对单个数组元素赋值*/ #include "stdio.h" void main( ) { int a[4]; a[0]=2;a[1]=4;a[2]=6;a[3]=8; printf("\n%d %d %d %d\n",a[0],a[1],a[2],a[3]); } 3.用循环结构,从键盘输入为每个数组元素赋值,输出各数组元素。 /* c6-3.c */ /*利用循环通过键盘对数组元素赋值*/ #include "stdio.h" void main( ) { int i,a[4]; for(i=0; i<4; i++) scanf("%d",&a[i]); printf("\n");

实验5 数组1答案

实验数组1 实验目的: 1、进一步掌握循环结构的程序设计 2、掌握在循环结构里面使用break、continue 3、掌握一维数组的定义与使用 实验内容: 一、观察下列代码(有语法问题自己解决) 1、利用无限循环输入数据,直到条件满足利用break跳出循环: #include using namespace std; int main( ) { int x,sum=0; while(1) { cin >> x; if(x <= 0) break; sum += x; } return 0; } 2、利用continue语句实现输出1-100之间的偶数: #include using namespace std; int main() { for (int i = 0;i <= 100; i++) { if (i % 2 != 0) continue; cout << i << ' '; } return 0; } 二、编码训练 1、利用break语句写一程序:循环从键盘输入数据并累加起来,直到输入的数为零时结束循环,打印累加结果。(参考前面第1题) #include using namespace std; int main( )

{ int x,sum=0; while(1) { cin >> x; sum += x; if(x == 0) break; } cout << "The sum is " << sum << endl; return 0; } 2、利用continue语句写一程序:输出1-20之间不能被3整除的数。(参考前面第2题) #include using namespace std; int main() { for (int i = 1;i <= 20; i++) { if (i % 3 == 0) continue; cout << i << ' '; } return 0; } 3、实现求6位学生c++的平均成绩。(参考案例书的P47案例1) #include using namespace std; int main() { double score[6]; double avg = 0,sum = 0; for (int i = 0;i <= 5; i++) { cin >> score[i]; sum = sum + score[i]; } avg = sum/6; cout << "平均成绩是:" << avg; return 0; } 4、利用一维数组编写一个程序:从键盘上输入10个float类型的数据,找出它们的最大值和最小值,并输出(定义两个变量分别保存最大值和最小值)。(参考案例书的P47案例1)#include using namespace std; int main() { float numb[10]; float min = 0.0,max = 0.0; int i; for (i = 0;i <= 9; i++) { cin >> numb[i]; } min = numb[0]; max = numb[0]; for (i = 1;i <= 9; i++) { if (numb[i] >= max ) max = numb[i];

实验五 数组应用程序设计

实验五数组应用程序设计 一、实验目的 1.掌握数组的声明、数组元素的引用。 2.掌握静态数组和动态数组的使用差别。 3.应用数组解决与数组有关的常用算法问题。 4.学会使用控件数组。 二、实验内容 1.设有一个6×6的方阵,其中的元素是随机产生的10 - 99 之间的两位数. 分别求出主对角 线和次对角线上元素之和,以及方阵中最小的元素的位置和值. 要求: 程序运行后,单击“产生”按钮时,输出方阵。单击“计算”按钮时,输出对角线元素之和,以及最小元素的值与位置。 1)代码设计如下 Dim a(6, 6) As Single Private Sub Command1_Click() Dim i% Dim j% Cls For i = 1 To 6 For j = 1 To 6 a(i, j) = Int(Rnd * (99 - 10 + 1)) + 10 Print a(i, j); Next j Print Next i End Sub Private Sub Command2_Click() Dim i%, j%, min%, mini%, minj%, zsum%, csum% min = a(1, 1): mini = 1: minj = 1 zsum = 0: csum = 0 Cls For i = 1 To 6 For j = 1 To 6 If (i = j) Then zsum = zsum + a(i, j) If (i + j = 7) Then csum = csum + a(i, j) If a(i, j) < min Then min = a(i, j) mini = i

C++上机实验报告实验四

实验四数组、指针与字符串 1.实验目的 1.学习使用数组 2.学习字符串数据的组织和处理 3.学习标准C++库的使用 4.掌握指针的使用方法 5.练习通过Debug观察指针的内容及其所指的对象的内容 6.联系通过动态内存分配实现动态数组,并体会指针在其中的作用 7.分别使用字符数组和标准C++库练习处理字符串的方法 2.实验要求 1.编写并测试3*3矩阵转置函数,使用数组保存3*3矩阵。 2.使用动态内存分配生成动态数组来重新完成上题,使用指针实现函数的功能。 3.编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。 4.使用string类定义字符串对象,重新实现上一小题。 5.定义一个Employee类,其中包括姓名、街道地址、城市和邮编等属性,以及change_name()和display()等函数。Display()显示姓名、街道地址、城市和邮编等属性,change_name()改变对象的姓名属性。实现并测试这个类。 6.定义包含5个元素的对象数组,每个元素都是Employee类型的对

象。 7. (选做)修改实验4中的选做实验中的people(人员)类。具有的属性如下:姓名char name[11]、编号char number[7]、性别char sex[3]、生日birthday、身份证号char id[16]。其中“出生日期”定义为一个“日期”类内嵌对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。在测试程序中定义people类的对象数组,录入数据并显示。 3.实验内容及实验步骤 1.编写矩阵转置函数,输入参数为3*3整形数组,使用循环语句实现矩阵元素的行列对调,注意在循环语句中究竟需要对哪些元素进行操作,编写main()函数实现输入、输出。程序名:lab6_1.cpp。 2.改写矩阵转置函数,参数为整型指针,使用指针对数组元素进行操作,在main()函数中使用new操作符分配内存生成动态数组。通过Debug观察指针的内容及其所指的对象中的内容。程序名:lab6_2.cpp。 3.编程实现两字符串的连接。定义字符数组保存字符串,在程序中提示用户输入两个字符串,实现两个字符串的连接,最后用cout语句显示输出。程序名:lab6_3.cpp。用cin实现输入,注意,字符串的结束标志是ASCII码0,使用循环语句进行字符串间的字符拷贝。

实验5-数组答案

VB程序设计实验五 实验目的 ●掌握一维数组和二维数组的操作 ●学习跟数组相关的控件:列表框和组合框 复习 1.列表框 列表框(ListBox)控件允许用户查看和选择列表中的多个元素。 表5-11 列表框的常用属性和事件 2.组合列表框(ComboBox)整合了列表框和文本框的功能,以一个文本框控件(TextBox) 右边加上一个向下箭头的样式显示。有Simple(简单组合框)、DropDown(下拉组合框)和DropDownList(下拉列表框)。其中,Simple选项不显示下拉箭头,而是在控件的旁边显示一个滚动条;DropDown风格(默认值)在单击向下箭头时显示一个下拉列表,且在ComboBox中输入一个值;DropDownList显示一个下拉列表,但不允许用户在ComboBox中输入。 表5-13 组合列表框的常用属性和事件

(1) Items.Count属性:列表框或组合框中项目数量。最后一项的序号为Items.Count-1,该属性只能在程序中设置或引用。 (2) Text属性:被选定的选项的文本内容。该属性只能在程序中设置或引用。 注意:ListBox1.Items(ListBox1.SelectedIndex)等于ListBox1.Text。 (3) Items.Add方法 把一个选项加入列表框,格式:对象.Items.Add(选项);如:ListBox1.Items.Add("周海涛") (4) Insert方法 在指定位置插入一个项目。格式:对象.Items.Insert(序号, 添加项内容) (5)Items.Remove方法 从列表框中删除指定的项。格式:对象. Items.Remove (选项)。 例如:ListBox1.Items.Remove ("华成") (6)Items.RemoveAt方法 格式:对象.RemoveAt(Index) 从列表框中删除指定的项。Index表示被删除项目在列表框中的位置,从0开始。 例如:ListBox1.Items.RemoveAT(4) (7) Items.Clear方法 格式:对象.Items.Clear 用于清除列表框所有项目,例如:ListBox1.Items.Clear 4.单选按钮、复选框和框架 1)单选按钮(RadioButton) 单选按钮以组的形式出现,允许选择其中一项。 ?Text属性:按钮上显示的文本 ?TextAlign属性:文本对齐方式 ?Checked属性:表示单选按钮的状态,True ——被选定,False ——未被选定?Click事件:单击后,使Checked属性为True ?CheckedChanged事件:当某个单选按钮的状态被发生变化,该事件随之被触发。2)复选框(CheckBox) 与RadioButton具有相同属性和事件,之外还有: ?CheckState属性:表示复选框状态,Unchecked——未选定,Checked——被选定,Indeterminate——灰色 3)框架(GroupBox分组框) ?Text属性:标题文本 ?Enabled属性:框架和其中的控件

新乡医学院 有机化学 实验课教案首页

新乡医学院有机化学实验课教案首页 授课教师姓名及职称: 新乡医学院化学教研室年月日

实验 樟脑的还原反应 一、实验目的 1. 掌握用NaBH 4还原樟脑的原理及操作方法。 2. 了解薄层层析在合成反应中的应用。 二、实验原理 用NaBH 4还原樟脑得到冰片和异冰片2个非对映异构体。由于立体选择性较高,所得产物以异冰片为主。冰片和异冰片具有不同的物理性质,两者极性不同。 NaBH 4H OH H OH +樟脑异冰片冰片(龙脑) 色谱法:利用混合物中各组份在流动相和固定相之间的分配系数不同,通过色谱速度不同,从而使各组份完全分开的分离方法。薄层层析是是色谱法中的一种。 三、试剂 2 g (0.01 3 mol )樟脑,1.2 g (0.032 mol )硼氢化钠,20 mL 甲醇,25 mL 乙醚 四、实验步骤 1. 樟脑的还原 在50 mL 圆底烧瓶中将2 g 樟脑溶于20 mL 甲醇,室温下小心分批加入1.2 g 硼氢化钠,边加边振摇。必要时可用冰水浴控制反应的温度。当所有硼氢化钠加完后,将反应混合物加热回流至硼氢化钠消失。冷却到室温,在搅拌下将反应液倒入盛有40 g 冰水的烧杯中,充分冷却,抽滤收集白色固体,用冷水洗涤数次,晾干。将固体转移至100 mL 洁净的锥形瓶中,加入25 mL 乙醚溶解固体,然后加入适量无水硫酸钠干燥。干燥后将溶液转移至预先称好的50 mL 锥形瓶中。在通风橱中蒸发溶剂,得白色固体,产量约为1.2 g ,熔点212 ℃。 2. 产物的鉴别 取一片5×15 cm 的薄层板,分别用冰片、异冰片、樟脑和樟脑的还原产物的乙醚溶液点样,置于层析缸中展开。取出层析板,待薄层上尚残留少许展开剂时,立即用另一块与薄层板同样大小并均匀地涂上浓硫酸的玻璃板覆盖在薄层板上,即可显色。将4个点的R f 值对比证明樟脑已被还原成冰片和异冰片。也可用溴化钾压片做产物的红外光谱。

实验4-数组

数组 一维数组 1. 用Array函数生成一个包含10个整数的一维数组,并在窗体上输出,然后分别统计其中正数之和与负数之和,运行效果如图所示。 2. 随机生成10个两位正整数,求其中的最大值和平均值,并将结果显示出来,运行效果如图所示。 3. 实现以下程序功能:程序运行后,在四个文本框中各输入一个整数。然后单击命令按钮,即可使数组按升序排序,并在文本框中显示出来。提示:可用array函数生成数组。

二维数组 1. 设有一个二维数组A(5,5),给所有数组元素赋值为1-9之间的随机整数,试计算: ●所有元素之和。 ●所有靠边元素之和。 ●正对角线上元素之和。 2. 设有一个二维数组A(5,5),试计算矩阵第三行各项的和,并在窗体上显示出来。 3. 设有一个二维数组A(5,5),试找出正对角线上最大的值。 4.产生一个二维数组A(5,5),要求中心位置值为9,对角线位置值为1,其余位置值为0。 5.设有一个二维数组A(4,4),请交换其中的第二列和第四列,并显示。

6. 实现以下程序功能:运行程序时,随机产生一个4行4列的二维数组,单击“计算”命令按钮时,将统计矩阵两个对角线的元素中能被3整除的个数,统计结果显示在标签lblfirst中;同时计算矩阵主对角线的元素之和,计算结果显示在标签lblSecond中。

列表框和组合框 1. 设在窗体中有一个名称为List1的列表框,其中有若干项目。要求选中一项后单击Command1按钮,就删除选中的项,运行效果如图所示。 点击前选中”北京”点击按钮后删除 2. 窗体上有一个组合框,其中已输入了若干项目。程序运行时,单击其中一项,即可以把该项与上面的一项交换,运行效果如图所示。 点击前选中”重庆”点击后交换 3.有10位同学的VB课程的期末成绩,信息如下:82、75、91、65、57、44、78、64、95、62,请将他们的信息保存到数组中,显示在列表框中,在“优秀”、“通过”和“不通过”三个分数段的人数进行统计。其中85分以上(含85分)为“优秀”,60-85分之间(含60分)为“通过”, 60分以下的为“不通过”。 4. 实现以下程序功能:单击“生成”按钮,随机生成一个由100个2位正整数组成的数组a,同时显示在Text1文本框中;单击“分组”按钮,则将数组a中所有3的倍数的元素存入数组b中,并对数组b中的元素从小到大排序后显示在文本框Text2中。

C语言实验五_数组

实验(实训)报告 项目名称实验五数组 所属课程名称 C 语言程序设计 项目类型验证性 实验(实训)日期2011/11.16/11.23/11.30 班级10统计2 学号100112100236 姓名裴晓晓 指导教师刘亚楠 浙江财经学院教务处制

一、实验(实训)概述: 【实验目的】 1. 掌握一维数组和二维数组的定义、赋值和输入输出的方法。 2. 掌握字符数组和字符串函数的使用。 3. 掌握与数组有关的算法(特别是排序算法)。 【实验要求】 1.选择合适的数据类型表达应用要求; 2.正确运用循环结构处理数组问题; 3.输入和输出格式清晰,有提示信息。能对输入数据进行基本的合理性判断。 【基本原理】 见第五章课件和课本内容 【实施环境】(使用的材料、设备、软件) Visual C++ 6.0 二、实验(实训)内容: 第1题 【项目内容】 完成课后第3题。求一个3×3矩阵对角线元素之和。 【方案设计】 提示:请在此粘贴你的完整程序。□ #include using namespace std; int main() {int a[3][3]; int i,j,sum; sum=0; for(i=0;i<3;i++) for(j=0;j<3;j++) {cin>>a[i][j]; if(i==j) sum=sum+a[i][j]; } cout<<"sum="<

【结论】(结果、分析) 提示: 请记录该程序的运行过程:输入输出。比如: 123 456↙(↙表示输入,如果没有输入,则没有这一行) a+b=579 (输出) 并尽可能对程序的执行结果进行分析。□ 4 5 5 6 2 34 7 23 5 66 sum=104 第2题 【项目内容】 完成课后第4题。 提示:自定义数组a的大小和内容。插入一个数number到已排好的数组中,可以有以下两种方法:(1)先从数组前面开始比较number和数组元素a[i]的大小,直到找到待插入的正确位置(即a[i-1] using namespace std; int main() {int a[11]={2,5,8,17,28,39,58,89,100,298},n,i,j; cout<<"a[i]="<=65&&ch[i]<=90)?ch[i]-65:ch[i]-97; /*若输入为字母,则用j 保存其在字母表中的位 次*/ if (【4】)nnum[j]++;//若j值不超限,则将该字母累计数加1 【5】;// 改变i值,换至下一个元素 } for(i=0;i<26;i++) if(nnum[i]!=0) printf("字母%c有%d个\n",97+i,【6】); //按题目要求输出结果 return; } 编程题 2.输入10个整数存入数组,找出其中的最大数及其位置。 (位置从0开始编号)

3.求裴波那契数列(1 1 2 3 5 8 13 21 34……)的前18项。 4.求字符串长度(实现strlen 函数的功能) 提示:可参考第1题。 5.输入一个5*5的矩阵(#define N 5),求 (1)所有元素的和 (2)主对角线元素之和 (3)最大值及最小值所在位置 #include main() { double mat[5][5]; int i,j; 【此处补充定义其它所需变量】 for(i=0;i<5;i++) for (j=0;j<5;j++) scanf("%lf",&mat[i][j]); 【完成其余代码,实现该题(1)(2)(3)的功能】 return; }

实验五 数组的应用(1)

实验五数组的应用(1) 一、实验目的: 1、掌握静态数组的定义和使用方法。 2、用数组解决实际问题。 二、实验准备: 1、计算机基本操作练习。 2、VisualBasic软件使用预习。 3、设计出下面问题的程序。 三、实验步骤及内容: 1、静态数组的声明,语法格式如下: Dim 数组名[(各维下标)] [As 数据类型],… 例如:Dim num(6) As Integer 定义了一个包含()个元素的数组,从()到()。 静态数组的上下标必须是(),如果希望数组下标下界默认从1开始,则可在窗体的“通用|声明”部分使用: ________________________________语句来改变默认值。 2、Array函数的使用。 Dim a() As Variant A = Array(154,135,121) 请说明以上语句的作用,()。 Lbound函数和Ubound函数可以分别返回数组的指示维数的最小、最大可用下标。 3、应用一维静态全局数组求10个100以内的最大值、最小值、平均值和方差。程序运行界面如图所示。

4、利用数组排序。按“生成随机数”按钮,在第一个文本框中生成10个10~99之间的随机数,然后按“按大小排序”按钮,将这10个数按从大到小的顺序排列放在第二个文本框中。设计界面及运行结果如图1和图2 所示:

图1 设计界面 图2 运行界面 要求: 提示: (1)设计窗体,添加控件:两个文本框(Text)、两 个按钮(Command)。 (2)如表1 所示设置窗体控件属性。 (4)自行编辑代码。 窗体通用声明代码如下: Option Base 1 Dim a() As Integer 窗体控件代码自行编辑。 Private Sub Command1_Click()

实验4数组的应用

(1)有一列乱序的字符,‘a’、‘d’、‘m’、‘z’、‘h’、‘c’、‘o’,排序并按照英文字母表的逆序输出。 解:按照字母表排序也就是按照ASCLL码值进行排序,只需要定义一个String 型数组应用Arrays.sort函数进行排序,然后进行输出就可以了。 package test4; import java.util.Arrays; public class test4_a { public static void main(String[] args) { // TODO Auto-generated method stub String[] sores={"a","d","m","z","h","c","o"}; int i,j; j=sores.length; Arrays.sort(sores); for(i=j-1;i>=0;i--) System.out.print(sores[i]+" "); } } (2)编写一个程序,提示用户输入学生数量、各自的姓名和他们的成绩,并按照成绩的降序来打印学生的姓名。 package test4; import java.util.Scanner; class Student{ private String name; private double score; public void setName(String name){ https://www.360docs.net/doc/484174847.html,=name; } public String getName(){ return https://www.360docs.net/doc/484174847.html,; } public void setScore(double score){ this.score=score; } public double getScore(){ return score; } }

实验二 数组及其运算

实验二 数组及其运算 一、实验目的 1.熟练矩阵、数组的创建; 2. 熟悉Matlab 的基本矩阵操作,运算符和字符串处理; 3. 熟悉矩阵的逻辑运算和关系运算; 二、实验设备 1.方正电脑 2.MATLAB 软件 三、实验内容 1.在指令窗中输入:x=1:0.2:2和y=2:-0.2:1,观察所生成的数组。 x = 1.0000 1.2000 1.4000 1.6000 1.8000 2.0000 y = 2.0000 1.8000 1.6000 1.4000 1.2000 1.0000 2.要求在[]π20上产生50个等距采样数据的一维数组,试用两种不同的指令实现。 X=linspace(0,2*pi,50) X=0:(2*pi)/49:(2*pi) 2.设x=-74o ,y=27 o ,22 的值。 x=-74/180*pi; y=27/180*pi; d=sin(x^2+y^2)/(sqrt(tan(abs(x+y)))+pi) d = 0.2273 3. 当a 取-3.0,-2.9,-2.8,…,2.8,2.9,3.0时,求0.3sin(0.3)a e a -+在各点的函 数值。 a=-3.0:0.1:3.0; y=exp(-0.3*a).*sin(a+0.3) Columns 1 through 10

-1.0512 -1.2305 -1.3863 -1.5184 -1.6267 -1.7116 -1.7734 -1.8129 -1.8309 -1.8285 Columns 11 through 20 -1.8069 -1.7675 -1.7117 -1.6411 -1.5572 -1.4617 -1.3564 -1.2428 -1.1228 -0.9978 Columns 21 through 30 -0.8696 -0.7397 -0.6095 -0.4804 -0.3538 -0.2308 -0.1126 0.0000 0.1060 0.2047 Columns 31 through 40 0.2955 0.3779 0.4515 0.5160 0.5714 0.6174 0.6543 0.6821 0.7010 0.7115 Columns 41 through 50 0.7138 0.7085 0.6959 0.6768 0.6516 0.6210 0.5856 0.5460 0.5030 0.4572 Columns 51 through 60 0.4093 0.3597 0.3093 0.2586 0.2080 0.1582 0.1097 0.0628 0.0180 -0.0245 Column 61 -0.0641 4. 已知 ??????=??????=5051 3501 ,05314320B A 求下列表达式的值: (1) A&B ans = 0 0 1 1 1 1 0 0 (2) A|B ans = 1 1 1 1 1 1 1 1 (3) ~A ans = 1 0 0 0 0 0 0 1 (4) A==B

Vb实验五数组的应用

《Visual Basic 6.0程序设计》实验报告(五) 一、实验名称:数组的应用(4学时) 二、实验目的: 1.掌握数组的声明和数组元素的引用; 2.掌握静态数组和动态数组的声明和使用; 3.学会应用数组解决与数组有关的常用算法问题; 4.掌握控件数组的建立和应用。 三、实验环境 多媒体计算机WindowsXP操作系统Visual Basic 6.0 四、实验内容及实验步骤(或记录) 1.输入10名同学的成绩,求平均分、最高分和最低分。 设计步骤如下: ①在窗体上添加3个标签(Label1、Label2和Label3)和3个文本框(Text1、Text2和Text3),设计界面如图7.2所示。各控件的主要属性和作用如表1所示。 控件的属性和作用 ②编写程序代码如下: Private Sub Command1_Click() Dim Score(1 To 10) As Integer '声明存放成绩的数组Score Dim i As Integer,Max As Integer,Min As Integer,Average As Single For i = 1 To 10 '逐一输入每个同学的成绩 Score (i) = Val (InputBox ("输入第" & Str(i)& "个学生的成绩","成绩统计","")) Next i End Sub Private Sub Command2_Click() Dim i As Integer Dim sum As Single, aver As Single sum = Score (1) ' sum 用于存放总成绩,初值为数组中的第一个元素 Max = Score (1) ' 设变量Max的初值为数组中的第一个元素 Min = Score (1) ' 设变量Min的初值为数组中的第一个元素 For i = 2 To 10 ' 通过循环依次比较,求最大、最小值;求总和 If Score(i) > Max Then Max = Score(i) If Score(i) < Min Then Min = Score(i) sum = sum + Score(i) Next i aver = sum / 10 ' 求平均值 Text1.Text = Format (Average, "0.00 " ) ' 以两位小数显示平均值 Text2.Text = Max

相关文档
最新文档