目次 概要.. 3 演習 1: 静的 PARALLEL ヘルパークラスを使用した既存のアルゴリズムの並列化 6 タスク 1 実行時間の長いサービスを並列化する 6 演習 2: 並列タスクの作成と実行. 23 タスク 1 並列タスクを特別な設定なしに実行する 23 タスク 2 Wait() メソッドと

Size: px
Start display at page:

Download "目次 概要.. 3 演習 1: 静的 PARALLEL ヘルパークラスを使用した既存のアルゴリズムの並列化 6 タスク 1 実行時間の長いサービスを並列化する 6 演習 2: 並列タスクの作成と実行. 23 タスク 1 並列タスクを特別な設定なしに実行する 23 タスク 2 Wait() メソッドと"

Transcription

1 ハンズオンラボ Parallel Extensions ラブラリの概要 ラボバージョン : 最終更新日 : 2010 年 2 月 9 日

2 目次 概要.. 3 演習 1: 静的 PARALLEL ヘルパークラスを使用した既存のアルゴリズムの並列化 6 タスク 1 実行時間の長いサービスを並列化する 6 演習 2: 並列タスクの作成と実行. 23 タスク 1 並列タスクを特別な設定なしに実行する 23 タスク 2 Wait() メソッドと WaitAll() メソッドを使用する. 25 タスク 3 IsCompleted プロパテゖを使用する.. 29 タスク 4 ContinueWith() メソッドを使用する. 31 演習 3: TASK<T> クラスを使用した値を返すタスクの作成と実行 33 タスク 1 タスクの戻り値を取得する 33 演習 4: PLINQ を使用した LINQ クエリの並列化.. 35 タスク 1 ParallelEnumerable クラスの静的メソッドを使用して LINQ を並列化する 36 タスク 2 ParallelEnumerable クラスの拡張メソッドを使用して LINQ を並列化する 40 タスク 3 AsParallel() をクエリの包含構文と併用する 44 まとめ.. 46

3 概要 最近のコンピューターでは そのコンピューター上で実行するシステムが使用できるプロセッサ数やコゕ数が飛躍的に増加しました システム開発者は 開発中のソフトウェゕにこうしたメリットをさまざまな方法で取り入れることができます 特に 複雑なゕルゴリズムや大規模なデータセットを処理する際に役立ちます マクロソフトの Parallel Computing Platform (PCP: パラレルコンピューテゖングプラットフォーム ) には 開発者が効率的で管理しやすく スケーラブルな方法でこのメリットを活用できるツールが用意されています Parallel Extensions to.net Framework により こうしたツールセットにいくつもの重要な概念がもたらされます たとえば Task Parallel Library (TPL) や並列 LINQ (PLINQ) による命令型のタスク並列処理を使用すると 開発者はデータの並列処理を宣言的な方法で扱うことができます 目的 このハンズオンラボでは 次のことを行う方法について学習します 静的 Parallel ヘルパークラスを使用して既存のゕルゴリズムを並列化し 自動的に 処理される同時実行を表現する 実行中のタスクをキャンセルするといった機能を可能にするタスクを作成および実 行する Task<T> クラスを使用して 値を返すタスクを作成および実行する 並列 LINQ (PLINQ) を使用して LINQ クエリを並列環境での実行向けに最適化する システム要件 このラボには 次のものが必要です Microsoft Visual Studio 2010 Beta 2.NET Framework 4

4 セットアップ メモ : 日本語環境でこのラボを実行する場合は下記の Read Me を参考にして セットゕッ プを実行してください 構成ウゖザード (Configuration Wizard) を使用すると このラボの要件がすべて確認されます すべての要件が正しく構成されていることを確認するには 次の手順を実行します メモ : セットゕップ手順を実行するには 管理者特権を使ってコマンドウゖンドウからスクリプトを実行する必要があります 1. トレーニングキットの構成ウゖザードを以前に実行していなければ 実行します これには %TrainingKitInstallationFolder%\Labs\ParallelExtensions\Source\Setup フォルダーの CheckDependencies.cmd スクリプトを実行します 前提条件を満たしていなければ 必要な項目をすべてンストールし ( 必要に応じて再スキャンし ) ウゖザードを完了します メモ : 便宜上 このラボで管理するコードの大半は Visual Studio のコードスニペットとして使用できるようにしています CheckDependencies.cmd フゔルによって Visual Studio ンストーラーフゔルが起動し コードスニペットがンストールされます 複数のバージョンの Visual Studio がンストールされている場合 対象のコードスニペットをすべて選択した上で ンストール先に Visual Studio のバージョンを選択してください 演習 このハンズオンラボは 以下の演習から構成されています 静的 Parallel ヘルパークラスを使用した既存のゕルゴリズムの並列化

5 並列タスクの作成と実行 Task<T> クラスを使用した値を返すタスクの作成と実行 PLINQ を使用した LINQ クエリの並列化 ラボの推定所要時間 : 60 分 次の手順 : 演習 1: 静的 Parallel ヘルパークラスを使用した既存のゕルゴリズムの並列化

6 演習 1: 静的 Parallel ヘルパークラスを 使用した既存のゕルゴリズムの並列化 この演習では 静的 Parallel ヘルパークラスを使用して 既存のゕルゴリズムを並列化する方法について学習します たとえば for() の代わりに Parallel.For() を使用できます メモ : 各手順を正しく実行していることを確認するために 各タスクの最後にソリューションをビルドすることをお勧めします タスク 1 実行時間の長いサービスを並列化するこのタスクでは 簡単なサンプルコードを作成して 実行時間の長いサービス呼び出しのシミュレーションを行いますす ここでは この演習の開始ソリューションとして用意されている PayrollServices.GetPayrollDeduction() メソッドを使用します 最終的に並列実行の対象となるのは この種の実行時間の長いコードです 1. Microsoft Visual Studio 2010 を起動します [ スタート ] ボタンをクリックし [ すべてのプログラム ] [Microsoft Visual Studio 2010] [Microsoft Visual Studio 2010] の順にクリックします 2. %TrainingKitInstallationFolder%\Labs\IntroToParallelExtensions\Source\Ex01- UsingStaticParallelHelper\begin フォルダーの フォルダーもしくは VB フォルダーにある ParallelExtLab.sln ソリューションフゔルを開きます ( お好きな言語を選択してください ) メモ : このソリューションが作業の出発点となり 操作するデータを保持する EmployeeList ヘルパークラスを含んでいます 3. Visual Studio で Program.cs フゔル () または Module1.vb () を開き Main() メソッドに移動します まず 操作対象の従業員一覧を作成する必要がある ため 次のようにクラス変数を追加し この変数を Main() メソッドで初期化します

7 ( コードスニペット Intro to Parallel Extensions Lab - Ex1 Create employee list CSharp) class Program private static EmployeeList employeedata; static void Main(string[] args) employeedata = new EmployeeList(); Console.WriteLine("Payroll process started at 0", DateTime.Now); var sw = Stopwatch.StartNew(); // 呼び出すメソッド Console.WriteLine("Payroll finished at 0 and took 1", DateTime.Now, sw.elapsed.totalseconds); Console.WriteLine(); Console.ReadLine(); ( コードスニペット Intro to Parallel Extensions Lab - Ex1 Create employee list VB) Module Module1 Private employeedata As EmployeeList Sub Main(ByVal args() As String) employeedata = New EmployeeList() Console.WriteLine("Payroll process started at 0", DateTime.Now) Dim sw = Stopwatch.StartNew() ' Methods to call Console.WriteLine("Payroll finished at 0 and took 1", DateTime.Now, sw.elapsed.totalseconds) Console.WriteLine() Console.ReadLine() End Module 4. 次のメソッドを Program.cs () または Module1.vb () に追加します このメソッドは 標準の for ループを使用して Employees の一覧を反復処理し 用意したビルド済みのコードと同様 実行時間の長い PayrollServices.GetPayrollDeduction() メソッドを呼び出します コードは次のようになります

8 ( コードスニペット : Intro to Parallel Extensions Lab - Ex1 Ex1Task1_ParallelizeLongRunningService CSharp) private static void Ex1Task1_ParallelizeLongRunningService() Console.WriteLine("Non-parallelized for loop"); for (int i = 0; i < employeedata.count; i++) Console.WriteLine("Starting process for employee id 0", employeedata[i].employeeid); decimal span = PayrollServices.GetPayrollDeduction(employeeData[i]); Console.WriteLine("Completed process for employee id 0" + "process took 1 seconds", employeedata[i].employeeid, span); Console.WriteLine(); ( コードスニペット Intro to Parallel Extensions Lab - Ex1 Ex1Task1_ParallelizeLongRunningService VB) Private Sub Ex1Task1_ParallelizeLongRunningService() Console.WriteLine("Non-parallelized for loop") For i = 0 To employeedata.count - 1 Console.WriteLine("Starting process for employee id 0", employeedata(i).employeeid) Dim span As Decimal = PayrollServices.GetPayrollDeduction(employeeData(i)) Console.WriteLine("Completed process for employee id 0" & "process took 1 seconds", employeedata(i).employeeid, span) Console.WriteLine() Next i 5. Main() メソッドから Ex1Task1_ParallelizeLongRunningService メソッドを呼び出します static void Main(string[] args) // 呼び出すメソッド Ex1Task1_ParallelizeLongRunningService();

9 Sub Main(ByVal args() As String) ' Methods to call Ex1Task1_ParallelizeLongRunningService() 6. ゕプリケーションをビルドして実行します 7. 次の画面のように すべての従業員が ID 順に処理されます ( 完了までの実際の時間 は状況によって異なります ) 図 1 実行時間の長いサービスを並列呼び出ししない場合の出力

10 8. 並列機能を使用するには 次のメソッドを Program.cs () または Module1.vb (VB) に 追加します このコードでは 静的 Parallel オブジェクトの For() メソッドを使用し ます ( コードスニペット : Intro to Parallel Extensions Lab - Ex1 Ex1Task1_UseParallelForMethod CSharp) private static void Ex1Task1_UseParallelForMethod() Parallel.For(0, employeedata.count, i => Console.WriteLine("Starting process for employee id 0", employeedata[i].employeeid); decimal span = PayrollServices.GetPayrollDeduction(employeeData[i]); Console.WriteLine("Completed process for employee id 0", employeedata[i].employeeid); Console.WriteLine(); ); ( コードスニペット Intro to Parallel Extensions Lab - Ex1 Ex1Task1_UseParallelForMethod VB) Private Sub Ex1Task1_UseParallelForMethod() Parallel.For(0, employeedata.count, Sub(i) Console.WriteLine("Starting process for employee id 0", employeedata(i).employeeid) Dim span As Decimal = PayrollServices.GetPayrollDeduction(employeeData(i)) Console.WriteLine("Completed process for employee id 0", employeedata(i).employeeid) Console.WriteLine() ) 9. Main() メソッドから現在呼び出しているメソッドを Ex1Task1_UseParallelForMethod() メソッドに置き換えます static void Main(string[] args) // 呼び出すメソッド Ex1Task1_UseParallelForMethod();

11 Sub Main(ByVal args() As String) ' Methods to call Ex1Task1_UseParallelForMethod() 10. ゕプリケーションをビルドして実行します 11. 今度は 従業員が必ずしも ID 順に処理されていません また 最初の呼び出しから戻る前に GetPayrollDeduction() メソッドが複数呼び出されています 呼び出しを並列実行すると 順次実行よりもジョブ全体が短時間で完了します

12 図 2 実行時間の長いサービスを並列呼び出しした場合の出力

13 メモ : ループが並列実行されるため 各反復処理のスケジュールが設定され 使用可能なすべてのコゕで個別に実行されます つまり 一覧が順序どおりに処理されるとは限らないため コードに大きな影響を与えることがあります ループ内の各反復処理が互いに完全に独立するように コードを設計してください 正常に処理が完了するよう どの反復処理も別の反復処理に依存しないようにします 12. Parallel Extensions ラブラリには 並列バージョンの foreach 構造も用意されていま す 次のコードは この構造の並列ではない実装方法を示しています Program.cs () または Module1.vb () に次のメソッドを追加します ( コードスニペット : Intro to Parallel Extensions Lab - Ex1 Ex1Task1_StandardForEach Csharp) private static void Ex1Task1_StandardForEach() foreach (Employee employee in employeedata) Console.WriteLine("Starting process for employee id 0", employee.employeeid); decimal span = PayrollServices.GetPayrollDeduction(employee); Console.WriteLine("Completed process for employee id 0", employee.employeeid); Console.WriteLine(); ( コードスニペット Intro to Parallel Extensions Lab - Ex1 Ex1Task1_StandardForEach VB) Private Sub Ex1Task1_StandardForEach() For Each employee As Employee In employeedata Console.WriteLine("Starting process for employee id 0", employee.employeeid) Dim span As Decimal = PayrollServices.GetPayrollDeduction(employee) Console.WriteLine("Completed process for employee id 0", employee.employeeid) Console.WriteLine() Next employee 13. Main() メソッドで Parallel.For( ) ループを次のコードに置き換えます

14 static void Main(string[] args) // 呼び出すメソッド Ex1Task1_StandardForEach(); Sub Main(ByVal args() As String) ' Methods to call Ex1Task1_StandardForEach() 14. ゕプリケーションをビルドして実行します メモ : 従業員は再び ID 順に処理されます このジョブの完了に要した合計時間にも 注目してください ( 実際の時間は状況によって異なります )

15 図 3 並列処理しない for each 実装の出力 15. Parallel Extensions の for each 構造の実装を活用するために Parallel クラスの ForEach() メソッドを使用するようにコードを変更します Program.cs () または Module1.vb () に次のメソッドを追加します ( コードスニペット : Intro to Parallel Extensions Lab - Ex1 Ex1Task1_ParallelForEach)

16 private static void Ex1Task1_ParallelForEach() Parallel.ForEach(employeeData, ed => Console.WriteLine("Starting process for employee id 0", ed.employeeid); decimal span = PayrollServices.GetPayrollDeduction(ed); Console.WriteLine("Completed process for employee id 0", ed.employeeid); Console.WriteLine(); ); ( コードスニペット Intro to Parallel Extensions Lab - Ex1 Ex1Task1_ParallelForEach VB) Private Sub Ex1Task1_ParallelForEach() Parallel.ForEach(employeeData, Sub(ed) Console.WriteLine("Starting process for employee id 0", ed.employeeid) Dim span As Decimal = PayrollServices.GetPayrollDeduction(ed) Console.WriteLine("Completed process for employee id 0", ed.employeeid) Console.WriteLine() ) 16. Main() メソッドから現在呼び出しているメソッドを Ex1Task1_ParallelForEach メソ ッドに置き換えます static void Main(string[] args) // 呼び出すメソッド Ex1Task1_ParallelForEach(); Sub Main(ByVal args() As String) ' Methods to call Ex1Task1_ParallelForEach() 17. ゕプリケーションをビルドして実行します

17 18. また 従業員が ID 順に処理されなくなります 各ループが並列実行されるため ループ内の各反復処理が使用可能なすべてのコゕで個別に実行されます 使用可能なコゕがすべてゕプリケーションで使用されるため 順次実行よりも短時間でジョブが完了します 図 4 並列処理する for each の実装の出力 メモ : Parallel Extensions ラブラリには 静的 Parallel クラスからゕクセスする Invoke() という便利なメソッドもあります このメソッドを使用すると 匿名メソ

18 ッドやラムダ式を並列実行できます Invoke メソッドの使用方法を説明するために 一般的なツリー処理ゕルゴリズムを示し 続いてこのゕルゴリズムを並列処理して ツリー全体の処理時間を短縮する方法について説明します この例では 従業員の階層を処理し 処理対象の従業員ごとに GetPayrollDeduction() メソッドを実行します 19. Main() メソッドから現在呼び出しているメソッドを Ex1Task1_WalkTree() メソッド に置き換えます このコードでは 従業員階層のンスタンスを作成し ツリーウ ォーカーメソッドを呼び出します static void Main(string[] args) // 呼び出すメソッド Ex1Task1_WalkTree(); Sub Main(ByVal args() As String) ' Methods to call Ex1Task1_WalkTree() ( コードスニペット : Intro to Parallel Extensions Lab - Ex1 Ex1Task1_WalkTree CSharp) private static void Ex1Task1_WalkTree() EmployeeHierarchy employeehierarchy = new EmployeeHierarchy(); WalkTree(employeeHierarchy); ( コードスニペット Intro to Parallel Extensions Lab - Ex1 Ex1Task1_WalkTree VB) Private Sub Ex1Task1_WalkTree() Dim employeehierarchy As New EmployeeHierarchy() WalkTree(employeeHierarchy)

19 20. Program クラスに次のメソッドを追加します ( コードスニペット : Intro to Parallel Extensions Lab - Ex1 WalkTree CSharp) private static void WalkTree(Tree<Employee> node) if (node == null) return; if (node.data!= null) Employee emp = node.data; Console.WriteLine("Starting process for employee id 0", emp.employeeid); decimal span = PayrollServices.GetPayrollDeduction(emp); Console.WriteLine("Completed process for employee id 0", emp.employeeid); Console.WriteLine(); WalkTree(node.Left); WalkTree(node.Right); ( コードスニペット Intro to Parallel Extensions Lab - Ex1 WalkTree VB) Private Sub WalkTree(ByVal node As Tree(Of Employee)) If node Is Nothing Then Return End If If node.data IsNot Nothing Then Dim emp As Employee = node.data Console.WriteLine("Starting process for employee id 0", emp.employeeid) Dim span As Decimal = PayrollServices.GetPayrollDeduction(emp) Console.WriteLine("Completed process for employee id 0", emp.employeeid) Console.WriteLine() End If WalkTree(node.Left) WalkTree(node.Right) 21. ゕプリケーションをビルドして実行します

20 22. 従業員は ID 順に処理されます ツリーの処理に要した合計時間にも注目してくださ い ( 実際の時間は状況によって異なります ) 図 5 並列処理しないツリーウォーカーの出力

21 メモ : ツリーは構造化されているため 上記の並列処理しないゕルゴリズムでツリ ーを処理すると データが ID 順に出力されます 23. ツリーを並列処理するには WalkTree() メソッド最後の 2 つの WalkTree() 呼び出し を 静的 Parallel クラスの Invoke() メソッドに置き換えます private static void WalkTree(Tree<Employee> node) if (node == null) return; if (node.data!= null) Employee emp = node.data; Console.WriteLine("Starting process for employee id 0", emp.employeeid); decimal span = PayrollServices.GetPayrollDeduction(emp); Console.WriteLine("Completed process for employee id 0", emp.employeeid); Console.WriteLine(); Parallel.Invoke(delegate WalkTree(node.Left);, delegate WalkTree(node.Right); ); Private Sub WalkTree(ByVal node As Tree(Of Employee)) If node Is Nothing Then Return End If If node.data IsNot Nothing Then Dim emp As Employee = node.data Console.WriteLine("Starting process for employee id 0", emp.employeeid) Dim span As Decimal = PayrollServices.GetPayrollDeduction(emp) Console.WriteLine("Completed process for employee id 0", emp.employeeid) Console.WriteLine() End If Parallel.Invoke(Sub() WalkTree(node.Left), Sub() WalkTree(node.Right)) 24. ゕプリケーションをビルドして実行します

22 25. ツリー内の従業員が ID 順に処理されなくなり 他のノードの処理が完了する前に処 理が開始されるノードがあることがわかります ツリー全体の処理時間も短縮され ています 図 6 並列処理するツリーウォーカーの出力

23 メモ : Invoke() メソッドでは コゕが使用できるかどうかによって WalkTree() への 各呼び出しのスケジュールを設定します このため ツリーが予測可能な方法で処 理されるとは限りません コードの設計時にはこの点に注意が必要です 次の手順 : 演習 2: 並列タスクの作成と実行 演習 2: 並列タスクの作成と実行 Parallel Extensions ラブラリには 複数のコゕで作業項目を並列処理するために使用できる Task クラスが用意されています 基本的に Task オブジェクトは TaskManager で必要と判断されれば 他の作業単位と並列実行するようにスケジュールが設定される 簡易作業単位と考えることができます Task オブジェクトを作成したら 実行するロジックを含むデリゲートやラムダステートメントを 作成したオブジェクトに提供する必要があります 次に Parallel Extensions ラブラリの中核となる TaskManager が Task の実行スケジュールを設定します 実行スケジュールは 別のコゕで実行中の別のスレッドに設定されることもあります メモ : 各手順を正しく実行していることを確認するために 各タスクの最後にソリューションをビルドすることをお勧めします タスク 1 並列タスクを特別な設定なしに実行する 1. Microsoft Visual Studio 2010 を起動します [ スタート ] ボタンをクリックし [ すべてのプログラム ] [Microsoft Visual Studio 2010] [Microsoft Visual Studio 2010] の順にクリックします 2. %TrainingKitInstallationFolder%\Labs\IntroToParallelExtensions\Source\Ex02- CreateAndRunParallelizedTasks\begin フォルダーの フォルダーもしくは VB フォルダーにある ParallelExtLab.sln ソリューションフゔルを開きます ( お好みの言語を

24 選択してください ) 前の演習で作成したソリューションから作業を続行することも できます 3. Main() メソッドから現在呼び出しているメソッドを Ex2Task1_NativeParallelTasks() メソッドに置き換えます static void Main(string[] args) // 呼び出すメソッド Ex2Task1_NativeParallelTasks(); Sub Main(ByVal args() As String) ' Methods to call Ex2Task1_NativeParallelTasks() 4. Ex2Task1_NativeParallelTasks メソッドを Program.cs () または Module1.vb (Visual Basic) に追加します ( コードスニペット : Intro to Parallel Extensions Lab - Ex2 Ex2Task1_NativeParallelTasks CSharp) private static void Ex2Task1_NativeParallelTasks() Task task1 = Task.Factory.StartNew(delegate PayrollServices.GetPayrollDeduction(employeeData[0]); ); Task task2 = Task.Factory.StartNew(delegate PayrollServices.GetPayrollDeduction(employeeData[1]); ); Task task3 = Task.Factory.StartNew(delegate PayrollServices.GetPayrollDeduction(employeeData[2]); ); ( コードスニペット Intro to Parallel Extensions Lab - Ex2 Ex2Task1_NativeParallelTasks VB) Private Sub Ex2Task1_NativeParallelTasks()

25 Dim task1 As Task = Task.Factory.StartNew(Sub() PayrollServices.GetPayrollDeduction(employeeData(0))) Dim task2 As Task = Task.Factory.StartNew(Sub() PayrollServices.GetPayrollDeduction(employeeData(1))) Dim task3 As Task = Task.Factory.StartNew(Sub() PayrollServices.GetPayrollDeduction(employeeData(2))) 5. ゕプリケーションをビルドして実行します 6. 並列実行では Ex2Task1_NativeParallelTasks メソッドが終了して Main メソッドに制御が戻るまでに処理が完了しないタスクも存在します Main メソッドに戻る前に完了しなかったタスクがあるため 表示されている時間は合計処理時間ではありません 図 7 複数の並列タスクからの出力 タスク 2 Wait() メソッドと WaitAll() メソッドを使用する タスクを並列実行するメリットは 実行時間の短縮と マルチコゕプロセッサの活用です しかし タスク 1 の実装では タスクを処理するスレッドが終了する前にメンゕプリケ ーションが終了してしまうことがあります 個別の Task オブジェクトで Wait() メソッドを呼び出すことで このような状況に対処でき ます その結果 メンスレッドは当該タスクの完了まで待機してから次の命令を続行す るようになります 1. Main() メソッドから現在呼び出しているメソッドを Ex2Task2_WaitHandling() メソ ッドに置き換えます このコードは待機処理を追加します static void Main(string[] args)

26 // 呼び出すメソッド Ex2Task2_WaitHandling(); Sub Main(ByVal args() As String) ' Methods to call Ex2Task2_WaitHandling() 2. Ex2Task2_WaitHandling() メソッドを Program.cs () または Module1.vb () に 追加します ( コードスニペット : Intro to Parallel Extensions Lab - Ex2 Ex2Task2_WaitHandling CSharp) private static void Ex2Task2_WaitHandling() Task task1 = Task.Factory.StartNew(delegate PayrollServices.GetPayrollDeduction(employeeData[0]); ); Task task2 = Task.Factory.StartNew(delegate PayrollServices.GetPayrollDeduction(employeeData[1]); ); Task task3 = Task.Factory.StartNew(delegate PayrollServices.GetPayrollDeduction(employeeData[2]); ); task1.wait(); task2.wait(); task3.wait(); ( コードスニペット Intro to Parallel Extensions Lab - Ex2 Ex2Task2_WaitHandling VB) Private Sub Ex2Task2_WaitHandling() Dim task1 As Task = Task.Factory.StartNew(Sub() PayrollServices.GetPayrollDeduction(employeeData(0))) Dim task2 As Task = Task.Factory.StartNew(Sub() PayrollServices.GetPayrollDeduction(employeeData(1))) Dim task3 As Task = Task.Factory.StartNew(Sub() PayrollServices.GetPayrollDeduction(employeeData(2))) task1.wait() task2.wait() task3.wait()

27 3. ゕプリケーションをビルドして実行します 4. 終了日時を表示してメンスレッドが終了する前に タスクが 3 つとも完了してい ます 図 8 個別に Wait() 状態を使用する並列タスクの出力 メモ : メンスレッドは 作成した Task オブジェクトの完了を待機してから 処理を続行します これは ThreadPool.QueueUserWorkItem を使用するよりもはるかに簡単かつ明確な方法です QueueUserWorkItem メソッドを使用すると リセットベントを主導で作成および管理する必要が生じ Interlocked 操作が追加される可能性もあります 5. 個別の Task オブジェクトの Wait() メソッド以外に 静的 Task クラスには WaitAll() メソッドもあり タスクのリストを指定して 1 回の呼び出しでこれらのタスクの 完了を待機できます このメソッドの動作を確認するには task1 task2 および task3 の各 Wait() 呼び出しを削除して 次のコードに置き換えます static void Main(string[] args) // 呼び出すメソッド Ex2Task2_WaitHandlingWaitAll(); Sub Main(ByVal args() As String) ' Methods to call Ex2Task1_WaitHandlingWaitAll()

28 6. Ex2Task2_WaitHandlingWaitingAll() メソッドを Program.cs () または Module1.vb () に追加します ( コードスニペット : Intro to Parallel Extensions Lab - Ex2 Ex2Task2_WaitHandlingWaitAll CSharp) private static void Ex2Task2_WaitHandlingWaitAll() Task task1 = Task.Factory.StartNew(delegate PayrollServices.GetPayrollDeduction(employeeData[0]); ); Task task2 = Task.Factory.StartNew (delegate PayrollServices.GetPayrollDeduction(employeeData[1]); ); Task task3 = Task.Factory.StartNew (delegate PayrollServices.GetPayrollDeduction(employeeData[2]); ); Task.WaitAll(task1, task2, task3); ( コードスニペット Intro to Parallel Extensions Lab - Ex2 Ex2Task2_WaitHandlingWaitAll VB) Private Sub Ex2Task2_WaitHandlingWaitAll() Dim task1 As Task = Task.Factory.StartNew(Sub() PayrollServices.GetPayrollDeduction(employeeData(0))) Dim task2 As Task = Task.Factory.StartNew(Sub() PayrollServices.GetPayrollDeduction(employeeData(1))) Dim task3 As Task = Task.Factory.StartNew(Sub() PayrollServices.GetPayrollDeduction(employeeData(2))) Task.WaitAll(task1, task2, task3) 7. ゕプリケーションをビルドして実行します 8. メンゕプリケーションは すべての Task の完了を待機してから続行します 図 9

29 WaitAll() を使用する並列タスクの出力 タスク 3 IsCompleted プロパティを使用する 他の処理を実行する前に Task オブジェクトの進行状況をチェックする場合 ( たとえば 最初 のタスクが完了していなければ実行できない別のタスクがある場合 ) Wait() メソッドを使 用すると Task オブジェクトを起動したスレッド上での他のタスクの実行をブロックして しまうため Wait() メソッドを使用したくないこともあるでしょう このような場合に備え て Task クラスでは IsCompleted プロパテゖを公開しています このプロパテゖを使用する と Task オブジェクトの処理が完了しているかどうかチェックしてから他の処理を続行で きます 1. Main() メソッドから現在呼び出しているメソッドを Ex2Task3_TaskIsCompleted() メ ソッドに置き換えます static void Main(string[] args) // 呼び出すメソッド Ex2Task3_TaskIsCompleted(); Sub Main(ByVal args() As String) ' Methods to call Ex2Task3_TaskIsCompleted() 2. Ex2Task3_TaskIsCompleted() メソッドを Program.cs () または Module1.vb (Visual Basic) に追加します ( コードスニペット : Intro to Parallel Extensions Lab - Ex2 Ex2Task3_TaskIsCompleted CSharp) private static void Ex2Task3_TaskIsCompleted()

30 Task task1 = Task.Factory.StartNew(delegate PayrollServices.GetPayrollDeduction(employeeData[0]); ); while (!task1.iscompleted) Thread.Sleep(1000); Console.WriteLine("Waiting on task 1"); Task task2 = Task.Factory.StartNew(delegate PayrollServices.GetPayrollDeduction(employeeData[1]); ); while (!task2.iscompleted) Thread.Sleep(1000); Console.WriteLine("Waiting on task 2"); Task task3 = Task.Factory.StartNew(delegate PayrollServices.GetPayrollDeduction(employeeData[2]); ); while (!task3.iscompleted) Thread.Sleep(1000); Console.WriteLine("Waiting on task 3"); ( コードスニペット Intro to Parallel Extensions Lab - Ex2 Ex2Task3_TaskIsCompleted VB) Private Sub Ex2Task3_TaskIsCompleted() Dim task1 As Task = Task.Factory.StartNew(Sub() PayrollServices.GetPayrollDeduction(employeeData(0))) Do While Not task1.iscompleted Thread.Sleep(1000) Console.WriteLine("Waiting on task 1") Loop Dim task2 As Task = Task.Factory.StartNew(Sub() PayrollServices.GetPayrollDeduction(employeeData(1))) Do While Not task2.iscompleted Thread.Sleep(1000) Console.WriteLine("Waiting on task 2") Loop Dim task3 As Task = Task.Factory.StartNew(Sub() PayrollServices.GetPayrollDeduction(employeeData(2))) Do While Not task3.iscompleted Thread.Sleep(1000) Console.WriteLine("Waiting on task 3") Loop

31 3. ゕプリケーションをビルドして実行します 4. タスク 2 とタスク 3 は 前のタスクの IsCompleted プロパテゖが true になるまで開 始されません 図 10 IsCompleted プロパテゖを使用する並列タスクの出力 タスク 4 ContinueWith() メソッドを使用する IsCompleted プロパテゖは Task オブジェクトにポーリングして終了しているかどうか調べ その後他のタスクを実行するのに役立ちますが Task クラスにはもっと便利なオプション があります ContinueWith() メソッドを使用すると タスクを特定の順序で連続実行できま す ContinueWith() メソッドに引数として渡された機能は Task オブジェクトのロジックが続行 されると実行されます 1. Main() メソッドから現在呼び出しているメソッドを Ex2Task4_ContinueWith() メソ ッドに置き換えます static void Main(string[] args) // 呼び出すメソッド Ex2Task4_ContinueWith(); Sub Main(ByVal args() As String)

32 ' Methods to call Ex2Task4_ContinueWith() 2. Ex2Task4_ContinueWith() メソッドを Program.cs () または Module1.vb () に追加します ( コードスニペット : Intro to Parallel Extensions Lab - Ex2 Ex2Task4_ContinueWith CSharp) private static void Ex2Task4_ContinueWith() Task task3 = Task.Factory.StartNew(delegate PayrollServices.GetPayrollDeduction(employeeData[0]); ).ContinueWith(delegate PayrollServices.GetPayrollDeduction(employeeData[1]); ).ContinueWith(delegate PayrollServices.GetPayrollDeduction(employeeData[2]); ); task3.wait(); ( コードスニペット Intro to Parallel Extensions Lab - Ex2 Ex2Task4_ContinueWith VB) Private Sub Ex2Task4_ContinueWith() Dim task3 As Task = Task.Factory _.StartNew(Sub() PayrollServices.GetPayrollDeduction(employeeData(0))) _.ContinueWith(Sub() PayrollServices.GetPayrollDeduction(employeeData(1))) _.ContinueWith(Sub() PayrollServices.GetPayrollDeduction(employeeData(2))) task3.wait() メモ : ここでは 最初の Task オブジェクトを通常どおり作成していますが ContinueWith() メソッドを使用して 以降の呼び出しが順序どおりにランタムか ら実行されるようにしています 3. ゕプリケーションをビルドして実行します 4. タスクが順序どおり (employee 1 employee 2 employee 3 の順 ) に実行されます

33 図 11 ContinueWith により順序と待機状態を確保する並列タスクの出力 次の手順 : 演習 3: Task<T> クラスを使用した値を返すタスクの作成と実行 演習 3: Task<T> クラスを使用した値を 返すタスクの作成と実行 ご覧のように Task オブジェクトは機能の単位を並列環境で起動するのに役立ちますが 機能単位の実行結果として値を返すメカニズムも備えています この例を示すために ここでは Task<decimal> の新しいンスタンスを作成し 静的 Task.Factory.StartNew() メソッドを使用して 戻り値を取得する方法で GetPayrollDeduction() メソッドを実行します タスク 1 タスクの戻り値を取得する 1. Microsoft Visual Studio 2010 を起動します [ スタート ] ボタンをクリックし [ すべてのプログラム ] [Microsoft Visual Studio 2010] [Microsoft Visual Studio 2010] の順にクリックします 2. %TrainingKitInstallationFolder%\Labs\IntroToParallelExtensions\Source\Ex03- UseTaskResult\begin フォルダーの フォルダーもしくは VB フォルダーにある ParallelExtLab.sln ソリューションフゔルを開きます ( お好みの言語を選択してください ) 前の演習で作成したソリューションから作業を続行することもできます

34 3. Main() メソッドから現在呼び出しているメソッドを Ex3Task1_TaskReturnValue() メ ソッドに置き換えます static void Main(string[] args) // 呼び出すメソッド Ex3Task1_TaskReturnValue(); Sub Main(ByVal args() As String) ' Methods to call Ex3Task1_TaskReturnValue() 4. Ex3Task1_TaskReturnValue() メソッドを Program.cs () または Module1.vb (Visual Basic) に追加します ( コードスニペット : Intro to Parallel Extensions Lab - Ex3 Ex3Task1_TaskReturnValue CSharp) private static void Ex3Task1_TaskReturnValue() Console.WriteLine("Calling parallel task with return value"); var data = Task.Factory.StartNew(() => PayrollServices.GetPayrollDeduction(employeeData[0])); Console.WriteLine("Parallel task returned with value of 0", data.result); ( コードスニペット Intro to Parallel Extensions Lab - Ex3 Ex3Task1_TaskReturnValue VB) Private Sub Ex3Task1_TaskReturnValue() Console.WriteLine("Calling parallel task with return value") Dim data As Task(Of Decimal) = Task.Factory.StartNew(Function() PayrollServices.GetPayrollDeduction(employeeData(0))) Console.WriteLine("Parallel task returned with value of 0", data.result)

35 メモ : 値を取得するには data.result プロパテゖを調べます Result プロパテゖの呼び出し時にタスクが完了していれば 値がすぐに返されます 完了していなければ タスクが完了して値を取得できるようになるまで 実行中のコードがブロックされます 上記の例では Result プロパテゖをすぐに呼び出していますが これは理想的な処理ではありません Task<T> が非常に役立つのは しばらくは戻り値を取得しないような状況で作業単位を実行するときです 5. ゕプリケーションをビルドして実行します 6. タスクが完了し 戻り値が返されます 図 12 Task を実行して戻り値を取得する場合の出力 次の手順 : 演習 4: PLINQ を使用した LINQ クエリの並列化 演習 4: PLINQ を使用した LINQ クエリ の並列化 並列 LINQ (PLINQ) を使用すると 開発者は LINQ クエリを並列環境での実行向けに最適化できます Parallel Extensions ラブラリには LINQ クエリに並列処理を実装する方法が多数用意されています PLINQ では System.Linq.Enumerable クラスと同様の機能を提供する System.Linq.ParallelEnumerable クラスを使用できます

36 タスク 1 ParallelEnumerable クラスの静的メソッドを使用して LINQ を並列化する このタスクでは 前の演習と同じソリューションを引き続き使用します 1. Microsoft Visual Studio 2010 を起動します [ スタート ] ボタンをクリックし [ すべて のプログラム ] [Microsoft Visual Studio 2010] [Microsoft Visual Studio 2010] の順にク リックします 2. %TrainingKitInstallationFolder%\Labs\IntroToParallelExtensions\Source\Ex04- PLINQ\begin フォルダーの フォルダーもしくは VB フォルダーにある ParallelExtLab.sln ソリューションフゔルを開きます ( お好みの言語を選択してく ださい ) 前の演習で作成したソリューションから作業を続行することもできます 3. Main() メソッドから現在呼び出しているメソッドを Ex4Task1_PLINQ() メソッドに 置き換えます static void Main(string[] args) // 呼び出すメソッド Ex4Task1_PLINQ(); Sub Main(ByVal args() As String) ' Methods to call Ex4Task1_PLINQ() 4. Ex4Task1_PLINQ () メソッドを Program.cs () または Module1.vb () に追加 します ( コードスニペット : Intro to Parallel Extensions Lab - Ex4 Ex4Task1_PLINQ SCharp) static void Ex4Task1_PLINQ() var q = Enumerable.Select( Enumerable.OrderBy( Enumerable.Where(employeeData, x => x.employeeid % 2 == 0),

37 x => x.employeeid), x => PayrollServices.GetEmployeeInfo(x)).ToList(); foreach (var e in q) Console.WriteLine(e); ( コードスニペット Intro to Parallel Extensions Lab - Ex4 Ex4Task1_PLINQ VB) Private Sub Ex4Task1_PLINQ() Dim q = Enumerable.Select( Enumerable.OrderBy( Enumerable.Where( employeedata, Function(x) x.employeeid Mod 2 = 0), Function(x) x.employeeid), Function(x) PayrollServices.GetEmployeeInfo(x)) _.ToList() For Each e In q Console.WriteLine(e) Next e メモ : Select() メソッド OrderBy() メソッド および Where() メソッドは IEnumerable<T> クラスからの拡張メソッドですが ここでは静的にゕクセスしています より簡潔な使用方法については 後で説明します ToList() 呼び出しは 説明を目的としており 運用コードには必ずしも必要ではありません ここでは LINQ クエリをすぐに実行してすべての従業員情報文字列を収集し 後で画面に表示するために使用しています ToList() メソッドを省略する場合でも クエリは EmployeeID 順に実行されますが GetEmployeeInfo() への各呼び出しは IEnumerable<T> が foreach ループで反復処理されるまで実行されません これを遅延実行と呼びます 詳細については Scott Wisniewski の記事 ( を参照してください 5. ゕプリケーションをビルドして実行します

38 6. LINQ クエリで EmployeeID 順に処理が実行されます この処理の完了に要する合計 時間にも注目してください ( 実際の時間は状況によって異なります ) 図 13 並列処理しない LINQ クエリの出力 7. このクエリの並列化は簡単です そのためには 静的 ParallelEnumerable クラスに含 まれる同等の LINQ メソッドを使用します また AsParallel() の呼び出しをクエリの データソースに追加することも必要です Main() メソッドを変更して PLINQAsParallel メソッドを呼び出します static void Main(string[] args) // 呼び出すメソッド Ex4Task1_PLINQAsParallel(); Sub Main(ByVal args() As String) ' 呼び出すメソッド Ex4Task1_PLINQAsParallel()

39 8. Ex4Task1_PLINQAsParallel () メソッドを Program.cs () または Module1.vb () に追加します ( コードスニペット : Intro to Parallel Extensions Lab - Ex4 Ex4Task1_PLINQAsParallel CSharp) static void Ex4Task1_PLINQAsParallel() var q = ParallelEnumerable.Select( ParallelEnumerable.OrderBy( ParallelEnumerable.Where(employeeData.AsParallel(), x => x.employeeid % 2 == 0), x => x.employeeid), x => PayrollServices.GetEmployeeInfo(x)).ToList(); foreach (var e in q) Console.WriteLine(e); ( コードスニペット Intro to Parallel Extensions Lab - Ex4 Ex4Task1_PLINQAsParallel VB) Private Sub Ex4Task1_PLINQAsParallel() Dim q = ParallelEnumerable.Select( ParallelEnumerable.OrderBy( ParallelEnumerable.Where( employeedata.asparallel(), Function(x) x.employeeid Mod 2 = 0), Function(x) x.employeeid), Function(x) PayrollServices.GetEmployeeInfo(x)) _.ToList() For Each e In q Console.WriteLine(e) Next e メモ : このタスクの前半では Enumerable 静的クラスで行われていた Select() メソッド OrderBy() メソッド および Where() メソッドの呼び出しが ParallelEnumerable クラスで実行されるようになりました また AsParallel() の呼び出しがデータソースに追加されました

40 9. ゕプリケーションをビルドして実行します 10. LINQ クエリでは 処理が特定の順序で実行されなくなります また この例では 並列処理されるクエリの実行時間は並列処理されない場合よりも短縮されます ( この場合はデュゕルコゕコンピューターで実行しているため 実行時間がおよそ半減しています 短縮される時間は このサンプルを実行するハードウェゕによって異なります ) 図 14 並列処理する LINQ クエリの出力 メモ : 並列に同時実行される操作の数は 使用可能な物理コゕ数に応じて増加しま す タスク 2 ParallelEnumerable クラスの拡張メソッドを使用して LINQ を並列化する 前述の Enumerable クラスと ParallelEnumerable クラスの静的 LINQ メソッドをより簡潔に使 用するには これらを拡張メソッドとして使用します 1. 並列処理しない LINQ クエリを 拡張メソッドを使用して PLINQ クエリに変換するの は簡単です 次の LINQ クエリに一致するように Main() メソッドの PLINQ クエリを 置き換えます static void Main(string[] args)

41 // 呼び出すメソッド Ex4Task2_Extensions(); Sub Main(ByVal args() As String) ' Methods to call Ex4Task2_Extensions() 2. Ex4Task2_Extensions () メソッドを Program.cs () または Module1.vb () に 追加します ( コードスニペット : Intro to Parallel Extensions Lab - Ex4 Ex4Task2_Extensions CSharp) private static void Ex4Task2_Extensions() var q = employeedata. Where(x => x.employeeid % 2 == 0).OrderBy(x => x.employeeid).select(x => PayrollServices.GetEmployeeInfo(x)).ToList(); foreach (var e in q) Console.WriteLine(e); ( コードスニペット Intro to Parallel Extensions Lab - Ex4 Ex4Task2_Extensions VB) Private Sub Ex4Task2_Extensions() Dim q = employeedata _.Where(Function(x) x.employeeid Mod 2 = 0) _.OrderBy(Function(x) x.employeeid) _.Select(Function(x) PayrollServices.GetEmployeeInfo(x)) _.ToList() For Each e In q Console.WriteLine(e) Next e

42 メモ : ここでも ToList() を使用する目的は Select() メソッドから返される IEnumerable<T> がこの後の foreach ループで反復処理されるのを待たずに LINQ ク エリをすぐに実行することです これにより遅延実行を回避しています 3. ゕプリケーションをビルドして実行します 4. LINQ クエリで EmployeeID 順に処理が実行されます この処理の完了に要する合計 時間にも注目してください ( 実際の時間は状況によって異なります ) 図 15 拡張メソッドを使用した並列処理しない LINQ クエリの出力 5. この LINQ クエリを並列処理するには Main() メソッドから現在呼び出しているメソ ッドを AsParallel() メソッドに置き換えるだけです static void Main(string[] args) // 呼び出すメソッド Ex4Task2_ConvertToParallelExtensions(); Sub Main(ByVal args() As String) ' Methods to call Ex4Task2_ConvertToParallelExtensions()

43 6. Ex4Task2_ConvertToParallelExtensions () メソッドを Program.cs () または Module1.vb () に追加します ( コードスニペット : Intro to Parallel Extensions Lab - Ex4 Ex4Task2_ConvertToParallelExtensions CSharp) private static void Ex4Task2_ConvertToParallelExtensions() var q = employeedata.asparallel().where(x => x.employeeid % 2 == 0).OrderBy(x => x.employeeid).select(x => PayrollServices.GetEmployeeInfo(x)).ToList(); foreach (var e in q) Console.WriteLine(e); ( コードスニペット Intro to Parallel Extensions Lab - Ex4 Ex4Task2_ConvertToParallelExtensions VB) Private Sub Ex4Task2_ConvertToParallelExtensions() Dim q = employeedata.asparallel() _.Where(Function(x) x.employeeid Mod 2 = 0) _.OrderBy(Function(x) x.employeeid) _.Select(Function(x) PayrollServices.GetEmployeeInfo(x)) _.ToList() For Each e In q Console.WriteLine(e) Next e 7. ゕプリケーションをビルドして実行します 8. ParallelEnumerable 静的クラスに基づく LINQ クエリと同様に 拡張メソッドとして実装される PLINQ クエリでは 処理が EmployeeID の順に実行されなくなります 並列に同時実行される操作の数は 使用可能な物理コゕ数に応じて増加します また

44 タスク 1 の並列 LINQ の例と同様に 並列処理しないクエリと比べて 並列処理する クエリの実行時間はおよそ半減します 図 16 拡張メソッドを使用した並列処理する LINQ クエリの出力 タスク 3 AsParallel() をクエリの包含構文と併用する このタスクでは Parallel Extensions ラブラリと AsParallel() メソッドを使用して クエリの 包含構文を使用する並列 LINQ クエリを作成します 1. Main() メソッドの LINQ クエリを 次のクエリの包含構文に置き換えます static void Main(string[] args) // 呼び出すメソッド Ex4Task3_PLINQComprehensionSyntax(); Sub Main(ByVal args() As String) ' Methods to call Ex4Task3_PLINQComprehensionSyntax()

45 2. Ex4Task2_ConvertToParallelExtensions () メソッドを Program.cs () または Module1.vb () に追加します ( コードスニペット : Intro to Parallel Extensions Lab - Ex4 Ex4Task3_PLINQComprehensionSyntax CSharp) private static void Ex4Task3_PLINQComprehensionSyntax() var q = from e in employeedata.asparallel() where e.employeeid % 2 == 0 orderby e.employeeid select PayrollServices.GetEmployeeInfo(e); foreach (var e in q) Console.WriteLine(e); ( コードスニペット Intro to Parallel Extensions Lab - Ex4 Ex4Task3_PLINQComprehensionSyntax VB) Private Sub Ex4Task3_PLINQComprehensionSyntax() Dim q = From e In employeedata.asparallel() Where e.employeeid Mod 2 = 0 Order By e.employeeid Select PayrollServices.GetEmployeeInfo(e) For Each e In q Console.WriteLine(e) Next e 3. ゕプリケーションをビルドして実行します 4. LINQ 構文が変更されても ParallelEnumerable の拡張メソッドの場合と同じ並列手法 でデータが処理されることがわかります

46 図 17 クエリの包含構文を使用した並列処理する LINQ クエリの出力 次の手順 : まとめ まとめ このラボでは 簡単で制御しやすい方法で並列タスクを処理するのに役立つ機能について理解するために Parallel Extensions ラブラリを操作しました Parallel Task といった Parallel Extensions のクラスを使用して作業単位を管理する方法について学習しました Wait() WaitAll() IsComplete() ContinueWith() などの Parallel Extensions 機能を利用して処理の流れを制御しました また PLINQ を使用してクエリを並列処理する例についても学習しました このラボでは Parallel Extensions ラブラリを紹介し そのラブラリの効果とメリットについて概説しました 詳細については 以下の Web サトを参照してください MSDN の Parallel Extensions ブログ ( 英語 ): MSDN の並列コンピューテゖングフォーラム ( 英語 ):

47 Parallel Computing Developer Center ( 英語 ):

.NETプログラマー早期育成ドリル ~VB編 付録 文法早見表~

.NETプログラマー早期育成ドリル ~VB編 付録 文法早見表~ .NET プログラマー早期育成ドリル VB 編 付録文法早見表 本資料は UUM01W:.NET プログラマー早期育成ドリル VB 編コードリーディング もしくは UUM02W:.NET プログラマー早期育成ドリル VB 編コードライティング を ご購入頂いた方にのみ提供される資料です 資料内容の転載はご遠慮下さい VB プログラミング文法早見表 < 基本文法 > 名前空間の定義 Namespace

More information

プログラミング基礎I(再)

プログラミング基礎I(再) 山元進 クラスとは クラスの宣言 オブジェクトの作成 クラスのメンバー フィールド 変数 配列 メソッド メソッドとは メソッドの引数 戻り値 変数の型を拡張したもの 例えば車のデータベース 車のメーカー 車種 登録番号などのデータ データベースの操作 ( 新規データのボタンなど ) プログラムで使う部品の仕様書 そのクラスのオブジェクトを作ると初めて部品になる 継承 などの仕組みにより カスタマイズが安全

More information

XAML Do-It-Yourself 第 3 回ベントとトリガー XML Do-It-Yourself 第 3 回目は ベント処理とトリガーについて学習します Windows フォームゕプリケーションでは たとえば ボタンが押された というベントに対応する処理 ( ベントハンドラー ) を記述する

XAML Do-It-Yourself 第 3 回ベントとトリガー XML Do-It-Yourself 第 3 回目は ベント処理とトリガーについて学習します Windows フォームゕプリケーションでは たとえば ボタンが押された というベントに対応する処理 ( ベントハンドラー ) を記述する XAML Do-It-Yourself シリーズ 第 3 回ベントとトリガー -1- XAML Do-It-Yourself 第 3 回ベントとトリガー XML Do-It-Yourself 第 3 回目は ベント処理とトリガーについて学習します Windows フォームゕプリケーションでは たとえば ボタンが押された というベントに対応する処理 ( ベントハンドラー ) を記述することで ゕプリケーションのユーザーンターフェスを実現していました

More information

スライド 1

スライド 1 メニーコゕシフトマクロソフトの並列コンピューテゖングニシゕテゖブが導く次世代のコンピューテゖング マクロソフト株式会社 1 Agenda メニーコゕとは? Windows HPC Server 2008 Overview Parallel Computing Initiative が提唱する次世代の HPC ゕプリケーション開発 2 MICROSOFT MAKES NO WARRANTIES, EXPRESS,

More information

スライド 1

スライド 1 R 流 Visual Studio 2008 C# の 驚異的な生産性を知る 2008 年 03 月 29 日 R 田中一郎 http://blogs.wankuma.com/rti/ Microsoft MVP for Development Tools - Visual C# アジェンダ はじめに コード比較 新機能の紹介 新機能の応用 まとめ はじめに つい先日発売した Visual Studio

More information

ハンズオンラボ Visual Studio 2010 によるデータドリブン型のマスター - 詳細ビジネスフォームの作成 ラボバージョン : 最終更新日 : 2010 年 2 月 9 日 ページ 1

ハンズオンラボ Visual Studio 2010 によるデータドリブン型のマスター - 詳細ビジネスフォームの作成 ラボバージョン : 最終更新日 : 2010 年 2 月 9 日 ページ 1 ハンズオンラボ Visual Studio 2010 によるデータドリブン型のマスター - 詳細ビジネスフォームの作成 ラボバージョン : 1.0.0 最終更新日 : 2010 年 2 月 9 日 ページ 1 目次 概要... 3 演習 1: アプリケーションのデータスキャフォールディングの作成と基本的なカスタマイズ... 6 タスク 1 [Data Source] ( データソース ) ウゖンドウを使用してプロジェクトにデータベースを追加する...

More information

Microsoft PowerPoint - ●SWIM_ _INET掲載用.pptx

Microsoft PowerPoint - ●SWIM_ _INET掲載用.pptx シーケンスに基づく検索モデルの検索精度について 東京工芸大学工学部コンピュータ応用学科宇田川佳久 (1/3) (2/3) 要員数 情報システム開発のイメージソースコード検索機能 他人が作ったプログラムを保守する必要がある 実務面での応用 1 バグあるいは脆弱なコードを探す ( 品質の高いシステムを開発する ) 2 プログラム理解を支援する ( 第 3 者が書いたコードを保守する ) 要件定義外部設計内部設計

More information

Microsoft Word - Android_SQLite講座_画面800×1280

Microsoft Word - Android_SQLite講座_画面800×1280 Page 24 11 SQLite の概要 Android にはリレーショナルデータベースである SQLite が標準で掲載されています リレーショナルデータベースは データを表の形で扱うことができるデータベースです リレーショナルデータベースには SQL と呼ばれる言語によって簡単にデータの操作や問い合わせができようになっています SQLite は クライアントサーバ形式ではなく端末の中で処理が完結します

More information

.NET Framework 4.0 世代の Expression Trees

.NET Framework 4.0 世代の Expression Trees .NET Framework 4.0 世代の Expression Trees September 26 th, 2009 渋木宏明 ( ひどり ) Microsoft MVP for C# 自己紹介 プロフィール 名前 渋木宏明 ( ひどり ) 出身地 東京都 職業 フリーランスの開発者 技術分野 Visual C#, Windows.Forms コミュニティ活動 ホームページ http://hidori.jp/

More information

Javaプログラムの実行手順

Javaプログラムの実行手順 戻り値のあるメソッド メソッドには 処理に使用する値を引数として渡すことができました 呼び出し 側からメソッドに値を渡すだけでなく 逆にメソッドで処理を行った結果の値を 呼び出し側で受け取ることもできます メソッドから戻してもらう値のことを もどりち戻り値といいます ( 図 5-4) 図 5-4. 戻り値を返すメソッドのイメージ 戻り値を受け取ることによって ある計算を行った結果や 処理に成功したか失

More information

正規表現応用

正規表現応用 正規表現 正規表現を使って文字列が或る形式と一致するか調べる 指定された正規表現のパターンと一致する対象が入力文字列内で見付かるか何うかを調べるには Regex クラスの IsMatch メソッドを使用する 此処では IsMatch メソッドを使った例を幾つか紹介する 猶 正規表現のパターンと一致する個所を探し 見付かれば 其の箇所を抽出する方法は 正規表現を使って文字列を検索し 抽出する で紹介して居る

More information

目次 更新履歴... 1 はじめに... 3 レコードセット?... 3 準備... 5 SQL でデータを取得する... 6 データのループ処理... 7 列の値を取得する... 7 対象行を変更する (MoveFirst, MoveNext, MovePrevious, MoveLast)...

目次 更新履歴... 1 はじめに... 3 レコードセット?... 3 準備... 5 SQL でデータを取得する... 6 データのループ処理... 7 列の値を取得する... 7 対象行を変更する (MoveFirst, MoveNext, MovePrevious, MoveLast)... レコードセット (ADODB.Recordset) の使い方 作成日 : 2018/02/05 作成者 : 西村 更新履歴 更新日 更新概要 作業者 2018/02/05 新規作成 西村 1 目次 更新履歴... 1 はじめに... 3 レコードセット?... 3 準備... 5 SQL でデータを取得する... 6 データのループ処理... 7 列の値を取得する... 7 対象行を変更する (MoveFirst,

More information

Prog1_6th

Prog1_6th 2019 年 10 月 31 日 ( 木 ) 実施配列同種のデータ型を有する複数のデータ ( 要素 ) を番号付けして, ひとまとまりの対象として扱うものを配列と呼ぶ 要素 point[0] point[1] point[2] point[3] point[4] 配列 配列の取り扱いに関して, 次のような特徴がある 1. プログラム中で用いる配列変数 ( 配列の本体を参照する参照型の変数 ) は必ず宣言しておく

More information

// このクラスの有効期間中の各呼び出しに使用される キャッシュされた Socket オブジェクト Socket socket = null; // 非同期処理が完了したことを通知するために信号を送るオブジェクト static ManualResetEvent clientdone = new Ma

// このクラスの有効期間中の各呼び出しに使用される キャッシュされた Socket オブジェクト Socket socket = null; // 非同期処理が完了したことを通知するために信号を送るオブジェクト static ManualResetEvent clientdone = new Ma HOW DO I ソケットで通信を行うには ここでは以下の手順で説明します ソケットクライアントを作成するデータを送信するデータを受信するソケットクライアントを使用する ソケットクライアントを作成する 1. このコンテンツのサポートファイルの Start フォルダから "UDPClient" プロジェクトを開きます 2. クライアントを動作させるため コンピューターで簡易 TCP/IP サービスを有効にする必要があります

More information

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード] 第 3 回 Java 基本技術講義 クラス構造と生成 33 クラスの概念 前回の基本文法でも少し出てきたが, オブジェクト指向プログラミングは という概念をうまく活用した手法である. C 言語で言う関数に似ている オブジェクト指向プログラミングはこれら状態と振る舞いを持つオブジェクトの概念をソフトウェア開発の中に適用し 様々な機能を実現する クラス= = いろんなプログラムで使いまわせる 34 クラスの概念

More information

インテル(R) Visual Fortran コンパイラ 10.0

インテル(R) Visual Fortran コンパイラ 10.0 インテル (R) Visual Fortran コンパイラー 10.0 日本語版スペシャル エディション 入門ガイド 目次 概要インテル (R) Visual Fortran コンパイラーの設定はじめに検証用ソースファイル適切なインストールの確認コンパイラーの起動 ( コマンドライン ) コンパイル ( 最適化オプションなし ) 実行 / プログラムの検証コンパイル ( 最適化オプションあり ) 実行

More information

ファイル操作-バイナリファイル

ファイル操作-バイナリファイル ファイル操作 バイナリ ファイルを読み書きする バイナリファイル ( 即ちテキストファイル以外のファイル ) を読み書きするには FileStream クラス (System.IO 名前空間 ) を利用する FileStream クラスはファイル用のストリームをサポートするクラスで有り Stream クラス (System.IO 名前空間 ) の派生クラスの 1 つで有る 基本的には コンストラクタで指定したファイルのストリームに対して

More information

Visual Studio Do-It-Yourself 第 9 回ユーザーコントロール 第 6 回のリソースから第 8 回のテンプレートで さまざまな方法でコントロールをカスタマズできるこ とを学びました 今回のテーマであるユーザーコントロールは 既存の一つのコントロールをカスタマ ズするのではな

Visual Studio Do-It-Yourself 第 9 回ユーザーコントロール 第 6 回のリソースから第 8 回のテンプレートで さまざまな方法でコントロールをカスタマズできるこ とを学びました 今回のテーマであるユーザーコントロールは 既存の一つのコントロールをカスタマ ズするのではな Visual Studio Do-It-Yourself シリーズ 第 9 回ユーザーコントロール -1- Visual Studio Do-It-Yourself 第 9 回ユーザーコントロール 第 6 回のリソースから第 8 回のテンプレートで さまざまな方法でコントロールをカスタマズできるこ とを学びました 今回のテーマであるユーザーコントロールは 既存の一つのコントロールをカスタマ ズするのではなく

More information

メソッドのまとめ

メソッドのまとめ メソッド (4) 擬似コードテスト技法 http://java.cis.k.hosei.ac.jp/ 授業の前に自己点検以下のことがらを友達に説明できますか? メソッドの宣言とは 起動とは何ですか メソッドの宣言はどのように書きますか メソッドの宣言はどこに置きますか メソッドの起動はどのようにしますか メソッドの仮引数 実引数 戻り値とは何ですか メソッドの起動にあたって実引数はどのようにして仮引数に渡されますか

More information

Microsoft PowerPoint ppt

Microsoft PowerPoint ppt 独習 Java ( 第 3 版 ) 6.7 変数の修飾子 6.8 コンストラクタの修飾子 6.9 メソッドの修飾子 6.10 Object クラスと Class クラス 6.7 変数の修飾子 (1/3) 変数宣言の直前に指定できる修飾子 全部で 7 種類ある キーワード final private protected public static transient volatile 意味定数として使える変数同じクラスのコードからしかアクセスできない変数サブクラスまたは同じパッケージ内のコードからしかアクセスできない変数他のクラスからアクセスできる変数インスタンス変数ではない変数クラスの永続的な状態の一部ではない変数不意に値が変更されることがある変数

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 1 01 Visual C# 2010 を使ってみよう BMI 計算プログラム 1 Visual Studio 2010 の起動 1 2 画面左下 タスクバーの左端にある スタートボタン をクリック 表示されたメニューにある すべてのプログラム をクリック 2 1 3 4 メニューから Microsoft Visual Studio 2010 のフォルダを探して これをクリック フォルダが展開されて

More information

(Microsoft Word \203v\203\215\203O\203\211\203~\203\223\203O)

(Microsoft Word \203v\203\215\203O\203\211\203~\203\223\203O) 21113 Visual Basic を利用したフリーソフト開発 要旨 各自でフリーソフトを作成 インターネット上に公開することを目的とし Visual Basic2008 2010 を使い簡単なアプリの作成に成功した 1. 目的情報化が進んだ現代において 社会に出ていくためにはパソコンの一つや二つ 軽く扱えなければならない さらに 資源の乏しい日本においては今後 情報技術の発展することが望ましいと考える

More information

デジタル表現論・第4回

デジタル表現論・第4回 デジタル表現論 第 4 回 劉雪峰 ( リュウシュウフォン ) 2016 年 5 月 2 日 劉 雪峰 ( リュウシュウフォン ) デジタル表現論 第 4 回 2016 年 5 月 2 日 1 / 14 本日の目標 Java プログラミングの基礎 出力の復習 メソッドの定義と使用 劉 雪峰 ( リュウシュウフォン ) デジタル表現論 第 4 回 2016 年 5 月 2 日 2 / 14 出力 Systemoutprint()

More information

関数サンプル1

関数サンプル1 SQLCompiler for LINQ(C#) のサンプル (LINQPad 用 LINQ to Entities 関数サンプル 1) 本サンプルで使用した Visual Studio プロジェクトの pubs データベースの概念モデルは 以下のテーブル名とカラム名が 直接 SQL Sever へクエリする場合と異なるので が補正されています テーブル名が異なるもの employee employees

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション レッスン (1) あるワークシート中のあるセルを指定する Worksheets(" ワークシート名 ").Range(" セル ").Value ( 例 ) Worksheets(" データ収集 ").Range("A2").Value あるワークシートのセルから 別のワークシートのセルへ転記する Worksheets(" シート A").Range(" セル ").Value = Worksheets("

More information

プログラミング入門1

プログラミング入門1 プログラミング入門 1 第 9 回 メソッド (3) 授業の前に自己点検 以下の質問に答えられますか? メソッドの宣言とは 起動とは何ですか メソッドの宣言はどのように書きますか メソッドの宣言はどこに置きますか メソッドの起動はどのようにしますか メソッドの仮引数 実引数 戻り値とは何ですか メソッドの起動にあたって実引数はどのようにして仮引数に渡されますか 戻り値はどのように利用しますか 変数のスコープとは何ですか

More information

MISAO with WPF

MISAO with WPF System.AddIn を利用した アプリケーション拡張 - アドインの開発 - JZ5( 松江祐輔 )@ わんくま http://katamari.jp http://katamari.wankuma.com 2008/9/13 What s System.AddIn System.AddIn 名前空間 Visual Studio Orcus から利用可能 アプリケーションに拡張機能を提 供 なんかいろいろ特長が?

More information

kantan_C_1_iro3.indd

kantan_C_1_iro3.indd 1 章 C# の学習を始める前に プログラムの 01 基本 Keyword プログラムプログラミング言語 プログラムとは プログラムとは コンピューターへの命令の集まりです 学校の先生が プリントを持ってきて と生徒に指示した場合を考えてみましょう 先生をプログラマー ( プログラムの作成者 ) 生徒をコンピューターとしたとき プリントを持ってきて という指示がプログラムです 人間とは違い コンピューターは曖昧な指示を理解できません

More information

目次 はじめに... 3 システムの必要条件... 3 サンプルアプリケーションの作成... 3 手順 手順 手順 手順 手順 手順 終わりに... 23

目次 はじめに... 3 システムの必要条件... 3 サンプルアプリケーションの作成... 3 手順 手順 手順 手順 手順 手順 終わりに... 23 SharpShooter Reports.Silverlight 基本的な使い方 Last modified on: August 16, 2012 本ドキュメント内のスクリーンショットは英語表記ですが SharpShooter Reports JP( 日本語版 ) では日本語で表示されます 目次 はじめに... 3 システムの必要条件... 3 サンプルアプリケーションの作成... 3 手順 1...

More information

Microsoft認定資格問題集(70-483_demo)

Microsoft認定資格問題集(70-483_demo) Microsoft 認定資格問題集 受験番号 : 70-483 受験名 : C# でのプログラミング言語 : 日本語問題数 :179 問 テストバリュー (TESTVALUE) はこの日本語版問題集の著作権を所有します 問題集の他人への展開 譲渡 転売 複製 転載等の無断行為は法律上で禁止されています 違反が発覚した場合 法的措置を取らせて頂きますので 予めご了承ください 問題 1 Orderオブジェクトのコレクションがあります

More information

Java講座

Java講座 ~ 第 1 回 ~ 情報科学部コンピュータ科学科 2 年竹中優 プログラムを書く上で Hello world 基礎事項 演算子 構文 2 コメントアウト (//, /* */, /** */) をしよう! インデントをしよう! 変数などにはわかりやすい名前をつけよう! 要するに 他人が見て理解しやすいコードを書こうということです 3 1. Eclipse を起動 2. ファイル 新規 javaプロジェクト

More information

Microsoft PowerPoint - prog03.ppt

Microsoft PowerPoint - prog03.ppt プログラミング言語 3 第 03 回 (2007 年 10 月 08 日 ) 1 今日の配布物 片面の用紙 1 枚 今日の課題が書かれています 本日の出欠を兼ねています 2/33 今日やること http://www.tnlab.ice.uec.ac.jp/~s-okubo/class/java06/ にアクセスすると 教材があります 2007 年 10 月 08 日分と書いてある部分が 本日の教材です

More information

文字列操作と正規表現

文字列操作と正規表現 文字列操作と正規表現 オブジェクト指向プログラミング特論 2018 年度只木進一 : 工学系研究科 2 文字列と文字列クラス 0 個以上の長さの文字の列 Java では String クラス 操作 文字列を作る 連結する 文字列中に文字列を探す 文字列中の文字列を置き換える 部分文字列を得る 3 String クラス 文字列を保持するクラス 文字列は定数であることに注意 比較に注意 == : オブジェクトとしての同等性

More information

著作権 このドキュメントに記載されている情報は このドキュメントの発行時点におけるマクロソフトの見解を反映したものです マクロソフトは市場の変化に対応する必要があるため このドキュメントの内容に関する責任を問われないものとします また 発行日以降に発表される情報の正確性を保証できません このホワトペ

著作権 このドキュメントに記載されている情報は このドキュメントの発行時点におけるマクロソフトの見解を反映したものです マクロソフトは市場の変化に対応する必要があるため このドキュメントの内容に関する責任を問われないものとします また 発行日以降に発表される情報の正確性を保証できません このホワトペ Visual Studio 2010 による 単体テストの効率化 著作権 このドキュメントに記載されている情報は このドキュメントの発行時点におけるマクロソフトの見解を反映したものです マクロソフトは市場の変化に対応する必要があるため このドキュメントの内容に関する責任を問われないものとします また 発行日以降に発表される情報の正確性を保証できません このホワトペーパーは情報提供のみを目的としています

More information

Visual Basic 資料 電脳梁山泊烏賊塾 コレクション初期化子 コレクション初期化子 初めに.NET 版の Visual Basic では 其れ迄の Visual Basic 6.0 とは異なり 下記の例の様に変数宣言の構文に 初期値を代入する式が書ける様に成った 其の際 1 の様に単一の値

Visual Basic 資料 電脳梁山泊烏賊塾 コレクション初期化子 コレクション初期化子 初めに.NET 版の Visual Basic では 其れ迄の Visual Basic 6.0 とは異なり 下記の例の様に変数宣言の構文に 初期値を代入する式が書ける様に成った 其の際 1 の様に単一の値 コレクション初期化子 コレクション初期化子 初めに.NET 版の Visual Basic では 其れ迄の Visual Basic 6.0 とは異なり 下記の例の様に変数宣言の構文に 初期値を代入する式が書ける様に成った 其の際 1 の様に単一の値 ( 此処では 10) を代入する丈でなく 2 の配列変数の宣言の様に ブレース { } の中にカンマ区切りで初期値のリストを記述し 配列の各要素に初期値を代入出来る様に成った

More information

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版  

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版   Copyright 2013 NTT DATA INTRAMART CORPORATION 1 Top 目次 intra-mart Accel Platform イベントナビゲータ開発ガイド初版 2013-07-01 改訂情報概要イベントフローの作成 更新 削除をハンドリングするイベントフローを非表示にする回答を非表示にするリンクを非表示にするタイトル コメントを動的に変更するリンク情報を動的に変更するナビゲート結果のリンクにステータスを表示する

More information

<4D F736F F D20837D815B B838B837A838B835F E836782CC91E391D68EE892692E646F63>

<4D F736F F D20837D815B B838B837A838B835F E836782CC91E391D68EE892692E646F63> マージモジュールホルダオブジェクトの代替手段 検証したバージョン : InstallShield 2011 Premier Edition 対象プロジェクト : InstallScript プロジェクト 概要 InstallScript 形式プロジェクトのマージモジュールホルダオブジェクトとは 本来 MSI 形式のインストーラで用いられるマージモジュールを InstallScript 形式のインストーラにおいて容易に使用するために開発されました

More information

データアダプタ概要

データアダプタ概要 データベース TableAdapter クエリを実行する方法 TableAdapter クエリは アプリケーションがデータベースに対して実行出来る SQL ステートメントやストアドプロシージャで TableAdapter で型指定されたメソッドと仕て公開される TableAdapter クエリは 所有るオブジェクトのメソッドと同様に 関連付けられたメソッドを呼び出す事に依り実行出来る TableAdapter

More information

LogisticaTRUCKServer-Ⅱ距離計算サーバ/Active-Xコントロール/クライアント 概略   

LogisticaTRUCKServer-Ⅱ距離計算サーバ/Active-Xコントロール/クライアント 概略       - LogisticaTRUCKServer-Ⅱ(SQLServer 版 ) 距離計算サーハ API.NET DLL WebForms ASP.NET サンフ ルフ ロク ラム - 1 - LogisticaTRUCKServer-Ⅱ 距離計算サーハ.NET DLL WebForm ASP.NET VisualBasic での利用方法 LogisticaTRUCKServer-Ⅱ 距離計算.NET

More information

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版   None

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版   None クイック検索検索 目次 Copyright 2013 NTT DATA INTRAMART CORPORATION 1 Top 目次 intra-mart Accel Platform イベントナビゲータ開発ガイド初版 2013-07-01 None 改訂情報概要イベントフローの作成 更新 削除をハンドリングするイベントフローを非表示にする回答を非表示にするリンクを非表示にするタイトル コメントを動的に変更するリンク情報を動的に変更するナビゲート結果のリンクにステータスを表示する

More information

著作権 このドキュメントに記載されている情報は このドキュメントの発行時点におけるマクロソフトの見解を反映したものです マクロソフトは市場の変化に対応する必要があるため このドキュメントの内容に関する責任を問われないものとします また 発行日以降に発表される情報の正確性を保証できません このホワトペ

著作権 このドキュメントに記載されている情報は このドキュメントの発行時点におけるマクロソフトの見解を反映したものです マクロソフトは市場の変化に対応する必要があるため このドキュメントの内容に関する責任を問われないものとします また 発行日以降に発表される情報の正確性を保証できません このホワトペ Visual Studio Do-It-Yourself シリーズ 第 19 回 Web アプリケーション配置 著作権 このドキュメントに記載されている情報は このドキュメントの発行時点におけるマクロソフトの見解を反映したものです マクロソフトは市場の変化に対応する必要があるため このドキュメントの内容に関する責任を問われないものとします また 発行日以降に発表される情報の正確性を保証できません このホワトペーパーは情報提供のみを目的としています

More information

ハンズオンラボ.NET Framework 4 における Windows Workflow Foundation の概要 ラボバージョン : 最終更新日 : 2010 年 9 月 21 日

ハンズオンラボ.NET Framework 4 における Windows Workflow Foundation の概要 ラボバージョン : 最終更新日 : 2010 年 9 月 21 日 ハンズオンラボ.NET Framework 4 における Windows Workflow Foundation の概要 ラボバージョン : 1.0.0 最終更新日 : 2010 年 9 月 21 日 目次 概要... 4 演習 1: あいさつワークフロー... 8 タスク 1 簡単なあいさつワークフローゕプリケーションを作成する... 8 演習 2: ワークフローのリフゔクタリング... 12 タスク

More information

GEC-Java

GEC-Java Copyright (C) Junko Shirogane, Waseda University 2019, All rights reserved. 1 プログラミング初級 (Java) 第 14 回継承 白銀純子 第 14 回の内容 継承 オーバーライド ポリモーフィズム Copyright (C) Junko Shirogane, Waseda University 2019, All rights

More information

.NET_3.5 Technical Briefing ソースコード説明 担当者の Demo 実施時の環境 注意 Visual Studio 2008β2 日本語版および Microsoft Silverlight Tools Alpha for Visual Studio 2008 Beta 2

.NET_3.5 Technical Briefing ソースコード説明 担当者の Demo 実施時の環境 注意 Visual Studio 2008β2 日本語版および Microsoft Silverlight Tools Alpha for Visual Studio 2008 Beta 2 .NET_3.5 Technical Briefing ソースコード説明 担当者の Demo 実施時の環境 注意 Visual Studio 2008β2 日本語版および Microsoft Silverlight Tools Alpha for Visual Studio 2008 Beta 2 Expression Blend 他 http://www.microsoft.com/silverlight/#4_1

More information

プログラミング入門1

プログラミング入門1 プログラミング入門 1 第 8 回メソッド (2) 授業開始前に自己点検 前回までの必須課題はすべてできていますか 前回までの学習項目であいまいな所はありませんか 理解できたかどうかは自分自身の基準をもとう Java 1 第 8 回 2 前回のテーマ メソッドとは いくつかの命令の列を束ねて 一つの命令として扱えるようにしたもの 今回学ぶメソッドの役割は その他のプログラミング言語では関数またはサブルーチンと呼ばれることがある

More information

Javaセキュアコーディングセミナー2013東京第1回 演習の解説

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

More information

手順書

手順書 財務応援 Ai システム Windows 7 へのセットアップ手順 Windows 7 に 財務応援 Ai システム をセットアップする場合の手順について説明します なお Windows 7 で財務応援 Ai 企業会計 / 公益法人会計 / 社会福祉法人会計 / 医療会計を使用する場合 以下の条件があります 財務応援 Ai システムが Ver.3.0 以降であること データベースが SQL Server

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 演習課題レッスン (1) '(1) ワークシートどうしのやりとり ' ワークシート 請求書 1 から ワークシート データ収集 にデータを転記しましょう Sub example01() ' 請求書番号 ( 請求書 1のE2からデータ収集のA2へ ) Worksheets(" データ収集 ").Range("A2").Value = Worksheets(" 請求書 1").Range("E2").Value

More information

Visual Studio 2017 RC インストール & ファーストステップガイド 2016 年 11 月 16 日 (V1.0)

Visual Studio 2017 RC インストール & ファーストステップガイド 2016 年 11 月 16 日 (V1.0) Visual Studio 2017 RC インストール & ファーストステップガイド 2016 年 11 月 16 日 (V1.0) このドキュメントは現状版として提供されます このドキュメントに記載されている情報や見解 (URL 等のインターネット Web サイトに関する情報を含む ) は 将来予告なしに変更されることがあります このドキュメントに記載された例は 説明のみを目的とした架空のものです

More information

Program Design (プログラム設計)

Program Design  (プログラム設計) 7. モジュール化設計 内容 : モジュールの定義モジュールの強度又は結合力モジュール連結モジュールの間の交信 7.1 モジュールの定義 プログラムモジュールとは 次の特徴を持つプログラムの単位である モジュールは 一定の機能を提供する 例えば 入力によって ある出力を出す モジュールは 同じ機能仕様を実装しているほかのモジュールに置き換えられる この変化によって プログラム全体に影響をあまり与えない

More information

~ ユーザーインターフェイスの自動テスト ~

~ ユーザーインターフェイスの自動テスト ~ ~ ユーザーインターフェイスの自動テスト ~ 著作権 このドキュメントに記載されている情報は このドキュメントの発行時点におけるマクロソフトの見解を反映したものです マクロソフトは市場の変化に対応する必要があるため このドキュメントの内容に関する責任を問われないものとします また 発行日以降に発表される情報の正確性を保証できません このホワトペーパーは情報提供のみを目的としています 明示 黙示 または法令に基づく規定に関わらず

More information

HANDyTRUSt「携帯電話操作編《(DOCOMO 900シーズ)

HANDyTRUSt「携帯電話操作編《(DOCOMO 900シーズ) HANDyTRUSt スマートフォン操作編 本書について 本書は スマートフォン (Windows Mobile 6.0) に対応した取扱説明書です 本書に記載されている画面およびラストはメージです 実際の製品とは異なる場合があります 本書の内容を一部 または全部を無断転載することは禁止されています 本書の内容は 将来 予告なしに変更することがあります 利用環境 HANDyTRUSt をご利用になる際

More information

Prog1_10th

Prog1_10th 2014 年 6 月 19 日 ( 木 ) 実施 例外処理 Java 言語では, 作成したプログラムを実行する際に, 記述した処理が想定しない事態によって実行できなくなる場合を例外と呼び, その例外への対処, 即ち例外処理が求められる 例外処理を行うための try 文の一般形は次のようになる 例外を発生させる可能性のある処理 catch( 例外のクラス名 1 変数 1 ) 例外に対処する処理 1 catch(

More information

JavaプログラミングⅠ

JavaプログラミングⅠ Java プログラミング Ⅰ 12 回目クラス 今日の講義で学ぶ内容 クラスとは クラスの宣言と利用 クラスの応用 クラス クラスとは 異なる複数の型の変数を内部にもつ型です 直観的に表現すると int 型や double 型は 1 1 つの値を管理できます int 型の変数 配列型は 2 5 8 6 3 7 同じ型の複数の変数を管理できます 配列型の変数 ( 配列変数 ) クラスは double

More information

Javaセキュアコーディングセミナー東京 第3回 入出力(File, Stream)と例外時の動作 演習解説

Javaセキュアコーディングセミナー東京 第3回 入出力(File, Stream)と例外時の動作 演習解説 Java セキュアコーディングセミナー東京第 3 回入出力と例外時の動作 演習解説 2012 年 11 月 11 日 ( 日 ) JPCERT コーディネーションセンター脆弱性解析チーム戸田洋三 1 Hands-on Exercises コンパイルエラーに対処しよう ファイルからのデータ入力を実装しよう 2 Hands-on Exercise(1) サンプルコードの コンパイルエラーに対処しよう 3

More information

人工知能入門

人工知能入門 藤田悟 黄潤和 探索とは 探索問題 探索解の性質 探索空間の構造 探索木 探索グラフ 探索順序 深さ優先探索 幅優先探索 探索プログラムの作成 バックトラック 深さ優先探索 幅優先探索 n 個の ueen を n n のマスの中に 縦横斜めに重ならないように配置する 簡単化のために 4-ueen を考える 正解 全状態の探索プログラム 全ての最終状態を生成した後に 最終状態が解であるかどうかを判定する

More information

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド メソッド ( 教科書第 7 章 p.221~p.239) ここまでには文字列を表示する System.out.print() やキーボードから整数を入力する stdin.nextint() などを用いてプログラムを作成してきた これらはメソッドと呼ばれるプログラムを構成する部品である メソッドとは Java や C++ などのオブジェクト指向プログラミング言語で利用されている概念であり 他の言語での関数やサブルーチンに相当するが

More information

ご利用のコンピュータを設定する方法 このラボの作業を行うには 事前設定された dcloud ラボを使用するか 自身のコンピュータをセットアップします 詳細については イベントの事前準備 [ 英語 ] とラボの設定 [ 英語 ] の両方のモジュールを参照してください Python を使用した Spar

ご利用のコンピュータを設定する方法 このラボの作業を行うには 事前設定された dcloud ラボを使用するか 自身のコンピュータをセットアップします 詳細については イベントの事前準備 [ 英語 ] とラボの設定 [ 英語 ] の両方のモジュールを参照してください Python を使用した Spar ご利用のコンピュータを設定する方法 このラボの作業を行うには 事前設定された dcloud ラボを使用するか 自身のコンピュータをセットアップします 詳細については イベントの事前準備 [ 英語 ] とラボの設定 [ 英語 ] の両方のモジュールを参照してください Python を使用した Spark API との通信 このラーニングモジュールでは Python を使用した Spark API とのインターフェイスを扱います

More information

各種パスワードについて マイナンバー管理票では 3 種のパスワードを使用します (1) 読み取りパスワード Excel 機能の読み取りパスワードです 任意に設定可能です (2) 管理者パスワード マイナンバー管理表 の管理者のパスワードです 管理者パスワード はパスワードの流出を防ぐ目的で この操作

各種パスワードについて マイナンバー管理票では 3 種のパスワードを使用します (1) 読み取りパスワード Excel 機能の読み取りパスワードです 任意に設定可能です (2) 管理者パスワード マイナンバー管理表 の管理者のパスワードです 管理者パスワード はパスワードの流出を防ぐ目的で この操作 マイナンバー管理表 操作説明書 管理者用 2015 年 11 月 30 日 ( 初版 ) 概要 マイナンバー管理表 の動作環境は以下の通りです 対象 OS バージョン Windows7 Windows8 Windows8.1 Windows10 対象 Excel バージョン Excel2010 Excel2013 対象ファイル形式 Microsoft Excel マクロ有効ワークシート (.xlsm)

More information

intra-mart Accel Platform — IM-Repository拡張プログラミングガイド   初版  

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.

More information

ArcGIS Pro 1.1 SDK for .NET インストール ガイド

ArcGIS Pro 1.1 SDK for .NET インストール ガイド ArcGIS Pro SDK for.net インストールガイド (v1.1) 目次 はじめに... 1 インストールガイドについて... 1 ArcGIS Pro SDK for.net とは... 1 対象の製品バージョン... 1 インストールのための前提条件... 2 サポートされる開発環境の準備... 2 製品のインストール... 3 ArcGIS Pro SDK for.net のインストール...

More information

Method(C 言語では関数と呼ぶ ) メソッドを使うと 処理を纏めて管理することができる 処理 ( メソッド ) の再実行 ( 再利用 ) が簡単にできる y 元々はC 言語の関数であり 入力値に対する値を 定義するもの 数学では F(x) = 2x + 1 など F(x)=2x+1 入力値 (

Method(C 言語では関数と呼ぶ ) メソッドを使うと 処理を纏めて管理することができる 処理 ( メソッド ) の再実行 ( 再利用 ) が簡単にできる y 元々はC 言語の関数であり 入力値に対する値を 定義するもの 数学では F(x) = 2x + 1 など F(x)=2x+1 入力値 ( Method(C 言語では関数と呼ぶ ) メソッドを使うと 処理を纏めて管理することができる 処理 ( メソッド ) の再実行 ( 再利用 ) が簡単にできる y 元々はC 言語の関数であり 入力値に対する値を 定義するもの 数学では F(x) = 2x + 1 など F(x)=2x+1 入力値 ( 引数 ) x が決まれば F(x) が決まる これを応用して 複雑な処理も 外面的にはひと固まりの処理として扱う

More information

た場合クラスを用いて 以下のように書くことが出来る ( 教科書 p.270) プログラム例 2( ソースファイル名 :Chap08/AccountTester.java) // 銀行口座クラスとそれをテストするクラス第 1 版 // 銀行口座クラス class Account String name

た場合クラスを用いて 以下のように書くことが出来る ( 教科書 p.270) プログラム例 2( ソースファイル名 :Chap08/AccountTester.java) // 銀行口座クラスとそれをテストするクラス第 1 版 // 銀行口座クラス class Account String name クラス ( 教科書第 8 章 p.267~p.297) 前回は処理をまとめる方法として メソッドについて学習した 今回はメソッドとその処理の対象となるデータをまとめるためのクラスについて学習する このクラスはオブジェクト指向プログラミングを実現するための最も重要で基本的な技術であり メソッドより一回り大きなプログラムの部品を構成する 今回はクラスにおけるデータの扱いとクラスの作成方法 使用方法について説明していく

More information

JavaプログラミングⅠ

JavaプログラミングⅠ Java プログラミング Ⅱ 8 回目抽象クラスとインタフェース課題 確認 問題次の各文は正しいか誤っているか答えなさい (1) 抽象クラスのオブジェクトは生成できる (2) 抽象メソッドとはメソッドの本体が未定義のメソッドである (3) 抽象メソッドをメンバーにもつクラスは抽象クラスである (4) 抽象クラスを拡張してすべての抽象メソッドをオーバーライドすれば サブクラスのオブジェクトを生成できる

More information

Microsoft Word - VBA基礎(6).docx

Microsoft Word - VBA基礎(6).docx あるクラスの算数の平均点と理科の平均点を読み込み 総点を計算するプログラムを考えてみましょう 一クラスだけ読み込む場合は test50 のようなプログラムになります プログラムの流れとしては非常に簡単です Sub test50() a = InputBox(" バナナ組の算数の平均点を入力してください ") b = InputBox(" バナナ組の理科の平均点を入力してください ") MsgBox

More information

Exam : 1z0-882 日本語 (JPN) Title : Oracle Certified Professional, MySQL 5.6 Developer Vendor : Oracle Version : DEMO 1 / 4 Get Latest & Valid 1z0-882-JP

Exam : 1z0-882 日本語 (JPN) Title : Oracle Certified Professional, MySQL 5.6 Developer Vendor : Oracle Version : DEMO 1 / 4 Get Latest & Valid 1z0-882-JP itexamdump 최고이자최신인 IT 인증시험덤프 http://www.itexamdump.com 일년무료업데이트서비스제공 Exam : 1z0-882 日本語 (JPN) Title : Oracle Certified Professional, MySQL 5.6 Developer Vendor : Oracle Version : DEMO 1 / 4 Get Latest

More information

データベースアクセス

データベースアクセス データベースアクセスコンポーネント 1. 概要 データベースアクセスコンポーネントとは SQL データベースにアクセスして SQL 文を実行することによりデータベース検索を行う機能を提供するコンポーネントです また データベースアクセスコンポーネントでは データベースの構成情報 接続情報 エラー情報等を取得することも可能です データベースアクセスコンポーネントは アプリケーションビルダーのメニューから以下のように選びます

More information

Prog1_15th

Prog1_15th 2017 年 7 月 27 日 ( 木 ) 実施 応用プログラム (3) キー検索 コレクションには, ハッシュテーブルと呼ばれるものがある これは, キー (key) と値 (value) とを組として保持しているものである 通常の配列が添字により各要素にアクセス出来るのに比べて, ハッシュテーブルではキーを用いて各値にアクセスすることが出来る キー及びそのキーから連想される値の組を保持していることから,

More information

ファイル操作-インターネットキャッシュ

ファイル操作-インターネットキャッシュ ファイル操作 インターネット一時ファイルの保存場所 インターネットキャッシュ インターネット一時ファイルの保存場所は Internet Explorer の場合 下記の手順で確認する事が出来る 1.[ ツール ] [ インターネットオプション ] でインターネットオプション画面のダイアログを表示させる 2.[ 全般 ] タブで [ インターネット一時ファイル ] グループの [ 設定 ] をクリックすると

More information

クラス図とシーケンス図の整合性確保 マニュアル

クラス図とシーケンス図の整合性確保 マニュアル Consistency between Class and Sequence by SparxSystems Japan Enterprise Architect 日本語版 クラス図とシーケンス図の整合性確保マニュアル (2011/12/6 最終更新 ) 1 1. はじめに UML を利用したモデリングにおいて クラス図は最も利用される図の 1 つです クラス図は対象のシステムなどの構造をモデリングするために利用されます

More information

Citrix Receiver導入の手引き

Citrix Receiver導入の手引き Citrix Receiver 導入の手引き 株式会社インターネットイニシアティブ 目次 1. 仮想デスクトップ体験サトへゕクセスする前に... 2 2. Windows へのンストール... 3 3. Mac へのンストール... 7 4. ipad へのンストール... 15 5. iphone へのンストール... 21 6. Android へのンストール... 25 2011 Internet

More information

DumpCollection IT Exam Training online / Bootcamp PDF and Testing Engine, study and practice

DumpCollection IT Exam Training online / Bootcamp   PDF and Testing Engine, study and practice DumpCollection IT Exam Training online / Bootcamp http://www.dumpcollection.com PDF and Testing Engine, study and practice Exam : 1z0-144 日本語 (JPN) Title : Oracle Database 11g: Program with PL/SQL Vendor

More information

1. インストールする前に 1. インストールする前に プリンタードライバーをインストールする前に 下記の事項を確認してください 複合機が正しく接続されているネットワーク接続の場合複合機を社内 LAN などのネットワークにつなげて使用する場合は 複合機が正しくネットワークに接続されていることをネット

1. インストールする前に 1. インストールする前に プリンタードライバーをインストールする前に 下記の事項を確認してください 複合機が正しく接続されているネットワーク接続の場合複合機を社内 LAN などのネットワークにつなげて使用する場合は 複合機が正しくネットワークに接続されていることをネット プリンタードライバーインストールガイド Windows 7 対象 簡易インストール編 本ガイドは 複合機 bizhub C360 を例に説明をしています 他の機種の場合も操作方法は同じです 本書では Windows 7 で複合機を利用するために必要なプリンタードライバーのインストール方法を説明し ます 他の OS の場合は ユーザーズガイドプリンター機能編 を参照してください 1. インストールする前に

More information

ICONファイルフォーマット

ICONファイルフォーマット グラフィックス 画像フォーマットエンコーダパラメータ 様々なフォーマットで画像を保存 Bitmap クラスを用いる事でビットマップ JPEG GIF PNG 等様々なフォーマットの画像を読み込み操作する事が出来る 更に Bitmap クラスや Graphics コンテナを用いて描画処理等を施したイメージをファイルに保存する事も出来る 此の時 読み込めるフォーマット同様に保存するフォーマットを選択する事が出来る

More information

デジタル表現論・第6回

デジタル表現論・第6回 デジタル表現論 第 6 回 劉雪峰 ( リュウシュウフォン ) 2016 年 5 月 16 日 劉 雪峰 ( リュウシュウフォン ) デジタル表現論 第 6 回 2016 年 5 月 16 日 1 / 16 本日の目標 Java プログラミングの基礎配列 ( 復習 関数の値を配列に格納する ) 文字列ファイルの書き込み 劉 雪峰 ( リュウシュウフォン ) デジタル表現論 第 6 回 2016 年

More information

JAVA入門

JAVA入門 JAVA 入門後期 10 情報処理試験例題解説 H14 年度秋問 8 次の Java プログラムの説明及びプログラムを読んで, 設問に答えよ プログラムの説明 ディジタル論理回路シミュレータを作成するためのクラスとテスト用クラスである (1) ゲートを表す抽象クラス Gate のサブクラスとして, NOT ゲートを表すクラス NotGate 及び AND ゲートを表すクラス AndGate を定義する

More information

Microsoft Word - Writing Windows Installer's DLL.doc

Microsoft Word - Writing Windows Installer's DLL.doc Windows Installer 形式 DLL ファイルの作成 この文書は Acresso Software の次の文書を元に記載しています http://www.acresso.com/webdocuments/pdf/dlls-for for-ipwi.pdf 検証したバージョン : InstallShield 2009 Premier Edition 概要 InstallShield 2009

More information

基礎計算機演習 実習課題No6

基礎計算機演習 実習課題No6 実習課題 No.6 課題は 3 題ある. 課題 6-1 時間内提出 次の実行例のように, 名簿を出力するプログラムをつくりたい. このプログラムでは, まず人数をたずね, 次にその人数分の名前を入力し, それを再びコンソールに出力する. なお, 空の名前が入力されても終了せずにその欄は空欄で出力するものとする. 注意とヒント この課題では,string 型の配列をまず宣言する. このとき, 配列の要素はちょうど名簿に入力する人数分だけを宣言すること

More information

JAVA とテンプレート

JAVA とテンプレート JAVA とテンプレート 序論 : コンテナ 他のクラスのオブジェクトを保存するものをコンテナ (Container) と呼ぶ 集合 リスト 表 コンテナに求められる機能 追加 削除 参照 要素の比較 並べ替え 要素のクラスが不明では 比較できない 要素が想定しているクラスのものかの判定 テンプレート以前の対応方法 コンテナ設計時に 保存されるクラスを特定してコンテナをコードする 保存されるクラスごとに作成しなければならない

More information

Microsoft PowerPoint - chap10_OOP.ppt

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,

More information

mySQLの利用

mySQLの利用 MySQL の利用 インストール インストール時に特に注意点は無い 本稿記述時のバージョンは 6.5.4 で有る (2017 年 11 月現在では 6.10.4 で https://dev.mysql.com/downloads/connector/net/6.10.html よりダウンロード出来る ) 参照設定 インストールが終了すれば Visual Studio で参照の設定を行う 参照の設定画面で

More information

HTTP 404 への対処

HTTP 404 への対処 Sitecore CMS 6 HTTP 404 への対処 Rev: 2010-12-10 Sitecore CMS 6 HTTP 404 への対処 Sitecore を使用して HTTP 404 Page Not Found 状態に対処するための開発者向けガイド 目次 Chapter 1 イントロダクション... 3 Chapter 2 HTTP 404 Page Not Found 状態... 4

More information

ただし 無作為にスレッドを複数実行すると 結果不正やデッドロックが起きる可能性がある 複数のスレッド ( マルチスレッド ) を安全に実行する ( スレッドセーフにする ) ためには 同期処理を用いるこ とが必要になる 同期処理は 予約語 synchronized で行うことができる ここでは sy

ただし 無作為にスレッドを複数実行すると 結果不正やデッドロックが起きる可能性がある 複数のスレッド ( マルチスレッド ) を安全に実行する ( スレッドセーフにする ) ためには 同期処理を用いるこ とが必要になる 同期処理は 予約語 synchronized で行うことができる ここでは sy オブジェクト指向プログラミング演習 2010/10/27 演習課題 スレッド ( その 2) 同期処理 結果不正 デッドロック 前回のスレッドの演習では 複数のスレッドを実行し 一つのプログラムの中の違う処理を同時に実行し た ただし 無作為にスレッドを複数実行すると 結果不正やデッドロックが起きる可能性がある 複数のスレッド ( マルチスレッド ) を安全に実行する ( スレッドセーフにする )

More information

VB.NET解説

VB.NET解説 Visual Basic.NET 印刷編 目次 印刷の概要... 2 印刷の流れ... 2 標準の Windows フォーム印刷ジョブの作成... 3 実行時に於ける Windows フォーム印刷オプションの変更... 3 Windows フォームに於ける接続されたプリンタの選択... 4 Windows フォームでのグラフィックスの印刷... 5 Windows フォームでのテキストの印刷...

More information

Prog2_10th

Prog2_10th 2013 年 11 月 28 日 ( 木 ) 実施 ファイル操作とディレクトリ操作今回の授業では,Java 言語でのファイル操作とディレクトリ操作とについて学習する ファイル操作ファイル操作は,C 言語プログラミングで学んだように, 次の順序で行う 1) ストリームを開く 2) ストリームからの入力, ストリームへの出力 3) ストリームを閉じる Java 言語では, ファイル操作に関係するクラスが複数用意されている

More information

電子化シートマニュアル(インストール編)_ver106

電子化シートマニュアル(インストール編)_ver106 電子化シート Ver.2.0.0 マニュアル ( インストール編 ) 目次 I データのバックアップ ( データの保存 )...2 II 新しいバージョンのインストール...4 III データのリストア ( データの復元 )...7 IV 推奨システム条件...9 V Windows7 対応について... 10 (1) Windows7 の設定の変更... 10 (2) R4 電子化シートのフォルダー設定...

More information

JavaプログラミングⅠ

JavaプログラミングⅠ Java プログラミング Ⅱ 3 回目クラスの機能 (1) アクセス制限 オーバーロード課題 確認 問題次の各文は正しいか誤っているか答えなさい (1) クラスの private メンバは そのクラスからのみアクセス可能なメンバである (2) 一般に クラスのフィールドはどこからでもアクセスできるように public メンバで宣言すべきである (3) クラスは private メンバと public

More information

Microsoft PowerPoint - prog04.ppt

Microsoft PowerPoint - prog04.ppt プログラミング言語 3 第 04 回 (2007 年 10 月 15 日 ) 1 今日の配布物 片面の用紙 1 枚 今日の課題が書かれています 本日の出欠を兼ねています 2/33 1 今日やること http://www.tnlab.ice.uec.ac.jp/~s-okubo/class/java06/ にアクセスすると 教材があります 2007 年 10 月 15 日分と書いてある部分が 本日の教材です

More information

Microsoft PowerPoint - Pro110111

Microsoft PowerPoint - Pro110111 本日の到達目標 : コレクション プログラミング III 及び実習 1. コレクションとは 2. コレクションの種類 3. 使用方法 第 13 回コレクション 1 2 配列 ( 第 3 回 10 月 13 日 ) 演習 2 ファイル Bubble1.java は, 交換ソート ( バブルソート ) のプログラム ( 途中 ) である. プログラムを完成させ, 正しく実行できることを確かめなさい. /edu/g/po3_09/bubble1.java

More information

Prog2_9th

Prog2_9th 2013 年 11 月 21 日 ( 木 ) 実施例外処理 Java 言語では, 作成したプログラムを実行する際に, 記述した処理が想定しない事態によって実行できなくなる場合を例外と呼び, その例外への対処, 即ち例外処理が求められる これまでの教材に登場した例外の中で,IOException はコンパイラがチェックするため, 例外処理を必ず記述しなければコンパイルが出来ないものであるのに対して,ArithmeticException

More information

マクロの実行許可設定をする方法 Excel2010 で 2010 でマクロを有効にする方法について説明します 参考 URL:

マクロの実行許可設定をする方法 Excel2010 で 2010 でマクロを有効にする方法について説明します 参考 URL: マクロの実行許可設定をする方法 Excel2010 で 2010 でマクロを有効にする方法について説明します 参考 URL: http://excel2010.kokodane.com/excel2010macro_01.htm http://span.jp/office2010_manual/excel_vba/basic/start-quit.html Excel2010 でマクロを有効にする

More information

平成 30 年度 プログラミング研修講座 岩手県立総合教育センター

平成 30 年度 プログラミング研修講座 岩手県立総合教育センター 平成 30 年度 プログラミング研修講座 岩手県立総合教育センター 目次第 1 章プログラミングについて 1 ソフトウェアの働き 1 2 プログラミング言語 1 3 主なプログラミング言語の歴史 2 第 2 章 Visual Basic について 1 Visual Basic とは 3 2.NET Framework の環境 3 3 Visual Basic と.NET Framework の関係

More information

第 1 章 : はじめに RogueWave Visualization for C++ の Views5.7 に付属している Views Studio を使い 簡単な GUI アプリケーションの開発手順を紹介します この文書では Windows 8 x64 上で Visual Studio2010

第 1 章 : はじめに RogueWave Visualization for C++ の Views5.7 に付属している Views Studio を使い 簡単な GUI アプリケーションの開発手順を紹介します この文書では Windows 8 x64 上で Visual Studio2010 RW View Studio Getting Started (1) : 簡単な GUI アプリケーションを作成する 目次 第 1 章はじめに...1 1.1 アプリケーションの概要... 1 1.2 Views Studio とは... 2 第 2 章 Views Studio を起動する...3 2.1 起動画面 ( メインウィンドウ ) の説明... 4 2.2 ガジェットエクステンション...

More information

プレポスト【問題】

プレポスト【問題】 コース名 : 基礎から学ぶ!Excel VBA による業務の自動化 受講日 氏名 1 Excel VBA を使用するメリットとして誤っているものを 1 つ選びなさい 1. 手作業では手間のかかる作業も プログラムに記述した処理は一括して実行されるため 何段階ものメニュー操作を行う必要がなくなる 2. プログラムに書いた処理は記述どおりに実行されるため だれがいつ何回行っても確実な処理がなされ 誤動作を防ぐことができる

More information

Consuming a simple Web Service

Consuming a simple Web Service Consume a Simple Web Service シンプルな Web サービスを利用する 目次 1 Introduction はじめに... 2 2 Importing a WSDL WSDL をインポートする... 3 3 Creating Logic to Call the Web Service Web サービスを呼び出すロジックを作成する... 5 4 Related Content

More information

TestDesign for Web

TestDesign for Web 発行日 2012/6/21 発行元 株式会社アープ 本書は Web でのテスト自動化における Test Design の一連の操作方法まとめたものです Test Design のメニューの説明やより詳細な使い方については ユーザーズガイド を参照してください 目次 1. はじめに... 1 2. 環境構築... 2 2.1. Selenium のサイトについて... 2 2.2. Selenium

More information

Windows 10 IoT Core MVA 2015 August Windows 10 IoT Core ハンズオントレーニング Building and running Github MS IoT Samples on Windows 10 IoT Core 3 章 UWP アプリの開発 L

Windows 10 IoT Core MVA 2015 August Windows 10 IoT Core ハンズオントレーニング Building and running Github MS IoT Samples on Windows 10 IoT Core 3 章 UWP アプリの開発 L Windows 10 IoT Core ハンズオントレーニング Building and running Github MS IoT Samples on Windows 10 IoT Core 3 章 UWP アプリの開発 Lab version: 10240.1.0 Last updated: 9/24/2015 Building and running Github MS IoT Samples

More information

DPC-0401

DPC-0401 Interface USB Driver (I/O-CD) DPC-0401 USB 拡張 I/O 用 Windows ドライバ Help for Windows www.interface.co.jp 目次 第 1 章はじめに...3 1.1 概要...3 1.2 各 I/O に対応したドライバ...3 第 2 章製品仕様...4 2.1 基本仕様...4 2.2 製品構成...4 2.3 クラスライブラリの参照方法...5

More information

InstallShield FAQ < 独自の InstallShield 前提条件を作成する > 注 ) このドキュメントは InstallShield 2014 Premier Edition を基に作成しています InstallShield 2014 以外のバージョンでは設定名などが異なる場合

InstallShield FAQ < 独自の InstallShield 前提条件を作成する > 注 ) このドキュメントは InstallShield 2014 Premier Edition を基に作成しています InstallShield 2014 以外のバージョンでは設定名などが異なる場合 < 独自の InstallShield 前提条件を作成する > 注 ) このドキュメントは InstallShield 2014 Premier Edition を基に作成しています InstallShield 2014 以外のバージョンでは設定名などが異なる場合もあります 概要 InstallShield 前提条件は 製品が必要とする他製品やテクノロジ フレームワークをインストールするための機能を提供しています

More information

基本サンプル

基本サンプル SQLCompiler for LINQ(VB) のサンプル (LINQPad 用 LINQ to Entities 基本サンプル ) 本サンプルで使用した Visual Studio プロジェクトの pubs データベースの概念モデルは 以下のテーブル名とカラム名が 直接 SQL Sever へクエリする場合と異なるので が補正されています テーブル名が異なるもの employee employees

More information