SlideShare uma empresa Scribd logo
1 de 15
実践C#
基礎工学部 情報科学科 2回生
翌桧@asunaroucc
C#とは
 必要な環境
→.Net Framework、Mono
 Windowsの場合主に統合開発ツールのVisual Studioを使用する。
 静的型付け、オブジェクト指向(第2回で詳しくやります)
 プログラム起動までの流れ
コード作成 ビルド
依存関係の
解消
コンパイ
ル
実行可能
ファイル生
成
エントリポイント
から実行
Hello World!
 まず、「ファイル」→「新規作成」→「プロジェクト」を選択
 コンソールアプリケーションを選択し新しいプロジェクトを作成
 Main関数
プログラムの最初に実行される
static void Main(string[] args){
}
 出力
Console.Writeline(“出力したい文字列”);
※;(セミコロン)を忘れないように注意
 Ctrl+F5で実行
変数の定義と代入
 「型 変数名;」で新しい変数を定義
 「変数名 = 代入したい値(数字とか文字とか変数と
か);」で右辺の値を左辺に代入
 変数の定義をするときに「型 変数名 = 値;」で初期値
として値を代入することもできる。
 代表的な型:int(整数)、string(文字列)などなど
演算子
 変数(主に数値)は演算子を使用して変数を操作することができます。
 使い方の例:「変数 = 変数 演算子 変数」など。(演算子によっ
て使い方は違います。
 種類が多いので少しずつ覚えていきましょう(調べたらたくさん出て
きます)
 例:=(代入),+,-,%(割り算のあまり),*(掛け算),/,&&(かつ),||(または)
など
条件分岐
 if, else if, else による条件分岐
if(x==10){
//x==10のときに実行される
} else if(y>20) {
//x==10 でなく y>20だったときに実行される
} else {
//x==10 でも y>20でもなかったときに実行される
}
ループ文
 forによるループ文
for(ループさせる変数; ループの条件; ループ時に実行される){
// ここに書かれた手続きがループして評価される
}
 whileによるループ文
while(x>=10){
// z>=10である限りここに書かれた手続きがループして評価される
}
メソッド
 メソッド
演算結果の型 メソッド名(引数の型 引数){
//処理
//演算結果を返す場合はreturn 演算結果;とする
}
 メソッド名(変数,変数・・・)として呼び出す
練習問題#1
 なべあつ問題
1,2,3,…..,100を出力
ただし3で割り切れる場合と3を含む場合
(例:13)は”Three”を数字の代わりに表示するメ
ソッドを作成
配列・リスト
 配列
特定の型からなるデータの集まり。データはメモリ上に連続的
に記憶される。配列の長さは配列を定義するときに決定する。
要素の型[] 変数 = {要素、要素、・・・};
 リスト
配列と同様に特定の型からなるデータの集まりだが、データは
ばらばらに記憶され、次のデータの場所を持っている。リスト
は長さが決まっていないため、要素が追加、削除されるたびに
長さが変わる。
定義:List<型> リストの名前 = new List<型>();
要素の追加:リストの名前.Add(値);
値型と参照型
 値型
 参照型
練習問題#2
(1)
int x = 10;
int y = x;
x = 20;
このとき、
x,yの値は?
(2)
char[] s =
new[]{‘C’,’S’,’h’,’a’,’r’,’p’};
char[] t = s;
s[0]=‘F’;
このとき、s,tの値は?
(3)
string a = “abc”;
string b = a;
a = “def”;
このとき、
a,bの値は?
練習問題#1(解答例)
static void Main(string[] args) {
Nabeatu(1, 100);
}
static void Nabeatu(int start, int finish) {
for (int i = start; i < finish + 1; i++)
{
if (i % 3 == 0 || i.ToString().Contains("3"))
Console.WriteLine("Three");
else
Console.WriteLine(i);
}
}
練習問題#2(解答)
(1)int型は値型なので、y = xでは、10という値そのものが渡される。なのでxの値
を変更しても、yには影響はない。
よって答えはx = 20, y = 10
(2)配列は参照型なので、t = s では、sがどこを参照しているかという情報がtに代
入される。なので、sの値を変更してしまうと同じ場所を参照しているtも値が変
わってしまう。
よって答えはs = {‘F’,’S’,’h’,’a’,’r’,’p’}, t = {‘F’,’S’,’h’,’a’,’r’,’p’};
(3)string型は参照型だが、string型は、コピーするときに同じ内容の新しいデータ
を作成するので、別のデータを参照している。よって、aの値を変更しても、bに
影響はない
よって答えはa= “def” , b = “abc”
おしまい

Mais conteúdo relacionado

Semelhante a 実践C#

cocos2d-xとネイティブ間の連携
cocos2d-xとネイティブ間の連携cocos2d-xとネイティブ間の連携
cocos2d-xとネイティブ間の連携Tomoaki Shimizu
 
Dev 012 .net言語-(c_)_と_.net_コン
Dev 012 .net言語-(c_)_と_.net_コンDev 012 .net言語-(c_)_と_.net_コン
Dev 012 .net言語-(c_)_と_.net_コンdecode2016
 
The procedure of asp.net at 201908 sakurug seminar
The procedure of asp.net at 201908 sakurug seminarThe procedure of asp.net at 201908 sakurug seminar
The procedure of asp.net at 201908 sakurug seminarSAKURUG co.
 
Unityネイティブプラグイン
UnityネイティブプラグインUnityネイティブプラグイン
UnityネイティブプラグインMakotoItoh
 
今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略信之 岩永
 
機械学習 (AI/ML) 勉強会 #1 基本編
機械学習 (AI/ML) 勉強会 #1 基本編機械学習 (AI/ML) 勉強会 #1 基本編
機械学習 (AI/ML) 勉強会 #1 基本編Fujio Kojima
 
ボット開発でも DevOps! BotBuilder のテスト手法
ボット開発でも DevOps! BotBuilder のテスト手法ボット開発でも DevOps! BotBuilder のテスト手法
ボット開発でも DevOps! BotBuilder のテスト手法Kenichiro Nakamura
 
C#版人狼知能エージェントの作り方(MonoDevelop/Xamarin Studio編)
C#版人狼知能エージェントの作り方(MonoDevelop/Xamarin Studio編)C#版人狼知能エージェントの作り方(MonoDevelop/Xamarin Studio編)
C#版人狼知能エージェントの作り方(MonoDevelop/Xamarin Studio編)takots
 
cp-1. Microsoft Visual Studio 2019 C++ の使い方
cp-1. Microsoft Visual Studio 2019 C++ の使い方cp-1. Microsoft Visual Studio 2019 C++ の使い方
cp-1. Microsoft Visual Studio 2019 C++ の使い方kunihikokaneko1
 
JS で Bot つくろうぜ! ~刮目せよ!、これがMSのBot Framewok だ!!~
JS で Bot つくろうぜ! ~刮目せよ!、これがMSのBot Framewok だ!!~JS で Bot つくろうぜ! ~刮目せよ!、これがMSのBot Framewok だ!!~
JS で Bot つくろうぜ! ~刮目せよ!、これがMSのBot Framewok だ!!~Osamu Monoe
 
Windowsストアアプリ開発 オープンセミナー広島
Windowsストアアプリ開発 オープンセミナー広島Windowsストアアプリ開発 オープンセミナー広島
Windowsストアアプリ開発 オープンセミナー広島Akira Onishi
 
Test Manager + Team Foundation Server /Visual Studio Team Services 手順書(共有パラメー...
Test Manager + Team Foundation Server /Visual Studio Team Services 手順書(共有パラメー...Test Manager + Team Foundation Server /Visual Studio Team Services 手順書(共有パラメー...
Test Manager + Team Foundation Server /Visual Studio Team Services 手順書(共有パラメー...Masaki Takeda
 
Slug 3-windows phone7helloworld-classmethod-ryuichi-nonaka
Slug 3-windows phone7helloworld-classmethod-ryuichi-nonakaSlug 3-windows phone7helloworld-classmethod-ryuichi-nonaka
Slug 3-windows phone7helloworld-classmethod-ryuichi-nonakaRyuichi Nonaka
 
Kinect v2 からUSBでつないだ機器をコントロールしてみよう Vol.1
Kinect v2 からUSBでつないだ機器をコントロールしてみよう Vol.1Kinect v2 からUSBでつないだ機器をコントロールしてみよう Vol.1
Kinect v2 からUSBでつないだ機器をコントロールしてみよう Vol.1Akira Hatsune
 
レゴブロックとC#を使ったIoT体験
レゴブロックとC#を使ったIoT体験レゴブロックとC#を使ったIoT体験
レゴブロックとC#を使ったIoT体験Shigeharu Yamaoka
 
Movable Type から BOT を作ろう! ~ Data API と Microsoft BOT Framework ~
Movable Type から BOT を作ろう! ~ Data API と Microsoft BOT Framework ~Movable Type から BOT を作ろう! ~ Data API と Microsoft BOT Framework ~
Movable Type から BOT を作ろう! ~ Data API と Microsoft BOT Framework ~Osamu Monoe
 
.NET Core時代のCI/CD
.NET Core時代のCI/CD.NET Core時代のCI/CD
.NET Core時代のCI/CDYuta Matsumura
 
Cocos2d xをさらにさわってみよう!
Cocos2d xをさらにさわってみよう!Cocos2d xをさらにさわってみよう!
Cocos2d xをさらにさわってみよう!Tomoaki Shimizu
 
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NETAkira Inoue
 

Semelhante a 実践C# (20)

cocos2d-xとネイティブ間の連携
cocos2d-xとネイティブ間の連携cocos2d-xとネイティブ間の連携
cocos2d-xとネイティブ間の連携
 
Dev 012 .net言語-(c_)_と_.net_コン
Dev 012 .net言語-(c_)_と_.net_コンDev 012 .net言語-(c_)_と_.net_コン
Dev 012 .net言語-(c_)_と_.net_コン
 
The procedure of asp.net at 201908 sakurug seminar
The procedure of asp.net at 201908 sakurug seminarThe procedure of asp.net at 201908 sakurug seminar
The procedure of asp.net at 201908 sakurug seminar
 
Unityネイティブプラグイン
UnityネイティブプラグインUnityネイティブプラグイン
Unityネイティブプラグイン
 
今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略今から始める、Windows 10&新.NETへの移行戦略
今から始める、Windows 10&新.NETへの移行戦略
 
機械学習 (AI/ML) 勉強会 #1 基本編
機械学習 (AI/ML) 勉強会 #1 基本編機械学習 (AI/ML) 勉強会 #1 基本編
機械学習 (AI/ML) 勉強会 #1 基本編
 
ボット開発でも DevOps! BotBuilder のテスト手法
ボット開発でも DevOps! BotBuilder のテスト手法ボット開発でも DevOps! BotBuilder のテスト手法
ボット開発でも DevOps! BotBuilder のテスト手法
 
C#版人狼知能エージェントの作り方(MonoDevelop/Xamarin Studio編)
C#版人狼知能エージェントの作り方(MonoDevelop/Xamarin Studio編)C#版人狼知能エージェントの作り方(MonoDevelop/Xamarin Studio編)
C#版人狼知能エージェントの作り方(MonoDevelop/Xamarin Studio編)
 
cp-1. Microsoft Visual Studio 2019 C++ の使い方
cp-1. Microsoft Visual Studio 2019 C++ の使い方cp-1. Microsoft Visual Studio 2019 C++ の使い方
cp-1. Microsoft Visual Studio 2019 C++ の使い方
 
JS で Bot つくろうぜ! ~刮目せよ!、これがMSのBot Framewok だ!!~
JS で Bot つくろうぜ! ~刮目せよ!、これがMSのBot Framewok だ!!~JS で Bot つくろうぜ! ~刮目せよ!、これがMSのBot Framewok だ!!~
JS で Bot つくろうぜ! ~刮目せよ!、これがMSのBot Framewok だ!!~
 
Windowsストアアプリ開発 オープンセミナー広島
Windowsストアアプリ開発 オープンセミナー広島Windowsストアアプリ開発 オープンセミナー広島
Windowsストアアプリ開発 オープンセミナー広島
 
Test Manager + Team Foundation Server /Visual Studio Team Services 手順書(共有パラメー...
Test Manager + Team Foundation Server /Visual Studio Team Services 手順書(共有パラメー...Test Manager + Team Foundation Server /Visual Studio Team Services 手順書(共有パラメー...
Test Manager + Team Foundation Server /Visual Studio Team Services 手順書(共有パラメー...
 
Slug 3-windows phone7helloworld-classmethod-ryuichi-nonaka
Slug 3-windows phone7helloworld-classmethod-ryuichi-nonakaSlug 3-windows phone7helloworld-classmethod-ryuichi-nonaka
Slug 3-windows phone7helloworld-classmethod-ryuichi-nonaka
 
Kinect v2 からUSBでつないだ機器をコントロールしてみよう Vol.1
Kinect v2 からUSBでつないだ機器をコントロールしてみよう Vol.1Kinect v2 からUSBでつないだ機器をコントロールしてみよう Vol.1
Kinect v2 からUSBでつないだ機器をコントロールしてみよう Vol.1
 
レゴブロックとC#を使ったIoT体験
レゴブロックとC#を使ったIoT体験レゴブロックとC#を使ったIoT体験
レゴブロックとC#を使ったIoT体験
 
Movable Type から BOT を作ろう! ~ Data API と Microsoft BOT Framework ~
Movable Type から BOT を作ろう! ~ Data API と Microsoft BOT Framework ~Movable Type から BOT を作ろう! ~ Data API と Microsoft BOT Framework ~
Movable Type から BOT を作ろう! ~ Data API と Microsoft BOT Framework ~
 
Xilinx2013d
Xilinx2013dXilinx2013d
Xilinx2013d
 
.NET Core時代のCI/CD
.NET Core時代のCI/CD.NET Core時代のCI/CD
.NET Core時代のCI/CD
 
Cocos2d xをさらにさわってみよう!
Cocos2d xをさらにさわってみよう!Cocos2d xをさらにさわってみよう!
Cocos2d xをさらにさわってみよう!
 
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
本格化するクラウド ネイティブに向けて進化する開発プラットフォームと .NET
 

実践C#

Notas do Editor

  1. 必要な環境 →.Net Framework、Mono Windowsの場合主に統合開発ツールのVisual Studioを使用する。 静的型付け、オブジェクト指向(第2回で詳しくやります) プログラム起動までの流れ
  2. まず、「ファイル」→「新規作成」→「プロジェクト」を選択 コンソールアプリケーションを選択し新しいプロジェクトを作成 Main関数 static void Main(string[] args){ //プログラムの最初に実行される //引数はargs 出力 Console.Writeline(“出力したい文字列”); ※;(セミコロン)を忘れないように注意 Ctrl+F5で実行
  3. 「型 変数名;」で新しい変数を定義 「変数名 = 代入したい値(数字とか文字とか変数とか);」で右辺の値を左辺に代入 変数の定義をするときに「型 変数名 = 値;」で初期値として値を代入することもできる。 代表的な型:int(整数)、string(文字列)などなど
  4. 変数(主に数値)は演算子を使用して変数を操作することができます。 使い方の例:「変数 = 変数 演算子 変数」など。(演算子によって使い方は違います。 種類が多いので少しずつ覚えていきましょう(調べたらたくさん出てきます) 例:=(代入),+,-,%(割り算のあまり),*(掛け算),/,&&(かつ),||(または)など
  5. if, else if, else による条件分岐 if(x==10){ //x==10のときに実行される } else if(y>20) { //x==10 でなく y>20だったときに実行される } else { //x==10 でも y>20でもなかったときに実行される }
  6. forにループ文 for(ループさせる変数; ループの条件; ループ時に実行される){ // ここに書かれた手続きがループして評価される // break, continue } whileによるループ文 while(x>=10){ // z>=10である限りここに書かれた手続きがループして評価される // break,continue }
  7. メソッド 演算結果の型 メソッド名(引数の型 引数){ //処理 //演算結果を返す場合はreturn 演算結果;とする } メソッド名(変数,変数・・・)として呼び出す
  8. Fizz Buzz 1,2,3,…..,100を出力 ただし3で割り切れる場合は”Fizz”、5で割り切れる場合には”Buzz”、3と5で割り切れる場合には”FizzBuzz”を数字の代わりに表示するメソッドを作成
  9. 配列 特定の型からなるデータの集まり。データはメモリ上に連続的に記憶される。配列の長さは配列を定義するときに決定する。 要素の型[] 変数 = {要素、要素、・・・}; リスト 配列と同様に特定の型からなるデータの集まりだが、データはばらばらに記憶され、次のデータの場所を持っている。リストは長さが決まっていないため、要素が追加、削除されるたびに長さが変わる。 定義:List<型> リストの名前 = new List<型>(); 要素の追加:リストの名前.Add(値); 配列 特定の型からなるデータの集まり。データはメモリ上に連続的に記憶される。配列の長さは配列を定義するときに決定する。 要素の型[] 変数 = {要素、要素、・・・}; リスト 配列と同様に特定の型からなるデータの集まりだが、データはばらばらに記憶され、次のデータの場所を持っている。リストは長さが決まっていないため、要素が追加、削除されるたびに長さが変わる。 定義:List<型> リストの名前 = new List<型>(); 要素の追加:リストの名前.Add(値);
  10. (1) int x = 10; int y = x; x = 20; このとき、x,yの値は? (2) char[] s = new[]{‘C’,’S’,’h’,’a’,’r’,’p’}; char[] t = s; s[0]=‘F’; このとき、s,tの値は? (2) char[] s = new[]{‘C’,’S’,’h’,’a’,’r’,’p’}; char[] t = s; s[0]=‘F’; このとき、s,tの値は?
  11. static void Main(string[] args) { FizzBuzz(1, 100); } static void FizzBuzz(int start, int finish) { for (int i = start; i < finish + 1; i++) { if (i % 3 == 0 && i % 5 == 0) Console.WriteLine("FizzBuzz"); else if (i % 5 == 0) Console.WriteLine("Buzz"); else if (i % 3 == 0) Console.WriteLine("Fizz"); else Console.WriteLine(i); } }