2010-10-27 117 views
0

我需要帮助,为我的初学者计算机科学课做家庭作业。我完全失去了!如何计算Perl中两点之间的距离?

我需要用Perl编写一个程序,用我的教授给定的公式计算两点之间的距离和三个值(x,y,z)。该程序必须执行下列操作:

  • 提示“c”来继续“q”退出
  • 提示用于x,y,z坐标indivually的第一组
  • 提示用于x, y,z坐标个别第二组
  • 计算两组之间的距离 然后显示该值并退出。

这是我迄今所做的:

的伪代码大纲为C以上

IF THEN工艺草图继续和q退出部分 找到一个开方方程计算距离

而不是获取代码,我真的在寻找从哪里开始的提示。我是从定义变量开始的吗?任何提示或第一轮的方向将非常感激! ;)

回答

5

你有三个主要问题和一个希望琐碎的问题。

如果我这样做,我会做到以下几点:

1)确保我安装的是工作,没有什么能比在想它是一个代码问题,并找出你安装坏更糟。你可以运行你好世界吗? (这应该是微不足道的。)

print "Hello World\n"; 

2)实验与数学,得到了距离的计算工作。从硬编码值开始:

$x = 1; 
$y = 2; 
$z = 3; 
print (($x + $y)/3); #whatever 

3)确定如何读取输入。你可能想看看learn perl website

4)把它放在一起。

+4

嗯,带有“无论”注释的“print”不会执行您认为它的操作:在启用警告的情况下运行以查看问题。您将“print”的返回值除以三,然后丢弃该结果。 – tchrist 2010-10-28 00:12:03

+0

谢谢@tchrist。看看一步一步做事情是多么有用。固定。 – 2010-10-28 00:48:10

4

从使用最佳实践开始。将其包含在Perl脚本的顶部。

use strict; 
use warnings; 

另一个好的做法是学习如何定义和调用子程序,包括如何将参数传递到他们和检索它们的返回值。您希望程序的每个组件都处于执行一项任务的子例程中。这对于简单的第一次分配来说似乎是不必要的开销,但是这将是非常值得的努力,尤其是当事情工作不正常时。

然后尝试弄清楚你的一些子程序可能是什么,并开始将它们连接在一起,以便它们以正确的顺序相互调用。不要担心细节或者让子程序做任何有趣的事情。只需放置一些主要组件即可。这是一个开始:

use strict; 
use warnings; 

main(); 

sub main { 
    print "Running main().\n"; 
    my $reply = get_user_input("Enter something."); 
    print $reply, "\n"; 
} 

sub get_user_input { 
    print "Running get_user_input().\n"; 
    my $message = shift @_; 
    print $message, "\n"; 
    return 1234; 
} 

请注意子程序如何包括各种print语句。这些不一定会在最终的程序中,但它们在您开发它时非常有用 - 从本质上提供了额外的确认,即每一步都按您的期望工作。

哪些用于另一个良好的做法:迭代工作。获得一些简单的运行。做一个小调整。再次运行该程序。确认它正在工作(最初只是通过打印东西)。再做一个小调整。再次运行。等等

+2

+1表示“迭代工作”。当我做出一系列相对较小的变化时,我总是最有成效的,而不是一次尝试做很多事情。 – friedo 2010-10-28 00:53:01

1

与任何程序一样,从一开始就开始。

  • 编写一个程序向用户打印提示。

  • 修改该程序以接受用户的输入。

  • 修改该程序以检查来自用户的输入。

也就是说,每个婴儿的步骤,直到你已经满足所有的要求。

如果您需要首先学习Perl,请从开始学习Perl。你应该只需要前四章来完成这个简单的程序。 :)

相关问题