基本任务1.1Java语言基础(任务挑战)

el/2023/9/24 20:55:34

任务挑战:

1.编制一个Java application应用程序,把数组中已知的10个数字由小到大排序后输出。

  • 编程前思考:
    完成数组排序的方法有多种,其中有调用Arrays类中的sort方法直接对数组进行由小到大的排序,还可以采用冒泡排序法对数组进行排序以及直接选择排序的方法等。
  • 代码部分:
import java.util.Arrays;                                          //导入java.uril.Arrays类
public class task1_1challenge{                                    //创建类public static void main(String args[]){                       //主方法int arr[]=new int[]{12,42,32,15,63,75,95,14,55,87};       //定义数组arr并赋值Arrays.sort(arr);                                         //调用Arrays对象的方法sort将数组arr排序System.out.println("使用sort方法将数组数字由小到大排序为:");//输出一段文字for(int i=0;i<arr.length;i++){                            //for循环遍历数组System.out.print(arr[i]+"  ");                        //输出数组元素}System.out.println();                                     //换行System.out.println("---end---");                          //task1_1challenge sorter1=new task1_1challenge();           //创建冒泡排序类的对象sorter1sorter1.sort1(arr);                                        //调用sorter1中的方法sort1task1_1challenge sorter2=new task1_1challenge();           //创建直接排序类的对象sorter2sorter2.sort2(arr);                                        //调用sorter2中的方法sort2}public void sort1(int arr[]){                                 //创建方法sort1for(int i=1;i<arr.length;i++){                            //控制排序轮数,为数组长度减1次for(int j=0;j<arr.length-i;j++){                      //比较大小循环体if(arr[j]>arr[j+1]){                              //判断相邻两个元素大小int temp=arr[j];                              //把第一个元素值保存到临时变量中arr[j]=arr[j+1];                              //把第二个元素值保存到第一个元素中arr[j+1]=temp;                                //把临时变量保存到第二个元素中}}}showArray1(arr);                                           //调用方法showArray1}public void showArray1(int arr[]){                             //创建方法showArray1遍历数组System.out.println("使用冒泡排序法输出:");                 //输出一段文字for(int i:arr){                                           //foreach语句遍历数组System.out.print(i+"  ");                             //输出数组元素}System.out.println();                                     //换行System.out.println("---end---");}public void sort2(int arr[]){                                 //创建方法sort2int index;                                                //定义数组的元素下标indexfor(int i=1;i<arr.length;i++){                            //循环位置交换的轮数index=0;                                              //给index下标赋值for(int j=1;j<=arr.length-i;j++){                     //比较大小的循环体if(arr[j]>arr[index]){                            //判断当前元素与循环比较元素的大小关系index=j;                                      //如果循环比较元素大于当前元素,则将循环元素下标赋予当前元素下标} }int temp=arr[arr.length-i];                           //将当前轮数的最后一个值保存到临时变量temp中arr[arr.length-i]=arr[index];                         //将这一轮最大数赋予这一轮最后一个位置arr[index]=temp;                                      //临时变量保存在index下标的数组元素中}showArray2(arr);                                          //调用showArray2方法对arr进行输出}public void showArray2(int arr[]){                            //创建方法showArray2System.out.println("使用直接选择排序法输出:");             //输出一段文字for (int i:arr){                                          //foreach遍历arr数组System.out.print(i+"  ");                             //输出数组元素}System.out.println();System.out.println("---end---");}
}
  • 运行结果:
    在这里插入图片描述
  • 结果分析:
    三种方法结果相同,冒泡排序的主要思想就是把相邻两个元素进行比较,如果满足一定条件则进行交换,每次循环都将最大或者最小的元素排在最后,下一次是对数组中其他元素进行类似操作。而直接选择排序的基本思想是将指定排序位置与其他数组元素分别对比,如果满足条件就交换元素值,与冒泡排序相比,直接选择排序的交换次数要少很多,所以速度会更快些。需要注意的是数组的下标是从0开始,最后一个元素的表示总是“数组名.length-1”。

2.编制一个Java application应用程序,求3x^2+4x-1=0的根。

  • 编程前思考:
    这是一个一元二次方程,可以通过求根公式算出结果,如果是别的一元二次方程的话是否可以通过定义a,b,c的值来进行求解。
  • 代码部分:
import java.util.Scanner;                               //导入类
public class task1_1challenge1{                         //创建类public static void main(String[] args){             //创建main方法{double a=3,b=4,c=-1;                               //在语句块中定义double类型变量a,b,cdouble x1=(-b+Math.sqrt(b*b-4*a*c))/(2*a);          //定义double类型根x1并用求根公式赋予值double x2=(-b-Math.sqrt(b*b-4*a*c))/(2*a);          //同上System.out.println("方程的根为:"+x1);               //输出根x1System.out.println("方程的根为:"+x2);	            //输出根x2}{double a,b,c;                                   //定义double型变量a,b,cwhile(true){                                    //while循环,使得能够多次求不同方程的根System.out.println("请输入a:");             //输出一段文字Scanner sc1=new Scanner(System.in);         //创建一个扫描器用来输入数据a=sc1.nextDouble();                         //把输入的值赋给aSystem.out.println("请输入b:");Scanner sc2=new Scanner(System.in);          //创建一个扫描器用来输入数据b=sc2.nextDouble();                         //把输入的值赋给bSystem.out.println("请输入c:");Scanner sc3=new Scanner(System.in);         创建一个扫描器用来输入数据c=sc3.nextDouble();                         //把输入的值赋给bif(b*b-4*a*c<0){                             //如果不符合判别式,则无解System.out.println("该方程无解");}else{double x1=(-b+Math.sqrt(b*b-4*a*c))/(2*a);//根据求根公式求解double x2=(-b-Math.sqrt(b*b-4*a*c))/(2*a);System.out.println("方程的根为:"+x1);      //输出结果System.out.println("方程的根为:"+x2);}}}}
}
  • 运行结果:
    在这里插入图片描述

http://www.ngui.cc/el/3419332.html

相关文章

基本任务1.2Java面向对象程序

一、任务要求 完成一个Java application应用程序&#xff0c;描述一个人类。要求如下&#xff1a;要求此人类必须包含有人的姓名、性别、出生日期等基本属性&#xff08;变量&#xff09;。要求此人类描述吃饭的方法&#xff08;函数&#xff09;和描述睡觉的方法&#xff08;…

基本任务1.3Java API

完成一个 java application应用程序&#xff0c;可以接收用户通过键盘输入的文本&#xff0c;并输出此段文本字符的个数。 代码&#xff1a; package task; //包名 import java.util.Scanner; //导入Scanner类 public class JavaAPI { //创建类public static void…

Tensorflow的安装与配置

Tensorflow的安装与配置 经过多次的安装失败&#xff0c;找寻原因&#xff0c;最终安装成功。 1、基于之前安装的anaconda的基础上进行tensorflow的安装&#xff0c;首先通过按windows键和R键弹出运行框&#xff0c;输入CMD回车&#xff0c;进入cmd命令窗口&#xff0c;先查询…

基本任务1.4java异常捕捉机制

Java异常捕捉机制 任务要求&#xff1a; 一、完成一个 java application应用程序&#xff0c;完成ca/b 的计算并输出c的结果&#xff0c;可以为a和b在程序中赋初值、或者接收用户通过键盘输入a和b的数值文本后转换为数字等&#xff0c;在程序要求当 b 为0时c的计算结果正确。…

基本任务4.2WEB服务

任务要求&#xff1a; 一、学习Tomcat服务器的安装和配置&#xff0c;要求把其WEB根路径从默认值改为自定义的路径&#xff0c;要求把其WEB默认服务端口改为80。二、把基本任务4.1基本任务和挑战任务所完成的静态WEB页面放到WEB服务器根路径下&#xff0c;启动WEB服务器&#…

MySQL Server 5.5安装

MySQL数据库安装 一、下载安装包 网站&#xff1a;https://dev.mysql.com/downloads/installer/ 然后点击下载&#xff0c;也可以下载老版本。 二、安装 MySQL Server 5.5安装步骤如下&#xff1a;&#xff08;其余版本安装步骤略有不同&#xff09; 三、测试 在命令…

语音信号线性预测分析

语音信号线性预测分析 基本思想&#xff1a;一个语音取样的现在值可以用若干个语音取样过去值的加权线性组合来逼近&#xff08;最小均方误差&#xff09;。线性预测最重要的优势在于它可以较为精确地估计语音的参数&#xff0c;而这些极少的参数可以正确地表现语音信号的时域…

在vue中使用fastclick解决移动端300ms延时问题

第一步&#xff1a;安装插件 把fastclick这个包安装到项目的依赖之中&#xff0c;--save表示开发与上线都需要 npm install fastclick --save 第二步:在main.js中引入插件 import fastclick from fastclick 第三步:在body元素上使用插件 fastclick.attach(document.body)

如何实现洗牌算法?

day09 题目描述: 开发一款扑克游戏&#xff0c;需编写一套洗牌算法&#xff0c;公平的洗牌是将洗好的牌存储在一个整型数组里&#xff0c;每张牌被放在任何一个位置的概率是相等的. 解析: 定义一个洗牌函数&#xff0c;函数内用tmp数组存储1~54表示54张牌&#xff0c;然后对5…

球的反弹高度有多高?

day11 题目描述: 一球从100米高度自由落下&#xff0c;每次落地后反弹回原高度的一半&#xff0c;再落下。求它在第十次落地时&#xff0c;共经过多少米&#xff1f;第十次反弹多高&#xff1f; 解析: 设初始总高度为100米&#xff0c;球每次下落高度反弹回的高度为上一次的一…