本日のプログラミング放送(6/18)
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

本日のプログラミング放送(6/18)

2014-06-18 22:04

    今日の内容を振り返ろう。ドットイートゲームの演習問題から再開です。
    下記に演習1から5のソースを載せました。この演習問題は、サンプルのソースコードを修正するのではなく単体のコードです。そのままコピペで実行できます。

    //1.(12, 34) を値としてもつ2次元座標ベクター Vec2 v を宣言しなさい。
    //2.Vec2 v1(1, 2), v2(3, 4); を宣言し、v1 + v2 を計算するコードを書き、デバッガで実行し
    //正しく計算されていることを確認しなさい。
    //3.引数 Vec2 を2つとり、それらが等しくないかどうかを返す
    //bool operator!=(const Vec2 &, const Vec2 &) を定義しなさい。
    //4.引数に、Vec2、int をとり、それらを乗じた値を返す
    //Vec2 operator*(const Vec2 &a, int b) を定義しなさい。
    //5.180度回転した値を返す Vec2 rot_180(const Vec2 v) を定義しなさい。
    #include<iostream>
    using namespace std;
    typedef pair<int, int> Vec2; // (x, y) ベクター
    Vec2 operator+(const Vec2 &a, const Vec2 &b)//演習2
    {
    return Vec2(a.first + b.first, a.second + b.second);
    }
    bool operator!=(const Vec2 &a, const Vec2 &b)//演習3
    {
    return !(a.first == b.first && a.second == b.second);
    //return !(a == b);
    //aのfirstとbのfirstが不一致、なおかつaのsecondとbのsecondが不一致ならtrue
    }
    Vec2 operator*(const Vec2 &a, int b)//演習4
    {
    return Vec2(a.first * b, a.second * b);
    }
    Vec2 rot_180(const Vec2 v)//演習5
    {
    return Vec2(-v.second, -v.first);
    }
    int main()
    {
    Vec2 v(12, 34);//演習1
    Vec2 v1(1, 2), v2(3, 4);//演習2
    Vec2 v5(1, 3);
    Vec2 v3 = v1 + v2;//演習2 1行で書ける

    Vec2 v4;
    v4.first = v1.first + v2.first;//operator+でない書き方
    v4.second = v1.second + v2.second;//2行使う

    bool b = v1 != v2;//演習3
    bool b2 = v1 != v5;

    Vec2 v6 = v1 * 2;//演習4
    Vec2 v7 = rot_180(v);//演習5
    getchar();
    return 0;
    }

    //本日もお疲れ様でした。相変わらずのgdgd放送ですいません。次回は、車構造体から再開します。


    広告
    コメントを書く
    コメントをするには、
    ログインして下さい。