VMwareをいれてみたけれど、XP SP3にバージョンアップすると動かなくなってしまった。最初のうちは動いていたのに起動もできなくなっちゃった。^ ^;;

C言語はちょっとおやすみしていましたが、また、はじめています。12章からなる本を1日1章ペースですすめているところ。^ ^*

がむばります。◎ ^ ^*





Ubuntu Linux を使いはじめて一年半くらいになる。

それまで、Windowsを使っていたのですが、ある日、PCを修理に出さないといけないことがあって、クリーンインストールされて戻ってきた。

デフォルトのWindowsの丘の壁紙を見て、なんかやる気がなくなってしまって。笑

この際、Linuxを使ってみようかと想ったのがきっかけでした。

はじめに使ったのが SUSE Linux。なにができるのか予想がつかなかったため、Max機能でインストールしたら、8時間もかかった。Linuxは速いというそれまでの印象はこうして第一段階で脆くも崩れ去りました。夜、インストールをはじめて、朝、起きてもインストールしているんだもの。もうね、どんだけ?って想いましたよ。笑

いろいろなサイトで勉強して、最小インストールで、のちに必要なものを追加してゆくほうがいいということがわかりました。8時間かけてインストールしたものをさっくり捨てて、最小インストールにしたら、ものの数分でインストールが終わりました。^ ^;;

と、いってもね、はじめてLinux使うときに、いったいどんなソフトがあるのかわからないものですよ。わたしはWebサイトをつくるソフトが欲しかったし、絵を描くので、イラストレータやフォトショップみたいなソフトも欲しかったんです。それらはLinuxでいうとどれに当たるのかということがわからなくて勉強しました。いまではようやくどんなソフトがあるのかということは把握できてきました。

便利なWindowsやMacから、わざわざ乗り換えないのは、Linuxにするとどんなことができて、どんなことができないのか? ということがわかりにくい点もあるからだと想います。乗り換えたときにソフトの資産は台無しになるしね。だけど、いまだと仮想化ソフトを使って、Windowsもいれたらいいじゃないと想います。

わたしの場合は冒険心のようなものが出てきちゃって、SUSEをやめてDebian/GNUを入れたり、Vineにしてみたり、Fedoraにしてみたりいろいろ試したんです。

やっと巡りあったのがUbuntuだったというわけ。まずインストールの簡単さにびっくりしてしまった。Debian/GNUやGentooのような面倒なインストールとは異なり、クリックだけでよし! なにも考えることなくインストールが終わったのです。手持ちのDVDなんかも問題なく見られる。ソフトウェアは買わずにすむと、なかなか経済的で。^ ^* 自分に合うLinuxをみつけて以来、Linuxのファンになっちゃったのです。

ソフトのインストールと管理が強いと想った。menuから欲しいソフトを選ぶだけだし、apt-getでインストールもできる。ソフトがバージョンアップしたらお知らせをしてくれる。ボタンをぽちっと押して、バージョンアップ。

あー、楽ちんと想ったわけです。^ ^** こう想えるまで遠かったけれど。笑

だけど、気に入らない点があるにはあります。それは日本語入力の弱さですね。WindowsのIMEも相当おバカですけど、LinuxのAnthyも引けをとらずおバカなんです。最近、特にそう感じていて。^ ^;;

先日、ATOKがUbuntuに対応すると発表されましたので、ATOKは買おうと想っています。ちょっと痛い出費になるけれど、文字を打つのにストレスを感じるのはヤだから。Linuxを使ってきてソフト代を払うことになるのはこれがはじめてですね。やっぱり商用ものの強みも感じたりします。

まあ、やりたいことを実現するにはOSはなんだっていいんですけど、Linuxに触れてから世の中にはたくさんのOSがあるんだなーってことがわかりました。

WindowsもMacもLinuxも使いたいという場合は、Macを買って仮想化したらOKなので、次に買うコンピュータはMacかなあって想います。

PhotoshopはGimpで代用するとしても、DreamwaverとIllustratorはいるといまでも想っています。^ ^;;

Ubuntu 7.10があと数日でメジャーアップデートなんですよね。Ubuntu 8.04がやってくる。どんな風に進化するのか楽しみにしています。^ ^*






while,for,switchを学習したので、とうとうポインタのところまでやってこれました。

このポインタをこなせるようにならなくちゃならないですね。^ ^*

http://homepage1.nifty.com/toshio-k/prog/c/pointer.html


このサイトが丁寧でとってもわかりやすかったです。^ ^*


  1. 1byteは8bitsで、0から255までの数字を表すことができる。
  2. 文字も数字としてメモリに格納されている。
  3. メモリには先頭から順に数字がふられていて、それをアドレスという。
  4. 変数はコンパイラによって決められたアドレスのメモリに格納される。
  5. そのアドレスはアドレス演算子「&」によって知ることができる。
  6. 変数を宣言するとき、変数名の前に「*」をつけて宣言するその変数はポインタ変数になる。
  7. ポインタ変数の前に間接演算子「*」をつけると、ポインタ変数が指し示すアドレスを使用する変数のように振る舞う。
  8. ポインタ変数は、必ず変数として確保されたアドレスを指すようにする






ええ、寝て起きたらすっかり半分以上、、



忘れてました。泣




道のりは遠そうです。^ ^;;;

ヘルプをもう一度、一通りやることにします。とほほ。






[sum.c]

#include <stdio.h>

int main(void){

  int sum, n;

  n = 10;
  sum = 0;
  while(n){
    sum = sum+n--;
  }
  printf("sum = %d\n", sum);
}



while,do whileをかじりました。^ ^*

上記の例文を見て、実行結果が予測できなかったです。^ ^;;

なのでメモを残しておくことに。



条件式は「0ならば偽」で、「1ならば真」。だけど、とにかく0以外なら真になる。

「n」と書いてある最初の値は10。while文の中では、sumなので、このwhile文はnが0になるまで繰り返される。よって、sumは

10,9,8,7,6,5,4,3,2,1と足されてゆく。


なるほど、なるほど。^ ^**





[Hello!.c]

#include <stdio.h>

int main(void){

  printf("%d\n", printf("Hello!\n"));

}




わからない問題が出てきたわ。^ ^;;

実行結果は、

Hello!
7

となります。Hello!が出てくるのはわかるのですが、7の意味がわかりません。

この7はなんでしょうか?

文字の数が7個でもないですし。@@;;

"%d\n"は実験的に置いたんです。式の作り方がおかしいのでしょうか?

どうすれば7が出てくるのかふしぎです。。。



その後、

[roka.c]

#include <stdio.h>

int main(void){

  printf("%d\n", printf("roka\n"));

}



自分の名前を打ち込んでみました。笑

結果は、

roka
5


でした。どうも一文字多い数字になるみたいです。

rokaroka; で認識されているのでしょうか?






C言語を覚えてなにをしたいのかというと


森とおしゃべりする機械をつくりたいの!笑

インスピレーションは、

遊佐未森さんの「ハルモニオデオン」という古いアルバムと、


ハルモニオデオン
ハルモニオデオン
posted with amazlet at 08.04.03
遊佐未森
Sony Music Direct (2006-12-13)
売り上げランキング: 29932
おすすめ度の平均: 5.0
5 前作『空耳の丘』と並ぶ代表作。
5 変わらないもの











藤枝守さんのクラヴィコードの植物文様


藤枝守 クラヴィコードの植物文様
藤枝守
Milestone Art Music (2008-03-26)
売り上げランキング: 3039



大の遊佐さん好きなわたしですが、「ハルモニオデオン」は森としゃべる

イメージそのものです。^ ^*

中学生のときに買ったアルバムで、いまだに聴いているんです。

なかなかこんなひといないと想うのですが。笑

藤枝守さんは、植物の声をCDにしたひとです。

と、いっても電子音なんですけどね。

はじめからおわりまで「きゅるきゅる。きゅるきゅる。」こんな感じです。笑

植物の中に流れている微弱電流の波形を音にしたそうです。^ ^*

わたしもわたしらしい方法でなにかそのような機械をつくりたいと想いました。

できればレトロな感じの小型ラジオのようなデザインでね。

(デザインのほうがどんどん沸いているのですが。苦笑)

PCのソフトじゃなくて機械がいいんです。^ ^*

あったかい感じのするような、夢見ごこちな機械。^ ^**

最近そういうものがなくなったようにも想います。

わたしの中でこれはビッグプロジェクトなんです。笑

想い立って、ソフトのほうはC言語が必要だろうと想ったわけです。

デザインはデザインでどんどん考えてゆこうと想っています。



水晶には、霊性が宿るとかよく聴きますね。

つくった機械の中にはいっているプログラミングがその種のものになると

おもしろいなって妄想しています。^ ^*





Emacsのヘルプを一通り読んで、試してみたの。

これは、なれると手早くていいかもしれないと想った。^ ^*

いままで使ったことがないような感覚です。

わたしの中ではすごく新しい!^ ^*

だけど、一晩眠ると覚えたショートカットがこんがらがってしまいそうです。笑

イントロの段階でこれだけ覚えることあるのか......。

もっと深く知ろうとすると、とんでもなくマニアなソフトという気がする。



入門 GNU Emacs 第3版
入門 GNU Emacs 第3版
posted with amazlet at 08.04.03
Debra Cameron James Elliott Marc Loy Eric Raymond Bill Rosenblatt
オライリー・ジャパン
売り上げランキング: 6709
おすすめ度の平均: 5.0
5 GNU Emacs/Mule
5 チュートリアル以後



ということで、興味深々になったわたしは、Emacsの本でおそらく一番有名なこの本を買ってみました。

当分、はまりそうな予感がします。^ ^;;

指がつるかも......。苦笑






C言語を勉強しているうちにemacsを使いたくなったのね。

さて、使おうかと想ったら、テキストエディタみたいに簡単じゃないの。苦笑

まず最初にTABキーを押しても反応がないんだもん。びっくりした。^ ^;;

それでネットサイトを見て、これは良さそうと想ったところから拝借。

以下をファイル「.emacs.el」に記述して保存。

なんとなく使いやすくなりました。ソースコードの色わけもしてくれるようになりました。^ ^*




(set-language-environment 'Japanese)
(set-default-coding-systems 'utf-8-unix)
(set-terminal-coding-system 'utf-8-unix)
(set-keyboard-coding-system 'sjis-mac)
(set-clipboard-coding-system 'sjis-mac)
(setq-default buffer-file-coding-system 'utf-8)
(prefer-coding-system 'utf-8)

(setq load-path (cons (expand-file-name "~/.emacs.d") load-path))
(server-start)

(setq c-tab-always-indent t)
(setq default-tab-width 4)
(setq indent-line-function 'indent-relative-maybe) ; 前と同じ行の幅にインデント

(setq mac-allow-anti-aliasing nil)  ; mac 固有の設定
(setq mac-option-modifier 'meta) ; mac 用の command キーバインド
(mac-key-mode 1) ; MacKeyModeを使う

(global-set-key "\C-x\C-i" 'indent-region) ; 選択範囲をインデント
(global-set-key "\C-m" 'newline-and-indent) ; リターンで改行とインデント
(global-set-key "\C-j" 'newline)  ; 改行

(global-set-key "\C-cc" 'comment-region)    ; C-c c を範囲指定コメントに
(global-set-key "\C-cu" 'uncomment-region)  ; C-c u を範囲指定コメント解除に

(show-paren-mode t) ; 対応する括弧を光らせる。
(transient-mark-mode t) ; 選択部分のハイライト

(setq require-final-newline t)          ; always terminate last line in file
(setq default-major-mode 'text-mode)    ; default mode is text mode

(setq completion-ignore-case t) ; file名の補完で大文字小文字を区別しない
(setq partial-completion-mode 1) ; 補完機能を使う

;; スタートアップメッセージを非表示
(setq inhibit-startup-message t)
(if window-system (progn
; ツールバーの非表示
(tool-bar-mode nil)))






[123456789.c]


#include <stdio.h>

int main(void){
  int a, b, c;

  for (a = 10000; a < 100000; a++){
    for (b = 10000; b < 100000; b++){
      c = a * b;
      if (c == 123456789){
        printf("%d × %d = %d\n", a, b, c);
        break;
      }
    }
  }
}



実行結果は

10821 × 11409 = 123456789
11409 × 10821 = 123456789
51083 × 86495 = 123456789
86495 × 51083 = 123456789

となりました。^ ^*

なかなかおもしろいです。^ ^*




最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Techonrati

Technorati search

» リンクしているブログ

2008年4月

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30      

ウェブページ

Powered by Movable Type 4.1