C言語①

C言語①
開発環境とプログラムの記述方法
2011.04.22
2011.04.22
C言語① 開発環境とプログラムの記述方法
持ち物
・教科書
・ノート
・筆記用具
・ボールペン(黒)
・色ペン(2色以上)
・のり
・レポート用紙
・テンプレート
(修正液、付箋、はさみ)
鉛筆
シャーペン
×
プログラミング実習の目的
プログラムの学習
ひとつの問題を
細かくして考え
る
ものごとを順序
立てて考える
ノートを活用す
るチカラ
論理的思考
実戦で役立つ自分を作る
開発環境
※この画面は写さない。
プリントを後日配ります。
ノートを1ページあけて、貼るスペースを
確保してください。
プログラムの書き方
①基本的に英小文字
②適度のコメントを入れる(/*と*/で囲む 又は //よりうしろ)
③mainはプロジェクトの中に1つしか存在が許されない
④#include<stdio.h>
字下げ
(インデント)
int main(void)
はおまじない
⑤{ }で囲まれた部分は1段(TAB1個分)下げる。
美しいプログラムを書くよう心がける
あとから見てわかりやすい。他人が見てもわかりやすい。
秘伝
◎ プログラム上達のコツ
① まずは例題を入力して動きをたしかめる(真似)
② よく解読して、1箇所変えてみる(改造)
③ 実行結果を予測してから実行。結果を確認する。
(②へ戻る)
レポート
題目 C言語①開発環境
内容 (1)プログラミング実習の目的
(2)開発環境(後日配るプリントをまとめる)
(3)プログラムの書き方
(4)考察(C言語について調べたりする)
(5)反省・感想
復習1
教科書p.21のプログラムを入力してみよう。
/*2数の和*/
#include<stdio.h>
int main(void)
{
int a, b, wa;
a = 20;
b = 5;
wa = a + b;
printf("%d\n" , wa );
return 0;
}
入力が終わったら、実行して動作を確認。
チャレンジ
「20」と「5」と書いてある部分を適当な数値に変えて実行してみ
よう!実行する前に結果を予測しよう!
a = 20;
b = 5;
a = 20;
b = 20;
a = 5;
b = 5;
a = 33;
b = 0;
25
?
?
?
プログラム上達の極意!
例題をちょっと改造して実行。
気付いた事
a と b は
数値(データ)を入れるための箱
→ 変数
と wa
20
a
5
+
b
wa
25
気付いた事2
= の 役割
a = 100;
変数 a に 数値の 100 を代入すると言う意味。
代入!
=は
右から来たものを左へ
受け流している
解説
/*2数の和*/
#include<stdio.h>
int main(void)
{
int a, b, wa;
a = 20;
b = 5;
wa = a + b;
printf("%d\n" , wa );
return 0;
}
変数 a,b,wa を宣言
Cでは変数を使う時はあらかじめ
宣言する(作る)必要がある。
変数a に20を代入
変数b に5を代入
a と b を足し算したものを
変数wa に代入
変数wa の内容を表示
※実行結果もノートに写す
[書式]
型指定子
変数名1, 変数名2, 変数名3,・・・・ ;
型指定子
バイト長
表現範囲
char 文字型
1
半角文字。または、±128ぐらい
short int 単長整数型
2
±32000ぐらいの整数
int 整数型
4
±21億ぐらいの整数
long int 倍長整数型
4
float 単精度実数型
4
±10±38ぐらいの実数。有効桁数6~7桁。
double 倍精度実数型
8
±10±308ぐらいの実数。有効桁数15~16桁。
〃
(例)
int a;
・・・・・・ 整数型の変数aを宣言
double b, c; ・・・・・・ 倍精度実数型の変数bとcを宣言
char moji;
・・・・・・ 文字型の変数mojiを宣言
int r = 20;
・・・・・・ 整数型の変数rを宣言し、20を代入。
注意!変数名は半角英数字で。但し、予約語は使えない。
例題1
教科書p.25のプログラムを入力してみよう。
/* E2-1 */
/* 文字列の出力 */
#include<stdio.h>
int main(void)
{
printf("computer\n");
printf("programming\n");
return 0;
}
入力が終わったら、実行して動作を確認。
例題1
1行節約してみる。
/* E2-1 */
/* 文字列の出力 */
#include<stdio.h>
void main(void)
{
printf("computer\n");
printf("programming\n");
return 0;
}
入力が終わったら、実行して動作を確認。
例題1 解説
「ここからmain関数を書きますよ」
という宣言
注釈
#include指令
stdio.hを読み込む
printf関数を使いたいので
基本的な命令(関数)が格納
されている標準ライブラリ
/* E2-1 */
/* 文字列の出力 */
#include<stdio.h>
void main(void)
{
printf("computer\n");
printf("programming\n");
}
中かっこで囲まれた部分{ }
は、1段(Tab1個分(4文字ぐらい))下げる。
main関数の始まりの中かっこ
ディスプレイに「computer」と
表示して改行
ディスプレイに「programming」と
表示して改行
main関数の終わりの中かっこ
ところで・・・・
\n って 改行 って事らしいけど・・・
c\no\nm\np\nu\nt\ne\nr\n ってやったらどうなる?
やってみるじゃん
printf("computer\n");
printf("computer"\n);
エラー!
printf( ) の中は " "でしっかり囲む
拡張表記
printfの中で¥とセットで記述する特殊な文字
改行
\n
new line
復帰
\r
printf("computer\n");
printf("programing\n");
computer
programing
printf("computerABCDE\r");
printf("programming\n");
programmingDE
1行目に2行目が上書きされた
carriage return
後退
\b
back space
printf("computerABCDE\b\b");
printf("programming\n");
computerABCprogramming
1行目の末尾が2文字消えた
水平タブ
\t
A
printf("A\tAB\tABC\tABCD");
AB
ABC
ABCD
水平方向の特定の位置へカーソルが
移動している。
Aの位置だけをみると均一である!
horizontal tab
ベル/アラート
\a
helloを表示する時プーという音がした。
alert, alarm
復帰
\r
hello
printf("hello\a");
printf("computerABCDE\r");
printf("programming\n");
1行目に2行目が上書きされた
carriage return
後退
\b
back space
programmingDE
printf("computerABCDE\b\b");
printf("programming\n");
computerABCprogramming
1行目の末尾が2文字消えた
水平タブ
\t
printf("A\tAB\tABC\tABCD");
A
AB
ABC
ABCD
水平方向の特定の位置へカーソルが
移動している。
Aの位置だけをみると均一である!
horizontal tab
ベル/アラート
\a
printf("hello\a");
hello
helloを表示する時プーという音がした。
alert, alarm
ナル文字
\0
NULL
(何も無い)
printf("hello,\0world");
hello,
\0以降は無いものとして処理される。
特殊文字の表示
\"
\'
\\
printf("引用符\"、アポストロフィー\'、円マーク\\ 改行\n");
引用符"、アポストロフィー'、円マーク\、改行
特殊な文字は\とセットで記述することで表示できる
水平タブ
\t
printf("A\tAB\tABC\tABCD");
A
AB
ABC
ABCD
水平方向の特定の位置へカーソルが
移動している。
Aの位置だけをみると均一である!
horizontal tab
ベル/アラート
\v
printf("hello\a");
hello
helloを表示する時プーという音がした。
alert, alarm
ナル文字
\0
NULL
(何も無い)
printf("hello,\0world");
hello,
\0以降は無いものとして処理される。
特殊文字の表示
\"
\'
\\
printf("引用符\"、アポストロフィー\'、円マーク\\ 改行\n");
引用符"、アポストロフィー'、円マーク\、改行
特殊な文字は\とセットで記述することで表示できる
8進数で
文字入力
\数値
printf("1:\123\n2:\155\n");
1:S
2:m
\123 → 53h → S
\155 → 6Dh → m
8進数のコードに基づく文字が表示される
16進数で
文字入力
\数値
ナル文字
printf("1:\x53\n2:\x6D\n");
\0
printf("hello,\0world");
NULL
(何も無い)
1:S
2:m
16進数コードに基づく文字表示
hello,
\0以降は無いものとして処理される。
特殊文字の表示
\"
\'
\\
printf("引用符\"、アポストロフィー\'、円マーク\\ 改行\n");
引用符"、アポストロフィー'、円マーク\、改行
特殊な文字は\とセットで記述することで表示できる
8進数で
文字入力
\数値
printf("1:\123\n2:\155\n");
1:S
2:m
\123 → 53h → S
\155 → 6Dh → m
8進数のコードに基づく文字が表示される
16進数で
文字入力
\数値
ナル文字
printf("1:\x53\n2:\x6D\n");
\0
printf("hello,\0world");
NULL
(何も無い)
1:S
2:m
16進数コードに基づく文字表示
hello,
\0以降は無いものとして処理される。
問1
Price \1,980
Now On "SALE"
と表示し、更に内蔵ベルを鳴らすプログラムを作りなさい。
8進数で
文字入力
\数値
printf("1:\123\n2:\155\n");
1:S
2:m
\123 → 53h → S
\155 → 6Dh → m
8進数のコードに基づく文字が表示される
16進数で
文字入力
\数値
ナル文字
printf("1:\x53\n2:\x6D\n");
\0
printf("hello,\0world");
NULL
(何も無い)
1:S
2:m
16進数コードに基づく文字表示
hello,
\0以降は無いものとして処理される。
問1
Price \1,980
Now On "SALE"
と表示し、更に内蔵ベルを鳴らすプログラムを作りなさい。
問1
Price \1,980
Now On "SALE"
と表示し、更に内蔵ベルを鳴らすプログラムを作りなさい。
プログラムが完成したら、ソースと、実行画面が同時に見れるようにして
先生を呼んで確認してもらうこと。
それが完了したら、ソースと実行画面をノートに写す。
レポート
題目 C言語①
内容 ①復習1の「ソース」、「解説」、「実行結果」
②変数宣言についてまとめる
③例題1の「ソース」、「解説」、「実行結果」
④拡張表記についてまとめる
⑤考察
⑥反省・感想
8進数で
文字入力
\数値
printf("1:\123\n2:\155\n");
1:S
2:m
\123 → 53h → S
\155 → 6Dh → m
8進数のコードに基づく文字が表示される
16進数で
文字入力
\数値
printf("1:\x53\n2:\x6D\n");
1:S
2:m
16進数コードに基づく文字表示
レポート
題目 C言語①
内容 ①復習1の「ソース」、「解説」、「実行結果」
②変数宣言についてまとめる
③例題1の「ソース」、「解説」、「実行結果」
④拡張表記についてまとめる
⑤考察
⑥反省・感想