0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PL/I 練習問題

Posted at

問題4:最大値と最小値の算出
目的:配列、ループ、比較の応用
内容: 複数の数値を入力し、最大値と最小値を求めて表示する。

回答
TEST: PROCEDURE OPTIONS(MAIN);
DECLARE N(10) FIXED;
DECLARE I FIXED;
DECLARE MAX FIXED;
DECLARE MIN FIXED;

PUT SKIP LIST('10個の整数を入力してください:');
DO I = 1 TO 10;
  GET LIST(N(I));
END;

MAX = N(1);
MIN = N(1);

DO I = 2 TO 10;
  IF N(I) > MAX THEN MAX = N(I);
  IF N(I) < MIN THEN MIN = N(I);
END;

PUT SKIP LIST('最大値:', MAX);
PUT SKIP LIST('最小値:', MIN);
END TEST;

問題5:簡単な家計簿の作成
目的:構造体の使い方の練習
内容: 支出の内容(日付・金額)を構造体で保持し、1週間分の合計・平均を表示する。

回答
TEST: PROCEDURE OPTIONS(MAIN);
DECLARE 1 EXPENSE(7),
          2 DAY CHAR(10),
          2 AMOUNT FIXED DEC(7,2);

DECLARE I FIXED;
DECLARE TOTAL FIXED DEC(7,2) INIT(0);
DECLARE AVERAGE FIXED DEC(7,2);

DO I = 1 TO 7;
  PUT SKIP LIST('日付と金額を入力してください (例: Mon 1234.56)');
  GET LIST(EXPENSE(I).DAY, EXPENSE(I).AMOUNT);
  TOTAL = TOTAL + EXPENSE(I).AMOUNT;
END;

AVERAGE = TOTAL / 7;

PUT SKIP LIST('合計:', TOTAL);
PUT SKIP LIST('平均:', AVERAGE);
END TEST;

問題6:九九表の出力
目的:入れ子ループの理解
内容: 九九(1~9の掛け算)の表を出力するプログラムを作成する。

回答
TEST: PROCEDURE OPTIONS(MAIN);
DECLARE I, J FIXED;

DO I = 1 TO 9;
  DO J = 1 TO 9;
    PUT EDIT(I, '*', J, '=', I*J) (F(2), A(1), F(2), A(1), F(3));
    PUT SKIP;
  END;
  PUT SKIP;
END;
END TEST;
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?