SlideShare a Scribd company logo
© 2016 Embarcadero Technologies, Inc.
All rights reserved. Proprietary and confidential.
第1回
‟シューティングゲームのプログラム„
シーズン2:プログラミング言語をやさしく覚えよう
C++Builderの部
2© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
Delphi / C++Builder Starter チュートリアルシリーズ
シーズン2 :2017年1月23日 ~ 3月27日 全 9 回
時間 :毎週 月曜 17 時 00分~17時 50分
Delphi 17時00分~17時20分 / C++Builder 17時30分~17時50分
ねらい :プログラミング言語をやさしく覚えよう
シーズン2
第1回 2017年1月23日 シューティングゲームのプログラム
第2回 1月30日 変数と 型
第3回 2月6日 条件 とループ
第4回 2月13日 Function と Procedure (関数と手続き)
第5回 2月20日 配列 と レコード
第6回 2月27日 文字列 と オブジェクト
第7回 3月6日 オブジェクト指向
第8回 3月13日 作ってみよう(仮)
第9回 3月27日 コミュニティ と 勉強会
セミナー情報 : 下記のWebサイト
http://forms.embarcadero.com/starter-tutorial-webinar
3© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
第1回 「シューティングゲームのプログラム」
 今日のねらい
• シーズン1・シューティングゲーム
• プログラムの理解を深める
• C++プログラムの基本構成の理解と読み方
• シーズン2で学ぶプログラム言語の概略を俯瞰する
 実施内容
• C++ の基本コーディングの確認
• 使用した型、文、関数の確認
4© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
無料版 C++Builder 10.1 Berlin Starter Edition 入手方法
• シリアルキーを知らせるメール内にも再ダウンロードリンク有
エンバ
Web
製品
C++
Builder
Starter
バナー
登録 Get
 無料で使える開発環境をダウンロード
EDN*に登録済の方はEDNアカウントでダウンロード可
登録完了後、自動でインストーラーのダウンロード開始
インストール時にシリアルキーを入力
登録時のメールアドレスにシリアルキーが配信される
5© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
参考資料
 シューティングゲーム / シーズン1で作成
• https://github.com/mojeld/embarcadero_jp_shooting_game
6© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
シューティングゲームに入っているプログラム要素
 コメント
 識別子
 ブロック
 言語キーワード
 プログラムの構造
 コンパイラ指令
 文
7© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
コメント
 コメント
• ソースコードのうち、人間が理解することを目的に記述する情報
• プログラムの視認性、可読性を高めるために利用
• コンピュータ(コンパイラ)はコメント部分を無視する
void __fastcall TfmShooting_main::Button_missileClick(TObject *Sender)
{
TRectangle* em_buf_{nullptr}; //敵一旦保存
KanokeBuf = nullptr; //敵保存変数をクリア
Button_missile->Enabled = false;
Rectangle_missile->Position->Y = Rectangle_player->Position->Y + 25;
FloatAnimation_missile->StopValue = missile_max; //ミサイル最終地点設定
FloatAnimation_missile->StartValue = Rectangle_player->Position->X + 20;
auto iExPos = missile_max;
auto iEnmX = missile_max;
for (int i = 0; i < 3; i++) {/*ループで敵3つを順番に撃破可能か調べる*/
switch(i){
case 0: em_buf_ = Rectangle_Enm1; break;
case 1: em_buf_ = Rectangle_Enm2; break;
case 2: em_buf_ = Rectangle_Enm3;
}
8© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
コメント
 コメントの書き方の例
/* ここからコメントが始まります。
ここまでコメントです。 */
/* ここからコメントが始まります。
これもコメントです。
ここまでコメントです。 */
/*
/*
この書き方はできません。ネスト(入れ子)不可。
*/
*/
// 単一行のコメントです。
/* 単一行コメントをこう書いてもOKです */
/*
// 単一行コメントがブロックコメントに
// 含まれていても大丈夫です。
// この場合は // も含めてコメントです。
*/
9© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
 プログラム上で下記の項目を示す名前
• データ型、変数
• 関数
• オブジェクト、クラス
 事前に定義されているもの
• 言語キーワード
 自分で定義するもの
• 変数名、データ型名、
• オブジェクト名…
void __fastcall TfmShooting_main::Button_missileClick(TObject *Sender)
{
TRectangle* em_buf_{nullptr}; //敵一旦保存
KanokeBuf = nullptr; //敵保存変数をクリア
Button_missile->Enabled = false;
Rectangle_missile->Position->Y = Rectangle_player->Position->Y + 25;
FloatAnimation_missile->StopValue = missile_max; //ミサイル最終地点設定
FloatAnimation_missile->StartValue = Rectangle_player->Position->X + 20;
auto iExPos = missile_max;
auto iEnmX = missile_max;
for (int i = 0; i < 3; i++) {/*ループで敵3つを順番に撃破可能か調べる*/
switch(i){
case 0: em_buf_ = Rectangle_Enm1; break;
case 1: em_buf_ = Rectangle_Enm2; break;
case 2: em_buf_ = Rectangle_Enm3;
}
auto iTemp = EnmExist(em_buf_);
if ((iTemp < missile_max) && (iEnmX > em_buf_->Position->X))
{ /*敵の前に敵が居る場合, 手前の敵を優先*/
iExPos = iTemp;
KanokeBuf = em_buf_;
}
if (KanokeBuf != nullptr) {//撃破出来る敵変数に存在するか確認
iEnmX = KanokeBuf->Position->X;
}
}
識別子
10© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
識別子に付ける文字種別
 使える文字種別
• アルファベット(大文字、小文字は区別されるので、下記2つは別の変数扱い)
int CppBuilder ;
int cppbuilder ;
• アンダースコア _
int Cpp_Builder ;
• 数字
int Cpp_Builder_2007 ;
Int 2007_Cpp_Builder ; // 最初の1文字を数字で始めることはできない。
• ユニバーサル文字名
Int ¥u30c7¥u30eb¥u30d5¥u30a1¥u30a4 ; // “デルファイ” と記述している。
• 実装依存の文字
int デルファイ ;
11© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
ブロック
 複数の文で構成される処理を
明示的にまとめたもので、{ }
で囲む
 読みやすくするために字下げ
(インデント)を行う
 ブロックの中で定義された変
数は、そのブロックだけで利
用できる
void __fastcall TfmShooting_main::Button_missileClick(TObject *Sender)
{
TRectangle* em_buf_{nullptr}; //敵一旦保存
KanokeBuf = nullptr; //敵保存変数をクリア
Button_missile->Enabled = false;
Rectangle_missile->Position->Y = Rectangle_player->Position->Y + 25;
FloatAnimation_missile->StopValue = missile_max; //ミサイル最終地点設定
FloatAnimation_missile->StartValue = Rectangle_player->Position->X + 20;
auto iExPos = missile_max;
auto iEnmX = missile_max;
for (int i = 0; i < 3; i++) {/*ループで敵3つを順番に撃破可能か調べる*/
switch(i){
case 0: em_buf_ = Rectangle_Enm1; break;
case 1: em_buf_ = Rectangle_Enm2; break;
case 2: em_buf_ = Rectangle_Enm3;
}
auto iTemp = EnmExist(em_buf_);
if ((iTemp < missile_max) && (iEnmX > em_buf_->Position->X))
{ /*敵の前に敵が居る場合, 手前の敵を優先*/
iExPos = iTemp;
KanokeBuf = em_buf_;
}
if (KanokeBuf != nullptr) {//撃破出来る敵変数に存在するか確認
iEnmX = KanokeBuf->Position->X;
}
}
if( iExPos < (Rectangle_player->Position->X + Rectangle_player->Width))
iExPos = missile_max; //敵がプレーヤーより後ろにいる場合標的から外す
FloatAnimation_missile->StopValue = iExPos; //ミサイルの目標値をセット
Rectangle_missile->Visible = true; //ミサイルを表示
FloatAnimation_missile->Start(); //ミサイル発射
}
12© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
言語キーワード
 プログラム内で使用するためにあらかじめ用意されている識別子
• データ型、変数の宣言に使われる一例
• char, int, short, long, float, double, signed, unsigned, void, bool, auto
• 言語の文に使用されるものの一例
• if, then, else, for, while, do, switch, case, break, continue, try, catch, ……
• クラスに関するもの
• class, public, protected, private, operator, this
13© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
プログラムの構造
 シューティングゲームは5つのファイルから成る
Unit1.cpp
フォームに関連する処理を実装
したソースコード
Unit1.h
フォームで実装した関数や変数
に関する定義を記述したファイ
ル(ヘッダファイル)
Unit1.fmx
フォームのデザイン情報。
IDEが自動的に生成する。
shooting_game_cpp.cpp
(説明省略)
shooting_game_cppPCH1.h
(説明省略)
14© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
プログラムの構造
 プログラムの構造(抜粋)
#include <fmx.h> // マルチデバイスプラットフォーム(FireMonkey) 向けの共通ヘッダーファイルを参照する。
#pragma hdrstop // このヘッダ以降はプリコンパイルを行わない。
#include “Unit1.h” // このフォームのヘッダファイルを参照する。ここでは変数の定義や関数の宣言が行われている。
#pragma package(smart_init) // 関数の実行優先順序に関する指定。(詳細は省略)
#pragma resource “*.fmx” // フォームデザインの参照指定
TfmShooting_main *fmShooting_main;
// __fastcall は関数の実行に関する規約。ここでは説明は省略します。
// C++Builder では個々の関数にこれをつけるのが基本です。
__fastcall TfmShooting_main::TfmShooting_main(TComponent* Owner) : TForm(Owner)
{
game_reset(); // ゲームで使用する変数やコンポーネントのプロパティを初期化する処理
}
void __fastcall TfmShooting_main::game_reset()
// ここから先は関数の定義が続く。宣言は Unit1.h に記述されている。
…
15© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
コンパイラ指令
 #include
• 別ファイル(主にヘッダファイル)の参照
 #define, #undef
• マクロ定義と定義解除
 #ifdef, #ifndef
• マクロ定義の有無に基づくコンパイル処理の切り分け
 #if - #elif - #else - #endif
• 式の真偽に基づくコンパイル処理の切り分け
 #pragma
• コンパイラ指令(コンパイラに依存する機能の制御)の設定
16© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
文
 選択文
• if ( 条件 ) 処理 ;
• 条件を満たす場合に限って処理を実行する
• if ( 条件 ) 処理1 ; else 処理2 ;
条件を満たす場合と満たさない場合の処理に分岐する。
• switch ( 条件 ) { case 1 : 処理1 ; case 2: 処理2 ; }
条件の値によって実行する文を選択する。
17© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
文
 繰り返し文
• while ( 条件 ) { 処理; }
条件が満たされる間は処理を繰り返し実行する。条件は処理の前に評価される。
• do { 処理; } while ( 条件 )
条件が満たされる間は処理を繰り返し実行する。条件は処理の後に評価される。
• for ( 初期化文 ; 条件 ; 式 ) { 処理; }
条件が満たされる間は処理を繰り返し実行する。文を実行したら最後に式を実行する。
• for ( 変数宣言 ; 値の集合 ) { xxxx ; }
値の集合に含まれる値を変数に1つづつ代入して処理を実行する。
18© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
文
 ジャンプ文
• break
処理を中断して一つ外側のブロックに出る。
• continue
処理を中断してループの先頭に戻る。
• return
実行中の関数を終了して、
関数の呼び出し元に戻る。
do {
if ( ) { …. };
switch ( ) {
case xx:
…
continue;
case yy:
…
return;
case zz:
….
break;
default:
….
}
for () {
….
}
}
19© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
シューティングゲームに入っているプログラム要素
 コメント
 識別子
 ブロック
 言語キーワード
 プログラムの構造
 コンパイラ指令
 文
20© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
本日のセミナー内容は
弊社ブログに掲載予定
[コミュニティ]
↓
[日本人ブログ]
実施内容の再視聴
 皆さんが見ているWebページの下に、順次アップロード
 エンバカデロWebサイト : http://forms.embarcadero.com/starter-tutorial-webinar
 [リソース] – [イベント]の「Delphi / C++Builder Starter チュートリアルシリーズ」ページ
 実施内容サマリー
• Community embarcadero (コミュニティ エンバカデロ)にWebリンク、サンプルコード情報等
http://community.embarcadero.com/
「エンバカデロ」で検索
21© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp
 次回のC++Builderパート
1月30日(月)17:30より
“変数と型„

More Related Content

What's hot

Start!! Ruby
Start!! RubyStart!! Ruby
Start!! Ruby
mitim
 
ほんとにあったphantomjsのコワい話
ほんとにあったphantomjsのコワい話ほんとにあったphantomjsのコワい話
ほんとにあったphantomjsのコワい話Kohki Nakashima
 
エラーハンドリング
エラーハンドリングエラーハンドリング
エラーハンドリング
道化師 堂華
 
Kanazawa.js.Next
Kanazawa.js.NextKanazawa.js.Next
Kanazawa.js.Next
dynamis
 
C++0x総復習
C++0x総復習C++0x総復習
C++0x総復習
道化師 堂華
 
プログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコードプログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコード
Shigenori Sagawa
 
Swift 2.0 の Error Handling #yhios
Swift 2.0 の Error Handling #yhiosSwift 2.0 の Error Handling #yhios
Swift 2.0 の Error Handling #yhios
Tomohiro Kumagai
 
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第4回 「Function と Pro...
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第4回 「Function と Pro...【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第4回 「Function と Pro...
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第4回 「Function と Pro...
Kaz Aiso
 
C# コーディングガイドライン 2013/02/26
C# コーディングガイドライン 2013/02/26C# コーディングガイドライン 2013/02/26
C# コーディングガイドライン 2013/02/26
Yoshihisa Ozaki
 
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„
Kaz Aiso
 
Better C#の脱却を目指して
Better C#の脱却を目指してBetter C#の脱却を目指して
Better C#の脱却を目指して
bleis tift
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第5回 ‟配列と構造体„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第5回 ‟配列と構造体„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第5回 ‟配列と構造体„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第5回 ‟配列と構造体„
和弘 井之上
 
Java scriptの基礎
Java scriptの基礎Java scriptの基礎
Java scriptの基礎
ManabuYoneyama
 
できる!trema-switch
できる!trema-switchできる!trema-switch
できる!trema-switch
Hiroaki Kawai
 
最新C++事情 C++14-C++20 (2018年10月)
最新C++事情 C++14-C++20 (2018年10月)最新C++事情 C++14-C++20 (2018年10月)
最新C++事情 C++14-C++20 (2018年10月)
Akihiko Matuura
 
型安全Printf作ってみた
型安全Printf作ってみた型安全Printf作ってみた
型安全Printf作ってみた真一 北原
 
final int をFINAL しやがれ!
final int をFINAL しやがれ!final int をFINAL しやがれ!
final int をFINAL しやがれ!
Keiichi Nagaoka
 
モナドハンズオン前座
モナドハンズオン前座モナドハンズオン前座
モナドハンズオン前座
bleis tift
 
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第5回 「配列 と レコード 」
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第5回 「配列 と レコード 」【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第5回 「配列 と レコード 」
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第5回 「配列 と レコード 」
Kaz Aiso
 
SpectreBustersあるいはLinuxにおけるSpectre対策
SpectreBustersあるいはLinuxにおけるSpectre対策SpectreBustersあるいはLinuxにおけるSpectre対策
SpectreBustersあるいはLinuxにおけるSpectre対策
Masami Hiramatsu
 

What's hot (20)

Start!! Ruby
Start!! RubyStart!! Ruby
Start!! Ruby
 
ほんとにあったphantomjsのコワい話
ほんとにあったphantomjsのコワい話ほんとにあったphantomjsのコワい話
ほんとにあったphantomjsのコワい話
 
エラーハンドリング
エラーハンドリングエラーハンドリング
エラーハンドリング
 
Kanazawa.js.Next
Kanazawa.js.NextKanazawa.js.Next
Kanazawa.js.Next
 
C++0x総復習
C++0x総復習C++0x総復習
C++0x総復習
 
プログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコードプログラムの処方箋~健康なコードと病んだコード
プログラムの処方箋~健康なコードと病んだコード
 
Swift 2.0 の Error Handling #yhios
Swift 2.0 の Error Handling #yhiosSwift 2.0 の Error Handling #yhios
Swift 2.0 の Error Handling #yhios
 
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第4回 「Function と Pro...
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第4回 「Function と Pro...【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第4回 「Function と Pro...
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第4回 「Function と Pro...
 
C# コーディングガイドライン 2013/02/26
C# コーディングガイドライン 2013/02/26C# コーディングガイドライン 2013/02/26
C# コーディングガイドライン 2013/02/26
 
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„
 
Better C#の脱却を目指して
Better C#の脱却を目指してBetter C#の脱却を目指して
Better C#の脱却を目指して
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第5回 ‟配列と構造体„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第5回 ‟配列と構造体„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第5回 ‟配列と構造体„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第5回 ‟配列と構造体„
 
Java scriptの基礎
Java scriptの基礎Java scriptの基礎
Java scriptの基礎
 
できる!trema-switch
できる!trema-switchできる!trema-switch
できる!trema-switch
 
最新C++事情 C++14-C++20 (2018年10月)
最新C++事情 C++14-C++20 (2018年10月)最新C++事情 C++14-C++20 (2018年10月)
最新C++事情 C++14-C++20 (2018年10月)
 
型安全Printf作ってみた
型安全Printf作ってみた型安全Printf作ってみた
型安全Printf作ってみた
 
final int をFINAL しやがれ!
final int をFINAL しやがれ!final int をFINAL しやがれ!
final int をFINAL しやがれ!
 
モナドハンズオン前座
モナドハンズオン前座モナドハンズオン前座
モナドハンズオン前座
 
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第5回 「配列 と レコード 」
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第5回 「配列 と レコード 」【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第5回 「配列 と レコード 」
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第5回 「配列 と レコード 」
 
SpectreBustersあるいはLinuxにおけるSpectre対策
SpectreBustersあるいはLinuxにおけるSpectre対策SpectreBustersあるいはLinuxにおけるSpectre対策
SpectreBustersあるいはLinuxにおけるSpectre対策
 

Viewers also liked

Energía eléctrica en españa (1)
Energía eléctrica en españa (1)Energía eléctrica en españa (1)
Energía eléctrica en españa (1)
Adrián Fernández
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
和弘 井之上
 
Matematica 3er grado (1)
Matematica 3er grado (1)Matematica 3er grado (1)
Matematica 3er grado (1)
cepecole
 
Aritmetica 6to grado (2)
Aritmetica 6to grado (2)Aritmetica 6to grado (2)
Aritmetica 6to grado (2)
cepecole
 
Cuatro operaciones 6° primaria
Cuatro operaciones 6° primariaCuatro operaciones 6° primaria
Cuatro operaciones 6° primaria
cepecole
 
Conjuntos 5° primaria
Conjuntos 5° primariaConjuntos 5° primaria
Conjuntos 5° primaria
cepecole
 
Conjuntos 4° rm
Conjuntos 4° rmConjuntos 4° rm
Conjuntos 4° rm
cepecole
 
Cv Consultoría ILM
Cv Consultoría ILMCv Consultoría ILM
Cv Consultoría ILM
Ignacio Losana Montes
 
Uso de las mayúsculas
Uso de las  mayúsculasUso de las  mayúsculas
Uso de las mayúsculas
Esperanza Sosa Meza
 
Nvidia shield tv android
Nvidia shield tv androidNvidia shield tv android
Nvidia shield tv android
Karim Lemallaam
 
Animales Domésticos
Animales DomésticosAnimales Domésticos
Animales Domésticos
Trinidad Roldán
 
Junkbots 2017
Junkbots 2017Junkbots 2017
Junkbots 2017
Scott Turner
 

Viewers also liked (12)

Energía eléctrica en españa (1)
Energía eléctrica en españa (1)Energía eléctrica en españa (1)
Energía eléctrica en españa (1)
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第6回 ‟文字列とオブジェクト„
 
Matematica 3er grado (1)
Matematica 3er grado (1)Matematica 3er grado (1)
Matematica 3er grado (1)
 
Aritmetica 6to grado (2)
Aritmetica 6to grado (2)Aritmetica 6to grado (2)
Aritmetica 6to grado (2)
 
Cuatro operaciones 6° primaria
Cuatro operaciones 6° primariaCuatro operaciones 6° primaria
Cuatro operaciones 6° primaria
 
Conjuntos 5° primaria
Conjuntos 5° primariaConjuntos 5° primaria
Conjuntos 5° primaria
 
Conjuntos 4° rm
Conjuntos 4° rmConjuntos 4° rm
Conjuntos 4° rm
 
Cv Consultoría ILM
Cv Consultoría ILMCv Consultoría ILM
Cv Consultoría ILM
 
Uso de las mayúsculas
Uso de las  mayúsculasUso de las  mayúsculas
Uso de las mayúsculas
 
Nvidia shield tv android
Nvidia shield tv androidNvidia shield tv android
Nvidia shield tv android
 
Animales Domésticos
Animales DomésticosAnimales Domésticos
Animales Domésticos
 
Junkbots 2017
Junkbots 2017Junkbots 2017
Junkbots 2017
 

Similar to 【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第1回 ‟シューティングゲームのプログラム„

【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第4回 ‟関数„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第4回 ‟関数„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第4回 ‟関数„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第4回 ‟関数„
和弘 井之上
 
とあるFlashの自動生成
とあるFlashの自動生成とあるFlashの自動生成
とあるFlashの自動生成
Akineko Shimizu
 
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第1回 ‟シューティングゲームのプロ...
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】  シーズン2 Delphi の部 第1回 ‟シューティングゲームのプロ...【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】  シーズン2 Delphi の部 第1回 ‟シューティングゲームのプロ...
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第1回 ‟シューティングゲームのプロ...
Kaz Aiso
 
第1回勉強会スライド
第1回勉強会スライド第1回勉強会スライド
第1回勉強会スライド
koturn 0;
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第2回 ‟変数と型„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第2回 ‟変数と型„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第2回 ‟変数と型„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第2回 ‟変数と型„
和弘 井之上
 
Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~CHY72
 
C++ tips 3 カンマ演算子編
C++ tips 3 カンマ演算子編C++ tips 3 カンマ演算子編
C++ tips 3 カンマ演算子編
道化師 堂華
 
第4回勉強会 単体テストのすすめ
第4回勉強会 単体テストのすすめ第4回勉強会 単体テストのすすめ
第4回勉強会 単体テストのすすめ
hakoika-itwg
 
はこだてIKA 第4回勉強会 単体テスト
はこだてIKA 第4回勉強会 単体テストはこだてIKA 第4回勉強会 単体テスト
はこだてIKA 第4回勉強会 単体テスト
Seiji KOMATSU
 
Rust Error Handling
Rust Error HandlingRust Error Handling
Rust Error Handling
ShunsukeNakamura17
 
JavaScript.Next
JavaScript.NextJavaScript.Next
JavaScript.Next
dynamis
 
Elixir-Conf-Japan-2017-session-ohr486
Elixir-Conf-Japan-2017-session-ohr486Elixir-Conf-Japan-2017-session-ohr486
Elixir-Conf-Japan-2017-session-ohr486
Tsunenori Oohara
 
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行monglee
 
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
kwatch
 
Inside FastEnum
Inside FastEnumInside FastEnum
Inside FastEnum
Takaaki Suzuki
 
C++コンパイラ GCCとClangからのメッセージをお読みください
C++コンパイラ GCCとClangからのメッセージをお読みくださいC++コンパイラ GCCとClangからのメッセージをお読みください
C++コンパイラ GCCとClangからのメッセージをお読みくださいdigitalghost
 
関西Php勉強会のlimeの話
関西Php勉強会のlimeの話関西Php勉強会のlimeの話
関西Php勉強会のlimeの話Hisateru Tanaka
 

Similar to 【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第1回 ‟シューティングゲームのプログラム„ (20)

【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第4回 ‟関数„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第4回 ‟関数„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第4回 ‟関数„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第4回 ‟関数„
 
とあるFlashの自動生成
とあるFlashの自動生成とあるFlashの自動生成
とあるFlashの自動生成
 
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第1回 ‟シューティングゲームのプロ...
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】  シーズン2 Delphi の部 第1回 ‟シューティングゲームのプロ...【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】  シーズン2 Delphi の部 第1回 ‟シューティングゲームのプロ...
【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第1回 ‟シューティングゲームのプロ...
 
第1回勉強会スライド
第1回勉強会スライド第1回勉強会スライド
第1回勉強会スライド
 
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第2回 ‟変数と型„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第2回 ‟変数と型„【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第2回 ‟変数と型„
【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第2回 ‟変数と型„
 
Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~
 
C++ tips 3 カンマ演算子編
C++ tips 3 カンマ演算子編C++ tips 3 カンマ演算子編
C++ tips 3 カンマ演算子編
 
第4回勉強会 単体テストのすすめ
第4回勉強会 単体テストのすすめ第4回勉強会 単体テストのすすめ
第4回勉強会 単体テストのすすめ
 
はこだてIKA 第4回勉強会 単体テスト
はこだてIKA 第4回勉強会 単体テストはこだてIKA 第4回勉強会 単体テスト
はこだてIKA 第4回勉強会 単体テスト
 
Rust Error Handling
Rust Error HandlingRust Error Handling
Rust Error Handling
 
JavaScript.Next
JavaScript.NextJavaScript.Next
JavaScript.Next
 
One-Phase Construction
One-Phase ConstructionOne-Phase Construction
One-Phase Construction
 
CMSI計算科学技術特論A(3) OpenMPの基礎
CMSI計算科学技術特論A(3) OpenMPの基礎CMSI計算科学技術特論A(3) OpenMPの基礎
CMSI計算科学技術特論A(3) OpenMPの基礎
 
Elixir-Conf-Japan-2017-session-ohr486
Elixir-Conf-Japan-2017-session-ohr486Elixir-Conf-Japan-2017-session-ohr486
Elixir-Conf-Japan-2017-session-ohr486
 
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
プログラミング言語 Ruby 2章 Rubyプログラムの構造と実行
 
Lt会01_uetch
Lt会01_uetchLt会01_uetch
Lt会01_uetch
 
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
 
Inside FastEnum
Inside FastEnumInside FastEnum
Inside FastEnum
 
C++コンパイラ GCCとClangからのメッセージをお読みください
C++コンパイラ GCCとClangからのメッセージをお読みくださいC++コンパイラ GCCとClangからのメッセージをお読みください
C++コンパイラ GCCとClangからのメッセージをお読みください
 
関西Php勉強会のlimeの話
関西Php勉強会のlimeの話関西Php勉強会のlimeの話
関西Php勉強会のlimeの話
 

【C++BUILDER STARTER チュートリアルシリーズ】シーズン2 C++Builderの部 第1回 ‟シューティングゲームのプログラム„

  • 1. © 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. 第1回 ‟シューティングゲームのプログラム„ シーズン2:プログラミング言語をやさしく覚えよう C++Builderの部
  • 2. 2© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp Delphi / C++Builder Starter チュートリアルシリーズ シーズン2 :2017年1月23日 ~ 3月27日 全 9 回 時間 :毎週 月曜 17 時 00分~17時 50分 Delphi 17時00分~17時20分 / C++Builder 17時30分~17時50分 ねらい :プログラミング言語をやさしく覚えよう シーズン2 第1回 2017年1月23日 シューティングゲームのプログラム 第2回 1月30日 変数と 型 第3回 2月6日 条件 とループ 第4回 2月13日 Function と Procedure (関数と手続き) 第5回 2月20日 配列 と レコード 第6回 2月27日 文字列 と オブジェクト 第7回 3月6日 オブジェクト指向 第8回 3月13日 作ってみよう(仮) 第9回 3月27日 コミュニティ と 勉強会 セミナー情報 : 下記のWebサイト http://forms.embarcadero.com/starter-tutorial-webinar
  • 3. 3© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp 第1回 「シューティングゲームのプログラム」  今日のねらい • シーズン1・シューティングゲーム • プログラムの理解を深める • C++プログラムの基本構成の理解と読み方 • シーズン2で学ぶプログラム言語の概略を俯瞰する  実施内容 • C++ の基本コーディングの確認 • 使用した型、文、関数の確認
  • 4. 4© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp 無料版 C++Builder 10.1 Berlin Starter Edition 入手方法 • シリアルキーを知らせるメール内にも再ダウンロードリンク有 エンバ Web 製品 C++ Builder Starter バナー 登録 Get  無料で使える開発環境をダウンロード EDN*に登録済の方はEDNアカウントでダウンロード可 登録完了後、自動でインストーラーのダウンロード開始 インストール時にシリアルキーを入力 登録時のメールアドレスにシリアルキーが配信される
  • 5. 5© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp 参考資料  シューティングゲーム / シーズン1で作成 • https://github.com/mojeld/embarcadero_jp_shooting_game
  • 6. 6© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp シューティングゲームに入っているプログラム要素  コメント  識別子  ブロック  言語キーワード  プログラムの構造  コンパイラ指令  文
  • 7. 7© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp コメント  コメント • ソースコードのうち、人間が理解することを目的に記述する情報 • プログラムの視認性、可読性を高めるために利用 • コンピュータ(コンパイラ)はコメント部分を無視する void __fastcall TfmShooting_main::Button_missileClick(TObject *Sender) { TRectangle* em_buf_{nullptr}; //敵一旦保存 KanokeBuf = nullptr; //敵保存変数をクリア Button_missile->Enabled = false; Rectangle_missile->Position->Y = Rectangle_player->Position->Y + 25; FloatAnimation_missile->StopValue = missile_max; //ミサイル最終地点設定 FloatAnimation_missile->StartValue = Rectangle_player->Position->X + 20; auto iExPos = missile_max; auto iEnmX = missile_max; for (int i = 0; i < 3; i++) {/*ループで敵3つを順番に撃破可能か調べる*/ switch(i){ case 0: em_buf_ = Rectangle_Enm1; break; case 1: em_buf_ = Rectangle_Enm2; break; case 2: em_buf_ = Rectangle_Enm3; }
  • 8. 8© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp コメント  コメントの書き方の例 /* ここからコメントが始まります。 ここまでコメントです。 */ /* ここからコメントが始まります。 これもコメントです。 ここまでコメントです。 */ /* /* この書き方はできません。ネスト(入れ子)不可。 */ */ // 単一行のコメントです。 /* 単一行コメントをこう書いてもOKです */ /* // 単一行コメントがブロックコメントに // 含まれていても大丈夫です。 // この場合は // も含めてコメントです。 */
  • 9. 9© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp  プログラム上で下記の項目を示す名前 • データ型、変数 • 関数 • オブジェクト、クラス  事前に定義されているもの • 言語キーワード  自分で定義するもの • 変数名、データ型名、 • オブジェクト名… void __fastcall TfmShooting_main::Button_missileClick(TObject *Sender) { TRectangle* em_buf_{nullptr}; //敵一旦保存 KanokeBuf = nullptr; //敵保存変数をクリア Button_missile->Enabled = false; Rectangle_missile->Position->Y = Rectangle_player->Position->Y + 25; FloatAnimation_missile->StopValue = missile_max; //ミサイル最終地点設定 FloatAnimation_missile->StartValue = Rectangle_player->Position->X + 20; auto iExPos = missile_max; auto iEnmX = missile_max; for (int i = 0; i < 3; i++) {/*ループで敵3つを順番に撃破可能か調べる*/ switch(i){ case 0: em_buf_ = Rectangle_Enm1; break; case 1: em_buf_ = Rectangle_Enm2; break; case 2: em_buf_ = Rectangle_Enm3; } auto iTemp = EnmExist(em_buf_); if ((iTemp < missile_max) && (iEnmX > em_buf_->Position->X)) { /*敵の前に敵が居る場合, 手前の敵を優先*/ iExPos = iTemp; KanokeBuf = em_buf_; } if (KanokeBuf != nullptr) {//撃破出来る敵変数に存在するか確認 iEnmX = KanokeBuf->Position->X; } } 識別子
  • 10. 10© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp 識別子に付ける文字種別  使える文字種別 • アルファベット(大文字、小文字は区別されるので、下記2つは別の変数扱い) int CppBuilder ; int cppbuilder ; • アンダースコア _ int Cpp_Builder ; • 数字 int Cpp_Builder_2007 ; Int 2007_Cpp_Builder ; // 最初の1文字を数字で始めることはできない。 • ユニバーサル文字名 Int ¥u30c7¥u30eb¥u30d5¥u30a1¥u30a4 ; // “デルファイ” と記述している。 • 実装依存の文字 int デルファイ ;
  • 11. 11© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp ブロック  複数の文で構成される処理を 明示的にまとめたもので、{ } で囲む  読みやすくするために字下げ (インデント)を行う  ブロックの中で定義された変 数は、そのブロックだけで利 用できる void __fastcall TfmShooting_main::Button_missileClick(TObject *Sender) { TRectangle* em_buf_{nullptr}; //敵一旦保存 KanokeBuf = nullptr; //敵保存変数をクリア Button_missile->Enabled = false; Rectangle_missile->Position->Y = Rectangle_player->Position->Y + 25; FloatAnimation_missile->StopValue = missile_max; //ミサイル最終地点設定 FloatAnimation_missile->StartValue = Rectangle_player->Position->X + 20; auto iExPos = missile_max; auto iEnmX = missile_max; for (int i = 0; i < 3; i++) {/*ループで敵3つを順番に撃破可能か調べる*/ switch(i){ case 0: em_buf_ = Rectangle_Enm1; break; case 1: em_buf_ = Rectangle_Enm2; break; case 2: em_buf_ = Rectangle_Enm3; } auto iTemp = EnmExist(em_buf_); if ((iTemp < missile_max) && (iEnmX > em_buf_->Position->X)) { /*敵の前に敵が居る場合, 手前の敵を優先*/ iExPos = iTemp; KanokeBuf = em_buf_; } if (KanokeBuf != nullptr) {//撃破出来る敵変数に存在するか確認 iEnmX = KanokeBuf->Position->X; } } if( iExPos < (Rectangle_player->Position->X + Rectangle_player->Width)) iExPos = missile_max; //敵がプレーヤーより後ろにいる場合標的から外す FloatAnimation_missile->StopValue = iExPos; //ミサイルの目標値をセット Rectangle_missile->Visible = true; //ミサイルを表示 FloatAnimation_missile->Start(); //ミサイル発射 }
  • 12. 12© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp 言語キーワード  プログラム内で使用するためにあらかじめ用意されている識別子 • データ型、変数の宣言に使われる一例 • char, int, short, long, float, double, signed, unsigned, void, bool, auto • 言語の文に使用されるものの一例 • if, then, else, for, while, do, switch, case, break, continue, try, catch, …… • クラスに関するもの • class, public, protected, private, operator, this
  • 13. 13© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp プログラムの構造  シューティングゲームは5つのファイルから成る Unit1.cpp フォームに関連する処理を実装 したソースコード Unit1.h フォームで実装した関数や変数 に関する定義を記述したファイ ル(ヘッダファイル) Unit1.fmx フォームのデザイン情報。 IDEが自動的に生成する。 shooting_game_cpp.cpp (説明省略) shooting_game_cppPCH1.h (説明省略)
  • 14. 14© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp プログラムの構造  プログラムの構造(抜粋) #include <fmx.h> // マルチデバイスプラットフォーム(FireMonkey) 向けの共通ヘッダーファイルを参照する。 #pragma hdrstop // このヘッダ以降はプリコンパイルを行わない。 #include “Unit1.h” // このフォームのヘッダファイルを参照する。ここでは変数の定義や関数の宣言が行われている。 #pragma package(smart_init) // 関数の実行優先順序に関する指定。(詳細は省略) #pragma resource “*.fmx” // フォームデザインの参照指定 TfmShooting_main *fmShooting_main; // __fastcall は関数の実行に関する規約。ここでは説明は省略します。 // C++Builder では個々の関数にこれをつけるのが基本です。 __fastcall TfmShooting_main::TfmShooting_main(TComponent* Owner) : TForm(Owner) { game_reset(); // ゲームで使用する変数やコンポーネントのプロパティを初期化する処理 } void __fastcall TfmShooting_main::game_reset() // ここから先は関数の定義が続く。宣言は Unit1.h に記述されている。 …
  • 15. 15© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp コンパイラ指令  #include • 別ファイル(主にヘッダファイル)の参照  #define, #undef • マクロ定義と定義解除  #ifdef, #ifndef • マクロ定義の有無に基づくコンパイル処理の切り分け  #if - #elif - #else - #endif • 式の真偽に基づくコンパイル処理の切り分け  #pragma • コンパイラ指令(コンパイラに依存する機能の制御)の設定
  • 16. 16© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp 文  選択文 • if ( 条件 ) 処理 ; • 条件を満たす場合に限って処理を実行する • if ( 条件 ) 処理1 ; else 処理2 ; 条件を満たす場合と満たさない場合の処理に分岐する。 • switch ( 条件 ) { case 1 : 処理1 ; case 2: 処理2 ; } 条件の値によって実行する文を選択する。
  • 17. 17© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp 文  繰り返し文 • while ( 条件 ) { 処理; } 条件が満たされる間は処理を繰り返し実行する。条件は処理の前に評価される。 • do { 処理; } while ( 条件 ) 条件が満たされる間は処理を繰り返し実行する。条件は処理の後に評価される。 • for ( 初期化文 ; 条件 ; 式 ) { 処理; } 条件が満たされる間は処理を繰り返し実行する。文を実行したら最後に式を実行する。 • for ( 変数宣言 ; 値の集合 ) { xxxx ; } 値の集合に含まれる値を変数に1つづつ代入して処理を実行する。
  • 18. 18© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp 文  ジャンプ文 • break 処理を中断して一つ外側のブロックに出る。 • continue 処理を中断してループの先頭に戻る。 • return 実行中の関数を終了して、 関数の呼び出し元に戻る。 do { if ( ) { …. }; switch ( ) { case xx: … continue; case yy: … return; case zz: …. break; default: …. } for () { …. } }
  • 19. 19© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp シューティングゲームに入っているプログラム要素  コメント  識別子  ブロック  言語キーワード  プログラムの構造  コンパイラ指令  文
  • 20. 20© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp 本日のセミナー内容は 弊社ブログに掲載予定 [コミュニティ] ↓ [日本人ブログ] 実施内容の再視聴  皆さんが見ているWebページの下に、順次アップロード  エンバカデロWebサイト : http://forms.embarcadero.com/starter-tutorial-webinar  [リソース] – [イベント]の「Delphi / C++Builder Starter チュートリアルシリーズ」ページ  実施内容サマリー • Community embarcadero (コミュニティ エンバカデロ)にWebリンク、サンプルコード情報等 http://community.embarcadero.com/ 「エンバカデロ」で検索
  • 21. 21© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp  次回のC++Builderパート 1月30日(月)17:30より “変数と型„