いろんな言語で宿題ス ..
587:デフォルトの名無しさん
09/07/30 11:18:28
>>583
-- Haskell
import Data.Char (isAlpha)
import Data.Map (Map, fromListWith, toList)
countChar :: String -> Map Char Int
countChar = fromListWith (+) . flip zip (repeat 1) . filter isAlpha
main = getContents >>= mapM_ putStrLn . prettify . countChar
where
prettify :: Map Char Int -> [String]
prettify = map (\(k,v) -> k : ": " ++ (replicate v '*')) . toList
588:585
09/07/30 12:54:13
>>584 >>585 訂正
get_lines(File2,L1),
get_lines(File2,L2),
とありますが、上の行は get_lines(File1,L1), です。
589:デフォルトの名無しさん
09/07/31 07:42:41
スレリンク(tech板:688番)
# [1] 授業単元: プログラミング
# [2] 問題文(含コード&リンク):本文が長すぎて書き込めないので下に
# 分けて書き込みます
スレリンク(tech板:689番)
スレリンク(tech板:690番)
スレリンク(tech板:691番)
590:デフォルトの名無しさん
09/07/31 07:46:16
スレリンク(tech板:704番)
# [1] 授業単元:C言語
# [2] 問題文(含コード&リンク):
# URLリンク(kansai2channeler.hp.infoseek.co.jp)
# リストを用いた成績処理
# リストを用いて個人データを格納する表を作成
# 処理番号を入力して処理の切り替えを行う
# 1.成績一覧表示, 2.個人成績表示,
# 3.個人平均点表示,4.科目平均点表示,
# 0.終了
# リストに新たにデータを追加する時は学生番号順に並ぶように追加する.
# リスト構成する要素(セル)はmalloc関数でヒープ領域から確保するものとする.
#
# 入力する成績データ(この順番で入れる)
# 学番名前英語数学化学物理
# 106 tada 65 80 90 100
# 101 kouda 50 85 70 65
# 103 hanako 70 75 65 80
# 104 akane 60 95 80 75
# 102 tarou 90 80 85 65
# 105 nara 80 70 50 95
591:デフォルトの名無しさん
09/07/31 08:29:12
スレリンク(tech板:76番)
# 【 課題 】タートルグラフィックスを描写するプログラムを作成する。
# URLリンク(rg550.hp.infoseek.co.jp)
# 【 形態 】1. Javaアプリケーション(main()で開始)
# 【 期限 】8/2
# 【 Ver 】 java version 1.6.0_14
# 【 補足 】どう手を付けたらいいのか分からない状態です…
# 実装するのはright left forwardの3つだけでいいみたいです。
# よろしくお願いします。
URLリンク(nojiriko.asia)
592:デフォルトの名無しさん
09/07/31 17:29:53
>>589
% Prolog (第1ステップ)
URLリンク(nojiriko.asia)
593:デフォルトの名無しさん
09/07/31 21:02:07
>>590
% Prolog
URLリンク(nojiriko.asia)
594:デフォルトの名無しさん
09/07/31 22:59:25
スレリンク(tech板:364番)
# 質問です。
#
# 入退室の時間を自分で打ち込んで、それをデータとして貯めるというシステムを作り
たいんですが、こういうシステムを
# 作る場合はPHPとMySQLで作れるんでしょうか。よろしくお願いします。
#
595:デフォルトの名無しさん
09/07/31 23:39:15
>>594
% Prolog (1/2)
入退室 :-
入退室管理ディレクトリ(Dir),
concat_atom(['ls -N ',Dir,'listing.*.pro'],S),
shs(S,L),
max(L,File),
reconsult(File).
入室(_氏名) :-
A is time,
localtime(A,B,_月,_日,_,_,_時,_分,_秒),
assertz(入退室(入室,_氏名,_年,_月,_日,_時,_分,_秒)),
入退室保存ファイル(_入退室保存ファイル),
tell(_入退室保存ファイル),
listing(入退室),
told,!.
退室(_氏名) :-
A is time,
localtime(A,B,_月,_日,_,_,_時,_分,_秒),
assertz(入退室(退室,_氏名,_年,_月,_日,_時,_分,_秒)),
入退室保存ファイル(_入退室保存ファイル),
tell(_入退室保存ファイル),
listing(入退室),
told,!.
596:デフォルトの名無しさん
09/07/31 23:42:55
>>594
% Prolog (2/2)
% システム運用の最初に/var/nyutaishitsu/listing.100000.proを生成して置きます
入退室管理ディレクトリ('/var/nyutsishitsu/').
入退室保存ファイル(F) :-
入退室管理ディレクトリ(Dir),
concat_atom(['ls -N ',Dir,'listing.*.pro'],S),
shs(S,L),
max(L,File),
sub_atom(File,_,6,4,A),
atom_to_term(A,N,_),
N2 is N + 1,
concat_atom(['/var/nyutaishitsu/listing.',N2,'.pro'],F),!.
597:デフォルトの名無しさん
09/07/31 23:58:20
>>594 >>595 >>596
不適切なところが少々ありました。訂正はこれらで。
URLリンク(nojiriko.asia)
598:デフォルトの名無しさん
09/08/02 09:56:28
スレリンク(tech板:743番)
# [1] 授業単元:プログラミング基礎
# [2] 問題文(含コード&リンク):
# 2つの整数をキーボードから入力し、それらの最大公約数を表示する
# プログラムを作成せよ。
# 最大公約数と、2つの数字を割り切る最大の整数のことである。
# 例えば12と18の最大公約数は6,24と48の最大公約数は24である。
599:デフォルトの名無しさん
09/08/02 10:01:52
>>598
% Prolog
t598 :-
write('最大公約数を求めます。一行にひとつ整数を入力してください : '),
get_line(Line1),atom_to_terms(Line1,N1,_),
get_line(Line2),atom_to_terms(Line2,N2,_),
appendを使って最大公約数を求める(N1,N2,X),
write_formatted('%tと%tの最大公約数は%tです\n',[N1,N2,X]).
appendを使って最大公約数を求める(N1,N2,X) :-
length(L1,N1),
length(L2,N2),
最大公約数(L1,L2,[_],[_],LX),
length(LX,X).
appendを使って最大公約数を求める(L1,L2,L,X,X) :-
not((append(L,_,L1),append(L,_,L2))),!.
appendを使って最大公約数を求める(L1,L2,L,_,X) :-
割り切れる(L1,L),
割り切れる(L2,L),
appendを使って最大公約数を求める(L1,L2,[_|L],L,X).
appendを使って最大公約数を求める(L1,L2,L,Y,X) :-
appendを使って最大公約数を求める(L1,L2,[_|L],Y,X).
割り切れる([],_) :- !.
割り切れる(L,DL) :-
append(DL,L3,L),
割り切れる(L3,DL).
600:デフォルトの名無しさん
09/08/02 12:05:02
>>598
-- Haskell では Prelude に gcd が含まれている
import Control.Monad (replicateM)
main = replicateM 2 readLn >>= print . foldl1 gcd
601:599
09/08/02 15:07:41
>>598 >>599
間違っていました。
途中、'最大公約数'/5 という述語が副目標として登場しますが、
これは、'appendを使って最大公約数を求める'/5 の間違えです。
URLリンク(nojiriko.asia) の方を見て下さい。
602:デフォルトの名無しさん
09/08/02 18:47:48
スレリンク(tech板:918番)
# 所謂覆面算で
# 英字一文字が一桁の数字(0-9)で表されるとき
# one
# + nine
# + twenty
# + fifty
# = eighty
# となる組み合わせを検索してください
# 各行の先頭の文字は0以外です
603:デフォルトの名無しさん
09/08/02 18:50:25
>>602
% Prolog
URLリンク(nojiriko.asia)
604:デフォルトの名無しさん
09/08/02 20:28:36
スレリンク(tech板:759番)
# [1] 授業単元:工学実験
# [2] 問題文(含コード&リンク):
# URLリンク(kansai2channeler.hp.infoseek.co.jp)
#
# 課題内容: 組クラスを作成しなさい。組クラスは教員と学生からなる。
# 教員は1人で学生は最大40人とする。学籍番号で検索する機能をつけること。
# 学生には名前、住所、学籍番号(文字列型)という属性があり、教員には
# 名前、住所、教員番号(文字列型)という属性があるとする。
# 教員と学生の共通部分をまとめたクラスを定義し、それを継承する形で
# 教員クラスと学生クラスを定義せよ。
# それぞれの属性にはgetter、setter、表示関数を定義せよ。
# 継承した教員クラスで、名前を表示する関数では、「○○教授」、「○○助教授」
# などのように役職名を添えて表示する関数として、上書き定義せよ。
# これらの機能が正しく動作することを確認するmain関数(適当なサンプル)も
# あわせて作ること。
605:デフォルトの名無しさん
09/08/03 06:36:08
スレリンク(tech板:777番)
# [1] 授業単元:プログラミング演習
# [2] 問題文(含コード&リンク):
# URLリンク(dl1.getuploader.com)
606:デフォルトの名無しさん
09/08/03 07:11:34
スレリンク(tech板:776番)
# [1] 授業単元:プログラミング演習
# [2] 問題文(含コード&リンク):
# 以下の機能を持った関数を含むプログラムを作成せよ.
# 1.正の整数n,rを読み込み,その組み合わせnCrを計算する関数を再帰呼び出しを用いて作成せよ.
# 2.正の整数n,rを読み込み,その組み合わせnCrを計算する関数を再帰呼び出しを用いないで作成せよ.
607:デフォルトの名無しさん
09/08/03 07:20:42
>>606 [2]
% Prolog 見かけ再帰を含みませんが、実はfor/3やconcat_atom/3は再帰なしには書けない・・・
t606_2(N,R,X) :-
findall(N1,for(N,N1,R+1),L1),
findall(N2,for(R,N2,1),L2),
concat_atom(L1,'*',S1),
concat_atom(L2,'*',S2),
atom_to_term(S1,Term1,_),
atom_to_term(S2,Term2,_),
X is Term1 / Term2.
608:607
09/08/03 08:05:18
>>606 >>607 また違っていたようです。
t606_2(N,R,X) :-
Y is N-R+1,
findall(N1,for(N,N1,Y),L1),
findall(N2,for(R,N2,1),L2),
concat_atom(L1,'*',S1),
concat_atom(L2,'*',S2),
atom_to_term(S1,Term1,_),
atom_to_term(S2,Term2,_),
X is Term1 // Term2.
609:デフォルトの名無しさん
09/08/03 18:40:06
スレリンク(tech板:786番)
# [1] 授業単元: プログラミング実習
# [2] 問題文(含コード&リンク):台形公式により関数y=x^2とx軸によって
# 挟まれる部分のx=0〜x=8までの範囲の面積を求めよ。
# 分割は4で計算せよ。
610:デフォルトの名無しさん
09/08/03 18:47:56
>>609
% Prolog
URLリンク(nojiriko.asia)
611:デフォルトの名無しさん
09/08/03 20:56:19
>>602
-- Haskell で.総当たり
import Data.List (permutations)
t602 = [xs | xs@[e,f,g,h,i,n,o,t,w,y] <- permutations [0..9],
o /= 0, n /= 0, t /= 0, f /= 0, e /= 0,
a [o,n,e] + a [n,i,n,e] + a [t,w,e,n,t,y] + a [f,i,f,t,y] == a [e,i,g,h,t,y]]
where
a xs = foldl (\s i -> 10*s + i) 0 xs
main = print $ head $ t602
612:デフォルトの名無しさん
09/08/03 21:18:14
>>606
-- Haskell で.foldl1 は末尾再帰だから許して
comb n r | r == 0 = 1
| n == r = 1
| otherwise = comb (n-1) r + comb (n-1) (r-1)
fact n = foldl1 (*) [1..n]
comb' n r = fact n `div` (fact r * fact (n-r))
main = print $ comb' 4 2
613:デフォルトの名無しさん
09/08/04 08:59:20
スレリンク(tech板:794番)
# 【質問テンプレ】
# [1] 授業単元:アルゴリズムとデータ構造
# [2] 問題文(含コード&リンク):ハッシュ(チェイン法)を使ってkeyを検索し、
# 該当するものがあればそのdataを表示する。
# (実際には検索してkeyとdataを返すまでです)
# 詳しくはこちらで URLリンク(ime.nu)
# URLリンク(kansai2channeler.hp.infoseek.co.jp)
614:デフォルトの名無しさん
09/08/04 09:02:27
>>613
% Prolog でハッシュといえば述語のこと。
t613(Key,Data) :- 'KeyAndData'(Key,Data).
615:デフォルトの名無しさん
09/08/05 12:35:12
スレリンク(tech板:812番)
# 続けて申し訳ありません
# [1] 授業単元:プログラミング演習
# [2] 問題文(含コード&リンク):
#
# 引数に度(degree)をとるsin_degree関数を作成しなさい。
# math.hで宣言されているsin関数を使用せずに自作すること。
616:デフォルトの名無しさん
09/08/05 12:52:14
>>615
% Prolog
sin_degree(_角度,X) :-
R is (_角度 / 180) * 3.14159,
sin_degree(1,20,R,1.0,0.0,X).
sin_degree(M,N,_,_,X,X) :- M > N,!.
sin_degree(M,N,R,K,Y,X) :-
sin_degree(M,R,1,U),
Y2 is Y + U * K,
K2 is K * (-1),
M2 is M + 2,
sin_degree(M2,N,R,K2,Y2,X).
sin_degree(0,R,X,X) :- !.
sin_degree(N,R,Y,X) :-
Y2 is (Y * R) / N,
N2 is N - 1,
sin_degree(N2,R,Y2,X).
最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4631日前に更新/314 KB
担当:undef