$30 off During Our Annual Pro Sale. View Details »

Lesson 2: C言語に触れてみる

Lesson 2: C言語に触れてみる

友達と仲良くプログラミングを学ぼう企画 その2

今回はプログラミング言語とはなにかや、プログラミングの流れを確認した上で実際にC言語を用いたプログラミングをした。挙動のないプログラムをまず作成した後に、”Hello World!”を画面に表示させた。

CC BY 4.0 -「C言語に触れてみる」 by OldBigBuddha 2019.

Big Buddha

April 11, 2019
Tweet

More Decks by Big Buddha

Other Decks in Technology

Transcript

  1. C言語に触れてみる
    Lesson 2

    View Slide

  2. 前回忘れてた OS から

    View Slide

  3. - Windows とか MacOS とか iOS とか Android とか
    - 五大装置それぞれをいい感じに動かしてくれる
    - 機械の方言を吸収してくれる
    - 開発者に便利な命令群を提供してくれる
    - 利用者に色々便利機能を提供する(保護者向けの制限とか)
    Operating System(通称: OS)

    View Slide

  4. 「プログラミング言語」
    ってなんぞ?

    View Slide

  5. 「プログラム」

    一連の命令群
    Lesson 1より

    View Slide

  6. 「プログラミング言語」

    命令を書くための言語

    View Slide

  7. プログラミングの流れ

    View Slide

  8. 1: コンピュータに
    やらせたいことを考える

    View Slide

  9. 2: やらせたいことを
    プログラミング言語
    が持つ命令単位で
    細分化する

    View Slide

  10. 3: ソースコードを書く

    View Slide

  11. 4: 動かす

    View Slide

  12. 5: 動けば完成
    エラーが出たら書き直す
    以下、無限ループ

    View Slide

  13. C言語

    View Slide

  14. - 1970年代にアメリカで生まれた(古め)
    - 最近の有名言語はある程度文法が似ている
    - 最近の言語と比べると良くも悪くも素直
    - プログラマが書かなくてはいけない処理が多い
    - まともに使いこなすにはハード面の知識も必要
    C言語

    View Slide

  15. では、コーディング

    View Slide

  16. Paiza.IO を開く - https:/
    /paiza.io/ja/
    クリック

    View Slide

  17. C言語にして、全部削除
    「C」を
    選択
    全部消す

    View Slide

  18. 何もない状態はエラーが出る
    エラーやと怒られる
    雑訳: `main` が見当たらへんぞ

    View Slide

  19. とりあえず動く最低限のコード

    View Slide

  20. 何もない!(エラーがない)
    Success と出れば OK

    View Slide

  21. 文字を表示させる

    View Slide

  22. “Hello World!”と表示させてみる

    View Slide

  23. できた!

    View Slide

  24. 何が起こった?
    差分はここ
    差分: 前と比べたときの違い

    View Slide

  25. puts(“Hello World!”);

    View Slide

  26. ぷっとえす
    int puts( const char *str );
    ヌル終端文字列 str のすべての文字と追加の改
    行文字 '\n' 1個を、出力ストリーム stdout に書
    き込みます。str の終端のヌル文字は書き込ま
    れません。
    From puts - cppreference.com - https:/
    /ja.cppreference.com/w/c/io/puts

    View Slide

  27. What's?

    View Slide

  28. ザクっと言い換え(語弊あり)
    puts(”ここだお”);
    ""に囲まれた文字を
    画面に表示する!

    View Slide

  29. 一行追加する
    の部分には自分の名前を入れよう!

    View Slide

  30. 一行追加する
    追加はここ
    の部分には自分の名前を入れよう!

    View Slide

  31. できた!

    View Slide

  32. ところで…

    View Slide

  33. 改行文字
    二行ある

    View Slide

  34. ぷっとえす
    int puts( const char *str );
    ヌル終端文字列 str のすべての文字と追加の
    改行文字 '\n' 1個を、出力ストリーム
    stdout に書き込みます。str の終端のヌル文字
    は書き込まれません。
    From puts - cppreference.com - https:/
    /ja.cppreference.com/w/c/io/puts

    View Slide

  35. いや、当たり前ですやん
    二行書い
    てるもん

    View Slide

  36. 実験
    puts を printf に変更

    View Slide

  37. 改行されてへん!?

    View Slide

  38. さらに…
    \n(¥n) を追加

    View Slide

  39. ちゃんと改行されてる!

    View Slide

  40. “追加の改行文字 '\n'”
    完 全 理 解
    (他の文の意味はのちのち)

    View Slide

  41. #include

    View Slide

  42. 消してみる
    消した→

    View Slide

  43. 大人の事情で動く

    View Slide

  44. 手元(GCC 7.3.0)で試すと怒られる
    雑訳: `puts` 使いたいのはわかるけど、
       宣言があらへんからよろしくないぞ。
    ”warning: implicit declaration of function ‘puts’”

    View Slide

  45. 結局何?

    View Slide

  46. Computer の特徴
    - 電気がないと動かない
    - 全ては 0 と 1(デジタル)
    - Computer が理解できる
    命令は少ない
    - 曖昧さの余地がない
    Lesson 1より

    View Slide

  47. コンピュータ自身は
    “""に囲まれた文字を画面に表示する”
    命令なんて知らない

    View Slide

  48. #include の役割
    プログラマがよく使うであろう機能を
    ええ感じにまとめたやつ(語弊あり)
    → stdio.h
    そいつを取り込む(includeする)よ
    というのを伝える
    → #include <>
    ※すでに準備されてるのは
    <>で、誰かが別途誰か用に
    作ったやつは""で括る

    View Slide

  49. すたんだーど いんぷっと あんど あうとぷっと
    stdio は Standard Input and Output の略
    日本語に訳すと「標準入出力」
    標準入力・標準出力
    設定無しで使えるデータの入り口 or 出口
    設定無しはちょっと語弊があって、ソフトウェア利用者が準備しなくてはいけない
    ゲームするのにゲーム機本体とコントローラーとモニタを準備しなくてはいけない感じ
    ソフトウェアの世界で言う入出力は、モニタやマウスのような物理的なものじゃなくて、ファイル
    とかも指す、てかそっちがメイン

    View Slide

  50. おさらい

    View Slide

  51. - Windows とか MacOS とか iOS とか Android とか
    - 五大装置それぞれをいい感じに動かしてくれる
    - 機械の方言を吸収してくれる
    - 開発者に便利な命令群を提供してくれる
    - 利用者に色々便利機能を提供する(保護者向けの制限とか)
    Operating System(通称: OS)

    View Slide

  52. - 1970年代にアメリカで生まれた(古め)
    - 最近の有名言語はある程度文法が似ている
    - 最近の言語と比べると良くも悪くも素直
    - プログラマが書かなくてはいけない処理が多い
    - まともに使いこなすにはハード面の知識も必要
    C言語

    View Slide

  53. とりあえず動く最低限のコード

    View Slide

  54. 何が起こった?
    差分はここ
    差分: 前と比べたときの違い

    View Slide

  55. ザクっと言い換え(語弊あり)
    puts(”ここだお”);
    ""に囲まれた文字を
    画面に表示する!

    View Slide

  56. #include の役割
    プログラマがよく使うであろう機能を
    ええ感じにまとめたやつ(語弊あり)
    → stdio.h
    そいつを取り込む(includeする)よ
    というのを伝える
    → #include <>
    ※すでに準備されてるのは
    <>で、誰かが別途誰か用に
    作ったやつは""で括る

    View Slide

  57. - OS ありがたい
    - C言語は古いけど、勉強するのにええ感じ(個人の感想)
    - 画面に文字列を表示できた
    - puts() で文字列を表示した!
    - stdio.h を include すると使える!
    まとめ

    View Slide


  58. View Slide