Angular, Blockchain, Science とか

Angular, Blockchain, Science全般 の情報を主に書いていきます。

オブジェクト指向について

C++の基本的な機能は理解したので、オブジェクト指向のもっと深い理解を得るために、オブジェクト指向入門をよんでます。

オブジェクト指向入門 第2版 原則・コンセプト (IT Architect’Archive クラシックモダン・コンピューティング)

オブジェクト指向入門 第2版 原則・コンセプト (IT Architect’Archive クラシックモダン・コンピューティング)

オブジェクト指向入門 第2版 方法論・実践 (IT Architects' Archiveクラシックモダン・コンピューティング)

オブジェクト指向入門 第2版 方法論・実践 (IT Architects' Archiveクラシックモダン・コンピューティング)

分厚いですが、わかりやすいのでそんなに苦労せずに読めると思います。


最近は、データ構造をある程度理解して、いろいろな概念がわかるようになってきたので、だんだんコードが読めるようになってきました。

もっと勉強しないといけません

C 多次元配列とポインタ

Cでの多次元配列についてみていきます。

まず初期化とアクセス

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int matrix[2][5] = {{1,2,3,4,5}, {6,7,8,9,10}};
    
    for(int i=0; i<2; ++i){
        for(int j = 0; j<5; ++j){
            printf("matrix[%d][%d] アドレス: %p 値: %d\n",
                i, j, &matrix[i][j], matrix[i][j]);
        }
    }
    return 0;
}

直観的で特に問題はないはずです。

配列にたいするポインタは、

int (*pmatrix)[5] = matrix;

カッコなしだと要素5つのintへのポインタになります。

C++ 静的なメンバ変数とメンバ関数

C++の静的な(static)メンバ変数とメンバ関数に関するまとめ。

グローバル変数でも表現できますが、まあどうせなら必要なものはクラスの中に入れておいた方がわかりやすいと思われます。

class sample{
private:
    static int count;
    ....色々
};

// このように定義する
int sample::count = 0;

使うときは、静的メンバ関数にした方がよい。

class sample{
private:
    static int count;
public:
    // あんまりよくない。
    int get_count(){
        return count;
    }
};


//この場合 sample 型の変数を宣言しなければいけません。
{
    sample s1;
    std::cout << s1.get_count() << std::endl;
}

静的メンバ関数にすると

class sample{
private:
    static int count;
public:
    static int get_count(){return count;}
};

// sample型の変数を宣言しなくていい。
{
    std::cout << sample::get_count << std::endl;
}

はじめての数論

暗号をやるうえで数学は避けては通れないので、数論の勉強も始めました。

特に楕円曲線をちゃんと理解しなくてはいけません。

とりあえず、はじめての数論を読み始めました。

はじめての数論 原著第3版 発見と証明の大航海‐ピタゴラスの定理から楕円曲線まで

はじめての数論 原著第3版 発見と証明の大航海‐ピタゴラスの定理から楕円曲線まで

暗号の数理の勉強の最初にもってこいな本だと思います。

まあ今年一年は頑張って勉強し続けます。

早くコード書けるようになりたいです。

バイオテクノロジーの勉強も開始

6月になりまして、関数型言語と一緒にバイオテクノロジーの勉強も始めました。あと圏論も勉強しようかなとか思ってます。

まあ、プログラミングはできて当然で、あと、バイオテクノロジーやエネルギーの知識もあった方がよさそうなのでそっち方面も勉強していこうと思います。

とりあえず、

カラー図解 EURO版 バイオテクノロジーの教科書(上) (ブルーバックス)

カラー図解 EURO版 バイオテクノロジーの教科書(上) (ブルーバックス)

カラー図解 EURO版 バイオテクノロジーの教科書(下) (ブルーバックス)

カラー図解 EURO版 バイオテクノロジーの教科書(下) (ブルーバックス)

の二冊を6月は読もうと思います。

5月の振り返りと、6月の目標

もう5月が終わってしまいます。この年になると毎月時がたつのが早くなっていきますね。

5月にいったい何をしたのか、振り返ってみるとC++のクラスの機能、STL,データ構造、暗号のアルゴリズム(RSA),bitcoin とこんな感じになりました。

5月はの勉強の進み具合はまあまあだったかなと思います。

6月は関数型言語を勉強しようと思います。

とりあえずは、Lisp と Haskell の二つを一か月である程度理解できるように頑張ります。

本は、Land of Lisp, ふつうのHaskellプログラミング, 関数プログラミング実践入門をやろうと思います。

あと暗号とネットワークも引き続き勉強していきたいと思います。

では頑張っていきましょう。