ラベル お勉強 の投稿を表示しています。 すべての投稿を表示

初めてC++のお勉強を真面目にしたのでメモ〆

C++と言えば、Cの進化系で、やっぱオブジェクト指向が一番重要ですよね。
まず、C++を学ぶ理由は、CでGUI作るならC++で作った方がいいと言う意見と、
Cより若干情報量が多い。あとは...文字列の扱いが簡単になった??


とかですね。

って事で今回初めてC++を真面目に勉強したのでメモしておきます。
そもそもCを自分は今まで使ってたので、大体の基礎知識はありました。
なので、今回はオブジェクト指向について色々お勉強しましたよ。

入門サイトは以下のURL先です。
http://www.asahi-net.or.jp/~yf8k-kbys/newcpp0.html

そして、まず始めにビルドの方法を書いて置きます。
※Winの方法は知らん&Microsoftの便利な開発環境を使えばいい。

Macだと、Xcodeと言うアプリケーションをインストールしてくださいね。
このXcodeで実際にソース記述して実行するのもいいですが、個人的に使いにくいソフトだと思うので、普通にターミナルからビルドします。

ターミナルでは、g++コマンドでビルド出来ます。
自分てっきりCもC++も同じだと思い、gccコマンドで実行してました。

 g++ FileName                                                                                                              

以下に今回実際に書いたソースです。

 Test.cpp                                   
#include <iostream>
#include <string>
#include <stdio.h>
using namespace std;

class Fukumi
{
string name;
public:
Fukumi(string s) : name(s){}
void nosi() const{
cout<<name<<"ヾ(*´д`*)ノシ"<<endl;
}
};

int main(){
Fukumi dora("ふっくん");
printf("動作開始\n");
dora.nosi();

}


まず、一番感動したのが、[string型]がある事です。Cの場合char[]で「[~]」の中に入れる文字数を指定しないといけませんでした。

ですが、sring型はそんな指定しなくても文字が入るので、文字数を気にする事なく代入可能です。何故か[]が付いていると配列を意識してしまうので、string型がある事はとても魅力的です。

そして、classは、class Name{~};に書く様です。

暑いのでエアコンの仕組みを調べてみた。

最近ホントに暑いですね。

今日は 暑いのでミニ扇風機を分解して隅々までホコリを落としたのですが、まだ暑い....
って事で今回はエアコンの仕組みについて調べてみました。


「エアコンの仕組み」で検索した所いいサイト発見




エアコン何故冷えるのか??

私の最初のイメージとしては、エアコンで外と中の空気を巡回させて、涼しくしていると思いましたが、全く違いました。ってかそこそこ気づいてましたww

エアコンは熱のみを逃がしている様です。

熱は熱の少ない所に移動する性質がある様で、
その性質を利用して外へ逃がすみたいです。その熱を外へ逃がすには冷媒管と言うのでを使うらしいですね。皆さん一度は見た事のあるこれです。


これと同じ様なのがCPUクーラーとしても使われていますね。

大体想像付くと思いますが、説明すると、

ファン等で冷媒に暑い空気をぶつけます。すると冷媒は熱を通しやすいので、冷媒に熱が吸収されそのまま外へ、すると外の空気は冷媒より熱が少ない為、先ほどいった性質により、外の空気へ移動していきます。そうすると冷媒からは熱が消えまた部屋へ行きます。

するとまた部屋の空気の熱より冷媒の熱の方が熱が少ない為吸収されます。

この繰り返しでどんどん部屋から熱を逃がしている様です。




って事はですよ!

扇風機2台と冷媒を買ってこれば自分でクーラーを作れるわけなんですよwww



冷媒管

4,051円

Amazonより




冷媒ガス

17,000円

Amazonより




ふむ。機材があれば無理ではなさそうだ。(その前にウィンドウクーラーでよくねってなる)

もしくは、要らないPCをかき集めて冷媒を連結する方法もありますね。
何にせよとにかく冷たい物を部屋に置いたりしてもそこに熱が移動するだけで部屋が涼しくなるわけでもない事が分かりました。

なのでこれからいかに部屋の外に熱を逃がすかを考えましょう。

ネットショップを始めるなら

今回ローカルサーバー上で試しに"EC-CUBE"をインストールしてみました。
このEC-CUBEは何なのかと言うと、ネットショップを構築出来るシステムです。

機能もよく、独自で制作した商品等を出品するのもいいですね。

個人的に興味深いCMSなので、システム自体の解析をしてアルゴリズムを盗みたいと思います。w




こういった系統のオープンソースはホント魅力的ですよね。
私の知識・技術のほとんどがオープンソースのおかげです。
WordPressのアルゴリズムも参考になるし、OpenPNEにもお世話になりました。


っで今回まず、このシステムの魅力を説明します。


管理画面home


これは管理画面ホームのスクリーンショットです。この画面でも既に色々な情報が表示されていますね。

個人的にUIは何かヘタレですが、十分だと思います。

[システム情報]->[詳細]のリンクではPHPの詳細情報を閲覧可能です。

開発者であれば必要な情報ですね。





デザインの設定も可能です。
レイアウト設定ではコンテンツの配置を自由に変更可能で、[テンプレート追加]ではダウンロードしたテンプレートをセッティング出来る様です。

この際自分もテンプレートの制作のお勉強をして現在ある依頼をチャチャっと終わらせようかと思っています。

また、自分の参加しているグループでの利用も検討していて、自分らの力を合わせれば原型をとどめないぐらいカスタマイズ出来るかと期待しています。




お決まりあのファイル


このファイルでは見て分かるとおり、MySQLのテーブル設定のクエリが記述されています。

って事はどこかのファイルにクエリをSQLに渡す処理があると言う事。

これも実に参考になる情報だ。
クエリ文も参考になるから得だらけだwww








ダウンロードコンテンツの販売も可能らしい。

ソフト作成方法

※タイトルはいかにもPC初心者が検索しそうなワードです。

今回はパソコン初心者または今までプログラミングと言うのに無縁の方を対象に、
ソフトウェアの作成どの様な物なのかを説明して行きます。

本気でこの道に進みたい方の手助けになれば幸いです。




ソフトウェア作成手順



  1. 計画(妄想)
  2. プログラミング
  3. ビルド&デバッグ
  4. 完成

上記リストの様に至って簡単な手順です。

多分昔の自分だと、「プログラミング」と言う単語がある時点で他のページを探すでしょう。
ただ1つ言うと、ソフトウェアの作成にはプログラミングの知識は必要不可欠なので、
プログラミングをこの際覚えるといいでしょう。


プログラミング言語とは?


プログラミング言語とは、人間コンピューターが唯一会話の出来る言葉の事です。

機械は人間の言葉は一切理解出来ません。(※Siri例外)
ですが、唯一人間と機械の共通語として会話が出来る言語がプログラミング言語です。

っと言う事は、プログラミングを勉強すれば、機械とお話が出来るわけです。(一方的に)


ただ、プログラミング言語には幾つか種類があります。

言語ごとにメリットデメリットがあるのですが、それらは後から考えましょう。

今回はあの有名なC言語ちゃんを使って機械とお話をしましょう。




その前に、



開発環境とはプログラミングを作成・実行するのに必要な環境の事です。
私は、「Microsoft VisualStudio」と言うソフトウェアを使って開発をしています。

この環境があると前提で話を進めるのでご了承下さい。

※「Microsoft VisualStudio」を略してVSoと記述していくのでご了承下さい。



プロジェクト作成



VSoを開いたら、
[新しいプロジェクト]->[Visual C++]->[Win32]->[Win32コンソールアプリケーション]

[アプリケーション設定]->{追加オプション->[空のプロジェクト]}->[完了]

「ソースファイル右クリック」->[追加]->[新しい項目]->[C++ ファイル]->[追加]


これでプロジェクトの作成が完了です。
エディタ上に新しいタブから表示されると思います。

そこにプログラムを記述して行きます。

プログラム

※ブログの仕様上#文字列が特殊文字扱いになるので、「#include <stdio.h>」は省略しますが、
本来はプログラムの一番上に記述する物なのでご注意下さい。

void main(void){
 printf("hello");
}

このプログラムを実行すると、コンソールが起動し、
hello」と表示される至ってシンプルなプログラムです。

では簡単に説明しましょう。

「void main(void) {」と書かれている部分は関数定義しています。

main関数はプログラムの中で一番最初に実行されるので、基本的に、main関数内にプログラムを記述して行きます。

「printf()」と言うのは文字列を表示する関数です。(〜)の間に表示する文字列記述します。

では、ここで関数の簡単な説明をします。

関数には、引数と言うのがあります。
引数とは関数の処理に必要な情報の事で、「plus()」関数があったとします。
この関数では足し算がしたいわけです。

なので、足す値が関数には必要です。そこで引数と言う物を使います。
「plus(1, 2)」この様に引数で1と2を渡す事で、
関数は1と2を足して3と言う結果を出す事が出来るわけです。

引数は「,」で区切る事が出来ます。


ここではコンピューターとお話をしました。

お次は、「Arduino」とC言語ちゃんで会話しましょうか。




Arduino」へのプログラム書き込みやArduinoの準備を直ぐに出来ないでしょうから、詳細は省略。


int led_pin = 13;

void setup(){
  pinMode(led_pin, OUTPUT); 
}

void loop(){
  digitalWrite(led_pin, LOW);
  delay(200);
  digitalWrite(led_pin, HIGH);
  delay(200); 
}


PICにこのプログラムを書き込んだら、13番ピンにLEDの+
GNDに-を刺すとLEDが点滅します。



この様にしてプログラミングが出来ればソフトウェアだけではなく、
デバイスの制御・操作も可能になります。



是非プログラミングに興味のある方は試してみて下さい。

PHPでMySQLのテーブルを複数作成する方法

最近とある依頼が沢山あり、作業を猛スピードで勧めているのですが、
依頼自体が結構大規模で嘔吐寸前のふっくんです。


今回は、ショップ用CMSの開発時に汎用性かつ簡単に誰でも使えるCMSを作成しなくてはいけなくて、今回初めてPHPを使いMySQLのテーブルを複数作成しました。

(今回がMySQLに初めて触れたんです。)




今回の記事ではWebMatrixを利用した開発になります。
WebMatrixをお持ちでなくてもPHPとMySQLが利用出来る方は今回の対象内に入ります。

以前「WebMatrixでMySQL接続」と言う記事を書いたので、WebMatrixをお持ちの方はその記事を始めにお読みになると理解しやすいかと思います。



  • PHPの基礎知識のある方
  • MySQL存在を知っている方
  • 自己解決出来る方
  • ロリコンの方

上記4項目に当てはまる方は対象です。



まず始めに私は知っている情報だけを元にソースを書いてみたのですが、
エラーしか出ん........

[教えて!? プログラミング のPost]


始めは質問しても全然回答が来ないので、ハングアウトにて、
+竹内史 に質問してみた所、PDOと言う物を教えてもらいました。


Q「PDOとはなんぞや!?」っと思う方の為説明します。

PDOとは、PHPでデータベース操作する時に便利なクラス?で、newでオブジェクト化?して利用する事が出来ます。〇(多分そんな感じだと思う。)

大体のデータベースに対応していて、今まで使っていたデータベースを他のデータベースに切り替える時も大規模な変更を行わなくても大丈夫な物です。

PHP公式サイトでもmysql_系の関数は将来的に消えるとの報告があるので、
PDOを使う事をお勧めします。


っで話の戻るのですが、まずテーブルを作るクエリから紹介します。


CREATE TABLE table_name (id int(11) auto_increment,Column_name CHAR(15),mail CHAR(100),PRIMARY KEY  (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8;

上記のクエリ文をご覧下さい。
この文でデータベースにテーブルを作成します。

[table_name]この部分では作成するテーブル名を指定します。
[Column_name]では、カラム名を指定します。

id int(11)と言う部分も同じです。

カラムの設定ではデータ型の指定は必須です。


PRIMARY KEY  (`id`)

これはIDを指定しています。



今回やる事はこのクエリ文を「.sql」拡張子で保存し、それをPHPで全ての文を実行すると言う至って簡単な事です。


require_once 'database_access00.php';


$dbn = new PDO(ACCESS_TEXT, USER_NAME, PASSWORD);
$dbn -> query('SET NAMES UTF-8');


$fopens = fopen("ファイル名.sql", "r");
$i = 0;
while(!feof($fopens)){
    $fprint = fgets($fopens);
    $dbn -> query($fprint);
   $i++;
}

//footer
$stmt -> execute();
$dbn = NULL;




大体ソースを見れば分かるでしょう。
普通にrモードでファイルを開き1行ずつquery()で処理しています。
これでテーブルの作成は完了です。

初めてC言語でWinAPIを使ってウィンドウを作成した。

今回初めてC言語を使ってWindowsFormを作成したので、記録として残しておきます。

私も完全に理解しているわけでもなく確実にここに載っている情報が確かとは言えませんのでご了承下さい。また、間違っている箇所等間違った理解等があった場合コメントにて指摘して下さいますようよろしくお願い致します






今回の学習の参考にさせて頂いたサイトは以下のURLのサイトです。

Win32 API 階梯 - C による GUI アプリケーション開発




ではまず、ウィンドウ自体の作成方法なのですが、流石C言語です。
ウィンドウを作成するだけでも相当なコード量になります。

その前にプロジェクトから作成しましょう。

開発環境は「Microsoft VisualStudio」で行います。

まず、「新しいプロジェクト」をクリックし、
[Visual C++] -> [Win32] -> [Win32 プロジェクト] -> [OK]


[アプリケーションの設定] -> [空のプロジェクト] -> [完了]


補足:アプリケーション種類はコンソールアプリケーションではなく、Windowsアプリケーションです。




次に、ソースファイルの作成を行います。
[ソリューションエクスプローラー] -> [ソースファイル右クリック] -> [追加] -> [新しい項目]
-> [Visual C++] -> [C++ファイル(.cpp)]

これでソースファイルの準備が完了です。

後はコードを書くだけです。



手始めに以下のソースを書いてみましょう。

#include 


//プロトタイプ宣言
LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);


int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
				   LPSTR lpszCmdLine, int nCmdShow)
{
	TCHAR szAppName[] = TEXT("testApp");
	WNDCLASS wc;
	HWND hwnd;
	MSG msg;

	//ウィンドウクラス属性設定

	wc.style			= CS_HREDRAW | CS_VREDRAW;					//スタイル
	wc.lpfnWndProc		= WndProc;									//ウィンドウプロジャ
	wc.cbClsExtra		= 0;										//追加領域
	wc.cbWndExtra		= 0;										//追加領域
	wc.hInstance		= hInstance;								//インスタンスハンドル
	wc.hIcon			= LoadIcon(NULL, IDI_APPLICATION);			//アイコン
	wc.hCursor			= LoadCursor(NULL, IDC_ARROW);				//カーソル
	wc.hbrBackground	= (HBRUSH) (COLOR_WINDOW + 1);				//背景
	wc.lpszMenuName		= NULL;										//メニュー名
	wc.lpszClassName	= szAppName;								//クラス名


	//ウィンドウクラス登録.
	if(!RegisterClass(&wc)) return 0;

	//ウィンドウを作成
	hwnd = CreateWindow (
		szAppName, TEXT("title"),
		WS_OVERLAPPEDWINDOW,
		CW_USEDEFAULT, CW_USEDEFAULT,
		CW_USEDEFAULT, CW_USEDEFAULT,
		NULL, NULL,
		hInstance, NULL);

	if(!hwnd) return 0;

	//ウィンドウ表示
	ShowWindow(hwnd, nCmdShow);
	UpdateWindow(hwnd);

	while(GetMessage(&msg, NULL, 0, 0) > 0){
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}

	return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam){

	HDC hdc;
	PAINTSTRUCT ps;

    switch (uMsg) {
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
    }
	return DefWindowProc(hwnd, uMsg, wParam, lParam);
}


うむ。長いですね。
一応このソースでウィンドウを表示出来ます。

では私が分かる範囲で説明をしていきます。

まず、「ウィンドウクラス属性」と言うのはウィンドウの細かい設定の様な物です。
ここで私がまず躓いた所は、「ウィンドプロジャ」です。

上記URLのサイトでは最初は、[DefWindowProc]と記載していました。
ですが、これだとタスク自体はある状態らしいです。

なので、正しくは[WndProc]です。


次に、「ウィンドウの作成」ですが、
これも各種設定の様な物ですね。

	//ウィンドウを作成
	hwnd = CreateWindow (
		szAppName, TEXT("title"),
		WS_OVERLAPPEDWINDOW,
		CW_USEDEFAULT, 
		CW_USEDEFAULT,
		100, 
		150,
		NULL, 
		NULL,
		hInstance, 
		NULL);


上記の様にすればformのサイズ等も設定出来ます。
詳しくは以下を参考に、
http://walk.wgag.net/winapi/createwnd.html#03



次に

LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam){

	HDC hdc;
	PAINTSTRUCT ps;

    switch (uMsg) {
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
    }
	return DefWindowProc(hwnd, uMsg, wParam, lParam);
}

の部分ですが、これはいわばイベントハンドラの様な物らしいです。
フォーム上で起こった出来事をPostしてそれを受け取り、その時の状況に応じてどう処理するか等を書いていきます。


ま〜私が理解した所はここぐらいですね。

始めての電子工作

今回は電子工作でいつくかの基礎知識をメモ程度で記載したいと思います。




必要な道具部品


まず電子工作を始める前に必要だと思う道具や部品を紹介します。
紹介する道具・部品等は全てAmazonで入手可能です。



ブレッドボード
Amazon価格257円

ブレッドボードは半田付けをしなくても回路を組む事が出来る手軽なボードで、動線等を差し込むだけで電気の動きを誘導出来る。

工作初心者にはとてもお勧めの商品。

線を刺すだけなので配線の変更も手軽に行える。





ジャンワイヤ
Amazon価格257〜500円

ブレッドボード上で配線するにはジャンパワイヤが必要です。このジャンパワイヤには3種類あり、始めは固いジャンパワイヤさえあれば十分です。

他にも「柔らかいジャンパワイヤ」と「柔らかいジャンパワイヤ(オス・メス)」が存在するので購入時にはよく説明を見て購入して下さい。




電池ボックス
Amazon価格158円

電子工作するならまず電源が重要です。
ブレッドボードにも刺さる様な電池ボックスを購入しましょう。

単3が2個入れば十分楽しめると思います。




抵抗コンデンサ
Amazon価格640円

よく基盤でみる部品です。最低でも抵抗がないとLEDは一瞬で死んでしまいますので、抵抗とコンデンサのセット等の購入をお勧めします。

以下のセットではLEDも付いているので始めて電子工作をするならなかなかお手頃かと思います。




その他テスター等あるとこれからの電子工作はスムーズに進みます。
テスターも1,000円ぐらいで購入出来るのでテスターの購入もお勧めします。

次にペンチ等もあると作業も楽です。固いジャンパワイヤを刺す時に結構便利です。


直流交流電源について

よく電子工作等の説明サイトで交流・直流と言う単語を見ますが、
交流と直流の違いが分からない方の為に簡単に説明します。

直流などは電池等バッテリーから出てきる電源の事を示します。交流は家の壁に付いているコンセントの事を交流といいます。交流は一定周期で周波数が変わるらしいです。これが交流と直流の違いです。ま〜単純に直流の方が扱いは楽と考えるといいでしょう。

もっと詳しく知りたい場合はWiki等を参考にしてみるといいでしょう。

初心者でも分かる様にCSS3角丸の説明

多分以下の表見たら一発で分かると思います。


角丸プロパティ 特定箇所プロパティ px指定
border-radius:
左上 border-top-left-radius:
左下 border-bottom-left-radius:
右上 border-top-right-radius:
右下 border-bottom-right-radius:
5px;





全て同じpx数の場合は「角丸プロパティ」px数を指定するだけで全ての角が角丸になります。
もし、特定の場所のみ角丸にしたい場合は「特定箇所プロパティ」で個別に指定する事により、
左上だけ角丸にするといった指定も可能です。

一覧にして全ての角を様々な角度にしたい場合は以下の様にします。


border-radius: 1px 3px 4px 2px;



  1. 左上
  2. 右上
  3. 右下
  4. 左下


角丸の全てはこれだけです。

Web開発者向けツールを比較してみた。

Web開発を行う時に特に便利な物でブラウザに標準搭載しているのが開発者向けツールです。
ブラウザごとに開発者向けツールの機能は異なります。

そこで今回はこの開発者向けツールを比較してみたいと思います。



比較対象となるブラウザは、


  1. Internet Explorer9
  2. Google Chrome
  3. Mozilla Firefox

どちらも有名なブラウザですね。この3種類のツールを比較致します。


Internet Explorer

これはWindowsをお持ちの方には馴染みのあるブラウザではないでしょうか?
Microsoftが提供している最悪のブラウザーです。

日々開発者を悩ませ続けているとても有名な物です。


多分[ Internet Explorer9 ]ぐらいから開発者向けツールが搭載されていると思います。
7あたりから私は使っていませんので詳しくは分かりませんが(・・;)





F12キーを押せば出てきます。

日本語表記でとても分かりやすい形になっています。

機能としては、
DOM Explorer コンソール デバッガー ネットワーク UIの応答 プロファイラー メモリ 
エミュレーションこの項目があります。これでも十分使えるとは思いますが、
私のPCのスペックではなかなか重くて動作しません。orz


ただ初心者向けとしては機能は十分です。


Google Chrome

私は基本このGoogle Chromeの開発者向けツールを利用しています。



機能は私が知らない様な機能もまだあるらしく、基本私が日常的に使うとしたら、
要素の幅を測ったり、余白など調べたりしていますね。

JavaScriptでの動作確認も手軽に出来るので私の中では一番いいツールだと思います。


Mozilla Firefox

私は基本このブラウザ自体は表示確認用として使っています。



このブラウザも機能が凄いです。
初めて使った時はビックリしましたね!!

レスポンシブデザインモードと言うのがあり、自由にブラウザの幅を変えて表示確認が出来ます。









各ブラウザの開発者向けツールの機能を知っていればこれから先使う事があるかもしれません。
なので知っていて損はないと私は思います。




Yahooのテキスト解析APIを使ってみた。

今回はYahooのテキストAPIを使ってみたいと思います。

まだアプリケーション登録がお済みではない方は登録をして来てください。
[アプリケーションIDを登録する]


アプリケーションIDとはAPIを使う中で一番重要なIDで、これらを使ってアプリケーションの利用制限をしている様です。1つのアプリケーションIDにつき24時間以内で50000件のリクエストが上限となっている様ですのでそれ以上に活用するのであれば2個登録しておいてエラーが返った時に2個目を使用するといった形にすればいいと思います。


GETリクエストとPOSTリクエストがあるみたいですが今回はGETリクエストでやってみましょう。

■サンプルリクエストURL:
http://jlp.yahooapis.jp/MAService/V1/parse?appid=<あなたのアプリケーションID>&results=ma,uniq&uniq_filter=9%7C10&sentence=<解析する文字列>


このURLをPHPで処理するとなると簡単に想像出来ますよね?

アプリケーションIDと文字列の所に値をPHPで設定するだけです。 ではソースは見なくても分かると思いますが分からない人の為に仮に以下のソースを作ってみました。

$app_id = '取得したアプリケーションID';
$text = $_POST['text'];

$url = 'http://jlp.yahooapis.jp/MAService/V1/parse?appid=' . $app_id . '&results=ma,uniq&uniq_filter=9%7C10&sentence=' . $text;
$xml_filedata = file_get_contents($url);
$xml_array = simplexml_load_string($xml_filedata);
print_r($xml_array);


たったこけだけのコードで一応取得出来ます。

サンプルではフォームから送信された文字列をそのまま「$url」にセットしURLを生成しています。

結果は「print_r($xml_array);」形式で表示されています。

PHPへGETで値を送る。

今回PHPの"GET"への理解が浅い方の為にGETの使い方と便利な使い方をご紹介したいと思います。


そもそもGETの使い道が分からない方は多いのではないでしょうか?(初心者に限る)
恐らく初心者さんの半分はPOSTを使って値を送っていると思います。

そこでGETとPOSTの違いを初めに紹介したいと思います。



 簡単に言うとGETとPOSTはどちらも値を送信しますが、GETは値が見えてPOSTは見えないと言う事が一番分かりやすいかと思います。次にGETはURLに直接埋め込んで送信出来てPOSTはフォームから送信されると言う事です。

 いまいちGETの使い方が分かりませんよね? 「値はフォームから送信しちゃえばいいじゃん」と言う考えを持つ方は少なくないと思います。 ですが、GETにもそれなりの使い道があって存在しています。 例えば、ブログなどでも使われています。他にもGoogleの検索にも使われています。 

 ブログで例えると、記事ごとに1つのページを作るとデータ量を無駄に大きくしてしまいますよね?でもGETでブログ記事のデータを送れば1つのphpファイルで複数の記事を表示する事が出来ます。ただGTEで送られた値を元に記事ファイルを読み込むだけなので無駄なHTMLファイルを作らなくても、すむわけです。



私のWebサイトのブログでもGETで記事ファイルを管理しています。

記事一覧ページに記事を一覧表示してリンクにはGETで記事IDを埋め込んでいます。
そのリンクをクリックしたらGETでPHPに値が送られて、送られて来た記事IDを元に記事を探して表示すると言う形をとっています。






この様にリンクに値を埋め込むにはGETを使うと便利なのです。


では一応以下に値を埋め込む例を書きます。




「ファイルパス.php?name=値」と言う形で埋め込みます。

複数の値を埋め込むには&で区切る事が出来ます。

「sample.php?id=abc&pass=12345&name=いずみん」の様に何個でも値を送る事が出来ます。

ただ上記の例の様にidやpassなどを送ってログイン出来るシステムにすると悪意のあるユーザーが簡単にidとpassを特定出来てしまいます。

GETの弱点は見える為大事な値はSESSIONやPOSTなどで扱いましょう。


■GETをPHPで受け取るサンプル

    if($_GET['sample'] !== ""){
        print 'GETで送られて来た値は' . $_GET['sample'] . 'です。';
    }else{
        print 'GETに値が存在しません。';
    }



C#で線を描画してみた。(基礎)

今回JavaScriptに続き、C#でも線を描画してみました。

描画方法は至って簡単です。
もう既にJavaScriptバージョンをお読みになった方は直ぐに分かると思います。

JavaScriptで描画してみた。





ではまずソースをご覧下さい。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 描画
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            //オブジェクトの作成
            Graphics g = this.CreateGraphics();

            //pen作成
            Pen blackPen = new Pen(Color.Red, 5);

            //lineの始点と終点
            Point Start_point1 = new Point(50, 40);
            Point End_point1 = new Point(250, 40);

            //lineを描画
            g.DrawLine(blackPen, Start_point1, End_point1);

            //penを解放
            blackPen.Dispose();
        }
    }
}





ここでは描画の基礎はJavaScript編だとして引数について教えます。

Pen blackPen = new Pen(Color.Red, 5);」では線の色と太さを設定しています。
Pen(Color.線の色, 太さ);」の様にします。

Point Start_point1 = new Point(50, 40);」は線の開始点です。JavaScriptで言う「moveTo()」です。
Point End_point1 = new Point(250, 40);」は線の終了点です。JavaScriptで言う「lineTo()」です。

これらの情報を全てまとめるのが、


g.DrawLine(blackPen, Start_point1, End_point1);


です。

g.DrawLine(色や太さ, 開始点, 終了点);


今回の方法はとてもシンプルでただformに線を描画すると言う物です。

他にも点線などの線も描けるようです。






■追記

この記事の投稿後ちょっといじったらやはりアニメーションの様な効果も出来ました。


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 描画
{
    public partial class Form1 : Form
    {
        private int sec = 1;
        private int scv = 1;
        public Form1()
        {
            InitializeComponent();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            if (sec < 90)
            {
                sec++;
                //オブジェクト作成
                Graphics g = this.CreateGraphics();

                Pen black = new Pen(Color.Red, 5);
                Point Stato = new Point(10, 10);
                Point Endo = new Point(10, sec + 0);

                g.DrawLine(black, Stato, Endo);
                black.Dispose();
            }
            else if (scv < 90)
            {
                scv++;
                //オブジェクト作成
                Graphics g = this.CreateGraphics();

                Pen black = new Pen(Color.Red, 5);
                Point Stato = new Point(10, 10);
                Point Endo = new Point(scv + 0, 10);

                g.DrawLine(black, Stato, Endo);
                black.Dispose();
            }
            else
            {
                timer1.Enabled = false;
            }
        }

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            timer1.Interval = 10;
            timer1.Enabled = true;
        }
    }
}



簡単に始められるプログラミング言語(初心者必見)

今回誰でも簡単に始められるプログラミング言語をいくつか紹介したいと考えています。
これからプログラミングを手軽に始めたいと言う方でも簡単に手を出すことが出来る言語です。
全て無料で始める事が出来て面倒な設定なども一切不要です。





知らなくてはならない知識

全てのプログラミング言語にも関係あるのですが、プログラムを実行するにはプログラムを実行する環境やライブラリが必要になります。この事を「ランタイム」と呼びます。プログラムの実行に必要な部品などがなくてはプログラムは実行出来ません。

プログラムは結局パソコンが理解出来なくては意味がありません。でもパソコンは色んな言語を理解できる様になっていません。そこで必要なのがランタイムです。このランタイムでその言語のプログラムをパソコンが理解出来る様に助けてくれるのです。

有名で最近主に使われているプログラミング言語のランタイムはパソコンを買ったときに既にインストールされていますが昔流行った言語やあまり使われていない言語は自分でランタイムをインストールする必要があるのです。


今回紹介する物のほぼ全てがランタイムごと配布しないと実行出来ない言語になります。
exe」ファイルとランタイムファイルを同梱して配布しないとダウンロードしたユーザーは実行が出来ないと言う事だけ覚えておいてください。




簡単に始められるプログラミング言語

では今回の本題に入ります。


なでしこ

最近一番簡単で始めやすい言語と言えば「なでしこ」ですね。
"なでしこ"は従来の言語の様に英語でプログラミングするのではなく、日本語でプログラミングする事が出来て英語が苦手な方でも気軽に始める事が出来ます。言語の見た目は仕様書を見ている様な感じで日本人なら理解しやすい言語です。

以下のサイトから「なでしこ」はダウンロード出来ます。

「なでしこ」公式ホームページ



TTSneo

次も同じく日本語のプログラミング言語です。こちらは「なでしこ」よりは有名ではありませんが、「なでしこ」よりフォーム部品が充実しています。なでしこよりは幅広いアプリケーションの作成が可能です。



Small Basic

こちらは英語のプログラミング言語になりますが本格的なアプリケーションも作る事が可能ですが他の有名な言語よりは簡単で始めやすいです。有名なプログラミング言語を生み出して来たMicrosoftが作成した言語ですので信用性が高いです。

小中学生でも始める事が出来る程簡単で.NETとは違い作成が見やすい開発環境です。
プロパティなども覚えやすくてプログラミングの基本を理解しやすい様になっています。
他にもコード入力中に予測変換などが出てきて命令の説明などもされるので学習向けです。

Small Basic公式サイト



Visual Basic

こちらの言語は上記で述べた言語の中で一番有名ですねプログラミクング経験者などなら誰もが知っているのではないでしょうか?

幅広いWindowsアプリケーションが作れC/C++/C#などよりも簡単なプログラミング言語です。「VS Express for Desktop」をダウンロードすれば簡単に開発環境が整います。ですが、プロパティやメソッドなど基本的な知識が必要です。

でも安心です上記の言語より有名な為入門サイトは数多くありますので学習がしやすいです。
プログラミング経験者の方なら日本語の言語より始めやすいかもしれません。





日本語の言語と英語の言語

上記では日本語と英語の2種類紹介しました。そこで日本語と英語の違いをご説明しましょう。


文法

正直言うとプログラミング経験者からすると日本語の言語は難しいです。
英語の場合英語が綺麗な並びで1つ1つの命令が分かりやすいです。それと違い日本語の場合は命令を言葉で表す為何処が命令なのか分かりにくいのです。

プログラムで繰り返しをするコードを日本語・英語両方書きます。


■なでしこ                                                

5回
   「ワン」と表示



■PHP                                                                                                    

<?php
for($i=0; $i <= 5; $i++) {
    print "「ワン」";
}
?>


ブログラミング経験をした事ない方には日本語の方がいいと思いますが、私個人的な意見では英語の方がいいと思います。日本語では変数がなく配列の繰り返し時に変数を当てはめる事が出来ません。でも英語だとちゃんと変数の宣言がある為配列処理などもスムーズに済みます。

そしてまた違うのが繰り返し処理範囲が分からないのです。"「ワン」と表示"以降が全て繰り返しされるのか全く分からないのが僕のダメだと思う意見です。




日本語と英語両方ありますがどちらを選ぶのかは貴方次第です。
本格的なプログラミングを始めたいのであれば簡単・難しい関係なしにC言語から始めましょう
ちょっと試してみたいと思うのであれば今回の記事を参考にしてもらえれば嬉しいです。

プログラミング言語の学び方

皆さん久しぶりです。
毎度このブログを見てくださってありがとうございます。

今年はブログの更新が全然出来なくてすみません。
ほぼネタ切れなもんで(´Д`;)






今回ブログラミング言語の学習方法について記事にして行きたいと思います。
「どんなプログラミング言語を始めればいいのか?」「効率のいい学習方法が無いのか?」
など思う方の参考になればと思います。





「プログラミングとはどんな世界なのか?」「プログラミングは難しいのか?」「最初はどんな言語から勉強すればいいのか?」「効率の良い学習方法は無いのか?」

プログラミングをする中で様々な疑問があると思います。
難しいと思いなかなかプログラミングに手が出せなかったり、


 でもプログラミングは実際基礎や文法を覚えれば難しいなんて思いません。
世の中に居るプログラマーは嫌でプログラミングをしている人は居ません。
何故ならば「興味があって入った世界」だからです。

 興味がなければプログラミングする出来ないでしょう。
それどプログラミングは中毒性があるのです。

プログラミングとは何なのか?

一般的にプログラミングをした事が無い方は、
「意味の分からないコードが並んでる」「怖い人のイメージがある」「自分には無縁」など、
思われるかもしれません。

1.意味の分からないコードが並んでいる

 プログラミング言語とは簡単に言うとパソコンとのコミュニケーションをする物と思えばいいです。パソコンの世界では「0,1」の世界なので私達人間では理解する事が難しい世界になるんです。ですが人間とパソコンが唯一コミュニケーションが取れるのがプログラミング言語なのです。


2.怖い人のイメージがある

 プログラミングをしている時点で怖いと思われるかもしれませんが、ただパソコンとお話をしているだけですよ♪♪


3.自分には無縁

 確かに無縁だと思いますが様々な所で皆さんの暮らしを支えています。なので少しはプログラミング言語が生まれた文化とプログラマーに感謝しましょう。今の時代身の回りにプログラミングして作られた物が沢山あります。家電製品の制御などでは「Java」と言う言語が使われています。


パソコンの歴史を辿ればプログラミングに深く興味を持つ!


 パソコンと言う物はOSと言うプログラムで動いています。OSが無いパソコンはただの鉄クズなのです。OSで代表的な物と言うとやはり「Windows」ですね他にもMacなどもあり、今の時代自作OSを作る人々も増えてきました。

そこで疑問が!

パソコンが無い時代にパソコンのOSを作るにはどうするんだ?

 自分もつい最近知った事ですが、初めてのデータは紙テープだそうです。パソコンの大事な頭脳CPUは0,1を処理します。この0,1のファイルはバイナリファイルといい、このバイナリーファイルをCPUで処理してプログラムの結果を出すのです。

 CPUは0を電気無し1を電気ありで動作します。なので、電気を流したり流さなかったりの動作をすればCPUは処理するんです。(単純に言うと)

そのバイナリーデータを昔は紙テープに穴をあけCPUに処理をさせていたんですね(´∀`*)


 詳しくは分かりませんが確かに紙テープでCPUを動かす事は出来そうです。先程0,1の世界は人間が読むのは難しい世界と言いましたが、昔の開発者は0,1を理解していたんです。




プログラミングをちょっとしてみたい!!

皆さんもここまで読みすすめて来るとそろそろプログラミングをやってみたいはず、
でもどんな言語を最初に始めたらいいのか分からない方も多いのでは?
多くのプログラミング言語の開発環境を整えるには時間や手間がかかってなかなか始めるのも難しいはずです。出来れば手間がかからなくて直ぐにプログラミングを始めたいと言う方は、

JavaScript

をやってみるといいです。
この言語はブラウザー上で動作するプログラミング言語で、手軽に始める事が出来ます。
ですが、HTMLの知識が多少必要です。

web上のプログラミング言語の、


  • PHP
  • JavaScript
  • Java
これを難しい順位で並べると、
  1. Java
  2. JavaScript
  3. PHP
になります。

何故2位の言語を勧めるのか?
それは、開発環境を整える必要がなく手軽に本格的なプログラミングが出来るからです。
phpは関数定義型言語なので文法など覚えれば1週間以内にCMSを作れる様になります。
ですが、JavaScriptはオブジェクト指向プログラミングがリアルに出来る為お勧めします。





学習方法

今回はphpの学習方法を例にして説明して行きます。
まず最初に今覚えようとしている言語で何が出来るか調べてどんな物が作れるのか知る必要があります。何が作れるか分からず勉強してしまうと、実際何を作っていいのか分からず入門書のプログラムしか作れなくなってしまいます。

次に、入門書のプログラムをそのまま書かない。ちょっとルートの外れたコードを書けばプログラミングの視野が広がります。入門書はホントに基本的な事しか書かないので視野が狭いです。時には、

    <?php
        if($i=0; $i <= 10; $i++) {
            print $i;
        }
    ?>


と書かれているのを、

    <?php
        if($i=0; $i <= 10; $i++) {
            print '現在[' . $i . ']回繰り返しました。\r\n';
        }
    ?>

みたいにアレンジする事も時には重要です。
実際プログラミングとは決められたレイアウトで作成するのではなく、自分でやりたい事を自分自信で決めて書いて行く物です。なので入門書の物をそっくりそのまま書いても意味が無い事を理解して下さい。

そんな事コピペでどうにかプログラムを作っている奴と同じなんです。



あとは学習のポイントなどは無いのですが、入門書を読み終わったら実際に作ってみたいプログラムを作りましょう。入門書に出てこなかった課題などは調べたら出てきます。時には人のプログラムを参考にして自分なりのプログラムを作っていきましょう。

※そのままコピペするのではなく実際に自分で手で打ちましょう。

php開発環境!

今回phpの勉強もちゃんと出来てるので、
自分の開発環境をお教えしたいと思います。

これからphpを学ぶ方々の参考として書きたいっと思います。


僕が開発に使用しているのが、
■Web Matrix 



このソフトは、phpの支援入力もしてくれて学習には、最適です。
基本的にphpだけで、なく色々なwebプログラムもサポートしています。

pc内にサーバーと同じ環境にしなくてもこのソフトならプレビュー可能です。
皆さんも是非使ってみて下さい。


ちなみに僕がお勧めするこのソフトの特徴は、
OpenPNEなどのオープンソースを簡単にいじれる事です。
いちいち編集してサーバーへアップロードしての時間を無くしてすぐプレビュー可能です。

phpなどのプログラムを使えたら色々なオープンソースをリアルタイムで、編集可能です。
自分も出来るだけ早くphpをいじれる様になりたいです(*´∀`*)

PHPのお勉強( ^ω^ )

今回始めてPHPの勉強をしました。

最近゜webな人の求人と言う所のメルマガで、求人情報を
見るのですが最近は、PHPを使える人を採用しているらしいです。
なので僕が就職する時に困らない様に今回多少お勉強しました。

ホント初歩的な所を勉強したのですが
やはり何かが完成するとたまらない程達成感がありますね

<?php print (htmlentities($_REQUEST["twitterid"], ENT_QUOTES)) ?>
っと言う物を使うだけでも面白い物は、色々作れます。

このプログラムは、メールフォームなど作る時に使う基本プログラムです。
($_REQUEST["twitterid"],この部分は、nameの中身の物を呼び出しています。

もしnameが、name="aqua">だった場合は、($_REQUEST["aqua"],っとなります。

簡単に言うとCSSとHTMLで、例えるとid=class=の役割っと考えてもいいかもしれません。

例えば<input type="txt" name="aqua" />にニックネームを入力
させるっとします。
そして送信を押すっとします。
送信を押すっと次のページへ飛びます。
そしたら次のページにテキストボックスに書かれたニックネームが、

書かれているっと言う事
ただそれだけのプログラムですが色々考えれば色々なな方法で、活躍するっと思います。

- Copyright © I aim to creator. - Hatsune Miku - Powered by Blogger - Designed by Johanes Djogan -