[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 2chのread.cgiへ]
Update time : 11/30 08:14 / Filesize : 280 KB / Number-of Response : 889
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Pascalの宿題は俺にやらせろ!!Part2



1 名前:デフォルトの名無しさん mailto:sage [2006/01/12(木) 00:45:25 ]
教育用(?)プログラムPascalの宿題をやって頂くスレ

■丸投げOK
■全く分かってない阿呆も放置しないで優しく対応
■他言語はよそ逝け( ゚Д゚)ゴルァ
■DelphiもTurbo Pascalも完全対応

【本家】

www.borland.co.jp/delphi/

【前スレ】

pc8.2ch.net/test/read.cgi/tech/1089719714

【関連スレ】

くだすれDelphi(超初心者用)その15
pc5.2ch.net/test/read.cgi/tech/1087823906/l50

Pascal の初心者用の質問・相談所
pc5.2ch.net/test/read.cgi/tech/1009903617/l50

【Delphi初心者】今から始めるDelphi Part01
pc5.2ch.net/test/read.cgi/tech/1062422335/l50


390 名前:デフォルトの名無しさん [2006/07/22(土) 13:26:54 ]
これpascalにしてください。
ime.st/zetubou.mine.nu/itoshiki/nozomu/zetubou26032.txt

391 名前:デフォルトの名無しさん mailto:sage [2006/07/23(日) 07:33:13 ]
ime.st のまま貼るなよ

392 名前:デフォルトの名無しさん mailto:sage [2006/07/26(水) 12:25:21 ]
Pascalでプログラムの実行実時間を調べるコマンドがわからないのですが、
誰かご存知でしょうか?

393 名前:デフォルトの名無しさん mailto:sage [2006/07/26(水) 20:23:22 ]
開始時と終了時に時間を取得して差を求める

394 名前:デフォルトの名無しさん mailto:sage [2006/07/31(月) 05:26:56 ]
WindowsならtimeGetTimeがms単位で測定できる。

395 名前:774RR [2006/08/31(木) 20:25:00 ]
やっとXcodeでFPC走るようにしたよん。記念にたまにはあげよう。

>394
それが信頼できるかはまた別物。リアルタイム処理を今のビジネス/ホビー用パソコンでやるのは
かなり無理があるよ。

DOSでTurbo Pascal使った方がいいくらい。

396 名前:デフォルトの名無しさん mailto:sage [2006/08/31(木) 20:27:43 ]
で?

397 名前:デフォルトの名無しさん mailto:sage [2006/09/13(水) 15:24:53 ]
Turbo Delphi で Pascal のコンパイルは出来ますか?

398 名前:デフォルトの名無しさん mailto:sage [2006/09/16(土) 00:17:39 ]
できます



399 名前:デフォルトの名無しさん [2006/10/06(金) 04:12:13 ]
integerで扱える範囲を越えた数値を代入すると、
誤った値を返したりすることってありますか?
また、そういうことを防ぐ、というかせめて
間違った値が出るということを予測できるといいなあと思うのですが

どういう文献を調べればよいのかも教えていただけると助かります!

400 名前:デフォルトの名無しさん mailto:sage [2006/10/06(金) 15:33:01 ]
integerの範囲を超えないように注意することで防げます。

401 名前:デフォルトの名無しさん mailto:sage [2006/10/06(金) 15:49:03 ]
ふつうは例外が出ると思う

402 名前:デフォルトの名無しさん [2006/10/06(金) 17:51:51 ]
>>400

integerの範囲?

403 名前:デフォルトの名無しさん mailto:sage [2006/10/06(金) 23:07:14 ]
low(integer)..high(integer)

404 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 03:38:29 ]
引数のパラメータにconstを付けるのは、どういう意味(違い)があるのですか。
varなら分かりますが。

405 名前:デフォルトの名無しさん mailto:sage [2006/10/08(日) 12:49:14 ]
const も var も参照渡しだが、constは値の変更ができない。

406 名前:デフォルトの名無しさん [2006/10/15(日) 21:14:10 ]
すんません
手元にパスカルないんですけど
パスカルにおける論理式が真の時の返り値って
1でしょうか、それともー1でしょうか?


407 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 21:47:39 ]
実装によりますが-1が多いです。

408 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 21:51:18 ]
True です。



409 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 22:26:48 ]
>>407
いやdelphiでもfpcでもord(true)は1だろ。

410 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 23:30:28 ]
PInteger(@b)^ だと $FFFFFFFF

411 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 23:42:31 ]
BooleanとIntegerではバイト長が異なるのでそのキャストは無意味

412 名前:デフォルトの名無しさん mailto:sage [2006/10/15(日) 23:57:14 ]
PByte(@b)^ だと $FF

413 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 00:18:18 ]
>>408が正しいと思う。論理式は論理値しか返さないから、true
もしくはfalseしかない。1か-1かで比較すると「型が違います」と
怒られる。

414 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 00:47:39 ]
Booleanは順序型だよ

415 名前:デフォルトの名無しさん [2006/10/16(月) 00:56:54 ]
だから何?

416 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 01:21:44 ]
全ての順序型は数値とと互換性がある

417 名前:デフォルトの名無しさん [2006/10/16(月) 01:24:20 ]
そう。良かったね。

418 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 01:28:51 ]
>>413
ord使えよ



419 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 01:33:50 ]
それで?

420 名前:デフォルトの名無しさん mailto:sage [2006/10/16(月) 09:04:17 ]
>>406
0以外としか定義されてないよ。だからどっちかは風任せ

421 名前:774RR mailto:sage [2006/10/16(月) 18:02:05 ]
言語としては>408が正解だろう。
実装としては>420の言う通り取説嫁としかいいようがない。

fpcだと
boolean - false : 0 / true : 1
bytebool, wordbook, longbool - false : 0 / true : 0以外のなんでも
となっている。

422 名前:デフォルトの名無しさん [2006/10/17(火) 00:16:06 ]
ふーん、それが何か?

423 名前:デフォルトの名無しさん [2006/10/26(木) 17:14:30 ]
ユーグリッド互除法のプログラムを変更することにより正整数x、yを読み取りux+vy=gcd(x,y)
を満たす整数の組(u,v)を一つ出力するプログラムを作れ。ただし配列は用いない。

わからないのでお願いします!

424 名前:423 [2006/10/26(木) 17:42:23 ]
program gcd(input, output);
var x0, y0, x, y, w, a1, b1, a, b, q1, u, v : integer;
begin
readln(x0, y0);
if (x0 > 0) and (y0 > 0) then begin
x := x0; y := y0; a := 1; b := 0;
while x <> 0 do begin
w := y mod x; y := x; x :=w;
q1 := y0 div x0;
a1 := b - q1 * a;
b := a;
a := a1
end;
u := b;
v := ( y - u * x0 ) div y0;
writeln('gcd(', x0:1, ', ', y0:1, ') = ', y:1);
writeln('(u,v)=(', u:1, ',', v:1, ')')
end
end.

こう作ったんですけど、x、yの値が大きくなると正しく動きません。
添削してください。

425 名前:デフォルトの名無しさん [2006/11/14(火) 02:20:00 ]
ポインタを使った2つの線形リストにそれぞれアルファベットを入れて、
その2つの共通部分を別の線形リストに入れて出力するプログラム

を書きたいのですが、よくわかりません。
まず、線形リストに文字を入力して、それを出力するだけのプログラムを
書いたのですが、コンパイルはできるものの実行すると無限ループになります。
何がいけないのかご指摘いただけると助かります。

↓↓つづく↓↓

426 名前:デフォルトの名無しさん [2006/11/14(火) 02:20:58 ]
program intersection(input,output);

type
pointer = ^celltype;
celltype = record
element : char;
next : pointer;
end;

var
listA,listB,listC : pointer;
x : char;



427 名前:デフォルトの名無しさん [2006/11/14(火) 02:22:42 ]
procedure insert(var p : pointer; a : char);

var
q : pointer;

begin
new(q);
q^.element:=a;
q^.next:=p;
p:=q;
end; { insert }

procedure print(p : pointer);

begin
while p<>nil do begin
write(p^.element,' ');
print(p^.next)
end
end; { print }


428 名前:デフォルトの名無しさん [2006/11/14(火) 02:24:02 ]
begin
readln(x);
while x<>'.' do begin
insert(listA,x);
readln(x)
end;
if listA^.element<>'.' then begin
print(listA)
end;
writeln();
dispose(listA)
end.





429 名前:デフォルトの名無しさん mailto:sage [2006/11/14(火) 02:45:11 ]
>while p<>nil do begin
>write(p^.element,' ');
>print(p^.next)
>end

pが変化してないようだが。while→ifじゃ無いか?


430 名前:デフォルトの名無しさん [2006/11/14(火) 02:57:57 ]
>>429
ifにしたらうまくいきました!!
逆順に出力されるけど・・・

共通要素を探す手続きのほうもがんばって作ってみます。
ありがとうございました。

431 名前:デフォルトの名無しさん [2006/11/14(火) 22:31:52 ]
で、その共通要素を探す手続きなのですが・・・
これのどこがだめなのかご指摘願います。

procedure search(var p,q,r : pointer);

var
found : boolean;

begin
while p<>nil do
begin
found:=false;
while q<>nil do
begin
if p^.element=q^.element then found:=true
else q:=q^.next
end;
if found then
begin
new(r);
insert(r,p^.element)
end;
p:=p^.next
end
end; { search }




432 名前:デフォルトの名無しさん [2006/11/14(火) 22:35:54 ]
あと、メインプログラムで

if listA^.element<>'.' then begin
print(listA)
end;

とありますが、このif文て必要ないですよね?
それから、listA,Bについてnewしてないのですが、これって問題あります、よね?
なぜか値が格納されてるみたいなのですけど・・・




433 名前:デフォルトの名無しさん [2006/11/15(水) 01:20:23 ]
age

434 名前:デフォルトの名無しさん mailto:sage [2006/11/15(水) 13:37:51 ]
リストに要素の重複は無いんだな。

>procedure search(var p,q,r : pointer); 
p,qは呼び出し元の値を変えんな。var取れ。

>if p^.element=q^.element then found:=true 
>else q:=q^.next 
ifが真の時、q:=q^.nextは実行されない(無限ループ)。

>new(r);
不要。

>とありますが、このif文て必要ないですよね? 
無い。

>listA,Bについてnewしてないのですが、これって問題あります、よね?
無い。むしろdispose(listA)しかしてないのが気になる。

435 名前:デフォルトの名無しさん [2006/11/21(火) 12:46:41 ]
>>434
大変遅ればせながらありがとうございます。
無限ループはどうすれば回避できるのでしょうか?
それから、なぜlistA,Bをnewしなくてもよいのでしょうか?
質問ばかりですいません

436 名前:デフォルトの名無しさん mailto:sage [2006/11/22(水) 01:04:41 ]
>>431
ある文字がリストにあるかどうかを調べる関数を作れば
解りやすくなると思う。


437 名前:デフォルトの名無しさん [2006/11/24(金) 22:39:39 ]
実数が格納されている配列があって、その実数を配列の最初から順に
足し合わせていく関数を作りたいのですが、以下の関数だとうまくいきません。
ご教授願います。

function wa(f:hairetu):real;{hairetuは100項ある実数型の配列}

var i:integer;

begin
for i:=1 to 100 do begin
wa:=wa+f[i];
i:=i+1
end
end



438 名前:デフォルトの名無しさん mailto:sage [2006/11/24(金) 22:45:05 ]
wa は何?



439 名前:デフォルトの名無しさん [2006/11/24(金) 23:25:39 ]
関数の名前です

440 名前:デフォルトの名無しさん mailto:sage [2006/11/24(金) 23:33:39 ]
function wa(f: hairetu): Real;
var
i: Integer;
sum: Real;
begin
sum := 0.0;
for i := 1 to 100 do sum := sum + f[i];
result := sum;
end;

こんなのはどうですか。

441 名前:デフォルトの名無しさん [2006/11/24(金) 23:37:47 ]
waに直接足し合わせていくのはだめなんですかね?
sumみたいな変数を用意しないとだめなんでしょうか?

442 名前:デフォルトの名無しさん mailto:sage [2006/11/25(土) 00:38:40 ]
じゃこれ。

function wa(f: hairetu): Real;
var
i: Integer;
begin
for i := 2 to 100 do f[1] := f[1] + f[i];
wa := f[1];
end;

wa := wa + f[i] とやると、右辺の wa はDelphiでは関数呼び出しと解釈されるから、無理。

443 名前:デフォルトの名無しさん [2006/12/03(日) 00:36:41 ]
配列に入れた値をヒープソートで絶対値とった小さい順にするプログラム教えてください。

444 名前:デフォルトの名無しさん mailto:sage [2006/12/03(日) 04:23:41 ]
ヒープソート難しいよ。

445 名前:某TA mailto:sage [2006/12/04(月) 22:36:21 ]
>>443
Wikipedia逝け
アルゴリズム載ってるから

446 名前:デフォルトの名無しさん mailto:sage [2006/12/05(火) 00:08:56 ]
>>445
そんなのもう見ました。

447 名前:デフォルトの名無しさん mailto:sage [2006/12/05(火) 03:55:22 ]
私もよく解らないけど、
配列を二分木のように解釈するみたい。
配列の先頭=二分木の根っこで、ここに一番大きい値を持ってくるみたい。

ここまではOK?

ttp://www.ics.kagoshima-u.ac.jp/~fuchida/edu/algorithm/sort-algorithm/heap-sort.html
ttp://su10.sgu.ac.jp/~morita/Seminar/6thStudent/entani/sort/heap/heap.html

448 名前:デフォルトの名無しさん [2006/12/11(月) 01:00:08 ]
実行時に0〜9以外のキーを入力した場合、
自動的に消えるようにしたいんだけどどうしたらいいかな?
わかる人いますか?



449 名前:デフォルトの名無しさん mailto:Tage [2006/12/11(月) 16:18:07 ]
何が消えるようにしたいの?

450 名前:デフォルトの名無しさん mailto:sage [2006/12/11(月) 23:30:37 ]
Editへの入力からじゃないかな。
ようは数値入力専用Editを作りたいのかと。
OnKeyDownイベントで、いらないキー入力は Key := 0; で無効に出来る。


451 名前:デフォルトの名無しさん [2006/12/13(水) 00:32:15 ]
448 ですけど、質問下手ですいません。
具体的に言うと、

program Keisan(input,output);
var a,b,wa:integer;
begin
a:=30;
writeln('数字を入力してください');
readln(b);
wa:=a+b;
writeln('a=',a,' b=',b);
writeln('a+b=',wa)
end.

で実行して、間違ってアルファベットとか打つとエラーになるでしょ?
そうじゃなくって「再度入力してくれ」と表示してもう一回って感じに
自動的に持ってきたいんです。
charでどのキーも入力OKにしてから0〜9を数値型に変換するのかなと
考えたんだけど、いまいちやり方わかりません

452 名前:デフォルトの名無しさん mailto:sage [2006/12/13(水) 00:51:47 ]
function ReadInt: Integer;
var
 S: strting;
begin
 repeat
  WriteLn('数字を入力してください');
  ReadLn(S);
 until TryStrToInt(S, Result);
end;

453 名前:初心者 [2006/12/16(土) 11:06:08 ]
すみません。学校でパスカルにちょこっとふれただけなのですが、課題がでて、もうどうしてよいか分かりません。
助けてください。
入力されたn個の数を大きい順に並び替えるプログラムを作れ。

お願いします。

454 名前:デフォルトの名無しさん mailto:sage [2006/12/16(土) 13:48:36 ]
n個の配列を用意して二重ループで大きい順に入れればいい。

455 名前:デフォルトの名無しさん mailto:sage [2006/12/17(日) 04:10:08 ]
こんなんどうだ?

function FindMax(A: array of Integer; Start: Integer): Integer;
var
 Max, I: Integer;
begin
 Max := Start;
 for I := Start + 1 to High(A) do
  if A[I] > A[Max] then
   Max := I;
 FindMax := Max;
end;

procedure Swap(var A, B: Integer);
var
 Temp: Integer;
begin
 Temp := A;
 A := B;
 B := Temp;
end;

procedure Sort(var A: array of Integer);
var
 I: Integer;
begin
 for I := 0 to High(A) do
  Swap(A[I], A[FindMax(A, I)]);
end;

456 名前:デフォルトの名無しさん mailto:sage [2006/12/19(火) 01:21:31 ]
GNU PascalをOS X上のXcodeで使ってます。
時間の計算をしたいと思いますが、如何すればいいですか?

457 名前:デフォルトの名無しさん mailto:sage [2006/12/19(火) 01:36:32 ]
求むエスパー

458 名前:デフォルトの名無しさん mailto:sage [2006/12/19(火) 03:02:53 ]
ミリ秒に変換して計算すれば良いと思う。



459 名前:デフォルトの名無しさん mailto:sage [2006/12/20(水) 02:21:31 ]
>>458
回答ありがとうございます。それでは、ミリ秒に変換するには如何すればよいのでしょうか。

460 名前:デフォルトの名無しさん mailto:sage [2006/12/20(水) 02:41:03 ]
何がしたいのか具体的に書かないと誰も答えられないよ。

461 名前:デフォルトの名無しさん mailto:sage [2006/12/20(水) 17:41:23 ]
1 sec = 1000msec
1 min = 60 sec
1 hour = 60 min

462 名前:光速エスパー世代774RR mailto:sage [2006/12/26(火) 17:59:23 ]
バッババババビューンと空を逝くw

463 名前: 【ぴょん吉】 【1736円】 mailto:sage [2007/01/01(月) 01:08:04 ]
さて、明けたことだし宿題やろ

464 名前:q [2007/01/21(日) 20:19:40 ]
[質問]
「上から○(円)が落ちてきて、
ウィンドウの1番下に達したら
その円は止まり、新しい円が
また落ちてくるプログラムを作れ
(ただしfor文を使うこと)。」
という宿題が出たのですが、
よく分かりません。

どなたか分かる方、教えて下さいm(__)m

465 名前:デフォルトの名無しさん mailto:sage [2007/01/21(日) 20:33:00 ]
やだ

466 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 00:04:54 ]
ヒント
Form1.Canvas, Ellipse, Timer, Form1.ClientHeight


467 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 00:20:44 ]
ここはいつからDelphiスレになったんだ?

468 名前:デフォルトの名無しさん mailto:sage [2007/01/22(月) 00:21:29 ]
あぁ、Delphiも対応であったか。失礼。



469 名前:デフォルトの名無しさん [2007/01/25(木) 19:06:01 ]
パスカルの入門書でおすすめありませんか?
www.saiensu.co.jp/books-htm/ISBN4-7819-0757-1.htm
これを買おうかな、と今は思っているのですが。

470 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 03:47:12 ]
やめとけ

471 名前:光速エスパー世代774RR mailto:sage [2007/01/26(金) 12:38:49 ]
つーか、今からPascalを勉強しようというのが… 授業かなんかかい?

Pascalの教科書は何冊か使ったけれど、てもとにあるのは森口さん他の
「Pascalプログラミング講義」(共立出版)
だ。これ、ちょっと内容が薄いかな。

思い出してみればボーランドのTurbo Tutorが結構優れた教科書だった。
TP5.5はフリーになってるけど、Turbo Tutorってネットに流れてない?

定番アルゴリズムは奥村さんのアルゴリズム事典で勉強したね。
ttp://oku.edu.mie-u.ac.jp/~okumura/algo/algo_pas.html

あれだ、今日びは言語自体より、(一昔前なら)API、(出るちゃん以降は)
コンポーネントの使い方の方が大事だってゆー、つまらないといえばつまらない
世の中になったもんだよ。

472 名前:469 mailto:sage [2007/01/26(金) 15:20:07 ]
いえ、授業ではなくてただの興味です。
レスありがとうございますm(__)m

473 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 00:53:01 ]
授業でないなら、その手の教科書本は初心者にはしんどいと思うよ。
興味を持ち続けられないと思う。


474 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 00:56:26 ]
Delphi言語や、教育目的、古いプログラムの保守は別として、
Pascalもまだまだ現役で使われてるんですか?

475 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 01:01:17 ]
全く。

476 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 09:25:11 ]
DelphiってもしかしてObjectPASCALのことですか?

477 名前:光速エスパー世代774RR mailto:sage [2007/01/28(日) 15:15:58 ]
>476
その辺は複雑で、ボーランドはBorland Pascal がサポートする言語を
Object Pascal と呼んでいた。Borland Pascalは消滅して、ご存知Delphiが現行なんだが、
これが実装している言語は今では「Delphi言語」と呼ばれているはず。

Delphi言語はプログラミング言語Pascalをオブジェクト指向を用いて
拡張したものだから、Object Pascalの一種であり、最も普及したものだね。
既にPascal言語の de facto standard といっていいと思う。

478 名前:デフォルトの名無しさん [2007/01/31(水) 11:03:06 ]
すいません、お初です。
学校課題でπの近似値を求めろ、言われました。マチンの公式使ってやってみようと思ったんですけど、数字を何乗かしたいとおもったっとき、使えるコマンドはあったでしょうか?
たとえば、2のN乗がしたいとき、read(n)で読み込んで、計算させたいということなんですけど。
教えてください。



479 名前:光速エスパー世代774RR mailto:sage [2007/01/31(水) 12:33:49 ]
標準的にはないけど、処理系のおまけでついている可能性がある。
なくても自分で書けばおっけー。

480 名前:デフォルトの名無しさん [2007/01/31(水) 12:54:08 ]
えーと、どうやれば書けますか?
ちょっと想像がつかないので教えてください。

481 名前:光速エスパー世代774RR mailto:sage [2007/01/31(水) 17:29:14 ]
再帰的な定義をそのまま実装(普通は末尾再帰→繰り返しにする)するか、
a ^ bのbが実数の場合は標準函数(だったよね)としてlnとexpがあることを利用すると、ln(a^b) = ln(a) * bだから a^b = exp(ln(a) * b)

冪乗の演算子/函数がないのに対数、指数関数があるというのがWirth先生。
以下FPCでテスト墨

Program PowerTest;
var a, b : real;

function power(a : real; b : integer) : real;
begin
if b > 0 then power := a * power(a, pred(b))
else if b = 0 then power := 1
else power := 1 / power(a, -b)
end;

function RealPower(a, b : real) : real;
begin
RealPower := exp(ln(a) * b)
end;

begin
write('a ^ b, a= , b= '); readln(a, b);
writeln(power(a, round(b)), ' ', RealPower(a, b))
end.


482 名前:デフォルトの名無しさん [2007/01/31(水) 18:38:46 ]
ありがとうございました。後はもう少し自分であがいて見ます。


483 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 09:10:23 ]
落ちてる?

484 名前:デフォルトの名無しさん [2007/04/14(土) 18:35:39 ]
GPCのバグを発見してしまったage

整数演算の結果がオペランドのビット巾で丸められちまう。

485 名前:デフォルトの名無しさん mailto:sage [2007/04/26(木) 06:38:45 ]
丸められるって?

486 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 23:59:09 ]
質問です。
大学入ってPascalプログラミングやってるんですが、
『選択ソートのプログラムを作成せよ。
ただし、データ数を最初に入力するように変更すること。
また、データ数は1個から最大10000個まで対応できるようにすること』
とあるのですが、サッパリです。
かなり初心者な質問で申し訳ないのですが、どなたか教えてください

487 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 00:09:14 ]
>ただし、データ数を最初に入力するように変更すること。

元のソースが無いと変更しようが無い。

488 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 00:44:47 ]
すみません。元のソースは

program sort(input,putput);
const numofdata=893;
var d: array [1..numofdata] of integer;
i,j,k: integer;
tmp: integer;
begin
for i:=1 to numofdata do
begin
read(d[i]);
end;

for i:=1 to numofdata-1 do
begin
j:=i;
for k:=i+1 to numofdata do
begin
if d[j]>d[k] then j:=k;
end;
tmp:=d[j];
d[j]:=d[i];
d[i]:=tmp;
end;

for i:=1 to numofdata do
begin
writeln(d[i])
end
end.

です



489 名前:光速エスパー世代774RR mailto:sage [2007/06/19(火) 13:02:24 ]
ほれ。FreePascalでテスト済み。

Program sort(input, output); (* putputってぉぃw *)
const numofdata = 893; (* 嗤いどころかこれ。これを10000に汁 *)
type dataindex = 1..numofdata;
var d: array [dataindex] of integer;
datanum : dataindex; (* データ数を貯めとく変数を用意するのが肝な *)
i, j, k: integer;
tmp: integer;
begin
write('n (max ', numofdata, ')= '); readln(datanum);
for i := 1 to datanum do read(d[i]); (* begin endブロックいらね *)
for i := 1 to pred(datanum) do begin
j := i;
for k := succ(i) to datanum do
if d[j] > d[k] then j := k;
tmp := d[j]; d[j] := d[i]; d[i] := tmp (* セミコロンいらね *)
end;
for i := 1 to datanum do writeln(d[i]);
writeln('...so modified and tested by 2channelers ;-)')
(* このまま提出するなよ *)
end.

490 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 14:51:42 ]
ありがとうございます!






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<280KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef