csharp进阶练习题:抛体运动【难度:2级】:
希望了解如何使图片更小一些帮助.
任务:
必须创建一个类,Projectile
,当初始化这需要在3个参数:起始高度(0≤H0 <200
),起始速度('0 -16变为-16.0,不-16.000).但要确保你不使用三小数位四舍五入值计算.否则,你会发现你自己的答案接近正确的,但稍微偏离.
您还需要根据需要定义实例变量.这些将不会被测试.
例子:
[外链图片转存失败(img-aP1RJvvi-1569455839407)(https://gdurl/F_Li)]
这个例子中示出了初始的垂直和水平速度时射弹以2英尺/秒烧制.
P = Projectile.new(5,2,45)#=>开始以5英尺地面之上,以2英尺/秒最初行驶的弹丸,并以45度与角度在水平(在上面的三角形示出)
p.height_eq#=> "H(T)= -16.0t ^ 2 +1.414吨+ 5.0"
# 1.414 = 2sin(45°)
p.horiz_eq#=> "X(t)=1.414吨"
# 1.414 = 2COS(45°)
p.height(0.2)#=> 4.643(计算:-16(0.2)^ 2 +(2sin(45°))(0.2)+ 5)
p.horiz(0.2)#=> 0.283(计算:2COS(45°)* 0.2)
p.landing()#=> [0.856,0,0.605(0.605秒(T = 0.605),该颗粒已降落在地面上后(Y = 0),并且是0.856英尺水平(X = 0.856)远离释放点.)
晶
P = Projectile.new(5.0,2.0,45.0)#=>开始以5英尺地面之上,以2英尺/秒最初行驶的弹丸,并以45度与角度在水平(在上面的三角形示出)
p.height_eq#=> "H(T)= -16.0t ^ 2 +1.414吨+ 5.0"
# 1.414 = 2sin(45°)
p.horiz_eq#=> "X(t)=1.414吨"
# 1.414 = 2COS(45°)
p.height(0.2)#=> 4.643(计算:-16(0.2)^ 2 +(2sin(45°))(0.2)+ 5)
p.horiz(0.2)#=> 0.283(计算:2COS(45°)* 0.2)
p.landing()#=> [0.856,0,0.605(0.605秒(T = 0.605),该颗粒已降落在地面上后(Y = 0),并且是0.856英尺水平(X = 0.856)远离释放点.)
P =弹丸(5,2,45)#=>开始以5英尺地面之上,以2英尺/秒开始行进,并以45度与水平的角度的弹丸(在三角形示出以上)
p.height_eq()#=> "H(T)= -16.0t ^ 2 +1.414吨+ 5.0"
# 1.414 = 2sin(45°)
p.horiz_eq()#=> "X(t)=1.414吨"
# 1.414 = 2COS(45°)
p.height(0.2)#=> 4.643(计算:-16(0.2)^ 2 +(2sin(45°))(0.2)+ 5)
p.horiz(0.2)#=> 0.283(计算:2COS(45°)* 0.2)
p.landing()#=> [0.856,0,0.605(0.605秒(T = 0.605),该颗粒已降落在地面上后(Y = 0),并且是0.856英尺水平(X = 0.856)远离释放点.)
p值=新弹丸(5,2,45)// =>开始以5英尺地面之上,以2英尺/秒开始行进,并以45度与水平的角度(在三角形如上所示)的射弹
p.heightEq()// => "H(T)= -16.0t ^ 2 +1.414吨+ 5.0"
# 1.414 = 2sin(45°)
p.horizEq()// => "X(t)=1.414吨"
# 1.414 = 2COS(45°)
p.height(0.2)// => 4.643(计算:-16(0.2)^ 2 +(2sin(45°))(0.2)+ 5)
p.horiz(0.2)// => 0.283(计算:2COS(45°)* 0.2)
p.landing()// => [0.856,0,0.605(0.605秒(T = 0.605),该颗粒已降落在地面上后(Y = 0),并且是0.856英尺水平(X = 0.856)的距离从释放点.)
p值=新弹丸(5,2,45)#=>射弹开始以5英尺地面之上,以2英尺/秒开始行进,并以45度与水平的角度(在三角形示出以上)
p.heightEq()#=> "H(T)= -16.0t ^ 2 +1.414吨+ 5.0"
# 1.414 = 2sin(45°)
p.horizEq()#=> "X(t)=1.414吨"
# 1.414 = 2COS(45°)
p.height(0.2)#=> 4.643(计算:-16(0.2)^ 2 +(2sin(45°))(0.2)+ 5)
p.horiz(0.2)#=> 0.283(计算:2COS(45°)* 0.2)
p.landing()#=> [0.856,0,0.605(0.605秒(T = 0.605),该颗粒已降落在地面上后(Y = 0),并且是0.856英尺水平(X = 0.856)远离释放点.)
弹丸p值=新弹丸(5,2,45); // =>射弹开始以5英尺地面之上,以2英尺/秒开始行进,并以45度与水平的角度(在三角形示出以上)
p.heightEq(); // => "H(T)= -16.0t ^ 2 +1.414吨+ 5.0"
# 1.414 = 2sin(45°)
p.horizEq(); // => "X(t)=1.414吨"
# 1.414 = 2COS(45°)
p.height(0.2); // => 4.643(计算:-16(0.2)^ 2 +(2sin(45°))(0.2)+ 5)
p.horiz(0.2); // => 0.283(计算:2COS(45°)* 0.2)
p.landing(); // =>双[] {0.856,0,0.605}(0.605秒(T = 0.605),该颗粒已降落在地面上后(Y = 0),并且是0.856英尺水平(X = 0.856)从所述远释放点.)
VAR p值=新弹丸(5,2,45); // =>射弹开始以5英尺地面之上,以2英尺/秒开始行进,并以45度与水平的角度(在三角形示出以上)
p.heightEq(); // => "H(T)= -16.0t ^ 2 +1.414吨+ 5.0"
# 1.414 = 2sin(45°)
p.horizEq(); // => "X(t)=1.414吨"
# 1.414 = 2COS(45°)
p.height(0.2); // => 4.643(计算:-16(0.2)^ 2 +(2sin(45°))(0.2)+ 5)
p.horiz(0.2); // => 0.283(计算:2COS(45°)* 0.2)
p.landing(); // => [0.856,0,0.605(0.605秒(T = 0.605),该颗粒已降落在地面上(Y = 0),并且是0.856英尺水平(X = 0.856)从释放点移开后. )
VAR p值=新弹丸(5,2,45);#=>射弹开始以5英尺地面之上,以2英尺/秒开始行进,并以45度与水平的角度(在三角形如上所示)
p.heightEq(); // => "H(T)= -16.0t ^ 2 +1.414吨+ 5.0"
# 1.414 = 2sin(45°)
p.horizEq(); // => "X(t)=1.414吨"
# 1.414 = 2COS(45°)
p.height(0.2); // => 4.643(计算:-16(0.2)^ 2 +(2sin(45°))(0.2)+ 5)
p.horiz(0.2); // => 0.283(计算:2COS(45°)* 0.2)
p.landing(); // =>数组(0.856,0,0.605)(0.605秒(T = 0.605)之后,粒子已经降落在地面上(Y = 0),并且是0.856英尺水平(X = 0.856)从释放点远.)
VAR P =弹丸(5,2,45); // =>射弹开始以5英尺地面之上,以2英尺/秒开始行进,并以45度与水平的角度(在三角形示出以上)
p.heightEq(); // => "H(T)= -16.0t ^ 2 +1.414吨+ 5.0"
# 1.414 = 2sin(45°)
p.horizEq(); // => "X(t)=1.414吨"
# 1.414 = 2COS(45°)
p.height(0.2); // => 4.643(计算:-16(0.2)^ 2 +(2sin(45°))(0.2)+ 5)
p.horiz(0.2); // => 0.283(计算:2COS(45°)* 0.2)
p.landing(); // => doubleArrayOf(0.856,0,0.605)(0.605秒(T = 0.605),该颗粒已降落在地面上后(Y = 0),并且是0.856英尺水平(X = 0.856)从释放点远.)
弹丸p值=新弹丸(5,2,45); // =>射弹开始以5英尺地面之上,以2英尺/秒开始行进,并以45度与水平的角度(在三角形示出以上)
p.heightEq(); // => "H(T)= -16.0t ^ 2 +1.414吨+ 5.0"
# 1.414 = 2sin(45°)
p.horizEq(); // => "X(t)=1.414吨"
# 1.414 = 2COS(45°)
p.height(0.2); // => 4.643(计算:-16(0.2)^ 2 +(2sin(45°))(0.2)+ 5)
p.horiz(0.2); // => 0.283(计算:2COS(45°)* 0.2)
p.landing(); // => [0.856,0,0.605(0.605秒(T = 0.605),该颗粒已降落在地面上(Y = 0),并且是0.856英尺水平(X = 0.856)从释放点移开后. )
弹丸P =弹丸(H:5,V0:2,一个:45)// =>射弹开始以5英尺地面之上,最初行驶在2英尺/秒,并以45度与水平的角度(在三角形如上所示)
p.heightEq()// => "H(T)= -16.0t ^ 2 +1.414吨+ 5.0"
# 1.414 = 2sin(45°)
p.horizEq()// => "X(t)=1.414吨"
# 1.414 = 2COS(45°)
p.height(时间:0.2)// => 4.643(计算:-16(0.2)^ 2 +(2sin(45°))(0.2)+ 5)
p.horiz(时间:0.2)// => 0.283(计算:2COS(45°)* 0.2)
p.landing()// => [0.856,0,0.605(0.605秒(T = 0.605),该颗粒已降落在地面上后(Y = 0),并且是0.856英尺水平(X = 0.856)的距离从释放点.)
常规
弹丸p值=新弹丸(5,2,45)// =>射弹开始以5英尺地面之上,以2英尺/秒开始行进,并以45度与水平的角度(在上面的三角形示出)
p.heightEq()// => "H(T)= -16.0t ^ 2 +1.414吨+ 5.0"
# 1.414 = 2sin(45°)
p.horizEq()// => "X(t)=1.414吨"
# 1.414 = 2COS(45°)
p.height(0.2)// => 4.643(计算:-16(0.2)^ 2 +(2sin(45°))(0.2)+ 5)
p.horiz(0.2)// => 0.283(计算:2COS(45°)* 0.2)
p.landing()// => [0.856,0,0.605(0.605秒(T = 0.605),该颗粒已降落在地面上后(Y = 0),并且是0.856英尺水平(X = 0.856)的距离从释放点.)
弹丸p值=新弹丸(5,2,45); // =>射弹开始以5英尺地面之上,以2英尺/秒开始行进,并以45度与水平的角度(在三角形示出以上)
p.HeightEq(); // => "H(T)= -16.0t ^ 2 +1.414吨+ 5.0"
# 1.414 = 2sin(45°)
p.HorizEq(); // => "X(t)=1.414吨"
# 1.414 = 2COS(45°)
p.Height(0.2); // => 4.643(计算:-16(0.2)^ 2 +(2sin(45°))(0.2)+ 5)
p.Horiz(0.2); // => 0.283(计算:2COS(45°)* 0.2)
p.Landing(); // => [0.856,0,0.605(0.605秒(T = 0.605),该颗粒已降落在地面上(Y = 0),并且是0.856英尺水平(X = 0.856)从释放点移开后. )
此外,请注意,所有的系数被表示为串式花车,不管他们是否是整体.这意味着整个数字应该总是标有".0" 进行格式化.
编程目标:
public class Projectile {
}
测试样例:
namespace ProjectileTests {
using NUnit.Framework;
using System;
// TODO: Replace examples and use TDD development by writing your own tests
[TestFixture]
public class Examples
{
public void Description()
{
Projectile p = new Projectile(5, 2, 45);
Assert.AreEqual("h(t) = -16.0t^2 + 1.414t + 5.0", p.HeightEq());
Assert.AreEqual("x(t) = 1.414t", p.HorizEq());
Assert.AreEqual(4.643, p.Height(0.2), 0.0);
Assert.AreEqual(0.283, p.Horiz(0.2), 0.0);
Assert.AreEqual(0.856, p.Landing()[0], 0);
最佳答案(多种解法):
点击查看答案
更多关联题目:
csharp基础练习题:查找组合【难度:1级】–景越C# 经典编程题库,不同难度C# 练习题,适合自学C# 的新手进阶训练
csharp基础练习题:过滤数【难度:1级】–景越C# 经典编程题库,不同难度C# 练习题,适合自学C# 的新手进阶训练
csharp基础练习题:平均计算【难度:0级】–景越C# 经典编程题库,不同难度C# 练习题,适合自学C# 的新手进阶训练
免责申明
本博客所有编程题目及答案均收集自互联网,主要用于供网友学习参考,如有侵犯你的权益请联系管理员及时删除,谢谢
题目收集至https://www.codewars/
https://www.codewars/kata/projectile-motion
更多推荐
csharp进阶练习题:抛体运动【难度:2级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练
发布评论