[雑談・相談]プログラミングの訓練について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
K_Tarou
記事: 22
登録日時: 12年前

[雑談・相談]プログラミングの訓練について

#1

投稿記事 by K_Tarou » 12年前

お世話になっております。
ソースコード等はなく、直接的にプログラミングに関係があるかどうか判断が難しかったので "雑談・相談" という形でトピックを投稿いたしました。

今回、お聞きしたいことはプログラミングの上達法や考え方についてです。
私は現在、C++の文法などと並行して、「ソート」などの基本的なアルゴリズムについて勉強をしております。

しかし、アルゴリズムというものが、なかなか頭に入ってこない状況で全くトレースなどが出来ずに困っています。
例えば、「基本情報技術者試験」の下記のような疑似言語(?)問題を解こうと試みますが、約2時間もの時間をかけても正答にたどりつけませんでした。

http://edu.clipper.co.jp/docs/h25s08.pdf

コマンドライン上で文字だけを使うようなゲーム等を作ろうとした際にも、頭が固まってしまい、なかなかコードを書けません。
Cの文法という「道具」については中途半端に身につけ、実際の使い方や考え方が全く身についていないようで、我ながら非常に情けないと感じました。

こういった、アルゴリズムや論理的な考え方というものは勉強して身につけ、磨いていけるものなのでしょうか?
どうか、皆さんのアドバイスなどを頂けると嬉しいです。お願い致します。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: [雑談・相談]プログラミングの訓練について

#2

投稿記事 by softya(ソフト屋) » 12年前

アルゴリズムは、結局誰かが考え付いた、あるいはみんな同じ事を考えていたって事を体系的にまとめが上げたものです。
なので、数学的に難しいアルゴリズムを除けば、誰もが考えつきそうなシロモノです。
見方を変えると、日常では自然と出来ている事でもあるのです。
ソートと言われると難しそうですが、このカードを手で並び替えろと言われれば難なく出来ると思います。
実際に、トランプなどを使ってアルゴリズムを疑似体験すると分かりやすくなると思うんですけどね。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ISLe
記事: 2650
登録日時: 15年前
連絡を取る:

Re: [雑談・相談]プログラミングの訓練について

#3

投稿記事 by ISLe » 12年前

アルゴリズムや論理的な考え方とともに、データ構造に関して学ぶ必要があります。

コマンドライン上で文字だけを使うようなゲームのほうが、グラフィックを使うゲームより簡単だと考えておられるようですが、データ構造への理解が十分であれば、本質的には同じであると考えることができるはずです。

プログラムというのは記憶域の操作で成り立ちます。
逆を言えば、記憶域に格納する情報が決まらないと成り立ちません。

K_Tarou
記事: 22
登録日時: 12年前

Re: [雑談・相談]プログラミングの訓練について

#4

投稿記事 by K_Tarou » 12年前

softya(ソフト屋) さんが書きました: 見方を変えると、日常では自然と出来ている事でもあるのです。
ソートと言われると難しそうですが、このカードを手で並び替えろと言われれば難なく出来ると思います。
実際に、トランプなどを使ってアルゴリズムを疑似体験すると分かりやすくなると思うんですけどね。
ソフト屋様
ご回答ありがとうございます。
確かに並べ替えのような作業は日常的に無意識で出来ていることですね。
少し気持ちを落ち着けて、普段から意識して過ごしてみます。
トランプについてもやってみたいと思います、貴重なご意見ありがとうございます。

ISLe さんが書きました: アルゴリズムや論理的な考え方とともに、データ構造に関して学ぶ必要があります。

コマンドライン上で文字だけを使うようなゲームのほうが、グラフィックを使うゲームより簡単だと考えておられるようですが、データ構造への理解が十分であれば、本質的には同じであると考えることができるはずです。

プログラムというのは記憶域の操作で成り立ちます。
逆を言えば、記憶域に格納する情報が決まらないと成り立ちません。
ISLe様
ご回答ありがとうございます。
データ構造についてはほとんど触れておらず、盲点でした。
ゲームは単純に規模の違い、ということなのでしょうか?
3Dモデルを扱うようなゲームは、とにかく複雑で未知の世界というイメージを持っています。
データの構造を学び理解すれば、今よりはスマートに考えられるようになると信じてモチベーションを維持し、頑張っていこうと思います。
ISLe様も貴重なご意見ありがとうございます。

ISLe
記事: 2650
登録日時: 15年前
連絡を取る:

Re: [雑談・相談]プログラミングの訓練について

#5

投稿記事 by ISLe » 12年前

K_Tarou さんが書きました:ゲームは単純に規模の違い、ということなのでしょうか?
3Dモデルを扱うようなゲームは、とにかく複雑で未知の世界というイメージを持っています。
3Dモデルを扱うゲームでは3Dモデルを描画する処理が必要になりますが、ステージが平面であれば、見た目が3Dでも2DでもX,Y座標さえあれば移動処理を書くことができます。

データ構造はコンピュータに処理させるために必要なものですが、プログラマの頭の中を表しているものとも言えます。
3Dモデルを想像で動かすだけなら、3Dモデルを描画するのに必要な情報は要らないわけです。

描画と描画以外の処理を分けるといったプログラムの構造化に通じる考え方です。

閉鎖

“C言語何でも質問掲示板” へ戻る