・ここまで勉強してきたものを実践して慣れていきたいと思ったので、 問題集のような本やサイトなどでおすすめなものはありますでしょうか? ありましたら教えてほしいです。 「北ソフト工房」の「C# 練習問題集」が良いかもしれません。 https://kitako.tokyo/lib/CsExercise.aspx 序盤は簡単すぎますので、 3. 分岐 4. 繰り返し 5. 配列 あたりに挑戦すると良いでしょう。
for trainees of Hirano's class only
・ここまで勉強してきたものを実践して慣れていきたいと思ったので、 問題集のような本やサイトなどでおすすめなものはありますでしょうか? ありましたら教えてほしいです。 「北ソフト工房」の「C# 練習問題集」が良いかもしれません。 https://kitako.tokyo/lib/CsExercise.aspx 序盤は簡単すぎますので、 3. 分岐 4. 繰り返し 5. 配列 あたりに挑戦すると良いでしょう。
次回予告:p.158「簡単なクラスを定義しよう(生成と参照)」から 講義メモ:memo20250125.txt
p.153 クラスとは何か ・C#などのオブジェクト指向言語では、プログラムをクラスを単位として作成し、データ構造もクラスを基本として扱うことができる ・プログラムは設計図にあたるソースを、ビルドすることによって実行体がメモリの上に生成されて動作する ・この設計図にあたるのがクラス、実行体にあたるのがオブジェクト(インスタンス) ・この考え方を、クラスの中で用いるデータ構造や部品にあてはめることもできる ・例えば、X座標とY座標を保持できる座標情報をクラスとして、点Aの座標をこのクラスのオブジェクトaで、点Bの座標をこのクラスの オブジェクトbで扱える ・そして、この座標情報のクラスをプログラムの中に記述して、mainメソッドでオブジェクトaとbを生成して利用できる p.154 簡単なクラスを定義しよう ・例えば、X座標とY座標を保持できる座標情報をクラス名「map」として定義することができる。 ・定義書式例: class クラス名 { 型 変数名; … } 例: class map { int x; int y; } //座標情報クラス「map」の定義 ・クラスの中に記述した変数などのことをメンバという。メンバにはデータとメソッドなどがある ・ちなみに、6章までで作成したプログラムはすべてクラスで、メンバはmain()メソッドのみだった ・クラスの中に記述した変数のことをクラス変数、データメンバともいう ・クラスからオブジェクトを生成すると、生成したオブジェクトの中にクラス変数の実体ができる 例: mapクラスからオブジェクトgoalを生成し、goalのX座標とY座標を格納する 例: mapクラスからオブジェクトstartを生成し、startのX座標とY座標を格納する ・このことから、クラス変数を基本的にインスタンス変数ともいう(※例外あり) ・インスタンス変数はオブジェクトの中に守られているので、外側から扱う許可を与える必要がある ・このアクセス制限を示す表現をアクセス修飾子といい、基本的に public が許可を示す ・ちなみに、mainメソッドもクラスの外側にあるシステムが扱うので、public が必要 ・外側から扱う定義書式例: class クラス名 { public 型 変数名; … } 例: class map { public int x; public int y; } //座標情報クラス「map」の定義 ・なお、アクセス修飾子を記述しないと private が指定されているとみなされ不許可を示す 例: class MyCat { //クラス「MyCat」の定義 public int catNo; //猫番号のインスタンス変数 public string catName; //猫名のインスタンス変数 public double catWeight; //猫体重のインスタンス変数 } p.154 簡単なクラスを定義しよう(定義したクラスを使おう) ・クラスからオブジェクトを生成して扱うには、オブジェクトの名前にあたるインスタンス名が必要(※例外あり) ・このインスタンス名は「クラスを型とする変数」という書式になる ・インスタンス名の定義書式: クラス名 インスタンス名; 例: map goal; //インスタンス名goalを定義する 例: map start; //インスタンス名startを定義する 例: myCat tama; //インスタンス名tamaを定義する ・そして、クラスからインスタンスを生成するには演算子newを用いる(配列の生成のnewと同じ意味) ・インスタンスの生成の書式: インスタンス名 =…
・p.150「foreach文による反復処理」から 提出フォロー:アレンジ演習:p.148 sort01.cs ・5人の名前を全て小文字にした要素を追加して10要素にし、どう整列されるか確認しよう ⇒小文字と大文字は同じ順序だが、同じ字の小文字と大文字では小文字の方が前になる ・英記号「!,#,$,%,&」がどう整列されるか確認しよう ⇒文字コード順になる(文字コードは順に 21,23,24,25,26) ・負の数を含む実数値の場合、どう整列されるか確認しよう ⇒小さい(-∞に近い)ものからの順になる ・「ちぢっつづてで」のように小文字や濁点を含むひらがなの場合、どう整列されるか確認しよう ⇒文字コード順になる(文字コードは順に 3061,3062,3063,3064,3065,3066,3067) 作成例 //アレンジ演習:p.148 sort01.cs using System; class sort01 { public static void Main() { string[] name = new string[10]{ "Eric", "Peter", "Frank", "Kate", "Thomas", "eric", "peter", "frank", "kate", "thomas"}; for (int i = 0; i < name.Length; i++) { Console.WriteLine(name[i]); } Console.WriteLine(); Array.Sort(name); for (int i = 0; i < name.Length; i++) { Console.WriteLine(name[i]); } Console.WriteLine(); Array.Reverse(name); for (int i = 0; i < name.Length; i++) { Console.WriteLine(name[i]); } char[] c = {'!', '#' , '$' , '%', '&'}; //文字コード 21,23,24,25,26 Array.Sort(c); //文字コード順になる for (int i = 0; i < c.Length; i++) { Console.WriteLine(c[i]); } double[] d =…
ゲームソフト販売本数ランキング:今週1位は「ドンキーコング リターンズ HD(Switch)」 GO! 「さまざまな形で生成AIを活用していく」カプコン生成AIでゲーム開発を効率化―アイデア出しの高速化・効率化を実現 GO! GLOEは今期赤字予想、事業領域拡大による先行投資で―「eスポーツ×福祉領域」での伸長に期待【ゲーム企業の決算を読む】GO! 海外展開・マルチプラットフォーム対応を強力にサポート―『FREEDOM WARS Remastered』開発スタッフが語るReadSpeakerの強みと音声合成ソリューションの未来 GO! ゲーム向けAI翻訳サービス「DMM GAME翻訳」が初回1文字1円のスタータープランを提供開始―2月末までは20%オフキャンペーンも実施 GO! Warner Bros. Games社長が退任へ…『スーサイド・スクワッド』不調が原因か、今後はライブサービス重視となる報道も GO! フジテレビ問題巡り、任天堂もCM差し止めへ―スポンサー離れは少なくとも50社以上 GO!
・今回もありがとうございました。次も頑張っていきます。 応援します。 ・本日も授業ありがとうございました。 ()が増えていき、どんどん複雑になってきました。先生の解説をいただくとピンとくるのですが 一人で復習してるときは結構詰まってしまってます。 何個かのパターンに分けて覚えられたりできたら、整理しやすいと思うのですが なにか対策はありますでしょうか。 既にお気づきの通り「パターンに分けて整理」してみると良いでしょう。 カッコが増えていることではなく、構造を理解する必要性が高くなったことに着目してください。 ・今回もありがとうございました。 授業中にやってたものの一つを自分なりにほんの少し変えてみたので一緒につけときます。 見てもらえますと嬉しいです。 拝見しました。少しずつ変えていくことは良いアプローチだと思います。 理解度も上がっていると思いますので、もっと大胆にいろいろとアレンジしてみることをお勧めします。 ・理解できた 何よりです。
次回予告:p.150「foreach文による反復処理」から 講義メモ:memo20250118.txt
p.144 ジャグ配列 ・多次元配列を「要素数の積」ではなく「配列の配列」で表すものがジャグ配列 ・型が同じであれば、要素数の異なる配列を含む多次元配列ができるので、メモリの利用効率が良い ・2次元のジャグ配列の場合、要素は配列名[添字①][添字②]と表す。 ・例えば、中学校の学年ごとのクラスの人数を表すとき、1年が2クラス、2年が3クラス、3年が1クラスなら: 1年 : n[0][0]、n[0][1] 2年 : n[1][0]、n[1][1]、n[1][2] 3年 : n[2][0] 以下は2次元のジャグ配列の場合: ・宣言の書式: 型[][] 配列名; ・外側の生成の書式: 配列名 = new 型[要素数][]; //2つめの要素数は自由なので指定不要 ・内側の生成の書式: 配列名[添字] = new 型[要素数]; //これを1つめの要素数の文、繰返す ・宣言と外側の生成の例: int[][] n = new int[3][]; //3つの配列による2次元のジャグ配列の宣言と生成 ・初期化は煩雑だが内側の配列に対して行うことで可能 例: int[][] n = new int[3] { new int[2]{15, 16}, new int[3]{17, 18, 19}, new int[1]{20} } ・なお、内側の配列に対しての代入が可能 例: n[0] = new int[2]{15, 16}; アレンジ演習:p.144 jagged01.cs ・全要素の合計値も表示しよう 作成例 //アレンジ演習:p.144 jagged01.cs using System; class jagged01 { public static void Main() { int[][] ar; //ジャグ配列の宣言 ar = new int[2][]; //外側[0],[1]の生成 ar[0] = new int[3]; //内側[0][0],[0][1],[0][2] の生成 ar[1] = new int[3]; //内側[1][0],[1][1],[1][2] の生成 for (int i = 0; i < 2; i++) { for…
・p.137「2次元配列」から p.137 2次元配列 ・2つの添字を用いる配列を2次元配列という ・C#には2種類の2次元配列があり、通常型の2次元配列は●×■の積の要素を持つ構造。 ・例えば、2クラスに各5人の生徒の成績なら、2×5=10要素の2次元配列になる ・宣言の書式: 型[,] 配列名; ・生成の書式: 配列名 = new 型[要素数①, 要素数②]; ・1次元配列と同様に、宣言と生成はまとめて行える 例: int[,] point = new int[2, 5]; //2×5=10要素の2次元配列の宣言と生成 ・1次元配列と同様に、初期化も可能で、2重繰返し構造を{{},…}で示す 例: int[,] point = {{10,20,30,40,50}, {11,22,33,44,55}}; //2×5=10要素の2次元配列の宣言と生成 ・要素には「配列名[添字①, 添字②]」でアクセスできる アレンジ演習:p.138 array01.cs ・forのカウンタ用変数をfor文の中で宣言しよう ・2次元配列の要素に値を代入する処理を表示とは別の2重繰り返しで行うようにしよう 作成例その1 //アレンジ演習:p.138 array01.cs using System; class array01 { public static void Main() { int[,] MyArray = new int[2,3]; //MyArray[0, 0] = 1; //MyArray[0, 1] = 2; //MyArray[0, 2] = 3; //MyArray[1, 0] = 4; //MyArray[1, 1] = 5; //MyArray[1, 2] = 6; for (int i = 0; i < 2; i++) { //【以下追加】 for (int j = 0; j < 3; j++) { MyArray[i, j] = i * 3 + j +…
ゲームソフト販売本数ランキング:今週1位も「スーパー マリオパーティ ジャンボリー(Switch)」 GO! 【Switch2】ニンテンドースイッチ2正式発表。発売日は2025年。世界各都市で体験会も開催 GO! 【Switch2】映像から読み解くニンテンドースイッチ2の特徴と変更点。ボタンが1つ追加され、Joy-Conは横から差し込むタイプに GO! 内製エンジンにも詳しいチャットボット「ひすいちゃん」が業務をサポート―スクウェア・エニックス「ゲーム会社の業務効率化に生成AIは役立つか?」セッションをレポート【CEDEC+KYUSHU 2024】GO! 白組とOLMが語るVFXにおけるR&Dとの向き合い方とは【SIGGRAPH Asia 2024】 GO! 「ニンテンドースイッチ 2」非公式情報流出に任天堂が法的措置か?CES 2025でカバー展示した海外メーカーに弁護士が接触 GO! 『アサシン クリード シャドウズ』再び発売延期…ゲームプレイ品質とローンチ時の体験向上のため3月20日リリースへ GO!