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

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

新規登録して質問してみよう
ただいま回答率
85.50%
基本情報技術者

基本情報技術者とは、経済産業省が行う国家資格「情報処理技術者試験」の区分の一つです。試験ではプログラマーやシステムエンジニアなどIT業界で働くために必要とされる基礎知識や情報処理において論理的な考え方ができるか等が問われ、企業から高い評価を獲ることができ、IT業界の入門的な資格として人気があります。

Q&A

4回答

4625閲覧

【配列アルゴリズム】フロー図

ai5

総合スコア40

基本情報技術者

基本情報技術者とは、経済産業省が行う国家資格「情報処理技術者試験」の区分の一つです。試験ではプログラマーやシステムエンジニアなどIT業界で働くために必要とされる基礎知識や情報処理において論理的な考え方ができるか等が問われ、企業から高い評価を獲ることができ、IT業界の入門的な資格として人気があります。

0グッド

0クリップ

投稿2017/04/10 06:03

編集2022/01/12 10:55
基本情報技術者

今までの質問はご回答させて頂き、解決に至ったものはベストアンサーなどもつけさせていただきました。

次の問題がわかりません。問題集ではないので詳細わかりません。。。

配列Aに格納された内容を逆順にした配列Bを求めるフローチャートを
作成しなさい。
※ループを使用すること
※回は回数

![イメイメージ説明

私のフロー画像切れてて申し訳ございません。

自分なりに書いてみたのですが、
これは小さい並びを逆転して大きい並びにしたものです。

ですが、今回の問題は文字列になっているため、どうフロー図を書いたら良いのかまったくわかりません。参考書にもネットにも調べてもアルゴリズムフローで見つかりません。。。。

まことにお手数ですが、できれば書いたフロー図を画像で載せて頂けたら幸いです。

イメージ説明
イメージ説明

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

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

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

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

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

guest

回答4

0

例えば10個の箱があって、その中身を入れ替えるということを考えてみましょう。
0. 1個目と10個目の中身を入れ替える
0. 2個目と9個目の中身を入れ替える
0. 3個目と8個目の中身を入れ替える
0. 4個目と7個目の中身を入れ替える
0. 5個目と6個目の中身を入れ替える

手順にするとこれだけですね。
「ループを使用すること」とあるので、ループ内は共通の処理を行うことになります。
手順を見てわかる通り、各行の処理内容はほぼ同じなので、各行がループ内に入れば良さそうです。
つまり以下のように書き換えられます。
0. ループ開始(箱の数/2回回す)
0. n個目とm個目の中身を入れ替える
0. ループ終了

あとは箱の位置を指すnとmの定義を加えてあげれば完成です。

  1. nに1を代入
  2. mに箱の数を代入
  3. ループ開始(箱の数/2回回す)
  4. n個目とm個目の中身を入れ替える
  5. nを+1する
  6. mを-1する
  7. ループ終了

投稿2017/04/10 06:51

ttyp03

総合スコア16996

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

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

0

1からカウントアップする変数と
5からカウントダウンする変数の
2つが必要と考えるとどうでしょうか。

カウントアップはインクリメント、
カウントダウンはデクリメントと言います。

ちなみに一般的なプログラミング言語では
reverse()みたいな関数があったりします。

投稿2017/04/10 06:31

szk.

総合スコア1400

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

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

0

配列A[0~n]の要素を、配列B に入れる。
このとき、
配列B[0] ← 配列A[n]
配列B[1] ← 配列A[n-1]
配列B[2] ← 配列A[n-2]
...
配列B[n-1] ← 配列A[1]
配列B[n] ← 配列A[0] となるように入れる。

で合っていますよね。
この配列B側の添え字(x)をループで回したとき、対応する配列Aの添え字をxとnを使って表現できるかどうか、考えてみてください。

それにたどり着ければ、図は簡単に書けますよ。

投稿2017/04/10 06:12

編集2017/04/10 06:13
tacsheaven

総合スコア13703

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

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

ai5

2017/04/11 08:26

皆様ありがとうございました。もう少しじっくり考えてみます。
tacsheaven

2017/04/11 08:39

ヒント: n = n-0 1 = n - (n-1) 0 = n - n
guest

0

問題を勘違いしてません?
逆順は、今の並びの順番をまるっきり逆にすると言うことです。
大きい方から小さい方に並べるのは降順です。

投稿2017/04/10 09:17

swordone

総合スコア20649

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問