Presentation is loading. Please wait.

Presentation is loading. Please wait.

第10回 http://www.fit.ac.jp/~matsuki/lecture.html プログラミングⅡ 第10回 http://www.fit.ac.jp/~matsuki/lecture.html.

Similar presentations


Presentation on theme: "第10回 http://www.fit.ac.jp/~matsuki/lecture.html プログラミングⅡ 第10回 http://www.fit.ac.jp/~matsuki/lecture.html."— Presentation transcript:

1 第10回 http://www.fit.ac.jp/~matsuki/lecture.html
プログラミングⅡ 第10回

2 連絡 小テスト 授業開始直後と終了直前に小テストを2行います 授業開始直後テスト(復習テスト)⇒前回の復習
授業終了直前テスト(本テスト)⇒その日の内容の復習 本テストの成績(正答率)が50%以下の場合は、宿題を出します(レポートとは別)。 宿題を決められた期日までに提出しない場合は、欠席扱いにします

3 宿題の提出について 以下の場合は、出題日の出席を欠席とする 締切日を過ぎた場合 正解率が7割未満の場合
提出は、PDFファイルを印刷して、それに答えを書いて提出すること。

4 プログラミングに関する質問時間 月曜日と金曜日の12:00から13:00までは, CAE室で,プログラミングに関する質問を受け付けています. 遠慮なく相談に来てください.

5 今日の内容 構造体の基礎 構造体の記述方法 構造体型の宣言 構造体変数の宣言 メンバにアクセスする typedefで型に名前を付ける
構造体の初期化 構造体の代入

6 構造体とは int int int int double 配列: 構造体: 「同じ型」のデータをひとまとめにしたもの
「異なる型」のデータをひとまとめにしたもの 書込め int int int 書込め int double char

7 構造体の概念 複数の型の変数をひとまとめにしたもの まとめられた要素をメンバという (例)携帯電話の連絡先データ 書込め 書込め
電話番号:char tel[16];(16ケタ) 名前:char name[20];(20文字) 年齢:int age; 体重:double weight; 書込め メンバ tel[16] name[16] age weight 書込め 4つのメンバで1セット(一人分)

8 構造体の宣言 構造体の宣言は2つのステップがある。 (1) 構造体型の宣言 どのような型の変数や配列をまとめるかを決定
(1) 構造体型の宣言 どのような型の変数や配列をまとめるかを決定 (2) 構造体変数の宣言 構造体型を持った変数を用意 書込め 書込め

9 (1)構造体型の宣言 構文 struct 構造体型名 { 型名 識別子; ・・・ }; セミコロンに注意 書込め

10 (1)構造体型の宣言 例 struct Car { int num; double gas; char name[20]; }; 書込め
セミコロンに注意 メンバ(構造体の要素) num gas name[20] int型 double型 char型配列

11 (2)構造体変数の宣言 struct 構造体型名 構造体変数名; struct Car car1; 構文 例 書込め 書込め
構造体を利用することができる.

12 メンバへのアクセス 宣言した構造体のメンバに値を格納しよう. メンバにアクセス⇒ドット演算子(.)を使う 構文 例 構造体変数名.メンバ
書込め 構文 構造体変数名.メンバ ナンバーに1234を設定 car1.num = 1234; car1.gas = 25.5; strcpy(car1.name, “マックィーン号”); ガソリン量に25.5を設定 名前にマックィーン号を設定 (注意)strcpy(a,b) bをaにコピー(代入) 書込め

13 struct Car { int num; double gas; char name[20]; }; 書込め 書込め 書込め
#include <stdio.h> #include <string.h> /*構造体型のCarの宣言*/ struct Car { int num; double gas; char name[20]; }; main() { struct Car car1; car1.num = 1234; car1.gas = 25.5; strcpy(car1.name, “マックィーン号”); printf(“車のナンバーは%d ガソリンの量は%f  車の名前は%s\n”, car1.num, car1.gas, car1.name); } サンプルプログラム1 (メンバにアクセス) 書込め 構造体型はグローバルとして宣言した方が便利 構造体変数の宣言 書込め 書込め

14 書込め 書込め 書込め struct Car car1;
#include <stdio.h> #include <string.h> /*構造体型のCarの宣言*/ struct Car { int num; double gas; char name[20]; }; main() { struct Car car1; printf(“ナンバーは?”); scanf( “%d”, &car1.num); printf(“ガソリンの量は?”); scanf( “%lf”, &car1.gas ); printf(“車の名前は?”); scanf( “%s”, car1.name); printf(“車のナンバーは%d ガソリンの量は%f  車の名前は%s\n”, car1.num, car1.gas, car1.name); } サンプルプログラム2 (キーボードから入力) キーボードから入力 書込め 書込め 書込め

15 構造体の記述方法

16 長い型名に,新しい名前をつけ直すこと命令がある
typedefの使い方 構造体型で構造体変数を宣言するとき,     struct Car car1; という具合に,長い型名を書くはめになる. 型名 長い型名に,新しい名前をつけ直すこと命令がある typedef 書込め

17 typedefの使い方 構文 typedef 型名 識別子 例 typedef double W W gas; gas = 25.3;
書込め double型を「W」という名前で使えるように設定

18 typedefの使い方 型の名前を設定することができる
struct Car { int num; double gas; char name[20]; }; struct Car car1; car.num = 1234; typedef struct Car { int num; double gas; char name[20]; } Car; Car car1; car1.num = 1234; 書込め 「struct Car」型 を 「Car」という名前の型 に設定 書込め 書込め

19 typedef struct Car { 書込め #include <stdio.h>
#include <string.h> /*構造体型のCarの宣言*/ typedef struct Car { int num; double gas; char name[20]; }Car; main() { Car car1; car1.num = 1234; car1.gas = 25.5; strcpy(car1.name, “マックィーン号”); printf(“車のナンバーは%d ガソリンの量は%f  車の名前は%s\n”, car1.num, car1.gas, car1.name); } サンプルプログラム3 (typedefの使用例) 書込め typedefを使って「struct Car」を「Car」に設定 構造体変数の宣言 書込め

20 nameメンバーに”マックィーン号”を格納
構造体の初期化 構造体を宣言すると同時に値を格納する 構文 構造体型名 構造体変数名 = {値,値, ・・・}; numメンバーに1234を格納 書込め Car mycar = {1234, 25.5, “マックィーン号”}; nameメンバーに”マックィーン号”を格納 書込め gasメンバーに25.5を格納 書込め

21 #include <stdio. h> #include <string. h> /. 構造体型のCarの宣言
#include <stdio.h> #include <string.h> /*構造体型のCarの宣言*/ typedef struct Car { int num; double gas; char name[20]; }Car; main() { Car mycar = { 1234, 25.5, “バットマンCAR” }; printf(“車のナンバーは%d\n”, mycar.num); printf(“ガソリンの量は%f\n ”, mycar.gas); printf(“車の名前は%s\n”, mycar.name); } 実行例 車のナンバーは1234 ガソリンの量は25.5 車の名前はバットマンCAR typedefを使う場合,ここの 構造体型名(Car)は書かなくても良い 書込め mycarという構造体変数を宣言し,同時に初期化(順番に注意!) 書込め

22 構造体の代入 構造体変数を別の構造体変数に代入すると,メンバーもまとめて代入(コピー)される. 例
書込め 構造体変数を別の構造体変数に代入すると,メンバーもまとめて代入(コピー)される. Car mycar = {1234, 25.5, “マックィーン号”}; Car yourcar; yourcar = mycar; yourcar.num = mycar.num; yourcar.gas = mycar.gas; strcpy(yourcar.name, mycar.name); 書込め この代入文ひとつで,mycarのすべてのメンバ値がyourcar側にも代入される

23 mycarのデータをyourcarに代入 (まとめてメンバー値をコピー可!) 書込め
#include <stdio.h> #include <string.h> /*構造体型のCarの宣言*/ typedef struct { int num; double gas; char name[20]; }Car; main() { Car mycar = { 1234, 25.5, “バットマンCAR” }; Car yourcar; yourcar = mycar; printf(“your車のナンバーは%d\n”, yourcar.num); printf(“your車のガソリンの量は%f\n ”, yourcar.gas); printf(“your車の名前は%s\n”, yourcar.name); } 実行例 your車のナンバーは1234 your車のガソリンの量は25.5 your車の名前はバットマンCAR 構造体型名は省略可(省略済) 書込め mycarのデータをyourcarに代入 (まとめてメンバー値をコピー可!) 書込め


Download ppt "第10回 http://www.fit.ac.jp/~matsuki/lecture.html プログラミングⅡ 第10回 http://www.fit.ac.jp/~matsuki/lecture.html."

Similar presentations


Ads by Google