<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type='text/xsl' href='http://prog-city.spaces.live.com/mmm2008-07-24_12.50/rsspretty.aspx?rssquery=en-US;http%3a%2f%2fprog-city.spaces.live.com%2fcategory%2f%e3%82%b3%e3%83%b3%e3%83%94%e3%83%a5%e3%83%bc%e3%82%bf%e3%81%a8%e3%82%a4%e3%83%b3%e3%82%bf%e3%83%bc%e3%83%8d%e3%83%83%e3%83%88%2ffeed.rss' version='1.0'?><rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:msn="http://schemas.microsoft.com/msn/spaces/2005/rss" xmlns:live="http://schemas.microsoft.com/live/spaces/2006/rss" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>※ 画面は開発中のものです: コンピュータとインターネット</title><description /><link>http://prog-city.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&amp;_c=BlogPart&amp;partqs=cat%25E3%2582%25B3%25E3%2583%25B3%25E3%2583%2594%25E3%2583%25A5%25E3%2583%25BC%25E3%2582%25BF%25E3%2581%25A8%25E3%2582%25A4%25E3%2583%25B3%25E3%2582%25BF%25E3%2583%25BC%25E3%2583%258D%25E3%2583%2583%25E3%2583%2588</link><language>en-US</language><pubDate>Mon, 13 Oct 2008 01:34:09 GMT</pubDate><lastBuildDate>Mon, 13 Oct 2008 01:34:09 GMT</lastBuildDate><generator>Microsoft Spaces v1.1</generator><docs>http://www.rssboard.org/rss-specification</docs><ttl>60</ttl><cf:parentRSS>http://prog-city.spaces.live.com/blog/feed.rss</cf:parentRSS><live:type>blogcategory</live:type><live:identity><live:id>-1929899016285799617</live:id><live:alias>prog-city</live:alias></live:identity><cf:listinfo><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="typelabel" label="Type" /><cf:group ns="http://schemas.microsoft.com/live/spaces/2006/rss" element="tag" label="Tag" /><cf:group element="category" label="Category" /><cf:sort element="pubDate" label="Date" data-type="date" default="true" /><cf:sort element="title" label="Title" data-type="string" /><cf:sort ns="http://purl.org/rss/1.0/modules/slash/" element="comments" label="Comments" data-type="number" /></cf:listinfo><item><title>Nicovolume 0.252</title><link>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!982.entry</link><description>&lt;p&gt;1. ちょっとした機能追加をしてみた。 
&lt;p&gt;時間が来ると、下のような画面が表示され、スライダーが左右に動きます。&lt;br&gt;手動で動かすことによって、自動調整をキャンセルすることが可能です。 
&lt;p&gt;&lt;a href="http://byfiles.storage.live.com/y1prgG9sL370zRszjGikwcWOX9-paazW8GSnCaxMU4elqdtIdVEyUAoZzWFBnsK8wCNIhTGVfgC6IM" target="_blank"&gt;&lt;img height=133 alt=0.252 src="http://byfiles.storage.live.com/y1prgG9sL370zRszjGikwcWOX9-paazW8GSnCaxMU4elqdtIdVEyUAoZzWFBnsK8wCNIhTGVfgC6IM" width=293&gt;&lt;/a&gt; 
&lt;p&gt;2. IE の自動起動が不要な場合のため、インストーラで ブラウザ拡張の有無を選択できるようにしました。&lt;br&gt;その結果 Vista 環境で .msi 形式のインストーラがうまくいかなくなってしまったので、 exe 形式も入れておきました。 
&lt;p&gt;3. Vista 環境で、 互換モード を使用する必要がなくなりました。&lt;br&gt; Vista では 新しいAPI を使うようにしました。 
&lt;p&gt;* 古いバージョンを消してから新しいバージョンをインストールする必要があります。&lt;br&gt;* インストールフォルダ内にある time.conf を一時退避させておくと同じ設定で使えると思います。 
&lt;p&gt;&lt;iframe style="border-right:#dde5e9 1px solid;padding-right:0px;border-top:#dde5e9 1px solid;padding-left:0px;padding-bottom:0px;margin:3px;border-left:#dde5e9 1px solid;width:240px;padding-top:0px;border-bottom:#dde5e9 1px solid;height:66px;background-color:#ffffff" marginwidth=0 marginheight=0 src="http://cid-e5379f11d9e8bb3f.skydrive.live.com/embedrowdetail.aspx/Public/software/Nicovolume/0.25/nicovolume0.252.zip" frameborder=0 scrolling=no&gt;&lt;/iframe&gt;
&lt;p&gt;
&lt;p&gt;Nicovolume の記事&lt;br&gt;&lt;a href="http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!918.entry"&gt;http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!918.entry&lt;/a&gt; 
&lt;p&gt;
&lt;hr&gt;

&lt;p&gt;Vista でのマスタボリュームコントロール についての 参考文献 
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ms679161(VS.85).aspx"&gt;&lt;font color="#366092"&gt;http://msdn.microsoft.com/en-us/library/ms679161(VS.85).aspx&lt;/font&gt;&lt;/a&gt;&lt;br&gt;&lt;font color="#366092"&gt;└&lt;/font&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb331828(VS.85).aspx"&gt;&lt;font color="#366092"&gt;http://msdn.microsoft.com/en-us/library/bb331828(VS.85).aspx&lt;/font&gt;&lt;/a&gt;&lt;font color="#366092"&gt; &lt;/font&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1929899016285799617&amp;page=RSS%3a+Nicovolume+0.252&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=prog-city.spaces.live.com&amp;amp;GT1=prog-city"&gt;</description><comments>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!982.entry#comment</comments><guid isPermaLink="true">http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!982.entry</guid><pubDate>Wed, 06 Aug 2008 06:58:50 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://prog-city.spaces.live.com/blog/cns!E5379F11D9E8BB3F!982/comments/feed.rss</wfw:commentRss><wfw:comment>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!982.entry#comment</wfw:comment><dcterms:modified>2008-08-07T09:28:12Z</dcterms:modified></item><item><title>フーリエ級数</title><link>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!980.entry</link><description>&lt;p&gt;フーリエ何とかというものがさっぱりわからないので、教科書に書いてある次のような数式をもとに計算させてみた。 &lt;p&gt;周期Tの周期関数 f(t) が下のように展開される。 &lt;p&gt;&lt;a href="http://byfiles.storage.msn.com/y1p2Bv1Ig3SsQeiMQlnfx_tIh0dMwZ7K1jqn_TQsX8DCKwBNP4DUm5DbG6meCcBZTZJ?PARTNER=WRITER"&gt;&lt;img title=image style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=182 alt=image src="http://byfiles.storage.msn.com/y1pCH15D_vhyBFEreqAnaaqFnSF-Y-1hnuFYWidKded-oNhMjbM1Itt65r6L_BNRC_Q?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt;  &lt;p&gt;OnPaint に直接適当にコードを書く。&lt;br&gt;f(t) は、連続してない関数にした。 &lt;p&gt; &lt;div style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px"&gt;&lt;pre&gt;    public int n;
    public double func(double d) {
        return ((int)Math.Abs(d) % 50 &amp;lt; 25) ? 0 : 50;
    }

    public double func_a(double d) {
        return func(d) * Math.Cos(n * 2 * Math.PI / 50 * d);
    }

    public double func_b(double d)
    {
        return func(d) * Math.Sin(n * 2 * Math.PI / 50 * d);
    }

    private void Form1_Paint(object sender, PaintEventArgs e)
    {
        int x;
        double y = 0;

        Point prev = new Point(0, 0);
        for (x = 0; x &amp;lt; 300; x++) {
            double a0 = 1.0 / 50.0 * mymath.simpson(-25, 25, 0.001, func);
            y = a0;
            
            for (n = 0; n &amp;lt; 10; n++) {
                double an = 2.0 / 50.0 * mymath.simpson(-25, 25, 0.01, func_a);
                double bn = 2.0 / 50.0 * mymath.simpson(-25, 25, 0.01, func_b);

                y += an * Math.Cos(n * 2 * Math.PI / 50 * x);
                y += bn * Math.Sin(n * 2 * Math.PI / 50 * x);
            }
            e.Graphics.DrawLine(Pens.Black, new Point(x, 200 - (int)y), prev);
            prev = new Point(x, 200 - (int)y);
        }
    }&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;
&lt;p&gt;* simpson関数は&lt;a href="http://prog-city.spaces.live.com/blog/cns!E5379F11D9E8BB3F!968.entry"&gt;こちら&lt;/a&gt;
&lt;p&gt;すると、こんな感じに表示された。
&lt;p&gt;25行目のループ条件： n &amp;lt; 2&lt;br&gt;&lt;a href="http://byfiles.storage.msn.com/y1pEHODUDu15Uqf5PWObFYWeB0qcgxqSqPsIToXH9d5UtZKj7Kro3ArTIOTQ4vaFOMA?PARTNER=WRITER"&gt;&lt;img title=image style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=244 alt=image src="http://byfiles.storage.msn.com/y1p0gozABXpgkRGKTuL7cl39UBPwp9OKg1IvxsAGi5gb2t15O6sLHh7s1FyKbNMEFgg?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; 
&lt;p&gt;n &amp;lt; 5&lt;br&gt;&lt;a href="http://byfiles.storage.msn.com/y1pzRucES7igAST3MhoAPy9mpReDAeRLX3jcngKSU72kG-OBl6yyu27zQw9b2c2pUlp?PARTNER=WRITER"&gt;&lt;img title=image style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=244 alt=image src="http://byfiles.storage.msn.com/y1pQH4mHnkfiKzljkn198MpX1rIAZt5JsUaEVtu8LgayU3a8475NEhRspXIpXcGh-N-?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; 
&lt;p&gt;n &amp;lt; 10&lt;br&gt;&lt;a href="http://byfiles.storage.msn.com/y1pDAx8Dq3-AuK2-5gXk2BIxW1jNkiytMBa9AdSkJqaT8X1GAzwqhYurdoKBWz8HEIy?PARTNER=WRITER"&gt;&lt;img title=image style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=244 alt=image src="http://byfiles.storage.msn.com/y1p-5MPBfOOCeONQmGxNxhLPfV9PKXmAkHzFbXNGnvMG6ApF6aP_Bs3eoa1W1uU5y1h?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; 
&lt;p&gt;本来のグラフ&lt;br&gt;&lt;a href="http://byfiles.storage.msn.com/y1pJKkx-4SYTPLS34Vm5mE9lNq9H4R55qsxWWKzc8HFLFYa81jX_Dp9aGmlTULq_p3v?PARTNER=WRITER"&gt;&lt;img title=image style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=244 alt=image src="http://byfiles.storage.msn.com/y1pboOv73t3KK1z8rPmo2UBbhIJwgXqr4C3zWzcns3ERgxUBhHJ_ZaJcexUNUYjDAk2?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; 
&lt;p&gt;ループすればするほど元の四角いグラフに近づいている。&lt;br&gt;しかし、その分時間がかかった。&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1929899016285799617&amp;page=RSS%3a+%e3%83%95%e3%83%bc%e3%83%aa%e3%82%a8%e7%b4%9a%e6%95%b0&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=prog-city.spaces.live.com&amp;amp;GT1=prog-city"&gt;</description><comments>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!980.entry#comment</comments><guid isPermaLink="true">http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!980.entry</guid><pubDate>Fri, 01 Aug 2008 07:16:17 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://prog-city.spaces.live.com/blog/cns!E5379F11D9E8BB3F!980/comments/feed.rss</wfw:commentRss><wfw:comment>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!980.entry#comment</wfw:comment><dcterms:modified>2008-08-01T07:18:49Z</dcterms:modified></item><item><title>シンプソンの公式</title><link>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!968.entry</link><description>&lt;p&gt;&lt;a href="http://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%B3%E3%83%97%E3%82%BD%E3%83%B3%E3%81%AE%E5%85%AC%E5%BC%8F"&gt;シンプソンの公式&lt;/a&gt;のプログラムを汎用的にしておく。 
&lt;p&gt;シンプソンの公式は、関数を二次曲線で近似させて積分する方法。&lt;br&gt;台形公式より正確な値を出せる、とのこと。 
&lt;p&gt;関数f の、st～ed の間を、刻み幅h以内で積分する。&lt;br&gt;hは、刻み数が奇数になってしまった場合には変化する。 
&lt;p&gt;
&lt;div style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px"&gt;&lt;pre&gt;    //シンプソンの公式で積分する
    public delegate double simpsonFunc(double d);
    static public double simpson(double st, double ed, double h, simpsonFunc f){
        //刻み数を決める
        int nh = (int)(Math.Abs((ed - st) / h) + 1.0);
        if (nh % 2 != 0) nh++;
        h = (ed - st) / (nh-1);

        int cnt;
        double total = 0;
        for (cnt = 0; cnt &amp;lt; nh; cnt++ )
        {
            double tmpadd = f(h * cnt);

            if (cnt == nh - 1)
            { //最後:そのまま
            }
            else if (cnt == 0)
            { //最初:そのまま
            }
            else if (cnt % 2 != 0)
            { //奇数
                tmpadd *= 4;
            }
            else
            { //偶数
                tmpadd *= 2;
            }
            total += tmpadd;
        }
        return h / 3.0 * total;
    }
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;
&lt;p&gt;この前のシンプソンの公式&lt;br&gt;&lt;a title="http://prog-city.spaces.live.com/blog/cns!E5379F11D9E8BB3F!940.entry" href="http://prog-city.spaces.live.com/blog/cns!E5379F11D9E8BB3F!940.entry"&gt;http://prog-city.spaces.live.com/blog/cns!E5379F11D9E8BB3F!940.entry&lt;/a&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1929899016285799617&amp;page=RSS%3a+%e3%82%b7%e3%83%b3%e3%83%97%e3%82%bd%e3%83%b3%e3%81%ae%e5%85%ac%e5%bc%8f&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=prog-city.spaces.live.com&amp;amp;GT1=prog-city"&gt;</description><comments>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!968.entry#comment</comments><guid isPermaLink="true">http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!968.entry</guid><pubDate>Fri, 01 Aug 2008 02:37:06 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://prog-city.spaces.live.com/blog/cns!E5379F11D9E8BB3F!968/comments/feed.rss</wfw:commentRss><wfw:comment>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!968.entry#comment</wfw:comment><dcterms:modified>2008-08-01T02:37:06Z</dcterms:modified></item><item><title>HSP でモンテカルロ</title><link>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!964.entry</link><description>&lt;p&gt;&lt;a href="http://7pbttw.bay.livefilestore.com/y1pp27k8DZLWRMb3PUE7KGlQZ7dbCD-jwZI4Xwj1CG8YnSwtQ3-mdXOd7rsu3BcutgSIg5bDnQi5zU?PARTNER=WRITER"&gt;&lt;img title=image style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=191 alt=image src="http://byfiles.storage.msn.com/y1pT0YsOKjrE632aNk3-CzNT3QD8IDuWrh7Dp3TrjCgYp5Lk3yXwqZMKrepWslNSt9xQOcoNm2ytiw?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt;  &lt;p&gt;提出用ではない。&lt;br&gt;やっぱりアルファベットが並んでいるとプログラミング言語らしい。 &lt;p&gt;乱数をきちんと発生させているつもりなのに、十字の模様がうっすらと見えてしまう。&lt;br&gt;乱数生成まで自分で書かなければならないかも。 &lt;p&gt;&lt;br&gt; &lt;p&gt;//モンテカルロ&lt;br&gt;title &amp;quot;モンテカルロ?&amp;quot;  &lt;p&gt;//使用変数(円)&lt;br&gt;max_in = 1000000     ; 総ドット数(入力用&lt;br&gt;max = 0;            &lt;br&gt;in_dot = 0;            ; 内部ドット数&lt;br&gt;rest = 10000         ; await をいれる間隔&lt;br&gt;visible = 0         ; 1 で、描画過程を表示する&lt;br&gt;vx = 390 : vy = 00    ; 表示座標&lt;br&gt;r = 200                ; 半径&lt;br&gt;pi = 0                ; 求めるpi  &lt;p&gt;//グラフ&lt;br&gt;graph_x = 100 : graph_y = 450&lt;br&gt;graph_w = 600 : graph_h = 150  &lt;p&gt;randomize            ; 乱数初期化&lt;br&gt;rand_max = 32768    ; 乱数の最大値  &lt;p&gt;//メインウィンドウ初期化&lt;br&gt;screen 0, 800, 600&lt;br&gt;//コントロールの配置&lt;br&gt;objsize 200, 25&lt;br&gt;pos 0, 25    : combox dimensions, 100, &amp;quot;円\n球&amp;quot;  &lt;p&gt;pos 120, 0    : chkbox &amp;quot;過程描画&amp;quot;, visible_chk  &lt;p&gt;pos 0, 55    : mes &amp;quot;ドット数&amp;quot;&lt;br&gt;pos 80, 55    : input max_in, 120, 25&lt;br&gt;pos 0, 80    : mes &amp;quot;内部ドット数&amp;quot;&lt;br&gt;line 0, 100, 100, 100&lt;br&gt;pos 0, 102    : mes &amp;quot;全ドット数&amp;quot;&lt;br&gt;pos 100, 90    : mes &amp;quot;x volume=&amp;quot;  &lt;p&gt;//数式を読む&lt;br&gt;pos 25, 200 : picload &amp;quot;eq.jpg&amp;quot;, 1  &lt;p&gt;objsize 200, 45&lt;br&gt;pos 0, 350        : button &amp;quot;Start&amp;quot;,*start&lt;br&gt;obj_start = stat  &lt;p&gt;//軸の描画&lt;br&gt;line vx-3, vy, vx-3, vy+2*r&lt;br&gt;line vx, vy+2*r + 3, vx+2*r, vy+2*r + 3&lt;br&gt;//目盛の描画&lt;br&gt;pos vx-20, vy : mes &amp;quot;1&amp;quot;&lt;br&gt;line vx-9, vy, vx-3, vy  &lt;p&gt;pos vx-20, vy+r : mes &amp;quot;0&amp;quot;&lt;br&gt;line vx-9, vy+r, vx-3, vy+r  &lt;p&gt;pos vx-20, vy+r*2 : mes &amp;quot;-1&amp;quot;&lt;br&gt;line vx-9, vy+r*2, vx-3, vy+r*2&lt;br&gt;line vx, vy+r*2+3, vx, vy+r*2+9  &lt;p&gt;pos vx+r-9, vy+r*2+6 : mes &amp;quot;0&amp;quot;&lt;br&gt;line vx+r, vy+r*2+3, vx+r, vy+r*2+9&lt;br&gt;pos vx+r*2-9, vy+r*2+6 : mes &amp;quot;1&amp;quot;&lt;br&gt;line vx+r*2, vy+r*2+3, vx+r*2, vy+r*2+9  &lt;p&gt;//グラフ軸の描画&lt;br&gt;gosub *init_graph&lt;br&gt;stop&lt;br&gt;*start&lt;br&gt;    dimension = dimensions//これ以降dimensions はない&lt;br&gt;    max = max_in;&lt;br&gt;    visible = visible_chk&lt;br&gt;    //円描画用バッファ&lt;br&gt;    buffer 2, r*2, r*2;&lt;br&gt;    cls&lt;br&gt;    if(visible == 1): gsel 0;&lt;br&gt;    pos vx, vy&lt;br&gt;    gcopy 2, 0, 0, r*2, r*2&lt;br&gt;    //円を作る繰り返し&lt;br&gt;    gosub *init_graph;&lt;br&gt;    in_dot = 0&lt;br&gt;    for i, 0, max, 1&lt;br&gt;        //必要な値の計算&lt;br&gt;        rx = rnd(rand_max) - rand_max/2;&lt;br&gt;        ry = rnd(rand_max) - rand_max/2;&lt;br&gt;        if(dimension == 1) : rz = rnd(rand_max) - rand_max/2:else:rz = 0;&lt;br&gt;        len = sqrt(rx*rx + ry*ry + rz*rz)&lt;br&gt;        px = rx * r / (rand_max / 2);&lt;br&gt;        py = ry * r / (rand_max / 2);&lt;br&gt;        //直接描画の場合、描画位置を座標に加算&lt;br&gt;        if(visible == 1) : px += vx : py += vy ;&lt;br&gt;        //色の指定&lt;br&gt;        if (len/(32768/2) &amp;lt; 1){&lt;br&gt;            in_dot ++&lt;br&gt;            color 100, 100, 255&lt;br&gt;        }else{ &lt;br&gt;            color 0, 0, 0&lt;br&gt;        }&lt;br&gt;        //描画&lt;br&gt;        pset px + r, py+ r&lt;br&gt;        //一定間隔で待機を行い、進行状況・円周率を表示&lt;br&gt;        if(dimension == 0): vol = 4:else : vol = 8;&lt;br&gt;        pi = (((1.0*in_dot)/(i+1))*vol)&lt;br&gt;        if( i \ rest == 0){&lt;br&gt;            prev = ginfo(3)&lt;br&gt;            gsel 0&lt;br&gt;            color 100, 100, 255&lt;br&gt;            boxf 0, 0, 100, 10&lt;br&gt;            color 0, 0, 0;&lt;br&gt;            boxf 0, 0, (i * 100) / max, 10  &lt;p&gt;            color 255, 255, 255&lt;br&gt;            boxf 180, 90, 300, 115&lt;br&gt;            color 0, 0, 0&lt;br&gt;            pos 180, 90&lt;br&gt;            mes &amp;quot;&amp;quot;+pi//円周率&lt;br&gt;            gsel prev&lt;br&gt;            await 10&lt;br&gt;        }&lt;br&gt;        //グラフに打点すべきタイミング&lt;br&gt;        if(max / graph_w &amp;lt; 1){&lt;br&gt;            if(dimension == 0):def = 3.1416:else:def = 4.1888&lt;br&gt;            prev = ginfo(3)&lt;br&gt;            gsel 0&lt;br&gt;            color 255,0,0&lt;br&gt;            pset graph_x + i, graph_y + graph_h/2 - pi*500 + def*500&lt;br&gt;            gsel prev&lt;br&gt;        }else{&lt;br&gt;            if(i\(max / graph_w) == 0){&lt;br&gt;                if(dimension == 0):def = 3.1416:else: def = 4.1888&lt;br&gt;                prev = ginfo(3)&lt;br&gt;                gsel 0&lt;br&gt;                color 255,0,0&lt;br&gt;                pset graph_x + (1.0*i/max)*(graph_w), graph_y + graph_h/2 - pi*500 + def*500&lt;br&gt;                gsel prev&lt;br&gt;            }&lt;br&gt;        }&lt;br&gt;    next&lt;br&gt;    gsel 0&lt;br&gt;    color 0, 0, 0&lt;br&gt;    boxf 0, 0, 100, 10&lt;br&gt;    //非表示モードではまとめて円を描画&lt;br&gt;    if(visible == 0) :     pos vx, vy:  gcopy 2, 0, 0, r*2, r*2&lt;br&gt;    stop&lt;br&gt;*init_graph&lt;br&gt;    if(dimensions == 0):def = 3.1416:else:def = 4.1888&lt;br&gt;    prev = ginfo(3)&lt;br&gt;    gsel 0&lt;br&gt;    color 255, 255, 255&lt;br&gt;    boxf 0, graph_y, graph_x + graph_w, graph_y + graph_h&lt;br&gt;    color 0, 0, 0&lt;br&gt;    pos 30, graph_y + graph_h/2 : mes &amp;quot;&amp;quot;+def&lt;br&gt;    line 99, graph_y, 99, graph_y + graph_h&lt;br&gt;    line 99, graph_y + graph_h/2, 700, graph_y + graph_h/2  &lt;p&gt;    pos 30, graph_y&lt;br&gt;    mes &amp;quot;&amp;quot; + (def + (1.0 * graph_h / 500))&lt;br&gt;    line 99, graph_y, graph_x + graph_w, graph_y&lt;br&gt;    gsel prev&lt;br&gt;    return ; &lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1929899016285799617&amp;page=RSS%3a+HSP+%e3%81%a7%e3%83%a2%e3%83%b3%e3%83%86%e3%82%ab%e3%83%ab%e3%83%ad&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=prog-city.spaces.live.com&amp;amp;GT1=prog-city"&gt;</description><comments>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!964.entry#comment</comments><guid isPermaLink="true">http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!964.entry</guid><pubDate>Fri, 11 Jul 2008 14:48:01 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://prog-city.spaces.live.com/blog/cns!E5379F11D9E8BB3F!964/comments/feed.rss</wfw:commentRss><wfw:comment>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!964.entry#comment</wfw:comment><dcterms:modified>2008-07-11T14:59:08Z</dcterms:modified></item><item><title>C# でベジエ曲線（４）</title><link>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!953.entry</link><description>&lt;p&gt;ベジエ曲線が四角形の中にあるのか、無いのかを知るには、どうすればよいのだろうか。 &lt;ol&gt; &lt;li&gt;ベジエ曲線は、制御点の&lt;a href="http://en.wikipedia.org/wiki/Convex_hull"&gt;凸包&lt;/a&gt;の外側には飛び出さないということなので、四角形の中に凸包の領域が無ければ曲線は含まれず、有れば曲線が含まれるかもしれない。  &lt;li&gt;最初か最後の制御点が四角形に含まれていれば、四角形内に曲線が含まれる。  &lt;li&gt;曲線と四角形の辺に交点があれば、四角形内に曲線が含まれる。&lt;/ol&gt; &lt;p&gt;１の判別：&lt;br&gt;　凸包を求める必要がある。 &lt;br&gt;　グラハムスキャンという方法があるらしい。  &lt;p&gt;2の判別：&lt;br&gt;　&lt;a href="http://ja.wikipedia.org/wiki/If%E6%96%87"&gt;if 文&lt;/a&gt;を使う &lt;p&gt;3の判別：&lt;br&gt;　辺の直線の式にベジエ曲線の式を代入し、t についての方程式を解く。&lt;br&gt;　が、次数が高くなるかもしれないことになっているので、工夫がいる。 &lt;p&gt;　&lt;a href="http://ja.wikipedia.org/wiki/%E3%83%8B%E3%83%A5%E3%83%BC%E3%83%88%E3%83%B3%E6%B3%95"&gt;ニュートン法&lt;/a&gt;という方法で 解が求められるというので、実装してみたのだが、どんなケースでも解が求まるわけではないらしい。 難しそうなのでスルーしていた bezier clipping に手を出してみる。 &lt;p&gt;こちらのページとにらめっこして理解を試みる。&lt;br&gt;&lt;a title="http://nis-lab.is.s.u-tokyo.ac.jp/nis/bezclip.html" href="http://nis-lab.is.s.u-tokyo.ac.jp/nis/bezclip.html"&gt;http://nis-lab.is.s.u-tokyo.ac.jp/nis/bezclip.html&lt;/a&gt; &lt;p&gt;Bezier Clipping は、最近のアルゴリズムらしい。&lt;br&gt;曲線の制御点による凸包の  y= 0 を通る辺 の x軸との交点２つをそれぞれmin, max として、曲線の当区間を切り出し、それを再帰的に行うというもの。 &lt;p&gt;まず、 曲線の式を用意する&lt;br&gt;&lt;a href="http://byfiles.storage.msn.com/y1pZQ3WPusS8kRMYur-haCohQmUnPUZ4ypkhC_3RDKXh5Cvwqv-m1YyCNlyts-mu4PT?PARTNER=WRITER"&gt;&lt;img title=bezier style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=119 alt=bezier src="http://byfiles.storage.msn.com/y1pXf4xiSRKnJV5vLu1dLFrniXj5T590tn_OIoMFD3NQeDcBI65bCLstX1cJXIM0Nzh?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; &lt;p&gt;次に、直線の式を用意する&lt;br&gt;&lt;a href="http://byfiles.storage.msn.com/y1peYNdS8JI0WL87lPPy4_bciy59JAwu7vrS7x8i-XWV9WzKSfLMSy-IbHd_E1svjti?PARTNER=WRITER"&gt;&lt;img title=image style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=47 alt=image src="http://byfiles.storage.msn.com/y1pifCCu_UF1RiRoE1akI9tTUrlTUoqHC0GNpTcxUHH8qZM6rrt_xmMKeosibx1pSFm?PARTNER=WRITER" width=162 border=0&gt;&lt;/a&gt;  &lt;p&gt;そして、解くべき式は次のようになる。&lt;br&gt;&lt;br&gt;&lt;a href="http://byfiles.storage.msn.com/y1pTJBbAVWeBxYfQ7dT-fpkfxvtSQDw1CBNgPCLGKMZ8AhFFfx0slDMwxvF3pvBS244?PARTNER=WRITER"&gt;&lt;img title=image style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=152 alt=image src="http://byfiles.storage.msn.com/y1plfIgThf8PDG2APiD5L_NsIQTxKZ_kz099q-FYHPVYQuHcqh9l_TIkMncoXUWSnTE?PARTNER=WRITER" width=228 border=0&gt;&lt;/a&gt;  &lt;p&gt;この式の各項 の f i が制御点 i の値になる。 各項での t は、 1 を 項数で均等に割ったものらしい。 &lt;p&gt;この式に対して、次のように処理する。参考にしたのはこちらのページ&lt;br&gt;&lt;a title="http://www-ui.is.s.u-tokyo.ac.jp/~kenshi/assignment/cg07/bezierclip.html" href="http://www-ui.is.s.u-tokyo.ac.jp/~kenshi/assignment/cg07/bezierclip.html"&gt;http://www-ui.is.s.u-tokyo.ac.jp/~kenshi/assignment/cg07/bezierclip.html&lt;/a&gt; &lt;ol&gt; &lt;li&gt;凸包を得る  &lt;li&gt;各辺のうち、f(t)=0 を通る辺の、f(t) = 0 での t を求め、min, max とする  &lt;li&gt;そのような辺がなければこの部分には解がない  &lt;li&gt;min, max の範囲が、もともとの半分以上なら、解が複数あるとみて、曲線を半分に分割する。&lt;br&gt;その両方の曲線を再帰し、両方の結果を戻す  &lt;li&gt;そうでない場合、収束しているか調べ、していれば値を返す  &lt;li&gt;していなければmin, max の範囲で曲線を切り出し、再帰し、結果を戻す。&lt;/ol&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt;自分の場合、切り取った曲線の t の変域は 0 &amp;lt;= t &amp;lt;= 1 だったので、 再帰した処理が戻ってくるとき、(max – min)倍に縮めて最小値を加算する処理を付け加えた。 &lt;div style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px"&gt;&lt;pre&gt;//このオブジェクトをベジエクリッピングする
public float[] bezierclipping() {
    //Pointf にする t は項数で均等に分けたもの
    PointF[] pts = new PointF[points.Length];
    PointF[] convex;
    for (int i = 0; i &amp;lt; points.Length; i++) {
        pts[i].X = (1.0f / (points.Length-1)) * i;
        pts[i].Y = points[i];
    }

    //凸包を得る
    convex = mymath.convex_hull(pts);

    //凸包のうち、ゼロを通る辺を最小・最大値とする
   float min = float.MinValue, max = float.MaxValue;
   for (int i = 0; i &amp;lt; convex.Length; i++)
   {
       int j = (i + 1) % convex.Length;
       if (convex[i].Y * convex[j].Y &amp;lt; 0)
       {
           if (min == float.MinValue)
           {
               min = (convex[i].X * (float)Math.Abs(convex[j].Y)
                   + convex[j].X * (float)Math.Abs(convex[i].Y))
                   / ((float)Math.Abs(convex[i].Y) + (float)Math.Abs(convex[j].Y));

           }
           else if (max == float.MaxValue)
           {
               max = (convex[i].X * (float)Math.Abs(convex[j].Y)
                   + convex[j].X * (float)Math.Abs(convex[i].Y))
                   / ((float)Math.Abs(convex[i].Y) + (float)Math.Abs(convex[j].Y));
               break;
           }
       }
       else if (convex[i].Y == 0) {
           if (min == float.MinValue) min = convex[i].X;
           else if (max == float.MaxValue) { max = convex[i].X; break; }
       }
   }
    if (min == float.MinValue || max == float.MaxValue)
        return new float[] { };

    if(min &amp;gt; max){
        float tmp;
        tmp = min; min = max; max = tmp;
    }
    if (max - min &amp;lt; (float)Math.Abs(pts[pts.Length - 1].X - pts[0].X) * 0.5f)
    {
        //0.5以下に小さくなるのならば、解はひとつ
        if (max - min &amp;lt; 0.0001) //収束判別
        {
            return new float[] { (max - min) / 2 };
        }

        //もう一度縮めたい
        float[] tmp = cut(min, max).bezierclipping();
        for (int cnt = 0; cnt &amp;lt; tmp.Length; cnt++) {
            tmp[cnt] *= (max - min)/1;
            tmp[cnt] += min;
        }
        return tmp;
    }
    else 
    { 
        //0.5以上ならば解が複数ある
        bezierfunc[] cut_half = cut(0.5f);
        float[] a, b, c;
        a = cut_half[0].bezierclipping();
        b = cut_half[1].bezierclipping();

        c = new float[a.Length + b.Length];
        for (int i = 0; i &amp;lt; c.Length; i++) {
            c[i] = (i &amp;lt; a.Length) ? a[i]/2 : (b[i - a.Length]/2 + 0.5f);
        }
        return c;
    }
}&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://byfiles.storage.msn.com/y1pc4dct7Nx56xozhjwxfL6iXaLi0f_UwDDs2fAej1F2FH1vRQcqOALbMiDG-JKdNWQ?PARTNER=WRITER"&gt;&lt;img title=image style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=244 alt=image src="http://byfiles.storage.msn.com/y1pTB6zlAPXd_CJsxFQvGcZWeRzVblQoAKKNgIEgdLBAFhZZ-FgABCIIXFnF6AinwUG?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1929899016285799617&amp;page=RSS%3a+C%23+%e3%81%a7%e3%83%99%e3%82%b8%e3%82%a8%e6%9b%b2%e7%b7%9a%ef%bc%88%ef%bc%94%ef%bc%89&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=prog-city.spaces.live.com&amp;amp;GT1=prog-city"&gt;</description><comments>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!953.entry#comment</comments><guid isPermaLink="true">http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!953.entry</guid><pubDate>Tue, 08 Jul 2008 16:50:32 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://prog-city.spaces.live.com/blog/cns!E5379F11D9E8BB3F!953/comments/feed.rss</wfw:commentRss><wfw:comment>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!953.entry#comment</wfw:comment><dcterms:modified>2008-07-09T17:34:28Z</dcterms:modified></item><item><title>C# でベジエ曲線（３）</title><link>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!950.entry</link><description>&lt;p&gt;計算が複雑になってきてきた。そこで、多項式の計算をクラスにしてみた。&lt;br&gt;四則演算と微分・積分を実装した。&lt;br&gt;ただし、 1/x の積分は出来ない。 とか、速度の問題とかいろいろとある。 &lt;p&gt;カーブ半径を取得したい。&lt;br&gt;曲線の曲がり具合は、曲率というもので表されるらしく、&lt;br&gt;一般に用いる半径は曲率半径といって曲率の逆数らしい。 &lt;p&gt;したがって、曲率を求めたい。が、&lt;br&gt;&lt;a title="http://ja.wikipedia.org/wiki/%E6%9B%B2%E7%8E%87" href="http://ja.wikipedia.org/wiki/%E6%9B%B2%E7%8E%87"&gt;http://ja.wikipedia.org/wiki/%E6%9B%B2%E7%8E%87&lt;/a&gt;&lt;br&gt;わからない。 &lt;p&gt;検索して調べていると  &lt;p&gt;(x’y’’ – x’’y’ ) / √{({x’}^2 + {y’}^2)^3}&lt;br&gt;&lt;br&gt;x(t), y(t) : 曲線上の点&lt;br&gt;x’(t), y’(t) : 接線の傾き &lt;p&gt;こんな式を見つけたのでそのまま計算して逆数にすると、正しいらしい結果が出てきた。&lt;a href="http://byfiles.storage.msn.com/y1plNxPghm8lL7dvWgyPbpOAs5YfNSI-gLrVoh-3NN8ACyEhFs2VR5g8_TjYm2psfr8?PARTNER=WRITER"&gt;&lt;img title=image style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px" height=244 alt=image src="http://byfiles.storage.msn.com/y1pAzkAjrIJ8yvSpxQrbJGzA5-vRmd93tnqAKxWDtU6lzDYnQyAtbK7CfySm_1uxJ-R?PARTNER=WRITER" width=244 align=left border=0&gt;&lt;/a&gt;  &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt;カーブ半径に合わせて円を描いてみた。 &lt;p&gt;&lt;br style="clear:both"&gt;下がコードの一部。 tmp1 が上式の 分子、 tmp2 が分母。 &lt;p&gt; &lt;div style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px"&gt;&lt;pre&gt;       public float curvature( float t) {
            float tmp1 = -f_tangental_x.differentiate().GetValue(t) * f_tangental_y.GetValue(t) +
                            f_tangental_y.differentiate().GetValue(t) * f_tangental_x.GetValue(t);
            float tmp2 = (float)Math.Sqrt((double)powFI((powFI(f_tangental_x.GetValue(t), 2) 
                            + powFI(f_tangental_y.GetValue(t), 2)), 3));
            if (tmp2 == 0) return 0;
            return  (tmp1 / tmp2);
        }&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;differentiate は多項式クラスで微分をするメソッドで、 (x^a)’ = ax^(a-1) をすべての項に対して行う。&lt;br&gt;GetValue は多項式の変数に代入し、値を得るもの。
&lt;div style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px"&gt;&lt;pre&gt;        //微分する
        public polynomial differentiate() {
            polynomial result = new polynomial();

            foreach (KeyValuePair&amp;lt;float, float&amp;gt; kpy in this.values)
            {
                if (kpy.Key != 0)
                    result.values[kpy.Key - 1.0f] = kpy.Key * kpy.Value;
            }

            return result;
        }&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;多項式クラスでは、各項を、キーを指数、値を係数とするリストに保存している。
&lt;p&gt; 
&lt;p&gt;正確さや速度に問題が出てくるかもしれないが、機能としてはこれくらいかと思う。&lt;br&gt;次はカーブをつなげたレールの設計とか。&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1929899016285799617&amp;page=RSS%3a+C%23+%e3%81%a7%e3%83%99%e3%82%b8%e3%82%a8%e6%9b%b2%e7%b7%9a%ef%bc%88%ef%bc%93%ef%bc%89&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=prog-city.spaces.live.com&amp;amp;GT1=prog-city"&gt;</description><comments>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!950.entry#comment</comments><guid isPermaLink="true">http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!950.entry</guid><pubDate>Thu, 03 Jul 2008 16:41:51 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://prog-city.spaces.live.com/blog/cns!E5379F11D9E8BB3F!950/comments/feed.rss</wfw:commentRss><wfw:comment>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!950.entry#comment</wfw:comment><dcterms:modified>2008-07-03T16:41:51Z</dcterms:modified></item><item><title>C# でベジエ曲線（２）</title><link>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!940.entry</link><description>&lt;p&gt;無事、ベジエ曲線とその並行曲線がかけたのが前回まで。 &lt;p&gt;曲線の式が分かることで、列車を滑らかにカーブさせることができそうだが、&lt;br&gt;まだ曲線の上を一定速度で動かすことができない。&lt;br&gt;前回のベジエ曲線の式は、パラメータ t で表されていて、 &lt;br&gt;t を一定に増加させても 等速度で動いてくれないように見える。 &lt;p&gt;だから、 適当な距離 l において、パラメータ t はいくつなのか調べないといけない。&lt;br&gt;また、曲線全体の距離も知りたい。 &lt;p&gt;そこで、高校の数学教科書の最後のほうのページに、「曲線の長さ」という項目があったことを思い出し、開いてみた。 &lt;p&gt;(b～a の定積分)∫√[ { f’(t) }^2  +  { g’(t) }^2 ] dt &lt;p&gt;次数の高い多項式がルートの中に入ったものを積分するのは非常に難しそう。&lt;br&gt;つい最近、大学で積分の数値計算を習ったことから、それで計算することにする。&lt;br&gt;&lt;br&gt;とはいっても、積分は基本的に、地道に面積を計上していくただのループ。&lt;br&gt;なんとかならないものかという気持ちが残る。 &lt;p&gt;-------------- &lt;p&gt;積分のアルゴリズムには、台形公式と&lt;a href="http://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%B3%E3%83%97%E3%82%BD%E3%83%B3%E3%81%AE%E5%85%AC%E5%BC%8F"&gt;シンプソンの公式&lt;/a&gt;と、ほかに各点の重みや積分区間を不等間隔にする&lt;em&gt;何とか&lt;/em&gt;という公式があるらしい。 &lt;p&gt;あるグラフを区間ごとに区切って面積を計算する時、その区間のグラフが曲線でないこととして計算すれば、台形公式になる。 それでは誤差が大きくなってしまうので、 区間上の３点を通る２次曲線の積分として考えれば、少しは誤差は小さくなる。これがシンプソンの公式である。 &lt;p&gt;他にもいい方法があると本には書いてあるが、難しくなると面倒だし、ピクセル単位であっていればいいのでシンプソン法で計算してみることにした。 &lt;p&gt;------------ &lt;p&gt;とりあえず、 曲線の パラメータ t での長さ l が何ピクセルなのかを知りたい。 &lt;p&gt;計算のやり方は教科書のまる写しでなんとかする。&lt;br&gt;グラフを、 (t0, l0), (t1, l1), (t2, l2),,,,,(tN, lN) と区切って、&lt;br&gt;(h/3)(l0 + 4l1 + l2) + (h/3)(l2 + 4l3 + l4) + … と計算していく。 &lt;p&gt;これを簡単にするとこんな感じ。&lt;br&gt;(h/3) * {&lt;br&gt;l0 + lN&lt;br&gt;+ l偶数番 * 2&lt;br&gt;+ l奇数番 * 4&lt;br&gt;} &lt;p&gt;ちなみに、区間は偶数個に区切らなければならないらしい。 &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;p&gt; &lt;div style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px"&gt;&lt;pre&gt;        //パラメータ t を 開始点からの距離 l に変換する h は積分刻み幅
        //シンプソンの公式を用いた
        static public float t2l(float t, PointF[] pt, float h)
        {
            float tcnt, prev =0.0f, tmplen, tmpadd, total = 0.0f;
            int i;
            for (tcnt = 0.0f, i = 0; tcnt &amp;lt;= t; i++, tcnt += h) {
                tmplen = length(bezier.tangental_func(pt, tcnt));
 
                if (tcnt + h &amp;gt; t) 
                { //最後
                    if (i % 2 == 1)
                    { //奇数個で終わる
                        tmpadd = (prev + tmplen * 4 + length(bezier.tangental_func(pt, tcnt + h))) / 2;
                    }
                    else
                    { //偶数個で終わる
                        tmpadd = tmplen;
                    }
                }
                else if (tcnt &amp;lt; h)
                { //最初:そのまま
                    tmpadd = tmplen;
                }
                else if (i % 2 != 0)
                { //奇数
                    tmpadd = tmplen * 4;
                }
                else
                { //偶数
                    tmpadd = tmplen * 2;
                }
                total += tmpadd;
                prev = tmplen;
            }
            return h/3.0f * total;
        }&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;積分刻み幅を任意に定められることにしたかったので、項数が奇数になってしまった場合、区間を超えて計算し、超えた区間を２で割るようにしてみた。
&lt;p&gt;そして、その逆変換
&lt;p&gt;
&lt;div style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px"&gt;&lt;pre&gt;        //開始点からの距離 l を パラメータ t に変換する h は積分刻み幅
        //シンプソンの公式
        static public float l2t(float l, PointF[] pt, float h)
        {
            float tcnt, prev =0.0f, tmplen, tmpadd, total = 0.0f, lcnt, endlen = 0.0f;
            int i;
            for (tcnt = 0.0f, i = 0; tcnt &amp;lt;= 1.0f &amp;amp;&amp;amp; endlen &amp;lt; l; i++, tcnt += h) {
                tmplen = length(bezier.tangental_func(pt, tcnt));
 
                //ここで終了した場合の長さ
                if (i % 2 == 1)
                { //奇数個で終わる
                    endlen = (total + (prev + tmplen * 4 + length(bezier.tangental_func(pt, tcnt + h))) / 2)
                        * (h / 3.0f);
                }
                else
                { //偶数個で終わる
                    endlen = (total + tmplen)
                         * (h / 3.0f);
                }

                //加算処理
                if (tcnt &amp;lt; h)
                { //最初
                    tmpadd = tmplen;
                }
                else if (i % 2 != 0)
                { //奇数
                    tmpadd = tmplen * 4;
                }
                else
                { //偶数
                    tmpadd = tmplen * 2;
                }

                total += tmpadd;
                prev = tmplen;
            }
            return tcnt - h/2.0f;
        }&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;距離から t を求める場合、ループするたびにその地点での距離を知りたいので、そのつど終了した場合の距離を計算し、終了判断しなければならない。 あと、戻り値は必ず 本来の値以上になることから、 刻み幅の半分を引いてみた。
&lt;p&gt;&lt;a href="http://byfiles.storage.msn.com/y1paFKYeoQjKyq1VHD6B2OxM_3ZrLmAioPjKQbpCceR0ESwKQoC5csLOQ9zHhGck5P1?PARTNER=WRITER"&gt;&lt;img title=image style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=244 alt=image src="http://byfiles.storage.msn.com/y1pB8ia70aVy4dEIIWCG4FwcLFjbJPAnHI9vx9zep8mZXEd5i7yJ7AiKluYesSObZoB?PARTNER=WRITER" width=244 align=left border=0&gt;&lt;/a&gt;
&lt;p&gt; t = 0.5 の位置を距離に変換し、戻してみた。&lt;br&gt;大体あっているが、実用的なのか微妙なところ。
&lt;p&gt; 
&lt;p&gt;それより、コードがなんか汚い。 言い訳としては、ご丁寧に中かっこをエディタが改行してくれるということ。&lt;br&gt;IntelliSense も C++ に比べるとおせっかいに働いてくれる。&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1929899016285799617&amp;page=RSS%3a+C%23+%e3%81%a7%e3%83%99%e3%82%b8%e3%82%a8%e6%9b%b2%e7%b7%9a%ef%bc%88%ef%bc%92%ef%bc%89&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=prog-city.spaces.live.com&amp;amp;GT1=prog-city"&gt;</description><comments>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!940.entry#comment</comments><guid isPermaLink="true">http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!940.entry</guid><pubDate>Sun, 29 Jun 2008 14:19:33 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://prog-city.spaces.live.com/blog/cns!E5379F11D9E8BB3F!940/comments/feed.rss</wfw:commentRss><wfw:comment>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!940.entry#comment</wfw:comment><dcterms:modified>2008-06-30T02:36:29Z</dcterms:modified></item><item><title>C# でベジエ曲線</title><link>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!939.entry</link><description>&lt;p&gt;C# を始めた。&lt;br&gt;Visual studio にはいくつかの言語が入っていて、 VB とかもできるのだが 手は伸びていなかった。&lt;br&gt;C を使っていると 効率が悪いということにいい加減気づくべきではないかと思い、 C# を始めてみようと思ったわけです。&lt;br&gt;&lt;br&gt;#include の順番とか、 定義の順番だとか、ヘッダファイルとか、悩まされることが少ない。&lt;br&gt;メモリの確保とかも考えるべきことがない。 
&lt;p&gt;C++はC++で深い。 Windows の深いところまで勉強するには C++ が必須。&lt;br&gt;でも、普通のソフトを作るのに手間をかけすぎていては困る。器用に使い分けてみたい。 
&lt;p&gt;----------------- 
&lt;p&gt;C# で作りたいものは、ちょっとしたゲームのようなもの。&lt;br&gt;鉄道系のシミュレーションが好きなので、それの簡易版っぽいものを考えている。&lt;br&gt;それで、そのレールをベジエ曲線にしてその上をガタゴト走らせようと考えている。 
&lt;p&gt;ただ、単純にベジエ曲線を 便利なライブラリにおそらく入っているであろう DrawBezier などという関数でビーッと引くだけではすまないであろう。その線に沿って、列車が動かなければならない。 
&lt;p&gt;となると、数式でその座標を表さなければならない。&lt;br&gt;なので、数式とにらめっこする必要が生じてくる。 
&lt;p&gt;---------------- 
&lt;p&gt;調べてみると、&lt;br&gt;&lt;a title="http://ja.wikipedia.org/wiki/%E3%83%99%E3%82%B8%E3%82%A7%E6%9B%B2%E7%B7%9A" href="http://ja.wikipedia.org/wiki/%E3%83%99%E3%82%B8%E3%82%A7%E6%9B%B2%E7%B7%9A"&gt;http://ja.wikipedia.org/wiki/%E3%83%99%E3%82%B8%E3%82%A7%E6%9B%B2%E7%B7%9A&lt;/a&gt;&lt;br&gt;こんな感じの数式であることがわかった。&lt;br&gt;&lt;br&gt;∑ Bi Jni(t)&lt;br&gt;&lt;br&gt;Jni(t) = (n i) t^i (1-t)^(n-i) 
&lt;p&gt;(n i) という部分をベクトルかと思ってずっと考えていたらこれは nCi （組み合わせ）ということが判明。&lt;br&gt;&lt;a title="http://ja.wikipedia.org/wiki/%E4%BA%8C%E9%A0%85%E5%AE%9A%E7%90%86" href="http://ja.wikipedia.org/wiki/%E4%BA%8C%E9%A0%85%E5%AE%9A%E7%90%86"&gt;http://ja.wikipedia.org/wiki/%E4%BA%8C%E9%A0%85%E5%AE%9A%E7%90%86&lt;/a&gt;&lt;br&gt;(n i) というのは二項係数というらしい。最初からそう書いてあればいいのに。 
&lt;p&gt;
&lt;p&gt;とりあえず線の式はわかった。 &lt;br&gt;パラメータ t での座標を返す関数を書いてみた。制御点の数は可変にしておいた。
&lt;div style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px"&gt;&lt;pre&gt;        static public PointF curve(PointF[] pt, float t) {
            PointF total = new PointF(0.0f, 0.0f);
            int n = pt.Length - 1;
            int i;

            for (i = 0; i &amp;lt; pt.Length; i++) {
                total.X += pt[i].X * mCn(n, i) * (float)Math.Pow((double)t, i) * (float)Math.Pow(1.0 - t, (double)n - i);
                total.Y += pt[i].Y * mCn(n, i) * (float)Math.Pow((double)t, i) * (float)Math.Pow(1.0 - t, (double)n - i);
            }

            return total;
        }&lt;/pre&gt;&lt;/div&gt;&lt;br&gt;でも１本だけでは足りない。平行にもう１本ほしい。レールだから。 
&lt;p&gt;曲線の接線に対して直角に、一定距離進んだところをつないで線にすれば平行になりそう。&lt;br&gt;接線を求めるには式を微分すればよさそう。&lt;br&gt;&lt;br&gt;Bi と(n i) を定数として、 { (t^i) * (1-t)^(n-i)} ’  の部分を考える。&lt;br&gt;単純に考えると&lt;br&gt;(t^i)’ * (1-t)^(n-i)  +  t^i * {(1-t)^(n-i)}’ 積の微分&lt;br&gt;it^(i-1) * (1-t)^(n-i)  +  t^i * (n-i)(1-t)^(n-i-1)(-1) 合成関数&lt;br&gt;&lt;br&gt;よって ∑ Bi (n i) { it^(i-1) * (1-t)^(n-i)  +  t^i * (n-i)(1-t)^(n-i-1)(-1) }&lt;br&gt;&lt;br&gt;という感じになりそうなのだが、このままコードにすると失敗した。&lt;br&gt;0乗のときは1なので微分するとそのまま消えないといけないから。 
&lt;div style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px"&gt;&lt;pre&gt;        //ベジエ曲線の、接線を表す関数
        public static SizeF tangental_func(PointF[] pt, float t)
        {
            PointF total = new PointF(0.0f, 0.0f);
            int i;
            int n = pt.Length - 1;

            for (i = 0; i &amp;lt; pt.Length; i++)
            {
                float d1 = (i == 0) ? 0.0f : (float)i * powFI(t, i - 1);
                float d2 = (n - i == 0) ? 0.0f : (float)(n - i) * powFI(1.0f - t, n - i - 1) * (-1);

                total.X += pt[i].X * mCn(n, i) *
                (
                    d1 * powFI(1.0f - t, n - i) + powFI(t, i) * d2
                );


                total.Y += (pt[i].Y * mCn(n, i) *
                (
                    d1 * powFI(1.0f - t, n - i) + powFI(t, i) * d2
                ));
            }
            return new SizeF(total.X, total.Y);
        }&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;* powFI は float 型をキャストせずに べき乗できるようにした単純な関数。&lt;br&gt;* d1 と d2 がそれぞれ t^i と (1-t)^(n-i) を微分したものをいれる変数。&lt;br&gt;&lt;br&gt;この戻り値をそのまま描画したらうまく接線が描画された。&lt;br&gt;しかし、場所によって長さが変わってしまった。 曲線の パラメータ t の 1あたりの長さになってしまっているかららしい。&lt;br&gt;&lt;br&gt;よって、このx, y に同じ値 l をかけて　長さを１にする必要がある。&lt;br&gt;そうしないと並行曲線が描けない。&lt;br&gt;&lt;br&gt;(lx)^2 + (ly)^2 = 1^2&lt;br&gt;l^2 = 1 / (x^2 + y^2)&lt;br&gt;l = 1 / √(x^2 + y^2) 
&lt;p&gt;となり、(x / √(x^2 + y^2) , y / √(x^2 + y^2) ) が長さ１ピクセル分のベクトルになる。&lt;br&gt;英語のwikipedia に Parallel curve という項目があって、これを見ると何となく正しいような気がする。&lt;br&gt;&lt;a title="http://en.wikipedia.org/wiki/Parallel_curve" href="http://en.wikipedia.org/wiki/Parallel_curve"&gt;http://en.wikipedia.org/wiki/Parallel_curve&lt;/a&gt; 
&lt;p&gt;この値に必要な長さをかけて使えばよい。 
&lt;p&gt;---------- 
&lt;p&gt;接線を直角に曲げて、一定距離の地点を線でつないで行けば平行な線が引けそうである。&lt;br&gt;接線のベクトルが (x, y) なら、　その直角は ( y, –x )。&lt;br&gt;&lt;br&gt;で、レール（道路）の幅だけ掛け算する。&lt;br&gt;これで平行線のグラフもわかった。&lt;br&gt;&lt;br&gt;これらを使って適当に線を引く&lt;br&gt;&lt;br&gt;&lt;a href="http://byfiles.storage.msn.com/y1pDW2HVt576YqdDg7sJmKyLHGbARo7IOb6IwtBV4_r_36gD0ojJMeSozkQK-YthKsc?PARTNER=WRITER"&gt;&lt;img title=image style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px" height=244 alt=image src="http://byfiles.storage.msn.com/y1p140kSMJebctsFi1G5ywDVgnWvKjxugx59v6tEw11O7pQI7ULZxekXIBWbGWaJ3pN?PARTNER=WRITER" width=244 border=0&gt;&lt;/a&gt; 
&lt;p&gt;はい、完成。 
&lt;p&gt;ところで、 bezier 曲線は、　ベジエと発音するのがどちらかというと原語に近いとのこと。 &lt;br&gt;少し早くしゃべるだけで区別がつかなくなるような気もするが。&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1929899016285799617&amp;page=RSS%3a+C%23+%e3%81%a7%e3%83%99%e3%82%b8%e3%82%a8%e6%9b%b2%e7%b7%9a&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=prog-city.spaces.live.com&amp;amp;GT1=prog-city"&gt;</description><comments>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!939.entry#comment</comments><guid isPermaLink="true">http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!939.entry</guid><pubDate>Sat, 28 Jun 2008 18:02:56 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://prog-city.spaces.live.com/blog/cns!E5379F11D9E8BB3F!939/comments/feed.rss</wfw:commentRss><wfw:comment>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!939.entry#comment</wfw:comment><dcterms:modified>2008-06-29T01:50:50Z</dcterms:modified></item><item><title>Visual studio コマンドウィンドウ</title><link>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!935.entry</link><description>&lt;div&gt;先生は 「統合開発環境を使えば簡単ですが、 何かと応用が利かなくなったりするのでコマンドも覚えましょう。」 といいます。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;今日、 Visual Studio の画面上に 「コマンドウィンドウ」 を発見したので、適当に dir と打ち込んで見たところ、&lt;/div&gt;
&lt;div&gt;&lt;font color="#a5a5a5"&gt;&lt;/font&gt; &lt;/div&gt;
&lt;div&gt;&lt;font color="#a5a5a5"&gt;&amp;quot;コマンド &amp;quot;dir&amp;quot; は有効ではありません。&amp;quot;&lt;/font&gt;&lt;/div&gt;
&lt;div&gt;との反応。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;調べてみたところ、こんなコマンドを入力するらしいです。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;Visual Studio コマンドの定義済みのエイリアス&lt;/div&gt;
&lt;div&gt;&lt;a href="http://msdn.microsoft.com/ja-jp/library/c3a0kd3x(VS.80).aspx"&gt;http://msdn.microsoft.com/ja-jp/library/c3a0kd3x(VS.80).aspx&lt;/a&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;ショートカットキーで十分そうなコマンドが多いですが、&lt;/div&gt;
&lt;div&gt;使いそうなものをメモ。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;? x : xの内容を表示する
&lt;li&gt;gotoln : 指定行に移動（ステータスバーの行数をダブルクリックしてもOK）
&lt;li&gt;lcase : エディタの選択範囲を小文字にする
&lt;li&gt;ucase : エディタの選択範囲を大文字にする
&lt;li&gt;nav : ブラウザタブを開く
&lt;li&gt;shell x : シェルで x を実行
&lt;li&gt;wordwrap : 右端で折り返す（折り返さない）&lt;/ul&gt;
&lt;p&gt;エイリアスの作成方法&lt;br&gt;&lt;a href="http://msdn.microsoft.com/ja-jp/library/xasxzd71(VS.80).aspx"&gt;http://msdn.microsoft.com/ja-jp/library/xasxzd71(VS.80).aspx&lt;/a&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1929899016285799617&amp;page=RSS%3a+Visual+studio+%e3%82%b3%e3%83%9e%e3%83%b3%e3%83%89%e3%82%a6%e3%82%a3%e3%83%b3%e3%83%89%e3%82%a6&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=prog-city.spaces.live.com&amp;amp;GT1=prog-city"&gt;</description><comments>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!935.entry#comment</comments><guid isPermaLink="true">http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!935.entry</guid><pubDate>Tue, 17 Jun 2008 12:33:28 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://prog-city.spaces.live.com/blog/cns!E5379F11D9E8BB3F!935/comments/feed.rss</wfw:commentRss><wfw:comment>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!935.entry#comment</wfw:comment><dcterms:modified>2008-06-17T12:33:28Z</dcterms:modified></item><item><title>Ubuntu の心遣い</title><link>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!797.entry</link><description> Linux の開発環境を入れようと思い、2つの環境を構築しようとしている.&lt;br&gt;&lt;ol&gt;&lt;li&gt;Vista 上の VMWare＋ Fedora 8&lt;br&gt;　ずっと使っている Fedora 環境&lt;br&gt;&lt;li&gt;別パーティションの Ubuntu&lt;br&gt;　Fedora は 無線LAN を自動認識しないようだったのと、 最近人気だということから、Ubuntu を入れることにした.&lt;/ol&gt;とりあえず、Ubuntu をいれ、そこから書き込んでいるが、非常によい。&lt;br&gt;とても軽いことと、Linux だとは思えないほど親切であること。&lt;br&gt;細かいところに気配りが見られる。&lt;br&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;インストールしてすぐに 無線LAN を認識してくれる。 WEP を入力するだけですぐつながった。&lt;li&gt;少しテレビに夢中になっていると、液晶の照度が低くなり、再び操作すると戻った。&lt;li&gt;Windows 共有フォルダから録画した WMV のビデオを 再生しようとしたところ、自動的にコーデックを検索し、再生できた。（＊）&lt;br&gt;&lt;/ul&gt;Ubuntu を使っていてとても快適に思うのが、入力の快適さ。&lt;br&gt;今のIME 2007 のひどさ とは対照的に素早い。&lt;br&gt;&lt;br&gt;Windows Live Spaces に文章を書き込むときも、 Vista の IE7 で書いたときとは比べ物にならぬほど早く、キー入力が画面に反映される。&lt;br&gt;Windows の IMEは、2番め以降の候補一覧を出すまでの時間が1秒近くかかることが大きな問題だ。余計な学習はしなくてもいいからとりあえずリストを出すのは最低限の条件と言うものではないだろうか。&lt;br&gt;&lt;br&gt;それでもいくつか困ったことはあった。&lt;br&gt;&lt;ul&gt;&lt;li&gt;本家の英語サイトから落としたもので、日本語入力がうまくできなかったので、日本語ローカライズド版 をダウンロードするといい。&lt;li&gt;（＊）コーデックの検索は、 メニューのシステム-&amp;gt;システム管理-&amp;gt;ソフトウェアソース から、検索対象にチェックを入れておく必要がある。&lt;br&gt;&lt;/ul&gt;&lt;br&gt;Ubuntu は本当に快適。 Vista が嫌ならこっちにおいでと言いたい。&lt;br&gt; &lt;br&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1929899016285799617&amp;page=RSS%3a+Ubuntu+%e3%81%ae%e5%bf%83%e9%81%a3%e3%81%84&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=prog-city.spaces.live.com&amp;amp;GT1=prog-city"&gt;</description><comments>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!797.entry#comment</comments><guid isPermaLink="true">http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!797.entry</guid><pubDate>Tue, 29 Jan 2008 11:20:08 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://prog-city.spaces.live.com/blog/cns!E5379F11D9E8BB3F!797/comments/feed.rss</wfw:commentRss><wfw:comment>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!797.entry#comment</wfw:comment><dcterms:modified>2008-01-29T11:59:45Z</dcterms:modified></item><item><title>スマートじゃないフォン</title><link>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!795.entry</link><description>&lt;div&gt;702nk2 の、ＵＳＢケーブルが、接触不良になっていた。&lt;/div&gt;
&lt;div&gt;抑えつけないと途中で通信が途切れる。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;また、付属のRS-MMC カードもデータが壊れ気味だ。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;となると、残された通信手段は、携帯電話網とBluetooth というわけなのだが、&lt;/div&gt;
&lt;div&gt;パケットはあまりかけたくない。&lt;/div&gt;
&lt;div&gt;Bluetooth 機能が付いた機械がほかにない。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;というわけで、スマートフォンじゃないただの電話になってしまいました。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;もっとも、アプリインストールに制限があったり、あまりスマートではないですけど。&lt;/div&gt;
&lt;div&gt;そろそろ新しい端末がほしいです。&lt;/div&gt;
&lt;div&gt;RSMMC を買うくらいなら、 microSD の端末にしたほうがよいでしょう。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;無線LAN のついた Nokia 端末は日本のキャリアからいつ発売されるでしょうか。&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1929899016285799617&amp;page=RSS%3a+%e3%82%b9%e3%83%9e%e3%83%bc%e3%83%88%e3%81%98%e3%82%83%e3%81%aa%e3%81%84%e3%83%95%e3%82%a9%e3%83%b3&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=prog-city.spaces.live.com&amp;amp;GT1=prog-city"&gt;</description><comments>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!795.entry#comment</comments><guid isPermaLink="true">http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!795.entry</guid><pubDate>Sat, 26 Jan 2008 02:57:40 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://prog-city.spaces.live.com/blog/cns!E5379F11D9E8BB3F!795/comments/feed.rss</wfw:commentRss><wfw:comment>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!795.entry#comment</wfw:comment><dcterms:modified>2008-01-26T02:57:40Z</dcterms:modified></item><item><title>ルー語　～　Programming Language Ru</title><link>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!787.entry</link><description>&lt;div&gt;（言語考えられないのでCです）&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;#together &amp;lt;stdio.h&amp;gt;&lt;/div&gt;
&lt;div&gt;int main(void){&lt;/div&gt;
&lt;div&gt;    return 0;&lt;/div&gt;
&lt;div&gt;}&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;という風に include とか require を together にしてみたりして&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;「文字列操作関数を使用するには、 ストリング．ヘッダーをトゥギャザーしてください」&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1929899016285799617&amp;page=RSS%3a+%e3%83%ab%e3%83%bc%e8%aa%9e%e3%80%80%ef%bd%9e%e3%80%80Programming+Language+Ru&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=prog-city.spaces.live.com&amp;amp;GT1=prog-city"&gt;</description><comments>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!787.entry#comment</comments><guid isPermaLink="true">http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!787.entry</guid><pubDate>Fri, 18 Jan 2008 17:13:48 GMT</pubDate><slash:comments>1</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://prog-city.spaces.live.com/blog/cns!E5379F11D9E8BB3F!787/comments/feed.rss</wfw:commentRss><wfw:comment>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!787.entry#comment</wfw:comment><dcterms:modified>2008-01-18T17:13:48Z</dcterms:modified></item><item><title>こえ部</title><link>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!786.entry</link><description>&lt;div&gt;多数の人の声を活用して何が出来るのか、多分まだ誰も試していない問題に対する ひとつの答えかもしれないサービスに出会うことが出来ました。&lt;/div&gt;
&lt;div&gt;&lt;a href="http://koebu.com/"&gt;http://koebu.com/&lt;/a&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;少し眺めてみたところ、いろんな声の持ち主が、思い思いの言葉を投稿して楽しんでいるようでした。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;最近、読書は音読するようにしているので興味はありますが、声を投稿するのには抵抗があります。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;まだまだ、敷居を低くする努力を続けなければならないことでしょうが、 この一線を越えられればかなり楽しめそうなサービスです。&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1929899016285799617&amp;page=RSS%3a+%e3%81%93%e3%81%88%e9%83%a8&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=prog-city.spaces.live.com&amp;amp;GT1=prog-city"&gt;</description><comments>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!786.entry#comment</comments><guid isPermaLink="true">http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!786.entry</guid><pubDate>Thu, 17 Jan 2008 11:15:59 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://prog-city.spaces.live.com/blog/cns!E5379F11D9E8BB3F!786/comments/feed.rss</wfw:commentRss><wfw:comment>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!786.entry#comment</wfw:comment><dcterms:modified>2008-01-17T11:15:59Z</dcterms:modified></item><item><title>PHP で require するとき</title><link>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!785.entry</link><description>&lt;div&gt;文字コードはとりあえずutf8。&lt;/div&gt;
&lt;div&gt;「BOM って何だっけ？　まあいいか、”あり”っと。」&lt;/div&gt;
&lt;div&gt;これが不味かったのです。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;別のソースをインクルードしたとき、不思議な空白が出力されることに悩まされ、&lt;/div&gt;
&lt;div&gt;気づかぬまま時間が過ぎてゆきました。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;PHPのコードのみが書かれたファイルには、  ?&amp;gt; は不要です。 &lt;/div&gt;
&lt;div&gt;これは早い段階で試しましたが解決しませんでした。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;結局のところ、原因は BOM 付のUTF-8。&lt;/div&gt;
&lt;div&gt;ファイル先頭の BOM が空白文字になってしまったのです。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;文字コードは BOM なしの UTF-8 にすべきだったのでした。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;唇が荒れている。&lt;/div&gt;
&lt;div&gt;タラコケアスティック極太 、商品名にいかが？&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1929899016285799617&amp;page=RSS%3a+PHP+%e3%81%a7+require+%e3%81%99%e3%82%8b%e3%81%a8%e3%81%8d&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=prog-city.spaces.live.com&amp;amp;GT1=prog-city"&gt;</description><comments>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!785.entry#comment</comments><guid isPermaLink="true">http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!785.entry</guid><pubDate>Wed, 16 Jan 2008 16:10:16 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://prog-city.spaces.live.com/blog/cns!E5379F11D9E8BB3F!785/comments/feed.rss</wfw:commentRss><wfw:comment>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!785.entry#comment</wfw:comment><dcterms:modified>2008-01-16T16:10:16Z</dcterms:modified></item><item><title>成人してもコードは稚拙</title><link>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!782.entry</link><description>&lt;div&gt;こぴぺこぴぺの繰り返し、車輪の再開発どころか車輪の原料を発掘しに旅に出ている。&lt;br&gt;フレームワークは大嫌い、新しいものも大嫌い。 言語の勉強に１年以上かかる。&lt;/div&gt;
&lt;div&gt;１日にかける行数は１００行を越えない（場合によるから指標にしちゃだめかも）&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;それでも一応飢え死には無い。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;パンをかじろう！　いや、むしろ・・・&lt;/div&gt;
&lt;div&gt;はい笑えません&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;# これは、私の指向を極端に表現したものであり、決して私そのものではありません。&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1929899016285799617&amp;page=RSS%3a+%e6%88%90%e4%ba%ba%e3%81%97%e3%81%a6%e3%82%82%e3%82%b3%e3%83%bc%e3%83%89%e3%81%af%e7%a8%9a%e6%8b%99&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=prog-city.spaces.live.com&amp;amp;GT1=prog-city"&gt;</description><comments>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!782.entry#comment</comments><guid isPermaLink="true">http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!782.entry</guid><pubDate>Mon, 14 Jan 2008 15:29:28 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://prog-city.spaces.live.com/blog/cns!E5379F11D9E8BB3F!782/comments/feed.rss</wfw:commentRss><wfw:comment>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!782.entry#comment</wfw:comment><dcterms:modified>2008-01-14T15:30:08Z</dcterms:modified></item><item><title>PostgresQL</title><link>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!776.entry</link><description>&lt;div&gt;この年になって b と d を間違えるなんて恥ずかしいです。&lt;/div&gt;
&lt;div&gt;そのせいで、設定が全くうまくいかず、時間が無駄になってしまった。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;そして、次は SQL 。&lt;/div&gt;
&lt;div&gt;これも全く覚えていない。&lt;/div&gt;
&lt;div&gt;何とかしなければ。&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1929899016285799617&amp;page=RSS%3a+PostgresQL&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=prog-city.spaces.live.com&amp;amp;GT1=prog-city"&gt;</description><comments>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!776.entry#comment</comments><guid isPermaLink="true">http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!776.entry</guid><pubDate>Wed, 26 Dec 2007 13:14:20 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://prog-city.spaces.live.com/blog/cns!E5379F11D9E8BB3F!776/comments/feed.rss</wfw:commentRss><wfw:comment>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!776.entry#comment</wfw:comment><dcterms:modified>2007-12-26T13:14:20Z</dcterms:modified></item><item><title>タイピング</title><link>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!774.entry</link><description>&lt;a style="display:block;padding-left:60px;font-weight:bold;font-size:40px;width:300px;color:#009933;padding-top:50px;font-family:Times New Roman, Arial, serif;height:100px;text-decoration:none" href="http://speedtest.10-fast-fingers.com/"&gt;45 words&lt;/a&gt; 
&lt;p&gt;&lt;a href="http://10-fast-fingers.com/"&gt;Touchtyping&lt;/a&gt;
&lt;p&gt;英語を次々に打っていくもの。&lt;br&gt;どのくらい打てたのかがあまりよくわからないけれど。&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1929899016285799617&amp;page=RSS%3a+%e3%82%bf%e3%82%a4%e3%83%94%e3%83%b3%e3%82%b0&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=prog-city.spaces.live.com&amp;amp;GT1=prog-city"&gt;</description><comments>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!774.entry#comment</comments><guid isPermaLink="true">http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!774.entry</guid><pubDate>Mon, 24 Dec 2007 11:00:32 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://prog-city.spaces.live.com/blog/cns!E5379F11D9E8BB3F!774/comments/feed.rss</wfw:commentRss><wfw:comment>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!774.entry#comment</wfw:comment><dcterms:modified>2007-12-24T11:00:32Z</dcterms:modified></item><item><title>リバーシ・チャット開発中</title><link>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!765.entry</link><description>&lt;div&gt;ネットリバーシの待ち合わせもかねて、チャットを開発中です。&lt;/div&gt;
&lt;div&gt;単純なものですが、これから改善・拡張していきます。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;とりあえず単純なものが出来上がっているので、ご案内します。&lt;/div&gt;
&lt;div&gt;[チャットのみのページ]&lt;/div&gt;
&lt;div&gt;&lt;a href="http://prog-city.no-ip.info/chat/chat.html"&gt;http://prog-city.no-ip.info/chat/chat.html&lt;/a&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;[リバーシのページにも配置しました]&lt;/div&gt;
&lt;div&gt;&lt;a href="http://prog-city.no-ip.info/reversi/reversi.html"&gt;http://prog-city.no-ip.info/reversi/reversi.html&lt;/a&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;リバーシページのものと、チャットページのものは同じルームで、内容は共有です。&lt;/div&gt;
&lt;div&gt;リバーシのネット対戦が成り立ちにくいような気がするので、これをつかって待ち合わせてみてください。&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1929899016285799617&amp;page=RSS%3a+%e3%83%aa%e3%83%90%e3%83%bc%e3%82%b7%e3%83%bb%e3%83%81%e3%83%a3%e3%83%83%e3%83%88%e9%96%8b%e7%99%ba%e4%b8%ad&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=prog-city.spaces.live.com&amp;amp;GT1=prog-city"&gt;</description><comments>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!765.entry#comment</comments><guid isPermaLink="true">http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!765.entry</guid><pubDate>Sat, 22 Dec 2007 12:57:53 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://prog-city.spaces.live.com/blog/cns!E5379F11D9E8BB3F!765/comments/feed.rss</wfw:commentRss><wfw:comment>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!765.entry#comment</wfw:comment><dcterms:modified>2007-12-22T12:57:53Z</dcterms:modified></item><item><title>はなしをつなげ</title><link>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!759.entry</link><description>&lt;div&gt;文章を書こうと思ったとき、特に意識していないのにもかかわらず、動作のみを表す文章になってしまい、感想が浮かんでこないことがある。普段、いろいろな物事を見て、何らかの形で心は動かされているはずなのだが、それを言語化するとなると、全く言葉が浮かばず、悩みこんでしまう。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;それは多分、２つの原因がある。ひとつは、私の貧弱な語彙力で、もうひとつは、私が自分自身の考えをよく理解できていないことである。&lt;/div&gt;
&lt;div&gt;また、考えが足りず、物事の本質まで言及できていないという面も大きい。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;私は長い文章を書くことが非常に苦手だ。&lt;/div&gt;
&lt;div&gt;長い文章を書くために少しは努力してみようと思う。長い文章は一般に読み手に伝わりづらいが、逆に、考えをより詳細に記述することによって説得力を増すことが出来る。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;私は、ひとつのテーマでも長く文章を書く方法がきっとあると思っている。校長の長話に終わりが無いことと同様に、だらだらと文章をつなぐ方法があるはずなのだ。&lt;/div&gt;
&lt;div&gt;例えば、&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;ほんの少しテーマを広げれば、内容を増やせる
&lt;li&gt;逆に、同じことを違う形式で二度記せば文章量を増やせる
&lt;li&gt;自分の経験を、話のメインになってしまわないギリギリのラインまで書けば、大幅に文章を増やせる。&lt;/ul&gt;
&lt;p&gt;とことん冗長に書けば、文章はきっと尽きない。もし、限界を感じたとしても、スペース・改行・箇条書き・フォントサイズ変更などが、味方になってくれる。
&lt;p&gt;これで何文字？&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1929899016285799617&amp;page=RSS%3a+%e3%81%af%e3%81%aa%e3%81%97%e3%82%92%e3%81%a4%e3%81%aa%e3%81%92&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=prog-city.spaces.live.com&amp;amp;GT1=prog-city"&gt;</description><comments>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!759.entry#comment</comments><guid isPermaLink="true">http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!759.entry</guid><pubDate>Fri, 21 Dec 2007 13:42:53 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://prog-city.spaces.live.com/blog/cns!E5379F11D9E8BB3F!759/comments/feed.rss</wfw:commentRss><wfw:comment>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!759.entry#comment</wfw:comment><dcterms:modified>2007-12-21T13:42:53Z</dcterms:modified></item><item><title>次世代 PHS, 生き残る。</title><link>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!755.entry</link><description>&lt;div&gt;＜次世代無線＞ＫＤＤＩ、ウィルコム２陣営に免許へ…総務省&lt;/div&gt;
&lt;div&gt;&lt;a href="http://headlines.yahoo.co.jp/hl?a=20071218-00000037-mai-bus_all"&gt;http://headlines.yahoo.co.jp/hl?a=20071218-00000037-mai-bus_all&lt;/a&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;em&gt;　総務省は、屋外や高速走行中の電車、車の中からパソコンなどで高速ネットに接続できる次世代高速無線通信の免許をＫＤＤＩを中心にしたグループとＰＨＳ大手ウィルコムの２陣営に与える方向で最終調整に入った。両陣営の技術水準やエリア展開の早さを評価したとみられる。&lt;/em&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;次世代高速通信の免許２枠が、 KDDI と　ウィルコムに与えられることになるそうです。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;まず、ウィルコムに免許が与えられることについて、 PHS の死亡が免れてよかったです。&lt;/div&gt;
&lt;div&gt;W-OAM Type G への移行・次世代ＰＨＳの開発と、高速化の道が見えてきました。&lt;/div&gt;
&lt;div&gt;ここ数ヶ月純減になってしまったウィルコムですが、がんばってもらいたいです。&lt;/div&gt;
&lt;div&gt;ロックなしの安心な通信手段に将来の高速化が約束され、本当によかった。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;ウィルコムについては「当確？」のような記事が出たりして、予想通り当選になりましたが、&lt;/div&gt;
&lt;div&gt;携帯３社の争いは熾烈でした。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;今朝の日経を読んで個人的に思ったこと&lt;/div&gt;
&lt;div&gt;「適正な値段で回線を貸し出してもらえる保証はない」（孫社長）　とのこと、&lt;/div&gt;
&lt;div&gt;そんなことを言う人が回線を適正価格で貸し出してくれるわけが無いと、&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;個人的には思ってしまうのですがどうでしょう・・・&lt;/div&gt;
&lt;div&gt;もしかすると、自分で自分の首を絞めてしまったのかな。&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1929899016285799617&amp;page=RSS%3a+%e6%ac%a1%e4%b8%96%e4%bb%a3+PHS%2c+%e7%94%9f%e3%81%8d%e6%ae%8b%e3%82%8b%e3%80%82&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=prog-city.spaces.live.com&amp;amp;GT1=prog-city"&gt;</description><comments>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!755.entry#comment</comments><guid isPermaLink="true">http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!755.entry</guid><pubDate>Tue, 18 Dec 2007 11:58:53 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://prog-city.spaces.live.com/blog/cns!E5379F11D9E8BB3F!755/comments/feed.rss</wfw:commentRss><wfw:comment>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!755.entry#comment</wfw:comment><dcterms:modified>2007-12-18T11:58:53Z</dcterms:modified></item><item><title>e-typing</title><link>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!753.entry</link><description>&lt;a href="http://byfiles.storage.live.com/y1pbUeAnCNR_DGU5Uhse5TxPdj2AFR6LPY73vvYGbLIlpGYGIncVHohjg0CZgIPL_CGpd_s5RfpZu0" target="_blank"&gt;&lt;img height=165 alt="無題" src="http://byfiles.storage.live.com/y1pbUeAnCNR_DGU5Uhse5TxPdj2AFR6LPY73vvYGbLIlpGYGIncVHohjg0CZgIPL_CGpd_s5RfpZu0" width=177&gt;&lt;/a&gt;
&lt;div&gt;400いった。&lt;/div&gt;
&lt;div&gt;&lt;a href="http://www.e-typing.ne.jp/"&gt;http://www.e-typing.ne.jp/&lt;/a&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1929899016285799617&amp;page=RSS%3a+e-typing&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=prog-city.spaces.live.com&amp;amp;GT1=prog-city"&gt;</description><comments>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!753.entry#comment</comments><guid isPermaLink="true">http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!753.entry</guid><pubDate>Mon, 17 Dec 2007 12:51:02 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://prog-city.spaces.live.com/blog/cns!E5379F11D9E8BB3F!753/comments/feed.rss</wfw:commentRss><wfw:comment>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!753.entry#comment</wfw:comment><dcterms:modified>2007-12-17T12:51:02Z</dcterms:modified></item><item><title>acuo ケータイとか出ないの？</title><link>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!737.entry</link><description>&lt;div&gt;スペル違うけれど、 s を抜いてみた。&lt;/div&gt;
&lt;div&gt;そういえば、うちのおじいちゃんは、 s を複数形だと認識していたのか、あらゆる単語から s をとっていた。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;たとえば&lt;/div&gt;
&lt;div&gt;エックスボックス -&amp;gt; エックスボック&lt;/div&gt;
&lt;div&gt;マックス -&amp;gt; マック&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;とか。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;老人の口から XBox などという言葉が出てきたその時、テレビというもののすごさを思い知らされた。&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1929899016285799617&amp;page=RSS%3a+acuo+%e3%82%b1%e3%83%bc%e3%82%bf%e3%82%a4%e3%81%a8%e3%81%8b%e5%87%ba%e3%81%aa%e3%81%84%e3%81%ae%ef%bc%9f&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=prog-city.spaces.live.com&amp;amp;GT1=prog-city"&gt;</description><comments>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!737.entry#comment</comments><guid isPermaLink="true">http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!737.entry</guid><pubDate>Sun, 02 Dec 2007 06:35:27 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://prog-city.spaces.live.com/blog/cns!E5379F11D9E8BB3F!737/comments/feed.rss</wfw:commentRss><wfw:comment>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!737.entry#comment</wfw:comment><dcterms:modified>2007-12-02T06:35:27Z</dcterms:modified></item><item><title>その改造が終わったことについて</title><link>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!726.entry</link><description>&lt;div&gt;２．５日間、PHP を書き続けた。 睡眠はしっかり８時間とったけど。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;ブログのRSS を取得してタイトルによってシリーズ分けした。&lt;/div&gt;
&lt;div&gt;それをさらにソフトウェアの公開情報と統合して、最新情報をトップに表示した。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;フィードや日付表記の種類に対応できていない。&lt;/div&gt;
&lt;div&gt;書き方も汚いけれど、最初だから仕方ない。&lt;/div&gt;
&lt;div&gt;作り直せばプログラムは生まれ変わるのだけれど、一般にそういうやり方は通用しないので、自分もしばらくしない。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;ちなみに、書いた行数は５００ちょっと。&lt;/div&gt;
&lt;div&gt;１日３０００行書く人に比べると少なすぎる。&lt;/div&gt;
&lt;div&gt;論理的思考なんて最初から全くしていないのにこんな調子です。&lt;/div&gt;
&lt;div&gt;多分集中力がないからでしょう・・・。&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1929899016285799617&amp;page=RSS%3a+%e3%81%9d%e3%81%ae%e6%94%b9%e9%80%a0%e3%81%8c%e7%b5%82%e3%82%8f%e3%81%a3%e3%81%9f%e3%81%93%e3%81%a8%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=prog-city.spaces.live.com&amp;amp;GT1=prog-city"&gt;</description><comments>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!726.entry#comment</comments><guid isPermaLink="true">http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!726.entry</guid><pubDate>Sat, 24 Nov 2007 06:04:16 GMT</pubDate><slash:comments>2</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://prog-city.spaces.live.com/blog/cns!E5379F11D9E8BB3F!726/comments/feed.rss</wfw:commentRss><wfw:comment>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!726.entry#comment</wfw:comment><dcterms:modified>2007-11-24T06:04:16Z</dcterms:modified></item><item><title>ブログと日記の違い</title><link>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!725.entry</link><description>&lt;div&gt;
&lt;div&gt;話していて、ブログ ＝ 日記＋トラバ という、何気ない認識が、それだけではないことを知った。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;語源からすれば、 weB LOG なので、 ウェブのログを書くものであり、個人の日記ではない。 ブログがたまたま日記としても便利な機能を 数多く備えていたことから、現在の使われかたに至っているということらしい。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;普段何気なく使っている言葉も、分解して考えてみると新たな発見があるのですね。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;見苦しい記事が続きましたが、これは programming_city の改造のためです。&lt;/div&gt;
&lt;div&gt;programming_cjity というカテゴリの記事は、&lt;a href="http://prog-city.no-ip.info/"&gt;http://prog-city.no-ip.info/&lt;/a&gt; にで、シリーズごとにまとめて表示されます。&lt;/div&gt;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1929899016285799617&amp;page=RSS%3a+%e3%83%96%e3%83%ad%e3%82%b0%e3%81%a8%e6%97%a5%e8%a8%98%e3%81%ae%e9%81%95%e3%81%84&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=prog-city.spaces.live.com&amp;amp;GT1=prog-city"&gt;</description><comments>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!725.entry#comment</comments><guid isPermaLink="true">http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!725.entry</guid><pubDate>Sat, 24 Nov 2007 01:31:55 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://prog-city.spaces.live.com/blog/cns!E5379F11D9E8BB3F!725/comments/feed.rss</wfw:commentRss><wfw:comment>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!725.entry#comment</wfw:comment><dcterms:modified>2007-11-24T01:31:55Z</dcterms:modified></item><item><title>HSP でクイズ(7) とりあえず完成</title><link>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!715.entry</link><description>&lt;div&gt;最後に、点数の区分によって、違った文章を表示するようにします。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;２０点ごとに、５つの文章を用意します。&lt;/div&gt;
&lt;div&gt;２次元配列を使うと、複数の文字列をまとめて扱えます。&lt;/div&gt;
&lt;div&gt;２次元配列も sdim 命令で作成します。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;strong&gt;sdim comment, 100, 5&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;100文字の要素が5つ分ある配列を作ります。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;これに、５つのコメントをあらかじめ入れてしまいます。&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;comment(0) = &amp;quot;思った選択肢以外を選びましょう&amp;quot;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;comment(1) = &amp;quot;これはひどい&amp;quot;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;comment(2) = &amp;quot;残念&amp;quot;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;comment(3) = &amp;quot;まあまあ&amp;quot;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;comment(4) = &amp;quot;すばらしい&amp;quot;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;comment(5) = &amp;quot;おめでとう&amp;quot;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;&lt;/strong&gt; &lt;/div&gt;
&lt;div&gt;上から、0～19, 20～39, 40～59, 60～79, 80～99, 100 点の時のコメントです。&lt;/div&gt;
&lt;div&gt;これを、 mes comment(x) のような形で表示します。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;機能は一通り完成しました。&lt;/div&gt;
&lt;div&gt;あとは、ウィンドウのタイトルを &amp;quot;クイズ&amp;quot; に変えて、exe を作ります。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;プログラムの始めに、&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;title &amp;quot;クイズ&amp;quot;　&lt;/strong&gt;と書きます。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;exe を作る方法&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;コンパイルか、コンパイル+実行する
&lt;li&gt;start.ax を作成する
&lt;li&gt;[ツール]-[PACKFILE編集] を開き、 start.ax を右側に入れる
&lt;li&gt;[ツール]-[exe作成] を選択する&lt;/ol&gt;
&lt;div&gt;
&lt;hr&gt;
&lt;/div&gt;
&lt;div&gt;&lt;strong&gt; pos 320,10&lt;br&gt; mes &amp;quot;結果発表&amp;quot;&lt;/strong&gt;&lt;/div&gt;&lt;strong&gt;
&lt;div&gt;&lt;br&gt; ten = right * 100 / nData&lt;br&gt; mes &amp;quot;あなたの点数：&amp;quot;+ (ten) + &amp;quot;点&amp;quot;&lt;/div&gt;
&lt;div&gt;&lt;/div&gt;&lt;/strong&gt; 
&lt;div&gt;&lt;strong&gt; sdim comment, 100, 5&lt;br&gt; comment(0) = &amp;quot;思った選択肢以外を選びましょう&amp;quot;&lt;br&gt; comment(1) = &amp;quot;これはひどい&amp;quot;&lt;br&gt; comment(2) = &amp;quot;残念&amp;quot;&lt;br&gt; comment(3) = &amp;quot;まあまあ&amp;quot;&lt;br&gt; comment(4) = &amp;quot;すばらしい&amp;quot;&lt;br&gt; comment(5) = &amp;quot;おめでとう&amp;quot;&lt;br&gt; &lt;br&gt; pos 320,50&lt;br&gt; mes comment(ten/20)&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;
&lt;hr&gt;
&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt; ソース&lt;/div&gt;
&lt;p&gt;&lt;iframe style="border-right:#dde5e9 1px solid;padding-right:0px;border-top:#dde5e9 1px solid;padding-left:0px;padding-bottom:0px;margin:3px;border-left:#dde5e9 1px solid;width:240px;padding-top:0px;border-bottom:#dde5e9 1px solid;height:66px;background-color:#ffffff" marginwidth=0 marginheight=0 src="http://cid-e5379f11d9e8bb3f.skydrive.live.com/embedrowdetail.aspx/Public/test.hsp" frameborder=0 scrolling=no&gt;&lt;/iframe&gt;
&lt;p&gt;実行可能ファイル　+ ソース + 問題データ&lt;br&gt;&lt;iframe style="border-right:#dde5e9 1px solid;padding-right:0px;border-top:#dde5e9 1px solid;padding-left:0px;padding-bottom:0px;margin:3px;border-left:#dde5e9 1px solid;width:240px;padding-top:0px;border-bottom:#dde5e9 1px solid;height:66px;background-color:#ffffff" marginwidth=0 marginheight=0 src="http://cid-e5379f11d9e8bb3f.skydrive.live.com/embedrowdetail.aspx/Public/quiz.zip" frameborder=0 scrolling=no&gt;&lt;/iframe&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1929899016285799617&amp;page=RSS%3a+HSP+%e3%81%a7%e3%82%af%e3%82%a4%e3%82%ba(7)+%e3%81%a8%e3%82%8a%e3%81%82%e3%81%88%e3%81%9a%e5%ae%8c%e6%88%90&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=prog-city.spaces.live.com&amp;amp;GT1=prog-city"&gt;</description><comments>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!715.entry#comment</comments><guid isPermaLink="true">http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!715.entry</guid><pubDate>Fri, 16 Nov 2007 22:55:10 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://prog-city.spaces.live.com/blog/cns!E5379F11D9E8BB3F!715/comments/feed.rss</wfw:commentRss><wfw:comment>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!715.entry#comment</wfw:comment><dcterms:modified>2007-11-16T23:37:36Z</dcterms:modified></item><item><title>HSP でクイズ(6)</title><link>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!711.entry</link><description>&lt;div&gt;成績表示画面を作りましょう。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;これまでは、全ての問題を回答すると、プログラムが終了してしまいましたが、これを成績発表処理に飛ぶように変更します。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;strong&gt;    if q_cnt = nData : end ; 問題数に達したら終了&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;この行により、今までは終了してしまっていました。この end 命令を　goto 命令に置き換え、新たな処理へと飛ばします。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;strong&gt;    if q_cnt = nData : goto *score ; 問題数に達したら終了&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;&lt;em&gt;・・・ 一番下へ&lt;/em&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;*score&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;    ; ここで何かを表示&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;    stop&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;&lt;/strong&gt; &lt;/div&gt;
&lt;div&gt;&lt;strong&gt;&lt;/strong&gt; &lt;/div&gt;
&lt;div&gt;成績表示画面に切り替えるために、今までの画面をクリアします。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;strong&gt;cls&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;これで、画面は真っ白になります。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;
&lt;hr&gt;
&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;画面はこんな感じにしようと思います。&lt;/div&gt;
&lt;div&gt;&lt;a href="http://byfiles.storage.live.com/y1pbUeAnCNR_DGMv98f0Cjj0GTeiCMuq6WME5qkb4zkG7kea8jwPSjvY-DO6u3mrh88W10qJ0fxR4E" target="_blank"&gt;&lt;img style="width:437px;height:369px" height=200 alt="無題" src="http://byfiles.storage.live.com/y1pbUeAnCNR_DGMv98f0Cjj0GTeiCMuq6WME5qkb4zkG7kea8jwPSjvY-DO6u3mrh88W10qJ0fxR4E" width=253&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;問題数が増加したときのため、メッセージボックス内に結果を表示するようにします。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;メッセージボックスを作るのは &lt;strong&gt;mesbox &lt;/strong&gt;命令です。&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;mesbox &lt;em&gt;表示する文字列変数, xサイズ, yサイズ&lt;/em&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;mesbox 命令には、表示する文字列を指定するので、まずはその文字列を作る必要があります。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;地道にループして、文字列を作っていきます。&lt;/div&gt;
&lt;div&gt;ループは repeat ～ loop で、 &lt;strong&gt;repeat&lt;/strong&gt; &lt;strong&gt;&lt;em&gt;繰り返す回数 &lt;/em&gt;&lt;/strong&gt;のように書きます。&lt;/div&gt;
&lt;div&gt;ループの内部では、 cnt という変数が使え、繰り返すごとに0, 1, 2, 3, 4 と増えます。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;scorebuf という変数を用意し、 念のためsdim で 1000文字分の長さを確保しておきます。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;ループしながら、各問いの結果を連結していきます。文字列を連結するには&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;scorebuf += &amp;quot;hello&amp;quot;&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;のように書きます。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;そして、文字列を作っていく中で、正解・不正解を判定し、 ○×をつけ、その数をカウントし、点数を算出します。 問題データの正解が書かれた行を取り出して比較しますが、そのデータは文字列なので、比較可能な数値型に変換します。&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;int(&lt;em&gt;文字列 &lt;/em&gt;)&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;
&lt;hr&gt;
&lt;/div&gt;
&lt;table style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:medium none;border-collapse:collapse" cellspacing=0 cellpadding=0 border=1&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="border-right:windowtext 1pt solid;padding-right:5.4pt;border-top:windowtext 1pt solid;padding-left:5.4pt;padding-bottom:0mm;border-left:windowtext 1pt solid;width:435.1pt;padding-top:0mm;border-bottom:windowtext 1pt solid;background-color:transparent" valign=top width=580&gt;
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#000000"&gt;*score&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#000000"&gt;&lt;span&gt;          &lt;/span&gt;cls&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#000000"&gt;&lt;span&gt;          &lt;/span&gt;sdim scorebuf, 1000&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#000000"&gt;&lt;span&gt;          &lt;/span&gt;scorebuf = &amp;quot;&amp;quot;&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#000000"&gt;&lt;span&gt;          &lt;/span&gt;;結果集計&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#000000"&gt;&lt;span&gt;          &lt;/span&gt;right = 0&lt;span&gt; &lt;/span&gt;; 正解をカウントします&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#c0504d"&gt;&lt;span&gt;          &lt;/span&gt;repeat nData&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#c0504d"&gt;&lt;span&gt;                   &lt;/span&gt;scorebuf += &amp;quot;第&amp;quot;+cnt+&amp;quot;問\t&amp;quot;&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#c0504d"&gt; &lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#c0504d"&gt;&lt;span&gt;                   &lt;/span&gt;;正解の判定&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#c0504d"&gt;&lt;span&gt;                   &lt;/span&gt;noteget tmp, cnt*6+5&lt;span&gt;         &lt;/span&gt;;正解が書かれた行を取り出す&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#c0504d"&gt;&lt;span&gt;                   &lt;/span&gt;if int(tmp) = log(cnt){ ;正解なら&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#c0504d"&gt;&lt;span&gt;                             &lt;/span&gt;scorebuf += &amp;quot;○&lt;span&gt;  &lt;/span&gt;&amp;quot;&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#c0504d"&gt;&lt;span&gt;                             &lt;/span&gt;right ++&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#c0504d"&gt;&lt;span&gt;                   &lt;/span&gt;}else{&lt;span&gt;                                          &lt;/span&gt;;間違いなら&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#c0504d"&gt;&lt;span&gt;          &lt;/span&gt;&lt;span&gt;                   &lt;/span&gt;scorebuf += &amp;quot;×&lt;span&gt;  &lt;/span&gt;&amp;quot;&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#c0504d"&gt;&lt;span&gt;                   &lt;/span&gt;}&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#c0504d"&gt; &lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#c0504d"&gt;&lt;span&gt;                   &lt;/span&gt;;あなたの答えと正答&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#c0504d"&gt;&lt;span&gt;                   &lt;/span&gt;scorebuf += &amp;quot;あなた : &amp;quot;+(log(cnt)+1)+&amp;quot;&lt;span&gt;  &lt;/span&gt;&amp;quot;&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#c0504d"&gt;&lt;span&gt;                   &lt;/span&gt;scorebuf += &amp;quot;正答 : &amp;quot;+ (int(tmp)+1) + &amp;quot;&lt;span&gt;  &lt;/span&gt;&amp;quot;&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#c0504d"&gt; &lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#c0504d"&gt;&lt;span&gt;                   &lt;/span&gt;;正答の文字列&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#c0504d"&gt;&lt;span&gt;                   &lt;/span&gt;tmpidx = cnt*6 + int(tmp) + 1&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#c0504d"&gt;&lt;span&gt;                   &lt;/span&gt;noteget tmp, tmpidx&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#c0504d"&gt;&lt;span&gt;                   &lt;/span&gt;scorebuf += &amp;quot;[ &amp;quot; + tmp + &amp;quot; ]&amp;quot;&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#c0504d"&gt;&lt;span&gt;                   &lt;/span&gt;&lt;/font&gt;&lt;/span&gt;
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#c0504d"&gt;&lt;span&gt;                   &lt;/span&gt;scorebuf += &amp;quot;\n&amp;quot;&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#c0504d"&gt;&lt;span&gt;          &lt;/span&gt;loop&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#000000"&gt;&lt;span&gt;          &lt;/span&gt;&lt;/font&gt;&lt;/span&gt;
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#000000"&gt;&lt;span&gt;          &lt;/span&gt;pos 10,10&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#000000"&gt;&lt;span&gt;          &lt;/span&gt;mesbox scorebuf, 300, 460&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#000000"&gt;&lt;span&gt;          &lt;/span&gt;pos 320,10&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#000000"&gt;&lt;span&gt;          &lt;/span&gt;mes &amp;quot;結果発表&amp;quot;&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#000000"&gt;&lt;span&gt;          &lt;/span&gt;mes &amp;quot;あなたの点数：&amp;quot;+ (right * 100 / nData) + &amp;quot;点&amp;quot;&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#000000"&gt;&lt;span&gt;          &lt;/span&gt;pos 320,50&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#000000"&gt;&lt;span&gt;          &lt;/span&gt;mes &amp;quot;おつかれさまでした&amp;quot;&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#000000"&gt; &lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US style="font-size:9pt;font-family:'ＭＳ ゴシック'"&gt;&lt;font color="#000000"&gt;&lt;span&gt;          &lt;/span&gt;stop&lt;/font&gt;&lt;/span&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;iframe style="border-right:#dde5e9 1px solid;padding-right:0px;border-top:#dde5e9 1px solid;padding-left:0px;padding-bottom:0px;margin:3px;border-left:#dde5e9 1px solid;width:240px;padding-top:0px;border-bottom:#dde5e9 1px solid;height:66px;background-color:#ffffff" marginwidth=0 marginheight=0 src="http://cid-e5379f11d9e8bb3f.skydrive.live.com/embedrowdetail.aspx/Public/test.hsp" frameborder=0 scrolling=no&gt;&lt;/iframe&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1929899016285799617&amp;page=RSS%3a+HSP+%e3%81%a7%e3%82%af%e3%82%a4%e3%82%ba(6)&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=prog-city.spaces.live.com&amp;amp;GT1=prog-city"&gt;</description><comments>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!711.entry#comment</comments><guid isPermaLink="true">http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!711.entry</guid><pubDate>Fri, 16 Nov 2007 14:51:31 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://prog-city.spaces.live.com/blog/cns!E5379F11D9E8BB3F!711/comments/feed.rss</wfw:commentRss><wfw:comment>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!711.entry#comment</wfw:comment><dcterms:modified>2007-11-16T14:55:37Z</dcterms:modified></item><item><title>HSP でクイズ(5)</title><link>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!710.entry</link><description>&lt;div&gt;回答ボタンが押されたとき、どのボタンが押されたのかを判別し、正解・不正解を記録するよう処理を書き加えていきます。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;即座に正解・不正解を表示せず、回答した選択肢の番号を記録し、全部出題したあとに結果表示することにします。 各問題の回答を記録するには、問題数分の配列を準備する必要があります。 回答番号(1-4)を入れるので、数値を入れるための配列です。&lt;/div&gt;
&lt;div&gt;数値を入れる配列を作るには、dim 命令を使います。&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;dim 配列名, 要素の数&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;この命令に、問題数である既存の nData 変数を指定すれば、配列を作ることが出来ます。&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;dim log, nData&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;また、ボタンが押され、 *a1 ～ *a4 ラベルにジャンプしたとき、選択肢の番号を配列に格納します。&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;*a1&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;    log(q_cnt) = 1&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;&lt;strong&gt;    goto *update&lt;/strong&gt;&lt;/div&gt;
&lt;div&gt;(他のラベルでも同じ事をします。）&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;これで、配列にはデータが書き込まれましたが、見ることが出来ません。&lt;/div&gt;
&lt;div&gt;そこで、debug ウィンドウというものを開いてみます。これは、変数の状態を表示したり、途中で動作を止めて、１行１行動作を確かめることが出来るものです。&lt;/div&gt;
&lt;div&gt;[HSP(&lt;u&gt;P&lt;/u&gt;)]メニューから、Debugウィンドゥ表示を選択し、スクリプトを実行します。 すると、メインのウィンドウのほかに、 Debug Window が表示されます。 問題を数問回答してから、その中の、[変数]タブを選び、チェックボックス[配列変数]をチェックします。そして、作成した配列である log を選択すると、配列の中身がどうなっているか表示されます。&lt;/div&gt;
&lt;div&gt;答えていた問題の回答が正しく記録されているでしょうか。&lt;/div&gt;
&lt;div&gt;[表示の例]&lt;/div&gt;
&lt;blockquote dir=ltr style="margin-right:0px"&gt;
&lt;div&gt;変数名:log&lt;br&gt;型:int&lt;br&gt;配列:(10,0,0,0)&lt;br&gt;モード:1&lt;br&gt;使用サイズ:40&lt;br&gt;バッファサイズ:40&lt;br&gt;内容:&lt;br&gt;1&lt;br&gt;(0)=1&lt;br&gt;(1)=1&lt;br&gt;(2)=1&lt;br&gt;(3)=2&lt;br&gt;(4)=2&lt;br&gt;(5)=0&lt;br&gt;(6)=0&lt;br&gt;(7)=0&lt;br&gt;(8)=0&lt;br&gt;(9)=0&lt;/div&gt;&lt;/blockquote&gt;
&lt;div dir=ltr&gt;今度は、これをつかって結果表示をします。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;&lt;img src="http://c.services.spaces.live.com/CollectionWebService/c.gif?cid=-1929899016285799617&amp;page=RSS%3a+HSP+%e3%81%a7%e3%82%af%e3%82%a4%e3%82%ba(5)&amp;referrer=" width="1px" height="1px" border="0" alt=""&gt;&lt;img style="position:absolute" alt="" width="0px" height="0px" src="http://c.live.com/c.gif?NC=31263&amp;amp;NA=1149&amp;amp;PI=73329&amp;amp;RF=&amp;amp;DI=3919&amp;amp;PS=85545&amp;amp;TP=prog-city.spaces.live.com&amp;amp;GT1=prog-city"&gt;</description><comments>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!710.entry#comment</comments><guid isPermaLink="true">http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!710.entry</guid><pubDate>Wed, 14 Nov 2007 23:43:50 GMT</pubDate><slash:comments>0</slash:comments><msn:type>blogentry</msn:type><live:type>blogentry</live:type><live:typelabel>Blog entry</live:typelabel><wfw:commentRss>http://prog-city.spaces.live.com/blog/cns!E5379F11D9E8BB3F!710/comments/feed.rss</wfw:commentRss><wfw:comment>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!710.entry#comment</wfw:comment><dcterms:modified>2007-11-14T23:46:04Z</dcterms:modified></item><item><title>HSP でクイズ(4)</title><link>http://prog-city.spaces.live.com/Blog/cns!E5379F11D9E8BB3F!707.entry</link><description>&lt;div&gt;
&lt;div&gt;画面を作り、問題を読み込んだので、今度は問題を表示していきます。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;問題の表示は、問題数の数だけ毎回同じ事を繰り返します。このような処理は、サブルーチンを作って、何度でも呼び出せるようにすると便利です。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;HSP には、普通の goto によるジャンプと、 サブルーチンジャンプである、gosub によるジャンプがあります。goto も gosub もラベルを指定しますが、 gosub で指定されるラベルの下には、return という命令があり、return まで処理が進むと 呼び出し元の gosub まで戻ってきます。&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;strong&gt;[例]&lt;/strong&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;    gosub *a 
&lt;li&gt;    mes &amp;quot;a&amp;quot; 
&lt;li&gt;    stop 
&lt;li&gt;  
&lt;li&gt;*a 
&lt;li&gt;    mes &amp;quot;b&amp;quot; 
&lt;li&gt;    return&lt;/ol&gt;
&lt;p&gt;この場合、1, 5, 6, 7, 2, 3 の順番に処理が進みます。 
&lt;p&gt;
&lt;hr&gt;

&lt;p&gt;
&lt;p&gt;*q_show というラベルを、問題の表示を更新するための サブルーチンとして書いてみます。　このサブルーチンでは、 問題を画面上に表示し、４択ボタンに表示される文字を書き換えます。 何番目の問題に書き換えるかは、q_cnt に格納されていることとします。gosub する前に表示したい問題番号をq_cnt にしておけば良いということです。 
&lt;p&gt;すでに表示されたボタンの状態を変更するには、objprm 命令を使います。objprm を使うには、ボタン作成時にわかるボタン固有のＩＤを変数に入れて覚えておかなければなりません。button 命令を実行し、ボタンを配置したとき、 stat という特別な変数に ボタンのID が入っています。これを、idb_1, idb_2, idb_3, idb_4 という変数を用意して覚えておくことにします。 
&lt;p&gt;objprm 命令は、 objprm &lt;em&gt;ID&lt;/em&gt;, &lt;em&gt;文字列 &lt;/em&gt;の形式で記述します。 
&lt;p&gt;[ボタン配置部分の変更]&lt;br&gt;    button &amp;quot;答え1&amp;quot;, *a1&lt;br&gt;&lt;strong&gt;    &lt;font color="#ff0000"&gt;idb_1 = stat&lt;/font&gt;&lt;/strong&gt;&lt;br&gt;&lt;em&gt;; 他のボタンも同じように書きます。&lt;/em&gt; 
&lt;p&gt;[gosub 前に準備しておく変数] 
&lt;ul&gt;
&lt;li&gt;問題データが格納され、notesel で指定済みの変数 buf 
&lt;li&gt;１行分の文字列を十分に格納可能な大きさの配列 linebuf 
&lt;li&gt;表示する問題の番号 q_cnt 
&lt;li&gt;選択肢ボタンのID idb_1, idb_2, idb_3, idb_4&lt;/ul&gt;
&lt;p&gt;
&lt;table style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:medium none;border-collapse:collapse" cellspacing=0 cellpadding=0 border=1&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="border-right:windowtext 1pt solid;padding-right:5.4pt;border-top:windowtext 1pt solid;padding-left:5.4pt;padding-bottom:0mm;border-left:windowtext 1pt solid;width:435.1pt;padding-top:0mm;border-bottom:windowtext 1pt solid;background-color:transparent" valign=top width=580&gt;
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US&gt;&lt;font face="Courier New" color="#000000" size=2&gt;&lt;/font&gt;&lt;/span&gt;  
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US&gt;&lt;font face="Courier New" color="#000000" size=2&gt;*show_question&lt;/font&gt;&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face="Courier New" color="#000000" size=2&gt;&lt;br&gt;     noteget linebuf, q_cnt*6&lt;br&gt;     color 255,255,255 ;塗る色を白にして&lt;br&gt;     boxf 0,0,640,50  ;問題表示部分を白く塗り&lt;br&gt;     color 0,0,0   ;黒に戻す&lt;br&gt;     pos 10,10   ;座標10,10に&lt;br&gt;     mes linebuf   ;新しい問題を表示&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US&gt;&lt;font face="Courier New" color="#000000" size=2&gt;&lt;/font&gt;&lt;/span&gt;  
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US&gt;&lt;font face="Courier New" color="#000000" size=2&gt;     ;選択肢の行を取得,&lt;/font&gt;&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;font face="Courier New" color="#000000" size=2&gt;ボタンを書き換え&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US&gt;&lt;font face="Courier New" color="#000000" size=2&gt;     noteget linebuf, (q_cnt*6 + 1)&lt;br&gt;     objprm idb_1, linebuf&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US&gt;&lt;font face="Courier New" color="#000000" size=2&gt;     noteget linebuf, (q_cnt*6 + 2)&lt;br&gt;     objprm idb_2, linebuf&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US&gt;&lt;font face="Courier New" color="#000000" size=2&gt;     noteget linebuf, (q_cnt*6 + 3)&lt;br&gt;     objprm idb_3, linebuf&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US&gt;&lt;font face="Courier New" color="#000000" size=2&gt;     noteget linebuf, (q_cnt*6 + 4)&lt;br&gt;     objprm idb_4, linebuf&lt;br&gt;     return&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US&gt;&lt;font face="Courier New" color="#000000" size=2&gt;&lt;/font&gt;&lt;/span&gt; &lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;
&lt;hr&gt;

&lt;p&gt;
&lt;p&gt;これを踏まえ、今までのコードにこのサブルーチンへのジャンプを書き加えます。 
&lt;p&gt;[今回書いたところ] 
&lt;ul&gt;
&lt;li&gt;ボタンを識別するため、button 命令直後に、 stat の値を取得する。 
&lt;li&gt;問題表示のサブルーチン : show_question ラベル～return 
&lt;li&gt;全てのボタンを表示した後、最初の問題を表示する gosub 
&lt;li&gt;ボタンが押され、*update に飛んだところで、次の問題を表示する gosub&lt;/ul&gt;
&lt;p&gt;それと、 
&lt;ul&gt;
&lt;li&gt;問題番号 q_cnt の増加は *update でまとめて行うようにしました。&lt;/ul&gt;
&lt;p&gt;
&lt;table style="border-right:medium none;border-top:medium none;border-left:medium none;border-bottom:medium none;border-collapse:collapse" cellspacing=0 cellpadding=0 border=1&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="border-right:windowtext 1pt solid;padding-right:5.4pt;border-top:windowtext 1pt solid;padding-left:5.4pt;padding-bottom:0mm;border-left:windowtext 1pt solid;width:435.1pt;padding-top:0mm;border-bottom:windowtext 1pt solid;background-color:transparent" valign=top width=580&gt;
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;font color="#000000"&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;&lt;span lang=EN-US&gt;    ;&lt;/span&gt;&lt;span style="font-family:'ＭＳ 明朝'"&gt;問題の読み込み&lt;/span&gt;&lt;span lang=EN-US&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US&gt;&lt;font color="#000000"&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;   &lt;/span&gt;notesel buf&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US&gt;&lt;font color="#000000"&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;   &lt;/span&gt;noteload &amp;quot;question.txt&amp;quot;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US&gt;&lt;font color="#000000"&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;   &lt;/span&gt;nData =&lt;span&gt;  &lt;/span&gt;notemax / 6 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;span lang=EN-US&gt;&lt;font face="Courier New" color="#000000" size=2&gt; &lt;/font&gt;&lt;/span&gt; 
&lt;p style="margin:0mm 0mm 0pt"&gt;&lt;font color="#000000"&gt;&lt;font face="Courier New"&gt;&lt;font size=2&gt;&lt;span lang=EN-US&gt;&lt;span&gt;    &lt;/span&gt;;&lt;/span&gt;&lt;span style="font-family:'ＭＳ 明朝'"&gt;行読み込み用配列の確保&lt;/span&gt;