• ベストアンサー

プログラム作成に勝るもの無し?

いつもお世話になっております。 C初心者で、勉強中のものです。ポインタと配列を今一つ自分の物に出来ないので集中的にやっています。 質問なのですが、ポイント的に(例 ポインタの理解)勉強している自分ですが、あまり自作プログラムを作っていません、よく言語を覚えるのに1番は自分でプログラムを つくってみる事といわれます。確かに自作プログラムを 作り終わり動かして楽しいのですが、実際覚えた部分以外 の事もしているので、効果的とはいえないような気がします。ならばアルゴリズムの勉強など、コーディング以外の 事を平行して勉強したほうがいいのではないかと思うの ですが、実際どうでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

文法を覚えたら「アルゴリズムとデータ構造」という分野の勉強をしながらコーディングの練習をしてはどうでしょうか。実際のプログラムではポインタとか配列は普通にでてきますし、プログラムを書いてみることで、新しい発見ができると思います。 さらに職業プログラマを目指すのであれば、他人が見て分かりやすい書き方、デバッグしやすい構成、完璧なエラー処理などが求められるそうです。プログラムを書くときにただ動けばいいレベルではなく、そのあたりも気を使ってはどうでしょう。(僕は趣味レベルなので全然気にしてないですが)

tomojyuu
質問者

お礼

回答ありがとうございます。 「アルゴリズムとデータ構造」という分野の勉強ですか、 実際のプログラムではポインタとか配列は普通にでてくるなら文法+αでいいかもしれません。検討してみます。

その他の回答 (4)

  • qKAZp
  • ベストアンサー率47% (71/148)
回答No.5

Apple が リンゴ であることが解ればいいのであれば、それでもいいのでしょうが、実際に会話がしたいのであれば、一見無駄な知識も必要になってきます。 プログラムの場合も同じようなことだと思いますが。 ポインタと配列の部分を使ったサンプルプログラムを作って、いろいろ変えながらコンパイル&エラーを繰り返すと、だんだん解ってきます。 頭で理解したつもりでも、コンパイラが通してくれる保証はありません。とにかく、現物に通してみることです。 すんなり理解したヤツはとんでもないチョンボ(失敗)をしでかします。エラーをたくさん読んで、なにがいけないかを把握したヤツの方が確実なロジックを組み立てます。 コンパイル&エラーは大事ですよ。

  • terra5
  • ベストアンサー率34% (574/1662)
回答No.4

言語の勉強の目的にその言語を使ってプログラミングするということがあるなら、作ってみるべきでしょう。 知識として言語の文法を覚えるだけとか、試験の問題に解答することができればよい程度なら、別にプログラムはしなくてもいいかもしれません。 実際、覚えた(つもりだけのことも多い)だけではうまくプログラムは組めませんから。 アルゴリズムも実際に自分で実装してこそ、覚え理解が深まります。 また、覚えたことも単独で使うことはまずないでしょう。実際にはいろいろな物と組み合わせて使っているはずです。 プログラムを組むことは、いろいろな物を組み合わせ使っていることになります。 逆に、そういう場合にちゃんと使えないと、実用的な意味では覚えたとは言えないと思いますが。

tomojyuu
質問者

お礼

回答ありがとうございます。 >知識として言語の文法を覚えるだけとか、試験の問題に解答することができればよい程度なら、別にプログラムはしなくてもいいかもしれません。 同感です。そこが悩みなのです、例えばポインタの理解で 個々に理解していけば、プログラムを作らなくてもいいと思うんですが、(実際作ると無意味(勉強するという点で)なコーディングをしているとも思う)プログラムを 完成させてこそ意味があるとも思うのです。

  • matyrcry
  • ベストアンサー率47% (101/213)
回答No.3

他人が書いたプログラムを読ませてもらったり 添削、改良してみるってのもいいですよ。 それぞれ流儀みたいなものがあるので。 出来のいいものを拾ったら自分流にチューニン グしてコレクションしておくといいです。 手駒の数が実戦力のバロメータだと思います。

tomojyuu
質問者

お礼

回答ありがとうございます。 >他人が書いたプログラムを読ませてもらったり 添削、改良してみるってのもいいですよ。 なるほどですね、自分が本当に理解しているかがわかりそうですね。自作のプログラムで力をつける方法以外に色々 あるのですね。

回答No.1

私も初めて言語を覚えたときはひととおりサンプルコードをそのまま打ち込んでたりしましたが、 自作のプログラムを作ってみると思わぬところで動かないことがよくあります。 二週間ぐらいで文法をあたまに入れて、あとは実践を通していくぐらいのバランスがいいのではないかと思っています。 問題意識をもってやったときにはじめて解決法の真意が理解できたということもありました。

tomojyuu
質問者

お礼

回答ありがとうございます。 >自作のプログラムを作ってみると思わぬところで動かないことがよくあります 確かに自作のプログラムを作る際、覚えた事を使って、しかも自分でも出来る範囲のプログラム作りしかしないのに、動かなかったりします。ただ、まだ覚える基本的な事 もたくさんあると思うのに、自作のプログラムを作っている事が非効率のような気がするのです。

関連するQ&A

  • 実践的な遺伝子的アルゴリズムの作成法

    素人ですが、遺伝子的アルゴリズムを考える上で、大きな問題に直面しています。 1)最適化の対象を如何にコーディングするか? 2)交叉点を如何に設けるか? これらは組合せの対象の要素間に何らかの曖昧な複数の相関関係がある場合に難しくなります。 そこで、 1)「遺伝子的アルゴリズム」をタイトルにした一般の技術系の和書に書かれている以外に、実例を調べる手段? 2)社会人が遺伝子的アルゴリズムの開発の実際を学ぶための公共の機関、例えば聴講生として学べる場所? 3)遺伝子的アルゴリズムを組み込んだソフトを作る上で、普段使用しているC++などの汎用プログラム言語と、SchemaやLISPなどの知能プログラミング言語とでは、どちらが便利なのでしょうか? これらの人工知能プログラム言語には、コーディングや交叉のための専用のコマンドが提供されているのでしょうか? 自分は、情報工学の出身ではないため、C++言語と「遺伝子的アルゴリズム」の技術書籍以外には、バックグラウンドがありません。よろしくお願いいたします。

  • C言語でプログラムを作りたい

    現在、C言語を学習中でして、入出力・制御文・配列・演算子・ポインタ・自作関数・構造体・共用体・ファイル入出力くらいはなんとか使えるくらいになったと思うのですが、そこで、一つ自分でプログラムを作ってみたいと考えています。 しかしながら、これまで学習してきたことを駆使して作れるプログラムが思いつきません。 ですので、なにかいいお題があれば教えていただきたいです。 これまで学習してきたことをしっかりと定着させたいと考えています。 宜しくお願いします。

  • プログラムを学ぶには

     はじめまして。 サーバエンジニアを目指しているのですが、プログラムにも興味があり独学でC言語を勉強しています。 そこで、質問なのですがプログラムを学ぶにはセミナーや学校に通ってしっかりと勉強したほうがいいのでしょうか? 独学で勉強しても身につく物でしょうか? 私は、サーバとプログラムの勉強を平行して学んで行こうと考えています。 知人には「どっちか片方にしろ」と言われました。自分で判断できないので質問させていただきました。 以上です、ご協力お願いします。

  • プログラムの文法

    プログラム言語(スクリプト言語を含む)の文法について調べているのですが、「Visual Basic」や「C++」、「Java」、「JavaScript」、「VBScript」、「FORTRAN」などの有名なプログラム言語以外で、文法について掲載されているサイトはありますか? ・個人や自作のプログラム言語でもいいです。 ・そのプログラム言語のソースだけが公開されているものでも十分です(自分で解析します)。

  • ソフトウェア作成への勉強方法

    文系の大学生なのですが、 大学入学後にパソコンに興味を持ち現在独学でプログラミングを勉強しています。 目標はゲームや色んなフリーウェアを作れるようになりたいです。 言語はC言語を勉強していて柴田望洋さんや林晴比古さんの本を読み 一通り基本的な文法やアルゴリズムは覚えました。 しかし数値のソートやデータ構造なんかを覚えたのは良いのですが、 実際に自分が普段使っているようなソフトウェアを作るのにどう結びつけたら良いのかよく分かりません。 特にGUIプログラム作成に関しては全く作り方が分かりません。 そこで今の状況から実際にソフトウェアを作れるようになるにはどういう勉強をしたら良いのか、 どういう本を読んだら良いのかということを教えて頂きたいです。お願いします。

  • ニンテンドーDS用、自作プログラムの作り方

    ニンテンドーDS用の自作プログラムを作るには、 具体的にどういった手順を踏めばできるのでしょうか? C言語を勉強し始めて3ヶ月程度になります。 マジコンはR4を持っています。 情報が無く困っています。 実際に自作プログラムを公開している方も数名いましたので、 作ること自体は可能だとは思うのですが・・・。 なにかご存知の方、ご回答よろしくお願いします。

  • 配列とポインタの違いについて

    書籍などで配列とポインタの違いについて勉強していますが、未だによくわかりません。 C言語における配列とポインタの違いについて教えて頂けますでしょうか?

  • 複雑なプログラムの作成で行き詰っています。

    このようなプログラムを書いています ---------------------------------------------------- (1) 10×10の二次元配列を全て 0 で埋める。 (2) 乱数で選んだ1つの要素を 1 にする。 (3) 配列の 1 の要素の中から1つの要素を乱数で選ぶ。 (4) (3)で選んだ 1 の要素を起点にして、 隣接する 0 の要素の中から、 5方向が 0 (下図で説明)に囲まれた 0 の要素を乱数で選ぶ。 選んだ要素を 1 に変更し、その要素に移動。 このように 0 の領域に向けて 1 の領域を拡張していく。 (5) 拡張できる隣接する 0 の要素が無い場合、(3) に戻る。 ---------------------------------------------------- 配列において [ 0 ][ 0 ][ 0 ] [ 0 ][ * ][ 0 ] [ow][ 1 ][ow] [ow][ 1 ][ow] [ 0 ][ * ][ 0 ] [ 0 ][ 0 ][ 0 ] [ow][ 0 ][ 0 ] [ 1 ][ * ][ 0 ] [ow][ 0 ][ 0 ] [ 0 ][ 0 ][ow] [ 0 ][ * ][ 1 ] [ 0 ][ 0 ][ow] この4種類のみ、乱数で選択したいです。 0:0の要素 1:1の要素 *:前述(4)の「1を起点とした隣接する」0の要素の位置 ow:otherwize(0でも1でもいい要素) 図 5方向の0についての説明 絵を描きながらイメージして書いているのですが プログラムの経験が浅く、どう作ればいいかわかりません。 配列や動作の構造をできるだけ簡単に記述したいです。 実際にC言語で作っていただけたら大変助かります。 よろしくお願いします。

  • C言語のポインタについて

    C言語のポインタ(配列もポインタに含まれるのか?)について質問です。 係数を行列形式で表される状態方程式などの2変数以上の方程式を解くプログラムにおいてよくポインタや配列が使われているのですが、なぜポインタや配列を使うのでしょうか?利点など詳しく教えていただけませんでしょうか。。。 どなたか分かる方よろしくお願いします(*_*)

  • 初心者がCGIプログラムを作って見たい・・・。

    はじめまして。よろしくお願いします。 (質問に至るまで) HTMLやCSSを勉強し、それなりにある程度出来るようになりました。色々ページ作成等している中で、レンタルフォームやチャット、掲示板などがCGIで動いている事を知りました。また一般的にはそのようなCGIプログラムは広告付きのレンタルか、業者から購入するかであることを知りました。でも、できることならHTMLやCSSを勉強したように、自分で勉強して作成できないものなのだろうか?と考えるようになりました。 (今の状態) 自分で調べてCGIはプログラム言語そのものではなく、概念である事、Perlという言語が一般的に使われる事、でもC言語やその他の言語も使える事を知りました。が全くそれらの知識はありませんしまだ違いもよく分かっていません(少しは調べましたが)。そこで (質問) 1 全くの初心者が独学でも、頑張ればある程度のプログラムを作れるようになりますか?掲示板を作るとか、メールフォームを作るとか・・・。 2 上記のような目的ならPerlを勉強するのが一番いいのでしょうか? 3 1日2,3時間勉強に取れるとして、以下が出来るようになるまでの大まかな(時間的な)目安を教えて下さい。目安ですので、自分は実際にそこまでする予定のないものも含みます。 ・大体の仕組みが分かり、ちょっとしたCGIの改造が出来るようになる。 ・自分で簡単なプログラムを作れるようになる ・自分で本格的なプログラムができるようになる ・なんと人の希望を聞いてCGIを作って売ることまで出来るようになってしまう(^^)。 あくまでできるものならやってみたいなぁ、というもので、将来「これで仕事を!」と思っているわけではありません。ですから「大変だぞ、やめときなよ。」というご意見でも結構ですので、よろしくお願いします(でも一応上記質問には答えてもらえたらと思います)。

    • ベストアンサー
    • CGI

専門家に質問してみよう