1 :
X :
03/11/04 19:13 ID:yFw9qEpC
2 :
X :03/11/04 19:13 ID:yFw9qEpC
2get
3 :
X :03/11/04 19:14 ID:yFw9qEpC
がああああああああああ#入れ忘れた
4 :
X :03/11/04 19:16 ID:yFw9qEpC
いや書き込み画面見たら#入ってる2ちゃんねるだから題名には使えないのか・・・
5 :
名無しさん@毎日が日曜日 :03/11/04 19:16 ID:S6hHZGQL
パイプカットを繰り返す少年
6 :
X :03/11/04 19:18 ID:yFw9qEpC
リストカットだろ
7 :
X :03/11/04 19:20 ID:yFw9qEpC
何ソフトつくろうかなあ
PS2のエミュキボーン
C言語か。懐かしいな・・・。あのまま順調に人生進めてりゃ 今頃は真っ当なプログラマーだったんだけどな・・・。 >System.Console.WriteLine("Hello World!"); 今はこんな風に書くんだな。時代は変わるものだ。
10 :
X :03/11/04 20:01 ID:yFw9qEpC
やっとhello world 出せた
>>8 プレステはやりたいと思えないから却下ですほかのを
>>9 大文字で#いれればよかった¥・・・・
じゃあ、ゲームウォッチのオクトパスのエミュキボーン
12 :
X :03/11/04 20:57 ID:yFw9qEpC
実はC言語の分厚い本買った・・ 趣味でやろうとしたのであっさり挫折しますた。。
14 :
9 :03/11/04 23:03 ID:o+MAAjWQ
フロッピーから引っ張り出してみた。 専門学校で習ってた時のヤツ。 //小文字・大文字変換 #include<iostream.h> #include<string.h> #include<ctype.h> #include<conio.h> void main() { int i; char s[20],t[20]; clrscr(); cout<<"moji ? "; cin>>s; for(i=0;i<=strlen(s);i++){ if(isupper(s[i])) t[i]=tolower(s[i]); else if(islower(s[i])) t[i]=toupper(s[i]); else t[i]=s[i]; } cout<<s<<" ---> "<<t; getch(); } 今では、この文で何をどうしてるのかさっぱり分からん。
15 :
X :03/11/05 22:23 ID:ZYTtKGPL
>>9 >>14 真っ当ながつくので一応プログラマなんですか?
今日は何もやらずに寝る予定。
16 :
名無しさん@毎日が日曜日 :03/11/05 22:44 ID:G+aCQMB4
>>14 大文字小文字を入れ替えるプログラムだが、
入力は半角文字限定。
CなのかC++なのかよくわからんプログラムだな。
最近自分がC++を見ていないからかもしれないが。
17 :
濾過一 :03/11/05 22:50 ID:NT9foTTw
18 :
名無しさん@毎日が日曜日 :03/11/05 23:01 ID:G+aCQMB4
20 :
名無しさん@毎日が日曜日 :03/11/05 23:05 ID:6TSRyVyk
>>16 はANSI Cぐらいしか経験無いと見た。
21 :
名無しさん@毎日が日曜日 :03/11/05 23:07 ID:G+aCQMB4
>>20 じゃあ、他にどんなCがあるの?
確かに、K&RとANSI Cしか知らないが。
22 :
名無しさん@毎日が日曜日 :03/11/05 23:12 ID:G+aCQMB4
>>20 ついでに言うなら、組み込み系だったから、標準入出力も必要なかったが。
23 :
名無しさん@毎日が日曜日 :03/11/05 23:25 ID:G+aCQMB4
24 :
濾過一 :03/11/05 23:29 ID:NT9foTTw
25 :
19 :03/11/05 23:30 ID:XJiDbl25
オレは知らん
>>24 #include<stdio.h>でなくて#include<iostream.h> をインクルードしてる所
つーか
>>1 のソースはC#だろ?
C言語は仕事するにしても敷居が高いプログラム言語なんでお勧めできない。 俺はそんなに自信ないからJava覚える。
手っ取り早くプログラマになりたいなら、PHPとかのスクリプト言語のほうがいいんでないの? PHPとHTMLとSQLとUNIXのオペレーション覚えればあなたもWebプログラマー
29 :
濾過一 :03/11/05 23:44 ID:NT9foTTw
>>26 あ、ほんとだ。やべぇほとんど忘れてるな俺。
30 :
14=9 :03/11/05 23:46 ID:ifBO8nNz
拡張子がCPPだったからC++。
Cってプログラムのことかよ AとかBとか甘酸っぱいやつじゃねーのかよ けっ!
32 :
18 :03/11/06 00:06 ID:zoz37wVb
誰も突っ込んでないが、C#やりたいだけなら.NET SDKただで手に入るぞ。
>32=18 つまりこんな感じ?画面クリアと終了の入力待ち消したけど。 //小文字・大文字変換(改) #include <iostream> #include <string> #include <cctypes> using namespace std; int main() { int i; int tmpChar, appChar; string s, t; cout << "moji ? "; cin >> s; for(i = 0;i < s.length();++i) { tmpChar = s[i]; if(isupper(tmpChar)) appChar = tolower(tmpChar); else if(islower(tmpChar)) appChar = toupper(tmpChar); else appChar = tmpChar; t.append(appChar); } cout << s << " ---> " << t; return 0; } // 上のソース、全角スペースでインデントしてるから // まんまコピペしてもコンパイル通らないんでよろ。
35 :
X :03/11/06 20:54 ID:IVYIlic1
今日も勉強しない
36 :
32 :03/11/07 00:10 ID:xEFfTHs+
>>34 VC6とC++Builder5で試しましたが動きませんでした。
うちの環境が古すぎるのかなあ。何を使っていますか?
>>34 エラーになったところを修正してみました。修正は3箇所です。
改行が多すぎるって2chでエラーが出るので、途中省略してます。
久しぶりにC++触ったよ。
#include <iostream>
#include <string>
//エラーになった #include <cctypes>
#include <cctype>
using namespace std;
int main()
{
・・・中略・・・
cin >> s;
t.resize(s.length()); //文字数分のバッファを確保
for(i = 0;i < s.length();++i) {
・・・中略・・・
//エラーになった t.append(appChar);
t[i]=appChar;
}
cout << s << " ---> " << t;
return 0;
}
37 :
32 :03/11/07 00:40 ID:6Vybd1tU
すまぬ。コンパイルすらしてなかったのよそのソース。 ヘッダ名は問答無用で間違ってましたですな。 あとappendメンバ関数の使い方も間違ってるし。 その修正でとりあえずこちらの意図した内容になってます。dΛ||Λノシ
sage
ぐへっ。37は34でした。 >32殿重ねて相済まぬ。
はじめての「C」 ・・・ムクムクムク ドピュッピュッピュッ!!!!!!!!!
41 :
X :03/11/07 16:23 ID:ckmzat4l
CPU1.3G メモリ256MB HD80だけどこれ以上あっても困るくらいだな でもすごいゲームするとこれじゃ足りないのかな 今日は暇だから勉強するかな
42 :
:03/11/07 16:24 ID:3x82AC5C
プリペイド携帯電話 身分証明書不要!
写メール、Eメール可能のプリペもあります
待ち受け専用なら維持費が月1000円のみ
匿名配送、局留め、ヤマト営業所留め可能
都内なら手渡しもOK
番号から身元がバレることがありません
オフ会、出会い系、ストーカー対策に最適
T010,T09,T08,SH010,SH09,SA06,SA05,D08等J-PHONE
最新機種の在庫も豊富
DoCoMo、au、TU-KAも販売しております
業界随一の格安販売!
まずはHPをご覧ください
ttp://www.geocities.co.jp/WallStreet-Bull/1765/
>41 それならVS.NET2003でも割と楽に動くっしょ。 ゲームがしたかったらグラボもいいの爪。
44 :
X :03/11/07 16:49 ID:ckmzat4l
>>43 グラボはオンボードではなくついてるのかも。
メモリ買おうかと思ったけど十分だしやめた
>>40 aがキスでbがなに?cがセックスなんですか?
何の略なの?
45 :
X :03/11/07 16:50 ID:ckmzat4l
今シムピープルやり倒したくらいなんだけど 今度はシムシティ4買おうかなあ でもc#しないとな・・・
46 :
X :03/11/07 16:51 ID:ckmzat4l
3も4もかわってなさそうだしやめとこう ゲームはそもそもだめだな
47 :
名無しさん@毎日が日曜日 :03/11/07 17:08 ID:V6p/geEl
>>41 2年半前に組んだ当初の自作機と同じスペックだ・・・
現在はCPUを1.8Gに換装しメモリは倍増させHDDは4倍近くまで容量増やした
だがやってるのは2chくらい、、ララァなら解ってくれるよね。。
#include <stdio.h> int main() { printf("manko"); return 0; } 俺の精一杯の気持ちだ。受け取ってくれ
>>49 return 0; はいらんっぽい。
ちと昔(価格が古い)作ったプログラム長いから分けます
#include<stdio.h>
main()
{
float t,honsu,ni,nenkan,neni,neta,neki,kingaku,se,shougai,kyori;
int nensuu,i=0;
char m;
skip:;
printf("吸われている銘柄を指定してください。\n1.○ボロ 2.○ルドセブン 3.○ば 4.john sp\n");
scanf("%s",&m);
switch(m)
{
case '1' : t=11; ni=1.1;kingaku=280;
break;
case '2' : t=10; ni=0.8;kingaku=250;
break;
case '3' : t=18; ni=1.4;kingaku=180;
break;
case '4' : t=20; ni=2;kingaku=300;
break;
default : printf("\nそんな数字ね〜!\n\n");goto skip; break; } printf("喫煙年数は?\n"); scanf("%d",&nensuu); printf("1日の平均本数は?\n"); scanf("%f",&honsu); nenkan=honsu*365; neta =t * 365; neni =ni * 365; neki =kingaku*365*honsu/20; printf("あなたの年間本数は%.1f本\n年間摂取タール量は%.1fmg\n年間ニコチン量は%.1fmg\n年間消費額は%.1f円\n",nenkan,neta,neni,neki); kyori=nenkan*nensuu*0.05; shougai=neki*nensuu; printf("あなたが今まで吸ってきたタバコの長さは%.2f(m)です。\n",kyori); printf("あなたが今までタバコに使ってきた金額は%.1f円です。\n",shougai); printf("これを見てあなたはどう思いますか?\n"); printf("もし、あなたに改善の心があるのなら1日何本減せますか?\n"); scanf("%f",&se); nenkan=se*365; neta =t * 365; neni =ni * 365; neki =kingaku*365*se/20;
if(honsu<se) { printf("頭が悪すぎです!\n"); } else { printf("あなたの年間本数は%.1f本\n年間摂取タール量は%.1fmg\n年間ニコチン量は%.1fmg\n年間消費額は%.1f円\n減らすことができます。分かりますか?\n",nenkan,neta,neni,neki); } }
>44 Σ(゚д゚lll)ガーン 今時の若い衆は「その」ABCをしらんのか…… Aがキス、Bがペッティング、Cが本番。試験に出るから覚えとくとイイよ(w >50 こらこらこらこら。「main()」が、「int main()」の略だということを理解してるか? ANSI Cのお作法では、mainは出口で何らかのint値を返さないといかんの。 だからreturn 0;は一応要る。
>50-52 んー、まぁ、一つだけ言わせてもらえるなら、 >scanf("%s",&m); は scanf("%c",&m); にしような。とりあえず。 てか、誰かC#使いいないのか? 漏れはVS.NETのおまけについてきたC#講座やったけど、完全に忘れたよ……
>>53 すまん、余計な突っ込み入れてもた。main()をvoid main()やったらreturn 0;
はいらんのやったかな??しばらくプログラム組み立ててないから正直、
一個一個説明してもらわないと意味が分かりません。
>>54 scanf("%s",&m); これはなんでこんなことになったか覚えてない。なんか意味が
あったようなただの間違いのような・・・。昔は10分もあれば簡単な計算プログラム
作れたけど今はCって聞いただけで本番の事しか思い浮かびません。
久々に勉強してみます。あとC#は興味があるがソフトが前のパソにしかないから
winnyで落とすかな。
>55 いやだからC#やりたい「だけ」なら.NET SDKは無償配布だって。 それにC#のコマンドラインコンパイラ入ってるから。 M$のサイトから堂々と落としてこい。 あと詳細はしらんがgccもC#対応目指してなかったかな? あとこれ以上やるとム板かマ板めいてくる気がするが…… ANSI/ISO Cでは、mainのプロトタイプは int main(void) int main(int, char**) のどっちかしかない。 void main()は恐らくほとんどのコンパイラで通るしその場合returnは 確かにいらんけど、ちゃんとしたコンパイラならウォーニング出るぞ。
57 :
松竹梅 :03/11/08 18:09 ID:SYR+sIAD
久しぶりに2分木探索とリスト構造のアルゴリズムがみたい。
58 :
名無しさん@毎日が日曜日 :03/11/08 18:51 ID:QR6g1Im1
>>56 ただ単に改行とかスキップするためじゃないの?
%cだとすべての文字を読み込むからね
あと、switch文のとこ配列にしてテーブルにするとスッキリするかも
そうすると(そうしなくても)添え字のチェックしないとOutofMemoryになってアボーン
つーか、同じような問題プログラム板で議論?(ってほどかよw)になっている
C言語なら俺に聞けだっけ?構造体をなんちゃらで
>58 なるほど。でもやっぱchar一個の領域へのアドレス渡して%sは極悪かと。 てか1文字取るだけなんだからfgetcでいいんじゃん_| ̄|○アフォか漏れ。 ところでOutOfMemoryってなんでだ?一般保護違反とかSEGVなら分かるが。 (OutOfRangeの書き間違いかな?) あ、段々スレがマ/ム板化していく……
60 :
名無しさん@毎日が日曜日 :03/11/08 19:58 ID:QR6g1Im1
>>59 スマソ セグメンテーション違反とメモリ不足を勘違いしてた
どうやったら間違える?ってのはなしよw
50-52のへたれプログラム作った香具師です。
アルゴリズムも自分で立てたプログラムのわりに全く
説明出来んし親に申し訳ない、と書いたらこの板っぽい?
本当の話ですが。昔、書いたプログラムで面白いのが
ありますがかなり内容が痛いので晒すのはやめときます。
>>1 はこの建て逃げか?漏れもかなりレベル低いからお互い
Cを勉強報告しないか?
>>61 まあ、
>>1 はC#がやりたかったみたいなので、
あまり責めないほうがいいでしょ。
63 :
53 :03/11/09 00:07 ID:eOiLjoY3
現在50-52をスレの本筋に従い?C#で書き直し試行中。 OOPっぽく書こうとしてかなり死んでます。 てゆーか、たかが書式指定出力の書式調べるだけで なんでこんなに疲れるんだ_| ̄|○ > C#言語仕様ヘルプ もういっそこのスレはC/C++/C#総合の学習会にしちゃいましょうかね。 スレタイはCだわ>1はC#だわ、2以降に貼られた最初のソースはC++ (しかもANSI仕様確定前の)だわ…… Cならそこそこ自信あり。(ただし実情は上の通り……) C++はなんちゃってで書ける程度。 C#はズブの素人、だがお互いツッコミあって進めましょうや。
64 :
50 :03/11/09 01:52 ID:KD1J1kp3
>>53 C#で書き直されたのはかなり興味がありますです。
たぶん今、見てもチンプンカンプンですが・・・。
漏れはCをかじったくらいしか出来ないしほとんどの
知識が抜けてるからなぁ。
とりあえず今日から勉強しなおします。ところで
みんなは(と言ってもここにいるのは自分を含めて3人
くらい?)何で勉強してる?お勧めの本とかあれば是非
教えてたも。
>>63 >スレタイはCだわ>1はC#だわ、2以降に貼られた最初のソースはC++
一応自分なりに無印C言語のコードで書き直してみたものが以下の通り・・・
といっても、C言語はあまり詳しくないので微妙ですが。
lowerとupperは統合してTrにしました。
コンパイラはBCCで確認、終了は「Ctrl+C」でお願いします。
#include<stdio> int Tr(int n); int main(void){ int put; int n; while((n = getchar()) != EOF){ if(n >= 0x81 && n <= 0x9f || n >= 0xe0 && n <= 0xfc){ putchar(n); putchar(getchar()); }else{ put = Tr(n); putchar(put); } } return 0; } int Tr(int n){ int outchar; if(n >= 'a' && n <= 'z'){ outchar = n + ('A' - 'a'); }else if(n >= 'A' && n <= 'Z'){ outchar = n - ('A' - 'a'); }else{ outchar = n; } return outchar; }
上記の関数Trに相当するものをPerlでやろうとするなら以下の通り。 #変数$strの大文字小文字変換 $str =~ tr/[a-zA-Z]/[A-Za-z]/;
>>66-67 stdio?
int Tr(int c)
{
return islower(c) ? toupper(c) : tolower(c);
}
>65 どうせなら全部Perlで書いてみちくり。 多分、1レスで収まるんじゃない?(<>とか$_とか使えばだけど)
>>68 変換部分がキモなので、なんとか自作しようと無駄なコードを書いたしだいであります。
確かに、素直に標準関数使ったほうがスマートですが・・・。
>>69 1レスどころか、4行に収まってしまいます。
終了は「Ctrl+C」で。
while(<STDIN>){
tr/[a-zA-Z]/[A-Za-z]/;
print;
}
さいきん、perlの本を読んでまつ。 PGハウツーものは色々と読みましたが、 自分のやりたい事にちかい事が書いてある本ですと、 学習意欲もカナーリ変わってきますですね。 自分は、趣味でやってこーと思ってまつ。 perlユーザーさんが最初にハマった本ってありまつか? もしよろしければ、教えてくださいませ。
>>72 初めて読んだPerlの本は「すぐわかるPerl」という本でした。
あれは割と挫折しにくい感じで、良い入門書だと思います。
>>71 の2byte英字対応版(Shift_JISのみ)
一文字ずつ取り出して処理する以外の方法が思いつかない・・・
while($in = <STDIN>){
$len = length($in);
undef($out);
for($i = 0; $i < $len; $i++ ){
$byte = substr($in,$i,1);
if($byte =~ /[\x81-\x9f\xe0-\xfc]/){
$i++;
$byte2 = substr($in,$i,1);
$sjis = $byte.$byte2;
if($sjis =~ /\x82[\x60-\x79\x81-\x9A]/){
$byte2 =~ tr/[\x60-\x79\x81-\x9A]/[\x81-\x9A\x60-\x79]/;
$sjis = $byte.$byte2;
}
$out .= $sjis;
}else{
$byte =~ tr/[a-zA-Z]/[A-Za-z]/;
$out .= $byte
}
}
print $out;
}
>73 ひょっとしたら見当外れ言ってるかもしれないけど Perl5.8以上ってことにして、UNICODEに落として片付けるというのは?
75 :
名無しさん@毎日が日曜日 :03/11/09 19:47 ID:QuZBa8a3
>>74 モジュールを使うのであれば、変換部分をJcodeに丸投げしたほうが良いかもしれません
なんかずいぶん簡単に解決してしまいますが・・・
#↓EUC-JPで保存、実行しないと正常に動きません
use Jcode;
while(my $in = <STDIN>){
my $j = Jcode->new($in,'sjis');
$j->tr('A-Za-zA-Za-z','a-zA-Za-zA-Z');
print $j->sjis;
}
77 :
72 :03/11/10 00:38 ID:D8KLMOt7
>73 お答え、ありがとう御座いまつ。 明日早速、本屋さんで探して注文してきまつ。 ありがとうございました。
おーい、誰かいないかー いたら>78をもう少しましにリファクタリングしてくれー
80 :
X :03/11/12 17:05 ID:soir3PdX
シンプルなアラームつきの時計を作ろうと思っている パソコンが目覚まし時計になっちゃうんだ!!!!!
81 :
X :03/11/12 17:16 ID:soir3PdX
82 :
X :03/11/12 22:59 ID:6QfIaZX0
83 :
X :03/11/12 23:25 ID:6QfIaZX0
燃え尽きた
84 :
X :03/11/12 23:28 ID:6QfIaZX0
unkoは失敗した
はやっΣ(−口−
87 :
X :03/11/13 21:46 ID:RDJ3kiFS
ありがとう しかし近道なんてないもんだな 疲れちまった
88 :
名無しさん@毎日が日曜日 :03/11/13 23:40 ID:DNgSBVVd
A・B・C ABC ハァ〜ン
89 :
男 :03/11/13 23:44 ID:UWXsvcu3
必要性が無ければそんな言語習得する意味が無い。 好きなら趣味に止めるべきだ。そうすれば趣味を楽しめる
こっちでやれ human.2ch.net/test/read.cgi/dame/1065773298/l50 あげんな糞
91 :
X :03/11/14 00:11 ID:tvGzfZMQ
なんだよ
92 :
名無しさん@毎日が日曜日 :03/11/14 01:07 ID:9JUZslrk
俺も分厚い本を買った口だが「要が何ができるのか?」というのが判らず 放置したままになっている
95 :
名無しさん@毎日が日曜日 :03/11/15 00:40 ID:fCea1DU0
昔、やった事あるよ。 POSIX準拠のRealTime制御。 RTLinux3.0だったか。 p.thread.attr = 1; とかやった。 ミリ単位の時間制約のあるスレッドプログラミングだったか。 今となっては、このスキルが虚しいだけだが。
>95 ゴバークっすか?それはともかく、特殊すぎるスキルは空しいやね…… >96 ……えーと、一応>1もC#のはずでつが(^^; 大文字小文字変換ソース頂きますた。
98 :
名無しさん@毎日が日曜日 :03/11/20 20:55 ID:OZaaOycj
彼女見つけてCを始めよう!
C++(Cの次ってことでいきなり命中)になる悪寒 C#だとどうなるんだろーな(w
100 :
名無しさん@毎日が日曜日 :03/11/22 00:33 ID:I6Uu7MmN
101 :
名無しさん@毎日が日曜日 :03/11/22 15:21 ID:+Cr0JqL7
連休中だし、みんなでコードを書きながら語りあわないかい?
なんかお題きぼん。半日でなんとかなりそうなもんでよろ(^^; 語り合う時間を取ろうと思うとそのくらいが適当かと思うんで。 言語はC、C++、C#問わず。Javaは悪いがスレ違い。Perlは例外的にOK(w
お題かぁ〜 どんなのがいいだろうか 簡単なファイル処理とかかな?
104 :
95 :03/11/22 20:56 ID:KmM3BpW2
>>97 誤爆じゃないよw
スレタイがCなんで制御系のスレかと思ったんで。
やっぱゴバークかも。
SEXSEXSEX
106 :
名無しさん@毎日が日曜日 :03/11/22 21:52 ID:KmM3BpW2
私はよくメモ書きをするのですが、それをうまく検索して出力させる ようなアプリをお願いしたいです。 現在のtxtの状況 キーワード1 メモ1 メモ2 キーワード2 メモ3 (メモ2) 私のメモはインデントを使って木構造を作ってます。必要なメモ書き を見たい時はキーワードxを検索に引掛けています。 ですが、メモを作成した時、どのキーワードの下に付けるか迷う時が あります。上の例だとメモ2の事です。検索時にキーワード1にも引掛け たいし、キーワード2にも引掛けたいのです。このようなアプリケーショ ンを開発してくれませんか?
お、手応えの有りそうなお題を頂きましたな。 いくつかお聞きしたいんですが、 1. インデントの方法 スペース(全角/半角)何個か、あるいはタブ? 2. 検索で引っかける条件 多分、例で言うと「メモ2」の追加の時、キーワード1とキーワード2の両方に ヒットさせたいのでは、と思うんだけど、「メモ2」とキーワードを対応づける 条件はどうすればよいのでしょ。 (例えば、「メモ2に含まれる語を含むキーワードを拾い出す」とかいった条件です)
108 :
名無しさん@毎日が日曜日 :03/11/23 16:51 ID:JaqUq9w2
>>106 複数のキーワードに対応するために、メンバとしてキーワードIDとキーワードを
持つキーワードテーブルを作る。
また、メモテーブルも用意して、メモテーブルにはメモの内容とどのキーワードの
メモなのか分かるようにメンバとしてキーワードIDの線形リストを持つ。
入力ファイルは提示した形式ではなく、
keyword.txtというファイルに
1,キーワード1
2,キーワード2
:
n,キーワードn
とキーワードIDとキーワードを並べ(キーワードは1行と仮定)、
memo.txtに
メモ1
1
メモ2
1
2
メモ3
2
というようにメモの内容とキーワードIDを書き、アプリから読み込むようにする。
メモが複数行に渡るときはキーワードIDとの境目が分かるように区切り行を設けるか、
キーワードIDにプレフィックスをつけるといいかも。
こうすれば、メモからキーワード一覧を引くこともキーワードからメモ一覧を引くこともできる。
109 :
名無しさん@毎日が日曜日 :03/11/23 16:57 ID:JaqUq9w2
>>106 追伸、
キーワードやメモの追加・削除はアプリかコマンドラインからやると仮定してます。
テキストを直接編集するにはややこしい形式なので。
あと、メモやキーワードの更新日時も記憶してくれると便利かも?
さらにキーワードに属性(人・物・行事etc)をつけると検索が便利かも??
110 :
名無しさん@毎日が日曜日 :03/11/23 17:23 ID:b2AO1amH
大学の情報工学科に行け
逝くだけ無駄 プログラムスレのボトルキャップ君がそれを証明している
違った ボトルネック君だった
113 :
名無しさん@毎日が日曜日 :03/11/23 19:47 ID:b2AO1amH
だって成績優秀なら教授に推薦してもらえるだろう? それ以外でどういう方法があるって言うんだぃ?
114 :
106 :03/11/23 23:19 ID:lpmjFVaP
>>107 インデント方法
インデントの方法はタブがいいと思います。スペースの方が便利な
ら、それでも構いません。
キーワードとメモの対応
メモを登録する時、必ず1つ以上のキーワードと対応させて登録する。
例えば「今日は良いレスポンスがあった。」というメモを、「2
ch」、「2003年11月23日」という2つのキーワードと共に登録する場合、
「>registration 今日はレスポンスがあった。,2ch,2003年11月23日\n」
のようにする。
115 :
106 :03/11/23 23:20 ID:lpmjFVaP
>>107 検索結果の出力
「2ch」関係のメモを検索したい場合は下記の様にする。
>search 2ch
2ch
今日は良いレスポンスがあった。
メモn
メモm
このようにメモがヒットされる。さらに「2003年11月23日」関係の
メモを検索すると
>search 2003年11月23日
2003年11月23日
今日は良いレスポンスがあった。
メモs
メモt
これでも同じメモがヒットする。
116 :
名無しさん@毎日が日曜日 :03/11/23 23:38 ID:m8r/ZjAX
Cができるなら、ダメ無職 じゃなくて、結構やる無職 なのではないですか。 俺からみると、、、
117 :
106 :03/11/23 23:44 ID:lpmjFVaP
>>108-109 keyword.txtとmemo.txtの構成なら可能だと思います。開発経験のない素人の意見ですが。
>メモが複数行に渡る
単純化させてメモを一行と定義しませんか?
>メモからキーワード一覧を引くこともキーワードからメモ一覧を引くこともできる。
私が求めてるのは、まさにこれです。ある語句を検索をして、ある文が出てくる。だが、その文だけでなく
関連した文も出して欲しいのです。
ダブる部分がでるけど、これでどうよ。 ネーミングセンスには突っ込み不可。(w typedef struct keyword_type Keyword; typedef struct memo_type Memo; struct keyword_type { &nbps; char *keyword; &nbps; Memo **memo_table; &nbps; int nmemo;// number of memo &nbps; Keyword *next; &nbps; Keyword *previous; }; struct memo_type { &nbps; char *memo; &nbps; Keyword **keyword_table; &nbps; int nkeyword;// number of keyword &nbps; Memo *next; &nbps; Memo *previous; };
& と &&nbps; を間違えた。。 typedef struct keyword_type Keyword; typedef struct memo_type Memo; struct keyword_type { char *keyword; Memo **memo_table; int nmemo;// number of memo for this keyword Keyword *next; Keyword *previous; }; struct memo_type { char *memo; Keyword **keyword_table; int nkeyword;// number of keyword for this memo Memo *next; Memo *previous; };
あれ、「&」ってエスケープする必要無くなったのかな? 前は「&」って書かないと通らなかったような気がするけど。
うぐぅ。変なところでドつぼに嵌っている。 ちょいテスト。 & &
こうだった。 入力 -> 出力 「&」 -> 「&」 「&」 -> 「&」 「&amp;」 -> 「&」
>>108-109 辺り見て書きなおした。「改行多すぎ」言われたので分割。
#include <time.h>
typedef enum attribute_type Attribute;
typedef struct keyword_type Keyword;
typedef struct memo_type Memo;
enum attribute_type {
OTHER = 0,
MAN,
OBJECT,
EVENT
};
struct keyword_type { char *keyword; int keyid; Attribute attr;// MAN or OBJECT or EVENT or OTHER time_t registered;// time when this keyword registered Memo **memo_table; time_t last_modified;// time when memo table last modified int nmemo;// number of memo for this keyword Keyword *next; Keyword *previous; }; struct memo_type { char *memo; int keyid; time_t registered;// time when this memo registered Keyword **keyword_table; time_t last_modified;// time when this memo last modified int nkeyword;// number of keyword for this memo Memo *next; Memo *previous; };
struct memo_type は書き直し。頭腐ってた。 struct memo_type { char *memo; int keyid; time_t registered; // time when this memo registered };
>114-115 ごめんなさい。連休中のお題ってもらったんだが本日朝から頭ちーとも働かず。 てゆーか微熱に頭痛っす。 正直>123氏に期待。
127 :
106 :03/11/24 21:44 ID:Ciozo8G2
>>123 氏
struct keyword_type
新たにキーワードを作る時に、keyid,attr,regsteredの値を決める。
このキーワードの下にメモをぶら下げる時には、そこへのアドレスを
**memo_tableに登録する。また、その最終時間も記しておく。それとnmemo
ですが、これはキーワードにぶら下がっているメモの数量(quantity)
かな?
キーワードのデータ構造はこれでいいと思います。
struct memo_type
int keyid;
キーワードIDは配列じゃないですか?1つのメモに、複数のキーワードを
対応させるので。
128 :
123 :03/11/25 18:41 ID:SzgVZxte
>>127 そのとおりです。あとで書き直します〜。
129 :
106 :03/11/25 21:31 ID:Yz401lFk
[S][s][改行]:セパレータ [S]: '\t' [s]: ',' [改行]: '\n' // UNIX系の場合 keyword.txt キーワードID[S]キーワード登録時刻[S]キーワード属性[S]メモIDの数[S]メモID最終更新時刻[S]メモID[s]メモID[s]...[S]キーワード本体[改行] キーワードID[S]キーワード登録時刻[S]キーワード属性[S]メモIDの数[S]メモID最終更新時刻[S]メモID[s]メモID[s]...[S]キーワード本体[改行] . . . キーワードID[S]キーワード登録時刻[S]キーワード属性[S]メモIDの数[S]メモID最終更新時刻[S]メモID[s]メモID[s]...[S]キーワード本体[改行] memo.txt メモID[S]メモ登録時刻[S]キーワードIDの数[S]キーワードID最終更新時刻[S]キーワードID[s]キーワードID[s]...[S]メモ本体[改行] メモID[S]メモ登録時刻[S]キーワードIDの数[S]キーワードID最終更新時刻[S]キーワードID[s]キーワードID[s]...[S]メモ本体[改行] . . . メモID[S]メモ登録時刻[S]キーワードIDの数[S]キーワードID最終更新時刻[S]キーワードID[s]キーワードID[s]...[S]メモ本体[改行]
#ifndef OBJECT_H #define OBJECT_H #include <time.h> typedef enum attribute_type attribute; typedef struct keyword_object kobject; typedef struct memo_object mobject; enum attribute_type { OTHER = 0, MAN, OBJECT, EVENT };
struct keyword_object { int keyword_id; time_t registered; // このキーワードが登録された時刻 attribute attr; // このキーワードの属性(MAN or OBJECT or EVENT or OTHER) #define MAX_MEMO_ID 256 int memo_id_array[MAX_MEMO_ID]; // このキーワードに関連付けられているメモIDの配列 int nmemo; // このキーワードに関連付けられているメモの数 time_t last_modified; // このキーワードに関連付けられているメモIDの配列の最終更新時刻 #define MAX_KEYWORD_SIZE 256 char keyword[MAX_KEYWORD_SIZE]; // キーワード本体 };
struct memo_object { int memo_id; time_t registered; // このメモが登録された時刻 #define MAX_KEYWORD_ID 256 int keyword_id_array[MAX_KEYWORD_ID]; // このメモに関連付けられているキーワードIDの配列 int nkeyword; // このメモに関連付けられているキーワードの数 time_t last_modified; // このメモに関連付けられているキーワードIDの配列の最終更新時刻 #define MAX_MEMO_SIZE 1024 char memo[MAX_MEMO_SIZE]; // メモ本体 }; #endif /* OBJECT_H */
#ifndef LINK_H #define LINK_H #include "object.h" typedef struct keyword_link klink; typedef struct memo_link mlink; struct keyword_link { kobject kobj; // キーワードオブジェクト klink *next; klink *previous; }; struct memo_link { mobject mobj; // メモオブジェクト mlink *next; mlink *previous; }; #endif /* LINK_H */
突っ込みよろしく〜。
137 :
106 :03/11/26 22:29 ID:RjdJOgSs
詳しくコメントを付けてくれているので、非常に助かります 。私でも可読できます。 キーワードオブジェクトだけでなく、メモオブジェクトにも 同様に、IDを持たせて線形リストにしたのですね。これで、 どちらからでもIDをもとにリスト内を検索できますね。 txtに格納する情報も、これで全部ですね。区切りも良いで す。 私自身もプログラムを考えましたが、ここまでの設計はでき ませんでした。プログラムを評価するという事にも、おそら く力量不足だと思います。ですが、これからも、おおまかな 方針には意見していきたいので、よろしくお願いします。
暇なんでプログラム始めたいのだが 以前から聞いていたC++って、C#と別物で何が違うのやら? 1で書いてるグレードアップは幾らで出来るんですか? VSって確かC++、VBとか入ってる統合ソフトですよね?
ええと、 ・C++ C言語を元にして作られた言語です。オブジェクト指向言語、言語自体の仕様が膨大で ちと飲み込みにくい。 ・C# 一応C++を元にして作られた言語らしいです。やはりオブジェクト指向言語。Javaに似てたり VBに似てたりのごった煮言語。 C++とC#の違いは……全く別物と思って下さい。木星と土星くらい違います。 ただ、C++はWindows以外の開発でも使ってますが、C#は現状Windows環境のみでしか 使われてません。 Visual StudioにはVisual C#.NET、Visual Basic.NET、Visual C++.NETが入ってます。 ……が、はっきり言ってお高い。前のバージョンからアップグレードじゃないと大変。 C++の勉強がしたいなら、Borlandから無料で使えるコンパイラが配布されてます。 UN*Xをかじったことがあるなら、Cygwinを導入してgccを使うのも手です。 C#の勉強がしたいだけなら、Microsoftが.NET Framework SDKを無償配布しています。 その中にC#のコンパイラが含まれています。 あとgccもC#対応を目指していたはず。現況は各自ご確認を。
140 :
名無しさん@毎日が日曜日 :03/11/28 01:53 ID:OUAvD2Bh
C# は MS が Java 使うの嫌だから作った。 ライバル潰して自分を押し上げていくのが MS だよ。
Sunとの裁判中に「COOL」とかいう仮名でプロジェクト始動しとったよね。 しかしC#(つーか.NET)はJavaには勝てんと思う。いずれMSとSunが互いに折れて、MSが Javaコミュニティを取り込んで決着が付くんじゃないかと妄想している。 (´-`).。oO(でもそうなったら、今度はC#のコミュニティがMSの手の届かないところにできたりしてw)
142 :
><; :03/11/28 03:14 ID:HaMktB1k
高橋麻奈とかちゅう推定年齢32の女性が書いてるけっこう厚いCの入門書が おいてある場所に彼女の似顔絵らしきイラストが晒してあるんだけどあれって かなりリアルな似顔絵っぽいよね。普通あの手のイラストてわざと美化してある と思うんだが・・うっ、もしかしてあれでも実物よりかなり可愛く描いてあるの かも?
144 :
名無しさん@毎日が日曜日 :
03/12/03 01:47 ID:/8ABUYD2 んこのスレも終わったのかな?