Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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

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

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

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

Bea06bbdcb02b3e637978226352e2432?s=128

Big Buddha

April 11, 2019
Tweet

Transcript

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

  2. 前回忘れてた OS から

  3. - Windows とか MacOS とか iOS とか Android とか -

    五大装置それぞれをいい感じに動かしてくれる - 機械の方言を吸収してくれる - 開発者に便利な命令群を提供してくれる - 利用者に色々便利機能を提供する(保護者向けの制限とか) Operating System(通称: OS)
  4. 「プログラミング言語」 ってなんぞ?

  5. 「プログラム」 は 一連の命令群 Lesson 1より

  6. 「プログラミング言語」 は 命令を書くための言語

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

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

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

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

  11. 4: 動かす

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

  13. C言語

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

    C言語
  15. では、コーディング

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

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

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

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

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

  21. 文字を表示させる

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

  23. できた!

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

  25. puts(“Hello World!”);

  26. ぷっとえす int puts( const char *str ); ヌル終端文字列 str のすべての文字と追加の改

    行文字 '\n' 1個を、出力ストリーム stdout に書 き込みます。str の終端のヌル文字は書き込ま れません。 From puts - cppreference.com - https:/ /ja.cppreference.com/w/c/io/puts
  27. What's?

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

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

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

  31. できた!

  32. ところで…

  33. 改行文字 二行ある

  34. ぷっとえす int puts( const char *str ); ヌル終端文字列 str のすべての文字と追加の

    改行文字 '\n' 1個を、出力ストリーム stdout に書き込みます。str の終端のヌル文字 は書き込まれません。 From puts - cppreference.com - https:/ /ja.cppreference.com/w/c/io/puts
  35. いや、当たり前ですやん 二行書い てるもん

  36. 実験 puts を printf に変更

  37. 改行されてへん!?

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

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

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

  41. #include <stdio.h>

  42. 消してみる 消した→

  43. 大人の事情で動く

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

    of function ‘puts’”
  45. 結局何?

  46. Computer の特徴 - 電気がないと動かない - 全ては 0 と 1(デジタル) -

    Computer が理解できる 命令は少ない - 曖昧さの余地がない Lesson 1より
  47. コンピュータ自身は “""に囲まれた文字を画面に表示する” 命令なんて知らない

  48. #include <stdio.h> の役割 プログラマがよく使うであろう機能を ええ感じにまとめたやつ(語弊あり) → stdio.h そいつを取り込む(includeする)よ というのを伝える →

    #include <> ※すでに準備されてるのは <>で、誰かが別途誰か用に 作ったやつは""で括る
  49. すたんだーど いんぷっと あんど あうとぷっと stdio は Standard Input and Output

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

  51. - Windows とか MacOS とか iOS とか Android とか -

    五大装置それぞれをいい感じに動かしてくれる - 機械の方言を吸収してくれる - 開発者に便利な命令群を提供してくれる - 利用者に色々便利機能を提供する(保護者向けの制限とか) Operating System(通称: OS)
  52. - 1970年代にアメリカで生まれた(古め) - 最近の有名言語はある程度文法が似ている - 最近の言語と比べると良くも悪くも素直 - プログラマが書かなくてはいけない処理が多い - まともに使いこなすにはハード面の知識も必要

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

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

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

  56. #include <stdio.h> の役割 プログラマがよく使うであろう機能を ええ感じにまとめたやつ(語弊あり) → stdio.h そいつを取り込む(includeする)よ というのを伝える →

    #include <> ※すでに準備されてるのは <>で、誰かが別途誰か用に 作ったやつは""で括る
  57. - OS ありがたい - C言語は古いけど、勉強するのにええ感じ(個人の感想) - 画面に文字列を表示できた - puts() で文字列を表示した!

    - stdio.h を include すると使える! まとめ