实验目的
(1)掌握数组的定义、初始化、访问和使用;
(2)学会循环嵌套语句在数组中的使用;
(3)学会使用数组解决实际问题;
(4)学会数组在面向对象程序设计中的运用;
训练知识点集群
定义数组,初始化数组与数组赋值,使用数组,数据类型转换,while循环块,for循环块
实验内容
(1)根据用户输入的10个数值,自己写排序算法进行升序排列并输出排序后的结果。
(2)向控制台输出10 * 10的数值表格。输出效果如下:
(3)课程融合之“N元组”:
设计实现抽象数据类型“N元组 (Tuple)” 。每个N元组由任意N个实数的序列构成,基本操作包括:创建一个N元组,取N元组的任意一个分量,置N元组的任意一个分量,求N元组的最大分量、最小分量,显示N元组等。
要求:用类封装需要定义的数据类型Tuple,完成所有基本操作的Java语言实现与调用,并写测试程序。
(4)小组自主创作实验:围绕实验目的,题目自拟。
- 写出实验内容(1)所采用的排序算法的思路
冒泡排序法:
每进行一趟排序,就会少比较一次,因为每进行一趟排序都会找出一个较大值。如上例:第一趟比较滞后,排在最后的一个数一定是最大的一个数,同样也能找出一个最大的数排在参与与第二趟比较的数后面,第三趟比较时,只需要比较除了最后两个数以外的其他的数,以此类推......也就是说,每进行一趟比较,每一趟少比较一次,一定程度上减少了算法的量
画出实验内容(3)对应的类图
1.排序
import java.util.Scanner;
public class paixu{
public static void main(String arg[]) {
int[] nums = new int[10];
int i,j,k,temp,issorted;
Scanner scanner = new Scanner(System.in);
System.out.println("请输入10个数:");
for(i=0;i<10;i++)
{
nums[i] = scanner.nextInt();
}
System.out.print("排序前:");
for(i=0;i<10;i++)
{
System.out.print(nums[i]+" ");
}
System.out.println("");
for(j=0;j<10-1;j++)
{
issorted=1;
for(k=0;k<9-j;k++)
{
if(nums[k]>nums[k+1])
{
temp=nums[k];
nums[k]=nums[k+1];
nums[k+1]=temp;
issorted=0;
}
}
if(issorted==1)
{
break;
}
}
System.out.print("排序后:");
for(i=0;i<10;i++)
{
System.out.print(nums[i]+" ");
}
}
}
2.表格
import java.util.Scanner;
public class Tab
{
public static void main(String[] args)
{
int i,j;
for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
System.out.print("("+i+","+j+")");
}
System.out.println();
}
}
}
3.N元组
import java.util.Scanner;
public class nyuanzu {
public static void main(String arg[]) {
int i=0,j,k,max,min,temp,issorted,n;
Scanner scanner = new Scanner(System.in);
System.out.println("请输入元素数量:");
n = scanner.nextInt();
int[] num;
num = new int[n];
System.out.println("请输入"+n+"个数:");
for(k=0;k<n;k++)
{
num[k] = scanner.nextInt();
}
while(i!=4)
{
System.out.println("1.改变"+n+"元组的任意一个分量");
System.out.println("2.求"+n+"元组的最大分量、最小分量");
System.out.println("3.显示"+n+"元组");
System.out.println("4.退出");
System.out.println("请输入数字:");
i = scanner.nextInt();
switch(i)
{
case 1: System.out.println("改变第几个?");
j = scanner.nextInt();
System.out.println("改成多少?");
num[j-1] = scanner.nextInt();
break;
case 2: for(j=0;j<n-1;j++)
{
issorted=1;
for(k=0;k<n-1-j;k++)
{
if(num[k]>num[k+1])
{
temp=num[k];
num[k]=num[k+1];
num[k+1]=temp;
issorted=0;
}
}
if(issorted==1)
{
break;
}
}
System.out.println("最大值为:"+num[n-1]);
System.out.println("最小值为:"+num[0]);
break;
case 3: System.out.print(n+"元组的值为:");
for(j=0;j<n;j++)
{
System.out.print(num[j]+" ");
}
System.out.println("");
break;
}
}
}
}
4.素数
import java.util.Scanner;
public class Sushu
{
public static void main(String[] args)
{
int i,x,leap=1;
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个整数:");
x=scanner.nextInt();
for(i=2;i<=x-1;i++)
{
if(x%i==0)
{
leap=0;
break;
}
}
if(leap==1)
{
System.out.println(x+"是素数!");
}
else
{
System.out.println(x+"不是素数!");
}
}
}
运行结果:
排序
表格
N元组
判断素数