Embarcadero Developer Camp
|
|
|
- ちえこ おいもり
- 7 years ago
- Views:
Transcription
1 17 Th Developer Camp T5 Delphi テクニカルセッション Delphi 言語 再 入門ビギナーからエキスパートまで! 意外と知らない言語機能や落とし穴 株式会社シリアルゲームズ取締役細川淳 1
2 17 Th Developer Camp 1 Delphi ソースの構造 2
3 Delphi ソースの構造 プロジェクトファイル (.dpr) ユニット (.pas) リソースファイル (.dfm など ) 基本的にはこの 3 つのファイルでできています ここでは プロジェクトファイルとユニットファイルを説明します 3
4 Delphi プロジェクトファイル Project File にメインルーチンがあります 拡張子 : dpr (Delphi PRoject) program sample; uses Windows, Forms, {$R *.res} Application.Initialize; Application.MainFormOnTaskbar := True; Application.CreateForm(TfrmMain, frmmain); Application.Run; end. 4
5 Delphi プロジェクトファイル 予約語 program program はプログラムの開始を宣言します 純粋な pascal には program (input, output) といった入出力宣言が必要でした Delphi では無視されます - end. program のブロックを示します で開始して end. で終了です. が重要です. はソースの終端を表します 5
6 Delphi プロジェクトファイル end. 以降には何を書いても無視されます Delphi XE 等では下記の警告が発生します [DCC 警告 ] *.dpr(40): W1011 'END' 以降へのテキストの記述 コンパイラはこれらを無視する program sample; ( 中略 ) ( 中略 ) end. この文章は無視されて コンパイルは正常に終了します 昔はここにプログラムの意図やメモを書いたりする場合もありました 現在は プログラムの最初にコメント文を入れることの方が主流です また Delphi であれば ToDo などのツールも使えます 6
7 ユニットファイル ユニットファイルにはフォームなどの機能単位に分かれたプログラムを書きます 拡張子 : pas unit ファイルも最後は end. っで終わります 7
8 ユニットファイル unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs; type TForm2 = class(tform) private public var Form2: TForm2; implementation {$R *.dfm} end. 8
9 ユニットファイルの構造 interface 宣言部です ここでクラスや関数 変数を宣言します ここで宣言したクラスや関数は 他のユニットから参照できます C/C++ で言うところのヘッダファイルのような物です Pascal は宣言が先にないとコンパイルできないため 次のようなコードの書き方があります 9
10 ユニットファイルの構造 互いに参照し合うクラスは このように自分は class であるとだけ 宣言することができます 似たような物に forward 宣言があります forward 宣言は関数について 先に宣言する物です type TContainer = class; TItem= class private Container : TContainer; TContainer = class private Item: TItem; 10
11 ユニットファイルの構造 implementation 実現部です ここで interface 部で宣言したクラスや関数を実装します もちろん implementation 部でも関数やクラスを宣言できます implementation 部で宣言したクラスや関数は このユニットの中でしか参照できません 11
12 ユニットファイルの構造 初期化部と終了処理部 initialization 初期化部 初期化部はユニットがロードされたとき実行されます ロードには順序があります finalization 終了処理部 終了処理部はユニットのロードの基本的には逆順序で実行されます 12
13 ユニットファイルの構造 unit exapmle; interface ( 中略 ) implemenation ( 中略 ) initialization CoInitialize(nil); finalization CoUninitialize; end. 初期化部と終了処理部の例 13
14 ユニットファイルの利用 uses uses を使ってユニットファイルを利用します uses で取り込んだユニットの interface 部で宣言したクラスや関数 変数を利用できます ここで注意したいのは循環参照です 14
15 ユニットファイルの利用 循環参照の例 interface 部で互いに uses しあうと循環参照エラーが発生します implementation 部で uses しあってもエラーは起きません unit exapmle1; interface uses example2; unit exapmle2; interface uses example1; 15
16 ユニットファイルの利用 循環参照の解消 interface 部で循環参照してしまう時は 型 変数 などを互いに利用したいときがほとんどです その場合は common.pas などのユニットを作り このユニットを利用するようにします 16
17 ユニットファイルの利用 unit common; interface type TTest = class unit exapmle1; interface uses common; unit exapmle2; interface uses common; 17
18 ユニットファイルの再帰的な構造 ユニットファイルは - 宣言部 型宣言 変数宣言 関数の宣言 実現部 という構造をしています これらは再帰的な構造としてみることもできます 18
19 ユニットファイルの再帰的な構造 procedure Test; type TSampleStr = AnsiString(2022); var Str: TSampleStr; procedure InnerProc; var Str: String; ( 中略 ) ( 中略 ) 19
20 17 Th Developer Camp Delphi 言語の 基礎知識 20
21 予約語と指令 予約語 予約語は for や if などコンテキストに関わらず単体で意味をなす単語です 指令 指令は 特定の予約語と一緒に使われるときに意味をなす単語です たとえば property sample: String read FSample write SetSample; property は予約語で read write は指令です 指令は変数名などに使用できますが 混乱の元となるので指令と同じ名前をつけるのは避けた方が良いでしょう 21
22 コンパイラ指令 コンパイラ指令 コンパイラ指令は コンパイラに対して特別な処理をさせるための指令です たとえば {$R *.res} は コンパイル済みユニットファイル (.dcu) にリソースファイルを含める指示をしています 22
23 呼び出し規約 呼び出し規約とは 関数を呼んだときに スタックやレジスターをどのように使うかを指示します たとえば register 規約は 引数をレジスタに入れて渡すように指示します register (BCCでは fastcall)( デフォルト ) pascal cdecl stdcall safecall などがあります 23
24 シンボル シンボルとは 単体で意味を持つ記号です 以下の記号がシンボルです 特殊シンボルというものもあります これは 昔フルキーボードが一般的では無かった時代に 1 つのシンボルを 2 つのシンボルで表すために使われました 特殊シンボル [ (. ].) { (* 相当するシンボル } *) 24
25 シンボル 特殊シンボル コメントを意味する { } と (* *) の 2 つの記号は独立して使用できるので 以下のような記述が可能です (* ここはコメントです { } ここはコメントですが (* 記号によって { なども意味をなしません ここもコメントです *) 25
26 型 Delphi 言語は型に非常に厳しい言語です これは Pascal から引き継いだ性格です ここでは いくつかの型を紹介します 26
27 クラス型 class で宣言します class は 変数 定数 型 関数といった ある一連の作業を行う単位 を定義します オブジェクト指向の重要な機能です class には可視性というものがあり 可視性によってアクセス制御を実現します 27
28 クラス型 private 自身と同じユニットの中から参照できます C++ で言うところの friend のように扱うこともできます strict private これは純粋に自身からしか参照できません protected 自身と継承先のクラスから参照できます private と同じように同じユニットからも参照できます strict protected 自身と継承先でしか参照できません 28
29 クラス型 public ソースレベルでこのクラスを参照できれば 誰でも参照できます published ここで宣言されたプロパティなどについては RTTI 情報が生成され RTTI を参照できれば 誰でも参照できます Object Inspector でコンパイル済みのコンポーネントのプロパティをいじれるのは この可視性によって RTTI が公開されているからです 29
30 クラスリファレンス型 クラスリファレンスはメタクラスとも言われます クラスを表す型です 30
31 クラスリファレンス型 たとえば こんな風に使えます TTest = class public procedure Show; virtual; abstract; TTestRef = class of TTest; TTest1 = class(ttest) public procedure Show; override; TTest2 = class(ttest) public procedure Show; override; 31
32 クラスリファレンス型 procedure TTest1.Show; ShowMessage('Test1'); procedure TTest2.Show; ShowMessage('Test2'); procedure ShowTest(iRef: TTestRef); var Test: TTest; Test := iref.create; Test.Show; procedure TForm2.FormCreate(Sender: TObject); ShowTest(TTest1); ShowTest(TTest2); 32
33 インターフェース型 interface 型はメソッドとプロパティの定義のみを示し 実装は class 型に任せます interface を利用すると 実装はどうあれ interface で定義されたメソッドの存在が約束されます 33
34 インターフェース型 type ITest = interface procedure Show; TTest1 = class(tinterfacedobject, ITest) public procedure Show; TTest2 = class(tinterfacedobject, ITest) public procedure Show; 34
35 インターフェース型 procedure TTest1.Show; ShowMessage('Test1'); procedure TTest2.Show; ShowMessage('Test2'); procedure TForm2.FormCreate(Sender: TObject); var Test: TTest1; TestIntf: ITest; Test := TTest1.Create; TestIntf := Test; TestIntf.Show; 35
36 集合型 集合型は 集合を表す型です 列挙型を要素として集合型を定義します 集合はビットで値を表します 集合要素が 8 個しかない場合 8bit なので 1byte で表されます そこで 8 個以内の要素しかない集合は Byte 型でキャストできます 同様に 16 個であれば Word, 32 個であれば DWord 型でキャストできます type TItem = (tione, titwo, tithree); TItems = set of TItem; Byte(TItem) 36
37 ポインタ型 ポインタは アドレスを表す型です ポインタでは 変数のアドレス 関数のアドレス メソッドのアドレス ( イベント クロージャ ) を表すことができます Delphi 言語では C++ などと比べて関数やメソッドへのポインタを簡単に定義できます 37
38 ポインタ型 unit Unit2; interface type PTest = ^TTest; // ポインタの定義では このように TTest の定義が先になくても OK TTest = packed record Name: String; Age: Integer; Data: packed array [0.. 9] of Byte; TForm2 = class(tform) procedure FormCreate(Sender: TObject); private function ShowName(iTest: PTest): String; 38
39 ポインタ型 implementation type TFunc = function(itest: PTest): String of object; procedure TForm2.FormCreate(Sender: TObject); var Test: PTest; Func: TFunc; Func := ShowName; New(Test); try Test^.Name := 'Asuka'; Test^.Age := 14; Func(Test); finally Dispose(Test); function TForm2.ShowName(iTest: PTest): String; ShowMessage(iTest^.Name); end. 39
40 17 Th Developer Camp Delphi 言語の 新機能 40
41 ジェネリクス ジェネリクスとは 型を柔軟に扱う機構です 仮の型を指定して 使うときに型を指定します type TTest<T> = record Data: T; procedure TForm2.FormCreate(Sender: TObject); var StrTest: TTest<String>; IntTest: TTest<Integer>; StrTest.Data := ' データ '; IntTest.Data := 10; 41
42 無名メソッド 無名メソッド ( クロージャ ) は最近の言語のトレンドです Script 言語でよく見る書き方を使用できます 無名メソッドはプロシージャや関数レベルで多態性を確保します また 特筆すべきは関数内関数と同じようにコンテキスト内の変数などにアクセスできます 42
43 無名メソッド type TProcRef = reference to procedure (Str: String); procedure Sample1; var Proc: TProcRef; Proc := procedure (Str: String) ShowMessage(Str); Proc('Sample1'); 43
44 無名メソッド procedure Sample2; var Name: String; procedure Call(iProc:TProcRef); iproc('2'); Name := 'Sample'; Call(procedure (Str: String) ShowMessage(Name + Str); end ); 44
45 class helper class helper はクラスの拡張を手助けします helper 対象のクラスを変更せずにクラスを拡張できます.NET の拡張メソッドや Objective-C の category のような機能です 別のユニットに class helper を定義しておいて 必要な時だけ そのユニットを uses します 45
46 class helper type TObjectHelper = class helper for TObject private function GetInstance: TObject; public property Instance: TObject read GetInstance; function TObjectHelper.GetInstance: TObject; Result := Self; 46
47 class helper procedure TForm2.FormCreate(Sender: TObject); procedure Show(iSL: TStringList); ShowMessage(iSL.Text); with TStringList.Create do try Add('Test'); Show(Instance as TStringList); finally Free; 47
48 演算子のオーバーロード Delphi 2007 から 演算子のオーバーロードが実装されています C++ の演算子のオーバーロードとほとんど同じです type TTest = record private FValue: Integer; public class operator Add(a, b: TTest): Integer; constructor Create(iVal: Integer); reintroduce; property Value: Integer read FValue; 48
49 演算子のオーバーロード constructor TTest.Create(iVal: Integer); FValue := ival; class operator TTest.Add(a, b: TTest): Integer; Result := a.value + b.value; procedure TForm2.FormCreate(Sender: TObject); var Test1: TTest; Test2: TTest; Test1 := TTest.Create(1); Test1 := TTest.Create(2); ShowMessage(IntToStr(Test1 + Test2)); 49
50 関数のインライン化 関数をインライン化できるようになりました インライン化された関数は関数を呼び出すコードの代わりに 関数本体が展開されます ただし これはコンパイラへの提案であり 必ずインライン化されるわけではありません procedure Test; inline; ShowMessage('Test'); procedure TForm2.FormCreate(Sender: TObject); Test; // ShowMessage('Test') が展開される? 50
51 for in do for in do 文が追加されました for in do が使える代表的な型を示します 配列 文字列 集合 クラス TList などが対応しています 51
52 for in do 集合型の例 procedure TForm2.FormCreate(Sender: TObject); type TTest = (One, Two, Three); TTests = set of TTest; const CTest: array [TTest] of String = ('One', 'Two', 'Three'); var Tests: TTests; Test: TTest; Tests := [One, Three]; for Test in Tests do ShowMessage(CTest[Test]); 52
53 クラス型の拡張 クラス型には以下の機能が追加されました abstract class sealed class クラス定数 クラス変数 ネストクラス final メソッド sealed メソッド 53
54 その他 DLL のインポートでは delayed 指令が実装されました procedure Test; external 'test.dll' name 'Test' delayed; Exit 関数に Result 値をわたせるようになりました Result := 10; Exit; Exit(10); 54
55 17 Th Developer Camp 付録 55
56 豆知識 for 文の制御変数にはローカル変数しか使用できず 変更もできません procedure Test; var i: Integer; procedure Add10(iInt: Integer); var i: Integer; Val: Integer; for i := 1 to 10 do Inc(Val, iint); ShowMessage(IntToStr(Val); for i := 1 to 10 do Add10(i); 56
57 豆知識 if then 文と if then else 文は違う文なので else の前の式にはセミコロンを付けられない if (A = 1) then ShowMessage('1') else ShowMessage('not 1'); end が続くセミコロンは省略できる function TForm2.ShowName(iTest: PTest): String; ShowMessage(iTest^.Name) // 省略できるが付いていた方が見やすい end. 57
58 豆知識 absolute 宣言 変数のアドレスを指定することができます 例えば SysUtils.pas には以下のようなコードがあります var FormatSettings: TFormatSettings absolute CurrencyString; CurrencyString の宣言 var CurrencyString: string deprecated 'Use FormatSettings.CurrencyString'; CurrencyFormat: Byte deprecated 'Use FormatSettings.CurrencyFormat'; : : TFormatSettings の宣言 type TFormatSettings = record public CurrencyString: string; CurrencyFormat: Byte; : : 58
59 17 Th Developer Camp Q & A 59
1 シミュレーションとは何か?
Delphi P.1/16 Delphi Delphi Object Pascal Delphi Delphi Delphi (Borland) Windows Turbo Pascal Pascal Delphi Turbo Pascal Windows Pascal FORTRAN BASIC Java Algol Algol Pascal Pascal Pascal Pascal Delphi
Microsoft PowerPoint - DELPHI�礔.ppt
Delphi コンポーネントの基礎 Delphi の基本のさわり プログラム関連のファイルの説明 コンポーネント関連のファイルの説明 プロパティエディタ関連のファイルの説明 クラスのアクセス権の説明 クラスツリーの抜粋とファイル拡張子の説明 ちょっと作りましたコンポーネント 簡単便利なコンポーネントの実演説明 ( トラブルなければ ) 文責 寺口隆 Delphi のファイルと構文 ( プログラム ).dproj
24th Developer Camp B1
17 Th Developer Camp B1 Delphi チュートリアルセッション Delphi で学ぶ楽しいプログラミング基礎 デキるプログラマになる第一歩 株式会社シリアルゲームズ 細川淳 1 アジェンダ オブジェクト指向について Class について 付録 :Interface について 2 17 Th Developer Camp 1 OOP について 3 OOP とは? OOP = Object
<リスト1> AD コンバータへのデータの出力例 NEC PC98 用 mov al,22h // CLK -> 1, CS -> 0, DI -> 0 out 32h,al // シリアル ポートにデータ出力 PC/AT 互換機用 mov al,00h // CLK -> 1 mov dx,3fb
AD コンバータへのデータの出力例 NEC PC98 用 mov al,22h // CLK -> 1, CS -> 0, DI -> 0 out 32h,al // シリアル ポートにデータ出力 PC/AT 互換機用 mov al,00h // CLK -> 1 mov dx,3fbh out dx al // シリアル ポートにデータ出力 mov al,03h // CS -> 0,
.NETプログラマー早期育成ドリル ~VB編 付録 文法早見表~
.NET プログラマー早期育成ドリル VB 編 付録文法早見表 本資料は UUM01W:.NET プログラマー早期育成ドリル VB 編コードリーディング もしくは UUM02W:.NET プログラマー早期育成ドリル VB 編コードライティング を ご購入頂いた方にのみ提供される資料です 資料内容の転載はご遠慮下さい VB プログラミング文法早見表 < 基本文法 > 名前空間の定義 Namespace
21st Embarcadero Developer Camp
17 Th Developer Camp T2 テクニカルセッション 実践!Delphi デバッグテクニック 株式会社シリアルゲームズ 取締役細川淳 1 17 Th Developer Camp 1 IDE 統合デバッガ 2 Delphi の IDE 統合デバッガ IDE 統合デバッガについて 表示 デバッグ で表示される項目ごとに見ていきます 3 17 Th Developer Camp 1 ブレークポイント一覧
Java知識テスト問題
Java 知識テスト SDAS プログラマ(Java 編 ) 運営事務局 このテストは J2EE プログラマとしての Java の知識を評価するものです 問題は 30 問, テスト時間は J2EE 知識テストとあわせて 90 分です 問題は全て択一式です 選択肢から 1 つだけ選択してください 資料の閲覧は禁止です テストが終わり次第 答案用紙を提出していただいてかまいません テスト終了後, 本テストの内容を他の方に話さないでください
L N P Y F C T V W Z I X Pentomino Form Name Caption Position FormMain podesktopcenter
1. 1 1 1.1 5 12 60 3 20 4 15 5 12 6 10 12 L N P Y F C T V W Z I X 1.1.1 1.2 Pentomino 1.2.1 Form Name Caption Position FormMain podesktopcenter 1.2.2 unit PentominoU; interface uses Windows, Messages,
22nd Embarcadero Developer Camp G6
17 Th Developer Camp ライトニングトーク WMI を もっと使おう! 株式会社シリアルゲームズ 取締役細川淳 1 WMI? WMI とは Windows Management Instrumentation の略 Windows Driver Model の拡張の一種 Windows が管理する情報へのインターフェース 例えば CPU の情報であったり 物理ハードディスクの情報などなどが取れます
Microsoft PowerPoint - はじめてのDataSnapアプリケーション_
第 27 回エンバカデロ デベロッパーキャンプ A2 Delphi/C++Builder テクニカルセッション はじめての DataSnap 2013 年 X 月 X 日 田中芳起 Ver.1.0.0 1 http://www.avsoft.jp DataSnap の概要 多層型のデータベースアプリケーションを構築するためのフレームワーク Delphi3 で実装された技術で Delphi5 までは
24th Embarcadero Developer Camp
17 Th Developer Camp B4 Delphi/C++Builder テクニカルワークショップ Delphi / C++Builder 旧バージョンアプリケーションの移行 エンバカデロ テクノロジーズサポートチーム with 高橋智宏 1 17 Th Developer Camp Delphi Q1 2 midas.dll Q. 別々のバージョンで作成したデータベースアプリケーションがあります
Java, Delphi, C++Builderユーザのためのメモリリーク, ボトルネックの検出手順
チュートリアルセッション #2 Java, Delphi, C++Builder ユーザのためのメモリリーク, ボトルネックの検出手順 講師紹介 高橋智宏 1973 年生まれ 京都大学法学部卒 エバンジェリスト兼コンサルタント兼トレーナー 学生の時購入したTurboC++2ndからの熱狂的なボーランドファン 参加しているメーリングリストやコミュニティ JBuilder ML,C++Builder ML,Delphi
プログラミング基礎I(再)
山元進 クラスとは クラスの宣言 オブジェクトの作成 クラスのメンバー フィールド 変数 配列 メソッド メソッドとは メソッドの引数 戻り値 変数の型を拡張したもの 例えば車のデータベース 車のメーカー 車種 登録番号などのデータ データベースの操作 ( 新規データのボタンなど ) プログラムで使う部品の仕様書 そのクラスのオブジェクトを作ると初めて部品になる 継承 などの仕組みにより カスタマイズが安全
第 2 章インタフェース定義言語 (IDL) IDL とは 言語や OS に依存しないインタフェース定義を行うためのインタフェース定義言語です CORBA アプリケーションを作成する場合は インタフェースを定義した IDL ファイルを作成する必要があります ここでは IDL の文法や IDL ファイ
第 2 章インタフェース定義言語 (IDL) IDL とは 言語や OS に依存しないインタフェース定義を行うためのインタフェース定義言語です CORBA アプリケーションを作成する場合は インタフェースを定義した IDL ファイルを作成する必要があります ここでは IDL の文法や IDL ファイルの作成方法 コンパイル方法について説明します IDL ファイルの作成にあたっては INTERSTAGE
intra-mart Accel Platform — IM-Repository拡張プログラミングガイド 初版
Copyright 2018 NTT DATA INTRAMART CORPORATION 1 Top 目次 1. 改訂情報 2. はじめに 2.1. 本書の目的 2.2. 対象読者 2.3. サンプルコードについて 2.4. 本書の構成 3. 辞書項目 API 3.1. 最新バージョン 3.1.1. 最新バージョンの辞書を取得する 3.2. 辞書項目 3.2.1. 辞書項目を取得する 3.2.2.
Webコンポーネントのカスタマイズ入門
佐田雄一 株式会社ミガロ. システム事業部システム 1 課 Web コンポーネントのカスタマイズ入門カスタムコンポーネントを開発できれば さらなる Web 開発の効率化が見込める VCL for the Web ならではのカスタムコンポーネント作成手法を述べる はじめに カスタムコンポーネントを利用するメリット Ajax JavaScript との連携 数値専用 WebEdit の作成例 まとめ 略歴
Microsoft PowerPoint - CproNt02.ppt [互換モード]
第 2 章 C プログラムの書き方 CPro:02-01 概要 C プログラムの構成要素は関数 ( プログラム = 関数の集まり ) 関数は, ヘッダと本体からなる 使用する関数は, プログラムの先頭 ( 厳密には, 使用場所より前 ) で型宣言 ( プロトタイプ宣言 ) する 関数は仮引数を用いることができる ( なくてもよい ) 関数には戻り値がある ( なくてもよい void 型 ) コメント
構造体
構造体 Byte 配列 構造体とコピーする方法 構造体とバイト配列の変換を行うには System.Runtime.InteropServices 名前空間をインポートして置くと便利で有る Imports System.Runtime.InteropServices using System.Runtime.InteropServices; 下記の 3 種類の構造体にバイト配列の値を格納した場合に付いて検証する
Pascal Pascal Free Pascal CPad for Pascal Microsoft Windows OS Pascal
Pascal Pascal Pascal Free Pascal CPad for Pascal Microsoft Windows OS 2010 10 1 Pascal 2 1.1.......................... 2 1.2.................. 2 1.3........................ 3 2 4 2.1................................
sinfI2005_VBA.doc
sinfi2005_vba.doc MS-ExcelVBA 基礎 (Visual Basic for Application). 主な仕様一覧 () データ型 主なもの 型 型名 型宣言文字 長さ 内容 整数型 Integer % 2 バイト -32,768 32,767 長整数型 Long & 4 バイト -2,47,483,648 2,47,483,647 単精度浮動小数点数 Single 型!
Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y 小幡智裕
Java Script プログラミング入門 3-6~3-7 茨城大学工学部情報工学科 08T4018Y 小幡智裕 3-6 組み込み関数 組み込み関数とは JavaScript の内部にあらかじめ用意されている関数のこと ユーザ定義の関数と同様に 関数名のみで呼び出すことができる 3-6-1 文字列を式として評価する関数 eval() 関数 引数 : string 式として評価する文字列 戻り値 :
生成された C コードの理解 コメント元になった MATLAB コードを C コード内にコメントとして追加しておくと その C コードの由来をより簡単に理解できることがよくありま [ 詳細設定 ] [ コード外観 ] を選択 C コードのカスタマイズ より効率的な C コードを生成するベストプラクテ
MATLAB コードを使用した C コードの生成クイックスタートガイド (R2012a) 最初のスタンドアロン C コードの生成 スタンドアロン C コードを生成するには MATLAB Coder のペインを [ ビルド ] に切り替えて [C/C++ スタティックライブラリ ] [C/C++ ダイナミックライブラリ ] または [C/C++ 実行ファイル ] のいずれかを選択しま MATLAB Coder
知って得する!現役ヘルプデスクが答えるDelphiテクニカルエッセンス 9.0
セッション No.3 知って得する! 現役ヘルプデスクが答える Delphi テクニカルエッセンス 9.0 株式会社ミガロ. RAD 事業部技術支援課 吉原泰介 アジェンダ お客様より年間 1,000 件以上お問合せ頂いているテクニカルサポートからの技術フィードバック! Q1. PageControl 応用テクニック Q2. DLL モジュールの開発手法 Q1. PageControl 応用テクニック
(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド
メソッド ( 教科書第 7 章 p.221~p.239) ここまでには文字列を表示する System.out.print() やキーボードから整数を入力する stdin.nextint() などを用いてプログラムを作成してきた これらはメソッドと呼ばれるプログラムを構成する部品である メソッドとは Java や C++ などのオブジェクト指向プログラミング言語で利用されている概念であり 他の言語での関数やサブルーチンに相当するが
メディプロ1 Javaプログラミング補足資料.ppt
メディアプロジェクト演習 1 Javaプログラミング補足資料 l Javaとは l JavaScript と Java 言語の違い l オブジェクト指向 l コンストラクタ l 継承 抽象クラス 本資料内のページ番号は, 以下の参考書のページを引用している高橋麻奈 : やさしい Java, ソフトバンククリエイティブ (2,625 円 ) はじめに l プログラミング言語とは? l オブジェクト指向とは?
Javaの作成の前に
メディアプロジェクト演習 1 参考資料 Javaとは JavaScript と Java 言語の違い オブジェクト指向 コンストラクタ サーブレット 本資料内のページ番号は, 以下の参考書のページを引用している 高橋麻奈 : やさしい Java, ソフトバンククリエイティブ (2,625 円 ) はじめに プログラミング言語とは? オブジェクト指向とは? Java 言語とは? JavaとJavaScriptの違いとは?
JavaプログラミングⅠ
Java プログラミング Ⅰ 12 回目クラス 今日の講義で学ぶ内容 クラスとは クラスの宣言と利用 クラスの応用 クラス クラスとは 異なる複数の型の変数を内部にもつ型です 直観的に表現すると int 型や double 型は 1 1 つの値を管理できます int 型の変数 配列型は 2 5 8 6 3 7 同じ型の複数の変数を管理できます 配列型の変数 ( 配列変数 ) クラスは double
Visual Basic 資料 電脳梁山泊烏賊塾 コレクション初期化子 コレクション初期化子 初めに.NET 版の Visual Basic では 其れ迄の Visual Basic 6.0 とは異なり 下記の例の様に変数宣言の構文に 初期値を代入する式が書ける様に成った 其の際 1 の様に単一の値
コレクション初期化子 コレクション初期化子 初めに.NET 版の Visual Basic では 其れ迄の Visual Basic 6.0 とは異なり 下記の例の様に変数宣言の構文に 初期値を代入する式が書ける様に成った 其の際 1 の様に単一の値 ( 此処では 10) を代入する丈でなく 2 の配列変数の宣言の様に ブレース { } の中にカンマ区切りで初期値のリストを記述し 配列の各要素に初期値を代入出来る様に成った
ガイダンス
情報科学 B 第 2 回変数 1 今日やること Java プログラムの書き方 変数とは何か? 2 Java プログラムの書き方 3 作業手順 Java 言語を用いてソースコードを記述する (Cpad エディタを使用 ) コンパイル (Cpad エディタを使用 ) 実行 (Cpad エディタを使用 ) エラーが出たらどうしたらよいか??? 4 書き方 これから作成する Hello.java 命令文 メソッドブロック
Embarcadero Developer Camp
17 Th Developer Camp B2 Delphi テクニカルセッション 見た目で楽しい Delphi プログラミング 会社名株式会社シリアルゲームズ 名前細川淳 1 アジェンダ VCL / FireMonkey のスタイルの触りを紹介します VCL スタイル TStyleManager FireMonkey スタイル TStyleBook 2 17 Th Developer Camp 1
プロセス間通信
プロセス間通信 プロセス間通信 (SendMessage) プロセス間通信とは 同一コンピューター上で起動して居るアプリケーション間でデータを受け渡し度い事は時々有る Framework には リモート処理 と謂う方法でデータの受け渡しを行なう方法が有る 此処では 此の方法では無く 従来の方法の API を使用したプロセス間通信を紹介する 此の方法は 送信側は API の SendMessage で送り
Microsoft PowerPoint - chap10_OOP.ppt
プログラミング講義 Chapter 10: オブジェクト指向プログラミング (Object-Oriented Programming=OOP) の入り口の入り口の入り口 秋山英三 F1027 1 例 : 部屋のデータを扱う // Test.java の内容 public class Test { public static void main(string[] args) { double length1,
Java講座
~ 第 1 回 ~ 情報科学部コンピュータ科学科 2 年竹中優 プログラムを書く上で Hello world 基礎事項 演算子 構文 2 コメントアウト (//, /* */, /** */) をしよう! インデントをしよう! 変数などにはわかりやすい名前をつけよう! 要するに 他人が見て理解しやすいコードを書こうということです 3 1. Eclipse を起動 2. ファイル 新規 javaプロジェクト
Java言語 第1回
Java 言語 第 2 回簡単な Java プログラムの作成と実行 知的情報システム工学科 久保川淳司 [email protected] 簡単な Java プログラム Java プログラムのファイル名 Java プログラムのファイル名命名ルール ファイル名とクラス名は同じでなければならない HelloJava.java public class HelloJava { public
オブジェクト指向プログラミング・同演習 5月21日演習課題
オブジェクト指向プログラミング 同演習 5 月 21 日演習課題 問題 1 配列の例外処理例外が発生する可能性のある処理を try で囲み その後に catch で例外を捕捉します 例外処理の終了処理として finally が行われます これは書かなくて自動的に行われます 提出課題 1 (Kadai052301.java) 以下のプログラムは例外処理をしていない ArrayIndexOutOfBoundsException
Microsoft Word - VBA基礎(6).docx
あるクラスの算数の平均点と理科の平均点を読み込み 総点を計算するプログラムを考えてみましょう 一クラスだけ読み込む場合は test50 のようなプログラムになります プログラムの流れとしては非常に簡単です Sub test50() a = InputBox(" バナナ組の算数の平均点を入力してください ") b = InputBox(" バナナ組の理科の平均点を入力してください ") MsgBox
Microsoft Word - matlab-coder-code-generation-quick-start-guide-japanese-r2016a
MATLAB コードを使用した C コードの生成クイックスタートガイド (R2016a) 最初のスタンドアロン C コードの生成 スタンドアロン C コードを生成するには [ ビルド ] を [ ソースコード ] [ スタティックライブラリ ] [ ダイナミックライブラリ ] または [ 実行ファイル ] のいずれかに切り替えます MATLAB Coder を使用することで MATLAB コードから
Delphi/400最新プログラム文法の活用法
尾崎浩司 株式会社ミガロ. RAD 事業部営業 営業推進課 [Delphi/400] Delphi/400 最新プログラム文法の活用法 はじめに 文法の高度な機能 (Delphi/400 Ver.2009 以降 ) 最新文法活用 TIPS(Delphi/400 Ver.2010 以降 ) まとめ 略歴 1973 年 8 月 16 日生まれ 1996 年三重大学工学部卒業 1999 年 10 月株式会社ミガロ.
Developer Camp
2F Delphi/C++ チュートリアルセッション Delphi でキカイを制御する アプリケーションの設計とテクニック 株式会社イマジオム代表取締役 高木太郎 1 はじめに この講演の内容 制御プログラムというもの 制御プログラム設計のポイント 制御プログラム実装のテクニック 3 どんなものを考えているのか? 例 :3 次元プリンタ ここに入っている PC がシステム全体を制御 3 次元プリンタ原理
ファイル操作-バイナリファイル
ファイル操作 バイナリ ファイルを読み書きする バイナリファイル ( 即ちテキストファイル以外のファイル ) を読み書きするには FileStream クラス (System.IO 名前空間 ) を利用する FileStream クラスはファイル用のストリームをサポートするクラスで有り Stream クラス (System.IO 名前空間 ) の派生クラスの 1 つで有る 基本的には コンストラクタで指定したファイルのストリームに対して
情報工学実験 C コンパイラ第 2 回説明資料 (2017 年度 ) 担当 : 笹倉 佐藤
情報工学実験 C コンパイラ第 2 回説明資料 (2017 年度 ) 担当 : 笹倉 佐藤 2017.12.7 前回の演習問題の解答例 1. 四則演算のできる計算機のプログラム ( 括弧も使える ) 2. 実数の扱える四則演算の計算機のプログラム ( 実数 も というより実数 が が正しかったです ) 3. 変数も扱える四則演算の計算機のプログラム ( 変数と実数が扱える ) 演習問題 1 で行うべきこと
コンピュータ工学講義プリント (7 月 17 日 ) 今回の講義では フローチャートについて学ぶ フローチャートとはフローチャートは コンピュータプログラムの処理の流れを視覚的に表し 処理の全体像を把握しやすくするために書く図である 日本語では流れ図という 図 1 は ユーザーに 0 以上の整数 n
コンピュータ工学講義プリント (7 月 17 日 ) 今回の講義では フローチャートについて学ぶ フローチャートとはフローチャートは コンピュータプログラムの処理の流れを視覚的に表し 処理の全体像を把握しやすくするために書く図である 日本語では流れ図という 図 1 は ユーザーに 0 以上の整数 n を入力してもらい その後 1 から n までの全ての整数の合計 sum を計算し 最後にその sum
intra-mart Accel Platform — IM-BloomMaker プログラミングガイド 初版
Copyright 2019 NTT DATA INTRAMART CORPORATION 1 Top 目次 1. 改訂情報 2. はじめに 2.1. 本書の目的 2.2. 対象読者 2.3. サンプルコードについて 2.4. 本書の構成 3. 前処理プログラム 3.1. 前処理を実装する 3.1.1. 前処理の実装方式 3.1.2. 前処理の実行順序と引数 3.1.3. リクエストパラメータの解析
PowerPoint プレゼンテーション
プログラマー勉強会 1 回 basic.h 補足 [ 修飾子 ] const 付けた変数は初期化以外で値を設定することができなくなる 定数宣言に使う unsigned 付けた変数は符号がなくなり 正の値しか設定できない [ 条件コンパイル ] #ifdef M ここ以前に M がマクロとして定義されていれば ここ以下をコンパイルする #ifndef M ここ以前に M というマクロが定義されていなければ
Javaセキュアコーディングセミナー2013東京第1回 演習の解説
Java セキュアコーディングセミナー東京 第 1 回オブジェクトの生成とセキュリティ 演習の解説 2012 年 9 月 9 日 ( 日 ) JPCERT コーディネーションセンター脆弱性解析チーム戸田洋三 1 演習 [1] 2 演習 [1] class Dog { public static void bark() { System.out.print("woof"); class Bulldog
プレポスト【問題】
コース名 : 基礎から学ぶ!Excel VBA による業務の自動化 受講日 氏名 1 Excel VBA を使用するメリットとして誤っているものを 1 つ選びなさい 1. 手作業では手間のかかる作業も プログラムに記述した処理は一括して実行されるため 何段階ものメニュー操作を行う必要がなくなる 2. プログラムに書いた処理は記述どおりに実行されるため だれがいつ何回行っても確実な処理がなされ 誤動作を防ぐことができる
開発者が知りたい実践プログラミングテクニック! ~明日から使えるテクニック集~
セッション No.4 Delphi/400 技術セッション 開発者が知りたい実践プログラミングテクニック! ~ 明日から使えるテクニック集 ~ 株式会社ミガロ. システム事業部システム 2 課辻野健 アジェンダ Delphi/400 技術セッション 1. ユーザビリティの向上 1-1. 同時に複数画面を起動する方法 1-2. グリッド操作時の自動フォーカス制御方法 2. 開発効率 保守性の向上 2-1.
講習No.1
プログラムはどこに保存され, どこで実行されるのか? 復習 ハードディスク キーボード Central Processing Unit 例えば i7, ARM, Cortex-A17 ディスプレイ 例えば 4G バイト メモリ プログラムは, ワープロ文章などと同様, ハードディスクなどにファイルとして保存されている. プログラムは, メモリ上に呼び出されて ( ロード ) 実行される. プログラムの作成
PowerPoint プレゼンテーション
講座準備 講座資料は次の URL から DL 可能 https://goo.gl/jnrfth 1 ポインタ講座 2017/01/06,09 fumi 2 はじめに ポインタはC 言語において理解が難しいとされる そのポインタを理解することを目的とする 講座は1 日で行うので 詳しいことは調べること 3 はじめに みなさん復習はしましたか? 4 & 演算子 & 演算子を使うと 変数のアドレスが得られる
Microsoft Word - C言語研修 C++編 3.doc
2006/05/10 オブジェクト指向... 3 1 クラスの継承... 3 2 継承の書式... 3 3 protected... 5 4 メンバ関数のオーバーライド... 6 5 クラスの型キャスト... 7 6 仮想関数... 8 2 オブジェクト指向 1 クラスの継承 クラスには 継承 という機能があります 継承とは 既にあるクラスを元に 新しいクラスを作る 機能です 継承元のクラスを 親クラス
Microsoft PowerPoint - lec10.ppt
今日の内容, とポインタの組み合わせ, 例題 1. 住所録例題 2. と関数とは. を扱う関数. 例題 3. のリスト とポインタの組み合わせ 今日の到達目標 自分で を定義する 自分で定義したについて, 配列やポインタを作成する データ型 基本データ型 char 文字 (1 文字 ) int 整数 double 浮動小数など その他のデータ型配列 データの並び ( 文字列も, 文字の並び ) ポインタ
8th CodeGear Developer Camp
A3 C++Builder テクニカルセッション C++Builder 有効活用術 CodeGear エヴァンジェリスト高橋智宏 1 アジェンダ C++Builderの良いところ 文字列型 (VCLとSTL) VCLからSTLへ 巨大な整数の演算 DLL 遅延ロードオプションの意外な使いみち 2 C++Builder の良いところ Delphiの.pasをコンパイルできる VCLが使える C/C++
株式会社アルウィン C 言語コーディング規約 ver.0.1
C 言語コーディング規約 ver.0.1 1. はじめに本コーディング規約は ( 株 ) アルウィン社内で作成する C 言語ソースコードの可読性 メンテナンス性の向上 丌具合の混入を防ぎやすくするための記述方法及び 推奨する記述方法を記述した文書である 2. 目的 本コーディング規約は ソースコードの可読性 メンテナンス性の向上 丌具合の混入 を可能な限り防ぎ 品質の高いソースコードを作成する一助とすることを目的とする
数はファイル内のどの関数からでも参照できるので便利ではありますが 変数の衝突が起こったり ファイル内のどこで値が書き換えられたかわかりづらくなったりなどの欠点があります 複数の関数で変数を共有する時は出来るだけ引数を使うようにし グローバル変数は プログラムの全体の状態を表すものなど最低限のものに留
第 10 章分割コンパイル 1 ソースを分割する今まで出てきたソースは全て一つのソースファイルにソースを記述してきました しかし ソースが長くなっていくと全てを一つのファイルに書くと読みづらくなります そこで ソースを複数のファイルに分割してコンパイルを行う分割コンパイルをします 今章は章名にもなっている 分割コンパイルの方法についてやります 分割コンパイルする時は大抵 関連性のある機能ごとにファイルにまとめます
新版 明解C++入門編
第 1 章画面 出力 入力 C++ C++ C++ C++ C++ C++ C++ C++ #include using C++ C++ C++ main C++ C++ C++ int double char C++ C++ C++ string C++ C++ C++ 21 1-1 C++ 歴史 C++ C++ 歴史 CC with classes Fig.1-1 C C++ Simula 67
Javaプログラムの実行手順
戻り値のあるメソッド メソッドには 処理に使用する値を引数として渡すことができました 呼び出し 側からメソッドに値を渡すだけでなく 逆にメソッドで処理を行った結果の値を 呼び出し側で受け取ることもできます メソッドから戻してもらう値のことを もどりち戻り値といいます ( 図 5-4) 図 5-4. 戻り値を返すメソッドのイメージ 戻り値を受け取ることによって ある計算を行った結果や 処理に成功したか失
CONTEC DIOプロバイダ ユーザーズガイド
DIO プロバイダユーザーズガイド - 1 - DIO プロバイダ CONTEC DIO ボード Version 1.1.2 ユーザーズガイド July 17, 2012 備考 ORiN2SDK2.0.14 以降, このプロバイダは CONTEC 社の API-DIO(WDM) を使用しています. 以前 までの API-DIO(98PC) を使用する場合は,DIO98 プロバイダを使用してください.
PowerPoint プレゼンテーション
セッション No.3 Delphi/400 技術セッション 実践!iOS / Android ネイティブ機能開発 ~ バーコード読み取り 署名 オフライン処理 ~ 株式会社ミガロ. RAD 事業部技術支援課吉原泰介 アジェンダ 1. スマートデバイスのネイティブ機能 2.Delphi/400 ネイティブ機能の開発テクニック 2-1. カメラを使ったバーコード読み取り機能 2-2. タッチ操作を使った画面署名機能
PowerPoint Presentation
プログラミング基礎 第 2 週 (4,5,6 回 ) 2011-10-07 出村公成 この資料の再配布を禁止します 予定 プログラミング入門 (45 分 ) 変数 入出力 分岐 演習 (90 分 ) タッチタイプ練習 統合開発環境 Codeblocksの使い方 教科書例題の打ち込みと実行 プログラミング入門 C 言語の簡単な例を体験 変数 入出力 分岐 プログラムの例リスト 2.1 改 #include
MSI Tip: システム検索による INSTALLDIRの設定
MSI Tip: カスタムアクションによるログファイルへの出力 この文書は Acresso Software の次の文書を元に記載しています http://www.acresso.com/webdocuments/pdf/msi_writing_to_the_log_file.pdf Tip: MSI Tip: Writing to the Log File from a Custom Action
Microsoft PowerPoint - はじめてのDataSnapアプリケーション_20131012
はじめてのDataSnap Windowsサービスを 使 ってサーバーを 作 成 50 http://www.avsoft.jp 新 規 プロジェクトを 作 成 ウィザードを 使 って 新 規 プロジェクトを 作 成 する [ファイル 新 規 作 成 その 他...] メニューを 選 択 すると 下 の 画 面 が 表 示 される 左 のペインから DataSnap Server 右 のペインから
C 言語の式と文 C 言語の文 ( 関数の呼び出し ) printf("hello, n"); 式 a a+4 a++ a = 7 関数名関数の引数セミコロン 3 < a "hello" printf("hello") 関数の引数は () で囲み, 中に式を書く. 文 ( 式文 ) は
C 言語復習 C 言語の基礎 来週もこの資料を持参してください C 言語, ソースファイルの作成, コンパイル, 実行 1 C 言語 C 言語プログラミングの手順 とは, 計算機を動かす手順を記述したもの. 計算機に命令を与えて動かすには を作成する ことになる. C 言語はプログラミング言語の 1 個 手続き型言語に分類される. C/C++ は非常に多くの場面で使われる言語 C++ は C 言語をオブジェクト指向に拡張したもの
知って得する!現役ヘルプデスクが答えるDelphiテクニカルエッセンス 8.0
セッション No.3 知って得する! 現役ヘルプデスクが答える Delphi テクニカルエッセンス 8.0 株式会社ミガロ. RAD 事業部技術支援課 吉原泰介 アジェンダ - サポートからの問合せフィードバック - Q1. Excel ファイルを PDF に変換するには? Q2. EXE のサイズを小さくするには? Q3. C/S アプリで 3 階層接続を行うには? Q1. Excel ファイルを
