トップページ⇒tech
197コメント61KB

プログラムって何が面白いんですか?

■ このスレッドは過去ログ倉庫に格納されています
0001学生NGNG
今度挑戦してみようと思うので、
そのプログラムの持つ魅力について語ってください。
0002デフォルトの名無しさんNGNG
今度と言わず今すぐヤレ
0003デフォルトの名無しさんNGNG
魅力を人に聞くようなやつはやるな。
0004デフォルトの名無しさんNGNG
まずスケジュール表を作れ。そしたら次はそれ通りに行動しろ。
そうすりゃ、誰かがお前をプログラムしてくれる。
プログラムを体験できるぞ。悪くないだろ。
0005デフォルトの名無しさんNGNG
自分が、コンピュータの全てを操っている錯覚に陥った瞬間が
面白いかなー。
まぁ、今時、組みこみ系のプログラムでもしない限り
そんな感覚は覚えないだろうし、欲求は満たされないのかな?
(組みこみ系は未経験なので嘘言ってるかも。)
でも、錯覚だけは感じることが出来るので、楽しいよ
0006デフォルトの名無しさんNGNG
学生はこんな所来るようじゃ、おしまい。
0007デフォルトの名無しさんNGNG
フォークダンス
二人三脚を
たくさん組み込むと楽しい
0008デフォルトの名無しさんNGNG
物作ること自体が楽しみだゴルァ
プログラム以外でも同じだ。
0009デフォルトの名無しさんNGNG
>>1
RPGで、自キャラを育てることにハマるタイプなら、プログラミングにもハマる。
0010名無しさんi486NGNG
とりあえず下のをコンパイルしてみなさい。今すぐに(w

#include <stdio.h>
void main() {
printf("Hello world!");
}
0011>>10NGNG
main関数の戻り値の型はintにしなさい。
0012名無しさんは見た!NGNG
>>9
RPGは大嫌いだけど、プログラミングは大好きですが。
0013デフォルトの名無しさんNGNG
ぷらも作るのが好きな人とか、萌えCGシコシコかいてWebに上げて
喜ぶ人なんてのも向いてるかも。
0014デフォルトの名無しさんNGNG
RPGやプラモデルはちと違うんじゃありませぬか。
俺的には子供の頃レゴブロックが好きだったヤツを推したい。
0015デフォルトの名無しさん NGNG
確かにVCはレゴに似てるな〜。
子供の頃に時計とかを分解して遊んでたら
プログラミングにはハマルと思う。
00168NGNG
ラジオとか分解して戻せなくなって途方に暮れたやつとかな。俺だが。
レゴは俺もやったな。
0017名無しさんダーバードNGNG
プログラミングの楽しみとは、

(1)プログラミング自身の楽しさ
(2)ものつくりの楽しさ
(3)普及する楽しさ

の3種類に分類できるような気がするね。

(1)はアルゴリズムの発見だったり、新しい言語を覚えたり、コンピュ
ータサイエンスに近い部分だったり、そんな感じ。
(2)は設計や実装どおりに「動く」楽しさだったり、完成させる苦労と
喜びだったり。
(3)はソフトウェアが売れたり、自分の作ったシステムが使われている
現場を見たり、フィードバックが来たり、自分やシステムの知名度があ
がったりする楽しさ。

どうでしょ?
0018デフォルトの名無しさんNGNG
深夜にネットに繋いでても怪しくない。
WEBで技術資料集めとか言っとけばOK。
実際はアダルトサイト見てるんだけどね。
それに結婚してなくても仕事が忙しいって言えるし(実際は結婚できないだけ)
結構いろいろな時に言い訳ができる便利な職業だよ。
プログラマー万歳!!
0019デフォルトの名無しさんNGNG
>>10

#include <stdio.h>
void main() {
printf("welcome to@` hell world!");
}

のほうが現実っぽいと思う。
0020デフォルトの名無しさん NGNG
>>19
激しく同意!!!
0021>>19NGNG
せやからmain関数の戻り値の型はintにしろっちゅーのに。
0022デフォルトの名無しさんNGNG
#include <stdio.h>
void main() {
printf("だれがintなんか返すかボケゴルァ");
}
0023デフォルトの名無しさんNGNG
>>21
無能な教師とか、ダメボンとかのサンプルがvoidだったりするからな。
俺もvoidで覚えさせられたクチだ。
0024デフォルトの名無しさんNGNG
そうか・・・・ダイヤブロックってマイナーなのか・・・・・・・鬱
0025デフォルトの名無しさんNGNG
>21
こいつ見てるとちょっと前のCマガジンの特集思い出すなあ。(藁
あんな内容で原稿料もらえるのかぁ。
0026デフォルトの名無しさんNGNG
c++のきn
0027デフォルトの名無しさんNGNG
>>25
つまりキミは「あんな内容」レベルのことすら実践できないんだね。
戻り値はint型にしろやおんどりゃあああッ!
002825>27NGNG
なんで戻値がint型じゃないといけないのかは、わかってますか?
たしかそのCマガの特集では、ただ「不勉強だからです」で、なんの解説も無かったのさ。ひどいね。
あれじゃ、個人のホームぺージレベル以下の内容だと思ったんだけど。
002925>27NGNG
あ、つまりあんたもそいつと同じって事ね。
0030デフォルトの名無しさんNGNG
>>28
K仲川の記事を真剣に読んでる時点であんたの負け。
0031>27NGNG
>なんで戻値がint型じゃないといけないのかは、わかってますか?

そんなもん「ANSI Cの規格上intと決まってるから」だろ。
それとも何か? もっと深遠な、哲学的な回答を求めているのか?
0032名無しさんダーバードNGNG
問題:「なんで戻値がint型じゃないといけないのかは、わかってますか? 」

回答例1:「不勉強だからです」
回答例2:「ANSI Cの規格上intと決まってるから」

雑誌の記事として、正しい解答はどっち?
0033デフォルトの名無しさんNGNG
UNIX ならば、main の返り値が int なのは、

pid_t wait(int *status)

だから、ってことでいいんだよね? >>25
003425NGNG
>>31
予想通りの答えですね。
それでも悪いとは言わないですが。
できれば雑誌に掲載するぐらいならば、もうちょっと理論的な解答をお願いしたいです。
スタートアップのソースがあればわかると思うけど。

>>32
UNIXは知りません。ごめんなさい。
でも、そういう事です。
003534NGNG
>>32は>>33の間違いでした。
003623NGNG
>>28
規格なんだよ。
gccがワーニング吐くんだよ。

なんで、どうして、そうなっているかなんか関係ないんだよ。
そう決まってんだから、そう書けば良いんだよ。規格に文句吐いても始まらん。
別に不都合ねぇべ?mainの返り値をvoidからintに変えたって。

それとも、宇宙の真理でも探してるヤヴァイ宗教にでもハマってるんdeathか?>>28
0037デフォルトの名無しさんNGNG
>>34
つか、戻り値intって規格できまってるから
それを前提にそういうスタートアップコード作ったんじゃないの?

昔はスタートアップコードに合わせてmainのプロトタイプが決まっていたのかも
しれないけどそれが規格になった以上それ以降のランタイム
は規格に合わせざるをえないだろ?
0038デフォルトの名無しさんNGNG
return x;って書いてないのにint main()って宣言する意味ないね。
仮に、return x;って書いてもshellスクリプトなどで戻り値を参照して
分岐させるようなスクリプト書かないのなら全く意味ないね。
バカじゃないの?
intって書いたら何が起きる?
voidって書いたら何が起きる?
何も起きないだろ。
腐った学校で先生に「必ずintつけろよ」とかでも言われて信じたか?
ばーか
0039デフォルトの名無しさんNGNG
昔から、一番短いC言語のプログラムは
main(){} の8文字だと言われている。
しらんのか?
勉強してでなおしてこい
0040デフォルトの名無しさんNGNG
もともと、voidはpascalの書き方でC言語にはなかったが後に
取り入れられた。
int main()って書き方は昔からあったが必要があるときだけそ
う書いたものだ。
戻り値返してないmain関数は、
main(){
}
とか、
void main(){
}
と書くのか普通だ。
ANSI規格では戻り値を返していないことをはっきりさせるために
void main(){
}
と書くことを推奨している。
戻り値がないのに、
int main(){
}
って書くとANSI規格ではワーニングが出る。
戻り値がない場合は、ANSI規格ではvoidが正解だからだ。
まあ、しらんやつがしったようなことかくな。死ね。
0041デフォルトの名無しさんNGNG
C言語の汚いところだなぁ…
多くの入門者が早くもここでリタイア????
0042デフォルトの名無しさんNGNG
ワーニングが出るのはreturnがないからであって
mainの戻り値がintだからではない。
もうすこし考えろ。
0043デフォルトの名無しさんNGNG
>>40
つーか、戻り値を省略するとintになるって知ってる?
004443NGNG
補足。
main(){}は、
int main(){}と等価ってことよ。
0045趣味プログラマNGNG
>>17
(2)って趣味で作ってると自己満足ソフトウェアが完成しませんか?
「動いたー!!!」ってなるとディスプレイの前でにやにやしてる。。。。。

作ってる最中に面白そうなの見つけると、それをほっぽりだして
やりはじめてしまう。。。
おかげでまともに『完成』されたもの作ったの少ないです。
0046デフォルトの名無しさんNGNG
未だに void main()でこんなに荒れるとは、
やはり2ch
0047デフォルトの名無しさんNGNG
もういちど言おう。voidはpascalで使われていたもので後からつけられた
ものだ。
戻り値を返していない関数は、
main(){
}
のように何もつけないのが普通の書き方だ。
何も書かないことで、これはvoid関数なんだぞって見た目にわかるのだ。
後になって、さらにはっきりさせるために
void main(){
}
って書き方ができたわけだ。
int main(){} と、main(){}がコンパイラの解釈が一緒であっても、
プログラマーから見た解釈としてintがついてないほうが「これは戻り値ないよ」
って意味が伝わるということだ。
コメントで、「これは戻り値ないよ。returnないよ。」っていちいち
書くような習慣はなかったわけ。
昔は、intをかくか、何もかかないかでやっていたのよ。
後代になってvoidというのができたわけだ。
voidができた時代も、何も書いてない場合は「これは戻り値ないよ」
という意味をプログラマがこめたと解釈するのが一般的だ。
意味わからんならいいよ。
おれはK&Rからやっているんだ。
0048デフォルトの名無しさんNGNG
JavaとかPerlとか新しい環境を勉強するとき「HelloWorld」とか
低レベルなモノでも感動して満足してしまうので習得が遅い。
0049デフォルトの名無しさんNGNG
あと、ワーニング出ないようにするのが正しい書き方と信じている人が
いるけどあくまで目安にしかならないばあいもあるんだよ。
正しく書いたほうがワーニングでるときもある。
ワーニングはエラーじゃないからね、なぜ出たのか意味がわかっていて
動作に問題ないことがわかっているのならそれでいい。
少なくとも一人で作る場合はそれでいいし、こんな掲示板で出てくる
短いサンプルは、なおさらいいわけだ。
いったい何がいいたいのよ?
0050>>49NGNG
main()は正しいが、void main() は間違ってるってこと。
0051デフォルトの名無しさんNGNG
void WinMain(void)
って書く人もいたりするのだろうか。
0052デフォルトの名無しさんNGNG
>>45
まともなものが完成したところで、いったいどうなるという。
自己満足でいいじゃないか。
まとなものを作ってまわりに無視されるよりずっといいだろ。
0053デフォルトの名無しさんNGNG
あるいは
void sfunc(void)
{
略
}
略
qsort(buf@` bufCnt@` sizeBuf@` sfunc);
とか(笑)
0054デフォルトの名無しさんNGNG
そもそも C言語は UNIX を記述することを目的として開発された言語(*1)なのだから、
そこを忘れて規格云々言っても仕方ないと思うよ。

>>33 が書いてるけど要するに UNIX ってのは階層型プロセス管理だから、
あるプログラムは一本のツリーでつながったプロセスのひとつなわけ。
(つまりあるプロセスを頂点とした子プロセスであるわけ)
だから、親プロセスは子プロセスの終了コードを知る必要がある。

終了コードっつうのは exit(0) とか exit(1) とかね、main だったら
それこそ return 0; や return 1; など int で返すわけ。

わけわかめだったら fork() とかを勉強してみよう。

# 識者の指摘が欲しいです。

(*1)
http://www.google.com/search?sourceid=navclient&q=C%8c%be%8c%ea+%97%f0%8ej
0055名無しでGO!NGNG
mainがintだろうがvoidだろうが
動けばどっちでもいいやん。
0056デフォルトの名無しさんNGNG
>50
だから間違いじゃないっていっているだろバカ
0057デフォルトの名無しさんNGNG
>54
だから、終了コードを知る必要がない場合はどうするんだよ。
書かなくていいだろうが。
だいたい、C言語創始者のK&Rの本を読んだことがあるのかよ。
有名な、Hello World 表示のプログラムに終了コードを返して
いたのかよ?
返していたのなら1を返していたのか2を返していたのか言ってみろ
いいかげんバカ相手はつかえる。もう返事はせん。かってにやってろ
0058デフォルトの名無しさんNGNG
俺は通常終了かエラー終了か(必要があれば)区別するためだと思ってた
0059デフォルトの名無しさんNGNG
エラー終了のコードを書いていないただの文字列表示するだけの
プログラムに戻り値がどうのこうのってキチガイじゃないのか?
世界中のHello World表示プログラムに、return 5;とかreturn 0;
とかつけて来い。キチガイめ。
0060デフォルトの名無しさんNGNG
サンプルのmain()にint付けるのを強制して、何が面白いんですか?
頭固過ぎ。

goto 1;
0061デフォルトの名無しさんNGNG
「終了コードを知る必要がない場合」とか言っている時点で終わっている。
0062デフォルトの名無しさんNGNG
ん〜、どっちもどっちだと思うが
ここまで読んできて、どっちかっつーと
つけない側のほうにかたくなさを感じるな‥

「mainはintでしょ。」
「ん、でもまあサンプルだからさ。」
「ま、ね。」
で済まないのはなぜなんだろうね。
00631NGNG
なんか大変そうですね、ちょっと僕には合わないみたいです・・・・・・
0064デフォルトの名無しさんNGNG
ん、やめといたほうがいいよ、キミ。
0065デフォルトの名無しさんNGNG
> main(){
> }
> のように何もつけないのが普通の書き方だ。
> 何も書かないことで、これはvoid関数なんだぞって見た目にわかるのだ。

> ANSI規格では戻り値を返していないことをはっきりさせるために
> void main(){
> }
> と書くことを推奨している。

大変勉強になりました:-)
0066デフォルトの名無しさんNGNG
ワーニングが出る出ないの問題で言えばコンパイラによると思う。
gccは、
void main(){}
でワーニングが出るが、ボーランド系のコンパイラは出ないで逆に
int main(){}のほうがワーニングが出るのだったと思う(多分)
ボーランド系の考え方はこうだ。
void main(){} は、voidで宣言して、voidの意味の通りにreturn を
返していないからOK.
int main(){} は、int を返すように宣言しているのに関わらず
return x;と値を返していないからNG.
gccで、どうワーニングが出るかは別として、voidの意味は一つしかない。
voidは、return x;と値を返していないという意味だ。
その意味からすると、int main(){}と、intを返す定義をしておきながら
実際のコードがvoid定義のコード(returnがない)は矛盾する。
有名な、Hello Worldのプログラムには頭に int と書いていなかった
とおもう。今、手元に本がないので調べられないが。
ただし、voidとも書いていなかったと思う。C言語の初期はvoidは無かった。
プログラマーは、voidと書いてあれば戻り値を返さないと判断し、
return x;を探さず、int と書いてあれば戻り値が書いてあると判断
してreturn x;を探して、生産性をあげるのが、void採用の狙いだった。
コンパイラのワーニングはおいておき、void採用の意味を考えたり
生産性や合理性を考えると、void main(){}は間違いではない。
仮に間違いであってもコンパイルも実行もできるのです。
いくら、void main(){}が間違いと主張しても、void main(){ で
はじまるプログラムは世の中にたくさん出回っている。
0067デフォルトの名無しさんNGNG
66の続き
 だからこれからは増やしてはいけない。
0068デフォルトの名無しさんNGNG
むーん。
やっぱり重箱の隅つつくのはたのしいなぁ
プログラミングの醍醐味だね
0069デフォルトの名無しさんNGNG
67の続き
これからも増やしたい
0070デフォルトの名無しさんNGNG
高度な質問にもこの調子で答えてくれたらいいのにな(藁)
0071デフォルトの名無しさんNGNG
>>70
Web板でもStylesheet万歳派とHTMLの物理要素万歳派の対立は結構盛り上がったり(藁
0072デフォルトの名無しさんNGNG
そうです。voidは間違いだったんです。
間違いをコンパイルしてくれるコンパイラも間違いです。
ということで、voidをコンパイルできないようにコンパイラを改造してきてください。
0073デフォルトの名無しさんNGNG
Borland C++ 5.5.1 では出るようだ。
0074デフォルトの名無しさんNGNG
warningはウォーニングと読みましょう。
0075デフォルトの名無しさんNGNG
とりあえず>>49とは絶対に仕事をしたくないと思った。
敬して遠ざけておくか。
0076デフォルトの名無しさんNGNG
C9Xとか新しい規格の本は持ってないんだけど
void main() は返値を省略して EXIT_SUCCESS として受け付ける
などの変化はないですか?
数行のテストサンプルでいちいち stdlib.h をインクルードして
return EXIT_SUCCESS; を書くのも面倒なんだよねぇ。
C は例外を作りたがらないからそういうの嫌うかもしれないけど。
0077デフォルトの名無しさんNGNG
>>56
だから間違だっていっているだろバカ

>>65
だから関数の戻り値を省略するとintになるんだってば;-)
007877NGNG
ちなみに、C99では、

型情報を伴わないような宣言を書いてはいけない。
また、その書いていない型をコンパイラが「int」だと仮定することを
あてにしてはいけない。

となっている。
でも、やっぱりコンパイラベンダーは、互換性を考えて、
ウォーニング程度ですませるんだろうな。
0079デフォルトの名無しさんNGNG
つか、void main() 論争って、何回目だ?
いい加減飽きろよ。
0080デフォルトの名無しさんNGNG
厨房レスよりましだ。
0081デフォルトの名無しさんNGNG
つうか論争はいいけどバカといってる人は自分がバカ
0082デフォルトの名無しさんNGNG
もっと優雅な言葉で貶さないとね。
0083デフォルトの名無しさんNGNG
そして誰も分からなくなった…
0084デフォルトの名無しさんNGNG
mainのプロトタイプ宣言ってあるのですか?
0085デフォルトの名無しさんNGNG
支障の無い限り好きずきってことで…
0086デフォルトの名無しさんNGNG
そして誰もいなくなった…
0087teteteNGNG
これ読んだら、1はプログラムなんてものに魅力を感じなくなるだろうなぁ...。
0088デフォルトの名無しさんNGNG
intでもvoidでもいいけど個人的にはint派かな。
だって、main自体を副関数にする時に
関数名だけ書き換えりゃいいも〜ん。
0089デフォルトの名無しさんNGNG
intに統一したいんじゃないの?
exec()さんが大変だから・・・
0090デフォルトの名無しさんNGNG
public static void Main(string[] args){
System.Console.WriteLine("Java manse-");
}
0091デフォルトの名無しさんNGNG
void main()の話と、gotoの話は、もういいです。
0092デフォルトの名無しさんNGNG
intでもvoidでもいいけど個人的にはvoid派かな。
だって、いつもexitつかっちゃうし。
0093デフォルトの名無しさんNGNG
/*NOTREACHED*/
0094デフォルトの名無しさんNGNG
>>92
個人的もクソもねーんだよ。
もうヤメレ。
0095デフォルトの名無しさんNGNG
とりあえず>>78で決着がついたようだな。
0096デフォルトの名無しさんNGNG
板のトップに書いておこうよ。
C言語でのvoid main() の話と、goto の話は禁止って。
0097デフォルトの名無しさんNGNG
C で goto を使うのはネストしたループから脱出するときのみと
一応決めています。
0098デフォルトの名無しさんNGNG
>>96
追加
・「〜言語は最低!」などの煽りを目的とした話
 (例VBは糞! COBOLは氏ね! etc)
0099デフォルトの名無しさんNGNG
>>97
だから、その話は禁止だって(藁
0100デフォルトの名無しさんNGNG
mainの型の話は
/***************************** 終了 *****************************/
return 0;
0101デフォルトの名無しさんNGNG
---ソース1 abc.c コンパイル法 bcc32 abc.c(C++でなくC言語モード)---
int main()
{
}
---以下コンパイルメッセージ---
Borland C++ 5.5.1 for Win32 Copyright (c) 1993@` 2000 Borland
abc.c:
警告 W8070 abc.c 3: 関数は値を返すべき(関数 main )
Turbo Incremental Link 5.00 Copyright (c) 1997@` 2000 Borland


---ソース2 ddd.c コンパイル法 bcc32 ddd.c(C++ではなくC言語モード)---
void main()
{
}
---以下コンパイルメッセージ---
Borland C++ 5.5.1 for Win32 Copyright (c) 1993@` 2000 Borland
ddd.c:
Turbo Incremental Link 5.00 Copyright (c) 1997@` 2000 Borland

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