質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

7回答

1968閲覧

C言語を覚えたいのですが

youhey1234

総合スコア14

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

2クリップ

投稿2015/03/02 13:00

C言語を覚えたいと思っていて、
やっぱり覚えるなら何かを作りながら覚えたいと言う気持ちがあります。

ところがちょうど良い題材がなくて困っています。

ここで言う「ちょうど良い題材」と言うのは
単なるこれこれを表示させるプログラムを作りなさい。と言うものではありません。
ですが何も浮かばないと言うより、何がちょうど良いのかが分かりません。
そこで質問と言うより、こういうプログラムを作ってるうちに覚えたよ!っていうアドバイスが欲しいです。
抽象的過ぎてすみません。
どうか無知な私にアドバイスをください。
よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答7

0

題材として、例えばアドベンチャー(ノベル)ゲームあたりを作ってみるのはどうですか?

  1. 最初は文字だけを表示していく   ※エンターを押すと次の文章が表示される程度
  2. 選択肢をつける      ※if文
  3. 分岐をつける        ※whileなどの繰返しや、条件によってループを抜ける処理
  4. フラグを用意し複雑にする     ※ここまで来ると関数は必須でしょう
  5. 文章をはファイルから読み込んでくる  ※ファイルI/O
  6. セーブ、ロードに対応する    ※状態の復帰ができるようデータ構造を考えるのは難しいですよ

ここまででCの基本的な部分は押さえられると思います。
以降は環境依存になりますが、

  1. グラフィックや音をつける
  2. グラフィックに動きをつけ、アニメーションを行う
  3. 動的な画像処理、3Dでのアニメーションにチャレンジしてみる

さらに突き進むと独自のスクリプト言語を開発するというところまで楽しめます。出来たゲームを友人に遊んでもらったり、ネット上で配布して反応をもらうとまた違った刺激が楽しめるでしょう。

C言語の学習が目的であれば、最初はあまり長文にしないことがポイントです。長くても10分程度のプレイで完結するように努めると、コーディングに集中できると思います。

投稿2015/03/02 13:17

編集2015/03/29 10:59
munyaX

総合スコア783

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

私は、リスト構造作ってるときに、ポインタについてしっかり理解できて、その後Cが楽になりました。
それまでの積み重ねもあるとは思いますが、基本的にC言語の根底にあるのはポインタだと思うので、その辺りを使うようなデータ作成・参照プログラムを作ると理解が深まるのではないでしょうか?

投稿2015/03/29 09:59

yuragumo

総合スコア39

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

何か自分が作りたいモノを作る!が一番覚えるのだと思います。

C言語には標準関数というのがありまして、あらかじめ便利な機能がある程度用意されています。
ですので、以下の様な機能を実装しようと思えば、WEB/書籍に色々載っています。(勿論他にも色々あります)

・ユーザーからの文字入力の受付け
・ファイルの入出力
・文字列操作(文字列の連結、置換、文字列抜き出しなど)

一応動くけど、本来どうあるべき?とかコードを書いているうちに色々思うかもしれませんが、
どんどんコードを書いた方がいいと思います。
とりあえずコードが汚かろうが、作りたい機能を実装できること!それが大事だと思います。

そして後から見直して改善(リファクタリング)したら良いと思います。

冒頭で記載させて頂いた標準関数を調べるのに、私は以下のサイトを参考にさせてもらっています。
C言語を始めたらとりあえず最初に出てくるprintf() とかもいるので、
まずなんとなく知っている関数を調べてみると、他の関数の見方もわかってくるかと思います。

・BohYoh.com 【C言語講座】標準ライブラリ
http://www.bohyoh.com/CandCPP/C/Library/hindex.html

投稿2015/03/08 04:23

manabu

総合スコア11

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

私がよくやってたのは、テキストエディタでしたね。
もちろん、本気で使えるほどのモノを作るのは難しいんですが、そこは勉強と割り切って。
基本的なファイルや画面の入出力もあって、例えばルーラー付けてみるとか、正規表現を扱えるようにしてみるとか、なんならお気に入りのエディタを模倣してみるとか、結構いろんなことが出来ます。

投稿2015/03/03 00:58

yunn

総合スコア144

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

Cそのものは大学の授業で課題と共に弄っただけ(電気科なので)でしたが、
あるとき無性にテトリスを作りたくなって、作ったことがあります。

ちょうど、授業で使うために買ってあったC++Builderアカデミック版があったので、純粋なCだけじゃなくC++のクラスも使ったのですが、このときにCについてのほとんどの機能を覚えた気がします。

投稿2015/03/29 17:32

horyma

総合スコア18

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

オススメの題材が いくつか あります。

  1. テキストファイルを読み込んで、単語の数を数える。 (単語と出現回数を ソートし表示する)
    ファイル読み込み、文字列操作、 データ集計 の方法、ソート方法 が理解が必要になる。

  2. 指定フォルダ以下のファイル一覧を出力する (tree コマンドを自力で実装する)

再帰の理解が必要になる、ファイルシステムの理解が必要になる

↑のものでは物足りないなら、

  1. マルバツゲーム (tic-tac-toe) を作る
  2. リバーシ (オセロ)を作る。

 どちらも最初自分で1人2役でプレーする。
その次は、コンピュータと人間で対戦する。それなりにコンピュータ側は強いプレーヤーにする。
対話的操作の理解、ゲーム理論の理解が必要になる。

投稿2015/03/02 14:55

編集2015/03/02 15:06
katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ちょっとした事でもいいのでパソコンを利用しているときなどに、めんどくさいと思ったことありませんか?
そのようなことを解決するようなツールなどを作っていくのがいいと思います。
最初は最低限の機能で動くものを作り、だんだん機能追加やリファクタリングしていくことで自然と身についていきます。

投稿2015/03/02 13:17

sho_cs

総合スコア3541

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問