解決済み: 回文

最終更新: 09/21/2023

回文 「後ろから読んでも前から読んでも同じである数字、単語、文、またはシーケンスを表すために、数学、言語学、コンピューターサイエンスなどのさまざまな分野で使用される用語です。」 ミラー対称性のこの魅力的な特性は、アルゴリズムの設計とコーディングにおいて刺激的な課題とシナリオを提供します。

COBOL (Common Business-Oriented Language) は、1950 年代以来ビジネスおよび金融関連のソフトウェア開発に広く使用されている業界グレードのプログラミング言語です。 COBOL でよく解決される古典的な問題の XNUMX つは、文字列が回文であるかどうかを判断することです。

識別部門。
プログラムID。 回文。
データ部門。
作業用保管セクション。
01 STRING-1 PIC A(20) 値「レーダー」。
01 STRING-2 は STRING-1 を再定義します。
01 I PIC 9 COMP-3 値 1。
01 J PIC 9 COMP-3 値 20。
手続き課。
回文チェック。
I > J まで実行
IF STRING-1(I:1) NOT = STRING-2(J:1) THEN
「回文ではありません」を表示
ストップラン
終了-IF
Iに1を追加
Jから1を引く
終了パフォーマンス。
「回文」を表示します。
ストップラン。
プログラム回文を終了します。

COBOLコードを理解する

この COBOL プログラムは、 回文は、文字列の最初と最後の文字を比較し、次に内側に移動して、他のすべての対応する文字のペアを比較することによって動作します。 一致しない文字のペアが見つかった場合、その文字列は回文ではないと判断し、プログラムを終了します。 ただし、比較された文字のすべてのペアが一致する場合、プログラムは文字列が回文であると結論付けます。

ライブラリと関数の関与

COBOL は、多くの最新のプログラミング言語とは異なり、追加のライブラリや特殊な関数を広範囲に使用しません。 その威力は、その単純な構文と強力な組み込みの操作とコマンドによってもたらされます。 この場合、基本的な算術演算 (加算、減算) と比較関数 (IF NOT =)、およびループ構造 (PERFORM UNTIL) がプログラムのロジックを定義します。

同様の問題

回文文字列のチェックに似た問題がいくつかあります。 回文文字列問題に似た問題には、逆引き数問題、アナグラム問題、回文問題などがあります。

要約すると、COBOL で回文問題を解決するには、文字列を両端からたどるインテリジェントなループを作成する必要があります。 COBOL は現在の開発環境ではそれほど流行っていないかもしれませんが、その影響力と使用例、そしてもちろん今回のようなタスクを処理する能力は、多くの企業環境で依然として強力です。 単純な回文文字列問題でさえ、パンチカード コンピューティングの時代に生まれたこの言語の時代を超越した魅力を明らかにしています。

関連記事: