alunote’s blog

C#,SQL,JavaScriptなどの技術メモをゆっくり投稿しています。

【C#】エスケープ文字について

今回は、C#エスケープ文字について記述します。
エスケープ文字とは、「改行」や「タブ」など
通常の文字としては表すことのできない特殊文字のことです。

エスケープ文字意味
\n改行
\rキャリッジリターン
\tタブ
\'シングルクォート
\"ダブルクォート
\0ヌル文字
\\円記号
\bバックスペース
\v垂直タブ
\f改ページ

以上です。
この記事が誰かの役に立つことを祈ります。

【C#】BMI計算するプログラムを作ってみた

今回は、BMIを計算するプログラムについて記述します。
最近健康に気を付けるようになり、ふと自分のBMIの数値が気になり計算してみました。
BMI:19.15...普通体重。
何とも面白くもない普通の結果が返ってきました。

計算しているときにC#でも計算できるのかと思い今回作成してみることにしました。
ちなみに使用したデータは、日本人(50代)の平均身長/体重と白熊です。
※なぜ50代?という疑問に関しては、人生100年時代というCMのフレーズを聞いたからその半分。。。
※なぜ白熊?という疑問に関しては、ただ白熊が好きだからという理由。。。

BMIの判定には、日本肥満学会の判定基準(成人)のデータを使用しています。

◆補足情報
ホッキョクグマ
 (身長)雄250-300cm、雌200-250cm、最大340cm。
 (体重)雄300-800㎏、雌150-400kg、最大1000kg。
日本人(50代男性)
 (身長)169.94cm
 (体重)68.73kg
BMIの指標/判定
 18.5未満 → 低体重(痩せ型) 
 18.5?25未満 → 普通体重
 25?30未満 → 肥満(1度)
 30?35未満 → 肥満(2度)
 35?40未満 → 肥満(3度)
 40以上 → 肥満(4度)

BMI計算について
BMIは下記計算方法で求めることができます。
体重(kg)÷(身長(m)×身長(m))

身長×身長はMathクラスのPowメソッドを使用することでスマートに記述できます。
また、計算結果を小数点第2位まで表示するために{0:#.##}でフォーマットを指定しました。

◆のソースコード

using System;

class BMI
{
    public static void Main()
    {
        Console.Write("身長(m):");
        double shin = double.Parse(Console.ReadLine());
        Console.Write("体重(kg):");
        double tai = double.Parse(Console.ReadLine());
        double bmi = tai / Math.Pow(shin, 2.0);
        Console.WriteLine("BMI:{0:#.##}", bmi);
        if(bmi < 18.5)
        {
            Console.WriteLine("判定:低体重(痩せ型)");
        }else if(18.5 <= bmi && bmi < 25)
        {
            Console.WriteLine("判定:普通体重");
        }else if (25 <= bmi && bmi < 30)
        {
            Console.WriteLine("判定:肥満(1度)");
        }
        else if (30 <= bmi && bmi < 35)
        {
            Console.WriteLine("判定:肥満(2度)");
        }
        else if (35 <= bmi && bmi < 40)
        {
            Console.WriteLine("判定:肥満(3度)");
        }
        else if (40 <= bmi)
        {
            Console.WriteLine("判定:肥満(4度)");
        }
    }
}

◆の実行結果
f:id:alunote:20181107125249p:plain
f:id:alunote:20181107125257p:plain
f:id:alunote:20181107125307p:plain

驚きの結果!!!
ホッキョクグマ。。。ものすごく肥満ww
まぁ人間の計算式に当てはめること自体が間違いですけどね。。。

以上です。
この記事が誰かの役に立つことを祈ります。

【C#】コマンドライン引数をソート表示する

今回は、コマンドライン引数に入力された任意の数をソートして表示する方法について記述します。

◆ソート表示のソースコード

using System;

class Task_13
{
    public static void Main(string[] args)
    {
        Array.Sort(args);
        Console.Write("Array.Sort(args):");
        for(int i=0; i<args.Length; i++) {
            Console.Write(args[i]);
        }
        Console.WriteLine();
    }
}

◆ソート表示の実行結果
f:id:alunote:20181106164500p:plain
f:id:alunote:20181106164515p:plain

以上です。
この記事が誰かの役に立つことを祈ります。

【C#】日付型の間隔(日数)計算について

今回は、コマンドライン引数に2つの日付型を入力し、
その間隔(日数)を計算する方法について記述します。
日付型に変換できないものはエラーを表示する処理も実装します。

◆間隔(日数)計算のソースコード

using System;

class Task_13
{
    public static void Main(string[] args)
    {
        //2つの日付型(yyyy/MM/dd)の間隔(日数)を表示
        try {
            var dt1 = DateTime.Parse(args[0]);
            var dt2 = DateTime.Parse(args[1]);
            TimeSpan ts = dt2 - dt1;
            Console.WriteLine(dt1 + "と" + dt2 + "の間隔:" + ts.TotalDays);
        } catch {
            Console.WriteLine("入力された文字列が日付形式ではありません。");
        }
    }
}

◆間隔(日数)計算の実行結果
f:id:alunote:20181106164319p:plain
f:id:alunote:20181106164330p:plain

以上です。
この記事が誰かの役に立つことを祈ります。

【C#】コマンドライン引数の最大値を表示する

今回は、コマンドライン引数に入力された任意の数のうち、
最大値を表示する方法について記述します。

◆最大値を表示のソースコード

using System;
using System.Linq;

class Task_13
{
    public static void Main(string[] args)
    {
        //最大値を表示
        //※引数がない場合はエラー文言表示。
        if(args.Any()) {
            int[] alist = args.Select(s => int.Parse(s)).ToArray();
            var aMax = alist.Max();
            Console.WriteLine("最大値:" + aMax);
        } else {
            Console.WriteLine("引数がありません。");
        }
    }
}

◆最大値を表示の実行結果
f:id:alunote:20181106164128p:plain
f:id:alunote:20181106164136p:plain

以上です。
この記事が誰かの役に立つことを祈ります。

【C#】コマンドライン引数の文字列を比較する

今回は、コマンドライン引数の文字列を比較する方法について記述します。
また、大文字小文字の区別ありバージョンとなしバージョンの両方を実装します。

コマンドライン引数の文字列を比較
大文字小文字を区別せず比較する場合はCompare メソッドを使用します。


◆文字列を比較(大文字小文字の区別あり)のソースコード

using System;

class Task_13
{
    public static void Main(string[] args)
    {
        //2つの文字列を比較し表示
        Console.Write("文字列を比較:");
          if(args[0] == args[1]) {
              Console.Write("同じ\t");
          } else {
              Console.Write("違う\t");
          }
        Console.WriteLine("");
    }
}

◆文字列を比較(大文字小文字の区別あり)の実行結果
コマンドライン入力文字
f:id:alunote:20181106163839p:plain
▼結果
f:id:alunote:20181106163917p:plain
コマンドライン入力文字
f:id:alunote:20181106163859p:plain
▼結果
f:id:alunote:20181106163932p:plain

◆文字列を比較(大文字小文字の区別なし)のソースコード

using System;

class Task_13
{
    public static void Main(string[] args)
    {
        //大文字と小文字を区別せず比較し表示
        Console.Write("大文字小文字の区別せず文字列を比較:");
        if(string.Compare(args[0], args[1], true) == 0) {
            Console.Write("同じ\t");
        } else {
            Console.Write("違う\t");
        }
        Console.WriteLine("");
    }
}

◆文字列を比較(大文字小文字の区別なし)の実行結果
コマンドライン入力文字
f:id:alunote:20181106163839p:plain
▼結果
f:id:alunote:20181106163917p:plain
コマンドライン入力文字
f:id:alunote:20181106163859p:plain
▼結果
f:id:alunote:20181106163917p:plain

以上です。
この記事が誰かの役に立つことを祈ります。

【C#】コマンドライン引数を大文字変換・小文字変換する

今回は、コマンドライン引数を大文字変換または小文字変換する方法について記述します。

大文字変換する場合は、ToUpperを使用します。
小文字変換する場合は、ToLowerを使用します。

今回設定したコマンドライン引数は以下です。
▼大文字変換の場合
f:id:alunote:20181019171703p:plain
▼小文字変換の場合
f:id:alunote:20181019171633p:plain
では早速、実装してみましょう。

◆大文字変換のソースコード

using System;

class Task_13
{
    public static void Main(string[] args)
    {
        Console.Write("大文字変換:");
        foreach (string n in args) Console.Write(n.ToUpper() + ",");
        Console.WriteLine("");
    }
}

◆大文字変換の実行結果
f:id:alunote:20181019171644p:plain

◆小文字変換のソースコード

using System;

class Task_13
{
    public static void Main(string[] args)
    {
        Console.Write("小文字変換:");
        foreach (string n in args) Console.Write(n.ToLower() + ",");
        Console.WriteLine("");
    }
}

◆小文字変換の実行結果
f:id:alunote:20181019171654p:plain

以上です。
この記事が誰かの役に立つことを祈ります。