csharp进阶练习题:抛体运动【难度:2级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练

csharp进阶练习题:抛体运动【难度:2级】:

希望了解如何使图片更小一些帮助.

任务:

必须创建一个类,Projectile,当初始化这需要在3个参数:起始高度(0≤H0 <200),起始速度('0 -16变为-16.0,不-16.000).但要确保你不使用三小数位四舍五入值计算.否则,你会发现你自己的答案接近正确的,但稍微偏离.

您还需要根据需要定义实例变量.这些将不会被测试.

例子:

[外链图片转存失败(img-aP1RJvvi-1569455839407)(https://gdurl.com/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.com/
https://www.codewars.com/kata/projectile-motion

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值