Anh em giúp bài Java này với, nghĩ suốt cả tháng nay mà không làm thế nào giải được

Thảo luận trong 'Lập trình & Đồ hoạ' bắt đầu bởi Asiteru, 26/12/11.

  1. Asiteru

    Asiteru Youtube Master Race

    Tham gia ngày:
    11/11/07
    Bài viết:
    19
    Đây là đề thi lần 1 của trường ĐH BKHN, em sắp thi lại rồi nhưng loay hoay cả tháng nay vẫn chưa làm được bài này. Không biết làm thế nào nên post lên đây nhờ các anh giúp 1 tay với. Em cảm ơn các anh trước ạ:

    Q1:
    Lớp State0 có phương thức khởi dựng mặc định, in ra “Lop 0”.
    Lớp State1 kế thừa State0 có phương thức khởi dựng mặc định in ra “Lop 2”.
    Lớp State2 kế thừa State1 có phương thức khởi dựng mặc định in ra “Lop 1.
    Lớp State3 kế thừa State0 có phương thức khởi dựng mặc định in ra “Lop 3”.
    Lớp State4 kế thừa State0 có phương thức khởi dựng mặc định không in ra gì cả.

    Lớp State0 có phuơng thức show() in ra: “Lop 0”.
    Lớp State1 có phương thức show() in ra: ”Lop 3”.
    Lớp State2 có phuơng thức show() in ra: “Lop 2”.
    Lớp State3 có phương thức show() in ra: ”Lop 1”.
    Lớp State4 có phuơng thức show() in ra: “Lop 4”.

    Lớp A có phương thức khởi dựng sau:
    public void inRa(State0 s)
    {
    System.out.print(“Lop 3”);
    s = new State0( );
    System.out.print(“Lop 2”);
    }

    Lớp B kế thừa lớp A có phương thức khởi dựng như sau:
    public void inRa(State0 s)
    {
    System.out.print(“Lop 1”);
    s = new State2( );
    System.out.print(“Lop 0”);
    }

    Xây dựng lớp F1 và F2 như sau:
    class F1
    {
    public static A getA (int t)
    {
    if(t%2 == 1) return new A ( );
    return new B( );
    }
    }

    class F2
    {
    public static State0 getS (int t)
    {
    if((t <= (575%27))&&(t>(25%27)) return new State1( );
    if((t <= (529%27))&&(t<(113%27)) return new State2( );
    if(t%3 == 2) return new State3 ( );
    if(t%3 == 1) return new State4 ( );
    }
    }

    Xây dựng lớp Program có phương thức Main như sau:
    public static void main (string [] args)
    {
    State0 s;
    A objA;
    for (int j = 23; j<100; j++)
    {
    s = F2.getS(j);
    s.show( );
    objA = F1.getA(j);
    objA.inRa(s);
    }

    Gọi A, B, C, D, E là số lần in ra câu: “Lop 0”, “Lop 1”, “Lop 2”, “Lop 3”, “Lop 4”. Hãy xác định các giá trị của A, B, C, D, E.

    Q2 : Làm lại bài trên với sự thay đổi dưới đây :
    Lớp A có phương thức như sau :
    public void inRa (State0 s)
    {
    System.out.print(“Lop 3”);
    s.show( );
    s = new State0( );
    System.out.print(“Lop 2”)

    Lớp B kế thừa lớp A có phương thức như sau:
    public void inRa (State0 s)
    {
    System.out.print(“Lop 0”);
    s.show( );
    s = new State2( );
    System.out.print(“Lop 1”);
    }

    Q3: Liệu có thể chỉ bỏ 1 câu lệnh trong Q1 thì kết quả ở A, B, C, D trong câu Q1 sẽ giống với các kết quả trong câu Q2 được không? Nếu được thì bỏ câu lệnh nào?
     
  2. Kogo

    Kogo Youtube Master Race

    Tham gia ngày:
    28/7/09
    Bài viết:
    18
    Q 1:
    A = 77
    B = 102
    C = 39
    D = 65
    E = 0

    Q 2:
    Bỏ line s.show() ở Main đi
     
  3. kenlovef

    kenlovef Youtube Master Race

    Tham gia ngày:
    6/1/08
    Bài viết:
    9
    chủ topic test di. mình test ok đó
     
  4. Asiteru

    Asiteru Youtube Master Race

    Tham gia ngày:
    11/11/07
    Bài viết:
    19
    Em giải được bài này rùi, cám ơn các anh nhìu nhá :))
     
  5. conga333

    conga333 Youtube Master Race

    Tham gia ngày:
    26/9/09
    Bài viết:
    20
    mục đích test bài này là gì vậy, nhìn hoa cả mắc O.o, thằng nào cho ác thế, có ai coding mà rườm rà thế này không ?
     
  6. billgatevn25

    billgatevn25 Youtube Master Race

    Tham gia ngày:
    26/1/12
    Bài viết:
    38
    :)) Đề ra thì chắc là ông thầy code đấy bạn ạ :))
     
  7. Annoyer

    Annoyer Mr & Ms Pac-Man

    Tham gia ngày:
    4/3/10
    Bài viết:
    250
    Nơi ở:
    HCMC
    mới đầu đọc code tưởng newbie viết bài giải thực hành chứ, thì ra là đề thi lý thuyết =))
     

Chia sẻ trang này