教えてください けいた 2004/12/08 02:41:32 ├この2つの問題は一体のもので,前半は後半の... 白石 和夫 2004/12/08 10:38:05 │└白石さん、こんにちは。 けいた 2004/12/08 11:05:58 └ヒント 山中和義 2004/12/08 13:52:55 └山中さん。アドバイスありがとうございます... けいた 2004/12/08 18:50:15 └先ほどのは2つ目のヒントですが、、、 山中和義 2004/12/08 19:20:29 ├あつ!! けいた 2004/12/08 20:37:36 └あ、あと!プログラム中に使用する名前の型... けいた 2004/12/08 20:58:17 └プログラム仕様書 山中和義 2004/12/09 09:26:19 └山中さん。こんにちは。 けいた 2004/12/09 11:03:17
教えてください けいた 2004/12/08 02:41:32 ツリーへ
教えてください |
返事を書く |
けいた 2004/12/08 02:41:32 | |
n個の値a[0]、a[1]・・・、a[n−1]が与えられているとき、 を与えるとa[ ]の順位rを求めるプログラムを書け。ただし、順位=(自分より大きいものの個数+1)である。 n個の値a[0]、a[1]・・・、a[n−1]が与えられているとき、配列a[ ]を大きさの順に並び替えた配列b[ ]を作り出すプログラムを書け。 この2つの問題がわかるかた。ご指導よろしくお願いします。 |
├この2つの問題は一体のもので,前半は後半の... 白石 和夫 2004/12/08 10:38:05 ツリーへ
Re: 教えてください |
返事を書く |
白石 和夫 2004/12/08 10:38:05 | |
この2つの問題は一体のもので,前半は後半のヒントでしょう。 前半は,素直に自分より大きい要素の個数を数えればよいのだと思います。 ここで,自力で解決しておかないと,この先が苦しくなることが必定です。がんばって考えてみてください。 |
│└白石さん、こんにちは。 けいた 2004/12/08 11:05:58 ツリーへ
Re: この2つの問題は一体のもので,前半は後半の... |
返事を書く |
けいた 2004/12/08 11:05:58 | |
白石さん、こんにちは。 返信ありがとうございます。 今日までにこの2問を解かないといけないんですよ。。。 もちろん、これからも勉強を続けていきます!! できれば教えていただけないでしょうか?? |
└ヒント 山中和義 2004/12/08 13:52:55 ツリーへ
Re: 教えてください |
返事を書く |
山中和義 2004/12/08 13:52:55 | |
ヒント 添え字は1からです。 DIM A(10),B(10) DATA 56,88,67,67,76,25,100,56,55,67 !元データで確認する !データを読込む FOR i=1 TO 10 READ A(i) NEXT i !順位を算出して、並べ替える FOR i=1 TO 10 !1番目から順に LET X = 1 !まず、1番とする LET XX = 0 !同位の数は0とする LET m = A(i) FOR J=1 TO 10 !他と比較して大きいのがあれば、 IF A(J)>m THEN LET X = X + 1 !順位を下げる IF A(J)=m THEN LET XX = XX + 1 !同位のものを数える NEXT J FOR J=1 TO XX !その順位の位置に設定する LET B(X+J-1) = m NEXT J NEXT i !並べ替えたデータを表示する FOR i=1 TO 10 PRINT B(i); NEXT i END |
└山中さん。アドバイスありがとうございます... けいた 2004/12/08 18:50:15 ツリーへ
Re: ヒント |
返事を書く |
けいた 2004/12/08 18:50:15 | |
山中さん。アドバイスありがとうございます! 今日中に解かないといけないので、頑張ってみます。 できれば、2つ目の問題もヒントをいただけないでしょうか?? 僕は文系の人間で大苦戦です。。 BASICプログラムの参考書は本当にすくないですね。 C言語がほとんどですよね・・・。 |
└先ほどのは2つ目のヒントですが、、、 山中和義 2004/12/08 19:20:29 ツリーへ
Re: 山中さん。アドバイスありがとうございます... |
返事を書く |
山中和義 2004/12/08 19:20:29 | |
先ほどのは2つ目のヒントですが、、、 これが1つ目(順位付け)で、B()に順位が入ります。 DIM A(10),B(10) DATA 56,88,67,67,76,25,100,56,55,67 !元データで確認する !データを読込む FOR i=1 TO 10 READ A(i) NEXT i !順位を算出する FOR i=1 TO 10 !1番目から順に LET X = 1 !まず、1番とする LET m = A(i) FOR J=1 TO 10 !他と比較して大きいのがあれば、 IF A(J)>m THEN LET X = X + 1 !順位を下げる NEXT J LET B(i) = X NEXT i !順位を表示する FOR i=1 TO 10 PRINT B(i); NEXT i END |
├あつ!! けいた 2004/12/08 20:37:36 ツリーへ
Re: 先ほどのは2つ目のヒントですが、、、 |
返事を書く |
けいた 2004/12/08 20:37:36 | |
あつ!! すいません。。 山中さん☆本当にありがとうございます!! 山中さんのアドバイスを元に頑張ってみます。 本当にありがとうございました。 |
└あ、あと!プログラム中に使用する名前の型... けいた 2004/12/08 20:58:17 ツリーへ
Re: 先ほどのは2つ目のヒントですが、、、 |
返事を書く |
けいた 2004/12/08 20:58:17 | |
あ、あと!プログラム中に使用する名前の型、属性、意味内容を明示し、用いたアルゴリズムを詳細に説明せよ。って言われてるのですが、どういうことなのでしょうか?? |
└プログラム仕様書 山中和義 2004/12/09 09:26:19 ツリーへ
Re: あ、あと!プログラム中に使用する名前の型... |
返事を書く |
山中和義 2004/12/09 09:26:19 | |
プログラム仕様書 プログラムを書く手順は、(おおざっぱですが) ・処理手順を考える(アルゴリズム) ・その手順をプログラム言語の置き換える(コーディング) 今回求められているのは、(順位の方だけ) 使用変数一覧 A(i) 配列整数 対象の数値 B(i) 配列整数 それに添え字が対応した順位が入る X 整数 順位。1は一番大きい。 m 整数 作業用 i 整数 カウンタ用(総当り)。対象数値の数。 J 整数 カウンタ用(総当り)。対象数値の数。 ※変数は整数だが、実数も可能。 処理手順(アルゴリズム) 1.対象数値を一列に並べる。(配列に代入する) 2.並んだ1番目から順に次の作業をする。(FOR i=1 TO 10) 2−1.まず、順位を「1番」とする。(LET X=1) 2−2.基準の数値を1つ決める。(LET m=A(i)) 2−3.この数値と残り(自分も含む)の数値を比較して、 残りの数値が大きければ順位を下げる。 (FOR J=1 TO 10〜NEXT Jの箇所) 3.確認のため印字する。 ヒント カードを一列に並べて、1つ選びます。 選んだカードと残りのカードを1つずつ比較していきます。 そのとき、自分より大きい数があればカウントしていきます。 そのカウント値が順位となります。 |
└山中さん。こんにちは。 けいた 2004/12/09 11:03:17 ツリーへ
Re: プログラム仕様書 |
返事を書く |
けいた 2004/12/09 11:03:17 | |
山中さん。こんにちは。 アドバイス本当にありがとうございます。 とても助かりました。 これからも、もっともっと勉強していきたいと思います。 |