東方算程譚

Oriental Code Talk ── επιστημηが与太をこく、弾幕とは無縁のシロモノ。

目次

Blog 利用状況

ニュース

著作とお薦めの品々は
東方熱帯林へ。

別館: 茶ネタなら
恵比寿亭茗茶楼

あわせて読みたい

わんくま

  1. 東京勉強会#2
    C++/CLI カクテル・レシピ
  2. 東京勉強会#3
    template vs. generics
  3. 大阪勉強会#6
    C++むかしばなし
  4. 東京勉強会#7
    C++むかしばなし
  5. 東京勉強会#8
    STL/CLRによるGeneric Programming
  6. TechEd 2007 @YOKOHAMA
    C++・C++/CLI・C# 適材適所
  7. 東京勉強会#14
    Making of BOF
  8. 東京勉強会#15
    状態遷移
  9. 名古屋勉強会#2
    WinUnit - お気楽お手軽UnitTest

CodeZine

  1. Cで実現する「ぷちオブジェクト指向」
  2. CUnitによるテスト駆動開発
  3. SQLiteで組み込みDB体験(2007年版)
  4. C++/CLIによるCライブラリの.NET化
  5. C# 1.1からC# 3.0まで~言語仕様の進化
  6. BoostでC++0xのライブラリ「TR1」を先取りしよう (1)
  7. BoostでC++0xのライブラリ「TR1」を先取りしよう (2)
  8. BoostでC++0xのライブラリ「TR1」を先取りしよう (3)
  9. BoostでC++0xのライブラリ「TR1」を先取りしよう (4)
  10. BoostでC++0xのライブラリ「TR1」を先取りしよう (5)
  11. C/C++に対応した、もうひとつのUnitTestFramework ─ WinUnit
  12. SQLiteで"おこづかいちょう"
  13. STL/CLRツアーガイド
  14. マージ・ソート : 巨大データのソート法

@IT

  1. Vista時代のVisual C++の流儀(前編)Vista到来。既存C/C++資産の.NET化を始めよう!
  2. Vista時代のVisual C++の流儀(中編)MFCから.NETへの実践的移行計画
  3. Vista時代のVisual C++の流儀(後編) STL/CLRによるDocument/Viewアーキテクチャ
  4. C++開発者のための単体テスト入門 第1回 C++開発者の皆さん。テスト、ちゃんとしていますか?
  5. C++開発者のための単体テスト入門 第2回 C++アプリケーションの効率的なテスト手法(CppUnit編)
  6. C++開発者のための単体テスト入門 第3回 C++アプリケーションの効率的なテスト手法(NUnit編)

AWARDS


Microsoft MVP
for Visual Developer - Visual C++


Wankuma MVP
for いぢわる C++


Nyantora MVP
for こくまろ中国茶

Xbox

Links

記事カテゴリ

書庫

日記カテゴリ

のんちゃんのVBお勉強に協力する試み (1)

ネタ元 → この勉強VisualBasicの件ですが・・・・

愛娘のんちゃんがお勉強したいらしい。
んではぼちぼちと問題を出すとしよう。
(はつね先生@VB-MVPが問題作成と答案の添削に協力していただけるそうな)

  ※ 注意:
  1. のんちゃんはトラックバックで回答すること。
  2. ヒントが欲しいときゃコメントすること。
  3. のんちゃんより先に(解くのはいいが)公開しないこと > ALL

では第1問:

int 配列 を昇順にソートする 関数:
Sub Sort(data() As Integer) を三通り以上のアルゴリズムで書き、
Sub Main() から呼び出して結果を確認しなさい。
(ひとつ25点+Main25点)

投稿日時 : 2008年7月5日 19:29

コメントを追加

# re: のんちゃんのVBお勉強に協力する試み (1) 2008/07/05 19:34 επιστημη

ついでだから問題を公募しましょ。
条件:第N+1問 は N問より"すこしだけ"ホネがあること。
採用の可否はεπι権限で。
コメントで受け付けまーす。

# re: のんちゃんのVBお勉強に協力する試み (1) 2008/07/05 19:46 ネタ好き未記入

初級という事なので、伝統深い?プログラムの行数を数えるというのはいかがでしょうか?
条件は次のとおりです。

1、コメント(XMLコメントも含む)はカウント外。

2、_(改行文字)で改行されている場合は、文意で1行とカウントする。
例:
foo.(1, 2, 3, 4, _
)
の場合2行ではなくて1行

# re: のんちゃんのVBお勉強に協力する試み (1) 2008/07/05 19:51 επιστημη

"お約束"の問題すね。VBのプログラムをVBでカウントする、と。
ファイルIOが絡んでおもしろそげ。

まずはベタな行カウントで、次第に難易度UPするか。

# re: のんちゃんのVBお勉強に協力する試み (1) 2008/07/05 20:20 ネタ好き未記入

>まずはベタな行カウントで、次第に難易度UPするか。

LV0:1ファイルを対象にカウント
LV1:複数ファイルを対象にカウント
LV2:プロジェクトファイルを読み込んで、プロジェクト内にある全てのファイルを対象にする
LV3:クラス数、構造体数などの詳細をカウント

こんな感じでいかがでしょうか?

# re: のんちゃんのVBお勉強に協力する試み (1) 2008/07/05 20:20 non

最初からなんなんですが・・・・

おヒントいただけないでしょうか
>パパと未記入様

# re: のんちゃんのVBお勉強に協力する試み (1) 2008/07/05 20:35 えムナウ

1)mainはこんな感じ
int 配列 を作って値を代入する。
Sort1を呼ぶ
結果を表示する
別のint 配列 を作って値を代入する。
Sort2を呼ぶ
結果を表示する
別のint 配列 を作って値を代入する。
Sort3を呼ぶ
結果を表示する

2)昇順にソートっていうのは小さいもの順に並べ替えること
Sub Sort1(data() As Integer)
 :
End Sub
Sub Sort2(data() As Integer)
End Sub
Sub Sort3(data() As Integer)
End Sub

# re: のんちゃんのVBお勉強に協力する試み (1) 2008/07/05 20:56 はつね

(1)配列を作ってばらばらの数字いれる
  →配列宣言して初期値代入
(2)ソートする(ここが3種類)
(3)ソートした結果の配列を表示する

# re: のんちゃんのVBお勉強に協力する試み (1) 2008/07/05 21:25 さかもと

VB1.0を利用しての回答ということでよろしいでしょうか?

大先生もVB0.5で答えを示すということでよろしいでしょうか?

その他諸々の問題の前に解決してもよろしいでしょうか?

# re: のんちゃんのVBお勉強に協力する試み (1) 2008/07/05 21:36 non

Sub sort()
Dim test() As Integer = {50, 80, 150}

Console.WriteLine(test(0))
Console.WriteLine(test(1))
Console.WriteLine(test(2))

End Sub


1,2ってこんな感じでしょうか?

# re: のんちゃんのVBお勉強に協力する試み (1) 2008/07/05 21:39 non

ソートって考えたらやったことなかったです。

# re: のんちゃんのVBお勉強に協力する試み (1) 2008/07/05 21:40 επιστημη

ヒントはみんなのいうてくれたとおり。
配列を用意して Sort に食わせると小さい順に並び換わってればおっけぃ。

まずは

Module NonExam

Sub Sort(data() As Integer)
 ' とりあえずなーにもしない
End Sub

Sub Main()
 配列用意して
 全部プリントして
 Sortに食わせて
 全部プリントする
End Sub

End Module

なんてーのをこしらえませう。
これでSortの前後で配列のナカミを確認できる。
んでもってSortを実装すりゃええべな。
 

# re: のんちゃんのVBお勉強に協力する試み (1) 2008/07/05 21:44 επιστημη

> こんな感じでしょうか?

ダメダメ、プリントするのはその関数を抜けてからMainでやればいい。

ソートの対象となる配列はMainで用意して
Sortの引数として渡す。

上記のひな型参照。

# re: のんちゃんのVBお勉強に協力する試み (1) 2008/07/05 21:47 επιστημη

> VB1.0を利用しての回答

...入手できるかなー。VB3ならまだ持ってた希ガス。
# 回答は最新VB2008(VB9)で。

# re: のんちゃんのVBお勉強に協力する試み (1) 2008/07/05 23:22 刈歩 菜良 CTP

せんせーしつもーん
(・o・)/

VBで解くアルゴリズムの問題という観点でよろしいのでしょうか?

と、いうのも、アルゴリズムの前段階に構文の理解というハードルもあるので...

で、ちなみに、うちでは新人ちゃん向け以外にアルゴリズムを教えるコースはなかったり...
# それほど(教育コースとしては)高度かつ需要がないってことです。

# re: のんちゃんのVBお勉強に協力する試み (1) 2008/07/05 23:29 アクア

あわわわ・・・

# re: のんちゃんのVBお勉強に協力する試み (1) 2008/07/05 23:51 επιστημη

> VBで解くアルゴリズム

えぇ、そゆことで。
のんちゃん、VBの通信教育受けてるそぉで、
ならば文法/構文はよかろう、と。

> 高度かつ需要がない

「知らずに書ける」ちゅーのはいいことなのかぁ?
ちょっと凝ったことしよう思うといきなしブ厚い壁
にブチ当たるわけっしょ。それってどーよ、どーなのよ。

# re: のんちゃんのVBお勉強に協力する試み (1) 2008/07/06 0:04 επιστημη

ん? どぉしましたかアクアたん。

# re: のんちゃんのVBお勉強に協力する試み (1) 2008/07/06 0:15 刈歩 菜良 CTP

> 「知らずに書ける」ちゅーのはいいことなのかぁ?
> ちょっと凝ったことしよう思うといきなしブ厚い壁
> にブチ当たるわけっしょ。それってどーよ、どーなのよ。

もちろん、わたしの意見はεπιさん寄りです。

ちょっと、流れ的に誤解されかねない感じでしたね。ごめんなさい。

言いたかったのは
構文をマスター → アルゴリズム
というのがよいのではないかと...
で、アルゴリズムは今のIT教育業界では実は高度で需要がない扱いなのですよっていう現実をついでに紹介しただけなのです。

言いたかったのは、構文完璧かしら?ってことだけです。

話を戻すと、
アルゴリズムに関してはそういうコースにお金を出してくれるお客様がいれば、当然ラインアップされます。
そういうお客さんがいないというのが現実なのですねぇ。

つまり、アルゴリズムなんてどーでもえーと考えてる会社が多いってことではないかと?

実際、言語コースでifを教えるのに、数値が入った配列から最大値最小値を取り出す問題があったりします。

なんと、こんなイージーな問題に設計などの上流過程をやってきましたっていう経験者がハマるんです。
# しかも、穴埋め問題。

自分でぐるぐる回して最大値を取り出すって言う考えにいたらないんです。ifのところが穴埋めになってるだけなんですよ。ループのとこは記述済みなんすよ!!
ばんざいフレームワーク、ばんざいRADワールドです。

いやはや、嘆かわしいこってす。

で、さらに話を戻して、多次元配列とかあと判定のループとか、SELECT CASE色々とか、ByRef/ByValとか大丈夫かしら?という感じです。

# re: のんちゃんのVBお勉強に協力する試み (1) 2008/07/06 0:17 刈歩 菜良 CTP

s/あと判定/後判定/

汚してすみません。
_(._.)_

# re: のんちゃんのVBお勉強に協力する試み (1) 2008/07/06 0:34 επιστημη

なるほどぉ。って感心しちゃあかんて。

うん、まだ文法/構文にもぁゃιぃトコはいくらもあろうか
とは思うですし、その段階でアルゴリズムはどうなの?
カナヅチとノコギリが扱えんうちから犬小屋すか? ってなこと
になるやも知れんけど。

ともあれこいつで力量図れるですから、適宜フィードバック
かけりゃえぇかなーと。
難しいって音をあげるなら一段落とせばええやん、
マンツーマンのメリットを有効活用っすよ♪

てゆっかですねー、そーゆーためになるお話は
トラックバックしたうえでご自身のblogでおもっきし
ぶちかまして留飲を下げていただければ
「さぁすがはかるぼ先生、CTPはまだ取れんのか」と
評価うなぎ上りちゃうかと。

# re: のんちゃんのVBお勉強に協力する試み (1) 2008/07/06 1:11 刈歩 菜良 CTP

ぃゃ、このネタは表では書きにくいんです。
内容とかうっすら触れちゃってるし...
# 長くなっちゃったから一瞬考えたんですけどねぇ。

てか、別スレ展開されてましたね。
そっちで触れるべき内容でしたね。
しくじっちゃいました。
(^^ゞ

# re: のんちゃんのVBお勉強に協力する試み (1) 2008/07/06 1:30 επιστημη

> 表では書きにくい

あーそかそかそかそか。
んじゃ実情云々はさっくし端折って
「わしわこぉ思うー」ゆーのんを♪

# re: のんちゃんのVBお勉強に協力する試み (1) 2008/07/06 5:26 ネタ好き未記入

>おヒントいただけないでしょうか

私の課題の場合は【VBの文の終わり】がポイントとなります。
VBで書いたプログラムの行数を自分で数えてみて、
その時の自分の数え方をVBでやるにはどうすればいいか考えてみましょう。

# re: のんちゃんのVBお勉強に協力する試み (1) 2008/07/06 5:37 ネタ好き未記入

あ、そうそう。VBの文法で分らない事があれば、是非うちのブログを見てね。
無差別に技術をついばむ鳥 インドリ
で検索したら出てくると思うから、右の方にあるVB.NETとか、プログラム言語全般を見たら重要な構文は一通り出来るようになると思う。
#URLを張った方が早いけど出来ないだよね。

# re: のんちゃんのVBお勉強に協力する試み (1) 2008/07/06 6:31 れい

私は構文よりアルゴリズム先かなぁ

アルゴリズムは言語に依らず普遍。
構文は多少なりとも変わる。
最低限の構文は知らないとアルゴリズムをコードに落とせないので学習せざるをえないし。

> ともあれこいつで力量図れるですから、適宜フィードバックかけりゃえぇかなーと。

これと

> 条件:第N+1問 は N問より"すこしだけ"ホネがあること。

これを合わせると…
次に解く問題は第0問となる可能性があるということですね。

# re: のんちゃんのVBお勉強に協力する試み (1) 2008/07/06 8:25 刈歩 菜良 CTP

επιさん
> 「わしわこぉ思うー」ゆーのんを♪

了解です。
(^^ゝ

# 月曜日にでも (^^ゞ

ネタ好きさん

> #URLを張った方が早いけど出来ないだよね。

つ tinyurl

# re: のんちゃんのVBお勉強に協力する試み (1) 2008/07/06 8:59 アクア

だいぶ手こずる。w

1時間近くもかかってしまった。
うち、問題を理解するのに30分。(でも正しく理解できているかは不明。)

3種類のソートアルゴリズムを作れって事でしょうか?

# re: のんちゃんのVBお勉強に協力する試み (1) 2008/07/06 9:32 επιστημη

> 3種類のソートアルゴリズムを作れっ

「3種類のソートアルゴリズムを実装しる!」です。
有名ドコをテケトーに見繕って。

# re: のんちゃんのVBお勉強に協力する試み (1) 2008/07/06 10:51 アクア

今までArray.Sort()でイイじゃんって思ってたんで、
このアルゴリズムの問題はいい勉強になります。^^;;;

ソートの種類とその考え方ぐらいはネットとかで調べてもいいんですよね。>επι先生
# とはいえ、目がコードについつい行ってしまうが…

# re: のんちゃんのVBお勉強に協力する試み (1) 2008/07/06 15:08 ネタ好き未記入

うちのブログのtinyurl張っとくから、文法で分らない事があったら見てね。
ttp://indori.blog32.fc2.com/

# re: のんちゃんのVBお勉強に協力する試み (1) 2008/07/07 9:49 まさる


配列を用いて自前でリスト実装とかはどうですか?
・Add
・Remove
・Count
くらいに絞って。

ちょっと1段飛ばしかな・・・

# re: のんちゃんのVBお勉強に協力する試み (1) 2008/07/07 10:16 ネタ好き未記入

自前で配列を実装もいいかもしれない。

# ソートだそうで 2008/07/08 22:57 何となく Blog by Jitta

ソートだそうで

# ソートされたらいいな、をカタチにする。 2008/07/19 10:06 とりこらぼ。

ソートされたらいいな、をカタチにする。

# ソートされたらいいな、をカタチにする。 2008/07/19 10:07 とりこらぼ。

ソートされたらいいな、をカタチにする。

タイトル  
名前  
URL
コメント