C言語をプログラミングしているとき、必ず計算が必要になりますよね。数学的勉強をした方がいいのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (3件)

>>C言語をプログラミングしているとき、必ず計算が必要になりますよね。



ループ変数の足し算、引き算は使うけど、「数学」って意識するほどのことが無いことも多いです。

>>数学的勉強をした方がいいのでしょうか?

システム、プログラム設計において、数学的な考え方は必要なことも多いので、勉強して頭を鍛えておくほうがいいです。
    • good
    • 0
この回答へのお礼

ほんと、苦手なので勉強しようと思います。

お礼日時:2009/05/16 09:38

数学「的」勉強なら、必須でしょうね。



CGなどには行列演算などが必要になりますが、一般的な業務アプリなどではほとんど使いません。
しかし、どんなプログラムでも「問題を論理的に解き明かす」必要がありますから、数学的・論理的にモノを考える訓練は欠かせません。
    • good
    • 0
この回答へのお礼

そうですね、必須ですよね。

お礼日時:2009/05/16 09:37

>数学的勉強をした方がいいのでしょうか?



作るプログラムの分野によります。
数学的素養を必要としないプログラムもあります。
必ず計算を行なう、というわけではありません。
    • good
    • 0
この回答へのお礼

そうですね、計算が必要ないものもありますよね。

お礼日時:2009/05/16 09:39

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q中学生程度の数学の問題がまったくわかりません。基金訓練の試験問題のサン

中学生程度の数学の問題がまったくわかりません。基金訓練の試験問題のサンプルで手も足もでません。
助けてください。調べても理論がわからないのでまったく手も足もでません。泣きそうです。
どなたかご親切な方、解説をかいて教えていただけますでしょうか?
ネットに載せる関係上念のため数字を一部かえています。
助けて下さい。お願いいたします。

例)x(6x+4)+(4x+3)(3x-2)=
  (x+3)(x-3)=
(X+y+2)(X+y-2)=
5a(a-4b)-6ab=
(a+2)三乗 =

ルート13+ルート28=
(ルート8+ルート2)(3ルート6-2ルート2)=

x二乗+x-6ぶんのX二乗ーx-10=

X二乗+8X+10=0

x四乗ー5x二乗+7=0
(x-3)(x+1)=2x-8

Aベストアンサー

こんばんは No.2です

一個一個行かないと、一気には辛いと思いますよ。
中学と高校の頭くらいで、4,5年掛けてやるようなことですから^^

無理せず、ゆっくり。

ルートの中の話を。(疑問で頂いていますので)

~~~~~~
(ルート8+ルート2)(3ルート6-2ルート2) これも
普通に展開して、ルートを整理すれば大丈夫です。
 #掛け算のときに ルート の中なら中
 #外なら外同士を掛け算してくださいね
 #答えが 18√3 -12 になると思います。

の部分がまだよくわからないのです。
ルート8は2^*2で2ルート2ということはわかりました。
2ルート2+ルート2 で3ルート2でしょうか?
このあとの(3ルート6-2ルート2)の計算方法がわかりません
ルートが違うのでどのように計算したらいいのでしょうか?
~~~~~
(ルート8+ルート2)=3ルート2 で正解!

掛け算を普通にしてあげれば大丈夫ですよ。

3ルート2 ×(3ルート6-2ルート2)

これを普通に、展開してみてください♪
 #ルートの内外だけ注意してくださいね。

ルートの中身が違うときは、そのまま 別のものとして
扱ってください。
 #ここでは ルート12 が出てきます。
 #これが少し簡単にできますね (何かの2乗×何かになってます)

覚えることよりも、理解することのほうが大事ですから。
あせらず、じっくり。
No.3さんが言われてますね。
もうやっていることが、記号に変わっているだけですよ。

必ず見えてきますから。
心配しないで、着実に進んでください m(_ _)m

こんばんは No.2です

一個一個行かないと、一気には辛いと思いますよ。
中学と高校の頭くらいで、4,5年掛けてやるようなことですから^^

無理せず、ゆっくり。

ルートの中の話を。(疑問で頂いていますので)

~~~~~~
(ルート8+ルート2)(3ルート6-2ルート2) これも
普通に展開して、ルートを整理すれば大丈夫です。
 #掛け算のときに ルート の中なら中
 #外なら外同士を掛け算してくださいね
 #答えが 18√3 -12 になると思います。

の部分がま...続きを読む

Qプログラミング言語Cとプログラミング言語C++

プログラミング言語Cとプログラミング言語C++の違いって何ですか?
あと、プログラミング言語C++についていくつか質問があります。
#include <iostream>
using namespace std;
void main(){
cout << "Hello world!" << endl;
}
このプログラムについて質問なんですが、iostreamってプログラミング言語Cで言うstdio.hのことですか?
using namespace stdって何ですか?
あと、 cout <<"Hello world!"って何ですか?

Aベストアンサー

> プログラミング言語Cとプログラミング言語C++の違いって何ですか?

C++は、Cのほぼ全ての仕様を含み、クラス、テンプレート、例外処理など大幅に機能拡張した言語です。
細部の違いが知りたければ、下記を参照してください。
http://www.kijineko.co.jp/tech/cpp2c

> このプログラムについて質問なんですが、iostreamってプログラミング言語Cで言うstdio.hのことですか?

違います。
C++にもstdio.hがありますし、cstdioというヘッダもあります。

iostreamヘッダは、cin, cout, cerr, clogとそれらのワイド文字版を宣言するためのものです。
ですので、iostreamヘッダで宣言・定義される関数やクラスを使うだけでは一般的なファイルの操作はできませんし、sprintfやsscanfに相当するものもありません。
また、removeやrenameなど、ストリームとは関係のない操作も含まれていません。

> using namespace stdって何ですか?

「using指令」によって、名前空間stdの中にある名前を大域的名前空間でも使えるようにするものです。
せっかく名前空間を分けているのに、それを無効にしてしまうような機能ですから、安易にusing指令を使うのはお勧めしません。

> あと、 cout <<"Hello world!"って何ですか?

標準出力に対して、文字列"Hello, world!"を出力します。
ちなみに、endlは、改行を出力したあと、バッファにたまった内容を実際に吐き出します(フラッシュします)。単なる改行の出力ではないので要注意です。

C++の仕様は結構大きい方なので、遭遇した記述をひとつひとつ質問していたのではキリがありません。
まずは入門書を一冊読み、わからない用語等については、処理系のリファレンスを読むか、ネットで検索するなどしてください。

> プログラミング言語Cとプログラミング言語C++の違いって何ですか?

C++は、Cのほぼ全ての仕様を含み、クラス、テンプレート、例外処理など大幅に機能拡張した言語です。
細部の違いが知りたければ、下記を参照してください。
http://www.kijineko.co.jp/tech/cpp2c

> このプログラムについて質問なんですが、iostreamってプログラミング言語Cで言うstdio.hのことですか?

違います。
C++にもstdio.hがありますし、cstdioというヘッダもあります。

iostreamヘッダは、cin, cout, cerr, clogとそれらのワイド...続きを読む

Q国立の数学の試験問題

国立の学校の試験問題です。どういう風に考えたらよいのかがわかりません。計算過程を含めてどなたか、教えて頂けないでしょうか。

演算※がa※b=a+b-abと定義されているとき、y*y>0を満たす整数yを求めよ。回答は1です。

また、この問題はどの分野を勉強すればよいのでしょうか。

Aベストアンサー

y*y>0 → y※y>0ですか?もしそうだとすると、
y※y=2y-y^2>0
なので
y^2-2y<0
y(y-2)<0
0<y<2
よりy=1となります。

Qc言語はどのくらい出来るようになれば良いのでしょうか? 他の言語を勉強する予定ですけど、まずはc言

c言語はどのくらい出来るようになれば良いのでしょうか?

他の言語を勉強する予定ですけど、まずはc言語を勉強しようと思い勉強してるのですが、どこまで出来るようになれば良いのでしょうか

Aベストアンサー

単にC言語の文法を勉強するだけなら難しい事ではありません。
但し、仕事として活用できるレベル、又は他の言語を理解するのに
役に立つレベルになるには、多くの知識と経験が必要になります。

C言語を使って、そこそこ難しいアルゴリズムでも簡単に作れる程度
(最低限)になれば、他の言語でも習得するのは容易ですが、勉強の
目的が他の言語を学ぶ足がかりにするだけなら、C言語を学ぶ効果は
低い物となります。

陸上競技で記録に関係無く100m・200m走るだけなら、誰でも簡単に
出来るが、競技大会において上位入賞できるレベル、又は短距離走
での能力を生かし、他の競技(例えば走り幅跳び)で好記録を出せる
レベルになる事は難しいのと同じ。

Q数学や物理の試験問題を作るための便利なソフトについて。

高校の数学や物理の先生方に質問です。

定期試験や日ごろの試験の際、問題を作成することになると思いますが、図形やグラフを描くのは大変です。

先生方は、エクセルまたはワードで作成されるとのことですが、
私はエクセルやワードはあまり使いたくありません。

グラフがテンプレートで載っていたり、
簡単に曲線の形を微調整したり、
数式をボタンのクリック等で簡単に挿入できたりするような便利なソフトはないでしょうか?

一応、電器屋さんで見てきたのですが、どれも5万~10万以上と高いです。
また、内容が詳細には分からないため、簡単に「買ってみる」ことは出来ません。

便利なソフト、もしくは無料で手に入れられるソフト、
「すでにこんな便利なソフトを使っている」という方、
ご紹介をお願いします。

よろしくお願いします。

Aベストアンサー

数学ならTeXでしょう。
フリーですし,グラフもちゃんとかけますよ。
何といっても一番美しいです。

あとはStudy Aidなんかは有名ですね。お金はかかりますが。

QC言語プログラミング講座第二回 - 計算と変数 -

You Tube
C言語プログラミング講座第二回 - 計算と変数 -
https://www.youtube.com/watch?v=MJ9qrhJFdHE
で最後に以下のプログラムが出てきます。

#include <stdio.h>

int main(){
int x = 5;
int y = 8;
printf("%d * %d = %d\n" , x,y, x * y);
int X = 3 ;
int y = 11;
printf("%d * %d = %d\n" , x,y, x * y);
return 0;
}

http://codepad.org/
 でコンパイルすると
In function 'main':
In function 'main':
Line 8: error: redefinition of 'y'
Line 5: error: previous definition of 'y' was here 以上エラーが出ます。
以上のエラー直訳後は以下です。
関数内の「メイン」:
8行目:エラー: 'Y'の再定義
5行目:エラー:'Y'の前の定義ここにいた
 以上ですが! 
転記ミスでしょうか?
 よろしくお願いします。

You Tube
C言語プログラミング講座第二回 - 計算と変数 -
https://www.youtube.com/watch?v=MJ9qrhJFdHE
で最後に以下のプログラムが出てきます。

#include <stdio.h>

int main(){
int x = 5;
int y = 8;
printf("%d * %d = %d\n" , x,y, x * y);
int X = 3 ;
int y = 11;
printf("%d * %d = %d\n" , x,y, x * y);
return 0;
}

http://codepad.org/
 でコンパイルすると
In function 'main':
In function 'main':
Line 8: error: redefinition of 'y'
Line 5: error: previous definition of 'y' was here ...続きを読む

Aベストアンサー

> intがなかったらOKですかね
Xも小文字のxの誤記ですので、それらを修正すればOKですよ。

#include <stdio.h>

int main(){
int x = 5;
int y = 8;
printf("%d * %d = %d\n" , x,y, x * y);
x = 3 ;
y = 11;
printf("%d * %d = %d\n" , x,y, x * y);
return 0;
}

Q数学I センター試験問題

数学Iの問題です。解法のご解説をよろしくお願い致します。

問題:△ABCにおいて、AB=5、BC=2√3、CA=4+√3とする。
このとき、cosA=コ/サである。
△ABCの面積は、シス+セ√ソ/2である。

Bを通り、CAに平行な直線と△ABCの外接円との交点のうち、
Bと異なる方をDとするとき、
BD=タ-√チであり、台形ADBCの面積はツテである。

コ~テに入る数字又は符号を答えよ。

Aベストアンサー

余弦定理より
cosA=(AB^2+CA^2-BC^2)/(2*AB*CA)
   =(25+19+8√3-12)/{10(4+√3)}
   ={8(4+√3)}/{10(4+√3)}
   =4/5
sinA=√(1-cos^2A)=3/5
よって、△ABCの面積=(1/2)*5*(4+√3)*(3/5)=(12+3√3)/2

この台形は等脚台形
<<弧BCの円周角なので、∠BAC=∠BDC。
  また、AC//DBなので、∠BDC=∠ACD。そして、∠BCD=∠BADから
  ∠BCA=∠DAC >>
△ABD≡△CDBだから、CD=5。
△CDBで余弦定理より、
12=BD^2+25-2*BD*5*(4/5) <<cos(∠BDC)=cos(∠BAC)なので>>
BD^2-8BD+13=0を解いて、BD=4-√3(4+√3の方はACに一致)
∠ABD=∠BACなので、△ABDの面積は(1/2)*BD*AB*sin(∠BAC)より
(1/2)*(4-√3)*5*(3/5)=(12-3√3)/2
よって、台形ADBCの面積=△ABCの面積+△ABDの面積=12
となります。

余弦定理より
cosA=(AB^2+CA^2-BC^2)/(2*AB*CA)
   =(25+19+8√3-12)/{10(4+√3)}
   ={8(4+√3)}/{10(4+√3)}
   =4/5
sinA=√(1-cos^2A)=3/5
よって、△ABCの面積=(1/2)*5*(4+√3)*(3/5)=(12+3√3)/2

この台形は等脚台形
<<弧BCの円周角なので、∠BAC=∠BDC。
  また、AC//DBなので、∠BDC=∠ACD。そして、∠BCD=∠BADから
  ∠BCA=∠DAC >>
△ABD≡△CDBだから、CD=5。
△CDBで余弦定理より、
12=BD^2+25-2*BD*5*(4/5) <<cos(∠BDC)=cos(∠BAC)なので>>
BD^2-8BD+13=0を解いて、BD=4-√3(4+√3...続きを読む

QVisual Stdioで、C言語のプログラミングを勉強してるのですが

Visual Stdioで、C言語のプログラミングを勉強してるのですが、
不明点があるため質問させて頂きます。

【前提条件】
----------------------------------------------------
< TestHeader.h >
typedef struct A {
int (*a)(struct B* x, char* y, struct C** z);
} A;
----------------------------------------------------
< TestSource.c >
static int func(struct B* x, char* y, struct C** z)
{
return 0;
}

struct A D = {
.a = func,
};
----------------------------------------------------

上記の条件で、< main.c >を作成し、
main関数からfunc関数へ遷移するようにしたいです。
書籍などで調べたのですが、main関数の作成方法が分かりません。

ご教授のほど、よろしくお願いします。

Visual Stdioで、C言語のプログラミングを勉強してるのですが、
不明点があるため質問させて頂きます。

【前提条件】
----------------------------------------------------
< TestHeader.h >
typedef struct A {
int (*a)(struct B* x, char* y, struct C** z);
} A;
----------------------------------------------------
< TestSource.c >
static int func(struct B* x, char* y, struct C** z)
{
return 0;
}

struct A D = {
.a = func,
};
-----------------------------------------------...続きを読む

Aベストアンサー

> struct A D = {
> .a = func,
> };

こういうフィールドを指定した初期化って、C99で追加されたもので、古い規格に準じたCだと対応していません。
すくなくともVisual Studio 2008以前では対応してないようです。
2010では一部対応した、という記述も見掛けましたが、確認はとれてません。

それ以前の規格だったら、
struct A D={ func } ;
とフィールド指定なしに書く(ただし、間を省略することができないので、初期化の必要のないフィールドの分も必要となるケースがある)か、
strcut A D ;
D.a=func ;
と、宣言と初期化を分けるか、です。


main.cを別ファイルに作るなら
・Dをmain.cから使えるようにするため、 TestHeader.h に
extern struct A D;
と宣言を入れておく。
・Dの初期化は 初期化子を使うか、初期化関数を用意する。
関数を用意する場合は、同じくTestHeaderにプロトタイプ宣言を書いておく。
・共通で使えるように、main.cに#include "TestHeader.h"を記述する


ところで、 typedefでstruct AをA型として使えるようにしていますが、それは使わないのですか?

> struct A D = {
> .a = func,
> };

こういうフィールドを指定した初期化って、C99で追加されたもので、古い規格に準じたCだと対応していません。
すくなくともVisual Studio 2008以前では対応してないようです。
2010では一部対応した、という記述も見掛けましたが、確認はとれてません。

それ以前の規格だったら、
struct A D={ func } ;
とフィールド指定なしに書く(ただし、間を省略することができないので、初期化の必要のないフィールドの分も必要となるケースがある)か、
strcut A D ;
D.a=func ;
と、...続きを読む

Q組み込み系の試験問題

来月受ける組み込み系の会社で数学とソフトウェア基本について
試験問題が出るそうです。

どういう問題が出ますでしょうか?

数学に関してはSPIやGAB、ソフトウェア基本知識については
基本情報試験の問題を勉強すればよろしいのでしょうか・・・?

よろしくお願いいたします。

Aベストアンサー

組み込み系ではありませんが、
私が受けたソフトウェア開発会社は、
・内田クレペリン精神検査
・アルゴリズム
をやらされましたね。

アルゴリズムに関しては、
2分探索やソートくらい覚えておけば十分解けるレベルでした。

受ける会社のことが分からないので何とも言えませんが、
広く浅く知ってるといいかも知れません。

ちなみに私は
1次試験で履歴書忘れて
2次試験で遅刻して
3次試験で連絡無しで遅刻して落ちました。

QC言語プログラミングにて、arctanのマクローリン展開式を用いた計算

C言語のプログラミングについてです。
関数f(x)=arctan⁡xのマクローリン展開式を用いて、f(x)の値を、展開式のn項目までの計算結果と、n+1項目までの計算結果の相対誤差が10^(-10)以下になるまで(有効桁数10桁を保証するまで)試行して計算し、出力するプログラムを作成するという問題です。
次のように、展開式の項数を10000項と設定してプログラムを作成してみましたが、実行結果が-nan(ind)と出力されてしまい、有効桁数10桁での出力がされません。ソースコードのどの部分に不備があるのでしょうか?
以下ソースコードです。
#include<stdio.h>
#include<math.h>

int main(void) {
int i;
double x, a1, a2, arctan;
x = 0;
a1 = 0;
a2 = 0;
arctan = 0;

printf("f(x)=arctan x のマクローリン展開式よりf(x)の値を求める。\n");
printf("x=");
///数値xをキーボードから入力///
scanf_s("%lf", &x);

///有効桁判別ループ開始///
do {
///前値の受け渡し///
a2 = a1;

///項数の設定(10000項と設定)///
for (i = 1; i <= 10000; i++) {
///arctanのマクローリン展開式///
arctan = pow(-1, i - 1)*pow(x, 2 * i - 1) / (2 * i - 1);
a1 = a1 + arctan;
}

///相対誤差が10^-10以下になったら止める///
} while (fabs(a1 - a2) / a1 <= pow(10, -10));

///最終的な計算結果を出力///
printf("f(x)= %.9e \n", a1);

return 0;
}

C言語のプログラミングについてです。
関数f(x)=arctan⁡xのマクローリン展開式を用いて、f(x)の値を、展開式のn項目までの計算結果と、n+1項目までの計算結果の相対誤差が10^(-10)以下になるまで(有効桁数10桁を保証するまで)試行して計算し、出力するプログラムを作成するという問題です。
次のように、展開式の項数を10000項と設定してプログラムを作成してみましたが、実行結果が-nan(ind)と出力されてしまい、有効桁数10桁での出力がされません。ソースコードのどの部分に不備があるのでしょうか?
以下...続きを読む

Aベストアンサー

No1,No2の方の指摘はもっともですが、
そもそも、このマクローリン展開が成立するのは、負の数を除いて考えれば、0<=x<=1 の範囲です。
上記以外では、成立しません。
入力値を0<=x<=1に限定すれば、正しい結果が導かれています。
printf("f(x)= %.9e \n", a1);
のあとに
a2 = atan(x);
printf("arctan(x)= %.9e \n", a2);
を追加し、確認すればわかります。


人気Q&Aランキング

おすすめ情報