- ベストアンサー
C言語について知りたい!!
C言語を勉強しようと思ったのですが、 C言語って数学ができないとヤッパリ上達しないのでしないのでしょうか??それとも、別に数学はできなくてもC言語の知識をつける事は可能なのでしょうか?? C言語を勉強する上で必要になってくる数学って一体何でしょうか?? 関数とかでしょうか?? 必要になってくる数学の知識について教えてください! よろしくお願いしますm(_ _)m
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
Cに限らず、Delphi、PASCAL、Fortran、basicでもJavaでも何でも、「論理的に考える」こと、つまりコンピュータに何が出来るから、それを処理するには、どういう数値を順番にどういう風にすれば良いかを考えることが必要です。…で、学生が習う学問では、「それに近いこと」をするのは、数学か物理学になります。 今学校で教えているのは「公式を覚えて問題を解く」数学(というと数学の先生に怒られそう(^^;))ですが、「公式を論理的に作成する」本当の数学の手腕の方が必要です。たとえば、y=(ax+b)(cx+d)=abx^2+(ad+bc)x+bdと展開するのに必要なのは小学生でも判る単純な足し算、かけ算です。ですが、これを作るのに、「まずaとbをかけてそれをxの2乗の…」という風に、単純なステップに分けて考えて論理的に組み立てていく能力と言ったら良いでしょう。 現実問題は、賃金計算なら「この人の時間単価はxx円で、所定労働時間はh1時間、残業時間はh2時間、でも残業時間は単価2割り増しだから」とか、組み込みなら「スイッチを押すと、ポートの値が1から0に変るから、そうしたら、こっちのポートに1を書いてモータを動せば」とか、そんな程度の単純なステップを組み合わています。 これも、考えてみると、自分がやっている数値処理を、一ステップずつに分けてコンピュータに教えているだけです。 ですから、数学の「知識」は必要ありません。 # 必要になる知識程度なら、今の時代は、チョイとwebで調べりゃ良いんです(^o^)。 ちなみに私はプロのプログラマではありません(^^;)が。
その他の回答 (4)
- hel-cat
- ベストアンサー率35% (30/85)
IT業界で働いています。 C言語は数学の知識なくても学べます。 あえて必要かな?と思うのは四則演算と論理演算ですな。。。 (グラフィック系やりたいなら別だけど・・・数学できないとプログラム組むのに時間がかかる) プログラムというのはコンピュータに対して指示、命令を出すための手段です。 正しく書いてあげれば答えを出してくれます。 私も1X年この業界でSEやっていますが、数学できなくて困ったことありません。 今となっては笑い話ですが、入社試験(面接)で、「コンピュータとワープロの違いってなんですか?」と聞いたくらいです。 (う~ん、よく受かったって感じです) 数学を勉強したのは、情報処理の試験のときだけでした。。(死ぬかと思いました、なんてったって音大卒なんです。。。数学ってなにぃ~って感じで数学学科卒業の人捕まえて習ったくらいです。試験終わって忘れました。。。) ※だからといって、勉強するにこしたことはないです。 「関数=便利な道具」と思ってください。 正しく理解し、使用すれば正しい値を戻してくれます。 それは、どんな言語でも一緒です。 まぁ、言語によって得て、不得手(扱いやすいか扱いにくい)はありますが。。。 「言語」というくらいなんだからあくまでも言葉なんですよ。正しい日本語使うのとなんら変わりません。 正しく、指示命令を出してあげれば答えを出してくれます。 こんなこと言っていても、いま、新人教育も担当していれば、リーダーと言う立場にもあります。 C言語で理解するのが・・・やはりポインタの概念でしょうか? 新人教育で立派な大学や、大学院を卒業してこられた方でも間違った理解をしている人がいっぱいいます。 プログラミング言語を勉強するのであれば、動いたからいいや!ではなくて、自分の理解したと通りの記述をして、自分の思っている結果が出たかが大事だとおもいます。 ※どっかのサンプルをコピー/ペーストしてコンパイルして動いた!!=できたと思うのは間違いです。 そのことを肝に銘じて、正しく言語を理解してください。
- sha-girl
- ベストアンサー率52% (430/816)
プログラミング言語を学習する上で数学は必用条件ではありませんが、数学の知識が 多ければその分プログラムの可能性が広がります。 例えば3Dゲームを作りたいと思うなら、行列式と簡単な微積ぐらいはできないといけませんし、 数学が使えることで、計算量を軽減できる事もあります。 例えば 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 55 をfor分を使って10回足して求める事もできますが 等差数列の和の公式を知っていれば (10×(1+10)) ÷ 2 で計算量を軽減できますよね。 でも一番必用なのはC言語を学習する目的だと思います。
- Bonjin
- ベストアンサー率43% (418/971)
数学できなくてもプログラムはできます。四則演算程度の算数がわかれば基本的に大丈夫です。ですが、2進数と16進数ぐらいは読めた方がいいです。 プログラムを作る上で必要になってくる知識は、作るプログラムによって異なります。数値解析プログラムならば数値解析の知識が必要になりますし、画像処理プログラムなら画像処理の知識が必要になります。 上達の具合は、その人の向き不向きで大きくわかれます。向いてる人が1週間かければ覚えるられるものを不向きな人が覚えようとしても一生覚えられないこともあります。(これはちょっと言い過ぎかな?) C言語に限ったことを言えば、コンピュータの動作の仕組みなどについて、ある程度の知識を求められます。
- TALLY-HO
- ベストアンサー率29% (103/354)
数学が苦手でも上達はしますよ。 どちらかというと、新しい概念を自分なりのイメージに 変換&構築する能力と、知らないことを検索する能力が 大きいです。 必要になる知識は、開発するソフトの分野によります。 画像系ならフーリエ変換とか理解してるに越したことはありませんし、 パターン認識なら線形代数とか役に立ちます。