1 / 23

プログラミング論

プログラミング論. 第四回 画面への出力 . 本日の内容. 画面への出力 printf の働き 文字列を出力する #include ? ; ? 1 行に複数文を記述する コメントを入れる. 画面への出力 printf について考えましょう. printf( “ How are you?<br> ” ) は, main(void) と同様に考えると, 関数名  printf 引数   “ How are you?<br> ”  と考えられますね。 そう, printf は,「メッセージを出力するための関数」なのです。

birch
Download Presentation

プログラミング論

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. プログラミング論 第四回 画面への出力 

  2. 本日の内容 • 画面への出力 • printfの働き • 文字列を出力する • #include ? • ; ? • 1行に複数文を記述する • コメントを入れる

  3. 画面への出力printfについて考えましょう • printf(“How are you?\n”)は,main(void)と同様に考えると, • 関数名 printf • 引数  “How are you?\n”  と考えられますね。 • そう,printfは,「メッセージを出力するための関数」なのです。 • ““で囲まれた文字や数値などいろんな形式の出力が出来ます。

  4. もう一度,実行結果に注目。ensyu3.c • How are you? Z:\C> printf(“How are you?\n”) これはどこ?何?

  5. それでは,これを実行してみましょう • #include <stdio.h> • int main(void) • { • printf("How are you?"); • return 0; • }

  6. 実行結果はどうなりましたか? • How are you? Z:\C> 比較してみましょう • How are you? Z:\C>

  7. 行間が空いて いるということは 実行結果はどうなりましたか? • How are you? Z:\C> ここでリターン,つまり改行しているんですね • How are you? つまり, \n は「改行」の意味になります Z:\C>

  8. 次の実行結果を確認しましょう • problem-1: • printf("How "); • printf("are "); • printf("you?\n"); • problem-2: • printf("ABC\nDEF\nGHI\n"); • problem-3: • printf("ABC\n\nDEF\nGHI\n");

  9. \で始まる記号について • \nなど,\で始まる記号は「エスケープ文字列(エスケープシーケンス)」と呼ばれます。 • 「本来の文字の意味を離れて(エスケープ)」別の意味を表すため,そう呼ばれます。 • printfの中で, \aと \tというエスケープシーケンスを試してみましょう。 • \や”そのものを画面に表示したいときはどうすればよいでしょうか?

  10. 演習 • 次のように表示されるプログラムを作成してください。 <問題2> <問題1> 私の名前は 「自分の名前」です。 Z:\C> 私は  プログラミング論 を履修しています。 Z:\C>

  11. Cプログラムの構成 • #include <stdio.h> • int main(void) • { • printf("How are you?\n"); • return 0; • } 次は,これ。 これは,Cのプログラムに,まず 間違いなく必ず最初に書いてあ る文です。一体,どんな意味が あるのでしょう? ここは 終了。 こういう時は,「じゃ,無かったら どうなるの?」と考えましょう。 この行を消して,コンパイルして みましょう。

  12. コンパイルの結果 こんな警告が出ます。 警告 W8065 ensyu3.c 4: プロトタイプ宣言のない 関数 ‘printf’の呼び出し(関数 main) 「プロトタイプ宣言」とは,「こういう関数を使いますよ!」 とあらかじめ宣言することです。 ということは・・・? #include <stdio.h> という部分が,「printfっていうのは,こ んな関数ですよ」って教えてくれている(定義している)部分? その通り!

  13. #include文 • 英単語「include」は,「含む」という意味ですね。 • つまり,#include <stdio.h> という文は,「このプログラムは,stdio.h というファイルを含みます」という意味です。 • stdio.hは,「Standard Input Output」の意味で,標準入出力,という意味になります。 • .hで終わるファイルは,「ヘッダファイル」と呼ばれ,いろいろな関数が定義されています。 • stdio.hには,「標準的な入出力に関する関数が定義されている」訳です。printfもその一つです。 • つまり,Cが用意してくれている関数を使う場合は,その関数が定義されているヘッダファイルをインクルードしないと使えない,ということです。

  14. Cプログラムの構成 • #include <stdio.h> • int main(void) • { • printf("How are you?\n"); • return 0; • } プリプロ セッサ main関数 次は,これ。

  15. Cプログラムの構成を整理。 • プリプロセッサ • ヘッダファイルの読み込み,プログラム内で利用する関数の定義などを行います。 • 関数 • 独立に作成出来る最小単位のプログラムです。 • 必要な関数を集める事により,所望のプログラムを作っていきます。 • main関数はプログラムに必ず1つあり,最初に実行されます。他の関数を呼び出して実行します。 • 関数の範囲は,{ }で示されます。これを区切子といいます。 • 副文 • 複数の「文」のまとまりです。 • 繰り返す範囲や処理を分岐するときに実行する処理範囲の事です。これらの範囲は,{ }で示されます。 • 文 • 処理の最小単位です。 • 文の終わりは,; (セミコロン)で表します。

  16. 書き方の工夫 • #include <stdio.h> • int main(void) • { • printf("How are you?\n"); • return 0; • } 改行 空白 改行 空白や余分な改行は無視されます。 読みやすいように工夫しましょう。 区切子{ }ごとに文を字下げ すると見やすくなります。

  17. 書き方の工夫 • #include <stdio.h> • int main(void) • { • printf("How are you?\n"); • return 0; • } • #include <stdio.h> • int main(void){printf("How are you?\n");return 0;} どちらが理解しやすいでしょうか? 全て1行に書いてしまったらどうなるでしょう?

  18. 次のプログラムを実行してみましょう。ensyu4.c次のプログラムを実行してみましょう。ensyu4.c /* sample program ensyu4.c */ #include <stdio.h> int main(void) { printf("今日は良い天気です。\n"); printf("今日は"); printf("良い天気"); printf("です。\n"); printf("今日は"); printf("良い天気"); printf("です。\n"); return 0; }

  19. 複数の文の記述 /* sample program ensyu4.c */ #include <stdio.h> int main(void) { printf("今日は良い天気です。\n"); printf("今日は"); printf("良い天気"); printf("です。\n"); printf("今日は"); printf("良い天気"); printf("です。\n"); return 0; } ; で文末が判断されるので,1行に複数の文も可能です。

  20. コメント文-1 /* sample program ensyu4.c */ #include <stdio.h> int main(void) { printf("今日は良い天気です。\n"); printf("今日は"); printf("良い天気"); printf("です。\n"); printf("今日は"); printf("良い天気"); printf("です。\n"); return 0; } /* で始まり */ で終わる範囲は コメントとなります。実行処理 からは無視されます。

  21. コメント文-2 /* sample /* program */ ensyu4.c */ #include <stdio.h> int main(void) { printf("今日は良い天気です。\n"); printf("今日は"); printf("良い天気"); printf("です。\n"); printf("今日は"); printf("良い天気"); printf("です。\n"); return 0; } /* */ の範囲内に,さらに/* */を 入れる事は出来ません。 試しにコンパイルしてみましょう。

  22. コメント文-3 #include <stdio.h> // sample program ensyu4.c int main(void) { printf("今日は良い天気です。\n"); printf("今日は"); printf("良い天気"); printf("です。\n"); printf("今日は"); printf("良い天気"); printf("です。\n"); return 0; } このようなコメントも可能です。 // が書かれた位置からその行の 最後までがコメントとなります。

  23. 演習 • 右のように表示されるプログラムを作成ししてください。 • printf処理は1回だけ実行してください。 • プログラムには,学生番号と氏名をコメント文として入れてください。 • 表示した後にビープ音が鳴るようにしてください。 Hello, C World C言語を勉強します。 printfを勉強しました。 Z:\C>_ タブ一つ 1行空白

More Related