今C言語を独学で勉強しようとしています。
参考書や書籍を色々見て、試行錯誤してい
いるのですが、イマイチ”ピン”ときません。
と言うよりは、C言語の分野自体に向いていない、
理解してないといったほうが正しいのかもしれません。

根本的に勉強したく、都合良すぎかもしれませんが、
関連のサイトやおすすめの本などありましたら是非
教えて下さい。簡単なプログラム自体あれば、参考に
記述頂けると幸いです。よろしくお願いします。

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

A 回答 (5件)

あなたがどの程度のレベルなのかがわかりませんがご参考までに


簡単なプログラムをのせておきます。

1 #include <stdio.h>
2
3 int main(void)
4 {
5 int a,b, /* 入力した数字を格納 */
6 kotae; /* 計算結果を格納 */
7
8 printf("数を入力してください。a + bを計算します。\n");
9 printf("input a = ");
10 scanf("%d",&a);
11 printf("inpur b = ");
12 scanf("%d",&b);
13
14 kotae = a + b;
15
16 printf("a + b = %d\n",kotae);
17
18 return 0;
19}

行番号は説明のためにつけました。
最初の行から説明します。
1行目:インクルード文です。最初の段階ではこれを理解するのはむずかしいと思うので、C言語のプログラムの最初の1行はこれ!と、暗号のように覚えてしまったほうがいいです。少し説明しますと、本当は書かなければいけないものを、いつも書くのは面倒なのでまとめてstdio.hというファイル(.hが付いているのはヘッダファイルということ)に書いて別のところに保管し、1行目の文を書くことにより読み込んでいるというイメージで、、、最初のうちはあまり考えないほうが無難でしょう。
3行目:メイン関数の入り口。4行目と、19行目の括弧内がメイン関数の中身。
C言語のプログラムにはこのメイン関数が必ず1つ存在します。プログラムを実行するとここから始まります。お手持ちの参考書の関数の章でいろいろと説明されていると思います。
5,6行目:変数宣言。C言語では変数という記憶領域上の箱のようなものを用意し、値の入れ替えを行います。つまり、この例では、a,b,kotaeの3つの変数を用意しているのです。2行に区切って記述されていますが、1行で
int a,b,kotae;
と記述しても同じです。途中で改行してもセミコロン(;)にぶつかるまでは
1つの文として扱われるので。intというのは整数型という意味。これについては
参考書のデータ型とか型とかの場所に載っているでしょう。
/* 説明文 */ という/* と */ で囲まれた部分はコメントです。自由に文字を書くことができます。説明文とか、自分での趣味のプログラムならぼやきとか(笑)を書き込むことができます。コメントの入れ子はできませんので要注意。
8,9,11行目は出力文です。プログラムで1番最初に習うのはだいたいこれでしょう。ここに説明するより参考書のほうがいいと思うので省略します。
10,12行目は入力文です。キーボードからの入力を行うことができます。
10行目でいうと、キーボードから入力された文字を、整数型("%d")として、
変数aに格納という感じです。&はアドレス演算子です。ポインタの章で詳しく学習できると思います。今は変数aにという感じで覚えてしまっていいと思います。
14行目はみてのとおり…ですね、これは。C言語では、必ず代入されるほうを左辺におきます。ですから、この文はA+Bの結果をkotaeに代入という意味です。
例として、ans = 9なんていう、数学ではありえない式も、C言語では9をansに代入、ということで通用します。これが普通です。慣れてくださいね。
16行目は出力文ですが、前の3つとは少し形が違います。
""のあとにカンマがあり、そのあとにkotaeとなっています。このkotaeに格納(代入)されている値を""の中にある%dの場所に入れて、""で囲まれた部分を出力します。%dを書式指定子といいます。本によっては変換文字列とか書式指定文字列とかいろいろ言い方が違いますが。
それから¥nは改行マークです。これがかかれた場所で改行します。
いろいろずらして試してください。
18行目はリターン文です。
メイン関数は必ず値を返さなくてはいけません。int main(void)で始まっているでしょう?このintは整数型を返せということなのです。だからreturn 0;として
0を返してあげているのです。これについては関数の章で理解できると思うので、今は必ず書かなくてはいけないもの!として覚えてください。
ちなみに、int main(void)でなく、void main(void)としている参考書もありますが、これはANCI(American National Standards Insutitute《 米国国内規格協会 》)規格では間違いとされていますので注意してくださいね。

あまりうまい説明ができなくてすみません。
下記にもうひとつ、乱数発生のプログラムを載せておきました。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void)
{
int ransuu, //乱数格納
i, //ループカウンタ
max, //乱数の最大値
kaisuu; //発生させる乱数の個数

printf("max = ");
scanf("%d",&max);
printf("kaisuu = ");
scanf("%d",&kaisuu);

srand((unsigned)time(NULL));

for( i=1; i<=kaisuu; i++ )
{
ransuu = rand() % max;
if ( ransuu == 0 )
ransuu = max;
printf( "%d\n",ransuu );
}
}
お遊びまでに・・・・・
コメントが//になっていますが、1行のコメントの場合はこれでもOKです。
//のあと全てがコメントとみなされます。

お役に立てましたでしょうか。
少しでも参考になれば幸いです。
プログラムが読みづらくてすみません。次はもっときれいに書きますね(汗)

参考書についてですが、本当に初心者の初心者の場合なら、
「1日でわかるC言語」(NTTアクセスサービスシステム研究所)桑原恒夫著
に、とても簡単な例題と解説が載っています。
本当に簡単なプログラムのみの説明になっています。
プログラムの説明以外は載っていないというかんじです。
わかりやすいのは確かですので、のぞいてみるといいかもしれません。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
このくらいのプログラムならなんとか理解できそうです。
書店などで色々と本を探したりしています。
ご親切にプログラムと解説ありがとうございました。
是非参考にさせて頂きます。

お礼日時:2001/12/06 19:24

>イマイチ”ピン”ときません。



TAXASさんは、どのようなプログラムを作ろうとしてるのですか?
C言語の基礎を覚えることは意味のあることですが、なんらかのアプリケーションを作成するようなケースでは、例えば文字を表示する手順、絵を表示する手順などを理解していかなければなりません。それは、OSや、なんらかのライブラリ、つまり他人の作った関数を呼び出すことの繰り返しを意味します。

漠然と言語を勉強しようとすると息がつまりますから、何か具体的な目標をたてた上で、適切なサンプルプログラムを探した方が無難だと思います。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
当初は漠然としていましたが、
少しずつではありますが、理解
するようにしています。
目標を持つのも一つの手ですね。

お礼日時:2001/12/06 19:25

こんばんわ。

ぼくもCの勉強してます。
本、URLの紹介ではありませんが、参考になれば之幸いです。


プログラミングの勉強をするにあたって、コンピュータ全般における知識・理解も重要かと思います。そこで、本屋さんでコンピュータ雑誌などを適当に選んで、ヒマなときにでも読んではどうでしょう。(あくまでヒマなときに!根を詰めすぎると、めげるコトがあります。とりあえず、コンピュータの世界の雰囲気というか何かを感じ取れればいいかと思います。)
そのコトを通して、自分の勉強していることでどういうコトができるかのイメージがもててくると、意欲も湧いてきます。
たぶん脳内で「脳の働きを活性化させる分泌液」か何かが分泌されるのでしょう!?

あと、1冊の本、1つのWebページだけを読んだだけでは解らないこともあるかもしれません。そんなときは、また違った角度から説明してある他の本、Webページを読んでみることをオススメします。(もちろんその解らなかった本に対してもある程度は考えてから)
より立体的に理解することができることができるコトがあります。

ぼくもまだまだカンペキではないのですが、参考になりましたでしょうか?
それでは、ガムバってください!
    • good
    • 0
この回答へのお礼

励ましのお言葉ありがとうございます。

いくつかの本も参照し、Webページでも多数閲覧して、
C言語の基礎中の基礎を理解し始めたところです。

何分、理解するのにも時間も苦労もかかりますが、
分かるように努力しつつ勉強していこうと思います。

どうもありがとうございました。

お礼日時:2001/10/01 14:52

最近Cについての書籍も沢山出ていますネ。


しかし、ネット上でも、講座が無数にあります。
コンパイラーは何をお使いですか?
それにより、紹介の仕方が違いますが・・・
下に紹介したもの以外に、メーリングリストや掲示板などがあります。

大学講座もどうぞ!
http://www.twcu.ac.jp/~misao/m-cprog/
http://mailsrv.nara-edu.ac.jp/~asait/

課題もして下さい。
http://www.race.u-tokyo.ac.jp/%7Emasuda/jugyo/pr …

晃君のプログラミング入門
http://www.owari.ne.jp/~gguy/

Cリンク集をどうぞ!
http://www.cs.kyoto-su.ac.jp/~minaken/Link/Gengo …

参考URL:http://www.cs.kyoto-su.ac.jp/~minaken/Link/Gengo …
    • good
    • 0
この回答へのお礼

解答ありがとうございます。

C言語に関してのリンク集はとても使えてうれしいです。
あんなにたくさんあったのですね。ビックリしました。
コンパーラーやプログラムソフトに関しては全くの素人
なので全く不明です。けど、ちゃんと動作はしてます。

あちこちのリンクをたどってしばらく見てみようと思います。
とても参考になりました。ありがとうございました。

お礼日時:2001/09/29 00:47

こんばんわ



やはりC言語の基本と言ったら「猫でもわかる・・・」ははずせないでしょう。と言うことで、「猫でもわかるプログラミング」と言うページをお勧めします。

ここはVCを使ってCの基礎から解説してくれているページです。
C言語編から順に見ていけば力も付くかと。

あとはGoogleなどで「C言語 基礎 始める」と言ったキーワードで検索をすると、
いくつかページが出てきます。

頑張って下さい!!

参考URL:http://203.174.72.111/y_kumei/
    • good
    • 0
この回答へのお礼

早速の解答ありがとうございます。

猫でも分かる。。。と言うのはとても魅力的ですね。
今ちょっとですが見てる最中です。
基礎からちゃんと解説してくれてるので理解する
のもとても助かります。

どうもありがとうございました。
検索ページでも探してみます。

お礼日時:2001/09/29 00:42

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

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

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

Q数字がメインのフォントの一覧表示

使用OSはWindows7 Ultimateです。

フォント管理に「SAKURA 2.66」を使っているのですが、このソフトはフォントの一覧を表示させるとフォントの名前が其のフォントの形で表示されるようになっています。

ゴシックや古印体などのフォントではそれでいいのですが、数字の形が一番肝心なフォント、、例えば MOSuujiHD-JFn.otf などのMOSuujiシリーズはアルファベットなし・日本語はどれも同形で、数字の形だけが違うようです。

このようなフォントではフォント名で一覧を作られても意味がありません。

フォントによっては数字の形の違いを一覧にしてくれるフォント管理ソフトをご存じの方、教えてください。
何卒よろしくお願い致します。

Aベストアンサー

私も『フォントインストーラー SAKURA』を利用しています。
数字フォントであってもプレビュー画面に数字を表示できますよ。
デフォルトではフォント名になっていますが、プレビュー画面上のプルダウンメニューから[0123456789]を選択すると表示されます。
また、任意の文字を入力後[Enter]キーを押すと、任意の文字で表示できます。

Qwarning LNK4098で試行錯誤しています

環境はOS:Win98 VisualStadio6.0を使用して作成しています。作成言語はC言語とFORTRAN言語です。FORTRANのコンパイルははVisualFortoranをインストールしています。
現象は、Cで作ったメインの中でフォートランを呼ぶCのスレッドを_beginthreadを使って作成しています。この状態でビルドすると「warning LNK4098: defaultlib "LIBCMT" conflicts with use of other libs; use /NODEFAULTLIB:library」が出ます。そこで、プロジェクト設定のリンクタブで無視するリンクライブラリを以下のように設定してビルドしましたが。同じ現象でした。
無視するライブラリ:libc.lib, libcmt.lib, msvcrt.lib, libcd.lib, msvcrtd.lib
何方か教えて頂けないでしょうか、宜しくお願いいたします。

Aベストアンサー

シングルスレッド用のCランタイムライブラリをリンクしているのでは?

http://www.microsoft.com/japan/developer/library/vccore/_crt__beginthread.2c_._beginthreadex.htm

LIBCMT.LIBとMSVCRT.LIBは無視してはいけないはずですが。

Qスーパーのチラシなどで使われている数字フォント

スーパーのチラシなどで使われている数字フォントで数字が1/3ほど重なっているフォントをよくみかけます。
白フチがあり、重なっている部分はフチにより区別がしやすくなっているフォントです。
あの数字フォントはなんという名前でしょうか?
単純に数字に白フチをつけ、文字幅を狭めただけでは白フチが一番外側だけになり、うまくいきませんでした。
文字を個別にうち、白フチを付け、重ねれば作成できるのですが、手間がかかりすぎ断念してしまいました。
数字フォントの名称、もしくは『こうすればできる』などのアドバイスがありましたらよろしくお願い致します。

Aベストアンサー

貴方が使ってるソフトが判りません??
数字フォントの名称←これは判りません?
『こうすればできる』←イラストレーターで作るなら。
最初は面倒ですが、サンプルを作ってからだとそこそこ早く出来ます。
文字ツールで0~9までの数字を書きます(仮に、特太ゴシック、大きさ50mm、文字間隔200))>黒矢印(選択ツール)をクリック>右クリック>アウトライン>塗り赤・線白・線幅20pt>アピアランスパレットの中の塗りをクリック&ドラッグで線の上に移動>長方形ツールで数字の右に四角を描きます(高さ45mm。幅30mm、塗りなし、線なし)>画面(表示)>アウトライン>四角をクリックして、ShiftとAltを押したまま直右に移動して離す>Ctrlを押したままでDを8回押す>全部を選択>整列パレットの垂直方向をクリック>数字だけを選択>右クリック>グループ解除>0と四角の一つを黒矢印で選択>そのまま0だけをクリック>整列パレットの水平方向をクリック>右クリック>グループ>これを0~9まで繰り返して、数字の周りに四角の有る数字を10個作る>画面(表示)>プレビュー>0を上にして、縦方向に0~9を並べる>全部を選択>0だけをクリック>整列パレットの水平方向をクリック>整列パレットの等間隔の垂直方向をクリック>クリック&ドラッグで全体をShiftとAltを押したまま直右に移動して離す>Ctrlを押したままでDを必要な桁数に成るまで押す(仮に3回)>一旦、保存>仮に値段を、23405とすると、一番左の行から各行の数字を一つずつ23405と選択>クリック&ドラッグでAltを押したまま別の場所に移動して離す>アクションパレットの右上の三角をクリック>新規アクション>名前を入れる>記録>整列パレットの等間隔の数値をー10mmにする>そのまま2だけをクリック>整列パレットの垂直方向をクリック>等間隔の水平方向をクリック>アクションパレットの下の黒四角をクリック>これで重なった、23405が出来ます。
別の数字を作る場合。
同じ様に左から右に数字を選択、仮に、66280>クリック&ドラッグでAltを押したまま別の場所に移動して離す>そのまま一番左の数字の6だけをクリック>アクションパレットの一番上の名前をクリック(反転する)>アクションパレットの下の右向き三角をクリック、で23405と同じ様に66280が重なります。
値段の中に1が入る場合は後で微調整するか、1の周りの四角の幅を最初に作った段階で狭くしてから数字をコピーします。

貴方が使ってるソフトが判りません??
数字フォントの名称←これは判りません?
『こうすればできる』←イラストレーターで作るなら。
最初は面倒ですが、サンプルを作ってからだとそこそこ早く出来ます。
文字ツールで0~9までの数字を書きます(仮に、特太ゴシック、大きさ50mm、文字間隔200))>黒矢印(選択ツール)をクリック>右クリック>アウトライン>塗り赤・線白・線幅20pt>アピアランスパレットの中の塗りをクリック&ドラッグで線の上に移動>長方形ツールで数字の右に四角を描き...続きを読む

QC言語の参考書の新旧について

1998年8月 改訂版第1刷発行の参考書の
2001年 改訂版13刷発行 のものが手元にあります。

この本で勉強するのは、情報が古くてマズイでしょうか?

もし、マズイという場合、
何年以降に書かれたものなら、問題なさそうでしょうか?
(他言語同様、C言語にもバージョンはありますか?)

同様にC++ についても、同じ質問をしたいと思います。
宜しくお願い致します。

Aベストアンサー

今「C の規格」といえば ISO/IEC 9899:1999 (日本なら JIS X 3010:2003) ベースになるはずだけど, この規格にきちんと対応した書籍ってほとんどないような気がする.
基本的にはその前の規格 (ISO/IEC 9899:1990、JIS X 3010-1993) に対してほぼ上位互換なのでそっちでもさほど問題ないはずです. とはいえ, 「1998年8月改訂版第1刷」だとそれすら微妙かもしれん. 実際には中身を見て決めないとだめでしょうね. たとえば
・関数のプロトタイプがない
・引数の定義が K&R 式
・void * がなく, すべて char *
とかだと「古いので廃品回収に出す」という選択肢もあります.

Q小数点以下の数字だけ小さいフォントで表示

教えて下さい
エクセルで少数点以下の桁、2まで表示するのですが
小数点以下の数字だけフォントを小さくして、小数点以下の数字だと言う事を分かりやすくしたいのですが方法はございますか?

例:  100.11を入力すると11だけ自動でフォントが小さくなる事です

どうぞよろしくお願い致します

Aベストアンサー

エクセルのセルのデータは数値と文字列に大別され、書式などの適用に差があります。
文字列であればその文字列の1部だけフォント書式を変えることが出来ます(VBAではCharactersを使う。
http://www.big.or.jp/~seto/vbaref/vbaref3.htm
手作業では、数式バー部で一部の文字を範囲指定して書式設定するが、質問者はやったことがあるかな)
ーー
しかし数値では、それをやると一瞬それが実現しているらしく見えるが、均一フォントサイズにもどる。
推定では、エクセルは
キーボード上では実現ー>チェックすると内容は数値ばかりー>数値に強制変化ー>数値は均一フォント(という決まり)
という過程で、元に戻るのだと思います。
ーー
マイクロソフトがその気になれば出来ないことはないと思うが、素の必要性を重視してないー採用してないということだと思います。
(そういう他の事項は、どちらかというと初心者から、沢山質問が出ます)今までの質問でも、ワードの下つき文字の質問はあっても、本件のようなのはないと記憶する。
ーーー
だから文字列で考えるか、なんだが、そのままでは計算がやりづらいので候補外でしょう。
あきらめてください。
ーー
私のお遊び
B1=11,123
B1の書式 ユーザー定義 #,###
C1に=MOD(B1,1)
C1のフィントサイズ8
C1の書式ーセルー配置ー水平は左づめ、縦は下詰め
枠線が邪魔だが。

エクセルのセルのデータは数値と文字列に大別され、書式などの適用に差があります。
文字列であればその文字列の1部だけフォント書式を変えることが出来ます(VBAではCharactersを使う。
http://www.big.or.jp/~seto/vbaref/vbaref3.htm
手作業では、数式バー部で一部の文字を範囲指定して書式設定するが、質問者はやったことがあるかな)
ーー
しかし数値では、それをやると一瞬それが実現しているらしく見えるが、均一フォントサイズにもどる。
推定では、エクセルは
キーボード上では実現ー>チェック...続きを読む

QC言語をこれから始める人へのための分かりやすい参考書を教えてください(こんな本を・・)。

C言語を学びたいと思っています。
最初は、『1日で分かるC言語』とか
あまりにもうさんくさそうな本で
勉強しようと思っています。

自分の性格上、すっごく簡単な本で
全体をかるーーーく、抑えてからの方が
能率がいいからです。

それで、○日で分かるC言語という本を
探しているのですが、存在するのでしょうか?
通販でもいいので売っているところを
ご存知の方、教えてください。
どこから出版されているかだけでもよいです。

また、それ以外の参考書も教えてください。
巷にありふれているC言語の本ではなくて、
すっごく分かりやすくて、中・上級者には
物足りない、内容が薄いと感じられる本を
探しています。

よろしくお願いします。

Aベストアンサー

> 自分の性格上、すっごく簡単な本で
> 全体をかるーーーく、抑えてからの方が
> 能率がいいからです。

私も同じです。非常に良く分かります。
ですが、こと「C言語」に関しては、このスタンスはおすすめできません。
というのも、プログラム初心者には「全体を軽く抑える」ことは非常に困難だからです。
まったくの初心者が「C言語」を短期間で理解するためには
・別のとっつきやすい言語でプログラムのロジック構成を勉強した後、C言語の文法、特性を覚える。
・C言語の本を最初から順を追って理解する。
の二つしか方法はありません。
後者の方法では多分、何度も大きな壁にぶつかるでしょう。
仕事、学業等で必要とする以外では、挫折する人も少なくないです。
前者の方法は、VBでもExcelのマクロでもPerlでもなんでもよいです。
簡単に理解できる、尚且つ初心者向けの本、資料がたくさんあるものを選んで
それを用いてある程度のものが書けるようになってからC言語に戻ります。
後者より楽だとは思いますが、それでもCに戻った時に大きな壁にぶつかるでしょう。
ですが、他言語で基礎ができていればその壁も乗り越えやすいはずです。
・・・とここまで書きましたが、私は後者を薦めます。
というのも、C言語を理解してしまえば、他のとっつきやすい言語は文法さえ身につければ
書けるようになるからです。
最初に苦労すれば後は楽になります。

というわけで、おすすめ書籍は「はじめてのC」です。
これは細かいところまでわかりやすく書いてあります。

ですが、これだけでは回答にならないので、下記URLのページを見てください。
多分、ご所望の「初心者にもわかりやすくCを説明」というものはこれで満たされると思いますよ。

参考URL:http://www.kumei.ne.jp/c_lang/

> 自分の性格上、すっごく簡単な本で
> 全体をかるーーーく、抑えてからの方が
> 能率がいいからです。

私も同じです。非常に良く分かります。
ですが、こと「C言語」に関しては、このスタンスはおすすめできません。
というのも、プログラム初心者には「全体を軽く抑える」ことは非常に困難だからです。
まったくの初心者が「C言語」を短期間で理解するためには
・別のとっつきやすい言語でプログラムのロジック構成を勉強した後、C言語の文法、特性を覚える。
・C言語の本を最初から順を追って理解...続きを読む

Q通販のオーダーシートに使用される数字フォント

カウネットやセシールなどの通販のオーダーシートの上のほうに記入見本として書かれている数字のフォント名をご存知でしたら教えてください。私はマイクロソフトオフィスを使用しています。

例えば、1は頭がとがっていないただの棒。こんな感じ→|。
4は三角形ではなく、頭が離れていて、右と左の縦線が平行。
(分かりにくい説明でごめんなさい。)

他の質問で検索をしたところ、OCR-AでもBでもなく、Cells Fontというフォントに近いことがわかったのですが、Cells Fontというのは、セルズ社が独自で作成したフォントのようで、セルズ社の会計ソフトなどを持っていないとダウンロードできないようです。オフィスに搭載されるメジャーなフォント、もしくはフリーダウンロードできるフォントでCells Fontに似た数字が使用できるフォントはあるのでしょうか?

Aベストアンサー

 お探しなのは「OCR-HN」というフォントと思われます。
 フォント名で検索すれば購入できるところが見つかると思いますが,手ごろなところとしてはリコーが「HG OCR-HN」(2,500 円)として扱っています。
  http://font.ricoh.co.jp/purchase/font/
上掲ページのいちばん下に項目と見本へのリンクが掲載されていますので,ご覧の上,購入をご検討なさるとよいでしょう。

Qプログラミング(C言語)を勉強するに当たって・・・

何も知らない完全な初心者です。
現在、理学部の大学1年生です。(情報系ではありません)
目的としては、ゲーム作成。および、大学の研究などで自分が必要とするソフトを作ること。
プログラミングについて独学で勉強したいのですが、現在、C言語からはじめてC++を勉強しようと思っています。
そこで、いくつか質問をしたいのです。
(1)言語を学ぶ以前に学ぶべきことは?
(2)目的に対する言語は適当であるか?
(3)また、どのソフトがお勧めであるか?(学生なので2万以内で済ませたいと思います。)

プログラミングをする際に読んでいたほうが良い本を
教えていただけるとありがたいですm(_ _)m

Aベストアンサー

>目的としては、ゲーム作成。および、大学の研究などで自分が必要とするソフトを作ること。

実行環境は?
Windowsで動かすなら、C++でもJAVAでもC#でもVBでもどれでも良いかと思いますが。
まぁ汎用性が高いのはC++>JAVA>C#,VBというところでしょうが。

>(1)言語を学ぶ以前に学ぶべきことは?

開発及び実行環境がWindowsだとして、Windowsの知識とハードの知識。
以前ということであれば、
・Windowsが一通り操作できる
・PC構成機器(グラフィックカードだとかCPUだとか)の種類が一通りわかり、大まかな機能がわかる
ってくらいがわかっていればいいとおもう。

>(2)目的に対する言語は適当であるか?

すでに上に書いちゃったけど。
まぁ別に問題はない。
ゲームがどのようなゲームなのか、自分が必要とするソフトがどのようなソフトなのか、開発環境(OSやハードウェア)や実行環境(OSやハードウェア)などのもう少し具体的な情報がないとわからない部分もあるが。
とりあえずWindows上で動くものを作りながら勉強していけばいいだろうし、(3)についてもそのつもりで回答します。

>(3)また、どのソフトがお勧めであるか?
フリーなものなら、すでに回答されているものでもいいけど、自分としては、
・Microsoft Visual C++ 2005 Express Edition(日本語版)
  http://www.microsoft.com/japan/msdn/vstudio/express/visualc/
 さらに、PlatformSDKも入れる。
  http://www.microsoft.com/japan/msdn/vstudio/express/visualc/usingpsdk/

・Borland Turbo C++ Explorer(英語版)
  http://www.borland.com/downloads/download_turbo.html

まぁせっかくなんだから、フリーでもIDE(統合開発環境)でやればいいって話です。

もし購入するなら、学生である強みを生かさない手はありません。
VisualStudioやBorland Developer Studioのアカデミック版を購入すれば良いかと。
Borlandのほうはアカデミックあったか忘れた。

VisualStudio2005のアカデミックエディションは約5000円。

>目的としては、ゲーム作成。および、大学の研究などで自分が必要とするソフトを作ること。

実行環境は?
Windowsで動かすなら、C++でもJAVAでもC#でもVBでもどれでも良いかと思いますが。
まぁ汎用性が高いのはC++>JAVA>C#,VBというところでしょうが。

>(1)言語を学ぶ以前に学ぶべきことは?

開発及び実行環境がWindowsだとして、Windowsの知識とハードの知識。
以前ということであれば、
・Windowsが一通り操作できる
・PC構成機器(グラフィックカードだとかCPUだとか)の種類が一通りわかり...続きを読む

Qリストの数字のフォントサイズを変えたい

リストを使ったときに頭につく数字のフォントサイズを小さくすることは
できるのでしょうか?
文章のフォントは<li>の後にフォントタグをつければ小さくなるのですが
リストの数字が小さく出来ません。
これを小さくすることは可能でしょうか?
<ol>
<li>
<li>
</ol>

Aベストアンサー

スタイルシートを使えばできます。
たとえば、

<ol style="font-size:80%;">
<li>サンプル</li>
</ol>

のように記述すると元のサイズの 80% になります。

QC#での自作DLL(C言語)の並列化

C言語で自作したDLLをC#で使いたいと考えております。
このDLLの計算量は多くて、値を返すまでに時間がかかります。
そのためにC#のフォームが応答なしになってしまうので並列化したいと思ったのですがうまくいきませんでした。
このDLLは
・int型の戻り値
・6個の引数
・上の引数のうち、1つはoutキーワード(ポインタ渡し)
です。
どのようにすれば、うまく並列化できるでしょうか。
ご教授お願いいたします。

Aベストアンサー

やりたいことが
C言語側の関数を分割・並列処理化しての処理時間短縮なのか、
単にC#側でUIをブロックしないように時間の掛かる処理を非同期に実行したいのか、
が、いまいち読み取れませんでした。

おそらく後者であろうと想定して、
C言語の関数が特に処理の途中中断などをサポートしていないと想定して、
C#はv3.0以降(VisualStudio2008以降)であると想定して、
C#側のGUIはWindows Formsであると想定して、
以下に2例ほど、時間の掛かる処理を非同期に実行する例を記載します。

いずれも、longTimeOperation()の呼び出し部分が時間の掛かる処理を呼び出す部分です。
また、あくまで例なので、処理中のGUIの設定や表示などもあわせて、
適当に読み替えてください。


■スレッドプールのスレッドを利用した例

private void button1_Click(object sender, EventArgs e)
{
// フォームクローズを拒否するデリゲート。
FormClosingEventHandler closeGuard = (s, a) => a.Cancel = true;

// 別スレッドでの処理が終わるまでの状態設定など。以下は一例。
this.button1.Enabled = false;
this.FormClosing += closeGuard;

var calcResult = 0;
var dataArea = new byte[1024];

ThreadPool.QueueUserWorkItem(_ =>
{
// ここで時間の掛かる処理を呼ぶ
calcResult = longTimeOperation(out dataArea);

// 処理中の状態を戻すための処理をメイン側に委譲
this.BeginInvoke(new MethodInvoker(() =>
{
this.FormClosing -= closeGuard;
this.button1.Enabled = true;

// 必要なら後処理など
if (calcResult != 0)
{
// ・・・
}
}));
});
}

■BackgroundWorkerを利用した例
 
private void button2_Click(object sender, EventArgs e)
{
var calcResult = 0;
var dataArea = new byte[1024];

// 「WaitingForm」は、処理完了待ち中に表示する自作の適当なフォーム。
// PictureBoxにアニメーションGIFでも載せておくなどすれば良いかも。
using (var bgWorker = new BackgroundWorker())
using (var waitingForm = new WaitingForm())
{
bgWorker.WorkerReportsProgress = false;
bgWorker.WorkerSupportsCancellation = false;
bgWorker.RunWorkerCompleted += (s, a) => waitingForm.Close();
bgWorker.DoWork += (s, a) =>
{
// ここで時間の掛かる処理を呼ぶ
calcResult = longTimeOperation(out dataArea);
};

waitingForm.Load += (s, a) => bgWorker.RunWorkerAsync();
waitingForm.FormClosing += (s, a) => a.Cancel = bgWorker.IsBusy;

waitingForm.ShowDialog();
}

// 必要なら後処理など
if (calcResult != 0)
{
// ・・・
}
}

やりたいことが
C言語側の関数を分割・並列処理化しての処理時間短縮なのか、
単にC#側でUIをブロックしないように時間の掛かる処理を非同期に実行したいのか、
が、いまいち読み取れませんでした。

おそらく後者であろうと想定して、
C言語の関数が特に処理の途中中断などをサポートしていないと想定して、
C#はv3.0以降(VisualStudio2008以降)であると想定して、
C#側のGUIはWindows Formsであると想定して、
以下に2例ほど、時間の掛かる処理を非同期に実行する例を記載します。

いずれも、longTimeOperation...続きを読む


人気Q&Aランキング

おすすめ情報