質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

Q&A

解決済

5回答

6223閲覧

アルゴリズム トレースのやり方

kazu-.

総合スコア34

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

0グッド

0クリップ

投稿2018/10/20 12:18

イメージ説明
サイコロのアルゴリズムの問題を解いたのですが、トレースのやり方がわかりません。一番下にトレースっぽく書いたんですがわけわからなくなりました。この場合、どの様に検証すれば良いでしょうか?手書きで確認できるとレースのやり方でお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

ベストアンサー

自分で書いたコードのトレースとかやるの?

...シンプルに考えればいいじゃない。

  1. int count[6] を用意する (count[n-1]はサイコロの目:nが出た回数 n=1~6)
  2. count のナカミを全部0クリアする
  3. 以下を8回繰り返す:

 3.1 int dice に入力値を代入する
3.2 count[dice-1]を+1 する
4. countのナカミを出力する

...アドバイスするなら:
変数名にiとかjとか使うのやめな。使うなら必ずその脇に"この変数の意味"を書いておきな。
たとえば上記のように 「count[n-1]はサイコロの目:nが出た回数 n=1~6」みたいな。
理解できないのは、理解できない名前に原因の多くがあると思う。

投稿2018/10/20 13:58

編集2018/10/20 14:26
episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

紙に書かせるとは…時代が逆行して…ゲフンゲフン。
破り捨てる自信が…ゲフン。

検証しろと書かれていないのに、確認されてるのはいいことだと思います。
テストが不要か必要かといわれれば、あったほうがいいわけですから。

とはいえ、紙でテストも検証もしづらいと思います。
上から一行ずつ、変数の取りえる値を確認し齟齬が生まれないかを確認してください。

たとえば、i <= 8 とありますが、iは 0~8 の値を取りますよね?
0, 1, ..., 8 と、合計9回入力することになりそうです。
この点大丈夫でしょうか?

まずは、トレースより、そう言った確認から始めてみては。
あとは、実際に動かしてデバッグするのが普通かと。

デバッグ機能を使えるようになると幸せになれますので、プログラムを組むようになったらすぐに教えてもらってください。デバッグは、横について教えてもらうのが一番いいかと。媚びていきましょう。(先生、デバッグ機能はいの一番に教えるべきですよ…)

デバッグ機能では、一行一行プログラムを実行してゆくことができます。
その際、変数の値も見れますので幸せです。

投稿2018/10/20 12:54

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kazu-.

2018/10/20 13:23

初歩的な疑問なのですが、 I<8 は 0、1、2、3、4、5、6、7ですが I<=8になった場合、0、1、2、3、4、5、6、7、8とイコールだと8も含めまれるという事でしょうか?
退会済みユーザー

退会済みユーザー

2018/10/20 13:45

はい、その通りです。
guest

0

訓練せずに楽して社会に出るつもりですか?
大きなハンデを背負うことになりますが。

投稿2018/10/20 12:22

Zuishin

総合スコア28656

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kazu-.

2018/10/20 12:24

その訓練の仕方がわかりません。
Zuishin

2018/10/20 12:34

今までしたことないのですか?
kazu-.

2018/10/20 13:21

トレースの概念とかを理解できてないのでどれが訓練に値するのかがわからないです
episteme

2018/10/20 14:09

トレース:"処理の過程を追いかける" に概念もヘッタクレもなかろうに。
Zuishin

2018/10/20 14:36

授業はちゃんと聞きましょう。 教科書は飛ばさず丁寧に読みましょう。 予習復習をしましょう。 宿題は自分でしましょう。 とりあえずこれだけやってください。
guest

0

疑似コードのどの時点での値をトレースするかを意識してみてはいかがでしょうか。
その時のiとjの値がどうなっているかも書き出してみては。

投稿2018/10/20 12:28

mrkmyki

総合スコア325

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Zuishinさんに同意しますが、工夫してください。

流れを追うだけなのでそこまでの知識は必要ないはずです。(もちろんforとかの知識は必要だけど、科学とかの知識は普通は不要ですよね。)

アルゴリズムの学び方 っていうのもあるみたいです。

投稿2018/10/24 01:43

BeatStar

総合スコア4958

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問