- ベストアンサー
プログラミング課題解決方法
- プログラミングの課題で困っています。助けて下さい。
- 一次方程式と二次方程式の解を求めるプログラムの作り方を教えてください。
- 課題1-1から課題1-5までのプログラムをまとめて作成する方法を教えてください。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
#5 では haveValidEquation という変数を導入してますが, これはあとで 1回しか使っていないので, 当然省略することができます. そうすれば無駄な変数が減ってもっと「いい」かもしれない.
その他の回答 (6)
- kmee
- ベストアンサー率55% (1857/3366)
> 教科書まるまる読んで自分でやろうとしましたよ。しかしエラーばっかりでわけわからなくなりました。 だったら、その作ったプログラムと、エラーの内容を貼り付けてください、ということなんですよ。 その際、表示されたままをコピペすること。決して意訳などしないように。 文字数オーバーで全部貼り付けられないなら、エラーメッセージは先頭の10行くらいでもいいです。そういう大量にエラーが出るときは、先頭の方のエラーのせいで後ろのエラーが出てるの場合がほとんどですから(例えば、変数宣言を間違えると、後ろで「未定義」のエラーになる) そうやって整理することで、あなたも御自身の理解度を確認できるでしょうし、落ち着いて考えることで質問するまでもなくプログラムを思いつくかもしれません。 回答する側だって、あなたが理解できていない箇所の指摘だけで済みます。それより「がんばっている人は応援したくなる」という心理から、みんなもっとやさしい態度で接してくれるはずです。 プログラミング言語は、間違いながら覚えていくところがあります。自分で作ったプログラムが期待通りに動かなかった時に、どこに問題があるのか、どこまで正常に動いているのか、何故期待通りにならないのか、といったことを調べていくことで、自分が理解していないこと、誤解していることがわかってきます。 その意味では、エラーメッセージは「どこでどうして間違っているか」がはっきり教えてくれる「先生」です。 C言語は間違いに非常に寛容で、他の言語でエラーになるようなことをしても、何食わぬ顔でそのまま実行しようとするケースが多いです。(もっとも、その結果異常な動作になることがほとんどですが) エラーになるような間違いは、まだ簡単に修正できる方だと思ってください。
- Tacosan
- ベストアンサー率23% (3656/15482)
課題 1-3 っぽいものだけ :-) #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { long double a, b, solution; int haveValidEquation = scanf("%Lf", &a) == 1 && scanf("%Lf", &b) == 1; return haveValidEquation ? (solution = -b/a), printf(a == 1 ? "" : a == -1 ? "-" : "%Lf", a), printf("x "), printf(b == 0 ? "" : "%c %Lf ", (b > 0) ? '+' : '-', fabsl(b)), printf(" = 0 has a solution x = %Lf\n", solution), EXIT_SUCCESS : EXIT_FAILURE; } あんまり自信はないが, たぶん動く.
- anicicle
- ベストアンサー率36% (129/356)
とりあえず1-1くらい作ってソース提示してくれ。 その上でわからなかったら質問だ。 一応参考になりそうなURLは載せとく。 http://www.geocities.jp/stardust774/
- kmee
- ベストアンサー率55% (1857/3366)
(defun linear-equation (a b) (if (= a 0) nil (/ (- b) a))) (defun kadai1-1 (a b) (let ((c (linear-equation a b))) (format nil "~0fx~0@f=0.0 ; x=~0f" a b c))) (defun kadai1-2 (a b) (let ((c (linear-equation a b))) (concatenate 'string (if (= a 1) "x" (format nil "~fx" a)) (format nil "~@f=0.0 ; x=~f" b c)))) (defun kadai1-3-sub (a b c) (concatenate 'string (if (= a 1) "x" (format nil "~fx" a)) (if (= b 0) "" (format nil "~@f" b)) (format nil "=0.0 ; x=~f" c)))) (defun kadai1-3 (a b) (kadai1-3-sub a b (linear-equation a b))) (defun kadai1-4 (a b) (let ((c (linear-equation a b))) (if c (kadai1-3-sub a b c) "解けません"))) 課題1-1から1-4まで。 言語の指定が無いのでCommon Lispを使いました :-p
補足
C言語でお願いします。
- katouka09
- ベストアンサー率50% (130/256)
丸投げですか? しかも、自分で努力したことも見せずに・・・。 何のプログラム言語で作ればよいのか、指定もせず。 学校の宿題か何かですか? あなたに課題を出した人がここのサイトを見ていたら、どう説明するのですか? 他人に作ってもらったプログラムを説明できますか? 数学の授業で習った方程式の解を求めることが出来るなら、それをBASICやC言語で 実現させるだけです。 自分が理解できるように、参考書を見ながら自分で作ってみては?
補足
教科書まるまる読んで自分でやろうとしましたよ。しかしエラーばっかりでわけわからなくなりました。
- ts244
- ベストアンサー率41% (53/127)
結局何が分からないんですか? 方程式の解き方が分からないんですか(「解の公式って何さ」ってこと?)? 丸投げするから、代わりにプログラムを作って欲しいということ?
補足
プログラムを作っていただきたいです
補足
もう終わったんでどうでもいいです。御苦労さん