数组和循环嵌套

实验目的

(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. 写出实验内容(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元组

 

判断素数

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值