Bài toán sấp / ngửa với Pascal

29
Lập trình Pascal

Ba  bạn An, Bình và Cường cùng tham gia một trò chơi như sau: Mỗi bạn nắm trong tay một đồng xu,  mỗi đồng xu có hai trạng thái : sấp và ngửa. Theo hiệu lệnh, cả ba bạn cùng đưa đồng xu của mình ra phía trước. Nếu cả ba đồng xu cùng sấp hoặc cùng ngửa thì chưa phát hiện người thua cuộc (hòa nhau). Nếu một bạn có trạng thái đồng xu khác với hai bạn kia( nghĩa là đồng xu của bạn ấy sấp còn hai người kia ngửa và ngược lại đồng xu của bạn ấy ngửa thì hai người kia sấp) thì bạn đó thắng cuộc. Hãy viết chương trình mô phỏng trò chơi trên.

Thuật toán:

– Để mô phỏng trạng thái sấp, ngửa của đồng xu ta dùng hàm Random(1) hoặc dùng Random(n) mod 2 với n > 2.

– Xét 8 trường hợp xảy ra để tìm người thắng cuộc.

Program Sap_ngua;
uses crt;
Var A, B, C: byte;
Begin
     clrscr;
     Writeln('Go phim de xem ket qua: ');
     A:=Random(10); A:=A mod 2;
     B:=Random(10); B:=B mod 2;
     C:=Random(10); C:=C mod 2;
     Write('Ket qua: ',a,b,c);
     if (A=0) and (B=0) and (C=0) then Write(' Hoa');
     if (A=0) and (B=0) and (C=1) then Write(' C Thang');
     if (A=0) and (B=1) and (C=0) then Write(' B Thang');
     if (A=0) and (B=1) and (C=1) then Write(' A Thang');
     if (A=1) and (B=0) and (C=0) then Write(' A Thang');
     if (A=1) and (B=0) and (C=1) then Write(' B Thang');
     if (A=1) and (B=1) and (C=0) then Write(' C Thang');
     if (A=1) and (B=1) and (C=1) then Write(' Hoa');
     Readln;
     Readln
End.