2010-10-27 154 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。你應該只需要前四章來完成這個簡單的程序。 :)

相關問題