• ベストアンサー

時刻表検索のプログラム(Pascal)における動作確認方法

SHIMAPEEの回答

  • ベストアンサー
  • SHIMAPEE
  • ベストアンサー率75% (154/203)
回答No.2

なぜ、少なすぎる気がします、と思うか、その理由を追求するのが勉強なのでしょうね。 プログラムの造りにもよりますけれども、使う側から考えると、一つのアドバイスは、時刻表の先頭、及び最後の電車が検索できるかを確認しては。もう一つのアドバイスは、ある時刻、及びその前後の結果を確認しては。例えばB駅着12:00という電車があったとしたら、11:59、12:00、12:01 について確認しては。 ----- あるいは逆に考えて、この課題は全ての時刻を試したとしてもたかだか60*24でしょう。手で入力したら面倒ですがコンピュータにやらせる仕掛けを作って試してみて、その結果からテストを考察するのも勉強になると思います。

関連するQ&A

  • Pascalの時刻表検索プログラムにおける考察について

    大学のプログラミングの講義で「A駅からB駅に行く際、B駅に到着したい時刻を入力すると、A駅でどの種類の何時何分発の電車に乗ればよいかを検索するプログラムを作成し、それについてのレポートを提出せよ」という課題が出されました。 そのレポートの項目に、「考察」が必要なのですが、このプログラムで何を考察すればよいかわかりません。 わかる人がいれば教えてください。よろしくお願いします。

  • 時刻表検索をプログラミングで作成

    時刻表検索をプログラミングで作りたいと思っています。A駅からC駅までの電車でA駅とC駅の間に一駅B駅があり、乗り換えが必要なので、降り場と乗り場の表示もされるようにしたいです。時刻を入力すると、その時刻に近い出発時間が表示されるようにしたいです。また、プログラミングの知識が全くありません。サイトなどがありましたら、リンクを貼っていただきたいです。よろしくお願いします。

  • スキャナ又はデジカメ取り込んだ時刻表を入れ替えたい

    母が歳で段々と小さい字が見えなくなり、バスの時刻表が見にくいと言われ 大きく作り直してるのですが、私の手が不自由で全部の時間を入力するのに困難で 時間がかかり(入力ミスも多くなるので)大変です。(沢山の路線があるため) そこで、スキャナで読みとり、読んでココのソフトでテキストにしようとしたのですが時刻表の文字が小さいせいなのかどうかわかりませんが、 なかなか原本と同じ文字には読み取ってくれません 編集する箇所が多く、これでは自分で直接キーボードから入力するのと変わらないくらい時間がかかる為。止めました。 又デジカメで時刻表を写し、読んでココで編集をしたのですが、これもうまくいきません テキスト・PDF画像にしても駄目でした。 そこで質問なのでが、例1の時刻表(原本)を例2の様に作成したいのですが 簡単に出来る方法はありますか? 動作環境 スキャナ キャノンのマルチパスC50 PC NECデスクトップパソコン 例1(原本) 系統番号 7        8  8  8・・・・ 行先   A駅    B街   ・・・ 経由  あ街経由  い街経由   う街経由  あ街経由   う街経由      8:00      8:01       9:05    ・・・・・・・ 例2(作成したい表)     系統番号   7   8     8      行先    A駅        B街      経由  あ街経由 い街経由  う街経由      6      7      8   8:00        8:01      9   9:05        9:10     10     11         11:35     12 13 14 15 16 17

  • プログラムが上手く動作しません。

    質問です。 1.整数を1個入力し、その数を3で割った余りが0ならば"Good morning"、1ならば"Good evening"、2ならば"Good afternoon"と出力するプログラムを作成せよ。ただしswhitc文を用いること。 という問題で私は #include <stdio.h> main() {      int a;      printf("整数a:");      scanf("%d",&a);      switch(a%3)      {      case '0':           printf("Good morning \n");           break;      case '1':           printf("Good evening \n");           break;      case '2':           printf("Good afternoon \n");           break;      } } と考えましたが実行しても入力はできますがprintfが表示されません。 どこが間違っているのでしょうか?ちゃんとコンパイルはできるのですが・・・。 2.10個の整数値をキー入力し、合計と平均値を計算してその結果を表示するプログラムを書きなさい。 #include <stdio.h> main() {      int a[11],b,c,i;      for(i=1;i<11;i++)      {           printf("整数%d:\n",i);           scanf("%d",&a[i]);      }      for(i=1;i<11;i++)           b+=a[i];      c=b/10;      printf("合計値は%d",b);      printf("平均値は%d",c); } というプログラムを考えましたが、計算結果がめちゃくちゃになってしまいます。 これもどこを直したらいいべきでしょうか?

  • プログラムがうまく動作しない

    int型変数aとbにそれぞれ値を入力し、それらをかけた結果を出力するプログラムをつくりました。もし文字が入力されたら yarinaoshi と表示し再びaに値を入力するように指示します。しかしこのプログラムはデバグしても何のエラーもないのですが、実際に実行し文字を入力すると Microsoft C++ Debug Library というダイアログボックスが出てきて Abort, Retry, Ignore の三つのボタンがでてきます。どれを選んでも作業は止まってしまい、思ったような結果が得られません。一体どうすればいいのでしょうか?  以下がそのプログラムのソースコードです。 #include <stdio.h> #include <ctype.h> #include <stdlib.h> int kakezan(int a, int b); int main(void) { int dt= 1; int a, b; while(dt !=0){ printf("Int1:"); scanf("%d", &a); if(isalpha(a) != 0) { printf("yarinaoshi"); scanf("%d", &a); } printf("Int2:"); scanf("%d", &b); dt = kakezan(a, b); printf("Result:%d\n", dt); } return 0; } int kakezan(int a, int b) { int dt; return dt = a*b; }

  • プログラムが動作しません

    Visual C++ 6でプログラムを作成したのですが、作成した環境はwindows2000で動作は確認しています。しかし、パソコンを更新してXPにしたとき、C++のソフトと作成したプログラムの実行ファイルなど一式を前使っていたのと同じようにフォルダーを関連ずけたのですが、 全然反応してくれません?PCに何か足りないのでしょうか? C++がXPで使用可能なことも確認しているのですが...。 誰か思い当たる原因を教えてください。

  • 時刻表を分でソートする方法を教えてもらえませんか?

    NextTrainと言う時刻表表示ソフトを使っているのですが 7種類の時刻表を1つの時刻表ファイルにまとめて 一度で見れるようにしたいのです。 peal初めてで色々と読んでみてもよく解りませんでした。 今の状況は、ActivePerl 5.10.0.1003 をセットアップして、  『Hello World』を表示させる事は出来ました。 『例として6時から8時までをソートしてみます』 【分でソート前】 06: a22 a52  b07 c25 c47 c58 c51   d25    e55 07: a12 a30 a40 a49 a58 c09 c21 c34 c46 c59 d13 d24 d37 d49 e15 e34 e44 e53 08: a07 a17 a28 a38 a47 b04 b45 c12 c25 c38 c51 d02 d21 d32 d42 e58 【分でソート完了】 06: b07 a22 c25 d25 c47 c51 a52 e55 c58 07: c09 a12 d13 e15 c21 d24 a30 c34 e34 d37 a40 e44 c46 a49 d49 e53 a58 c59 08: d02 b04 a07 c12 a17 d21 c25 a28 d32 a38 c38 d42 b45 a47 c51 e58  ※分の前に付いているアルファベットはバスの系統なので必ず付きます。   Perlで無くても簡単に出来る方法があれば教えてください。   アドバイスよろしくお願いします。

    • ベストアンサー
    • Perl
  • プログラムを実際に実行したと明確に分かる方法とは

    C言語でつくったあるプログラムを、 ”実際に実行した”と明確に分かるようにレポートに書くにはどうしたらいいでしょうか? プログラムをそのままレポートに載せるのはいけないようです。 例として、画面のハードコピーまたは出力ファイルの内容を添付、とあるのですが、 これもまた何を指しているのか分からず、困っています。 因みに情報系の学科に属しているわけでもなく、プログラミングに関する知識もほぼありません。 初歩的すぎる質問を申し訳ないのですが、どなたかご教示いただけますでしょうか。 よろしくお願いします。

  • Excelで乗り継ぎ時刻表の調整を自動で行なう方法

    現在、Excelで乗り継ぎ時刻表を作成しているのですが、 バスから電車への乗り換えにかかる時間などにあわせた調整を 以下の作業例のように手動で行なっています。 1.これを関数やマクロなどを用いて手早く処理する方法がありましたら教えてください。 2.また、どう乗り継げば良いのかということを分かりやすく示すために、   セルA2~A4やB2~B4のような場合は文字列上揃えで結合、   セルE1~E2のような場合は文字列下揃えで結合、   さらに画像のような場合は文字列中央揃えや   一部のセルを結合しないといった調整を行なった上で   セルに枠(罫線)をかけるという作業も手動で行なっているのですが、   こちらも自動化する方法がありましたら教えてください。 現在の作業例 A列:甲社バス乗車時刻、B列:甲社バス降車時刻、 C列:電車発車(乗車)時刻、D列:電車到着(降車)時刻、E列:乙社バス乗車時刻・・・ ※甲社バスを降りてから電車への乗り換えは3分、  電車を降りてから乙社バスへの乗り換えは5分を要します。  調整前    A   B   C   D   E 1 11:50 12:00 12:07 12:27 12:36 2 11:55 12:05 12:10 12:30 12:40 3 12:02 12:12 12:14 12:34 12:45  調整後    A   B   C   D   E 1 11:50 12:00 12:07 12:27 (空欄) 2 11:55 12:05 12:10 12;30 12:36 3 (空欄) (空欄) 12:14 12:34 12:40 4 (空欄) (空欄) (空欄) (空欄) 12:45 5 12:02 12:12   (以下省略) よろしくお願いします。

  • Emacs端末上で、Cプログラムが適切に動作しない

    こんにちは。 OSは現在、64bit版のWindows7を使っており、Emacsは、Gnu Emacs for Windows 23.4 を使っています。 Emacsのシェルモード(「M-x shell」で起動するモード)では、シェルとしてCygwinに付属しているbashを使い、C言語のソースをコンパイル(あるいはビルド)する場合は、Cygwinのgccを使おうと考えています。 ところが、ビルドしたプログラムをEmacsのシェルモードで実行すると、上手く起動しないので困っています。 具体的には、以下の通りです。 まず、テスト用のCソースファイルとして、以下のような、test.cを作成しました。 ------------------------------------------------------------ #include <stdio.h> int main(void) { int num=2; printf"Enter integer: "); scanf("%d", &num); printf("Number enterd: %d", num); } ------------------------------------------------------------ これをシェルモードで、gccを使ってビルドし、作成されたa.exeを実行すると、以下のようになりました。 [TERM=emacs] ------------------------------------------------------------ Kei-Lavie@Kei:~/C_Programs $ gcc test2.c Kei-Lavie@Kei:~/C_Programs $ ./a.exe 20 Enter integer: Number enterd: 20 ------------------------------------------------------------ 作成された実行ファイルのa.exeを実行すると、まず Enter integer: と表示されるはずなのですが、それが表示されず、止まります。 そこで、整数として適当に20を入力してみると、 Enter integer: Number enterd: 20 と出力されました。 どうやら、必要な入力操作が終わってから、全ての出力操作が行われるようです。 その事を確認するために、先ほどのtest.cのmain関数を、以下のように変更し、数値を入力する場面を2箇所設けました。 ------------------------------------------------------------ int main(void) { int i=2; double d=0.1; printf("Enter integer: "); scanf("%d", &i); printf("Integer enterd: %d", i); printf("\n"); printf("Enter number: "); scanf("%lf", &d); printf("Number enterd: %f", d); } ------------------------------------------------------------ これをシェルモードで、gccを使ってビルドし、作成されたa.exeを実行すると、以下のようになりました。 [TERM=emacs] ------------------------------------------------------------ Kei-Lavie@Kei:~/C_Programs $ gcc test.c Kei-Lavie@Kei:~/C_Programs $ ./a.exe 20 0.123456789 Enter integer: Integer entered: 20 Enter number: Number entered: 0.123457 ------------------------------------------------------------ 作成された実行ファイルのa.exeを実行すると、まず Enter integer: と表示されるはずなのですが、それが表示されず、止まります。 そこで、整数として20を入力してみても止まったままです。 そして浮動小数点数として0.123456789を入力すると、 Enter integer: Integer entered: 20 Enter number: Number entered: 0.123457 と出力されました。 やはり、必要な全ての入力操作が終わってから、最後に全ての出力操作が行われるようです。 しかし、作成されたa.exeを、ktermといった端末上で実行すると、プログラムは以下のように適切に動作します。 [TERM=kterm] ------------------------------------------------------------ Kei@Kei-Lavie /cygdrive/c/Emacs_for_Windows/C_Programs $ ./a.exe Enter integer: 20 Integer entered: 20 Enter number: 0.123456789 Number entered: 0.123457 ------------------------------------------------------------ つまり、上記のように、作成されたプログラムが適切に動作しない問題は、Emacs端末に固有のもののようです。 上記のような問題を解決しようといろいろ試していると、kterm上で、a.exeの出力を、catやnkfといった出力コマンドにパイプすると、上記のような問題と同じ動作をしました。 具体的には以下の通りです。 [TERM=kterm] ------------------------------------------------------------ Kei@Kei-Lavie /cygdrive/c/Emacs_for_Windows/C_Programs $ ./a.exe |nkf 20 0.123456789 Enter integer: Integer entered: 20 Enter number: Number entered: 0.123457 ------------------------------------------------------------ 以上のような事から、どうやらEmacsのシェルモードでは、プログラムの出力を、catなどの出力コマンドにパイプしているのだと予想されます。 そこで、シェルモードの動作を決めると思われる、shell.el(あるいはshell.elc)やcomint.el(あるいはcomint.el)の内容を見てみたのですが、複雑すぎて、どの部分がEmacs端末上での出力に関与しているのかが分かりませんでした。 どうしてもEmacsのシェルモードを使って、C言語での開発を行いたいと思っていますので、 以上の件について、同じような経験をされた方、あるいは、何か解決策としてのご提案がある方は、是非、投稿をお願い致します。 自力では解決できそうにないので、どうか力をお貸しください。 よろしくお願い致します。