C言語一覧

eclipseの罠

こんばんは。

 

前回の記事でeclipseを導入したことをお伝えしました。

 

最初のうちは慣れないながらも参考書のサンプルプログラムを記述、
実行し、楽しく使えていたんですが、ふと以前購入した、
「はじめてのAIプログラミング C言語で作る人工知能と人工無能」
で動かなかったコードを試してみようと思い、打ち込んでみました。

 

案の定動作しませんでした。

 

試しにVisualStudio2017では動いたコードを打ち込んでみました。

 

なんと、そのコードも動かない・・・

 

eclipseで打ったコードをVisualStudio2017で動かすと正常に動作しました。

 

明らかにおかしい。

 

そこで「eclipse実行されない」等々検索し、文字コードを変えたり、設定を
変更しても治らない・・・

 

意味わかんね~と諦めかけた時についに原因を発見!

 

 

わかりますか?

 

だいぶ前に投稿した「人工無能作りをすることにしました」の記事でのコードとの
違い。

 

そう! fflush(stdout); という記述がprintf関数のあとに追加されています!

 

なにやらこれはeclipseの癖みたいで、キーボードから入力をした後にprintf関数を
使うとうまく表示されないため、fflush(stdout);という記述が必要みたいです。

 

上の画像のコードを実行するとうまく動作しました。

 

これは正直非常にめんどくさいですよね・・・

 

別にVisualStudio2017が嫌になったわけでもないし、この制約を受けながらeclipseを
使う必要ってないように思えてきました。

 

ちなみにfflush(stdout);の件が解決したのちに、動かなかったサンプルコードを実行
(必要だと思われる場所にfflush(stdout);を付け足して)してみたところ、
見事に動きませんでした!!

 

ははは・・・ひとまずはeclipseは封印だな!


12歳からはじめるゼロからのC言語 学習完了

こんばんは。

 

ようやくですが、「12歳からはじめるゼロからのC言語」の学習を終えました。

 

最後は星座を題材にした、入力した数値によって線が描画されるというプログラム
でした。

 

いや~今回の学習は長かった!

 

ただ、まだ基礎が固まってないと感じています。

 

ひとまず今まで購入した参考書をもう1度見返しながら、「はじめてのAIプログラミング」
という、購入したけど、プログラムが動かず学習を進めることができなかったこの参考書
の攻略を目指します。

 

プログラムを自分で書き換えて動くようにしてやるぜ!


亀の速度で

お久しぶりです。

約1か月間あまり仕事やプライベートが忙しく、更新をさぼってしまいました。

ただプログラミング学習は続けております!

朝5時起きはほとんどできていないですし、まだ「12歳からはじめる
ゼロからのC言語もやり終えていませんが、続けてはいます!

今は恋愛ゲームを作る章を勉強中です。

これは会話機能のプログラムなので、今後の人工知能作りにも役立ちそうです。

 

このペースでプログラミング学習をしていき、人工知能を作れるのはいつになるやら
って感じですが、地道に前を向いていきます。

 

この参考書でやっとですが、自作の関数について理解もできたんです。

void JisakuKansu(); という自作の関数を作ったときにvoidだとか
関数の名前の後ろの()とか挙句の果てには
JisakuKansu(j) の()のなかのjの意味って何?
と思っていたのですが、理解できたのです!

今まで理解できなかったことが急に理解できるのはうれしかったですね~。(*’▽’)

こうやってゆっくりとでも進めば急に何か見えてくるはず!

がんばりますよぉ~!


気分転換にほかの本を読むのはいいね

こんばんは。

 

ぼちぼちと「12歳からはじめるゼロからのC言語ゲームプログラミング教室」
進めております。

 

 

いまは条件分岐のあたりですが、このへんは理解できているなと実感しています。

 

ただ実際にいちから自分でコーディングしようと思うと難しいんだよなぁ~。

 

これは慣れなんでしょうか・・・

 

最近は上記の参考書で疲れた時に気分転換でほかの本を読んでいます。

 

 

「オブジェクト指向でなぜつくるのか」
出張で電車に乗っているときにふと、この時間も有効活用したいなと思い、
電子書籍版で購入しました。

 

C++を学習中でクラスとかそのへんがわかりにくかったので読み物としてこれに
しました。まだすべて読んではいないのですが、オブジェクト指向に特化した書籍と
いうだけあって、入門書の説明よりわかりやすいです。

 

ただ買ったあとに気づいたんですが、今はC言語の勉強をしているので
C言語の機能で理解できていないポインターに関する書籍にすればよかったなと。

 

読み終わったら、そちらを購入しますか。

 

なんにせよ、いろいろと勉強して最終的に人工知能を完成させてやるぜ!


理解できることは楽しい

こんばんは。

 

 

本書を使用し、C言語学習を進めております。

 

まだ最初の方なのでかなりの部分を理解できているのを実感しています。

 

理解できたら楽しいですね!

 

12歳からと謳っているだけあって、解説の仕方がわかりやすいです。
たまに出てくるゆるふわなキャラクターも脳の緊張をいい感じにほぐしてくれて
学習していくうえで疲れにくい参考書かなと感じます。

 

学習する際にグラフィカルコンソールなる学習環境を整えて学習するため、
実行プログラムもコマンドプロンプトのような素っ気ない感じではなく、
ゲームっぽい感じで表示されるので、なんかすごいことできた感があります(笑)

 

上の画像のような感じで実行プログラムが表示されます。

 

最近また仕事が忙しくなってきており、学習する時間があまり確保できませんが、
ぼちぼちと進めていこうと思います。


モチベーションって大事だよね

こんばんは。

 

「はじめてのAIプログラミング C言語で作る人工知能と人工無能」ですが、
やはり私にはまだ早いということで、一旦諦めることにしました。

 

何一つ理解できないもので時間を使うのはもったいないし、モチベーション
下がるのでね。

 

とはいえ、今回の挫折の原因はC言語の基礎をマスターしていないことによる
ものだと思うんです。

 

というわけで、再度C言語の基礎学習をすることにしました。

 

ただし、同じ参考書をもう一度っていうのも、モチベーション上がらないので、
新たに買いました。

 

「12歳からはじめるゼロからのC言語ゲームプログラミング教室」

 

 

もうね・・・文章だけのものを読む気力は失われたんです・・・

 

やさし~く、そしてなるべくポップな感じで学習したいなと思い、本書にしました。

 

レジに持っていくのは多少恥ずかしかったですが、なりふりかまってはいられません!

 

この本で再び「C言語たのし~~~!!」とあのころのモチベーションを取り戻そうと
思います!


C言語学習8

こんばんは。

16章 複数の型をまとめる
17章 ファイルの取り扱い
18章 マクロ機能
19章 動的配列
20章 複数のソースファイル
21章 キーボード入力

まで一気に学習を進め、全章の学習が終了しました!

17章の「ファイルの取り扱い」を学習時もfopenがVisualStudio2017で
扱えなかったのですが、何か相性が悪いのでしょうか。
もはや学習も終盤だったので、うまく動作しないものは放っておき
ましたが・・・(笑)

プログラミング学びたての初心者がここまでくると、プログラマーの
負荷を減らすための便利な機能もそんな機能つけるなよ~頭がこんがら
がるんだが・・・と思ってしまいます。

実際プログラミングをガンガンこなせるようになると、ポインタとかマクロ
とか構造体とか便利なんでしょうね。

私はこのあたり、半分も理解できていない気がします(笑)
思想はわかるんですけどね・・・その機能がある意味とか出来た背景とか・・・
ただ、なんせ実際のプログラムがややこしい!

それにしても、いや~疲れた。

高校を卒業して以来、仕事のことを勉強する機会はあっても、
仕事以外でなにかを勉強したことがなかったので、だいぶ疲れ
ました。

内容をすべて理解したかと言われると、そうではないのですが、
とりあえずこれでC言語の基礎を学び終えたことになります。

これからはいよいよ人工知能を作ろう!といきたいところですが、
実際のアプリやらソフトをこの知識だけで作れるかと言われると
作れそうもありません。

今度はもう少し実践に近い形で勉強を続けていきたいと思います。


C言語学習7

こんばんは。

15章 ポインタ変数の仕組み

の学習を終えました(終わらせました)。

結局、深く考えなくてもよいと、参考書に書いてあったので、
深く考えないことにします(笑)

練習問題も全くわからなかったので、即解答見ました!

ちなみに練習問題がこちら。
「0~100の範囲で入力された複数の数値の中から、最大値と最小値を
求めて表示するプログラムを作成せよ。-1が入力された場合は入力の
終わりと判定する。」

解答がこちらでした。

*が付いたりしているので、ポインタを使ったのだな~ということしかわかりません(笑)

こういう参考書とか、まぁ学生のときの教科書とかもそうですが、出題される練習問題って
本当に習ったことを出題しているのでしょうか・・・

いや、たしかに習った文や公式を使っているのでしょうけど、応用の仕方についていけないん
ですよね~・・・

子供のころから勉強しておけば、頭が柔らかくなったのでしょうか!?

 

自分の子供には勉強させよう(笑)


C言語学習6

こんばんは。

14章 文字列を扱う方法

の学習を終えました。

なぜかはわかりませんが、strcpyやstrcatを使う文?がうまく動作しませんでした。
#include<string.h>は定義しているのに・・・

VisualStudio2017の問題なのか?私だけ?

ということで練習問題はできていません。

練習問題は「名字と名前を別々に入力させて、それを結合して表示するプログラム
を作成せよ」でした。

まぁこの問題は計算式を考えなくても良いし、学んだことをただ単純に書けばいいんだ
ろうなと。
ってことで、scanfで入力させて、strcatで合体させればいいんでしょう!

回答もそのような感じでしたので、VisualStudio2017でコンパイルできれば
恐らく解けました!

そんな感じで14章 文字列を扱う方法の学習を終えたので、15章 ポインタ変数の仕組み
に取り掛かったのですが、一言でいうとよくわかりません!

メモリをアドレスにしてポインタで読み書き?
ポインタ型?ポイント値?

実態はショートカットなんだな~ということだけなんとなくわかりました。

明日は朝が早いため、この章の学習は明日再度することにします。

それでは。


C言語学習5

こんばんは。

11章 関数の作り方
12章 変数の寿命
13章 複数の変数を一括して扱う

まで学習しました。

完璧に理解できているかというと、全くそうではないのですが、
とりあえずテンポよく、学習していこうとのことで分からなくても
深く考えておりません(笑)

11章の練習問題ではまたオリンピック開催年の問題でした。
これは1度したので、計算式については完璧です。
ただし、章的に関数を使えということなのだろうということで、

ほい、どうだ!
前解いた問題を丸々関数にして、貼り付けただけですが、それらしくなってるのでは
ないでしょうか!

模範解答は以下でした。

レベルが違う・・・

12章はプログラム書き取り問題はありませんでした。

13章の練習問題は「入力された10個の数値を最後から表示するプログラムを作成せよ」
でした。

これはまぁできたはできたんですが、たぶんこういうことではないんだろうなと。

画像はないのですが、配列を10個作って、そのなかにscanfで入力した値を最後に
printfで逆順に出力するプログラムを作りました。手打ちで10回・・・

ただ、恐らく出題者の意図は「何回も同じ文を打たずに!」なのだろうなと・・・

模範解答は以下でした。

ほら、やっぱりw

出題者の意図もわかって、for文使うんだろうな~とまでわかって、いろいろと試したの
ですが、私にはfor文を使いこなせなかったです・・・

ただ今回の件でfor文について理解が深まった気がします。条件式で定義したあとの
{}の中の条件式で定義した変数部分が繰り返されるのですね!

やはり分からなくてもそこで立ち止まるよりはわからないまま進んでいけば、
あとでわかってくるということですね。

どんどんいこう!


スポンサーリンク
広告1
広告1