只今ゼロからプログラミングの勉強をしています。
言語はC言語を習得したいと思ってます。
(将来的にはJavaも!)
す~っごく初歩的な質問で申し訳ないんですが
関数とは何でしょうか?
引数とは何でしょうか?
またその関係について、非常にわかりやすく
簡単に教えていただけないでしょうか?
よろしくお願いします。

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

A 回答 (5件)

関数=電子レンジ


引数=レンジに入れる「弁当」 や 電子レンジの「設定」(例えば3分あたためるの「3」など」

電子レンジ(弁当, 3)
  ↓    ↓  ↓
 関数   引数1 引数2

これを実行した結果としてふさわしい結果は普通は「あったか弁当」の誕生でしょう。
であるとすれば、次のようになります。

電子レンジ(弁当, 3)
───────────
     ↓
この(関数+引数)全体で「あったか弁当」という「値」を返してくれる。
    • good
    • 2
この回答へのお礼

回答ありがとうございました。
とてもわかり易くて理解できました。
更なる飛躍を目指したいと思います!

お礼日時:2001/07/06 19:34

C言語では、関数が基本になります。


その関数へ渡す値が引数です。

C言語はmain関数から始まります。
そのmain関数の中に長々と処理を書いている人もいますが、プログラムの可読性が悪くなります。そこで、纏まった処理は下請けに出します、その下請けが関数です。そのとき必要な部品数を伝えるのが引数です。

簡単な例
/*プロトタイプ宣言*/
int wa(int , int);
int seki(int, int);

/*main関数*/
void main()
{
   int a, b ,c ,d;
   a = 10;
   b = 20;
   c = wa( a , b );
   d = seki( a, b );
}
/*関数*/
int wa(int x, int y)
{
   return x + y;
}
int seki(int x, int y)
{
   return x*y);
}

関数int wa(int x, int y),int seki(a ,b)
実引数 a,b.........実際この引数に値が入って渡される。
仮引数x,y..........こちらは引き受ける引数で、仮にx,yとなっているだけです。

(このソースをコピー&ペーストで使用できません。理由:可読性をよくするために、全角スペースを入れています)
以上、簡単な説明ですが、ご参考まで(^^;
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
参考ソースまで付けていただいて
よくわかりました。

お礼日時:2001/07/06 19:30

ゼロからプログラムを勉強しているとのことですが、Cプログラミングではmain関数という関数を使います。


プログラムの動作はこのmain関数の中に記述された一連の処理を行うことによって実現します

C言語で最初に作るプログラムの定番はHello.cです。
具体的に記述すると以下のようになります。

#include <stdio.h>
void main(){
printf("Hello World!");
}

このプログラムは画面にHello World と表示するだけの処理をします。

このように、処理が短いときはmain関数だけ使ってプログラムが書けるので、関数や引数を気にする必要はありません。

しかし、処理が長くなったり、複数の人間で分担して作業を行うようになるとmain関数のなかに全部の処理をダラダラっと記述するのは効率上よくありません。
そこで、main以外に関数をつくり、処理の分担を行うのです。

たとえばプログラムで電卓を作りたい場合、電卓の処理を考えると、足し算、引き算、掛け算.....といくつかの処理が考えられます。
そこで、足し算の処理をする関数、引き算の処理をする関数.....といくつかの処理を関数としてまとめておくのです。
足し算関数の例を以下に示します。

int tasizan(int suji1,int suji2){
int ans;//加算の答えを格納
ans=suji1+suji2;//与えられた引数を足した答えをansの中に入れる
return ans;//加算の答えを返す
}

tasizan は関数名で、関数の処理をあらわすような名前を任意で決定できます。(好みで付けてください)
tasizan関数の次の( )内に記述されたsuji1、suji2を引数といいます。
これは、関数のパラメータです....
といってもなんのことかわからないと思うので、もう少し我慢してよんでください。

プログラムの全ての動作はmain内で実行されます。つまり、分けて作ったtasizan関数をmain関数のなかに組み込まなければなりません。
main関数にtasizan関数を組み込むと以下のようになります。

#include <stdio.h>
void main(){
int kaitou;
kaitou = tasizan(3,8);//足し算関数の答えをkaitouの中に格納
printf("3+8=",%d);
}

足し算の処理がtasozan(3,8)の一行で済みました(^^)
足し算関数ではtasizan(引数1、引数2)では引数1と引数2の足し算を返します。
この返される数値を戻り値と言い、tasizan関数内のreturan ...で指定された値を返します。

このように、関数には引数と戻り値があります。(引数も戻り値もない関数もあり処理内容によってさまざまです)
また、プログラム内で同じ処理を頻繁に利用する場合も記述が短くなり、プログラムが整理されます。


以上です。

質問者のプログラミング理解度がわからないので、長々と書いてしまいました。ひまだったし...
厳密に言うと上記の内容で正しくないこともありますが、単純に説明するため難しいことは省いています。

では、がんばって勉強してください。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
もっともっと理解を深めていきたいと思います。

お礼日時:2001/07/06 19:32

> 関数とは何でしょうか?



C言語では、処理の単位が関数になります。一連の処理・操作をひとくくりに
まとめて、名前をつけたものが関数です。

関数には、予め用意されているものもありますが、自分で作ることもできます。


> 引数とは何でしょうか?

引数とは、関数に与えるパラメータ、つまり条件になります。

関数は、何か処理をやってくれるものなので、誰か(これも関数です)が
「処理をよろしく」と、その関数の名前で呼んであげます。そのときに、
その関数次第では 仕事の条件を指定できて、それを引数(ひきすう)と
呼びます。

条件を指定する必要が無い、もしくは、できないという関数を作ることも
できます。そういった関数には、引数がありません。


# 分かり難ければ、補足をしてください
    • good
    • 0
この回答へのお礼

回答ありがとうございました!
よぉ~くわかりました!
どの本を参考にしてもその辺のところの
説明ってあまりされてなくてボヤ~っと
しか理解していなかったので・・・。
ありがとうございました。

お礼日時:2001/07/06 16:37

関数はなにかを


コンピュータにしてもらいときに使うコマンドです。

引数は例えば数学で出てくる“x”
のようなもので、代数ですかね。
あとで、xに1を代入したり2を代入したりと使います。

ところで、ここらへんの事から
聞いているようだと、大変な時間が掛かると思われます。
できれば、もっとよくわかる本などを、買ったほうがいいと思います。
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます!
どの本を参考にしてもその辺のところの
説明ってあまりされてなくてボヤ~っと
しか理解していなかったので・・・。
関数と引数の関係ってところが
まだイマイチよくわかりません・・・。
教えて下さい。

お礼日時:2001/07/06 16:40

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

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

Q【確率統計】99%信頼区間に6個中、5個入ること?

Aが、Bと同等であることを示したいです。

A及びBは正規分布を示し、Bはμ=100、σ=1.0という前提です。

Aを5個測定して、Bの99%信頼区間に入れば、BはAと同等であると言いたいのですが、その場合、危険率は5%となります。

測定結果が信頼区間から外れる確率は5%あるので、判定基準を5個中、5個としてしまうと厳しい判定だと思います。
そこで、6個中、5個が99%信頼区間に入ればAはBと同等と結論付けたいと思いますが、これでは判定が緩すぎると言われる不安があります。

測定のn数はこれ以上増やせません。
6個中、5個でOKとすることについて、どのように理論だてれば良いでしょうか?
また、1個は外れ値が出てもOKとすることを前提として、「6個中、5個が99%信頼区間に入る」の代案がありましたら、ご教示お願いいたします。

Aベストアンサー

> Aを5個測定して、Bの99%信頼区間に入れば、BはAと同等であると言いたいのですが、その場合、危険率は5%となります。

99%信頼区間とありますが、母平均の信頼区間ではないですよね。
多分、Bの分布の99%を覆う区間のことを言っているのだと思いますが、それを信頼区間とは呼ばないでしょう。

さて本題ですが、もしAがBと同じ分布であるなら5個のデータがすべてBの99%区間に入る確率は0.99^5=0.95099なので、確かにほぼ有意水準5%の検定になります。
一方6個中5個以上とすると0.99^5*0.01*6+0.99^6=0.99854なので、有意水準0.146%の検定になります。
データ数が異なるので一概には言えませんが、有意水準を小さくとると検出力は悪くなるので、判定が緩すぎると言われる可能性がありますね。
でしたら、99%区間ではなくもう少し狭めて有意水準を5%となるようにしては如何でしょうか?
0.93715^5*(1-0.93715)*6+0.93715^6=0.95000

しかし、この方法ではAとBが同じ分布であるという検定にはなりませんね。
平均と分散が異なっていてもBの99%区間に入いる確率が99%である分布を考えてみてください。

もし、「A及びBは正規分布を示し、Bはμ=100、σ=1.0という前提」が確かならば、Aのデータから標本平均と標本分散を計算し、μ=100、σ=1.0かどうか検定した方が良いように思います。
このとき、個々の検定の有意水準は2.5%とします。
データ数は多い方が良いので5個よりは6個ですべきです。

あと付け加えると、同等性の検定について調べてみることをお勧めします。
簡単に説明すると、統計的仮説検定は同じであるということが基本的にはできません。
そこで、ある程度以上の違いを十分な検出力で検出できるように検定し、その結果有意でなければ、帰無仮説を支持しようというのが同等性の検定です。

> Aを5個測定して、Bの99%信頼区間に入れば、BはAと同等であると言いたいのですが、その場合、危険率は5%となります。

99%信頼区間とありますが、母平均の信頼区間ではないですよね。
多分、Bの分布の99%を覆う区間のことを言っているのだと思いますが、それを信頼区間とは呼ばないでしょう。

さて本題ですが、もしAがBと同じ分布であるなら5個のデータがすべてBの99%区間に入る確率は0.99^5=0.95099なので、確かにほぼ有意水準5%の検定になります。
一方6個中5個以上とすると0.99^5*0.01*6+0.99^6=0.99854な...続きを読む

QC言語において、関数とその役割、また、引数とその役割、仮引数、実引数とは?

C言語初心者です。
そもそもPC使うのも苦手ですがよろしくお願いします。
C言語において、関数とその役割、また、引数とその役割、仮引数、実引数の役割を、実例を用いて簡潔に説明していただけると助かります。お願いします。

Aベストアンサー

そんなに一気に理解しようとしても難しいですね。
http://www.kyoto-su.ac.jp/~yamada/ap/parameter_argument.html
を眺めてみてください(仮引数と実引数の意味が書いてある。ただしC言語であんまり仮引数がとか実引数が、という言い方はしないような)。
C言語においては全ての処理のかたまりが「関数」です。関数は何かの処理を行って値を返すことも返さないこともあります。
ここの例でいうとf(int x)は値を返す関数、main()は返さない関数で、ここからプログラムの処理が始まります(そういうルールになっている)。
このページのプログラムはちょっと古い書き方なんで今だと警告が出る可能性があります。

Q白球5個、赤球2個、黒球3個の計10個を2組に分ける方法は何通りか

白球5個、赤球2個、黒球3個の計10個を2組に分ける方法は何通りか
まず、白球5個は(5,0)、(4,1)、(3,2)の3通りに分けられると考えました。
次に白球5個を(5、0)に分けた場合、赤球2個は(2,0)、(1,1)、(0,2)の3通り、黒球3個は(3,0)、(2.1)、(1,2)、(0,3)の4通りに分けられるので、計12通りに分けられると考えました。同様に、白球5個を(4,1)、(3,2)に分けた場合も赤球2個と黒球3個をそれぞれ計12通りに分けられるので、最終的に白球5個、赤球2個、黒球3個の計10個を36通りに分けられると考えました。
しかし、間違っているようです。どこか間違っているのか分かりません。アドバイスいただければと思います。よろしくお願い致します。

Aベストアンサー

10個と0個に分けた場合は2組に分けたとは言わないのでは?

答えは35通りではないですか。

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コロッケ1個10円お一人様5個まで  何個買いますか?

「コロッケ1個10円お一人様5個まで」
みなさんは今晩のおかずなら何個買いますか?
何回も並んでたくさん買ったり、一緒に連れている子供を一人としてたくさん買いますか?

わたしは5個買っちゃいました。
明日の朝もこれでコロッケは決定です。

Aベストアンサー

そりゃ安い!早速並ばねば!!
7人家族に5個では喧嘩の元!
子どもにも並ばせて10個は最低ライン。
がんばって15個ゲットできたら翌朝コロッケサンドイッチに決定。
・・・たしか冷凍コロッケがあったはずだけど。

QC言語の関数の実引数と仮引数の名前について

 C言語で関数を使う場合、実引数と仮引数の名前(変数名)は、変えなければならないのでしょうか、同じでもいいのでしょうか。C言語のルールでは、どうなっているのでしょうか。よろしくお願い致します。

Aベストアンサー

同じでも構いません。

それぞれの変数の有効範囲(スコープ)が異なりますので、問題ありません。

実引数は定義場所により有効範囲は異なりますが、仮引数はその関数の中でのみ有効です。
両方の範囲が重なった場合はその関数内では仮引数の方が有効になります。

Q箱ティッシュはなぜ5個入り?

箱ティッシュはなぜ5個入りパックばかりなのでしょうか。

箱のサイズが最近は小さくなっています、にもかかわらず5個入りばかりですよね。
特に深い意味は無いのでしょうか。

Aベストアンサー

自信はない、・・・というか想像ですが、

箱ティッシュが1個でしか売っていないと、値段が高くなってしまいます。だから、複数個入りパックで売ることにしたのだと思います。だからといって、10個入りパックで売ると多すぎて家へ持って帰るときに邪魔になる・・・。
5個入りが値段も大きさもちょうどいい数なのでは?

Qプログラミング(配列と関数の引数)

a : ABCDE
a : ABCDEFGH
Len : 8
a : FGHIJ
a : FGH
a : FGH, c : FGH
上記のように表示されるプログラムを作りたいのですが、なかなかできません。下記のようなプログラムを作ったのですがどこが間違っているのかよくわかりません。分かる方、指摘をお願いします。
#include <stdio.h>

void my_strcpy(char s[], char t[]);
int my_strlen(char s[]);
void my_strcat(char s[], char t[]);

int main(){
char a[10];
char b[10] = "ABCDE";
char c[] = "FGH";
int len;

my_strcpy(a, b);
printf("a : %s\n", a);

my_strcat(a, c);
printf("a : %s\n", a);

len = my_strlen(a);
printf("Len : %d\n", len);

my_strcpy(a, "FGHIJ");
printf("a : %s\n", a);

a[3] = '\0';
printf("a : %s\n", a);

if(strcmp(a, c) == 0){
printf("a : %s, c : %s\n", a, c);
}

int i, s, t;
my_strcpy(a, b + 2);
printf("a : %s\n", a);

void my_strcpy(char s[], char t[]){
for (i = 0; t[i] != '\0'; i++){
s[i] = t[i];
}
s[i] = '\0';
}

int my_strlen(char s[]){
int i;
for (i = 0; s[i] != '\0'; i++);
return i;
}
void my_strcat(char s[], char t[]){
int i, j;
for (i = 0; s[i] != '\0'; i++);
for (j = 0; t[j] != '\0'; i++, j++){
s[i] = t[j];
}
s[i] = '\0';
}

}

a : ABCDE
a : ABCDEFGH
Len : 8
a : FGHIJ
a : FGH
a : FGH, c : FGH
上記のように表示されるプログラムを作りたいのですが、なかなかできません。下記のようなプログラムを作ったのですがどこが間違っているのかよくわかりません。分かる方、指摘をお願いします。
#include <stdio.h>

void my_strcpy(char s[], char t[]);
int my_strlen(char s[]);
void my_strcat(char s[], char t[]);

int main(){
char a[10];
char b[10] = "ABCDE";
char c[] = "FGH";
int len;

...続きを読む

Aベストアンサー

コピペしてコンパイルしてみましたが、
エラーメッセージからはわかりにくい問題のようですね。

問題は、main()の括弧閉じ「}」の位置が不適切です。
現在は最後に「}」がありますが、これは本来my_strcpy()の定義の前に
なければなりません。
my_strcpy(), my_strlen(), my_strcat()は独立した関数なので、
main()の定義の外に出さないといけないわけです。

あとmy_strcpy()でint iの宣言が抜けてるようですが、
これはコンパイルエラーからすぐわかるので
たいした問題ではないでしょう。

Q5個の電球の明るさ

6V 2.4Wの電球を5個つなごうとしています。
電球1個ずつにスイッチを取り付けたいので、現在並列つなぎにしています。電球1個だけをつけたときの明るさ(電球にそのまま6Vの電圧をかけた時の明るさ)と、5個同時につけた時の電球1個あたりの明るさを同じにすることは出来るでしょうか?

Aベストアンサー

回答に対するお礼部分の質問に返答です。
その通りです。

 ACアダプターは絶縁物と銅線、鉄、金属めっき、といった、物を使い、電流が多少多く流れても、ほかの物質に変化しない物質で作られています。
但し、アダプターから電流を流し出してもらうには、何百キロメートルも離れた、発電所に頼らなければなりません。
 アダプターの中にも、必ず、電線の回路をまとめて
電気抵抗があります。アダプターに手を触れると、暖かいのは、その内部抵抗で発熱しているからです。

 しかし、化学変化に頼って内部で電圧と電流を作っている、しかも寿命のある(後ろの参考)、取り出す電流で、電池の内部抵抗が予測出来ない大きさで変化する乾電池と比較すると、ACアダプターの電線の内部抵抗の変化は、ほんのわづかで、計算もできますから、電圧降下の計算式はいつでも当てはまり、RxIボルト電圧降下して下がった電圧が出てきます。
ACアダプターに指定された範囲で使う限り、安定しています。範囲は、VAの値で見れます。(ボルトアンペアの数字で分かります)オーバーすると焼けてしまいます。

参考

★乾電池というのは、+電気を帯びた+イオン物質と-電気を帯びた物質(分子)2つの間で、電子が+イオンの方に流れていって結合中和して徐々に違った物質になってしまい、電流を流す電気を帯びた分子がなくなってしまう、と、電池の寿命です。
たいした意味がありませんが、こじつけると、電池が中和して、電流をだせなくなった時を、電池の内部抵抗が∞(むげんだい)オームになったといいます。

 電池の内部で化学変化を起こす物質の間で電子を流す原理(+と-に電球を接続した時流れます)、の電源ですから、化合してしまうと、化学変化が終わってしまうのです。
 自動車の鉛を使ったバッテリーの様に、中和して違う物質「酸化した鉛」になってしまって電流を流せない極板に変化したのを、外から、逆に強制的に電圧を加えて電流をバッテリーに流し込んでやると、中和していた電極は、分解されて元の電極に戻る電池もあります。元に戻す操作を●「充電」といっています。

 携帯用電動工具(ドリル)、デジカメ用電池は充電して再生可能な電池ですが、単一,単二、単三などは、再生できないでしょう?。
 電池は必ず直流電池です。携帯に絶対なくてはならないものです。必要なものです。

回答に対するお礼部分の質問に返答です。
その通りです。

 ACアダプターは絶縁物と銅線、鉄、金属めっき、といった、物を使い、電流が多少多く流れても、ほかの物質に変化しない物質で作られています。
但し、アダプターから電流を流し出してもらうには、何百キロメートルも離れた、発電所に頼らなければなりません。
 アダプターの中にも、必ず、電線の回路をまとめて
電気抵抗があります。アダプターに手を触れると、暖かいのは、その内部抵抗で発熱しているからです。

 しかし、化学変化に頼っ...続きを読む

Qプログラミングは独学で習得できるか。

質問タイトルのとおりなのですが、これから、プログラミングをやってみたいと思っている者です。
C言語やJavaを学びたいと思っているのですが、市販の書籍を
何冊か買ってきて一通りの基本的な事項というのは独習・体得できるものなのでしょうか。
良書を調べたりもしていますが、結構、初心者には熟読しても難しい概念が多いですよね。
応用や発展的な技術はたしかに、長い期間をかけての実際の仕事現場での経験、積み重ねが必要であるとは思いますが、変数、関数、クラス、条件分岐などの基礎的な概念や、文法は理解できるのだろうかと思ったりもしました。
プログラミングをマスターしている方というのは、だいたい本を見て独学でやられてきたのですか。
それとも、よくある大学や、「WAVE」「インディーフォルダ(元アウズ)」「ヒューマンアカデミー」などのスクールに通われて身に付けた方も多いのでしょうか。
私も体験入学などしてきましたが、「わからないところを質問できる」、「お金を払ってまで通うのであるから、なまけたり、挫折しないで学習を持続できる心理的な強制力がある」との利点はあるものの、それ以外での実際の学習内容は、一般の書籍と中身は大して変わらないのかなと思ったのですが。
たしかに自己管理をなかなかできない場合は、学費も大きいけれども、長い目で自分に投資するという観点から見た場合、非常に大きな払うだけの価値があるのかもしれませんが。
学費を払うだけの価値があるのかなと思い、迷っています。
もし、何かしらのアドバイスをいただけたら、ありがたく思います。

質問タイトルのとおりなのですが、これから、プログラミングをやってみたいと思っている者です。
C言語やJavaを学びたいと思っているのですが、市販の書籍を
何冊か買ってきて一通りの基本的な事項というのは独習・体得できるものなのでしょうか。
良書を調べたりもしていますが、結構、初心者には熟読しても難しい概念が多いですよね。
応用や発展的な技術はたしかに、長い期間をかけての実際の仕事現場での経験、積み重ねが必要であるとは思いますが、変数、関数、クラス、条件分岐などの基礎的な概念...続きを読む

Aベストアンサー

nobulinさんがプログラミングを何のために勉学するのかによります。
つまり、情報科学科の学生さんで学業のため、就職のため、趣味のためなど。

就職のためなら、自分に投資しても体系的に勉強する価値はあります。
学業なら、学校の先生や先輩に本や勉強法を伺うのもよいでしょう。
趣味ならば、その言語を使って何か製作したいソフトウェアを
考えて、それを作るにはどうやればよいか調べていくのも手です。

勉強するときは、まずはサンプルプログラムのソースコードが
書いてある本を見ながら自分でまったく同じプログラムをつくったり、
それをちょっとずつ改造・改変しながら応用していき、コマンドを
覚えるのが早道だと思います。

1つのプログラム言語を覚えれば、2つ目からは前に覚えた言語との
違い、コマンドの名前、引数の使い方の違いを覚えていけばよいと
思いますよ。

私は大学卒業後SEの道に進みました(今はSEを辞めぜんぜん違う仕事をしています)が、
学生時代は、大学の授業で今は無きMacのHyperTalkからスタートし、
会社に就職してからは会社の新人研修や実JOBで
COBOL→C言語→VB(VBA)→HTML/Perl→Oracle PL/SQLと
覚えていきました。
(覚えた順番はその時代およびお客様のシステムに関係する上、
すべての言語をパーフェクトに覚えたわけではありませんが)

また、できるだけ同じ言語を勉強している友達を見つけて
情報交換をしてみてください。

nobulinさんがプログラミングを何のために勉学するのかによります。
つまり、情報科学科の学生さんで学業のため、就職のため、趣味のためなど。

就職のためなら、自分に投資しても体系的に勉強する価値はあります。
学業なら、学校の先生や先輩に本や勉強法を伺うのもよいでしょう。
趣味ならば、その言語を使って何か製作したいソフトウェアを
考えて、それを作るにはどうやればよいか調べていくのも手です。

勉強するときは、まずはサンプルプログラムのソースコードが
書いてある本を見ながら自分で...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング