浙大JAVA实验题答案14answer.doc_第1页
浙大JAVA实验题答案14answer.doc_第2页
浙大JAVA实验题答案14answer.doc_第3页
浙大JAVA实验题答案14answer.doc_第4页
浙大JAVA实验题答案14answer.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验14 类的设计和实验题库中未做的题1. 程序填空题,不要改变与输入输出有关的语句。30009 求一元二次方程的根(选做)输入一个正整数repeat (0repeat10),做repeat次下列运算:输入参数a,b,c,求一元二次方程a*x*xb*xc0的根,结果保留2位小数(如果答案为3.50,则直接显示为3.5)。按情况分别输出以下内容(文字中的标点为西文标点,无空格。括号内为说明):(1)a=b=c=0,meaningless(2)a=b=0,c!=0,error(3)x=值 (值为-c/b)(4)x1=值1 (值1为(-b+Math.sqrt(d)/(2*a)) x2=值2 (值2为(-b-Math.sqrt(d)/(2*a))(5)x1=值1+值2i x2=值1-值2i (值1为-b/(2*a),值2为Math.sqrt(-d)/(2*a))输入输出示例:括号内为说明输入:5 (repeat=5)0 0 0 (a=0,b=0,c=0)0 0 1 (a=0,b=0,c=1)0 2 5 (a=0,b=2,c=5)21 89 35 (a=21,b=89,c=35)2 2 3 (a=2,b=2,c=3)输出:a=b=c=0,meaninglessa=b=0,c!=0,errorx=-2.5x1=-0.44x2=-3.8x1=-0.5+1.12ix2=-0.5-1.12iimport java.util.Scanner;public class Test30009 public static void main(String args) int repeat, ri; int a,b,c,d; double x1,x2; Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri = 1; ri =0) x1=(-b+Math.sqrt(d)/(2*a); x2=(-b-Math.sqrt(d)/(2*a); System.out.println(x1=+Math.round(x1*100)/100.0); System.out.println(x2=+Math.round(x2*100)/100.0); else x1=-(double)b/(2*a); x2=Math.sqrt(-d)/(2*a); System.out.println(x1=+Math.round(x1*100)/100.0+Math.round(x2*100)/100.0+i); System.out.println(x2=+Math.round(x1*100)/100.0+-+Math.round(x2*100)/100.0+i); 说明:为防止出错,在编程前应考虑周全 当a=b=c=0时,方程有无数解; 当a=b=0,c!=0时,方程无解; 当a=0,b!=0时,方程解为x=-c/b; 当a!=0时,求:d=b*b-4*a*c若d=0,有两个不同实根:x=(-bMath.sqrt(d)/(2*a)若d=0) x1=(-b+Math.sqrt(d)/(2*a); x2=(-b-Math.sqrt(d)/(2*a); System.out.println(x1=+Math.round(x1*100)/100.0); System.out.println(x2=+Math.round(x2*100)/100.0); else x1=-(double)b/(2*a); x2=Math.sqrt(-d)/(2*a); System.out.println(x1=+Math.round(x1*100)/100.0+Math.round(x2*100)/100.0+i); System.out.println(x2=+Math.round(x1*100)/100.0+-+Math.round(x2*100)/100.0+i); 40033简单计算器 输入一个正整数repeat (0repeat10),做repeat次下列运算:程序模拟简单运算器的工作:输入一个算式,遇等号=说明输入结束,输出结果。假设计算器只能进行加减乘除运算,运算数和结果都是整数,4种运算符的优先级相同,按从左到右的顺序计算。例:括号内是说明输入2 (repeat=2)15 + 2 / 3 = (数字与运算符之间有一空格)1 + 2 * 10 - 10 / 2 = (数字与运算符之间有一空格)输出510 import java.util.Scanner;public class T40033 public static void main(String args) int ri, repeat; int op1, op2, res; char operator; Scanner in=new Scanner(System.in); repeat=in.nextInt(); for(ri=1; ri0),做 n 次下列运算:输入a、b、c三个整数,分别算出前2个数的最大值,和3个数的最大值。要求在main()方法所在类的下方,定义一个Compare类,该类中定义两个类成员方法max(a,b)和max(a,b,c),用来分别获得两个数的最大值、三个数的最大值。输入输出示例(括号内是说明):输入:2 (n=2)4 34 66 (第一批3个数)3 23 4 (第二批3个数)输出:max(a,b)=34 (第一批中前两个数的最大值)max(a,b,c)=66 (第一批中的最大值)max(a,b)=23 (第二批中前两个数的最大值)max(a,b,c)=23 (第二批中的最大值)import java.util.*;public class Test70012 public static void main(String args) int i,n,a,b,c; Scanner in=new Scanner(System.in); n=in.nextInt();for(i=1;i=n;i+) a=in.nextInt();b=in.nextInt();c=in.nextInt();System.out.println(max(a,b)=+Compare.max(a,b);System.out.println(max(a,b,c)=+Compare.max(a,b,c); /*-*/cla

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论