- 追加された行はこの色です。
- 削除された行はこの色です。
*F700isさんによるC#チュートリアル [#n0f7c1ed]
*F700isさんによるC#チュートリアル [#a337d410]
#contents
**はじめに [#x7a08f13]
*はじめに [#idd81ac4]
-wiki書くの初めてだからいろいろと許してください><
-僕はF700isさんではないです><
**C#チュートリアル1 [#ic653dd9]
新しいプロジェクト→Windowアプリケーション→おk~
フォームが表示される~
F5または矢印で実行~
*プログラミングとは何か [#wce3cd26]
プログラミングとはコンピュータに対して命令をする事です。プログラミングを学ぶことによってコンピュータでできるものは全部作ることが出来ます。
*プログラミング言語とは何か [#pd0b363c]
コンピュータは0か1の2進数の言葉しか理解することは出来ません。これを機械語といいます。人間がこれを理解するのは限りなく難しいです。そこで人間と機械の橋渡しをしてくれるものがプログラミング言語です。丁度人間の話す言葉と機械語の中間のような存在です。
*C#の特徴 [#i065a934]
C#は先進的な文法を取り入れた比較的新しい言語です。すばやくアプリケーションを作れる事が特徴です。またCやJavaの文法に近く親しみやすく、すぐになれることができるでしょう。
*IDEの導入 [#iee08282]
プログラミングはメモ帳だけでもすることはできますが、いろいろと不便です。プログラミングするにあたって便利な道具を詰め合わせたものが開発されています。それがIDE(統合開発環境)です。C#にはVisual StudioというIDEがあります。Express Editionは無料ですので是非導入しましょう。[[プログラミング言語/C Sharp]]のページに解説があります。以下VSを前提として解説します。
*GUIアプリ編 [#b6cf50eb]
**プロジェクトをつくる [#z3c64e4b]
何か作るときはプロジェクトを作らなければいけません。作ったものはプロジェクトへ保存されます。
「ファイル」→「新しいプロジェクト」→「Windowsアプリケーション」
プロジェクト名は好きな名前を入れてください。でおk
そうするとForm1と書かれたウィンドウが出ると思います。
F5または緑の矢印ボタンまたは「デバッグ」→「デバッグで開始」でプログラムを実行できます。たったこれだけで何もしないプログラムの出来上がりです。
簡単だね☆
**C#チュートリアル2 [#a68f642e]
ツールボックスを使おう~
右側にツールボックスがなかったら表示→ツールボックスで表示しよう~
さてツールボックスからボタンをドラッグ&ドロップ 好きな位置に置こう~
**C#ツールボックスを使おう [#p4a99afe]
右側にツールボックスがなかったら「表示」→「ツールボックス」で表示しよう
さてツールボックスからボタンをドラッグ&ドロップで好きな位置に置こう
実行すると好きなだけ押せるボタンが作れるぞ!~
できたらいろんな部品をぽとぺたしよう!
**C#チュートリアル3 [#eaf8c2e2]
プロパティをいじくろう~
設置した部品を選択しよう 右下にプロパティが表示されてるかな?~
ボタンを選択したらTextのところを探して好きな文字に変更してみよう~
BackColorやFontも変えてみよう! ~
**C#チュートリアル4 [#p35ddfdd]
**プロパティをいじくろう [#ke65c07d]
イベントを作ろう~
さていきなりボタンをダブルクリックしてみよう~
いきなりテキストエディタに飛ばされるはずだ~
たぶんbutton1_clickとか書かれてると思う~
意味はそのままでボタンが押された時ここに書かれたコードが実行されるんだ~
そこに~
MessageBox.show("働け");~
と書いて実行しよう~
そうしてボタンを押すと…~
設置した部品を選択しよう 右下にプロパティが表示されてるかな?
ボタンを選択したらTextのところを探して好きな文字に変更してみよう。
BackColorやFontも変えてみよう!
**C#チュートリアル5 [#g6d72ab5]
**イベントを作ろう [#f74dfa99]
ラベルを追加しよう~
ラベルは好きな文字を表示できる部品(コントロール)だよ~
表示する文字はTextプロパティで変更できるよ~
さて実行する前は変更できるようになったね? 次はボタンを押したらラベルの内容を変更されるようにしよう~
さていきなり作ったボタンをダブルクリックしてみよう。
いきなりテキストエディタに飛ばされるはずだ。
意味はそのままでボタン(button)が押された時(Click)ここに書かれたコードが実行されるんだ。
そこに
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("働け");
}
と書いて実行しよう
そうしてボタンを押すと…
さっきMess~を書いたとこの一行下に書こう~
label1.Text = "うほっ";~
これはlabel1(ラベルの名前)のTextプロパティに"うほっ"を入れるという意味です~
文字は""で囲んであげる必要があります~
**ラベルを追加しよう [#f54a8884]
ラベルは好きな文字を表示できる部品(コントロール)です
表示する文字はTextプロパティで変更できます
さて実行する前は変更できるようになったね? 次はボタンを押したらラベルの内容を変更されるようにしよう。
さっき MessageBox.Showを書いたとこの一行下に書こう。
label1.Text = "うほっ";
これはlabel1(ラベルの名前)のTextプロパティに"うほっ"を入れるという意味です。
文字は""で囲んであげる必要があります。
=は等しいという意味ではありません 右のものを左へいれるという意味で、代入といいます~
**C#チュートリアル6 [#oa5f24c1]
*コンソール編 [#y4c9ca8b]
**エントリポイント [#k14b84a6]
ここからはプログラムの基本を学びます。そのためコンソールアプリというものを作ります。今までのようにボタンとか出てきません。真っ暗な画面に文字が表示されるだけの質素なものです。つまらないかもしれませんが大切な課程です。
コンソール篇~
ここからはプログラムの基本を学びます~
新しいプロジェクトからコンソールアプリを作りましょう~
今度はフォームが現れずにコードが表示されましたね?~
今回はフォームは使いません~
「新しいプロジェクト」から「コンソールアプリケーション」を作りましょう。
今度はフォームが現れずにコードが表示されましたね?
どんなコードが表示されてるか忘れたので憶測で書きますが~
public static void Main~~
{~
}~
があると思います ここはプログラムが実行されたとき一番最初に実行される部分です~
次からコードはこの{}の中に書いていきます
~
**C#チュートリアル7 [#bc7bada9]
画面に表示する命令はSystem.Console.WriteLine();です~
ちょっと長いですね^^ でも省略する方法があります~
それがコードスニペットです ctrl + k , xで候補がでます~
cwと打って決定するとあら不思議~
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
}
}
}
さてスニペットを使って入れたWriteLine()の()の中に表示したいものを入れましょう~
いきなり沢山書かれて戸惑うかも知れませんが一度に全て理解する必要はありません。
まずstatic void Main~の部分はエントリポイントと言ってプログラムが実行されたとき一番最初に実行される部分です。
次からコードはこの{}の中に書いていきます。
**文字を表示する [#d2c96225]
画面に表示する命令はSystem.Console.WriteLine();という命令です。
ちょっと長いですね^^ でも省略する方法があります。
それがコードスニペットです ctrl + k , xで候補がでます。
cwと打って決定するとあら不思議。(System.は無くてもかまいません)
さてスニペットを使って入れたWriteLine()の()の中に表示したいものを入れましょう。
例えば"HelloWorld!"と入れてみましょう~
さて普通に実行しても実行結果が見えない早さで閉じてしまうのでデバッグなしで実行を選びましょう~
またはShift+F5でおkです~
質素な画面ですが 我慢しましょう~
static void Main(string[] args)
{
System.Console.WriteLine("ぬるぽ");
}
さて先ほどと同様に実行しても実行結果が見えない早さで閉じてしまうので「デバッグなし」で実行を選びましょう。またはCtrl+F5でおkです。
確認したら次へ進みましょう ~
**C#チュートリアル8 [#qa91e549]
計算をする~
目の前の箱は電子計算機なんですから計算をさせてみましょう~
先ほどの()の中身を書き換えます~
**計算をする [#gab7aee2]
目の前の箱は電子計算機なんですから計算をさせてみましょう。
先ほどの()の中身を書き換えます。
計算はそのまま(3+5)や(4*5)と書けば結果が表示されます ""は文字じゃないので今回は使いません~
加減算よりも剰余算が優先されます 普通の式と一緒です~
()も使う事ができます~
WriteLine((3+5)*2)のように書けます 掛け算は省略できません~
加減算よりも剰余算が優先されます 普通の式と一緒です。
()も使う事ができます。
WriteLine((3+5)*2)のように書けます 掛け算は省略できません。
ちょっと注意なのは割り算です 記号は/です~
でも(10/3)とかやっても変な結果が出ると思いますが まあ後でやりましょう ~
**C#チュートリアル9 [#i6504ea0]
でも(10/3)とかやっても変な結果が出ると思いますが まあ後でやりましょう。
変数~
さて電卓にもメモリー機能があるようにコンピュータも情報を保存することができます~
ちなみにファイルに保存とは違います ちょっとだけ保存です~
情報を保存するには場所を確保しなければなりません この場所のことを変数といい 確保することを変数の宣言といいます~
Console.WriteLine(2+3);
Console.WriteLine(3-5);
Console.WriteLine(3*2);
Console.WriteLine(10/3); //変な結果が表示される
宣言するためには型をしていする必要があります~
型とはどんな情報であるかという種類を表しています~
例えば文字を格納する変数の型は string です~
整数を格納する変数の型は int です 整数の英語integerの略です~
**変数 [#i750bb84]
変数を確保するときはその場所に名前をつけます なまえはかぶってはいけません~
数字で始めることはできません できるだけアルファベットを使いましょう~
日本語も使えますがやめたほうがいいです~
さて電卓にもメモリー機能があるようにコンピュータも情報を保存することができます。
ちなみにファイルに保存とは違います。ちょっとだけ保存です。
情報を保存するには場所を確保しなければなりません 。の場所のことを''変数''といい 確保することを''変数の宣言''といいます。
変数の宣言は以下のようにします~
型名 変数名;~
宣言するためには型を指定する必要があります。型とはどんな情報であるかという種類を表しています。
例えば文字を格納する変数の型は string です。
整数を格納する変数の型は int です 整数の英語integerの略です。
変数を確保するときはその場所に名前をつけます 名前はかぶってはいけません。
数字で始めることはできません。できるだけアルファベットを使いましょう。
日本語も使えますがやめたほうがいいです。
変数の宣言は以下のようにします。
型名 変数名;
例えば整数を格納する変数seisuの宣言は~
int seisu;~
となります ~
**C#チュートリアル10 [#ke04dc5f]
int seisu;
となります。
変数への代入~
変数に値を入れることを代入と言います 文法は~
変数名 = 値;~
です =は等しいと言う意味ではありません~
右から左へ値を代入することを意味しています~
先ほどのseisuに10を代入しましょう~
seisu = 10;~
ちなみに先ほどのintと宣言しましたので整数以外を入れる事ができません~
seisu = 12.3;~
はエラーになります~
変数の表示~
変数の中身を表示する事もできます~
WriteLine(seisu);~
と書けば変数の中身が表示されます また~
WriteLine(seisu*seisu);~
とやることで変数を利用して計算することもできます~
WriteLine(seisu +5);~
とかももちろんできます ~
**C#チュートリアル11 [#j2f750dd]
時計の表示~
日付と時間はDateTime構造体を使えば取得できます~ 構造体が何かはひとまず置いておきましょう~
ちなみにC#の説明書みたいなのはMSDN Libraryにあります msdn DateTime などで検索すると説明が探せます~
**変数への代入 [#ud6b6ec3]
さて日付と時間を格納する変数の型はDateTimeです~
現在の時間を取得するのは以下の用にします~
DateTime jikan = DateTime.nowTime; (あってるかな?)~
表示は~
WriteLine(jikan.ToString());~
で表示できます~
実はWriteLine(jikan)では表示されません(たぶん)~
実はWriteLine()の中身は文字しか書けません てかさっきのチュートリアル間違ってたかな?~
なのでjikanを文字に直さなければいけません~
ToString()という命令は文字に変換する命令です~
変数に値を入れることを''代入''と言います。文法は
変数名 = 値;
です =は等しいと言う意味ではありません。
右から左へ値を代入することを意味しています。
先ほどのseisuに10を代入しましょう。
seisu = 10;
ちなみに先ほどのintと宣言しましたので''整数以外を入れる事ができません''。
seisu = 12.3;
はエラーになります
これで時間と日付が表示できるはずです^^ ~
**C#チュートリアル13 [#z63e0480]
**変数の表示 [#p3eefba4]
変数の中身を表示する事もできます。
Console.WriteLine(seisu);
と書けば変数の中身が表示されます また
Console.WriteLine(seisu*seisu);
とやることで変数を利用して計算することもできます
Console.WriteLine(seisu + 5);
とかももちろんできます
関数の続き~
関数は関数名()で表されます~
()がついてないものは変数ですので区別できますね~
引数は()の中に書きます どんな引数を取るかは関数によって変わります~VSなら引数の情報が自動的に表示されて便利です~
実際の使い方ですがWriteLine()という関数は文字列を引数にとります~なので使い方は~
WriteLine("働け");~
となります~
static void Main(string[] args)
{
int seisu = 10;
Console.WriteLine(seisu);
Console.WriteLine(seisu*seisu);
Console.WriteLine(seisu + 5);
}
また累乗を求める関数Math.pow()は引数に数字(double)を2つとります 書き方は~
Math.Pow(2,3);~
のように,で区切ります~
また、結果を利用するにはdouble型(少数も格納できる型)の変数を利用して~
double kotae = Math.Pow(2,3);~
とします これで2の3乗ができました ~
**C#チュートリアル13 [#a74c8106]
上記のように変数は初期化と同時に代入できます。
関数を作る~
さて今まではpublic static void Mainというところに書いていたと思いますが よく見たら()がついてますね? 実はこれも関数なんです~
Mainという関数は特別で1番最初に実行される関数です~
なので今まではMain関数を作ってきたことになります~
**時計の表示 [#e6fd3cfe]
このように自分で好きなように関数を作る事ができます 書式は~
アクセス修飾子 戻り値の型 関数名(引数のリスト){}~
です 今度はわけわからん感じですがとりあえずアクセス修飾子はひとまず置いておきましょう~
累乗を計算する関数を書いてみましょう~
double Pow(double a,double b){}~
となります 具体的な内容は次へ ~
日付と時間はDateTime構造体を使えば取得できます。構造体が何かはひとまず置いておきましょう。
ちなみにC#の説明書みたいなのはMSDN Libraryにあります msdn DateTime などで検索すると説明が探せます。(最初は読めないと思いますが慣れてくれば大丈夫です)
**C#チュートリアル14 [#qf371863]
さて日付と時間を格納する変数の型はDateTimeです。
現在の時間を取得するのは以下のようにします。
DateTime jikan = DateTime.nowTime;
DateTime.nowTimeには現在の時間が入っています。表示は
WriteLine(jikan);
で表示できます
関数定義の続き~
double Pow(double a,double b)~
まず最初のdoubleは戻り値の型を表しています~double型の結果を返す事を意味しています~
C#は慣例的に最初の一文字目は大文字で始め動詞をつけます 動作が解りやすいように名付けましょう~
()の中は引数を指定しています 何の情報が欲しいのかを書きます~
今回はdouble型が2つ欲しいので引数も2つです~
また引数は自動的に変数に入ります aとbは変数名ですね~
具体的な処理は{}の中に書きます~
{}はブロックといいます 関数の範囲を示しています~
**C#チュートリアル15 [#d993a358]
これで時間と日付が表示できるはずです^^
はじめての関数~
はじめてなので与えられた数字を倍にする関数を作りましょう~
場所はMain{}の下にしましょう~
今回はintを受け取ってintを返しましょう なので~
int bai(int a){}~
が関数の宣言部になります~
次に2倍する処理を書きます~
int kotae = a * 2;~
与えられた数字はaに入っているので2をかけて倍にします~
次に答えを返します 返すにはreturnキーワードを使います 答はkotaeに入っているので~
return kotae;
と書きます returnしたら関数は処理を終了します~
static void Main(string[] args)
{
DateTime jikan = DateTime.Now;
Console.WriteLine(jikan);
}
では作った関数をMainから使ってみましょう~
Mainの中に~
int x = bai(5);~
WriteLine(x.ToString());~
とすると10と表示されるはずです ~
**C#チュートリアル16 [#n86b01aa]
これからご飯食べに行くの巻~
さてint型変数iがあるとしよう~
これに何が入っているかわからないが1を足したい~
どういうコードを書けばいいだろうか?~
頭を働かして考えて欲しい ~~
答え~
i = i + 1~
**C#チュートリアル17 [#u85128d7]
**関数(メソッド) [#x6ec72d7]
プログラミングにおいて欠かせないもの、それが関数です。メソッドとも呼ばれます。関数はちょうど数学の関数と同じようなものです。たとえば
f(x) = x^2
という中学校でよくやったような関数があります。xに1を入れれば1、2なら4が答えになります。プログラミングにおける関数でxの事を''引数''(ひきすう)と言い、返ってくる答えを''戻り値''(返り値)といいます。
i = i + 1;はなんとなく気持ち悪いかも知れない~
さてC#はCの血が流れていて省略の美学というものがある いくつかよく使うものを紹介しよう~
i += 1;~
これは上式とまったく同じ意味です この方が見やすいかな?~
そして1を足す場合にだけはさらに特別に省略できる~
i++;~
これも同じ意味である 1を足す場合は良くあり使われるので覚えておこう~
関数は''関数名()''で表されます。
''()がついてないものは変数''ですので区別できますね。
引数は()の中に書きます どんな引数を取るかは関数によって変わります。VSなら引数の情報が自動的に表示されて便利です。
実際の使い方ですがWriteLine()という関数は文字列を引数にとります。(実際はだいたいなんでもおkなんですけど)なので使い方は
Console.WriteLine("働け");
となります
ちなみに足し算だけでなく~
i -= 1;~
i *= 1;~
なども同様にできる~
ちなみにi--もある~
また累乗を求める関数Math.pow()は引数に数字(double)を2つとります。double型は実数を格納できる型です(少数も格納できる) 書き方は
Math.Pow(2,3);
のように,で区切ります。もちろん答えが返ってきます。結果を利用するにはdouble型の変数を利用して
double kotae = Math.Pow(2,3);
とします これで2の3乗ができました
**C#チュートリアル18 [#z44c8072]
**関数を作る [#we9de9ef]
Powを作ろう~
累乗を計算する関数Powを自分で作ってみよう~
まず引数を決めよう 今回は簡単のためint型変数を2つとろう~
2.1の0.86乗とかなるとめんどくさいので 2の3乗のようにする~
返り値は整数の掛け算だから答も整数になるのでint型でいいだろう~
さて今まではstatic void Mainというところに書いていました。
よく見たら()がついてますね? 実はこれも関数なんです。
Mainという関数は特別で1番最初に実行される関数です。
なので今まではMain関数を作ってきたことになります。
これを元に関数の宣言を自分で書いてみよう~
不安な人はコードをコピペして採点してもらおう~
あと戻り値の型の前にstaticをつけてほしい~~
答~
static int Pow(int x,int y){}~
**C#チュートリアル19 [#f977e8da]
繰り返し構文~
さて累乗をするPow関数を作成しよう 引数x,yを使いxのy乗を計算する~
例えば2の3乗なら2*2*2で、単純に繰り返せばいい事がわかる~
つまり引数を使ってx*x*x…をy回やればいい事になる~
このように自分で好きなように関数を作る事ができます。書式は
アクセス修飾子 戻り値の型 関数名(引数のリスト){}
です 今度はわけわからん感じですがとりあえずアクセス修飾子はひとまず置いておきましょう(ststicがこれにあたります。)
ではこのように繰り返しを表現するにはどうすればいいのだろう?~
C#にはfor構文が用意されている これを使おう~
さて書式は~
for(初期化式;繰り返し条件;繰り返し式){}~
であるけどこれではよくわからないので単純に10回繰り返すサンプルを書いてみよう~
for(int i=0;i<10;i++){}~
まずint i=0はforが始まる前に一回だけ実行される iは慣用的に使われる名前で何回繰り返したか数えておく変数である~
i<10はこの条件が満たされている間繰り返しなさいといういみである ちなみにiが10未満という意味~
i++は一回繰り返す度に実行される 1回繰り返すとiに1足していくので数えられるだろ?~
これがfor文の基本系だ しっかり理解しよう~
ちなみに0から始めるには理由があるのでそんなもんかとおもっておこう~
さて、はじめてなので与えられた数字を倍にする関数を作りましょう。数学で表すとf(x)=2xですね。
場所はMain{}の外の下にしましょう。
今回はintを受け取ってintを返しましょう。なので
static int bai(int a){}
が関数の宣言部になります。C#は慣例的に最初の一文字目は大文字で始め動詞をつけます 動作が解りやすいように名付けましょう。
aは好きな名前をつけることができます。最初のintが戻り値の型で、()の中のintが引数の型です。関数は{で始まり}で終わります。処理は{}の中に書くようにします。(staticは気にしないで下さい。とりあえずつけておきましょう)
さて今回はy回繰り返したい 基本系をちょっと変えてy回繰り返せるようにしよう~
答~~
for(int i=0; i<y; i++){}~
**C#チュートリアル20 [#d655854f]
次に2倍する処理を書きます
int kotae = a * 2;
与えられた数字はaに入っているので2をかけて倍にします
次に答えを返します 返すには''return''キーワードを使います。答えはkotaeに入っているので
return kotae;
と書きます returnしたら関数は処理を終了します。
static int Pow(int x,int y)~
{~
int result=1;~
では作った関数をMainから使ってみましょう
Mainの中に
int x = bai(10);
Console.WriteLine(x);
とすると10と表示されるはずです。
for(int i=0;i<y;i++)~
{~
result *= x;~
}~
今回のソース
class Program
{
static void Main(string[] args)
{
int x = bai(10);
Console.WriteLine(x);
}
static int bai(int a)
{
int kotae = 2 * a;
return kotae;
}
}
どのようにプログラムが流れていくかしっかり理解しましょう。
return x;~
} ~
**省略記法 [#g8a3bd12]
さてint型変数iがあるとしよう。
これに何が入っているかわからないが1を足したい。
どういうコードを書けばいいだろうか?。
頭を働かして考えて欲しい。
答え
i = i + 1;
i = i + 1;はなんとなく気持ち悪いかも知れない。数学的に矛盾しているからだ。でも慣れて欲しい。
さてC#はCの血が流れていて省略の美学というものがある。いくつかよく使うものを紹介しよう。
i += 1;
これは上式とまったく同じ意味。この方が見やすいかな?
そして''1''を足す場合にだけはさらに特別に省略できる。
i++;
これも同じ意味である 1を足す場合は良くあり使われるので覚えておこう。
ちなみに足し算だけでなく
i -= 1;
i *= 1;
i /= 1;
なども同様にできる。
ちなみにi--もある。
**Powを作ろう [#l5d20745]
累乗を計算する関数Powを自分で作ってみよう。
まず引数を決めよう。今回は簡単のためint型変数を2つとろう。
2.1の0.86乗とかなるとめんどくさいので 2の3乗のようにします。
返り値は整数の掛け算だから答も整数になるのでint型でいいだろう。
これを元に関数の宣言を自分で書いてみよう
答え
static int Pow(int x,int y)
{
}
**繰り返し構文 [#o2a70e67]
さて累乗をするPow関数を作成しよう。引数x,yを使いxのy乗を計算する。
例えば2の3乗なら2*2*2で、単純に繰り返せばいい事がわかる。
つまり引数を使ってx*x*x…をy回やればいい事になる。
ではこのように繰り返しを表現するにはどうすればいいのだろう?
C#には''for構文''が用意されている。これを使おう。
さて書式は
for(初期化式;繰り返し条件;繰り返し式){}
であるけどこれではよくわからないので単純に10回繰り返すサンプルを書いてみる。
for(int i=0;i<10;i++){}
まずint i=0はforが始まる前に一回だけ実行される。iは慣用的に使われる名前で何回繰り返したか数えておく変数である。
i<10はiが10未満という条件が満たされている間繰り返しなさいという意味である。
i++は一回繰り返す度に実行される 1回繰り返すとiに1足していくので数えられる。
これがfor文の基本系だ しっかり理解しよう
ちなみに0から始めるには理由があるのでそんなもんかとおもっておこう。0から始めるので条件は10''未満''である。気をつけよう。
さて今回はy回繰り返したい。基本系をちょっと変えてy回繰り返せるように考えよう。
答
for(int i=0; i<y; i++){}
**Pow関数の実装 [#f58727be]
さてy回繰り返す方法を学んだ。これを使ってPowを計算しよう。
今回は負数は考えない。繰り返すたびに掛け算をすることがポイントだ。
答え
class Program
{
static void Main(string[] args)
{
int x = Pow(2, 16);
Console.WriteLine(x);
}
static int Pow(int x, int y)
{
int result = 1;
for (int i = 0; i < y; i++)
{
result *= x;
}
return result;
}
}
**魔法使いかどうか判定する [#i549d509]
童貞は30を迎えると魔法使いになれるといいます。
年齢を尋ねて、魔法使いかどうか判定しましょう。
***年齢を取得する [#h3ac86dd]
まず、年齢を入力してください。と表示します。
Console.WriteLine("年齢を入力してください。");
次に年齢を入力してもらうのですが、どうすればいいのでしょうか?ここは想像力を働かせましょう。WrteLineがあるのですからReadLineもありそうですね。早速MSDNで検索しましょう。
[[ReadLineメソッド>http://msdn2.microsoft.com/ja-jp/library/system.console.readline(VS.80).aspx]]が見つかりました。
標準入力ストリームから次の 1 行分の文字を読み取ります。
と書いてあるのでこれでよさそうです。標準入力ストリームは通常画面を指します。
構文のC#の部分を見ると
public static string ReadLine ()
と書かれています。publicは習ってませんが無視してください。これを見るとstringを返す関数であることが分かります。引数は何もありませんね。なので
string age_str = Console.ReadLine();
でage_strに入力された文字を取得することができます。
***数字へ変換する [#se0e6fe7]
これで年齢は取得できましたがstring型であることから分かるように文字列です。つまり直接''数字として扱うことは出来ない''のです。
そこで文字列の中の数字をint型へ変換してくれる関数があります。
それがConvert.ToInt32()メソッドです。32とかついてるけど気にしないで下さい。
早速MSDNで調べてみましょう。[[Convert.ToInt32 メソッド (String)>http://msdn2.microsoft.com/ja-jp/library/sf1aw27b(VS.80).aspx]]
指定した String 形式の数値を、それと等価な 32 ビット符号付き整数に変換します。
なのでこれでよさそうです。いろいろと注意事項なども書いていますがまあいいでしょう。使い方は引数に変換もとのage_strを入れましょう。
int age = Convert.ToInt32(age_str);
これで年齢が取得できました。
***30以上かどうか判定する [#mb8e17c3]
年齢が取得できましたので今度は30以上かどうか判定します。
このように条件によって処理を変える必要があるとき使うのが''if構文''です。もし~だったら~するを表現します。
if(条件式)
{
//条件が真の時
}
else
{
//条件が偽の時
}
elseは違えば~するです。
***完成 [#tf6100c3]
class Program
{
static void Main(string[] args)
{
Console.WriteLine("年齢を入力してください。");
string age_str = Console.ReadLine();
int age = Convert.ToInt32(age_str);
if (age > 30)
{
Console.WriteLine("あなたは魔法使いです");
}
else
{
Console.WriteLine("あなたは魔法使いではありません");
}
}
}