LoginSignup
1
1

More than 5 years have passed since last update.

目下悩み中(2014/7/29)

Last updated at Posted at 2014-07-28

プログラミングはどれから学ぶのが良いか?

 この間、学校での三者面談において、担任の教師に、「プログラミングやるなら、まずはPascalがいい」というお言葉を頂いた。なんでもPascalというのは、構成が厳格であることから、かつての教育にも使われたというプログラミング言語なのだという。まあ、情報工学専攻であった先生が言うのならそうなのだろう……と思い、早速Pascalについて調べてみた。
 しかし、先程Pascalはかつての教育にも使われたと述べたように、現在はそれほど使われていないらしい。ネット検索でも調べてみたが、ネットで得られる情報はといえば、精々が基本的な文法、変数の宣言、簡単な入出力、繰り返しとif文などだった。これでは、Excelでできたことと、だいたい同じではないだろうか? いや、この姿勢が単なる甘えであることはわかっているのだが、……? これで……他の言語の土台になるのだろうか……?

 一応書いてはみたのだが。

Pascal,入力された三辺の長さから三角形の種類を判断する
program triangle;

var side : array [1 .. 3] of integer;
    parent child temp tri dic : integer;
    sidename : array [1 .. 3] of string;
    result : string;

begin

    sidename[1] := '辺A';
    sidename[2] := '辺B';
    sidename[3] := '辺C';

    writeln('プログラム名:triangle');
    writeln('このプログラムでは、入力された辺の長さを元に、三角形の種類を求めます。');
    writeln('三角形の三辺の長さを入力してください。なお、値は整数とします。');

    repeat

        write(sidename[parent + 1],'の長さは? '); readln(side[parent + 1]);

        if side[parent + 1] <= 0
            then parent = parent + 1;
            else writeln(sidename[parent + 1],'の値が不適切です。1以上の整数の値を入力してください。');
/*整数型に整数値以外の値を入力するとおかしなことになるらしいのだが、その対処法やいかに。というより、このコメントの書き方ホントはC言語のやつでござる。Pascalの{}は多分Qiitaには対応してなかったでござる。どんだけ古典言語でござるか。*/

    until parent := 3;

    for parent := 1 to 3 do
        writeln(sidename[parent],'の長さ:',side[parent]);

    for parent := 3 downto 2 do
        for child := 1 to parent - 1 do
            if side[parent] < side[child] then
            begin

                temp := side[parent];
                side[parent] := side[child];
                side[child] := temp;

            end;

    temp := side[3] * side[3];
    tri := 0;

    if temp = side[1] * side[1] + side[2] * side[2]
        then result := result + sidename[3] + 'を直角とする直角';
        else tri := tri + 1;

    for parent := 3 downto 2 do
        for child := 1 to parent - 1 do
            if side[parent] = side[child]
                then result := result + '二等辺';
                else dic := dic + 1;

    if dic = 3
        then tri := tri + 1;

    if side[1] = side[2] and side[1] = side[3]
        then result := result + '正';
        else tri := tri + 1;

    if tri = 3
        then result := result + '直角三角形でも二等辺三角形でも正三角形でもない、ただの'

    result := result + '三角形';

    writeln('求める三角形は、',result,'です。');
    writeln('プログラムを終了します。')

end.

 やはりコレは、Excelでもできるのではないだろうか……。
 いや、もう少し頑張ってみよう……。絶対にPascalでなければならないということは無い。それか、大人しく関連書籍を買うか。
 甘え根性が見え隠れ。本当にやる気はあるのか。

 あ、おすすめのC言語の書籍など、あれば教えていただければ幸いです。

1
1
1

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
1
1