Visual C++についての質問

[戻る]
C初心者 2005/08/30(火) 20:56:25
始めまして。Cを始めたばかりの初心者です。Cを勉強している途中にMS-DOSを使わなく
てもプログラムが動かせるC系の言語を探してここにたどりつきました。

それで質問なのですが、VCではC言語も使えるのでしょうか?教えてください

tib 2005/08/30(火) 20:59:51
使えます。

Fortran使い 2005/08/31(水) 16:28:11
C言語(プログラム自体)がはじめてでCを学ぶのが目的ならコマンドライン
環境のものから始めることをお勧めします。

プログラム言語はどの言語でも四則演算ぐらいだったら1時間程度本を読むだけで
出来ると思います。
敷居が高いのは開発環境になれる(または用意する)ことと、
インターフェース部分との連絡になると思います。
GUIでやるのであればGUIの仕組みを勉強しなければなりません。
VC++をただのCコンパイラとして使うのであればMS−DOS(どうやるのかは知りません
が)やるよりも返って煩雑かもしれません。

私のお勧めはCygwinのGCCを使うことです。
UNIX系の知識は持っていても損はないですし、
以外に一番お手軽(お金もかからないし)かもしれません。

επιστημη [E-Mail] 2005/08/31(水) 16:46:48
> C言語(プログラム自体)がはじめてでCを学ぶのが目的ならコマンドライン
> 環境のものから始めることをお勧めします。

VCはコマンドライン・コンパイラも入ってますよ。

> 以外に一番お手軽(お金もかからないし)かもしれません。

VCだってコマンドライン'だけ'の無償版が。

Fortran使い 2005/08/31(水) 16:52:17
επιστημηさん、すみません。
見識が不足しておりました。

επιστημη [E-Mail] 2005/08/31(水) 16:59:18
>> 以外に一番お手軽(お金もかからないし)かもしれません。
> VCだってコマンドライン'だけ'の無償版が。

> επιστημηさん、すみません。
> 見識が不足しておりました。

ぃぇぃぇ、どんまい。
ちなみに学生さんなら VC++/VC#/VB/VJ まるっと 
5000円でお釣りがくるパッケージ: theSpoke があります

C初心者 2005/08/31(水) 17:28:27
[[解決]]
コメント感謝します。使えるんですか。良かったです。

コマンドラインと言うとscanf()とかで出る入力待ちの状態の行のことですか?本を読ん
でポインタと関数は理解できないなかったのと、使わなくても同じプログラムができそ
うなので飛ばしましたがそれ以外は理解したつもりです。
環境については今のままで不満は言えないのでこのままにします。
VC++とVC#は興味を引かれるんですが他はちょっと・・・
中一なので5000円は痛めの出費です。

KING・王 2005/08/31(水) 17:44:20
> コマンドラインと言うとscanf()とかで出る入力待ちの状態の行のことですか?

皆さんがコメントされているコマンドラインとは、GUIベースで操作できる開発環境でなく、
MS-DOSプロンプト(でよかったかな?)から、"cc file.c"(かなり適当)のような感じで、
入力する必要がある開発環境のことです。

επιστημη [E-Mail] 2005/08/31(水) 18:02:22
> 本を読んでポインタと関数は理解できないなかったのと、
> 使わなくても同じプログラムができそうなので飛ばしましたが
> それ以外は理解したつもりです。

こわいよぅこわいよう
# ポインタ放っておくとじきに分厚い壁にブチ当たりますぜ…

RAPT 2005/08/31(水) 21:59:09
関数を使わずにどーやって、C言語を書くというのか…。
C言語の根底を揺るがす爆弾発言だ。。。

#include <stdio.h>

int main(void)
{
  printf("Hello, world.\n");
  return 0;
}

これだけですら、関数を2つも使っていますが。



自作関数を作らないと言う意味にしても、最長不倒関数への挑戦?(恐

Fortran使い 2005/09/01(木) 00:09:55
まあまあ、中学1年生に向かってそういきり立たなくても
(もしかして私だけおじさんかも)

私なんか大学3年の計算機実習で初めてプログラミングをやった方ですから
彼は向学心があるほうだと思います。

一流企業や研究所に勤めてる人間でもコードは既存のものを使い
実際のデータ処理はexcelのみという人も結構いるのですから。
(既存の計算コードの出力を処理するにはawkって便利ですよね、
私の業界のことですが)

しかし、本人も言うとおり初心者だとは思いますのでプログラミングで何をしたら
よいかということを独断と偏見で言わせてもらえば、
分布定数のモデルよりも集中定数のモデル、もっと具体的に言えばシステム工学
、信号論などの所が将来役に立つのではないかと思います。
今は、何でもモンテカルロなど現象のすべてを模擬する方向に行っていますが
そんなものでは自分のオリジナリティーを出すことは難しいですし現象の解析には
つながりません。(現実の現象をそのまま模擬しているだけですから)

大学の教科書でもプロが使う専門書でも一般の人でも購入は可能ですからインターネッ
トでねたを拾ってamazonなどで買って勉強すればいいかもしれません。

私の息子がもしそういうことをいってきたら涙を流して買ってやります。

επιστημη 2005/09/01(木) 05:37:17
> しかし、本人も言うとおり初心者だとは思いますのでプログラミングで何をしたら
> よいかということを独断と偏見で言わせてもらえば、
> 分布定数のモデルよりも集中定数のモデル、もっと具体的に言えばシステム工学
> 、信号論などの所が将来役に立つのではないかと思います。…

中一には通じんよそれじゃ。僕にもわかんない。

PATIO 2005/09/01(木) 15:30:42
さらっと読んでたんですが、

>コマンドラインと言うとscanf()とかで出る入力待ちの状態の行のことですか?
>本を読んでポインタと関数は理解できないなかったのと、使わなくても同じプログラムが
>できそうなので飛ばしましたがそれ以外は理解したつもりです。

ポインタと関数ってC言語の肝では。(^^;
これをスッ飛ばしたのでは、C言語をやっている意味がないような。
C言語で今後も組む気があるなら石に噛り付いてでも理解してください。
多分、関数使えなかったらC言語をやる意味がないです。
関数を使いこなすにはポインタの知識が必須ですからね。

>中一には通じんよそれじゃ。僕にもわかんない。
御意。
中一なら演習問題がいっぱい載っている入門書をやったほうが良いです。
演習問題を解くのはもちろんですが、それを元に色々追加したり、変更したりして
動きがどう変わるのかをみるのも有意義かと。
ロジックの組み方だのアプリの作り方だのはその後でも十分ですから。

PATIO 2005/09/01(木) 15:37:20
あと、追記

>コマンドラインと言うとscanf()とかで出る入力待ちの状態の行のことですか?

コマンドライン・コンパイラ=コマンドプロンプトで動くコンパイラと考えて良いです。
コマンドプロンプトでコマンドを入力する場合、1コマンドは1行で入力するから
多分、コマンドラインと言っているのではないかな。(この辺は妄想ですが)

ちなみに
>MS-DOSを使わなくてもプログラムが動かせる
のMS-DOSと言っているのは、PCをMS-DOSで起動して動かすと言う意味ですか?
それともコマンドプロンプトのことを言ってます?
もし、後者なのであれば、VCのようなウインドウが出る開発環境でやりたいという事なの
かも。
そういや、コマンドプロンプトの事をDOSプロンプトと言ってたなぁ。

C初心者 2005/09/01(木) 18:35:04
いつの間にかいっぱいコメントが・・。
コマンドラインってそういう意味だったんですね。今は普通のCをやってます。関数を使
わないと言ってもさすがに全く使わないと言う意味ではありませんよ(笑)ポインタは配
列より少し便利なだけで出来ることは同じだと本に書いてあったのでほっときました。
関数は高校で習って理解できるようであれば使います。今はサインもコサインも知りま
せん。
> 分布定数のモデルよりも集中定数のモデル、もっと具体的に言えばシステム工学
> 、信号論などの所が将来役に立つのではないかと思います。
全く分かりません。。
僕が今使っているのは「C言語スタートブック」という本です。本にCDがついててそこに
コンパイラが入ってたので買いました。プログラムの情報が抜けていてそこから必要な
部分を補うという「穴埋めプログラム」というのもあります。PATIROさんの条件を満た
してると思いますよ。僕はプログラムをいじってどう動くかを見るのも好きなので両方
いけてますよ。

tib 2005/09/01(木) 19:40:22
> ポインタは配列より少し便利なだけで出来ることは同じだと本に...
そうそう、少しだけ違うんです。もしかしたらポインタなんか使わなくても配列だけで
やっていけるようなプログラムしか書かないかも知れません。で、「少ししか違わないん
ならその違いも知ってみようじゃないか」と思えるかどうかでその後は大きな差になって
くるでしょうね。

↑の言葉は、「かけ算は足し算より少し便利なだけでできる事は同じだと本に...」と言っ
てるのと変わらないように思えます。九九を覚えるのに苦労してでもかけ算を使えるよう
になった方が便利ですし、小数のかけ算みたいに足し算の知識だけでは難しい事もできる
ようになっちゃう。配列とポインタは確かに似ているものですが、配列もポインタも使え
るようになったら、と〜っても便利ですよ。


> 関数は高校で習って理解できるようであれば使います。
> 今はサインもコサインも知りません。
これは「誤訳」だと思ってください。

数学でもC言語でも、関数の事は英語で「function」と言います。でもC言語の場合、
「function」はどちらかというと「機能」と訳した方がピッタリくると思うのです。例え
ばシューティングゲームのプログラムを作るとして、「どれかのキーを押したら1発撃
つ」というのは、プログラムの機能であって、数学でいう関数とは違いますよね。

C言語でプログラムを作るということは、そういう機能をたくさん作って、うまいことつ
なげていくということなんです。C言語でもともと用意されているfunctionだけでもプロ
グラムは作れますが、それらをうまい事組み合わせたりして自作の「機能」を増やしてい
くとプログラムを作るのがどんどんラクになっていくでしょう。ラクになった分、もっと
いろんな事ができるプログラムを作れるようになるでしょう。みんなそれを繰り返してす
ごいプログラムを作っているんです。

まだ中一だというのに「高校で習って理解できるようであれば」なんて遠い先の事を言わ
ないで、とにかくチャレンジしてみたらいいんじゃないかな。きっと「あ、なんだ。こう
いう事なの?」って感じると思いますよ。

PATIO 2005/09/02(金) 11:29:03
C言語では関数と言ってますが、むしろサブルーチン的なものですね。
要は、同様の処理をあっちこっちに書くよりも関数として書いておいて
必要なところではそれを呼び出して機能を利用する事が目的です。
これによってソースが一箇所だけになるので後で手直しするのが非常に楽になります。

で、この関数を使う時に上の方の受け渡しを行うのですが、
この受け渡しでポインタは必須になります。
まあ、変数を全部グローバルに出してBASICみたいなことをすれば、
引数はいりませんけれど、これではC言語でおいしいところがまったく生かされませんし。
単にmain関数の中に全てのコードを叩き込むようなプログラムも最初の練習では良いですが、
実際にある程度の機能を持ったプログラムを作るのであれば、あまり好ましくないでしょう。
C言語はうまく機能を分割して関数として作成し、これを組み合わせて全体の機能を実現
する事が出来る言語です。
今後、C言語を使ってアプリケーションの作成までやってみようと思うのであれば、
ぜひとも、関数とポインタについてきちんと理解してください。

PATIO 2005/09/02(金) 11:31:00
誤字です。

誤)
この関数を使う時に上の方の受け渡しを行うのですが、

正)
この関数を使う時に情報の受け渡しを行うのですが、

PATIO 2005/09/02(金) 11:38:48
補足。

>この受け渡しでポインタは必須になります。
>まあ、変数を全部グローバルに出してBASICみたいなことをすれば、
>引数はいりませんけれど、これではC言語でおいしいところがまったく生かされませんし。

必須と言うのは言い過ぎかも。
但し、ポインタを使わないと山ほど引数を渡したりしないといけなくなったり、
関数から大量の情報を返したい時はポインタを使わないと無理です。
上でも書いているようにグローバル変数を使えば出来なくはないですが、
あまりスマートな実装とはいえないと思いますしね。

C初心者 2005/09/03(土) 18:50:20
分かりました。ポインタと関数についても学んでおきます。

古いスレッドには追加発言できません。