1 :
名称未設定 :
03/03/25 19:16 ID:zUUnltG3
2 :
名称未設定 :03/03/25 19:16 ID:JbTbRPaT
2get
3 :
名称未設定 :03/03/25 20:22 ID:AVP9mnoJ
age
4 :
名称未設定 :03/03/25 20:34 ID:rWLL1HtJ
プログラミング板いけ
5 :
名称未設定 :03/03/25 21:25 ID:SxxEGmtj
Objective-C のみに関するスレなら賛成だけど、 C 言語のみじゃぁ・・・・
>>4 の意見に賛成だな、俺は。
6 :
名称未設定 :03/03/25 21:25 ID:P1c5VG2Q
本屋さんで売っている Objective-C の本が C の知識を知っているのを前提で書いてるのであって、 C を知らなくても Objective-C は勉強できるかなと思ってる。 (かもいう私も C から勉強したわけだが)
7 :
名称未設定 :03/03/25 21:48 ID:xETETBNF
Hello World!
8 :
名称未設定 :03/03/25 22:10 ID:SxxEGmtj
>>1 さんは、プログラミング暦はどれくらいなの?
9 :
名称未設定 :03/03/25 22:19 ID:5dG/xUVQ
Hello World!に始まってHello World!に終わる。 要は挫折しますた。
10 :
名称未設定 :03/03/25 22:20 ID:SxxEGmtj
11 :
1 :03/03/25 22:50 ID:zUUnltG3
今のところ3年(所詮REALbasic)ですが、Objective-Cを見据えてC言語に切り替え中なので1年未満です。 確かにObjective-Cだけ取り上げればいい話なのかもしれませんが、私がObjective-C関連の書籍を見た限り、ある程度C言語の概念が分かってないと挫折するのではないかと思っています。C言語の延長線上にObjective-Cがあるわけですから。 また、Mac(ここではOSX)におけるC,C++,Objective-Cの開発環境はWindowsなど(UNIX,Linux除く)と違いますから、あくまでもMacで勉強・開発するという事でMa板でたてたのです。
12 :
名称未設定 :03/03/25 22:54 ID:P1c5VG2Q
じゃあ、ここは Cocoa + Objective-C をするにあたって、 さしあたって C言語 について復習するスレ? それとも Carbonアプリを作るために C を使うの?
13 :
1 :03/03/25 22:56 ID:zUUnltG3
追加ですが、OSXになりUNIX系列のOSになったわけで、C言語で書かれたプログラムがちゃんと実際にプログラムとして動作する(Terminal上ですが)環境が整ったのです。 CだけではGUIアプリケーションの開発は難しい(OSXでは出来るのでしょうか?)とは思いますが、CUIプログラムとして動く訳で、そういった面では勉強しても無駄にはならないと思いますが。
14 :
名称未設定 :03/03/25 22:57 ID:P1c5VG2Q
>>13 じゃあ、Terminal を使って 標準C を勉強するんだね?
15 :
1 :03/03/25 22:58 ID:zUUnltG3
>>12 基本的にObjective-CへステップアップするためにC言語を勉強・復習するスレです。
Carbonの話をされてもかまいません。
16 :
名称未設定 :03/03/25 22:59 ID:9pmY/zF7
正直、このスレ助かります。
17 :
名称未設定 :03/03/25 23:01 ID:gn5fA66l
Objectiv-Cを理解するためにC言語の基礎の勉強をし、 そのためにUNIXとしての環境を利用するという事であればMac板に存在する必要がない気もするね。
18 :
1 :03/03/25 23:00 ID:zUUnltG3
>>13 Terminalでgcc,ccコンパイラをもしくはproject builderを使用してANSI Cを勉強したいと考えています。
19 :
名称未設定 :03/03/25 23:01 ID:fLv7YeUW
>>11 >C言語の延長線上にObjective-Cがあるわけですから。
Objective-C ってさ、言ってみればc++ のアンチテーゼみたいなもんで、
c++ ってのは、C 言語 の延長線上にオブジェクト指向の言語を構築したわけで。
確かに、Objective-C で書きづらい処理をC 言語で書くってのは有効だろうけどね、
だからと言って、「C言語の延長線上にObjective-Cがある」というのは
ちょっとあまりにも間違った理解ではないですか ?
C言語の熟達度と、Objective-C 習熟度ってあんまし関係ないように思うし。
20 :
名称未設定 :03/03/25 23:02 ID:w1oSPfFj
Cの考え方ってオブジェクト指向にじゃまな感じしない? シンタックスとかじゃなく組み立て方として。 変な知識あるよりObjective-Cをいきなりやった方が 良いような感じがするんだがどうよ?
21 :
名称未設定 :03/03/25 23:04 ID:rWLL1HtJ
というかC言語自体は特定のOSのために作られたわけではないのでMac板でやる意味がない。
22 :
名称未設定 :03/03/25 23:05 ID:fLv7YeUW
23 :
名称未設定 :03/03/25 23:06 ID:fLv7YeUW
>>21 このスレタイがむずいわけは、それだ !!
24 :
名称未設定 :03/03/25 23:07 ID:P1c5VG2Q
>>20 でも、ポインタを知らずにやるのはきついという気はした。
それから、メモリの解放を手動でやるってのも最初は理解できなかった。
(私は Java から始めたので……。)
25 :
名称未設定 :03/03/25 23:09 ID:YL9i4ci/
>>21 んじゃCoreFoundationとかDarwin関係を掘り下げていくってスタンスでどうよ?
26 :
1 :03/03/25 23:11 ID:zUUnltG3
>>19-20 確かにC言語とオブジェクト指向のObjective-Cを考えれば考え方に大きな違いはあると思います。
Cを拡張したという意味では問題ないかと思います。
「独習Objective-C」という本があればこんな物は作りません。現状のObjective-C本を理解するのにC言語の知識が要求される以上、あって損はしないと思います。
>>21 基本的にUNIXと親和性は高い訳で、Mac(OSX)でやっても良いのでは無いかと思います。
かといってOSXはUNIXと違う所もあるわけですから。
27 :
名称未設定 :03/03/25 23:16 ID:w1oSPfFj
>>24 それもObjective-Cの中で勉強すれば良いんじゃないかな?
おれはBasicから初めたんだけど最初はでっかいMain()つくっちゃたし。
無駄とは言わないけどもしObjective-Cを将来やりたいならCのプログラムの組み立て方
が身に付く方が恐いかなと。
28 :
名称未設定 :03/03/25 23:16 ID:rWLL1HtJ
いや、だからさ、Objective-Cに進むためのステップとして C言語を学ぶなら、おのおののOS(ここではMac OS)を掘り下げても しょうがないわけよ。 C言語のキモなんて、 ・変数 ・ポインタ参照 ・typedef ・関数と戻り値 これだけ分かってたら十分。 C言語の知識をもとにしてその他の言語に進むのも簡単になる。 これくらいのこと、どんな出来の悪い参考書でも理解できるでしょ。
29 :
名称未設定 :03/03/25 23:19 ID:P1c5VG2Q
>>28 いやいや……
ポインタが分かってない奴はそこらへんにごろごろ………
30 :
名称未設定 :03/03/25 23:20 ID:w1oSPfFj
31 :
名称未設定 :03/03/25 23:21 ID:fLv7YeUW
>>29 "ポインタ参照と配列" をきちっと例を挙げて説明できないヤシってことね w
32 :
名称未設定 :03/03/25 23:22 ID:fLv7YeUW
>>30 「Mac と ポインタ」
なんでだろ ?
33 :
名称未設定 :03/03/25 23:22 ID:P1c5VG2Q
ここは純粋に C言語について語るスレみたいなんで、 姉妹スレに 『MacでJava言語』・『MacでC++言語』・『MacでObjective-C言語』を誰か作ってください。
34 :
名称未設定 :03/03/25 23:25 ID:dTHk1QXm
そういえばcarbonスレって無いな。
35 :
名称未設定 :03/03/25 23:26 ID:/4cBbFIV
36 :
名称未設定 :03/03/25 23:26 ID:zUUnltG3
>>30 ポインタだけやってもしょうがないでしょう、C言語自体まだ勉強中の人がいるわけですから。
>>28 中級言語ならOSを理解しなければ話になりません。
スポーツじゃないのですから、習うより慣れろは挫折の最短ルートです。
それは低級言語だろうと高級言語だろうと変わりません。
37 :
名称未設定 :03/03/25 23:28 ID:rWLL1HtJ
んで結局、ここはポインタが理解できないマカが傷をなめ合うスレということでいいですか? どうでもいいけどポインタが分からん奴は68000のアセンブラとかから勉強してみるといいぞ
38 :
名称未設定 :03/03/25 23:30 ID:rWLL1HtJ
>>36 アホですか?
文章よめないんですか?
Objective-CというかCocoaでMacのGUIなアプリを作るなら
OSを理解する(というかAPIで何ができるかを知る)ことは重要だけど
それ以前のC言語の概念を理解するのに、OSなんて関係ない。
システムコールだのレジスタだのは、十分条件であって必要条件ではない。
39 :
名称未設定 :03/03/25 23:32 ID:yEd3WzIz
FM7探してきてまずは6809からw
40 :
名称未設定 :03/03/25 23:32 ID:dTHk1QXm
まあまあマターリしろよお前ら。
41 :
名称未設定 :03/03/25 23:34 ID:xETETBNF
main() { char *p; p="イッテヨシ"; printf(%s\n",p); }
42 :
名称未設定 :03/03/25 23:34 ID:73fOliux
>>40 いやもっと激論しろ!
けんか腰で.
あほですか?とかは効果的.
43 :
名称未設定 :03/03/25 23:36 ID:Ltj/Zi3D
c言語についてはいっぱい参考書なりホームページがあるから、 個人的にはMacのtoolbox講座みたいなのをやってくれ!
44 :
名称未設定 :03/03/25 23:37 ID:P1c5VG2Q
どうやら、みんなの このスレに期待する思惑は違うみたいだ。 それより姉妹スレ作ってよ……。
45 :
名称未設定 :03/03/25 23:38 ID:rWLL1HtJ
46 :
名称未設定 :03/03/25 23:38 ID:zUUnltG3
>>38 C言語&Objective-Cを使ってマックで開発する時に必要なMacOSの知識、プログラム板やUNIX板では得られない情報を包括して勉強したいのであって、単純にC言語を勉強しようとは言っていません。
プログラムに関する知識不足、認識不足はある程度認めますが、アホだの言われる筋合いはありません。
47 :
名称未設定 :03/03/25 23:40 ID:rWLL1HtJ
じゃあ簡単に言おう。 そんなことでくじけるようじゃ君には無理。 賛同者→(1)
48 :
名称未設定 :03/03/25 23:44 ID:xETETBNF
いつか役に立つ時がくるだろうと思って昔買っておいた 凸版のマッキントッシュCプログラミング I巻 MYCOM 進めコードウオーリア MYCOM もっと進めコードウオーリア の3冊が本棚に眠ったままになっているのですが、 これで勉強してまだ役に立つことありますかね? クラッシクアプリしか作れないような気が…
49 :
名称未設定 :03/03/25 23:44 ID:hXiKFiky
50 :
名称未設定 :03/03/25 23:45 ID:hXiKFiky
51 :
名称未設定 :03/03/25 23:46 ID:hXiKFiky
52 :
名称未設定 :03/03/25 23:47 ID:hXiKFiky
53 :
名称未設定 :03/03/25 23:48 ID:hXiKFiky
54 :
名称未設定 :03/03/25 23:48 ID:fLv7YeUW
>>1 「Macでプログラミング」スレがあって、それなりにC言語がらみの議論になっているのに
なぜに類似スレが必要ですか ?
55 :
名称未設定 :03/03/25 23:50 ID:73fOliux
56 :
名称未設定 :03/03/25 23:51 ID:hXiKFiky
57 :
名称未設定 :03/03/25 23:51 ID:hXiKFiky
58 :
名称未設定 :03/03/25 23:51 ID:hXiKFiky
59 :
名称未設定 :03/03/25 23:51 ID:rWLL1HtJ
そりゃヘッダファイルをインクルードしてないからエラー出るだろー
60 :
名称未設定 :03/03/25 23:52 ID:hXiKFiky
61 :
名称未設定 :03/03/25 23:52 ID:xETETBNF
スマン 訂正しとく printf("%s\n",p);
62 :
名称未設定 :03/03/25 23:52 ID:hXiKFiky
63 :
名称未設定 :03/03/25 23:52 ID:hXiKFiky
64 :
名称未設定 :03/03/25 23:53 ID:hXiKFiky
65 :
名称未設定 :03/03/25 23:53 ID:6bjo1MOI
午前0時まで休戦ですか?
66 :
名称未設定 :03/03/25 23:53 ID:p5l1ihcg
>>46 > C言語&Objective-Cを使ってマックで開発する時に必要なMacOSの知識、
> プログラム板やUNIX板では得られない情報を包括して勉強したいのであって、
そんぐらいgoogle使えよ。英語読めるだろ?
67 :
名称未設定 :03/03/25 23:53 ID:hXiKFiky
68 :
名称未設定 :03/03/25 23:53 ID:hXiKFiky
69 :
名称未設定 :03/03/25 23:55 ID:73fOliux
ID:hXiKFiky こいつ他スレでいじめられてた奴だろw
70 :
名称未設定 :03/03/26 00:01 ID:ym+femho
71 :
1 :03/03/26 00:03 ID:drTCnFW6
>>66 I'm a pen.ぐらいなら分かります。
>>ID:hXiKFiky
氏んでくれ
72 :
名称未設定 :03/03/26 00:11 ID:R9jsaCcC
>>71 I'm a pen !?
ね、ネタだよね……(って当たり前か……)
なんかあれてるな。 とりあずですが、プログラミングというのは言語にこだわる意味ってあまりないです。 Obj-CもJavaもポインタ理解してないと意味不明です。 一足とびになんでもやろうとするからぼろがでるのであって、なんでも基礎の つみかさね以外に実はみのらない物です。
74 :
名称未設定 :03/03/26 00:14 ID:RuSO2pR2
てことは、どういうこと?
75 :
名称未設定 :03/03/26 00:17 ID:J6IfjC+1
板違いってことだろ。
76 :
1 :03/03/26 00:19 ID:drTCnFW6
>>72 Certainly, Sir or Madam!
77 :
1 :03/03/26 00:24 ID:drTCnFW6
眠いので寝ます。 何かネガティブなご意見を多数頂ますが、返答出来れば明日のお昼頃またきます。 このスレがお嫌いな方は、明日のお昼までにDAT落ちするのを祈った方が良いかもしれません。
78 :
名称未設定 :03/03/26 00:33 ID:yz/ACMkM
>>73 で、Macで基礎をどうやって勉強したらいいのか、ってスレだと思うのですが。
79 :
名称未設定 :03/03/26 00:48 ID:J6IfjC+1
だからOSXでいいじゃん。
80 :
名称未設定 :03/03/26 00:58 ID:QmqtHnEn
>>79 うん、そうだ、スレタイが「Mac OS X で C 言語」ならまだ分かる。
改めて
>>1 を読んだが、「OS X」と一言もない。
Objective-C でのプログラミングを目指すなら、「OS X 限定」だとはっきり
させた方がいい。
81 :
1 :03/03/26 01:01 ID:drTCnFW6
おはようございます
>>79 OSXって限定で書くと「OS9以前の俺らはどうなるんだゴルァ!」と怒られるのが怖かったので、
曖昧にしてしまいました。ごめんなさい。
ではまたお休みなさい
82 :
名称未設定 :03/03/26 01:03 ID:yz/ACMkM
結局、C言語の入門書を買って、OS XのTerminal使ってCの基礎をみっちりやりましょうって事でOKですか? 昔独習Cを読んだはずなのだが何にも残ってねー。。
83 :
名称未設定 :03/03/26 01:04 ID:3Nl8rgfB
CでOSX固有のプログラム書くのも Obj-CのためにCを学ぶのも プログラマ板とかUNIX板にあるからなぁ
84 :
名称未設定 :03/03/26 01:05 ID:QmqtHnEn
>>81 でも、職人的プログラマ以外は、OS 9 でC 言語やるのって
ものすごく敷居高いでしょ ?
限定は極論かもしれないけど、"主にOS X でのC 言語ベースのプログラミングを"
あたりが無難ではないかな。
85 :
名称未設定 :03/03/26 01:28 ID:cjBdNoGu
>>84 そうか?
MPWで機能拡張作れとかいう難題以外は敷居が高いとは思えないけど。
86 :
84 :03/03/26 01:30 ID:QmqtHnEn
>>85 言い忘れた。
技術的な敷居ではなくて、金銭的敷居です。
87 :
名称未設定 :03/03/26 01:36 ID:ym+femho
88 :
名称未設定 :03/03/26 03:43 ID:z6o43fFD
>>84 MPWは技術的敷居は高いかもしれないが、ただだよ。
ていうか
>>1 はたとえREALbasicでもプログラムを数年やってたんなら
>>28 のいうキモ、特に
>>31 のいう「ポインタ参照と配列」の関係さえ押さえられれば
Cの理解は難しくないと思う。あとは、標準ライブラリとそれぞれの環境のライブラリを使うだけだし。
余談ですが、「2次元配列」と「ポインタのポインタ」の関係も難しいですね。
あるいはポインタのポインタを2次元配列として使おうとしたときのメモリ割り当て/解放なんかも
慣れてないとゴチャゴチャします。GCつき言語のjavaとかはこの辺楽ですからねぇ。
89 :
java勉強中素人 :03/03/26 03:54 ID:D5QQWu2A
言語の仕様覚えても、プログラムはかけないだろ Basicの経験なんて多分なんの役にも立たないよ
90 :
名称未設定 :03/03/26 04:21 ID:z6o43fFD
>>89 そうか?
俺は N88-BASIC -> Pascal と C を並行してって感じで覚えたんだが。
1つ言語を覚えているのといないのとでは全然理解が違うと思うよ。
92 :
1 :03/03/26 11:10 ID:drTCnFW6
BASIC出来てもCは出来ないですねぇ。 C勉強してつくづく思います。
93 :
名称未設定 :03/03/26 11:14 ID:3Nl8rgfB
そうか? BASICができればCに移行するのはずいぶん楽になると思うぞ。 X-BASIC -> XCとかだとなおさら簡単。
94 :
名称未設定 :03/03/26 11:52 ID:tvkd7UMq
結局このスレはどういう方向で進めるんですか? C言語OKだけど、Objective-C の質問もOK、でいくんですか? 結論はまだ先???
95 :
名称未設定 :03/03/26 12:18 ID:qqaGycSV
Objective-CってCのスーパーセットな訳だから 別にObjective-CのスレでCの質問して良いんじゃないの? ム板、マ板でこれやるのはまずいとは思うが。
96 :
名称未設定 :03/03/26 13:22 ID:V4V4O17e
良スレにしる!応援さげ。
97 :
名称未設定 :03/03/26 13:28 ID:Afhtjhbq
ファミリーベーシックもOK。
98 :
名称未設定 :03/03/26 13:52 ID:F2vt4wrS
>>94 どういう方向で進むかを議論するスレです。
99 :
名称未設定 :03/03/26 15:10 ID:fzfccC9i
Cのキモに、構造体も必要だろ。 あと、本を読むだけでは駄目だね。一番いいのは実践。 昔はポインタが、C言語最大の難関とか言われてたけど、そんな難しくない。 むしろ、なぜそんなことをする必要があるのか、ということを理解したほうがいい。
100 :
名称未設定 :03/03/26 15:34 ID:gPyd2mj0
REALbasicみたいなのからCへの切り替えで失敗する人は、 Cの構文やポインタが判らない、というより、 アプリケーションモデルを理解していなくて、 どう、コーディングしていいか判らない人ではなかろうか? てか、Cってそんなに難しい? むしろ仕様がコンパクトで簡単だと思うんだけど。
いやまったくその通り。 ギターのFコードみたいに、だれもが通る難関みたいに言われるのは心外。 プログラムがどうやって動いてるか分かってない証拠。 っていうか、「ポインタ」「ポインタ」って意味も分からず呼ぶから わけ分かんなくなるんだよなー 関数 変数 配列 構造体、共用体 ポインタ これが実際にどのような処理をしているか、これが分かれば恐いもの無し。 最近の人はスタックとかも知らない人多いんだろうなぁ スタックの概念を分かってる人とそうでない人とでは、理解の進み方が違うよ。
>>100 キャストはキモというよりは落とし穴だな。
うっかり忘れるとえらいめにあうというか。
104 :
名称未設定 :03/03/26 15:41 ID:gPyd2mj0
アセンブラというか言語がコンパイルされてどう動いてるかっていうことに関して 基本的理解があれば全く難しくないんだよね。 でも、最近はRbであったりVBであったり、そういうRAD環境みたいなところからはじめる人が多いから 最終的にどんなふうにコンピュータをコントロールしてるかより、 「こうしたらこういうダイアログが出て、こう動く」みたいな認識な人が多いんじゃないかと。 そういう理解しかない場合は、ポインタとか配列とか構造体とかは絶対つまづくよね。
メモリと機械語とCPUとレジスタとスタック ↑このあたりの概念を予習してからCを始めるのが 良いのかもね。たしかに。
106 :
名称未設定 :03/03/26 15:48 ID:gPyd2mj0
そうそう、俺の認識ではC言語って「機械語に毛が生えた」っていうか 「ちょっとだけ構造化した機械語」っていう感じで、あくまでコンピュータの基本的な部分が 分かってることが前提かなぁと。register識別子とかあるしね。
registerとかはあんまり意識しないけどなぁ 関数は入出力の仕様を定めたサブルーチンだし 構造体も変数も配列も共用体もただのメモリフィールドだし ポインタなんてアドレスそのものだし 正直、アセンブラから始めてC言語を勉強しはじめたときの印象は 「めんどくさいアセンブラ」って感じだった。 実際コンパイラやライブラリの仕様にプログラマー側が合わせてやる 必要が多かったのは確か。 でもC++をはじめとするオブジェクト指向言語まで高級化すると、 こんどはそういう初歩的な知識はかえって邪魔になるという面もあるね。 関数を「そういうものだ」と思っておけば、クラスの概念とかも案外 あっさり受け入れられたりする。
108 :
名称未設定 :03/03/26 15:59 ID:Bx7h8pDz
どういうスレにするのか結論は出ないのね。
109 :
名称未設定 :03/03/26 15:59 ID:b45pJjUR
なぜ、入門者にはちんぷんかんぷんなカキコですか?
110 :
名称未設定 :03/03/26 16:00 ID:gPyd2mj0
ここはC言語について語らうスレになったようです
だってさ ム板やマ板にいけばこんなスレいくらでも転がってるし C言語の基本である以上Mac特有のことなんか何もないし となれば雑談するしかないじゃん
オブジェクト指向は全く別に勉強した方がよいと思われ。 ていうかCはオブジェクト指向言語ではないので、 オブジェクト指向を勉強するのはCからC++かObjective-Cへ ステップアップする時で良いかと。 Objective-Cは、オブジェクト指向部分以外は、ほとんどCそのもの なので、オブジェクト指向入門には良いかも。 C++はなまじメソッド呼び出しが関数呼び出しの形式と似ているぶん、 初心者は誤解しやすいような。
てっきり勉強方法を初学者に教えるスレだと おもっていますたが・・・・。
cでアプリ作ってて最も困ったのが変数の型がいっぱいあること。 同じ2バイト変数なのに、「これはこれに変換できない」って言われてつまづいたよ。 あとは構造体のメンバのアクセス方法が分からず、先頭のアドレスから何バイト目を取り出すとかやってたYO。 あとは文字列の扱いがポインタより難しかった。
>>112 =113
>C++はなまじメソッド呼び出しが関数呼び出しの形式と似ているぶん、
>初心者は誤解しやすいような。
あーそれ言えてる。
Obj-Cの大括弧とコロンには萌える。
>てっきり勉強方法を初学者に教えるスレだと
漏れも最初はそう思ってたけど
べつにMacならではの勉強法があるわけでもないと気付いた
>>111 >となれば雑談するしかないじゃん
>>1 は高尚な理念をお持ちのようだが w
117 :
名称未設定 :03/03/26 17:51 ID:tvkd7UMq
自分がMac OSでCやった時は、しばらく独習Cのサンプルいじったりして、 それから2分冊のMacのプログラム書かれた本(タイトル忘れた)とかを参考にして プレーンなウインドウに時間を表す文字列を一秒ごとに書いては消すようなデジタル時計を作った。 C言語の仕様は全然わかってなかったと思う。今でもポインタわからんす。柴田さんの本とかも買ったなあ。。 ToolBoxについても何ができるかについてだけ、本に描いてある事を見ながら利用しただけ。 んで、どうしたら画面のチラつき抑えられるかとかぜんぜんわからんかったす。 フローティングウインドウにする方法がわからんかったんでそこでストップしました。 使ったソフトはCodeWarriorですが、今思えばろくに使えもせんのに バージョンアップのたんびにばかみたいに金貢いだもんです。(最初は学生版から)
119 :
名称未設定 :03/03/26 19:07 ID:PCSTXaaT
マックの人たちにはベーマガはあまり関係ないですか?
120 :
名称未設定 :03/03/26 19:11 ID:DJjQ8ktL
厨房の頃よく買ってたな。なくなってしまうのはさみすぃ。
ベーマガ無くなるの? 今は読んでないけど、なくなるのは寂しいな
122 :
名称未設定 :03/03/26 20:29 ID:tvkd7UMq
本当に休刊するんですねぇ>ベーマガ ベーマガには本当にお世話になりました。
ベーマガに出てるプログラムを東武百貨店のパソコンコーナのPC-8001に 打ち込んでたなぁ。 走らせるまでには至らなかったが...。 間違ってたんだろうけど、それが何処なのかが分からんかった(;´Д`) あの時だな...プログラムなんて漏れには無理だと思ったのは(w
124 :
名称未設定 :03/03/26 20:58 ID:tvkd7UMq
小学生の頃、SHARP のパソコン(機種名は忘れた)で、こんなプログラムを組んでました。 10 バット = " - " 20 ボール = "●" 30 ナゲル ボール 40 ウツ バットデボールヲ ・・・・ 今考えたら、ワケワカラン!
MZ-80シリーズかな。 日本語BASICってのがあったようななかったような…
そういえば、漏れ、電気屋の店先に置いてあるのが ぴゅう太だと気付かないまま、PC8001のリストを必死に 打ち込もうとしたことあたーよ。 どうしてうごかないんだろ、って・・・・・(つД`)
学研のまなぶくんにMSXのソフトぶち込んだら動いてMSXだったのかーと気付いた遠い昔の日。
128 :
名称未設定 :03/03/26 21:10 ID:tvkd7UMq
みんなこうやって、BASIC言語を知っていき、覚えるんだよね。
いつのまにか昔のPC@新・Mac板になってますな・・・・。
ObjCにC++のどこでも変数宣言とデフォルト引数と 演算子の多重定義があれば天国なのになぁ〜
131 :
名称未設定 :03/03/26 22:00 ID:NNk8fDCt
なぜ、MZ-80、ぴゅう太、PC8001、MSXなどと、さかのぼりますか? だから、うちのX1にFUJIのMD2Dがカビもせず刺さりっぱなしですか?
まあモトローラ、ザイログ系つながりだし
133 :
1 :03/03/26 22:40 ID:drTCnFW6
>>111 実際にプログラムを勉強すれば自ずと違いが分かりますよ。
>>117 別に判定する権限は私にはありません。
? 漏れがプログラムを実際に勉強してないってこと? 1も見る目がないな
>>133 =1
>『C言語の基本』である以上Mac特有のことなんか何もないし
Mac特有という時点で、『C言語の基本』ではないので、111はそういったのでは。
そもそも、このスレの確固たる目的が無い。曖昧すぎる。
ANSI Cを勉強するスレなのか、
Mac特有のC言語の記述(若しくはCarbon, ToolBox)を勉強するスレなのか。
もちろん、前者は、板違いになる気がするし、マ板やム板へ行けば良い。
だから、今の流れ(雑談ちっく)になってしまっているのではないか。
(そういえば、CodeWarriorでObj-C書いて、OS9用にコンパイルできるんだろうか。
というか、できてもそれはやる意味あるのだろうか。CWやPB使ったこと無い素人だから分からんが…)
136 :
名称未設定 :03/03/26 23:18 ID:Qp1kBW3m
>>1 (Rbは扱えると仮定して)
Cを使って何をしたい(作りたい)の?
何か問題があるから、他言語に切り替えたいのでは?
137 :
名称未設定 :03/03/26 23:26 ID:Lbl/l3J9
コボル コボル コボル〜 コボルに染まると〜 あたま あたま あたま〜 頭が腐るよ〜 さあ〜 さぁ、みんなで〜 コボルを捨てよう〜 地獄がコボルを〜 待っている〜
138 :
1 :03/03/26 23:45 ID:drTCnFW6
>>134 不快でしたら謝ります。
>>135 ANSI Cだけと言うと「プログラミング板逝け」になりますし、
ToolBox&Carbonですと「Objective-Cの板でやれ」になり、
どのように定義するかについて悩んだのは事実です。
>>136 REALbasicは昔からBASIC知っている人が使いこなせると言う感じで、
初心者が1からやって10まで出来るという環境に無いんですね。
何せ資料が少なくて。
難しいのを承知でCに転向しました。
出来ればゲームを中心に作れればと思って勉強しています。
139 :
1 :03/03/26 23:46 ID:drTCnFW6
>>138 訂正
ToolBox&Carbonですと「Objective-Cだけでいい」になり、
FutureBasicという選択肢もあるわけだが、 どうも最近仕様がハチャメチャで・・
>>138 ,139を読んでみても、
>>1 がこのスレで
何について語り合いたいのか掴めない。
「ゲームを作りたいんだけど何をしてよいかわかりません。」
という超初心者ですか?
もっと具体的に、キーの取得法とか、グラフィックの描画とか
そういうCocoaに寄ったことが聞きたい?
それともゲームでこういう処理をさせる場合にはどんなアルゴリズムを
用いればよいかわからないとか・・・・。
「MacでC言語」というスレタイで何をやりたいのか見えてこない。
142 :
名称未設定 :03/03/27 01:09 ID:cArYV3AL
>>138 昔からBASICを知っている頑固親父だって
福山雅治のマネをする人似の息子に教わりながらやってんだよ?
1から10まで出来ない?
繰り返して繰り返して裾野をしっかりと丈夫に広げろや!
ついでに捨て石もその下に敷き積めとけな。
その上に一寸ずつ覚えたことを重ねとけ。
資料?
調べて試してどうしても解らないときは
聞け!聞け!聞いて聞いて聞きまくれ!!!
解決したらありがとうを言え!
困ってる人がいたら、知っていることは役に立て!
礼は期待するな!!!
煮詰まったら、よく寝ろ!よく寝ろ!よく寝ろ!
そして何より、楽しめ〜!楽しめ〜!楽しめ〜!
PBにRbみたいな、補完機能!補完機能!補完機能!
FutureBasicって、C言語の英語をBASICでなじみのある英語に置き換えただけって感じで、 ちょっとこったことをしようとするとToolBoxが標準で使えなかったり、中途半端過ぎ。 FutureBasicやるぐらいならCの方が良いと思うぞ。 FutureBasicは昔風の行番号付きで(一応出来るけど)、インタープリタ型でMSXみたいな感じだったら良かったと思う。
OS XならProject Builderで決まりです。 標準でもC,C++,Objective-C,Java,AppleScriptから好きに選べます。 TerminalからならPerlやRubyも標準装備。 Cocoaぶりっぢの類いを入れると、PerlやRubyをCocoaで利用できたり。 夢のようです。
>>144 そうなんだ・・・。Project Builderで、Cでもいいんだ。
漏れは、Rbで遊んでた程度なんだけど、「Cocoaはやっぱり」を見たら
C言語知らなきゃ、無理なんて書いてあったのでめげてた所です。
で、C言語については、参考書を見ればわかると思うんですが、
Project Builderの扱い方なんかは、「Cocoaはやっぱり」なんぞを
参考にする・・・なんて感じでやれば、いけるんでしょうか。
146 :
名称未設定 :03/03/27 09:40 ID:Kz/X2l1q
このスレを読んでたら、なにがなんだかよく分からなくなってきた。 ま、マターリとやっていこうっていう事なのかな?
>>145 PBの扱い方っていうか、Cocoaの部品(クラスっつーの??)について知らないといかんやろね。
Cから使えるんやろか?
ちなみに、Terminalから実行するようなベタなCもPBでビルドできる。gcc使ってるだけと思う。
> Cから使えるんやろか? 素直にObjective-Cを使えば? [ object message ]; や、 [ object message1: parameter message2: parameter ]; のようなメソッドの呼び出し方と、 クラス定義のヘッダファイルの書き方だけ憶えれば、 あとは普通のCとほとんど変わらないんだし。 Objective-Cを回避する理由がわからん。
>>143 ポインタやキャストで悩まなくていい分ラクではあるんだけどね。
過去の遺産を捨ててスパっと新しい仕様で出してくれないかなぁ。
>>144 だからC言語は十分に習得しやすい言語だから
これができないんだったら諦めたほうがいいっていうのが
経験者からのアドバイスなんだが?
「C言語が必要らしいからめげそう」って
やる気がないのかと思っちゃうよ。
Perlが分からないとダメらしいのでCGIは諦めました
Excelが分からないとダメらしいから就職諦めました、ってか!?
おめでたい奴だな。
>>148 まあ、無理にクラスライブラリであるところのCocoaを使わなくても、
直接C言語でAquaの(?)APIの関数を呼べばC言語で動かせなくもないけど。
むしろそっちのほうが無理に使ってる感が強いけどw
JavaだったらCocoa使わなくてもGUI作れるんですよね。
JavaにはJavaのGUIフレームワークがあるから、Cocoaの 代わりにそれを使う手もある。 JavaからCocoaを使う方法も用意されているから好きな方を使えば? Macプログラミングという面ではCocoaに慣れておけば、他の言語 (Objective-CやC++やAppleScript)に移った時に知識を使いまわせる 気がするけど、MacでJavaの勉強したい、とかならJavaのフレームワーク 勉強した方が良いような気がする。
どっかのサイトにあった、Java製で先行者が主人公のアクションゲーム見て、 Pure Javaっつーのもすげーもんだなと思いました。
155 :
名称未設定 :03/03/27 22:00 ID:z7wQcilf
156 :
145 :03/03/27 22:04 ID:vxR+3Q3T
>>147 どうもです。
自分は、Cocoa(objective-C)でプログラミングをしたいなあ・・・と思っていて、
「Cocoaはやっぱり」なぞを見て、C言語の必要性がわかったのですが、
どんなアプローチからはじめるのが一番いいのか、わからなかった所なんです。
144のカキコを見て、Project Builderで C言語のお勉強をできれば、
ベストじゃん、と思って145のカキコになったわけです。
しかし、皆さまのお話から察するに、Project BuilderでCを使うのは
特殊な方法のようですね。
>Terminalから実行するようなベタなCもPBでビルドできる。gcc使ってるだけと思う。
うーん、私にはこのようなことが、何となく意味はわかるのですが、
具体的にどうすれば良いかがわからないレベルなんです。
で、このスレを読むとTeminalでC言語がお勧めなようなのですが、
これは、Unixを覚えながらって事になるのでしょうか。<そんなこと自分でしらべろ!!泣き>
>>151 >「C言語が必要らしいからめげそう」って
>やる気がないのかと思っちゃうよ。
ご叱責は、私に対してのものだと思いますが、めげていたのは、
前述の通り、C言語の開発環境づくりの敷居が、私にとって高かったからです。
Code Warriorを買うしかないのかな・・・とか、windowsでした方がいいのかな・・・
とか、思い悩んでいたんです。無知ですが、やる気は十分あるので、ご容赦ください。
157 :
名称未設定 :03/03/27 22:10 ID:z7wQcilf
>>156 うっかり買ってしまう
-> 無駄になってしまうのがもったいない
-> ひっこみがつかなくなる
-> やる気が持続する
というパターンもあります。CWを買った場合。
まぁ…UNIXというかコマンドシェルの使い方は ある程度知らないと使えないとは思うけど そんなのC言語を学ぶことに比べれば屁みたいなもんだ なにより文字列を表示しようとした時に、printfでサクッとコンソールに 表示されるのは重要だし。
>>156 特殊もなにもProject BuilderでCでコマンドラインツールを
作るのもまっとうな使い方の一つだと思われ。
PBでコマンドライン版Hello, WorldをCで組むとこから
始めてみたら?
160 :
初心社 :03/03/27 22:23 ID:K/EqRt+a
>>156 僕も腰が抜けるほど初心者なんですが、一応お答えを。(C言語勉強暦、約1週間)
まずなにはなくともDeveloper Toolsをインストールする。するとTerminalで
ccというコマンドが使えるようになります。これはC言語で書かれたプログラムの
ソースコードを、実行可能形式のファイルに組み立てるコマンド。Rbで言うところ
の「アプリケーションのビルド」にあたると思います。
ソースコードは『mi』というソフトウェアで書いています。
ttp://www.asahi-net.or.jp/~gf6d-kmym/ 書いたものを拡張子「.c」で保存して、Developer Toolsインストール済みの
環境のTerminalでそれを「cc」すれば、カレントディレクトリに実行可能形式の
プログラムが出力されるので、それをまたTerminal上でテストする、という感じ。
Terminalの使い方については、こういう所で初歩の初歩的なことだけ覚える
必要があると思います。
ttp://www.tokaido.co.jp/syoko/index.html 『独習C』を51ページまで読んだ段階の、超初心者の感想としては(笑、
Terminalでは「cd, mv, ls」辺りのコマンドの使い方が理解できれば十分です。
たぶんTerminalの初歩の初歩だけを会得したいんだったら、2時間もあれば
理解できると思います。もちろんそんなハリボテの知識ではそのうち困る事に
なると思うんだけれど、まずは気軽に始めてみるのが大事なんではないかと。
>>156 ,
>>160 Project Builderに新規プロジェクトで、Toolの下のStandard Toolを
選ぶのでは駄目なのか?
# プロジェクト作った時点でHello, Worldの雛形が出てくるわけだが。
162 :
初心社 :03/03/27 22:32 ID:K/EqRt+a
>>161 もちろんそれが手っ取り早いと思うんですが、
なんとなく最初は苦労しておいた方が良いような気がして
わざわざmiを使ってます(笑
しかしこれまでRbを使っていた方なら、そっちの方が
断然やりやすいかもしれないですね。
PBを使ってやるのと、エディタを使ってやるのとでは文字コードが違った気が。 Terminalで日本語表示できるもの作ろうと思ったら、PbでRUNした時日本語文字化け。 逆も同じ。
デバッグ時はPBのファイルエンコーディングを日本語(MacOS)にして、 PBから実行。 最終ビルドの時に、PBのファイルエンコーディングを日本語EUCにして、 実行結果はTerminalで確かめる。 というやり方をしておりますた。 ターミナルからccでコンパイルした事ないや・・・。
>>162 はっきり言って、漏れはそれは無駄な苦労だと思ふ。
makeやgdbを覚えるのは言語覚えた後でも遅くない。
ただPBでもgdb使わないと色々見れないけど。
166 :
初心社 :03/03/27 23:14 ID:K/EqRt+a
>>165 うーんむ。やっぱそうすか? いや、別に固い決意があってmiを使ってるとか
いうわけではないんで、PB使った方が圧倒的に後々のためになるとアドバイス
頂けたら、平気でそっちに寝返るつもりなんですけども……。
ただ、PBを使わないのは、ビルドした時にフォルダ内に3つも4つもファイルが
生成されるのを目にして、「…なんか、大げさなような…(汗」という初心者の
怯えもありまして。だって僕がいまやってるのなんて、
みかんの値段を入力セヨ:
何個食べたいのか入力セヨ:
税込み? 税抜き?:(1.税込み/2.税抜き)
合計金額は「 」円ダヨ
程度の、小学生レベルのプログラムですので……。
もうちょっと作業効率とかを真剣に考えた方が良い時期にきたら、
PBに手を出してみようかなぁ、とぬるく考えておる所存であります。
>>166 今後、Mac OS Xのアプリケーションソフトを作ってみたいなら、
その計算プログラムをProject Builderで作り直してみるの
も良いかと思われ。
168 :
145 :03/03/27 23:46 ID:vxR+3Q3T
皆さま、貴重なご意見ありがとうございます。
おかげさまで、視界が開けました、
>>157 とりあえず、Code Worriorは買わずに済みそうです。
>>159 ・161
おー、コマンドラインなら、使えるんですね。
さっそく、いじってみたら、Hello worldがあらわれました。
PBって、ただのくせに、いたれりつくせりですね。
これを、使えば、とりあえずCのお勉強はオッケーなのかな。
Interface Builderを使うのは、Objective-Cに移行するとき
って考えとけばいいんですよね。
>>157 >そんなのC言語を学ぶことに比べれば屁みたいなもんだ
そのお言葉に応えるべく、さっさと覚えます。(一応参考書は持ってます)
>>160 具体的なアドバイスどうもです。とりあえず両方ともいじって見るつもりです。
私も、独習Cを買って、まずは51ページ越えをめざしてがんがります。
タダじゃありません。 OSの値段に含まれてるだけです。
独習Cみたいなやたら分厚い本を買うより 結城浩の 『C言語プログラミングレッスン【文法編】』 とかのほうがすっきりと理解できるしその後の役にも立つと思うんだけど これは習得者の意見かな…?
171 :
145 :03/03/28 01:20 ID:PYs8Carl
>>170 さっそく、ぐぐって見たのですが、
【入門編】てのもあるのですが、あえて【文法編】がお勧めなのでしょうか。
私としても、早く全体像をつかめる方が、BESTなんてすが。。
(一応、RbとApple Script少々の経験者ですが・・)
入門編は読んでないから。(きっぱり) 文法編はANSIライブラリのリファレンスが具体的な呼び出し方とともに 載ってるから結構重宝しますよ。 AppleScriptとか使えるならコンピュータが得意なこと、不得意なことは 分かりますよね。C言語と言えどもその点は同じなので、 ソースの書き方から言語の特徴を汲み取っていくほうが早いかもしれません。 まぁコンパイルのやりかたとかは載ってませんが。 C言語オタクになってもしょうがないから、『独習C』は 多分くじけると思います。 ぶっちゃけた話、クラスライブラリを使ってオブジェクト指向言語で GUIなアプリを作りたいのなら、Cは駆け足で通り過ぎていいと思う。
173 :
145 :03/03/28 01:58 ID:PYs8Carl
>>172 明日は本屋さんに直行して、いろいろ見てみます。
目標が定まりました。
「Cなんか駆け足で越えていけ」←なんかカクイイ。
といいつつ、地味にがんがりたいと思います。
ありがとうございました。
174 :
初心社 :03/03/28 06:01 ID:aSTnaoiF
なんだかんだで『独習C』、68ページまで読み進んで来たのですが、 少し困ったことが。 「getchar()という関数を使うと、ラインバッファ処理というのが関係して 意図した処理が行われない場合があるので、getche()を使う事があります。 その際にはヘッダでconio.hを呼び出しておきましょう」 という記述があるのですが、OS X環境ではこのconio.hというのは違う名前 なのでしょうか?(環境によって違う呼び名がある、と書いてあるので) #include <conio.h> #include <stdio.h> int main(void) { char ch; printf("1文字入力したまえ: "); ch = getch(); printf("\nこのASCIIコードは %dだぴょん", ch); return 0; } という単純なプログラムをコンパイルしようとすると、conio.hが見つからない、 といったエラーが表示されます。今の所はgetchar()で代替できるのですが、 どなたかご存じであればお教え下さい。
>>174 conio.hはDOSのコンソールライブラリだったような。
少なくともMacOSXにはないと思われ。(getche()も)
Terminalから"man getch"と入力してみれば、
使用するヘッダが分かると思います。
あと、getch()を使う場合は、libcursesをリンクしないといけないです。
176 :
175 :03/03/28 07:58 ID:077c4H65
>>175-176 なるほど。詳細にどうもありがとうございます。
Terminalのmanというのは、プログラミングの関数についてまで
用意されてたんですね……、全然知りませんでした。
リンク先の議論はもう少し知識をつけてからでないと理解は
苦しいですが、雰囲気はつかみました(こういうのが一番危険か)
この参考書、ここまで結構順調に読み進めてきたので、
「互換性のため、本書ではなるべくgetchar()を用いて記載して
あります」と書いてある次のページでいきなりgetche()が使われて
いるのを目にした時、あやうく泡を吹いて倒れそうになった所です。
だから独習なんて参考にならないってばよ オタク養成教科書
このスレは終了ですね?
180 :
名称未設定 :03/03/31 00:21 ID:jkLOO3v1
「はじめてのC言語完全入門」塚越一雄 技術評論社 「Objective-C MacOS X プログラミング入門」萩原剛志 広文社 「Mac OS X Cocoaプログラミング」アーロン・ヒレガス ピアソンエデュケーション この順番で読めば何もわからない人でもアプリが作れる おれもつくれた
よし!!amazon.co.jpで今すぐ購入だ!!
「エキスパートCプログラミング〜知られざるCの深層」という本が面白かった この本ってSunOSのコンパイラ作った人が書いてるんだね
>>182 それって、黄色くって、面積広くて厚みは薄めのやつじゃないですか?
なんか、それなりにやってる人向けって感じだったし、翻訳文体で難しかった気が。
>>181 クレジットカードがない人はクロネコのブックサービスがお得。
つか、近所の本屋で注文するのが一番。TSUTAYAならポイント付くし。
>>183 たぶんそれ
「はじめに」には「二冊目に読む本だ」とあった
語り口は砕けてるし内容もそんなに難しくなかったよ
チマタでは「ポインタ本だ」という評価らしいけど
ポインタについてなら「C言語ポインタ完全制覇」の方が詳しいと思う
「エキスパートCプログラミング」はコンパイラの挙動について
詳細に解説してる本という感じかな
それまで俺がやっていた最適化は無駄な努力なのだと教えてくれた本ですた (;´Д`)
俺は本を買う時はbk1だな
eペイメントが使えるからオンラインバンク(東京三菱銀行)で決済できるし
オンラインバンク。。オサレですね。(キラキラ 僕は代引きばっかりです。 また決済手段について調べてみるかな。 しばらく前雑誌で見た、パソコンにつなぐカードリーダーみたいなので カードを読ませるやつもおもしろそうだったんですが。
186 :
名称未設定 :03/03/31 11:08 ID:uhqMguGs
なかなかイイスレですね。 昔Cをちょこっとカジったので OSXでなにか作りたいキブンになってきた。ワクワク
このスレでも何度も繰り返しいわれてきてることだけど ポ イ ン タ っ て そ ん な に む ず か し い ? ポインタ理解だけのために高い金出して本を読まねばならない というのは、凄く損してるように見えるぞ。
じゃあポインタについてちょいと説明してやるスレてことで
ポインタは理解するのではない、感じるのだ〜! ・・なんつーこともないだろうけど、分からん人にはホントにやっかいらしい。 「難しい」と言うより「ややこしい」んだね。 1000までにスレの方向性が決まりますように・・・
ポインタ・・・今さっき勉強すますた。 「住所をいれた変数」ってことです。簡単じゃん。
>>190 いや、それでさあ、『で、具体的にどうなの?』てなるとわからないわけで。
記述の方法もあるけど
どんな事をしたいときにどう使うべきなのかとか。
そうそう、なにに使うか、なにに使われてるか これ。 この辺で察しのいい人は変数がいわゆるポインタで参照されてることに気づく
結局、言語の仕様上の都合で、ある事をしようと思うと不便なので そこでポインターを使うと便利とか、そういうのがあるんでしょ? なんつーか裏技チックな匂いというか。
>>193 というか乱暴に記述すると、コンポーネント化を考慮するとほとんどがポイン
タになる。
めんどくさいって事で全部をポインタにしてポインタ演算できなくしたのがオ
ブジェクト指向言語(の部分的な)特徴だったりする。
「ポインタ」というものがあると思うからダメなんだ。
「ポインタ変数」はあるけど、その中に入ってるのは、
一意の場所を指すアドレスだ。
>>193 ポインタって別に裏技用に開発されたわけじゃなくて、
とあるアドレスの記録用の変数として用意されただけなんだけど。
でも実際の用法が裏技ちっくってのは当たってるね。
それぞれ独立した関数AとBがあった時、
Aの中で定義している変数valの中身を *直接* 読み書きする関数Bは
仕様上作ることができない。(ローカル変数は外からは見えないから)
でもコンピュータのほうからしてみればそれは可能なわけで、
この辺をごまかしつつ使えるというのがポインタの裏技。
融通が利くというか、後々の言語まで引きずる大失敗というか…
↑
意味分かる?>勉強中のかたがた
例えば初学者なんかだと *p++ += 2; とか書かれると混乱しちゃうんだよな 演算結果の格納先がポインタ変数なのかその参照先なのかわからなくなることがある
そうかもしれんが、 いつも思う話だけどCのプロフェッショナルって やたらとソースの最適化にこだわって他人が読めないソース作るよな あ、Perlもか
ごめんいい方が悪かった。 ”最適化”というのは”可能な限り省略”とか ”コンパイラの仕様を”極限まで利用したがるという意味で 要するに「奥が深い症候群」と同義ということです。
>>195 ごめんなさい、釣りでもなんでもなく全くわかりません(;_;)
ポインタのポから教えて欲しいカモ。
ポインタ(ポインタ変数)を初心者が無理矢理理解しようとすると、 「じゃあ変数ってなんだ??」みたいな妙なループに入ったりしない? 一番シンプルなのは6809のアセンブラだったりするかも知れない。
ぶっちゃけ、いわゆる低級言語も 高級言語並の冗長で理解しやすい文で書く事が可能ならば それ以外の仕様が現状のままでもだいぶ使いやすくなると思うのだが。。 記述の方法とか読み方とかにアタマを使うのって、本来のプログラミングの作業と違う気がします。 とかいって私みたいにPerlで普通は省略されるであろうところの foreach $aFile (@ARGV){ なんてのをいちいち書いたりするのはやりすぎか。 日本語記述AppleScript萌え(w
>日本語記述AppleScript萌え(w ていうか、最近の翻訳ソフトやインプットメソッドの進化を考えると、 金と時間をかければ、ほとんど話し言葉でオッケーな言語っていうか、 コンパイラーって、つくれないのかなあ。 一流のプログラマーの皆さま、いかがでしょう。
あんまり話し言葉に近づけると曖昧すぎて困ると思う。 AppleScriptとかHyperTalkはかなり限界の領域かと。 ある方面では有名なTanaka's OSAXは、HyperTalkで書いたものをコンパイルするというソフト? で作られたとか。
205 :
名称未設定 :03/04/02 09:51 ID:8WTfnu3Q
ポインタとは指し示すものです。 さんまさんやタモリさんが持ってる指がついた指し棒だと思ってください。 指し棒はその形状を変えることはありません。その指し示す場所が変わるだけです。 同一形状でありながら指し示すものを変えることができるのです。 つまりさんまさん達は指し棒を別の指し棒に持ち替えることなく別のものを示す事ができます。 指し棒の指す場所を変えればいいだけです。 この指し棒がポインタであり、 指し示す場所がアドレス、 指し示した場所に書かれたものが実体です。 ただし、ポインタだけでは用を成さないので、C言語では ポインタ変数に対して*演算子を摘要することで実体を、 変数に&演算子を摘要する事でアドレスを取り出せるようになっています。 で、入門者が良くやってしまうのは、何も書いていない場所、 書いたり読んだりしてはいけない場所、もしくは存在しない場所を指し示そうとしてしまう事です。 ポインタは意味のあるものを指し示すことによって、はじめて意味があるものになります。 特別なアドレスNULLも例外ではありません。 ポインタの指し示す場所がNULLであった場合、何も指し示していないと解釈されます。 ポインタの指し示す場所が自動的にNULLになる事はなく、 プログラマが何も指し示していない事を明示するためにポインタ変数に代入します。 つまりポインタの指し示す場所がNULLであることも十分に意味を持っています。 ダブルポインタも別に難しくありませんね。 指し棒の指す実体が指し棒でありその指し棒が指したものが目指す実体です。
ごめん。sage忘れた。
なさけないけど、質問です。 下記のプログラムを、PBでビルドして実行しても、 "整数を入力してください"の文字がでないで、入力待ち状態になります。 そこから、数字を打ち込んでリターンすると、 110 ←入力した数字 整数を入力して下さい あなたの入力した数字は 110 です。 てな感じになります。何が悪いのでしょうか。 #include <stdio.h> void main(void); void main(void) { int n; /* int 型の整数の宣言 */ printf("整数を入力して下さい "); scanf("%d", &n); printf("あなたの入力した数字は %d です。\n", n); }
208 :
名称未設定 :03/04/02 10:55 ID:TOmzh2be
>>207 Project Builder でやるとそうなるね〜♪
Terminal でやってください。
scanfの前に fflush(stdout); の1行を加えるとよいかも。 つか、あちこちでよく出る話題なのでちっとは調べよう。
210 :
名称未設定 :03/04/02 11:21 ID:6mA+fR8r
アップル提供のX11を使って、DOS/Vをしもべに分散プログラミングしたいのですが、何から始めたらいいですか?
C言語じゃないか?
>>205 どもです。さんまさんに指されてお説教部屋に連れてかれて
ハンマーでさんざん叩かれるんですね(違
205さんの説明を元にC言語勉強してみようかと。
Objective CやるのでもCは覚えないといけないんですよね。
これから参考書探してきます〜。
214 :
207 :03/04/02 12:52 ID:KsESIL6M
>>208 うむ、Teminalですか。
PBだと、他にも問題山積みってことすかね。
>>209 残念ながら、fflush(stdout);では、だめですた。
>つか、あちこちでよく出る話題なのでちっとは調べよう。
うーむ。再度、いろいろぐぐったけど、答えらしきものは
みつからんです。賢い検索とか、お勧めサイトってないですかねえ。
しかし、自分のミスとバグ?の見極めは・・何かいい方法はないすかね。
>>212 残念ながら読めません。
>>213 わーい、同士だ。
さくっと全体像をつかむのにはここがお勧め
http://www.sgnet.co.jp/c/
>>204 発展型でRuntimeRevolution。
仮想配列や正規表現あり。
おっと紛らわしかったか。 HyperTalkをコンパイルするのはCompileIt!。 当然ポインタ使えます。
CompileIt!のOS X版が無いので(それどころかPPCネイティブ版もなかったはず?) Tanaka's OSAXのOS X版が出ないという。。 CompileIt!と似たようなコンセプトのソフト出ないですかねえ。
作ってけろ。だんな。
ポインタを理解するのに必要なこと。 それはコンピュータができること、できないことを理解すること。 人間にできて、コンピュータに出来ないこと。 人間には難しくて、コンピュータには簡単なこと。 これを中心に考えましょう。
・変数はどこに覚えられているか 基本的にメモリ上に記録されます。レジスタはこの際、無視してもかまわない。 そして、メモリには全て一意の場所をあらわす番号(=数値)が与えられます。 これがアドレス。逆にいえば、アドレスは数値です。 そして、この”アドレスをあらわす「数値」”を元に、コンピュータは そのアドレスのメモリにあるデータ(=数値)にアクセスすることができます。 つまり、 「a という変数の中身を見る」ことと 「変数aが記録されているアドレスのデータを見る」ことは同じです。 さて、ポインタ変数はアドレスを入れる変数です。 変数ということは、中身を入れ替えたり、中身に対して計算したりできます。 そして、ポインタ変数自体が、メモリ上のどこかのアドレスに記録されています。 ということは、ポインタ変数"b"の中身が指すアドレスの中に入っている データ(ややこし〜)が、実は別のポインタ変数"a"が記録されている場所を 指す数値であってもいいわけです。 これが「ポインタのポインタ」などと呼ばれたりします。 上記の状態をソースで書くと、以下のようになります。 int x = 10; int *a = &x; // 変数"x"が記録されているアドレスが入る int *b = &a; // ポインタ変数"a"が記録されているアドレスが入る この場合、 x *a *(*b) これはどれも同じ数値、つまり10が得られます。
・数値とアドレスはどう違うのか 人間が「これはアドレスだ」と意図を持って使っているうちは、 人間にとってはアドレス(を表す数値)と数値は全く違うものです。 しかしコンピュータにとっては、どちらもただの数値に見えます。 数値の100とアドレス100番地を表す100は、どちらも100として記録されます。 そして、人間も記憶が適当なので、訳が分からなくなったり、 ど忘れしたり、間違ったりして混同してしまいます。 そこでアドレスを入れる変数は「これはアドレスですよ」というのを 明示的に示しておき、数値用には同じく「これは数値ですよ」と 宣言してから使いはじめる、ということにしました。 こうすれば、人間もコンピュータも、そのデータが数値なのか アドレスなのか区別が付くというわけです。 もちろんこの場合の、コンピュータとはコンパイラのことですけど。 実際のコンピュータは数値もアドレスも区別していません。 だからなにかのミスで、ただの数値がアドレスとして解釈されてしまって とんでもない場所にアクセスしてしまったりすると、バグったり、 落ちたり、固まったりするわけです。
あー、変数の型に付いては飛ばしてもいいですか?
223 :
生徒1 :03/04/02 21:49 ID:KsESIL6M
>>222 先生!!!よろしくお願いします。
変数の型は、自分でなんとかします。
・どういうときにポインタは使われるか(1) ただ変数が記録されているアドレスを記録して参照できるだけじゃ、 変数や配列を直接みたって一緒じゃんと思いますよね? ところが、変数として定義していない場所にもデータは記録できるんです。 例えば、コンピュータの内臓時計のデータは、とあるアドレスを 参照することで入手できます。これはコンピュータの仕様として、 そのアドレスは時計のデータですということになっているからです。 それ以外にも、自分でも”変数を宣言しなくても使えるデータ領域”を 作ることがあります。 これについては次のレスで。
・どういう時にポインタは使われるか(2) malloc(size_t size) という関数があります。 これはメモリ上から指定した大きさの連続した領域を確保する関数です。 戻り値は、”確保した領域の先頭の「アドレス」”です。 アドレスが分かれば、そのアドレスにあるデータにアクセスできることは 前に説明した通りです。 そしてこの関数で確保した領域は、「変数として定義されていません」。 つまり、確保された領域内であれば、どんなデータでも置くことができます。 そして realloc(void *p, size_t size) という関数があります。 以前malloc()で割り当てた先頭アドレスと、変更したいサイズを パラメータとして渡すことで、その領域内のデータを保持したまま 確保するサイズを増減させることができます。 詳細は省きますが、これの関数を使えば、とあるデータに必要な分だけ メモリを確保することができます。 どういうことかというと、キーボードからの入力をどんどん溜めていって、 終わった時点でファイルに書き出すというプログラムを考えてみます。 この時、配列を使うのだと、最初に宣言した要素数以上は記録できません。 char a[128]; ならば、128文字までしか記録できないのです。 途中で定義を変更して増やすことは不可能です。 しかしここで、mallocでとりあえず128バイト確保したとして、 それ以上に入力があった時にreallocで1バイトずつ増やして 確保し直すことにすると、(メモリに連続した領域がある限り) 可変長の記録領域が作れます。 これは普通の変数、配列には絶対に出来ないことですよね。 むやみに大きい配列を作って置いておくよりも、ずっとメモリの効率が いいことが分かります。
・どういうときにポインタは使われるか(3) さて次は例の「裏技的な使い方」のご紹介。 でもわりと当たり前に使われてます。 C言語では”構造化”という思想があって、ある程度の処理の単位を 区切って、その単位ごとで全てを完結させて、外部の他の部品には 影響を与えないことが美しいとされました。 そのおかげで変数の名前が部品ごとに重複していても(例えば ループによく使われる"i"とか)、問題なく動作できるようになりました。 しかし逆に、グローバル変数を定義しないと、それぞれの部品で 共通のデータを扱うなんて場合にどうしようもないことが分かりました。 でもグローバル変数だと、もういらなくなった場合にもまだ変数分の メモリを持ったままになってしまいますし、main()以外の関数内で グローバル変数を作ると、その関数が呼ばれるたびに同じ名前の グローバル変数が定義し直されることになります。 そのデータを使う処理が終われば、解放してしまいたいものですし、 できれば同じ関数で違う変数にも応用できるようにするのが 別の観点から見た構造化というものでしょう。 これをふまえて次のレスへ。
どういうときにポインタは使われるか(4) まあ上の話は適当に読み飛ばして、たとえばmain()内で定義された ローカル変数は、main()から呼び出された関数からは見えない (無いことになってる)だけで、実際にメモリ上には記録されたまま になっています。当たり前ですけど。 で、「変数としては存在しないことになってるけど、その変数が記録 されているアドレスまでは責任持てないよ〜ん」というのが、 コンパイラの考え方です。無責任な奴です(笑)。 ということはということは、関数のパラメータとして、とある変数の アドレスをパラメータとして渡せば、その変数を別の関数の中でも 使えるのではなかろうか? その通り! main() { int a=10; hogehoge(&a); ……… } hogehoge(int *p) { *p = *p+1; return; } という関数を作れば、ポインタ変数pの指すアドレス=main()内の ローカル変数aが記録されているアドレスの中身、つまりaのデータ そのものに直接1を足して、何喰わぬ顔でmain()に戻ってくることが 可能になります。
228 :
生徒1 :03/04/02 22:45 ID:KsESIL6M
>先生!!! 講義についていけません。でも、うれしいです。
・余談 mallocやreallocの凄いところは、戻り値がvoid *型、つまり 「あらゆる型に変換できるポインタ」として返ってくるところ。 「void *」型を好きな型のポインタ変数にキャストすることで、 確保したメモリ領域を、好みの型の変数、配列、構造体として 使うことができる。なぜか? 前にも書いた通り、ポインタ変数はアドレスを記録する変数です。 そして、アドレスは32bitのコンピュータで使っている限りは 基本的に32bitのデータです。 じゃあ、なぜ容量が同じなのにint *とかdouble *なんて型があるのでしょう? それは「ポインタ変数の計算」に理由が隠されています。
えー これで理解できないのはヤバイヨー 前半はわかるよね?
・余談(2) では、例を一つ。 int *ip; double *dp; と定義したとして、(便宜上)ipとdpには同じ数値が入っているとします。 実際に入ることはほとんどありませんが例として。 このとき、 ip++; dp++; としたとき、ipとdpは同じ数値になっているでしょうか? 答えはノーです。 なぜかというと、ポインタの型が違うからです。 具体的にいうと、元になっているint型とdouble型では、データの サイズが違うからです。 int型は32bit、double型は64ビット。 そして、32bitのコンピュータは、1番地につき32bitの容量が 割り当てられているんです。
232 :
生徒1 :03/04/02 23:00 ID:KsESIL6M
>>230 先生!!!すいません。
まだ、C言語3日目なので・・・聞き慣れない言葉もあるんで。
でも、雰囲気はわかります。とっても、わかりやすい解説なのはわかります。
・余談(3) ということは、int型の変数は1番地分、 double型の変数は2番地分で1つのデータになっています。 C言語の話に戻ると、 ポインタ変数に対する計算は、元になっている型のデータサイズを 考慮して行われます。 int型では1を足すと1番地増えますが、double型では2番地増えるのです。 つまり"+1"というのは「データ一個分ずらす」という意味なのです。 これを使えば、確保した領域を配列として使えることは自明ですね。 変数の型でなくても、typedefすれば独自の型を使うこともできます。 「構造体の要素1個分ずらす」ということが"+1"と書くだけでできるわけです。 つまり構造体の配列もラクラクできちゃいます。 この辺は頑張って自分の手でやってみてください。 勉強になると思います。
三日目じゃしょうがないけど、 ポインタでつまずいてる人の、理解の助けになれば 報われようというものですが。どうですか? 後半ちょっと、迷走気味だったのが反省点でつ。 分かりやすいにゅ有紋書をかける人って凄い才能だと知りますた。
235 :
生徒1 :03/04/02 23:29 ID:KsESIL6M
>>234 先生!!!気が向いたら、また講義してください。
とりあえず、コピペして保存して・・・
今後のお勉強で、ポインタで詰まったら、読み直すことにします。
さすがに図が無いと辛いねい。果たしてこの試みは成功するのか?
先生!!!○年前に挫折した人間ですがいける気がしてきました!
かなりわかりやすかった気がします。 typedefとかがわからないです。
うん、反響があってちょっと安心したかな。 余談は読まなくてもいいと思います。 本当に余談。Cで複雑なもの作ろうと思ったら考えてみるくらいでどうかな。 Obj-CにステップアップするためのCの勉強なら、 すっ飛ばしてもいいところだよ。
いわゆる普通の変数:「山田さんの部屋」 ポインタ:「407号室」
・初心者の落とし穴 よく参考書やソースにはポインタ変数の宣言に int *p; などと書かれていますよね。 そして、ポインタ変数"p"が指すアドレスの中身を見る場合、 a = *p; と書くことも教わります。 ここで初心者が陥りやすいのが、 「あれ? 「*」ってどういう意味? **pじゃないの? "*p"っていうのが変数の名前じゃないの?」 などと混乱すること。 最初の「*」はint型の「ポインタ変数であること」を示すための記号、 後者はポインタ変数「"p"が指すアドレスにあるデータ」を指す記号です。 といわれても、やっぱり分からない人には分かりません。 でもこれ、宣言の書き方が分かりにくさの原因です。 実はこのポインタ変数の宣言、 int* p; でもいいんです。 こうすることで、「int*」型の変数だと自分に言い聞かせます。 「int*」型の"p"という変数だと思えば、何となく分かりやすくなりませんか? 最初のうちはそれでいいと思います。 そのうちに、なぜ「int *p」と書くかが分かってくると思います。
typedefはわりと重要です。 特にObj-Cをやるなら覚えておいたほうがいいです。 なぜなら、Obj-Cをはじめとするオブジェクト指向言語で使う クラスライブラリというのがあるんですが、これには今まで 聞いたことが無いような”型”の変数やパラメータが出てきます。 これらは実際にはchar, int, float, doubule, long int, long doubleや それらのポインタ、またそれを使った構造体など、C言語の 変数の「別名」であることが多いです。 これを理解して、それぞれの部品がどういう動作をするか 理解することが、とても重要になってきます。
Oh!X辺りにC言語の分かり易い入門連載があったような。
先生!int型で+1すると1番地先へ進むということは
char型なら0.25番地進むということですか?
32bitCPUはメモリバスや内部処理が32bitなのであって
アドレッシングの単位は違うと思うです!
char *cp;
int *ip;
printf("cp:%pncp+1:%pnip:%pnip+1:%pn",cp,cp+1,ip,ip+1);
してみるとわかるです!
実行結果はこうなったです!
cp:0x8fe13344
cp+1:0x8fe13345
ip:0x0
ip+1:0x4
>>243 Cマガジンでも入門連載やってるみたいだね
245 :
244 :03/04/03 01:58 ID:P/2+jJ60
バックスラッシュ+nが「?」に化けた...鬱
246 :
生徒1 :03/04/03 01:59 ID:SKHvfjGg
>>243 そんな、ソース不明な思わせぶりなのは、困るっす。
先生!!!が偉いということで、お願いします。
えーと、すいません C言語なんて16bitが主流だった時代に通過したもんでw 書きながら「そういやCPUにはバイト単位でアクセスする機能が あるのにほんまに1増えるんだっけか」 とか思ってたのは秘密でつ(エーッ
余談。 Oh!XはC言語よりアセンブラの入門書が 最高に分かりやすかったですよ。村田氏のやつ。 X68000マシン語プログラミング 入門編
>>244 まさにソコがC言語のポインタの落とし穴。(って、落ちたの俺だけ?)
ポインタに型の無いアセンブラとは違うだな。
Macでプログラムなスレが落ちたっぽいのは何故?つーか粛正の嵐吹いてる?
Oh!Xって2001年春号が最新刊だけど 廃刊にはなってないよね?
252 :
244 :03/04/03 16:42 ID:Hs3fhy75
漏れの中でOh!XはX680x0の新機種が出なかった時に廃刊したことになってまつ
254 :
250 :03/04/05 04:16 ID:s+dEhzug
>>252 ありがとう、それだ!。3になってやがったのねん(死。
てか瞬間的に存在しない時間に見てたらしい。
255 :
名称未設定 :03/04/06 19:34 ID:7eC3tyQc
勉強中age
256 :
551 :03/04/06 20:14 ID:k1WUxEco
\n
257 :
名称未設定 :03/04/06 20:58 ID:hIcewEU1
15年くらいぶりにプログラムを組もうとしてる。 たまにperlをいじくるくらいのことはしてたが。 で、Cの基本的なことはたぶん理解したが、 (どういうときポインタ使うかなどはこれから経験してくしかない気はするが) ウインドウ開くとかメニューどうするとか、 おーいどうすんだーーーーーー って人の為のスレかと思ったのにーーー。 つか今どきOS9でCarbonなんだけどね。 しこしこネットで英語のテキスト読むのめんどくさすぎ・・・・・
具体的な質問が無いと、先生も一人語りじゃ辛かろう。 かと言ってここで勉強しようと思ってる人が質問出来るとも思えない。 永遠のジレンマやねえ。
と、いうより。 何でもいいから一冊本を買ってきて読んでみると、 言ってることが理解できるようになると思うぞ。 コンピュータ関連の技術書は高いけど、最初の一冊は必要なのはしょうがないよ…
OS9でCarbonでCな人は、Cの勉強というか、ToolBox(又はCarbonLib)の 勉強をすれ。C言語だけを勉強してもMacのアプリケーションは作れません。
じゃあ、あれだな。 OSXでCocoaでCな人は、Cの勉強というか、Project Builder(又はCocoa API)の 勉強をすれ。C言語だけを勉強してもMacのアプリケーションは作れません。
俺はRbに飽きたのでC++にスイッチ中。 とりあえず自分用のRbのプラグインをちょくちょく作りながら 勉強してる。 言語は違えど処理の概念は似てるから結構分かる部分って多い。 細かいことは猫のサイトで独学中ナリ。
263 :
名称未設定 :03/04/06 22:11 ID:hIcewEU1
>>260 うん、んでしこしこ英語のテキスト読んでるところ。
つか初めてやっぱOS X欲しいと思ったよ・・
本も買ったけど、ネット講座でお勉強中。 いろいろ渡り歩いて、やっと自分のレベルに合った講座を見つけたよ。
OS9でCarbonでCな人は新居さんの本でオッケーじゃないすか?
何々の本を買えという香具師多いけど 今のWEB上での情報も馬鹿にはできないレベルになってるわな。 些細なことなら2ちゃんなりで聞けば分かることもあるし WIN系サイトでもCなら基礎は学べる。 本の購入はネットで基礎を学んでからにしたほうが 個人的には良いと思う。大概はプリントアウトしちゃえばいいし。 英語ができれば海外サイトなんかはサンプルも腐るほど落ちてるし 本をめくるよりショートカット的に知りたい部分を理解できる。 まあProject Builderやコードウォリアーなんかの ソフトの操作法に関しては情報源は少ないから辛いところだけど。
Rbの初心者が、無謀にもC言語のお勉強を始めたばかりでなんなのですが、 参考書で発見した、Cプログラムとはすべてが関数なのだ・・・ という記述にびっくらこきました。 そうか、要するに原点はここなのだ。それが進化、構造化すると、 メソッドやらプロパティ、クラスなどというオブジェクト指向になるんだ。 と、理解したのですが、ただしいのでしょうか。漫然とした疑問です。
惜しい。全てが関数というのはC言語まで。 それ以降は、全てが関数と言うのはもう当然のことで、 そんなことよりも重要な要素を理解しないといけない。 クラスというのは、凄くぶっちゃけた話、構造体。 メソッドというのは、クラスを構成している構造体一つ一つの要素のこと。 ここでいう要素とは、変数(配列や構造体などを含む)、関数、 そして他のクラスそのもの。 まだ理解できないかもしれないけれど、 オブジェクト指向言語の凄いところは、いままで変数(とその派生) しか収めることができなかった構造体に、関数やクラスを含むことが できるようにしたところ。
C言語において「全てが関数である」という事実は 確かに(基本的な動作の考え方として)重要ではあるけれども、 実際プログラムするにおいてはそんなに意識するものでもない。 せいぜい 「処理はなるべく小さく区切って別々の関数にしておくと便利かも」 程度じゃないかな? 結局のところC言語とオブジェクト指向言語との間には ものすごく大きな、発想の転換が必要なことには変わりない。 まあ文法に応用が利くから学んでおいたほうが得、程度。
270 :
名称未設定 :03/04/08 00:19 ID:BJgGxyKI
疲れた。 挫折気味。 先述のOS9+Carbonの者だけど(ちなみにMPWで) さあなんか組むぞ!ってとっかかるまで遠すぎる。 いや、C言語そのものじゃなくてね。 ToolBox?とかのね。
271 :
267 :03/04/08 00:22 ID:eEeIJH3Y
>>268 >クラスというのは、凄くぶっちゃけた話、構造体。
C言語をはじめて、構造体が出てきたとき、クラスみたいなもんだな・・・
と思ったのですが、直感は正しかったみたいです。
しかし、やってみるとC言語のほうが、Rbより簡単に覚えられそう。
(覚えることは量的には多そうだけど)
まあ、C言語にはインターフェイスがないぶん単純ってことかな・・・
先の道のりは長いことに、変わりはないけど。
273 :
名称未設定 :03/04/08 00:39 ID:BJgGxyKI
ToolBoxって5000種類くらいあったような。
276 :
275 :03/04/08 00:43 ID:G9b62tG/
あらっ、カブちゃったわさ。
>>274 よく使われる主なものだけ
そこそこの解説付けてまとめたリファレンスみたいの
あればいいのにね。
って探せばあるのかな。
>>275 うん、それ見てる。ありがと。
わかりやすいけど、英語なので疲れて2chなのであった。。。
現実的な話、 WindowsのMSDNライブラリでさえ英語ドキュメントを参照する必要が しばしばあるというのに、現状のMacでプログラム組もうと思ったら それこそ「ほとんど英語」の情報を手探りで調べないといけないのは 覚悟するべきではないかと… まあ、マニュアルはわりと簡単な英語で書いてあるし、よく使う クラスは決まってるから頑張って。
REALbasicのプラグインとか、HyperCardのXCMDとかから入ってみる手もある。 インターフェースを作る手間がないから、純粋に(?)Cの勉強が出来る。
280 :
名称未設定 :03/04/08 01:17 ID:BJgGxyKI
8ビット機主流の時代からいきなりタイムスリップしてるものな、おれ。 MULTI BASICとかいいかなあとも思ったんだけど どうせまたいろいろ覚えるならMPW+Cでやってみるか、と。 今無職で金はないけど時間はあるし(笑。 まあある程度のひな形までできれば、って思ってるから、 それまで地道にがんばるよ。
がんばれよ。 ポインタで死にそうになるが、そこを切り抜ければあとは楽だ。
282 :
名称未設定 :03/04/08 01:29 ID:BJgGxyKI
ああ、ポインタというかメモリ管理っぽいことで やたらと○○しないとクラッシュするかも!とかの注意がいっぱいあるんですけど、 んで○○する場合にはあらかじめ○○しておいて不要になったら○○する、 とかやたらあるんですけど、 今のところ簡単なサンプルプログラムしか打ってなくて その中ではそのような処理はとくにしてないようなのですが そんな神経質に処理する必要あるものなんでしょうか。
ちょっと訂正。 ちょっとしたアプリ組もうとすると やはりそのような処理が必要な場面がしばしば出てくるのでしょうか。
ものによる、としか言えないな。 メモリを確保して不要になったら解放する、というのは 別にCarbonだからとかそう言うのではなくて、 アセンブラの時代からずっと同じことだと思うけど。 C++だとそういう手間がずいぶん省けるけどね。 もちろんクラスをそのように作ってあると仮定した場合、だけど。
285 :
名称未設定 :03/04/08 01:55 ID:BJgGxyKI
さんきゅう。 まあいろいろやってみよう。 つかCってアセンブラみたいだと思った。 もっともアセンブラ自体厨房の頃さっぱりわからず、そしてそのままなのだが(苦笑
286 :
遅レス :03/04/08 10:15 ID:et2q9dXN
>>155 オフスクリーンGWorldに描画したイメージは、非CarbonだとGetGWorldPixMap()で
取得したGWorldのPixMapHandleをWindowのポートへCopyBitsすれば即座に画面に描画されていましたが、
Carbon on OSXでは即座に画面に描画されません。
オフスクリーンaGWorldの内容をウインドウ(のポート)currentPortへ
描画して即座に画面に反映させる場合は....
aGWorldBitMap = GetPortBitMapForCopyBits(aGWorld);
pixMapH = GetGWorldPixMap(aGWorld);
// ここのLockPixels はCarbonではいらないかも。あっても実害はないけど
LockPixels(pixMapH);
CopyBits(aGWorldBitMap,GetPortBitMapForCopyBits(currentPort),
&srcBounds,&destBounds,srcCopy,NULL);
UnlockPixels(pixMapH);
// ここまではCarbonの普通のオフスクリーンのCopyBits処理。この後に
// 描画先ポートのvisRgnを取得し、そこに対してQDFlushPortBufferを
// 行うとそれまでに行った描画処理が即座に画面に反映される。
visRgn = NewRgn();
GetPortVisibleRegion(currentPort,visRgn);
QDFlushPortBuffer(currentPort,visRgn);
DisposeRgn(visRgn);
多分大丈夫と思うけど、資料なしで書いたんで抜けや間違いがあったらスマソ。
QDFlushPortBuffer()はほどほどにしないと、描画処理が激遅になるので注意されたし。
287 :
今日はヒマだ :03/04/08 10:34 ID:et2q9dXN
>>197 そんなことはないよ。
無駄がないロジックは誰にでも読みやすく且つキレイであるというのが常。
例外もあるけど。
288 :
名称未設定 :03/04/08 10:42 ID:zTzEtnZp
ThinkCってフリーでダウンロードできるようになってなかったっけ?
289 :
名称未設定 :03/04/08 10:54 ID:entfTMv+
MacOSXでプログラミングって一体最終的に何することよ? ManiacOSXのページを一通りやってみたんだけど、まだいまいちわからん。
>>289 最終的に何することかって??
そりゃ、ビルドするんだよ(w
んで、作ったアプリを使うんだよ。(ww
最終的に形あるものを生み出せば良いのだよ。 Mac OS X版のSYSTEM 3.xとか。
292 :
名称未設定 :03/04/08 11:02 ID:BJgGxyKI
疑問の意味がわからん。 のでOSXを持ってないがManiacOSXのページに飛んでみた。 うん。このページだけじゃなにもできないわな(笑。 次はCなりなんなりの言語を勉強してプログラムを書く。 ただ、一般のCについて書かれたテキストで勉強するだけじゃ、 たいしたことはできない(たぶん)。 んで、今度はマック自体のToolBoxなりなんなりの勉強をして それでプログラムを書くことになる。 だと思う。
293 :
名称未設定 :03/04/08 11:02 ID:entfTMv+
Hello World!って出力させるところからビルドするところまでは 随分長い道のりに思えるのだが。
? Hello Worldを出すためにはビルドしないといけない気が・・。
ID:entfTMv+氏は根本的なことが分かっていない気がするよ。
296 :
名称未設定 :03/04/08 11:06 ID:entfTMv+
297 :
名称未設定 :03/04/08 11:12 ID:BJgGxyKI
OSXだったらCocoaがやっぱりってサイトがメジャーっぽかったんだけど 今見てみたら、なんかコンテンツ見れないみたいだね。 ウインドウ開くとかそのなかにグラフィック描くとか いちいち具体的なことはどうしたらいいんだーーーーー ってことでしょ? なんか基本的なことから徐々に地道に勉強してくしか どうもないっぽいよ。
一般の趣味グラマなら ・思い付く(これ便利じゃない!?) ・動作を煮詰める(実際にどんな動作をするのか考える) ・それっぽい動作をしそうなクラスを探す(マニュアルとにらめっこ) ・インターフェイスを作る(IF Builderで) ・足りない部分をコーディング ・ビルドしてリリース。 ・改善点を発見してしまう(以上ループ)
>>296 別にGUI付きアプリでなければ使えないわけでもない。
Terminalでテキストで応答しながら入力をうながして何かの処理をするものも
立派なアプリケーション。
>>297 いや、夲買え(w
Cocoaはやっぱりも、夲買ってほしいからコンテンツ閉じたのもあるのかも
(あるいは出版社から何か言われたか)
AppleScript+Cocoaならかなり手っとりばやくカタチのあるものが作れるよ。
Terminalのコマンド呼べばいろいろできるし。
>>298 はい!せんせえ!
上から3番目あたりができません!!(w
のでCは挫折してスクリプタやってまさ。
301 :
名称未設定 :03/04/08 11:24 ID:BJgGxyKI
>>300 あはは
Hellow Worldから3番目まで行くのが
かなり険しいよねえ(笑。
Window開くコードはどっかのサンプルでも利用してすぐできるけど、
そのコードというかそれぞれの関数などの意味を理解するにはねえ。
日本語で書かれた詳細で安価なリファレンスが欲しいです。。 なんか、新居さんかどなたかの二冊組みの夲とか見ながら、 ウインドウにクリックできるボタンつけたりしてましたけど。
漏れはRbでさえ、クラスのライブリーとか、読めずに泣きました。 ライブラリーの読み方のマニュアルって、ないよね・・以外と。 て訳で、読めない人は、C言語知る(コンピュータの動作含め)と理解して 今、C言語の勉強はじめました。 最近、やっと、C言語の関数ライブラリーがわかるようになりましたです。
俺はオライリージャパンの「Cデスクトップリファレンス」という本を重宝してる 1200円と安いしハガキよりちょっと大きいくらいなのでどこにでも持ち運べる コーディングする時に脇に置いとくと便利 100ページくらいしかないので詳細というわけにはいかないけどね
>>304 そりは、リファレンスはリファレンスでも、
ToolboxとかCocoaでなくてCのやつでそ?
とりあえず、このスレで共通の「お題」でもつくってプログラムを作ってみては どうでしょう?簡単な課題でも具体的な目標があるとやる気が出るし、他の人の 書いたプログラムを追いかけてみるのもいい勉強になるよ。 無難な課題としては「時計」なんかどうでしょう?
とりあえずmac版winnyを(笑)なんつってね。 確かにサンプルみたいのあると助かりますわー
時計ってデジタルだよね? アナログ風のはひじょ〜〜に面倒。
アナログは、三角関数いる?
ん〜まぁ、そんなに難しくないんだけどさ。 ・時間を元に、長針短針秒針の角度を割り出す。 ・窓の中心点から、それぞれ決めた長さの直線を描く。 ・1秒ごとに繰り返し 処理はこんな感じ。 でも、線を引くのが、とてもだるい。 でもテキストフィールドに時刻を表示するだけなら、 「Hello World」と大して変わらないんだよな…
GW使う練習になるのでは >デジタル時計
針クラスを作りたいね。 で、オブザーバーパターンを使うね。 針クラスが、数字を表示すればデジタル時計になるね。 でも、C言語のスレだから関係ないね。
先生!!!そろそろ本格的講義に入ってください。 予習をしたら、C言語にもtime構造体みたいなもんが あるのがわかりました。
自分で学べよ
315 :
551 :03/04/09 07:48 ID:GMfRvQlQ
つりクラスかと思った.
>>307 名前はwinnyじゃまずいだろ。mackyか?(w
nyで通ってるから、Macnyだろうね。本家版出るなら。出て欲しい。 つーか、スレ違いだから。
mackyってゼブラから何か言われそうな名前だなぁ。
時計できたけど実行すると・・・ハァ。
むかしCodeWarriorで作った時計があるはずなんだが、
OS XからじゃMOが開けん。。
>>319 ??
321 :
319 :03/04/09 21:14 ID:m9IwrISD
OS9で実行するとまぁまぁ普通 アバウトボックス出すと変になるけど・・・。 OSXじゃメニュー出したら変になるし アバウトボックスだしても変になる。 もう、ボコボコ。 ってか出来たとは言えませんね。えぇ。
>>321 ソースキボンヌ
おお、なんか始めてソースという言葉がコンピュータの用語として
使われたような気がするぞw
323 :
319 :03/04/09 21:21 ID:m9IwrISD
ちょっとだけ時間下さい。 整理しますから。
324 :
319 :03/04/09 21:39 ID:m9IwrISD
英語でC言語をお勉強するお勧め本ありませんか。 完訳本もでているといいな。一石二鳥ということで・・・
326 :
名称未設定 :03/04/17 07:27 ID:gKim7Gd6
訳者にもよるだろうが,訳がむちゃくちゃで失望するかも。 (小説を最近読み比べたんだが,ひどい訳だった) まあ,テクニカルな文章は難しくないからそんなことはないだろうが.
悪訳のテクニカルな翻訳本なんていっぱいあるぞ K&Rなんてヒドイという噂だ
>>327 それは激しく同意。
まぁ、純国産の技術書で嘘垂れ流してる奴も多数あるんで、なんともいえないが。
翻訳の質が低すぎて原書読まないと意味わかんね〜よ!ってのもざらにある罠。
とりあえずあんまり難しくない英語のPDFとかで配布してるようなのに玉砕覚悟でぶつかってみるってのは?
329 :
山崎渉 :03/04/17 15:14 ID:6I5vRaG+
(^^)
「英語が堪能」で且つ「プログラミングの知識がある」人間が 本の翻訳なんぞと言うものをやるとは思えない。
331 :
325 :03/04/17 21:57 ID:uJWuUH48
うーむ、やはりお勧め本はないんですか。 K&Rというのはなかなかいい本だとは聞いたのですが、 初心者にはきついと聞いたので・・・どんなもんでしょうか。 自分の考えは、C言語を覚えても英語ができないと 後で苦労すると・・・このスレ等にもあったので、 英語もC言語も一気にと思ったのですが、難しいのかなあ・・ とりあえずは、日本語で勉強してから、K&Rに行こうかな・・
K&Rって、歴史的価値とかそういう事ぢゃないの?
「Cを勉強したい」というだけなら必ずしも無理してK&Rを読む必要はないと思う アレは「話のタネに」読むものじゃないのか?(w 英語については機械翻訳使ったりとか辞書引いたりとかしながら 徐々に慣れていけばそのうち普通に読めるようになると思うよ 評判のいい原書と翻訳本のセットが欲しいということなら 「エキスパートCプログラミング」はどうよ? 「最初に読む本」ではないが面白かったし評判もソコソコいいぞ
最初に読む本でなければ、ヒレガス本と翻訳とかあるんだが。(Objective-CでCocoaな本)
誰かまとめてくれ。
336 :
325 :03/04/18 13:51 ID:76ry3NiS
>>336 その2ch booksってム板の推薦図書スレで挙がった本を紹介してるページだよね
それからヒレガス本ってのはアーロン・ヒレガス著「Mac OS X Cocoaプログラミング」のこと
萩原剛志著「Objective-C Mac OS Xプログラミング入門」と並んで
Cocoaプログラミングのバイブル本だよ
なんか a = a+++b; がどう解釈されるかとか、心底どうでもいいことを 死ぬほど掘り下げてる本なかったっけ?
??
340 :
名称未設定 :03/04/19 12:28 ID:U6ucfdhK
昔「はじめての C」という本を買ったことがある。 買う時、なぜだかとても恥ずかしかったです
>>338 それが「エキスパートCプログラミング」じゃなかったっけか
あの本は役に立つというより読み物として面白い
Sunのコンパイラ開発チームのメンバーが書いてるから
コンパイラの挙動について色々解説されてるね
スッゲ感動した
347 :
342 :03/04/19 18:27 ID:EtlYQ2/p
>>343-346 レスThx! & ウケ狙い成功か?
最初はRadioButtonでしたが、水色イクラみたいなので.....
なんかPictureを用意した方が見栄えはいいでしょうね。
ドットマトリクスイイ!
349 :
ぬ :03/04/20 01:41 ID:NHnXOD67
ぽ
350 :
山崎渉 :03/04/20 02:54 ID:ZHDoPsUy
∧_∧ ( ^^ )< ぬるぽ(^^)
351 :
山崎渉 :03/04/20 03:36 ID:Arg431sO
∧_∧ ( ^^ )< ぬるぽ(^^)
353 :
名称未設定 :03/04/20 10:29 ID:KTqhx651
age
354 :
名称未設定 :03/04/20 10:53 ID:vEwS/VFO
age
CoreFoundationのソースって何処にあるの?
356 :
342 :03/04/20 16:20 ID:glBqj4Ui
CarbonEvent対応とnibベース化してみました。pbproj添付。 見た目は何も変わってないですが、CPU占有率減少....
>>356 CPU占有率減少を言うなら...
1.WaitNextEvent()のsleep値に0を渡すのは絶対だめ、System6時代からの注意点
2.DrawControls()は有害、放っておけば変更部分だけ再描画される。
この修正で2%以下のCPUロードになる。EventLoopTimer版の方も2.は修正必要
359 :
342 :03/04/20 23:22 ID:glBqj4Ui
ユーザがOSXにシフトしている中MPWの価値はあるのだろうか。
趣味だよ、趣味。
>>362 OS9以前のマシンを手に入れてしまった、OSはftpから落した7.5だ、金はねぇ
って人だとMPWしか選択肢はなさそうだよね。
間違ってNewtonとかMagicCapとか手に入れてプログラム作らなあかん!て人もMPWならなんとか
なるかもしれんし。
MPWって今時..... そりゃ選択肢の一つではあるけどさ、普通「C言語を学習したい」事よりも 「何か作ってみたい」方が先にこないか?。 金がないならPB、(十分に)余力があるならCWでしょ。 アポーはOSXの開発しかしてない訳だし。
366 :
名称未設定 :03/04/21 22:08 ID:gZ5QL+kP
ついでにage
>>365 基本はOSXの動くマシンならもう間違いなくPBなりなんなり好きに使ってやれ!なんだけどさ。
世の中まだまだOSXの動くマシンなんか無いよ。つー人はいるわけで。
十分に金に余力あったらとっととOSX動くマシン買え!つーのは大正解だとおもうが。
まだMPWはそういう向きにはアリな選択肢だろうとはおもうよ。
ついでに言うとCW買えはいまさらちとお勧めできない罠。
Apple以上に厳しいお布施と1億行を超える責め苦が毎回やってくる訳で(藁
素人があれを買ってしまってどうこうできるのか?と小一時間(藁
>>367 確かにCWは通常初心者の買うものではない......
漏れは買ってしまったが
CodeWarriorに支払ってしまった大量のゼニ。。だれか俺の懐にもどしてくれ。。
Mac OS 9 なら Mac MiNT がお勧め。gcc が使えて Palm アプリも作れる。
373 :
342 :03/04/22 06:52 ID:JeICBDdG
>>371 そのMacMiNTをまともに動かすためにMPWと古いUniversalHeaderが必要だった時期あったね。
あれ?THINKで事足りたんだっけ?
まぁ、どっちにしてもあれなんだが。
大人しく小金貯めてOSX動くMac買え!ってのが最適解な感じはするねぃ(w
>373
スクリーンショットつけたんだねぇ。ごくろうさま。
>373 よく見たら、Mac OS Xのチェックボックスのチェックってコントロールのビューからはみ出てんだね。 アップデートの判定ってどうやってるんだろ。
376 :
342 :03/04/22 19:38 ID:JeICBDdG
>>375 スクリーンショットではわからないのですが、実行画面をよくみると
はみ出てる部分がちょっと切れるところが発見できますね.....。
ま、間隔が狭すぎる訳ですが。
377 :
375 :03/04/22 22:52 ID:Jw95dyid
気になったので調べてみた。 当たり前だが、はみ出た部分もビューの中にちゃんとおさまってたよ。 無駄な時間を費やしてしまった...
次のお題は〜
そういえばC製の2chブラウザって無いような。
マカー用。はアイコンが「しぃ」なんだぜ。 アイコンが「しぃ」ってことは中身も「しぃ」=「C言語」に違いない!! REALbasicって何ですか?私はそんなもの聞いた事がありません。 「聞いた事がないもの =(中略)= 存在しない」此れは定説です。 よって(「マカー用。」=「REALbasicで作られた」) = false かつ(「マカー用。」 = 「しぃ」) = true したがって、「マカー用。はC言語で書かれている」= true ということになります。
釣られてもいいけど、今日は気温も書き込みも寒いからやめとく。
>>379 ココモナはObjective-Cだと思うけど
基本はGAMEではないだろうか。 そんな俺はべーマガ世代
>>380 (^Д^)ギャハおいおい、マカー用。がC言語で書かれているだって???
やっぱり9以下だとコンパイラの選択肢は2つしかないのか
このあいだ道を歩いてたら見知らぬ外国人に「お前から見たら俺は外人かもしれないが、 俺から見たらお前だって外人なんだよ!!」と言われました。確かに彼の主張は正しいと思います。
>>384 少しはおもしろいネタに、全然おもしろくないレスを返す奴って・・・。
>>385 Cでコマーシャルプロダクツ作れるようなもんつーとCWとMPW位かな?
THINKはPascalはフリーになってたけど、Cの方はわからんしねぇ。
SesamiCとか入門用のがあったけど、ああいうのはなんだしねぇ。
SymantecC++がフリーになるとかなったとかって朗報は永遠に届かないだろうしねぇ。
ま、CW買う金があったら大人しくOSX買っちゃえ!つーか動くマシンも一昔前のG3マシンとOSXセットで買った方が安上がりかもよ。
古いマシンでただでプログラミングやりたいなら NetBSD を入れるのが良いんじゃない? 上手くすれば Mac OS X でも動く。
>>385 「C」で....となれば実質的にはそうなる。
まあマカならばそろそろOSXを導入する時期ではないかと。
391 :
名称未設定 :03/04/26 21:01 ID:9WeQVIYR
たまにage
>>389 それが一番かもね。とおもってふと気付いたのだが、NuBUS PPC Macの椰子は厳しそうやね。
まだNuBUSPPCでMkLinux以外のぱっとした話って聞かないよね?
まぁ、いずれにせよOSX動くのお買いってことだが。
ttp://www.wakayama-u.ac.jp/~tokoi/opengl/libglut.html ここを見て、端末エミュレータと cc で OpenGL の勉強をしてるけど、GLUT 内で
使える文字コードが Shift-JIS で、ファイル名に使える文字コードが UTF-8 っつー
のはどうしたものか。端末エミュレータのエンコーディングは EUC にしてまふ。
UTF-8 と EUC は良いけど、Shift-JIS はやめて欲しい。"表" が文字化けする・・・。
あ、上記サイトは Mac OS X での設定も書いてあり、お勧めです。
もしやとおもって、/usr/share/locale/ 見て LC_CTYPE を ja_JP.SJIS に設定 してみたけど、素の gcc って Shift-JIS 通す方法は無いのかな? "表示" とかするのはダルい。。。
395 :
名称未設定 :03/05/01 13:57 ID:tfKGB9pt
Objective Cやるなら、smalltalkやってからの方がいいと思う の俺だけだろうか? そもそもobjective CってCにsmalltalkのコードを埋め込む ような感じだと思うけど。
>>395 とりあえずOOPやる前にSmalltalkやっとけ!ってのに一票(藁
C++とかJavaだけで育っちゃうとなんかOOPな物の見方が無い人になっちゃいがちな感じ。
Cマガとかもあれだもんなぁ(鬱
ま、とりあえず今ならVisualWorksNC7.1でそこはかとなく遊べるんで尊師のページとかを行間読みしてSmalltalkやってみるといいかもしれん。
それでもそんな手間をかけてまでってのはそうはいなさそうだったり。
398 :
名称未設定 :03/05/10 22:48 ID:tVVc/Skk
期待age
399 :
名称未設定 :03/05/20 05:15 ID:+SHpoV5D
printf ("Age World!!\n");
400ゲリ
401 :
名称未設定 :03/05/20 13:45 ID:r6T6gtxO
gets(); 400++
保守
403 :
名称未設定 :03/05/28 04:01 ID:RlBeXo4p
int main() { bool T_T = true; if (T_T) exit(); }
あぼーん
Mac OS X の GLUT は mui 入ってないね。
406 :
名称未設定 :03/06/02 00:54 ID:MVX6YoJ5
>>395 SmalltalkでもObjective-Cみたいなブラケット記法はなかったと思うぞ。
if文もelse文も演算子も全部メッセージのSmalltalkは、ちょっとした
カルチャーショックを受ける……。
>>406 をいをい(w
>SmalltalkでもObjective-Cみたいなブラケット記法はなかったと思うぞ。
ブロッククロージャ忘れちゃっちゃぁ(汗
ブラケットで囲うのはブロッククロージャよろしくこの中は素のCとは違う世界だよと言いたいんだろう>Objective-C。
で、たまたまブロッククロージャのやり方を見習ったと。
ここで識者のコメント求む!とかやっても無駄だろなぁ(汗。
識者が見てないのに1票。
C に Smalltalk 風のメッセージ式を盛り込む為にブラケットを使っている。 >395 の言っている事は普通に言われている事だけど。 ObjC をやる前に Smalltalk やったら、ObjC に戻ってこなくなるかもね。 ObjC を全て (Smalltalk 並に) 動的に書いたら、Smalltalk の方が実行速度が 速くなるかもって ObjC に書いてあったが、どんなものだろう。
>>408 > ObjC をやる前に Smalltalk やったら、ObjC に戻ってこなくなるかもね。
まあそれはさすがにないとは思いますけど、Smalltalk環境のサービスに
慣れるとProject Builderとかでフラストレーション感じるかもしれませんね。
でも Interface Builder で挽回?(笑)
言語としてのSmalltalkを知っておいたほうが良いか悪いかは非常に
難しいと思います。Smalltalkのオブジェクト指向って、Smalltalk環境
を前提にしているところがあるから、他の環境の処理系では当てはまらない
ことも多々ありそうだし。たぶん
>>407 Objective-C は通常、ブロッククロージャライクなオブジェクトは
サポートしていないですよね? [] は、ブロッククロージャとは異質な、
メッセージ式を明示化するための記法に過ぎないとの理解でいます。
ちなみに、
ttp://wwwa.dcns.ne.jp/~nito/objective-c/answer-16.html によると、Portable Object Compiler なるものは、ブロッククロージャ
を Action expressions としてサポートしているらしいですね。
ただ、[] は使えないので {} を使っています。これだと、Smalltalk の
条件分岐みたいなことも Objective-C でもできるみたい。
[ { code that might fail } ifException: { code to handle the exception } ];
とか。
411 :
407 :03/06/03 02:43 ID:3vowOttO
>>410 Thanx
てかあの書き方だとまるでブロッククロージャがObjective-Cにあるような感じになっちゃいますな。吊ってこよう。
でもPOCのAction expressionsって面白いでつね。
しかし{}の立場がややこしい事になっちゃってますね。まぁ[]の中に大人しくしてるんだから大丈夫だろうけど。
うっかり/*の片割れがどっか行っちゃったりしてアホな事になりかねんな<漏れのようなヘタレのばやい。
>>410 > これだと、Smalltalk の
> 条件分岐みたいなことも Objective-C でもできるみたい。
>>406 の夢を壊してもいかんのですが、ちなむとSmalltalkの条件分岐。
たしかに見た目はブロッククロージャを引数にメッセージ送信を
しているものの、内部(バイトコード。マシン語みたいなものですね)
では展開して、通常の条件分岐になっちゃっています。たとえば、
[111=222 ifTrue: [333] ifFalse: [444]] method symbolic
を見てみると、
29 <89> pushThisContext:
30 <75> pushConstant: 0
31 <C8> send: blockCopy:
32 <A4 08> jumpTo: 42
34 <24> pushConstant: 111
35 <25> pushConstant: 222
36 <B6> send: =
37 <99> jumpFalse: 40
38 <23> pushConstant: 333
39 <90> jumpTo: 41
40 <22> pushConstant: 444
41 <7D> blockReturn
42 <D1> send: method
43 <D0> send: symbolic
44 <7C> returnTop
などとなっていまして(26-32が 1=2 ifTrue: [3] ifFalse: [4] に相当)
メッセージ送信はしていないことが分かります。細かいことをいうと
Smalltalkもズルいことをしている例として。
「26-32が 1=2 ifTrue: [3] ifFalse: [4] に」 ↓ 「34-40が111=222 ifTrue: [333] ifFalse: [444]に」でした。
>412 メッセージ送信だとどうなるの?
>>414 ifTrue:ifFalse: の代わりに bisIfTrue:ifFalse: を定義して置き換えて
使うとこんな感じです。
[111=222 bisIfTrue: [333] ifFalse: [444]] method symbolic
33-36 省略
38 <23> pushConstant: 111
39 <24> pushConstant: 222
40 <B6> send: =
41 <89> pushThisContext:
42 <75> pushConstant: 0
43 <C8> send: blockCopy:
44 <A4 02> jumpTo: 48
46 <25> pushConstant: 333
47 <7D> blockReturn
48 <89> pushThisContext:
49 <75> pushConstant: 0
50 <C8> send: blockCopy:
51 <A4 02> jumpTo: 55
53 <26> pushConstant: 444
54 <7D> blockReturn
55 <F2> send: bisIfTrue:ifFalse:
56-59 省略
お願いしておいて何だけど、op コード全然分からないわ・・・。 内部的にメッセージ送信になってないのはコストの問題?
>>416 そうですね。コストの問題だと思います。まあ、op コードは難しく
考えずに単なるスタックマシーンのそれだと思っていただければ、と。
Objective-C は、昔は Smalltalk から C へのトランスレータだった
そうです。一見、とんでもないことをしているかのように驚きますけど、
こうして内部処理をみると、なんてことはないのだなと思えてきて
楽しいですね。if 文とか goto 文(!)とかあったりして。
で、ついでに言っちゃうとそういうの知らんぷりしつつFoundationKitとAppKitだけ使うも良し 下に降りてCであれこれできちゃったりも良し ってダボハゼらしーとこがええよね。 って、うっかりCでメモリリークしてますが(死
419 :
mog2003 :03/06/15 23:30 ID:TWuzfrzD
ま、いちお保守。
FLTK が Mac OS にネイティブ対応したみたいなんだけど、Mac で C++ 言語 って話題はとんと聞かないね。Qt も wxMac もあるし、あとは FOX くらい なんだけどな。
421 :
名称未設定 :03/06/17 00:04 ID:jN55sDib
>> 409 >まあそれはさすがにないとは思いますけど、Smalltalk環境のサービスに >慣れるとProject Builderとかでフラストレーション感じるかもしれませんね。 iTunesの元祖みたいなUIは結構好きだったりする。 > Objective-C は、昔は Smalltalk から C へのトランスレータだった > そうです。一見、とんでもないことをしているかのように驚きますけど、 SquakのVMと同じような?
>>421 > iTunesの元祖みたいなUIは結構好きだったりする。
むぅ…。私は Apple の GUI ウィジェットデザイナの爪の先ほどのセンスと
緻密さが Squeaker たちにもあれば、もっといろんな人にアピールできたのに…
と悔やまれます。
逆に GUI デザインはともかく、エディタが(ってか、コンパイラと環境が)
至れり尽くせりでサポートしてくれる様を、PB もそろそろちったぁ真似して
くれよって感じです。コンパイル&ラン型だと限界もあるのでしょうが…。
まあ、いずれにせよ、Mac OS X は Smalltalk 環境に、Squeak は Mac に
学ぶべき点は多々あります。そういう意味で、ユーザーとして Apple に
要望を出すのに、Objective-C 遣いが Smalltalk やその環境を勉強して
おくことに意味がないこともないかなぁとも。
たとえば、Smalltalk でセレクタ名は長くてもいいから内容を反映したもの
にすることが推奨されるのは、環境にインタラクティブなスペルコレクタが
組み込まれているからで NSObject でもそれをするなら、相応の環境を
PB に整えてくれ、とか。オブジェクト指向言うなら、多態しやすいように
セレクタの逆引き辞書くらいアクセスできるようにしておけよ、とか。
> SquakのVMと同じような?
そう。Squeak の VM を作るときに Smalltalk のサブセットコードから
C へのトランスレートをした、ってやつですね。よくご存じで。
423 :
名称未設定 :03/06/26 01:02 ID:L359Hz9n
>422 smalltalk開発環境の話題をするうちに、Xcodeが出たけど、どういうもんかよう 分からん。 Apple版、System Browserという解釈でいいのかな? 機能的にそれっぽいが。
Xcodeは要するにProjectBuilderのリプレースっぽい感じだよね。位置づけとしては。 しかしCocoaがCarbonにすり寄ってProjectBuilderがXcodeに化けて、C++とかにすり寄る感じが GNUstepと共通コードで済ませようとしてる漏れには辛い未来だ。 そろそろ落せるようになったかな?>Xcode。まだ落せないみたいだったけど。
んなこたあない。 selectを自慢したかっただけ。
seed欲しいOnlineはSelectとかPremiumでアセット余ってるとことお友達になって譲ってもらおう。
428 :
山崎 渉 :03/07/15 15:12 ID:34L7LbqJ
__∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄
429 :
名称未設定 :03/07/21 01:45 ID:PBwYGd88
age
hage
学校から課題が出てわからないので教えてください。。 二つの配列a,bにあらかじめ値が設定されている。配列aとbのそれぞれの要素を加算して配列cに格納し、その結果を出力するプログラムをつくりなさい。ただし、配列はaとbは以下のような値が設定されているものとする。 int a[10]={43,76,22,28,31,45,63,70,49,51}; int b[10]={12,85,46,99,36,27,19,62,44,81}; (出力) a b c 43 12 55 46 85 161 22 46 68 28 99 127 ... ... ...
432 :
問い2 :03/07/30 03:46 ID:G1a4SuuL
整数値を繰り返し読み込み -1,0,1 およびそれ意外の場合で それぞれ"Error","False","Trueを出力するプログラムを作りなさい。 なお-2が読み込まれたら、プログラムを終了するように作成しなさい。
433 :
問い3 :03/07/30 03:47 ID:G1a4SuuL
商品が7個ずつ箱詰めする時、商品の数を入力し箱の数を出力するプログラムを作りなさい。 なお、商品の数が0だったらプログラムが終了するようにしなさい。
434 :
答え :03/07/30 03:51 ID:7MOkTx90
そんな問題を出す学校は辞めてしまいなさい。 by マカー
435 :
名称未設定 :03/07/30 04:17 ID:aiyi3B/R
436 :
名称未設定 :03/07/30 05:12 ID:tQdITK7+
問い3については、環境についての限定条件がないから、 答:アルバイトを雇ってそうするように指示する というような、業務プログラムを作るって方法もあるな。
437 :
名称未設定 :03/07/30 05:15 ID:e0S5Khz+
先生! 半角バックスラッシュはどうやって出すんですか!
>>431 int main(int argc, char *argv[]){
printf("a b c\n");
printf("43 12 55\n");
printf("76 85 161\n");
printf("22 46 68\n");
printf("28 99 127\n");
printf("31 36 69\n");
printf("45 27 72\n");
printf("63 19 82\n");
printf("70 62 135\n");
printf("49 44 93\n");
printf("51 81 132\n");
return 0;
}
>>435 吊られんなよ、
>>434 はドザだよ。
低能な書き込みを、わざとマックユーザーだと思わせるために
わざわざマカーって言葉を使ってるあたり墓穴掘ってるね。
自分でマカーと言う香具師はドザか差別用語と認識してないバカーくらいだよ。
440 :
431 :03/07/30 10:56 ID:Gw2pwLfU
>>438 ありがとうござります。。
でもfor文を使ってやれということらしいのだけど
そのプログラムでも出来るのならやってみます。
ありがとんございまする。。。
>>431 おいおいネタかと思ってたけどホントに分からないんだな。
でもそういうのは他人に聞かずに自分でやるのが原則だぞ。
配列cは計算によって出すんじゃなくて?
#include <stdio.h> #include <stdlib.h> main() { int a[10]={43,76,22,28,31,45,63,70,49,51}; int b[10]={12,85,46,99,36,27,19,62,44,81}; int c[10]; for(i=0; i<10; i++) { ここでほげほげする(教えない) } } ほげほげの部分はprintfだとだけ教えておこう。 あとはマニュアル見ながらがんばれ。
つーか、この問題なんで配列cが必要なんだ?
445 :
431 :03/07/30 11:30 ID:Gw2pwLfU
>>436 環境についての限定条件ってなんでしょうか・・?
while文 if文を使うことはわかっているのですけど。。
446 :
431 :03/07/30 11:37 ID:Gw2pwLfU
>>441 今、夏期集中講座っていうのでUNIXとC言語をやってるのですが、
昨日でC言語使ったの3日目なんですよ。。
んで昨日いきなりこのような問題を7問だされて
やってこいと・・・。
自力で4問出来たのだけどあと3問がどうしてもできないのです。。
>>443 あ、すっごいありがとうございます。。
それだけ情報いただければあとは出来ると思います。。
ありがとん。。。。m_m
面倒くさくなったから省略するけどヒントだけ。
>>432 値の読み込み(入力のことか?)にはgets()を使う。
そのご、読み込んだ文字列(数字じゃなくていい)が"-1", "0", "1" と等しいか、
もしくは等しくないかをif 〜 else を組み合わせて、該当する文字列("Error"とか)
を吐くようにprintf文を書く。
>>433 whileなんかいらんぞ。
商品の数 ÷ 7 をやって、剰余が 0 だったらそのまま、
剰余が1以上だったら、それに+1したものが答え。
if文で作れる。
忘れてたけど、 剰余を出す演算子は % だよ
449 :
431 :03/07/30 11:55 ID:Gw2pwLfU
c[i] = a[i] + b[i]; printf("%d"a[i],b[i],c[i]); こんな感じでございましょうか・・?
>>449 だいたい合ってるけどprintfの中身が違う。
451 :
431 :03/07/30 12:02 ID:Gw2pwLfU
>>447 問い2。入力にはscanfではダメなんでしょうか?
問い3。
#include<stdio.h>
void main()
{
int m,n,hako;
printf("shouhin no kazu ?");
scanf("%d",&n);
printf("shouhin no kazu = %d\n",n);
m = n % 7;
if(m == 0)
{hako = n / 7;}
else
{hako = n / 7 + 1;}
printf("hako no kazu = %d\n",hako);
}
こんな感じだと思うけどこれだと違うのですよね。。
わからんちん。。
>431 問2は 入力文字列を整数に変換。 整数にならなかったら脂肪。 switch文でごにょごにょ。
453 :
431 :03/07/30 12:05 ID:Gw2pwLfU
>>450 printf("%d %d %d\n",a[i],b[i],c[i])
こうでせうか・・?
454 :
431 :03/07/30 12:06 ID:Gw2pwLfU
最後に;←これ忘れた。。
scanf キター!!(AA略
>>451 いや、別にscanfでもいいけど、入力に数字以外が入ったりしたら困るかも?
scanfを使っていいのなら、switchを使うのが簡単かな。
switch (hoge)
{
case -1:
case 0:
case 1:
default:
}
問い3はそれで合ってると思うが。
457 :
431 :03/07/30 12:12 ID:Gw2pwLfU
>>456 あーりがとうーございますー。。。
早速考えますです。>(hoge)
問3は「商品が0のとき終了する」っていうのが
入ってないのでどこにどういれたらいいのか謎なんです。。
EOFっていうの使うらしいのだけどEOFの使い方が
謎すぎるんです。。
>>457 EOF?
商品の数を入力されて、表示した時点で
n が0以下かどうかを判別して、もしそうなら
return(-1);
であぼーんする。
というのでできるよ…
459 :
431 :03/07/30 12:17 ID:Gw2pwLfU
>>458 えええそれどうやるんですか・・・・??
それで出来るならそれ教えてほすぃーです。。。。
今osxのデペロッパーツール入れたので
プロジェクトビルダー使って、
さっきのプログラム実験してみまっする。。
プロジェクトビルダー使い方わかるかな・・・。
>>459 ちょっとまてぃ
UNIXとCの勉強してるのに
ProjectBuilderを使うとはどういうこっちゃ?
ターミナルでコンパイルできるだろーが
こういう簡単なプログラムならそっちのほうがテキストエディタ使えるから楽
ちなみに実現方法は
…nに入力された後…
if(n < 0) {
(適当な処理、まぁエラーメッセージだね)
return(-1);
}
…つづき…
いじょ。
これから出勤なんでまた夜に会おう さらば
462 :
431 :03/07/30 12:23 ID:Gw2pwLfU
>>460 それがですね・・
ターミナルでccコマンド使おうとしたら
謎のメッセージが出てきて使えなかったのですよ・・
・・・・でも今やってみたらcc使えました・・w
ふう。。。。やってみますですー。
ccコマンドはPB入れたら使えるようになるだけの話でつ んじゃね
464 :
431 :03/07/30 12:25 ID:Gw2pwLfU
>>461 あーありがとうございました・・。
でもこの課題あと3時間ほどで仕上げないと
だめぽなんでつw
がんばりまっするー。いってらっさいー。
465 :
431 :03/07/30 12:32 ID:Gw2pwLfU
問1できました〜。ありがとうー。。
466 :
名称未設定 :03/07/30 12:43 ID:c3sypdZb
先生!半角バックスラッシュはどうやって出すんですか!
468 :
431 :03/07/30 12:47 ID:Gw2pwLfU
問2やってみたんだけど test2.c: In function `main': test2.c:6: invalid lvalue in assignment test2.c:3: warning: return type of `main' is not `int' とか言われたあ。。。 どこがおかしいのでせうか・・? #include <stdio.h> void main() { int a; scanf("%d",&a); while(scanf("%d",-2)=EOF); {switch(a){ case -1 : printf("Errorn"); break; case 0 : printf("Falsen"); break; default : printf("Truen"); break; } } }
469 :
431 :03/07/30 12:48 ID:Gw2pwLfU
あーなんか化けてる。? ?の部分は\nでございます。
>>469 化けてないよ。Osakaで半角バックスラッシュなんてあるんだ。
/////////
>>468 mainの戻り値をintに。
scanf("%d",&a);を消して、while(scanf("%d",-2)=EOF); -> while(scanf("%d",&a)!=EOF)に。
472 :
431 :03/07/31 01:00 ID:TDY4ivb1
>>471 できますた・・ありがとんございますm_m
しかし今日また課題が出たので一応載せときます。。。
頑張るけどわからんかったら教えてくだされ。。
問1
平均値を求める関数average()を作成し、10名の数学の得点を読み込み、
その平均点を求めるプログラムを作りなさい。
入力例 出力例
45 63.900000
78
97
・
・
473 :
431 :03/07/31 01:03 ID:TDY4ivb1
問2 入力された任意の数の倍数を求めるプログラムを作成しなさい。 入力する数値は2つ。倍数を求めるための任意の数と倍数の上限値です。 ここでいう上限値とは、 任意の数の倍数をどのくらいの数まで求めるかということです。 /* この問題はまだ手つかずなので全くわかりません。・。・。 */
>>472 ちゃんと自分にできる限りのことをやって、なおかつ
どうしても解決法が分からないならスクロールさせること。
[ヒント]
for文を二重にする。
ういっす。
475 :
431 :03/07/31 01:05 ID:TDY4ivb1
問3 1からnまでの総和を再帰呼び出しを使って計算する関数sowa()を作りなさい。 問4 キーボードまたはデータフォルダから読み込んだ文字列中に 'A'があったら'a'に変換するプログラムを配列とポインタを使って書きなさい。
なんやここは ガキがC言語の宿題を教えてもらうスレか 夏 厨
まぁちょっと頼り過ぎやな。確かに。 しかしいきなり再起呼び出しとかムズカシイこと吹き込む先生でつね
478 :
431 :03/07/31 01:07 ID:TDY4ivb1
>>474 あ、スクロールしてしまいました・・w
でもfor文の二重なんて難しそうです。。
一重でも手こずるのに。
がんばりまっする。
479 :
431 :03/07/31 01:07 ID:TDY4ivb1
おーーい 大丈夫かぁ? あまりにも理解力が足りな過ぎるぞい。 for( …… ) { for( …… ) { …… } } 【再起呼び出し】 int hoge( int moge ) { int n; ………… hoge( n ); }
481 :
431 :03/07/31 01:19 ID:TDY4ivb1
>>480 あーありがとうございます。。
とても喜ばしいでございます。。
ちょっとだけ酔っぱらってるので
お風呂入ってユックリしてから頑張ろうと思います。。
m_mアリガトンゴザイマス
482 :
431 :03/07/31 02:39 ID:TDY4ivb1
問1まじわからん・・・。 関数の使い方が謎すぎる。。
みんな、JTerminal の文字コードは何にしてるの? 俺は Shift JIS ですけど。
こういっちゃなんだが、市販の入門書を買え 問1はこうしろってのか? main() average()に飛ぶ average() forなどで10回読み込む。それらを足して、合計を表示。
JTerminalを使う理由がわからん。 Terminal.appだとだめなん?
486 :
431 :03/07/31 09:39 ID:0B+eJGTq
>>484 今日買いに行きます。。
問一は関数を定義して関数を引用するらしいです。。
よくわからんです。。。
つーか、ちゃんと授業聞いてたのか疑問になってくるな。
まあ理解力なんて人それぞれだから…
489 :
431 :03/07/31 10:48 ID:0B+eJGTq
>>487 かなり聞いてましたです。。
周りの人達も全く理解出来ていないようで。。
独習Cを買って参りました。。
それでもわからまへん・・。w
んじゃ、アレだ。 そんな講義やめちまえw ちゃんと学校に抗議して「この講師の授業はまったく分からない」 といわないと直らへんよ。
夏期集中講座といったって集中し過ぎのような気が・・・ 「5日間C完全マスター」とかそんなのか? 無理な日程で勉強が嫌になるより、 本読みながらじっくりやっていった方が良いと思うぞ。 ま、久々に面白かったけど
492 :
431 :03/07/31 11:29 ID:0B+eJGTq
気合いでなんとか作りました。。。 もっと全然短く出来るんだろうけどこれで精一杯でございます。。 でもaverageがどうしても整数になってしまう。。どして実数にならないの・・? 学校は今日で終わりなので今日の15:30まで しばしこのスレを使わせてくださいませ。。 さて、、問2をやろう・・・。
493 :
431 :03/07/31 11:30 ID:0B+eJGTq
#include <stdio.h> main() { float a,b,c,d,e,f,g,h,i,j,sum,A(float); printf("hitorime ha "); scanf("%f", &a); printf("futarime ha "); scanf("%f", &b); printf("sanninme ha "); scanf("%f", &c); printf("yoninme ha "); scanf("%f", &d); printf("goninme ha "); scanf("%f", &e); printf("rokuninme ha "); scanf("%f", &f); printf("sitininme ha "); scanf("%f", &g); printf("hatininme ha "); scanf("%f", &h); printf("kuninme ha "); scanf("%f", &i); printf("jyuninme ha "); scanf("%f", &j); sum = (a,b,c,d,e,f,g,h,i,j); printf("Average is %fn",sum); } int A(float a,float b,float c,float d,float e,float f,float g,float h,float i,float j) { float x; x = (a+b+c+d+e+f+g+h+i+j)/10; return x; }
494 :
431 :03/07/31 11:34 ID:0B+eJGTq
別にhiorime ha とか一人一人を区別する必要はないのだけど したらfloat [10]とかでもっと短くなるのかなあ。。。?
495 :
431 :03/07/31 11:38 ID:0B+eJGTq
>>490 そうなんですよ。。多分講師が悪いんじゃなくて
内容が濃すぎるのだと思います。。プリント多すぎるし。。
今日は多分ポインタ、構造体、共用体をやるっぽいです。
>>491 講座が終わったらゆっくり勉強しますです。
10日間でUNIXとCをある程度出来るように
するみたいでございます。。
496 :
答え :03/07/31 11:40 ID:1ZiDg8TA
#include <stdio.h> #define NUMBER_OF_STUDENTS 10 void average() { float score = 0, sum = 0; int i; for(i = 0 ; i < NUMBER_OF_STUDENTS ; i++) { scanf("%f", &score); sum = sum + score; } printf("%.7f\n", sum / NUMBER_OF_STUDENTS); } int main() { average(); }
497 :
431 :03/07/31 11:47 ID:0B+eJGTq
>>496 ・・?それでできるんでふか・・??
なんかよくわからないけどスゴイでふ。。
ああ。。感動しますた。。。。。。アリガトントンm_m
498 :
431 :03/07/31 11:49 ID:0B+eJGTq
ぬおおぉぉぉぉぉおおおおお、、、実行?できますた。。。 すばらすぃです。。。ありがとおおおおおおおぅっっ!
499 :
答え2 :03/07/31 12:00 ID:1ZiDg8TA
#include <stdio.h> int main() { int num, max, mul = 0; printf("number = "); scanf("%d", &num); printf("max = "); scanf("%d", &max); mul = num; printf("...\n"); while(mul <= max) { printf("%d\n", mul); mul = mul + num; } } 負の数が入った時のエラーチェックはしてない。
500 :
431 :03/07/31 12:05 ID:0B+eJGTq
>>499 スゴーw
ありえない早さで追随されてるような気分でつ。。
アリガトントン・・・。。いつの日か素敵なアプリを作って贈呈しまつ。。。。
501 :
431 :03/07/31 12:09 ID:0B+eJGTq
あーなんか実行結果が綺麗でつ。。。 なんか申し訳なくなってきますたw
>496 averageという関数に求める機能は>493の方が正しいような気がする・・・ mainの中でscoreを配列で初期化して averageにポインタを渡したら? >495 今日はポインタか。 C最大の難所だからガンバッチクレ
503 :
答え3 :03/07/31 12:20 ID:1ZiDg8TA
#include <stdio.h> int sowa(int max) { static int num = 0, sum = 0; num++; sum = sum + num; if(num < max) sowa(max); return(sum); } int main() { int n; printf("n = "); scanf("%d", &n); if(n <= 0) { printf("error\n"); return(-1); } printf("sowa = %d\n", sowa(n)); }
>>502 面倒くさいからズボラかましただけだよw
本当ならavarage()は平均だけ求めて返さないといかんね
でもそれはそれで見通しの悪いプログラムになるから主義に反する。
505 :
431 :03/07/31 12:34 ID:0B+eJGTq
>>502 うーん、、>493で出力されるaverageが
実数にならないのはなぜでしょうか・・?
floatにしてるのだけど小数点が切り捨てられて
35.215785だとしても35.000000になってしまいます。。
ポインタって難しいのですか。。ついていけるかな。。
頑張りマウス。。
>>503-504 ありがとんございます。。。
感謝のお茶をどうぞ。。旦~
506 :
431 :03/07/31 12:59 ID:0B+eJGTq
キーボードまたはデータフォルダから読み込んだ文字列中に 'A'があったら'a'に変換するプログラムを配列とポインタを使って書きなさい。 これわかりまつか・・? 授業中いつの間にかポインタもやってたみたいです。。 独習しまつ。。-_-
>>505 >うーん、、>493で出力されるaverageが
>実数にならないのはなぜでしょうか・・?
関数の返り値がintだから
>ポインタって難しいのですか。。ついていけるかな。。
一回の講義じゃ絶対理解できんと思うよ。
いっぱいプログラムを書いているうちにだんだん分かってくるんで、
今日分からなくっても気にすることは無い
508 :
431 :03/07/31 13:14 ID:0B+eJGTq
>>507 下から4行目のintをfloatに変えたらいいのですかね?
それでもできませんでした。
もちっとがんばります。
ポインタは昨日やったっぽかったです。。
昨日は「2進数と8進数と16進数と文字コードと関数と
戻り値と動的変数と静的変数とスタックと再帰呼び出しと
配列とポインタ型変数とそれの宣言」をやったみたいです。。
僕はさっきの問一をずっと考えていたので
他の内容があんまり頭に入ってないみたいでふ。。w
10日間か ほかの言語知ってれば、なんてことないだろうけど ポインタ以外は難しいもんじゃないから
>>506 よく分からんがこんなんでいいかな?データ入力はキーボードから。
#include <stdio.h>
#include <string.h>
void A2a(char *toStr, char *frmStr)
{
char *p, *q;
for (p = frmStr, q = toStr; *p != '¥0'; p++) {
if (*p == 'A')
*q = 'a';
else
*q = *p;
q++;
}
*q = '¥0';
}
int main(int argc, char *argv[])
{
char buf[1024], ret[1024];
fgets(buf, 1024, stdin);
A2a(ret, buf);
printf("%s¥n", ret);
return 0;
}
>>510 もいっこ。
void A2a(char toStr[], char frmStr[])
{
int len;
int i;
len = strlen(frmStr);
for (i = 0; i < len; i++) {
if (frmStr[i] == 'A')
toStr[i] = 'a';
else
toStr[i] = frmStr[i];
}
toStr[i] = '¥0';
}
簡単に。これもアリ。 ファイルを読み込ませるには Atoa < test.txt のようにする。 #include <stdio.h> #define MAX_STR 255 int main() { char str[MAX_STR]; char *temp; temp = fgets(str, MAX_STR, stdin); while(*temp != '\0') { if(*temp == 'A') *temp = 'a'; temp++; } printf("%s", str); }
513 :
431 :03/08/01 01:27 ID:uJJiGuSu
ただいま帰りました。
>>510-512 ありがとうございます。なにやら難しげなので、じっくり解析いたします。
明日テストなのだけど、なぜか今日また課題が10問も出ました。。
全部載せるのは申し訳ない&不甲斐ないので3問だけ載せまする。。
ご検討くださいませ。。もちろんムシしてくださってもオケーでつでつ。
問1 コマンドで指定した複数のファイルを読み、
ディスプレイに表示するプログラムを作成せよ。
ファイルがない場合はファイル無しと表示して
プログラムを終了させること。
実行方法 a.out ex05.c ex06.c ex07.c
問2 次の10個の整数配列と平均値と標準偏差を求めるプログラムを作成せよ。
int a[10] = {50,40,70,80,90,45,65,95,85,92}
問3 フィボナッチ数列の漸化式で第1項から40項まで求めるプログラムを作成せよ。
時間があれば再帰法でも作成してみてください。
Xi = Xi - 1 + Xi - 2
但し X1=1 X2=1 とします。
漏れさぁ、プログラムはできても数学わかんないんだよねw
515 :
431 :03/08/01 01:29 ID:uJJiGuSu
問2 整数配列と平均値→整数配列の平均値
516 :
431 :03/08/01 01:31 ID:uJJiGuSu
>>514 そうでございますか。僕もできないですヨ、
しかもプログラムも出来ないっていう二重苦ですw
なんでこんな難しい問題出すのか謎すぎます。。
今日でCいじくったの4日目なのに。。過労死寸前でつw
ということで、自力でやれ。
数学板行ってこい
数学板行ってこい なっちしか分かんねぇ
フィボナッチ数列 1 1 2 3 5 8 13 21 34 55 89 … 式 Xi = Xi-1 + Xi-2 X1 = X2 = 1
521 :
431 :03/08/01 13:49 ID:uJJiGuSu
問2と問3はググってハッケソしたのでそれをコピペしますた。。 もっとゆっくりじっくりCのお勉強したいですたい。
たぶん fopen〜fread〜fclose かな? このへんほとんど使ったことないので、とっかかりのみ (全角スペース入ってるからコピペしないでね) FILE *f = fopen("ファイル名", "r"); /* r = Read Only */ if ( f == NULL) { /* ファイル無い */ printf("ファイル無し\n"); exit(EXIT_FAILURE); } /* ファイルあったので何か表示する */ fclose(f); /* fopen したら fcolse しれ */ あとはググって頑張れ〜
具具ってコピペって… おまえ授業をなんだと思ってるんだ?
このぐらい自力で解けないやつは役に立たないからいらないよ。 by ソフトハウス
つうかググるなよ。 授業の意味ないじゃん。 > もっとゆっくりじっくりCのお勉強したいですたい。 ついていけないんだったら授業やめて本とWebで学べば?
526 :
名称未設定 :03/08/01 20:38 ID:sjsRsQrh
誰へのレスということもないが Objective-CやるのにC言語の知識なんていらないでしょ 実際俺は生まれて初めて学んだのがC++だし
せっかく親切に教えてやってたけど単に答えが知りたいだけだったのかと思うと 腹が立ってきた。
C分からなくても笑えるスレですね。
>>526 初めての言語はファミリーベーシックだった
>>530 そのネタは下らないネタレスがズラズラ続くからやめておけよ。
ゴメン、懐かしくて…
533 :
山崎 渉 :03/08/02 02:04 ID:EjhDFmQC
(^^)
>>431 問1
がんばれ。
#include <stdio.h>
#ifndef BUFSIZ
#define BUFSIZ 1024
#endif
int main(int argc, char *argv[])
{
FILE *fp;
char buf[BUFSIZ];
int len;
int i;
for (i=1; i<argc; i++) {
fp = fopen(argv[i], "r");
if (fp == NULL) {
printf("ファイル無し¥n");
return 1;
}
while (!feof(fp)) {
len = fread(buf, sizeof(char), BUFSIZ, fp);
fwrite(buf, sizeof(char), len, stdout);
}
fclose(fp);
}
return 0;
}
winでCの教育受け始めたプログラミング初心者なんですが、 家にあるのはMacなんでMacで実験しようと思ってDevTool入れました。 よくわからないままにProjectBuilderいじってたらmain.cというのができたんで、 terminalでmain.cのあるディレクトリに移動まではしたんですが、 その後のコンパイルと、実行のコマンドがわかりません (unixも初心者でcdとlsとpwdしか知らないんです) どうすれば terminalで動かして確かめられるのでしょうか。
cc っていうか何か本買えば?
>>534 アリガトウです。でもifndefとかdefineは
まだ辿り着けない領域なのでございます。
授業は終わったので今は自宅でじっくりCのお勉強をしております。
もう少しレベルアップしたら参考にしますです。
>>535 ターミナルでccというコマンドを打って
スペースを開けてそのmain.cをターミナル上にドラッグ&ドロップ。
んでリターン?(エンター?)をオス。したら./a.outというコマンドを入力してリターン。
Carbon で Input Method の扱い方の参考になるサンプルコード無いでしょうか。 Apple のドキュメントは Pascal まじりでよく分からない・・・。
539 :
535 :03/08/04 01:09 ID:Yh0QcOcp
>>536 ,537
動きました!ありがとうございます。
winの本しかなかったので、
main.exeが出来てくるものかと思い込んでいましたが
違うんですね(ソリャソーダ)
ところで./って「このディレクトリ」ですよね?
なんで指定しないと(ただ a.out と打つだけでは)だめなんでしょうね。
unixの参考書探しに逝こう。
ダメなんでしょうね、って そりゃパスが通ってないからだろ MS-DOSでも同じことだべ
あとccの出力をa.outにする奴はアフォ
>541 そだそだ。 make main が正解。
>543 ありがとうございます。 今そこを見つつ、あるアプリの日本語化してます。C beginner なんで遅々と して進んでいませんが・・・。 たまたま 538 を書いていた時に見ていたドキュメントが古かったみたいです。 サンプルコードも見つけたのですが、classic で動く物(非カーボン)でした。
参考書に載ってたプログラムが terminalで実行できないのですが どうしてでしょうか? #include<stdio.h> #include<stdlib.h> int main(int argc, char *argv[]) { int i; double d; long l; i=atoi(argv[1]); l=atol(argv[2]); d=atof(argv[3]); printf("%d %ld %f",i,l,d); return 0; }
>545 実行できない、の意味がいまいち分かりませんが、 1,コンパイルする。 // まさかとは思うけど。。 2,フルパスもしくは相対パスを使用して実行する。 /Users/foo/hogeとか./hogeとか 3,数値として認識可能な3つの引数を必ず付加する。 ./hoge 1 2 3 とか ソースについてはコメントを控えさせていただきます。(w
>>546 んっと、ファイルの名前がs.cっていうんですけど、
terminalでmake sってコマンドを実行すると
bus errorとかいうのがでるのですよ。
なんででしょうかね?
日本語おかしかったらすみません。
>>547 無理しないでProjectBuilderを
使った方が良いんじゃないすか?
コンパイルまで面倒見てくれる参考書を買え
551 :
545 :03/08/08 10:50 ID:VLdd2RcQ
Terminalでconio.hって使えないの?
find /usr/include/ -name conio.h -print
ポインタってファイルシステムで言うところの エイリアスやシンボリックリンクみたいなものという理解でOK?
ポインタってZ80で言うところの HLレジスタとかで計算するみたいなものという理解でOK?
ポインタって囲碁で言うところの アゲハマを計算するみたいなものという理解でOK?
ポインタって メモリーマップ書くと理解しやすいと言う事でOK?
ポインタってマリオで言うところの ルイージみたいなものという理解でOK?
ポインタってBASICで言うところの POKEやPEEKという理解でOKです。
560 :
560 :03/08/13 03:07 ID:E2iFzYXT
漏れは >561 が正解だと思う。
1+1=2
なにげに三十路っぽい方が多数。
563 :
名称未設定 :03/08/13 23:45 ID:ew3AYW1p
ポインタお父ちゃんのためにあるんやないんやで〜
564 :
hoge ◆44uJ1pz5J. :03/08/13 23:50 ID:4h2daBnu
頭がクラクラしそうになるほど低レベルだなおい
あぼーん
質問です。 PowerMac8600/250 OS9.1の環境です。 これからCを勉強してみたいのです。 取りあえずAppleのMPWのC言語パックを用意できました。 これ以外に安い開発環境はありますか。 英語が苦手なので日本語環境があるとうれしいのですが。
>>567 とりあえずMac用って考えるならMPWが一番お安いのは確か(つーかフリーだしね)。
MacMiNTとか入れてgccって手もあるけど、環境構築が面倒かの?
SymantecはPascalはフリーで公開してたけど、C/C++の方はどうだっけ?
たぶんMPWで日本語のサイトを2〜3見回して環境の癖を見てみるといいかも。
あとはあれだね。パーティション区切るなり別のドライブ突っ込むなりしてLinuxなり*BSDなりを入れるって手かね?
570 :
569 :03/08/15 23:19 ID:P5ELRGNW
571 :
567 :03/08/16 15:37 ID:/lvlGN1O
>568,569 ありがとう。 取りあえずSimpleIDEをダウンロードしました。 これからチャレンジしてみます。
なんとなくここ読んでたらMPW久々にいぢりたくなってSystem7.5.5なPowerBook5300に突っ込んでしまった。 環境になじむまでにかな〜り時間がかかりそうな感じ。
>560 ポインタってパタリロが持ってる、先に手の形のものが付いた棒のこと、だよね。
改行コード選択?
575 :
名称未設定 :03/08/26 07:11 ID:P10ahE7W
Macでプログラミング覚えてもどこで通用するの?
あんまり Mac とか関係ないと思うけど。 全角カコワルイ
サンデープログラムをマターリとやる場合Pascal/Modula系の方が好きなのですが OS9までで動くフリーのコンパイラってありましたっけ?
578 :
名称未設定 :03/08/26 10:35 ID:x+ZohV3P
>>575 通用するとこはある。
割と待遇のいいとこもあるが、苦しいばかりで大変なとこもある。
誰かドライバ書かない?楽しいよ〜。
んなわけねー。
どうりでマックでアプリが増えない訳だ レベル低すぎ
C覚えるのにマックもWinも関係ないだろ。馬鹿か?
関係あるよ WinAPI使わないプログラムなんてありえないし
Winのプログラマはレベルが高い。 俺はWinのプログラマである。 ゆえに、俺はレベルが高い。 上の文の誤りを指摘せよ。(50点)
>>581 頭がイカれてるにもほどがあるな。
>>582 Winのプログラマは頭が悪い。
オレはWinのプログラマである。
ゆえに、オレの頭は悪い。
584 :
名称未設定 :03/08/26 15:22 ID:SOKrWQDs
>>581 >関係あるよ
>WinAPI使わないプログラムなんてありえないし
同じことをム板でも言えるのかなぁ。
>>581 >WinAPI使わないプログラムなんてありえないし
UNIX/Linux/BSDのコマンドラインツールを書くのに
Win32APIの知識は必要ですか?
UNIX系以外の例を持ってこない
>>581 はUNIXユーザーを自慢したいか
実は良く分かってない人
>>581 がドザでないというささやかな事実が無ければそれなりに面白かったのだが、さて
>WinAPI使わないプログラムなんてありえないし 単にドキュソ専門学校逝ってるレヴェルなら、そういう思い込みもありかと
まあ、「WinAPI使ってるからダサイ」と思い込んでいるDelphi初心者もいるわけですしお互い様。
あ、スマンそれはMFCだったな。 つーか板違いだな。重ね重ね。
どっちにしてもあれだなぁ。 潰しの効かない椰子は以下略ってパターンではあるよな。 マ板あたりのWinプログラマがどーのってスレを思い出すなぁ(w ま、また〜りいこうや。
592 :
578 :03/09/01 03:17 ID:+KnQ98DT
>>591 ずーっとMac仕事ばかりやってきたから、最近のWindowsの開発事情とかよくわからん。
インターネット黎明期に一山当てて、とっとと引退したかったなあ・・・。
今からじゃ相当難しそうだ。
593 :
名称未設定 :03/09/01 23:09 ID:m9hBefz3
Project Builderを使って、 テキストファイルを読み書きするコマンドラインのツールを 作ろうとしたのだが、読み込んだ時に日本語が化けてしまう。 テキストはS-JISだが、プログラムはunicodeで動いているから そういう問題が起きるようなのだが、何か良い解決方法とか無いかね。 テキストファイルをunicodeに変換 → ファイルサイズが変わるからやりたくない ソースコードをS-JISに変換 → ソースコード内の日本語文字列でコンパイルエラー ファイルを読み込んだ後でS-JIS→unicode変換 → unixとかで動いてるツールなんで修正が面倒 なんかこー、S-JISを自動で認識できる設定とかないかね。
>594 単にTerminal.appの設定が悪いのでは? とか言ってみる。
>>594 CFとかちゃんと使ってみるってのは?
まぁ、Terminal関係の設定にも1票だけど。
597 :
594 :03/09/03 10:05 ID:KLWZcS3P
>595-596 レスサンクス。terminalでどうにかできる問題なのかな。 やろうとしてる処理の簡易版が下記。 #include <stdio.h> #include <string.h> int main (int argc, const char * argv[]) { char str[256]; FILE *rf_p = NULL; rf_p = fopen( "sample.txt", "rt" ); if( rf_p==NULL ) { printf( "file open failed %s\n", "sample.txt" ); return -1; } fgets( str, sizeof(str), rf_p ); printf( "%s\n", str ); if( memcmp( "伊予", str, strlen(str) ) == 0 ) { printf( "Ok\n" ); }else { printf( "NG\n" ); } fclose( rf_p ); return 0; } で、sample.txtには「伊予」とだけ記述されていて、 動かすとNGになってしまう、と。
>>597 PerlかphpかRubyで書いた方がいいんじゃない?
iconvとかNKFとか
>>597 strlen(str) と strlen("伊予") の結果が異なるから。
ごめん。何でも無い。忘れてくり。
602 :
597 :03/09/04 15:10 ID:Sz0ge05S
このスレ的には、Project Builderで Cのプログラムを書いてはいけないということでFA?
というか、日本語を扱うなって感じ
というか、日本語とかを素で扱うなってだけって気が
横から失礼しますが、 素が駄目なら、何を使えばよいのです? ってか、英語がわからなくて希望の関数を見つけだせないですが。 なんだ、ダメなだけじゃん>わたし。
自分のことをダメな奴だなんて言って欲しくない。たとえ何があっても。
607 :
名称未設定 :03/09/15 22:50 ID:/SVdZo/t
./age
608 :
名称未設定 :03/09/15 23:11 ID:NG2VHhsx
>>597 fgets()で受け取った文字列は改行コードも含んでいるぞ!!
配列strに格納されている最後の改行を削るか
比較文字列に改行コードいれとけよ。
しかし落ち込む必要はない。
fgetsをはじめて使ったやつは大概はまる。
俺もな!
main() { printf("age"); }.
610 :
名称未設定 :03/09/28 02:23 ID:al4P2Cce
agaってないよ
>610 最後の"."でコンパイルエラーになったためだと思う。
ageるならソートしないと
保守
今日、ブックオフでMacintoshではじめるCプログラミング という本を半額(内税で約2,500円)で買ってしまいました。 ズブの初心者ですが付属のCodeWarrior lite for Cを使い、 やってみました。取りあえずこの本だけはがんばって読み終えたい。
615 :
名称未設定 :03/11/06 12:12 ID:NKP2FIFl
>614 がんがれ
今日MPWというものをダウンロードしてきた。
>>617 を〜がんばってくれ〜
かなりしんどいけど、日本語の解説サイトとかもそろそろ絶滅気味なんで、見つけたら
ローカルに保存しておくといいかも。
mpw-dev-mlあたりのログを片っ端から見るのも手ではあったり(英語だけど)。
日本語のmpwmlはまだ活きてるのかな?
619 :
617 :03/11/17 23:49 ID:8IF/8Bs4
まあ実はこれといった目的もなかったりするんだけども・・・w 正直ウィンドウ使うようなのは書かない(けない)と思われます。 まあたまに計算とか、そういうのをさせるときに便利かなという完全にANSI Cな 邪道な使い方を目論んでいるので。 でも普通にマニュアルとかなくても普通にHello Worldとかラクチンにできたので、 けっこう感動してます。いいですね、これ。
620 :
618 :03/11/20 15:13 ID:owC3cx9s
>>619 ANSI Cとしての使い方というところだとどのバージョンでどのあたりまできちっとフォローしてるか
ってのを把握しないとドツボに嵌ったりする罠もあるんでがんばってください。
C++あたりに手を出すとあれだよね。stlポートの日本人(名前忘れてるし)とかがんばってたけど、
おそらくその辺の人たちもみんな今はXcodeあたりに主戦場が移ってるだろうから。
とはいえ、617のポストで使ってなかったPowerBookにOS8.6突っ込んでMPW入れちゃったのは漏れ(w
621 :
名称未設定 :03/11/21 19:04 ID:xP4FqKez
∧ ∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 〜′  ̄ ̄( ゚Д゚)< age!! UU ̄ ̄ U U \_____________
>>619 >まあたまに計算とか
そうゆうのはBasicのMetalの方がめちゃくちゃ簡単。
>>622 MacsBugが電卓になってる漏れは逝ってよし?(死
624 :
619 :03/11/24 22:58 ID:NN2wUBKG
んーでもBASICとか分からないからなあ、 Cから入った口なので、BASICを覚えるのは煩雑そうです。 まあ知ってる知識を流用って部分で、Cなんですが、 でもこれ、わりと普通に使えてます。
625 :
名称未設定 :03/12/12 01:41 ID:+kw8Xu3c
スレ違いだったら申し訳ないのですが、わからないことがあるので助力お願いします。 現在 Cocoa + Objective-C でプログミングしているのですが、C++ のライブラリを使う必要があります。とりあえず Objective-C と C++ を混在 (Objective-C++)させる方法はわかったのですが、肝心の C++ の方がどうにもわかりません。 次のようなサンプルコードを書き、g++ でコンパイルして無事に出力できたのですが、 cout << "ANS=" << A <<endl の部分で A が何をしているのかがよくわかりません。ここで A は何か特別なメンバー関数を実行しているのでしょうか? #include <iostream.h> #include "hoge.h" int main (void){ HOGE A(3,3); A = 1, 1, 1, 2, 2, 2, 3, 3, 3; cout << "ANS=" << A <<endl; return (0); } 出力 :------------------- ANS= 1, 1, 1, 2, 2, 2, 3, 3, 3; -------------------
>626 クラスHOGEがoperator<<をオーバーロードしてるってことかな。 >A = 1, 1, 1, 2, 2, 2, 3, 3, 3; 長くやってないのでこれの意味が分からないけど。 これってコンパイル通るの?
>>627 確かoperator =ちゃんと作ってあれば通るよ。
vectorへの一括代入とかに使う。
629 :
626 :03/12/19 14:04 ID:DWhqze6L
>627, 628 ありがとうございます。疑問が解消しました。 なるほど、C++ はそういうこともできるのですね。 それとも C や Objective-C でもできる事なのでしょうか。
>629 演算子オーバーライドはC++の機能。 多用乱用は禁止
signed long longの数字をprintfで出力するには% 何と書けばいいですか?
死守
633 :
名称未設定 :04/01/11 20:30 ID:NJCqorU9
634 :
名称未設定 :04/01/20 20:23 ID:HhX93C/s
ほしゅ
635 :
名称未設定 :04/02/01 03:13 ID:NEVhtD4i
while(1) puts("保守!");
このスレまだあったんだ。
2ヶ月前にレス
>>631 %lld
他のformatも調べるんだったら
man 3 printf
雑談しかしてねえmacでプログラミングスレなんかより、こっちの方が有用。
ヌッチョルドン ソッチョルドン
639 :
名称未設定 :04/02/21 17:34 ID:TvQBSVF0
#include <stdio.h> int main(void) { printf("良スレです。落とすには惜しい。"); return(0); }
ExitToShell();
今さらMPWなんだけどねえ 吐き出すアプリのFinder Flagを最初っから変更しとこうと思ったら .makeを作った後でそれにSetFile云々を書き加える以外に方法無いのかねえ Create Build Commands...のときに指定できると楽なんだけどねえ
643 :
342 :04/02/25 20:59 ID:ipeQf62q
初めて見たけどCheckBox-Clock ワラタ 鼻水出ちゃった
small talk
CheckBox-Clock おもろい。
緊急保守
バーガー
649 :
名称未設定 :04/04/28 00:06 ID:eAo4wklK
最近、生まれて初めて「ぷろぐらみんぐ」なるものを習い始めたわけですが、
なんとその言語が「ふぉーとらん77」なのです。(当方、学部2年)
で、ググって見たところ、、、こんなのばっか↓
http://www.damp.tottori-u.ac.jp/~ooshida/edu/f77/ こりゃ、化学系でもC言語なるものやっといたほうがいいんじゃないかなと
思いまして入門書を物色中なのですが、プログラミングもずぶの素人が理解できる本てありますか?
大学生協行っても、いろ〜んな本がイパーイあってわっけわからんし。
情報系の知り合いに聞いても、「どれでも同じだよ。Cって簡単だし。」とか言うし。。。
ちなみに、パソコン弄りに関しては、HTML書いたり、Windows機に自力でTeXを入れて、
TeXでレポート書いたりするくらいはなんとか。(w
ゴールデンウィークにでもやってみようかと思ってるんですが、オススメを是非教えてくださいませ。
ここよりム板で聞いた方がいいんじゃないの
>>649 そのコースはFortran77教えるんでしょ? 何でFortran77のテキスト用意しようとしないの?
よそ見し過ぎじゃないの?
並行して独習するとかって話??? ならFortran77を出す必要なんかないだろ???
>651 良く考えると同意. 時期的にはまだ授業って初まったばかりだな...
職業プログラマ目指してるんじゃなくて 化学の道を進んでるんだろ。 化学の現場ではまだFORTRAN使われてると思うよ。 スーパーコンピュータで使われてる言語は、 多分まだFORTRANが一番多いんじゃないのかな。 商用のスーパーコンのページでも探して どんな言語が走るか見てみるといいかも知れない。 そっちの分野でやるのは科学技術計算だからね。 動画編集ソフトとかWebブラウザ作ってるんじゃないんだから。 FORTRAN77は古臭い言語で 特に入出力関係はかなりクセのある言語だから 後々使う事になるかも知れない事を考えたら 一度はやっといた方がいいと思うよ。 実際プログラムに手を入れる事はなくても それ用の入力ファイルを作って計算させる場合もあるかも知れないし。 で、授業はたいしたことやらない。 プログラミングのイロハをやって入出力に慣れるとかそれくらいだから ちょうどいいんじゃないか? もし自分でプログラミングを書けるようになりたいと思うんなら 授業とは別に独学でやるのがよいと思う。
(高い)FORTRANコンパイラは賢くて、ループ見てAltivec命令はいたりしてくれる。 数値計算やるならCコンパイラよりずっと優秀。
656 :
649 :04/04/28 16:06 ID:eAo4wklK
たくさんのレス、ありがとうございます。m(_ _)m
>>651 Fortran77ですが、
>>654 さんの言うように一回の授業で一つの構文を習って、
演習して提出してくださいねってものです。ちなみに、Fortranの教科書も買いました。
>>654 プ板のFortranとCのスレ読んでも、科学技術計算分野ではまだまだFortranが優勢なようですね。
で、授業の担当教官にちょこっと聞いてみたら、
「両方とも出来るとベターだね。興味があるならFortranと平行していじってみてもおもしろいね。」
とのことでした。何でも、考え方自体はそんなに変わらないとか。
そんなこんなで、暇を見つけながら独学でやってみようかなと言うことになり、
『猫でもわかる C言語プログラミング』なる入門書を買って参りました。
最初に「プログラミングの仕組み」なんて章もあったりして、ずぶの素人にもわかりやすそうな感じなので。
わからないときにココで質問することもあるかも知れませんが、やさしく教えてくださいませ(^ ^;;
>656
> 猫でもわかる C言語プログラミング
これを買ったのか..
ttp://www.kumei.ne.jp/c_lang/ の内容では満足いかない?それとも調査で行きつかなかった?
もし調査でいきつかないなら調査不足.
Fortranへの単純な批判文言を鵜呑みに信じる点も調査不足な気がする.
そのあたりも研究には必要な気がする.
658 :
649 :04/04/28 22:47 ID:eAo4wklK
>>657 本は、単に生協のC言語コーナーの入門書セクションの中で、一番良さそうだったからです。
(ほかの本の多くは、他の言語でやったことがないとつらそうだったり、
プログラミングについての基礎的なの記述があまり無かったのです。
C言語関連の書籍は100冊近くありましたが、入門書は10冊くらいで。。。)
新しいこと覚えるときに、入門書一冊買って読み込むのが好きなもんで、
いずれにせよ本は買っていたと思います。(TeXやドリウェバのときもそうでした)
おっしゃる通り、Fortranへの批判を若干鵜呑み気味ですが。。。(^ ^;;
ただ、両方使えた方がより良いわけですし、「つぶし」もきくかなぁと思いまして。
>>658 > 何でも、考え方自体はそんなに変わらないとか。
プログラミング言語は目的までの命令を記述していくもの。
FortranだろうがC言語だろうが同じ。
ただ、それを実現するための記述方法が違うだけ。
ただ、って簡単に言ってるが、ここがつまづくポイントなんだよナー
一つの言語をやりこんだ方が、プログラムの組み方について早く理解はできる。これは時間的なメリット。
平行してやると時間はかかるが、一つの言語に凝り固まった発想はある程度防いだり、
言語によって目的を実現するための記述方法の違いが具体的に見れる。これは将来的なメリット。
どちらを選ぶかは649次第。
> おっしゃる通り、Fortranへの批判を若干鵜呑み気味ですが。。。(^ ^;;
> ただ、両方使えた方がより良いわけですし、「つぶし」もきくかなぁと思いまして。
つぶし?仕事にすることも視野に入れてるの?
仕事はそんな甘いもんじゃないぞ。
両方使えた方が良い なんて当たり前のこと鵜呑みにするなよ。
両利きの方が片腕潰れた時にいいかもなー、なんて言ってるのと同じレベルだ。
両方使えた方が良いに決まってる。
まあ、両刀使いは人としてどうかと思うけどな。
プログラミングに興味、若しくは何か目的があるならC言語もやるのは良いと思うが、
Fortranをまずはしっかりやろう。授業の課題はくだらなくてもきちんと出しておこうな。
セクシャルマイノリティー差別はんたーい
保守
662 :
名称未設定 :04/05/30 13:55 ID:woXIqgmR
★
664 :
名称未設定 :04/07/05 19:27 ID:k4eFt8bv
保守がてら質問を一発。 Game用BGMの前提でmp3ファイルを使いたいのだけれども 曲が途切れずにループさせるよい方法はありませんか。 GetMovieFromFile()で取得した後、 StartMovie();〜(曲終了)〜GoToBeginningOfMovie(); となるんかなと思いますが、曲終了時のupdateEventを待っていたのでは 一旦途切れてしまいます。
(質問してる割にはえらくさいのですが) system7サウンドを使えってのは無しで。
そんなヘボイ方法を使わなくても、元々QuickTimeにはループ機能があるが...
667 :
名称未設定 :04/07/13 21:47 ID:Sl939yRG
668 :
名称未設定 :04/07/13 22:52 ID:sE2/2Cfa
I = 668 TO 670
return;
>>667 hintsLoopとloopTimeBaseを使ってループしても途切れが
気になるならそれはcodecの限界
元データを工夫するか、2つに分けて交互に再生すれば良い。
ヒュー*ンクス相変わらず素敵なぼったくり加減でつな。
ほしゅー!
673 :
名称未設定 :04/09/04 00:46 ID:QLAE1n4a
半分忘れたC++のリハビリの為になにかプログラムを 書きたいんだがライブラリは何がいいだろうか? PowerPlantでC++の勉強をしたんで、 同じようにGUIのプログラムを書きたいんだが今更 CWなんて買えないし、0からフレームワークは 書けないし・・・(MFCはきらいだ!!!) X11のプログラムってXCodeでかけるっけ?
>X11のプログラムってXCodeでかけるっけ? 書けるよ。 X11CallCarbonAndCocoaってサンプルもあったりする。
>673 Objective-C++ は冗談だけど、X11だろうがwx利用しようが、いろいろできる。 Unixで可能な事はほぼ可能です。
PowerPlantってどうゆう物なのかと思って、コードヲーリアの説明書見たら、何も載ってない。 どうやって使うんだよ。
677 :
673 :04/09/04 16:52 ID:QLAE1n4a
678 :
名称未設定 :04/09/16 21:09:41 ID:dD7AdZsf
>>676 CW Pro 3 には日本語のpdfが付いてたよ。
今思えばあれが初めてのデザパタとの出会いだったのだなぁ。
679 :
名称未設定 :04/09/30 19:28:32 ID:23A+roXx
保守age
680 :
679 :04/09/30 19:32:46 ID:6MD4GHxQ
間違えた ageてから 逝ってきます
681 :
名称未設定 :04/10/02 14:24:41 ID:q0mFzq1S
682 :
名称未設定 :04/10/03 22:44:54 ID:Qa+djrNP
683 :
名称未設定 :04/10/04 00:15:51 ID:35GfHxAM
>>682 それは激しく期待します。
smartegg愛用してるんだけど、いちいちWinから印刷してるし。
684 :
名称未設定 :04/10/10 00:53:32 ID:ovLMtpw1
やっぱり開発系の雑誌が1つくらいはほしい。隔月でもいいから。 少し前まで2冊あったのにいま存在するの?記事を書ける人がいないんだろうか? 昔からの開発者が書くとしたらCarbonだろうか?でもCarbonはToolBoxの頃とはほとんど別物らしいし。 Cocoaでちゃんとした記事が書けるのは限られた人だけだろうし、一部は性格が曲がり気味だしw オイラ的にはUnixの側面はある意味おまけ位の位置づけなのよ。確かに使えれば便利だけど。 だから読みたい雑誌がうまく見つけられないのが悲しいなぁ
685 :
名称未設定 :04/10/10 07:00:38 ID:y6ENvqbm
>>684 英語の方もMacTech元気なさそうだしね。オンライン版の雑誌が1誌位ずつ日米にあるんだっけ?
どっちも続いてるのかは不明だけど(購読してねぇんでわからん。すまぬ)。
ライターが居なさそうというより印刷物にした時にペイできるだけの購買者層が足りないってのが
最大の原因じゃなかろうか?というか雑誌自体月刊なら月刊で内容が出た時には古いという罠だし
付録CDとかもこれだけ常時接続が当たり前になるとメリット少ないしねぇ。
とりあえず今ならXcode突っ込んでサンプルをいじる所から比較してみては?
日本語の開発サイトもCocoaの方はそれなりに入門からちょい上位まであるし(Carbonの方は
もういいやって感じなんで探しもしてないけど、探せばあるかもね)。
とりあえず英語でO'ReillyとOmniとStepwiseでそこそこ足りてる部分もあったりして。
686 :
名称未設定 :04/10/10 11:29:46 ID:3n8Y/kEm
参考書の、Macintoshアプリケーションプログラミング上下を、今から入手するすべは無いでしょうか?
687 :
名称未設定 :04/10/10 15:37:55 ID:y6ENvqbm
688 :
名称未設定 :04/10/10 23:40:33 ID:bnKHr/vI
>>686 このまえbookoffで、上巻見かけたよ
いろんな古本屋回ればあるんじゃない
689 :
名称未設定 :04/10/11 01:33:38 ID:MfXGmXho
690 :
名称未設定 :04/10/11 16:58:20 ID:pE3mjseQ
691 :
名称未設定 :04/10/12 20:12:59 ID:7H/QqInV
Amazonの中古で評価良い人の出品本を買ったんだけど、 かなり汚かった。汚いって初めから書いてくれてたら 良かったんだけど。しかも、ほぼ定価に近い値だったし。 ToolBoxも使わなくなったし。。。。。くそ〜
692 :
名称未設定 :04/10/12 22:03:05 ID:8UQ5oxrA
納屋探検してみた Macintosh アプリケーションプログラミング 上・下 Macintosh C プログラミング Toolboxを使いこなす Macintosh ツールボックス ResEdit完全版 Visual Architect なんか涙出てきた・・・。
693 :
686 :04/10/13 01:02:55 ID:wqWh2XQL
ありがとうございました。 アマゾンで注文してしまいました。
694 :
名称未設定 :04/10/30 17:08:23 ID:FBOoomef
マック(OSX)でC言語を始めたいんですが 最も簡単な方法を誰か教えて下さい。 ホームページのCocoaはやっぱり!はさっぱりでした・・・ ふつうに"Hello World"から始めたいんです。
695 :
名称未設定 :04/10/30 17:24:48 ID:AI/hE7qB
cocoaはやっぱり!はMacでのアプリケーションを作るためのサイトですから、 C言語とはチョト違いますよ
696 :
名称未設定 :04/10/30 17:31:23 ID:8F1jYRD8
Hello Worldから解説してるような入門書(UNIX,LINUX用)を買ってきて そのままやればいいんでないの? ターミナル使ったこと無ければUNIXの入門書も合わせて買うといいかと
697 :
名称未設定 :04/10/30 17:33:52 ID:EwlJ4fIb
main ( void ) { printf("ハローワールド"); return 0; }
698 :
名称未設定 :04/10/30 20:56:39 ID:BX/PzOha
699 :
694 :04/10/31 01:15:52 ID:15tXOsDl
みなさん、ありがとうございました。 ターミナルでviと打ち込んだらすぐにできました。 大学ではリナックスしか使わないんでターミナルの存在を知りませんでした。
700 :
名称未設定 :04/10/31 02:00:10 ID:cW8wsIoC
>>699 Xcode かProjectBuilderじゃだめなの?
701 :
名称未設定 :04/10/31 02:02:38 ID:Xb9Pi6P+
大学の課題やるぐらいならターミナルとViで十分だしょ
702 :
名称未設定 :04/10/31 02:25:01 ID:zkW05JLt
>>699 >大学ではリナックスしか使わないんでターミナルの存在を知りませんでした。
_, ._
( ゚ Д゚)・・・? すまん、本気で意味が分からん。
703 :
名称未設定 :04/10/31 03:29:43 ID:Xb9Pi6P+
OSXにTerminal.appというものがあることを知らなかったってこったろ
704 :
名称未設定 :04/10/31 03:37:48 ID:D3y/JuBk
>>694 うーん.Terminal.app は知らんのは仕方ないとして,
Linux 使ってるのに,X11 や xterm すら知らんのか orz
ちゃんと,X11 インストールしてるか?
705 :
名称未設定 :04/11/16 01:56:00 ID:HTtNvdAJ
ぽしゅ
706 :
名称未設定 :04/11/17 00:26:18 ID:OCcPHeqg
startx
707 :
名称未設定 :04/11/25 21:32:17 ID:0q9TqZ6R
ちょっと長くなりそうなので前略させていただきます cc -c source1.c cc -c source2.c cc -o my.app souce1.o source2.o したいとします.このときの各ソースが source1.c int flag; main() { function1(); exit(0); } source2.c int flag; function1() { some_function(); } となっているのは問題ないのですかね?
708 :
名称未設定 :04/11/25 21:32:38 ID:0q9TqZ6R
つまり,最終的に一つのアプリとしたいソース群で グローバル変数を使いたいけどもこれで良いのでしょうか. とりあえず今のとこ動いてるようなんですが. 一つのグローバル変数を複数のソースで別個に宣言してる のがなんかおかしい気がしまして,,, でバグ用にグローバル変数を使いたくてこんなことを やっています,,,
709 :
名称未設定 :04/11/25 21:50:42 ID:0q9TqZ6R
すんません,やはりおかしい気がするので,各ソースで それぞれ別個にグローバル変数設定しました,,,
710 :
名称未設定 :04/11/25 23:21:47 ID:50EWgKyH
hoge.h --- extern int flag; // global 変数の宣言。どこかでflagが確保されているので使ってもいいよ的な意味あい。 --- hoge.c --- int flag; // 実体の確保。一カ所だけ! --- source1.c ---- #include "hoge.h" ... ---- source2.c ---- #include "hoge.h" ... ---- Makefile --- OBJS = hoge.o source1.o source2.o my.app : $(OBJS) cc -o $@ $(OBJS) source1.o : hoge.h source2.o : hoge.h hoge.o : hoge.h --- いろんな場所でglobal変数を宣言すると分けわかめになるのでまとめた方が身のため。 まあ、使わずにすむならそれに越したことはない。
711 :
名称未設定 :04/11/25 23:24:30 ID:3qvt2RdT
>>709 ソース2のほうでexternを指定しろ。そうすれば共有する。
extern int flag;
712 :
名称未設定 :04/11/25 23:49:08 ID:0q9TqZ6R
おぉーありがとうございます おっしゃる通りのわけわかめな長ーいソースがありまして コイツを切り分けてるとこなんです. まあ書いたのは自分なんですけど,,,, あわせてMakefileの書き方もべんきょうしてるとこです ありがとございました データはグローバルにしないように作ったので でバグがすんだらグローバルは無くなるはず,です,,,
713 :
名称未設定 :04/12/01 23:59:03 ID:bF/Flxbn
ぜっっっっっっったいに(appleの)gccのバグだ! と思ってlinuxに持って行ってコンパイルしたら やっぱり同じエラー吐きやがったorz くそ苦節数時間書き直した方が早いような 気がしてきたぜorz 素直にデバッガの使い方勉強しようかな…
714 :
名称未設定 :04/12/02 00:17:59 ID:nRuTsr6R
gccのバグと断定する程の香具師がデバッガの使い方も知らないって、 あり得ることなの? 俺には信じられん。知識のアンバランスさの違い加減が。
715 :
名称未設定 :04/12/02 02:15:56 ID:tBrUrBcT
for( ; ; )
716 :
名称未設定 :04/12/02 02:19:01 ID:0CnRVUOL
俺はgdbの使い方なんてしらないけど、駄目?
717 :
名称未設定 :04/12/02 09:12:50 ID:DNboQxkW
>716 俺は c と p と po と そして help は知ってる! id で宣言してるとXcodeのデバッガで中身が見えないから po は必須だね。 って、ここはC言語のスレじゃないか!!!!
718 :
714 :04/12/02 14:03:18 ID:tDlkWPOI
使い回しの数百行のプログラムの関数を一部 書き換えたらコンパイル時にエラーするようになって、 ある関数であるポインタを触ると SegmentationFault するようになった。引数の対応とか変数の宣言全部調べても 間違いは見当たらない…という状態でした。 結局、問題の関数のプロトタイプだけ宣言してやったら 問題なくなりました。 (もともと関数プロトタイプが宣言されてないプログラムだった)
719 :
名称未設定 :04/12/06 08:42:47 ID:+rzz3ovW
>>718 それってプロトタイプ宣言をしてない時に "たまたま" 動いてただけじゃない?
720 :
名称未設定 :04/12/06 11:02:41 ID:Kjry2J8b
関数プロトタイプって引数と戻り値をコンパイラが コンパイル時にチェックするためものじゃないの? 平たく言えば、あった方が好ましい、という程度の もんと思ってた。
721 :
名称未設定 :04/12/06 11:58:08 ID:xBUvIvt1
C2PStr と c2pstr ってどう違うんですか?
722 :
名称未設定 :04/12/23 02:50:49 ID:YzFDu9Kz
age
723 :
名称未設定 :04/12/23 06:08:24 ID:vKr1j0nY
int age;
724 :
名称未設定 :04/12/23 07:26:26 ID:l4kkFL8Z
ADC Reference Library読むのマンドクセ 日本語訳出してよapple それとも既に出てるのか?
725 :
名称未設定 :04/12/23 22:40:00 ID:DzN3ruCH
>ADC Reference Library読むのマンドクセ >日本語訳出してよapple >それとも既に出てるのか? 確かに欲しいね、日本語訳。 appleで出す気がないのならMOSAあたりで訳してほしいな、WIKIみたいな形でもいいから。
726 :
名称未設定 :04/12/29 04:22:09 ID:u7RpbBer
いっそのこと本にして出版してくれ
727 :
名称未設定 :04/12/30 14:29:24 ID:gay93NU5
本にすると馬鹿高いだろうからPDFがいいなあ
728 :
名称未設定 :04/12/30 15:27:08 ID:eiVxKZE1
HTMLの方が良いっす
729 :
名称未設定 :04/12/30 16:22:07 ID:H4At5RJU
>>728 同意。
Webで公開して随時修正してくれたら一番いい。
730 :
名称未設定 :04/12/30 21:01:02 ID:54ioL6u7
>>724 昔、2chで有志が集まって翻訳してウプしてたけどアポージャパンに
問い合わせたら著作権の侵害だからヤメレって言われたんだよね、、、
731 :
名称未設定 :04/12/30 21:15:30 ID:H4At5RJU
何がしたいんだろうね阿ポージャパン。
732 :
名称未設定 :04/12/31 00:21:10 ID:G9ckX8nQ
733 :
名称未設定 :04/12/31 01:12:25 ID:ZR1sj9Te
何もしたくないなら訳させてくれてもいいのにね。
734 :
名称未設定 :04/12/31 16:52:54 ID:mt6plHW+
なんか80年代にも似たような事件があったなぁ。 株式会社アップルがダメなのはそのときから変わんないのか。
735 :
名称未設定 :04/12/31 17:04:54 ID:mLGctEds
だからMacはシェアウェアが多いのか。
736 :
名称未設定 :05/01/01 02:27:38 ID:gO7OD/z9
そりゃ手間を考えたら金も取りたくなるわなあ でもシェアにすると色々と絡んでくるからなあ
737 :
名称未設定 :05/01/01 03:19:18 ID:uO6Livzv
ググったらかってに翻訳されたドキュメントがいくつか出てきた
738 :
名称未設定 :05/01/01 20:50:09 ID:Qah9ivPt
ヒロシです。 バグ出して再起動する度に、うちのマックは新年の挨拶をしてくれるとです。
739 :
名称未設定 :05/01/06 01:29:44 ID:w0ksi9PA
マカーはPASCALだろうて。
740 :
名称未設定 :05/01/06 01:32:56 ID:AD3MY+dv
>>739 それは絶滅危惧種。いや、もう滅びたと思われ(w
741 :
名称未設定 :05/01/06 04:09:15 ID:GSLkz37K
そして絶滅危惧種のObjectiveC
742 :
名称未設定 :05/01/06 04:35:14 ID:M3mQkVIX
OS X があるかぎり大丈夫では?
743 :
名称未設定 :05/01/06 05:51:09 ID:GSLkz37K
微妙にPascalの匂いがするのよ
744 :
名称未設定 :05/01/06 12:44:42 ID:AD3MY+dv
>>743 もはやCarbonの中にも見つけるのは難しいだろ?
745 :
名称未設定 :05/01/06 14:48:09 ID:8JyREwFH
いま、プログラミング言語のシェア1位は何ですか?
746 :
名称未設定 :05/01/06 15:37:19 ID:Txoi/uNa
TRON
747 :
名称未設定 :05/01/06 17:24:19 ID:h9hEDxY5
C言語のCはChosonのCニダ
748 :
名称未設定 :05/01/06 18:28:47 ID:N2XGr6KE
VisualBasic
749 :
名称未設定 :05/01/07 02:00:41 ID:sOYF7T4f
分野によってかなり異なる。 Objective-Cがトップでないことだけは確か。 動的で面白いけど。
750 :
名称未設定 :05/01/18 06:33:14 ID:7wzg7AD1
うわさのCCガールズ
751 :
名称未設定 :05/01/18 07:15:38 ID:/LDHInDq
昔Cを知らずにToolboxでプログラミングしてたけど、全然駄目だった やっぱCからやったほうが早いに決まってるけど、 それじゃモチベーションが維持できないから、平行して学べってなっちゃうよね
752 :
名称未設定 :05/01/19 10:08:48 ID:fhC4m9xZ
Cを知らずに・・・? 「良く理解しないまま」ってことかな。 ポインタを使った参照逆参照や配列が一通り分かってればだいじゃぶ。
753 :
名称未設定 :05/01/19 11:14:00 ID:/4WHajJ8
TOOLBOXは色々な言語から使用できるのだよ馬鹿チン。
754 :
名称未設定 :05/01/19 11:57:22 ID:69E+ixjG
Pascalで出来たのはいつごろまでだっけ? ヘッダみればそこらじゅうにpascalってキーワードがあったけど 実際使ってる人は見たことない。 おいらもCがわからない状態ではじめて →ポインタ周りの理解がイマイチなのでToolboxAPIがわからん →あきらめて(何故か)マシン語の勉強 →ポインタがわかった!で、Macに戻る →とりあえず動くものが出来たけどぜんぜんMacらしくない →PowerPlantのサンプルを見ると簡単そうだ →C++の勉強 →PowerPlantのソースを追っかけまくってフリーウエアぐらいなら作れるようになった →次はNeXT買収でCocoaとObjective-C??? プログラミング暦はほとんどMacしかないです。仕事はWin環境だけど
755 :
名称未設定 :05/01/19 13:19:16 ID:7ZNKW3Pa
適当な関数とかクラスの名前にfooとかbarとかhogeとか使われるよね hoge.foo()とかhoge.bar()とか あれって何か語源はあるの?
756 :
名称未設定 :05/01/19 13:41:24 ID:ZACX0ehw
>755 「ほげ学」で検索してください。 「ほげ」はもはや一つの学問なのです。 :-)
757 :
755 :05/01/19 22:43:20 ID:EktezbA7
758 :
名称未設定 :05/01/19 23:01:58 ID:iNbPzVAu
綴りは違うけどFBI初代長官エドガー・フーバーが語源だと思ってた
759 :
名称未設定 :05/01/20 22:59:34 ID:8uDuUoun
で、結局このスレは今なんのスレになってるんだ?
760 :
名称未設定 :05/01/21 18:51:13 ID:kEaxaUR9
ここはMacでPascalスレ。 誰かオープンソースでPPCPascal作らない? Objective-Cとダイレクトリンク可能なような。 あ、スマン。俺PPCコードわからねぇや。
761 :
名称未設定 :05/01/22 01:48:38 ID:WabgvIpv
普通に考えてPascalの呼び出し規約はObjective-Cのそれとちゃうやろ そこんとこどうするつもりよ
762 :
名称未設定 :05/01/24 18:32:27 ID:ThPcSsBo
どうせObject PascalからObjective-Cのクラスへは、メッセージ送れないの で、言語仕様から設計し直しです。
763 :
名称未設定 :05/01/25 12:17:06 ID:1HHQvF0e
Mini Pascal は、まだ生存が確認されております。 が、風前の灯です。
764 :
名称未設定 :05/01/25 12:21:57 ID:1HHQvF0e
あ、ごめん。 絶滅してたわ。
765 :
名称未設定 :05/01/31 13:30:30 ID:DLBy5WyT
766 :
名称未設定 :05/01/31 17:04:00 ID:cEJTG7F1
c| -j-| 仏の顔
767 :
名称未設定 :05/01/31 17:05:14 ID:HORzvbmz
にしこり 松井の顔
768 :
名称未設定 :05/01/31 17:07:24 ID:cakihdxk
ああ日本に優秀なプログラマーが居ないって言われるのは プログラム言語が日本語じゃないからか・・・
769 :
名称未設定 :05/01/31 17:16:56 ID:PvCI3SVi
プログラム言語は英語でも無いけどなw でも英語のドキュメントとか読むときにネイティブの何倍も時間かかるし、 その上、理解力も↓。 つーかスレ違いだな
770 :
名称未設定 :05/01/31 20:34:54 ID:A2JDt+Lk
>767 チョット感動したヨ。
771 :
名称未設定 :05/02/01 02:38:44 ID:50St3HNB
>>768 向こうで作られてるOSの技術文献が当然ながら英語な為。
もしくは企業や学校の体質か。
772 :
名称未設定 :05/02/01 03:07:21 ID:QQUJMdXN
よーし、パパ、アップルスクリプトを日本語で書いちゃうぞ
773 :
名称未設定 :05/02/01 04:13:48 ID:aeyN0UiS
漢字変換しながらコード書くとか考えられない
774 :
名称未設定 :05/02/01 12:10:36 ID:ETrxIsX+
でもクラス名,変数名および関数名は漢字で書きたいと思うときがしばしば。 機能を言い表す良い英語がわからんから。 ローマ字で関数名を書くときは負けたと思う。 実際漢字で関数名をつけられるようになったとしても 変換が面倒だから結局変な意味も通じない英語になるだろうとは思うが。
775 :
名称未設定 :05/02/01 12:18:02 ID:wlQOwSvH
経験では関数名日本語で書くと読みにくかった in VB 脳内で「日本語==コメント」と自然に認識しちゃうんでつらかった もちろん色で区別はつけてたんだけどね。 慣れの問題だろうか???
776 :
名称未設定 :05/02/01 12:32:55 ID:P4NGdIac
日本語がどうの言うより 関数や変数の宣言でコメントを設定できて カーソルが合うとウィンドウ外にその設定したコメントが出るような そんなシステムで良いんじゃないの そういう話じゃなくて?
777 :
名称未設定 :05/02/01 13:03:07 ID:ETrxIsX+
>>776 それでもいいかもしんない。
でもさ、格好よく英語で関数名書きたいよな。
結局そこに行き当たる。
Macの長ったらしい英語の関数名に心底慣れてしまったせいか、
機能を全て関数名で表さないと気がすまなかったり。
778 :
名称未設定 :05/02/01 14:06:49 ID:9y8vvMN1
俺も名前の付け方は結構苦労するなあ 英和辞書はもちろん和英辞書も手放せません
779 :
名称未設定 :05/02/01 14:08:51 ID:QElqQrb8
つうか、Macしか持ってない人間が「プログラムやろう!」って思って 「最初はCから」って気付いた時に、このスレが一番適当だと思う。
780 :
名称未設定 :05/02/01 18:11:43 ID:F/B+ph64
>>773 そんな事言ってたら「ひまわり」とか「なでしこ」とかは、どぉするんだよw
781 :
名称未設定 :05/02/01 19:06:31 ID:RGn4utk6
ネタ言語でしょ。
782 :
名称未設定 :05/02/01 20:34:37 ID:aeyN0UiS
ネタ言語だな。
783 :
名称未設定 :05/02/01 22:05:06 ID:7PQzjHCG
変数を漢字で書いたら中国語みたいにならんか? 動作完了的旗
784 :
名称未設定 :05/02/01 22:22:04 ID:oeenYfdD
いや誰もかな混ぜちゃダメて言ってないし こんなツッコミでいい?
785 :
名称未設定 :05/02/01 22:24:30 ID:6vkN1eFU
786 :
名称未設定 :05/02/01 22:27:36 ID:5e0g3L9t
ぴゅう太は・・・・?
787 :
名称未設定 :05/02/02 00:31:15 ID:4EZ5B6Lx
int 乳の大きさ = Cカップ; int 乳輪の色 = ピンク; int 乳輪の大きさ = デカい; int 萌え度 = 爆発した;
788 :
名称未設定 :05/02/02 00:44:14 ID:Yk/A0H5Q
HyperCard日本語版のマニュアルに 「HyperCardまだ日本語化されていません」 とか何とか書かれていて当時は「?」だったのだが、 日本語版AppleScriptが出てきた時に「!」だったのを覚えている。 HyperTalkが「日本語化」されなくて良かった・・・
789 :
名称未設定 :05/02/02 01:04:29 ID:ypA5ObKU
790 :
名称未設定 :05/02/02 02:14:39 ID:xGuHfhRz
定数 整数 ほげ = 0; 整数 ふー; ふー = 誕生年 から ふー < 没年 まで ふー++ ずつ繰り返す { 行表示("%d年のチョコの数 = %d", ふー, ほげ); }
791 :
名称未設定 :05/02/02 12:41:45 ID:1vsQeOhi
俺hogeとかって嫌い。
792 :
名称未設定 :05/02/02 15:18:05 ID:gplY0oQ7
定数 整数 繰り返し回数 は 霊 ピー 「変換失敗 霊 は 整数ではありません」
793 :
名称未設定 :05/02/02 15:43:11 ID:AzFvzrKE
>>792 を見て思い出したんだけど、
日本語プログラム言語「言霊」
MacOS X 版もあります。
794 :
名称未設定 :05/02/02 18:57:14 ID:5R81zHAk
>>793 マジ?
超常現象がプログラムできそうだな。
795 :
名称未設定 :05/02/02 23:30:23 ID:gng47Pe3
成仏でメモリ解放
796 :
名称未設定 :05/02/03 00:51:16 ID:sTJSI68t
記憶はつまり輪廻転生、装置あぼんは諸行無常 半導体のマスクパターンは曼陀羅etc.
797 :
名称未設定 :05/02/03 03:32:10 ID:fGNtvy/e
カウンタ変数がゼロでしかも定数ってのは・・・
798 :
名称未設定 :05/02/06 07:00:41 ID:FeTmcGrv
>>772 普通に書けるが...
on |たしざん|(x,y)
return x + y
end
set |いち| to 1
set |に| to 2
|たしざん|(|いち|,|に|) -- 3
799 :
名称未設定 :05/02/06 08:25:23 ID:Jz7NgqXA
へー。今でも変数名やサブルーチン名には日本語が使えるんだね。 (・∀・) 日本語AppleScriptに書き直そうと思ったけどさすがにもう忘れちゃったな。
800 :
名称未設定 :05/02/06 15:36:00 ID:ZIrUhHPf
いま勉強中なのですが、参考書がwindowsをベースにしているので ときどきmacでは見つからない関数、ヘッダーファイルを使っているときがあります。たとえばconio.hとかです。 terminalのmanコマンドで見つかる場合もあるのですが、見つからない場合はどこで検索していますか?
801 :
名称未設定 :05/02/06 16:09:16 ID:5moctVhn
Google
802 :
名称未設定 :05/02/06 16:26:24 ID:FMq6QwYQ
conio.hかよ。 そんなんMS-DOSにしか無いんじゃないのか。
803 :
名称未設定 :05/02/06 16:34:34 ID:ZIrUhHPf
>>801 ありがとうございます。やっぱりgoogleですね。もしかしたらAppleの方で用意されたマニュアルがあるかとおもったのですが・・・。
>>802 kbhitという関数が出てきて、便利そうなので使おうとしたんです。
conio.hに入っている様なのでincludeしたら、ないって言われました。
804 :
名称未設定 :05/02/06 16:44:22 ID:ITDVklsC
805 :
名称未設定 :05/02/06 17:12:24 ID:ZIrUhHPf
ググってみると802さんのおっしゃるとおりMS-DOS系のCに組み込まれている関数みたいですね。
>>804 わざわざありがとうございます。APIについてはまだまだ勉強が足りない
(というかほとんど知らない)のでかなり敷居が高いです。
でも、このページは何かと役に立ちそうですね。
806 :
名称未設定 :05/02/08 18:43:53 ID:CIhmzJaW
なぜコードウォーリアの中古(オークション)がほぼ全くないのでしょうか?
807 :
名称未設定 :05/02/08 23:29:30 ID:4r4/Hrwo
ちゃんと買えよ、9er。
808 :
名称未設定 :05/02/09 02:26:12 ID:MIyUcmVN
>>806 えーとね、
・当時高かったかから(6万〜10万ぐらい?)
・現役で唯一真っ当なOS9開発環境だから、まだ使われてる
・開発環境が数カ月毎に変わり、アップデートを必要としたため、メーカーの
サポートが必須=ライセンスのない中古じゃ役立たず
……こんな糞レスが付くと思ってなかったんで放置してたわ。すまん。
809 :
名称未設定 :05/02/09 02:35:40 ID:Qgsn8LD2
>>806 俺の持ってる1番古いのから1番新しいのまでセットでいくらで買ってくれますか?
開封してますがほぼ未使用です。
orz
810 :
名称未設定 :05/02/09 04:08:49 ID:OvqHpuE6
2年くらい前にヤフオクで7を買ったなぁ。 メトロワークスも「ホントは譲渡禁止ですが」とかなんとか言いながら ちゃんと名義変更してくれたよ。 もっとも、バージョンアップするでなし、何もメリット無かったが。
811 :
名称未設定 :05/02/09 05:11:17 ID:De2S2RBs
手間かけさせるんじゃねーよ、9er。
812 :
806 :05/02/09 14:06:21 ID:MQSUueD/
ちょくちょくバージョンアップしてるし、古いのがもっと出てきてもいいと思うのだが。 古いと言っても6以上が欲しいの。 古いのがないとバージョンアップ版ってインスコできないならしょうがないけど。
813 :
名称未設定 :05/02/09 15:10:41 ID:Y/p1x1R4
CodeWarriorか・・・5,6,8と持ってるな なんで?と聞かれても答えに困るが、売る気まったくなし。 知り合いだったらあげちゃう程度の物だろうけど ヤフオク面倒だし。
814 :
名称未設定 :05/02/09 23:30:13 ID:Qgsn8LD2
9で使える新しいver.のREALbasicがあったら交換しませんか?
815 :
名称未設定 :05/02/09 23:39:49 ID:4e0Ovj+T
↑死滅してくれませんか?
816 :
名称未設定 :05/02/10 00:38:39 ID:iZH+ly90
コードウオーリアー、というよりPowerPlantが好きだったな。 いま仕事でMFCやってるけど全然楽しくない C++がわからない段階でPowerPlantの勉強を始めて ソース読みまくって勉強した思い出がある。 おかげでデザインパターンに出会っても、Cocoaになっても下手なりに対応が出来た 反面、MFCは今のとこ勉強の楽しみが全然感じられない。なんだかなぁって感じです。
817 :
名称未設定 :05/02/10 00:51:10 ID:ZzEseDVF
MPW使わないのかなぁ。
818 :
名称未設定 :05/02/10 01:37:48 ID:DYCC1YXB
俺はMPW+改造TCLで頑張る。‥‥頑張りたい。‥‥頑張るかもしれない。暇なら。
819 :
名称未設定 :05/02/10 03:32:57 ID:zw6MiKvo
まちょっと覚悟はしておけ。
820 :
名称未設定 :05/02/11 00:03:43 ID:PDVL1EFL
覚悟完了。
821 :
名称未設定 :
05/02/13 22:19:01 ID:7j23lx5S んじゃ、逝ってみよー