« 長めの出張終了、頭がボーッとする中でのつぶやき | トップページ | ボールペンの先が詰まって書けなくなる原因、上向き書き、新聞紙・レシートの繊維・薬剤&絶不調13km »

超初心者によるC言語入門3~情報系学科の大学生が1年生向けに作った学習アプリ『Study-C』で復習

また、ずいぶん時間が空いてしまった (^^ゞ 1本目の記事を書いたのが、20年10月24日。2本目の記事は21年1月12日。それからの9ヶ月間、C言語も含めて、プログラミングにはほとんど触れてない。先月、数学の未解決問題「コラッツ予想」の記事を書いた時、BASICにちょっとだけ触れた程度。

    

どうも、イップスというか、身体と心が固まって動かなくなってしまうのだ。数学や文系の話なら、難しくても拒否反応はあんまし無いから、やっぱりプログラミング独特の性質が壁になってる。

   

今回、久々に高校の情報の教科書を開いたものの、無味乾燥でシンプルな記述を読む気がしなかったので、App Storeを拝見。「C言語」で検索すると、トップに表示されたのが、「Study-C」という学習サポートアプリ。iOS専用なのか、AndroidスマホでPlay Storeを探すと出て来なかった。

      

211016a

   

サイズも軽くて、評価も高いけど、これは確か去年、インストールしてすぐ使わなくなった覚えがある。別のサイトのpaizaを実行環境にすることを勧めてたから、そっちに移って、このアプリは放置プレイになってた。

   

今日、あらためて最初からマジメに見て行くと、なかなか親切でフレンドリーで読みやすい(個人の感想♪)。大学院生が作ったのかな・・と思ってたら、情報系の学科の大学生だった(2年前?の当初は)。しかも、同じ情報系の大学1年生をターゲットにしてるとのこと。

       

単なる超初心者にはどうかと思ったけど、今のところは大丈夫。このまま一気にラストまで行きたいけど、今まで続いた試しはない♪ 高校の教科書もまだ序盤だし、昔、別の教科書でBASICをやってた時も、惜しい所で挫折してしまった。教科書が行方不明になったのだ♪ まあ、その程度の扱いということか。。

  

  

     ☆     ☆     ☆

211016b

  

上が最初の目次の画面。はじめに、始めよう!C言語、C言語ドリル、コラム。まん中の2章が中心的内容。ただ、超初心者にとっては、下のような実行環境の話に好感を抱いた。

       

211016c

    

プログラムの実行環境を作る、環境構築が、わかりづらく面倒臭い。まさに、その通り! あるあるで、私も何度も書いて来た。他の言語でも、そのスタート地点でいきなり躓いて来た。しかし、この製作者が挫折したのは中学生の時。さすがに早い。私だと、数学と将棋とテレビアニメにハマってた頃か。ランニングもたまに1人でやってた。

    

ちなみに、この製作者が勧めてた環境は、EasyIDEC。検索するとメジャーらしいけど、逆に批判の言葉もあちこちに出て来た。今でも更新し続けてるみたいだし、いずれ使ってみようと思う。最初の紹介を読んだ限りだと、ちょっとクセがあるようだ。まあ、マニアック・ブロガーの私が言うのも何だけど♪

   

    

      ☆     ☆     ☆

211016d

   

で、第2章(または第2部)の、始めよう!C言語。最初はおなじみの「Hello World!」。キー入力ではなく、単なる並べ替え問題なのに、いきなり私は失敗。コンパイラ・エラーが表示されてしまった。

        

211016e

    

Hello Worldをくるむ二重引用符の中に「\n」を入れるのに、右外に出してしまったのだ。ホント、コンピューターは融通が利かないね♪ そもそも、この改行の \n。意味も必要性も分かりにくいし(特に最後の\n)、逆スラッシュが入力できないこともあるのでイラついてしまう。

          

211016f

   

言い訳やボヤキはともかく、やり直して、「正解です!!」。アプリは教科書と違って、正解だと言ってくれるから嬉しい。誉め言葉が付いてると、もっと嬉しくなる♪ 大人になると、褒められる機会が滅多にないもんで。

   

   

     ☆     ☆     ☆ 

続いて、足し算の答を表示するプログラム。まだまだ、完全な復習の話に過ぎないけど、完全に忘れてる♪ ちなみに冒頭の「printf.c」というのは、C言語で書いた、printf(表示機能)のソースプログラムという意味らしい。

   

と言っても、ソースプログラムというものがまたモヤモヤしてしまうけど。以下のプログラム画面を表示するためのプログラムという意味かな? C++(シー・プラプラ)のものだと、右端の拡張子の部分にppが付いて、printf.cpp とかになるようだ。

    

211016g

    

この「%d」も好きになれないし、記述子とか、フォーマット指定子という特殊な用語も苦手 (^^ゞ それならむしろ、英単語の decimal (10進数)の方がスッと受け入れられる。

       

211016h

   

printf("%d,%d\n", 3+4, 5);  このプログラムの実行結果を答えよ。これは、7,5 だろう。直感的に♪ いや、本のアイコンを押すと、解説に戻ることも可能。

    

211016i

  

Hello\n と改行して、printf("World!!\n"); と下に書き足すと、HelloとWorldが2行で表示されると。ちゃんと6行目に、「//最後に\nを付けてね」とヒントを挿入してくれてる♪

    

211016j

    

  

     ☆     ☆     ☆

そして、いよいよ変数の登場。

    

211016k

   

整数型のaという名前の変数を宣言せよ。定義とか導入ではなく、宣言ね♪ 選択パネルが下にあるから、int a; と並べ替えるだけ。その下の a=1; は働かず。int は、整数を表す英単語 integer の略語。日本語で「整」と入力するプログラミング言語は無いのかね?

       

211016l

   

画面に4と表示させるプログラムを完成させよ。 int a; の次の6行目に、a=4; と入力するだけ。この右端にいちいち付けるセミコロンも、省略するプログラムは無いのかね?

       

211016m

  

上は、変数の宣言と、数値の代入を同時に4つ行ったプログラム。a=1, b=2, c=3, dの4つを導入して、さらに result (計算結果)も宣言。最後に、d=b; と定義・・ではなく代入して、result = a + b + c + d; の表示。1+2+3+2 だから result=8と表示される。

   

一応、上のプログラムだけ、paizaで自分で入力。確かに正しく出力された。

  

211016o

   

   

      ☆     ☆     ☆

211016n

   

早くも最後に、いきなり整数の計算式で、result = 6/2*(1+2) 。これはウチでも前に記事にした気がする、有名問題。6÷2(1+2)=6÷6=1と答えるのが、典型的な誤答だけど、式そのものがおかしいという異論もある。6÷2(1+2) という式の書き方は見ないから。

     

このプログラムでは、アスタリスクを入れて 2*(1+2) としてあるから、6÷2×(1+2) という計算。答(出力結果)は9。

   

あぁ、こんな初歩的レベルでもう時間切れになってしまった (^^ゞ 次はもう来年か♪ いや、今月中にまたプログラミング記事を書きたいと思う。こんな所で手間取ってるようでは時代に取り残されてしまうのだ。ではまた。。☆彡

     

       (計 2706字)

| |

« 長めの出張終了、頭がボーッとする中でのつぶやき | トップページ | ボールペンの先が詰まって書けなくなる原因、上向き書き、新聞紙・レシートの繊維・薬剤&絶不調13km »

プログラミング」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« 長めの出張終了、頭がボーッとする中でのつぶやき | トップページ | ボールペンの先が詰まって書けなくなる原因、上向き書き、新聞紙・レシートの繊維・薬剤&絶不調13km »