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
841 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 01:18:37 ] >>840 アクセスでお菓子とジュース
842 名前:デフォルトの名無しさん [2008/12/20(土) 01:26:13 ] >>841 被るといけねーから少し中を変えとけよ
843 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 01:43:23 ] >>842 おkk
844 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 02:51:41 ] m,h, : permutation 与えられたリストの要素を並べ替えてできる全てのリストのリストを返す関数。 ほぼHaskell版のコピー。リストをシフトさえるshift関数などがちょっと違っている。 (* Standard ML *) fun permutation [] = [[]] | permutation list = let fun revolve [] = [[]] | revolve l = let fun shift 0 _ = [] | shift n (x::xs) = (x::xs) :: (shift (n-1) (xs@[x])) in shift (length l) l end fun permutation' [] = [[]] | permutation' (x::xs) = map (fn y => x::y) (permutation xs) in foldr (op @) [] (map permutation' (revolve list)) end; (* 実行結果 *) - permutation [1,2,3]; val it = [[1,2,3],[1,3,2],[2,3,1],[2,1,3],[3,1,2],[3,2,1]] : int list list - permutation [1,2,3,4]; val it = [[1,2,3,4],[1,2,4,3],[1,3,4,2],[1,3,2,4],[1,4,2,3],[1,4,3,2],[2,3,4,1], [2,3,1,4],[2,4,1,3],[2,4,3,1],[2,1,3,4],[2,1,4,3],...] : int list list -
845 名前:841,843 mailto:sage [2008/12/20(土) 09:25:22 ] >>842 どこで渡すー?
846 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 10:13:13 ] program prog1(input, output); var i,n : integer; p : array[1..10] of integer ; procedure perm(i,n:integer); var j,t :integer; begin if i<n+1 then begin for j:=i to n do begin t:=p[i] ; p[i]:=p[j] ; p[j]:=t ; perm(i+1,n); t:=p[i] ; p[i]:=p[j] ; p[j]:=t ; end; end else begin for j :=1 to n do write(p[ j ],' '); writeln(''); end; end; begin write('n='); read(n); for i := 1 to n do p[i]:=i; perm(1,n); end.
847 名前:デフォルトの名無しさん [2008/12/20(土) 10:32:15 ] >>845 どこで? おれはフツーにレポboxに放り込むけど…
848 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 10:40:57 ] >>846 アルゴリズム事典かな? もれも、ほとんど同じになった。
849 名前:デフォルトの名無しさん [2008/12/20(土) 10:46:37 ] 1、2共にちゃんと動作しました。 ありがとうございました。
850 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 10:47:40 ] C言語によるはじめてのアルゴリズム入門の初版
851 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 10:58:01 ] >>849 引数で配列渡すようにしないとだよ
852 名前:デフォルトの名無しさん [2008/12/20(土) 11:13:48 ] そうなのですか?
853 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 12:14:24 ] >値の配列を受け取り って書かれてるから渡したほうがいいかなーと
854 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 19:25:00 ] Pascal jp.youtube.com/watch?v=yzJqYl9EHgA
855 名前:デフォルトの名無しさん mailto:sage [2008/12/20(土) 20:04:33 ] >>846 の8行目 × if i<n+1 then ○ if i<n then 動作結果は同じだけど一応訂正
856 名前:デフォルトの名無しさん [2008/12/25(木) 20:10:48 ] 丸投げOKですか? Delphi使用で、for、if、arrayまで習っています。 ・生年月日と今日の日付を計算して、満年齢を計算する ・sin,cos,tanの数表を作る
857 名前:デフォルトの名無しさん mailto:sage [2008/12/25(木) 20:14:24 ] どうでもいいミスですが一応訂正 ×生年月日と今日の日付を計算して、満年齢を計算する ○生年月日と今日の日付を入力して、満年齢を計算する
858 名前:デフォルトの名無しさん [2008/12/25(木) 20:34:15 ] 宿題の季節っつーか来年提出か 締切日は書いた方がいい
859 名前:856 [2008/12/25(木) 21:12:39 ] >>858 すいません。締切は1月5日です。 諸事情で締切日までDelphiが使えない状態になりました。
860 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 12:30:36 ] パスカルだけど program prog1(input, output); var birthday,today,y: integer ; begin writeln('ex. 20081226'); write('birthday = ');readln(birthday); write('today = ');readln(today); y:=trunc((today-birthday)/10000); writeln(y); end. 誕生日が来て1才年をとる場合なら簡単。 誕生日の前日に1才年をとる場合は難しいな
861 名前:デフォルトの名無しさん mailto:sage [2008/12/26(金) 12:35:53 ] program prog1(input, output); const pi=3.1415926535; var i:integer; s,c,t:real; begin writeln('deg','sin':8,'cos':10,'tan':10); for i := 0 to 360 do begin s := sin(i*2*pi/360); c := cos(i*2*pi/360); if (i mod 15) = 0 then begin if (i mod 180 = 90) or (c= 0) then writeln(i:3,s:10:5,c:10:5,'-------':10) else writeln(i:3,s:10:5,c:10:5,s/c:10:5) ; end; end; end.
862 名前:856 [2008/12/26(金) 16:46:53 ] どうもありがとうございました
863 名前:デフォルトの名無しさん [2009/01/08(木) 01:10:29 ] 来週火曜までにお願いします。Delphiです。 ・誕生日まで何日あるかを計算する。ただしarrayでなくcase文を使って設定すること。 ・何個かのデータをもらって、その平均、総和、最大値、最小値、標準偏差を計算する。 ・プロ野球などのプロスポーツのデータ(勝ち数、負け数、引き分け数)を入力したら、 各チームの勝率を計算し、順位をつける。 ・学籍番号と得点をデータとして入力し、これを得点の高い順に並べ替え、順位を付けて表示する。
864 名前:デフォルトの名無しさん mailto:sage [2009/01/08(木) 15:23:00 ] お断りします
865 名前:デフォルトの名無しさん [2009/01/10(土) 11:48:11 ] >> 863 arrayではなくCaseを使って設定するって、どういう意味?
866 名前:デフォルトの名無しさん mailto:sage [2009/01/10(土) 12:12:23 ] 【 課題 】100マス計算をするプログラムを書いてください。 【 用語 】下記 【 期限 】1/15くらいまで 【 Ver 】 【 補足 】 プログラムがランダムに出題し、人間が100個の マスに回答を入力し、確認ボタンを押すと 全問正解なら回答にかかった時間を表示して終了。 間違った場合は間違った場所にカーソルが止まり、 別の値が入力されるまで待ちます。 横10個、縦10個の数字は各々11〜99までの乱数、 演算は +,-,x のみでよいです。 よろしくおねがいします。
867 名前:863 [2009/01/11(日) 20:32:54 ] >>865 以下のような設定は不可とのことです。 var days array[1..12] ofinteger; var : : begin days[1]:=31;days[2]:=29;...(同様に);days[12]:=31;
868 名前:デフォルトの名無しさん mailto:sage [2009/01/11(日) 21:16:31 ] >>863 で、どの課題が残ってるのかね?
869 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 22:18:35 ] program prog1(input, output); var i ,x1,x2,x3,y1,m1,d1,y2,m2,d2: integer; function calcd(y,m,d:integer):integer; var i,leapday,years,days,mdays:integer; begin years := y-1; days := d; days := days + years * 365; days := days + trunc (years/4) - trunc (years/100) + trunc (years/400); if ( (y mod 4 =0) and (y mod 100 <>0) and (y mod 400 =0) ) then leapday := 1 else leapday := 0; for i:=1 to m - 1 do begin case i of 1,3,5,7,8,10,12 : mdays := 31; 4,6,9,11 : mdays := 30; 2 : mdays := 28 + leapday ; end; days := days + mdays; end; calcd:=days; end; begin writeln('next birthday'); write('year=');readln(y1); write('month=');readln(m1); write('day=');readln(d1); writeln('today'); write('year=');readln(y2); write('month=');readln(m2); write('day=');readln(d2); x1:=calcd(y1,m1,d1); x2:=calcd(y2,m2,d2); x3:=x1-x2; write('tanjobi made ',x3,' nichi'); end.
870 名前:デフォルトの名無しさん [2009/01/19(月) 02:10:07 ] 4行4列の行列の各要素を読み込み、ファイルへ行列形式で書き込ませるプログラムを作れ。 全然わかりません。お願いします。 火曜日までです。
871 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 02:16:16 ] cat 行列1.txt > 行列2.txt
872 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 19:06:58 ] ファイルの入出力関係って難しいよね
873 名前:デフォルトの名無しさん mailto:sage [2009/01/19(月) 20:09:01 ] 高校数学では行列を教えなくなるらしいね。
874 名前:空落ち ◆SniperBHgo mailto:sage [2009/01/21(水) 20:17:38 ] >>870 行列形式ってなんだろう program Mat(input,output,ExtFile); const COL = 4; ROW = 4; type Matrix = packed array [1..COL,1..ROW] of integer; MatrixFile = file of Matrix; var ExtFile : MatrixFile; i : 1..COL; j : 1..ROW; InputMatrix : Matrix; begin rewrite( ExtFile, 'ExtFile' ); for i := 1 to COL do begin for j := 1 to ROW do begin write( '[', i, ',', j, ']?:' ); readln( InputMatrix[i,j] ) end end; write( ExtFile, InputMatrix ) end.
875 名前:デフォルトの名無しさん [2009/01/27(火) 16:40:44 ] Delphi6.0で (1)2つの自然数nとmが与えられたとき、 nとmの最大公約数を出力するプログラムを書け。 (2)与えられた3×3行列の行列式を計算するプログラムを書け (行列は2次元配列で表すこと。) という課題はどうやってとけばいいのでしょうか?
876 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 18:36:09 ] 頭を使って解けばいいと思います
877 名前:デフォルトの名無しさん mailto:sage [2009/01/27(火) 21:48:58 ] 頭じゃなくてDelphi6.0でって書いてあるのに・・・
878 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 02:31:19 ] >>875 動作確認なんてしてないから間違ってたらすまん 改行大杉って怒られたんでつめて書く type TMatrix3x3 = array[0..2][0..2]of Double; function det3x3(Mat:TMatrix3x3):Double; var i,j:Integer; hoge:Extended; begin Result:=0; //Plus for i:=0 to 2 do begin hoge:=1; for j:=0 to 2 do hoge:=hoge*Mat[j][(i+j)mod 3]; Result:=Result+hoge; end; //Minus for i:=0 to 2 do begin hoge:=1; for j:=0 to 2 do hoge:=hoge*Mat[j][(3+i-j)mod 3]; Result:=Result-hoge; end; end;
879 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 02:32:32 ] 我ながら改行とかインデント崩れすぎワロタ
880 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 08:59:15 ] 大丈夫、環境によってはキチンとインデントされて見えてるから。 半角2文字づつ綺麗にインデントされたやつが。
881 名前:デフォルトの名無しさん mailto:sage [2009/01/28(水) 10:09:12 ] 俺のとこもちゃんとなってるよ
882 名前:123 [2009/02/11(水) 17:58:34 ] 440!を881で割ったときの余りをRを求めよ。また、R2を881で割ったときの余りを求めよ。
883 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 01:16:47 ] program prog1(input, output); var i,ans:integer; begin ans := 1; for i := 1 to 440 do begin ans := ans * i mod 881; end; writeln(ans); readln; end.
884 名前:123 [2009/02/12(木) 10:02:40 ] さすがです!!!任務完了!
885 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 01:09:04 ] [1] 授業単元:Pascal [2] 問題文(含コード&リンク): 1から9までの数字を縦横方向に同じものが並ばないように下記の例のように並べる 並べ方が全部で何通りあるかとその並びをすべて列挙する [3] 環境:特になし [4] 期限: 明日まで [5] その他の制限: 例 534681297 685293714 948367125 153472869 426538971 261759483 817945632 379126548 792814356
886 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 01:25:52 ] 547 名前: デフォルトの名無しさん [sage] 投稿日: 2009/02/12(木) 17:07:40 Python の宿題ここで答えます Part 1 pc11.2ch.net/test/read.cgi/tech/1153585095/785 C/C++の宿題片付けます 122代目 pc11.2ch.net/test/read.cgi/tech/1232029287/542 Rubyの宿題教えてください。2限目 pc11.2ch.net/test/read.cgi/tech/1200175247/476 こんなんで数独の掲載料もらえるなら俺だって問題送りたい
887 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 20:40:20 ] 数独の条件はそれだけじゃないだろ。
888 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 13:11:36 ] 課題が全部列挙だとするとマジキチなサイズのレポートが出来上がる
889 名前:デフォルトの名無しさん mailto:sage [2009/04/09(木) 22:29:02 ] ほしゅ
890 名前:デフォルトの名無しさん mailto:sage [2009/04/27(月) 06:28:11 ] 梅
891 名前:デフォルトの名無しさん [2009/04/29(水) 17:09:24 ] >>882 おまいらpascalでなくlispでプログラムを書け (labels ((fact (n) (if (= n 1) 1 (* n (fact (1- n)))))) (let* ((r (fact 440)) (r2 (* r r))) (list (mod r 881) (mod r2 881)))) はい糸冬
892 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 20:39:17 ] これはひどい
893 名前:デフォルトの名無しさん mailto:sage [2009/04/29(水) 23:49:10 ] 7の(7の7乗)乗 の下一桁の数字は? nの(nのn乗)乗 の下一桁の数字は?
894 名前:空落ち ◆SniperBHgo [2009/04/30(木) 00:35:53 ] >>893 program test(output); const N = 7; var i, x : integer; function Power(a,b:integer):integer;{aのb乗} var t, i : integer; begin t := 1; for i := 1 to b do begin t := t * a end; Power := t end; begin x := 1; for i := 1 to Power( N, N ) do begin x := ( x * N ) mod 10 end; writeln( x ) end.
895 名前:デフォルトの名無しさん [2009/04/30(木) 08:15:17 ] >>894 のプログラムはnが大きくなるとダメポ
896 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 18:15:07 ] どうやってプログラム作ってもそれは同じことだと思うが それともNが無限に近い数でも保持できる計算機がこの世に存在するの?バカなの?
897 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 18:39:42 ] 7の7乗なんて全部計算する必要ない。 中途の計算で下一桁だけ求め続ければいい。
898 名前:デフォルトの名無しさん [2009/04/30(木) 20:20:53 ] >>896 そんなあなたに (labels ((ps (n m) (if (= m 0) (mod n 10) (mod (expt (ps n (1- m)) n) 10)))) (defun pg (n) (ps n n))) そんで (pg 7) ってやってみ 速攻で求まるから
899 名前:デフォルトの名無しさん mailto:sage [2009/04/30(木) 22:01:09 ] 計算間違いがあるようです
900 名前:デフォルトの名無しさん [2009/04/30(木) 23:06:30 ] 計算まちがい以前にpascalのプログラムなんてNが2桁になると計算できないじゃん ところでNが100以上の時の値を計算できる人いる?
901 名前:空落ち ◆SniperBHgo [2009/05/01(金) 00:33:48 ] N^Nを計算することによる桁溢れの問題をなくしました. でも,アルゴリズムを全く工夫していないから計算がとても重い. program test(output); const N = 10; type ZeroToN = 0..N; OneToN = 1..N; OneToNPlusOne = 1..N+1; CountArr = array [1..N+1] of ZeroToN; var count : CountArr; i, x : integer; EndFlag : boolean; procedure Increment( var count : CountArr; a : OneToNPlusOne ); begin if ( count[a] <> N-1 ) then begin count[a] := count[a] + 1 end else begin count[a] := 0; Increment( count, a+1 ) end end;
902 名前:空落ち ◆SniperBHgo [2009/05/01(金) 00:35:03 ] begin{main} for i := 1 to N+1 do begin count[i] := 0 end; x := 1; EndFlag := false; repeat x := ( x * N ) mod 10; Increment( count, 1 ); if ( count[N+1] = 1 ) then begin EndFlag := true end until EndFlag; writeln( x ) end.
903 名前:デフォルトの名無しさん [2009/05/01(金) 03:25:08 ] N=100 test=0 N=101 test=1 N=102 test=6 N=103 test=7 N=104 test=6 N=105 test=5 N=106 test=6 N=107 test=3 N=108 test=6 N=109 test=9 N=110 test=0 N=111 test=1 N=112 test=6 N=113 test=3 N=114 test=6 N=115 test=5 N=116 test=6 N=117 test=7 N=118 test=6 N=119 test=9 N=120 test=0 N=121 test=1 N=122 test=6 N=123 test=7 N=124 test=6 N=125 test=5 N=126 test=6 N=127 test=3 N=128 test=6 N=129 test=9 N=130 test=0 Real time: 0.028037 sec. Run time: 0.026363 sec. Space: 593392 Bytes GC: 1, GC time: 0.011386 sec. N=100~130の値を求めました。 そんなに重くなかったっす。
904 名前:デフォルトの名無しさん [2009/05/01(金) 03:33:49 ] lispで4行で済むプログラムがなぜにpascalだと アホほど長いんだ? しかも遅いしな。
905 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 05:42:29 ] 0 1 6 7 6 5 6 3 6 9 0 1 6 3 6 5 6 7 6 9
906 名前:デフォルトの名無しさん [2009/05/01(金) 06:50:36 ] 7^n≡{7,9,3,1} (mod 10) とループするので、指数の7^7が4で割っていくつ余るかが問題になる。 7^n≡{3,1} (mod 4) から、 7^7≡3 (mod 4) 従って、 7^(7^7)≡3 (mod 10) となる。
907 名前:デフォルトの名無しさん [2009/05/01(金) 07:09:50 ] ある国のお話。 この国は一夫多妻制です。 しかし現在この国には男女はほぼ同じ割合いるので当然男が余ってしまいます。 そこで王様は一計を案じました。 次のような法律を作ったのです。 1.女児を産んだ者には経済的に援助し更に子作りに励んでもらう。 2.一度でも男児を産んだ者は以後決して子供を作ってはならない。 これには国の男性たちも大喜び。 数十年もたてば国は女性の比率がぐんと上がるだろうとみな思いました。 問題。 実際には男女比はどうなると思いますか?
908 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 07:54:05 ] 一つの正三角形をうまく切って、相似比1:1:2 の相似な図形3つに分けるにはどうしたらよいか。
909 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 13:13:25 ] >>907 なんだっけ 女が上になってビンタしながらSEXすると 女が産まれやすいとか聞いた
910 名前:デフォルトの名無しさん mailto:sage [2009/05/01(金) 13:36:53 ] いや、ポイントは、 (1) 女をよろこばせない (2) 浅いところで出す だよ。 女が喜ぶほど酸が薄くなるらしい(=酸に弱いY 染色体が生き残りやすくなる)。 深いところに出す(=卵子への到達距離が短い)と、瞬発力のある Y 染色体が勝つ可能性が高くなる。
911 名前:デフォルトの名無しさん [2009/05/01(金) 13:44:11 ] 女を増やすには>>910 の方法を実践しなければダメだということだな。 >>907 を実践しても男女の出生確立は変わらないので結局、女は増えないしな。 というわけでプログラムを考えるまでもなく結論が出てしまいました。
912 名前:デフォルトの名無しさん [2009/05/01(金) 13:48:36 ] ×確立 ○確率
913 名前:デフォルトの名無しさん mailto:sage [2009/05/02(土) 14:26:42 ] >>910 ためになるスレだがあと1年早く聞きたかったな
914 名前:代記 [2009/05/26(火) 15:40:21 ] 二個の自然数nとkを適当に定めて、k個の黒石1と(n-k)この白石0を一列に並べる並べ方を、重複なくすべて列挙するプログラム を作成して欲しいです。丸投げをしてしまって申し訳ないんですが、お願いします。
915 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 17:35:21 ] nPk?
916 名前:デフォルトの名無しさん mailto:sage [2009/05/26(火) 18:57:27 ] >>914 1〜nの自然数からk個選ぶプログラムを考えればいいだけ
917 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 17:47:21 ] ax2+bx+c=0の解を計算するプログラム(判別式D=b2-4acが負のときは、解が複素数であると出力するようにする)の作り方がわかりません。 丸投げですみませんが、どなたか知恵を貸してくださいです。お願いします。
918 名前:デフォルトの名無しさん mailto:sage [2009/06/02(火) 18:40:51 ] 解の公式をプログラムで表現するだけだろ。
919 名前:デフォルトの名無しさん [2009/06/02(火) 23:15:50 ] >>917 もう諦めた方がいいかもな。
920 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 03:31:29 ] 知恵だけなら ぐぐれ 答えはある
921 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 13:41:11 ] 初歩的な問題だったorz できました。ありがとうございます
922 名前:デフォルトの名無しさん mailto:sage [2009/06/03(水) 21:17:29 ] まだ解決してません!早く答えをお願いします。 期限は明日の朝くらいでいいです。
923 名前:デフォルトの名無しさん [2009/06/04(木) 10:08:48 ] >>922 パスカルは使った事が無いのでLispで作っときました。 (defun d (a b c) (if (< (- (* b b) (* 4l0 a c)) 0l0) (print "解が複素数である"))) 勝手にパスカルに直してください。
924 名前:デフォルトの名無しさん mailto:sage [2009/06/05(金) 01:20:32 ] 言語はLispでも良かったのでそのまま提出しました。 ありがとうございます。
925 名前:デフォルトの名無しさん [2009/06/16(火) 01:52:25 ] 123456789の順に数字を並べて,数字の間に+,−を補うことで式を作り, その値が100になる組み合わせをすべて求め,その式を出力するプログラムを作成しなさい. お願いします
926 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 18:08:51 ] 組み合わせはゼロだな。 全て足し合わせても100には満たない.
927 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 19:28:33 ] 小町算でしょ
928 名前:デフォルトの名無しさん mailto:sage [2009/06/16(火) 20:12:12 ] >>926 頭固いなw
929 名前:デフォルトの名無しさん [2009/06/17(水) 00:09:26 ] 12345+6789だと少なくとも100は越えるな
930 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 20:00:47 ] >>925 に挑戦してるんだけど、プログラミング初心者には、難しめですか? 配列をfor文で回すので、良いのかな? 配列とかfor文って基本的な処理だと思うんだけど、うまく使えないんだよなぁ。 ネストしたループ文がゴチャゴチャしちゃって。 どなたかヒントいただけないでしょうか? 基本的な構造は、配列を使ったループ文で作ればいいのでしょうか?
931 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 23:52:53 ] ネストが嫌ならある程度の処理でまとめて関数にしなさい
932 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 01:40:24 ] >>925 Pascalじゃないけど。 1:12-3-4+5-6+7+89= 2:123-4-5-6-7+8-9= 3:123-45-67+89= 4:123+4-5+67-89= 5:123+45-67+8-9= 6:12+3-4+5+67+8+9= 7:12+3+4+5-6-7+89= 8:1+23-4+56+7+8+9= 9:1+23-4+5+6+78-9= 10:1+2+3-4+5+6+78+9= 11:1+2+34-5+67-8+9= kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9479.txt
933 名前:930 mailto:sage [2009/06/18(木) 02:20:11 ] >>932 おぉ、C言語ですね。 俺の頭では、難しすぎました。面白そうな例題だったんで、取り組んでみたんだけど。 最初は、配列とFor文の組み合わせで、やっていたんですけど、配列を連結するとなると、 どんどん複雑になって、分けわからなくなりました。 簡単に紙の上の手書きでやってみたんですけど、数回やっている内に組み合わせが 多くなってきて、混乱しました。 +、−、連結の3種類に分類すると言うことが、肝ですね。 連結がパターンの中の一つと考えられなかったのが、残念です。 掲載された処理、読んでみます。
934 名前:930 mailto:sage [2009/06/18(木) 02:44:28 ] これは、自分が思ってるよりも複雑でした。 パターンが3種類ということ以外にも、配列を複数個使って回してるようです。 Delphi6 personalで、C言語からPascalに書き換えてみたいと思います。 >>925 さんじゃないですけど、非常に勉強になります。 932さん、ありがとうございました。
935 名前:デフォルトの名無しさん [2009/06/18(木) 18:04:27 ] Pascalで書いてみた。 932氏のプログラムと違うのは式を計算する方法だけ。 ・・・だと思うんだけど、どう違うかまではまだ読みきれてない。 結果は同じでした。 FreePascalなんで変なオプション入ってる。 あと、同じ理由で文字コードUTF-8です。 one.freespace.jp/amber_ale/text/kadai.pas
936 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 22:53:12 ] >>935 932さんも、935さんもネストが深くても、全体的にコードがすっきりして見やすいです。 課題をいかに分解し、一つ一つの処理にするかが、センスなんだなぁと思いました。 初心者には、勉強になります。 935さんのコードは、文字コードをSJISにして、オプションを一つ削除することで、 Delphi6 personalで実行できました。
937 名前:デフォルトの名無しさん [2009/06/23(火) 14:31:05 ] integer変数nに適当な与えてnを素因数分解し、 その結果を表示するプログラムを作りなさい。 神様まってますっ!!
938 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 17:39:32 ] そんな簡単なものも思いつかないようだとプログラム関係への道は止めた方が良い。
939 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 18:08:16 ] >>938 スレタイをいちおくまんかい嫁。
940 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 16:08:26 ] >>939 お前は>>1 を同じ数だけ読んでこい >■全く分かってない阿呆も放置しないで優しく対応 これをやっただけだろ
941 名前:デフォルトの名無しさん [2009/06/24(水) 16:42:38 ] >>937 できますた lispで作るとこんなもんです。 ↓ (defun p (n) (do ((x 2 (1+ x)) (y n)) ((= y 1)) (do ((z x)) ((/= 0 (mod y z))) (print z) (setf y (/ y z)))))