O'Reillyの本です。英語版を私がきちんと理解出来るか不安を感じながらもAndroid Marketで購入。
だって日本語版の書籍も電子書籍も高いんだもん。$5で買えて英語の文書を読む勉強になるなら買うしかないでしょw
少しずつ読んでるんだけどログをのこしてなかったのでこれから書きます。
現在は6. Relationships Among Classes(クラス間の関係)を読んでます。6.1 Subclassing and Inheritance(サブクラス化と継承)の@Overrideとこ。
日本語版のToCがO'Reilly Japan - 詳解 Javaプログラミング 第2版 VOLUME 1にのってるのでそっち見るか。
残念だけどblogspotよりもwiki作って書きたいかも。blogspotちょっと使いづらいんだよね orz
というわけで以降こっちに。
Learning Java読書メモ - livedoor Wiki(ウィキ)
2011年3月24日木曜日
2011年3月23日水曜日
苦C勉強会 E.15 ポインタ
E15.5
*が3つの意味をもつ(乗算、間接参照、ポインタ変数の宣言)のでややこしい
E15.6
関数の仮引数宣言ならint *aもint a[]も同じ。
配列の宣言の時は[]でサイズを書くけど配列を使う時の[]は添字演算子。意味が違う。
E15.7
int *hoge, array[10];
for(hoge = array; hoge != &array[10]; hoge++) { something }
はややこしい。
練習問題
なんか納得のいかない感じ
雑感
同じ記号なのに意味が違う事があってややこしいですね。
*が3つの意味をもつ(乗算、間接参照、ポインタ変数の宣言)のでややこしい
E15.6
関数の仮引数宣言ならint *aもint a[]も同じ。
配列の宣言の時は[]でサイズを書くけど配列を使う時の[]は添字演算子。意味が違う。
E15.7
int *hoge, array[10];
for(hoge = array; hoge != &array[10]; hoge++) { something }
はややこしい。
練習問題
なんか納得のいかない感じ
雑感
同じ記号なのに意味が違う事があってややこしいですね。
2011年3月2日水曜日
俺がそう思うからそうなんだろう 俺ん中ではな: 苦C勉強会 E.10からE.14まで
E.10.1
intのサイズについて言及があるけど、処理系依存なんでなんともいえない。最低限これだけは表現出来る!ってのがきまってるだけだったような。フォロープリーズ。
E.10.2
do ~ while文は必ず1回実行されるので入力チェックに最適。
練習問題10
doは先判定、do whileは後判定。
書取の方は結果表示とかもう一度とか抜きでかいてしまった。
練習問題11
問題をしっかりよんでなかったので変なことに
E.13.2
memory.hって何だろ…とりあえずstrings.hをincludeして話をすすめる。
練習問題13
とりあえず普通に。
E.14
charのサイズって処理系依存だったっけ?
とりあえずsignedかunsignedかは処理系依存だった。
練習問題14
手抜き
intのサイズについて言及があるけど、処理系依存なんでなんともいえない。最低限これだけは表現出来る!ってのがきまってるだけだったような。フォロープリーズ。
E.10.2
do ~ while文は必ず1回実行されるので入力チェックに最適。
練習問題10
doは先判定、do whileは後判定。
書取の方は結果表示とかもう一度とか抜きでかいてしまった。
練習問題11
問題をしっかりよんでなかったので変なことに
E.13.2
memory.hって何だろ…とりあえずstrings.hをincludeして話をすすめる。
練習問題13
とりあえず普通に。
E.14
charのサイズって処理系依存だったっけ?
とりあえずsignedかunsignedかは処理系依存だった。
練習問題14
手抜き
ラベル:
9c
2011年2月22日火曜日
苦C勉強会 E.6からE.9まで。
前回と同じく気になった点など。
E.6.1
printfでは実数を出力する時%fでいいけどdoubleをscanfする時は%lfっていうポイントは抑えてある!
けどdoubleとint以外の型がでてきてないので書式指定子の説明が大幅に少ないのが残念。
E.6.2
おお、scanf駄目だよってかいてる!すごい!今の段階では解決出来ない orz
練習問題6
squareの意味がわからなかった。
E.7.1
ワンポイントに書いてあったけど、=と==は非常に間違いやすい。
コンパイラによってはif文の中で代入してると警告してくれたりするらしい。
定数を左側に書いておく事でこのエラーをふせぐ事が出来る。
という感じ。
E.7.2
値がひとしいか調べるには等値演算子を使う。(== !=)
他にも関係演算子(> < >= <=)や論理演算子((かつ &&) (または ||) (否定 !))がある。
Cの論理演算子は短絡評価なんで気をつけよう。
練習問題7
ちょっとプログラム書取の方はスルー
E.8.3
swtichの中に入れていいのってint? char? long?
case文は257個まで使えるとANSI Cで定義されてるってググったら出てきた。
breakかかないとどんどん落ちていくのをfall throughっていうらしいですよ。
練習問題8
プログラム書取スルー
記述式に弱いかも。
E.9.1
C99なら
なんでiなのか?軽くググってWikipedia とか
http://blogs.wankuma.com/jitta/archive/2007/01/25/58555.aspx
がひっかかった。 けど一番納得行くのはこっちの説明だな!
language agnostic - Why are variables "i" and "j" used for counters?
そいうえばなんでfor文3つの欄があって、区切りが;なんだろ。誰か教えてください。
練習問題9
プログラム書取はスルー。一応前に書いた事はある。
E.6.1
scanf関数では、整数だけでなく、実数の入力も可能です。
ただし、実数の場合、%lf指定子を使用する必要があります。
printf関数では%f指定子だったので注意して下さい。
printfでは実数を出力する時%fでいいけどdoubleをscanfする時は%lfっていうポイントは抑えてある!
けどdoubleとint以外の型がでてきてないので書式指定子の説明が大幅に少ないのが残念。
E.6.2
おお、scanf駄目だよってかいてる!すごい!今の段階では解決出来ない orz
練習問題6
squareの意味がわからなかった。
#include <stdio.h>
int main(void) {
int price;
scanf("%d", &price);
printf("%d\n", (int)(price - price * 0.1));
printf("%d\n", (int)(price - price * 0.3));
printf("%d\n", (int)(price - price * 0.5));
printf("%d\n", (int)(price - price * 0.8));
}
E.7.1
ワンポイントに書いてあったけど、=と==は非常に間違いやすい。
コンパイラによってはif文の中で代入してると警告してくれたりするらしい。
定数を左側に書いておく事でこのエラーをふせぐ事が出来る。
int a = 10;
if (a = 10) ; // エラーじゃない
int a = 10;
if (10 = a) ; // エラー(10に代入する事は出来ない。)
という感じ。
E.7.2
値がひとしいか調べるには等値演算子を使う。(== !=)
他にも関係演算子(> < >= <=)や論理演算子((かつ &&) (または ||) (否定 !))がある。
Cの論理演算子は短絡評価なんで気をつけよう。
練習問題7
ちょっとプログラム書取の方はスルー
E.8.3
swtichの中に入れていいのってint? char? long?
case文は257個まで使えるとANSI Cで定義されてるってググったら出てきた。
breakかかないとどんどん落ちていくのをfall throughっていうらしいですよ。
練習問題8
プログラム書取スルー
記述式に弱いかも。
E.9.1
C99なら
for(int i = 0; i < 10; i++) { /* something */ }なんでiなのか?軽くググってWikipedia とか
http://blogs.wankuma.com/jitta/archive/2007/01/25/58555.aspx
がひっかかった。 けど一番納得行くのはこっちの説明だな!
language agnostic - Why are variables "i" and "j" used for counters?
そいうえばなんでfor文3つの欄があって、区切りが;なんだろ。誰か教えてください。
練習問題9
プログラム書取はスルー。一応前に書いた事はある。
ラベル:
9c
2011年2月19日土曜日
苦C勉強会 E.2からE.5まで。
箇条書きですみません。気になった事等です。
E.2
E.2
- インデントはタブ派、スペース派、両方使う派、インデントしない派がいるけどCではタブ使うのが慣習なの?
- コメントの書き方はC99からは/**/で囲う以外に//も使えるけど、スルー?
- 練習問題2-2-1
int main(void) {
}
- 練習問題2-3-1 読む時の理解を助けるため。ソースコードだけでは伝わらない書き手の意図を伝えるため。
- #include等は疑似命令(プログラムではない)、プリプロセッサで処理される。
- #include、#define等の疑似命令は;を行末に付ける必要がない
- プリプロセス→コンパイル→アセンブル→リンクの流れ?(誰か教えてください)
- puts();じゃ駄目なの?
- どうみても円記号として説明されてる場所はバックスラッシュにしか見えない。Shift_JISでかかれていてもフォントはバックスラッシュなんだもの。参考: YEN SIGN問題: http://ja.wikipedia.org/wiki/Unicode#YEN_SIGN_.E5.95.8F.E9.A1.8C
- 「\n」はテキストとして出力される時には改行コードに置き換えられる。UnixとWindowsのやりとりする時に直接使うと面倒らしい。Wikipedia: プログラミングにおける改行コード
- タブは必ずしも頭揃えで表示されるわけじゃないと思う
- printf("foo" "bar");すると"foo"と"bar"が連結されてprintf("foobar")と同じになる。C99ではワイド文字列と連結も出来るらしい。[C99] 第9回 文字定数と文字列リテラル | 株式会社きじねこ
- 連結出来るメリット考察 Island Life - 文字列リテラルの連結
- エスケープシーケンス→Wikipedia:狭義には、エスケープコード (0x1B, ESC) に始まる一連のバイト列のことをいう。
- %lfの話を思いだす。今でもたまに間違えてしまう orz[迷信] double の出力書式は "%lf" | 株式会社きじねこ
- 練習問題4
#include <stdio.h>
int main(void) {
printf("%d/%d=%d...%d\n", 40, 13, 40/13, 40%13);
}
- かっこいい。
これ、ほとんどの入門書では、数値を入れておく箱と説明しますが、
こんなのは、誰もコンピュータに触ったことがなかった時代の説明方法でしょう。
コンピュータをそれなりに使っている人には、メモリと言った方がすっきりします - 「メモリといったほうがすっきり」からのロッカーの説明w
- C99では~の説明をみて時代を感じるなど。
- staticでないローカル変数を宣言した場合、初期値は不定。
- グローバル変数やstaticな変数は0で初期化される。C FAQ 1
- 問題、こうといちゃった。変数使うようにしなきゃ。
#include <stdio.h>
int main(void) {
printf("%d\n", (int)(1000 - (198 + 138 * 2) * 1.05));
}
ラベル:
9c
2011年2月17日木曜日
苦C勉強会 AからE.1.3(練習問題1)まで。
はじまったんで色々書く。
気になる事とか。
何もしないプログラム
http://9cguide.appspot.com/01-01.html
気になる事とか。
- C言語じゃなくてCじゃないの?
- K&R C/C89/C99/C1xとCにも色々あるけど、どれが対象なの?
何もしないプログラム
http://9cguide.appspot.com/01-01.html
- 最初に実行されるとこをエントリーポイントっていうらしい
- エントリーポイントは変更出来る。なのでmainからはじまらない場合もあるらしい。gccの場合は-eオプションで指定出来る。デフォだと_startからmainが呼ばれるらしい。-eでhogeを指定したらhogeから始まる。hogeの中でmain呼ばない事も出来る。(Linuxでしか確認しておらず)
http://stackoverflow.com/questions/3379190/avoiding-the-main-entry-point-in-a-c-program
- C99ではmain関数でreturn文を書かなかった場合0を返すと規定されてるからint main(void){}でいいんじゃない?
ラベル:
9c
2011年2月1日火曜日
Macのオススメ理由等々
学生向けのAdobe製品の価格表
http://www.adobe.com/jp/education/purchasing/ste/price/
* AdobeのPremiere Pro CS5が33,075円のところ2月14日までキャンペーンで28,113円
* Premiere Elements 9が7,140円のところキャンペーン期間なら6,069円
Premiere Pro CS5 と Premiere Elements 9 の違いは何ですか
http://kb2.adobe.com/jp/cps/440/4403.html
以下Macオススメ理由
* Apple謹製の動画編集ソフトiMovie 1,700円
* Final Cut Express 4、21,400円
MacBook Pro 15インチ
Core i5 2.4GHz、メモリ4GB、HDD 320GB、NVIDIA GeForce GT 330M (256MB)
教職員割引で148,800円
iMacの21.5インチ
Core i3 3.2GHz、メモリ4GB、HDD 1TB、ATI Radeon HD 5670グラフィックプロセッサ(512MB)
教職員割引で124,800円
一応iMacの方がいい気がする。ノート希望らしいけど。
動画編集以外にもワープロとか使うでしょう。
MS Officeを買うならWindowsより高くつくけどApple謹製のワープロ・表計算・プレゼンテーションソフト1つ1700円、全部買っても安い
生徒会用途ならこれで十分、動画編集が目的ならワープロとかはおまけ
* Windowsみたいにアップデートをあてる必要はある。
* MacだからWindows向けのソフトはそのまま動かない。なので学生がゲームいれて遊ぶとか変なソフトを入れることで問題がおきる事がWindowsよりは少ないだろう。
* 先生が管理者権限もてばソフトウェアインストールするのにも管理者権限必要だし安心
* 外付けHDDがあればTimeMachine(優秀なバックアップ機能)が使えるし新マシンへ移行も楽
iMac 124,800円
ワープロ表計算プレゼンテーション 1,700円 * 3本 = 5,100円
Final Cut Express 4、21,400円
しめて 151,300円
他にもDVI変換のコネクタとか必要な気はするけどどうだろ…、プレゼンとか入れなければ大丈夫じゃないでしょうか。
ああ、あともう1ついいところ: 写真管理iPhotoもついてくる。
http://www.adobe.com/jp/education/purchasing/ste/price/
* AdobeのPremiere Pro CS5が33,075円のところ2月14日までキャンペーンで28,113円
* Premiere Elements 9が7,140円のところキャンペーン期間なら6,069円
Premiere Pro CS5 と Premiere Elements 9 の違いは何ですか
http://kb2.adobe.com/jp/cps/440/4403.html
以下Macオススメ理由
* Apple謹製の動画編集ソフトiMovie 1,700円
* Final Cut Express 4、21,400円
MacBook Pro 15インチ
Core i5 2.4GHz、メモリ4GB、HDD 320GB、NVIDIA GeForce GT 330M (256MB)
教職員割引で148,800円
iMacの21.5インチ
Core i3 3.2GHz、メモリ4GB、HDD 1TB、ATI Radeon HD 5670グラフィックプロセッサ(512MB)
教職員割引で124,800円
一応iMacの方がいい気がする。ノート希望らしいけど。
動画編集以外にもワープロとか使うでしょう。
MS Officeを買うならWindowsより高くつくけどApple謹製のワープロ・表計算・プレゼンテーションソフト1つ1700円、全部買っても安い
生徒会用途ならこれで十分、動画編集が目的ならワープロとかはおまけ
* Windowsみたいにアップデートをあてる必要はある。
* MacだからWindows向けのソフトはそのまま動かない。なので学生がゲームいれて遊ぶとか変なソフトを入れることで問題がおきる事がWindowsよりは少ないだろう。
* 先生が管理者権限もてばソフトウェアインストールするのにも管理者権限必要だし安心
* 外付けHDDがあればTimeMachine(優秀なバックアップ機能)が使えるし新マシンへ移行も楽
iMac 124,800円
ワープロ表計算プレゼンテーション 1,700円 * 3本 = 5,100円
Final Cut Express 4、21,400円
しめて 151,300円
他にもDVI変換のコネクタとか必要な気はするけどどうだろ…、プレゼンとか入れなければ大丈夫じゃないでしょうか。
ああ、あともう1ついいところ: 写真管理iPhotoもついてくる。
登録:
投稿 (Atom)