SlideShare a Scribd company logo
1 of 12
Download to read offline
Các Vấn Đề Cơ Sở Của Khoa Học Máy Tính Th.S GVC Tô Oai Hùng
BAØI TAÄP CHÖÔNG 1
1. Viết giải thuật để mô tả thói quen mỗi buổi sáng của bạn, từ lúc nghe chuông đồng hồ báo
thức cho đến lúc bạn rời khỏi nhà để đi làm hay đi học.
2. Viết giải thuật tính để căn bậc hai của một số dương bất kỳ. Áp dụng giải thuật để tính giá
trị 2046, lấy đến 2 số lẻ. Không sử dụng thiết bị tính toán.
3. Tại sao nhà khoa học máy tính chú trọng đến cơ sở dữ liệu cũng cần phải biết về mạng máy
tính.
Các Vấn Đề Cơ Sở Của Khoa Học Máy Tính Th.S GVC Tô Oai Hùng
BAØI TAÄP CHÖÔNG 2
1. Viết mã giả cho giải thuật tìm căn bậc 2 của một số dương bất kỳ (phương pháp Newton–
Raphson).
2. Viết mã giả để tìm trung bình cộng của tập số bất kỳ.
3. Viết mã giả để tìm phần tử trung bình của tập có n số bất kỳ. Biết rằng, nếu n lẻ thì phần tử
trung bình là phần tử giữa của tập có thứ tự. Ngược lại, phần tử trung bình là trung bình
cộng của hai phần tử giữa của tập có thứ tự.
4. Cho biết độ phức tạp của giải thuật tìm phần tử trung bình trong câu 3?.
5. Giả sử giải thuật tìm trung bình cộng (mean) là (n) và giải thuật tìm phần tử trung bình
(median) là (nlog2n). Cho biết tỷ lệ về thời gian thực thi giữa hai giải thuật khi số
phần tử trong tập số là 1.000.000.
6. Một giải thuật sắp xếp đơn giản nhất là bubble sort (sắp xếp nổi bọt). Giải thuật sẽ quét qua
tất cả phần tử nhiều lần. Mỗi lần, giải thuật sẽ so sánh hai phần tử kề nhau để sắp thứ tự.
Cho ví dụ, có danh sách sau:
6 7 3 1 4
Bubble sort bắt đầu so sánh 6 với 7. Hai phần tử này đã có thứ tự, vì thế bubble sort sẽ so
sánh tiếp 7 với 3, bubble sort hoán đổi hai phần tử này. Tiếp tục so sánh 7 với 1, bubble
sort hoán đổi hai phần tử này. Tiếp tục so sánh 7 với 4, bubble sort hoán đổi hai phần tử
này. Sau một lần quét, kết quả là:
6 3 1 4 7
Quét từ trái sang phài lần nữa, kết quả là:
3 1 4 6 7
Quét từ trái sang phài lần nữa, kết quả là:
1 3 4 6 7
Đây cũng là kết quả cuối cùng. Hãy viết mã giả cho giải thuật bubble sort?
7. Cho biết độ phức tạp của giải thuật bubble sort?
8. Cho biết tỷ lệ về thời gian thực thi giữa giải thuật bubble sort và merge sort khi số phần tử
trong danh sách là 1.000.000 và có thứ tự ngẫu nhiên?
9. Tìm giải thuật để giải quyết vấn đề sau:
a) Cho một số nguyên dương n, tìm danh sách các số nguyên dương mà tích của nó là lớn
nhất trong tất cả danh sách của các số nguyên dương mà tổng của nó là n. Cho ví dụ:
a. Nếu n = 4, danh sách kết quả là {2, 2}. Vì 2  2 lớn hơn các danh sách có 1  1  1
 1; 2  1  1 và 3  1.
b. Nếu n = 5, thì danh sách kết quả là {2, 3}.
Các Vấn Đề Cơ Sở Của Khoa Học Máy Tính Th.S GVC Tô Oai Hùng
b) Danh sách kết quả như thế nào nếu n = 2001?
10. Những tên nào sau đây được đem ra so sánh trong câu lệnh
if list[midpoint] = searchItem
của giải thuật tìm kiếm nhị phân khi tên cần tìm là Joe:
Alice, Brenda, Carol, Duane, Evelyn, Fred, George, Henry,
Irene, Joe, Karl, Larry, Mary, Nancy, Oliver
11. Số lần tìm kiếm nhiều nhất của giải thuật tìm kiếm nhị phân khi số phần tử trong danh sách
là:
a) 200
b) 100.000
12. Các giá trị nào được in ra màn hình khi thực thi thủ tục đệ qui Exercise(N) nếu giá trị
của N lúc đầu được gán là 1?
procedure Exercise(N)
in giá trị của N
if (N < 3) then
Exercise(N + 1)
in giá trị của N
13. Cho biết những giải thuật nào có thời gian thực thi là: (log2n), (n) và (n2
)?
14. Đoạn chương trình sau dùng để tính thương của hai số nguyên dương trong phép chia
nguyên bằng cách đếm số lần mà số bị chia trừ cho số chia đến khi số bị chia nhỏ hơn số
chia. Cho ví dụ 7/3 = 2, bởi vì 7 - 3 - 3 = 1 (< 3). Hỏi kết quả là quotient của chương
trình có đúng không?
count  0;
remainder  dividend; // dividend = số bị chia
do
remainder  remainder – divisor;
count  count + 1
while (remainder >= divisor) // divisor = số chia
quotient  count // quotient = thương
15. Đoạn chương trình sau dùng để tính tích của hai số nguyên không âm X và Y bằng cách tích
lũy (cộng dồn) tổng X lần giá trị Y. Hỏi kết quả là product của chương trình có đúng
không?
product  Y // product = tích
count  1
while (count < X) do
product  product + Y;
count  count + 1
Các Vấn Đề Cơ Sở Của Khoa Học Máy Tính Th.S GVC Tô Oai Hùng
BAØI TAÄP CHÖÔNG 3
1. Viết số 6, 13, 11, 18, 27, 4, 229 ở dạng nhị phân (cơ số 2).
2. Giá trị thập phân (cơ số 10) của 0101, 1001, 1011, 0110,
10000, 10010, 11100101 là bao nhiêu?
3. Giá trị thập phân của 11.01, 101.111, 10.1, 110.011,
0.101 là bao nhiêu?
4. Viết các hỗn số sau ở dạng nhị phân: 2
1
4 , 4
3
2 , 8
1
1 , 16
5
0 , 8
5
5 .
5. Thực hiện các phép cộng nhị phân sau:
11011 1010.001 11111 111.11
+ + + +
1100 1.101 0001 00.01
6. Giá trị nhị phân của số 377 trong hệ bát phân (cơ số 8) là bao
nhiêu?
7. Giả sử số nguyên có dấu được biểu diễn bằng 16 bit.
a) Cho biết giá trị dương lớn nhất có thể biểu diễn.
b) Cho biết giá trị âm nhỏ nhất có thể biểu diễn.
c) Biểu diễn 17.440.
d) Biểu diễn -20.
8. Viết giá trị của các ký tự C, H và R trong bảng mã ASCII
dạng thập phân và nhị phân.
9. Tham khảo danh sách các lệnh của CPU Intel x86 ở dạng từ
gợi nhớ trong chương này, viết các lệnh để cộng hai giá trị
được chứa trong bộ nhớ tại địa chỉ 50 và 51. Kết quả ghi vào
địa chỉ 101.
10. Viết các lệnh để lấy giá trị chứa trong bộ nhớ tại địa chỉ 50
trừ cho giá trị tại địa chỉ 51. Kết quả ghi vào địa chỉ 101.
11. Cho biết ưu và khuyết điểm của máy tính có chiều dài từ
lớn?
12. Giả sử bộ nhớ cache có thời gian truy cập là 10 ns, bộ nhớ
chính có thời gian truy cập là 100 ns. Nếu tỷ lệ "hit rate" của
cache là 70. Tính thời gian trung bình truy cập bộ nhớ?
Lưu ý:
- hit rate – tỷ lệ phần trăm truy cập bộ nhớ được tìm
thấy.
- miss rate – tỷ lệ phần trăm truy cập bộ nhớ không được
tìm thấy.
1
Các Vấn Đề Cơ Sở Của Khoa Học Máy Tính Th.S GVC Tô Oai Hùng
2
- miss rate = 1 – hit rate.
13. Giả sử tốc độ máy tính 1GHz và trung bình có 3 chu kỳ cho
mỗi lệnh. Máy tính được kết nối với Internet tốc độ 10
Mbit/s. Có bao nhiêu lệnh được thực thi từ lúc máy tính nhận
bit đầu tiên cho đến khi máy tính nhận toàn bộ 1 ký tự (8
bit)?
14. Cho biết giá trị thập phân của các số bù hai sau: 00011,
01111, 11100, 11010, 00000, 10000?
15. Viết các giá trị thập phân sau ở dạng bù 2 sử dụng 8 bit: 6, -
6, -17, 13, -1, 0?
Các Vấn Đề Cơ Sở Của Khoa Học Máy Tính Th.S GVC Tô Oai Hùng
BAØI TAÄP CHÖÔNG 4
1. Sau đây là một hàm viết bằng ngôn ngữ C để tính tổng một dãy các số nguyên. Giả sử giá
trị các phần tử là chỉ số của nó và chỉ số phần tử bắt đầu begin luôn nhỏ hơn hay bằng chỉ
số phần tử cuối cùng end (begin  end):
int summation(int begin, int end)
{
int result = begin;
begin = begin + 1;
while( begin <= end )
{
result = result + begin;
begin = begin + 1;
}
return result;
}
Hãy viết lại hàm này bằng đệ qui thay vì dùng lệnh lặp.
2. Cho biết 3 bước chính trong quá trình biên dịch ngôn ngữ?
3. Hãy cho biết kết quả được sinh ra khi biên dịch chương trình trong các giai đoạn sau:
a) Từ bộ quét (scanner) đến bộ phân tích cú pháp (parser).
b) Từ bộ phân tích cú pháp đến bộ phân tích ngữ nghĩa (semantic analyzer).
4. Cho văn phạm sau:
expr  term + expr | term
term  factor * term | factor
factor  x|y|z|
Hãy vẽ đầy đủ cây phân tích cú pháp của biểu thức:
x * y + x + z
5. Cho văn phạm sau:
expr  term + expr | term
term  factor * term | factor
factor  (expr) | number
number  number digit | digit
digit  0|1|2|3|4|5|6|7|8|9
Hãy vẽ đầy đủ cây phân tích cú pháp của biểu thức:
2 * (3 + 5) + (6 + 8)
6. a) Giả sử danh sách gồm các giá trị nguyên dương. Hãy cho biết hàm whatsThis1 sau
được viết bằng ngôn ngữ Scheme thực hiện điều gì?
(define whatsThis1
1
Các Vấn Đề Cơ Sở Của Khoa Học Máy Tính Th.S GVC Tô Oai Hùng
2
(lambda (n)
(cond((null? n) 0)
((null? (cdr n)) (car n))
((> (car n) (whatsThis1 (cdr n))) (car n))
( else (whatsThis1 (cdr n)))
)))
b) Kết quả là bao nhiêu nếu lời gọi hàm là:
(whatsThis (list 1 2 4 5 3)
7. a) Hãy cho biết hàm whatsThis2 sau thực hiện điều gì?
(define whatsThis2
(lambda (n)
(if (zero? n) 0
(+ (whatsThis2 (- n 1)) (* n n))))
b) Kết quả là bao nhiêu nếu lời gọi hàm là:
(whatsThis2 3)
8. a) Hãy cho biết hàm whatsThis3 sau thực hiện điều gì?
(define whatsThis3
(lambda (n)
(if (<= n 1) n
(+ (whatsThis3 (- n 1)) (whatsThis3 (- n 2)))))
b) Kết quả là bao nhiêu nếu lời gọi hàm là:
(whatsThis3 4)
9. a) Hãy cho biết hàm whatsThis4 sau thực hiện điều gì?
(define whatsThis4
(lambda n k)
(cond ((zero? k) 1) ((= k n) 1)
(else (+ (whatsThis4 (- n 1) k)
(whatsThis4 (- n 1) (- k 1))))))
b) Kết quả là bao nhiêu nếu lời gọi hàm là:
(whatsThis4 0 0) và (whatsThis4 5 2)
Các Vấn Đề Cơ Sở Của Khoa Học Máy Tính Th.S GVC Tô Oai Hùng
BAØI TAÄP CHÖÔNG 5
1. Viết chương trình Java có khai báo hai biến dividend và divisor với giá tri tương ứng
là 74.3 và 12.6, thực hiện phép chia dividend cho divisor. Hiển thị kết quả ra màn
hình.
2. Viết chương trình Java để tính diện tích hình tròn có bán kính r = 5 với  = 3.14 và  =
Math.PI. Hiển thị kết quả ra màn hình.
3. Viết chương trình Java nhắc người sử dụng nhập vào một số nguyên. Sau đó, cho biết số
vừa nhập có phải là bội số của 5 hay không?
4. Viết chương trình Java nhắc người sử dụng nhập vào 5 chuỗi ký tự. Sau đó hiển thị các
chuỗi này theo thứ tự ngược với thứ tự đã nhập.
5. Viết chương trình Java phân loại phương tiện dựa trên số bánh xe. Chương trình nhắc
người sử dụng nhập số bánh xe và hiển thị loại phương tiện tương ứng:
- Xe có 2 hay 3 bánh: Mô tô.
- Xe có 4 bánh: Ô tô hay xe tải nhẹ.
- Xe có 6, 8, 10, 12, 14, 16 hay 18 bánh: Xe tải.
- Ngược lại, hiển thị thông báo lỗi.
6. Định nghĩa lớp Java có tên là Vehicle, gồm các thuộc tính và phương thức sau:
a) Thuộc tính:
 make: hãng sản xuất (String).
 model: kiểu xe (String).
 color: màu xe (String).
 speed: vận tốc (double).
 vehicleCount: đếm số xe đã sản xuất (int).
b) Phương thức:
 Định nghĩa phương thức tạo dựng: thiết lập các giá trị cho make, model, color dựa
vào giá trị của người sử dụng truyền đến và tăng số xe đã sản xuất thêm 1. Riêng
thuộc tính speed được gán trị 0.
 Định nghĩa bốn phương thức get() cho các thuộc tính make, model, color và
speed để trả về giá trị tương ứng.
 Định nghĩa phương thức changeSpeed() để nhận vào vận tốc mới và trả về hiệu
giữa vận tốc mới với vận tốc trước đó (speed). Sau đó thay đổi trị của speed thành
vận tốc mới.
 Định nghĩa phương thức main() để thực hiện yêu cầu sau:
- Tạo 3 đối tượng lần lượt với các giá trị cho make, model và color là:
("Ford", "Mustang", "red")
("BMW", "328i", "silver")
("Chrysler", "PT Cruiser", "gold" )
1
Các Vấn Đề Cơ Sở Của Khoa Học Máy Tính Th.S GVC Tô Oai Hùng
2
- Hiển thị số đối tượng hiện có của lớp Vehicle.
- Hiển thị hãng sản xuất của đối tượng 1, kiểu của đối tượng 2 và màu của đối
tượng 3.
- Thiết lập vận tốc của đối tượng 1 là 70.0 mph và hiển thị vận tốc đó.
- Ví dụ:
Hãng sản xuất v1: Ford
Kiểu của v2: 328i
Màu của v3: gold
Vận tốc của v1 là 70.0 mph.
7. Định nghĩa lớp Skateboard thừa kế từ lớp Vehicle. Nạp chồng phương thức
changeSpeed() để thể hiện của lớp Skateboard không bao giờ có vận tốc vượt quá 10
mph. Nếu người sử dụng cung cấp giá trị lớn hơn 10 mph, phương thức sẽ gán vận tốc của
Skateboard bằng 10 mph.
8. (*) Định nghĩa lớp Bus thừa kế từ lớp Vehicle. Một thể hiện của lớp Bus phải luôn có
thuộc tính driver (tài xế) kiểu String. Trong phương thức tạo dựng của lớp Bus phải có
mã lệnh lưu tên tài xế. Lớp Bus có phương thức get() và set() để lấy hoặc thay đổi tên
của tài xế. Định nghĩa phương thức main() để thực hiện yêu cầu sau:
- Tạo 2 đối tượng như sau:
Bus firstBus = new Bus( "Joe" );
Bus secondBus = new Bus( "Mercedes", "B302", "Black", "Mary");
- Hiển thị kết quả:
First bus: GM được Joe lái.
Second bus: Mercedes được Mary lái.
Các Vấn Đề Cơ Sở Của Khoa Học Máy Tính Th.S GVC Tô Oai Hùng
BAØI TAÄP CHÖÔNG 6
1. Giả sử người thiết kế CSDL đưa ra lược đồ cho bảng Sales trong một cửa hàng nào đó
như sau:
a) Lược đồ này ở dạng chuẩn 1 chưa?
b) Lược đồ này ở dạng chuẩn 2 chưa?
c) Lược đồ này ở dạng chuẩn 3 chưa?
d) Nếu lược đồ trên không phải dạng chuẩn 3, hãy thiết kế lại để thành dạng chuẩn 3.
2. Cho các lược đồ quan hệ như sau:
DonVi
MaDV TenDV MaNQL TruSo
5 Nghiên cứu NV002 Nam Định, Hà Nội, Bắc Ninh
4 Hành chính NV014 Hà Nội
1 Lãnh đạo NV061 Tp.HCM
a) Lược đồ này ở dạng chuẩn 1 chưa? Nếu chưa thì chuyển thành dạng chuẩn 1.
NhanVien_DuAn
MaNV MaDA HoTenNV TenDA SoGio DiaDiem
NV001 1 Nguyễn Văn Nam DA01 20 Hà Nội
NV003 2 Lê Thị Thanh DA02 28 TP.HCM
NV005 3 Hồ Văn Sơn DA03 25 Đà Nẵng
NV010 4 Trần Hoàng Sơn DA04 15 Huế
Sales
Item_ID Description Price Date Customer_Name Addr City St ZIP Phone
b) Sau khi đưa các lược đồ về dạng chuẩn 1, thì nó có ở dạng chuẩn 2 không?
c) Sau khi đưa các lược đổ về dạng chuẩn 2, thì nó có là dạng chuẩn 3 không?
3. Cho lược đồ quan hệ như sau:
NhanVien_DonVi (MaNV, MaDV, TenDV, HoTenNV, NgaySinh, DiaChi,
MaNQL)
Lược đồ này ở dạng chuẩn 3 chưa? Nếu chưa thì chuyển thành dạng chuẩn 3.
4. Cho lược đồ của hai bảng Deliveries và Delivery_Services:
1
Các Vấn Đề Cơ Sở Của Khoa Học Máy Tính Th.S GVC Tô Oai Hùng
Viết các lệnh SQL để tạo hai bảng trên. Chỉ định cột nào không thể có trị NULL, các ràng
buộc khoá chính và khoá ngoại. Chú ý là cột Delivery_Service trong bảng
Deliveries có cùng ý nghĩa như cột Name trong bảng Delivery_Service.
5. Cho một lược đồ cơ sở dữ liệu như sau:
Emp(EmpNo, Ename, Job, Mgr, HireDate, Sal, Benefit, DeptNo)
Dept(DeptNo, Dname, Loc)
SalGrade(Grade, Losal, Hisal)
Trong đó các quan hệ có ý nghĩa như sau:
- Emp: chứa các thông tin của nhân viên, bao gồm: mã nhân viên (EmpNo), tên nhân viên
(Ename), công việc (Job), mã người quản lý trực tiếp (Mgr), ngày vào làm (HireDate),
lương hàng tháng (Sal), phụ cấp hàng tháng (Benefit) và mã phòng ban (DeptNo) mà
nhân viên này đang làm việc.
- Dept: chứa các thông tin về phòng ban, bao gồm: mã phòng ban (DeptNo), tên phòng
ban (Dname), nơi đặt văn phòng (Loc).
- SalGrade: chứa các thông tin về mức lương, bao gồm: mã mức lương (Grade), lương
thấp nhất (Losal), lương cao nhất (Hisal).
Viết các lệnh SQL để tạo ba bảng trên.
6. Viết truy vấn SQL cho câu 3 theo các yêu cầu sau:
a) Nêu tên phòng ban mà nhân viên “Smith” làm việc.
b) Liệt kê toàn bộ thông tin của những nhân viên có tên bắt đầu bằng chữ “A”.
c) Liệt kê tất cả các phòng ban đóng tại thành phố Hồ Chí Minh.
d) Liệt kê mã nhân viên, tên nhân viên, tên phòng ban, lương và mã mức lương của tất cả
nhân viên theo thứ tự mã nhân viên tăng dần.
e) Liệt kê mã và tên những nhân viên không có phụ cấp hàng tháng. Biết rằng những nhân
viên có giá trị của cột Benefit bằng 0 hay Null đều được xem là không có phụ cấp.
f) Liệt kê những nhân viên có chức vụ thấp nhất trong công ty: nhân viên không làm quản
lý cho nhân viên nào cả.
g) Liệt kê các nhân viên có lương cao hơn mức lương trung bình của tất cả mọi nhân viên.
7. Cho một số lược đồ sau:
2
Deliveries
Date_Time Customer_ID Delivery_Service Cost Invoice_No Driver
Delivery_Services
Name Phone Addr City St ZIP Contact
Item
Item_ID Type Description Cost Consignment_Seller_ID Price_Sold
Các Vấn Đề Cơ Sở Của Khoa Học Máy Tính Th.S GVC Tô Oai Hùng
3
Sale
Invoice_No Customer_ID Date_Sold
Line_Item
Invocie_No Item_ID Unit_Price Quantity
Line_Item_Price
(tổng số tiền)
Consignment_Seller
Seller_ID Name Addr City State ZIP Fee_Percent
Viết truy vấn SQL theo các yêu cầu sau:
a) Cho biết tên và phần trăm tiền hoa hồng của tất cả người bán hàng ký gởi ở bang NY
theo thứ tự phần trăm tiền hoa hồng tăng dần.
b) Cho biết mã hàng và những mô tả thông tin của nó mà người bán tên là “Parker
Smith” và giá bán là NULL.
c) Cho biết tổng số tiền bán được trong tháng 3/2007.
d) Cho biết các mã hàng mà “Parker Smith” đã bán (tức giá bán khác NULL) trong
tháng 11/2007.

More Related Content

What's hot

Ngôn ngữ lập trình pascal (bổ trợ tin 11)
Ngôn ngữ lập trình pascal (bổ trợ tin 11)Ngôn ngữ lập trình pascal (bổ trợ tin 11)
Ngôn ngữ lập trình pascal (bổ trợ tin 11)Hong Phuoc Nguyen
 
Bài tập CTDL và GT 7
Bài tập CTDL và GT 7Bài tập CTDL và GT 7
Bài tập CTDL và GT 7Hồ Lợi
 
Bài tập CTDL và GT 12
Bài tập CTDL và GT 12Bài tập CTDL và GT 12
Bài tập CTDL và GT 12Hồ Lợi
 
Bai tapep ctunglop
Bai tapep ctunglopBai tapep ctunglop
Bai tapep ctunglopHồ Lợi
 
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuậtĐề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuậtHưởng Nguyễn
 
Baitap pascal cơ bản
Baitap pascal cơ bảnBaitap pascal cơ bản
Baitap pascal cơ bảnTường Anh
 
2 matlab ly-thuyet_laptrinh_hamtoanhoc_
2 matlab ly-thuyet_laptrinh_hamtoanhoc_2 matlab ly-thuyet_laptrinh_hamtoanhoc_
2 matlab ly-thuyet_laptrinh_hamtoanhoc_Thân Văn Ngọc
 
Bài tập CTDL và GT 13
Bài tập CTDL và GT 13Bài tập CTDL và GT 13
Bài tập CTDL và GT 13Hồ Lợi
 
Khao sat-ung-dung-matlab-trong-dieu-khien-tu-dong
Khao sat-ung-dung-matlab-trong-dieu-khien-tu-dongKhao sat-ung-dung-matlab-trong-dieu-khien-tu-dong
Khao sat-ung-dung-matlab-trong-dieu-khien-tu-dongKhoa Pham
 
[Pascal] sang tao1[v5.10]
[Pascal] sang tao1[v5.10][Pascal] sang tao1[v5.10]
[Pascal] sang tao1[v5.10]MasterCode.vn
 
Nhom lenh co ban
Nhom lenh co banNhom lenh co ban
Nhom lenh co banVũ Tích
 
Baigiang - bai4. Bài Toán Và Thuật Toán
Baigiang - bai4. Bài Toán Và Thuật ToánBaigiang - bai4. Bài Toán Và Thuật Toán
Baigiang - bai4. Bài Toán Và Thuật ToánVan Vo
 
Lap trinh matlab_co_ban_1731
Lap trinh matlab_co_ban_1731Lap trinh matlab_co_ban_1731
Lap trinh matlab_co_ban_1731Vu Tuan
 
Ngôn ngữ lập trình turbo pascal full
Ngôn ngữ lập trình turbo pascal fullNgôn ngữ lập trình turbo pascal full
Ngôn ngữ lập trình turbo pascal fullnataliej4
 

What's hot (19)

Ngôn ngữ lập trình pascal (bổ trợ tin 11)
Ngôn ngữ lập trình pascal (bổ trợ tin 11)Ngôn ngữ lập trình pascal (bổ trợ tin 11)
Ngôn ngữ lập trình pascal (bổ trợ tin 11)
 
Bài tập CTDL và GT 7
Bài tập CTDL và GT 7Bài tập CTDL và GT 7
Bài tập CTDL và GT 7
 
Baitap ktlt
Baitap ktltBaitap ktlt
Baitap ktlt
 
Bài tập CTDL và GT 12
Bài tập CTDL và GT 12Bài tập CTDL và GT 12
Bài tập CTDL và GT 12
 
Bai tapep ctunglop
Bai tapep ctunglopBai tapep ctunglop
Bai tapep ctunglop
 
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuậtĐề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
 
Baitap pascal cơ bản
Baitap pascal cơ bảnBaitap pascal cơ bản
Baitap pascal cơ bản
 
2 matlab ly-thuyet_laptrinh_hamtoanhoc_
2 matlab ly-thuyet_laptrinh_hamtoanhoc_2 matlab ly-thuyet_laptrinh_hamtoanhoc_
2 matlab ly-thuyet_laptrinh_hamtoanhoc_
 
Bài tập CTDL và GT 13
Bài tập CTDL và GT 13Bài tập CTDL và GT 13
Bài tập CTDL và GT 13
 
Baitapjava
BaitapjavaBaitapjava
Baitapjava
 
Khao sat-ung-dung-matlab-trong-dieu-khien-tu-dong
Khao sat-ung-dung-matlab-trong-dieu-khien-tu-dongKhao sat-ung-dung-matlab-trong-dieu-khien-tu-dong
Khao sat-ung-dung-matlab-trong-dieu-khien-tu-dong
 
[Pascal] sang tao1[v5.10]
[Pascal] sang tao1[v5.10][Pascal] sang tao1[v5.10]
[Pascal] sang tao1[v5.10]
 
Nhom lenh co ban
Nhom lenh co banNhom lenh co ban
Nhom lenh co ban
 
Cac lenh trong matlab
Cac lenh trong matlabCac lenh trong matlab
Cac lenh trong matlab
 
Baigiang - bai4. Bài Toán Và Thuật Toán
Baigiang - bai4. Bài Toán Và Thuật ToánBaigiang - bai4. Bài Toán Và Thuật Toán
Baigiang - bai4. Bài Toán Và Thuật Toán
 
Chuong 2
Chuong 2Chuong 2
Chuong 2
 
Lttt matlab bt1
Lttt matlab bt1Lttt matlab bt1
Lttt matlab bt1
 
Lap trinh matlab_co_ban_1731
Lap trinh matlab_co_ban_1731Lap trinh matlab_co_ban_1731
Lap trinh matlab_co_ban_1731
 
Ngôn ngữ lập trình turbo pascal full
Ngôn ngữ lập trình turbo pascal fullNgôn ngữ lập trình turbo pascal full
Ngôn ngữ lập trình turbo pascal full
 

Similar to Cac van de co so kh may tinh

Homework - C programming language
Homework - C programming languageHomework - C programming language
Homework - C programming languageLinh Lê
 
Bai tap thuc hanh nhap mon tin hoc
Bai tap thuc hanh nhap mon tin hocBai tap thuc hanh nhap mon tin hoc
Bai tap thuc hanh nhap mon tin hocHồ Lợi
 
On tap gui cho lop 1
On tap gui cho lop 1On tap gui cho lop 1
On tap gui cho lop 1luu bathao
 
Bai tap c.doc (đã phục hồi)
Bai tap c.doc (đã phục hồi)Bai tap c.doc (đã phục hồi)
Bai tap c.doc (đã phục hồi)Kieu Anh Nguyen
 
H hai epc_baitap
H hai epc_baitapH hai epc_baitap
H hai epc_baitapHồ Lợi
 
Giaotrinhbaitapkythuatlaptrinh
GiaotrinhbaitapkythuatlaptrinhGiaotrinhbaitapkythuatlaptrinh
GiaotrinhbaitapkythuatlaptrinhHồ Lợi
 
Bài tập nhập môn lập trình
Bài tập nhập môn lập trìnhBài tập nhập môn lập trình
Bài tập nhập môn lập trìnhLong Kingnam
 
300 BÀI CODE THIẾU NIÊN.pdf
300 BÀI CODE THIẾU NIÊN.pdf300 BÀI CODE THIẾU NIÊN.pdf
300 BÀI CODE THIẾU NIÊN.pdfHuyPhc9
 
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...Thanh Giảng Lê
 
De kiem tra 1 tiet tin 7
De kiem tra 1 tiet tin 7De kiem tra 1 tiet tin 7
De kiem tra 1 tiet tin 7Levin Duong
 
Chuong 1 Matlab co ban.pdf
Chuong 1 Matlab co ban.pdfChuong 1 Matlab co ban.pdf
Chuong 1 Matlab co ban.pdfHngTrn365275
 
Chuong 1 Matlab co ban.pdf
Chuong 1 Matlab co ban.pdfChuong 1 Matlab co ban.pdf
Chuong 1 Matlab co ban.pdfnguyenkaka2
 
Gt ung dung tin hoc trong kinh doanh
Gt ung dung tin hoc trong kinh doanhGt ung dung tin hoc trong kinh doanh
Gt ung dung tin hoc trong kinh doanhvantai30
 
Bai giang 4 thuat toan
Bai giang 4   thuat toanBai giang 4   thuat toan
Bai giang 4 thuat toanladoga
 
Thuat toan tin hoc
Thuat toan tin hocThuat toan tin hoc
Thuat toan tin hocladoga
 

Similar to Cac van de co so kh may tinh (20)

Homework - C programming language
Homework - C programming languageHomework - C programming language
Homework - C programming language
 
Bai tap thuc hanh nhap mon tin hoc
Bai tap thuc hanh nhap mon tin hocBai tap thuc hanh nhap mon tin hoc
Bai tap thuc hanh nhap mon tin hoc
 
On tap gui cho lop 1
On tap gui cho lop 1On tap gui cho lop 1
On tap gui cho lop 1
 
Huong danthuchanhmang
Huong danthuchanhmangHuong danthuchanhmang
Huong danthuchanhmang
 
Bai tap c.doc (đã phục hồi)
Bai tap c.doc (đã phục hồi)Bai tap c.doc (đã phục hồi)
Bai tap c.doc (đã phục hồi)
 
H hai epc_baitap
H hai epc_baitapH hai epc_baitap
H hai epc_baitap
 
Giaotrinhbaitapkythuatlaptrinh
GiaotrinhbaitapkythuatlaptrinhGiaotrinhbaitapkythuatlaptrinh
Giaotrinhbaitapkythuatlaptrinh
 
Bài tập nhập môn lập trình
Bài tập nhập môn lập trìnhBài tập nhập môn lập trình
Bài tập nhập môn lập trình
 
300 BÀI CODE THIẾU NIÊN.pdf
300 BÀI CODE THIẾU NIÊN.pdf300 BÀI CODE THIẾU NIÊN.pdf
300 BÀI CODE THIẾU NIÊN.pdf
 
Tin học lớp 8
Tin học lớp 8Tin học lớp 8
Tin học lớp 8
 
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
 
De kiem tra 1 tiet tin 7
De kiem tra 1 tiet tin 7De kiem tra 1 tiet tin 7
De kiem tra 1 tiet tin 7
 
temp.pdf
temp.pdftemp.pdf
temp.pdf
 
Chuong 1 Matlab co ban.pdf
Chuong 1 Matlab co ban.pdfChuong 1 Matlab co ban.pdf
Chuong 1 Matlab co ban.pdf
 
Chuong 1 Matlab co ban.pdf
Chuong 1 Matlab co ban.pdfChuong 1 Matlab co ban.pdf
Chuong 1 Matlab co ban.pdf
 
Tin11
Tin11Tin11
Tin11
 
Gt ung dung tin hoc trong kinh doanh
Gt ung dung tin hoc trong kinh doanhGt ung dung tin hoc trong kinh doanh
Gt ung dung tin hoc trong kinh doanh
 
Bai giang 4 thuat toan
Bai giang 4   thuat toanBai giang 4   thuat toan
Bai giang 4 thuat toan
 
Thuat toan tin hoc
Thuat toan tin hocThuat toan tin hoc
Thuat toan tin hoc
 
Ontap ltc
Ontap ltcOntap ltc
Ontap ltc
 

More from TunAnh346

Offshore wind-development-program-offshore-wind-roadmap-for-vietnam
Offshore wind-development-program-offshore-wind-roadmap-for-vietnamOffshore wind-development-program-offshore-wind-roadmap-for-vietnam
Offshore wind-development-program-offshore-wind-roadmap-for-vietnamTunAnh346
 
Giao trinh mat ma hoc an toan thong tin
Giao trinh mat ma hoc an toan thong tinGiao trinh mat ma hoc an toan thong tin
Giao trinh mat ma hoc an toan thong tinTunAnh346
 
Eia mekong vietnamese_online_2
Eia mekong vietnamese_online_2Eia mekong vietnamese_online_2
Eia mekong vietnamese_online_2TunAnh346
 
Bang phan loai rac thai bo bien
Bang phan loai rac thai bo bienBang phan loai rac thai bo bien
Bang phan loai rac thai bo bienTunAnh346
 
Bang phan loai rac thai bo bien
Bang phan loai rac thai bo bienBang phan loai rac thai bo bien
Bang phan loai rac thai bo bienTunAnh346
 
Chapter4 water
Chapter4 waterChapter4 water
Chapter4 waterTunAnh346
 
Baocaodienbien m tnuoc
Baocaodienbien m tnuocBaocaodienbien m tnuoc
Baocaodienbien m tnuocTunAnh346
 
Wef gci4 2019_profile_vnm_vietnam
Wef gci4 2019_profile_vnm_vietnamWef gci4 2019_profile_vnm_vietnam
Wef gci4 2019_profile_vnm_vietnamTunAnh346
 
Quocphong vietnam2019
Quocphong vietnam2019Quocphong vietnam2019
Quocphong vietnam2019TunAnh346
 
Xu ly nuoc thai modul 12
Xu ly nuoc thai modul 12Xu ly nuoc thai modul 12
Xu ly nuoc thai modul 12TunAnh346
 
Luyện phôi Nhôm
Luyện phôi NhômLuyện phôi Nhôm
Luyện phôi NhômTunAnh346
 

More from TunAnh346 (11)

Offshore wind-development-program-offshore-wind-roadmap-for-vietnam
Offshore wind-development-program-offshore-wind-roadmap-for-vietnamOffshore wind-development-program-offshore-wind-roadmap-for-vietnam
Offshore wind-development-program-offshore-wind-roadmap-for-vietnam
 
Giao trinh mat ma hoc an toan thong tin
Giao trinh mat ma hoc an toan thong tinGiao trinh mat ma hoc an toan thong tin
Giao trinh mat ma hoc an toan thong tin
 
Eia mekong vietnamese_online_2
Eia mekong vietnamese_online_2Eia mekong vietnamese_online_2
Eia mekong vietnamese_online_2
 
Bang phan loai rac thai bo bien
Bang phan loai rac thai bo bienBang phan loai rac thai bo bien
Bang phan loai rac thai bo bien
 
Bang phan loai rac thai bo bien
Bang phan loai rac thai bo bienBang phan loai rac thai bo bien
Bang phan loai rac thai bo bien
 
Chapter4 water
Chapter4 waterChapter4 water
Chapter4 water
 
Baocaodienbien m tnuoc
Baocaodienbien m tnuocBaocaodienbien m tnuoc
Baocaodienbien m tnuoc
 
Wef gci4 2019_profile_vnm_vietnam
Wef gci4 2019_profile_vnm_vietnamWef gci4 2019_profile_vnm_vietnam
Wef gci4 2019_profile_vnm_vietnam
 
Quocphong vietnam2019
Quocphong vietnam2019Quocphong vietnam2019
Quocphong vietnam2019
 
Xu ly nuoc thai modul 12
Xu ly nuoc thai modul 12Xu ly nuoc thai modul 12
Xu ly nuoc thai modul 12
 
Luyện phôi Nhôm
Luyện phôi NhômLuyện phôi Nhôm
Luyện phôi Nhôm
 

Cac van de co so kh may tinh

  • 1. Các Vấn Đề Cơ Sở Của Khoa Học Máy Tính Th.S GVC Tô Oai Hùng BAØI TAÄP CHÖÔNG 1 1. Viết giải thuật để mô tả thói quen mỗi buổi sáng của bạn, từ lúc nghe chuông đồng hồ báo thức cho đến lúc bạn rời khỏi nhà để đi làm hay đi học. 2. Viết giải thuật tính để căn bậc hai của một số dương bất kỳ. Áp dụng giải thuật để tính giá trị 2046, lấy đến 2 số lẻ. Không sử dụng thiết bị tính toán. 3. Tại sao nhà khoa học máy tính chú trọng đến cơ sở dữ liệu cũng cần phải biết về mạng máy tính.
  • 2. Các Vấn Đề Cơ Sở Của Khoa Học Máy Tính Th.S GVC Tô Oai Hùng BAØI TAÄP CHÖÔNG 2 1. Viết mã giả cho giải thuật tìm căn bậc 2 của một số dương bất kỳ (phương pháp Newton– Raphson). 2. Viết mã giả để tìm trung bình cộng của tập số bất kỳ. 3. Viết mã giả để tìm phần tử trung bình của tập có n số bất kỳ. Biết rằng, nếu n lẻ thì phần tử trung bình là phần tử giữa của tập có thứ tự. Ngược lại, phần tử trung bình là trung bình cộng của hai phần tử giữa của tập có thứ tự. 4. Cho biết độ phức tạp của giải thuật tìm phần tử trung bình trong câu 3?. 5. Giả sử giải thuật tìm trung bình cộng (mean) là (n) và giải thuật tìm phần tử trung bình (median) là (nlog2n). Cho biết tỷ lệ về thời gian thực thi giữa hai giải thuật khi số phần tử trong tập số là 1.000.000. 6. Một giải thuật sắp xếp đơn giản nhất là bubble sort (sắp xếp nổi bọt). Giải thuật sẽ quét qua tất cả phần tử nhiều lần. Mỗi lần, giải thuật sẽ so sánh hai phần tử kề nhau để sắp thứ tự. Cho ví dụ, có danh sách sau: 6 7 3 1 4 Bubble sort bắt đầu so sánh 6 với 7. Hai phần tử này đã có thứ tự, vì thế bubble sort sẽ so sánh tiếp 7 với 3, bubble sort hoán đổi hai phần tử này. Tiếp tục so sánh 7 với 1, bubble sort hoán đổi hai phần tử này. Tiếp tục so sánh 7 với 4, bubble sort hoán đổi hai phần tử này. Sau một lần quét, kết quả là: 6 3 1 4 7 Quét từ trái sang phài lần nữa, kết quả là: 3 1 4 6 7 Quét từ trái sang phài lần nữa, kết quả là: 1 3 4 6 7 Đây cũng là kết quả cuối cùng. Hãy viết mã giả cho giải thuật bubble sort? 7. Cho biết độ phức tạp của giải thuật bubble sort? 8. Cho biết tỷ lệ về thời gian thực thi giữa giải thuật bubble sort và merge sort khi số phần tử trong danh sách là 1.000.000 và có thứ tự ngẫu nhiên? 9. Tìm giải thuật để giải quyết vấn đề sau: a) Cho một số nguyên dương n, tìm danh sách các số nguyên dương mà tích của nó là lớn nhất trong tất cả danh sách của các số nguyên dương mà tổng của nó là n. Cho ví dụ: a. Nếu n = 4, danh sách kết quả là {2, 2}. Vì 2  2 lớn hơn các danh sách có 1  1  1  1; 2  1  1 và 3  1. b. Nếu n = 5, thì danh sách kết quả là {2, 3}.
  • 3. Các Vấn Đề Cơ Sở Của Khoa Học Máy Tính Th.S GVC Tô Oai Hùng b) Danh sách kết quả như thế nào nếu n = 2001? 10. Những tên nào sau đây được đem ra so sánh trong câu lệnh if list[midpoint] = searchItem của giải thuật tìm kiếm nhị phân khi tên cần tìm là Joe: Alice, Brenda, Carol, Duane, Evelyn, Fred, George, Henry, Irene, Joe, Karl, Larry, Mary, Nancy, Oliver 11. Số lần tìm kiếm nhiều nhất của giải thuật tìm kiếm nhị phân khi số phần tử trong danh sách là: a) 200 b) 100.000 12. Các giá trị nào được in ra màn hình khi thực thi thủ tục đệ qui Exercise(N) nếu giá trị của N lúc đầu được gán là 1? procedure Exercise(N) in giá trị của N if (N < 3) then Exercise(N + 1) in giá trị của N 13. Cho biết những giải thuật nào có thời gian thực thi là: (log2n), (n) và (n2 )? 14. Đoạn chương trình sau dùng để tính thương của hai số nguyên dương trong phép chia nguyên bằng cách đếm số lần mà số bị chia trừ cho số chia đến khi số bị chia nhỏ hơn số chia. Cho ví dụ 7/3 = 2, bởi vì 7 - 3 - 3 = 1 (< 3). Hỏi kết quả là quotient của chương trình có đúng không? count  0; remainder  dividend; // dividend = số bị chia do remainder  remainder – divisor; count  count + 1 while (remainder >= divisor) // divisor = số chia quotient  count // quotient = thương 15. Đoạn chương trình sau dùng để tính tích của hai số nguyên không âm X và Y bằng cách tích lũy (cộng dồn) tổng X lần giá trị Y. Hỏi kết quả là product của chương trình có đúng không? product  Y // product = tích count  1 while (count < X) do product  product + Y; count  count + 1
  • 4. Các Vấn Đề Cơ Sở Của Khoa Học Máy Tính Th.S GVC Tô Oai Hùng BAØI TAÄP CHÖÔNG 3 1. Viết số 6, 13, 11, 18, 27, 4, 229 ở dạng nhị phân (cơ số 2). 2. Giá trị thập phân (cơ số 10) của 0101, 1001, 1011, 0110, 10000, 10010, 11100101 là bao nhiêu? 3. Giá trị thập phân của 11.01, 101.111, 10.1, 110.011, 0.101 là bao nhiêu? 4. Viết các hỗn số sau ở dạng nhị phân: 2 1 4 , 4 3 2 , 8 1 1 , 16 5 0 , 8 5 5 . 5. Thực hiện các phép cộng nhị phân sau: 11011 1010.001 11111 111.11 + + + + 1100 1.101 0001 00.01 6. Giá trị nhị phân của số 377 trong hệ bát phân (cơ số 8) là bao nhiêu? 7. Giả sử số nguyên có dấu được biểu diễn bằng 16 bit. a) Cho biết giá trị dương lớn nhất có thể biểu diễn. b) Cho biết giá trị âm nhỏ nhất có thể biểu diễn. c) Biểu diễn 17.440. d) Biểu diễn -20. 8. Viết giá trị của các ký tự C, H và R trong bảng mã ASCII dạng thập phân và nhị phân. 9. Tham khảo danh sách các lệnh của CPU Intel x86 ở dạng từ gợi nhớ trong chương này, viết các lệnh để cộng hai giá trị được chứa trong bộ nhớ tại địa chỉ 50 và 51. Kết quả ghi vào địa chỉ 101. 10. Viết các lệnh để lấy giá trị chứa trong bộ nhớ tại địa chỉ 50 trừ cho giá trị tại địa chỉ 51. Kết quả ghi vào địa chỉ 101. 11. Cho biết ưu và khuyết điểm của máy tính có chiều dài từ lớn? 12. Giả sử bộ nhớ cache có thời gian truy cập là 10 ns, bộ nhớ chính có thời gian truy cập là 100 ns. Nếu tỷ lệ "hit rate" của cache là 70. Tính thời gian trung bình truy cập bộ nhớ? Lưu ý: - hit rate – tỷ lệ phần trăm truy cập bộ nhớ được tìm thấy. - miss rate – tỷ lệ phần trăm truy cập bộ nhớ không được tìm thấy. 1
  • 5. Các Vấn Đề Cơ Sở Của Khoa Học Máy Tính Th.S GVC Tô Oai Hùng 2 - miss rate = 1 – hit rate. 13. Giả sử tốc độ máy tính 1GHz và trung bình có 3 chu kỳ cho mỗi lệnh. Máy tính được kết nối với Internet tốc độ 10 Mbit/s. Có bao nhiêu lệnh được thực thi từ lúc máy tính nhận bit đầu tiên cho đến khi máy tính nhận toàn bộ 1 ký tự (8 bit)? 14. Cho biết giá trị thập phân của các số bù hai sau: 00011, 01111, 11100, 11010, 00000, 10000? 15. Viết các giá trị thập phân sau ở dạng bù 2 sử dụng 8 bit: 6, - 6, -17, 13, -1, 0?
  • 6. Các Vấn Đề Cơ Sở Của Khoa Học Máy Tính Th.S GVC Tô Oai Hùng BAØI TAÄP CHÖÔNG 4 1. Sau đây là một hàm viết bằng ngôn ngữ C để tính tổng một dãy các số nguyên. Giả sử giá trị các phần tử là chỉ số của nó và chỉ số phần tử bắt đầu begin luôn nhỏ hơn hay bằng chỉ số phần tử cuối cùng end (begin  end): int summation(int begin, int end) { int result = begin; begin = begin + 1; while( begin <= end ) { result = result + begin; begin = begin + 1; } return result; } Hãy viết lại hàm này bằng đệ qui thay vì dùng lệnh lặp. 2. Cho biết 3 bước chính trong quá trình biên dịch ngôn ngữ? 3. Hãy cho biết kết quả được sinh ra khi biên dịch chương trình trong các giai đoạn sau: a) Từ bộ quét (scanner) đến bộ phân tích cú pháp (parser). b) Từ bộ phân tích cú pháp đến bộ phân tích ngữ nghĩa (semantic analyzer). 4. Cho văn phạm sau: expr  term + expr | term term  factor * term | factor factor  x|y|z| Hãy vẽ đầy đủ cây phân tích cú pháp của biểu thức: x * y + x + z 5. Cho văn phạm sau: expr  term + expr | term term  factor * term | factor factor  (expr) | number number  number digit | digit digit  0|1|2|3|4|5|6|7|8|9 Hãy vẽ đầy đủ cây phân tích cú pháp của biểu thức: 2 * (3 + 5) + (6 + 8) 6. a) Giả sử danh sách gồm các giá trị nguyên dương. Hãy cho biết hàm whatsThis1 sau được viết bằng ngôn ngữ Scheme thực hiện điều gì? (define whatsThis1 1
  • 7. Các Vấn Đề Cơ Sở Của Khoa Học Máy Tính Th.S GVC Tô Oai Hùng 2 (lambda (n) (cond((null? n) 0) ((null? (cdr n)) (car n)) ((> (car n) (whatsThis1 (cdr n))) (car n)) ( else (whatsThis1 (cdr n))) ))) b) Kết quả là bao nhiêu nếu lời gọi hàm là: (whatsThis (list 1 2 4 5 3) 7. a) Hãy cho biết hàm whatsThis2 sau thực hiện điều gì? (define whatsThis2 (lambda (n) (if (zero? n) 0 (+ (whatsThis2 (- n 1)) (* n n)))) b) Kết quả là bao nhiêu nếu lời gọi hàm là: (whatsThis2 3) 8. a) Hãy cho biết hàm whatsThis3 sau thực hiện điều gì? (define whatsThis3 (lambda (n) (if (<= n 1) n (+ (whatsThis3 (- n 1)) (whatsThis3 (- n 2))))) b) Kết quả là bao nhiêu nếu lời gọi hàm là: (whatsThis3 4) 9. a) Hãy cho biết hàm whatsThis4 sau thực hiện điều gì? (define whatsThis4 (lambda n k) (cond ((zero? k) 1) ((= k n) 1) (else (+ (whatsThis4 (- n 1) k) (whatsThis4 (- n 1) (- k 1)))))) b) Kết quả là bao nhiêu nếu lời gọi hàm là: (whatsThis4 0 0) và (whatsThis4 5 2)
  • 8. Các Vấn Đề Cơ Sở Của Khoa Học Máy Tính Th.S GVC Tô Oai Hùng BAØI TAÄP CHÖÔNG 5 1. Viết chương trình Java có khai báo hai biến dividend và divisor với giá tri tương ứng là 74.3 và 12.6, thực hiện phép chia dividend cho divisor. Hiển thị kết quả ra màn hình. 2. Viết chương trình Java để tính diện tích hình tròn có bán kính r = 5 với  = 3.14 và  = Math.PI. Hiển thị kết quả ra màn hình. 3. Viết chương trình Java nhắc người sử dụng nhập vào một số nguyên. Sau đó, cho biết số vừa nhập có phải là bội số của 5 hay không? 4. Viết chương trình Java nhắc người sử dụng nhập vào 5 chuỗi ký tự. Sau đó hiển thị các chuỗi này theo thứ tự ngược với thứ tự đã nhập. 5. Viết chương trình Java phân loại phương tiện dựa trên số bánh xe. Chương trình nhắc người sử dụng nhập số bánh xe và hiển thị loại phương tiện tương ứng: - Xe có 2 hay 3 bánh: Mô tô. - Xe có 4 bánh: Ô tô hay xe tải nhẹ. - Xe có 6, 8, 10, 12, 14, 16 hay 18 bánh: Xe tải. - Ngược lại, hiển thị thông báo lỗi. 6. Định nghĩa lớp Java có tên là Vehicle, gồm các thuộc tính và phương thức sau: a) Thuộc tính:  make: hãng sản xuất (String).  model: kiểu xe (String).  color: màu xe (String).  speed: vận tốc (double).  vehicleCount: đếm số xe đã sản xuất (int). b) Phương thức:  Định nghĩa phương thức tạo dựng: thiết lập các giá trị cho make, model, color dựa vào giá trị của người sử dụng truyền đến và tăng số xe đã sản xuất thêm 1. Riêng thuộc tính speed được gán trị 0.  Định nghĩa bốn phương thức get() cho các thuộc tính make, model, color và speed để trả về giá trị tương ứng.  Định nghĩa phương thức changeSpeed() để nhận vào vận tốc mới và trả về hiệu giữa vận tốc mới với vận tốc trước đó (speed). Sau đó thay đổi trị của speed thành vận tốc mới.  Định nghĩa phương thức main() để thực hiện yêu cầu sau: - Tạo 3 đối tượng lần lượt với các giá trị cho make, model và color là: ("Ford", "Mustang", "red") ("BMW", "328i", "silver") ("Chrysler", "PT Cruiser", "gold" ) 1
  • 9. Các Vấn Đề Cơ Sở Của Khoa Học Máy Tính Th.S GVC Tô Oai Hùng 2 - Hiển thị số đối tượng hiện có của lớp Vehicle. - Hiển thị hãng sản xuất của đối tượng 1, kiểu của đối tượng 2 và màu của đối tượng 3. - Thiết lập vận tốc của đối tượng 1 là 70.0 mph và hiển thị vận tốc đó. - Ví dụ: Hãng sản xuất v1: Ford Kiểu của v2: 328i Màu của v3: gold Vận tốc của v1 là 70.0 mph. 7. Định nghĩa lớp Skateboard thừa kế từ lớp Vehicle. Nạp chồng phương thức changeSpeed() để thể hiện của lớp Skateboard không bao giờ có vận tốc vượt quá 10 mph. Nếu người sử dụng cung cấp giá trị lớn hơn 10 mph, phương thức sẽ gán vận tốc của Skateboard bằng 10 mph. 8. (*) Định nghĩa lớp Bus thừa kế từ lớp Vehicle. Một thể hiện của lớp Bus phải luôn có thuộc tính driver (tài xế) kiểu String. Trong phương thức tạo dựng của lớp Bus phải có mã lệnh lưu tên tài xế. Lớp Bus có phương thức get() và set() để lấy hoặc thay đổi tên của tài xế. Định nghĩa phương thức main() để thực hiện yêu cầu sau: - Tạo 2 đối tượng như sau: Bus firstBus = new Bus( "Joe" ); Bus secondBus = new Bus( "Mercedes", "B302", "Black", "Mary"); - Hiển thị kết quả: First bus: GM được Joe lái. Second bus: Mercedes được Mary lái.
  • 10. Các Vấn Đề Cơ Sở Của Khoa Học Máy Tính Th.S GVC Tô Oai Hùng BAØI TAÄP CHÖÔNG 6 1. Giả sử người thiết kế CSDL đưa ra lược đồ cho bảng Sales trong một cửa hàng nào đó như sau: a) Lược đồ này ở dạng chuẩn 1 chưa? b) Lược đồ này ở dạng chuẩn 2 chưa? c) Lược đồ này ở dạng chuẩn 3 chưa? d) Nếu lược đồ trên không phải dạng chuẩn 3, hãy thiết kế lại để thành dạng chuẩn 3. 2. Cho các lược đồ quan hệ như sau: DonVi MaDV TenDV MaNQL TruSo 5 Nghiên cứu NV002 Nam Định, Hà Nội, Bắc Ninh 4 Hành chính NV014 Hà Nội 1 Lãnh đạo NV061 Tp.HCM a) Lược đồ này ở dạng chuẩn 1 chưa? Nếu chưa thì chuyển thành dạng chuẩn 1. NhanVien_DuAn MaNV MaDA HoTenNV TenDA SoGio DiaDiem NV001 1 Nguyễn Văn Nam DA01 20 Hà Nội NV003 2 Lê Thị Thanh DA02 28 TP.HCM NV005 3 Hồ Văn Sơn DA03 25 Đà Nẵng NV010 4 Trần Hoàng Sơn DA04 15 Huế Sales Item_ID Description Price Date Customer_Name Addr City St ZIP Phone b) Sau khi đưa các lược đồ về dạng chuẩn 1, thì nó có ở dạng chuẩn 2 không? c) Sau khi đưa các lược đổ về dạng chuẩn 2, thì nó có là dạng chuẩn 3 không? 3. Cho lược đồ quan hệ như sau: NhanVien_DonVi (MaNV, MaDV, TenDV, HoTenNV, NgaySinh, DiaChi, MaNQL) Lược đồ này ở dạng chuẩn 3 chưa? Nếu chưa thì chuyển thành dạng chuẩn 3. 4. Cho lược đồ của hai bảng Deliveries và Delivery_Services: 1
  • 11. Các Vấn Đề Cơ Sở Của Khoa Học Máy Tính Th.S GVC Tô Oai Hùng Viết các lệnh SQL để tạo hai bảng trên. Chỉ định cột nào không thể có trị NULL, các ràng buộc khoá chính và khoá ngoại. Chú ý là cột Delivery_Service trong bảng Deliveries có cùng ý nghĩa như cột Name trong bảng Delivery_Service. 5. Cho một lược đồ cơ sở dữ liệu như sau: Emp(EmpNo, Ename, Job, Mgr, HireDate, Sal, Benefit, DeptNo) Dept(DeptNo, Dname, Loc) SalGrade(Grade, Losal, Hisal) Trong đó các quan hệ có ý nghĩa như sau: - Emp: chứa các thông tin của nhân viên, bao gồm: mã nhân viên (EmpNo), tên nhân viên (Ename), công việc (Job), mã người quản lý trực tiếp (Mgr), ngày vào làm (HireDate), lương hàng tháng (Sal), phụ cấp hàng tháng (Benefit) và mã phòng ban (DeptNo) mà nhân viên này đang làm việc. - Dept: chứa các thông tin về phòng ban, bao gồm: mã phòng ban (DeptNo), tên phòng ban (Dname), nơi đặt văn phòng (Loc). - SalGrade: chứa các thông tin về mức lương, bao gồm: mã mức lương (Grade), lương thấp nhất (Losal), lương cao nhất (Hisal). Viết các lệnh SQL để tạo ba bảng trên. 6. Viết truy vấn SQL cho câu 3 theo các yêu cầu sau: a) Nêu tên phòng ban mà nhân viên “Smith” làm việc. b) Liệt kê toàn bộ thông tin của những nhân viên có tên bắt đầu bằng chữ “A”. c) Liệt kê tất cả các phòng ban đóng tại thành phố Hồ Chí Minh. d) Liệt kê mã nhân viên, tên nhân viên, tên phòng ban, lương và mã mức lương của tất cả nhân viên theo thứ tự mã nhân viên tăng dần. e) Liệt kê mã và tên những nhân viên không có phụ cấp hàng tháng. Biết rằng những nhân viên có giá trị của cột Benefit bằng 0 hay Null đều được xem là không có phụ cấp. f) Liệt kê những nhân viên có chức vụ thấp nhất trong công ty: nhân viên không làm quản lý cho nhân viên nào cả. g) Liệt kê các nhân viên có lương cao hơn mức lương trung bình của tất cả mọi nhân viên. 7. Cho một số lược đồ sau: 2 Deliveries Date_Time Customer_ID Delivery_Service Cost Invoice_No Driver Delivery_Services Name Phone Addr City St ZIP Contact Item Item_ID Type Description Cost Consignment_Seller_ID Price_Sold
  • 12. Các Vấn Đề Cơ Sở Của Khoa Học Máy Tính Th.S GVC Tô Oai Hùng 3 Sale Invoice_No Customer_ID Date_Sold Line_Item Invocie_No Item_ID Unit_Price Quantity Line_Item_Price (tổng số tiền) Consignment_Seller Seller_ID Name Addr City State ZIP Fee_Percent Viết truy vấn SQL theo các yêu cầu sau: a) Cho biết tên và phần trăm tiền hoa hồng của tất cả người bán hàng ký gởi ở bang NY theo thứ tự phần trăm tiền hoa hồng tăng dần. b) Cho biết mã hàng và những mô tả thông tin của nó mà người bán tên là “Parker Smith” và giá bán là NULL. c) Cho biết tổng số tiền bán được trong tháng 3/2007. d) Cho biết các mã hàng mà “Parker Smith” đã bán (tức giá bán khác NULL) trong tháng 11/2007.