例題集 (構文) 例題集 (変数の役割) |
プログラムに コメント ガイドライン |
|
ルーブリック |
スタイルと読み 例題1(読みやすくしよう) 例題2 (少し長い例) |
内部データのイメージツール (2021) |
情報技術者試験 (午後問題 疑似コードを) |
レポート例 (アルゴ1の最初) |
14回目へジャンプ
各回のポイント一言 (2025)
話題、キーワード | 例題、演習 | ポイント | 配布資料、教科書 | |
---|---|---|---|---|
(1) 4/10 |
ウォーミングアップ A. 配列処理 B. 再帰 (停止条件、再帰条件) マージソートの 根幹部 マージ |
すぐ、始めましょう PROG 4.3 (要素数固定 配列処理) 例題集 403 に 解答例 PROG 9.4 (長さMの配列 再帰関数) 例題集 904 に 解答例 STEP1.1 (マージ) 解答例 (p 50 疑似コードと解説を読もう) Pythonの例 |
配列とループ 再帰 停止条件 再帰条件 |
|
(2) 4/17 |
マージソート (merge sort) ウォーミングアップ C. アドレス/ポインタ |
STEP1.2 (マージソート) 解答例 Pythonの例 アドレスとポインタ アルゴリズム2 例題集 11 (復習、準備すること) |
アドレスとポインタ 入門編 解説資料 (パワーポイント内で指示) |
|
(3) 4/24 |
ウォーミングアップ D. 分割コンパイル クイックソートの根幹部 partition |
例題集 0704 分割コンパイル (教科書の解答プログラムを読むために) MaNaBo 3回目 フォーラムに分割コンパイルが うまくいかない場合について STEP2.1 (パーティション) 1.swap関数を再利用 分割コンパイルバージョン 解答例 (pp.49-55) 解答例 (プリント文付) 2. 全ての関数を1ファイル べったり1ファイルバージョン 解答例 Pythonの例 |
アーキテクチャの 資料5 (コンパイル過程) コンパイラ、リンカ ソースファイル、オブジェクトファイル エクゼファイル (カタカナ語がたくさん) |
|
(4) 5/8 |
分割統治法 (divide-and-conquer クイックソート (quick sort) ウォーミングアップ E. 構造体 F. 動的確保 例題集 12,13 ここまで準備は終了 |
STEP2.2 (クイックソート) 解答例 Pythonの例 STEP9.2 (バケットソート) |
||
(自習) | その他の ソートアルゴリズム |
STEP9.1 (シェルソート) STEP9.2 (バケットソート) STEP9.3 (基数ソート) |
|
資格試験対策に必要 |
(5) 5/15 |
基本的データ構造 連結リスト (配列による実装) |
STEP3.1 (配列による実装) STEP3.1A ノーヒント STEP3.1B 少しコメント STEP3.1C 自分の例 解答実行例 |
2章pp.17-32 STEP3.1は教科書p.31の2.12から17までの解答をまとめたもの 実行例は問2.11 |
|
(6) 5/22 |
連結リスト (構造体の動的確保による実装) |
STEP3.2 (構造体の動的確保による実装) STEP3.2A ノーヒント STEP3.2B delete以外少しコメント STEP3.2C (課題 cons関数、append関数の作成) 解答 STEP3.3 (新幹線駅問題実行例) |
分割コンパイル | STEP3.2は、演習問題2.3の解答をまとめたもの |
(7) 5/29 |
スタック キュー |
STEP4.1A (スタック;配列) STEP4.1B (スタック;構造体) STEP4.2A (キュー;配列) STEP4.2B (キュー;構造体) STEP.4.1C (リストとスタック) 解答 STEP4.2C (リストとキュー) 解答 |
教科書との対応 4.1A 問2.2 - 2.5 4.1B 演習2.1 4.2A 問2.7 - 2.10 4.2B 演習2.2 STEP4.1C 演習問題2.6 STEP4.2C 演習問題2.7 教科書の解答を利用してよい |
|
(8) 6/5 |
グラフ コンピュータ上の表現 |
例題0705 (パイプとリダイレクト) 例題0703 (main関数の引数と二次元配列) STEP5.0 (課題の準備) (モデル木の辺の情報生成) STEP 5.1 (課題) (モデル木 接続行列) 解答 (情報工学実験向け 参考) STEP5.1.1 (モデル木 深さdのノード) 解答 (工学実験では、もっと小さいプログラムをnode.cとして配布予定) 例題1303 (リストの別実装 append関数) |
隣接リストを、隣接行列で表現 | 6章 (pp.123 - 128) 工学実験受講者は 例題をみておくこと やさしく学べる離散数学 5章§1 1グラフ (pp. 129-139) |
(9) 6/12 |
深さ優先探索 (縦型探索) |
STEP5.2 (図6.7のグラフをリスト構造にしてみただけ。STEP5.4に組み込み)) STEP5.3 (リストとスタック、キュー関係まとめただけ。 練習問題を実行してみよう) STEP5.4 (深さ優先探索) 解答 |
隣接リストを、リスト構造で表現 (メモリ図の例はSTEP5.2) 隣接リストを辿るプログラム 探索の管理法 (探索の順番、訪問済情報) |
6章 (pp.129 - 134) 疑似コードを読む 巻末の問題の解答コードを参考にしよう |
(10) 6/19 |
幅優先探索 (横型探索) |
STEP5.5 (幅優先探索) 解答1 解答2 (リスト) |
教科書を読む 疑似コードを読む プログラム例を利用する 2つの探索の特徴比較 探索管理リストの操作 (深さ スタック 幅 キュー) |
6章 (pp.129 - 134) |
(11) 6/26 |
グリーディ法 (貪欲法) ダイクストラ法 (最短経路) |
STEP6.1 (STEP5.2を改良 重み付きグラフ 例題の準備) STEP6.2 コイン問題 STEP6.3 (ダイクストラ法) p.139 問6.3 解答例 以下、オプション STEP6.4 (最短距離と最短経路。STEP6.3の問題) p.140 演習問題6.3 STEP6.5 (富山からの問題) |
STEP6.1をベースに 教科書の疑似コードを プログラム (minのエラーが出る人は、関数名をlessなどに変更のこと) (deleteにエラーが出る場合は、関数名をdelete1などに変更のこと) |
ダイクストラ法は 6章 (pp. 135-140) 6章p.140の 演習問題の 6.2 6.3は自習 |
(12) 7/3 |
二分探索木 | STEP7.1 (必須) 要素を追加 探索 (insert) STEP7.2 (オプション) 要素を削除 (delete) STEP7.1解答 STEP7.2 解答 |
STEP7.1 printtree max_v printtreeについては もっとよい出力を作れるなら もちろん、そちらでOK |
4章 (pp. 76-82) 4.3.3 平衡木(AVL木, 2-3木、B木)については データベースの授業 秋期の工学実験2 伊藤先生担当 |
(13) 7/10 |
ヒープ ヒープソート |
STEP8.1 配列でヒープ 削除により再構成 下方移動(down_heap) STEP8.2 追加により再構成 上方移動(up_heap) 解答 STEP8.3 入力後に、ヒープ作成 STEP8.4 ヒープソート (降順) 解答 |
|
4章 (pp. 88-94) |
(14) 7/17 |
有名な例題と関連話題 フィボナッチ数列 (部分解の記録と利用) (やってみよう) ハノイの塔 エイトクイーン ナップサック問題 |
STEP10.1 (フィボナッチ数 再帰) 久しぶりに 写経ツール(2021) STEP10.2 (部分解の記録、利用) (再帰) STEP10.3 (部分解の記録、利用) (非再帰、積み上げ) |
|
7章 (pp.141 - 153) ナップサック問題 (p.146 例 7.3) |
以下 予定 |
||||
(15) 7/24 |
再帰 全解探索 バックトラック 動的計画法 |
STEP11.1 (ハノイの塔) STEP11.2 (8クイーン) STEP12.1 (ナップサック問題) |
|
|
準備済 | ||||
以上、15回です |