• ベストアンサー

お薦めのアルゴリズム参考書

Pascalでアルゴリズムを組み立ててコーディングをするという研修を会社で受けています。最近、変数や関数などがでてきて、非常に悪戦苦闘している毎日です。 そこで、おすすめのアルゴリズムの参考書を教えていただけますでしょうか?変数や手続き、関数の概念や、応用問題なども載っていれば幸いです。 私のレベルはといいますと、研修で使っているテキストを読んで理解はすることができるのですが、演習問題を解くとうまくアルゴリズムが書けないという感じです。 よろしくお願いします。

noname#7287
noname#7287

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

>アルゴリズムの参考書を 普通アルゴリズムの本として、書店に並んでいるのは C言語による最新アルゴリズム事典 ソフトウェアテクノロジー 奥村 晴彦 (著) Javaによる はじめてのアルゴリズム入門 河西朝雄 著 / A5判 奥村晴彦『C言語による最新アルゴリズム事典』技術評論社 石畑清:アルゴリズムとデータ構造, 岩波書店 (Pascalで説明) などです。これらはXX法といったアルゴリズムについて、有名なプログラム解法を説明しています。 データ構造と言うのがあって、そちらを中心に説明しているのもありますので、今ではご質問者には早や過ぎるのでご注意下さい。 >変数や手続き、関数の概念 とあるので、上記の本は質問の内容と少し違うのではないかと推測します。上記の本を読んでも、今の段階では、質問者の悩みの解決には役立たないでしょう。 求めているものは、プログラム総論と言うか、プログラムの関連概念、はっきり言ってプログラムの作成法といったものでしょう。しかしこれをずばり解説する本はないでしょう。 個別問題の解法例を理解して行き、ある時期にやっと自力 でとけたの、数の繰り返しだと思います。 誰でも、一通り言語文法を学んで、さて問題を解こうとすると、手も足も出ないと思う時期がありますので、誰でも通っている苦しみの一時期にあるのです。 文法--->テスト・練習問題--->実社会の実問題 のそれぞれに、深い溝があって、ここをなんとか渡ることがベテラン・俗に言うプロへの道なのでしょう。 結論としてPascal(やDelphi)の一般の解説本を読むしかないと思います。 パスカルの本は書店ではあまり見かけませんが、下記では 相当数出てきます。良さそうなのを大型書店で見て選んでください。 http://www.amazon.co.jp/exec/obidos/ASIN/0201103427/inktomi-jp-asin-books-22/250-3830052-0873024 むしろ最近やっと、(言語は違います、VBやJavaが多いですが)「プログラムとは」と言った、学習を始めた人向けの解説書が本屋に並んでいます。これらを読まれるのも良いかと思います。そこには変数、関数などの基礎概念から説明されています。

noname#7287
質問者

お礼

詳しい回答ありがとうございました。 今日大型書店に行って、見てみましたが、なかなかPascalの参考書はないですね。来週からCの研修が始まるので、imogasiさんの回答を参考にして、C言語の勉強をしていきたいと思います!

その他の回答 (1)

  • liar_adan
  • ベストアンサー率48% (730/1515)
回答No.1

Pascalでアルゴリズムの本というと、 昔『アルゴリズム+データ構造=プログラム』という N・Wirth(ヴィルト)の有名な本があったんですけどねえ。 今は新版になって、使っている言語が変わってしまいました。(下記URLの前者) 古本屋で探せば、Pascal版も見つかるかと思います。 他にも、アルゴリズムの本で良いのはいろいろあります。 しかしお話を聞く限りでは、いわゆる「アルゴリズム」の問題ではないように感じます。 変数・関数の概念で困っているというレベルでは、 これらの本を読んでもおそらく消化できないでしょう。 たぶん、テキストを一冊渡されて勉強しているのだと思いますが、 本屋に行ってあと何冊かPascalの入門書を買うことをお勧めします。 入門書は、だいたい九割くらい同じことが書いてあるのですが、 それでも複数持つことは無駄ではありません。 同じ事項に対する複数の記述を読むと 「ああっ、そうか!」と理解できることがあります。

参考URL:
http://www.amazon.co.jp/exec/obidos/ASIN/4764901625/,http://www.amazon.co.jp/exec/obidos/ASIN/4890522794/
noname#7287
質問者

お礼

回答ありがとうございました。 今日書店に行って、Pascalの参考書を探したのですが、なかなかありませんでした。 教えて頂いたURLで探してみようと思います!

関連するQ&A

  • アルゴリズム関連の奨めサイトは?

    理解力が乏しくアルゴリズムが苦手で困っております。 せめて、人並みに理解出来る様になりたいと思います。 下記に詳しい方、教えていただけませんでしょうか? 1、数学の基礎知識が無くても、(中1レベル)理解出来るサイト   てありませんでしょうか? 2、数学が苦手な方でアルゴリズムが苦手では無いと言う方   どのように、学習されましたか? 3、アルゴリズムを考えるとき、大抵頭の中で問題が釣り糸の様に   絡みあってしまいます、アドバイスがあればお願いします。 4、アルゴリズムや数学力をつける訓練法は? 5、記憶力・理解力共に平均以下ですが、一度理解できれば、その応用   は周りからも認められております。   こういった特徴は、プロセスに問題があるのでしょうか? 6、その他、アルゴリズムを理解する為に解かりやすく為になる   情報があれば教えてください。(脳の話などでも結構です) ※1つでもアドバイス頂けると嬉しいです。

  • 二次元配列のアルゴリズム

    いま研修でアルゴリズムの基礎を勉強しています。あるテキストで「品目ごとの合計金額と総合計を表示するアルゴリズムを作成せよ」というお題がでたのですが、二次元配列が絡んでくると、どうも分かりません。誰か似たような問題をご存知でしたら、教えて頂けませんか?お願いします。

  • 平成23年秋の午後アルゴリズム問題

    現在春の基本情報技術者試験に向けて勉強してますが、アルゴリズムで悪戦苦闘しています。 平成23年秋の問題ですが、問8のアルゴリズムですが、設問2の構文解析処理ですの解き方が解説を見ても分かりません。解説には「優先度の高いコードを検索する流れ」となってますが、それがこの流れに繋がる所が飲み込めません。 何か良い解説本orサイトはありますでしょうか?

  • クイックソートしながら重複要素削除アルゴリズム

    アルゴリズムが苦手な上、アルゴリズム解説自体C言語ベースで書かれ ている物が多く処理のイメージが沸かずクイックソートもコピペや既存 の関数で処理していて、満足に理解出来ていないのですが。 以下の問題を、お解かりになるかた教えて頂けませんでしょうか? ■問題 2万件位の数値データの中から重複要素を削除しながら昇順または降順で、 ソートするアルゴリズム(※1) ■条件 BASIC的(※2)な記述やプログラム中のコメントなどの形式でも構いま せん出来るだけ簡単に示して頂けると助かります。 補足 (※1)ソートする際、重複要素を消すともっと処理が早くなるのではと 思ったので。 目的は、処理の速さを求める事と、次回から応用が聞くよ うにソート自体を理解したいのでクイックソートで無くても構いません。 (※2)実際に動かなくても構いません、イメージが掴みやすい方が良いと    いう意味でとって下さい。

  • 基本情報午後 CASLへ走るのは?

    約2ヶ月くらい 過去問題のC言語に悪戦苦闘しました しかし 私にとっては難題という 印象はぬぐえません C言語は実際にプログラムしたりしてますが テスト問題となると ちがうようです いまさらですが CASLのほうも視野にいれようと考え出しました 今からでは 遅いでしょうか? CASLはやや 難易度が低いとの 話もあるようですので アルゴリズムの苦手な私にとっては 逃げてのような気が してきまた いかがでしょうか?

  • キーボードから入力される文字を受け取る関数?

    VB 2008 でキーボードから入力される文字を受け取る関数の作成は可能でしょうか? Module Main   Sub Main()     Dim nc As Long     nc = 0     While FileSeek("D:\Temp\Test.txt", nc + 1) <> ""       nc = nc + 1     End While     Debug.Print(nc)   End Sub End Module △ While FileSeek("D:\Temp\Test.txt", nc + 1) <> "" ○ While GetChar() <> "" もちろん、GetCharってのはありますので同じ名前では無理。 でも、こういう関数を欲している訳です。 OKWaveに助けられて FileSeek()ってのを作成しました。 が、これはファイルから1文字づつ読む関数。 欲している関数とは違います。 VB 2008Expressをダウンロードし某テキストの例題を初めから演習しています。 なにせ、プログラマでもないのに初めての言語ということで悪戦苦闘です。 そして、今、僅かに3題目。 宜しくお願いします。 なお、コンソールではなくWindowsアプリケーションで演習中です。

  • 探索アルゴリズムの名称について

    以下の探索もしくは組み合わせのアルゴリズムに名称があるのかを教えていただければ幸いです. ある変数a1,a2,a3・・・,b1,b2,b3・・・があり(それぞれ小さい順にソートされている), このaとbにより影響する評価関数が最小となる最適な組を探索するアルゴリズムです. (1)まずa1・b1のペアを用いた時の値を算出する. (2)次にa2・b1のペアとa1・b2のペアでの値をそれぞれ算出し,小さい方を見つける. (今回はa1・b2のペアの方が小さかったとします.) (3)次にa2・b2のペアとa1・b3のペアでの値をそれぞれ算出し,小さい方を見つける. (2),(3)の様な処理を繰り返し行い,最小となるa・bの組を探索する. 以上の様なアルゴリズムなのですが,名称があるのかをお聞きしたいと思います. 言葉で書くとイメージしづらいですが,小学・中学ぐらいで勉強した最短経路問題のように 格子状の図を書くと分かりやすいと思います. 二方向のみをみて探索していきます. 個人的には,二分木探索に近いと思うのですがどうでしょうか? ただ,進み方によっては,同じ組み合わせを探索する事も出来るので, 完全な二分木探索ではないような気がします. 皆様のお力をお貸しいただければありがたいです. お願いいたします.

  • 基数変換のアルゴリズムの問題

    アルゴリズムの問題の回答に納得がいきません。 変換対象をDEC、基数をBASEに格納し、基数変換を行うというものです。 配列Bの添え字は「1」から始まり、DECをBASEで割った余りを 求める関数MODはあらかじめ用意されているものとする。 1.変数Iに1を格納、変数DECに変換対象を格納、変数BASEに基数を格納。 2.MOD(DEC,BASE)の結果を変数Nに格納。 3.NをB(I)に格納。 4.I + 1 をIに格納。 5.「 」の結果を変数DECに格納。 6.DEC=0なら処理終了、それ以外は(2) の処理へ戻る。 「  」内を埋める問題です。 私の答えは「(DEC - N) / BASE」だったのですが、正解は「DEC / BASE」でした。 DECからN(余り)を引いてからBASEで割らないと、 割り切れない場合、最悪いつまで経っても「DEC=0」にはならなくなってしまうと思うのですが、そうではないのでしょうか? 正解は「DEC / BASE」で、あっているのでしょうか? Perlでプログラムを書いて(配列Bの添え字は0からにして、whileの条件式を「DEC != 0」にしました)試してみましたが、 「DEC / BASE」だと、割り切れない場合、結果の0の数がえらいことになってしまいました(^^;) ちゃんと勉強し始めたのがつい最近なので説明がうまくできませんが、どなたか解るかた教えてくださいm(_ _)m

  • 算数に苦手意識があります

    小学校からずーっと苦手意識を持っていて 楽しんで学ぶ、ただ組み合わせれば良いなどという事が理解できませんでした。 20代になって彼から割り算もできないなんて異常だと言われました。 確かに自分は2~4桁の暗算に多少時間掛かりますし、 基本があまりできてないです。 応用や文章問題も自分なりに工夫しても間違えてたり問題を見続けて 理解しようとするのに必死だったりと悪戦苦闘してます。 どうしたら算数が得意になれるんでしょうか? やっぱり最初から徹底してやるべきですか? せめて暗算だけはできるようになりたいです。

  • Linux へのログイン方法  その3

    QNo.6596629 QNo.6598788の続きです。 Single User modeで再起動しようと悪戦苦闘しまして、 やっと、以下の画面まで到達しました。 「kernel /vmlinuz-2.4.xx.EL ro root=LABEL=/」の行がちょっと違います。 起動して、中身を確認し、他へ移せるデータ(研修用のプログラムに関するテキストがあるそうです。)だけでもサルベージしたいと思っています。 もう少し粘ってみたいのです。よろしくお願いします。

専門家に質問してみよう