Day11 ウォームアップ(10分)

広告

※10分の使い方は、「進め方(10分の使い方)」を参照
※生成AIは使いません
※全部できなくてOK
※昨日より1行多く書けたら成功です


今日の準備(ウォームアップの前に)

  1. Day11.cs を追加する(ソリューションエクスプローラーで、ソリューションの下にある プロジェクト「MiniPractice」を右クリック → 追加 → クラス → 名前を Day11.cs
  2. Program.cs を開き、Main 内の Day10.Run() を Day11.Run() に書き換える

0) 開始30秒:骨格チェック(全員)

次の形になっているかだけ確認します。

internal class Day11
{
    public static void Run()
    {
        // ここに書く
    }
}
  • 処理は必ず Run() の { } の中 に書く

🔹 今日のルール

今日は Day11.cs を追加します。Day11.cs はソリューション内の 11つ目のファイル(クラス) になります。 その Run メソッドの { } の中に、すべてのコードを書いてください。

  • Run 以外のメソッドは作りません
  • 今は「形を揃える」時間です。中身より形を優先します

🔹 Day10 の振り返り(1分)

  • 最大値・最小値の初期化 … max = 0 だと負の数が含まれると誤る。max = scores[0]min = scores[0] で配列の先頭で初期化する
  • ループ内での更新 … min = scores[i] を毎回実行すると比較の意味がなくなる。if (scores[i] < min) min = scores[i]; で「より小さいときだけ」更新する
  • 1つのループで両方求める … max と min を同じループで更新できる。for (int i = 1; i < scores.Length; i++) の中で、if (scores[i] > max) と if (scores[i] < min) の両方を書く
  • ループの終了条件 … 最大値・最小値のループは scores.Length を使う。別の配列の長さを使わない

進め方(10分の使い方)

  • 最初の5分:教科書もノートも見ずに、自分の力だけで書いてみましょう。止まっても構いません。思い出そうとすることが大切です。
  • 後半5分:教科書・ノートを見てOKです。「どこを見ればよいか」「どう直せばよいか」を考えながら、完成に近づけましょう。

提出ルール(重要)

  • 提出A(最低ライン):問題1だけ動けばOK
  • 提出B(標準):問題1・2まで
  • 提出C(到達):問題1・2・3(余裕があれば発展)

※今日は「全部できる」より「動く形に戻す」が目的です。

  • 提出方法:GitHub Desktop で Commit → Push してください。1問解くごとにコミットすると講師が確認しやすいです(まとめて1回でもOK)。講師は GitHub でコードを確認します。
  • Slack:「Day11 完了しました」と一言送ってください(講師が確認のタイミングを把握するため)。

■ 問題1(基礎)

次の配列があります。

string[] seasons = { "春", "夏", "秋", "冬" };

この配列の要素を、foreach を使って1つずつ表示してください。

※Day1〜10と同じ形です。形を思い出しましょう。


■ 問題2(配列+条件の組み合わせ)

次の配列があります。

string[] drinks = { "お茶", "コーヒー", "ジュース", "ミルク", "オレンジジュース", "アイスティー", "水" };

名前が 4文字以上 かつ 7文字以下 のものだけを表示してください。

ヒント:if (drink.Length >= 4 && drink.Length <= 7) のように、2つの条件を && でつなぎます。drink.Length を使う(配列名の drinks.Length ではない)。条件に合うものだけを表示し、合わないものは何も表示しない。


■ 問題3(少し思考)

次の配列があります。

int[] scores = { 70, 85, 90, 65, 80 };

この配列の 最大値と最小値 を、1つの for ループ で同時に求めて表示してください。

ヒント:int max = scores[0]; と int min = scores[0]; で初期化し、for (int i = 1; i < scores.Length; i++) のループ内で、if (scores[i] > max) max = scores[i]; と if (scores[i] < min) min = scores[i]; の両方を書く。ループのに Console.WriteLine(max); と Console.WriteLine(min); で表示。


■ 発展(余裕がある人)

上の scores 配列について、最大値と最小値の差 を求めて表示してください。

ヒント:問題3で max と min を求めた後、int diff = max - min; で差を計算し、Console.WriteLine(diff); で表示する。


⚠️ よくある誤り(Day11 で想定)

  • drink と drinks の混同 … 条件で使うのは drink.Length(各要素の文字数)。drinks.Length は配列の要素数(7)
  • max・min をループ内で宣言 … ループ内だと毎回リセットされる。ループので宣言する
  • min の更新の誤り … min = scores[i] を毎回実行すると、常に最後の要素になる。if (scores[i] < min) min = scores[i];で、より小さいときだけ更新する
  • ループの終了条件 … scores.Length を使う。別の配列の長さ(例:drinks.Length)を使うと誤りになる

🎯 今日の目的

  • foreach の形を思い出せる
  • item と items を混同しない(各要素の Length を使う)
  • 最大値と最小値を1つのループで同時に求められる
  • 発展:差の計算に挑戦できる

訪問数 14 回, 今日の訪問数 27回

広告

C#

Posted by hidepon