23
© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. 第2第 ‟ 第第第第„ 第第第第 2 ププププププププププププププププププ DELPHI 第第

【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„

  • Upload
    -

  • View
    111

  • Download
    2

Embed Size (px)

Citation preview

Page 1: 【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„

© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential.

第 2 回‟ 変数と型„

シーズン 2 :プログラミング言語をやさしく覚えよう

DELPHI の部

Page 2: 【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第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

Page 3: 【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„

3© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp

第 2 回 「変数と型」

今日のねらい• 変数とは何か、型とは何かを知る• 変数と型の使い方を知る

実施内容• 変数とデータ型の宣言• 変数とデータ型の宣言場所と影響範囲• 変数とデータ型の使用• 演算子とは• キャストと型変換

Page 4: 【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„

4© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp

無料版 Delphi 10.1 Berlin Starter Edition 入手方法

• シリアルキーを知らせるメール内にも再ダウンロードリンク有

エンバWeb 製品 Delphi Starter

バナー 登録 Get

無料で使える開発環境をダウンロード

EDN* に登録済の方は EDN アカウントでダウンロード可

登録完了後、自動でインストーラーのダウンロード開始

インストール時にシリアルキーを入力

登録時のメールアドレスにシリアルキーが配信される

Page 5: 【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„

5© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp

変数と型

型(データ型)• どんな種類のデータを入れるかを決めてある形

• 数値なのか、文字なのか。これらの複合である場合もある

変数• データを記憶・保存(代入)させておく、識別子を持った 入れ物

• どんなデータ型を使用するか決めて、名前(識別子)を付けて使用する

Delphi はプログラムで使用する変数を var ブロックで宣言して使用

Page 6: 【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„

6© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp

データ型

整数データ型• 整数(数値)を入れる

• Integer, Uint64 …

浮動小数点データ型• 小数点を含む数値を入れる

• Single, Double, Extended ...

文字列データ型と文字データ型• 文字や、文字の集合(文字列)を入れる

• Char, String …

論理データ型• 論理値( True / False -> 真か偽 ) を入れる・表

• Boolean …

その他のデータ型• Variant, Currency, Array …

Delphi のデータ型の一覧は Docwiki を参照

http://docwiki.embarcadero.com/RADStudio/Berlin/ja/Delphi_のデータ型

Page 7: 【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„

7© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp

宣言

使う前に、変数(入れ物)として識別子を付けて使用する型を指定• プログラム内の var 宣言のブロック内に記述

• 定数はプログラム内の const 宣言ブのロック内に記述

宣言する場所で利用可能(参照可能)な範囲が異なる• interface 部内 var ブロック内で変数の宣言をした場合

• 外部ユニットからも参照可能なグローバル変数となる

• implementation 部直下の var ブロック内で変数の宣言をした場合 • ユニット内で使用可能なグローバル変数

• procedure / function 内の var ブロック内で変数の宣言をした場合 • 手続き、関数内でのみ有効な変数

Page 8: 【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„

8© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp

宣言の例

グローバル変数は宣言時に初期値を代入できます

一方、手続き・関数内変数は宣言時に初期値を入れることは \ できないので実装部で代入

Page 9: 【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„

9© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp

代入

変数にデータを入れる

:= (代入演算子)

[ 代入される変数 ] := [ 代入したいデータ ] の順序で書く

変数の型に合うデータが代入可能

myString := myInteger.ToString // ヘルパーで整数を文字列変換して代入。これは OK

Page 10: 【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„

10© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp

ヘルパー

変数を扱う上で便利な機能 (数値を文字列化する等)

Integer 型ヘルパー / 浮動小数点型ヘルパー

ToString 整数値を文字列に変換

ToBoolean 整数値を Boolean 論理値に変換

ToSingle, ToDouble, ToExtended 整数値を各浮動小数点データ型へ変換

Size 変数が必要とするバイト数を返してくれる

Parse 文字列を数値に変換

TryParse 文字列を数値にするとともに成否を Boolean 型で返してくれる

参考:http://docwiki.embarcadero.com/Libraries/Berlin/ja/System.SysUtils.TIntegerHelper_Methodshttp://docwiki.embarcadero.com/Libraries/Berlin/ja/System.SysUtils.TSingleHelper_Methods

Page 11: 【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„

11© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp

ルーチン

ヘルパー以外にも変数を扱う上で便利な関数

Dec 順序型の変数の値を一つ減らす

Inc 順序型の変数の値を一つ増やす

Odd 奇数の場合 True を返してくれる

Low 順序型の変数の最小値を返してくれる

High 順序型の変数の最大値を返してくれる

Sqr / Sqrt 2乗 / 平方根 の値を返してくれる

参考 docwiki その他の標準ルーチン: https://goo.gl/PZRP5x

Page 12: 【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„

12© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp

ユーザー定義データ型 自分好みのデータ型を作るには、 Type ブロックの宣言後に定義

• ある連続した範囲を入れられるデータ型を作れる「部分範囲」• Type

TOomoji = ‘A’ .. ‘Z’; // 大文字 A から Zだけを代入できる型を定義

TSuuji = 0..9; //0 から 9だけを代入できる型を定義

THyakuketa = 100..999 //100 から 999 までの三桁だけを代入できる型を定義

• 特定の任意の値を保持するデータ型を作れる「列挙型」• TColor = (Red, Yellow, Green, Cyan, Blue, Violet); // 列挙している文字列(色)だけを保持できる型

• TFontStyle = (fsBold, fsNarrow, fsItalic, fsUnderline); // 列挙しているフォントスタイルを保持できる型

• さらに、データ型を複数同時に保持できるようになる「集合型」 “Set of”• TFontStyleSuite = set of TFontStyle; // 複数のフォントスタイル (太文字 +イタリック ) を同時保持

Page 13: 【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„

13© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp

ユーザー定義データ型の使い方

ユーザーデータ型は var ブロックで識別子を付け型指定して使用• var

myColor : TColor; //Type ブロックで定義した TColor の変数識別子を指定

myFontstyles : TFontStyleSuite; // 集合型として定義した TFontStyleSuite を使用

集合型 は複数のデータを保持可能で、集合演算子を使用して組み合わせ可能• MyFontStyles := [TFontStyle.fsBold];• MyFontStyles := MyFontStyles + [TFontStyle.fsItalic, TFontStyle.fsUnderline] -

[TFontStyle.fsBold];• Include / Exclude もある : Include(MyfontStyles, TFontStyle.fsBold);

Page 14: 【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„

14© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp

ユーザー定義データ型の使用例

Type ブロックでユーザーデータ型を定義

var ブロックで使用する変数の識別子と型を宣言

実装部で宣言した識別子に対して代入集合型には演算子も利用して代入

Page 15: 【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„

15© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp

式と演算子 式とは値を返す構文

• 変数一つでも式 ( 変数の保持している値が返る)

• 関数も式 (関数の戻り値が返る)

• 算術式 10-5/2 も式 (計算の結果が返る)• A := X; A := somefunction(); A := 10-5/2; //式は値を戻すのでこんな感じで代入して使える

• If A = X then~ : // この A=X も式。比較演算を使ってBoolean 型の値を返すので if 条件式に使える

演算子は下記のような計算・演算、比較を行うための記号や記述• +, -, *, / … などの計算を行うための算術演算子

• if 文などの条件式を複合的につかうための not, and, or, xor などの論理演算子

• if 文なの条件比較に使われる =, <>, <=, >= などの関係演算子

• := も代入演算子

各演算子は優先度があります。詳しくはDocwiki参照 参考 docwiki : http://docwiki.embarcadero.com/RADStudio/Berlin/ja/式(Delphi)

Page 16: 【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„

16© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp

演算子の一例

算術演算子

比較演算子

演算子 演算 結果の型 例

+ 加算 整数、実数 X + Y

- 減算 整数、実数 Result -1

* 乗算 整数、実数 P * InterestRate

/ 実数除算 実数 X / 2

div 整数除算 整数 Total div UnitSize

mod 剰余 整数 Y mod 6

演算子 演算 結果の型 例

= 等しい Boolean I = Max

<> 等しくない Boolean X <> Y

< より小さい Boolean X < Y

> より大きい Boolean Len > 0

<= 以下 Boolean Cnt <= I

>= 以上 Boolean I >= 1

Page 17: 【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„

17© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp

日付 と 時刻 の型

日付、時間を扱う便利な型• TDateTime

日付、時間操作に便利な関数 関数 ・ ルーチン 説明

Now 現在の日付と時刻を返します

Date 現在の日付を返します。

GetTime 現在の時刻を返します。

DateTimeToStr 日付 / 時刻を表示するローカル設定を使用して、 TDateTime 値を文字列に変換します。

DateToStr TDateTime 値の日付を文字列に変換します。

参考 Docwiki: http://docwiki.embarcadero.com/RADStudio/Berlin/ja/日付および時刻のサポート

関数 ・ ルーチン 説明

TimeToStr TDateTime 値の時間を表す文字列を返します。

FormatDateTime 指定された書式設定で日付・時刻を文字列で返します。

StrToDateTime 日付時刻情報を含む文字列を DateTime に変換します。

DayOfWeek Datetime から曜日に相当する数値を返します

Page 18: 【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„

18© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp

TDateTime の使用例

TDateTIme 型の識別子宣言

Date で今日の日付を代入

DateTimeToStr でmyDatetime に入っている日付情報を文字列化

Page 19: 【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„

19© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp

型のキャスト と 型変換

異なる型には代入できないが、あえて代入する際に使う方法• 数値型においてより大きな入れ物に入れる場合や、整数値を実数型

(浮動小数点型)に入れる場合には、型キャストは必要なく安全に代入可能• Int64 型 ( 整数 ) := Integer ( 整数 );• Single 型 ( 実数 ) := Integer ( 整数 );

• 異なる型に物理的にデータをコピーする方法がキャスト

• 異なる型に関数やルーチンを使って戻される値を使うのが型変換

Page 20: 【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„

20© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp

型のキャスト と 型変換

キャスト :どの型に変化するか型名を書き、カッコでくくる

型変換 : 関数、ルーチン、ヘルパーを使って変換

参考 Docwiki : http://docwiki.embarcadero.com/RADStudio/Berlin/ja/型変換ルーチンhttp://docwiki.embarcadero.com/RADStudio/Berlin/ja/Delphi_組み込みルーチン

コンパイラによる型のエラーチェックが行われない弊害があり、エラー箇所の発見が行いにくくなります

Page 21: 【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„

21© 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/

「エンバカデロ」で検索

Page 22: 【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„

22© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp

第 2 回 「変数と型」まとめ

今日のねらい• 変数とは何か、型とは何かを知る• 変数と型の使い方を知る

実施内容• 変数とデータ型の宣言• 変数とデータ型の宣言場所と影響範囲• 変数とデータ型の使用• 演算子とは• キャストと型変換

Page 23: 【DELPHI / C++BUILDER STARTER チュートリアルシリーズ】 シーズン2 Delphi の部 第2回 ‟変数と型„

23© 2016 Embarcadero Technologies, Inc. All rights reserved. Proprietary and confidential. #embtwebi_jp

次回の Delphi パートは2 月 6 日(月) 17:00 よ

“条件 とループ„ このあと

• リアルタイム放送限定 特別コンテンツ

• C++ パート