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

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

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

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

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Q&A

3回答

6328閲覧

フローチャートの書き方 順位付け

Etrnity_kiss

総合スコア12

アルゴリズム

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

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

0グッド

0クリップ

投稿2019/04/11 14:36

プログラミング始めてまだ間もないです。
プログラミングの基礎として独学でフローチャートを作成しています。
下記の問題が全くわかりません。

10個の要素からなる配列buf[]には、任意の正または負の整数が入っています。
配列buf[]に入っている数値の順番に見ていきます。
その数値が配列buf[]の全要素と比較して下から数えて何番目になるかを求めて、配列ans[]の同じ位置に書き込むフローチャートを作成するのですが。

条件としては、
buf[]に入っている数値が負まては、100以上のものに関しては対応するans[]には0を設定し、比較対象にもしない。

使用変数
buf[] 配列 大きさは10
ans[] 配列 大きさは 10

例えば、5は他の数値と比較し2番目に小さい
buf[]に
[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
5 9 -3 11 94 32 105 54 3 11

だと、
ans[]
[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
2 3 0 4 8 6 0 7 1 4

のようになるようにフローチャートを作成したいです。
配列などの、基本のフローチャートはかけたのですが、応用として解き始めたら訳が分からなくなりました。

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

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

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

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

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

dodox86

2019/04/11 16:07

先のご質問にも言えますが、フローチャートの書き方が分からないのが問題ですか。それとも(プログラミング言語は置いておいて)手順自体が思いつかないのでしょうか。フローチャートは単なる表現技法です。手順が思いつかなければ書けません。
episteme

2019/04/11 20:52 編集

「手順自体が思いつかない」を「フローチャートの書き方が分からない」と表現しているのかな? フローチャートは□と◇が書ければいいんだから。
Etrnity_kiss

2019/04/11 21:20

手順自体をどう書くのかが思いつかなく書き方がわからないと表現してしまいました。
KojiDoi

2019/04/12 07:43

これでは見ている人は貴方がどの段階でつまずいているのかが分かりませんから、アドバイスの出しようがありません。「うまくかけた基本のフローチャート」と「応用として解き始めて行き詰まったフローチャート」を見せてください。
swordone

2019/04/13 03:04

ansの2と6の両方に0が入ってるのはどういうこと?
guest

回答3

0

いきなりコマケー手順を考えて失敗してると見た。
大きな箱で"ざっくりフローチャート"を描き、しかるのち大きな箱を小さく分割しなさい。

※ ↑フローチャート描かずとも"箇条書き"でおっけ。

投稿2019/04/13 00:31

編集2019/04/13 00:32
episteme

総合スコア16614

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

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

0

「フローチャートの書き方」と題した質問が2つ出ていますが、フローチャートは考えた処理論理を図示するものです。
あなたに今必要なのはフローチャートの書き方というより、処理論理の立て方でしょう。
コンピューターの利点は、処理論理を教えてやれば、教えられた通り、実直に動きます。
間違えた処理論理を教えれば、教えたとおりに間違えます。

プログラミングの第一歩がこの処理論理を考えることであり、その表現方法のひとつがフローチャートなのです。

処理論理が分からないから教えてというのではプログラミングの勉強が進みません。
どうやれば問題の回答が得られるか、自分で考えて表現してみてください。
コンピューターを使わず、自分でやるのならばどうしますか?
10個しか要素がないので自力でできるでしょう。それを表現してみてください。

(1) やらなければならないことをいくつか挙げる。
(2) 列挙したものを、どういう手順でやらなければならないかを考える。
(3) 他にやらなければならないものがあれば追加する。
(4) 追加したら(2)へ戻る。

これが処理論理を考える処理論理です。

10個しかなければ自力でできても、1万個あれば自力では無理です。でもコンピューターは飽きることがありませんから「1万個の要素を処理しろ」と指示したら1万個の要素を処理します。そのためにプログラムを作るのです。

頑張って処理論理を考えてください。

投稿2019/04/30 12:00

sage

総合スコア1216

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

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

0

変数の定義

  • bufの添字は必要ですね?
  • ansの添字は必要ですね? bufの添字とansの添字は兼用できますか?
  • 順位を数える変数や添字は必要ですか?
  • これ以外に変数は必要でしょうか?

手順

  • bufの要素はすべて調べる必要がありますか?
  • bufのある要素について、bufのその他の要素をすべて調べなければ順位が決められませんか?

順位を調べるために添字を動かしたり変数を更新するにはどうしますか?
負の数を除外するのはどうしますか?

構造化プログラミングの原則

  • 連接
  • 選択
  • 反復

フローチャート作成に必要な原則を思い出してください。

フローチャートがすらすら書けるならプログラミングも容易です。
そうでないなら努力しましょう。フローチャート演習の本がたくさん出ています。
情報処理技術者試験にも出題されますよ。

入門以前のお話
『教養としてのプログラミング的思考』 草野俊彦 サイエンスアイ新書
カレーの作り方が載っています。生徒、先生のどちらにも参考になると思います。
図書館で借りられるなら読んでみてください。

投稿2019/04/11 23:08

編集2019/04/12 23:47
xebme

総合スコア1081

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問