Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [C#] C# OOP v5 - Indexer 3 overload + Shape polymorphic

    Định nghĩa abstract class Shape có abstract double Area(). Lớp Circle (r), Rect (w,h), Tri (b,h) kế thừa Shape override Area: pirr (dùng Math.PI), wh, 0.5b*h. Định nghĩa lớp ShapeBag chứa List-style (dùng Shape[] với capacity). 3 indexer: this[int i] → Shape ở vị trí i; this[string name] với name ∈ {circle,rect,tri} → TỔNG diện tích tất cả shape loại đó; this[int lo, int hi] → TỔNG diện tích từ lo đến hi. Đọc n, n dòng "circle r" / "rect w h" / "tri b h". Đọc q, mỗi truy vấn "AT i" → in tên loại (circle|rect|tri); "TYPE name" → in tổng diện tích format "0.00" invariant; "RANGE lo hi" → in tổng format "0.00".

    • Định dạng đầu vào:

      Dòng 1: n. n dòng tiếp: shape. Dòng tiếp: q. q dòng truy vấn.

    • Ràng buộc đầu vào:

      1 <= n <= 100; 1 <= q <= 100; tham số shape là số nguyên 0..1000.

    • Định dạng đầu ra:

      Mỗi truy vấn in một dòng.

    Ví dụ:

    Đầu vào:

    3
    circle 1
    rect 2 3
    tri 4 5
    3
    AT 0
    TYPE rect
    RANGE 0 2
    

    Đầu ra:

    circle
    6.00
    19.14

    Giải thích:

    AT 0 = circle; TYPE rect = 6.00; RANGE 0..2 = pi + 6 + 10 ≈ 19.14.

    Đang tải editor...