Hãy thiết kế và cài đặt một lớp tên Stock theo các yêu cầu sau: - Một biến kiểu chuỗi tên symbol để lưu giữ ký hiệu của cổ phiếu.. Viết chương trình để test lớp Stock vừa cài đặt: tạo mộ
Trang 1BÀI TẬP NGÔN NGỮ LẬP TRÌNH JAVA Câu 1 Hãy cho biết kết quả in ra màn hình khi thực thi đoạn chương trình sau và giải thích vì
sao có kết quả đó
public class Cau1{
private static int x = 20;
public static void main (String args[]){
Cau1.x ++;
Cau1 obj1 = new Cau1();
obj1.x ;
Cau1 obj2 = new Cau1();
obj2.x ;
obj1 = new Cau1();
obj1.x ;
System.out.println("x = " + x);
} }
Câu 2 Hãy cho biết kết quả in ra màn hình khi thực thi đoạn chương trình sau và giải thích
ngắn gọn tại sao có kết quả đó
public class Cau2{
public static void main (String args[]){
String s1 = "DHNT";
String s2 = new String("DHNT");
if ( s1 == s2)
System.out.println("true");
else
System.out.println("false");
} }
Câu 3 Hãy cho biết kết quả in ra màn hình khi thực thi đoạn chương trình sau và giải thích
ngắn gọn tại sao có kết quả đó
Trang 2public class Cau31{
Cau31(){
System.out.print("Superclass");
} public static void main (String args[]){
new Cau32();
} }
class Cau32 extends Cau31{
Cau32(){
System.out.print("Subclass");
} }
Câu 4 Hãy cho biết kết quả in ra màn hình khi thực thi đoạn chương trình sau và giải thích vì
sao có kết quả đó
public class Cau4{
public static void main (String args[]){
int i = 5;
TangGiaTri inc = new TangGiaTri();
inc.tang(i);
System.out.println("i = " +i);
} }
class TangGiaTri{
public void tang(int i){
i = i -2;
System.out.println("i = " +i);
} }
Câu 5 Hãy viết một ứng dụng Client/Server, sử dụng socket, theo các yêu cầu sau:
Trang 3- Chương trình Client: lặp đi lặp lại các công việc sau
Cho phép người dùng nhập vào một chuỗi ký tự;
Gửi chuỗi ký tự nhận được đến Server, nếu xâu nhập vào là “End”
(không phân biệt chữ hoa hay thường) thì kết thúc chương trình;
Nhận dữ liệu trả về từ Server và in ra màn hình;
- Chương trình Server:
Nhận kết nối từ Client;
Nhận chuỗi ký tự từ chương trình Client;
Đổi chuỗi ký tự sang chữ hoa và gửi về cho Client;
Kết thúc chương trình
Hãy trình bày cách test chương trình Client và Server vừa viết trong trường hợp chỉ sử dụng một máy và trường hợp client/server chạy trên hai máy đã nối mạng
Câu 6 Viết chương trình cho phép nhập ba số nguyên từ bàn phím và lưu vào ba biến tương ứng là num1, num2, num3 Chương trình sẽ sắp xếp ba số đó theo thứ tự num1 <= num2 <= num3 và xuất kết quả ra màn hình.
Câu 7 Viết chương trình cài đặt một danh bạ điện thoại đơn giản theo các yêu cầu sau:
- Mỗi mục từ (entry) trong danh bạ bao gồm Họ tên và Số điện thoại.
- Sử dụng lớp Vector trong gói java.util để lưu trữ các entry.
- Cung cấp các phương thức để thêm một entry vào danh bạ, nhận vào Họ tên và trả lại số điện thoại, phương thức để thay đổi số điện thoại cho người có Họ tên nào đó, phương thức để xóa một entry có Họ tên nào đó được truyền vào
- Viết lớp để kiểm tra danh bạ điện thoại vừa cài đặt: hiển thị một menu chọn lựa đơn giản: 1-thêm, 2-tìm kiếm, 3-sửa đổi, 4-xóa, 5-liệt kê danh bạ, 0-thoát; máy tính sẽ thực hiện các chức năng tương ứng với chọn lựa của người dùng
Câu 8 Viết chương trình nhập vào các số nguyên (không lưu vào dãy), đếm xem có bao nhiêu
số nguyên dương và số nguyên âm đã được nhập; tính và in ra màn hình tổng và giá trị trung bình của các số được nhập, không tính số 0 Chương trình kết thúc việc nhập khi gặp số 0 Hiển thị giá trị trung bình dưới dạng số chấm động, ví dụ: nếu nhập vào 1, 2, và 0 thì giá trị trung bình sẽ là 1.5.(R-bai8)
Câu 9 Viết chương trình nhập vào một số nguyên và hiển thị tất cả các thừa số nhỏ nhất của
nó Ví dụ: nếu số nguyên nhập vào là 120 thì kết quả xuất ra sẽ là 2, 2, 2, 3, 5(R-Programm13)
Câu 10 Hãy thiết kế và cài đặt một lớp tên Fan để biểu diễn cho một chiếc quạt như sau:
- Có ba hằng số tên SLOW, MEDIUM, FAST với giá trị tương ứng là 1, 2, và 3 chỉ
tốc độ của quạt
- Một biến nguyên tên speed để lưu giữ tốc độ hiện tại của quạt (mặc định là
SLOW).
- Một biến kiểu logic tên on để lưu giữ trạng thái bật/tắt của quạt (mặc định là tắt).
- Một biến kiểu số thực tên radius để chỉ bán kính của cánh quạt (mặc định là 5)
- Một biến kiểu chuỗi tên là color để chỉ màu sắc của chiếc quạt (mặc định là
blue).
Trang 4- Một phương thức khởi tạo không tham số để tạo một chiếc quạt với các thuộc tính mặc định
- Các phương thức để lấy và đặt giá trị của tất cả các trường thuộc tính
- Một phương thức tên là toString() trả lại một xâu mô tả về chiếc quạt Nếu chiếc
quạt đang được bật, phương thức này sẽ trả về tốc độ, màu sắc, và bán kính dưới dạng một xâu kết hợp Nếu chiếc quạt không được bật, phương thức trả về
màu sắc và bán kính cùng với xâu “fan is off” dưới dạng một xâu kết hợp Viết một chương trình để kiểm tra lớp Fan vừa cài đặt trong đó tạo ra hai đối tượng thuộc lớp Fan Gán tốc độ tối đa, bán kính là 10, màu sắc là yellow, và ở trạng thái bật/true cho đối tượng thứ nhất Gán tốc độ trung bình, bán kính là 5, màu sắc là white, và ở trạng thái
tắt/false cho đối tượng thứ hai Hiển thị thông tin mô tả các đối tượng bằng cách triệu gọi các
phương thức toString() của chúng.
Câu 11 Viết chương trình thỏa mãn các yêu cầu sau:
- Xây dựng một phương thức để xác định xem một số nguyên có phải là số nguyên tố hay không (là số chỉ chia hết cho 1 và chính nó)
- Sử dụng phương thức vừa viết ở trên để tìm 1000 số nguyên tố đầu tiên và in ra màn hình 10 số nguyên tố trên một hàng, dưới dạng như sau:
2 3 5 7 11 13 17 19 23 29
31 37 41 43 47 53 59 61 67 71
73 79 83 89 97
Câu 12 Xây dựng hai phương thức đảo ngược một dãy số nguyên theo hai cách khác nhau:
copy dãy đó vào một dãy mới và đảo ngược dãy nhưng không tạo ra dãy mới Viết đoạn chương trình để test các phương thức vừa tạo
Câu 13 Hãy thiết kế và cài đặt một lớp tên Stock theo các yêu cầu sau:
- Một biến kiểu chuỗi tên symbol để lưu giữ ký hiệu của cổ phiếu.
- Một biến kiểu chuỗi tên name để lưu giữ tên của cổ phiếu.
- Một biến kiểu thực tên previousClosingPrice để lưu giữ giá cổ phiếu của ngày
hôm trước
- Một biến kiểu thực tên currentPrice để lưu giữ giá cổ phiếu hiện tại.
- Một phương thức khởi tạo mặc định không tham số và một phương thức khởi tạo để tạo một cổ phiếu với ký hiệu và tên được định rõ (qua tham số)
- Các phương thức để truy cập giá trị của các trường thuộc tính
- Các phương thức để thay đổi giá trị của previousClosingPrice và
currentPrice.
- Một phương thức tên changePercent() để trả lại tỷ lệ thay đổi từ
previousClosingPrice đến currentPrice.
Viết chương trình để test lớp Stock vừa cài đặt: tạo một đối tượng thuộc lớp Stock với
ký hiệu là SUNW, tên là Sun Microsystems Inc, và giá của lần đóng cửa trước đó là 100 Đặt giá trị cổ phiếu hiện tại là 90 và hiển thị tỷ lệ thay đổi của giá cổ phiếu.
Câu 14 Viết chương trình để in ra màn hình bốn khuôn mẫu (pattern) như sau (mỗi pattern là
một đoạn chương trình):
Pattern I Pattern II Pattern III Pattern IV
1 1 2 3 4 5 6 1 1 2 3 4 5 6
Trang 51 2 1 2 3 4 5 2 1 1 2 3 4 5
1 2 3 1 2 3 4 3 2 1 1 2 3 4
1 2 3 4 1 2 3 4 3 2 1 1 2 3
1 2 3 4 5 1 2 5 4 3 2 1 1 2
1 2 3 4 5 6 1 6 5 4 3 2 1 1
Câu 15 Viết một phương thức cho chuyển một số nguyên hệ thập phân sang số hệ nhị phân
được biểu diễn dưới dạng một xâu Phương thức được khai báo dưới dạng như sau:
public static String convertDecimalToBinary(int value)
Viết đoạn chương trình để test phương thức trên với các giá trị: 8, 298, và 9123
Câu 16 Hãy thiết kế và cài đặt một lớp Loan theo các yêu cầu sau:
- Một biến kiểu số thực tên loanAmount để lưu số lượng tiền cho vay
- Một biến kiểu nguyên tên numberOfYears để lưu số năm cho vay
- Một biến kiểu thực tên annualInterestRate để lưu tỉ lệ lãi suất cho vay hàng
năm
- Một biến kiểu Date tên loanDate để lưu giữ ngày bắt đầu vay.
- Một phương thức khởi tạo mặc định không tham số: loanAmount = 1000,
annualInterestRate = 2.5 và numberOfYears = 1.
- Một phương thức khởi tạo để tạo một đối tượng kiểu Loan với loanAmount,
annualIntersetRate và numberOfYears được định rõ (qua tham số).
- Các phương thức để truy cập giá trị của các trường thuộc tính
- Các phương thức để thay đổi giá trị của các trường loanAmount,
numberOfYears, và annualInterestRate.
- Một phương thức tên monthlyPayment để trả lại số tiền phải trả hàng tháng.
Phương thức được khai báo dưới dạng như sau:
public static double monthlyPayment(double annualInterestRate, int numOfYears, double loanAmount)
- Một phương thức tên totalPayment để trả lại tổng số tiền phải trả Phương thức
được khai báo dưới dạng như sau:
public static double totalPayment(double annualInterestRate, int numOfYears, double loanAmount)
- Viết chương trình để test lớp Loan vừa cài đặt: nhập vào các giá trị như
annualInterestRate, numberOfYears, và loanAmount từ bàn phím; lấy ngày
giờ hệ thống để lưu vào biến loanDate In ra màn hình ngày giờ bắt đầu vay, số
tiền phải trả hàng tháng và tổng số tiển phải trả
Gợi ý cách tính tiền phải trả hàng tháng như sau:
A - số tiền cho vay
B - tỷ lệ lãi suất hàng năm
C - tỷ lệ lãi suất hàng tháng = B / 1200, ví dụ C = 8/1200 = 0.0066666666…
Trang 6D - số tháng vay
E - số tiền phải trả hàng tháng:
E = (C + C/( (1+C)^D – 1) ) * A
Ví dụ: A = 150,000 USD, tỷ lệ lãi suất hàng năm B = 8%, vậy tỷ lệ lãi suất hàng tháng là
C = 8/1200 = 0.0066666666…, vay trong vòng 30 năm hay D = 30*12 = 360 tháng Vậy
ta có:
E = (0.0066666666 + 0.0066666666 /((1 + 0.0066666666) ^360 -1) ) * 150,000 = 1,100.64 USD
Câu 17 Giả sử có 8 sinh viên làm bài thi trắc nghiệm gồm 10 câu hỏi, và các câu trả lời được
lưu trữ vào một mảng hai chiều Mỗi hàng lưu giữ các đáp án của một sinh viên cho các câu hỏi Ví dụ, mảng dưới đây lưu giữ kết quả của bài kiểm tra:
0 1 2 3 4 5 6 7 8 9
Student 0 'A', 'B', 'A', 'C', 'C', 'D', 'E', 'E', 'A', 'D'
Student 1 'D', 'B', 'A', 'B', 'C', 'A', 'E', 'E', 'A', 'D'
Student 2 'E', 'D', 'D', 'A', 'C', 'B', 'E', 'E', 'A', 'D'
Student 3 'C', 'B', 'A', 'E', 'D', 'C', 'E', 'E', 'A', 'D'
Student 4 'A', 'B', 'D', 'C', 'C', 'D', 'E', 'E', 'A', 'D'
Student 5 'B', 'B', 'E', 'C', 'C', 'D', 'E', 'E', 'A', 'D'
Student 6 'B', 'B', 'A', 'C', 'C', 'D', 'E', 'E', 'A', 'D'
Student 7 'E', 'B', 'E', 'C', 'C', 'D', 'E', 'E', 'A', 'D'
Đáp án cho các câu hỏi được lưu trữ vào một mảng một chiều: 'D', 'B', 'D', 'C', 'C', 'D', 'A', 'E', 'A', 'D'
Viết chương trình chấm điểm tự động cho các sinh viên trên, hiển thị các sinh viên và số đáp án đúng theo thứ tự tăng dần của số đáp án đúng
Câu 18 Hãy thiết kế và cài đặt một lớp Course thỏa mãn các yêu cầu sau:
- Một biến kiểu chuỗi tên name lưu giữ tên của khóa học.
- Một biến kiểu dãy các chuỗi tên students lưu giữ tên của các sinh viên tham gia
khóa học
- Một biến kiểu nguyên tên numberOfStudents lưu giữ số lượng sinh viên của
khóa học
- Một phương thức khởi tạo để tạo một đối tượng thuộc lớp Course với tên khóa
học được định rõ (qua tham số)
- Một phương thức tên getName để lấy tên của khóa học.
- Một phương thức tên setName để đặt (lại) tên của khóa học.
- Một phương thức tên addStudent để thêm một sinh viên vào khóa học.
- Một phương thức tên getStudents để trả lại danh sách các sinh viên của khóa
học
- Một phương thức tên getNumberOfStudents để trả lại số lượng sinh viên hiện
tại của khóa học
Trang 7Viết chương trình để test lớp Course vừa tạo với các yêu cầu chính như: tạo ít nhất hai đối tượng (chỉ hai khóa học khác nhau) của lớp Course, thêm các sinh viên vào hai khóa học đó,
hiển thị số lượng sinh viên của từng khóa học và danh sách các sinh viên tham gia khóa học
Câu 19 Viết một phương thức để tính tổng các chữ số của một số nguyên Phương thức được
khai báo dưới dạng như sau(R)
public static int sumDigits(int n)
Ví dụ, nếu gọi phương thức sumDigits(234) thì sẽ trả lại giá trị là 2 + 3 + 4 = 9 Viết đoạn chương trình để test phương thức trên
Câu 20 Viết một phương thức để tìm số lần xuất hiện của một ký tự trong một xâu Phương
thức được khai báo dưới dạng như sauR
public static int count(String str, char a)
Ví dụ, nếu gọi phương thức count(“Welcome”, ‘e’) thì sẽ trả lại giá trị là 2
Câu 21 Viết chương trình cho phép nhập vào một số nguyên dương và hiển thị lên màn hình
tất cả các thừa số nhỏ nhất của nó theo thứ tự giảm dần Ví dụ, nếu số nguyên được nhập vào
là 120 thì các thừa số nhỏ nhất được hiển thị là 5, 3, 2, 2, 2 Gợi ý: dùng lớp Stack trong gói
java.util để lưu giữ các thừa số rồi sau đó truy cập và hiển thị theo thứ tự đảo ngược.
Câu 22 Thiết kế và cài đặt các lớp theo yêu cầu sau:
- Một lớp tên Person và hai lớp con của nó có tên là Student và Employee.
Faculty và Staff là các lớp con của Employee.
- Một người (person) có tên, địa chỉ, số điện thoại, và địa chỉ email
- Một sinh viên (student) có cấp bậc lớp (freshman, sophomore, junior và senior) Định nghĩa cấp bậc như là một hằng
- Một người lao động (employee) có một chức vụ, tiền lương và ngày được tuyển dụng
- Định nghĩa một lớp tên MyDate chứa các trường year, month, và day.
- Một thành viên của khoa (faculty) có trường lưu giữ các giờ làm việc ở văn phòng (dưới dạng chuỗi) và một cấp bậc (lecturer, assistant professor, asscociate professor, professor)
- Một nhân viên (staff) có một chức vụ
- Viết đè phương thức toString() trong mỗi lớp để hiển thị tên lớp.
Viết một chương trình để test bằng cách tạo một đối tượng của mỗi lớp Person, Student, Employee, Faculty, và Staff, và gọi phương thức toString() của chúng
Câu 23 Viết một phương thức để trả lại một số nguyên đảo ngược Phương thức được khai
báo dưới dạng như sau (R
public static int reverse(int number)
Ví dụ, nếu gọi phương thức reverse(3456) thì sẽ trả lại số nguyên 6543 Viết đoạn chương trình
để test phương thức trên
Trang 8Câu 24 Xây dựng lớp RandomCharacter bao gồm các phương thức như sau:
- public static char getRandomCharacter(char ch1, char ch2) để trả lại một ký
tự ngẫu nhiên trong đoạn từ ký tự ch1 đến ch2.
- public static char getRandomLowerCaseLetter() để trả lại một ký tự thường
ngẫu nhiên
- public static char getRandomUpperCaseLetter() để trả lại một ký tự hoa ngẫu
nhiên
- public static char getRandomDigitCharacter() để trả lại một ký tự số ngẫu
nhiên trong đoạn từ ‘0’ đến ‘9’.
- public static char getRandomCharacter() để trả lại một ký tự ngẫu nhiên.
Viết chương trình để test lớp RandomCharacter ở trên: tạo 175 ký tự thường ngẫu nhiên và in ra màn hình, mỗi hàng 25 ký tự
Gợi ý: mỗi ký tự đều có một mã Unicode duy nhất trong đoạn từ 0 đến FFFF ở hệ 16 và ‘b’ – ‘a’
= 1
Câu 25 Viết chương trình cài đặt một danh bạ điện thoại đơn giản theo các yêu cầu sau:
- Mỗi mục từ (entry) trong danh bạ bao gồm Họ tên và Số điện thoại.
- Sử dụng lớp Hashtable trong gói java.util để lưu trữ các entry.
- Cung cấp các phương thức để thêm một entry vào danh bạ, nhận vào Họ tên và trả lại số điện thoại, phương thức để thay đổi số điện thoại cho người có Họ tên nào đó, phương thức để xóa một entry có Họ tên nào đó được truyền vào
- Viết lớp để kiểm tra danh bạ điện thoại vừa cài đặt: hiển thị một menu chọn lựa đơn giản: 1-thêm, 2-tìm kiếm, 3-sửa đổi, 4-xóa, 5-liệt kê danh bạ, 0-thoát; máy tính sẽ thực hiện các chức năng tương ứng với chọn lựa của người dùng
Câu 26 Viết một phương thức tính Ước số chung lớn nhất của hai số nguyên dương Phương
thức được khai báo dưới dạng như sau:R
public static int uscln(int m, int n)
Áp dụng phương thức vừa viết ở trên để viết phương thức tìm Bội số chung nhỏ nhất của hai số nguyên dương Viết đoạn chương trình để test hai phương thức trên
Câu 27 Viết một phương thức chuyển một xâu biểu số nguyên ở hệ nhị phân sang một số
nguyên ở hệ thập phân Phương thức được khai báo dưới dạng như sau:R
public static int parseBinary(String binaryString)
Ví dụ, nếu gọi parseBinary(“10001”) thì sẽ trả lại giá trị là 17 Lưu ý rằng Integer.parseInt(“10001”, 2) cũng sẽ trả lại giá trị là 17, không được dùng phương thức đó trong câu hỏi này
Câu 28 Thiết kế và cài đặt lớp có tên StackOfIntegers để đóng vai trò như là một ngăn xếp
(stack) lưu giữ các số nguyên với các yêu cầu sau:
- Một biến kiểu dãy có tên elements để lưu giữ các số nguyên trong stack.
Trang 9- Một biển kiểu nguyên có tên là size để lưu giữ số lượng hiện tại của các số
nguyên trong ngăn xếp
- Một phương thức khởi tạo không tham số để tạo một stack rỗng với dung lượng
mặc định là 16.
- Một phương thức khởi tạo có một tham số để tạo một stack rỗng với dung lượng được chỉ định
- Một phương thức tên empty() trả lại giá trị true nếu stack là rỗng
- Một phương thức tên peek() trả lại số nguyên ở đỉnh của stack nhưng không xóa
nó khỏi stack
- Một phương thức tên push(int value) để lưu giữ một số nguyên tại đỉnh của
stack
- Một phương thức tên pop() để trả lại số nguyên tại đỉnh của stack và loại bỏ
(remove) nó khỏi stack
- Một phương thức tên getSize() để trả lại số phần tử có trong stack.
Viết chương trình để test lớp StackOfIntegers vừa tạo bằng cách tạo ra một stack để lưu giữ các giá trị từ 0 đến 10; lấy các phần tử đó ra khỏi stack và in ra màn hình.
Sử dụng lớp StackOfIntegers đó để viết chương trình cho phép nhập vào một số
nguyên dương và hiển thị lên màn hình tất cả các thừa số nhỏ nhất của nó theo thứ tự giảm dần Ví dụ, nếu số nguyên được nhập vào là 120 thì các thừa số nhỏ nhất được hiển thị là 5, 3,
2, 2, 2
Câu 29 Viết hai phương thức nạp chồng (hay tải bội) để trả lại giá trị trung bình của một dãy sử
dụng các khai báo như sau:
public static int average(int[] array);
public static double average(double[] array);
Sử dụng {1, 2, 3, 4, 5, 6} and {6.0, 4.4, 1.9, 2.9, 3.4, 3.5} để test các phương thức trên
Câu 30 Viết chương tạo file nhị phân có tên Cau30.dat nếu nó chưa tồn tại Viết thêm dữ liệu
mới vào nó nếu file đó đã tồn tại Ghi một trăm số nguyên được tạo ngẫu nhiên (có giá trị trong khoảng từ 0 đến 99) vào file trên sử dụng luồng nhập xuất nhị phân Đọc lại tập tin vừa ghi lên, tính tổng các số nguyên được lưu trong file và ghi kết quả ra màn hình
Câu 31 Thiết kế và cài đặt lớp Coin với các yêu cầu sau:
- Một hằng nguyên tên HEADS = 0 để chỉ mặt ngửa
- Một hằng nguyên tên TAILS = 1 để chỉ mặt sấp
- Một biến nguyên tên face để lưu giữ trạng thái sấp hay ngửa của đồng xu.
- Một phương thức flip để tạo một giá trị ngẫu nhiên 0 hoặc 1 cho biến face (một hình thức để tung/lật đồng xu), có khai báo dạng: public void flip().
- Một phương thức khởi tạo để tạo một đồng xu với mặt ngẫu nhiên (sấp/ngửa)
- Một phương thức trả lại giá trị true nếu như mặt đồng xu là ngửa, có khai báo
dạng: public boolean isHeads().
- Một phương thức trả lại một xâu chỉ tình trạng hiện tại của đồng xu, nếu là ngửa
thì trả lại là “Heads”, nếu là sấp thì trả lại là “Tails”, có khai báo dạng: public String toString().
Viết chương trình có tên CountFlips.java để test lớp Coin vừa tạo ở trên với các yêu cầu sau: tạo một đối tượng (đồng xu) thuộc lớp Coin và tung/lật đồng xu đó 1000 lần, cho biết
số lần gặp mặt ngửa và sấp trong 1000 lần tung đồng xu đó.
Trang 10Viết chương trình có tên FlipRace.java sử dụng lớp Coin vừa tạo để giả lập một ván
chơi tung/lật đồng xu giữa người và máy:
- Tạo hai đồng xu: một đồng cho người chơi và một đồng cho máy tính
- Lặp đi lặp lại việc tung/lật ngẫu nhiên hai đồng xu trên cho đến khi có một hoặc hai đồng xu có ba lần tung/lật mặt ngửa liên tiếp nhau
- Đưa kết quả ván chơi ra màn hình: bên nào tung/lật 3 mặt ngửa liên tiếp nhau trước thì bên đó thắng cuộc, nếu lật 3 mặt ngửa liên tiếp cùng lúc thì hòa nhau
Câu 32 Viết một phương thức cho phép đổi từ milliseconds sang hours, minutes, và seconds
sử dụng khai báo như sau:
public static String convertMillis(long timeMillis)
Phương thức trả về một xâu dưới dạng hours:minutes:seconds với ít nhất hai chữ số để biểu diễn mỗi thành phần hours, minutes, và seconds Viết đoạn chương trình để test phương thức
trên Ví dụ: nếu gọi convertMillis(5500) thì phải trả lại xâu 00:00:05, gọi convertMillis(100000) thì trả lại 00:01:40, gọi convertMillis(555550000) thì trả lại 154:19:10
Câu 33 Một chuỗi được gọi là palindrom nếu như đọc xuôi hay ngược chuỗi đó đều giống như
nhau, ví dụ như: “mom”, “dad”, “noon” Viết chương trình cho phép nhập vào một chuỗi và
thông báo kết quả ra màn hình là chuỗi đó có phải là palindrom hay không với yêu cầu là
không phân biệt ký tự hoa hay thường
Câu 34 Thiết kế và cài đặt một lớp tên ClockS để biểu diễn đồng hồ theo các yêu cầu sau:
- Một đối tượng clock sẽ chỉ có 1 biến (thuộc tính): seconds
- Mỗi khi một đối tượng Clock mới được tạo, giá trị của biến seconds sẽ là 0 (giờ
bắt đầu từ nửa đêm)
- Phương thức có khai báo dạng: public void setTime(int h, int m, int s) để thiết lập một giờ mới Với h, m, s là các giá trị mới cho hours, minutes, và seconds
- Có 3 phương thức trả lại giá trị hiện thời của mỗi thành phần, có các khai báo
dạng: public int getHours(), public int getMinutes(), public int getSeconds().
- Phương thức có khai báo dạng public String getTime() để trả lại một xâu biểu diễn thời gian hiện tại được lưu giữ được trình bày theo khuôn dạng hh:mm:ss
- Phương thức có khai báo dạng: public int totalSeconds() để trả về trả về tổng
số giây tính từ thời điểm bắt đầu ngày mới (00:00:00) cho đến thời gian hiện tại
(đang được lưu giữ)
- Phương thức có khai báo dạng: public void addSeconds(int s) để thêm vào
thời gian hiện tại s giây; lưu ý: s có thể là số âm
Viết một lớp có tên TestClockS chứa phương thức main dùng để test các phương thức
vừa được định nghĩa ở trên
Câu 35 Viết một phương thức cho phép truyền vào một xâu và trả lại một xâu đã được sắp xếp
theo thứ tự alphabet, sử dụng khai báo dạng:
public static String sort(String s)
Ví dụ: gọi sort(“acb”) thì sẽ trả lại xâu “abc”