次回予告:p.204「静的クラス」から 講義メモ:memo20250222.txt
for trainees of Hirano's class only
次回予告:p.204「静的クラス」から 講義メモ:memo20250222.txt
p.201 引数が可変個のメソッド ・メソッドの引数にparamsキーワードと配列を指定することで、引数が可変個のメソッドになる ・よって、同型の引数をいくつでも指定できる1メソッドが記述できる ・書式: アクセス修飾子 戻り値型 メソッド名(params 配列型[] 仮引数) {…} ・メソッド内部では仮引数を配列として、各引数はその要素になる ・よって、引数の数は、仮引数.Lengthで得ると良い ・引数が0個でもかまわないが、要素数0の配列になるので、要素を使用すると異常終了する アレンジ演習:p.201 params01.cs ・「if(animal1.Length == 0)」は不用なので消そう ・その後ろのfor文はforeachで書き換えよう ・Mainにおいて、引数が1個の場合、2個の場合を加えよう ・また、引数をint型にしたメソッドでオーバーロードできるが条件があることを確認しよう ⇒ 引数が0個である呼び出しをすると、両方にマッチしてしまうので、エラーになる 作成例 //p.201 params01.cs using System; class MyClass { public void show(params string[] animal) { //string型の可変個引数のメソッド foreach (var w in animal) { //全引数について繰返す Console.WriteLine("{0}さんがいます", w); } } public void show(params int[] animal) { //int型の可変個引数のメソッド foreach (var w in animal) { //全引数について繰返す Console.WriteLine("{0}です", w); } } } class params01 { public static void Main() { MyClass mc = new MyClass(); //mc.show(); //showメソッドをオーバーロードにしたので区別不可でエラーになる mc.show("ぱんだ"); mc.show("いぬ", "ねこ"); mc.show("きりん", "ぞう", "かば"); mc.show(100); mc.show(200, 300); } } ミニ演習:mini202.cs ・実数の可変個引数を受け取って、平均値を返す double ave(params double[]) を作成し、動作を確認しよう 作成例 //ミニ演習:mini202.cs using System; class MyClass { public double…
・p.195「メソッドのオーバーロード」から 提出:ミニ演習 mini193.cs・改 ・アレンジ演習:p.191 changearray01.csを元に、引数のaとbの和をout waで、差をout saで、積をout seiで返すメソッドにしてみよう void modify(int a, int b, out int wa, out int sa, out int seki){…} 作成例 //ミニ演習 mini193.cs・改 using System; class change { public void modify(int a, int b, out int wa, out int sa, out int seki) { //aとbの和差積を返すメソッド wa = a + b; //和を格納する sa = (a > b) ? a – b : b – a; //差を格納する seki = a * b; //積を格納する } } class changearray01 { public static void Main(){ change c = new change(); int x, y, z; //宣言のみで良い c.modify(10, 20, out x, out y, out z); //参照渡しで和差積を書きこんでもらう Console.WriteLine("{0}と{1}の和は{2},差は{3},積は{4}", 10, 20, x, y, z); } } p.195…
ゲームソフト販売本数ランキング:今週1位は再び「ドンキーコング リターンズ HD(Switch)」 GO! 「東京ゲームショウ 2025」は9月25日開催―アクセシビリティコーナー新設、通路幅の拡大などの改善を発表 GO! 「高くても売れる」PS5 Pro効果でハード販売23%増―新CEOが描くソニーの”脱コングロマリット”戦略【ゲーム企業の決算を読む】GO! AIでゲームシナリオを最短1営業日で生成、Algomaticが新サービス―130言語対応で海外展開も効率化 GO! 「消費者がSteamを使用する理由を過小評価していた…」Amazon元重役、Prime GamingがSteamに勝てなかった理由語る。重要な視点逃した結果の高すぎる勉強料 GO! miHoYoのリーカー取り締まり続く。200人以上が対象、最高で約1,100万円に及ぶ賠償金も GO!
・理解できた 何よりです。 ・今回もありがとうございました 次回もよろしくお願いします。 こちらこそ、よろしくお願いいたします。 ・今日もありがとうございました。 全然関係ないですが、先生の授業でプログラムの知識をたくさん教えてもらえていたので 仕事で急遽VBスクリプトやマクロを読む事になったのですが、変数やメソッドなどの処理の流れがC#と似てて読むことができ、 自分でもスラスラとプログラムの流れを掴めて無事問題が解決することができました。 プログラムを少しでも読めるようになると成長した実感も沸いて、自分に自信がつきました。 授業内容の理解は追いつかなくても、先生の授業はいつも楽しくて、ありがたいです。 残り4回ですが、ご指導のほどよろしくお願いします。 何よりです。残り4回、しっかりスキルアップしてください。
次回予告:p.195「メソッドのオーバーロード」から 講義メモ:memo20250215.txt
p.181 8.1 メソッドの再帰呼び出し ・C#などでは、メソッドの内部で自分自身を呼び出すことができる。これを再帰(リカージョン)という ・再帰を用いることで、アルゴリズムをシンプルに表現できる場合があり、重宝されている。 ・ただし、再帰のみを記述する無限ループになり、戻り情報を残しながら繰返すので、これに用いられるスタックメモリの使いつくしによる 異常終了となる ・そこで、終了条件を記述する必要がある ・基本的構文: メソッド名(引数①) { if(終了条件?) { return 値; } else { return メソッド名(引数②); } ・見かけ上は繰返しではないが、自分を呼び出すことでループ構造になることに注意 p.181 階乗を計算する(メソッドの再帰呼び出しの一例) ・ある整数nから1までの全整数の積を、nの階乗といい、整数!で示す ・例: 2! = 2、 3! = 6、4! = 24、5! = 120 ・よって、階乗の計算式は n! = n * (n-1) * (n-2) * (n-3) * … * 2 であり、 (n – 1)! = (n-2) * (n-3) * … * 2 だから、 n! = n * (n-1)! と表すことができるので再帰呼び出しになる ・そして、階乗のルールとして、0!は1、1!は1 なので、これらを再帰の終了条件にすれば良い アレンジ演習:p.183 ・表示の桁数を設定し、再帰の回数も表示するようにしよう ・publicインスタンス変数cntを0で初期化し、再帰呼び出し時にインクリメントし、結果表示時に併記すれば良い 0! = 1, 0 1! = 1, 1 2! = 2, 3 3! = 6, 6 4! = 24, 10 5! = 120, 15 6! = 720, 21 7! = 5040, 28 8! = 40320, 36 9! = 362880, 45 10! = 3628800, 55 11! = 39916800, 66 12! = 479001600, 78 13! = …
・p.180「第7章 練習問題」から 提出フォロー:アレンジ演習:p.177 arraylist01.cs ・終了フラグを用いないようにしよう ・foreachが利用できるか試してみよう 作成例 //アレンジ演習:p.177 arraylist01.cs using System; using System.Collections; class arraylist01 { public static void Main() { string strData; //入力用 double sum = 0.0; //合計 ArrayList al = new ArrayList(); //ArrayList配列を生成 while (true) { //無限ループ Console.Write("データ(数値以外入力で終了)– "); strData = Console.ReadLine(); if (!Char.IsDigit(strData[0]) && strData[0] != '-') { //先頭文字が数字でなく-でもない? break; //【変更】ループを抜ける } else { al.Add(double.Parse(strData)); //ArrayList配列に格納 } } int i = 0; //【追加】 foreach (var w in al) { //【変更】ArrayList配列の全データについて繰返す Console.WriteLine("Data[{0}] = {1}", ++i, w); //【変更】 sum += (double)w; //【変更】実数に戻して合計に足し込む } int count = al.Count; //ArrayList配列の要素数を得る double avr = sum / count; //合計を割って平均値を得る Console.WriteLine("データ個数 = {0}", count); Console.WriteLine("平均値 = {0}", avr); } } p.180 練習問題1 ヒント ・クラス定義の例: class…
ゲームソフト販売本数ランキング:今週1位は再び「スーパー マリオパーティ ジャンボリー(Switch)」 GO! KRAFTONが2024年度に過去最大の売上を達成―『PUBG』が破竹の勢いで拡大続く GO! マーベラス、売上下方修正―社長退任へ、IPポートフォリオ再構築が課題【ゲーム企業の決算を読む】GO! GameWith、メディア事業の広告単価減少止まらず…ゲーム決済アプリは活路となるか?【ゲーム企業の決算を読む】GO! テイクツーの2025年度第3四半期は堅調な売上を達成―『NBA 2K25』が大きく貢献 GO! アメリカのクレーンゲームブームを受けてラウンドワンの業績が急伸【ゲーム企業の決算を読む】GO! Steamでリリースされたゲーム「PirateFi」からマルウェア検出―Valveは当該作品起動ユーザーに警告メール GO! 参考:文化庁メディア芸術クリエイター育成支援事業イベント GO!
・理解できた 何よりです。 ・本日はありがとうございました。 ・今日もありがとうございました。次も頑張ります。 応援します。 ・今回もありがとうございました。 練習問題は来週までに時間があり次第チャレンジしてみようと思います 次回説明しますが、少し難しいので、是非、予習しておいてください。