untitled:理想身長
昨日理想体重のプログラムをC言語で作ってみましたが、使用した式をちょっといじくると理想体重から元の身長を割り出すことができることに今更気づき、そしてこんなものを作ってみました。その前に、昨日のプログラムの修正です。
関数ideal_weight 31行目: return (tall - 100) * 0.9; → ''return (float)(tall - 100) * 9 / 10;''
小数点数が計算式から消滅したため、明示的にキャストしてみました。この式を変形して、理想身長を求めていきます。ソースはこんな感じです。
ダイエットをする際、目標の体重を入力して、出てきた値が実際の身長より低いかどうかという見方でそのダイエットは正しいかどうかを判断するには便利かもしれません。
今回はC++で作ってみましたが、書式指定をしながら出力をしたかったので出力にcout(std::cout)と関数printf(int printf(const char *format, ...))が混在するなんとも言えないものになってしまいました。
どうでしょうか。皆さんもご自分の身体のことについて、少し気にかけてみませんか?以上、hiropon355(ヒロポン)でした。
関数ideal_weight 31行目: return (tall - 100) * 0.9; → ''return (float)(tall - 100) * 9 / 10;''
小数点数が計算式から消滅したため、明示的にキャストしてみました。この式を変形して、理想身長を求めていきます。ソースはこんな感じです。
''#include''
''#include''
''#include''
''#define'' ARGC_NUM 2
''using namespace'' std;
''float'' ideal_tall(float);
''int main''(''int'' argc, ''char'' *argv[])
{
''float'' weight;
''if''(argc != ARGC_NUM){
cout << "体重を入力:"; cin >> weight;
}''else''{
weight = atof(argv[1]);
}
printf("体重%3.2f[kg] のあなたの理想身長は%3.1f[cm] です。\n", weight, ideal_tall(weight));
''return'' 0;
}
''float'' ideal_tall(''float'' weight)
{
''return'' (''float'')weight * 10 / 9 + 100 ;
}
ダイエットをする際、目標の体重を入力して、出てきた値が実際の身長より低いかどうかという見方でそのダイエットは正しいかどうかを判断するには便利かもしれません。
今回はC++で作ってみましたが、書式指定をしながら出力をしたかったので出力にcout(std::cout)と関数printf(int printf(const char *format, ...))が混在するなんとも言えないものになってしまいました。
どうでしょうか。皆さんもご自分の身体のことについて、少し気にかけてみませんか?以上、hiropon355(ヒロポン)でした。
2011-02-24 16:08
nice!(0)
コメント(10)
トラックバック(0)
そういえばfloat使ってるんですね(^^;;;
基本はdoubleで統一した方がいいですよ。
by か~みっと (2011-02-24 18:20)
か~みっとさん
そうなんですけどね。32ビットで十分かなと。高校では基本的にfloat型使ってきたので、慣習化してるのもありますね。
by hiropon355 (2011-02-24 18:37)
[悲しい顔][ふらふら][落胆した顔]あ~・・・わけわからなくてごちそうさまです。
by シザーマン (2011-02-24 22:28)
シザーくん
いや、無理に理解しようとする必要は...
by hiropon355 (2011-02-25 00:57)
実はfloatって内部ではdoubleで計算してるんですよ。
毎回float←→doubleのキャストが暗黙的に行われてます。
だからfloatは余り使わない方がいいよ。
by か~みっと (2011-02-25 17:52)
か~みっとさん
そうなんでしょうね。C#にfloat型はあっても変換はできなくて結局double型を使いましたもの。
float型の使用は... 多分止められないです。慣習化しちゃってるので。
by hiropon355 (2011-02-25 18:17)
実数のキャストは
桁の丸めで誤差が出ます。
精密な計算でなくても出ますから
辞めた方が良い習慣ですf(^^
by か~みっと (2011-02-25 18:56)
か~みっとさん
そうなんですか?そしたらこれからは使用を控えようかと。
by hiropon355 (2011-02-25 18:59)
うん、
前に仕事をしてた所では
float禁止がプログラム設計書に
書かれてたぐらいですからね。
アセンブラのコードを出力してみて下さい。
floatにした時の無駄がよく分かると思います。
(多分(w)
by か~みっと (2011-02-25 19:08)
あっご紹介
↓
http://www.pro.or.jp/~fuji/mybooks/cdiag/index.html#mokuji[Cプログラミング診断室]
C言語について
共感出来る少ないライター(本職はプログラマ)さんです。
by か~みっと (2011-02-26 06:55)