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

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

新規登録して質問してみよう
ただいま回答率
85.35%
ソート

複数のデータを、順序性に従って並べ替えること。 データ処理を行う際に頻繁に用いられ、多くのアルゴリズムが存在します。速度、容量、複雑さなどに違いがあり、高速性に特化したものにクイックソートがあります。

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

COBOL

COBOL(COmmon Business Oriented Langage)は、実務処理用に開発されたプログラミング言語です。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

1回答

5298閲覧

COBOLの配列の中身をソート、昇順

sosowatabo

総合スコア17

ソート

複数のデータを、順序性に従って並べ替えること。 データ処理を行う際に頻繁に用いられ、多くのアルゴリズムが存在します。速度、容量、複雑さなどに違いがあり、高速性に特化したものにクイックソートがあります。

ループ

ループとは、プログラミングにおいて、条件に合致している間、複数回繰り返し実行される箇所や、その制御構造を指します

COBOL

COBOL(COmmon Business Oriented Langage)は、実務処理用に開発されたプログラミング言語です。

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2020/06/13 19:43

COBOLでキーボードから10件分の整数を入力し配列に格納。
格納した配列の値を昇順になるように格納し、内容を表示するプログラムを組みたいです。

コードはこちらですがうまく入れ替わってくれません。どこが良くないでしょうか?

COBOL

1WORKING-STORAGE SECTION. 2000290* 3000300 01 WK-TBL. 4 05 in-number pic 9(2) occurs 10. 5 6 01 soeji pic 9(2). 7 01 soeji2 pic 9(2). 8 01 taihi pic 9(2). 9 10000340****************************************************************** 11000350* 手続き部 12000360****************************************************************** 13000370 PROCEDURE DIVISION. 14000430* 15000560 HAIRETU-KAKUNOU section. 16 17 SYOKIKA. 18 MOVE 1 TO soeji. 19 20 21 NYUURYOKU. 22 PERFORM UNTIL soeji > 10 23 display "数値を入力してください" 24 25 accept in-number(soeji) 26 27 compute soeji = soeji + 1 28 end-perform. 29 30 31 SORTSYORI. 32 move 1 to soeji. 33 move 2 to soeji2. 34 perform until soeji > 10 35 perform until soeji2 > 10 36 if in-number(soeji) > in-number(soeji2) 37 move in-number(soeji) to taihi 38 move in-number(soeji2) to in-number(soeji) 39 move taihi to in-number(soeji2) 40 end-if 41 compute soeji2 = soeji2 + 1 42 end-perform 43 compute soeji = soeji + 1 44 end-perform. 45 46 SYUTURYOKU. 47 move 1 to soeji. 48 perform until soeji > 10 49 display in-number(soeji) 50 51 compute soeji = soeji + 1 52 end-perform. 53 54 stop run. 55

よろしくお願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

質問に、お使いのCOBOLの正式名やバージョンは明記されている方が適切なコメントが付き易いです。

PERFORM ... VARYING ... AFTER ... が使えるともっとシンプルにコードを書けます。古いものでは使えない処理系もあるけど。
PERFORM はセクション名かパラグラフ名を指定して、外のセクション名かパラグラフ名を呼び出す形で記述しないといけない処理系のあったかと。

配列を昇順に並べるのですから、

if in-number(soeji) > in-number(soeji2)

だと降順になるのでは?

他のメンバーから年寄りだと思われないのように、ローマ字表はヘボン式を使われては?それで損をする人が多いです。

投稿2020/06/13 23:58

編集2020/06/14 00:13
Orlofsky

総合スコア16417

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問