<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:atom="http://www.w3.org/2005/Atom"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://w.atwiki.jp/ura-inoue/">
    <title>裏井上ゼミ @ wiki</title>
    <link>http://w.atwiki.jp/ura-inoue/</link>
    <atom:link href="https://w.atwiki.jp/ura-inoue/rss10.xml" rel="self" type="application/rss+xml" />
    <atom:link rel="hub" href="https://pubsubhubbub.appspot.com" />
    <description>裏井上ゼミ @ wiki</description>

    <dc:language>ja</dc:language>
    <dc:date>2014-01-10T18:42:59+09:00</dc:date>
    <utime>1389346979</utime>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="https://w.atwiki.jp/ura-inoue/pages/6.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ura-inoue/pages/17.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ura-inoue/pages/16.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ura-inoue/pages/11.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ura-inoue/pages/15.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ura-inoue/pages/7.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ura-inoue/pages/14.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ura-inoue/pages/13.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ura-inoue/pages/12.html" />
                <rdf:li rdf:resource="https://w.atwiki.jp/ura-inoue/pages/10.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="https://w.atwiki.jp/ura-inoue/pages/6.html">
    <title>C</title>
    <link>https://w.atwiki.jp/ura-inoue/pages/6.html</link>
    <description>
      Cのサンプルやリファレンスはこちらのページで更新をお願いします。

※注意点
-サンプルファイルを投稿したら、説明を書いてあげましょう。
-Cで新規ページを制作したら、このページに必ずリンクを貼って下さい。


***リンクの貼り方
-上メニューから編集→ページ編集を選択
-リストボタンを押し、リストと表示されたらそのリストを編集する
-ハイパーリンクのボタンを押し、リンク名とURLを記入
-ページ保存のボタンを選択する


以下サンプル＆リファレンス掲載ページ

----
+[[C基礎知識編(随時更新)&gt;http://www59.atwiki.jp/ura-inoue/pages/11.html]](石木)
+[[線形探索(アルファベット番号)12月13日&gt;http://www59.atwiki.jp/ura-inoue/pages/8.html]](伊藤)
+[[線形探索(アルファベット番号)12月13日-2&gt;http://www59.atwiki.jp/ura-inoue/pages/9.html]](新井)
+[[12月13日個人メモ&gt;http://www59.atwiki.jp/ura-inoue/pages/10.html]](新井)
+[[文字配列(部分一致)12月20日&gt;http://www59.atwiki.jp/ura-inoue/pages/12.html]](伊藤)
+[[文字配列(部分一致)12月20日　模範？解答編&gt;http://www59.atwiki.jp/ura-inoue/pages/13.html]](石木)
+[[エイトクイーン問題【C言語】&gt;http://www59.atwiki.jp/ura-inoue/pages/17.html]](新井)    </description>
    <dc:date>2014-01-10T18:42:59+09:00</dc:date>
    <utime>1389346979</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ura-inoue/pages/17.html">
    <title>エイトクイーン問題【C言語】</title>
    <link>https://w.atwiki.jp/ura-inoue/pages/17.html</link>
    <description>
      #include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;

int num[8];   /* i行目はnum[i]列に置く */
int frag[8];  /* i行目のnum[i]列を使ったか */
int count=0;

void print_field(void){ /* 盤上表示 */
	int i,j;
	
	for(i=0; i&lt;8; i++){
		printf(&quot;|&quot;);
		for(j=1; j&lt;=8; j++){
			if(num[i]==j){
				printf(&quot;Q|&quot;);
			}
			else{
				printf(&quot; |&quot;);
			}
		}
		printf(&quot;\n&quot;);
	}
	printf(&quot;\n&quot;);
	count++;
}

void queen(int n, int k, int x, int y){ /* 順列生成 */
	int i,f,j;
	
	for(i=0;i&lt;n;++i){
		f=frag[i];
		if(f == 0){
			for(j=0; j&lt;n-k; j++){ /* 斜めの判定 */
				if(abs((i+1)-num[j])==abs(n-k-j)){
					j=-1;
					break;
				}
			}
			if(j!=-1){
				frag[i]=1;
				num[n-k] = i+1;
				if(k==1){
					if(x==0 || y==0 || num[y-1]==x)
						print_field();
				}
				else{
					queen(n,k-1,x,y);
				}
				frag[i] = 0;
			}
		}
	}
}

int main(int argc, char*argv[]){
	int i;
	int x,y;
	
	for(i=0;i&lt;8;++i){
		num[i] = frag[i] = 0;
	}
	x=0;y=0;
	if(argc==3){
		x=atoi(argv[1]);
		y=atoi(argv[2]);
		if(x&lt;0 || 8&lt;x || y&lt;0 || 8&lt;y){
			printf(&quot;error:x and y 1~8\n&quot;); 
			return 1;
		}
	}
	queen(8,8,x,y);
	printf(&quot;ans=%d\n&quot;, count);
	return 0;
}    </description>
    <dc:date>2014-01-10T18:39:31+09:00</dc:date>
    <utime>1389346771</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ura-inoue/pages/16.html">
    <title>Cの記述法について</title>
    <link>https://w.atwiki.jp/ura-inoue/pages/16.html</link>
    <description>
      **概要
以下のコードを写して実行する。
&amp;bold(){wiki編集用にスペースとか入れてるのでコピペだと（もしかしたら）動きません}
----

 　#include&lt;stdio.h&gt;
 
 　int main(void){
    
  　   printf(&quot;Hello C\n&quot;);
    　 return 0;
 
 　}

----
**解説
***#include&lt;stdio.h&gt;
 #include&lt;stdio.h&gt;
…stdio.h(スタンダードアイオー.ヘッダ)の読み込みを宣言している。（io＝IN　OUT）。asでいうimportに当たる
　&amp;bold(){関数は使用の際、「どのように動くのか」を定義する必要がある}　
　stdioの中には標準的な関数のセット（printf,scanfなど）が入っていて、読み込むことで使用できるようになる。
　cを記述する際、使用したい関数などが何をincludeするのか調べること。

***補足　#defineについて
　c言語の冒頭部分(int main(void)まで)には、「このプログラムに必要なもの」を記述するのが一般的である。
　関数を使用するために必要なinclude以外にも以下の記述をよく使用する

 #define (任意の名前)　数値
…定数の宣言（定義）である。「プログラム中に絶対に不変な数値」を任意の名前で呼び出せるようにする
　例としてはarduinoの
　
　#define LED_PIN 13

　などが定数の宣言である。&amp;bold(){この記述の後に　LED_PIN　を記述するのは13を記述するのと同じである。}
　別に必須ではないが書くと読みやすい。
----
***int main(void)
 int main(void){
   printf(&quot;Hello C&quot;);
   return 0;
 }

　…俗にメイン関数と呼ばれる部分。&amp;bold(){ここに書いてあることが実際に実行されるプログラム内容である。}
　今回は
 printf(&quot;Hellow C&quot;);

　これがプログラムの主な機能となる。&amp;bold(){なお、実装部分では一行の終わりは必ず「；」だということは覚えること}
　(正確にいえば「一つの処理」ごと)
　それ以外の

　int main(void){
    プログラムの中身
    return 0;
  }
　についてはお約束だと思えばよい
----
***まとめ
○プログラムの冒頭に#include&lt;stdio.h&gt;を書く
○int main(void){}の中にプログラムの中身を書く
----    </description>
    <dc:date>2014-01-01T00:36:59+09:00</dc:date>
    <utime>1388504219</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ura-inoue/pages/11.html">
    <title>C基礎知識</title>
    <link>https://w.atwiki.jp/ura-inoue/pages/11.html</link>
    <description>
      +[[Cの記述方法&gt;http://www59.atwiki.jp/ura-inoue/pages/16.html]]    </description>
    <dc:date>2013-12-31T20:03:25+09:00</dc:date>
    <utime>1388487805</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ura-inoue/pages/15.html">
    <title>傾けた後のコードの例(アニメーション)</title>
    <link>https://w.atwiki.jp/ura-inoue/pages/15.html</link>
    <description>
      先ほどのジャイロセンサーのコードの後にif文を突っ込むと出来るようになる。
ここから色々変えてみると面白い。
アイデア求む！

------------------------------------------------------------------------

if(y&gt;50){
		
		import flash.display.Sprite;
		import flash.display.Graphics;
		import flash.events.Event;

		// スプライトオブジェクトを作成
		var sprite:Sprite = new Sprite();

		// アプリケーションの終了処理
		// 非アクティブ状態になったときに自動終了
		stage.addEventListener(Event.DEACTIVATE, onDeactivate);
		function onDeactivate (evt:Event):void {
		NativeApplication.nativeApplication.exit();}

		
		// ステージに配置
		stage.addChild(sprite);
		
		// 矩形を描画
		var g:Graphics = sprite.graphics;
		g.lineStyle (5, 0xAA0000, 1.0);
		g.beginFill (0xFF4444, 1.0);
		g.drawRect (-20,-20,40,40);

		// スプライトの初期位置をセット
		sprite.x = 100;
		sprite.y = 50;

		// 毎フレーム実行されるイベント
		sprite.addEventListener(Event.ENTER_FRAME , function (e:Event):void{

		// スプライトの座標を加算
		sprite.y += 1;
		

		});
		
		}    </description>
    <dc:date>2013-12-27T20:04:20+09:00</dc:date>
    <utime>1388142260</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ura-inoue/pages/7.html">
    <title>Actionscript</title>
    <link>https://w.atwiki.jp/ura-inoue/pages/7.html</link>
    <description>
      Actionscriptのサンプルやリファレンスはこちらのページで更新をお願いします。

※注意点
-サンプルファイルを投稿したら、説明を書いてあげましょう。
-Actionscriptで新規ページを制作したら、このページに必ずリンクを貼って下さい。

***リンクの貼り方
-上メニューから編集→ページ編集を選択
-リストボタンを押し、リストと表示されたらそのリストを編集する
-ハイパーリンクのボタンを押し、リンク名とURLを記入
-ページ保存のボタンを選択する


以下サンプル＆リファレンス掲載ページ

----
+[[ジャイロセンサー(AIR Android)12月27日&gt;http://www59.atwiki.jp/ura-inoue/pages/14.html]](伊藤)
+[[傾けた後のコードの例(アニメーション)12月27日&gt;http://www59.atwiki.jp/ura-inoue/pages/15.html]](伊藤)    </description>
    <dc:date>2013-12-27T17:54:34+09:00</dc:date>
    <utime>1388134474</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ura-inoue/pages/14.html">
    <title>Actionscript(ジャイロセンサー)</title>
    <link>https://w.atwiki.jp/ura-inoue/pages/14.html</link>
    <description>
      import flash.sensors.Accelerometer;
import flash.geom.Vector3D;
import flash.text.TextField;
import flash.events.AccelerometerEvent;

// テキストフィールドを作成
var text_field:TextField = new TextField();
text_field.x = 10;
text_field.y = 10;
text_field.width = stage.stageWidth - 20;
text_field.height = 100;
text_field.border = true;
stage.addChild(text_field);

// 前回の加速度ベクトル
var acc_vector_old:Vector3D = new Vector3D();

// 加速度センサー利用可能
if(Accelerometer.isSupported){

	// アクセラレータオブジェクトを作成
	var accelerometer:Accelerometer = new Accelerometer();

	// 取得時間隔を変更
	accelerometer.setRequestedUpdateInterval(10);

	// 更新がある度に実行されるイベント
	accelerometer.addEventListener(AccelerometerEvent.UPDATE, function (e:AccelerometerEvent):void{

		// 今回の加速度ベクトルと前回の加速度ベクトルとの差分を計算
		var x:Number = e.accelerationX - acc_vector_old.x;
		var y:Number = e.accelerationY - acc_vector_old.y;
		var z:Number = e.accelerationZ - acc_vector_old.z;

		// 今回の加速度ベクトルを残す
		acc_vector_old.x = e.accelerationX;
		acc_vector_old.y = e.accelerationY;
		acc_vector_old.z = e.accelerationZ;

		// 加速度の変化をテキストフィールドに出力
		var str:String = &quot;&quot;;
		str += &quot;x:&quot; + x + &quot;\n&quot;;
		str += &quot;y:&quot; + y + &quot;\n&quot;;
		str += &quot;z:&quot; + z + &quot;\n&quot;;
		text_field.text = str;

	});

}    </description>
    <dc:date>2013-12-27T17:00:47+09:00</dc:date>
    <utime>1388131247</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ura-inoue/pages/13.html">
    <title>文字列操作　部分一致（strstr）</title>
    <link>https://w.atwiki.jp/ura-inoue/pages/13.html</link>
    <description>
      ***概要

前回線形探索による検索を行ったので、今回は文字列の検索(部分一致)をやってみる。
なお、&amp;bold(){String.h}に含まれる&amp;bold(){char* strstr(char* str1,char* str2)}が全く同じ挙動をする関数として用意されているが、今回は配列の練習ということで禁止にする。

関数について深く知りたかったらstrstrで各自ググること

***どんなプログラムか？
○文字列を二つ用意し、scanfなどで入力する（文字列の長さは各自で決めてよい）
○文字列1の中に文字列2が&amp;bold(){含まれていた場合}、その場所から文字列１を出力する
○含まれていなかった場合の動作は各自でよい
○stdio.h以外の読み込みは禁止

例)
文字列1　abcdefghijklmn
文字列2　fgh

出力) fghijklmn


***実装
&amp;italic(){includeがwiki内で挙動がおかしいので省略}

int main(void){
	char str[20];
	char kensaku[20];
	int roop=0;
	int roop2=0;
	
	scanf(&quot;%s&quot;,str);
	scanf(&quot;%s&quot;,kensaku);

	//まず一文字目を見つける
	for(roop=0;roop&lt;sizeof(str);roop++){
		//一文字目が見つかった
		if(str[roop]==kensaku[0]){
			//検索用文字列がある限りチェック
			while(kensaku[roop2]!=&#039;\0&#039;){
				//二文字目が違ったらやり直し
				if(str[roop+roop2]!=kensaku[roop2]){
					roop2=0;//次のために初期化して
					break;	//やり直し
				}else if(kensaku[roop2+1]!=&#039;\0&#039;){ //次がNULL＝文字は最後まで見終わったなら
					printf(&quot;%s\n&quot;,&amp;str[roop]);//ここで出してあげる
					break;
				}
				roop2++;
			}
		}
	}
	getchar();
	return 0;
}    </description>
    <dc:date>2013-12-20T23:50:42+09:00</dc:date>
    <utime>1387551042</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ura-inoue/pages/12.html">
    <title>文字配列(部分一致)</title>
    <link>https://w.atwiki.jp/ura-inoue/pages/12.html</link>
    <description>
      文字配列(部分一致)
・文字列を2つ用意する。
・文字列1の1文字目を見つけるプログラムを作る。
・それ以降の文字列1と文字列2の共通している文字列を出力する。

例：getdata1→1234567890123456789
　　getdata2→aiueo123kakikukekosasi

結果：123123

------------------------------------------------------------------------

#include &lt;stdio.h&gt;

int main(void)
{
    char getdata1[20];
    char getdata2[20];
    int i;
    int y;
    int x;
    int z;
    y=0;
    z=20;
    printf(&quot;アルファベット入力してっちょ \n&quot;);
    scanf(&quot;%s&quot; ,&amp;getdata1[0]);
    scanf(&quot;%s&quot; ,&amp;getdata2[0]);
    
    //iを20回文字列をループさせる。
    for (i =0; i &lt; 20; i++)
    {
        //ここで一致させる
        if(getdata2[i] == getdata1[y]){
            for (y = 0; y &lt; 20; y++){
                if(getdata2[i] == getdata1[y]){
                }
                    for (x=0; x &lt; z; x++){
                        if(getdata2[i+x] == getdata1[y]){
                            if(getdata2[i+x]&gt;0){
                            printf(&quot;%c&quot;,getdata2[i+x]);
                            }
                        }
                    }
            }
            break;
        }
    }


------------------------------------------------------------------------    </description>
    <dc:date>2013-12-20T20:36:05+09:00</dc:date>
    <utime>1387539365</utime>
  </item>
    <item rdf:about="https://w.atwiki.jp/ura-inoue/pages/10.html">
    <title>20131213(金) 個人メモ</title>
    <link>https://w.atwiki.jp/ura-inoue/pages/10.html</link>
    <description>
      2013年12月13日（金）　C言語

C言語では最初に使用するライブラリを宣言する
標準入出力関数を使用するためには冒頭で
#include &lt;stdio.h&gt;
を表記しなければならない
#includeは指定したヘッダを読み込んで挿入する、というもの
&lt;&gt;で囲まれたヘッダは標準ヘッダであり、stdio.hはStandard Input/Output(=標準入出力）を意味する

int:	4byte(32bitCPUの場合)の大きさの変数を定義する
	例：int a = 0;	//int型の変数aを定義した

char:	1byteの大きさの変数を定義する　charはCharacter(文字)の略で、データ型が文字型になる
	1byte文字しか扱えないので、2byte文字である日本語などは扱えない
	例；char a;	//char型の変数aを定義した

printf：ダブルクオーテーションで囲まれた部分を出力する関数
	例：printf(&quot;石木先生&quot;);	//出力結果は　石木先生

scanf：	ダブルクオーテーションで囲まれた部分に入力する関数
	下記の%を用いて、入力する形式を指定する必要がある
	例：int num = 0;	//int型の変数numを定義
	　　scanf(&quot;%d&quot;, num);	//「numに10進数の整数型で入力しなさい」という命令

%：入出力データの変換形式を指定する
	%d：Decimal System（10進数）の頭文字　10進数の整数型で入出力する
	例：int num = 1;	//int型の変数numを定義
	　　printf(&quot;%d&quot;, num);	//「numを10進数の整数型で出力しなさい」という命令、出力結果は　1

	%c：Character（文字）の頭文字　文字型で入出力する
	例：char a;		//char型の変数aを定義
	　　scanf(&quot;%c&quot;, a);	//「aに文字型で入力しなさい」という命令

for文やif文はperlと同じなので省略

Hello World:

#include &lt;stdio.h&gt;

int main(void){
	printf(&quot;Hello World!&quot;);
	return 0;
}     </description>
    <dc:date>2013-12-14T21:54:44+09:00</dc:date>
    <utime>1387025684</utime>
  </item>
  </rdf:RDF>
