地震だじいさん
ぎゃーーー地震だ地震だ。地震だじいさんだぁ〜〜〜!!!!ヽ(`Д´)ノムキィ
><
PCの電源も落ちちゃったよ ヽ(`Д´)ノムキィ
もぅ ヽ(`Д´)ノムキィ しかない!
ヽ(`Д´)ノムキィ
今、巷では 地震が熱い!!!
http://d.hatena.ne.jp/keyword/%c3%cf%bf%cc
http://d.hatena.ne.jp/keyworddiary/%c3%cf%bf%cc?date=20041023
そして、今、自分では アウトラインプロセッサが熱い!!!
ここの考察で存在を知った。
http://d.hatena.ne.jp/walkinglint/20041020#p1
percentageを求めるプログラム?として
percentageを求めるプログラムとして以下のようなの作った。
でも千分率とかにするとどうも 良く無い結果になる。
多分どこかが間違っていると思うのだが・・・
template<typename ULONG_T=double>
class progress_calculator_base
{
public:
typedef ULONG_T unsigned_type;
private:
ULONG_T mMax;
///カウンタ。
ULONG_T mCount;
///mDivValueが100以外の時はPercentだと可笑しいけど^^;
ULONG_T mPercent;
///1%のサイズ (mDivValueが100の時は
ULONG m1PercentSize;
///全体から割る数
ULONG_T mDivValue;
public:
explicit progress_calculator_base(
ULONG_T max_value__ ,ULONG_T div_value__ = 100)
{
reset(max_value__);
}void reset( ULONG_T max_value__ ,ULONG_T div_value__ = 100)
{
if(0==max_value__)
max_value__ = 1;
if(0==div_value__)
div_value__ = 1;
mMax = max_value__;
mCount = 1;
mPercent = 0;
m1PercentSize = (max_value__ / div_value__);
mDivValue = div_value__;} // restart
ULONG_T operator+=( ULONG_T increment )
{
mCount += increment;
//パーセンテージを求める。
mPercent = mCount / m1PercentSize;
return mCount;
}ULONG_T operator++() {
return operator+=( 1 );
}
ULONG_T operator++(int){
return operator++();
}
ULONG_T count() const {
return mCount;
}
ULONG_T max_count() const {
return mMax;
}
ULONG_T percentage()const{
return mPercent;
}
ULONG_T scaling(ULONG_T a)const{
return ( (a / mDivValue) * mPercent);
}
ULONG_T one_count(){
return m1Percent;
}
ULONG_T div_value()const{
return mDivValue;
}
};
///doubleにしないと誤差が出る。
///整数にするならビットシフトしてスケーリングしないと・・・。
typedef progress_calculator_base<double> progress_calculator;}
む〜ぅ・・・。