静岡理工科大学 菅沼ホーム 演習まとめ 付録 索引

C/C++ 自学・自習

 (このページのダウンロード

  このページは,C/C++ を自分で勉強してみようと思う人のための自学自習( e-Learning )用のページです.簡単な解説と共に,多くの演習問題を与えてあります.解説を読むだけでなく,必ず,演習問題を自分で解いてください.そして,すべての演習問題に対して正解を得た後,次に進んでください.ただし,演習問題には,行列やベクトルに関する知識が必要なものも含まれています.ある程度は説明したつもりですが,どうしても理解できないようでしたらそれらの問題は飛ばしてください.基本的に,「 C/C++ と Java 」と同じ内容ですが,以下に示す点で異なっています.

  1. C/C++ だけを対象としています.ただし,内容的には,演習問題も含め,「 C/C++ と Java 」よりも易しくなっていると思います.

  2. 本文の途中に,コンピュータが正誤を判断してくれる確認問題を挿入しています.また,演習問題も,章末ではなく,適切と思われる場所に適宜挿入してあります.

  3. 付録は,「 C/C++ と Java 」の付録の一部をそのまま利用しています.そのため,Java に対する説明も含まれる場合があります.

目次

第Ⅰ部 基礎

  1. 第1章 情報の表現

    1. 1.1 2 進数
    2. 1.2 10 進数から 2 進数への変換
    3. 1.3 コンピュータ内部における数値の表現
      1. 1.3.1 整数の表現方法
      2. 1.3.2 浮動小数の表現
    4. 1.4 コンピュータ内部における文字の表現方法

  1. 第2章 プログラム作成手順

    1. 2.1 アルゴリズム
    2. 2.2 コーディング
    3. 2.3 コンパイル
    4. 2.4 連係編集
    5. 2.5 実行

第Ⅱ部 C と C++ への拡張

  1. 第3章 簡単なプログラム

    1. 3.1 プログラムの書き方
      1. 3.1.1 基本原則
      2. 3.1.2 わかりやすいプログラム
    2. 3.2 データ型
      1. 3.2.1 定数
      2. 3.2.2 変数
      3. 3.2.3 列挙型変数
      4. 3.2.4 typedef 宣言
    3. 3.3 算術演算子と代入演算子
      1. 3.3.1 算術演算子
      2. 3.3.2 代入演算子
      3. 3.3.3 インクリメント,デクリメント演算子
      4. 3.3.4 型変換( cast 演算子)
    4. 3.4 簡単なプログラム
        (プログラム例3.1) 2 つのデータの和と差
        (プログラム例3.2) 2 つのデータの和と差( cout,cin )
    5. 3.5 その他
      1. 3.5.1 キーワード
      2. 3.5.2 アスキーコード
      3. 3.5.3 エスケープシーケンス

  1. 第4章 演算子

    1. 4.1 アドレス演算子と間接演算子
        (プログラム例4.1) ポインタを利用した 2 つのデータの和
    2. 4.2 関係演算子,等値演算子,及び,論理演算子
        (プログラム例4.2) 関係式と論理式
    3. 4.3 ビット演算子とシフト演算子
        (プログラム例4.3) ビット演算子とシフト演算子
    4. 4.4 その他の演算子

  1. 第5章 制御文

    1. 5.1 分岐
      1. 5.1.1 if 文
          (プログラム例5.1) 円周と面積の計算
          (プログラム例5.2) 坪・m2 間の単位変換
          (プログラム例5.3) 3 つのデータの最大値と最小値
          (プログラム例5.4) データの比較
      2. 5.1.2 switch 文
          (プログラム例5.5) データの比較( switch 文)
    2. 5.2 繰り返し
      1. 5.2.1 繰り返し文
          (プログラム例5.7) 平均値の計算
          (プログラム例5.8) ファイル入出力
          (プログラム例5.9) for 文のネスト
          (プログラム例5.10) 入力の繰り返し( do-while )
          (プログラム例5.11) 最大値(初期設定)
      2. 5.2.2 繰り返しの中断
        1. 5.2.2.1 break 文
            (プログラム例5.12) 繰り返しの中断( break )
        2. 5.2.2.2 continue 文
            (プログラム例5.13) 繰り返しの中断( continue )

  1. 第6章 配列とポインタ

    1. 6.1 配列
        (プログラム例6.1) 平均値と平均値以下の人の出力
        (プログラム例6.2) 平方根の計算とファイルへの出力
        (プログラム例6.3) 大文字から小文字への変換
    2. 6.2 配列とポインタ
        (プログラム例6.4) 1 次元配列,ポインタ,及び,初期化
    3. 6.3 2 次元以上の配列とポインタ
        (プログラム例6.5) 2 次元配列,ポインタ,及び,初期化
    4. 6.4 メモリの動的確保
      1. 6.4.1 malloc と free
          (プログラム例6.6) メモリの動的確保( 1 次元配列)
          (プログラム例6.7) メモリの動的確保( 2 次元配列)
      2. 6.4.2 new と delete
          (プログラム例6.8) メモリの動的確保( 1 次元配列,new )
          (プログラム例6.9) メモリの動的確保( 2 次元配列,new )
          (プログラム例6.10) new 演算子と代入・初期化

  1. 第7章 関数

    1. 7.0 標準関数
      1. 7.0.1 scanf と printf
      2. 7.0.2 文字列操作
          (プログラム例7.0) 文字列操作
    2. 7.1 簡単な関数
        (プログラム例7.1) 階乗の計算
        (プログラム例7.2) 階乗の計算(関数の利用)
        (プログラム例7.3) 階乗の計算(再帰呼び出し)
        (プログラム例7.4) nr の計算
    3. 7.2 変数の有効範囲(スコープ)
      1. 7.2.1 型宣言
      2. 7.2.2 有効範囲(スコープ)
          (プログラム例7.5) 変数の有効範囲(同じファイル)
          (プログラム例7.6) 変数の有効範囲(別々のファイル)
          (プログラム例7.7) 変数の有効範囲( C++ )
      3. 7.2.3 名前空間( namespace )
          (プログラム例 7.23 ) 名前空間
    4. 7.3 データの受け渡し
      1. 7.3.1 データとアドレス
          (プログラム例7.8) 複数結果の受け渡し
          (プログラム例7.9) デフォルト引数
      2. 7.3.2 配列
        1. 7.3.2.1 1 次元配列
            (プログラム例7.10) 1 次元配列の受け渡し
        2. 7.3.2.2 2 次元以上の配列
            (プログラム例7.11) 2 次元配列の受け渡し(方法 1 )
            (プログラム例7.12) 2 次元配列の受け渡し(方法 2 )
            (プログラム例7.13) 2 次元配列の受け渡し(方法 3 )
      3. 7.3.3 関数名
          (プログラム例7.14) 関数名の受け渡し(ニュートン法)
          (プログラム例7.15) 関数名の配列
      4. 7.3.4 参照渡し
          (プログラム例7.16) 参照渡し
          (プログラム例7.17) 参照渡し(参照型関数)
    5. 7.4 main 関数
        (プログラム例7.18) main 関数の引数(数字の和)
        (プログラム例7.19) main 関数の引数(環境変数の出力)
    6. 7.5 その他
      1. 7.5.1 関数名のオーバーロード
          (プログラム例7.20) 関数名のオーバーロード
      2. 7.5.2 インライン関数
          (プログラム例7.21) インライン関数と #define マクロ
      3. 7.5.3 例外処理
          (プログラム例7.22) 例外処理

  1. 第8章 構造体と共用体

    1. 8.1 構造体
        (プログラム例8.1) 構造体(定義と参照)
        (プログラム例8.2) 構造体(ネスト,方法 1 )
        (プログラム例8.3) 構造体(ネスト,方法 2 )
        (プログラム例8.4) 構造体(関数の引数)
        (プログラム例8.5) 構造体(リスト構造)
    2. 8.2 共用体
        (プログラム例8.6) 共用体

  1. 第9章 プリプロセッサ

    1. 9.1 #define
        (プログラム例9.1) 記号定数とマクロの定義
    2. 9.2 #undef
    3. 9.3 #if
        (プログラム例9.2) 記号定数の定義による出力先制御
        (プログラム例9.3) 単位変換
    4. 9.4 #include
        (プログラム例9.4) ファイルの組み込み

第Ⅲ部 クラス

  1. 第10章 クラス

    1. 10.1 クラス
      1. 10.1.1 クラスの宣言
          (プログラム例10.1) クラス宣言
      2. 10.1.2 前送りのクラス宣言
    2. 10.2 メンバー関数とフレンド関数
        (プログラム例10.2) メンバー関数とフレンド関数
    3. 10.3 コンストラクタとデストラクタ
        (プログラム例10.3) 時間データ
        (プログラム例10.4) プラントモデル
        (プログラム例10.5) ベクトルの内積と絶対値
        (プログラム例10.6) リスト構造
        (プログラム例10.7) 様々なデータ型の引き渡し

  1. 第11章 演算子のオーバーロード

    1. 11.1 演算子のオーバーロード
        (プログラム例11.1) ベクトルの加算(メンバー関数)
        (プログラム例11.2) ベクトルの加算(フレンド関数)
    2. 11.2 複素数の加算( + )と出力( << )
        (プログラム例11.3) 複素数の加算(メンバー関数)
        (プログラム例11.4) 複素数の加算(フレンド関数)
    3. 11.3 変換演算子
        (プログラム例11.5) 変換演算子
    4. 11.4 関数呼び出し () の多重定義
      1. (プログラム例 11.6 ) 関数オブジェクト
      2. (プログラム例 11.7 ) 関数オブジェクトを使用したニュートン法
      3. (プログラム例 11.8 ) イテレータ
    5. 11.5 演算子のオーバーロードと演算子との関係

  1. 第12章 代入と初期化

    1. 12.1 代入
        (プログラム例12.1) 代入( new を使用しない場合)
        (プログラム例12.2) 代入( new を使用する場合)
        (プログラム例12.3) 代入問題の解決( = のオーバーロード)
    2. 12.2 初期化
        (プログラム例12.4) 初期化( new を使用しない場合)
        (プログラム例12.5) 初期化( new を使用する場合)
        (プログラム例12.6) 初期化問題の解決(初期化用のコンストラクタ)
        (プログラム例12.7) 行列の乗算

  1. 第13章 派生クラス

    1. 13.1 派生クラス
        (プログラム例13.1) 派生クラス
        (プログラム例13.2) フレームの表現
    2. 13.2 仮想関数
        (プログラム例13.3) 仮想関数(フレームの表現)
    3. 13.3 抽象クラス
        (プログラム例13.4) 抽象クラス

  1. 第14章 テンプレート

    1. 14.1 関数テンプレート
        (プログラム例14.1) 関数テンプレート
    2. 14.2 クラステンプレート
        (プログラム例14.2) クラステンプレート
    3. 14.3 C++ 標準ライブラリと STL ( Standard Template Library )
      1. 14.3.1 コンテナ
      2. 14.3.2 イテレータ(反復子)
        1. (プログラム例 14.3 ) イテレータ
        2. (プログラム例 14.4 ) 挿入イテレータ
        3. (プログラム例 14.5 ) ストリームイテレータ
      3. 14.3.3 アルゴリズム( STL )
      4. 14.3.4 関数オブジェクト
        1. (プログラム例 14.6 ) map における関数オブジェクトの使用
        2. (プログラム例 14.7 ) 関数オブジェクトの作成

  1. 第15章 クラスメンバーに対するポインタ

    1. 15.1 クラスメンバーに対するポインタ
      (プログラム例15.1) クラスメンバーに対するポインタ

  1. 第16章 入出力クラス

    1. 16.1 標準入出力
        (プログラム例16.1) 標準入出力
        (プログラム例16.2) クラスの出力
    2. 16.2 書式付き入出力
        (プログラム例16.3) 書式付き出力(メンバー関数)
        (プログラム例16.4) 書式付き出力(書式操作子)
    3. 16.3 ファイル入出力
        (プログラム例16.5) ファイル入出力
 (このページのダウンロード

静岡理工科大学 菅沼ホーム 演習まとめ 付録 索引