JRの運賃計算プログラムを作成(VBで)しています。
今は駅数などが少ないので北海道版を作成中なのですが…

とりあえず、
・各線区(函館本線など)に線区コードを付け区別する
・各駅に駅コードを付ける
として運賃計算をさせようとしているのですが、経路をどう処理したらいいかと悩んでいます。
例えば、出発駅「釧路」 到着駅「札幌」 としたときには、
1、釧網本線→石北本線→函館本線
2、根室本線→石勝線→千歳線→函館本線
と複数の経路が発生します。

これをプログラム上で考えられる経路を自動で処理(表示)し、ユーザに経路を提示したい(選択させたい)のですがどのような方法がありますか??
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (5件)

全ルートをしらみつぶしに探す、これで北海道程度なら十分実用になります。


全国規模になればこの方法で手に負えないかもしれません。
ルート検索のロジックについてはいろいろ有りますから数学、コンピュータ関係の書籍を探して下さい。
    • good
    • 0

おはようございます。

#1です。
>このなかの「2」がどうすればいいのかが見当つきません…
具体的にプログラム(構文)について質問された方が宜しいですね。
その方が良い回答がつくはずです。
    • good
    • 0

経路探索であれば、A*(エースター)アルゴリズムや遺伝的アルゴリズムによるものが考えられます。

その他にも様々なアルゴリズムが提案されています。

それらについてはここよりも、
[技術者向] コンピューター > プログラミング > Visual Basic
のカテゴリにおられる方々の方が詳しいと思います。
    • good
    • 0

ご質問の趣旨は、運賃計算をしたいということではなく、プログラムを作りたいと言うところにあると質問文を読んだのですがかまいませんね?



「駅すぱあと」は有名なだけで使い物にならないし(こんなものまさか他人に勧められるようなものじゃないですねえ)、単に運賃計算しただけであればMars for DOSがあるわけですし。

となると、質問するカテゴリはここ鉄道・路線よりも、技術者向けPC>プログラミング>Visual Basic または >その他のほうが適していると思います。プログラムに長けた人の目に触れる機会が多くなりますから。
そのまま同じ質問を繰り返すとマルチポスト(多重投稿)ですから、誘導された経緯をごく簡単に触れて質問し直してはいかがでしょうか。
    • good
    • 0

こんにちは。


>どのような方法がありますか??
いろいろとありますが、もう少し具体的に質問して頂けるとよい回答がつくと思います。
それから、「駅すぱあと」というソフトや運賃検索(路線検索)サイトがあるのに、そういうものを作成しなければならない事情でもあるのでしょうか。

この回答への補足

ありがとうございます。

運賃計算のシステムを作成する理由としては、そのシステムを使用しながら
色々と応用したものを作成するために必要となっています。

具体的には・・・
 1.ユーザに出発駅と到着駅を入力させる
 2.システムは経路を自動計算し表示する
 3.ユーザはシステムが提示した経路(複数の場合)を選択する
 4.システムはユーザが選択した経路で運賃を計算し、表示する
 5.実際にこのあとに色々なことをするためにこのシステムが必要になっています
という処理をしたいのです(具体的になってないかもしれませんが…)

このなかの「2」がどうすればいいのかが見当つきません…
よろしくお願いします。

補足日時:2009/05/17 22:05
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q料金計算ソフト

JR線の運賃を正確に計算できるソフトはありませんか。ただし、複雑な経路も計算できるもの、新幹線も対応しているものに限ります。できれば私鉄の運賃も計算できるものがあればなお良いです。

Aベストアンサー

JR線だけでしたらこういうフリーソフトがあります。

ただし、パソコンにそれなりの知識が無いと使いこなせません。

参考URL:http://www.swa.gr.jp/pub/mars/index.html

QVBA 九九 Do While

VBAのDo Whileステートメントを使って九九の表をつくりたいのですが、何度やっても途中で詰まり、実行に至りません。

For NextとDo untilではできたと思うのですがDo Whileがどうしてもわからなくて…
どなたか助けてください。お願いします。

Sub 九九計算_for()
Dim i, j As Integer
For i = 1 To 9
For j = 1 To 9
Cells(i, j).Value = i * j
Next
Next
End Sub

Sub 九九計算_do_until()
j = 1
Do
i = 1
Do
Cells(j, i).Value = i * j
i = i + 1
Loop Until i = 10
j = j + 1
Loop Until j = 10
End Sub

Aベストアンサー

Sub 九九計算_do_while()
Dim i As Integer
Dim j As Integer
j = 1
Do While j < 10
i = 1
Do While i < 10
Cells(j, i).Value = i * j
i = i + 1
Loop
j = j + 1
Loop
End Sub


人気Q&Aランキング

おすすめ情報