[表示 : 全て 最新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


839 名前:デフォルトの名無しさん mailto:sage [2008/12/18(木) 12:35:23 ]
全角スペースのままとか?


840 名前:デフォルトの名無しさん [2008/12/19(金) 19:25:58 ]
>>839
スペース消してみたら上手くいきました。
ありがとうございます。

「1」の方はやはり難しいのでしょうか。

値の配列を受け取り,その並べ替え(順列)をすべて出力する再帰の手法を
使用したプログラムを書きなさい.ただし,値は1からnまでの数値であり、
n<=10とする

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 ]
課題が全部列挙だとするとマジキチなサイズのレポートが出来上がる






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前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