09/06/03 21:17:29
まだ解決してません!早く答えをお願いします。
期限は明日の朝くらいでいいです。
923:デフォルトの名無しさん
09/06/04 10:08:48
>>922
パスカルは使った事が無いのでLispで作っときました。
(defun d (a b c)
(if (< (- (* b b) (* 4l0 a c)) 0l0) (print "解が複素数である")))
勝手にパスカルに直してください。
924:デフォルトの名無しさん
09/06/05 01:20:32
言語はLispでも良かったのでそのまま提出しました。
ありがとうございます。
925:デフォルトの名無しさん
09/06/16 01:52:25
123456789の順に数字を並べて,数字の間に+,-を補うことで式を作り, その値が100になる組み合わせをすべて求め,その式を出力するプログラムを作成しなさい.
お願いします
926:デフォルトの名無しさん
09/06/16 18:08:51
組み合わせはゼロだな。
全て足し合わせても100には満たない.
927:デフォルトの名無しさん
09/06/16 19:28:33
小町算でしょ
928:デフォルトの名無しさん
09/06/16 20:12:12
>>926
頭固いなw
929:デフォルトの名無しさん
09/06/17 00:09:26
12345+6789だと少なくとも100は越えるな
930:デフォルトの名無しさん
09/06/17 20:00:47
>>925に挑戦してるんだけど、プログラミング初心者には、難しめですか?
配列をfor文で回すので、良いのかな?
配列とかfor文って基本的な処理だと思うんだけど、うまく使えないんだよなぁ。
ネストしたループ文がゴチャゴチャしちゃって。
どなたかヒントいただけないでしょうか?
基本的な構造は、配列を使ったループ文で作ればいいのでしょうか?
931:デフォルトの名無しさん
09/06/17 23:52:53
ネストが嫌ならある程度の処理でまとめて関数にしなさい
932:デフォルトの名無しさん
09/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=
URLリンク(kansai2channeler.hp.infoseek.co.jp)
933:930
09/06/18 02:20:11
>>932
おぉ、C言語ですね。
俺の頭では、難しすぎました。面白そうな例題だったんで、取り組んでみたんだけど。
最初は、配列とFor文の組み合わせで、やっていたんですけど、配列を連結するとなると、
どんどん複雑になって、分けわからなくなりました。
簡単に紙の上の手書きでやってみたんですけど、数回やっている内に組み合わせが
多くなってきて、混乱しました。
+、-、連結の3種類に分類すると言うことが、肝ですね。
連結がパターンの中の一つと考えられなかったのが、残念です。
掲載された処理、読んでみます。
934:930
09/06/18 02:44:28
これは、自分が思ってるよりも複雑でした。
パターンが3種類ということ以外にも、配列を複数個使って回してるようです。
Delphi6 personalで、C言語からPascalに書き換えてみたいと思います。
>>925さんじゃないですけど、非常に勉強になります。
932さん、ありがとうございました。
935:デフォルトの名無しさん
09/06/18 18:04:27
Pascalで書いてみた。
932氏のプログラムと違うのは式を計算する方法だけ。
・・・だと思うんだけど、どう違うかまではまだ読みきれてない。
結果は同じでした。
FreePascalなんで変なオプション入ってる。
あと、同じ理由で文字コードUTF-8です。
URLリンク(one.freespace.jp)
936:デフォルトの名無しさん
09/06/18 22:53:12
>>935
932さんも、935さんもネストが深くても、全体的にコードがすっきりして見やすいです。
課題をいかに分解し、一つ一つの処理にするかが、センスなんだなぁと思いました。
初心者には、勉強になります。
935さんのコードは、文字コードをSJISにして、オプションを一つ削除することで、
Delphi6 personalで実行できました。
937:デフォルトの名無しさん
09/06/23 14:31:05
integer変数nに適当な与えてnを素因数分解し、
その結果を表示するプログラムを作りなさい。
神様まってますっ!!
938:デフォルトの名無しさん
09/06/23 17:39:32
そんな簡単なものも思いつかないようだとプログラム関係への道は止めた方が良い。
939:デフォルトの名無しさん
09/06/23 18:08:16
>>938
スレタイをいちおくまんかい嫁。
940:デフォルトの名無しさん
09/06/24 16:08:26
>>939
お前は>>1を同じ数だけ読んでこい
>■全く分かってない阿呆も放置しないで優しく対応
これをやっただけだろ
941:デフォルトの名無しさん
09/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)))))
942:デフォルトの名無しさん
09/06/24 20:51:42
>>937 C言語
/*
(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))
)
)
)
*/
void p(int n) {
int x, y, z;
for(x=2, y=n; y != 1; x++) {
for(z=x; y % z == 0; ) {
printf("*%d", z);
y = y / z;
}
}
}
int main() {
int n;
scanf("%d", &n);
printf("1");
p(n);
}