02/03/16 21:28
>>235
そんな難しい話ではなく、
-9.5 を -10 にする根拠は? -9 にする根拠は?って話。
どちらも誤差は 0.5
238:デフォルトの名無しさん
02/03/16 21:31
あ゛ お題は -8.5 か。
ウツダシノウ
239:アライグマPascal
02/03/16 21:39
う~ん
round(X)
実数式Xの小数点以下を四捨五入した整数値を返す。
とあるなら、その値は唯一一つしかあり得ないはずですよね。
別の解釈が入り込む余地は無いと思うのですが、
こんな単純明快な話なのにどうして処理系依存なんてことが
あるのだろう。
240:アライグマPascal
02/03/16 21:44
(2)の問題は
1.3+6E-1 の部分の(-1)の解釈が、単に整数値の-1と解釈するのか
前のEとの絡みで、10のマイナス1乗と解釈するのかの違いだと思うの
ですが、どうでしょうか?
241:デフォルトの名無しさん
02/03/16 21:46
1. そもそも Round 関数は Pascal 言語の仕様の範囲外。個々の処理系のライブラリが
規定するもの。
2. 正の数の丸めは Banker's Round / 銀行家の丸め問題以外には大きな問題はない。
URLリンク(homepage1.nifty.com)
242:デフォルトの名無しさん
02/03/16 21:55
3. 負の数の丸めを明確に規定する物はない。
-8.5 に話を戻すと、-1 * 8.5 に置き換えてから 8.5 を「四捨五入」。最近偶数値である8に丸められた後
-1 * 8 と評価されるとすると、答えは「-8」
-8.5 を字面で「四捨五入」すると、「五入」扱いになる。
これを0方向に丸めると、答えは「-8」
これを無限大方向に丸めると、答えは「-9」
さて。.5 は境目の数なので、少し前後も出してみよう。
-8.0 -> -8.0 // これは異論あるまい。
-8.4 -> -8 の方が近いんだから -8 だろう。
-8.5 -> さぁ。どうする?
-8.6 -> -9 だよな。
-9.0 -> -9.0 // これも簡単。
243:アライグマPascal
02/03/16 21:59
>241
お恥ずかしい話ですが初めてこの話を知りました。
ということはHelloPascalは「JIS丸め」を採用していない、
演算によっては誤差が大きくなりやすいということですね。
関連のURLを含めて作者に連絡してみようと思います。
244:デフォルトの名無しさん
02/03/16 22:11
実数型か少し多めの桁を使用して表示の際に四捨五入すれば
実用上は問題ないんだけどね
厳密にしようとすると気になるかも
245:デフォルトの名無しさん
02/03/16 23:13
なお、div / mod 「演算子」の負数に対する振る舞いは規格書に明記されています。
まぁ普通はそこまで気にしない/気にしてもしょうがないので「処理系依存」の振る舞い
とひとくくりにしてしまいますが。
246:デフォルトの名無しさん
02/03/17 00:04
その前の問題として 数値の持ち方の問題があるんじゃない?
2進で表現すると
5.5 101.1と 誤差無くもてるけど、8.9=1000.1110011001100110011 と誤差無く持てない
247:デフォルトの名無しさん
02/03/17 02:33
>>246
銀行家丸めはコンピューターが無い頃からの技法だよ。
248:デフォルトの名無しさん
02/03/22 21:52
最近までBASICで遊んでましたが、今日アマゾンからUsing turbo pascal 6.0-7.0 third edition
が届いたのでまたPascalで遊んでみたいと思います。
249:デフォルトの名無しさん
02/03/22 22:03
何でわざわざ古い物を選ぶんだろう。
昔の物だからといって、機能が少ないからといって、優しいとは限らないんだよ?
250:デフォルトの名無しさん
02/03/22 22:24
>>249
じゃーキミも三平方の定理使うのやめなよ。
251:デフォルトの名無しさん
02/03/22 22:26
まあまあ。他人が何しようといいじゃないの。
遊ぶんだったら、趣向は人それぞれ。
おれも宿題スレみて生DOSアプリを作ってみたくなったよ。
252:アライグマPascal
02/03/22 22:59
例の「答えが書籍と違う」という話ですが、作者にメールで
報告したところバグらしいとのことでバグフィックスをする
とのことでした。
253:デフォルトの名無しさん
02/03/28 22:22
なぜend.の直前の行には;が不要なのか。
254:デフォルトの名無しさん
02/03/28 22:27
>>253
;は文と文を分離するためのものだからです。
255:デフォルトの名無しさん
02/03/28 22:59
>>254
よく理解できました。ありがとうございました。
256:丁稚Pascal
02/03/29 05:58
現在情報学科の一年(四月から二年)で、まだ言語はPascalしか知りません。
今はまずPascalをある程度できるようになりたいので、
このスレでいろいろ課題を出してもらえるとうれしいのですが・・・。
257:デフォルトの名無しさん
02/03/29 07:22
アメリカの大学だと Java から入るんだけどね...
258:丁稚Pascal
02/03/29 07:48
そうなんですか。
何の言語から入るかは意見のあるところとは思いますが
色々と手を出すよりもまずは一つのものを―
と考えているので、よろしくお願いします。
259:アライグマPascal
02/03/29 07:59
手持ちの書籍からの抜粋でよろしければ・・・・・
「正の整数aとb(a>=b)の最大公約数(GCM)を求めるプログラムを書け。
aまたはbがゼロ以下の場合は適当にエラーメッセージを出力せよ。」
解法のヒント(ユークリッドの互除法をつかう)
まず大(a)を小(b)で割った余りrを求める。
次にaをbに、bを余りrに置き換える。
これをr=0となるまで繰り返す。最後の被除数がGCMとなる。
260:アライグマPascal
02/03/29 08:03
「明解PASCAL・国際規格(ISO)準拠」 伊東正安/金谷範一=共著
サイエンス社 定価(本体2111円+税)
上の本からの出題です。この本は個人的におすすめです。
261:丁稚Pascal
02/03/29 08:04
さっそくチャレンジしてみます。
262:丁稚Pascal
02/03/29 09:01
program GCM(input,output);
var a,b,c,r:integer;
begin
writeln('自然数を二つ入力しる!');
readln(a,b);
while (a<0) or (b<0) do begin
writeln('自然数っつただろうが(゚Д゚)ゴルァ!!');
readln(a,b);
end;
if a<b then begin
c:=b;
b:=a;
a:=c;
end;
repeat
r:=a mod b;
a:=b;
b:=r;
until r=0;
writeln('最小公約数=',a);
end.
263:丁稚Pascal
02/03/29 09:05
こんな感じになりました。
これくらいで一時間か・・・ちと情けない。
直したほうが良い箇所とかありますか?
264:デフォルトの名無しさん
02/03/29 09:27
>>263 折角だから GCMを求める関数を作って
メインではそれを呼ぶように変更してはどう?
それから最小公約数は1だよ
最大公約数・最小公倍数でWeb検索してみたら
265:丁稚Pascal
02/03/29 09:37
>>264
>それから最小公約数は1だよ
そうでした、恥ずかしい・・・。
関数つかってやってみますね。
266:丁稚Pascal
02/03/29 09:57
program GCM(input,output);
var a,b,c:integer;
function a_gcm(x,y:integer):integer;
var r:integer;
begin
repeat
r:=x mod y;
x:=y;
y:=r;
until r=0;
a_gcm:=x;
end;
begin
writeln('自然数を二つ入力しる!');
readln(a,b);
while (a<0) or (b<0) do begin
writeln('自然数っつただろうが(゚Д゚)ゴルァ!!');
readln(a,b);
end;
if a<b then begin
c:=b;
b:=a;
a:=c;
end;
writeln('最大公約数=',a_gcm(a,b));
end.
267:丁稚Pascal
02/03/29 10:02
訂正してみました。いちいちソース貼ってると長くなるなぁ。
268:デフォルトの名無しさん
02/03/29 10:25
>>266 大小の比較交換も a_gcmに入れないと使う時に不便だよ
269:丁稚Pascal
02/03/29 10:35
program GCM(input,output);
var a,b:integer;
function a_gcm(x,y:integer):integer; //一組の自然数の最大公約数を求める
var r,z:integer;
begin
if a<b then begin
z:=y;
y:=x;
x:=z;
end;
repeat
r:=x mod y;
x:=y;
y:=r;
until r=0;
a_gcm:=x;
end;
begin
writeln('自然数を二つ入力しる!');
readln(a,b);
while (a<0) or (b<0) do begin
writeln('自然数っつただろうが(゚Д゚)ゴルァ!!やりなおし!!');
readln(a,b);
end;
writeln('最大公約数=',a_gcm(a,b));
end.
270:丁稚Pascal
02/03/29 10:38
>>268
なるほど。再度訂正してみました。
大学だと課題として提出して終わりなんで、その場限りのコードになりがち。
気をつけねば。
271:デフォルトの名無しさん
02/03/29 10:58
× if a<b then begin
z:=y;
y:=x;
x:=z;
end;
272:デフォルトの名無しさん
02/03/29 11:02
テストコードを書く習慣をつけないといけないよ
最初に予め計算した結果と何個か比較させるようにするといい
if a_gcm(555,9875)!=5 then writeln('NG');
273:デフォルトの名無しさん
02/03/29 11:16
除算を使わない GCD
function gcd_1(m,n:Integer):Integer;
begin
gcd_1:=0;
if m=0 then exit;
if n=0 then exit;
while m<>n do begin
while m>n do m:=m-n ;
while n>m do n:=n-m ;
end;
gcd_1:=m;
end;
274:アライグマPascal
02/03/29 11:38
書籍に載っていた模範解答です。
program gcm(input,output);
var
a,b,r : integer;
begin
writeln('Enter a:'); readln(a);
writeln('Enter b:'); readln(b);
if (a>0) and (b>0)
then begin
repeat
r:=a mod b ; a:=b ; b:=r ;
until r=0;
writeln('gcm = ',a)
end
else writeln('ERROR: a and b must be positive.')
end.
275:丁稚Pascal
02/03/29 13:20
>>271
やってしまった・・・。
>>272
なるほど、次からはテストコード入れるようにします。
>>273
参考になります。
>>274
自分の
r:=x mod y;
x:=y;
y:=r;
よりも、
r:=a mod b ; a:=b ; b:=r ;
のように一行に書いてしまった方がいいんですかね?
これは好み?
276:アライグマPascal
02/03/29 16:46
まったくの好みです。
私は全て一行一文主義です。
277:デフォルトの名無しさん
02/03/29 20:49
Pascal の歴史はここが詳しい。
URLリンク(web.mit.edu)
278:デフォルトの名無しさん
02/03/29 21:11
>>277 サンクス
平易な英文だから
「英語はちょっと・・・」という人もトライしてみるといいね
この辺の経緯を知らなかったDelphiユーザーなら
ますます好きになること請け合いだよ
279:丁稚Pascal
02/03/31 03:31
>>276
ありがとうございます。
今まで一行一文だったし、読み易い(自分としては)ので
これからも一行一文でいきます
280:デフォルトの名無しさん
02/03/31 22:22
Pascal って String 型あるんだ。
Cよりラクチンでいいな。
281:デフォルトの名無しさん
02/03/31 23:11
ord ってなんの略なんだろう?
ord('R') で82 になるやつ。
282:デフォルトの名無しさん
02/04/01 00:30
order, ordinalなどの「序数」の事でしょう。
283:デフォルトの名無しさん
02/04/01 00:38
確かにCやBASICしか知らなかった人がPASCAL(Delphi)
のテキスト読んだときに集合とか順序型、部分範囲型
とか書かれていると「ハァ?」なんだろうなあって思う。(w
284:デフォルトの名無しさん
02/04/01 00:46
>>280
文字列に関してはCが馬鹿すぎるよね
よくあんな言語で業務用アプリを作るもんだと思ってたもの
C++は文字列用のクラスがあるからまだましだけど・・・
285:デフォルトの名無しさん
02/04/01 09:44
>>283
(゚Д゚)ハァ?
って思ったよ、最初は。でも便利だね。
286:デフォルトの名無しさん
02/04/01 11:08
集合型、列挙型、部分範囲型、この3つの関係を
理解できたら本当に便利だよね。
287:丁稚Pascal
02/04/01 20:53
Cでは文字列を扱いた場合どうしてるんですか?
配列で定義してるの?レベルが低くてすいません(^-^;
やっぱ他の言語も少しは勉強していかないとだめかな・・・
288:デフォルトの名無しさん
02/04/01 21:47
Cの場合、ポインタと配列の区別がpascalに比べるとはるかに曖昧です
char *p が文字列ポインタ(var p:PChar;)相当 (type PChar=Char^;)なんだけど
p="ABCD"; と文字列を代入してるかのように表現出来ます。
というかします
そして文字列"ABCD"は5文字の文字配列と等価です。
文字の最後は必ず #0 です。 これは Cでは'\x00' と書きますが
こういう表現方法をAsciiZとか呼びます
DelphiではこのAsciiZ方式と親和性が高くなるよういろいろな工夫がされています
289:デフォルトの名無しさん
02/04/02 22:51
for letter := 'A' to 'Z' do
290:デフォルトの名無しさん
02/04/02 22:52
>>289 は無視してくだされい。
for letter := 'A' to 'Z' do
write (letter)
こういう書き方がOKと聞いてはじめはびっくりした。
しかし、よく考えてみると、文字コードが入っているだけなので、納得した。
291:デフォルトの名無しさん
02/04/02 23:20
>>288
何か変。
>p="ABCD"; と文字列を代入してるかのように表現出来ます。
> というかします
これは初期化のときだけ。
初期化のときに「char* p = "abcd"」とすると、文字列の長さの分(此処では5)だけの領域を「確保」し、この場合なら"abcd\0"で初期化をします。
代入のときには出来ません。
代入をしたいときは、標準ライブラリその他の関数を使うとか、一文字ずつ操作するとか(配列と同じです)。
(C++ならstd::strungという文字列クラスが標準で存在します)
> 文字の最後は必ず #0 です。 これは Cでは'\x00' と書きます
'\0'とかくのが普通。
'\x00'はコードが0になる文字で、'\0'は文字列の終わりにくる特殊な文字。
「結果的には」同じだけど(ASCIIの場合?)。
292:デフォルトの名無しさん
02/04/03 00:23
>>291補足。
「初期化」というのは、宣言のときの代入です(違うけど)。
Cでは変数を「型名 変数;」として宣言しますが、
「型名 変数 = 初期値;」とすることで、変数の定義と同時にその値を設定することも出来ます。
'\x__'は、xのあとに16進数の値を入れて、コードを直接指定します。
293:まあ一応
02/04/03 06:23
>>291-292
char* p = "abcd"
はポインタだから配列とは違うぞ。と。
確保されるのはcharへのポインタとabcd\0だぞ。と。
char p[] = "abcd"
とは違うぞ。と。
(下はp="efgh"とかはできないが上はできる)
294:デフォルトの名無しさん
02/04/03 06:50
>>287
ところで課題出してほしいの?
295:デフォルトの名無しさん
02/04/03 12:24
じゃあ、データ構造の問題。
文字列を格納する片方向リスト構造を構築し、
任意の個数のデータを入力させ、最後に、その一覧を
通常ソート(頭文字がA→Zとなるように)及び
逆ソート(終端文字がA→Zとなるように)で出力せよ。
296:291
02/04/03 12:36
>>293
謝謝!
297:丁稚Pascal
02/04/03 18:59
>>294
はい、おねがいします。
>>295
今からやってみます。かなり苦労しそうですが・・・
298:デフォルトの名無しさん
02/04/04 20:58
もうすこし単純な問題なら… そうさねえ
どの程度の問題を要求しているのか分からないけど、
「指定したファイルを、バイナリ形式で(
16バイト分を1行として、16進数で)表示せよ」 とか。
バイナリエディタみたいに。
00000 00 32 FF 55 23 56 F3 4F 93 F2 00 34 1A B3 34 CD
00001 ...
00002 ...
...
と言う風に表示。
でもって、それをテキストファイルに出力。
299:デフォルトの名無しさん
02/04/06 00:37
なんか、本読めば読むほど、Cとそっくりということがわかってきて、だんだん新鮮味がなくなってきた。
そろそろJavaに移るか。
300:デフォルトの名無しさん
02/04/06 00:56
>>299
CとPascalはいとこ同士みたいなもんだからね~
思想的には正反対の部分もあるけど
おっと、300ゲトー、ズサ
301:デフォルトの名無しさん
02/04/06 01:00
ただ、ソースがキレイなのは気にいった。
Cだとぐじゃぐじゃして何がなんだか、書いた本人しかわからんことも多い。
Perlよりはましだが。
Pascalはどうかいてもキレイになるようなしくみがあるんだろうな。
なんでCに負けたんだ?
302:デフォルトの名無しさん
02/04/06 01:11
>>301
URLリンク(web.mit.edu)
↑これを参照のこと
少なくともWindowsアプリを作る道具として見れば、C(≠C++)には勝ってるね
303:デフォルトの名無しさん
02/04/07 17:06
>>299
みためなら、Javaも大して変わらんと思うがナー
本当に違った世界を味わいたいなら、LISPなどお勧めしておきたい。
つーか、一度はやっておくといいよ。
304:デフォルトの名無しさん
02/04/08 22:22
Schemeは一応やったんですけど、exeが作れないので飽きました。
305:Delフサギコ ◆zE1iiRdQ
02/04/08 22:38
∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ,,゚Д゚彡 < 何がやれるのか自体がわからなかったので
U つ \飽きました。
@ミ ミ  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∪''∪
言語とは難しいですね。
306:デフォルトの名無しさん
02/04/08 22:50
でもPascalの本、またちまちま読んでる。
アマゾンでJavaの本、注文したけど、届くまで1ヶ月かかるから。
それまでの間、Pascal の勉強するつもり。
もし時間がそれでも余ったら、VBとDelphiの勉強する。
本は買ってあるから。
307:デフォルトの名無しさん
02/04/18 22:57
おい、お前ら。
pascalの中で、UNIXコマンド使う方法教えてください。
308:307
02/04/18 23:45
UNIX版で聞いてきます。
309:デフォルトの名無しさん
02/04/19 12:11
スレリンク(tech板)
310:デフォルトの名無しさん
02/04/21 21:33
test
311:デフォルトの名無しさん
02/05/10 04:00
保守sage
312:デフォルトの名無しさん
02/05/22 12:13
age
313:デフォルトの名無しさん
02/05/30 14:02
age
314:デフォルトの名無しさん
02/06/01 05:47
age
315:デフォルトの名無しさん
02/06/01 05:59
寒いスレだな
316:デフォルトの名無しさん
02/06/01 06:49
例題が豊富な解説書のお勧めはないでしょうか?
delphiは扱ったことがないので純粋なpascalの本を探しています。
317:デフォルトの名無しさん
02/06/02 06:19
Pascalに限らないけど純粋なPascalの本となると昔の物が多いので
とりあえず図書館で探してみてはいかがでしょう。
答えになってないですけど。
318:困ったさん
02/06/18 21:39
Pascalで多項式を2次式で割るプログラムを書けといわれたんですけど、
どうもうまくかけません。誰か教えてください。
319:困ったさん
02/06/18 23:38
age
320:デフォルトの名無しさん
02/06/18 23:47
>>318
数学の問題
321:デフォルトの名無しさん
02/06/19 01:03
const
Jisu = 5; // 次数(これは5次の場合)
var
tako: array[0..Jisu]of Real; // 多項式
niji: array[0..2]of Real; // 二次式
ans: array[0..Jisu-2]of Real; // 答え
for i := Jisu-2 downto 0 do begin
ans[i] := tako[i+2] / niji[2];
for j := 2 downto 0 do
tako[i+j] := tako[i+j] - ans[i]*niji[j];
end;
これで、ans に商となる多項式、 tako に剰余となる1次式が入るかな。
ゼロ除算とかのエラーは考えてないので、その辺よろしく。
322:困ったさん
02/06/19 04:09
とても参考になりました。ありがとうございます。
323:デフォルトの名無しさん
02/06/23 11:29
Double を Integer に入れたいんですけど、どうすればいいですか?
324:デフォルトの名無しさん
02/06/23 11:32
>>323
kyasuto
325:デフォルトの名無しさん
02/06/23 11:34
どのようにキャストすればいいんですか?
326:デフォルトの名無しさん
02/06/23 11:37
windowsで使えるpascal→C言語コンバータはないですか?
327:デフォルトの名無しさん
02/06/23 11:48
>>323
Round関数
328:デフォルトの名無しさん
02/06/24 18:33
何だここの"PASCAL"って?
URLリンク(biz.ascii24.com)
329:323
02/06/24 22:27
>>327
ありがとうございました!
330:デフォルトの名無しさん
02/06/28 18:02
Code worrierでpascalコンパイルする必要がでてきました。
使ってるひと居ませんか?
Code worrierは既にpascalの対応が終了していて、
本家(あめりか?)で最終pluginがでてるみたいなんですけど、
これって日本語版の最新Code worrierで動くのでしょうか?
OSはMac9です。
よろしくおねがいします。
331:デフォルトの名無しさん
02/06/28 20:25
>330
使えたよ。
ただしVer.7までだけどね。
それとCarbonは駄目っぽ。
332:デフォルトの名無しさん
02/06/28 20:28
図書館でPASCALの本を探したら開架は全滅だった。
仕方ないから書庫から持ってきてもらった。
もう需要が無いんだね。
まだ出てから10年も経っていない本だって……
333:デフォルトの名無しさん
02/06/28 20:52
Code worrierといえば、PocketStudioとか言う、DelphiライクなPalmの
開発環境があるみたいだね。
開発環境じゃなくて、Palmで動くPascalの処理系があるとうれしいかも。
Pascalの勉強用に。
でも、グラフィティでソースコード入力するのもちょっと面倒か。(w
334:330
02/06/30 04:12
>331
日本語版は最新が7みたいだからこれで逝けるわけですね。
Carbonはとりあえず必要ないです。
ありがとー
335:デフォルトの名無しさん
02/07/01 11:46
>334
ビルドする時にBuild Allを選択すればCARBONも使えるようになります。(人に指摘されるまで気付かなかった)
336:330
02/07/02 02:47
フォローさんくすです。
で、CW7日本語版アカデミックをゲトして
Pascal Pluginつっこんだら、とりあえず処理はできてる模様。
だけど、目的のコードはbuild出来ない罠。
実はNIH-ImageをソースからMakeしてるんだけど、
type mismach
SFPutFile(~)
とか、いろいろとおこられるよヽ(`Д´)ノウワァァン!!
337:デフォルトの名無しさん
02/07/02 03:10
>>330
1.62ならCWP2でMakeしたのを持ってる。たしかあれからファイルマネージャあたりは
激変したから、大変じゃない?
でも褌EDITがウプデートされるくらいだからな...
338:330
02/07/02 03:31
でも真の目的はNIHimage(改)のbuildなのですよ。
とりあえず手始めにそのままのをやってみようかと。
そのまま使うだけなら配布されてますしね。
(´-`).。oO(古いCWをとりよせたほうが早いのかなぁ)
339:337
02/07/02 03:41
>>338
古いヘッダならADCのサイトにあるような。あ、けど合うのをさがすのがたいへんだね。
340:330
02/07/05 03:28
入ってる(新しい)ヘッダをみながら、エラーが出る個所を無理矢理それっぽく直したら、
なんとかNIH-image(1.62)がmakeできたよ。一見ちゃんと動いてるみたいだけど、どうだろう。
PascalもCWもはじめてなんだけど、それ以前にMacの初心者なのが辛いトコロ。
AppleEventを効かすと刺さるんだけど、これって切っちゃっていいものなんだろうか…
ところで、>>1にGUI不可って書いてあることに今気づいたよ。
スレ違いスマソ。
親切な方、誘導きぼんぬ。
341:デフォルトの名無しさん
02/07/13 08:17
age。
DAT落ちは阻止じゃ。
342:デフォルトの名無しさん
02/07/16 22:46
>>341
んだ
343:デフォルトの名無しさん
02/07/17 06:14
このスレでFreePascalの話題出てますか?
え? ここ何処の板? 過去ログ読め?
ショボーン
344:デフォルトの名無しさん
02/07/20 00:29
生きろ!
345:デフォルトの名無しさん
02/07/30 20:46
PASCAL CENTRALにはFREEのPASCALコンパイラも置いてあるぞ!
346:デフォルトの名無しさん
02/08/17 20:54
AGE
347:デフォルトの名無しさん
02/08/18 03:00
何気なくパスカルのソースコードを検索してたらこんなのあったぞ。
URLリンク(home.planet.nl)
TurboPascal5.5・6.0・7.0でスーパーマリオを作ってる。
まだソース見てないけど、ちょっと面白そうだ。
348:デフォルトの名無しさん
02/08/18 05:01
Pascalが
Philips’ Automatical Sequence Calcurator
の略だったなんて初めて知ったよ
349:デフォルトの名無しさん
02/08/18 05:11
>>347
ジャンプしながらファイアボールを撃つと、
フルスクリーンに関らずシステムメニューが出てしまう…
このキー配列どうにかならないものか…
350:デフォルトの名無しさん
02/08/18 05:16
>>349
ソースファイルあるんだから、変更できそうだけどな。
生憎TPがないや。本家に行ってDLしてこようかな。
351:デフォルトの名無しさん
02/08/24 16:14
ObjectPascalの日本語で読める本って何か良いのある?
このスレでリンクしてある「Object Pascal/Delphi(Kylix) プログラミング入門」
はDelphiでの使用に限定しているようなので汎用的なものを……
352:デフォルトの名無しさん
02/08/25 19:22
>>351
Object Pasca lは Turbo Pascal/Delphi でしか使っていないのだから、汎用的と言っても意味ないと思う。
標準 Pascal ならあるけど、文字列型も分割コンパイルもない「教育言語」だから、今更覚える必要も無いとも思われ。
353:デフォルトの名無しさん
02/09/04 18:40
CodeWarriorでもObjectPascalは使えます。
ボーランドがLinux用に出してるもう一つの製品でも使えるよ。
354:デフォルトの名無しさん
02/09/04 19:21
それだけじゃない
URLリンク(www.freepascal.org)
compatible with TP 7 as well as most versions of Delphi
355:352
02/09/06 20:51
>>353-354
あ、Kylix はそうでしたね。失念しておりました。
CodeWarrior と Freepascal は知りませんでした。私は最近の動向をよく分かっていない
ようです(というか、Delphi で事足りているから、追いかける気がしないだけ)。
あと、標準化の中には「ISO Pascal」ってのもあったと言うことを思い出しました。Borland
はこの規格の裁定に入っていないから、気にもしていないけど。
それはそうと、「Object Pascal というのは紛らわしいから?Delphi Language に変える」
という話もあるようだけど、Kylix もあるとしたら、なおさら紛らわしいような気もするんだけ
ど...
356:デフォルトの名無しさん
02/09/07 19:05
誰かMetrowerksの
Pascal Language Reference
Pascal Library Reference
Error Reference
を持っている人居ない?
ObjectPascalを使ってみようと思ってCodeWarriorCDを探してみたのですが見つからないのです。
Pascal Compilers Ref.pdfによるとCodeWarriorPro5のDocumentationフォルダの中にあるはずなんだけど、
いくら探してみ見つからないんです。
Sherlock2で検索かけてもPascal Compilers Ref.pdf以外は見つからなくて……。
Pro7にはPascalのDocumentなんて元から入っていないし……
357:デフォルトの名無しさん
02/09/10 21:26
Metrowerksに問い合わせたらメール添付で送ってくれました。
原文の方しかないらしく、送って来たのは英語……。
しかも200頁超や300頁超でした。
はぁ、頑張って訳すか。
358:アライグマPascal
02/09/19 08:16
仕事が忙しくてネタがないのですが、(HPまだ作れていません)
すみませんageます。
359:デフォルトの名無しさん
02/09/20 21:49
レコード型の可変部がイマイチ良く分からん。
Var r : record
case byte of
0 : ( i : Longint );
1,9: ( a : extended);
(1) : ( b :array[0..9] of byte );
end;
とかくとき、
iやa,bなどは変数ということは分かるのだけれどその前に書く0や1,9がなんなのか良く分からない。
360:デフォルトの名無しさん
02/09/20 22:08
Pascalは知らんが、Cでいう共用体(union)ってやつだな。
番号はどの構造をとるかっていう構造識別番号みたいな奴で、byte型なわけだ。
無名だから使ってないみたいだけど、定義の時は必ず適当に決めなきゃならんのかも?
361:デルファイの名無しさん
02/09/20 22:11
Var r : record
case TAG: byte of
0 : ( i : Longint );
1,9: ( a : extended);
(1) : ( b :array[0..9] of byte );
end;
のように、タグフィールドを入れられるのですが、これは省略可能なのです。
この場合、TAGが0ならaとbにアクセスするとエラーになるPascal実装もあった…かな?
(DelphiだとTAGは単なるメンバ以上の意味を持ちませんが)
362:デフォルトの名無しさん
02/09/22 11:48
なるほど共用体か。(Cも少しやっていたので分かる)
それで先頭のアドレスをそろえているのか。
持っているPASCAL入門の本は可変部の説明がなおざりだったんで何の事か良く分からなかったよ。
363:デフォルトの名無しさん
02/09/22 21:56
function(関数)とprocedure(手続き)の違いは返り値の有無と考えても問題ない?
364:デフォルトの名無しさん
02/09/22 22:19
問題ないです。
365:デフォルトの名無しさん
02/09/23 07:29
そいえばたまにわざわざダミーの返り値を使ってなんでもかんでもfunctionにしてるソースを見ることがあるな。
C出身者が書くとそうなりがちなのかも。
366:デフォルトの名無しさん
02/09/23 07:57
>>365
Cにはvoidがある。
そんなソースを書くのはDQNだけ。
367:デフォルトの名無しさん
02/09/23 11:32
単にprocedure(手続き)を宣言するのが面倒臭かったのでは?
368:デフォルトの名無しさん
02/09/23 11:38
>>367
> 単にprocedure(手続き)を宣言するのが面倒臭かったのでは?
意味わからん。function の方が面倒と思うが...。
369:デフォルトの名無しさん
02/09/23 13:53
まさか・・・これを・・・?
if A then B else C
A && B || C
370:デフォルトの名無しさん
02/09/23 22:53
コンポーネントパスカルをダウンロードしたけど、なにげによさげ
でも英語できないから難しい。だれか邦訳してくれ言語リファレンス。
371:デフォルトの名無しさん
02/09/23 22:55
URLリンク(www.fit.qut.edu.au)
372:デフォルトの名無しさん
02/10/05 15:00
大分下がって来たので揚げ
373:デフォルトの名無しさん
02/10/24 23:37
そろそろ保守
374:デフォルトの名無しさん
02/10/25 00:34
Pascalの参考書探してる人は図書館いってみ。
TPとか、Pascalのがタマーにあったりしてうれしい。
あとは、大学に忍び込んで生協にあったりなかったり。
375:デフォルトの名無しさん
02/10/26 16:03
{$ }で囲まれている部分は何をする為に付けられるもの?
確か{ }で囲まれた部分はコメント部分で、コンパイル時には無視される部分だと記憶しているのだけれど。
{$I PascalOverrides.p}や{$unused ( inCallRef, inUserData ) }などのようにコメントにしては不自然な気がしてならない。
他にも
{$IFC UNDEFINED __TRANSLATION__}
{$I Translation.p}
{$ENDC}
なんて記述がある。
376:デフォルトの名無しさん
02/10/26 16:27
コンパイラに対する命令
377:デフォルトの名無しさん
02/10/26 17:39
>>375
ヘルプ嫁。
378:デフォルトの名無しさん
02/10/26 17:54
コマンドラインで指定するコンパイルオプションと同じ。
しかし、コマンドラインでオプションを指定するとそのソース全部に一括してそのオプションが適用されてしまう。
コンパイラ指令としてソース中に記述すれば部分的な適用もできるし、IFなどの制御構造を使った複雑な指定もできる。
例えば、コマンドラインで「 -$O+ 」と指定すると、それはそのプログラム全体が最適化オプションが適用されてしまうが、
ソース中に「 {$O+} 」と書いて指定すれば手続き一つだけについて最適化オプションを適用することもできる。
379:375
02/10/26 21:21
>376-378
コンパイラ疑似命令かぁ。
どうりでPASCAL入門の何所にも書かれていないわけだ。
380:デフォルトの名無しさん
02/10/27 02:14
古本屋いけ。
381:デフォルトの名無しさん
02/11/03 17:27
四個の変数 a,b,c,dの最小値を求める
IF文だけを用いたプログラムと
中間状態を用いたプログラムを書いてくれませんか?
382:デフォルトの名無しさん
02/11/03 17:42
FUNCTION GetMinimum(a, b, c, d: Integer): Integer;
BEGIN
IF a < b THEN IF a < c THEN IF a < d THEN GetMinimum := a
ELSE GetMinimum := d ELSE IF c < d THEN GetMinimum := c
ELSE GetMinimum := d ELSE IF b < c THEN IF b < d THEN GetMinimum := b
ELSE GetMinimum := d ELSE IF c < d THEN GetMinimum := c
ELSE GetMinimum := d
END;
383:デフォルトの名無しさん
02/11/03 17:46
FUNCTION GetMinimum2(a, b, c, d: Integer): Integer;
BEGIN
IF a < b THEN b := a;
IF c < d THEN d := c;
IF a < d THEN GetMinimum := a
ELSE GetMinimum := d
END;
384:381
02/11/03 18:12
>>382>>383
Pascalを習い始めたばかりなのです。
助かりました。有難うございました。
385:デフォルトの名無しさん
02/11/12 17:45
保守
386:デフォルトの名無しさん
02/11/13 17:38
age
387:デフォルトの名無しさん
02/11/24 21:46
function intersection(S1,S2:list):list;
var s,p:list;
begin
interlist(S);p:=S1↑.next;
while p≠nil do begin
if search(p↑.item,S2)≠nil then insert(S,p↑.item);
p:=p↑.next;
end
intersection:=S
end
と言うプログラムが本に載ってたんだけど、これってどういう手順で共通集合を出してるかわかんないです。
分かる人いたら、解説キボンヌ
388:デフォルトの名無しさん
02/11/24 21:53
>>387
こりは Pascal 言語の形を借りたアルゴリズムの説明コードだから、説明してくれと
言われても、このコードを読んで。としかいえないような。
集合 (a,c,d,f) と (b,c,f,g) の共通部分を取得するときに、人間ならどうやるか。
ってことをそのまま実装しているだけだぞ。
389:387
02/11/24 22:31
>>388
begin以下がどのような手順によってS1,S2の共通部分を取得してるかわからないんス。
p:=S1↑.nextってとこはpにS1のどの値を代入?
390:デフォルトの名無しさん
02/11/24 22:35
まずS1の先頭の要素をpに入れる。
pが指す値(item)と同じ値のがリストS2に在るかどうか調べる(search)
もしなければ最後まで行ってしまうのでnilになる。
あったら、その値をSにくっつける。
以下、S1の末尾に行くまで繰り返す。
こんなところかな。
391:387
02/11/24 22:52
>>390
解説サンクスベリーマッチョです
S1の先頭の要素をpに入れてから、ループになりますよね?
ループの条件はpが空集合でないときで、ってやっていって、S1はいつ先頭の要素から、先頭の次の要素に変わってるのかが分からないです。
392:デフォルトの名無しさん
02/11/24 23:07
データは線型リスト構造だよ。
393:392
02/11/24 23:30
線型リストの1個の要素はこんな形式
【[データ本体][次の要素へのポインタ]】
これが一次元に繋がってるのが線型リスト。
[先頭をさすポインタ]
↓
→【[データ1][要素2へのポインタ]】
↓
←←←←←←←←←←←←←
↓
→【[データ2][要素3へのポインタ]】
↓
←←←←....←←←←←
↓
→【[データn][nil〔終端〕]】
知ってたらスマソ。
394:デフォルトの名無しさん
02/11/24 23:32
その教科書のどこかにある list 型構造体の定義を見直してみてくれ。
395:デフォルトの名無しさん
02/11/24 23:33
>>391
>ループの条件はpが空集合でないときで
じゃなくて、pが指す先が存在するかどうかってこと。
392さんの図で指すものがなくなったらend
396:392
02/11/24 23:45
Pascalの集合型と混同してるのかな。このプログラムは集合型は関係ないよ。
397:392
02/11/25 00:17
ポインタ型の変数は>>393の
【[データ本体][次の要素へのポインタ]】
みたいな構造体を指し示すタイプの変数だ。
もっと詳しくいえば、その構造体の存在するメモリ上のアドレスを保持している。
このタイプの変数は、その変数の後ろに「↑」をつけることによって
そのレコードの内容にアクセスできる。
※コーディング時には「↑」は「^」を使う。
ポインタ p が例えば2番目のレコードのアドレスを保持しているなら
p^.item と書くことによって
2番目のレコードの item フィールドを参照しているのと同じ結果になる。
(整数が入っているなら writeln(p^.item); などと書ける。)
p にはポインタ型の価を代入できる。
p := (3番目の要素のアドレス)
みたいに代入すれば、今度は
p^.item で3番目の要素の item フィールドを参照できる。
【[データ本体][次の要素へのポインタ]】
この構造体の[次の要素へのポインタ]というフィールドも、またポインタ型だ。
この値で p の値を更新すれば
p := p^.next;
p を使って次のレコードを参照できる。
こんなふうに使っていくのが線型リスト。(本読んだ方がいいと思うけど)
398:デフォルトの名無しさん
02/11/25 18:53
どうしてPascalのポインタは↑なのにTurbo Pascalのポインタは^なんですか?
399:デフォルトの名無しさん
02/11/25 19:56
単に、キーボードと印刷の都合と思ふ
400:398
02/11/25 19:59
Turbo Pascalの^と標準Pascalの↑はどちらが一般的なんですか?
401:399
02/11/25 20:03
同じ文字なんだけど、キーボード上に↑は無いので^を使ってるし、
印刷して^は見にくいので↑になっていると思ふ
Pascalが生まれた頃は2バイト文字なんて一般的じゃ無かった筈だし
402:398
02/11/25 20:24
普通のPascalの↑は、かな変換でのを使用していいってことですよね?
403:デフォルトの名無しさん
02/11/25 21:22
アフ?
404:デフォルトの名無しさん
02/11/25 21:23
405:387
02/11/25 23:08
皆さん解説蟻が鯛です。
とても分かりやすくて感謝してます。
function intersection(S1,S2:list):list;
var s,p:list;
begin
interlist(S);p:=S1↑.next;
while p≠nil do begin
if search(p↑.item,S2)≠nil then insert(S,p↑.item);
p:=p↑.next;
end
intersection:=S
end
において、pの必要性がわかりません。
p:=S1↑.next;の部分を消して、以下pをS1としても駄目なんでしょうか?
406:デフォルトの名無しさん
02/11/26 00:01
>>405
言ってることよく分からんよ。
407:デフォルトの名無しさん
02/11/26 00:09
S1, S2は引数にvarが指定されていないので、変更不能だと思いますが、それはさておき、
線形リストはリスト全体を保持しておくために先頭のレコードを指すポインタが必ず必要です。
この値を変更して途中のレコードを指すようにしてしまうと
それ以前のレコードを参照する手段が完全に失われてしまいます。
S1 これなら全て参照可能
↓
【データ|next】→【データ|next】→【データ|next】→【データ|nil=終端】
S1を変更した場合 S1
↓
【データ|next】→【データ|next】→【データ|next】→【データ|nil=終端】
↑
このレコードが参照不能になる
disposeしない限りレコードはメモリ上に残っていますから
参照不能なメモリブロックがメモリ上に残るという
まずい事態になります。(メモリリーク?)
線形リストの処理は
先頭を示すポインタはそのままに、
別なポインタ変数を用意して
その値を変更して順次リストをたどっていきます。
で、405のような処理を書いた場合は
一度きりなら動くかも知れないが
以降、このリストを参照することができなくなる、というのが結論かな。
408:補足
02/11/26 00:11
線形リストはレコードの追加、削除ができますが
その場合でも常に全体を参照できる様、
例えば先頭にレコードを追加する場合は
変更後の先頭のレコードをさすようにポインタを変更します。
先頭のレコードを削除する場合は
次のレコードをさすようにポインタの値を変更します。
ところでプログラム中の4行目のp:=S1↑.next; は
もしかしたら p := S1 ではないのかと。
S1の一番はじめのレコードが無視されているような気がします。
409:デフォルトの名無しさん
02/11/26 00:38
>>408
つまり、pはS1の値を保持するためにあると言うことかな?
>もしかしたら p := S1 ではないのかと。
確かにそんな気がします。
S1の先頭にダミーセルがあることにしてるのかなあ?
410:407 & 408
02/11/26 00:59
Pの役割はイメージ的には配列の要素を参照する時のインデックスみたいなものかと。
for i:=1 to 10 do
if a[i] <= then xxxx;
のiがP、aがS1とか。(かなり違うが)
価を自在に変えながらリスト中のレコードを次々と指し示していく役割をするポインタ(P)と
全体を保持しておくために常に先頭を指すポインタ(S1)は
役割が違うと考えた方がいいかも。(追加、削除を伴わない処理の場合)
411:ああ
02/11/26 07:32
恐らくばりばり既出ネタで恐縮なんですが、
今私は数学系の学部に在籍しておりまして、研究上アルゴリズムや素因数分解
等をコンピュータ上で行わなければならない必要性が出てきました。
時間の関係上、手っ取り早くそのような計算が自在にできるようになりたいのですが、
当方、残念ながらコンピュータはネットする程度でプログラムやC言語、UNIX等の知識は
限りなく0に近いです。。何からはじめればよろしいでしょうか。御指導願います。
412:ああ
02/11/26 07:33
スンマソ、スレ違いでした。。。
413:デフォルトの名無しさん
02/11/26 08:09
>>410さんが言っているように、
pはいわゆるイテレータというやつで、
S1はリストの先頭を保持するという役割があるので
たとえS1でpを代用できてもするべきじゃないです。
414:デフォルトの名無しさん
02/11/27 21:52
Error: Incompatible type for arg no.
2: Got SHORTSTRING, expected LONGINT
どなたかこのエラーメッセージのわかる方いらっしゃいますか?
415:デフォルトの名無しさん
02/11/27 22:59
引数の2個目はLONGINTが来るはずなのにSHORTSTRINGだよボケが
416:デフォルトの名無しさん
02/12/03 23:46
落ち阻止。
417:デフォルトの名無しさん
02/12/07 17:08
リスト構造をもつ、ポインタ(pointer)型の変数を使用してデータ入力後絶対値に関して昇順に並べ替えたいのですがどうしてもうまくいきません。どうプログラムを書いたらいいでしょうか?
418:デフォルトの名無しさん
02/12/07 17:13
>>417
よくわかりません。
419:デフォルトの名無しさん
02/12/07 17:18
簡単に言うとポインタを使って昇順の連結リストをつくりたいのですが。
420:デフォルトの名無しさん
02/12/07 17:51
>419
中身を比較したのちポインタを書き換える。それだけ……
基本情報処理の本のリストに関する部分を読めば直に分かる。
421:デフォルトの名無しさん
02/12/08 01:09
>>419
対象をポインタで持っているのなら、ヒープソートなんかで木構造を一時作って、
それを再度リスト構造に戻すのが良いかも。
汎用的に作るのなら、ソート関数は作り込まず、外部のソート関数を呼び出すよ
うにすればよいし。
422:
02/12/08 20:48
コンソールアプリケーションである値を入力したら窓を閉じるにはどうしたらいいですか?
423:デフォルトの名無しさん
02/12/08 20:56
コンソールアプリケーションに窓なぞない。
424:
02/12/08 21:04
>>423
窓って言うか…何て言ったらいいんだろう?
Delphiでコンソールアプリケーションを作って実行したらコマンドプロンプトが起動するじゃないですか。
それを閉じたいのですが無理なんでしょうか?
425:デフォルトの名無しさん
02/12/08 21:12
exit(return)
426:422
02/12/08 21:21
>>425
exit(return)だったら実行できませんでしたがちょっと削ってexitにしたら閉じることができました。
ありがとうございました。
427:デフォルトの名無しさん
02/12/08 22:29
>>462
ごめん、(return) はなんとなくノリで。
DOS 窓の終了と同じ雰囲気で。
428:デフォルトの名無しさん
02/12/09 00:28
>424
DelphiはDelphi板で聞くのが良いよ。
429:デフォルトの名無しさん
02/12/09 03:00
>>425-426
Exitは関数や手続きを抜けるだけじゃない?
もちろんprogram .. begin .. end のレベルで実行すればプログラム自体を
抜けるけど。
どこでも即座に終了させたかったらHaltを使うべし。
430:425
02/12/09 18:03
>>429
ご指摘ありがとう。しばらくDelphi使ってないのでかなり忘れてました。
431:デフォルトの名無しさん
02/12/31 17:01
逆ポーランド記法をスタックをよういて実現したいのですが、プログラムがうまくかけません。
どなたか教えていただけないでしょうか?
432:デフォルトの名無しさん
02/12/31 18:15
よういて?
433:431
02/12/31 18:23
もちいてだっての バカ
434:デフォルトの名無しさん
02/12/31 18:45
用いる。
餅炒る。
モチ要る。
435:デフォルトの名無しさん
02/12/31 18:46
>>431
if (数字) {
スタックにpush;
} eles if(演算子) {
スタックから二つpopして演算;
結果をスタックにpush;
} else {
error;
}
436:IP記録実験
03/01/08 22:23
IP記録実験
スレリンク(accuse板)
1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
437:デフォルトの名無しさん
03/01/09 00:41
>>1
全板IP記録に追い込まれた今の気持ちをどうぞ。
438:デフォルトの名無しさん
03/01/09 01:01
記念カキコ
439:デフォルトの名無しさん
03/01/09 01:21
ひろゆきは架空の人物ですよ。
440:デフォルトの名無しさん
03/01/09 01:33
(´皿`;)邪穂でごめん
441:IP記録実験
03/01/09 02:08
IP記録実験
スレリンク(accuse板)
1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
442:デフォルトの名無しさん
03/01/09 02:08
>>540
逝き遅れの妹発見
443:デフォルトの名無しさん
03/01/09 02:45
>>50
タイプミス
スマソ
444:デフォルトの名無しさん
03/01/09 18:27
======2==C==H======================================================
2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 138720人 発行日:2003/1/9
年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。
そんなわけで、年末に予告したIP記録ですが実験を開始しています。
「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。
んじゃ!
────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
──────────────
Keep your thread alive !
スレリンク(software板)l50
──────────────
445:デフォルトの名無しさん
03/01/10 00:16
qbだけじゃなかったのか
446:デフォルトの名無しさん
03/01/10 09:04
モルモットにされたのか
447:デフォルトの名無しさん
03/01/10 11:02
もうちょっと電波度下げよう。意味不明になりすぎてる
448:デフォルトの名無しさん
03/01/10 11:32
厨房板の荒らしは削除されたようだ
いつか全板で強制表示になるのだろうか?
スクリプトくめばどこの板だって荒らせるだろうし
449:デフォルトの名無しさん
03/01/10 12:18
実験のためにトオルに依頼されてコピペやってるって可能性もあるのか・・。
450:デフォルトの名無しさん
03/01/10 12:47
>>936
それは当然考えてはいますが、小ネタやちょっとした意見を書き込むときにもそれを
意識しなくてはならないというのはしんどい
451:デフォルトの名無しさん
03/01/10 13:01
FreePascalはマルチプラットフォームであることを忘れているに、1Penis
452:デフォルトの名無しさん
03/01/10 13:45
つーかちょっと北朝鮮や朝鮮総連を批判しただけでログから身元割れたりしないか心配。
奴ら何しでかすかわからない凶悪な連中だからな。
ログってひろゆきしかみれないのか?
削除人が見れたら問題・・・以前削除に絡んで強請をした奴もいるらしいし
453:デフォルトの名無しさん
03/01/10 14:57
ふむ。
454:デフォルトの名無しさん
03/01/10 16:24
言いたいことも言えないこんな世の中じゃ
ウェー ハッハッハ
455:デフォルトの名無しさん
03/01/10 22:48
2chのIDてIPを変換してるんだっけ?
だったら、全板強制IDにして暗号キーだけ保存しておけばいいんじゃないの?
456:デフォルトの名無しさん
03/01/10 22:55
>>735
書き方がネタっぽすぎw
457:デフォルトの名無しさん
03/01/11 00:12
スレリンク(korea板)
在日のアサピーが自ら2CHにブラクラ貼ったと自白www
調子に乗ってアタック開始、しっかりログ取られて通報すました。
祭り中です。
458:デフォルトの名無しさん
03/01/11 00:20
夜勤 ★さんはなんでふだんはBG ★とかキャップを使い分けてるんですか?
459:デフォルトの名無しさん
03/01/11 09:42
削除板に書き込む時いちいち設定し直すのが面倒臭いから
460:デフォルトの名無しさん
03/01/11 09:45
元々パク(ry
461:デフォルトの名無しさん
03/01/11 10:16
======2==C==H======================================================
2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 139038人 発行日:2003/1/10
なにやら、連日メルマガだしてるひろゆきです。
そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。
重くなって落ちたりしてもご愛嬌ってことで。。。
んじゃ!
────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
──────────────
Keep your thread alive !
スレリンク(software板)l50
──────────────
462:デフォルトの名無しさん
03/01/11 11:13
フェミホモ荒らしが来なくなるなら
まあいいか。。。
悪いことをする気はなかったど、なんだか
夢がなくなるな。
なんつーか、手口のきれいな銀行破りが
捕まっちゃったみたいな気分。
463:デフォルトの名無しさん
03/01/11 13:15
まあ、匿名じゃなきゃできんような自由な言論なんてたかが知れてるしな。
今までの2ちゃんみてりゃ一目瞭然。
匿名のかさをきて暴言はいてる奴らが減っていいかも。
464:デフォルトの名無しさん
03/01/11 16:02
じゃ、おまえが2ch来なければ良い。それだけのこと。
465:デフォルトの名無しさん
03/01/11 16:07
ウェー ハッハッハ PART 2
スレリンク(news板)
466:デフォルトの名無しさん
03/01/12 00:09
ネオむぎを超えるわけない
犯人が17歳以下なら話は別だが
467:デフォルトの名無しさん
03/01/12 00:18
中国の漬け物ですか?(^_^;)
468:デフォルトの名無しさん
03/01/12 10:32
231 >判決文にISP責任法への配慮とかいうちゃんちゃらおかしい文面が書いてなけりゃ
253 >>どうも昔から、下級審の裁判官は余計なことを書きたがる。
お前ら判決文を読んだのか? 被告がISP責任法を根拠に削除義務違反はないと主張したから書いてるんだよ。
URLリンク(courtdomino2.courts.go.jp)
469:デフォルトの名無しさん
03/01/12 21:08
IP取るようになったら些細なことでも訴えられるかもな。
ここまで話題性の在るサイトだし。
IP取ってるんだから今までは『訴えても意味無い』って諦めてた
人たちも訴えるようになるかもね。
基本的に訴えられるのは書き込みした人だろうけど、
その様な場所を提供したって事実に変わりは無いから
今まで以上に2chも訴えられるかも…。
推論スマソ
470:デフォルトの名無しさん
03/01/12 21:11
削除前の手続きの話なんで、発信者の責任の話とはまぜないで欲しいが。
471:デフォルトの名無しさん
03/01/12 21:23
辞書登録してみた⇒夜勤さん!! ヘ(^^ヘ)(ノ^^)ノ
472:デフォルトの名無しさん
03/01/13 01:22
3 6 1 4 2 5 をクイックソートで整列させるにはどうしたらいいですか?
473:山崎渉
03/01/13 18:26
(^^)
474:デフォルトの名無しさん
03/01/13 19:20
今GNUパスカルを使って勉強しているんですが
freeパスカルとの違いは何かあるんですか?
使える文法が違う、みたいな
475:デフォルトの名無しさん
03/01/13 22:14
405 名前:心得をよく読みましょう 投稿日:02/12/31 11:04 ID:ADTGAx9x
はぁぁぁ。あと、1週間以内で生理・・・。
何事にもむかついてたまらないっ!
生理前って、ブルーになったり、いらいらしたり。。。
ほんと勘弁してって感じ。
476:山崎渉
03/01/15 17:52
(^^)
477:デフォルトの名無しさん
03/01/19 02:08
constって何なんですか?
478:デフォルトの名無しさん
03/01/19 19:22
たしかサリエヌの友人だったと思います
479:デフォルトの名無しさん
03/01/20 12:53
>>477
const {定数}
BUF_SIZE = 32768;{ Buffer Size = 32768 (8000h) }
Ver: string[3] = '1.0';
定数の事かと…
var {変数}
argc: integer;
argv: string;
i,k,l: integer;
480:山崎渉
03/01/23 21:53
(^^)
481:477
03/01/26 02:18
>>479
すいません
なかなか書き込むひまがありませんでした
レスありがとうございました
482:デフォルトの名無しさん
03/01/28 10:04
URLリンク(www.makie.com)
Mac用だがここで紹介されているThinkPascalってどうよ?
少しやってみたが、英版なのでエディタで日本語が表示できん・・・
483:デフォルトの名無しさん
03/01/29 00:31
CarbonLibは使えるんだろうか
484:デフォルトの名無しさん
03/01/30 12:01
上のリンク見る限りでは無理そうだね。
別途コード戦士が必要みたい。
でもそれだったら最初からコード戦士でやった方が良い罠。
485:デフォルトの名無しさん
03/02/02 04:46
>>484
これでいけるのではないでしょうか。
Carbonized Port of THINK Pascal TCL
URLリンク(pascal-central.com)
486:デフォルトの名無しさん
03/02/02 05:03
test
487:デフォルトの名無しさん
03/02/04 11:45
>>298が全然わかんねぇ…(´д`;)
488:デフォルトの名無しさん
03/02/05 18:31
const
hexcode: array[0..15] of char = ('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
function HexStrB(num:byte):string;
begin
hexstrB:=hexcode[lo(num) shr 4 ]+hexcode[lo(num) and $f] ;
end;
ten := ' ';
num := 0;
repeat
writeln(HexStrB(buf[num]) + ten + HexStrB(buf[num+1]) + ten + HexStrB(buf[num+2]) + ten + HexStrB(buf[num+3]) +
ten + HexStrB(buf[num+4]) + ten + HexStrB(buf[num+5]) + ten + HexStrB(buf[num+6]) + ten + HexStrB(buf[num+7]) +
ten + HexStrB(buf[num+8]) + ten + HexStrB(buf[num+9]) + ten + HexStrB(buf[num+10]) + ten + HexStrB(buf[num+11]) +
ten + HexStrB(buf[num+12]) + ten + HexStrB(buf[num+13]) +
ten + HexStrB(buf[num+14]) + ten + HexStrB(buf[num+15])));
inc(num,$10)
until (num = $200);
489:デフォルトの名無しさん
03/02/06 10:33
おお、神!(´д`;)アリガ㌧
490:デフォルトの名無しさん
03/02/10 20:53
Pascalって実用性無いのに勉強しても平気でしょうか?
491:デフォルトの名無しさん
03/02/11 03:47
えーと…、まあ、これからやるならやめときなさい。
Eiffelをお薦めしよう。
492:レイホウ@6歳
03/02/13 04:49
>>490
C++を勉強しなさい
C#はだめだぞ
Gnu CppならLinuxでも使用可能だ
えいめ~ん
493:デフォルトの名無しさん
03/03/08 12:55
はげしくホッシュ
494:デフォルトの名無しさん
03/03/08 13:23
>>490
Pascalを勉強する価値がないとしたらそれは
実用的では無いからではなく時代遅れだから。
昔は教育用言語として教えられてはいたけど
今ではJavaとSchemeに取って代わられたよ。
495:デフォルトの名無しさん
03/03/08 13:23
と、一ヶ月前のレスに混じれ酢してみました。
496:デフォルトの名無しさん
03/03/29 11:11
10年程前にPC-DOS+Turbo Pascal 7で作ったプログラムを動かしたいのですが、困ったことに最近のパソコンはEMSメモリが使えないものが多いのです。
新型パソコンでEMSメモリ使用可能なものがあったら教えてください。
497:デフォルトの名無しさん
03/03/29 11:14
DOS 上で動かすか、エミュレータ上で動かせば。
498:デフォルトの名無しさん
03/03/29 11:21
>>496
DOS5.0の時とかXMSをEMM386でEMSに化けさせてたと記憶してるけど。
499:デフォルトの名無しさん
03/04/01 21:59
496です。
497さん498さんレスありがとうございます。
>DOS 上で動かすか、エミュレータ上で動かせば。
ハードの問題なのでどちらの方法でも動かないのでは?
システムコマンダーでWinとDosのデュアルブートにするつもりなのですが
500:デフォルトの名無しさん
03/04/01 22:08
>>499
間を取ってWindows3.1とかどうだ?
って言うかVMWareでも使った方が楽ちんな予感。
501:デフォルトの名無しさん
03/04/01 22:21
EMS だけの話なら EMS をエミュればOK!
昔やった記憶があるが具体的には忘れた。
ただ楽するなら、500(おめ!)さんの
言うようにVMWareでも使った方がいい。
502:デフォルトの名無しさん
03/04/02 09:02
現在Pascal勉強中の初心者です。
Pascalって実用性が無いんですか?
CGIをやるのに適してるって聞いたんだけど・・・
503:デフォルトの名無しさん
03/04/02 12:48
趣味でやるぶんにはかまわないでしょ。
504:デフォルトの名無しさん
03/04/02 14:04
実用性はあるが、CGIってのは多分Perlと混同してる(w
Pure Pascalじゃなくて有償版Delphi/Kylixなら高機能なCGIも作れないでもない
505:デフォルトの名無しさん
03/04/02 23:07
>Pure Pascalじゃなくて有償版Delphi/Kylixなら高機能なCGIも作れないでもない
アホがいます。
506:デフォルトの名無しさん
03/04/02 23:14
WebSnapとかIntraWebとか、まあ知らないなら知らないでいいけどさ
507:デフォルトの名無しさん
03/04/03 06:10
>>506
何でもかんでもライブラリがないと何もできないかわいそうな人がいます。
508:ななしへたぐらま ◆XcB18Bks.Y
03/04/12 16:13
こういう書き込みの後でなんですが,
Cのscanfに相当する機能を実現する関するのライブラリって
どこかにありませんでしょうか.
以前自作したのですが作りが下手なのか処理が重すぎて….
テキスト解析はちゃんと本を読んで勉強しないとダメかな.
509:デフォルトの名無しさん
03/04/12 20:05
>>508
> Cのscanfに相当する機能を実現する関するのライブラリって
> どこかにありませんでしょうか.
scanf のソース見てポーティングすればいいとおもうけど。
可変引数の扱いをどうするかが問題かと思うが。
510:デフォルトの名無しさん
03/04/12 20:58
>>509
オープン配列とかで何とかならない?
511:山崎渉
03/04/17 15:47
(^^)
512:ななしへたぐらま ◆XcB18Bks.Y
03/04/22 22:42
>>509-510
レスが遅くなってごめんなさい….
scanfのソースは探してみます.ありがとうございます.
ちなみに可変引数は前に作ったときは配列型で対応していました.
var指定が出来なかったのでポインタを渡す仕様にしていました.
513:デフォルトの名無しさん
03/04/25 04:18
JIS PASCAL水準1準拠の処理系ってありませんか。
またpacked array[0..7] of booleanを1バイトに詰め込んでくれたり、set of 0..256が書けたりするのも…。
どれも実装が面倒なんだろうか…
514:bloom
03/04/25 04:26
URLリンク(homepage.mac.com)
515:デフォルトの名無しさん
03/04/25 04:40
そういえば規格では set of Charが集合の最大サイズでしたっけ。
ってことはCharがWideCharになるDelphi.NETではset of 0..65535が可能に!?
516:513
03/04/25 05:05
そうかset of charが集合の最大サイズなのか…
JIS規格書が会社なんで確認できないな。
基底型は任意の順序型だと思っていた。
517:デフォルトの名無しさん
03/04/25 05:17
>>502
実用性がないとかまことしやかに言われていますが、そんなことはないです。
CGI は、言語が標準入力と標準出力をサポートしていれば、どんな言語でも可能です。
518:デフォルトの名無しさん
03/04/25 05:44
URLリンク(www.gnu.org) より:
GNU Pascal は Borland Pascal 7.0 という「標準のようなもの
(quasi-standard)」だけでなく、ISO 7185 Pascal Standard を完全に
サポートしている唯一のコンパイラです。
519:デフォルトの名無しさん
03/04/25 05:46
>>517
適用範囲を限定すればJIS PASCALでも実用性が見いだせるということですね
逆に何らかの拡張を施さないと適用範囲は広がらないと。
520:513.
03/04/25 06:05
>>518
ありがとう。
危うく自前でコンパイラ作りそうだったよ。
GNU PASCAL検討してみます。
521:デフォルトの名無しさん
03/04/25 06:11
CodeWarrior Pascal
packed array[0..7] of booleanを1バイトに → 出来る。
set of 0..256が書けたり → set of 0..2047までOK。 (256byte)
THINK Pascal
packed array[0..7] of booleanを1バイトに → 不可
set of 0..256が書けたり → set of -32768..32767までOK。
522:デフォルトの名無しさん
03/04/25 06:14
>>519
JIS Pascal と厳密にやると、分割コンパイルができないなど不便はありますが、
JIS/ISO 互換でやりたいなら、Turbo Pascal や Delphi のようなものを使って、
分割コンパイルは拡張機能を利用し、コード自体は、できる限り JIS/ISO 標準で
書くということなら、ISO C 言語程度の実用性は出てきます。
Turbo Pascal や Delphi が完全に ISO/JIS に準拠しているわけではありませんが、
かなり標準 Pascal の文法をサポートしています。
この本は、Turbo Pascal や JIS/ISO 標準 Pascal その他の文法に差異があるところに
注釈が入っていてよい本です。
演習PASCALとその応用
URLリンク(www.saiensu.co.jp)
523:デフォルトの名無しさん
03/04/25 06:25
>>513
手元の Linux に入っていた GNU Pascal 2.95.4 でやってみましたらできるようです。
サンプル・ソース:
program iso(input, output);
var
a : packed array[0..7] of boolean;
b : set of 0..65535;
begin
writeln('hello');
end.
gpc -o iso iso.p
とやったら、
iso.p:5: warning: integer set size limited to 65535 elements from low bound
iso.p:5: warning: use `--setlimit=NUMBER' to change the limit at compile time
と出たので、
gpc --setlimit=65536 -o iso iso.p
としたら、エラーも警告もなくコンパイルできました。
動作は未確認ですが (^^
ちなみに、GNU Pascal は cygwin を使えば Windows でも動きます。
524:動画直リン
03/04/25 06:26
URLリンク(homepage.mac.com)
525:デフォルトの名無しさん
03/04/25 06:30
こうしてみるとDelphiって基礎部分が貧弱ですねぇ。
確か標準ってオープン配列で
procedure A(const B: array[L..H] of Integer);
なんて構文も使えませんでしたっけ?
526:513.
03/04/25 06:44
>>521
ありがとう
最近の処理系は制限が少しずつ取れてきてるのですね
packed set of -maxint..maxintはどうだろう。
コンパイル出来ても実行は出来なくて当然だとは思うが…
CのビットフィールドとPASCALの詰めあり構造型の性質がそっくりなのは偶然?
527:デフォルトの名無しさん
03/04/25 06:45
あ、でも packed array[0..7] of boolean は 2 バイトになりました。0..15 まで
2 バイトで、0..31 は 4 バイト。これじゃだめですかね。
オプション指定もあるのかもしれませんが。
528:デフォルトの名無しさん
03/04/25 06:46
>>527
GNU Pascal でのことです。
529:デフォルトの名無しさん
03/04/25 06:55
GNU Pascal マニュアルでつ。
URLリンク(www.gnu-pascal.de)
530:513.
03/04/25 06:58
>>527
多分それは各要素に不定値を表すビットが含まれているんじゃないかと。
531:デフォルトの名無しさん
03/04/25 07:04
GNU Pascal で c : set of -10..65535; とおりました。
532:デフォルトの名無しさん
03/04/25 07:05
>>530
単に2byte単位でしか割り当て出来ないだけのような
533:513.
03/04/25 07:14
>>530
そういわれればそうだな。はやとちりでした。
実行環境に適切な境界迄余分なバイトが詰められるのは構わないです。
534:デフォルトの名無しさん
03/04/25 07:26
URLリンク(www.k-514.com)
535:デフォルトの名無しさん
03/04/25 08:09
GNU Pascal で set -65535..65535 は gpc --standard-pascal --setlimit=131071 でとおりました。
536:521
03/04/25 08:28
訂正;THINK Pascalでもpacked array[0..7] of booleanは1byteでした。
>>526
>packed set of -maxint..maxintはどうだろう。
>コンパイル出来ても実行は出来なくて当然だとは思うが…
maxintが32767なのでTHINK Pascalでコンパイル&実行できます。
集合はもともと1bit扱いなのでpackedがついてもつかなくても
変数のサイズは同じです。
エラトステネスのふるいで素数を求めるプログラム、
set of 0..maxint (32767)でコンパイル&実行できました。
最後の3つの素数 = 32717 32719 32749
537:デフォルトの名無しさん
03/04/25 08:52
>>536
エラトステネスのふるいって、集合型でどうやるんですか?
0 から n までの配列を用意して、素数なら true、合成数なら false にしていく、
というものだと思うんですが。
538:別人
03/04/25 08:59
set of Xもarray[X] of Booleanも、言語仕様上はともかく役割としては変わらないよ。
配列で A[i] → 集合で i in A
A[i] := True → Include(A, i)
A[i] := False → Exclude(A, i)
Adaなんか開き直ってBoolean配列に集合演算の能力持たせてるし。
539:デフォルトの名無しさん
03/04/25 09:07
やってることは配列を使うのと大差ない。
はじめに[2,3,4,5,6..maxint]という集合を用意しておいて
nの倍数を集合から除去していくだけ。
540:デフォルトの名無しさん
03/04/25 11:12
エラトステネスのふるい、集合型バージョン。こんなんでできました。
コンパイル・コマンド: gpc --standard-pascal --setlimit=65536 -o primenumber primenumber.p
program primenumber(input, output);
const
n = 65535;
var
prime : set of 0..n;
i : integer;
j : integer;
begin
prime := [0..n];
for i := 2 to n do
if prime >= [i] then
begin
j := i + i;
while j <= n do
begin
prime := prime - [j];
j := j + i;
end
end;
for i := 2 to n do
begin
if prime >= [i] then
writeln(i);
end
end.
541:デフォルトの名無しさん
03/04/25 11:16
空白が崩れた。スマソ。
program primenumber(input, output);
const
n = 65535;
var
prime : set of 0..n;
i : integer;
j : integer;
begin
prime := [0..n];
for i := 2 to n do
if prime >= [i] then
begin
j := i + i;
while j <= n do
begin
prime := prime - [j];
j := j + i;
end
end;
for i := 2 to n do
begin
if prime >= [i] then
writeln(i);
end
end.
542:デフォルトの名無しさん
03/04/25 11:32
>>541
&ensp;の嵐で何が書かれているのかさっぱりわからん。
543:デフォルトの名無しさん
03/04/25 12:02
>>542
あれ、そうですか。私 Opera なんですけど、大丈夫です。
ブラウザ依存なんでしょうか。すみません。
544:デフォルトの名無しさん
03/04/25 12:03
>>543
IE 6 では大丈夫です。
545:デフォルトの名無しさん
03/04/25 12:44
そうそう、>>541 の結果ですけれど、最後の 3 つは、65497、65519、65521 でした。
546:513
03/04/26 02:07
型T=set of 0..maxintの各元表記全体からmaxint+1ビットの符号無し整数への1対1写像は定義できるよな?
もし定義できるのならinteger型の範囲は遙かに越えてしまうな
で、更に(有限)整数上の加法と一致するように型T上の加法をうまく定義して…(略)
普通はintegerの配列で実現する多倍長整数とは一風変わった整数(環)が出来そう
これをリストに持たせてもっと大きな数に対する~のふるいが…
工夫しないとメモリ不足になりそうだな
或いはset of -maxint..maxintを基数2の固定小数点表現とみなすのも面白そうだ
体調が回復したらやってみよう
547:デフォルトの名無しさん
03/04/29 18:56
We Love Pascal.
548:山崎渉
03/05/22 05:01
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
549:山崎渉
03/05/28 12:52
∧_∧
ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎―◎ 山崎渉
550:デフォルトの名無しさん
03/05/28 21:24
URLリンク(community.borland.com) のTP5.5のとこからTurboPascalのOOP入門が落とせる。
AppleのObject Pascalレポートの名前が書いてあるので、
やっぱObjectPascal="object"型のあるPascal、でいいらしい。
だからどうした、と言われると困るが
551:デフォルトの名無しさん
03/06/13 17:06
良スレの予感
552:デフォルトの名無しさん
03/06/26 22:36
その教科書のどこかにある list 型構造体の定義を見直してみてくれ。
553:デフォルトの名無しさん
03/07/03 18:50
Lazarusの落とし方がわからん...
554:デフォルトの名無しさん
03/07/03 20:20
初心者から質問です
10人分の学生の成績データを打ち込み、
次に10点区切りでヒストグラムを出力するプログラムを書こうとしています。
現在ヒストグラムの作り方がちとわかりません。どんな形のヒストグラムでもいいのでプログラムソースを教えてもらえないでしょうか?
555:デフォルトの名無しさん
03/07/03 20:34
if (点数 => 0) and (点数 < 10) then ヒストグラム[1] := ヒストグラム[1] + 1;
if (点数 => 10) and (点数 < 20) then ヒストグラム[2] := ヒストグラム[2] + 1;
...
と並べて書くとか。
556:デフォルトの名無しさん
03/07/03 20:39
>>554
学校の課題だろうと思うんで、ここでいきなり答えを書くのはちょっとね。
自分でどこまでやったん?
557:デフォルトの名無しさん
03/07/03 20:43
PROGRAM Histogram;
VAR
data: ARRAY[1..5] OF INTEGER;
i, j: INTEGER;
BEGIN
data[1] := 0; data[2] := 1; data[3] := 4; data[4] := 2; data[5] := 1;
FOR i := 1 TO 5 DO
BEGIN
Write('Fraction ' + IntToStr(i) + ':');
FOR j := 1 TO data[i] DO
Write('*');
WriteLn;
END;
END.
558:デフォルトの名無しさん
03/07/03 20:43
まず、「ヒストグラム」とは何か、わかっているか。
プログラムの流れとしては
(1)データの入力
(2)集計
(3)ヒストグラムの出力
に分かれるわけだが。
559:デフォルトの名無しさん
03/07/03 20:48
スマソ>556
560:デフォルトの名無しさん
03/07/03 22:42
集合型はフラグくらいにしか使ったことなかったけど
なかなかエレガントな使い方があるものだね
感心しますた
561:デフォルトの名無しさん
03/07/11 15:43
学校の課題で『ブラックジャック』作ることになったんですが
どなたか、教えていただけませんか。
562:デフォルトの名無しさん
03/07/11 21:34
>561
取り敢えず「手塚治虫」で検索しとけ。
563:デフォルトの名無しさん
03/07/12 23:44
>>561
カードゲームなら実際のカードを使って一人遊びすれば必要な構造が見えてくるぞ。
564:デフォルトの名無しさん
03/07/13 00:06
一人遊び? ハァハァ
565:名無し@沢村
03/07/13 00:08
>>562
取りあえずじゃねーんだよ!!
おまいはタンスとかあってなっとらんぞ!!!
URLリンク(jbbs.shitaraba.com)
566:デフォルトの名無しさん
03/07/13 00:11
A U T H O R D A T A
本田 守さん
--------------------------------------------------------------------------------
名前
本田 守/ほんだ まもる
ハンドル
Mr.あねさん
ホームページ
URLリンク(www2.neweb.ne.jp)
URLリンク(hp.vector.co.jp)
MESSAGE
プログラムの勉強をはじめて1年とちょっとになります。まだまだ高度なものを作るには程遠いですが、先だっては某社のプログラミングコンテストに入賞させていただきました。
--------------------------------------------------------------------------------
S O F T W A R E
--------------------------------------------------------------------------------
Windows95/98/Me/アミューズメント
●KIKU おど~る
音楽CDをかけるとキャラクターが踊ります
567:デフォルトの名無しさん
03/07/13 03:20
集合型にシフト演算子があったらなぁ
568:デフォルトの名無しさん
03/07/13 05:41
それは集合なのか?
569:デフォルトの名無しさん
03/07/13 12:46
ビットの集合です
570:ななしへたぐらま ◆XcB18Bks.Y
03/07/13 14:37
>>562
あの漫画の題名はトランプのそれとは無関係だそうです.
…じゃなくて,どうしてプログラミングを教えている学校の先生は
生徒の理解度を無視してこういう課題を出すのか理解に苦しみます.
とりあえず>561はじゃんけんゲームは作れますか?
571:561
03/07/14 00:38
>570
もちろん作れません
何かヒントでもいいんでおねがいします。
572:デフォルトの名無しさん
03/07/14 08:12
>>571
ゲームのルールをよく吟味して場にある有形、無形のものを列挙してみんさい
573:デフォルトの名無しさん
03/07/14 09:00
カードをとってくる関数と
勝敗を判定する関数と
手に持ったカードを表示する関数と
入力を受け付けてカードをとるか終了するか決める関数を書けばいい。
574:デフォルトの名無しさん
03/07/14 11:30
データ構造決めなきゃ片手落ち
575:デフォルトの名無しさん
03/07/14 13:50
綺麗なお姉さんのパイパンおま○こ生写真を発見!
URLリンク(plaza16.mbn.or.jp)
これはタマラン…(´Д`;)ハァハァ
576:561
03/07/14 14:05
>>573
関数が使っている教科書にあまり載ってないんで
何かいいサイトあったら教えてください
577:ななしへたぐらま ◆XcB18Bks.Y
03/07/14 14:46
>>571
簡単なゲームプログラムを解説したサイトか入門書を見つけてみて.
やりたい処理をプログラムというカタチにするというのは一番基本的な能力であり,
一つや二つのヒントで解決する問題ではありません.
でもこれさえクリアすればプログラミングは半分マスターしたようなものです.
578:デフォルトの名無しさん
03/07/14 16:06
ルール見たけど結構複雑。ま、そこまで要求してないのかもしれんが。
「無限デック使ってます」って言えばカードの残り考えなくてもすむかも。
(ハートのAが10枚出てきても知らんふり。)
579:山崎 渉
03/07/15 09:45
__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
580:デフォルトの名無しさん
03/07/23 20:52
良スレ保守
581:デフォルトの名無しさん
03/07/24 18:19
Pascalの集合型と混同してるのかな。このプログラムは集合型は関係ないよ。
582:デフォルトの名無しさん
03/07/25 01:14
どのプログラム?
583:デフォルトの名無しさん
03/07/27 17:35
URLリンク(grape.astron.s.u-tokyo.ac.jp)
ここの練習1なんですが、どのように回答するのがスマートなんでしょうか。
学生番号用のソート手続きをもうひとつ加えて場合分けするのはあまりよくないような気がするんですが、
他に思い浮かばないんです。
584:デフォルトの名無しさん
03/07/27 21:04
比較用関数を複数作って関数ポインタで切り替えて使う。
585:デフォルトの名無しさん
03/07/27 21:06
ソート用の手続きをつくる。
引数は点数でソートするか学生番号でソートするかを示す。
「student_record」と「ソートの引数」を引数にとる関数をつくる。
返り値は点数か、学生番号。
この関数をつかってソートをつくる。
あんまり効率よくなさそうだけど。
586:デフォルトの名無しさん
03/07/27 21:45
function CompareTensu(var S1, S2: student_record): Boolean;
function CompareBango(var S1, S2: student_record): Boolean;
って比較する関数を適当に作って。
var
Compare: function(var S1, S2: student_record): Boolean;
begin
if 点数でやるなら then
Compare:=CompareTensu
else
Compare:=CompareBango;
あとはCompareで比較してソートで良いと思うよ。
end;
587:デフォルトの名無しさん
03/07/27 22:45
iアプリ作りたいんですけどどーしてよいか・・
作成講座ページ紹介してください。
あと質問なんですが、これだけでも作れますか?ブロック崩し(505対応版)
win98(HSPダウンロード済み)
588:デフォルトの名無しさん
03/07/27 22:51
iアプリはi-mode Javaでしょ。
HSPじゃ無理。
DoCoMo Net - 製品・サービス - i-mode - iアプリコンテンツの作成について
URLリンク(www.nttdocomo.co.jp)
589:583
03/07/27 23:14
なるほど。ありがとうございます。
>>585と>>586の手法は同じではないですよね。
かなり参考になりました。
ですが、585さんの
>ソート用の手続きをつくる。
>引数は点数でソートするか学生番号でソートするかを示す。
これを具体的にどうしたらよいのかぜんぜんわからないんです・・・
例題だと、
if student[i].score < student[j].score then begin
で点数で比較してますよね。
これを点数だけではなく番号でも比較できるにするためにはどうしたらいいのでしょうか。
590:デフォルトの名無しさん
03/07/27 23:29
procedure sort(x: ...);
...
if hoge(student[i], x) < hoge(student[j], x) then begin
って書いて、hogeも書く。
591:デフォルトの名無しさん
03/07/27 23:40
>>589
比較部分を関数にするだけだって
function CompareTensu(var S1, S2: student_record): Boolean;
begin
CompareTensu:=(S1.score < S2.score);
end;
function CompareBango(var S1, S2: student_record): Boolean;
begin
CompareBango:=(S1.id < S2.id);
end;
で>>586のようにCompareTensuとCompareBangoのどっちか使いたい方をCompare変数に入れる。
どっちの比較方法を使うかはコマンドラインオプションで切り替えたりすると良い。
例えば
Compare:=CompareTensu;
for I:=1 to ParamCount do
begin
if ParamStr(I)='/b' then
begin
Compare:=CompareBango;
Break;
end;
end;
でコマンドラインに/bを付ければCompareが番号で比較、付けなければ点数で比較になる。
あとは
if Compare(student[i], student[j]) thenに変えて終わり。
Delphiで動作確認済み
592:デフォルトの名無しさん
03/07/27 23:55
if (x = Tensu and student[i].score < student[j].score) or
(x = Bango and student[i].id < student[j].id) then begin
ってベタに書いてもいいし。
条件式を関数にまとめて
if x = Tensu then Result := student[i].score < student[j].score
else if x = Bango then Result := student[i].id < student[j].id
else Result := false;
とか。(case文忘れてしまったよ)
593:デフォルトの名無しさん
03/07/28 00:35
なるほどなるほど。
かなりよくわかりました!
ここは本当にすごい人が来るんですね。
驚きました。
594:デフォルトの名無しさん
03/07/28 00:47
すごくはないよ。基本的なことだし。
動的な関数を作りたいなと思って
Pascalの上で実現してしまったとかならすごいと思うけど。
595:デフォルトの名無しさん
03/07/30 12:17
Lazarusの落とし方知ってるひといますか?
596:デフォルトの名無しさん
03/07/30 14:39
「ハノイの塔」とやらの問題解決プログラムを教えて下さい。
本気で何がなにやら・・・。
597:デフォルトの名無しさん
03/07/31 10:50
procedure Hanoi(n: interger; from, to, via: hoge);
begin
if n = 1 then
.... from から to へ一枚写す
else begin
hanoi(n-1, from, via, to);
hanoi(1, from, to, via);
hanoi(n-1, via, to, from);
end
end;
598:596
03/07/31 21:32
どうもありがとうございます。
なんだかエラーが沢山出るんですけど、貼り付けるだけじゃ駄目なのでしょうか。。。
厨ですみません。
599:デフォルトの名無しさん
03/07/31 22:51
hogeと
.... from から to へ一枚写す
のところをきちんとかかないとダメ。
hogeを文字列にして
移動を表示するようにするとか。
writeln(from + 'から' + to + 'へ移動');
Pascalの細かいところ忘れたんで正しいかどうか解らないけど。
再帰するにはforwardとか要るような気もするな。
600:山崎 渉
03/08/02 02:15
(^^)
601:山崎 渉
03/08/15 16:21
(⌒V⌒)
│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
602:デフォルトの名無しさん
03/08/18 22:47
たまにはageて質問を。
標準的なpascalで、basicでいう
cls;
locate(10,10);
print "OK?";
みたいなのは出来ますか?
603:デフォルトの名無しさん
03/08/18 23:26
page(output);10個のwriteln(output);10個のwrite(output,' ');
っていうのは後戻りできない上に上書きしてしまうから無理だな。
cursesみたいに1画面分の2次元配列を取ろうかともおもたけど、画面の大きさを取る方法はJIS-PASCALにはない。
処理系依存の機能を仮定しないと無理っぽい。
604:デフォルトの名無しさん
03/08/19 00:00
無理ですか。
あ、そっか。画面の大きさが分からないから、
1ページ分書き直してスクロールアップ
するのも無理だ。うーむ。
605:デフォルトの名無しさん
03/08/19 08:47
プログラムパラメタに画面の大きさを渡してもらえばいいんだった。
program curses(input, output, ScreenWidth, ScreenHeight);
var
ScreenWidth: integer;
ScreenHeight: integer;
Screen: packed array[1..256, 1..256] of char; {こんだけあったら大抵間に合うでしょ}
procedure cls;
procedure locate(x: integer; y: integer);
procedure print(packed array[u..v] of char);
procedure reprint;
ってどう?
606:デフォルトの名無しさん
03/08/19 12:55
そういう手もあるか。
でも、画面の大きさを取得するのに、処理系毎の
工夫が必要。つーか、無理な場合もありそうな予感。
それよりも、独自に拡張して、cls, locateなどを
処理系毎に作るのが良いような気がしてきた。
・・・でも、それやってると、キリがないし、
実力の範囲を超えそうです。
607:デフォルトの名無しさん
03/08/19 21:10
画面制御ライブラリを1つだけ用意する。
実体は各処理系に移植されたC言語のcursesライブラリを呼び出すだけ。
外部ライブラリの実装方法に規格上、規定はないのでやりたい放題。
cursesが移植されていない処理系はライブラリの仕様を公開してユーザーに任す。
というのは駄目?
608:デフォルトの名無しさん
03/08/22 00:10
標準的なPascalの文字変数ってstring[255]ですよね?
で、var s:string[255]; という状態で、
1行ずつreadln(f,s); で読んでいくとして。
もしも1行の長さが255バイト以上だったら、
どうなるんでしょう。
アホな質問ですみません。
609:デフォルトの名無しさん
03/08/23 00:26
後ろの方がカットされます。
610:デフォルトの名無しさん
03/08/23 05:32
1行が255バイト以上の行を含むテキストファイルの読み込みは、
どうしたら良いのでしょう?
611:デフォルトの名無しさん
03/08/23 05:53
DelphiでもFreePascalでも、大抵は長い文字列を持ってるんじゃないかな…。
無いならChar単位で読むとか。
612:デフォルトの名無しさん
03/08/23 09:49
初心者質問ですいません。
Dev-pascalはどうやってアンインストールするのでしょうか?
リードミーに載ってないんですが・・・。
613:デフォルトの名無しさん
03/08/23 10:28
>>610
var
f: text;
s: string[255];
begin
while not eoln(f) do
read(f, s);
readln(f);
end
614:610
03/08/23 22:26
>>611
Delphiの無限とも言える長さの文字列は、
便利で良いですねぇ。しかも、CommaTextで
自動的にCSVを切り分けてくれるし。(日本語対応で)
でも、今はちょっと長い文字列は無理みたい。
というか、やりたいのはCSVの読み込みなんですけど、
ひょっとしたら1行を一度に読み込むんじゃなくて、
1文字ずつ分析して、項目を切り分けながら
読み込む方が良いのかな?
ひょっとして、アルゴリズムって、公開されてる?
615: ◆R/rLuLKeEI
03/08/27 02:02
>>614
>ひょっとして、アルゴリズムって、公開されてる?
理論的には有限オートマトン、正規表現、字句解析、構文解析などを検索すれば、いいんじゃないかな。
CSV形式をうまく構文(文法)に書き下す事が出来れば、ある程度形式的にプログラムに落す方法があるよ。
616:デフォルトの名無しさん
03/08/27 02:10
>>614
C#のでよければ。なんとなくは分かると思うよ。
URLリンク(onigiri.s3.xrea.com:8080)
617: ◆R/rLuLKeEI
03/08/27 02:44
>>616
そだね、CSVごときに有限オートマトンとか大袈裟だったな。
で、これは日本語対応?
618:デフォルトの名無しさん
03/08/27 03:15
C#に日本語非対応なコードなど無い。
619:デフォルトの名無しさん
03/08/27 04:41
無知の知ったか。
620:デフォルトの名無しさん
03/08/27 09:04
>>602
ANSIエスケープシーケンスを使う
621:610
03/08/27 10:13
>>620
おおっ!忘れていたが、何か画期的なアイデアに思える。(w
と、思ったが、調べてみたらこう書いてあった。
>どの文字列をエスケープシークエンスとして解釈するかは
>ソフトウェアによって千差万別であり、統一された規格の
>ようなものが存在するわけではない。
(T^T)
>>615,616
ありがとうございます。それをきっかけに調べてみます。
622: ◆R/rLuLKeEI
03/08/29 00:54
>どの文字列をエスケープシークエンスとして解釈するかは
>ソフトウェアによって千差万別であり、統一された規格の
>ようなものが存在するわけではない。
なのに、「ANSI【アメリカ規格協会】」を冠しているのが不思議。
623:620
03/08/29 07:37
「ANSIエスケープシーケンス」は>>602へのコメントだよ。
0x1b(ESC)で始まる文字列をコンソールに送ることで
画面、コンソールの位置、文字の色等を制御するもの。
624:デフォルトの名無しさん
03/08/29 07:39
>>623
s/コンソールの位置/カーソルの位置/
625:610
03/08/29 10:52
一応、CSVを切り分けられるコードは書けた。
C#の>616のコードは読めなかったので、
適当に考えてやってみた。だけど、""→"に
するのとか、漢字コードのチェックとか
やってないし、変なCSVを回避するのも
できないし、拡張性が無いコードになって
しまっている。
626:デフォルトの名無しさん
03/08/29 12:26
Delphiのコンパイラ使おうぜ。
627:デフォルトの名無しさん
03/08/29 19:24
>>622
ANSIエスケープシーケンスも知らないコテハンか。
時代だな。
628: ◆R/rLuLKeEI
03/08/30 03:46
>>627
>ANSIエスケープシーケンスも知らないコテハンか。
>時代だな。
時代ですね。
ANSIエスケープシーケンスは全く知らないわけでもない。
しかし、ここ何年も直接記述したことがないので、すっかり忘れてた。
>>602
Cマガジン1992/5, p.36, Table7(古っ!)によると、全画面消去のESC[2Jとカーソル位置指定のESC[m;nHは当時のどのPCでも共通のようだ。
MINIX本第2版図3-36やhtermでもこの二つは共通でした。
しかし、psterm-fast端末のカーソル位置指定は0x4m;n;などと全然違っていたりする(linuxのtermcapより)。
と、慌てて調べても後の祭。
629:610
03/08/30 07:35
Cのソースを見ながら、CSV切り分け書いてるんだけど。
Cだとbreak,continueとかで、loopを跳んだり、
文をキャンセルするので、全然参考にならん。
630:デフォルトの名無しさん
03/08/30 14:09
同じように書けば良いじゃん。
631:610
03/08/30 16:21
無理じゃん。
break, continueが使えるか使えないかで、全然変わるよ。
とりあえず、フラグを追加して、似たような動作を確保。
""→"にするのも出来たし、"なし文字列のスペースを
取り除くのも出来た。変なCSVでなければ、概ね基準通り
切り分けられるようになった。
632:デフォルトの名無しさん
03/08/30 16:40
>>631
えっ…
ひょっとして、DelphiやFreePascalにあるSystem.Breakは、独自拡張!?
633:610
03/08/30 17:13
>>632
知らなかったのか低能(ワラ
634: ◆R/rLuLKeEI
03/08/30 18:31
>>631
>無理じゃん。
>break, continueが使えるか使えないかで、全然変わるよ。
break文、continue文はラベル無しgoto文といわれるように、これらは等価なラベル有りgoto文に変換可能です。
>>632
DelphiやFreePascalのBreak、Continueが手続きであることの方が吃驚!
知らなかった私も低脳かえ?
635:610
03/08/30 20:04
>633は別人だが。
>>634
もちろん、goto文を使うことも考えたけど、
なんか邪道っぽくない?
ちなみに、うちのはTHINK Pascal。
636: ◆R/rLuLKeEI
03/08/30 22:06
>>635
PASCALで大域ジャンプ以外にgotoを使うのは邪道っぽい。
ちなみに、うちのはGNU Pascal。
ただし、JIS-PASCAL(X3008-1990)の範囲内で考えている。
637:610
03/08/30 22:25
macの場合、NewHandleやNewPointerでメモリーを
確保した場合、メモリー確保に失敗したら
OSErrで分かるんだけど。
標準pascalのnewでメモリー確保に失敗したら
どうなるの?というか、その判別方法は?
638: ◆R/rLuLKeEI
03/08/30 23:06
>>637
>標準pascalのnewでメモリー確保に失敗したら
>どうなるの?というか、その判別方法は?
JIS-PASCAL(X3008-1990)には何の記述もない。
必ず成功するかのようにも読める。
というわけで、その判別方法はない。
1.2 規定外事項
(1) 特定のデータ処理システム又は処理系が処理できるプログラム及び
データの大きさ又は複雑さの限界並びにそれらの限界を超えた場合の措置。
639:デフォルトの名無しさん
03/09/01 02:23
>635
・continue はループの先頭に戻る
・breakはループを脱出
でいいの?
だったらTHINK Pascalでは
・ループ(for,while,repeat)の先頭に戻る → cycle
・ループ脱出 → leave
だけど。
他に関数・手続きからの脱出 → exit(関数/手続き名)
というのもある。入れ子になった関数/手続きから一気に抜ける事も出来る。
640: ◆R/rLuLKeEI
03/09/01 04:25
・continue はループの最後に飛びます(C++第2版リファレンスマニュアルr.6.6.2)
641:610
03/09/01 13:34
>>639
ほんとだ・・・あった・・・。サンクス
標準Pascalの本を見ながらやってたので、気づかなかった。
THINK Pacal入門の後ろの方に、ちらっと載ってた。
あとこれでCとの違いといえば、case文の挙動が
ちょっと違う事くらいか。
642:デフォルトの名無しさん
03/09/12 12:33
例えば、'tarou'と入力させて、
tarouという名前の変数か、
tarouという添え字の配列を作って、
tarou[rika]:=100;
とか代入するには、どうすればいい?
643:デフォルトの名無しさん
03/09/12 13:11
できません。
644:デフォルトの名無しさん
03/09/12 16:25
じゃあ、tensuuは固定の名前で、
name:='tarou';
kamoku:='rika'
tensuu[name,kamoku]:=100;
kamoku:='eigo'
tensuu[name,kamoku]:=90;
とかは?
645:デフォルトの名無しさん
03/09/12 16:47
連想配列かあ。純粋なPascalじゃ無理かもね。
拡張構文使っていいならやりようはあるけど。
646:デフォルトの名無しさん
03/09/12 19:06
そうそう。連想配列。無理か・・・。
似たようなことは出来ない?
つまり、プログラム自体は一定で、
データの構造次第で変数を増やしたり
減らしたり、参照したり、したい。
いっそ、独自のスクリプト言語を
Pascalで作る方法を考えた方がいいか・・・。
647:デフォルトの名無しさん
03/09/12 21:07
連想配列そのものじゃなくても
type Tensuu = record Name, Kamoku: string; Tensuu: Integer end; の配列かリンクリストでいいのでは?
SetTensuu(list, name, kamoku, 90); みたいに使えるアクセサ関数を用意しとけば不便ってこともないでしょ。
Delphiなら、配列プロパティとかカスタムバリアントで構文上連想配列作れるけど