the ド田舎エンジニア

東京とは名ばかり 八王子市は尾崎 幸一朗(通称:サチロー)による気まぐれブログです

久しぶりの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");
  }
}

perlpythonはよっぽど楽

print "Hello world!"


構文の説明は後回しにして、
プリコンパイル
コンパイル
リンク
の説明。

どういう仕組みで動いているのかを理解する事が大切でして。
「#includeは、おまじない」なんて話も聞きますが、実にとんでもない。
そもそも「おまじない」レベルの無駄な構文はプログラムに書くべきではありません。

とは言え、一回で理解できたら中々のもの。


一先ず、一通りの構文を教えたところで課題を作ることに。


①以下の文字列を標準出力してください(標準出力)
 「hello world

②以下の整数、または文字を変数に格納し、格納結果を標準出力してください(代入)
 ・100
 ・a

③標準入力から得た値を標準出力してください(標準入力)

④1から100までの整数を全て加算した結果を標準出力してください(for)

⑤1から100までの整数のうち、7で割り切れる値のみ標準出力してください(if)

⑥下記を標準出力してください(for二重)
 ・・・・・
 ・・・・・
 ・・・・・


大学の講師になった気分です。
これの後は配列、文字列、ポインタの講義をします。

少し楽しくなってきました。(笑)