OSS モデルカリキュラムの学習ガイダンス 3. IT 知識体系との対応関係 4-3- 基 C++ に関する知識 と IT 知識体系との対応関係は以下の通り 科目名 基本レベル 基 C++ に関すオブジェクト指る知識向

Size: px
Start display at page:

Download "OSS モデルカリキュラムの学習ガイダンス 3. IT 知識体系との対応関係 4-3- 基 C++ に関する知識 と IT 知識体系との対応関係は以下の通り 科目名 基本レベル 基 C++ に関すオブジェクト指る知識向"

Transcription

1 OSS モデルカリキュラムの学習ガイダンス 4-3- 基 C++ に関する知識 1. 科目の概要 C を拡張してオブジェクト指向の概念を取り入れたプログラミング言語である C++ の基本的な知識を解説する C++ プログラムの構造 型 演算子や標準的なプログラム記述方法 ライブラリを利用したプログラミングなどについて説明する 2. 習得ポイント 本科目の学習により習得することが期待されるポイントは以下の通り 習得ポイント説明シラバスの対応コマ 4-3- 基 -1. オブジェクト指向の概念 C++ プログラミングの前提となるオブジェクト指向の概念について解説する データ自身だけでなくデータの処理方法まで含めてオブジェクトに全てが属するという根本的な考え方と 各種の用語 型による抽象的なデータ操作などについて説明する 基 -2. C++ の基本 C++ の歴史や特徴 C++ による開発事例を解説する また C++ によるプログラムを開発する手順として エディタによるプログラム作成からコンパイル プログラム実行までの流れを説明し 簡単な C++ プログラム作成例を紹介する 更に変数やデータ型の C から拡張された部分を説明する 基 -3. クラス C++ プログラム構成の概要を説明し C++ で導入されているオブジェクト指向の特徴について述べる 更に C++ によるオブジェクト指向プログラミングの実現方法について解説し C++ におけるクラスの定義方法 コンストラクタ デストラクタなどについて説明する 3, 基 -4. オーバーロード C++ プログラミングを特徴付ける関数の使用方法と 関数のオーバーロードや演算子のオーバーロードについて解説する またフレンド関数やフレンドクラスについて解説し 演算子のオーバーロードにフレンド関数を使用することの利点を説明する 5, 基 -5. 継承と多相性 C++ における継承の概念と 基底クラスから派生クラスを作成する方法を解説し 継承の形態による継承後の属性の変化を説明する また オーバーライドの使用方法を解説し 仮想関数を利用した多相性の実現方法を説明する 基 -6. 抽象クラス 多重継承 関数の実体を持たない純粋仮想関数を少なくともひとつは持つ抽象クラスの概念を説明し 更にインタフェースクラスを解説する また 複数のクラスを継承する多重継承と 継承の重複を回避する仮想基底クラスについて解説する 8, 基 -7. テンプレート C++ におけるジェネリックプログラミングの実現手法として テンプレートの概念と利便性を解説し ソースコードの生成を自動化する関数テンプレートの定義方法と 要素の型が任意となるクラステンプレートの定義方法を解説する またクラステンプレートの例として string クラスを解説する 9, 基 -8. 例外 名前空間 キャスト 変換関数 C++ における動的エラーの統一した処理として例外処理を説明する その他 名前空間の詳細を解説し プログラムの実行時にデータ型を取得する実行時型情報の取得方法や C にはないキャストの方法 更に変換関数を解説する 10, 基 -9. 入出力 C での入出力を C++ でサポートしていることを説明し C++ の入出力システムとの違いを解説する 更に 定義済みマニピュレータとマニピュレータの作成方法 また抽出演算子や挿入演算子のオーバーロードの方法を解説する 基 -10. Standard Template Library コンテナ イテレータ アルゴリズムのライブラリ化といった概念を説明し C++ によるその実装である STL (Standard Template Library) を紹介する また STL によるプログラミング例を挙げ STL の具体的な使い方を解説する 14,15 学習ガイダンスの使い方 1. 習得ポイント により 当該科目で習得することが期待される概念 知識の全体像を把握する 2. シラバス IT 知識体系との対応関係 OSS モデルカリキュラム固有知識 をもとに 必要に応じて 従来の IT 教育プログラム等との相違を把握した上で 具体的な講義計画を考案する 3. 習得ポイント毎の 学習の要点 と 解説 を参考にして 講義で使用する教材等を準備する

2 OSS モデルカリキュラムの学習ガイダンス 3. IT 知識体系との対応関係 4-3- 基 C++ に関する知識 と IT 知識体系との対応関係は以下の通り 科目名 基本レベル 基 C++ に関すオブジェクト指る知識向の概念 C++ の基本クラスの定義クラスの詳細 関数のオーバーロード 演算子のオーバーロード 継承と多相性 抽象クラス 多重継承 テンプレート キャスト 名前空間 例外 変換関数入出力 演習 ( アルゴリズムとデータ構 STLの概要造の実装 ) アルゴリズムとデータ構造の使用 <IT 知識体系上の関連部分 > 分野 科目名 組織関連事項と情報システム 1 2 IT-IAS 情報保証 IT-IAS2. 情報セ IT-IAS1. 基礎的 IT-IAS3. 運用上 IT-IAS4. ポリと情報セキュリキュリティの仕な問題の問題シーティ組み ( 対策 ) IT-SP 社会的な IT-SP1. プロ IT-SP3. コン観点とプロフェッショナル IT-SP2. コン IT-SP4. チームピュータを取りフェッショナルとしてのコミュピュータの歴史ワーク巻く社会環境としての課題ニケーション IT-IAS7. フォレ IT-IAS9. 情報セ IT-IAS6. 情報セ IT-IAS8. 情報の IT-IAS10. 脅威分 IT-IAS5. 攻撃ンジック ( 情報証キュリティサー IT-IAS11. 脆弱性キュリティ分野状態析モデル拠 ) ビス IT-SP8. プロ IT-SP6. コン IT-SP9. プライバ IT-SP5. 知的財産 IT-SP7. 組織の中フェッショナルピュータの法的シーと個人の自権のIT としての倫理的問題由な問題と責任 応用技術 IT-IM2. データ IT-IM4. データモ IT-IM6. データ IT-IM1. 情報管理 IT-IM3. データ IT-IM5. データと 3 IT-IM 情報管理ベース問合わせデリングとデーベースの応用分の概念と基礎アーキテクチャ情報の管理言語タベース設計野 IT-WS2. 情報アー IT-WS Webシステ IT-WS1.Web 技術 IT-WS3. デジタル IT-WS6. ソーシャ 4 キテクチャ IT-WS4.Web 開発 IT-WS5. 脆弱性ムとその技術 [1-Ⅰ-7] メディアルソフトウェア [1-Ⅰ-7] 5 IT-PF2. プログラ IT-PF3. オブジェ IT-PF5. イベント IT-PF プログラ IT-PF1. 基本デー IT-PF4. アルゴリミングの基本的クト指向プログ駆動プログラミ IT-PF6. 再帰ミング基礎タ構造ズムと問題解決構成要素ラミングング ソフトウェア 6 IT-IPT 技術を統 IT-IPT1. システ IT-IPT5. ソフト IT-IPT7. プログ IT-IPT2. データ IT-IPT3. 統合的 IT-IPT4. スクリ IT-IPT6. 種々の合するためのプム間通信ウェアセキュリラミング言語の割り当てと交換コーディングプティング手法問題ログラミング [1-Ⅰ-3] ティの実現概要 の方法と技術 7 CE-SWE ソフトウェア工学 CE-SWE6. ソフト CE-SWE2. ソフト CE-SWE4. ソフト CE-SWE7. ソフト CE-SWE9. ソフト CE-SWE10. ソフト CE-SWE11. ソフ CE-SWE0. 歴史と CE-SWE1. ソフト CE-SWE3. ソフト CE-SWE5. ソフトウェア開発 保 CE-SWE8. 言語翻ウェアの要求とウェアのテストウェアプロジェウェアのフォーウェアの構成管トェアの標準化概要ウェアプロセスウェアの設計ウェアの保守守ツールと環境訳仕様と検証クト管理ルトトレランス理 [1-Ⅰ-6] [1-Ⅰ-4] 8 IT-SIA システム IT-SIA3. インテインテグレー IT-SIA1. 要求仕 IT-SIA2. 調達 / 手 IT-SIA4. プログレーションションとアーキ様配ジェクト管理 [1-Ⅰ-4] テクチャ IT-SIA5. テスト IT-SIA6. 組織の IT-SIA7. アーキと品質保証特性テクチャ 9 IT-NET ネットワーク IT-NET1. ネット IT-NET2. ルーワークの基礎ティングとスイッチング IT-NET5. アプリ IT-NET4. セキュ IT-NET6. ネット IT-NET3. 物理層ケーション分野リティワーク管理 [1-Ⅰ-5] システム基盤 CE-NWK1. 通信 CE-NWK2. 通信 CE-NWK0. 歴史と CE-NWK3.LANとネットワークのネットワークの概要 WAN アーキテクチャプロトコル CE-NWK テレコ 10 ミュニケーション CE-NWK14. イン CE-NWK13. クラスターネットアプ CE-NWK15. 次世代タシステムリケーションインターネット CE-NWK16. 放送 [1-Ⅰ-5,7] CE-NWK4. クライ CE-NWK6. ワイヤアントサーバコ CE-NWK5. データレスコンピュー CE-NWK8. 組込み CE-NWK9. 通信技 CE-NWK7. データ CE-NWK10. 性能評 CE-NWK11. ネット CE-NWK12. 圧縮とンピューティンのセキュリティティングとモバ機器向けネット術とネットワー通信価ワーク管理伸張グと整合性イルコンピューワークク概要 [1-Ⅰ-3] ティング IT-PT1. オペレー IT-PT4. デプロイ IT-PT3. コン IT-PT プラットティングシステ IT-PT2. アーキテメントソフト IT-PT5. ファーム IT-PT6. ハード 11 ピュータインフフォーム技術ムクチャと機構ウェアウェアウェアラストラクチャ [1-Ⅰ-3] [1-Ⅰ-4] CE-OPS オペレー CE-OPS2. スケ CE-OPS0. 歴史と CE-OPS3. メモリ CE-OPS4. セキュ CE-OPS5. ファイ CE-OPS6. リアル CE-OPS7.OSの概 CE-OPS8. 設計の CE-OPS9. デバイ CE-OPS10. システ 12 ティングシステ CE-OPS1. 並行性ジューリングと概要管理リティと保護ル管理タイムOS 要原則ス管理ム性能評価ムディスパッチ アーハーコンキドテピュウェ13 クーチャアタと CE-CAO コンピュータのアーキテクチャと構成 CE-CAO0. 歴史と概要 CE-CAO1. コンピュータアーキテクチャの基礎 CE-CAO2. メモリシステムの構成とアーキテクチャ CE-CAO3. インタフェースと通信 CE-CAO4. デバイスサブシステム CE-CAO5.CPUアー CE-CAO6. 性能 キテクチャコスト評価 CE-CAO7. 分散 並列処理 CE-CAO8. コンピュータによる計算 CE-CAO9. 性能向上 複数領域にまたがるもの 14 IT-ITF IT 基礎 15 CE-ESY 組込みシステム IT-ITF1.ITの一般的なテーマ [1-Ⅰ-4] CE-ESY0. 歴史と概要 IT-ITF2. 組織の問題 CE-ESY1. 低電力コンピューティング IT-ITF3.ITの歴史 CE-ESY2. 高信頼性システムの設計 IT-ITF4.IT 分野 ( 学科 ) とそれに関連のある分野 ( 学科 ) CE-ESY3. 組込み用アーキテクチャ IT-ITF5. 応用領域 CE-ESY4. 開発環境 IT-ITF6.IT 分野における数学と統計学の活用 CE-ESY5. ライフサイクル CE-ESY6. 要件分析 CE-ESY7. 仕様定義 CE-ESY8. 構造設計 CE-ESY9. テスト CE-ESY10. プロジェクト管理 CE-ESY11. 並行設計 ( ハードウェ CE-ESY12. 実装ア ソフトウェア CE-ESY19. インタ CE-ESY13. リアル CE-ESY14. 組込み CE-ESY18. ネット CE-ESY24. 信頼性 CE-ESY15. 組込み CE-ESY16. 設計手 CE-ESY17. ツールフェースシステ CE-ESY20. センサ CE-ESY21. デバイ CE-ESY22. メンテ CE-ESY23. 専門シタイムシステムマイクロコントワーク型組込みとフォールトトプログラム法によるサポートムと混合信号シ技術スドライバナンスステム設計ローラシステムレランスステム

3 OSS モデルカリキュラムの学習ガイダンス 4. OSS モデルカリキュラム固有の知識 OSS モデルカリキュラム固有の知識として C++ 言語を用いた開発手法や Linux 上での標準入出力 ファイル入出力 STL を扱うための知識がある また OSS である vi エディタ g++(gcc コンパイラ (GNU Compiler Collection)) を用いた開発の流れを学ぶ 科目名第 1 回第 2 回第 3 回第 4 回第 5 回第 6 回第 7 回 (1) オブジェクトとは (1) C++ の説明 (1) クラスの定義 (1) クラスの詳細 (1) C++ における関 (1) 演算子のオー (1) 継承数の特徴バーロード (2) オブジェクト指向 (2) C++ による開発の流れ (2) オブジェクトの生成と使用 (2) 動的生成 (2) 関数のオーバーロード (2) フレンド (2) 仮想関数と多相性 4-3- 基 C++ に関する知識 (3) オブジェクトと関数 第 8 回 第 9 回 第 10 回 第 11 回 第 12 回 第 13 回 第 14 回 第 15 回 (1) 抽象クラス (1) テンプレート (1) 実行時型情報 (1) 例外 (1) C++ における入 (1) オブジェクト指 (1) STLの概要 (1) アルゴリズム 出力システムの説明 向プログラミングの演習 (2) 多重継承 (2) stringクラス (2) キャスト (2) 変換関数 (2) ファイル入出力 (2) ジェネリックプロ (2) イテレータとコン (2) リスト グラミングの演習 テナ (3) 名前空間 (3) ベクトル (4) マップ ( 網掛け部分は IT 知識体系で学習できる知識を示し それ以外は OSS モデルカリキュラム固有の知識を示している )

4 スキル区分 科目 レベル プログラミング分野 4-3- 基 C++ に関する知識 基本 習得ポイント 4-3- 基 -1. オブジェクト指向の概念 対応するコースウェア 第 1 回オブジェクト指向の概念 4-3- 基 -1. オブジェクト指向の概念 C++ プログラミングの前提となるオブジェクト指向の概念について解説する データ自身だけでなくデータの処理方法まで含めてオブジェクトに全てが属するという根本的な考え方と 各種の用語 型による抽象的なデータ操作などについて説明する 学習の要点 * オブジェクトとは 属性 操作 関係 アイデンティティ の特性を満たしたものである * 同じ特性を持つオブジェクトの集合を抽象化したものを クラス といい クラスに属するオブジェクトの例を インスタンス という * オブジェクト指向の基本的な技術としては カプセル化 継承 多相性 がある 図 4-3- 基 -1 オブジェクト指向の概念 4-3- 基 - 1

5 解説 1) オブジェクトとはオブジェクトとは 属性 操作 関係 アイデンティティ の特性を満たしたものである * 属性オブジェクトは固有の形や性質などを持っている * 操作オブジェクトは固有の振る舞いを持っている * 関係オブジェクトは単独で存在することはなく 必ず他のものと関係を持っている * アイデンティティオブジェクトは他のものと区別するためのアイデンティティを持っている 2) クラスとインスタンスオブジェクトに関連する概念として クラス と インスタンス がある * クラスオブジェクトの属性や操作の雛形を定義したものをクラスといい クラスの定義はオブジェクトの集合である内包クラスとオブジェクトの抽象化である外延クラスの2つに分けられる * インスタンスクラスから生成されるオブジェクトの実体のことをインスタンスと呼ぶ 3) オブジェクト指向オブジェクト指向では 実現する機能を 個々に属性と操作を持った オブジェクト として実装する またオブジェクト指向開発とは オブジェクトの集まりを基本に開発を進める開発手法である オブジェクト指向の基本的な要素としては カプセル化 継承 多相性 がある * カプセル化オブジェクト同士の関係動作を メッセージのみで行い 属性の詳細を隠ぺいすることを カプセル化といい 他のオブジェクトからの変更を防ぐと共に オブジェクト内部に変更があった場合でも他のオブジェクトへの影響を抑えることが可能となる * 継承基本オブジェクトの特性を引き継いで派生オブジェクトを定義することを継承という 基本となるオブジェクトから継承したオブジェクトは新しい属性や操作を持つことができる * 多相性基本オブジェクトで定義されている操作を 派生オブジェクトが持っている属性の型に応じて異なる処理が行われるように操作の実装を変化させることを多相性という 4-3- 基 - 2

6 スキル区分 OSS モデルカリキュラムの科目 レベル プログラミング分野 4-3- 基 C++ に関する知識 基本 習得ポイント 4-3- 基 -2. C++ の基本 対応するコースウェア 第 2 回 C++ の基本 4-3- 基 -2. C++ の基本 C++ の歴史や特徴 C++ による開発事例を解説する また C++ によるプログラムを開発する手順として エディタによるプログラム作成からコンパイル プログラム実行までの流れを説明し 簡単な C++ プログラム作成例を紹介する 更に変数やデータ型の C から拡張された部分を説明する 学習の要点 * C++ は AT&T ベル研究所の Bjarne Stroustrup 博士が 事象駆動型のシミュレーションを記述するため C を拡張した言語として開発した * C++ は C にオブジェクト指向の概念を取り入れた * オープンソースソフトウェアの C++ コンパイラとしては g++(gcc) がある * C++ は C に参照型や const 型等の機能を追加した * C++ では変数をプログラム内のどこでも宣言することができる 宣言した変数のスコープは宣言したブロック内となる 図 4-3- 基 -2 C++ のプログラミング 4-3- 基 - 3

7 解説 1) C++ の誕生 C を始めこれまでのプログラム言語は 最初にデータの定義を行いそのデータを処理する手続きを記述する手続き型の言語であったため 現実の事象を表そうとしたときにデータの定義や手続きの記述が複雑になってしまう問題があった 関連するデータとこれを用いる処理を 1 つのグループにまとめたオブジェクトにすることにより 現実の事象を表した理解しやすいプログラムを記述できると考え オブジェクト指向の概念が生まれた C++ は AT&T ベル研究所の Bjarne Stroustrup 博士が 事象駆動型のシミュレーションを記述するため C にオブジェクトを定義するクラスを始めとした新たな機能を追加し改良を行った言語である C++ は C で開発されたプログラムを利用でき 他の言語よりも効率よく処理を行えることから急速に普及した 2) C++ の特徴 C++ の主な特徴としては以下のような点が挙げられる * オブジェクト指向 C++ の最大の特徴としては オブジェクト指向の概念であるデータと命令をクラス内で組み合わせるという機能が追加されたことである * 参照型定義済みの変数を用いて参照型の変数を定義することにより 変数の別名として使用することができる 関数の引数として指定した場合 呼出し元で定義された変数を関数内で変更することが可能となる * const 型 const 型で変数を定義することにより プログラム内で変更が出来ない変数として定義する * 新しいデータ型 C++ では true または false の値を持つ bool 型 が追加された * 変数の宣言とスコープ C++ では変数をプログラム内のどこでも宣言することができる 宣言した変数のスコープは宣言したブロック内となる 3) C++ を利用したプログラム開発 C++ は C と同様にソースコードをコンパイルして実行可能なファイルを作成することによりプログラムを作成する オープンソースソフトウェアの C++ コンパイラとしては g++(gcc) が利用できる * 作成手順 Linux における C++ プログラムの作成手順としては以下のような流れになる - テキストエディタでソースコードを記述 - g++(gcc) にてソースコードのコンパイルとリンクを行い 実行ファイルを作成 - 実行ファイルの実行 4-3- 基 - 4

8 スキル区分 OSS モデルカリキュラムの科目 レベル プログラミング分野 4-3- 基 C++ に関する知識 基本 習得ポイント 4-3- 基 -3. クラス 対応するコースウェア 第 3 回クラスの定義第 4 回クラスの詳細 4-3- 基 -3. クラス C++ プログラム構成の概要を説明し C++ で導入されているオブジェクト指向の特徴について述べる 更に C++ によるオブジェクト指向プログラミングの実現方法について解説し C++ におけるクラスの定義方法 コンストラクタ デストラクタなどについて説明する 学習の要点 * オブジェクト指向へ対応するため 構造体にそのデータを扱うための関数をあわせたクラスの定義を行う * オブジェクトは状態を保持するためのメンバ変数と オブジェクトの動作を定義するためのメンバ関数で構成され これらをクラスによって定義する * クラスには 初期化を行うコンストラクタ 終了処理を行うためのデストラクタという特殊なメンバ関数を定義することができる * クラスのメンバを外部に公開するか否かを決めるアクセス制限は カプセル化を実現する 図 4-3- 基 -3 C++ プログラムの構成 4-3- 基 - 5

9 解説 1) クラスの定義クラスはオブジェクトの状態を保持するためのメンバ変数と オブジェクトの動作を定義するためのメンバ関数を定義したものである 通常は1つのソースファイルに1つのクラスの定義を記述する ソースファイルは クラスのプロパティとメソッドのプロトタイプを記述した宣言部分と各メソッドの本体を記述する関数部分に分けられる 宣言部分では class キーワードにより class クラス名 のようにクラスの宣言を行う アクセス識別子 (public private protected) を指定し プロパティおよびメソッドのアクセス制限を設定することができる アクセス制限は カプセル化を実現する手法である - public : クラス外の誰でもアクセス可能 - private : クラス内のみアクセス可能 - protected : クラス内および派生クラス内のみアクセス可能 関数部分ではスコープ解決演算子 :: を用いて クラス名:: メソッド名 のように関数の記述を行う C では関連するデータをまとめて管理する場合 構造体の定義によって実装を行い この構造体を操作する処理は個別に関数の作成を行う C++ では構造体と個別の関数で実装していたものを 以下のようにクラスとしてひとまとめにして実装することができる * 記述例 class sample { private: int count; int data[100]; pubulic: void func1(int item); }; void stack::func1(int item){ } 2) コンストラクタとデストラクタクラスからインスタンスを生成する時に呼び出される関数をコンストラクタ インスタンスが破棄されるときに呼び出される関数をデストラクタと呼ぶ コンストラクタの名称はクラスの名称と同じもので定義する コンストラクタは通常の関数と同様に引数を持つことが可能であるが 戻り値を持たない関数である デストラクタの名称はクラスの名称の前にチルダ ~ をつけたもので定義する デストラクタは引数も戻り値も持たない関数である クラスの定義で デストラクタを明示的に定義していない場合 コンパイラによって自動的に生成される 3) 動的生成 C++ では new 演算子でインスタンスを動的に割り当て delete 演算子で解放する 4-3- 基 - 6

10 スキル区分 OSS モデルカリキュラムの科目 レベル プログラミング分野 4-3- 基 C++ に関する知識 基本 習得ポイント 4-3- 基 -4. オーバーロード 対応するコースウェア 第 5 回関数のオーバーロード第 6 回演算子のオーバーロード 4-3- 基 -4. オーバーロード C++ プログラミングを特徴付ける関数の使用方法と 関数のオーバーロードや演算子のオーバーロードについて解説する またフレンド関数やフレンドクラスについて解説し 演算子のオーバーロードにフレンド関数を使用することの利点を説明する 学習の要点 * 関数のオーバーロードは 関数名が同一で 引数の型 数 並び順が異なる関数を複数定義することである * 関数の引数を省略した場合 自動的に void 型となる また関数定義またはプロトタイプ宣言にてデフォルト引数の指定ができる * クラスの演算において プログラマが自然な表現で理解しやすく記述できるように +や-などの演算子の処理内容を再定義することが 演算子のオーバーロードである * private メンバを含むすべてのメンバに対し 指定した関数またはクラスにのみアクセスを許したい場合は フレンド関数またはフレンドクラスを使用する 図 4-3- 基 -4 オーバーロード 4-3- 基 - 7

11 解説 1) 関数の特長 * 引数のない関数プロトタイプ宣言にて引数を持たない関数を定義する場合 C では (void) を用いて宣言を行う必要があるが C++ では空の引数リスト () を用いて宣言を行うことができる * デフォルト引数関数定義またはプロトタイプ宣言にて引数のデフォルト値を定義すると 関数の呼出し時に引数を省略することができる 引数を省略した場合デフォルト値が指定されたとして処理を行う * 初期化子クラスのインスタンスを生成する際に メンバ変数を初期化するには コンストラクタで初期化子を使用する また 定数をメンバ変数にする場合も 初期化子で定義する * インライン関数インライン関数の宣言は inline 指定子を使用する マクロ関数と同様に 関数のオーバーヘッドを回避する方法である メンバ関数については クラス定義時にプロトタイプを使用せず 関数の実体を組み込むことでインライン化される コンパイル時には g++(gcc) に-O で最適化オプションを指定する必要がある 2) 関数のオーバーロード関数名は 処理内容を的確に表すように命名する必要があるが 引数として渡したいデータの型が異なるだけで 処理内容が同等の関数に対して それぞれ別々の名前を付けなくても済むように 関数のオーバーロードという方法がある 関数のオーバーロードは 関数名が同一で 引数の型 数 並び順が異なる関数を複数定義することができる コンストラクタもオーバーロードすることができる 引数を持たないコンストラクタをデフォルトコンストラクタといい コンストラクタが何も定義されていなければ コンパイラで自動的に生成される インスタンスを生成する際に 同じ型のインスタンスを初期値として使用する場合 初期化時に呼ばれるコンストラクタをコピーコンストラクタという コピーコンストラクタは 明示的に定義されていなければ コンパイラによって自動的に生成される 3) 演算子のオーバーロードクラスの演算において プログラマが自然な表現で理解しやすく記述できるように +や-などの演算子の処理内容を再定義することが 演算子のオーバーロードである 代入演算子のオーバーロードは クラス定義で明示的にオーバーロードを定義していない場合 コンパイラによって自動的に生成される 4) フレンド private メンバを含むすべてのメンバに対し 指定した関数またはクラスにのみアクセスを許したい場合は フレンド関数またはフレンドクラスを使用する 特に 二項演算子をフレンドとしてオーバーロードした場合は 第一仮引数に演算子の左オペランドが渡されるので 左オペランドに組み込み型の変数などを使用されても フレンドを利用することで 二項演算子の関数内に取り込むことが可能となる 4-3- 基 - 8

12 スキル区分 OSS モデルカリキュラムの科目 レベル プログラミング分野 4-3- 基 C++ に関する知識 基本 習得ポイント 4-3- 基 -5. 継承と多相性 対応するコースウェア 第 7 回継承と多相性 4-3- 基 -5. 継承と多相性 C++ における継承の概念と 基底クラスから派生クラスを作成する方法を解説し 継承の形態による継承後の属性の変化を説明する また オーバーライドの使用方法を解説し 仮想関数を利用した多相性の実現方法を説明する 学習の要点 * 既存のクラスを元に新しいクラス ( 派生クラス ) を作成することをクラスの継承といい オーバーライドによって元となるクラス ( 基底クラス ) のメンバ関数を再定義することができる * 基底クラスのメンバが 派生クラスからアクセス可能になるか また外部へ公開されるかは 継承の形態で用いたアクセス識別子によって異なる * 仮想関数は オーバーライドされることを考慮して定義する関数で 継承したクラスで独自の処理をオーバーライドすることにより 同じ関数を実行するだけで インスタンスごとの独自な処理を行う多相性を実現する 図 4-3- 基 -5 継承と多相性 4-3- 基 - 9

13 解説 1) 継承クラスは オブジェクト指向の要素である継承により 新しいクラスを定義することができる 継承元となるクラスを 基底クラス 継承により作成したクラスを 派生クラス と呼ぶ 派生クラスは 基底クラスのメンバ変数やメンバ関数を継承する 但し 基底クラスのメンバが 派生クラスからアクセス可能になるか また外部へ公開されるかは 継承の形態で用いたアクセス識別子によって異なる * オーバーライドオーバーライドは 基底クラスのメンバ関数名と同じ名前のメンバ関数を派生クラスで再定義することである これにより 派生クラスの操作に特化した機能を同じメンバ関数名で定義できる * コンストラクタとデストラクタの実行順序派生クラスのインスタンスが作成されるときは まず基底クラスのコンストラクタが実行され 次に派生クラスのコンストラクタが実行される これに対し 派生クラスのインスタンスが解放されるときは まず派生クラスのデストラクタが実行され 次に基底クラスのデストラクタが実行される * 基底クラスの初期化基底クラスを初期化する場合は 派生クラスのコンストラクタで初期化子を使用する * 間接基底クラス派生クラスを更に継承した場合 最初の基底クラスを間接基底クラスという 2) 仮想関数と多相性 C++ では 多相性を実現するために仮想関数を使用する * 仮想関数仮想関数は オーバーライドされることを考慮して定義する関数で virtual キーワードを使用する 仮想関数の機能が発揮されるのは 基底クラスへのポインタに対し 派生クラスのインスタンスを示すアドレスをバインドするときである この時 基底クラスのメンバ関数を仮想関数にしていなければ 派生クラスでオーバーライドされていたとしても 基底クラスへのポインタが示すメンバ関数は 基底クラスのものになる つまり 実体は派生クラスでも オーバーライドが機能せず 基底クラスのメンバ関数が実行されてしまうことになる これに対し 基底クラスのメンバ関数が仮想関数に指定してあれば オーバーライドが機能し 基底クラスへのポインタが示すメンバ関数は インスタンスが派生クラスで生成されていれば 派生クラスのものとなる * 多相性クラス定義では 仮想関数を持つ基底クラスを継承した複数の派生クラスで それぞれが 多相性のためのアイデンティティを実装した 独自の処理をオーバーライドする インスタンスは 状況に合致した派生クラスで動的に生成し 基底クラスのポインタにアドレスをバインドする このポインタを使用する関数は 指し示す先のインスタンスが どのようなクラスなのか知る必要がなく 基底クラスの仮想関数を実行するだけで 状況に合致した処理を行うことができる * 仮想デストラクタデストラクタに virtual キーワードを使用したものが 仮想デストラクタである 仮想デストラクタを定義していない基底クラスは 多相性でインスタンスが解放されたときに 派生クラスのデストラクタを実行しない 4-3- 基 - 10

14 スキル区分 OSS モデルカリキュラムの科目 レベル プログラミング分野 4-3- 基 C++ に関する知識 基本 習得ポイント 4-3- 基 -6. 抽象クラス 多重継承 対応するコースウェア 第 8 回抽象クラス 多重継承第 13 回演習 ( アルゴリズムとデータ構造の実装 ) 4-3- 基 -6. 抽象クラス 多重継承 関数の実体を持たない純粋仮想関数を少なくともひとつは持つ抽象クラスの概念を説明し 更にインタフェースクラスを解説する また 複数のクラスを継承する多重継承と 継承の重複を回避する仮想基底クラスについて解説する 学習の要点 * 抽象クラスは 関数の実体を持たない純粋仮想関数をメンバ関数に持ち 派生クラスでオーバーライドさせることを前提とするとともに 派生クラスで共通に利用できる資産を提供する * メンバ関数を純粋仮想関数のみで構成するクラスは 一般にインタフェースクラスといい クラスの隠ぺいを強化し クラス間を疎結合にすることができる * 純粋仮想関数は 派生クラスのオーバーライド忘れを防止し 抽象クラスのインスタンス化を禁止する * C++ は 複数のクラスを継承する多重継承を実現する 多重継承による継承の重複を回避するには仮想基底クラスを使用する 図 4-3- 基 -6 抽象クラス 多重継承 4-3- 基 - 11

15 解説 1) 抽象クラスオブジェクト指向では 基本クラスのように自らを実体化できないクラスが多く存在する このようなクラスを C++ では 純粋仮想関数を使用して実現している * 純粋仮想関数純粋仮想関数は 関数の実体を持たない 次の条件を満たしていれば 純粋仮想関数として定義することができる - 基底クラスのメンバ関数であること - 派生クラスでオーバーライドされること - 派生クラスのオーバーライドした関数が使用され 自らは使われないこと 純粋仮想関数の定義は 仮想関数の定義の最後に =0 を付ける 純粋仮想関数が派生クラスでオーバーライドされていなければ コンパイルエラーとなり 実装漏れを防止できる * 抽象クラス抽象クラスは 純粋仮想関数を少なくともひとつは持つクラスである メンバ関数の実体が実装されていないため 抽象クラスをインスタンス化する実装はコンパイルエラーとなる 派生クラスで共通に利用できる資産は 抽象クラスの純粋仮想関数以外のメンバ関数に実装する * インタフェースクラスメンバ関数を純粋仮想関数のみで構成するクラスは 一般にインタフェースクラスといわれる インタフェースクラスは 派生クラスがどのような操作を持つのか明確にする 更に不要な情報が排除されるため カプセル化が強化され クラス間を疎結合にすることができる 2) 多重継承複数のクラスから継承して新しいクラスを定義することを多重継承といい 異なる特性を持つ基底クラスを統合し 複数の特性を持つクラスを作成することができる * コンストラクタとデストラクタの実行順序多重継承を定義するには カンマ演算子で基底クラスを連結する 多重継承した派生クラスのインスタンスを生成するときに 実行される基底クラスのコンストラクタは 定義の並び順に左側優先で順番に実行される これに対し デストラクタは 定義の並びの逆順に 右側から順番に実行される * 仮想基底クラス多重継承した派生クラスが 間接基底クラスを同一のクラスから継承した場合 継承の重複が発生し 間接基底クラスのメンバに曖昧さが生じる この問題を回避するために 仮想基底クラスを使用する 仮想基底クラスの定義は 多重継承を定義する際に virtual キーワードを使用して基底クラスを連結する この定義の並び順に従って 左側優先で最初に登場する間接基底クラスがインスタンス化される その後に登場する間接基底クラスは無視され 継承の重複が回避される 4-3- 基 - 12

16 スキル区分 OSS モデルカリキュラムの科目 レベル プログラミング分野 4-3- 基 C++ に関する知識 基本 習得ポイント 4-3- 基 -7. テンプレート 対応するコースウェア 第 9 回テンプレート第 13 回演習 ( アルゴリズムとデータ構造の実装 ) 4-3- 基 -7. テンプレート C++ におけるジェネリックプログラミングの実現手法として テンプレートの概念と利便性を解説し ソースコードの生成を自動化する関数テンプレートの定義方法と 要素の型が任意となるクラステンプレートの定義方法を解説する またクラステンプレートの例として string クラスを解説する 学習の要点 * アルゴリズムやデータ構造を汎用化し データ型の違いごとに 同じコードを何度も記述する手間を省く ジェネリックプログラミングの実現手法が C++ におけるテンプレートの機能である * 引数または戻り値の型だけが異なった 関連する複数の関数のアルゴリズムをひとつの枠にまとめた関数テンプレートにより 使用する型に合わせてコンパイル時に関数が自動生成される * 異なる複数のデータ型をひとつのクラスで扱えるように枠組みしたクラステンプレートにより 使用する型に合わせてコンパイル時にクラスが自動生成される 図 4-3- 基 -7 テンプレート 4-3- 基 - 13

17 解説 1) ジェネリックプログラミングジェネリックプログラミングは データ型に依存しないプログラミング手法である アルゴリズムやデータ構造を汎用化し データ型の違いごとに 同じコードを何度も記述する手間を省き 再利用性を向上させる 2) テンプレート C++ では テンプレートを使用することで ジェネリックプログラミングを行うことができる テンプレートは 具体的なコードを作成するための抽象的な雛形として定義され コンパイル時にデータ型に合わせて実体を生成する仕組みを提供し コンパイル時の多相性を実現する テンプレートには関数テンプレートとクラステンプレートがある * テンプレートの定義テンプレートを定義する場合は template キーワードを使用し typename キーワードまたは class キーワードを使用して テンプレート型の宣言を行う 複数のテンプレート型を使用する場合は カンマ演算子で連結する 尚 typename キーワードと class キーワードのどちらを使用しても違いはない template < class T1, class T2, class T3, 略, class Tn > * 関数テンプレート関数テンプレートは 引数または戻り値の型だけが異なった 関連する複数の関数のアルゴリズムをひとつの枠にまとめることができる 定義方法は テンプレートの定義に続けて 引数や戻り値の型にテンプレート型を使用して関数を定義する 尚 使用する型に合わせてコンパイル時に自動生成される関数をテンプレート関数ともいう * クラステンプレートクラステンプレートは 異なる複数のデータ型をひとつのクラスで扱えるように枠組みしたクラスである テンプレート型でメンバ変数を持つことや 関数テンプレートをメンバ関数に持つことができる 定義方法は テンプレートの定義に続けて テンプレート型を該当する変数に当てはめてクラスを定義する 尚 使用する型に合わせてコンパイル時に自動生成されるクラスをテンプレートクラスともいう * テンプレートの使用方法関数テンプレートやクラステンプレートは 後に正式な型と置き換えるためのプレースホルダを持っているにすぎない そのため使用時には 具体的な型を特定し 型の曖昧さを排除する方法がとられる 型の特定方法は 使用する関数やクラスの名前に続けて 具体的な型を指定する // クラステンプレートを int 型に特定したインスタンスの生成 sample<int> obj; 3) string クラス C++ の標準ライブラリには basic_string クラステンプレートを使用した string クラスがあり 可変長の文字列を保持することができる 4-3- 基 - 14

18 スキル区分 OSS モデルカリキュラムの科目 レベル プログラミング分野 4-3- 基 C++ に関する知識 基本 習得ポイント 4-3- 基 -8. 例外 名前空間 キャスト 変換関数 対応するコースウェア 第 10 回キャスト 名前空間第 11 回例外 変換関数 4-3- 基 -8. 例外 名前空間 キャスト 変換関数 C++ における動的エラーの統一した処理として例外処理を説明する その他 名前空間の詳細を解説し プログラムの実行時にデータ型を取得する実行時型情報の取得方法や C にはないキャストの方法 更に変換関数を解説する 学習の要点 * C++ ではプログラムの実行中にエラーが発生した場合 例外オブジェクトが生成されるためこれを利用してエラー処理を行う * 名前空間の機能を使用することで クラス名や関数名など同名定義での衝突を回避できる * 多相性などの機能により 実際にプログラムを実行するまでデータ型が定まらない場合は typeid 演算子を使用し プログラム実行時におけるデータ型 ( 実行時型情報 ) を取得できる 図 4-3- 基 -8 例外処理の流れ 4-3- 基 - 15

19 解説 1) 例外プログラムの実行中に発生するエラーのことを例外といい 例外を利用したエラー処理を例外処理という C++ では 何らかの例外が発生すると 処理を中断して例外処理を行うことができる機構を持っている * 例外オブジェクト例外が発生すると 例外オブジェクトと呼ばれるインスタンスを生成する機構を備えている 例外オブジェクトは C++ 標準ライブラリの exception クラスや その派生クラスのインスタンスである これらのクラスを例外クラスといい 継承して自らのプログラムに独自の例外クラスを作成することが可能となっている * 例外監視例外処理を行う場合は プログラム中に例外の発生を監視するコードを埋め込む必要がある 例外を監視するには try キーワードを使用して範囲を指定する その範囲を try ブロックという * 例外捕捉発生した例外を補足して 例外に対しての処理を行うには catch キーワードを使用して範囲指定を行う この範囲を catch ブロックといい 例外が発生すると try ブロックの処理を中断し 強制的に catch ブロックに制御が移り 処理が行われる 例外を捕捉する方法は 以下の3 通りある - ポインタで受け取る方法 - 値で受け取る方法 - 参照で受け取る方法 * 例外投入自らのプログラムで例外を投げるコードを埋め込むこともできる その場合は try ブロックの中で throw キーワードを使用して例外を投げるコードを記述する 2) 名前空間プログラムの中を特定の名前を使用して分類することができる この機能のことを名前空間という 名前空間を使用することで クラス名や関数名などの有効範囲が 属する名前空間内に制限され 所属外での同名定義による衝突を回避することができる 3) 実行時型情報多相性などの機能により 実際にプログラムを実行するまでデータ型が定まらない場合は typeid 演算子を使用し プログラム実行時におけるデータ型 ( 実行時型情報 ) を取得できる 4) キャストと変換関数 C++ では C のキャストに加え dynamic_cast const_cast static_cast reinterpret_cast の4つが加わり 安全性を強化している また 変換関数を使用することで クラスの型から別のデータ型へ暗黙的に変換を行うことができる 4-3- 基 - 16

20 スキル区分 OSS モデルカリキュラムの科目 レベル プログラミング分野 4-3- 基 C++ に関する知識 基本 習得ポイント 4-3- 基 -9. 入出力 対応するコースウェア 第 12 回入出力 4-3- 基 -9. 入出力 C での入出力を C++ でサポートしていることを説明し C++ の入出力システムとの違いを解説する 更に 定義済みマニピュレータとマニピュレータの作成方法 また抽出演算子や挿入演算子のオーバーロードの方法を解説する 学習の要点 * C でのコンソールやファイルの入出力システムは C++ でも利用できるが 更に C++ では 入出力ストリームに関する様々なクラスが用意されており 必要に応じてオーバーロードが可能で 柔軟性に富んでいる * C++ の入出力では 書式指定などの操作を行う特別な関数として 様々なマニピュレータが定義されている * 入力ストリームからデータを取り出す抽出演算子や 出力ストリームにデータを挿入する挿入演算子は int 型や double 型といった組み込み型の全てについてオーバーロードされている 図 4-3- 基 -9 入出力 4-3- 基 - 17

21 解説 1) C++ の入出力システム C++ の入出力システムは C と同様にストリームへの操作で成り立っており C でのコンソールやファイルの入出力システムは C++ でも利用できる 但し C++ では 入出力ストリームに関する様々なクラスが用意されており 必要に応じてオーバーロードが可能で 柔軟性に富んでいる 標準入力には cin 標準出力には cout が用意されている 2) 抽出演算子と挿入演算子入力ストリームからデータを取り出すには抽出演算子 >> を使用する また出力ストリームにデータを挿入するには挿入演算子 << を使用する これらの演算子は int 型や double 型といった組み込み型の全てについてオーバーロードされている 更にオーバーロードして独自の抽出演算子や挿入演算子を作成する場合は フレンド関数を使用する必要がある 3) マニピュレータ C++ の入出力では 書式指定などの操作を行う特別な関数として 様々なマニピュレータが定義されている 代表的なものとして下記のものがある - endl : 改行文字を出力してバッファをフラッシュする - ends : ヌル文字を出力する - flush : バッファをフラッシュする - dec :10 進数に変換する - hex :16 進数に変換する - setw(int) : 出力フィールド幅を指定サイズに設定する また 独自のマニピュレータを自作することもできる マニピュレータを作成する場合は ストリームへの参照を受け取り そのストリームへの参照を返すように記述する必要がある 4) ファイル入出力 C++ のファイルへの入出力をサポートするクラスには下記の3 種類ある - ifstream : 入力専用のファイルストリームクラス - ofstream : 出力専用のファイルストリームクラス - fstream : 入出力可能のファイルストリームクラス 処理内容に応じて これらのクラスからインスタンスを生成する インスタンス生成時には コンストラクタの引数にファイル名を指定することができる この場合は コンストラクタでファイルが開かれるので メンバ関数の open を使用する必要はない また ファイルが正しく開かれたかどうかの検査には メンバ関数の is_open を使用する 入出力にはコンソールと同様に抽出演算子と挿入演算子が使用できる 入出力の処理が終了し インスタンスが解放される際に デストラクタで自動的にファイルが閉じられる 明示的にファイルを閉じる場合は メンバ関数の close を使用する 4-3- 基 - 18

22 スキル区分 OSS モデルカリキュラムの科目 レベル プログラミング分野 4-3- 基 C++ に関する知識 基本 習得ポイント 4-3- 基 -10. Standard Template Library 対応するコースウェア 第 14 回 STL の概要第 15 回アルゴリズムとデータ構造の使用 4-3- 基 -10. Standard Template Library コンテナ イテレータ アルゴリズムのライブラリ化といった概念を説明し C++ によるその実装である STL (Standard Template Library) を紹介する また STL によるプログラミング例を挙げ STL の具体的な使い方を解説する 学習の要点 * STL(Standard Template Library) は C++ 言語のテンプレート機能を利用して実装されたコンテナ アルゴリズム イテレータ ( 反復子 ) で構成される標準的なライブラリである * コンテナとは他のオブジェクトを格納するための入れ物で ベクトル リスト マップなどがある * アルゴリズムとは アルゴリズムを配列やリストなどのデータ構造に依存しない形で実現に依存しない形で汎用化したものである * イテレータとはコンテナの種類に関係なく同じアルゴリズムを適用するために実装するクラスである 図 4-3- 基 -10 STL の構成 4-3- 基 - 19

23 解説 1) STL(Standard Template Library) とは プログラムの作成では同じ処理を記述することが多いため よく利用される処理をライブラリとしてま とめたものが STL である STL は C++ のテンプレート機能を利用して作成されており ヘッダファイ ルのインクルードにより使用できる 2) コンテナ STL の中心となるもので さまざまなデータを格納する コンテナはデータが順番に格納される順 序コンテナと キーによって自由にアクセスできる連想コンテナの 2 つに分類される STL の基本的 なコンテナには以下のようなものがある - vector : ランダムにアクセス可能な順序コンテナ - deque :vector と同様のコンテナでデータの挿入や削除の操作を高速に行える - list : 二重リンクリスト ( 双方向連結リスト ) ランダムアクセスには対応していない - set : オブジェクトのセット セット内のオブジェクトは順序付けされている - multiset : 同じオブジェクトを複数格納できるセット - map : キー値でオブジェクトを検索できるコンテナ 各キーは 1 つだけ値を格納する - multimap : 各キーに複数の値を格納できるマップ 3) イレテータ ( 反復子 ) イテレータはコンテナに格納されたデータへのアクセスを提供する イテレータには 入力専用で アクセスする入力イテレータ 出力専用でアクセスする出力イテレータ 先頭から末尾の方向へ順 番にアクセスする前方イテレータ 双方向でのアクセスが可能な双方向イテレータ 全てのデータ にランダムにアクセスが可能なランダムイテレータがある 使用できるイレテータはコンテナごとに決められている 4) アルゴリズム コンテナを操作するための様々なアルゴリズムを実際のデータ構造 ( 配列 リストなど ) に依存しな いように汎用化したもので 以下のようなアルゴリズムがある - find : コンテナ内の要素を検索する - count : コンテナ内の要素をカウントする - equal :2つのデータが等しいかどうかを評価する - for_each : コンテナの各データに対して指定した関数を実行する - copy : コンテナをコピーする - reverse : 順序を持つコンテナのオブジェクトの順序を逆にする 5) STL 使用上の注意 STL では柔軟性があると同時に コンテナや関数に多くの型を使用しているため 型を間違えて使 用することが多くなる傾向にある そのため STL のコンテナを直接使用するのでなく typedef 文 でコンテナの別名を定義して使用することが望ましい 4-3- 基 - 20

4-3- 基 C++ に関する知識 オープンソースシステムのソースを解読する上で C++ の知識は必須であるといえる 本カリキュラムでは まずオブジェクト指向に関する Ⅰ. 概要理解を深め クラスの扱い方について学習し STL を使用してアルゴリズムとデータ構造を実装する方法を学習する Ⅱ. 対象専

4-3- 基 C++ に関する知識 オープンソースシステムのソースを解読する上で C++ の知識は必須であるといえる 本カリキュラムでは まずオブジェクト指向に関する Ⅰ. 概要理解を深め クラスの扱い方について学習し STL を使用してアルゴリズムとデータ構造を実装する方法を学習する Ⅱ. 対象専 4-3- 基 C++ に関する知識 1 4-3- 基 C++ に関する知識 オープンソースシステムのソースを解読する上で C++ の知識は必須であるといえる 本カリキュラムでは まずオブジェクト指向に関する Ⅰ. 概要理解を深め クラスの扱い方について学習し STL を使用してアルゴリズムとデータ構造を実装する方法を学習する Ⅱ. 対象専門分野職種共通 Ⅲ. 受講対象者 本カリキュラムの 4-2-

More information

OSS モデルカリキュラムの学習ガイダンス 3. IT 知識体系との対応関係 5. Linux の概念や基本操作に関する知識 Ⅱ と IT 知識体系との対応関係は以下の通り 科目名 基本レベル (Ⅰ) 応用レベル (Ⅱ)

OSS モデルカリキュラムの学習ガイダンス 3. IT 知識体系との対応関係 5. Linux の概念や基本操作に関する知識 Ⅱ と IT 知識体系との対応関係は以下の通り 科目名 基本レベル (Ⅰ) 応用レベル (Ⅱ) OSS モデルカリキュラムの学習ガイダンス 5. Linux の概念や基本操作に関する知識 Ⅱ 1. 科目の概要 Linux の高度な活用法として ファイルシステムの概念と操作 データのバックアップとリストア シェルスクリプトによる操作 C 言語によるプログラミング ネットワーキングといった様々な利用方法を解説する 2. 習得ポイント本科目の学習により習得することが期待されるポイントは以下の通り 習得ポイント説明

More information

OSS モデルカリキュラムの学習ガイダンス 3. IT 知識体系との対応関係 1. OSS の概要に関する知識 Ⅱ と IT 知識体系との対応関係は以下の通り 科目名 1. OSSの概要に関する知識 <オープンソースの理念 >

OSS モデルカリキュラムの学習ガイダンス 3. IT 知識体系との対応関係 1. OSS の概要に関する知識 Ⅱ と IT 知識体系との対応関係は以下の通り 科目名 1. OSSの概要に関する知識 <オープンソースの理念 > OSS モデルカリキュラムの学習ガイダンス 1. OSS の概要に関する知識 Ⅱ 1. 科目の概要オープンソースソフトウェアに関連するビジネスや関連情報の入手方法を解説し オープンソースによる OS サーバ デスクトップアプリケーション サーバアプリケーション 仮想化ツールといった様々なソフトウェアの導入方法を導入演習を通じて指導する 2. 習得ポイント 本科目の学習により習得することが期待されるポイントは以下の通り

More information

OSS モデルカリキュラムの学習ガイダンス 23. RDB システム管理に関する知識 Ⅱ 1. 科目の概要関係データベースの運用管理機能と管理方法について 最適化やチューニング トラブルシューティング方法といった応用知識を説明する また実際の DB アプリケーション構築手順やインデックス導入による検

OSS モデルカリキュラムの学習ガイダンス 23. RDB システム管理に関する知識 Ⅱ 1. 科目の概要関係データベースの運用管理機能と管理方法について 最適化やチューニング トラブルシューティング方法といった応用知識を説明する また実際の DB アプリケーション構築手順やインデックス導入による検 OSS モデルカリキュラムの学習ガイダンス 23. RDB システム管理に関する知識 Ⅱ 1. 科目の概要関係データベースの運用管理機能と管理方法について 最適化やチューニング トラブルシューティング方法といった応用知識を説明する また実際の DB アプリケーション構築手順やインデックス導入による検索高速化 日本語処理環境の諸問題 ツールによる操作やバックアップとリカバリなど 具体的な管理手順を解説する

More information

JavaプログラミングⅠ

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

More information

Prog2_12th

Prog2_12th 2018 年 12 月 13 日 ( 木 ) 実施クラスの継承オブジェクト指向プログラミングの基本的な属性として, 親クラスのメンバを再利用, 拡張, または変更する子クラスを定義することが出来る メンバの再利用を継承と呼び, 継承元となるクラスを基底クラスと呼ぶ また, 基底クラスのメンバを継承するクラスを, 派生クラスと呼ぶ なお, メンバの中でコンストラクタは継承されない C# 言語では,Java

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 5 月 Java 基礎 1 タイトル Java 基礎 2 日間 概要 目的 サーバサイドのプログラミング言語で最もシェアの高い Java SE の基本を習得します 当研修ではひとつの技術ごとに実用的なアプリケーションを作成するため 効果的な学習ができます Java SE の多くの API の中で 仕事でよく利用するものを中心に効率よく学びます 実際の業務で最も利用される開発環境である Eclipse

More information

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

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

More information

メディプロ1 Javaプログラミング補足資料.ppt

メディプロ1 Javaプログラミング補足資料.ppt メディアプロジェクト演習 1 Javaプログラミング補足資料 l Javaとは l JavaScript と Java 言語の違い l オブジェクト指向 l コンストラクタ l 継承 抽象クラス 本資料内のページ番号は, 以下の参考書のページを引用している高橋麻奈 : やさしい Java, ソフトバンククリエイティブ (2,625 円 ) はじめに l プログラミング言語とは? l オブジェクト指向とは?

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

目次 はじめに 4 概要 4 背景 4 対象 5 スケジュール 5 目標点 6 使用機材 6 第 1 章 C# 言語 7 C# 言語の歴史 7 基本構文 8 C 言語との違い 9 Java 言語との違い 10.Netフレームワーク 10 開発資料 10 第 2 章 Mono 11 Monoの歴史 1

目次 はじめに 4 概要 4 背景 4 対象 5 スケジュール 5 目標点 6 使用機材 6 第 1 章 C# 言語 7 C# 言語の歴史 7 基本構文 8 C 言語との違い 9 Java 言語との違い 10.Netフレームワーク 10 開発資料 10 第 2 章 Mono 11 Monoの歴史 1 ポリテクセンター埼玉セミナー資料 組込み技術者のための C# Monoを用いたマルチプラットフォームアプリケーション開発技術 第 1.2 版 2018 年 8 月 Microbrains Inc. 渋谷 目次 はじめに 4 概要 4 背景 4 対象 5 スケジュール 5 目標点 6 使用機材 6 第 1 章 C# 言語 7 C# 言語の歴史 7 基本構文 8 C 言語との違い 9 Java 言語との違い

More information

Javaの作成の前に

Javaの作成の前に メディアプロジェクト演習 1 参考資料 Javaとは JavaScript と Java 言語の違い オブジェクト指向 コンストラクタ サーブレット 本資料内のページ番号は, 以下の参考書のページを引用している 高橋麻奈 : やさしい Java, ソフトバンククリエイティブ (2,625 円 ) はじめに プログラミング言語とは? オブジェクト指向とは? Java 言語とは? JavaとJavaScriptの違いとは?

More information

OSS モデルカリキュラムの学習ガイダンス 3. IT 知識体系との対応関係 15. Light Weight Language に関する知識 Ⅱ と IT 知識体系との対応関係は以下の通り 科目名 基本レベル (Ⅰ) 応用レベル (Ⅱ)

OSS モデルカリキュラムの学習ガイダンス 3. IT 知識体系との対応関係 15. Light Weight Language に関する知識 Ⅱ と IT 知識体系との対応関係は以下の通り 科目名 基本レベル (Ⅰ) 応用レベル (Ⅱ) OSS モデルカリキュラムの学習ガイダンス 15. Light Weight Language に関する知識 Ⅱ 1. 科目の概要 Light Weight Language によるシステム構築の応用例として Ruby によるアプリケーション構築フレームワークである Ruby on Rails (RoR) を取り上げる RoR の基本的な仕組みを解説し RoR を利用したデータベースアプリケーション開発やアプリケーションのカスタマイズ

More information

Java知識テスト問題

Java知識テスト問題 Java 知識テスト SDAS プログラマ(Java 編 ) 運営事務局 このテストは J2EE プログラマとしての Java の知識を評価するものです 問題は 30 問, テスト時間は J2EE 知識テストとあわせて 90 分です 問題は全て択一式です 選択肢から 1 つだけ選択してください 資料の閲覧は禁止です テストが終わり次第 答案用紙を提出していただいてかまいません テスト終了後, 本テストの内容を他の方に話さないでください

More information

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

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

More information

4-1- 基 Java に関する知識 1 独立行政法人情報処理推進機構

4-1- 基 Java に関する知識 1 独立行政法人情報処理推進機構 4-1- 基 Java に関する知識 1 4-1- 基 Java に関する知識 もっとも普及しているオープンソース言語 Java の仕組み 基本的なプログラミング文法 オブジェクト指向によるプログラム設計と作成方法 Ⅰ. 概要を学ぶ さらにクラスライブラリやジェネリクスの活用 Web アプリケーションの作成方法について学ぶ Ⅱ. 対象専門分野職種共通 Ⅲ. 受講対象者 本カリキュラムの 1-1- 基

More information

ソフトゼミC 第二回 C++の基礎

ソフトゼミC 第二回 C++の基礎 2013/08/06 エレクトロニクス研究部 C++ とは何か? ストリームライブラリを使った入出力 cin/coutについて CとC++ の構造体の違い classの基礎とメンバ関数 カプセル化 コンストラクタとは C++ とは何か? C++ はその名の通り C 言語の 拡張として 1983 年に作られた 開発当時は C with Classes と呼ばれ C 言語にクラスの概念を持たせた言語である

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション プログラマー勉強会 1 回 basic.h 補足 [ 修飾子 ] const 付けた変数は初期化以外で値を設定することができなくなる 定数宣言に使う unsigned 付けた変数は符号がなくなり 正の値しか設定できない [ 条件コンパイル ] #ifdef M ここ以前に M がマクロとして定義されていれば ここ以下をコンパイルする #ifndef M ここ以前に M というマクロが定義されていなければ

More information

<基礎領域>

<基礎領域> 1. 科目コード 1243 2. 科目名 プログラミング特論 3(Advanced Programming 3) 3. 担当教員 吉田博哉 (Hiroya YOSHIDA) 4. 開講期 2 年次春 1 期 (( 昼 ) 火 3-4 時限 ( 夜 ) 火 6-7 時限 ) 5. 科目の目的 概要 オブジェクト指向言語を用いたアプリケーション開発の基礎知識を身につけることを目的とする Web アプリケーションを開発

More information

プログラミング実習I

プログラミング実習I プログラミング実習 I 05 関数 (1) 人間システム工学科井村誠孝 m.imura@kwansei.ac.jp 関数とは p.162 数学的には入力に対して出力が決まるもの C 言語では入出力が定まったひとまとまりの処理 入力や出力はあるときもないときもある main() も関数の一種 何かの仕事をこなしてくれる魔法のブラックボックス 例 : printf() 関数中で行われている処理の詳細を使う側は知らないが,

More information

第 3 回 Java 講座 今回の内容 今週の Java 講座はコレクション 拡張 for 文, ガベージコレクションについて扱う. 今週の Java 講座は一番内容が薄いも のになるだろう. コレクション コレクションとは大きさが決まっていない配列だと考えればよい. コレクションには List 先

第 3 回 Java 講座 今回の内容 今週の Java 講座はコレクション 拡張 for 文, ガベージコレクションについて扱う. 今週の Java 講座は一番内容が薄いも のになるだろう. コレクション コレクションとは大きさが決まっていない配列だと考えればよい. コレクションには List 先 第 3 回 Java 講座 今回の内容 今週の Java 講座はコレクション 拡張 for 文, ガベージコレクションについて扱う. 今週の Java 講座は一番内容が薄いも のになるだろう. コレクション コレクションとは大きさが決まっていない配列だと考えればよい. コレクションには List 先頭の要素要素から最後までが直線的に直結している構造 Set 同じものは含まないという構造. 要素間につながりはない

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 講座準備 講座資料は次の URL から DL 可能 https://goo.gl/jnrfth 1 ポインタ講座 2017/01/06,09 fumi 2 はじめに ポインタはC 言語において理解が難しいとされる そのポインタを理解することを目的とする 講座は1 日で行うので 詳しいことは調べること 3 はじめに みなさん復習はしましたか? 4 & 演算子 & 演算子を使うと 変数のアドレスが得られる

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

Slide 1

Slide 1 OpenFoam のための C/C++ 第 3 回 OpenFoam で勉強るテンプレート 田中昭雄 1 目的 この勉強会の資料があれば OpenFoam カスタマイズ時に C/C++ で迷わない 2 予定 第 1 回メモリ管理 第 2 回 CFDの例で勉強するクラス 第 3 回 OpenFOAMで勉強するテンプレート 第 4 回 OpenFOAMカスタマイズ 第 5 回未定 第 6 回未定 3 今回のテーマ

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

デザインパターン第一章「生成《

デザインパターン第一章「生成《 変化に強いプログラミング ~ デザインパターン第一章 生成 ~ 梅林 ( 高田明宏 )@ わんくま同盟 デザインパターンとは何か (1) デザインパターンの定義 ソフトウェア開発におけるデザインパターンとは 過去のソフトウェア設計者が発見し編み出した設計ノウハウを蓄積し 名前をつけ 再利用しやすいように特定の規約に従ってカタログ化したもの (Wikipedia) 参考書籍 オブジェクト指向における再利用のためのデザインパターン

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 基本 Java プログラミング演習 第 13 回 担当 : 植村 今後の予定 7/15 第 13 回 今回 7/22 第 14 回 小テスト ( クラス ) 7/29 第 15 回 総まとめテスト レポート提出 期末テストの時間割に Java のテストの欄がありますが無視してください 再テストはまた別途連絡いたします 2 CHAPTER 11 はじめてのクラス前回の復習 クラスクラスを構成する要素

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション オブジェクト指向 プログラミング演習 第 4 回継承 オーバーライド ポリモルフィズム 今日のお題 継承 オーバーライド ポリモルフィズム 継承 (inherit) あるクラス c のサブクラス s を定義する : このとき s は c を継承していると言う 何かの下位概念を表すクラスは その上位概念を表すクラスの属性や機能を ( 基本的には ) 使える 継承の例 大学生 長崎県立大学の学生 大学生を継承する概念

More information

Microsoft PowerPoint - exp2-02_intro.ppt [互換モード]

Microsoft PowerPoint - exp2-02_intro.ppt [互換モード] 情報工学実験 II 実験 2 アルゴリズム ( リスト構造とハッシュ ) 実験を始める前に... C 言語を復習しよう 0. プログラム書ける? 1. アドレスとポインタ 2. 構造体 3. 構造体とポインタ 0. プログラム書ける? 講義を聴いているだけで OK? 言語の要素技術を覚えれば OK? 目的のプログラム? 要素技術 データ型 配列 文字列 関数 オブジェクト クラス ポインタ 2 0.

More information

Microsoft PowerPoint - 09.pptx

Microsoft PowerPoint - 09.pptx 情報処理 Ⅱ 第 9 回 2014 年 12 月 22 日 ( 月 ) 関数とは なぜ関数 関数の分類 自作関数 : 自分で定義する. ユーザ関数 ユーザ定義関数 などともいう. 本日のテーマ ライブラリ関数 : 出来合いのもの.printf など. なぜ関数を定義するのか? 処理を共通化 ( 一般化 ) する プログラムの見通しをよくする 機能分割 ( モジュール化, 再利用 ) 責任 ( あるいは不具合の発生源

More information

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

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

More information

kantan_C_1_iro3.indd

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

More information

Microsoft PowerPoint - ●SWIM_ _INET掲載用.pptx

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

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション オブジェクト指向 プログラミング演習 第 4 回継承 オーバーライド ポリモルフィズム 今日のお題 継承 オーバーライド ポリモルフィズム 継承 (inherit) あるクラス c のサブクラス s を定義する : このとき s は c を継承していると言う 何かの下位概念を表すクラスは その上位概念を表すクラスの属性や機能を ( 基本的には ) 使える 継承の例 大学生 長崎県立大学の学生 大学生を継承する概念

More information

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科 バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科 ポインタ変数の扱い方 1 ポインタ変数の宣言 int *p; double *q; 2 ポインタ変数へのアドレスの代入 int *p; と宣言した時,p がポインタ変数 int x; と普通に宣言した変数に対して, p = &x; は x のアドレスのポインタ変数 p への代入 ポインタ変数の扱い方 3 間接参照 (

More information

JavaプログラミングⅠ

JavaプログラミングⅠ Java プログラミング Ⅰ 6 回目 if 文と if else 文 今日の講義で学ぶ内容 関係演算子 if 文と if~else 文 if 文の入れ子 関係演算子 関係演算子 ==,!=, >, >=,

More information

第 2 章インタフェース定義言語 (IDL) IDL とは 言語や OS に依存しないインタフェース定義を行うためのインタフェース定義言語です CORBA アプリケーションを作成する場合は インタフェースを定義した IDL ファイルを作成する必要があります ここでは IDL の文法や IDL ファイ

第 2 章インタフェース定義言語 (IDL) IDL とは 言語や OS に依存しないインタフェース定義を行うためのインタフェース定義言語です CORBA アプリケーションを作成する場合は インタフェースを定義した IDL ファイルを作成する必要があります ここでは IDL の文法や IDL ファイ 第 2 章インタフェース定義言語 (IDL) IDL とは 言語や OS に依存しないインタフェース定義を行うためのインタフェース定義言語です CORBA アプリケーションを作成する場合は インタフェースを定義した IDL ファイルを作成する必要があります ここでは IDL の文法や IDL ファイルの作成方法 コンパイル方法について説明します IDL ファイルの作成にあたっては INTERSTAGE

More information

JavaプログラミングⅠ

JavaプログラミングⅠ Java プログラミング Ⅰ 8 回目 for 文 今日の講義で学ぶ内容 for 文 変数のスコープ for 文の入れ子 繰り返し文 1 for 文 for 文最初に一度だけ初期化の式を処理します条件が true の場合 文を実行し 更新の式を処理して繰り返します条件が false の場合 for 文を終了します 条件は boolean 型で 関係演算子で表現される式などを記述します for( 初期化の式

More information

RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用

RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用 RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用体型のローカル変数を文字列操作関数で操作する場合の注意事項 (RXC#013) 配列型構造体または共用体の配列型メンバから読み出した値を動的初期化に用いる場合の注意事項

More information

Javaプログラムの実行手順

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

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

プログラミング入門1

プログラミング入門1 プログラミング入門 2 第 6 回継承 コンストラクタ 1 講義資料について 新しい言語の機能 ( オブジェクト指向の機構 ) については 随時参考書などを参照するのがよい 過去の資料も参考になる http://java2005.cis.k.hosei.ac.jp/ 今回の範囲は 上記ページの 17 回に詳しい 2 テーマ : 継承 コンストラクタ 継承 (inheritance) インスタンス変数の継承

More information

02: 変数と標準入出力

02: 変数と標準入出力 C プログラミング入門 基幹 7 ( 水 5) 13: 構造体 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/ teachers/w483692/cpr1/ 2016-07-06 1 例題 : 多角形の面積 n = 5 (5 角形 ) の例 n 1 n 1 1 p 1 T 0 S = i=0 p 0 T i = i=0 2

More information

Prog2_9th

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

More information

4-4- 基スクリプト言語に関する知識 コードの作成や修正が容易とされるスクリプト言語を学習し アプリケーション開発の手法を習得する 本カリキュラムでは まずスクリプト言語に位置づけされる Perl PHP Python JavaScript Ruby といった Ⅰ. 概要プログラミング言語の特徴に

4-4- 基スクリプト言語に関する知識 コードの作成や修正が容易とされるスクリプト言語を学習し アプリケーション開発の手法を習得する 本カリキュラムでは まずスクリプト言語に位置づけされる Perl PHP Python JavaScript Ruby といった Ⅰ. 概要プログラミング言語の特徴に 4-4- 基スクリプト言語に関する知識 1 4-4- 基スクリプト言語に関する知識 コードの作成や修正が容易とされるスクリプト言語を学習し アプリケーション開発の手法を習得する 本カリキュラムでは まずスクリプト言語に位置づけされる Perl PHP Python JavaScript Ruby といった Ⅰ. 概要プログラミング言語の特徴について解説し 動作環境の構築や基本的な構文について習得する

More information

2004/11/23 オブジェクト指向プログラミング - モデル図とシーケンス図の表現方法 - オブジェクト指向プログラミング (OOP:ObjectOrientedPrograming) オブジェクト指向プログラミング言語 (OOPL) Java,C++,Delphi(Pascal),Visual

2004/11/23 オブジェクト指向プログラミング - モデル図とシーケンス図の表現方法 - オブジェクト指向プログラミング (OOP:ObjectOrientedPrograming) オブジェクト指向プログラミング言語 (OOPL) Java,C++,Delphi(Pascal),Visual オブジェクト指向プログラミング - モデル図とシーケンス図の表現方法 - オブジェクト指向プログラミング (OOP:ObjectOrientedPrograming) オブジェクト指向プログラミング言語 (OOPL) Java,C++,Delphi(Pascal),VisualBasic,smaltalk,Simula オブジェクト指向ソフトウエア開発 ( システム開発 ) システム ( プログラム

More information

Microsoft Word 基_シラバス.doc

Microsoft Word 基_シラバス.doc 4-5- 基 Web アプリケーション開発に関する知識 1 4-5- 基 Web アプリケーション開発に関する知識 スクリプト言語や Java 言語を利用して Ruby on Rails やその他 Web フレームワークを活用して HTML(4, 5) XHTML JavaScript DOM CSS といったマークアップ言語およびスクリプト言語を活用しながら Ⅰ. 概要ダイナミックなWebサービスを提供するアプリケーションを開発する際に

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

Prog1_15th

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

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

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf

書式に示すように表示したい文字列をダブルクォーテーション () の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf( 情報処理基礎 ); printf(c 言語の練習 ); printf 情報処理基礎 C 言語についてプログラミング言語は 1950 年以前の機械語 アセンブリ言語 ( アセンブラ ) の開発を始めとして 現在までに非常に多くの言語が開発 発表された 情報処理基礎で習う C 言語は 1972 年にアメリカの AT&T ベル研究所でオペレーションシステムである UNIX を作成するために開発された C 言語は現在使われている多数のプログラミング言語に大きな影響を与えている

More information

02: 変数と標準入出力

02: 変数と標準入出力 C プログラミング入門 総機 1 ( 月 1) 13: 構造体 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/ teachers/w483692/cpr1/ 2015-07-06 1 例題 : 多角形の面積 n = 5 (5 角形 ) の例 n 1 n 1 p 1 S = T i = 1 2 p i p i+1 i=0 i=0

More information

7 ポインタ (P.61) ポインタを使うと, メモリ上のデータを直接操作することができる. 例えばデータの変更 やコピーなどが簡単にできる. また処理が高速になる. 7.1 ポインタの概念 変数を次のように宣言すると, int num; メモリにその領域が確保される. 仮にその開始のアドレスを 1

7 ポインタ (P.61) ポインタを使うと, メモリ上のデータを直接操作することができる. 例えばデータの変更 やコピーなどが簡単にできる. また処理が高速になる. 7.1 ポインタの概念 変数を次のように宣言すると, int num; メモリにその領域が確保される. 仮にその開始のアドレスを 1 7 ポインタ (P.61) ポインタを使うと, メモリ上のデータを直接操作することができる. 例えばデータの変更 やコピーなどが簡単にできる. また処理が高速になる. 7.1 ポインタの概念 変数を次のように宣言すると, int num; メモリにその領域が確保される. 仮にその開始のアドレスを 10001 番地とすると, そこから int 型のサイズ, つまり 4 バイト分の領域が確保される.1

More information

JAVA入門

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

More information

基礎プログラミング2015

基礎プログラミング2015 応用プログラミング 第 11 回 関数の名前 2017 年 11 月 29 日 ( 水 ) 第 12 章 関数の名前 今日の内容 * これまでの関数 必ず main 関数 ( 呼び出し元 ) の前に関数定義をする 宣言した仮引数の数と実引数として渡す値の数は同じ 仮引数の型に合わせた値渡し (1) 関数宣言 : 関数の戻り値の型, 名前, 引数の型のみ先行指定 (2) 多重定義 : 引数が異なる同じ名前の関数の作成

More information

Microsoft PowerPoint ppt

Microsoft PowerPoint ppt 基礎演習 3 C 言語の基礎 (5) 第 05 回 (20 年 07 月 07 日 ) メモリとポインタの概念 ビットとバイト 計算機内部では データは2 進数で保存している 計算機は メモリにデータを蓄えている bit 1bit 0 もしくは 1 のどちらかを保存 byte 1byte 1bitが8つ集まっている byte が メモリの基本単位として使用される メモリとアドレス メモリは 1byte

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

C 資料 電脳梁山泊烏賊塾 構造体 C++ の構造体 初めに 此処では Visual Studio 2017 を起動し 新しいプロジェクトで Visual C++ の Windows デスクトップを選択し Windows コンソールアプリケーションを作成する 定義と変数宣言 C++ に

C 資料 電脳梁山泊烏賊塾 構造体 C++ の構造体 初めに 此処では Visual Studio 2017 を起動し 新しいプロジェクトで Visual C++ の Windows デスクトップを選択し Windows コンソールアプリケーションを作成する 定義と変数宣言 C++ に 構造体 C++ の構造体 初めに 此処では Visual Studio 2017 を起動し 新しいプロジェクトで Visual C++ の Windows デスクトップを選択し Windows コンソールアプリケーションを作成する 定義と変数宣言 C++ に於いては 構造体を定義は下記の様に記述する ( 末尾のセミコロンを忘れない様に ) strust Point int x; int y; 上記の様に定義すれば

More information

Microsoft PowerPoint - handout07.ppt [互換モード]

Microsoft PowerPoint - handout07.ppt [互換モード] Outline プログラミング演習第 7 回構造体 on 2012.12.06 電気通信大学情報理工学部知能機械工学科長井隆行 今日の主眼 構造体 構造体の配列 構造体とポインタ 演習課題 2 今日の主眼 配列を使うと 複数の ( 異なる型を含む ) データを扱いたい 例えば 成績データの管理 複数のデータを扱う 配列を使う! 名前学籍番号点数 ( 英語 ) 点数 ( 数学 ) Aomori 1 59.4

More information

Microsoft PowerPoint - 6.pptx

Microsoft PowerPoint - 6.pptx 6. データ構造入門 6-1. 連結リスト (Linked List) 6-2. スタック (Stack) 6-. キュー (Queue) 6-4. デク (Double-Ended-Queue) 6-. 抽象データ型 (Abstract Data Type) データ構造とは データの保存を効率的に行うもの 1 ito 2.712.14 suzuki データ構造 1 2 6-1. 連結リスト (Linked

More information

プログラミング基礎

プログラミング基礎 C プログラミング Ⅰ 授業ガイダンス C 言語の概要プログラム作成 実行方法 授業内容について 授業目的 C 言語によるプログラミングの基礎を学ぶこと 学習内容 C 言語の基礎的な文法 入出力, 変数, 演算, 条件分岐, 繰り返し, 配列,( 関数 ) C 言語による簡単な計算処理プログラムの開発 到達目標 C 言語の基礎的な文法を理解する 簡単な計算処理プログラムを作成できるようにする 授業ガイダンス

More information

(2) 構造体変数の宣言 文法は次のとおり. struct 構造体タグ名構造体変数名 ; (1) と (2) は同時に行える. struct 構造体タグ名 { データ型変数 1; データ型変数 2;... 構造体変数名 ; 例 : struct STUDENT{ stdata; int id; do

(2) 構造体変数の宣言 文法は次のとおり. struct 構造体タグ名構造体変数名 ; (1) と (2) は同時に行える. struct 構造体タグ名 { データ型変数 1; データ型変数 2;... 構造体変数名 ; 例 : struct STUDENT{ stdata; int id; do 8 構造体と供用体 ( 教科書 P.71) 構造体は様々なデータ型,int 型,float 型や char 型などが混在したデータを一つのまとまり, 単位として扱える.( 配列は一つのデータ型しか扱えない.) 構造体は柔軟なデータ構造を扱えるので, プログラムを効率よく開発できる. つまり構造体を使用すると, コード量を抑え, バグを少なくし, 開発時間を短くし, 簡潔なプログラムが作れる. 共用体は,

More information

Make the Future Java FY13 PPT Template

Make the Future Java FY13 PPT Template 1 OJCP Silver SE 7 資格試験の傾向と対策 日本オラクル株式会社オラクルユニバーシティ 2 以下の事項は 弊社の一般的な製品の方向性に関する概要を説明するものです また 情報提供を唯一の目的とするものであり いかなる契約にも組み込むことはできません 以下の事項は マテリアルやコード 機能を提供することをコミットメント ( 確約 ) するものではないため 購買決定を行う際の判断材料になさらないで下さい

More information

Javaプログラマー早期育成ドリル ~コードリーディング編~ 解答

Javaプログラマー早期育成ドリル ~コードリーディング編~ 解答 Java プログラマー早期育成ドリルコードリーディング編 解答 2 版 2017 年 1 月 本資料は UFN25W:Javaプログラマー早期育成ドリルコードリーディング編 をご購入頂いた方にのみ提供される資料です 資料内容の転載はご遠慮ください 本解答は UFN25W:Javaプログラマー早期育成ドリルコードリーディング編 の初版および2 版に対応しています コラム一覧 このドリルの解答では すべての構文の紹介はしていません

More information

Microsoft Word - C言語研修 C++編 3.doc

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 クラスの継承 クラスには 継承 という機能があります 継承とは 既にあるクラスを元に 新しいクラスを作る 機能です 継承元のクラスを 親クラス

More information

Prog1_6th

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

More information

JavaプログラミングⅠ

JavaプログラミングⅠ Java プログラミング Ⅰ 2 回目 ようこそ Java へ 今日の講義で学ぶ内容 画面へのメッセージの表示 文字や文字列 数値を表現するリテラル 制御コードを表すエスケープシーケンス 画面出力の基本形 ソースファイル名 : クラス名.java class クラス名 System.out.println(" ここに出力したい文字列 1 行目 "); System.out.println(" ここに出力したい文字列

More information

SuperH RISC engineファミリ用 C/C++コンパイラパッケージ V.7~V.9 ご使用上のお願い

SuperH RISC engineファミリ用 C/C++コンパイラパッケージ V.7~V.9 ご使用上のお願い ツールニュース RENESAS TOOL NEWS 2014 年 02 月 01 日 : 140201/tn1 SuperH RISC engine ファミリ用 C/C++ コンパイラパッケージ V.7~V.9 ご使用上のお願い SuperH RISC engine ファミリ用 C/C++ コンパイラパッケージ V.7~V.9の使用上の注意事項 4 件を連絡します 同一ループ内の異なる配列要素に 同一の添え字を使用した場合の注意事項

More information

11 ソフトウェア工学 Software Engineering デザインパターン DESIGN PATTERNS デザインパターンとは? デザインパターン 過去のソフトウェア設計者が生み出したオブジェクト指向設計に関して, ノウハウを蓄積し 名前をつけ 再利用しやすいようにカタログ化したもの 各デ

11 ソフトウェア工学 Software Engineering デザインパターン DESIGN PATTERNS デザインパターンとは? デザインパターン 過去のソフトウェア設計者が生み出したオブジェクト指向設計に関して, ノウハウを蓄積し 名前をつけ 再利用しやすいようにカタログ化したもの 各デ 11 ソフトウェア工学 Software Engineering デザインパターン DESIGN PATTERNS デザインパターンとは? デザインパターン 過去のソフトウェア設計者が生み出したオブジェクト指向設計に関して, ノウハウを蓄積し 名前をつけ 再利用しやすいようにカタログ化したもの 各デザインパターンの主な内容 そのデザインパターンの目的と効果 どのような役割の部品 ( クラス, インタフェース

More information

Prog1_12th

Prog1_12th 2013 年 7 月 4 日 ( 木 ) 実施 ファイル処理ファイルとはファイル (file) は日常用語では紙などを綴じたものを表すが, コンピュータ用語ではデータの集合体を指す言葉である ファイルは例えば, 文書ファイルやプログラムファイルのように, 用途によって分類されることもあれば, また, テキストファイルやバイナリファイルのように, ファイルの作り方によって分類されることもある なお,

More information

演算増幅器

演算増幅器 構造体 ここまでに char int doulbe などの基本的なデータ型に加えて 同じデータ型が連続している 配列についてのデータ構造について習った これ以外にも もっと複雑なデータ型をユーザが定義 することが可能である それが構造体と呼ばれるもので 異なる型のデータをひとかたまりのデー タとして扱うことができる 異なるデータをまとめて扱いたい時とはどんな場合だろうか 例えば 住民データを管理したい

More information

2006年10月5日(木)実施

2006年10月5日(木)実施 2010 年 7 月 2 日 ( 金 ) 実施 ファイル処理ファイルとはファイル (file) は日常用語では紙などを綴じたものを表すが, コンピュータ用語ではデータの集合体を指す言葉である ファイルは例えば, 文書ファイルやプログラムファイルのように, 用途によって分類されることもあれば, また, テキストファイルやバイナリファイルのように, ファイルの作り方によって分類されることもある なお,

More information

memo

memo 数理情報工学演習第一 C プログラミング演習 ( 第 5 回 ) 2015/05/11 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 今日の内容 : プロトタイプ宣言 ヘッダーファイル, プログラムの分割 課題 : 疎行列 2 プロトタイプ宣言 3 C 言語では, 関数や変数は使用する前 ( ソースの上のほう ) に定義されている必要がある. double sub(int

More information

Microsoft PowerPoint - 12.ppt [互換モード]

Microsoft PowerPoint - 12.ppt [互換モード] 第 12 回新しい型と構造体 1 今回の目標 新しい型の定義法を理解する 構造体を理解する 複素数同士を足し算する関数を作成し その関数を利用するプログラムを作成する 2 複素数の足し算 複素数は実部と虚部の2つの実数で 表現される z = a+ bi z = a + bi z = a + b i 2 つの複素数 1 1 1 と 2 2 2 の和 z = a + bi は 次式で与えられる 3 3

More information

Microsoft Word _VBAProg1.docx

Microsoft Word _VBAProg1.docx 1. VBA とマクロ 1.1 VBA とは VBA(Visual Basic for Applications) は 1997 年に Microsoft 社がマクロを作成するために開発された言語である Windows 対応のアプリケーションを開発するためのプログラミング言語 Visual Basic をもとにしているため 次のような特徴がある 1 VBA は Excel Word, Access,

More information

第2回講義

第2回講義 オブジェクト指向概論 第 2 講 クラスとカプセル化 立命館大学 情報理工学部 黄宏軒 1 オブジェクト指向の重要な概念 n クラス q 同じようなオブジェクトを まとめて 考える n 継承 ( インヘリタンス ) q 複数のクラスの 共通部分をまとめる n ポリモーフィズム ( 多態性 ) q 呼び出す側を 共通化 する n 複雑なものを簡単に 2 2.1 クラスとは何か n 類似のオブジェクトを

More information

Microsoft PowerPoint - 04_01_text_UML_03-Sequence-Com.ppt

Microsoft PowerPoint - 04_01_text_UML_03-Sequence-Com.ppt システム設計 (1) シーケンス図 コミュニケーション図等 1 今日の演習のねらい 2 今日の演習のねらい 情報システムを構成するオブジェクトの考え方を理解す る 業務プロセスでのオブジェクトの相互作用を考える シーケンス図 コミュニケーション図を作成する 前回までの講義システム開発の上流工程として 要求仕様を確定パソコンを注文するまでのユースケースユースケースから画面の検討イベントフロー アクティビティ図

More information

プレポスト【問題】

プレポスト【問題】 コース名 : サーブレット /JSP/JDBC プログラミング ~Eclipse による開発 ~ 受講日 氏名 1 JDBC の説明として 間違っているものを 1 つ選びなさい 1. JDBC を使用してデータベースへアクセスするときには JDBC API が必要である 2. JDBC API は java.lang パッケージとして提供されている 3. JDBC には JDBC API JDBC

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

5 継承とは クラス図 98 7 参照の自動型変換 参照の自動型変換 クラス図の見方 クラス図の書き方 継承 継承してクラスを作る インスタンスの初期化 継承の効果を確認する

5 継承とは クラス図 98 7 参照の自動型変換 参照の自動型変換 クラス図の見方 クラス図の書き方 継承 継承してクラスを作る インスタンスの初期化 継承の効果を確認する 3 クラスの仕組み 51 3.1 他のクラスからのアクセスを制限する 52 1.private と public 52 1 クラスの作り方 1 1.1 オブジェクトとは 2 1. オブジェクトって何? 2 2. データの集まりをオブジェクトにする 3 3. まずクラスを作る 4 4. クラスの作り方 5 5. 基本機能として必要なもの 6 1.2 クラスを作る 8 1. クラスを作る手順 8 2.

More information

Microsoft PowerPoint - class2-OperatorOverLoad.pptx

Microsoft PowerPoint - class2-OperatorOverLoad.pptx クラス Class (3) メンバ関数と演算子のオーバロード 上級プログラミング講義資料 成蹊大学理工学部情報科学科 1 多重定義 ( オーバロード ) 関数のオーバロード C++ の関数では シグニチャ ( 関数名, 引数の型および個数のこと ) が異なることによって 同名の関数が複数存在することが出来る 演算子のオーバロード四則演算子をはじめとする演算子を 新たに定義したクラスを取り扱うように多重定義することが出来る

More information

Prog1_10th

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

More information

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y 小幡智裕

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y  小幡智裕 Java Script プログラミング入門 3-6~3-7 茨城大学工学部情報工学科 08T4018Y 小幡智裕 3-6 組み込み関数 組み込み関数とは JavaScript の内部にあらかじめ用意されている関数のこと ユーザ定義の関数と同様に 関数名のみで呼び出すことができる 3-6-1 文字列を式として評価する関数 eval() 関数 引数 : string 式として評価する文字列 戻り値 :

More information

スライド 1

スライド 1 盛岡市 2018 年 JavaWeb 技術者養成コース 38 日間 日付研修内容 4 月 1 日日 4 月 2 日月 4 月 3 日火 4 月 4 日水 4 月 5 日木 4 月 6 日金コンピュータ基礎 4 月 7 日土 4 月 8 日日 4 月 9 日月コンピュータ基礎 4 月 10 日火コンピュータ基礎 4 月 11 日水プログラム開発基礎 4 月 12 日木プログラム開発基礎 4 月 13

More information

memo

memo 計数工学プログラミング演習 ( 第 4 回 ) 2016/05/10 DEPARTMENT OF MATHEMATICA INFORMATICS 1 内容 リスト 疎行列 2 連結リスト (inked ists) オブジェクトをある線形順序に並べて格納するデータ構造 単方向連結リスト (signly linked list) の要素 x キーフィールド key ポインタフィールド next x->next:

More information

プログラミング入門1

プログラミング入門1 プログラミング入門 2 第 8 回表形式データ (1) 1 テーマ : 表形式データ (1) 配列と複合データを用いた表形式データ データの登録 データの検索 データの更新 実際的はソフトウェアでは 表形式データの ( 例えば データベースのデータ ) を利用する場面が非常に多く とても重要である そこで 表形式を扱うプログラミングを繰り返しとりあげる 2 テーマ : 表形式データ (1) 配列と複合データを用いた表形式データ

More information

スキル領域 職種 : ソフトウェアデベロップメント スキル領域と SWD 経済産業省, 独立行政法人情報処理推進機構

スキル領域 職種 : ソフトウェアデベロップメント スキル領域と SWD 経済産業省, 独立行政法人情報処理推進機構 スキル領域と (8) ソフトウェアデベロップメント スキル領域と SWD-1 2012 経済産業省, 独立行政法人情報処理推進機構 スキル領域 職種 : ソフトウェアデベロップメント スキル領域と SWD-2 2012 経済産業省, 独立行政法人情報処理推進機構 専門分野 ソフトウェアデベロップメントのスキル領域 スキル項目 職種共通スキル 項目 全専門分野 ソフトウェアエンジニアリング Web アプリケーション技術

More information

Prog1_2nd

Prog1_2nd 2019 年 10 月 3 日 ( 木 ) 実施浮動小数点数 Java 言語で実数を扱う場合, 実用的な計算には変数のデータ型としては,double 型を用いる 浮動小数点数とは, 実数を表す方式の一つで,2 進数の場合は例えば 1.101 2 3 ( 判り易さの為にここでは 2 や 3 は 10 進数で表記 ) の様な表記法である なお, 第 1 回の教材にあった, 単精度, 倍精度という用語で,

More information

Microsoft PowerPoint - prog09.ppt

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

More information

Microsoft PowerPoint - CproNt02.ppt [互換モード]

Microsoft PowerPoint - CproNt02.ppt [互換モード] 第 2 章 C プログラムの書き方 CPro:02-01 概要 C プログラムの構成要素は関数 ( プログラム = 関数の集まり ) 関数は, ヘッダと本体からなる 使用する関数は, プログラムの先頭 ( 厳密には, 使用場所より前 ) で型宣言 ( プロトタイプ宣言 ) する 関数は仮引数を用いることができる ( なくてもよい ) 関数には戻り値がある ( なくてもよい void 型 ) コメント

More information

Microsoft PowerPoint - prog09.ppt

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

More information

情報処理 Ⅱ 2007 年 11 月 26 日 ( 月 )

情報処理 Ⅱ 2007 年 11 月 26 日 ( 月 ) 情報処理 Ⅱ 2007 年 11 月 26 日 ( 月 ) 本日学ぶこと 関数と変数 目的 関数を自分で定義し, 変数の利用方法 範囲を明示的に制限することで, 適切な機能分割 ( モジュール化, 再利用 ) を図る. してはいけないこと main 関数のみで 100 行以上のプログラム グローバル変数を駆使するプログラム プログラムを読みやすくする 保守性向上 入 p.109 2 関数 (Function)

More information

ファイナライザを理解する ~ ファイナライザに起因するトラブルを避けるために ~ 2013 年 11 月 25 日 橋口雅史 Java アプリケーションでファイナライザ (finalize() メソッド ) を使用したことがあるプログラマーは多いと思います しかし ファイナライザの仕組みや注意点につ

ファイナライザを理解する ~ ファイナライザに起因するトラブルを避けるために ~ 2013 年 11 月 25 日 橋口雅史 Java アプリケーションでファイナライザ (finalize() メソッド ) を使用したことがあるプログラマーは多いと思います しかし ファイナライザの仕組みや注意点につ ファイナライザを理解する ~ ファイナライザに起因するトラブルを避けるために ~ 2013 年 11 月 25 日 橋口雅史 Java アプリケーションでファイナライザ (finalize() メソッド ) を使用したことがあるプログラマーは多いと思います しかし ファイナライザの仕組みや注意点について 理解したうえで使っているでしょうか? アプリケーション プログラムでファイナライザを使用する場合は

More information

4 月 東京都立蔵前工業高等学校平成 30 年度教科 ( 工業 ) 科目 ( プログラミング技術 ) 年間授業計画 教科 :( 工業 ) 科目 :( プログラミング技術 ) 単位数 : 2 単位 対象学年組 :( 第 3 学年電気科 ) 教科担当者 :( 高橋寛 三枝明夫 ) 使用教科書 :( プロ

4 月 東京都立蔵前工業高等学校平成 30 年度教科 ( 工業 ) 科目 ( プログラミング技術 ) 年間授業計画 教科 :( 工業 ) 科目 :( プログラミング技術 ) 単位数 : 2 単位 対象学年組 :( 第 3 学年電気科 ) 教科担当者 :( 高橋寛 三枝明夫 ) 使用教科書 :( プロ 4 東京都立蔵前工業高等学校平成 30 年度教科 ( 工業 ) 科目 ( プログラミング技術 ) 年間授業計画 教科 :( 工業 ) 科目 :( プログラミング技術 ) 単位数 : 2 単位 対象学年組 :( 第 3 学年電気科 ) 教科担当者 :( 高橋寛 三枝明夫 ) 使用教科書 :( プログラミング技術 工業 333 実教出版 ) 共通 : 科目 プログラミング技術 のオリエンテーション プログラミング技術は

More information

(Microsoft PowerPoint - \223\306\217KJAVA\221\346\202R\224\ ppt)

(Microsoft PowerPoint - \223\306\217KJAVA\221\346\202R\224\ ppt) 独習 JAVA 第 3 版 8.4 例外とエラークラス 8.5 throws ステートメント 8.6 独自の例外 Throwable コンストラクタ catch ブロックには Throwable 型のパラメータが必ず 1 つなければならない Throwable コンストラクタ Throwable() Throwable( String message ) message には問題を通知する文字列のメッセージ

More information

2 概要 市場で不具合が発生にした時 修正箇所は正常に動作するようにしたけど将来のことを考えるとメンテナンス性を向上させたいと考えた リファクタリングを実施して改善しようと考えた レガシーコードなのでどこから手をつけて良いものかわからない メトリクスを使ってリファクタリング対象を自動抽出する仕組みを

2 概要 市場で不具合が発生にした時 修正箇所は正常に動作するようにしたけど将来のことを考えるとメンテナンス性を向上させたいと考えた リファクタリングを実施して改善しようと考えた レガシーコードなのでどこから手をつけて良いものかわからない メトリクスを使ってリファクタリング対象を自動抽出する仕組みを メトリクス利用によるリファクタリング対象の自動抽出 ローランドディー. ジー. 株式会社 第 4 開発部 SC02 小林光一 e-mail:kouichi.kobayashi@rolanddg.co.jp 2 概要 市場で不具合が発生にした時 修正箇所は正常に動作するようにしたけど将来のことを考えるとメンテナンス性を向上させたいと考えた リファクタリングを実施して改善しようと考えた レガシーコードなのでどこから手をつけて良いものかわからない

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション オブジェクト指向 プログラミング演習 第 2 回クラス インスタンス メソッド フィールド コンストラクタ ICPC の宣伝 国際大学対抗プログラミングコンテスト 3 人一組のチームでプログラムを書く速さを競う 国内予選 : ネットワーク上で 6 月末 ~7 月頭 アジア地区予選 : 日本国内で秋に開催 世界大会 :2020 年は 6 月にモスクワで 参加登録締切 : 国内予選の 2~3 週間前 今年は

More information

Microsoft PowerPoint - 12.ppt [互換モード]

Microsoft PowerPoint - 12.ppt [互換モード] 第 12 回構造体 1 今回の目標 構造体を理解する 構造体の定義の仕方を理解する 構造体型を理解する 構造体型の変数 引数 戻り値を理解する 複素数同士を足し算する関数を作成し その関数を利用するプログラムを作成する 2 複素数の足し算 複素数は実部と虚部の2つの実数で 表現される 表現される z = a+ bi 2 つの複素数 z 1 = a 1+ bi 1 と z2 = a2 + b2i の和

More information

OSS モデルカリキュラムの学習ガイダンス 3. IT 知識体系との対応関係 16. 開発フレームワークに関する知識 Ⅱ と IT 知識体系との対応関係は以下の通り 科目名 基本レベル (Ⅰ) 応用レベル (Ⅱ) 開発フ

OSS モデルカリキュラムの学習ガイダンス 3. IT 知識体系との対応関係 16. 開発フレームワークに関する知識 Ⅱ と IT 知識体系との対応関係は以下の通り 科目名 基本レベル (Ⅰ) 応用レベル (Ⅱ) 開発フ OSS モデルカリキュラムの学習ガイダンス 16. 開発フレームワークに関する知識 Ⅱ 1. 科目の概要実際の開発フレームワークについてその構成と特徴を解説し それらの開発フレームワークを利用する方法と OR マッピングや DIxAOP コンテナなど 開発フレームワークで利用される基本的な概念について説明する 2. 習得ポイント 本科目の学習により習得することが期待されるポイントは以下の通り 習得ポイント

More information

Prog2_9th

Prog2_9th 2017 年 11 月 30 日 ( 木 ) 実施 Canvas による描画 Canvas とは Canvas は, 描画コールを保持するためのクラスである 描画には, 次の 4 つの要素が必要である (1) ビットマップピクセル ( 画素 ) を保持 (2) キャンバス描画コール ( ビットマップへの書き出し要請 ) に対応 (3) 描画プリミティブ描画領域, パス, テキスト, ビットマップ等

More information