• ベストアンサー

C言語、初心者が書けそうなプログラムとは?

 はじめにお断りしますが、私はプログラマーになるつもりは全くないです。  それとプログラムの知識もほとんど全くありません。  純粋に興味として質問をさせていただきます。 以下はC言語の入門者用の目次からなのですが、 ---------------------------- if,switch,for,while 2次元配列、自作関数、ポインタ、 関数への・コマンドプロンプトでの引数の渡し方 ファイルへの読み込み・書き出し バイナリファイルの入出力 構造体、共用体と列挙体、マクロ、 複数ファイルのプログラム malloc関数 ---------------------------- (1)以上のもの+α程度を習得して、さらに人の助言などによって発展性をもたらすことができたら、具体的に(※)何のプログラムが自作できますか? (※)カレンダー、オセロゲーム など?? (2)C言語を扱うプログラマーとして会社に入社して、最初の1年目で任せられるようなプログラムとは具体的にどういうものがありますか?  特に(2)の質問は範囲が広すぎて回答が困難だと予想されますが、質問している私自身が何もわからない人間なので、質問の範囲を狭めることができません。申し訳ありませんが上手く答えられる方、お願いします。

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

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

こんばんは。 (1) 他の方の回答にもあるように、すべて基礎です。 C言語はあらゆる分野で活用されていますが、これを、C言語の基本を「学習する」ということをベースに考えると、コマンドプロンプト上で動く「住所録」というところがひとつの到達点になると思います。  ・新規登録  ・一覧表示  ・編集  ・削除  ・保存  ・CSVファイルからの読み込み  ・CSVファイルへの書き込み Windows で動くものを作ろうと思ったら、もっといろんなことを勉強する必要がありますし、Cじゃないほうが簡単です。 (2) 私は業務エンジニアリングを主とするベンダとお付き合いがあるフリーランスのシステムエンジニアですが、C言語を学んで入ってくる新人がいないので、非常に重宝すると思います。ただし、私が今いる分野だと、Cを使うことがあまりない! 業務エンジニアリングの分野では、半年は仕事の流れを勉強することになるでしょう。成果に応じて、先輩が作ったプログラムのテストをしたり、簡単なバッチプログラム(たとえば、上であげたCSVファイルからの読み書きとか)を書いてもらうと思います。そこで、ちゃんとポインタがわかってるかとか、Cのわかりにくいスコープを理解しているかとかを見極めて、1機能を任せるようにします。 こんなんでいいですかね?      

jointdry
質問者

お礼

ご回答ありがとうございます。 (1) >住所録 具体的な例で非常によくわかりました! たしかに入門書レベルの知識の人間でも「想像できる範囲」の作品ですね! (実力としてできるできないは別として) (2) プログラムのテストやバッチプログラムですね。ありがとうございます。 >1機能 これをお聞きしたかったです ---------------------- 実は単に暇つぶしと興味でC言語の入門書をパラパラ読んでいます。 そこで、C言語の入門書に書いてあるレベルのことが、実際世のプログラミングのお仕事でどう使われているのかが知りたかったのですが、ネット上や他の方とshin_nosukさんのご回答をあわせてみてみると、どうもC言語の初歩的知識とプログラマーがする仕事とはあまり関係がなさそうですね。 なんなら入門書に書いてあるレベルのことを学ばずとも支障はなさそうですね。(会社会社の実践の中で必要なことを覚えていけば)

その他の回答 (5)

  • kiwa67
  • ベストアンサー率22% (82/357)
回答No.6

#2 です。 >I/Fはインターフェースのことですね。 >「データベースシステム」「メモリ管理I/F」といわれてもいまいち >ピンと来ないので理解できず残念です。 #4 の方があげられている「住所録」がいい例です。

jointdry
質問者

お礼

補足説明ありがとうございました。

  • arain
  • ベストアンサー率27% (292/1049)
回答No.5

気になる発言があるので、ちょっと一言だけ。 一応、C/C++を主に使う組込系メインの業種についてます。 >なんなら入門書に書いてあるレベルのことを学ばずとも支障はなさそうですね。(会社会社の実践の中で必要なことを覚えていけば) この考えが最初にあるようでは、いいものは作れませんし、そもそも仕事を与えられません。 「基礎」を理解せずに「応用(仕事/プログラム)」ができるとでも? そう考えてるならこの業界はあきらめたほうがいいでしょうね。 入門書のレベル程度のことができない(理解できない)ようでは、まともに仕事なんかつけさせることはできません。 他の回答者が回答していることも「基礎ができていなければ」そもそも作ることだってできません。 会社は仕事をしてもらう「対価」として給与を払います。 確かに、入社直後なら右も左も分からないから多少なりとも教えてくれるかもしれません。 しかし、そこまででしかりありません。「成果」が期待できなければ…… 勤務時間以外、プライベートでも学習する意欲を持ってなければ何にもなりませんよ。 特にこっちの業種は「当たり前のように利用している」関数がなかったり、メモリ管理もシビアでありプログラムの組み方一つで高価なハードを壊すことだってあります。 そんな高価な機材を利用するプログラムを「仕事の中で勉強すればいい」と考えている相手に貸し出して仕事を任せられるとでも? これは一年目だろうが何年たとうが一緒です。 この境界は文字通り「秒進分歩」。常に新しい技術が出てきています。常に新しい技術や知識を学習していく気構えがなければやっていけません。

jointdry
質問者

お礼

書いているように私はプログラマーになるつもりは全くないです。 一般人として興味のみで質問をしました。 入門書レベルのことと実践の仕事との差異については興味があるので、別の機会に改めて質問させていただきます。

  • Tasuke22
  • ベストアンサー率33% (1799/5383)
回答No.3

どちらの回答も「センス」によるでしょう。 (1)日本語をどの程度習得したらどんな小説が書けますか? という質問に似ています。 語彙が少なくても面白い小説を書く人もいたら、語彙が凄く 沢山あっても小説が書けない人がいる訳です。 また、オセロなどはプログラミング技術もさることながら 強いプログラムを作ることは困難でしょう。 プロのプログラマでも100人に1人も出来る人はいないと思 います。 (2)1年くらいでしたら、最初から出来る人はいません。 問題の本質を探り、効率よく分からない部分を調べられる人 は、何でも出来ます。 何が分からないか分からない人は何年経っても仕事をしてい るフリだけです。

jointdry
質問者

お礼

ご回答ありがとうございます。 私のような素人に合わせた文章表現で助かるのですが、具体的に何かが掴めず困惑しています。 「センスによる」のだとすると一般レベルのセンスの人は何をやっているのでしょうか? 最初の回答者さんは「一年目は仕事じゃなくて勉強をやっている」と 2番目の回答者さんは「たとえば製品を検査するためのプログラム等をやっている」 とおっしゃってますが、、

  • kiwa67
  • ベストアンサー率22% (82/357)
回答No.2

(1) 独自仕様のデータベースシステムといったところか?   独自仕様のメモリ管理 I/F   ゲーム等は、グラフィック I/F がない(+αどころではない)と難しいです。 (2) 製品のコアの部分よりも個別の I/F になるのではないでしょうか?例として、製品を検査するためのプログラム等

jointdry
質問者

お礼

ご回答ありがとうございます。 I/Fはインターフェースのことですね。 「データベースシステム」「メモリ管理I/F」といわれてもいまいちピンと来ないので理解できず残念です。 (2)はなんとなくわかりました。 ありとうございます。

回答No.1

1. ロクなものはできません。これらはすべて基礎です。   が、これらができないと何ひとつできません。   たとえばオセロ作りたいとなると、   グラフィクス周りのライブラリを必要としますしね。 2. わかりません。が、(1)に並べたもの"だけ"では太刀打ちできません。一年目は8割が勉強と思っていいんじゃないかと。 ※ あくまで"私見"です。

jointdry
質問者

お礼

わかりました。素早いご回答をありがとうございます。

関連するQ&A

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

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

  • C言語に関することについて教えてください

    学校の問題集にでてきた問題がわかりません、どうか教えてください 1 プログラムの役割、必要性について説明せよ 2 プログラムにおける変数と定数の役割を説明せよ。また、ローカル変数の有効な範囲について説明せよ。 3 C言語で使う変数が他について、宣言子と、printf関数、scanf関数それぞれにおいて対応する書式指定子を対応表にせよ。また、変数名を決める際に守るべき文法上の規則と、プログラマとして配慮すべき事項を説明せよ。 4 配列について、その役割と定義方法を説明せよ。 5 コンピュータにおける文字処理に必須なアスキーコードについて説明せよ。 6 C言語における文字列について、文字列定数、文字列変数を説明せよ。 7 C言語における繰り返し処理の文法(for,while,do~while)を、プログラムコード列を示して説明せよ。 8 C言語における条件判断の文法(if,else,else if)を、プログラム列を示して説明せよ。 9 繰り返し、条件判断において利用する論理式(等値演算子、関係演算子、論理演算子等で記迷する式)について、その記迷の方法を論理和、論理積も含めて説明せよ。 10 変数のアドレスについて説明せよ。また、ポインタについて、アドレスとの関連性を踏まえて、その役割と定義方法を説明し、具体的な使い方のプログラムコード例を示せ。 11 ポインタと配列の関係について、ポインタによる配列操作を列に説明せよ。 12 関数について、その役割と定義方法について説明せよ(戻りがた、関数名、引数リスト)。また、自作関数をそれらを利用するmain関数のプログラムコード例を示せ。 13 scanf関数の戻り値について、その内容を説明して、どのような際に利用すると便利か、プログラムコード例を示して説明せよ。 14 引数にポインタを利用する関数のプログラムコード例を示して、ポインタの必要性、重要性を説明せよ。 15 構造体について、その役割と定義方法を説明し、具体的な使い方のプログラムコード例を示せ。 16 ファイルポインタについて説明し、ファイル入出力の方法についてプログラムコード例を示して説明せよ。

  • C言語について。

    C言語プログラマとしては、スタートアップコードは・・・ ・自分が書いたプログラムを、直接動かすために必要なライブラリ ・それはコンパイル後、リンカによって追加されるライブラリこれは、 どういう意味でしょうか?分かりやすく教えていただけると幸いです。すみません。で、 以下のかぶくんまんさんの回答です。 https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11247611941 で、 C言語におけるプログラミングとは「main関数を書くこと」に他ならない。なぜ「main関数を書く」ことがC言語におけるプログラミングに他ならないのかと言えば、それは偏に「C言語のコンパイラはmain関数を呼び出すプログラムを生成するから」です。それがmain関数を求めるので結果的にmain関数がリンクされ、そしてmain関数が求めるままに他の関数もリンクされていくわけです。 で、その「main関数を呼び出すプログラム」こそが、C言語における「スタートアップコード」。 という回答で、main関数以降は、プログラマが書くのですよね?プログラマが関数をリンクさせる様なプログラムを書くということでしょうか?教えていただけると幸いです。すみません。 という所が分かりません。教えていただけると幸いです。すみません。以下のURL https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q12247932542

  • 入門書レベルのことが、どう実践の役に立つのか?

     私は興味と暇つぶしでC言語の入門本を読んでいる者です。  プログラマーになるつもりは全くないです。 純粋に興味で質問させていただきます。 入門書レベルのことと実際の仕事ではだいぶ差異があると聞きましたが、では入門書レベルのこと(※)が実践やその勉強で具体的にどう必要で、どう役に立っていくのでしょうか? ある程度技術的な説明を、ド素人にもわかりやすくお願いしたいです。 「基礎だから」というお答えでしょうが、そこのツッ込んだ解説を知りたいわけです。 (困難な要求ですいません!) ※---------------------------- if,switch,for,while 2次元配列、自作関数、ポインタ、 関数への・コマンドプロンプトでの引数の渡し方 ファイルへの読み込み・書き出し バイナリファイルの入出力 構造体、共用体と列挙体、マクロ、 複数ファイルのプログラム malloc関数 ----------------------------

  • C言語からのFortranプログラムの呼び出し

    Fortranで記述した以下のような構成の有限要素法プログラムをC言語から呼び出したいのですが,具体的にどのようなコードを記述すればいいのかがわかりません.お教えいただけないでしょうか. サブルーチンinputおよびoutputでは入力および結果ファイルの入出力を行っています. 当方C言語はほぼ初心者です.Fortranのプログラミング環境としてはVisualStudio2005およびVisualFortran9.1を用いています. C言語のプログラミング環境としてはおなじくVisualStudio2005を使用したいとおもっております. [メインプログラム] open (5,file='input.dat') open (6,file='output.dat') /入出力用のファイルを開く call input(parameter1) /各サブルーチンで有限要素法を実行 call bound(parameter2) call matrix(parameter3) call solve(parameter4) call output(parameter5) close (5) /入出力用のファイルを閉じる close (6) stop end

  • C++プログラムをCで呼び出したい

    こんにちは。質問させていただきます。 現在、Linux/GCC3.2.3系でC言語の開発をしています。 私自身のレベルとしては、C言語での実務は1年未満。C++はゼロ。本業はJavaプログラマを数年やっております。 さっそく本題です。 既にC++で作成されたある一連のプログラム群(20本程度)があり、これらC++の関数をC言語で作成されたプログラムから呼び出して使用したいと思っています。 C++プログラムは既にテスト済みなので、これらのソースは基本的には手を加えず、そのままライブラリ化などして使用したいと考えています。 そこで質問なのですが、C言語から呼び出せるような形式でC++ソースをライブラリ化する方法と、C言語からの呼び出し方を教えていただけないでしょうか?

  • C言語でゲームのプログラミング

    C言語でゲームのプログラムを組みたいのですが、全く分かりません。 内容は、8×8程度のオセロ盤を仮定し、その上でオセロ通りの駒の動きをする プログラムを作るということらしいです。更に、次の手として何を選んだらよいか考えなくてはならないんです。 私が使える関数は、そんなに高度ではありません。 ポインタをやや理解しているほどです。 誰か、この問題を解決するのに協力をお願いします。 とても困ってしまい、悩んでいます。

  • c言語 プログラム メニュー

    C言語のプログラムでメニューの原型を作りたいと思っています。 内容としては ・標準ライブラリのみ ・関数を自作する ・関数の中身はprintfやscanfなど初歩的なもののみ ・メニューといっても1◯◯、2◯◯、3◯◯、4終了を表示(◯◯は適当)し、キーボードで1、2、3が入力されるともう一度メニューが表示されるというものです。(4のみプログラム終了) ご協力お願いします。

  • C言語のプログラムで...

    C言語のプログラムで2つのprintf関数の表示にタイムラグを付ける場合はどうしたら良いでしょうか?

  • 関数はあるがC言語で書けないプログラム

    数学的に関数はあるがC言語では書けないプログラムを 探しています。 関数自体は偶数か奇数(0以上の整数)を返す関数で しかしプログラムでは書けないというものです。 よろしくお願いします。

専門家に質問してみよう