5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

MacでC言語

1 :名称未設定:03/03/25 19:16 ID:zUUnltG3
Objective-Cがプログラミングの話題になっていますが、それ以前にC言語を勉強しなくては意味がありません。
と、言うわけで、Macでプログラミングスレとは別に基礎技術という意味でたてました。

C言語でのプログラミングの仕方は
http://homepage.mac.com/notex/osx/index.html

解説書は
http://www.amazon.co.jp/exec/obidos/ASIN/4274064409/qid=1048587293/sr=1-18/ref=sr_1_2_18/250-3427088-3631446

マックでプログラミングは
http://pc.2ch.net/test/read.cgi/mac/1001404151/l50
http://pc.2ch.net/test/read.cgi/mac/1025998843/l50

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
>>9
ありゃりゃ…

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
>>20
同意。

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
じゃ、ここはポインタスレってことでどうよ>>1


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
MacOSX Java総合スレッド
http://pc.2ch.net/test/read.cgi/mac/1047361032/l50

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
>>43
Cocoaはやっぱり!

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
>>48
ってか>>41エラーでますよ.
理博の先輩.

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
>>69
Toastスレでは割れを告白してたな。

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 !?
ね、ネタだよね……(って当たり前か……)

73 :Emacsうまうま:03/03/26 00:11 ID:3yLiiqeo
なんかあれてるな。

とりあずですが、プログラミングというのは言語にこだわる意味ってあまりないです。
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
>>85
変なことしたら、すぐ落ちるしなぁ…。

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つ言語を覚えているのといないのとでは全然理解が違うと思うよ。

91 :Emacsうまうま:03/03/26 06:26 ID:3yLiiqeo
【初歩】mac OSXでC言語マスターするスレ【基本】
http://pc.2ch.net/mac/kako/1030/10307/1030734241.html
とりあえず以上のスレはよんでもらうと。

>>89
Basicを「仕様」としておぼえても意味ないけど、
プログラミングとしておぼえれば意味ある。

プログラミング言語なんて別にたいした違いあるわけではなく
仕事でないならば、ライブラリの量と個人の趣味の問題。

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
>>99
キャストも意外にキモだよね。

101 :名称未設定:03/03/26 15:35 ID:KF2yFnbG
REALbasicみたいなのからCへの切り替えで失敗する人は、
Cの構文やポインタが判らない、というより、
アプリケーションモデルを理解していなくて、
どう、コーディングしていいか判らない人ではなかろうか?




てか、Cってそんなに難しい?
むしろ仕様がコンパクトで簡単だと思うんだけど。

102 :名称未設定:03/03/26 15:35 ID:3Nl8rgfB
いやまったくその通り。

ギターのFコードみたいに、だれもが通る難関みたいに言われるのは心外。
プログラムがどうやって動いてるか分かってない証拠。

っていうか、「ポインタ」「ポインタ」って意味も分からず呼ぶから
わけ分かんなくなるんだよなー

関数
変数
配列
構造体、共用体
ポインタ

これが実際にどのような処理をしているか、これが分かれば恐いもの無し。
最近の人はスタックとかも知らない人多いんだろうなぁ
スタックの概念を分かってる人とそうでない人とでは、理解の進み方が違うよ。

103 :名称未設定:03/03/26 15:40 ID:3Nl8rgfB
>>100
キャストはキモというよりは落とし穴だな。

うっかり忘れるとえらいめにあうというか。

104 :名称未設定:03/03/26 15:41 ID:gPyd2mj0
アセンブラというか言語がコンパイルされてどう動いてるかっていうことに関して
基本的理解があれば全く難しくないんだよね。

でも、最近はRbであったりVBであったり、そういうRAD環境みたいなところからはじめる人が多いから
最終的にどんなふうにコンピュータをコントロールしてるかより、
「こうしたらこういうダイアログが出て、こう動く」みたいな認識な人が多いんじゃないかと。
そういう理解しかない場合は、ポインタとか配列とか構造体とかは絶対つまづくよね。

105 :名称未設定:03/03/26 15:45 ID:KF2yFnbG
メモリと機械語とCPUとレジスタとスタック
↑このあたりの概念を予習してからCを始めるのが
良いのかもね。たしかに。



106 :名称未設定:03/03/26 15:48 ID:gPyd2mj0
そうそう、俺の認識ではC言語って「機械語に毛が生えた」っていうか
「ちょっとだけ構造化した機械語」っていう感じで、あくまでコンピュータの基本的な部分が
分かってることが前提かなぁと。register識別子とかあるしね。

107 :名称未設定:03/03/26 15:56 ID:3Nl8rgfB
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言語について語らうスレになったようです

111 :名称未設定:03/03/26 16:04 ID:3Nl8rgfB
だってさ
ム板やマ板にいけばこんなスレいくらでも転がってるし
C言語の基本である以上Mac特有のことなんか何もないし

となれば雑談するしかないじゃん

112 :名称未設定:03/03/26 16:06 ID:KF2yFnbG
オブジェクト指向は全く別に勉強した方がよいと思われ。
ていうかCはオブジェクト指向言語ではないので、
オブジェクト指向を勉強するのはCからC++かObjective-Cへ
ステップアップする時で良いかと。
Objective-Cは、オブジェクト指向部分以外は、ほとんどCそのもの
なので、オブジェクト指向入門には良いかも。
C++はなまじメソッド呼び出しが関数呼び出しの形式と似ているぶん、
初心者は誤解しやすいような。



113 :名称未設定:03/03/26 16:08 ID:KF2yFnbG
てっきり勉強方法を初学者に教えるスレだと
おもっていますたが・・・・。


114 :名称未設定:03/03/26 16:10 ID:Afhtjhbq
cでアプリ作ってて最も困ったのが変数の型がいっぱいあること。
同じ2バイト変数なのに、「これはこれに変換できない」って言われてつまづいたよ。
あとは構造体のメンバのアクセス方法が分からず、先頭のアドレスから何バイト目を取り出すとかやってたYO。
あとは文字列の扱いがポインタより難しかった。

115 :名称未設定:03/03/26 16:14 ID:3Nl8rgfB
>>112=113
>C++はなまじメソッド呼び出しが関数呼び出しの形式と似ているぶん、
>初心者は誤解しやすいような。

あーそれ言えてる。
Obj-Cの大括弧とコロンには萌える。

>てっきり勉強方法を初学者に教えるスレだと

漏れも最初はそう思ってたけど
べつにMacならではの勉強法があるわけでもないと気付いた

116 :名称未設定:03/03/26 16:50 ID:QmqtHnEn
>>111
>となれば雑談するしかないじゃん

 >>1 は高尚な理念をお持ちのようだが w

117 :名称未設定:03/03/26 17:51 ID:tvkd7UMq
>>1 さん、判定をお願いします。

118 :名称未設定:03/03/26 19:02 ID:yz/ACMkM
自分が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
厨房の頃よく買ってたな。なくなってしまうのはさみすぃ。

121 :名称未設定:03/03/26 20:00 ID:wiBimKnh
ベーマガ無くなるの?
今は読んでないけど、なくなるのは寂しいな

122 :名称未設定:03/03/26 20:29 ID:tvkd7UMq
本当に休刊するんですねぇ>ベーマガ
ベーマガには本当にお世話になりました。

123 :名称未設定:03/03/26 20:52 ID:2wgqNiog
ベーマガに出てるプログラムを東武百貨店のパソコンコーナのPC-8001に
打ち込んでたなぁ。
走らせるまでには至らなかったが...。
間違ってたんだろうけど、それが何処なのかが分からんかった(;´Д`)
あの時だな...プログラムなんて漏れには無理だと思ったのは(w

124 :名称未設定:03/03/26 20:58 ID:tvkd7UMq
小学生の頃、SHARP のパソコン(機種名は忘れた)で、こんなプログラムを組んでました。

10 バット = " - "
20 ボール = "●"
30 ナゲル ボール
40 ウツ バットデボールヲ

・・・・
今考えたら、ワケワカラン!

125 :名称未設定:03/03/26 20:59 ID:3Nl8rgfB
MZ-80シリーズかな。
日本語BASICってのがあったようななかったような…

126 :名称未設定:03/03/26 21:04 ID:MK5ClDgO
そういえば、漏れ、電気屋の店先に置いてあるのが
ぴゅう太だと気付かないまま、PC8001のリストを必死に
打ち込もうとしたことあたーよ。

どうしてうごかないんだろ、って・・・・・(つД`)



127 :名称未設定:03/03/26 21:07 ID:3Nl8rgfB
学研のまなぶくんにMSXのソフトぶち込んだら動いてMSXだったのかーと気付いた遠い昔の日。

128 :名称未設定:03/03/26 21:10 ID:tvkd7UMq
みんなこうやって、BASIC言語を知っていき、覚えるんだよね。

129 :名称未設定:03/03/26 21:16 ID:FkocZ+8p
いつのまにか昔のPC@新・Mac板になってますな・・・・。

130 :名称未設定:03/03/26 21:59 ID:WXvej08g
ObjCにC++のどこでも変数宣言とデフォルト引数と
演算子の多重定義があれば天国なのになぁ〜

131 :名称未設定:03/03/26 22:00 ID:NNk8fDCt
なぜ、MZ-80、ぴゅう太、PC8001、MSXなどと、さかのぼりますか?
だから、うちのX1にFUJIのMD2Dがカビもせず刺さりっぱなしですか?

132 :名称未設定:03/03/26 22:06 ID:3Nl8rgfB
まあモトローラ、ザイログ系つながりだし

133 :1:03/03/26 22:40 ID:drTCnFW6
>>111
実際にプログラムを勉強すれば自ずと違いが分かりますよ。
>>117
別に判定する権限は私にはありません。

134 :名称未設定:03/03/26 22:52 ID:3Nl8rgfB


漏れがプログラムを実際に勉強してないってこと?

1も見る目がないな

135 :名称未設定:03/03/26 23:17 ID:yAM9OU+f
>>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だけでいい」になり、

140 :名称未設定:03/03/27 00:22 ID:fpN5HbDv
FutureBasicという選択肢もあるわけだが、
どうも最近仕様がハチャメチャで・・

141 :名称未設定:03/03/27 01:02 ID:CrI0NHOU
>>138,139を読んでみても、>>1がこのスレで
何について語り合いたいのか掴めない。

「ゲームを作りたいんだけど何をしてよいかわかりません。」

という超初心者ですか?

もっと具体的に、キーの取得法とか、グラフィックの描画とか
そういうCocoaに寄ったことが聞きたい?

それともゲームでこういう処理をさせる場合にはどんなアルゴリズムを
用いればよいかわからないとか・・・・。

「MacでC言語」というスレタイで何をやりたいのか見えてこない。

142 :名称未設定:03/03/27 01:09 ID:cArYV3AL
>>138
昔からBASICを知っている頑固親父だって
福山雅治のマネをする人似の息子に教わりながらやってんだよ?

1から10まで出来ない?
繰り返して繰り返して裾野をしっかりと丈夫に広げろや!
ついでに捨て石もその下に敷き積めとけな。
その上に一寸ずつ覚えたことを重ねとけ。

資料?
調べて試してどうしても解らないときは
聞け!聞け!聞いて聞いて聞きまくれ!!!
解決したらありがとうを言え!
困ってる人がいたら、知っていることは役に立て!
礼は期待するな!!!

煮詰まったら、よく寝ろ!よく寝ろ!よく寝ろ!
そして何より、楽しめ〜!楽しめ〜!楽しめ〜!
PBにRbみたいな、補完機能!補完機能!補完機能!

143 :名称未設定:03/03/27 01:15 ID:uzlQ+2mm
FutureBasicって、C言語の英語をBASICでなじみのある英語に置き換えただけって感じで、
ちょっとこったことをしようとするとToolBoxが標準で使えなかったり、中途半端過ぎ。
FutureBasicやるぐらいならCの方が良いと思うぞ。
FutureBasicは昔風の行番号付きで(一応出来るけど)、インタープリタ型でMSXみたいな感じだったら良かったと思う。

144 :名称未設定:03/03/27 01:33 ID:CrI0NHOU
OS XならProject Builderで決まりです。
標準でもC,C++,Objective-C,Java,AppleScriptから好きに選べます。
TerminalからならPerlやRubyも標準装備。
Cocoaぶりっぢの類いを入れると、PerlやRubyをCocoaで利用できたり。
夢のようです。



145 :名称未設定:03/03/27 02:28 ID:vxR+3Q3T
>>144
そうなんだ・・・。Project Builderで、Cでもいいんだ。
漏れは、Rbで遊んでた程度なんだけど、「Cocoaはやっぱり」を見たら
C言語知らなきゃ、無理なんて書いてあったのでめげてた所です。

で、C言語については、参考書を見ればわかると思うんですが、
Project Builderの扱い方なんかは、「Cocoaはやっぱり」なんぞを
参考にする・・・なんて感じでやれば、いけるんでしょうか。


146 :名称未設定:03/03/27 09:40 ID:Kz/X2l1q
このスレを読んでたら、なにがなんだかよく分からなくなってきた。
ま、マターリとやっていこうっていう事なのかな?

147 :名称未設定:03/03/27 13:27 ID:d0D9N45W
>>145
PBの扱い方っていうか、Cocoaの部品(クラスっつーの??)について知らないといかんやろね。
Cから使えるんやろか?

ちなみに、Terminalから実行するようなベタなCもPBでビルドできる。gcc使ってるだけと思う。

148 :名称未設定:03/03/27 14:00 ID:uYRKb78W
> Cから使えるんやろか?
素直にObjective-Cを使えば?
[ object message ];
や、
[ object message1: parameter message2: parameter ];
のようなメソッドの呼び出し方と、
クラス定義のヘッダファイルの書き方だけ憶えれば、
あとは普通のCとほとんど変わらないんだし。
Objective-Cを回避する理由がわからん。

149 :名称未設定:03/03/27 16:49 ID:d0D9N45W
>>148
いや、俺につっこまれても困る(w

150 :名称未設定:03/03/27 17:51 ID:Uc13b1ZO
>>143
ポインタやキャストで悩まなくていい分ラクではあるんだけどね。
過去の遺産を捨ててスパっと新しい仕様で出してくれないかなぁ。

151 :名称未設定:03/03/27 20:08 ID:w6rhpsFd
>>144
だからC言語は十分に習得しやすい言語だから
これができないんだったら諦めたほうがいいっていうのが
経験者からのアドバイスなんだが?

「C言語が必要らしいからめげそう」って
やる気がないのかと思っちゃうよ。

Perlが分からないとダメらしいのでCGIは諦めました
Excelが分からないとダメらしいから就職諦めました、ってか!?
おめでたい奴だな。

>>148
まあ、無理にクラスライブラリであるところのCocoaを使わなくても、
直接C言語でAquaの(?)APIの関数を呼べばC言語で動かせなくもないけど。
むしろそっちのほうが無理に使ってる感が強いけどw

152 :名称未設定:03/03/27 21:06 ID:d0D9N45W
JavaだったらCocoa使わなくてもGUI作れるんですよね。

153 :名称未設定:03/03/27 21:18 ID:oMk34r/o
JavaにはJavaのGUIフレームワークがあるから、Cocoaの
代わりにそれを使う手もある。
JavaからCocoaを使う方法も用意されているから好きな方を使えば?
Macプログラミングという面ではCocoaに慣れておけば、他の言語
(Objective-CやC++やAppleScript)に移った時に知識を使いまわせる
気がするけど、MacでJavaの勉強したい、とかならJavaのフレームワーク
勉強した方が良いような気がする。

154 :名称未設定:03/03/27 21:56 ID:d0D9N45W
どっかのサイトにあった、Java製で先行者が主人公のアクションゲーム見て、
Pure Javaっつーのもすげーもんだなと思いました。

155 :名称未設定:03/03/27 22:00 ID:z7wQcilf
なんだかんだいっても結構人気のあるこのスレ。
1が頑張らないのなら、俺が識者に質問を。
G-Worldに対してGetPixBaseAddr()とGetPixRowBytes()を使って直接?描画してましたが、
Carbonのバッファウインドウに対して同じ方法が取れないでしょうか。
参考
http://developer.apple.com/ja/technotes/tn2051.html

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を買った場合。

158 :名称未設定:03/03/27 22:12 ID:w6rhpsFd
まぁ…UNIXというかコマンドシェルの使い方は
ある程度知らないと使えないとは思うけど
そんなのC言語を学ぶことに比べれば屁みたいなもんだ

なにより文字列を表示しようとした時に、printfでサクッとコンソールに
表示されるのは重要だし。

159 :名称未設定:03/03/27 22:18 ID:oMk34r/o
>>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時間もあれば
理解できると思います。もちろんそんなハリボテの知識ではそのうち困る事に
なると思うんだけれど、まずは気軽に始めてみるのが大事なんではないかと。

161 :名称未設定:03/03/27 22:29 ID:oMk34r/o
>>156,>>160
Project Builderに新規プロジェクトで、Toolの下のStandard Toolを
選ぶのでは駄目なのか?
# プロジェクト作った時点でHello, Worldの雛形が出てくるわけだが。


162 :初心社:03/03/27 22:32 ID:K/EqRt+a
>>161
もちろんそれが手っ取り早いと思うんですが、
なんとなく最初は苦労しておいた方が良いような気がして
わざわざmiを使ってます(笑

しかしこれまでRbを使っていた方なら、そっちの方が
断然やりやすいかもしれないですね。

163 :名称未設定:03/03/27 22:40 ID:d0D9N45W
PBを使ってやるのと、エディタを使ってやるのとでは文字コードが違った気が。
Terminalで日本語表示できるもの作ろうと思ったら、PbでRUNした時日本語文字化け。
逆も同じ。

164 :名称未設定:03/03/27 22:53 ID:4quole+g
デバッグ時はPBのファイルエンコーディングを日本語(MacOS)にして、
PBから実行。
最終ビルドの時に、PBのファイルエンコーディングを日本語EUCにして、
実行結果はTerminalで確かめる。

というやり方をしておりますた。

ターミナルからccでコンパイルした事ないや・・・。

165 :名称未設定:03/03/27 22:59 ID:NTWaoIUQ
>>162
はっきり言って、漏れはそれは無駄な苦労だと思ふ。
makeやgdbを覚えるのは言語覚えた後でも遅くない。
ただPBでもgdb使わないと色々見れないけど。

166 :初心社:03/03/27 23:14 ID:K/EqRt+a
>>165
うーんむ。やっぱそうすか? いや、別に固い決意があってmiを使ってるとか
いうわけではないんで、PB使った方が圧倒的に後々のためになるとアドバイス
頂けたら、平気でそっちに寝返るつもりなんですけども……。

ただ、PBを使わないのは、ビルドした時にフォルダ内に3つも4つもファイルが
生成されるのを目にして、「…なんか、大げさなような…(汗」という初心者の
怯えもありまして。だって僕がいまやってるのなんて、

みかんの値段を入力セヨ:
何個食べたいのか入力セヨ:
税込み? 税抜き?:(1.税込み/2.税抜き)
合計金額は「 」円ダヨ

程度の、小学生レベルのプログラムですので……。
もうちょっと作業効率とかを真剣に考えた方が良い時期にきたら、
PBに手を出してみようかなぁ、とぬるく考えておる所存であります。

167 :名称未設定:03/03/27 23:21 ID:4quole+g
>>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ページ越えをめざしてがんがります。

169 :名称未設定:03/03/28 00:38 ID:A+eq+s3h
タダじゃありません。
OSの値段に含まれてるだけです。

170 :名称未設定:03/03/28 00:54 ID:A+eq+s3h
独習Cみたいなやたら分厚い本を買うより
結城浩の
『C言語プログラミングレッスン【文法編】』
とかのほうがすっきりと理解できるしその後の役にも立つと思うんだけど
これは習得者の意見かな…?

171 :145:03/03/28 01:20 ID:PYs8Carl
>>170
さっそく、ぐぐって見たのですが、
【入門編】てのもあるのですが、あえて【文法編】がお勧めなのでしょうか。
私としても、早く全体像をつかめる方が、BESTなんてすが。。
(一応、RbとApple Script少々の経験者ですが・・)


172 :名称未設定:03/03/28 01:28 ID:A+eq+s3h
入門編は読んでないから。(きっぱり)
文法編は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()で代替できるのですが、
どなたかご存じであればお教え下さい。

175 :名称未設定:03/03/28 07:32 ID:077c4H65
>>174
conio.hはDOSのコンソールライブラリだったような。
少なくともMacOSXにはないと思われ。(getche()も)

Terminalから"man getch"と入力してみれば、
使用するヘッダが分かると思います。
あと、getch()を使う場合は、libcursesをリンクしないといけないです。


176 :175:03/03/28 07:58 ID:077c4H65
>>175
自己レス。
これでコンパイルはできたとしても、このままのソースでgetch()を使う限り、
きっと>>174さんの思いどおりの動作にはならないと思われます。
(方法があったら、どなたか教えて下さい)

お暇ならこちら(とそのリンク先)も読んでみて下さい。
ttp://www.tech-arts.co.jp/macosx/macosx-dev-jp/htdocs/2800/2852.html

まあ、getchar()なら(returnキーを入力しないといけないけど)、
やりたいことはできると思いますし...


177 :初心社 67ページ:03/03/28 08:12 ID:aSTnaoiF
>>175-176
なるほど。詳細にどうもありがとうございます。
Terminalのmanというのは、プログラミングの関数についてまで
用意されてたんですね……、全然知りませんでした。
リンク先の議論はもう少し知識をつけてからでないと理解は
苦しいですが、雰囲気はつかみました(こういうのが一番危険か)

この参考書、ここまで結構順調に読み進めてきたので、
「互換性のため、本書ではなるべくgetchar()を用いて記載して
あります」と書いてある次のページでいきなりgetche()が使われて
いるのを目にした時、あやうく泡を吹いて倒れそうになった所です。

178 :名称未設定:03/03/28 11:47 ID:A+eq+s3h
だから独習なんて参考にならないってばよ
オタク養成教科書

179 :名称未設定:03/03/29 13:52 ID:n+p0j7px
このスレは終了ですね?

180 :名称未設定:03/03/31 00:21 ID:jkLOO3v1
「はじめてのC言語完全入門」塚越一雄 技術評論社
「Objective-C MacOS X プログラミング入門」萩原剛志 広文社
「Mac OS X Cocoaプログラミング」アーロン・ヒレガス ピアソンエデュケーション

この順番で読めば何もわからない人でもアプリが作れる
おれもつくれた

181 :amazon.co.jpの社員ではありません:03/03/31 00:23 ID:U9MBr8sz
よし!!amazon.co.jpで今すぐ購入だ!!

182 :名称未設定:03/03/31 03:59 ID:RtBur0nS
「エキスパートCプログラミング〜知られざるCの深層」という本が面白かった
この本ってSunOSのコンパイラ作った人が書いてるんだね

183 :名称未設定:03/03/31 04:52 ID:LrvKI9nD
>>182
それって、黄色くって、面積広くて厚みは薄めのやつじゃないですか?
なんか、それなりにやってる人向けって感じだったし、翻訳文体で難しかった気が。

>>181
クレジットカードがない人はクロネコのブックサービスがお得。
つか、近所の本屋で注文するのが一番。TSUTAYAならポイント付くし。

184 :名称未設定:03/03/31 07:23 ID:JwBnAIK+
>>183
たぶんそれ
「はじめに」には「二冊目に読む本だ」とあった
語り口は砕けてるし内容もそんなに難しくなかったよ
チマタでは「ポインタ本だ」という評価らしいけど
ポインタについてなら「C言語ポインタ完全制覇」の方が詳しいと思う
「エキスパートCプログラミング」はコンパイラの挙動について
詳細に解説してる本という感じかな
それまで俺がやっていた最適化は無駄な努力なのだと教えてくれた本ですた (;´Д`)

俺は本を買う時はbk1だな
eペイメントが使えるからオンラインバンク(東京三菱銀行)で決済できるし

185 :名称未設定:03/03/31 07:28 ID:LrvKI9nD
オンラインバンク。。オサレですね。(キラキラ
僕は代引きばっかりです。
また決済手段について調べてみるかな。

しばらく前雑誌で見た、パソコンにつなぐカードリーダーみたいなので
カードを読ませるやつもおもしろそうだったんですが。

186 :名称未設定:03/03/31 11:08 ID:uhqMguGs
なかなかイイスレですね。
昔Cをちょこっとカジったので
OSXでなにか作りたいキブンになってきた。ワクワク

187 :名称未設定:03/03/31 22:29 ID:HaowWZRN
このスレでも何度も繰り返しいわれてきてることだけど

ポ イ ン タ っ て そ ん な に む ず か し い ?

ポインタ理解だけのために高い金出して本を読まねばならない
というのは、凄く損してるように見えるぞ。

188 :名称未設定:03/03/31 23:09 ID:1KiLi96z
じゃあポインタについてちょいと説明してやるスレてことで

189 :名称未設定:03/04/01 00:24 ID:OFnLmqes
ポインタは理解するのではない、感じるのだ〜!
・・なんつーこともないだろうけど、分からん人にはホントにやっかいらしい。
「難しい」と言うより「ややこしい」んだね。

1000までにスレの方向性が決まりますように・・・

190 :名称未設定:03/04/01 03:51 ID:4sxyrNuK
ポインタ・・・今さっき勉強すますた。
「住所をいれた変数」ってことです。簡単じゃん。

191 :名称未設定:03/04/01 04:26 ID:T0MERlSM
>>190
いや、それでさあ、『で、具体的にどうなの?』てなるとわからないわけで。
記述の方法もあるけど
どんな事をしたいときにどう使うべきなのかとか。

192 :名称未設定:03/04/01 04:46 ID:toMock5T
そうそう、なにに使うか、なにに使われてるか
これ。

この辺で察しのいい人は変数がいわゆるポインタで参照されてることに気づく

193 :名称未設定:03/04/01 05:55 ID:T0MERlSM
結局、言語の仕様上の都合で、ある事をしようと思うと不便なので
そこでポインターを使うと便利とか、そういうのがあるんでしょ?

なんつーか裏技チックな匂いというか。

194 :Emacsうまうま:03/04/01 06:39 ID:FQozBV8F
>>193
というか乱暴に記述すると、コンポーネント化を考慮するとほとんどがポイン
タになる。
めんどくさいって事で全部をポインタにしてポインタ演算できなくしたのがオ
ブジェクト指向言語(の部分的な)特徴だったりする。


195 :名称未設定:03/04/01 07:36 ID:toMock5T
「ポインタ」というものがあると思うからダメなんだ。
「ポインタ変数」はあるけど、その中に入ってるのは、
一意の場所を指すアドレスだ。

>>193
ポインタって別に裏技用に開発されたわけじゃなくて、
とあるアドレスの記録用の変数として用意されただけなんだけど。

でも実際の用法が裏技ちっくってのは当たってるね。

それぞれ独立した関数AとBがあった時、
Aの中で定義している変数valの中身を *直接* 読み書きする関数Bは
仕様上作ることができない。(ローカル変数は外からは見えないから)
でもコンピュータのほうからしてみればそれは可能なわけで、
この辺をごまかしつつ使えるというのがポインタの裏技。
融通が利くというか、後々の言語まで引きずる大失敗というか…


意味分かる?>勉強中のかたがた

196 :名称未設定:03/04/01 09:36 ID:+7O3mlbK
例えば初学者なんかだと *p++ += 2; とか書かれると混乱しちゃうんだよな
演算結果の格納先がポインタ変数なのかその参照先なのかわからなくなることがある

197 :名称未設定:03/04/01 20:04 ID:toMock5T
そうかもしれんが、
いつも思う話だけどCのプロフェッショナルって
やたらとソースの最適化にこだわって他人が読めないソース作るよな

あ、Perlもか

198 :Emacsうまうま:03/04/01 22:38 ID:POHDydUR
>>197
いや。本当にCのプロフェショナルな人はソースの最適化にはこだわらない。
実際コンパイラの仕組ちゃんとしってれば最適化のほとんどには意味がない。
# VCは別ですが、、

ほとんどの場合はいわゆる バッドノウハウと「奥が深い症候群」
http://namazu.org/~satoru/misc/bad-knowhow.html
です。

# ちなみに上記文章を記述している高林氏のソースコードはかなり読みやすいです。
# そして「適切な最適化」がされているので速度も速いです。。

199 :名称未設定:03/04/01 22:48 ID:toMock5T
ごめんいい方が悪かった。
”最適化”というのは”可能な限り省略”とか
”コンパイラの仕様を”極限まで利用したがるという意味で
要するに「奥が深い症候群」と同義ということです。

200 :名称未設定:03/04/02 03:06 ID:LSa1ftyb
>>195
ごめんなさい、釣りでもなんでもなく全くわかりません(;_;)
ポインタのポから教えて欲しいカモ。

201 :名称未設定:03/04/02 03:26 ID:JrFNyZNL
ポインタ(ポインタ変数)を初心者が無理矢理理解しようとすると、
「じゃあ変数ってなんだ??」みたいな妙なループに入ったりしない?
一番シンプルなのは6809のアセンブラだったりするかも知れない。

202 :名称未設定:03/04/02 06:15 ID:o3IrIVzb
ぶっちゃけ、いわゆる低級言語も
高級言語並の冗長で理解しやすい文で書く事が可能ならば
それ以外の仕様が現状のままでもだいぶ使いやすくなると思うのだが。。

記述の方法とか読み方とかにアタマを使うのって、本来のプログラミングの作業と違う気がします。

とかいって私みたいにPerlで普通は省略されるであろうところの
foreach $aFile (@ARGV){

なんてのをいちいち書いたりするのはやりすぎか。
日本語記述AppleScript萌え(w

203 :名称未設定:03/04/02 07:15 ID:KsESIL6M
>日本語記述AppleScript萌え(w

ていうか、最近の翻訳ソフトやインプットメソッドの進化を考えると、
金と時間をかければ、ほとんど話し言葉でオッケーな言語っていうか、
コンパイラーって、つくれないのかなあ。
一流のプログラマーの皆さま、いかがでしょう。

204 :名称未設定:03/04/02 08:15 ID:o3IrIVzb
あんまり話し言葉に近づけると曖昧すぎて困ると思う。
AppleScriptとかHyperTalkはかなり限界の領域かと。

ある方面では有名なTanaka's OSAXは、HyperTalkで書いたものをコンパイルするというソフト?
で作られたとか。

205 :名称未設定:03/04/02 09:51 ID:8WTfnu3Q
ポインタとは指し示すものです。
さんまさんやタモリさんが持ってる指がついた指し棒だと思ってください。

指し棒はその形状を変えることはありません。その指し示す場所が変わるだけです。
同一形状でありながら指し示すものを変えることができるのです。
つまりさんまさん達は指し棒を別の指し棒に持ち替えることなく別のものを示す事ができます。
指し棒の指す場所を変えればいいだけです。

この指し棒がポインタであり、
指し示す場所がアドレス、
指し示した場所に書かれたものが実体です。

ただし、ポインタだけでは用を成さないので、C言語では
ポインタ変数に対して*演算子を摘要することで実体を、
変数に&演算子を摘要する事でアドレスを取り出せるようになっています。

で、入門者が良くやってしまうのは、何も書いていない場所、
書いたり読んだりしてはいけない場所、もしくは存在しない場所を指し示そうとしてしまう事です。
ポインタは意味のあるものを指し示すことによって、はじめて意味があるものになります。

特別なアドレスNULLも例外ではありません。
ポインタの指し示す場所がNULLであった場合、何も指し示していないと解釈されます。
ポインタの指し示す場所が自動的にNULLになる事はなく、
プログラマが何も指し示していない事を明示するためにポインタ変数に代入します。
つまりポインタの指し示す場所がNULLであることも十分に意味を持っています。

ダブルポインタも別に難しくありませんね。
指し棒の指す実体が指し棒でありその指し棒が指したものが目指す実体です。


206 :名称未設定:03/04/02 09:52 ID:8WTfnu3Q
ごめん。sage忘れた。

207 :名称未設定:03/04/02 10:38 ID:KsESIL6M
なさけないけど、質問です。
下記のプログラムを、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 でやってください。

209 :名称未設定:03/04/02 11:01 ID:eCNnnqHl
scanfの前に
fflush(stdout);
の1行を加えるとよいかも。
つか、あちこちでよく出る話題なのでちっとは調べよう。

210 :名称未設定:03/04/02 11:21 ID:6mA+fR8r
アップル提供のX11を使って、DOS/Vをしもべに分散プログラミングしたいのですが、何から始めたらいいですか?

211 :名称未設定:03/04/02 11:46 ID:U9/dSOVD
C言語じゃないか?

212 :名称未設定:03/04/02 12:17 ID:8WTfnu3Q
>207-209
でじゃぶ

http://pc.2ch.net/test/read.cgi/mac/1025998843/217-218

213 :名称未設定:03/04/02 12:25 ID:LSa1ftyb
>>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/


215 :名称未設定:03/04/02 15:27 ID:Q7/CLG8t
>>204
発展型でRuntimeRevolution。
仮想配列や正規表現あり。

216 :名称未設定:03/04/02 15:28 ID:Q7/CLG8t
おっと紛らわしかったか。
HyperTalkをコンパイルするのはCompileIt!。
当然ポインタ使えます。

217 :名称未設定:03/04/02 17:28 ID:o3IrIVzb
CompileIt!のOS X版が無いので(それどころかPPCネイティブ版もなかったはず?)
Tanaka's OSAXのOS X版が出ないという。。

CompileIt!と似たようなコンセプトのソフト出ないですかねえ。

218 :名称未設定:03/04/02 20:08 ID:IxxVJR4/
作ってけろ。だんな。

219 :名称未設定:03/04/02 20:46 ID:U9/dSOVD
ポインタを理解するのに必要なこと。
それはコンピュータができること、できないことを理解すること。
人間にできて、コンピュータに出来ないこと。
人間には難しくて、コンピュータには簡単なこと。
これを中心に考えましょう。

220 :名称未設定:03/04/02 21:03 ID:U9/dSOVD
・変数はどこに覚えられているか

基本的にメモリ上に記録されます。レジスタはこの際、無視してもかまわない。
そして、メモリには全て一意の場所をあらわす番号(=数値)が与えられます。
これがアドレス。逆にいえば、アドレスは数値です。

そして、この”アドレスをあらわす「数値」”を元に、コンピュータは
そのアドレスのメモリにあるデータ(=数値)にアクセスすることができます。
つまり、

「a という変数の中身を見る」ことと
「変数aが記録されているアドレスのデータを見る」ことは同じです。

さて、ポインタ変数はアドレスを入れる変数です。
変数ということは、中身を入れ替えたり、中身に対して計算したりできます。
そして、ポインタ変数自体が、メモリ上のどこかのアドレスに記録されています。

ということは、ポインタ変数"b"の中身が指すアドレスの中に入っている
データ(ややこし〜)が、実は別のポインタ変数"a"が記録されている場所を
指す数値であってもいいわけです。
これが「ポインタのポインタ」などと呼ばれたりします。

上記の状態をソースで書くと、以下のようになります。
int x = 10;
int *a = &x; // 変数"x"が記録されているアドレスが入る
int *b = &a; // ポインタ変数"a"が記録されているアドレスが入る

この場合、
x
*a
*(*b)
これはどれも同じ数値、つまり10が得られます。

221 :名称未設定:03/04/02 21:15 ID:U9/dSOVD
・数値とアドレスはどう違うのか

人間が「これはアドレスだ」と意図を持って使っているうちは、
人間にとってはアドレス(を表す数値)と数値は全く違うものです。
しかしコンピュータにとっては、どちらもただの数値に見えます。
数値の100とアドレス100番地を表す100は、どちらも100として記録されます。

そして、人間も記憶が適当なので、訳が分からなくなったり、
ど忘れしたり、間違ったりして混同してしまいます。

そこでアドレスを入れる変数は「これはアドレスですよ」というのを
明示的に示しておき、数値用には同じく「これは数値ですよ」と
宣言してから使いはじめる、ということにしました。

こうすれば、人間もコンピュータも、そのデータが数値なのか
アドレスなのか区別が付くというわけです。

もちろんこの場合の、コンピュータとはコンパイラのことですけど。
実際のコンピュータは数値もアドレスも区別していません。
だからなにかのミスで、ただの数値がアドレスとして解釈されてしまって
とんでもない場所にアクセスしてしまったりすると、バグったり、
落ちたり、固まったりするわけです。

222 :名称未設定:03/04/02 21:24 ID:U9/dSOVD
あー、変数の型に付いては飛ばしてもいいですか?

223 :生徒1:03/04/02 21:49 ID:KsESIL6M
>>222
先生!!!よろしくお願いします。
変数の型は、自分でなんとかします。

224 :名称未設定:03/04/02 21:52 ID:U9/dSOVD
・どういうときにポインタは使われるか(1)

ただ変数が記録されているアドレスを記録して参照できるだけじゃ、
変数や配列を直接みたって一緒じゃんと思いますよね?

ところが、変数として定義していない場所にもデータは記録できるんです。

例えば、コンピュータの内臓時計のデータは、とあるアドレスを
参照することで入手できます。これはコンピュータの仕様として、
そのアドレスは時計のデータですということになっているからです。

それ以外にも、自分でも”変数を宣言しなくても使えるデータ領域”を
作ることがあります。

これについては次のレスで。

225 :名称未設定:03/04/02 22:03 ID:U9/dSOVD
・どういう時にポインタは使われるか(2)

malloc(size_t size) という関数があります。
これはメモリ上から指定した大きさの連続した領域を確保する関数です。
戻り値は、”確保した領域の先頭の「アドレス」”です。
アドレスが分かれば、そのアドレスにあるデータにアクセスできることは
前に説明した通りです。
そしてこの関数で確保した領域は、「変数として定義されていません」。
つまり、確保された領域内であれば、どんなデータでも置くことができます。

そして
realloc(void *p, size_t size) という関数があります。
以前malloc()で割り当てた先頭アドレスと、変更したいサイズを
パラメータとして渡すことで、その領域内のデータを保持したまま
確保するサイズを増減させることができます。

詳細は省きますが、これの関数を使えば、とあるデータに必要な分だけ
メモリを確保することができます。
どういうことかというと、キーボードからの入力をどんどん溜めていって、
終わった時点でファイルに書き出すというプログラムを考えてみます。
この時、配列を使うのだと、最初に宣言した要素数以上は記録できません。
char a[128]; ならば、128文字までしか記録できないのです。
途中で定義を変更して増やすことは不可能です。

しかしここで、mallocでとりあえず128バイト確保したとして、
それ以上に入力があった時にreallocで1バイトずつ増やして
確保し直すことにすると、(メモリに連続した領域がある限り)
可変長の記録領域が作れます。

これは普通の変数、配列には絶対に出来ないことですよね。
むやみに大きい配列を作って置いておくよりも、ずっとメモリの効率が
いいことが分かります。

226 :名称未設定:03/04/02 22:34 ID:U9/dSOVD
・どういうときにポインタは使われるか(3)

さて次は例の「裏技的な使い方」のご紹介。
でもわりと当たり前に使われてます。

C言語では”構造化”という思想があって、ある程度の処理の単位を
区切って、その単位ごとで全てを完結させて、外部の他の部品には
影響を与えないことが美しいとされました。

そのおかげで変数の名前が部品ごとに重複していても(例えば
ループによく使われる"i"とか)、問題なく動作できるようになりました。

しかし逆に、グローバル変数を定義しないと、それぞれの部品で
共通のデータを扱うなんて場合にどうしようもないことが分かりました。
でもグローバル変数だと、もういらなくなった場合にもまだ変数分の
メモリを持ったままになってしまいますし、main()以外の関数内で
グローバル変数を作ると、その関数が呼ばれるたびに同じ名前の
グローバル変数が定義し直されることになります。
そのデータを使う処理が終われば、解放してしまいたいものですし、
できれば同じ関数で違う変数にも応用できるようにするのが
別の観点から見た構造化というものでしょう。

これをふまえて次のレスへ。

227 :名称未設定:03/04/02 22:35 ID:U9/dSOVD
どういうときにポインタは使われるか(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
>先生!!!
講義についていけません。でも、うれしいです。

229 :名称未設定:03/04/02 22:47 ID:U9/dSOVD
・余談

mallocやreallocの凄いところは、戻り値がvoid *型、つまり
「あらゆる型に変換できるポインタ」として返ってくるところ。

「void *」型を好きな型のポインタ変数にキャストすることで、
確保したメモリ領域を、好みの型の変数、配列、構造体として
使うことができる。なぜか?

前にも書いた通り、ポインタ変数はアドレスを記録する変数です。
そして、アドレスは32bitのコンピュータで使っている限りは
基本的に32bitのデータです。

じゃあ、なぜ容量が同じなのにint *とかdouble *なんて型があるのでしょう?
それは「ポインタ変数の計算」に理由が隠されています。

230 :名称未設定:03/04/02 22:49 ID:U9/dSOVD
えー
これで理解できないのはヤバイヨー
前半はわかるよね?

231 :名称未設定:03/04/02 22:56 ID:U9/dSOVD
・余談(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日目なので・・・聞き慣れない言葉もあるんで。
でも、雰囲気はわかります。とっても、わかりやすい解説なのはわかります。

233 :名称未設定:03/04/02 23:06 ID:U9/dSOVD
・余談(3)

ということは、int型の変数は1番地分、
double型の変数は2番地分で1つのデータになっています。

C言語の話に戻ると、
ポインタ変数に対する計算は、元になっている型のデータサイズを
考慮して行われます。

int型では1を足すと1番地増えますが、double型では2番地増えるのです。
つまり"+1"というのは「データ一個分ずらす」という意味なのです。
これを使えば、確保した領域を配列として使えることは自明ですね。

変数の型でなくても、typedefすれば独自の型を使うこともできます。
「構造体の要素1個分ずらす」ということが"+1"と書くだけでできるわけです。
つまり構造体の配列もラクラクできちゃいます。
この辺は頑張って自分の手でやってみてください。
勉強になると思います。

234 :名称未設定:03/04/02 23:19 ID:U9/dSOVD
三日目じゃしょうがないけど、
ポインタでつまずいてる人の、理解の助けになれば
報われようというものですが。どうですか?

後半ちょっと、迷走気味だったのが反省点でつ。
分かりやすいにゅ有紋書をかける人って凄い才能だと知りますた。

235 :生徒1:03/04/02 23:29 ID:KsESIL6M
>>234
先生!!!気が向いたら、また講義してください。
とりあえず、コピペして保存して・・・
今後のお勉強で、ポインタで詰まったら、読み直すことにします。

236 :名称未設定:03/04/02 23:52 ID:17knjfrv
さすがに図が無いと辛いねい。果たしてこの試みは成功するのか?

237 :名称未設定:03/04/03 00:07 ID:eHqBiKm/
先生!!!○年前に挫折した人間ですがいける気がしてきました!

238 :名称未設定:03/04/03 00:08 ID:0NyYf9Wy
かなりわかりやすかった気がします。
typedefとかがわからないです。

239 :名称未設定:03/04/03 00:25 ID:ieT98QEW
うん、反響があってちょっと安心したかな。

余談は読まなくてもいいと思います。
本当に余談。Cで複雑なもの作ろうと思ったら考えてみるくらいでどうかな。
Obj-CにステップアップするためのCの勉強なら、
すっ飛ばしてもいいところだよ。

240 :名称未設定:03/04/03 00:33 ID:JnzzKS2j
いわゆる普通の変数:「山田さんの部屋」
ポインタ:「407号室」


241 :名称未設定:03/04/03 00:36 ID:ieT98QEW
・初心者の落とし穴

よく参考書やソースにはポインタ変数の宣言に

int *p;
などと書かれていますよね。
そして、ポインタ変数"p"が指すアドレスの中身を見る場合、

a = *p;
と書くことも教わります。

ここで初心者が陥りやすいのが、
「あれ? 「*」ってどういう意味? **pじゃないの?
 "*p"っていうのが変数の名前じゃないの?」
などと混乱すること。
最初の「*」はint型の「ポインタ変数であること」を示すための記号、
後者はポインタ変数「"p"が指すアドレスにあるデータ」を指す記号です。
といわれても、やっぱり分からない人には分かりません。
でもこれ、宣言の書き方が分かりにくさの原因です。

実はこのポインタ変数の宣言、

int* p;
でもいいんです。
こうすることで、「int*」型の変数だと自分に言い聞かせます。
「int*」型の"p"という変数だと思えば、何となく分かりやすくなりませんか?

最初のうちはそれでいいと思います。
そのうちに、なぜ「int *p」と書くかが分かってくると思います。

242 :名称未設定:03/04/03 00:40 ID:ieT98QEW
typedefはわりと重要です。
特にObj-Cをやるなら覚えておいたほうがいいです。

なぜなら、Obj-Cをはじめとするオブジェクト指向言語で使う
クラスライブラリというのがあるんですが、これには今まで
聞いたことが無いような”型”の変数やパラメータが出てきます。
これらは実際にはchar, int, float, doubule, long int, long doubleや
それらのポインタ、またそれを使った構造体など、C言語の
変数の「別名」であることが多いです。
これを理解して、それぞれの部品がどういう動作をするか
理解することが、とても重要になってきます。

243 :名称未設定:03/04/03 01:42 ID:+AiOpGDi
Oh!X辺りにC言語の分かり易い入門連載があったような。

244 :名称未設定:03/04/03 01:56 ID:P/2+jJ60
先生!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
そんな、ソース不明な思わせぶりなのは、困るっす。
先生!!!が偉いということで、お願いします。

247 :名称未設定:03/04/03 02:11 ID:ieT98QEW
えーと、すいません
C言語なんて16bitが主流だった時代に通過したもんでw

書きながら「そういやCPUにはバイト単位でアクセスする機能が
あるのにほんまに1増えるんだっけか」
とか思ってたのは秘密でつ(エーッ

248 :名称未設定:03/04/03 02:12 ID:ieT98QEW
余談。
Oh!XはC言語よりアセンブラの入門書が
最高に分かりやすかったですよ。村田氏のやつ。

X68000マシン語プログラミング 入門編

249 :名称未設定:03/04/03 02:31 ID:W8k2A3Bb
>>244
まさにソコがC言語のポインタの落とし穴。(って、落ちたの俺だけ?)
ポインタに型の無いアセンブラとは違うだな。

250 :名称未設定:03/04/03 13:53 ID:/ijfOmqR
Macでプログラムなスレが落ちたっぽいのは何故?つーか粛正の嵐吹いてる?

251 :名称未設定:03/04/03 15:39 ID:qHv9lxl3
Oh!Xって2001年春号が最新刊だけど
廃刊にはなってないよね?

252 :244:03/04/03 16:42 ID:Hs3fhy75
>>250
このスレ?
http://pc.2ch.net/test/read.cgi/mac/1049070432

253 :名称未設定:03/04/04 02:22 ID:C+VHIdQm
漏れの中で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なんだけどね。
しこしこネットで英語のテキスト読むのめんどくさすぎ・・・・・


258 :名称未設定:03/04/06 21:53 ID:Vmld6hyU
具体的な質問が無いと、先生も一人語りじゃ辛かろう。
かと言ってここで勉強しようと思ってる人が質問出来るとも思えない。
永遠のジレンマやねえ。

259 :名称未設定:03/04/06 21:57 ID:HlwDxlFS
と、いうより。
何でもいいから一冊本を買ってきて読んでみると、
言ってることが理解できるようになると思うぞ。

コンピュータ関連の技術書は高いけど、最初の一冊は必要なのはしょうがないよ…

260 :名称未設定:03/04/06 21:57 ID:ToXYWizc
OS9でCarbonでCな人は、Cの勉強というか、ToolBox(又はCarbonLib)の
勉強をすれ。C言語だけを勉強してもMacのアプリケーションは作れません。

261 :名称未設定:03/04/06 22:01 ID:HlwDxlFS
じゃあ、あれだな。
OSXでCocoaでCな人は、Cの勉強というか、Project Builder(又はCocoa API)の
勉強をすれ。C言語だけを勉強してもMacのアプリケーションは作れません。

262 :名称未設定:03/04/06 22:10 ID:+nhce9mR
俺はRbに飽きたのでC++にスイッチ中。
とりあえず自分用のRbのプラグインをちょくちょく作りながら
勉強してる。
言語は違えど処理の概念は似てるから結構分かる部分って多い。
細かいことは猫のサイトで独学中ナリ。

263 :名称未設定:03/04/06 22:11 ID:hIcewEU1
>>260
うん、んでしこしこ英語のテキスト読んでるところ。
つか初めてやっぱOS X欲しいと思ったよ・・


264 :名称未設定:03/04/07 01:22 ID:XZN6S4P4
本も買ったけど、ネット講座でお勉強中。
いろいろ渡り歩いて、やっと自分のレベルに合った講座を見つけたよ。


265 :名称未設定:03/04/07 02:04 ID:8wz4uCTs
OS9でCarbonでCな人は新居さんの本でオッケーじゃないすか?

266 :名称未設定:03/04/07 02:13 ID:K26Jj178
何々の本を買えという香具師多いけど
今のWEB上での情報も馬鹿にはできないレベルになってるわな。
些細なことなら2ちゃんなりで聞けば分かることもあるし
WIN系サイトでもCなら基礎は学べる。
本の購入はネットで基礎を学んでからにしたほうが
個人的には良いと思う。大概はプリントアウトしちゃえばいいし。
英語ができれば海外サイトなんかはサンプルも腐るほど落ちてるし
本をめくるよりショートカット的に知りたい部分を理解できる。

まあProject Builderやコードウォリアーなんかの
ソフトの操作法に関しては情報源は少ないから辛いところだけど。

267 :名称未設定:03/04/07 23:45 ID:XZN6S4P4
Rbの初心者が、無謀にもC言語のお勉強を始めたばかりでなんなのですが、
参考書で発見した、Cプログラムとはすべてが関数なのだ・・・
という記述にびっくらこきました。
そうか、要するに原点はここなのだ。それが進化、構造化すると、
メソッドやらプロパティ、クラスなどというオブジェクト指向になるんだ。
と、理解したのですが、ただしいのでしょうか。漫然とした疑問です。

268 :名称未設定:03/04/07 23:58 ID:tb6C8qNf
惜しい。全てが関数というのはC言語まで。
それ以降は、全てが関数と言うのはもう当然のことで、
そんなことよりも重要な要素を理解しないといけない。

クラスというのは、凄くぶっちゃけた話、構造体。
メソッドというのは、クラスを構成している構造体一つ一つの要素のこと。
ここでいう要素とは、変数(配列や構造体などを含む)、関数、
そして他のクラスそのもの。

まだ理解できないかもしれないけれど、
オブジェクト指向言語の凄いところは、いままで変数(とその派生)
しか収めることができなかった構造体に、関数やクラスを含むことが
できるようにしたところ。

269 :名称未設定:03/04/08 00:08 ID:D2j+hYgM
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言語にはインターフェイスがないぶん単純ってことかな・・・
先の道のりは長いことに、変わりはないけど。

272 :名称未設定:03/04/08 00:29 ID:RevwN4Y3
>>270
ttp://member.nifty.ne.jp/kyoryo/mactip/mpwprog/
これ御存じ?

273 :名称未設定:03/04/08 00:39 ID:BJgGxyKI
>>272
うん、ありがとう。
ただ、それ読むのもある程度ToolBox関数っていうの?よくわかんないけど、
Cの知識じゃなくてMacの知識がないとわからなくないかな?
最初のサンプル1文だけは読んだんだ。

で、今
http://www.mactech.com/macintosh-c/online.html
見てるところなんだ・・・・・


274 :名称未設定:03/04/08 00:41 ID:NdWO9trB
ToolBoxって5000種類くらいあったような。

275 :名称未設定:03/04/08 00:42 ID:G9b62tG/
>>270
英文+CodeWarriorだけどCarbon野郎育成口座
ttp://www.mactech.com/macintosh-c/index.html

んで、こっちはClassicアプリだけど英文+MPWありまつ
ttp://www.mactech.com/macintosh-c/classic.html

取っ掛かりにどうぞ

276 :275:03/04/08 00:43 ID:G9b62tG/
あらっ、カブちゃったわさ。

277 :名称未設定:03/04/08 00:45 ID:BJgGxyKI
>>274
よく使われる主なものだけ
そこそこの解説付けてまとめたリファレンスみたいの
あればいいのにね。

って探せばあるのかな。


>>275
うん、それ見てる。ありがと。
わかりやすいけど、英語なので疲れて2chなのであった。。。


278 :名称未設定:03/04/08 01:10 ID:D2j+hYgM
現実的な話、
WindowsのMSDNライブラリでさえ英語ドキュメントを参照する必要が
しばしばあるというのに、現状のMacでプログラム組もうと思ったら
それこそ「ほとんど英語」の情報を手探りで調べないといけないのは
覚悟するべきではないかと…

まあ、マニュアルはわりと簡単な英語で書いてあるし、よく使う
クラスは決まってるから頑張って。

279 :名称未設定:03/04/08 01:11 ID:3SNMeKKx
REALbasicのプラグインとか、HyperCardのXCMDとかから入ってみる手もある。
インターフェースを作る手間がないから、純粋に(?)Cの勉強が出来る。

280 :名称未設定:03/04/08 01:17 ID:BJgGxyKI
8ビット機主流の時代からいきなりタイムスリップしてるものな、おれ。
MULTI BASICとかいいかなあとも思ったんだけど
どうせまたいろいろ覚えるならMPW+Cでやってみるか、と。

今無職で金はないけど時間はあるし(笑。

まあある程度のひな形までできれば、って思ってるから、
それまで地道にがんばるよ。


281 :名称未設定:03/04/08 01:24 ID:NdWO9trB
がんばれよ。
ポインタで死にそうになるが、そこを切り抜ければあとは楽だ。

282 :名称未設定:03/04/08 01:29 ID:BJgGxyKI
ああ、ポインタというかメモリ管理っぽいことで
やたらと○○しないとクラッシュするかも!とかの注意がいっぱいあるんですけど、
んで○○する場合にはあらかじめ○○しておいて不要になったら○○する、
とかやたらあるんですけど、

今のところ簡単なサンプルプログラムしか打ってなくて
その中ではそのような処理はとくにしてないようなのですが

そんな神経質に処理する必要あるものなんでしょうか。


283 :名称未設定:03/04/08 01:33 ID:BJgGxyKI
ちょっと訂正。
ちょっとしたアプリ組もうとすると
やはりそのような処理が必要な場面がしばしば出てくるのでしょうか。


284 :名称未設定:03/04/08 01:46 ID:D2j+hYgM
ものによる、としか言えないな。
メモリを確保して不要になったら解放する、というのは
別に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のページを一通りやってみたんだけど、まだいまいちわからん。

290 :名称未設定:03/04/08 10:57 ID:2D3s78GS
>>289
最終的に何することかって??
そりゃ、ビルドするんだよ(w

んで、作ったアプリを使うんだよ。(ww

291 :名称未設定:03/04/08 11:00 ID:32mvxGLR
最終的に形あるものを生み出せば良いのだよ。




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!って出力させるところからビルドするところまでは
随分長い道のりに思えるのだが。

294 :名称未設定:03/04/08 11:03 ID:2D3s78GS

Hello Worldを出すためにはビルドしないといけない気が・・。

295 :名称未設定:03/04/08 11:05 ID:32mvxGLR
ID:entfTMv+氏は根本的なことが分かっていない気がするよ。

296 :名称未設定:03/04/08 11:06 ID:entfTMv+
>>294
アプリの開発の間違いですた。スマソ。

297 :名称未設定:03/04/08 11:12 ID:BJgGxyKI
OSXだったらCocoaがやっぱりってサイトがメジャーっぽかったんだけど
今見てみたら、なんかコンテンツ見れないみたいだね。

ウインドウ開くとかそのなかにグラフィック描くとか
いちいち具体的なことはどうしたらいいんだーーーーー
ってことでしょ?
なんか基本的なことから徐々に地道に勉強してくしか
どうもないっぽいよ。


298 :名称未設定:03/04/08 11:15 ID:D2j+hYgM
一般の趣味グラマなら

・思い付く(これ便利じゃない!?)
・動作を煮詰める(実際にどんな動作をするのか考える)
・それっぽい動作をしそうなクラスを探す(マニュアルとにらめっこ)
・インターフェイスを作る(IF Builderで)
・足りない部分をコーディング
・ビルドしてリリース。
・改善点を発見してしまう(以上ループ)

299 :名称未設定:03/04/08 11:18 ID:2D3s78GS
>>296
別にGUI付きアプリでなければ使えないわけでもない。
Terminalでテキストで応答しながら入力をうながして何かの処理をするものも
立派なアプリケーション。

>>297
いや、夲買え(w
Cocoaはやっぱりも、夲買ってほしいからコンテンツ閉じたのもあるのかも
(あるいは出版社から何か言われたか)

AppleScript+Cocoaならかなり手っとりばやくカタチのあるものが作れるよ。
Terminalのコマンド呼べばいろいろできるし。

300 :名称未設定:03/04/08 11:21 ID:2D3s78GS
>>298

はい!せんせえ!

上から3番目あたりができません!!(w





のでCは挫折してスクリプタやってまさ。

301 :名称未設定:03/04/08 11:24 ID:BJgGxyKI
>>300
あはは
Hellow Worldから3番目まで行くのが
かなり険しいよねえ(笑。
Window開くコードはどっかのサンプルでも利用してすぐできるけど、
そのコードというかそれぞれの関数などの意味を理解するにはねえ。


302 :名称未設定:03/04/08 11:37 ID:2D3s78GS
日本語で書かれた詳細で安価なリファレンスが欲しいです。。

なんか、新居さんかどなたかの二冊組みの夲とか見ながら、
ウインドウにクリックできるボタンつけたりしてましたけど。

303 :名称未設定:03/04/08 11:42 ID:eEeIJH3Y
漏れはRbでさえ、クラスのライブリーとか、読めずに泣きました。
ライブラリーの読み方のマニュアルって、ないよね・・以外と。
て訳で、読めない人は、C言語知る(コンピュータの動作含め)と理解して
今、C言語の勉強はじめました。
最近、やっと、C言語の関数ライブラリーがわかるようになりましたです。


304 :名称未設定:03/04/08 13:59 ID:8wTCAmOB
俺はオライリージャパンの「Cデスクトップリファレンス」という本を重宝してる
1200円と安いしハガキよりちょっと大きいくらいなのでどこにでも持ち運べる
コーディングする時に脇に置いとくと便利
100ページくらいしかないので詳細というわけにはいかないけどね

305 :名称未設定:03/04/08 14:00 ID:2D3s78GS
>>304
そりは、リファレンスはリファレンスでも、
ToolboxとかCocoaでなくてCのやつでそ?

306 :名称未設定:03/04/08 14:56 ID:poCw6wCP
とりあえず、このスレで共通の「お題」でもつくってプログラムを作ってみては
どうでしょう?簡単な課題でも具体的な目標があるとやる気が出るし、他の人の
書いたプログラムを追いかけてみるのもいい勉強になるよ。

無難な課題としては「時計」なんかどうでしょう?

307 :名称未設定:03/04/08 17:22 ID:f7abovpm
とりあえずmac版winnyを(笑)なんつってね。

確かにサンプルみたいのあると助かりますわー

308 :名称未設定:03/04/08 19:08 ID:D2j+hYgM
時計ってデジタルだよね?
アナログ風のはひじょ〜〜に面倒。

309 :名称未設定:03/04/08 20:05 ID:2D3s78GS
アナログは、三角関数いる?

310 :名称未設定:03/04/08 20:20 ID:D2j+hYgM
ん〜まぁ、そんなに難しくないんだけどさ。

・時間を元に、長針短針秒針の角度を割り出す。
・窓の中心点から、それぞれ決めた長さの直線を描く。
・1秒ごとに繰り返し

処理はこんな感じ。
でも、線を引くのが、とてもだるい。

でもテキストフィールドに時刻を表示するだけなら、
「Hello World」と大して変わらないんだよな…

311 :名称未設定:03/04/08 22:15 ID:uvpoFQVb
GW使う練習になるのでは >デジタル時計

312 :名称未設定:03/04/08 22:24 ID:h3F47xNQ
針クラスを作りたいね。
で、オブザーバーパターンを使うね。
針クラスが、数字を表示すればデジタル時計になるね。

でも、C言語のスレだから関係ないね。

313 :名称未設定:03/04/09 03:13 ID:zeo+rpcF
先生!!!そろそろ本格的講義に入ってください。
予習をしたら、C言語にもtime構造体みたいなもんが
あるのがわかりました。

314 :名称未設定:03/04/09 05:09 ID:EcRlU3Hz
自分で学べよ

315 :551:03/04/09 07:48 ID:GMfRvQlQ
つりクラスかと思った.

316 :名称未設定:03/04/09 08:47 ID:3uoajrsn
>>307
名前はwinnyじゃまずいだろ。mackyか?(w

317 :名称未設定:03/04/09 08:51 ID:Xpfx6klH
nyで通ってるから、Macnyだろうね。本家版出るなら。出て欲しい。

つーか、スレ違いだから。

318 :名称未設定:03/04/09 10:29 ID:TQP4hqHk
mackyってゼブラから何か言われそうな名前だなぁ。

319 :名称未設定:03/04/09 18:19 ID:m9IwrISD
時計できたけど実行すると・・・ハァ。

320 :名称未設定:03/04/09 20:03 ID:Xpfx6klH
むかしCodeWarriorで作った時計があるはずなんだが、
OS XからじゃMOが開けん。。

>>319
??

321 :319:03/04/09 21:14 ID:m9IwrISD
OS9で実行するとまぁまぁ普通
アバウトボックス出すと変になるけど・・・。

OSXじゃメニュー出したら変になるし
アバウトボックスだしても変になる。
もう、ボコボコ。

ってか出来たとは言えませんね。えぇ。

322 :名称未設定:03/04/09 21:16 ID:0iFoV6SC
>>321
ソースキボンヌ

おお、なんか始めてソースという言葉がコンピュータの用語として
使われたような気がするぞw

323 :319:03/04/09 21:21 ID:m9IwrISD
ちょっとだけ時間下さい。
整理しますから。

324 :319:03/04/09 21:39 ID:m9IwrISD
アナログ時計のアプリとソースです。
バグ付きです。ソースは汚いです。
ドウゾ。

ttp://cgi.2chan.net/up2/src/f5177.xxx

325 :名称未設定:03/04/17 06:18 ID:uJWuUH48
英語でC言語をお勉強するお勧め本ありませんか。
完訳本もでているといいな。一石二鳥ということで・・・

326 :名称未設定:03/04/17 07:27 ID:gKim7Gd6
訳者にもよるだろうが,訳がむちゃくちゃで失望するかも。
(小説を最近読み比べたんだが,ひどい訳だった)
まあ,テクニカルな文章は難しくないからそんなことはないだろうが.

327 :名称未設定:03/04/17 09:19 ID:wyOylYxH
悪訳のテクニカルな翻訳本なんていっぱいあるぞ
K&Rなんてヒドイという噂だ

328 :名称未設定:03/04/17 11:23 ID:fWn2pKnT
>>327
それは激しく同意。
まぁ、純国産の技術書で嘘垂れ流してる奴も多数あるんで、なんともいえないが。
翻訳の質が低すぎて原書読まないと意味わかんね〜よ!ってのもざらにある罠。

とりあえずあんまり難しくない英語のPDFとかで配布してるようなのに玉砕覚悟でぶつかってみるってのは?

329 :山崎渉:03/04/17 15:14 ID:6I5vRaG+
(^^)

330 :名称未設定:03/04/17 16:15 ID:+qH4DDSS
「英語が堪能」で且つ「プログラミングの知識がある」人間が
本の翻訳なんぞと言うものをやるとは思えない。

331 :325:03/04/17 21:57 ID:uJWuUH48
うーむ、やはりお勧め本はないんですか。
K&Rというのはなかなかいい本だとは聞いたのですが、
初心者にはきついと聞いたので・・・どんなもんでしょうか。

自分の考えは、C言語を覚えても英語ができないと
後で苦労すると・・・このスレ等にもあったので、
英語もC言語も一気にと思ったのですが、難しいのかなあ・・
とりあえずは、日本語で勉強してから、K&Rに行こうかな・・




332 :名称未設定:03/04/17 22:09 ID:2w9KcmYy
K&Rって、歴史的価値とかそういう事ぢゃないの?

333 :名称未設定:03/04/18 12:35 ID:p/+aDCI6
「Cを勉強したい」というだけなら必ずしも無理してK&Rを読む必要はないと思う
アレは「話のタネに」読むものじゃないのか?(w
英語については機械翻訳使ったりとか辞書引いたりとかしながら
徐々に慣れていけばそのうち普通に読めるようになると思うよ
評判のいい原書と翻訳本のセットが欲しいということなら
「エキスパートCプログラミング」はどうよ?
「最初に読む本」ではないが面白かったし評判もソコソコいいぞ

334 :名称未設定:03/04/18 13:14 ID:wAWd4NiW
最初に読む本でなければ、ヒレガス本と翻訳とかあるんだが。(Objective-CでCocoaな本)

335 :名称未設定:03/04/18 13:46 ID:T33FN1Bb
誰かまとめてくれ。

336 :325:03/04/18 13:51 ID:76ry3NiS
>>333
うむうむ、面白そうな本ですね。取りあえず、筆頭候補にしやす。
>>334
どうもです。ヒレガスって何ですか。Cocoaな本は目標です。

現在はネットで勉強中です。
そいと、いろいろぐぐってたら、2ch Booksなるサイトを発見。
2chおそるべし。
http://www.1point.jp/~book_2ch/index.html

337 :名称未設定:03/04/18 16:49 ID:p/+aDCI6
>>336
その2ch booksってム板の推薦図書スレで挙がった本を紹介してるページだよね
それからヒレガス本ってのはアーロン・ヒレガス著「Mac OS X Cocoaプログラミング」のこと
萩原剛志著「Objective-C Mac OS Xプログラミング入門」と並んで
Cocoaプログラミングのバイブル本だよ

338 :名称未設定:03/04/18 21:55 ID:GlurKOXK
なんか
a = a+++b;
がどう解釈されるかとか、心底どうでもいいことを
死ぬほど掘り下げてる本なかったっけ?

339 :名称未設定:03/04/19 12:25 ID:EtlYQ2/p
??

340 :名称未設定:03/04/19 12:28 ID:U6ucfdhK
昔「はじめての C」という本を買ったことがある。
買う時、なぜだかとても恥ずかしかったです

341 :名称未設定:03/04/19 12:31 ID:Y6JQeL8Z
>>338
それが「エキスパートCプログラミング」じゃなかったっけか
あの本は役に立つというより読み物として面白い
Sunのコンパイラ開発チームのメンバーが書いてるから
コンパイラの挙動について色々解説されてるね

342 :名称未設定:03/04/19 12:39 ID:EtlYQ2/p
時計を作ってみますた。
ttp://mog2003.tripod.co.jp/

343 :名称未設定:03/04/19 14:30 ID:PSKGZCtB
>>342
スゲーある意味画期的。

344 :名称未設定:03/04/19 15:07 ID:Y6JQeL8Z
>>342
バカウケした
よく頑張った

345 :名称未設定:03/04/19 15:18 ID:Lw08lzzx
>>342
アニョハセヨーな感じがしました。

346 :名称未設定:03/04/19 17:55 ID:W2cVRl+1
スッゲ感動した

347 :342:03/04/19 18:27 ID:EtlYQ2/p
>>343-346
レスThx! & ウケ狙い成功か?
最初はRadioButtonでしたが、水色イクラみたいなので.....
なんかPictureを用意した方が見栄えはいいでしょうね。

348 :名称未設定:03/04/19 22:39 ID:Ibfd7LZw
ドットマトリクスイイ!

349 ::03/04/20 01:41 ID:NHnXOD67


350 :山崎渉:03/04/20 02:54 ID:ZHDoPsUy
   ∧_∧
  (  ^^ )< ぬるぽ(^^)

351 :山崎渉:03/04/20 03:36 ID:Arg431sO
   ∧_∧
  (  ^^ )< ぬるぽ(^^)

352 :名称未設定:03/04/20 04:07 ID:X3rOQPM7
低レベルな情報を知りたい場合はやっぱり C の知識が必須なんだと実感。
Minix のソースでも見て勉強しようかと思いましたが、Darwin のコードも
オープンソース化されていたのを思い出しました。

http://www.opensource.apple.com/darwinsource/10.2.5/

今、ここを見て C/Darwin の勉強を始めた所です。C は関数がどこで定義
されているか調べるのが面倒ですね。クラスブラウザみたいの無いかな。
副読本でもあると良いのですけど・・・。

353 :名称未設定:03/04/20 10:29 ID:KTqhx651
age

354 :名称未設定:03/04/20 10:53 ID:vEwS/VFO
age

355 :名称未設定:03/04/20 12:45 ID:WZ3kaS1P
CoreFoundationのソースって何処にあるの?

356 :342:03/04/20 16:20 ID:glBqj4Ui
CarbonEvent対応とnibベース化してみました。pbproj添付。
見た目は何も変わってないですが、CPU占有率減少....

357 :名称未設定:03/04/20 22:23 ID:njVlpTiH
>>356
CPU占有率減少を言うなら...
1.WaitNextEvent()のsleep値に0を渡すのは絶対だめ、System6時代からの注意点
2.DrawControls()は有害、放っておけば変更部分だけ再描画される。
この修正で2%以下のCPUロードになる。EventLoopTimer版の方も2.は修正必要

358 :Emacsうまうま:03/04/20 22:43 ID:qXGzEbjJ
>>352
> クラスブラウザみたいの無いかな。
http://www.loveruby.net/ja/misc/readingcode.html
を参照するとよいかと。

DoxygenとGraphvizを利用するとかなり便利に読める。

359 :342:03/04/20 23:22 ID:glBqj4Ui
>>357
ご指摘サンクス。修正しました。

360 :名称未設定:03/04/21 00:21 ID:5a8Mlo0H
>358
thanx!!
私は Vim うまうまなので、ctags というのが良さそうな感じでした。
ドキュメントはここら辺を探してみます。
http://developer.apple.com/techpubs/macosx/Darwin/General/

361 :名称未設定:03/04/21 00:32 ID:7KqnsuPX
「MPWでプログラミング」
MPWの使用法から実際のプログラム開発まで
すごく丁寧に解説しています。お勧めです。
ttp://member.nifty.ne.jp/kyoryo/mactip/mpwprog/index.html

362 :名称未設定:03/04/21 17:00 ID:IVDd/RjE
ユーザがOSXにシフトしている中MPWの価値はあるのだろうか。

363 :名称未設定:03/04/21 18:24 ID:+tCOOZzB
趣味だよ、趣味。

364 :名称未設定:03/04/21 19:32 ID:vi1DEM9k
>>362
OS9以前のマシンを手に入れてしまった、OSはftpから落した7.5だ、金はねぇ
って人だとMPWしか選択肢はなさそうだよね。
間違ってNewtonとかMagicCapとか手に入れてプログラム作らなあかん!て人もMPWならなんとか
なるかもしれんし。


365 :名称未設定:03/04/21 22:04 ID:gZ5QL+kP
MPWって今時.....
そりゃ選択肢の一つではあるけどさ、普通「C言語を学習したい」事よりも
「何か作ってみたい」方が先にこないか?。
金がないならPB、(十分に)余力があるならCWでしょ。
アポーはOSXの開発しかしてない訳だし。

366 :名称未設定:03/04/21 22:08 ID:gZ5QL+kP
ついでにage

367 :名称未設定:03/04/21 23:12 ID:vi1DEM9k
>>365
基本はOSXの動くマシンならもう間違いなくPBなりなんなり好きに使ってやれ!なんだけどさ。
世の中まだまだOSXの動くマシンなんか無いよ。つー人はいるわけで。
十分に金に余力あったらとっととOSX動くマシン買え!つーのは大正解だとおもうが。
まだMPWはそういう向きにはアリな選択肢だろうとはおもうよ。

ついでに言うとCW買えはいまさらちとお勧めできない罠。
Apple以上に厳しいお布施と1億行を超える責め苦が毎回やってくる訳で(藁

素人があれを買ってしまってどうこうできるのか?と小一時間(藁

368 :名称未設定:03/04/21 23:25 ID:gZ5QL+kP
>>367
確かにCWは通常初心者の買うものではない......



漏れは買ってしまったが

369 :名称未設定:03/04/21 23:27 ID:wHolMmTi
CodeWarriorに支払ってしまった大量のゼニ。。だれか俺の懐にもどしてくれ。。

370 :名称未設定:03/04/21 23:57 ID:8EbmDuGW
>>369
残念!!あきらめるしかないっ!!

371 :名称未設定:03/04/22 01:02 ID:3VLX7x67
Mac OS 9 なら Mac MiNT がお勧め。gcc が使えて Palm アプリも作れる。

372 :名称未設定:03/04/22 04:10 ID:5JX5es2b
>>371
9でまともに動いたっけ?

373 :342:03/04/22 06:52 ID:JeICBDdG
何故かデリられたので移設しますた。
ttp://www.geocities.co.jp/SiliconValley-SanJose/7933/

374 :名称未設定:03/04/22 12:03 ID:p6b5yFun
>>371
そのMacMiNTをまともに動かすためにMPWと古いUniversalHeaderが必要だった時期あったね。
あれ?THINKで事足りたんだっけ?
まぁ、どっちにしてもあれなんだが。
大人しく小金貯めてOSX動くMac買え!ってのが最適解な感じはするねぃ(w

>373
スクリーンショットつけたんだねぇ。ごくろうさま。

375 :名称未設定:03/04/22 15:20 ID:Dp5uuvzf
>373
よく見たら、Mac OS Xのチェックボックスのチェックってコントロールのビューからはみ出てんだね。
アップデートの判定ってどうやってるんだろ。


376 :342:03/04/22 19:38 ID:JeICBDdG
>>375
スクリーンショットではわからないのですが、実行画面をよくみると
はみ出てる部分がちょっと切れるところが発見できますね.....。
ま、間隔が狭すぎる訳ですが。

377 :375:03/04/22 22:52 ID:Jw95dyid
気になったので調べてみた。
当たり前だが、はみ出た部分もビューの中にちゃんとおさまってたよ。
無駄な時間を費やしてしまった...

378 :名称未設定:03/04/24 22:02 ID:Fi+a5BIb
次のお題は〜

379 :名称未設定:03/04/24 23:54 ID:igcxn/bZ
そういえばC製の2chブラウザって無いような。

380 :名称未設定:03/04/25 02:12 ID:D+b75vC0
マカー用。はアイコンが「しぃ」なんだぜ。
アイコンが「しぃ」ってことは中身も「しぃ」=「C言語」に違いない!!
REALbasicって何ですか?私はそんなもの聞いた事がありません。
「聞いた事がないもの =(中略)= 存在しない」此れは定説です。
よって(「マカー用。」=「REALbasicで作られた」) = false
かつ(「マカー用。」 = 「しぃ」) = true
したがって、「マカー用。はC言語で書かれている」= true
ということになります。

381 :名称未設定:03/04/25 09:17 ID:5KVyZvTh
釣られてもいいけど、今日は気温も書き込みも寒いからやめとく。

382 :名称未設定:03/04/25 09:18 ID:I40kUyrw
>>379

ココモナはObjective-Cだと思うけど

383 :名称未設定:03/04/25 21:36 ID:V1IEMfjF
基本はGAMEではないだろうか。




そんな俺はべーマガ世代

384 :名称未設定:03/04/26 13:45 ID:ccjXBh41
>>380
(^Д^)ギャハおいおい、マカー用。がC言語で書かれているだって???


385 :名称未設定:03/04/26 15:19 ID:zffmxeUq
やっぱり9以下だとコンパイラの選択肢は2つしかないのか

386 :名称未設定:03/04/26 15:48 ID:3vuwXOXw
このあいだ道を歩いてたら見知らぬ外国人に「お前から見たら俺は外人かもしれないが、
俺から見たらお前だって外人なんだよ!!」と言われました。確かに彼の主張は正しいと思います。

387 :名称未設定:03/04/26 17:21 ID:Wi1WOxek
>>384

少しはおもしろいネタに、全然おもしろくないレスを返す奴って・・・。

388 :名称未設定:03/04/26 18:36 ID:NHJ3QAJE
>>385
Cでコマーシャルプロダクツ作れるようなもんつーとCWとMPW位かな?
THINKはPascalはフリーになってたけど、Cの方はわからんしねぇ。

SesamiCとか入門用のがあったけど、ああいうのはなんだしねぇ。
SymantecC++がフリーになるとかなったとかって朗報は永遠に届かないだろうしねぇ。
ま、CW買う金があったら大人しくOSX買っちゃえ!つーか動くマシンも一昔前のG3マシンとOSXセットで買った方が安上がりかもよ。

389 :名称未設定:03/04/26 19:30 ID:g6Mc530/
古いマシンでただでプログラミングやりたいなら NetBSD を入れるのが良いんじゃない?
上手くすれば Mac OS X でも動く。

390 :名称未設定:03/04/26 21:01 ID:9WeQVIYR
>>385
「C」で....となれば実質的にはそうなる。
まあマカならばそろそろOSXを導入する時期ではないかと。


391 :名称未設定:03/04/26 21:01 ID:9WeQVIYR
たまにage

392 :名称未設定:03/04/27 02:28 ID:QiQxkUOL
>>389
それが一番かもね。とおもってふと気付いたのだが、NuBUS PPC Macの椰子は厳しそうやね。
まだNuBUSPPCでMkLinux以外のぱっとした話って聞かないよね?
まぁ、いずれにせよOSX動くのお買いってことだが。

393 :名称未設定:03/04/27 02:48 ID:oq9PLTK8
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 での設定も書いてあり、お勧めです。

394 :名称未設定:03/04/27 05:07 ID:oq9PLTK8
もしやとおもって、/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のコードを埋め込む
ような感じだと思うけど。


396 :名称未設定:03/05/01 14:40 ID:VXQ0zHZx
>>395
とりあえずOOPやる前にSmalltalkやっとけ!ってのに一票(藁
C++とかJavaだけで育っちゃうとなんかOOPな物の見方が無い人になっちゃいがちな感じ。

Cマガとかもあれだもんなぁ(鬱

ま、とりあえず今ならVisualWorksNC7.1でそこはかとなく遊べるんで尊師のページとかを行間読みしてSmalltalkやってみるといいかもしれん。

それでもそんな手間をかけてまでってのはそうはいなさそうだったり。

397 :名称未設定:03/05/07 22:55 ID:XHbVFez5
>>342
なんかつくってくれ

398 :名称未設定:03/05/10 22:48 ID:tVVc/Skk
期待age

399 :名称未設定:03/05/20 05:15 ID:+SHpoV5D
printf ("Age World!!\n");

400 :名称未設定:03/05/20 05:18 ID:QsEq5Hqf
400ゲリ

401 :名称未設定:03/05/20 13:45 ID:r6T6gtxO
gets();
400++

402 :名称未設定:03/05/26 11:21 ID:8l1qDbpV
保守

403 :名称未設定:03/05/28 04:01 ID:RlBeXo4p
int main()
{
  bool T_T = true;

  if (T_T) exit();
}

404 :あぼーん:あぼーん
あぼーん

405 :名称未設定:03/05/31 12:28 ID:GPSmosWp
Mac OS X の GLUT は mui 入ってないね。

406 :名称未設定:03/06/02 00:54 ID:MVX6YoJ5
>>395

SmalltalkでもObjective-Cみたいなブラケット記法はなかったと思うぞ。
if文もelse文も演算子も全部メッセージのSmalltalkは、ちょっとした
カルチャーショックを受ける……。


407 :名称未設定:03/06/02 20:55 ID:QhBFKQ7C
>>406
をいをい(w

>SmalltalkでもObjective-Cみたいなブラケット記法はなかったと思うぞ。
ブロッククロージャ忘れちゃっちゃぁ(汗

ブラケットで囲うのはブロッククロージャよろしくこの中は素のCとは違う世界だよと言いたいんだろう>Objective-C。
で、たまたまブロッククロージャのやり方を見習ったと。

ここで識者のコメント求む!とかやっても無駄だろなぁ(汗。
識者が見てないのに1票。

408 :名称未設定:03/06/02 21:03 ID:aWNDjj9o
C に Smalltalk 風のメッセージ式を盛り込む為にブラケットを使っている。
>395 の言っている事は普通に言われている事だけど。

ObjC をやる前に Smalltalk やったら、ObjC に戻ってこなくなるかもね。
ObjC を全て (Smalltalk 並に) 動的に書いたら、Smalltalk の方が実行速度が
速くなるかもって ObjC に書いてあったが、どんなものだろう。

409 :名称未設定:03/06/03 01:17 ID:mBJHgcwY
>>408
> ObjC をやる前に Smalltalk やったら、ObjC に戻ってこなくなるかもね。

まあそれはさすがにないとは思いますけど、Smalltalk環境のサービスに
慣れるとProject Builderとかでフラストレーション感じるかもしれませんね。
でも Interface Builder で挽回?(笑)
言語としてのSmalltalkを知っておいたほうが良いか悪いかは非常に
難しいと思います。Smalltalkのオブジェクト指向って、Smalltalk環境
を前提にしているところがあるから、他の環境の処理系では当てはまらない
ことも多々ありそうだし。たぶん

410 :名称未設定:03/06/03 01:30 ID:mBJHgcwY
>>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って面白いでつね。
しかし{}の立場がややこしい事になっちゃってますね。まぁ[]の中に大人しくしてるんだから大丈夫だろうけど。

うっかり/*の片割れがどっか行っちゃったりしてアホな事になりかねんな<漏れのようなヘタレのばやい。



412 :名称未設定:03/06/03 10:59 ID:Bzly4Pch
>>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もズルいことをしている例として。

413 :名称未設定:03/06/03 11:10 ID:Bzly4Pch
「26-32が 1=2 ifTrue: [3] ifFalse: [4] に」
  ↓
「34-40が111=222 ifTrue: [333] ifFalse: [444]に」でした。

414 :名称未設定:03/06/04 00:47 ID:pK4R5/jr
>412
メッセージ送信だとどうなるの?

415 :名称未設定:03/06/04 02:19 ID:q+Qqw/Ap
>>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 省略

416 :名称未設定:03/06/04 02:43 ID:pK4R5/jr
お願いしておいて何だけど、op コード全然分からないわ・・・。
内部的にメッセージ送信になってないのはコストの問題?

417 :名称未設定:03/06/04 12:38 ID:zO42LhzV
>>416
そうですね。コストの問題だと思います。まあ、op コードは難しく
考えずに単なるスタックマシーンのそれだと思っていただければ、と。

Objective-C は、昔は Smalltalk から C へのトランスレータだった
そうです。一見、とんでもないことをしているかのように驚きますけど、
こうして内部処理をみると、なんてことはないのだなと思えてきて
楽しいですね。if 文とか goto 文(!)とかあったりして。

418 :名称未設定:03/06/04 21:14 ID:YLF/itgL
で、ついでに言っちゃうとそういうの知らんぷりしつつFoundationKitとAppKitだけ使うも良し
下に降りてCであれこれできちゃったりも良し
ってダボハゼらしーとこがええよね。

って、うっかりCでメモリリークしてますが(死


419 :mog2003:03/06/15 23:30 ID:TWuzfrzD
ま、いちお保守。

420 :名称未設定:03/06/16 02:04 ID:joauwrB+
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と同じような?

422 :名称未設定:03/06/17 02:47 ID:9HelhQSS
>>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という解釈でいいのかな?
機能的にそれっぽいが。



424 :名称未設定:03/06/26 02:57 ID:sjfJhgoI
Xcodeは要するにProjectBuilderのリプレースっぽい感じだよね。位置づけとしては。
しかしCocoaがCarbonにすり寄ってProjectBuilderがXcodeに化けて、C++とかにすり寄る感じが
GNUstepと共通コードで済ませようとしてる漏れには辛い未来だ。

そろそろ落せるようになったかな?>Xcode。まだ落せないみたいだったけど。


425 :名称未設定:03/06/28 02:47 ID:HNJMvJ62
>>424
C++ にすり寄ってる?

426 :名称未設定:03/06/30 10:07 ID:EZCP5OvG
んなこたあない。
selectを自慢したかっただけ。

427 :名称未設定:03/07/01 21:59 ID:9SITHeNA
seed欲しいOnlineはSelectとかPremiumでアセット余ってるとことお友達になって譲ってもらおう。


428 :山崎 渉:03/07/15 15:12 ID:34L7LbqJ

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

429 :名称未設定:03/07/21 01:45 ID:PBwYGd88
age

430 :名称未設定:03/07/21 14:16 ID:j0eMT4kG
hage

431 :名称未設定:03/07/30 03:43 ID:G1a4SuuL
学校から課題が出てわからないので教えてください。。

二つの配列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
>>434
うるせーバカー

436 :名称未設定:03/07/30 05:12 ID:tQdITK7+
問い3については、環境についての限定条件がないから、
答:アルバイトを雇ってそうするように指示する
というような、業務プログラムを作るって方法もあるな。

437 :名称未設定:03/07/30 05:15 ID:e0S5Khz+
先生!
半角バックスラッシュはどうやって出すんですか!

438 :名称未設定:03/07/30 05:39 ID:QOlYQQnc
>>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;
}

439 :名称未設定:03/07/30 06:58 ID:5T/c3hYg
>>435

吊られんなよ、>>434 はドザだよ。
低能な書き込みを、わざとマックユーザーだと思わせるために
わざわざマカーって言葉を使ってるあたり墓穴掘ってるね。

自分でマカーと言う香具師はドザか差別用語と認識してないバカーくらいだよ。


440 :431:03/07/30 10:56 ID:Gw2pwLfU
>>438
ありがとうござります。。
でもfor文を使ってやれということらしいのだけど
そのプログラムでも出来るのならやってみます。
ありがとんございまする。。。

441 :名称未設定:03/07/30 11:27 ID:1TrZUxsX
>>431
おいおいネタかと思ってたけどホントに分からないんだな。
でもそういうのは他人に聞かずに自分でやるのが原則だぞ。

442 :名称未設定:03/07/30 11:29 ID:ErTLMkBR
配列cは計算によって出すんじゃなくて?

443 :名称未設定:03/07/30 11:29 ID:1TrZUxsX
#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だとだけ教えておこう。
あとはマニュアル見ながらがんばれ。

444 :名称未設定:03/07/30 11:30 ID:1TrZUxsX
つーか、この問題なんで配列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


447 :名称未設定:03/07/30 11:52 ID:1TrZUxsX
面倒くさくなったから省略するけどヒントだけ。

>>432
値の読み込み(入力のことか?)にはgets()を使う。

そのご、読み込んだ文字列(数字じゃなくていい)が"-1", "0", "1" と等しいか、
もしくは等しくないかをif 〜 else を組み合わせて、該当する文字列("Error"とか)
を吐くようにprintf文を書く。

>>433
whileなんかいらんぞ。
商品の数 ÷ 7 をやって、剰余が 0 だったらそのまま、
剰余が1以上だったら、それに+1したものが答え。
if文で作れる。

448 :名称未設定:03/07/30 11:53 ID:1TrZUxsX
忘れてたけど、
剰余を出す演算子は % だよ

449 :431:03/07/30 11:55 ID:Gw2pwLfU
c[i] = a[i] + b[i];
printf("%d"a[i],b[i],c[i]);

こんな感じでございましょうか・・?


450 :名称未設定:03/07/30 11:58 ID:1TrZUxsX
>>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);
}
こんな感じだと思うけどこれだと違うのですよね。。
わからんちん。。

452 :名称未設定:03/07/30 12:03 ID:oDVr8HtE
>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
最後に;←これ忘れた。。

455 :名称未設定:03/07/30 12:07 ID:oDVr8HtE
scanf キター!!(AA略

456 :名称未設定:03/07/30 12:08 ID:1TrZUxsX
>>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の使い方が
謎すぎるんです。。

458 :名称未設定:03/07/30 12:15 ID:1TrZUxsX
>>457
EOF?
商品の数を入力されて、表示した時点で
n が0以下かどうかを判別して、もしそうなら
return(-1);
であぼーんする。

というのでできるよ…

459 :431:03/07/30 12:17 ID:Gw2pwLfU
>>458
えええそれどうやるんですか・・・・??
それで出来るならそれ教えてほすぃーです。。。。

今osxのデペロッパーツール入れたので
プロジェクトビルダー使って、
さっきのプログラム実験してみまっする。。
プロジェクトビルダー使い方わかるかな・・・。

460 :名称未設定:03/07/30 12:20 ID:1TrZUxsX
>>459
ちょっとまてぃ
UNIXとCの勉強してるのに
ProjectBuilderを使うとはどういうこっちゃ?

ターミナルでコンパイルできるだろーが
こういう簡単なプログラムならそっちのほうがテキストエディタ使えるから楽

ちなみに実現方法は
…nに入力された後…
if(n < 0) {
(適当な処理、まぁエラーメッセージだね)
return(-1);
}
…つづき…
いじょ。

461 :名称未設定:03/07/30 12:21 ID:1TrZUxsX
これから出勤なんでまた夜に会おう
さらば

462 :431:03/07/30 12:23 ID:Gw2pwLfU
>>460
それがですね・・
ターミナルでccコマンド使おうとしたら
謎のメッセージが出てきて使えなかったのですよ・・
・・・・でも今やってみたらcc使えました・・w
ふう。。。。やってみますですー。


463 :名称未設定:03/07/30 12:24 ID:1TrZUxsX
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

先生!半角バックスラッシュはどうやって出すんですか!

467 :名称未設定:03/07/30 12:47 ID:ErTLMkBR
>>466
\

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でございます。

470 :名称未設定:03/07/30 13:47 ID:ErTLMkBR
>>469
化けてないよ。Osakaで半角バックスラッシュなんてあるんだ。
/////////

471 :名称未設定:03/07/30 20:22 ID:nIjcL1fe
>>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つ。倍数を求めるための任意の数と倍数の上限値です。
ここでいう上限値とは、
任意の数の倍数をどのくらいの数まで求めるかということです。

/* この問題はまだ手つかずなので全くわかりません。・。・。 */

474 :名称未設定:03/07/31 01:03 ID:1ZiDg8TA
>>472
ちゃんと自分にできる限りのことをやって、なおかつ
どうしても解決法が分からないならスクロールさせること。













[ヒント]
for文を二重にする。













ういっす。

475 :431:03/07/31 01:05 ID:TDY4ivb1
問3
1からnまでの総和を再帰呼び出しを使って計算する関数sowa()を作りなさい。
問4
キーボードまたはデータフォルダから読み込んだ文字列中に
'A'があったら'a'に変換するプログラムを配列とポインタを使って書きなさい。

476 :名称未設定:03/07/31 01:06 ID:gEj5roFy
なんやここは
ガキがC言語の宿題を教えてもらうスレか

                                夏 厨

477 :名称未設定:03/07/31 01:07 ID:1ZiDg8TA
まぁちょっと頼り過ぎやな。確かに。

しかしいきなり再起呼び出しとかムズカシイこと吹き込む先生でつね

478 :431:03/07/31 01:07 ID:TDY4ivb1
>>474
あ、スクロールしてしまいました・・w
でもfor文の二重なんて難しそうです。。
一重でも手こずるのに。
がんばりまっする。

479 :431:03/07/31 01:07 ID:TDY4ivb1
>>476-477
すいませんです。自粛しますです。。

480 :名称未設定:03/07/31 01:10 ID:1ZiDg8TA
おーーい
大丈夫かぁ?
あまりにも理解力が足りな過ぎるぞい。

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まじわからん・・・。
関数の使い方が謎すぎる。。

483 :名称未設定:03/07/31 08:09 ID:aUnH/Nco
みんな、JTerminal の文字コードは何にしてるの? 俺は Shift JIS ですけど。

484 :名称未設定:03/07/31 08:19 ID:dzsY9MJN
こういっちゃなんだが、市販の入門書を買え

問1はこうしろってのか?
main()
average()に飛ぶ

average()
forなどで10回読み込む。それらを足して、合計を表示。


485 :名称未設定:03/07/31 08:29 ID:ZhNM6pYt
JTerminalを使う理由がわからん。
Terminal.appだとだめなん?

486 :431:03/07/31 09:39 ID:0B+eJGTq
>>484
今日買いに行きます。。
問一は関数を定義して関数を引用するらしいです。。
よくわからんです。。。

487 :名称未設定:03/07/31 09:45 ID:1ZiDg8TA
つーか、ちゃんと授業聞いてたのか疑問になってくるな。

488 :名称未設定:03/07/31 10:09 ID:dzsY9MJN
まあ理解力なんて人それぞれだから…

489 :431:03/07/31 10:48 ID:0B+eJGTq
>>487
かなり聞いてましたです。。
周りの人達も全く理解出来ていないようで。。
独習Cを買って参りました。。
それでもわからまへん・・。w

490 :名称未設定:03/07/31 10:49 ID:1ZiDg8TA
んじゃ、アレだ。

そんな講義やめちまえw
ちゃんと学校に抗議して「この講師の授業はまったく分からない」
といわないと直らへんよ。

491 :名称未設定:03/07/31 11:12 ID:GnXX0/3M
夏期集中講座といったって集中し過ぎのような気が・・・
「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

502 :名称未設定:03/07/31 12:12 ID:Z8iT+W5Z
>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));
}

504 :名称未設定:03/07/31 12:26 ID:1ZiDg8TA
>>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'に変換するプログラムを配列とポインタを使って書きなさい。

これわかりまつか・・?
授業中いつの間にかポインタもやってたみたいです。。
独習しまつ。。-_-

507 :名称未設定:03/07/31 13:03 ID:Z8iT+W5Z
>>505
>うーん、、>493で出力されるaverageが
>実数にならないのはなぜでしょうか・・?
関数の返り値がintだから

>ポインタって難しいのですか。。ついていけるかな。。
一回の講義じゃ絶対理解できんと思うよ。
いっぱいプログラムを書いているうちにだんだん分かってくるんで、
今日分からなくっても気にすることは無い

508 :431:03/07/31 13:14 ID:0B+eJGTq
>>507
下から4行目のintをfloatに変えたらいいのですかね?
それでもできませんでした。
もちっとがんばります。
ポインタは昨日やったっぽかったです。。
昨日は「2進数と8進数と16進数と文字コードと関数と
戻り値と動的変数と静的変数とスタックと再帰呼び出しと
配列とポインタ型変数とそれの宣言」をやったみたいです。。
僕はさっきの問一をずっと考えていたので
他の内容があんまり頭に入ってないみたいでふ。。w

509 :名称未設定:03/07/31 15:37 ID:IoEq6t6V
10日間か
ほかの言語知ってれば、なんてことないだろうけど
ポインタ以外は難しいもんじゃないから

510 :名称未設定:03/07/31 21:48 ID:sAqUTvQU
>>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;
}


511 :名称未設定:03/07/31 21:50 ID:sAqUTvQU
>>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';
}


512 :名称未設定:03/07/31 22:52 ID:1ZiDg8TA
簡単に。これもアリ。
ファイルを読み込ませるには
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 とします。

514 :名称未設定:03/08/01 01:29 ID:GJxrlGsA
漏れさぁ、プログラムはできても数学わかんないんだよね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

517 :名称未設定:03/08/01 01:32 ID:GJxrlGsA
ということで、自力でやれ。

518 :名称未設定:03/08/01 07:07 ID:+bK0YNON
数学板行ってこい

519 :名称未設定:03/08/01 07:08 ID:+bK0YNON
数学板行ってこい
なっちしか分かんねぇ

520 :名称未設定:03/08/01 13:41 ID:cL9DVLX7
フィボナッチ数列
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のお勉強したいですたい。

522 :名称未設定:03/08/01 14:21 ID:cL9DVLX7
たぶん fopen〜fread〜fclose かな?
このへんほとんど使ったことないので、とっかかりのみ
(全角スペース入ってるからコピペしないでね)

FILE *f = fopen("ファイル名", "r"); /* r = Read Only */
if ( f == NULL)
{ /* ファイル無い */
  printf("ファイル無し\n");
  exit(EXIT_FAILURE);
}

/* ファイルあったので何か表示する */

fclose(f); /* fopen したら fcolse しれ */


あとはググって頑張れ〜

523 :名称未設定:03/08/01 16:09 ID:GJxrlGsA
具具ってコピペって…
おまえ授業をなんだと思ってるんだ?

524 :名称未設定:03/08/01 19:02 ID:Ly+05VpM
このぐらい自力で解けないやつは役に立たないからいらないよ。
by ソフトハウス

525 :名称未設定:03/08/01 19:31 ID:aqUKkpRr
つうかググるなよ。
授業の意味ないじゃん。
> もっとゆっくりじっくりCのお勉強したいですたい。
ついていけないんだったら授業やめて本とWebで学べば?

526 :名称未設定:03/08/01 20:38 ID:sjsRsQrh
誰へのレスということもないが
Objective-CやるのにC言語の知識なんていらないでしょ
実際俺は生まれて初めて学んだのがC++だし

527 :名称未設定:03/08/01 20:39 ID:sjsRsQrh
>>526
スマン。sage忘れ

528 :名称未設定:03/08/01 21:34 ID:GJxrlGsA
せっかく親切に教えてやってたけど単に答えが知りたいだけだったのかと思うと
腹が立ってきた。

529 :名称未設定:03/08/01 21:58 ID:USmAbJnP
C分からなくても笑えるスレですね。

530 :名称未設定:03/08/02 00:25 ID:PbkRMVtJ
>>526
初めての言語はファミリーベーシックだった

531 :名称未設定:03/08/02 00:30 ID:w9b2p/q7
>>530
そのネタは下らないネタレスがズラズラ続くからやめておけよ。

532 :名称未設定:03/08/02 00:53 ID:PbkRMVtJ
ゴメン、懐かしくて…

533 :山崎 渉:03/08/02 02:04 ID:EjhDFmQC
(^^)

534 :名称未設定:03/08/03 14:44 ID:RqQnSEcw
>>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;
}


535 :名称未設定:03/08/03 23:01 ID:c9WbU/8U
winでCの教育受け始めたプログラミング初心者なんですが、
家にあるのはMacなんでMacで実験しようと思ってDevTool入れました。

よくわからないままにProjectBuilderいじってたらmain.cというのができたんで、
terminalでmain.cのあるディレクトリに移動まではしたんですが、
その後のコンパイルと、実行のコマンドがわかりません
(unixも初心者でcdとlsとpwdしか知らないんです)
どうすれば terminalで動かして確かめられるのでしょうか。

536 :名称未設定:03/08/04 00:26 ID:TiNF3m10
cc

っていうか何か本買えば?

537 :名称未設定:03/08/04 00:33 ID:EK9HW8F+
>>534 アリガトウです。でもifndefとかdefineは
まだ辿り着けない領域なのでございます。
授業は終わったので今は自宅でじっくりCのお勉強をしております。
もう少しレベルアップしたら参考にしますです。
>>535
ターミナルでccというコマンドを打って
スペースを開けてそのmain.cをターミナル上にドラッグ&ドロップ。
んでリターン?(エンター?)をオス。したら./a.outというコマンドを入力してリターン。

538 :名称未設定:03/08/04 00:48 ID:xiXG3bS4
Carbon で Input Method の扱い方の参考になるサンプルコード無いでしょうか。
Apple のドキュメントは Pascal まじりでよく分からない・・・。

539 :535:03/08/04 01:09 ID:Yh0QcOcp
>>536,537
動きました!ありがとうございます。
winの本しかなかったので、
main.exeが出来てくるものかと思い込んでいましたが
違うんですね(ソリャソーダ)

ところで./って「このディレクトリ」ですよね?
なんで指定しないと(ただ a.out と打つだけでは)だめなんでしょうね。
unixの参考書探しに逝こう。

540 :名称未設定:03/08/04 10:56 ID:TiNF3m10
ダメなんでしょうね、って
そりゃパスが通ってないからだろ
MS-DOSでも同じことだべ

541 :名称未設定:03/08/04 10:56 ID:TiNF3m10
あとccの出力をa.outにする奴はアフォ

542 :名称未設定:03/08/04 13:03 ID:kRTkv0wv
>541
そだそだ。
make main が正解。

543 :名称未設定:03/08/05 01:20 ID:pEZ4L728
>>538

ttp://developer.apple.com/samplecode/Sample_Code/Text.htm

ttp://developer.apple.com/documentation/Carbon/TextInternational-date.html

最近のドキュメントで Pascal まじりなのは、ほぼ無いような・・・

544 :名称未設定:03/08/06 04:10 ID:DJPohxl7
>543
ありがとうございます。
今そこを見つつ、あるアプリの日本語化してます。C beginner なんで遅々と
して進んでいませんが・・・。

たまたま 538 を書いていた時に見ていたドキュメントが古かったみたいです。
サンプルコードも見つけたのですが、classic で動く物(非カーボン)でした。

545 :名称未設定:03/08/06 09:22 ID:f+tG1Ngh
参考書に載ってたプログラムが
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;
}


546 :名称未設定:03/08/06 11:10 ID:JKb0ph1+
>545
実行できない、の意味がいまいち分かりませんが、

1,コンパイルする。 // まさかとは思うけど。。
2,フルパスもしくは相対パスを使用して実行する。 /Users/foo/hogeとか./hogeとか
3,数値として認識可能な3つの引数を必ず付加する。 ./hoge 1 2 3 とか

ソースについてはコメントを控えさせていただきます。(w

547 :名称未設定:03/08/06 11:44 ID:f+tG1Ngh
>>546
んっと、ファイルの名前がs.cっていうんですけど、
terminalでmake sってコマンドを実行すると
bus errorとかいうのがでるのですよ。
なんででしょうかね?
日本語おかしかったらすみません。

548 :名称未設定:03/08/06 11:55 ID:zUg44b+T
>>547
無理しないでProjectBuilderを
使った方が良いんじゃないすか?

549 :名称未設定:03/08/07 19:39 ID:khFt4pkF
コンパイルまで面倒見てくれる参考書を買え

550 :名称未設定:03/08/08 00:42 ID:Va25O5TD
>>545
とりあえずはここ見れ。コンパイル〜実行まではできるようになるでしょう。
ttp://www.kashi.info.waseda.ac.jp/~kashi/lec2002/na/c/use.html
ttp://www3.hino.meisei-u.ac.jp/circle/ncs/old/docs/unixprog/clang.html
make はまだ覚えんでもよし。


551 :545:03/08/08 10:50 ID:VLdd2RcQ
>>546-550
できました・・!
ありがとうございました!!
精進します。

552 :名称未設定:03/08/08 15:47 ID:VLdd2RcQ
Terminalでconio.hって使えないの?

553 :名称未設定:03/08/08 16:03 ID:Qeyn6dpD
find /usr/include/ -name conio.h -print

554 :名称未設定:03/08/12 01:37 ID:XWHqIZN/
ポインタってファイルシステムで言うところの
エイリアスやシンボリックリンクみたいなものという理解でOK?

555 :名称未設定:03/08/12 04:57 ID:AG3oRW3B
ポインタってZ80で言うところの
HLレジスタとかで計算するみたいなものという理解でOK?


556 :名称未設定:03/08/12 05:04 ID:jjS1mTp9
ポインタって囲碁で言うところの
アゲハマを計算するみたいなものという理解でOK?

557 :名称未設定:03/08/12 13:45 ID:Ay2wAE+g
ポインタって
メモリーマップ書くと理解しやすいと言う事でOK?

558 :名称未設定:03/08/12 17:35 ID:SUKulxHA
ポインタってマリオで言うところの
ルイージみたいなものという理解でOK?

559 :名称未設定:03/08/12 21:52 ID:DeLJpkeX
ポインタってBASICで言うところの
POKEやPEEKという理解でOKです。

560 :560:03/08/13 03:07 ID:E2iFzYXT
漏れは >561 が正解だと思う。

561 :名称未設定:03/08/13 06:36 ID:oVxwIdMi
1+1=2

562 :名称未設定:03/08/13 22:37 ID:/zwKE3Dz
なにげに三十路っぽい方が多数。

563 :名称未設定:03/08/13 23:45 ID:ew3AYW1p
ポインタお父ちゃんのためにあるんやないんやで〜

564 :hoge ◆44uJ1pz5J. :03/08/13 23:50 ID:4h2daBnu
頭がクラクラしそうになるほど低レベルだなおい

565 :名称未設定:03/08/15 00:37 ID:P5ELRGNW
>>562, 564
オマイ等のお陰で>>563の面白みが
少しずつ分かってきた様な気がする。

566 :あぼーん:あぼーん
あぼーん

567 :名称未設定:03/08/15 20:01 ID:AiOjq7rY
質問です。
PowerMac8600/250 OS9.1の環境です。
これからCを勉強してみたいのです。
取りあえずAppleのMPWのC言語パックを用意できました。
これ以外に安い開発環境はありますか。
英語が苦手なので日本語環境があるとうれしいのですが。


568 :名称未設定:03/08/15 22:41 ID:MRsGWQYx
>>567
とりあえずMac用って考えるならMPWが一番お安いのは確か(つーかフリーだしね)。
MacMiNTとか入れてgccって手もあるけど、環境構築が面倒かの?

SymantecはPascalはフリーで公開してたけど、C/C++の方はどうだっけ?
たぶんMPWで日本語のサイトを2〜3見回して環境の癖を見てみるといいかも。

あとはあれだね。パーティション区切るなり別のドライブ突っ込むなりしてLinuxなり*BSDなりを入れるって手かね?



569 :名称未設定:03/08/15 23:17 ID:P5ELRGNW
SimpleIDEっていうMPW使いのための
ヘルパーアプリがあるので使ってみる良いかも。
日本語でフリーだし。詳しくは下記URLへどうぞ。

SimpleIDE
http://rd.vector.co.jp/soft/dl/mac/prog/se191056.html

570 :569:03/08/15 23:19 ID:P5ELRGNW
>>567宛でヨロシク

571 :567:03/08/16 15:37 ID:/lvlGN1O
>568,569
ありがとう。 取りあえずSimpleIDEをダウンロードしました。
これからチャレンジしてみます。

572 :名称未設定:03/08/20 03:32 ID:aGvK2OlC
なんとなくここ読んでたらMPW久々にいぢりたくなってSystem7.5.5なPowerBook5300に突っ込んでしまった。
環境になじむまでにかな〜り時間がかかりそうな感じ。


573 :名称未設定:03/08/24 21:32 ID:y4A3YtJR
>560
ポインタってパタリロが持ってる、先に手の形のものが付いた棒のこと、だよね。

574 :名称未設定:03/08/26 03:47 ID:ZpBNrjJ6
改行コード選択?

575 :名称未設定:03/08/26 07:11 ID:P10ahE7W
Macでプログラミング覚えてもどこで通用するの?

576 :名称未設定:03/08/26 08:08 ID:O4W/T2Ql
あんまり Mac とか関係ないと思うけど。
全角カコワルイ

577 :名称未設定:03/08/26 09:59 ID:0JQn7tX7
サンデープログラムをマターリとやる場合Pascal/Modula系の方が好きなのですが
OS9までで動くフリーのコンパイラってありましたっけ?

578 :名称未設定:03/08/26 10:35 ID:x+ZohV3P
>>575
通用するとこはある。
割と待遇のいいとこもあるが、苦しいばかりで大変なとこもある。

誰かドライバ書かない?楽しいよ〜。



んなわけねー。


579 :名称未設定:03/08/26 11:03 ID:fABuuVJW
どうりでマックでアプリが増えない訳だ

レベル低すぎ

580 :名称未設定:03/08/26 12:15 ID:UnHRuFC+
C覚えるのにマックもWinも関係ないだろ。馬鹿か?


581 :名称未設定:03/08/26 13:15 ID:P10ahE7W
関係あるよ
WinAPI使わないプログラムなんてありえないし

582 :名称未設定:03/08/26 13:43 ID:JQOrffx+
Winのプログラマはレベルが高い。
俺はWinのプログラマである。
ゆえに、俺はレベルが高い。

上の文の誤りを指摘せよ。(50点)

583 :名称未設定:03/08/26 14:22 ID:xwfj6BFB
>>581
頭がイカれてるにもほどがあるな。

>>582
Winのプログラマは頭が悪い。
オレはWinのプログラマである。
ゆえに、オレの頭は悪い。

584 :名称未設定:03/08/26 15:22 ID:SOKrWQDs
>>581
>関係あるよ
>WinAPI使わないプログラムなんてありえないし
同じことをム板でも言えるのかなぁ。

585 :名称未設定:03/08/26 20:36 ID:rV6cWmPM
>>581
>WinAPI使わないプログラムなんてありえないし

UNIX/Linux/BSDのコマンドラインツールを書くのに
Win32APIの知識は必要ですか?

586 :名称未設定:03/08/26 20:59 ID:81DQYJ9i
UNIX系以外の例を持ってこない>>581はUNIXユーザーを自慢したいか
実は良く分かってない人

587 :名称未設定:03/08/26 21:58 ID:UxwXNuR0
>>581がドザでないというささやかな事実が無ければそれなりに面白かったのだが、さて

588 :名称未設定:03/08/28 08:36 ID:o6IFC6qv
>WinAPI使わないプログラムなんてありえないし

単にドキュソ専門学校逝ってるレヴェルなら、そういう思い込みもありかと

589 :名称未設定:03/08/28 11:27 ID:aqVvgwqT
まあ、「WinAPI使ってるからダサイ」と思い込んでいるDelphi初心者もいるわけですしお互い様。

590 :名称未設定:03/08/28 11:27 ID:aqVvgwqT
あ、スマンそれはMFCだったな。
つーか板違いだな。重ね重ね。

591 :名称未設定:03/08/30 00:49 ID:TYN6gxPG
どっちにしてもあれだなぁ。
潰しの効かない椰子は以下略ってパターンではあるよな。

マ板あたりのWinプログラマがどーのってスレを思い出すなぁ(w

ま、また〜りいこうや。


592 :578:03/09/01 03:17 ID:+KnQ98DT
>>591
ずーっとMac仕事ばかりやってきたから、最近のWindowsの開発事情とかよくわからん。

インターネット黎明期に一山当てて、とっとと引退したかったなあ・・・。
今からじゃ相当難しそうだ。



593 :名称未設定:03/09/01 23:09 ID:m9hBefz3


594 :名称未設定:03/09/02 17:30 ID:QYpyB+fs
Project Builderを使って、
テキストファイルを読み書きするコマンドラインのツールを
作ろうとしたのだが、読み込んだ時に日本語が化けてしまう。

テキストはS-JISだが、プログラムはunicodeで動いているから
そういう問題が起きるようなのだが、何か良い解決方法とか無いかね。

テキストファイルをunicodeに変換 → ファイルサイズが変わるからやりたくない
ソースコードをS-JISに変換 → ソースコード内の日本語文字列でコンパイルエラー
ファイルを読み込んだ後でS-JIS→unicode変換 → unixとかで動いてるツールなんで修正が面倒

なんかこー、S-JISを自動で認識できる設定とかないかね。

595 :名称未設定:03/09/02 18:21 ID:kwOhcfr5
>594
単にTerminal.appの設定が悪いのでは?
とか言ってみる。

596 :名称未設定:03/09/03 06:09 ID:XY4xDiKG
>>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になってしまう、と。

598 :名称未設定:03/09/03 14:52 ID:E1ybz1nP
>>597
PerlかphpかRubyで書いた方がいいんじゃない?

599 :名称未設定:03/09/03 17:28 ID:KYYAJjZh
iconvとかNKFとか

600 :名称未設定:03/09/03 20:51 ID:bGLsaXbl
>>597
strlen(str) と strlen("伊予") の結果が異なるから。

601 :名称未設定:03/09/03 21:07 ID:bGLsaXbl
ごめん。何でも無い。忘れてくり。

602 :597:03/09/04 15:10 ID:Sz0ge05S
このスレ的には、Project Builderで
Cのプログラムを書いてはいけないということでFA?

603 :名称未設定:03/09/04 18:28 ID:hRa/yYjZ
というか、日本語を扱うなって感じ

604 :名称未設定:03/09/05 02:51 ID:Sqm0q1Nb
というか、日本語とかを素で扱うなってだけって気が

605 :名称未設定:03/09/06 23:43 ID:U3/dGxdv
横から失礼しますが、
素が駄目なら、何を使えばよいのです?
ってか、英語がわからなくて希望の関数を見つけだせないですが。
なんだ、ダメなだけじゃん>わたし。

606 :名称未設定:03/09/07 00:30 ID:8A8ujswl
自分のことをダメな奴だなんて言って欲しくない。たとえ何があっても。

607 :名称未設定:03/09/15 22:50 ID:/SVdZo/t
./age

608 :名称未設定:03/09/15 23:11 ID:NG2VHhsx
>>597
fgets()で受け取った文字列は改行コードも含んでいるぞ!!
配列strに格納されている最後の改行を削るか
比較文字列に改行コードいれとけよ。

しかし落ち込む必要はない。
fgetsをはじめて使ったやつは大概はまる。
俺もな!

609 :名称未設定:03/09/27 23:44 ID:43ywPvZw
main()
{
printf("age");
}.

610 :名称未設定:03/09/28 02:23 ID:al4P2Cce
agaってないよ

611 :名称未設定:03/09/29 16:00 ID:z8mLUZWt
>610
最後の"."でコンパイルエラーになったためだと思う。

612 :名称未設定:03/09/29 18:01 ID:k1I2ot6R
ageるならソートしないと

613 :名称未設定:03/10/28 04:58 ID:Zh6nU0wd
保守

614 :名称未設定:03/11/06 04:12 ID:qMwwV4DJ
今日、ブックオフでMacintoshではじめるCプログラミング
という本を半額(内税で約2,500円)で買ってしまいました。
ズブの初心者ですが付属のCodeWarrior lite for Cを使い、
やってみました。取りあえずこの本だけはがんばって読み終えたい。


615 :名称未設定:03/11/06 12:12 ID:NKP2FIFl


616 :名称未設定:03/11/13 09:37 ID:WssRR9V5
>614
がんがれ

617 :名称未設定:03/11/17 01:09 ID:8IF/8Bs4
今日MPWというものをダウンロードしてきた。


618 :名称未設定:03/11/17 16:36 ID:h7U3tBK0
>>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  \_____________

622 :名称未設定:03/11/23 19:37 ID:PmV7IX5m
>>619
>まあたまに計算とか
そうゆうのはBasicのMetalの方がめちゃくちゃ簡単。

623 :名称未設定:03/11/24 12:44 ID:31QdSfPR
>>622

MacsBugが電卓になってる漏れは逝ってよし?(死

624 :619:03/11/24 22:58 ID:NN2wUBKG
んーでもBASICとか分からないからなあ、
Cから入った口なので、BASICを覚えるのは煩雑そうです。
まあ知ってる知識を流用って部分で、Cなんですが、
でもこれ、わりと普通に使えてます。

625 :名称未設定:03/12/12 01:41 ID:+kw8Xu3c


626 :名称未設定:03/12/17 21:13 ID:EKHCihnd
スレ違いだったら申し訳ないのですが、わからないことがあるので助力お願いします。
現在 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;
-------------------

627 :名称未設定:03/12/18 08:27 ID:+KXtLEHT
>626
クラスHOGEがoperator<<をオーバーロードしてるってことかな。

>A = 1, 1, 1, 2, 2, 2, 3, 3, 3;
長くやってないのでこれの意味が分からないけど。
これってコンパイル通るの?

628 :名称未設定:03/12/18 11:17 ID:XCG6qH1G
>>627
確かoperator =ちゃんと作ってあれば通るよ。
vectorへの一括代入とかに使う。

629 :626:03/12/19 14:04 ID:DWhqze6L
>627, 628
ありがとうございます。疑問が解消しました。
なるほど、C++ はそういうこともできるのですね。
それとも C や Objective-C でもできる事なのでしょうか。

630 :名称未設定:03/12/20 22:05 ID:9U6+XWuY
>629
演算子オーバーライドはC++の機能。
多用乱用は禁止

631 :名称未設定:03/12/21 00:17 ID:dFLdejEr
signed long longの数字をprintfで出力するには% 何と書けばいいですか?

632 :名称未設定:04/01/10 17:05 ID:XfQoHAUM
死守

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("保守!");


636 :名称未設定:04/02/06 17:48 ID:E0PnnqZO
このスレまだあったんだ。

2ヶ月前にレス
>>631
%lld
他のformatも調べるんだったら
man 3 printf

637 :名称未設定:04/02/08 11:25 ID:h3BTQcll
雑談しかしてねえmacでプログラミングスレなんかより、こっちの方が有用。

638 :名称未設定:04/02/16 22:47 ID:FBZ3qn3f
ヌッチョルドン ソッチョルドン

639 :名称未設定:04/02/21 17:34 ID:TvQBSVF0
#include <stdio.h>

int main(void)
{
printf("良スレです。落とすには惜しい。");

return(0);
}

640 :名称未設定:04/02/21 22:09 ID:fN/T5ct9
ExitToShell();

641 :名称未設定:04/02/22 01:47 ID:F0uxIuir
今さらMPWなんだけどねえ
吐き出すアプリのFinder Flagを最初っから変更しとこうと思ったら
.makeを作った後でそれにSetFile云々を書き加える以外に方法無いのかねえ
Create Build Commands...のときに指定できると楽なんだけどねえ

642 :名称未設定:04/02/22 04:12 ID:nNnf1paC
使うのってkHasCustomIconくらいじゃない?
毎回必要なら一層の事MPWでドロップレットとか自作しちゃえば幸せになれるんじゃ…

MoreFilesにFSpChangeFDFlags()なんてまんまな関数あるよ(各フラグ個別に設定する関数もある)
ttp://developer.apple.com/samplecode/Sample_Code/Files/MoreFiles.htm

643 :342:04/02/25 20:59 ID:ipeQf62q
スレ活性化のため?に以前作った時計を改造してみました。
http://www.geocities.co.jp/SiliconValley-SanJose/7933/
変なところがあってもご容赦を(なんせXcodeは初めてだし、といい訳)
なんちゃってアニメーション時計と命名 & age

644 :名称未設定:04/02/26 19:02 ID:etD4npKY
初めて見たけどCheckBox-Clock ワラタ
鼻水出ちゃった

645 :名称未設定:04/03/11 14:55 ID:n0ZoNvT2
small talk

646 :名称未設定:04/03/11 16:03 ID:AL+g7Ozc
CheckBox-Clock
おもろい。

171 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)