久しぶりのC言語
サチローです。
先日、客先へ伺ったところ、「新人にCを教えてやってくれまいか?」とまさかの依頼がありまして。
飲みの席での依頼だったため、冗談かと思えば、本気らしい。
十年近くもなる顔なじみからの依頼。
さすがに断り切れませんでした。
さて参った。教えるのは苦手。
特に全く知識がない方へとなると、どこから教えて良いかさっぱりわからん。
しかもJavaの経験があるらしい。
じゃあJavaやらしてあげてよ(笑)
と思ったが、殆ど無に等しいとのこと。
私が教わった通り、まずはCの歴史を教えることに。
※気になる方は、「デニス・リッチー」でググってください。
そしてまずはお決まりの「hello world」
#include <stdio.h> int main(void) { printf("hello world\n"); return 0; }
ついでにJavaだとこんな感じ(だった気がする)
public class Hoge { public static void Main(String[] args){ System.out.println("hello world"); } }
print "Hello world!"
構文の説明は後回しにして、
プリコンパイル
コンパイル
リンク
の説明。
どういう仕組みで動いているのかを理解する事が大切でして。
「#includeは、おまじない」なんて話も聞きますが、実にとんでもない。
そもそも「おまじない」レベルの無駄な構文はプログラムに書くべきではありません。
とは言え、一回で理解できたら中々のもの。
一先ず、一通りの構文を教えたところで課題を作ることに。
①以下の文字列を標準出力してください(標準出力)
「hello world」
②以下の整数、または文字を変数に格納し、格納結果を標準出力してください(代入)
・100
・a
③標準入力から得た値を標準出力してください(標準入力)
④1から100までの整数を全て加算した結果を標準出力してください(for)
⑤1から100までの整数のうち、7で割り切れる値のみ標準出力してください(if)
⑥下記を標準出力してください(for二重)
・・・・・
・・・・・
・・・・・
大学の講師になった気分です。
これの後は配列、文字列、ポインタの講義をします。
少し楽しくなってきました。(笑)