ラベル プログラミング の投稿を表示しています。 すべての投稿を表示
ラベル プログラミング の投稿を表示しています。 すべての投稿を表示

2009/09/09

Hello,world!はプログラマがまず書くべきもの。Hello,workは引きこもりがまず行くべきところ。

WikipediaのHello worldのページを見たらThe Evolution of a Programmerというところへのリンクがありました。見てみると立場とHello,wolrd.についてのジョークのページのようです。
学生、プログラマ、ハッカー、マネージャ、それぞれレベル別になっています。

学生ではBASIC(行番号付)→Pascal→Lispとなっています。
プログラマではC→C++→・・・。
Masterにもなると200行以上。私には何をやってるのかわからないな。
New professionalのvoid main(void)に少しクスッと。mainは値を返してくれ。まあNew professional(新人)ですし。
ハッカーではPerl→Cと。最後にGuruで

%echo "Hello,world."

最初からそうすればよかったんだよ。

マネージャではNew Managerでは学生と同じくBASIC(行番号付)。それ以降はmail,zmailで
「ボブ、"Hello,wolrd."を表示するプログラムを書いてくれないかい?明日までに必要なんだ。」
「今日の午後までに"Hello,world."プログラムを作れ。」

最後のオチに社長?CEO?(Chief Executive)では
 % letter
letter: Command not found.
% mail
To: ^X ^F ^C
% help mail
help: Command not found.
% damn!
!: Event unrecognized
% logout

・・・社長。落ち着いてください。

2009/09/07

Gaucheなんて読み方言われないと分からないよ

コンピュータ関連で個人的に結構目にするけど読み方は実は知らなさそうな英単語?・読み方が難しそうな英単語?をあげてみようと思う。
Wkipedia参考。
なおここで示している読み方はあくまで読み方の一つである。

AMD・・・エーエムディー。アムドと呼ばれる事もあるが公式発表などではエーエムディー。半導体製造会社。
AWK・・・オーク。スクリプト言語。
Delphi・・・デルファイ。統合開発環境。
Eiffel・・・アイフェルと呼ばれる事が多い。プログラミング言語。
Fedora・・・フィドーラ。フェドーラとも。Linuxディストリビューション。
Gauche・・・ゴーシュ。Schemeインタプリンタ。
Gentoo Linux・・・ジェンツーリナックス。 Linuxディストリビューション。
GNU・・・グヌー。グニューとも。プロジェクト。詳しくはググってください。
Haskell・・・ハスケル。プログラミング言語。
IEEE・・・アイトリプルイー。Institute of Electrical and Electronic Engineersの略。米国電気電子学会。電子部品や通信方式などの標準化活動を行なっている。IEEE 1394(アイトリプルイー イチサンキュウヨン)はSCSI規格、IEEE 802.11(アイトリプルイー ハチマルニーテンイチイチ)は無線LAN関連規格の一つ。
Java・・・ジャバ。プログラミング言語。又はその実行および開発環境。ジャワと読むと島の名前。洗剤の名前でもある。
KNOPPIX・・・クノーピクス。Linuxディストリビューション。Pを一つ抜かさないように。
LaTeX・・・ラテック、ラテフと呼ばれる事が多い。ラテックスとするべきではない。テキストベースの組版処理システム。
Linux・・・日本ではリナックスが一般的である。日本Linux協会のLinuxは正しくはリヌックスと読む。リーヌークスと表記するのが正しいとされる。一般的にはOSの一群を指し、厳密にはそのうちのOSカーネルを指す。
OCaml・・・オ(ー)キャムル。岡村ではない。Objective Camlの略。プログラミング言語。
openSUSE・・・オープンズーゼ。スーゼなどとも。SUSEは非公式ながらコンラット・ツーゼ(Zuse)へのオマージュとされている。openSUSEはLinuxディストリビューション。
Pentium・・・ペンティアム。ペンティウムではない。インテルが発売したCPU。及びそこから始まる一連のCPUのブランドの一つ。
Perl・・・パール。Parlではない。プログラミング言語、およびその処理系。
Scheme・・・スキーム。LISP方言の一つ。また、プログラミング言語。
Tcl/Tk・・・ティクルティーケー。スクリプト言語。
UNIX・・・ユニックス。OSの一種。またはこれから派生したOSの総称。
W3C・・・ダブリュスリーシー。World Wide Web Consortiumの略。World Wide Webで使用される各種技術の標準化を推進する為に設立された標準化団体、非営利団体。
Xfce・・・エックスエフシーイー。デスクトップ環境の一つ。

おまけ:綴り間違いが多そうな単語
×Fortrun→○Fortran
×Machintosh→○Macintosh(chではなくc。略称はMac。ちなみにMachとは別のOS。)
×Mozzila→○Mozilla
×OAK→○AWK(oakは木の名前。OakはJavaの前身。Ook!(ウーク)は難解プログラミング言語。)
×Parl,Pearl→○Perl(pearlは真珠。東京裁判の判事はPal。)
×X Windows System→○X Window System(sをつけてはならない。つけたらボコボコにされる。)

PCパーツ名、正しく発音できてますか? - スラッシュドット・ジャパンや
雅楽多blog : IEEE1394の正確な読み方、今知りました… - livedoor Blog(ブログ)、
他にはでさ、これ何て読むのよ in Linux板 2などの2ちゃんねるの"でさ、これ何て読むのよ"系のスレを見ると少し賢くなれる。

09/09/08 いくつか追加
09/09/25 同じく追加。及び修正。
09/10/09 いろいろ追加。

2009/08/17

変態プログラミングは男のロマン

とっても変態的なHello,world!プログラムたち
最もタメになる「初心者用言語」は Brainf*ck! - TAKESAKOのはてな出張所
普通のが見たい人はWikipediaへGo。
内容は前に紹介したppencodeやらbrainf*ckやらいろいろ

2009/05/30

湿度が高いと

体調が悪くなる

例えば今は頭痛が痛い、もとい頭が痛い

ここで一個言っておきます

このブログでプログラミングやコンピュータの話題をよくしますが

実はまったく詳しくないです

せいぜい初級者、初心者レベルです

Cで言えばfor,while,if,else,switch,配列が分かるくらいです

構造体なんてほぼ使いません

ポインタ?どこに利点が?

Lisp?ああ、あの変なやつ

TCP/IP?あれ意味不明

的なレベルです

2009/05/01

迷路ゲームを作ろうと思ったら

掘削ゲームになった
ソースコードです
/*OOKISA,GOALSI,GOALSJを変えれば他の大きさのマップも出きるはず
ゴールは2,初期位置は3で*/


#include<stdio.h>

#define OOKISA 10
#define NAGASA OOKISA-1
#define CHARA 3
#define GOAL 2
#define GOALSI 1
#define GOALSJ 9
int main(void){
int map[OOKISA][OOKISA]=
{1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,2,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,3,1,1,1,1,1,1,1,1};

int i,j;
int now_i,now_j;int old_i,old_j;
int input;

while(map[GOALSI][GOALSJ]!=3){

for(i=0;i<=NAGASA;i++){
for(j=0;j<=NAGASA;j++){
if(map[i][j]==0)
printf(" ");
else if(map[i][j]==1)
printf("壁");
else if(map[i][j]==GOAL)
printf("GL");
else if(map[i][j]==CHARA){

printf("CH");
now_i=i;now_j=j;old_i=i;old_j=j;
}
}
printf("\n");
}

printf("8=Up 2=Down 4=Left 6=Right\nInput:");
scanf("%d",&input);

switch(input){

case 2:
if(now_i+1<=NAGASA)
now_i++;
break;
case 8:
if(now_i-1>=0)
now_i--;
break;
case 4:
if(now_j-1>=0)
now_j--;
break;

case 6:
if(now_j+1<=NAGASA)
now_j++;
break;

default:
printf("Error.\n");
break;
}
map[old_i][old_j]=0;
map[now_i][now_j]=CHARA;



}
if(map[GOALSI][GOALSJ]==CHARA)
printf("GOAL\n");

return 0;
}

以上です

2009/04/18

for文で
expected ‘;’ before ‘)’ tokenがしつこいと思ってたら
配列宣言の時 ; を忘れてたw
そりゃエラーになるか…

だって二次配列とか宣言してたら普通 ; わすれるよー。

2009/04/16

昨日初めてint main(int argc,char *argv[])のint argc,char *argv[]の使い方について知った

コマンドライン引数だって言うのはわかってたけど

argcは引数の数(実行コマンド含む)、char *argv[]はその引数自体だったんだな。

てっきりargcは数字を入力するときに使うとか思ってたよw。

いつもはint main(void)とscanfで済ましてたからなー。

実はchar *argv[]は二次配列なんだってね。

まあ、そうじゃないと複数の文字列を代入できないかw

って、プログラミング経験0の人にはさっぱりだろね

2009/04/14

昨日、ちょっとプレーンCで迷路ゲームでも作ろうとしたが断念・・・

そのなかでこんなエラーが
× for(i=0;1<=9;i++)
○ for(i=0;i<=9;i++)

もちろんSegmentation Faultて怒られましたよw

でも気付くまでに時間かかったなー

2009/03/15

うーむ・・・
Cの本を買ったはいいが
知ってる内容が多いなw

まあ、復習として読むけどさ

#include<stdio.h>

int main(){
int a,i;

printf("素因数分解したい自然数を入力せよ\n");scanf("%d",&a);


if(a==1){
printf("1\n");
}else if(a>=2){
for(i=2;i<=a;i++){ while(a%i==0){ a/=i; printf("%d ",i); } else printf("Error\n"); returm 0; } 懐かしいコードを発見。ちょっと修正。 適当にやったから間違いだらけだろうw なんでtabが出来ないかなあ・・・