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
692 名前:デフォルトの名無しさん [2007/11/21(水) 23:05:49 ] 687の問題をお願いします。m(_ _)m
693 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 23:19:23 ] なぜインデントを下げないのか いくら宿題でもこれはひどい
694 名前:デフォルトの名無しさん [2007/11/21(水) 23:45:25 ] >>693 貼り付ける前はインデントしてるよ。2chの仕様で消えてるだけ。 前はインデントを再現するようにしてたが今は面倒なのでしてない。 まあ大した手間じゃないけどな。 ×4(&は半角)でタブを全置換するだけ
695 名前:デフォルトの名無しさん [2007/11/21(水) 23:51:16 ] >>693 Vimにコピペして gg=G これサイキョウ。
696 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 00:56:26 ] >>687 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5314.txt 課題は型を定義するだけだから必要なのはTypeの部分だけ、他はテストプログラム
697 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 01:03:04 ] >日付、学生氏名、職種、労働時間の3項目 どう見ても4項目あるんだが
698 名前:デフォルトの名無しさん mailto:sage [2007/11/22(木) 01:57:36 ] >>688 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5315.txt 処理の流れを考えないでプログラム組むからおかしくなるんだよな。 フロ−チャート書けとは言わないけど流れを良く考えて欲しい。 どうこう言える立場じゃないけどそう感じた。
699 名前:698 mailto:sage [2007/11/22(木) 02:17:40 ] >>688 偉そうな事を言って置きながら、重大なミスを見逃してましたよ。 >>698 はn,n1,n2が0だと平均値の計算でerrorを吐く。n,n1,n2が0の時は 平均値を計算せずに0とするようにしときました。もうミスは無いよな? ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5316.txt
700 名前:デフォルトの名無しさん mailto:sage [2007/11/25(日) 21:25:47 ] Pascalは現役なのに、子孫の方はアレだな。
701 名前:デフォルトの名無しさん [2007/12/01(土) 02:45:16 ] 大学の課題がわからないのでお願いします。 線形リスト上、スタックを使う問題なのですが @整数データを昇順に挿入する手続きを示せ。 A与えられた整数データを検索し、そのデータがリスト内にあれば削除する。 です。PUSHやPOPといった手続きを使うとのことですが、@の「昇順に挿入」 からして詰ってしまいました。 どうかお願いします。
702 名前:デフォルトの名無しさん [2007/12/04(火) 02:36:15 ] age
703 名前:デフォルトの名無しさん [2007/12/04(火) 15:36:14 ] 7マスのニムゲームの対戦プログラムを作成するので困っているので教えて下さい。 ちなみに規則は、プレイヤーは交互にマスに左端から書き込む。一度に書き込める マスの数は1〜3だそうです。 お願いします。
704 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 11:14:49 ] 初項がa、公差がbの等差数列をつくり、最初の20項を表示させる という内容のプログラムをつくりたいです。 お願いします。
705 名前:デフォルトの名無しさん mailto:sage [2007/12/16(日) 12:00:47 ] >>704 program prog1(input, output); var n,a,b : integer; begin write('初項a : '); read(a); write('公差b : '); read(b); for n := 1 to 20 do writeLn(n:3, (a+b*(n-1)):10); end.
706 名前:デフォルトの名無しさん [2007/12/16(日) 23:29:34 ] 日付データを入力したらその前の月の日付データを出力するプログラムを作りたいのですがよくわかりません。 12/16(日)だったら11/16(金)てな感じです。前の月に同じ日が無い場合はその月の最後の日のデータを出力する。 月と曜日は列挙型にしろとのことです。 よろしくお願いします。
707 名前:704 mailto:sage [2007/12/17(月) 21:14:25 ] >>705 ありがとうございます! しかしやってみたところ初項と公比を入力したあと画面が消えてしまうのですが・・
708 名前:デフォルトの名無しさん mailto:sage [2007/12/17(月) 22:56:34 ] >>707 コンソールから実行するか、For文の後に以下のコードを付け加えればOK write('整数を入力すると終了します'); read(a); 詳しい環境を書いて置けば誰かが他の解決策を提示してくれるかもな。
709 名前:704 mailto:sage [2007/12/19(水) 21:55:59 ] 解決できました。 これで来週の提出に間に合いそうです
710 名前:デフォルトの名無しさん mailto:sage [2007/12/23(日) 23:38:54 ] ダイアを描くプログラムですが、これを壁に当たれば入射角=反射角で跳ね返るように動かすことはできませんか? procedure TForm1.Button1Click(Sender: TObject); const max=50; procedure line(x1,y1,x2,y2:integer); begin canvas.MoveTo(x1,y1);canvas.lineTo(x2,y2) end; procedure dia(x0,y0,r,n:integer); var xs,ys:integer;{始点} xe,ye:integer;{終点} i,j:integer; {ループ変数} t:real; {角度} begin t:=2*pi/n; for i:=1 to n-1 do begin xs := x0 + round(r*cos(t*i)); ys := y0 + round(r*sin(t*i)); for j:=i+1 to n do begin xe := x0 + round(r*cos(t*j)); ye := y0 + round(r*sin(t*j)); line(xs,ys,xe,ye) end end end; begin dia(100,400,70,11) end; end.
711 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 01:24:03 ] 問題を分離しよう ・描いた図形を動かす ・壁に衝突した事を検出 ・角度とか わからんのはどれよ
712 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 12:54:18 ] >>711 嫌われる技術系の見本だな。出来るか出来無いか聞かれているんだから 出来る、出来無いで答えてやればいい。出来るならコードを添えると好感度UP
713 名前:デフォルトの名無しさん mailto:sage [2007/12/24(月) 22:41:40 ] >711 書いた図形を動かすのはできるのですが、あとの二つができません。
714 名前:デフォルトの名無しさん mailto:sage [2007/12/26(水) 08:15:07 ] だったらくだらねえカキコしないでおめーが書きゃいいだろ、フルソース厨の>>712 さんよ。
715 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 11:53:47 ] グラフィックの宿題です。 ボールの大きさが変化しながら動いていくプログラムを作りたいのですが、初心者で全くお手上げです。 お願いします。
716 名前:デフォルトの名無しさん [2008/01/16(水) 19:49:40 ] p2cコンパイラをcygwin環境で使う場合どのようにすればいいんですか?
717 名前:デフォルトの名無しさん mailto:sage [2008/01/16(水) 20:02:05 ] >>715 円を描くことは出来るんだよね? だったら、 1、前回の中心と半径を覚えておく 2、次の半径と、中心座標を求める。 3、前に描いた円を消す。 それには前に描いた中心、半径で 背景と同じ色で塗ればいい。 4、新しい半径と中心の違う円を描く、 5、Sleepとかでお休みする。 これで許してくれるだろ。 チラツクとか言われたら困るが
718 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 10:24:09 ] 正三角形を描くプログラムを教えてください。
719 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 11:41:57 ] DelphiのVCLを使えるの? なら procedure PaintAngle(Canvas:TCanvas;x0,y0,r0,deg:Integer); var w:Extended; i:Integer; pt:array [0..2] of TPoint; begin w:=PI/180.0*deg; for i:=0 to 3-1 do begin pt[i].x:=round(x0+r0*sin(w)); pt[i].y:=round(y0+r0*cos(w)); w:=w+2*PI/3; end; Canvas.Polygon(pt); end; //試験コード var x0:Integer=200; y0:Integer=200; r0:Integer=100; deg:Integer=0; ///////////// タイマーを貼り付けてダブルクリック procedure TForm1.Timer1Timer(Sender: TObject); begin Invalidate; deg:=deg+10; end; ///////////// フォームのOnPaintに procedure TForm1.FormPaint(Sender: TObject); begin PaintAngle(Canvas,x0,y0,r0,deg); end;
720 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 01:03:54 ] >>719 VCLなしバージョンをお願いしたいです・・
721 名前:デフォルトの名無しさん mailto:sage [2008/01/26(土) 02:58:54 ] >>720 計算部分は書かれてるんだからあとは何とでもなるだろ
722 名前:デフォルトの名無しさん [2008/01/28(月) 14:36:07 ] 配列でDELETE(p,L)をするプログラムを教えてください。
723 名前:デフォルトの名無しさん mailto:sage [2008/01/29(火) 19:54:19 ] ではまずDELETEとpとLを定義してください。
724 名前:デフォルトの名無しさん [2008/02/04(月) 16:36:18 ] 丸投げオッケーすか?
725 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 16:46:48 ] やってみればいいと思うよ。 出題側もこのスレ見てる筈で、 あなたは十分過ぎるリスクを背負ってるわけだから、 その勇気まで否定するものではない。
726 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:29:02 ] >>724 このコードを改造してくださいとか、やり方教えてくださいと 言う依頼より丸投げの方が良いな。 【質問テンプレ】 [1] 授業単元: [2] 問題文(含コード&リンク):() [3] 環境 [3.1] OS: (Windows/Linux/等々) [3.2] コンパイラ名とバージョン: (Delphi6、FreePascal、GNU Pascal等) [3.3] GUI/CUI: (GUI:ウィンドウにボタンなどがあってマウスで操作するタイプ) (CUI:殺風景な画面に文字が表示されるタイプ) [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) [5] その他の制限: (どこまで習っているか、使用/使用禁止ライブラリ等)
727 名前:デフォルトの名無しさん [2008/02/07(木) 02:53:41 ] 探索ニ分木で、tree型の変数tが指している節の2つ上の親を表したい時はどうすればよいのでしょうか。
728 名前:k [2008/05/21(水) 11:43:07 ] 元金M円と年利率xを端末から読み込み、M円を年利率xの複利で預けたときの1〜20年後の元利合計を計算して出力するプログラムなんですが・・・ program Fukuri(input,output); {複利計算} const Gankin= ; Nensu = ; var riritu, gokei : real; begin write(output, '利率は?'); readln(input, riritu); gokei :=Gankin *exp(Nensu *ln(1+riritu)); writeln(output, Gankin:1, '円を' , *riritu:3:1, '%の利率で' ,Nensu:1, '年預けると',gokei:4:2,'円となる') end. ここまでやったんですが・・・式がわかりません教えてください。
729 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 11:52:29 ] 複利といっても、 log /exp 使っていいの? 手計算とあわせるなら円単位で丸める必要はないの? で式が判りませんって、どういう意味?
730 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 12:21:44 ] 別に日割りとか必要はないんだろ? そうなら単純に繰り返し文使えば良いんじゃないのか?
731 名前:k [2008/05/21(水) 17:29:39 ] 1〜20年というのを繰り返し文でやるってことですか?
732 名前:デフォルトの名無しさん mailto:sage [2008/05/21(水) 20:25:59 ] うん for 文使って M := M*(1+x/100) を繰り返すといい ただ 小数点以下が出て来るから、これをどう丸めたらいいの?
733 名前:k [2008/05/21(水) 22:11:50 ] for文はどこにどうやってすればいいんですか?小数点はそのままでいいと思います。 へたにroundとかつかうと自分はわからないんで。。。
734 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 00:09:48 ] program Fukuri(input, output); {複利計算} var riritu, kingaku: Double; Nensu: Integer; begin write(output, '利率は?'); readln(input, riritu); write(output, '金額は?'); readln(input, kingaku); writeln(output, kingaku: 4: 2, '円を', riritu: 3: 1, '%の利率で'); for Nensu := 1 to 20 do begin kingaku:=kingaku+kingaku*riritu/100; writeln(output, Nensu: 1, '年預けると', kingaku: 4: 2, '円となる') end; end.
735 名前:k [2008/05/22(木) 15:40:39 ] ありがとうございます。まだたくさんあるんですが・・・
736 名前:k [2008/05/22(木) 19:48:31 ] 正整数Nを読み込み、x^2≦N<(x+1)^2となる整数x、つまり√Nの近似値を求めるプログラムを、 sqrtなどの標準関数を使わないで作りなさいという問題なんですが。。。 わかりません。教えてもらえませんか?√のプログラムってなにをすればいいんでしょうか?
737 名前:デフォルトの名無しさん mailto:sage [2008/05/22(木) 21:15:32 ] Delphiスレでサンプルコード書いてやったし 方法も書いてあげたでしょ?
738 名前:k [2008/05/23(金) 17:12:51 ] すみません・・・よくわからなかったんで。
739 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 17:18:30 ] よくわからなかったら別スレに投げるのか? 常識的には同じスレに質問するものじゃないのか。
740 名前:デフォルトの名無しさん mailto:sage [2008/05/23(金) 19:41:00 ] ああ $ ついた文字は何かって質問か? ようするに整数の最大値の平方根までループすれば十分って事だ で、pascalはループ抜けたらループ変数は不定だから ホントは i を返すのは間違えている。 で、奇数を合計するのは昔は掛け算が遅かったからやってた事で 別に今なら x*x と比較したって同じだ。 順に x*x と比較してゆけばいい
741 名前:k [2008/05/23(金) 21:57:09 ] 詳しい説明ありがとうございます。でも自分には難しすぎます。 まだ全然習ってないことがたくさんで。。。
742 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 07:21:44 ] はあ、で、どこが判らないんだ?
743 名前:り [2008/05/24(土) 12:19:18 ] (1)2次方程式x2(二乗)+3x+k=0が異なる2つの実数の解をもつとき、定数kの値の範囲を求めよ。 (2)2次方程式x2(二乗)−2x+a−1=0が実数の解をもたないとき、定数aの値の範囲を求めよ。 (3)一個180円のケーキと一個240円のケーキを合わせて10個買い、代金を2000円以下にしたい。240円の ケーキをできるだけ多く買うとすれば、240円のケーキは何個買えるか。(消費税は考えない) (4)A町から20キロメートル離れたB町へ行くのに、自転車で時速12キロメートルで走っていたが、途中 で自転車が故障したので、それからは時速4キロメートルで歩いたところ、B町に着くまでの所要時 間は3時間以下であった。自転車が故障したのは、A町から何キロメートル以上の地点か。 (5)一の位の数が6である2けたの自然数で、十の位と一の位の数の和を4倍すると、もとの数より大き くなるものがある。 十の位の数をxとして不等式を作り、このような自然数をすべて求めよ。
744 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 12:50:54 ] それpascalの問題なのか?
745 名前:k [2008/05/24(土) 15:39:18 ] あの問題はもう諦めます。ありがとうございました。 次はこの問題で・・。 n 正整数Sを端末から読み込み、初めて1/i≧SとなるNを求めるプログラム なんですが・・・ i=1 狽フプログラムってなにをするんですか?
746 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 16:51:26 ] 取り憑かれちゃってるな。 実装はスレの性質上仕方ないがアルゴリズムも数学知識も人任せか。 そしてひとの説明を理解しようとする気さえないときてる。
747 名前:デフォルトの名無しさん mailto:sage [2008/05/24(土) 17:04:51 ] Σの部分は function kansu(n:Integer):double; var i:Integer; begin Result:=0; for i:=1 to n do Result:=Result+1/i; end; になる。 これをループで呼び出して s と比較して大きくなれば終了とやればいい
748 名前:k [2008/05/24(土) 21:44:54 ] すみません・・・あとは自分で頑張ってやります。 function、double、Resultとかまだ習ってないのでわからないんです。 たぶん使わないでできると思うんですが・・・ とりあえず教科書読みながらやってみます。ありがとうございました。
749 名前:デフォルトの名無しさん [2008/05/25(日) 19:39:47 ] 標準入力から1行分だけ入力した文字が母音であるかを判定し、その下に(-)を付けるプログラミングを書きなさい。 ただし行の最後にはピリオドが入力されるとする。 <実行例> I am a pen. - - - - おそらくordを使うと思うんですが、まったく分かりません。 お願いします。
750 名前:デフォルトの名無しさん mailto:sage [2008/05/25(日) 20:07:11 ] var s: string; i: Integer; begin ReadLn(s); for i := 1 to Length(s) - 1 do if s[i] in ['a', 'i', 'u', 'e', 'o'] then Write('-') else Write(' '); end.
751 名前:デフォルトの名無しさん [2008/05/30(金) 02:25:58 ] 正方行列に対して、P,L,Uを与えるoctaveのプログラムを作成せよ。 お願いします。
752 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 10:55:40 ] PLUってなんだ? 定義が出てないぞ。
753 名前:751 [2008/05/30(金) 13:27:00 ] 申し訳ありません。 Pが置換行列、Lが下三角行列、Uが上三角行列です。 お願いします。
754 名前:デフォルトの名無しさん mailto:sage [2008/06/09(月) 01:23:14 ] [l, p, u] = lu(A) 以上。
755 名前:デフォルトの名無しさん [2008/06/12(木) 15:28:24 ] a[1..n]を昇順で整列するプログラムを直接挿入整列、直接選択整列の二通りで作成せよ お願いします。
756 名前:デフォルトの名無しさん [2008/06/25(水) 11:40:29 ] 横入りすいません 学校の課題で、パスカルで課題が出たんですがさっぱりわかりません;; 教えてもらってもいいですか?
757 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 15:43:02 ] いいですよ。
758 名前:756 [2008/06/25(水) 16:53:39 ] バカなんで1から教えてください;; 今日の夜12時ぐらいに問題文うpします
759 名前:デフォルトの名無しさん mailto:sage [2008/06/25(水) 21:35:35 ] 何様なのだ!
760 名前:デフォルトの名無しさん mailto:sage [2008/06/26(木) 13:04:36 ] バカは努力すべきだ
761 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 22:45:18 ] 学校でパスカルやってるけどパスカルの限界を感じ始めた・・・ めんどくてもいいからまともなゲームの一つでも作れないのこの言語・・・
762 名前:デフォルトの名無しさん mailto:sage [2008/07/02(水) 23:25:06 ] うちの大学の課題が大量にあってワロタw
763 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 17:22:17 ] >>761 素のpascalは厳しいかもしれないけど DelphiやLazarusなら出来るでしょ。
764 名前:デフォルトの名無しさん mailto:sage [2008/07/03(木) 19:21:54 ] Port[ ]、PortW[ ]、MemW[ ]の解説お願い。 ググってみても分らん。
765 名前:デフォルトの名無しさん mailto:sage [2008/07/04(金) 19:56:51 ] Port/PortW は I/O 命令 でしょ? それは 16bitの頃の奴じゃないのか? 今そんなの使ってるの? 環境は何?
766 名前:デフォルトの名無しさん [2008/07/07(月) 12:26:26 ] カエサル暗号とは、各文字をアルファベット順で3つ後の文字に置き換える暗号方式である。 カエサル暗号を拡張し、標準入力から入力された数字だけ平文の文字をずらす暗号化を実現せよ。 平文(暗号化前の文章)が書かれたファイルを入力とし暗号化されたものを出力ファイルに書き出すプログラムを作成せよ。 (例) 6が入力された場合 I am a pen. →O gs g vkt. 長桁計算を行う手続きPowerReal(A,x,n)を完成させよ。 Nは整数であるが、xは実数であるものとする。また、Aはxのn乗の長桁表記であるとする。 整数部、小数部ともに100桁を超えないx, nが与えられると仮定してよい。 上の2つの問題をお願いします。
767 名前:デフォルトの名無しさん [2008/07/08(火) 23:45:20 ] ファイル変数fにどうやって自分の入れたいテキストファイルをいれたらいいのか分かりません。 大学のだとreset(f,'ファイル名');という方言(?)でよみこめるのですが、 自宅のだとこうしているとコンパイルが通りません 詳しい方教えてください ちなみにコンパイラはfreepascalをつかっています。
768 名前:デフォルトの名無しさん mailto:sage [2008/07/09(水) 00:13:39 ] >>767 解決しますた スルーでお願いいたします
769 名前:rat pt 01 [2008/07/13(日) 16:18:39 ] ハッシュ法でのデータ管理をするプログラムを作りたいんですが長いことPASCALに触ってなかったせいか全く分かりません。 どなたか教えていただけないでしょうか??問題の概要は以下のようなものです。 表に登録するデータについては、キーは英数字からなる長さ8までの文字列でデータ本体は整数(型名はintegerでよい)です。 ハッシュ表のサイズは11とします。 ハッシュ関数は文字列xの各文字のASCIIコードの総和を11で割った余りとします。 さらにメニュー表示として入力した文字により行う操作を決定します。 どの文字がどのような操作を行うのかは以下のとおりです。 's' の場合: ハッシュ表に登録されている全レコードを,ハッシュ関数値毎に(キーの値とデータの両方を)すべて表示します. 'r' の場合: さらに「キーの値」と「データ」を入力し,すでに同じキーをもつデータがあれば「二重登録」として検出し,そうでなければ,そのレコードをハッシュ表に登録します. 'e' の場合: さらに「キーの値」を入力し,そのキーをもつデータがハッシュ表に登録されているならば, そのデータを表示します.さらに削除するかどうかを入力させて,削除する選択をした場合にはそのレ コードを削除します.そのキーをもつデータがハッシュ表にない場合には「そのキーをもつレコードが ないこと」を出力しますが,ハッシュ表には操作を加えません. 'i' の場合: ハッシュ表に登録されている全レコードを,キーの値が小さい順に表示します.ここで「キー の値の順」とは,文字列の辞書順のことを意味します.Pascal では,文字列a,b に対して,a がb より 辞書的順序が先(小さい) ときには「a<b」で表現できます. 'd' の場合: 「'i' の場合」の逆で,キーの値が大きい順に表示します. 'q' の場合: プログラムを終了します.具体的には,実行文部の最後の「end.」の直前までジャンプ*2し ます. 長くなってすいません。ちょっとしたヒントでもいいので教えていただければ幸いです。
770 名前:デフォルトの名無しさん [2008/07/22(火) 16:32:51 ] 100!は?
771 名前:デフォルトの名無しさん mailto:sage [2008/07/23(水) 16:05:04 ] 質問です。 nの値を入力してもらって n*nの二次元配列を作りたいのですがどうしたらいいでしょうか?
772 名前:デフォルトの名無しさん [2008/07/23(水) 23:58:15 ] >>766 の下の問題をお願いできませんか?
773 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 05:45:40 ] qはブーリアン型、x、yは整数で q := x = y てどういう意味ですか?
774 名前:デフォルトの名無しさん mailto:sage [2008/07/24(木) 13:01:07 ] x=yがtrueならばqにtrueを x=yがfalseならばqにfalseを代入
775 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 06:21:34 ] >>766 阪大生乙
776 名前:デフォルトの名無しさん [2008/09/22(月) 11:17:39 ] case文と 部分列挙を使って星座を判断するプログラムを作るにはどーすれば??
777 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 21:12:49 ] 何から星座を判断するんだ?
778 名前:デフォルトの名無しさん [2008/10/25(土) 15:47:12 ] Pascalで、要素の列挙によって配列を宣言することは 可能でしょうか?たとえば var ZeroToFour : array of integer =(0, 1, 2, 3, 4); のように。また可能な場合には添字の範囲はどうなるので しょうか?(上の例だと ZeroToFour[0]=0, ...ZeroToFour[4]=4 (0オリジン) となるのでしょうか。それとも ZeroToFour[1]=0, ...ZeroToFour[5]=4 (1オリジン) となるのでしょうか。) どうぞよろしくお願いします。
779 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 18:40:55 ] >>778 処理系は何だろ?標準PASCALだとその宣言は出来ないはず。 type A = array[T1] of T2; が宣言方法だから、オリジンはT1の宣言による。っていうか、どうしたいか 自分で宣言する。
780 名前:デフォルトの名無しさん [2008/10/27(月) 19:25:43 ] パスカルの問題でわからないものがあるので教えていただけないでしょうか。 関数f(x0)=0、a 以上 x0 未満の値 x について f(x)<0 x0 より大きく b 以下の値 x について f(x)>0 の時、 f(a) と f(b) を通る直線と x 軸との交点を求め、その値を c としたとき f(c)<0 であれば c を新たな a とし、f(c)>0 であれば c を新たな b とする この操作を回数繰り返しいずれかの値を x0 とする。 関数 f としてはy=x2-x02 を用いて解け とあります。 かなり難易度の高い問題ですが、どうかこのプログラミングを教えていただけないでしょうか。
781 名前:デフォルトの名無しさん [2008/10/27(月) 19:55:18 ] この操作を回数繰り返し ↓ この操作を数回繰り返し 関数f=x^2−x。^2 です。 すみません。
782 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 23:07:36 ] >>780 問題が理解できないんだが… f(x) ってのは直線って書いてあるから一次関数ですよね? function f(x:integer):integer って事かな? x0 ってのがx:=0と解釈すると x=0の時、y=0の一次関数の事かな? で a<x<0 について f(x)のxに0からbの値を入れると f(x)は0より小さい値を返す f(a),f(b)とx軸との交点を求めと言われても f(x)がy=axの直線ならy=0となってしまい問題があまりにも簡単すぎます。 なにか文章を間違えている気がします。 普通の人が読んで理解できる文章にするか、 問題文のまる写しを乗せない事には解けません。 x^2はXの二乗って分かるけど、x。^2は見たことないです。
783 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 23:14:15 ] あー大分理解できました。 前言撤回です。 x。^2だけ意味不明です。
784 名前:デフォルトの名無しさん [2008/10/28(火) 02:13:25 ] ご迷惑をおかけしてすみません。 表示がうまくいかなくて…。 x。:「エックスゼロ」です。 関数f(x0)=0、a 以上 x。 未満の値 x について f(x)<0 x。 より大きく b 以下の値 x について f(x)>0 の時、 f(a) と f(b) を通る直線と x 軸との交点を求め、その値を c としたとき f(c)<0 であれば c を新たな a とし、f(c)>0 であれば c を新たな b とする この操作を数回繰り返しいずれかの値を x。 とする。 関数 f としてはy=x^2-x。^2 を用いて解け 問題についてはこの通りに出題されており、 どうやら平方根を回りくどく求めろと言っているようです。 xの範囲を表すと a<x<x。<x<b となるのですが、これではxが2回出ており、 どのようにプログラムを書けばよいのか困っています。
785 名前:778 mailto:sage [2008/10/28(火) 11:41:24 ] >>779 うっかり遅くなりましたが御教示ありがとうございます。
786 名前:デフォルトの名無しさん mailto:sage [2008/10/28(火) 14:59:04 ] //2点を通る直線とX軸の交点Yを求める function xCross(ax,ay,bx,by:Double):Double; var a,b:Double; begin a := (ay*bx - by*ax)/(bx-ax); b := ay - a*ax; Result:=-b/a; end; //問題中のf(x)式、初期値をx0とする。 function f(x,x0:Double):Double; begin Result:= x*x - x0*x0; end; //今回の問題を解くメインループ function test(x,a,b:Double):Double; var x0,c,fa,fb:Double; begin x0:=0; while ((a<x) and (x<x0) and (f(x,x0)<0)) or ((x0<x) and (x<b) and (f(x,x0)>0)) do begin c := xCross(a,f(a,x0),b,f(b,x0)); if f(c,x0)<0 then a:=c else if f(c,x0)>0 then b:=c; x0:=c; end; Result:=x0; end;
787 名前:デフォルトの名無しさん mailto:sage [2008/10/28(火) 15:01:06 ] >>784 ,786 翻訳すると f(x0)=0 (a<x<x0)でかつf(x)<0 (x0<x<b)でかつf(x)>0 のどちらかの場合 f(a)とf(b)を通る直線とx軸との交点を求めcとおき f(c)<0 なら a:=c f(c)>0 なら b:=c という計算を繰り返す と解釈しましたこれはどう見ても平方根を求めていません。 ソースにするとこんな感じ、 何の計算式かはわかりません。 これ計算の目的を問題の最初に示すべきだと思います、目的が分かりません。
788 名前:デフォルトの名無しさん [2008/10/28(火) 15:58:43 ] ご教授ありがとうございます。 コンパイルしてみたのですが In function `xCross': についてのエラーが出てきて手直ししても動かないのですがどうすれば良いので しょうか。 あと、問題のタイトルには 以下の考え方に基づいて与えられた正の数の平方根の値を求めるプログラムを作 成せよ。
789 名前:デフォルトの名無しさん mailto:sage [2008/10/28(火) 16:08:35 ] へぇ、これで平方根が求まるんですか ならば、平方根が求まるように手直ししておきます。 あとコンパイル環境を教えてください、私はDelphi7で動作を確認しました。
790 名前:デフォルトの名無しさん [2008/10/28(火) 16:31:00 ] ありがとうございます。 コンパイルはターミナルで行っています。
791 名前:デフォルトの名無しさん mailto:sage [2008/10/28(火) 17:54:59 ] >>784 これ、ニュートン法と呼ばれる平方根を求めるアルゴリズムですね 問題が非常に不鮮明で最初の一文が無いと到底理解できない設問です。 ハッキリ言って悪題ですね。 きわめてシンプルにするとこんな感じになります。 function fSqrt(x:Double):Double; var s,last:Double; begin Result:=0; if x<=0 then exit; if x>1 then s:=x else s:=1; repeat last := s; s := (x/s+s) * 0.5; until s<last; Result:=last; end; 原理は簡単なので「平方根、ニュートン法」で調べてください。 ターミナルはwindowsのネットワーク越しにコンパイルを行う通信クライアントだと思われます。 もしかしたら、コンパイラはPascalじゃなくCかもしれません。 使用言語やコンパイル自体が分からない場合は友達と相談してください。 でわでわ。
792 名前:デフォルトの名無しさん [2008/10/28(火) 18:40:46 ] 分かりやすい解説ありがとうございました。 非常に参考になりました。