<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>情報処理講座－ブログとＴｗｉｔｔｅｒに記事を自動投稿したい</title>
		<link>https://mk8.work/</link>
		<description>ここは「あらかじめ用意した記事を、ブログとＴｗｉｔｔｅｒに自動投稿する」プログラムを組むための知識を身に着けることを目的にしたサイトです。</description>
		<language>ja</language>
		<pubDate>Tue, 25 Jan 2022 22:01:36 +0900</pubDate>
		<lastBuildDate>Tue, 25 Jan 2022 22:01:36 +0900</lastBuildDate>
		<item>
			<title>累乗とｎ進数</title>
			<link>https://mk8.work/nbase.html</link>
			<description><![CDATA[
累乗同じ数をいくつか掛けた場合に、掛けた個数を右肩に書いて数を表現する方法を累乗という。5 = 51　　：5の1乗数字が1個だけの場合は、1個掛けたと考える。2×2 = 22　　：2の2乗（2乗の場合だけ自乗と呼ぶこともある。）2を2個掛る3×3×3×3×3 = 35　：3の5乗3を5個掛る上でも3を5個掛るという表現にして、3を5回掛るとは書いていないことに注意。掛け算×の個数ではない。数字の個数である。こういう細かい言葉の違いが面倒くさいかもしれないが、細かい言葉の違いを間違えて覚えて訳が分からなくなる人がいるので注意して欲しい。3を5回掛けるのではなく、3を5個掛けているのである。n×n×n×…×n×n×n　 = 　nm　　：ｎのm乗ｍ個かけ合わせるnをm個かけ合わせたものをnmと書いてｎのm乗と呼ぶ。(n：実数、m：自然数)1乗、2乗（自乗）、3乗、....をまとめて累乗と呼ぶ。累乗の整数への拡張m=0の時、n0 = 1mm = 1/n-mと定義する。ｎとかｍとか1/ｎとか出てきたとたんに訳が分からなくなる人もいる。これは、ある程度の慣れが必要なので、面倒でも、何回も読んでください。【例】20 = 100 = 10は幾つかけ合わせても0だが、定義から00 = 1となる。5-2 = 1/52 = 1/25累乗の性質n：実数、m、l：自然数nm×nl = n×n×n×…×n×n×n ×n×n×n×…×n×n×n　　　　　　　　　ｍ個　　　　　　　　　　ｌ個ｎがm+l個掛けあわされているからn(m+l)nm÷nl = n(m-l)１）ｍ＞lの場合nm÷nl = n×n×n×…×n×n×n /n×n×n×…×n×n×n　　　　　　　　　ｍ個　　　　　　　　　　ｌ個ｌ個のｎが分母・分子で通分されてm-l個が分母に残る。よって、n(m-l)２）ｍ＜lの場合nm÷nl = n×n×n×…×n×n×n /n×n×n×…×n×n×n　　　　　　　　　ｍ個　　　　　　　　　　ｌ個m個のｎが分母・分子で通分されてl-m個が分母に残る。nm÷nl = 1 /n×n×n×…×n×n×n　　　　　　　　　l-m個よって、1/n(l-m) = n(m-l)３）ｍ = lの場合nm÷nl = n×n×n×…×n×n×n /n×n×n×…×n×n×n　　　　　　　　　ｍ個　　　　　　　　　　ｌ個m = l個のｎが分母・分子で通分されて1だけ残る。よって、nm÷nl = 1 = ｎ0 = n(m-l)【例】34×35 = 3（4+5） = 3952/55 = 5-3n進数0から始まり、1を加えていき、１をｎ回加えたら、次の位に桁上りが発生して、10になる数字の表現方法。ｎを基数という。普段の生活では10進数が良くつかわれる。0→+1→1→+1→2→+1→3→+1→4→+1→5→+1→6→+1→7→+1→8→+1→9→+1→100に1が10回加わると10になる。・1桁の英数字で0～（n-1）までのn通りの状態を表現・複数の英数字を並べて数を表現する。a(m-1)a(m-2)…a2a1a00～(n-1)の英数字をm個並べた状況右から1の位、nの位、nの2乗の位…nの（m-2）乗の位、nの（m-1）乗の位と呼び、a(m-1)a(m-2)…a2a1a0はa(m-1)×n(m-1)+a(m-2)×n(m-2)…+a2×n2+a1×n1+a0×n0を表す。・n倍する→全体の桁を一つ左にずらして右に0をつける。・ｎで割る（n分の一する）→全体の桁を一つ右にずらす。元の数の1の位はｎで割った余りになる。10進数2156 = 2×103+1×102+5×101+6×100 = 2000+100+50+6・1桁で0～9までの10通りの状態を表現0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21….・10倍する→全体の桁を一つ左にずらして右に0をつける。【例】10倍を→で表す5→5028→280365→3650・10で割る（10分の１する）→全体の桁を一つ右にずらす。【例】10で割るを→で表す55→5余り5121→12余り１20000→2000余り08進数3572(8) = 3×83+5×82+7×81+2×80 = 3×512+5×64+7×8+2 = 1536+448+56+2 = 2042(10)3572(8)の様に何進数かを明示的に示す場合は、数字の右下に（n）という風に表記する。・1桁で0～7までの8通りの状態を表現0,1,2,3,4,5,6,7,10,11,12,13,14,15,16,17,20,21,22,23,24,25,26,27,30….・8倍する→全体の桁を一つ左にずらして右に0をつける。【例】8倍を→で表す5→5027→280365→3650・8で割る（8分の１する）→全体の桁を一つ右にずらす。【例】8倍を→で表す365→36余り57251→725余り1160→16余り02進数10010101 = 1×27+0×26+0×25+1×24+0×23+1×22+0×21+1×20 = 128+16+4+1 = 149（10）・1桁で0～1の2通りの状態を表現0,1,10,11,100,101,110,111,1000,1001,1010,1011,1100,1101,1110,1111….・2倍する→全体の桁を一つ左にずらして右に0をつける。【例】1→10101→10101101→11010・2で割る（2分の１する）→全体の桁を一つ右にずらす。【例】101→10余り１10110→1011余り０110101→11010余り1・2進数は1の位が0なら偶数、1なら奇数16進数16進数は0から15までを一ケタで表す。ただし、9より大きい一ケタの数字はない。そこで、コンピュータの世界では10進数の10はA、10進数の11はB、10進数の12はC、10進数の13はD、10進数の14はE、10進数の15はFと書く約束にしている。16A0FB = 1×165+6×164+A×163+0×162+F×161+B×160 = 1×1677216+6×1048576+10×65536+0×4096+15×256+11×1 = 8327883（10）・1桁で0～Fまでの16通りの状態を表現0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,10,11,12,13,14,15….・16倍する→全体の桁を一つ左にずらして右に0をつける。【例】A→A0F8→F803A5F→3A5F0・16で割る（16分の１する）→全体の桁を一つ右にずらす。【例】67F→67余りF352→35余り2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2進数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8進数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10進数&nbsp;&nbsp;&nbsp;&nbsp;16進数例&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10101011&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;253&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;171&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AB10倍&nbsp;&nbsp;&nbsp;&nbsp;101010110&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2530&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1710&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AB01/ｎ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1010101&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;25&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;17&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A1/2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1010101&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;125&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;85&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;551/8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10101&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;25&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;21&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;151/16&nbsp;&nbsp;&nbsp;&nbsp;1010&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A【参考】2進数を8で割る→全体を右に3ビットずらす。元の数の下3桁が余り。2進数を16で割る→全体を右に4ビットずらす。元の数の下4桁が余り。基数の変換n進数は数値を基数nで表現したものだから、例えば2進数の1011と8進数の13と10進数の11と16進数のBは同じものである。1011(2) = 13(8) = 11(10) = B(16)n進数をm進数にすることを基数変換という。2進数↔8進数、2進数↔16進数2進数↔8進数、2進数↔16進数は簡単に変換できる。2進数→8進数【手順】①2進数で表現された数を下から3桁ずつグループ化する。（この時、先頭が2桁でない場合は0を補って3桁にする。）②3桁に対して下記を当てはめていく。000→0001→1010→2011→3100→4101→5110→6111→7（ちょうど2進数3桁が8進数1桁に対応している。）③上で計算した結果を順番に並べていく。例）10111001001110001(2)10｜111｜001｜001｜110｜001①｜ ② ｜③ ｜ ④｜ ⑤｜ ⑥⑥001→1⑤110→4+2 = 6④001→1③001→1②111→4+2+1 = 7①10→010→210111001001110001(2) = 271161(8)8進数→2進数【手順】①8進数で表現された数を下から1桁ずつ下記表で3桁の2進数として機械的に変換0→0001→0012→0103→0114→1005→1016→1107→111②上で計算した結果を順番に並べていく。例）3254167(8)3→0112→0105→1014→1001→0016→1107→1113254167(8) = 011010101100001110111(2) = 11010101100001110111(2)2進数→16進数【手順】①2進数で表現された数を下から4桁ずつグループ化する。（この時、先頭が4桁でない場合は0を補って4桁にする。）②4桁に対して、下記に従って2進数を16進数に当てはめていく。0000→00001→10010→20011→30100→40101→50110→60111→71000→81001→91010→A1011→B1100→C1101→D1110→E1111→F（ちょうど2進数4桁が16進数1桁に対応している）③上で計算した結果を順番に並べていく。例）10111001001110001(2)1｜0111｜0010｜0111｜0001①｜ ② ｜③ ｜ ④　｜ ⑤⑤0001→1④.0111→7③0010→2②0111→7①0001→110111001001110001(2) = 17271(16)16進数→2進数【手順】②16進数それぞれの桁に対して、下記に従って2進数を当てはめていく。0→00001→00012→00103→00114→01005→01016→01107→01118→10009→1001A→1010B→1011C→1100D→1101E→1110F→1111③上で計算した結果を順番に並べていく。例）AB240C(16)A→1010B→10112→00104→01000→0000C→1100AB240C(16) = 101010110010010000001100(2)ｎ進数→10進数10進数に変換するのも比較的簡単に出来る。ｎ進数の定義を思い出すと、a(m-1)a(m-2)…a2a1a00～(n-1)の英数字をm個並べんだ状況右から1の位、nの位、nの2乗の位…nの（m-2）乗の位、nの（m-1）乗の位と呼び、a(m-1)a(m-2)…a2a1a0はa(m-1)×n(m-1)+a(m-2) ×n(m-2)…+a2×n2+a1×n1+a0×n0を表す。だから、2進数→10進数20→121→222→423→824→1625→3226→6427→12828→25629→512210→1024211→2048212→4096213→8192214→16384215→32768216→65536m桁目は2(m-1)2進数の1の部分の2(m-1)を加えれば10進数になる。例）1011001011101011(2) = 32768+8192+4096+512+128+64+32+8+2+1 = 45803B2EB = 11×4096+2×256+14×16+11 = 45056+512+224+11 = 45803商と余りの関係p、q、r、dは整数とする。（ただしq≠0）ｐをｑで割った時の商をd余りをrとすると、ｐ = d×ｑ+ｒ（ただし0≦r10進数→2進数10進数を2進数に変換するのは手順自体は簡単だけれど2の割り算を行う必要があるので、少しだけ面倒。10進数αを2進数に変換する【手順】①αを２で割った商をα0、余りをγ0（ここでγ0は0か1）とする。②求める2進数の最下位の桁をγ0とする。③α0 = 0なら求める2進数はγ0（ここでα0、γ0は0か1）④α0≧1ならα0を２で割った商をα1、余りをγ1（ここでγ1は0か1）とする。⑤求める2進数の下から次の位の桁をγ1とする。⑥α1 = 0なら求める2進数はγ1γ0（ここでα1、γ1、γ0は0か1）⑦α1≧2ならα1を２で割った商をα2、余りをγ2（ここでγ2は0か1）とする。上記の⑤～⑦をα1をαi（i≧2）、γ1をγi（i≧2）で置き換えてαi = 0になるまで繰り返す。最後γm-1…γ0（m≧1）が求める2進数【例】317317/2 = 158×2+1158 = 79×2+079 = 39×2+139 = 19×2+119 = 9×2+19 = 4×2+14 = 2×2+02 = 1×2+01 = 0×2+1よって、317(16) = 100111101(2)【参考】商と余りの関係で見たように10進数α（＞2）を2で割った商をβ0、余りをγ0とするとα = β0×2+γ0（ここで、γ0は0か1）ここでβ0＞2なら、再度2で割れて商がβ1、余りがγ1とすると、β0 = β1×2+γ1（ここで、γ1は0か1）つまりα = （β1×2+γ1）×2+γ0ここで、γ0、γ1は0か1）これをまたβ1に対して考える。ここでβ1＞2なら、再度2で割れて商がβ2、余りがγ2とすると、β1 = β2×2+γ2（ここで、γ2は0か1）つまりα = （（β2×2+γ2）×2+γ1）×2+γ0ここで、γ0、γ1、γ2は0か1）これをβm = 0になるまで上のことを繰り返すと、α = （（（...（（（γｍ-1×2+γｍ-2）×2+γｍ-3+…+γ2）×2+γ1）×2+γ0 = γm-1×2m-1+γm-2×2m-2+…+γ2×22+γ1×21×γ0×20（rm-1 = １、ri（i = 0～ｍ-2）は0か1）ここでβ0、γ0はもともとのαを2で割った商と余り、βn、γnはβn-1を2で割った商と余りだった。つまり、最初だけαだけれども、あとは２で割った商をさらに２で割っていくことを繰り返していく。その都度余りを、右から並べていくと、1か0の列ができて、最後商が0になったら、そこで終わると、10進数が2進数に変換されていることになる。
			]]></description>
			<pubDate>Fri, 24 Jul 2020 12:33:48 +0900</pubDate>
			<guid isPermaLink="true">https://mk8.work/nbase.html</guid>
		</item>
		<item>
			<title>Ｔｗｉｔｔｅｒ記事自動投稿ＢＯＴツールの作成</title>
			<link>https://mk8.work/twitterbottool.html</link>
			<description><![CDATA[
Twitterに記事を自動投稿する、いわゆるBOTツールを作成していきます。世間では多くのBOTツールが無料で配布されていますが、複数行のツイートを複数指定可能で、画像も一緒にツイート可能なことが、今回のツールの一つのアピールポイントです。【概要】入門編で作成したTweet記事作成ツールで作成したファイルを読み込み、一定間隔でファイルの内容をを画像付きでTweetする。【入力】ツイート保管ファイル内のBASEで指定された名前に4桁の連番を付加したファイル名を持つファイル[例]ツイート保管フォルダ：d:\worl\kiji\tweetBASE：twwetarticleの場合は、絶対パス名d:\worl\kiji\tweet\twwetarticle0001.rtf～twwetarticle9999.rtfで示されるファイル先頭行は、画像ファイルの絶対パス名もしくはファイル名で、最大4つまで指定。【出力】設定で指定したTwitterアカウントのタイムライン上に指定した時間間隔で画像付きのツイートを表示する。ツイートした記事と画像をツールの記事表示画面に表示する【設定】１．ツイート保管フォルダのパス２．ファイルのBASE名３．画像保管フォルダのパス４．記事１行目の扱い絶対パス名による画像ファイル指定、ファイル名のみの指定、画像は設定していない（空行）５．TwitterのAPIを使ってTwitterを操作するための情報６．ツイート間隔設定項目は、保存及び読み込みを可能とする。
			]]></description>
			<pubDate>Mon, 6 Jul 2020 13:43:27 +0900</pubDate>
			<guid isPermaLink="true">https://mk8.work/twitterbottool.html</guid>
		</item>
		<item>
			<title>Ｃ＃入門　－　Ｗｉｎｄｏｗｓ　ＦｏｒｍとＣ＃の文法</title>
			<link>https://mk8.work/csharpgrammer.html</link>
			<description><![CDATA[
ここでは、C#の文法とWindows Formのコントロールについて、簡単に見て行きます。超基本的なアルゴリズムをC#で記述する方法を学んでいきます。今回は以下の様な事をプログラムしてみます。１．ボタンをクリックすると、テキストボックスに虹の色を順に設定します。また、もう一度ボタンをクリックすると元に戻します。ここでは、順次処理をC#で記述する方法を学びます。２．二つのラジオボタンのうち、片方をクリックしてオンにすると、もう片方をオフにします。判断をC#で記述する方法を学びます。３-1．３つのラジオボタンのうち一つをクリックしてオンにすると、他のラジオボタンをオフにするとともに、信号機の様に該当するラジオボタンに対応する信号を明るくします。また、テキストボックスに色を表示するとともに背景の色を変えます。３-2．上記で、テキストボックスに緑・黄・赤と入力すると、該当するラジオボタンをオンにして、他をオフにするとともに、信号機の色をセットします。分岐の処理をC#でどう表現するのかを学びます。４．startボタンを押すと、写真を一定間隔で表示します。stopを押すまで、表示を繰り返します。繰り返し処理をC#で表現する方法を学びます。Visual Studio 2019を起動して、「Windows Formアプリケーション（．Net Framework）」を選択してプロジェクトを作成します。
			]]></description>
			<pubDate>Sat, 27 Jun 2020 22:39:49 +0900</pubDate>
			<guid isPermaLink="true">https://mk8.work/csharpgrammer.html</guid>
		</item>
		<item>
			<title>Ｃ＃入門　－　ファイルの入出力とナビゲーション</title>
			<link>https://mk8.work/csharpfileio.html</link>
			<description><![CDATA[
ここでは、Twitter記事を作成するプログラムを通して、C#の文法とフィルのI/Oについて学んでいきます。今回作るプログラムは、Twitter記事を作成して、指定したフォルダ内にリッチテキスト形式のファイル（拡張子.rtf）として格納していきます。ファイルの名前は指定したBASEに4桁の数字を付加したものになります。例えば、BASEにtweetarticleと指定した場合は、tweetarticle0001.rtf、tweetarticle0002.rtf、tweetarticle0003.rtf、．．．．,tweetarticle9999.rtfという名前が付けられます。（一つのフォルダ内に999本分の記事まで作成可能です。）フォルダとファイルのBASEを指定したら、フォルダ内でBASEをファイル名の先頭に持ったファイルを検索して、既存の名前の数字の最大値+1のファイル名を自動で設定します。（ファイルがまだない場合は、上の例でいえばtweetarticle0001.rtf）そして、アプリ上に矢印のボタンを配置して、そのボタンをクリックすることで前の数字をファイル名に持つファイルを表示したり、次の数字を持つファイルを表示することを可能にします。また、一番最後のファイルを超えて、次のファイルを表示した場合は、自動で空白を表示して新しいファイルを作成する準備をします。（そして、何か記入したら、自動でファイルを作成します。）アプリの上部には4つのPictureBoxを設定して、1つの記事に最大４つの画像を指定できます。他の画像フォルダから、Drag&Dropで画像を持ってくると、指定した画像フォルダに画像を格納します。また、その画像ファイルの名前を記事ファイルの先頭1行目に,（カンマ）で区分して記入します。そしてアプリの下部にはTweetする記事を記入します。そして、半角文字やタブ・改行を１文字、全角文字を2文字として計算し、またhttpで始まるURLは23文字で計算した記事の長さを自動で計算します。（Twitterではこのうち280文字分がツイートされます。）イメージを掴むために、Visual Studio 2019のデザイン画面を作りましょう。いつもの様にVisual Studio 2019を起動して、「Windows Formアプリケーション（．Net Framework）」を選択してプロジェクトを作成します。
			]]></description>
			<pubDate>Sat, 27 Jun 2020 21:54:13 +0900</pubDate>
			<guid isPermaLink="true">https://mk8.work/csharpfileio.html</guid>
		</item>
		<item>
			<title>ブログ自動投稿ツールの作成</title>
			<link>https://mk8.work/autopost.html</link>
			<description><![CDATA[
ここでは無料ブログサービスやWordPressによるブログへの記事の自動投稿処理について記述していく。最初に断っておくと記事の自動作成ではない。予め作成した記事をブログに投稿すると言うものだ。ブログの自動投稿と言っても可能な手法が幾つかあり、ブログによってどれが可能か異なる。ここでは大きく5つの手法を書いておく。１．Atom Pubを使う方法２．XML-RPCを使う方法３．REST APIを使う方法４．メール投稿を使う方法５．WEBページを操作する方法ここでは１．から３．について簡単に見ておく。
			]]></description>
			<pubDate>Wed, 24 Jun 2020 21:42:17 +0900</pubDate>
			<guid isPermaLink="true">https://mk8.work/autopost.html</guid>
		</item>
	</channel>
</rss>
