1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Cac vn d c s ca khoa hc may tinh

12 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 12
Dung lượng 497,51 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Viết giải thuật tính để căn bậc hai của một số dương bất kỳ.. Viết mã giả để tìm trung bình cộng của tập số bất kỳ.. Viết mã giả để tìm phần tử trung bình của tập có n số bất kỳ.. Cho bi

Trang 1

BÀI TẬ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 tố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

Trang 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}

Trang 3

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

Trang 4

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: 4 2, 2 4, 1 8,0516, 5 8

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

Trang 5

- 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?

Trang 6

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

Trang 7

(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)

Trang 8

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", "PTCruiser", "gold" )

Trang 9

- 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

Trang 10

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

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,

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:

Trang 11

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:

Deliveries

Date_Time Customer_ID Delivery_Service Cost Invoice_No Driver

Delivery_Services

Name Phone Addr City St ZIP Contact

Item

Trang 12

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

Ngày đăng: 25/01/2022, 13:57

TỪ KHÓA LIÊN QUAN