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

Bài Tập Đặc Tả Hình Thức

13 2,7K 39

Đ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 13
Dung lượng 528,47 KB

Nội dung

Bài Tập Đặc Tả Hình Thức

Trang 1

1 Đặc tả tập hợp X gồm các số tự nhiên lẻ trong khoảng từ 100 đến 1000

2 Đặc tả tập hợp X gồm các số tự nhiên chẵn trong khoảng từ 100 đến 1000 (không xét 100

và 1000)

3 Đặc tả tập hợp P các số nguyên tố lớn hơn 100 và nhỏ hơn 65537

P = {x ∈ N | x > 100 ∧ x < 65537 ∧ IsPrime(x)}

4 Đặc tả phát biểu: Với bất kỳ số tự nhiên x, luôn tìm được số nguyên lẻ y không vượt quá x

5 Đặc tả phát biểu: Với bất kỳ số tự nhiên x, luôn tìm được số tự nhiên lẻ y không vượt quá x

6 Đặc tả phát biểu: Với bất kỳ số tự nhiên x, luôn tìm được số nguyên y nhỏ hơn x

7 Đặc tả phát biểu: Tồn tại số tự nhiên x sao cho x > 1000

8 Đặc tả phát biểu: Tồn tại số tự nhiên x sao cho x là số chẵn và x là số nguyên tố

9 Đặc tả phát biểu: Với bất kỳ số tự nhiên x và y, tìm được số tự nhiên z sao cho x + y < z

10 Đặc tả phát biểu: Với bất kỳ số tự nhiên x và y, luôn tìm được số tự nhiên z < x + y

∀ x ∈ N • ∀ y ∈ N • ∃ z ∈ N • z < x + y

Ghi chú: đối với các bài tập từ 4 đến 10, chỉ yêu cầu đặc tả đúng theo phát biểu, không xét

đến tính hợp lý của nội dung phát biểu

Trang 2

BÀI TẬP ĐẶC TẢ HÌNH THỨC #2

11 Đặc tả hàm kiểm tra số thực a lớn hơn hay bằng số thực b hay không

12 Đặc tả hàm trả về giá trị lớn nhất trong 3 số thực a, b, c

13 Đặc tả hàm trả về số nguyên tố lớn nhất không vượt quá số tự nhiên n cho trước hoặc trả

về -1 nếu không tìm được giá trị cần thiết

14 Đặc tả hàm kiểm tra năm n > 0 là năm nhuận hay không

15 Đặc tả hàm trả về số ngày tối đa của một tháng trong 1 năm nhuận

16 Đặc tả hàm trả về số ngày tối đa của tháng t trong 1 năm n > 0

17 Đặc tả hàm trả về số ngày chênh lệch từ ngày n1/t1 đến n2/t2 trong cùng năm (ví dụ: từ ngày 1/1 đến ngày 2/1 chênh lệch nhau 1 ngày)

18 Đặc tả hàm chuyển đổi từ milimetre sang metre

19 Đặc tả hàm trả về số dư khi thực hiện phép chia a/b (xét trên số tự nhiên)

20 Đặc tả hàm tính căn bậc 2 không âm của số thực x

Trang 3

21 Đặc tả hàm kiểm tra trong mảng a các số nguyên có tồn tại số không âm hay không

22 Đặc tả hàm tính tổng giá trị của 1 mảng a các số thực

23 Đặc tả hàm tính tổng các phần tử dương trong 1 mảng a các số thực

24 Đặc tả hàm tính tổng các số nguyên tố có trong mảng a các số tự nhiên

25 Đặc tả hàm kiểm tra 1 số tự nhiên x có xuất hiện trong mảng a các số tự nhiên hay không

26 Đặc tả hàm trả về chỉ số đầu tiên (nếu có) của giá trị x trong mảng a các số thực, hoặc trả

về giá trị 0 nếu không tồn tại giá trị x trong mảng a

27 Đặc tả hàm tính tổng các phần tử ở vị trí chẵn của mảng a các số thực

28 Đặc tả hàm trả về giá trị lớn nhất trong mảng a gồm các số thực

29 Đặc tả hàm trả về số chẵn lớn nhất trong mảng các số nguyên hoặc -1 nếu không có số chẵn

30 Đặc tả hàm kiểm tra xem mảng a có phần tử trùng nhau hay không

Trang 4

BÀI TẬP ĐẶC TẢ HÌNH THỨC #4

31 Giả sử không dùng hàm elems Hãy đặc tả hàm trả về tập hợp các giá trị có xuất hiện

trong mảng a

32 Đặc tả hàm trả về chỉ số của phần tử lớn nhất không dương trong mảng a hoặc trả về giá

trị 1 nếu mọi phần tử đều là số dương

33 Đặc tả hàm trả về chỉ số của phần tử nhỏ nhất không âm trong mảng a hoặc trả về giá trị

-1 nếu mọi phần tử đều là số âm

34 Đặc tả hàm trả về số chính phương lớn nhất không vượt quá số nguyên dương x cho trước

35 Đặc tả hàm trả về số nguyên tố nhỏ nhất lớn hơn hay bằng số tự nhiên n cho trước

36 Đặc tả hàm đếm số lượng năm nhuận từ năm a đến năm b (kể cả năm a và năm b) Chỉ xét

0 < a≤ b

37 Đặc tả hàm đếm số lượng số nguyên tố từ số tự nhiên a đến số tự nhiên b (tính luôn a và b với a ≤ b)

38 Đặc tả hàm tìm USCLN của các phần tử trong mảng a các số nguyên dương

39.Đặc tả hàm tìm BSCNN của các phần tử trong mảng a các số nguyên dương

40.Đặc tả hàm sắp xếp tăng dần mảng a các số thực.

Trang 5

41 Hãy đặc tả hàm trả sắp xếp mảng số thực A theo thứ tự giảm dần

42 Hãy đặc tả hàm sắp xếp mảng số thực A theo thứ tự giá trị tuyệt đối tăng dần

43 Hãy đặc tả hàm sắp xếp mảng số thực A theo quy luật sau:

- các số dương (nếu có) ở đầu mảng và có thứ tự giảm dần,

- các số âm (nếu có) ở cuối mảng và có thứ tự tăng dần

44 Hãy đặc tả hàm sắp xếp mảng số nguyên A theo quy luật:

- các số chẵn (nếu có) ở đầu mảng và có thứ tự tăng dần,

- các số lẻ (nếu có) ở cuối mảng và có thứ tự giảm dần

45 Hãy đặc tả hàm sắp xếp mảng số nguyên A theo quy luật:

- các số chẵn (nếu có) có thứ tự tăng dần,

- các số lẻ (nếu có) có thứ tự giảm dần

- tính chất chẵn/lẻ tại mỗi vị trí trong mảng A không thay đổi sau khi sắp xếp (tức là trước khi sắp xếp, tại vị trí i của mảng A là số chẵn/lẻ thì tại vị trí i của

mảng sau khi sắp xếp cũng là số chẵn/lẻ)

!Ví dụ: A = (1, 1, 2, 3, 4, 5, 6, 7)

Kết quả kq = (1, 1, 6, 3, 4, 5, 2, 7)

46 Hãy đặc tả hàm kiểm tra một chuỗi s có phải là chuỗi con của chuỗi t hay

không?

47 Hãy đặc tả hàm tạo ra chuỗi ký tự đảo ngược của chuỗi ký tự s

! Ví dụ: s = “123”, kết quả là kq = “321”

48 Một tiếng (word) là một chuỗi ký tự không có ký tự khoảng trắng Đặc tả hàm

chuẩn hóa một chuỗi ký tự s: xóa bỏ các ký tự khoảng trắng ở đầu và cuối chuỗi,

giữa các tiếng (word) có duy nhất một ký tự khoảng trắng

! Ví dụ: chuỗi s = “ Hello World” Kết quả kq = “Hello World”

49 Hãy đặc tả hàm đếm số tiếng (word) của một chuỗi ký tự s đã chuẩn hóa (chuỗi s không có ký tự khoảng trắng ở đầu và cuối chuỗi, giữa các tiếng (word)

chỉ có duy nhất một ký tự khoảng trắng)

! Ví dụ: s = “Hello World” gồm 2 tiếng

50 Hãy đặc tả hàm đếm số tiếng (word) của một chuỗi ký tự s chưa chuẩn hóa

Ghi chú: đặc tả theo 2 cách: sử dụng hàm phụ (ở câu 48) và không sử dụng hàm phụ (ở câu 48)

! Ví dụ: s = “University of Natural Sciences ” gồm 4 tiếng (word)

Trang 6

BÀI TẬP ĐẶC TẢ HÌNH THỨC #6

51 Đặc tả lại bài 48 với phương án sử dụng biến tạm để xóa ký tự khoảng trắng đầu chuỗi nếu có

52 Đặc tả yêu cầu bài 48 bằng phương pháp không tường minh mô tả tính chất của chuỗi kết quả

53 Đặc tả hàm trả về tiếng có độ dài lớn nhất (đầu tiên) trong một chuỗi ký tự s Nếu trong chuỗi s không có tiếng nào thì trả về chuỗi rỗng

54 Đặc tả hàm kiểm tra mảng số thực B là mảng con (gồm các phần tử liên tiếp nhau) của mảng số thực A

! Ví dụ: mảng B = [1, 2, 3] là mảng con của mảng A = [4, 5, 1, 2, 3, 7, 8]

mảng B = [1, 2, 3] không phải là mảng con của mảng A = [1, 4, 2, 5, 3, 8]

55 Đặc tả hàm trả về mảng con (gồm các phần tử liên tiếp nhau) tăng dần dài nhất trong

mảng số thực A

56a Đặc tả kiểu dữ liệu PHÂN-SỐ và hàm inv-PHÂN-SỐ kiểm tra tính hợp lệ của phân số

b Đặc tả hàm tính tổng (và rút gọn kết quả) của một mảng gồm các phân số

58a Đặc tả kiểu dữ liệu ĐIỂM và ĐƯỜNG-THẲNG trong không gian 2 chiều

b Đặc tả hàm kiểm tra một điểm có thuộc về một đường thẳng hay không (sử dụng kiểu dữ liệu đã định nghĩa)

59a Đặc tả kiểu dữ liệu ĐIỂM và TAM-GIÁC trong không gian 2 chiều

b Đặc tả hàm kiểm tra điều kiện tạo thành của một tam giác (3 đỉnh không thẳng hàng)

60a Đặc tả kiểu STACK chứa các số tự nhiên

b Đặc tả các thao tác sau:

POP: lấy phần tử ở đỉnh stack ra khỏi stack, trả về -1 nếu stack rỗng

PUSH: thêm 1 phần tử vào đỉnh stack, trả về TRUE nếu thành công và FALSE nếu

ngược lại

TOP: trả về giá trị của phần tử ở đỉnh stack (không xóa phần tử này ra khỏi stack), hoặc

trả về -1 nếu stack rỗng

ISEMPTY: kiểm tra stack rỗng hay không

ISFULL: kiểm tra stack đầy hay không

EMPTY: khởi tạo stack về trạng thái rỗng

Trang 7

61 Cho các kiểu dữ liệu sau:

Sinh-Viên ::

mã-SV: Mã-SV

họ-tênSV: Họ-Tên

Môn ::

mã-Môn: Mã-Môn tên-Môn: Tên-Môn hệ-số:

Học::

mã-SV: Mã-SV mã-Môn: Mã-Môn học-kỳ: {1, 2, 3, 4} năm-học: ℕ1

điểm:

Hãy đặc tả hàm trả về danh sách các mã môn học mà sinh viên có mã sinh viên là mã-SV đã

học

DanhSáchMãHọcPhần (mã-SV: Mã-SV ) kq: Mã-Môn-set

ext rd ds-học: Học*

pre

post kq = XLĐệQuy (mã-SV, ds-học)

XLĐệQuy (mã-SV: Mã-SV , ds-học: Học* ) kq: Mã-Môn-set

pre

post ((len ds-học = 0) ∧ (kq = {}))

∨ ((len ds-học > 0) ∧ (ds-học(1).mã-SV = mã-SV) ∧

(kq = {ds-học(1).mã-Môn} ∪ XLĐệQuy (mã-SV, tl ds-học)))

∨ ((len ds-học > 0) ∧ (ds-học(1).mã-SV ≠ mã-SV) ∧

(kq = XLĐệQuy (mã-SV, tl ds-học)))

62 Cho các kiểu dữ liệu sau:

Sinh-Viên ::

mã-SV: Mã-SV

họ-tênSV: Họ-Tên

Môn ::

mã-Môn: Mã-Môn tên-Môn: Tên-Môn hệ-số: ℕ

KQ-Học ::

mã-Môn: Mã-Môn học-kỳ: {1, 2, 3, 4} năm-học: ℕ1

điểm:

Cho trước ánh xạ kq-Học: Mã-SV ⎯⎯→m KQ-Học* thể hiện tất cả kết quả học tập của sinh viên (nếu sinh viên đã học một môn nhiều lần thì tất cả kết quả học của sinh viên trong môn học này đều được ghi nhận lại)

Hãy đặc tả hàm trả về danh sách các mã học phần mà sinh viên có mã sinh viên là mã-SV đã

học

DS-Mã-Môn-Đã-Học

(mã-SV: Mã-SV , kq-Học: Mã-SV⎯⎯→m KQ-Học* ) dsMãMôn : Mã-Môn-set

pre

post

dsMãMôn = {mã-Môn | ∃ ct-kq ∈ ( {mã-SV} kq-Học ) • ct-kq(mã-SV).mã-Môn = mã-Môn }

Trang 8

Câu 63 đến 65 :

Cho các kiểu dữ liệu

Học-Phần ::

mã-Học-Phần: char*

tên-Học-Phần: char*

số-TC :: ℕ1

Tên-Chuyên-Ngành = char*

DSHọcPhần-ChuyênNgành = Tên-Chuyên-Ngành ⎯⎯→m Học-Phần* cho biết danh sách các học phần (bắt buộc và tự chọn) của mỗi chuyên ngành

Cho trước ánh xạ ds-HọcPhần-ChuyênNgành ∈ DSHọcPhần-ChuyênNgành.

63 Hãy đặc tả hàm trả về số lượng học phần của chuyên ngành có tên là X cho trước

SL-Học-phần-của-Chuyên-ngành

(X : Tên-Chuyên-Ngành,

ds-HọcPhần-ChuyênNgành : Tên-Chuyên-Ngành ⎯⎯→m Học-Phần*) sl-Học-Phần :

64 Hãy đặc tả hàm kiểm tra xem chuyên ngành X và chuyên ngành Y có học phần nào chung

hay không

Kiểm-tra-Có-chung-Học-phần

(X : Tên-Chuyên-Ngành , Y : Tên-Chuyên-Ngành,

ds-HọcPhần-ChuyênNgành : Tên-Chuyên-Ngành ⎯⎯→m Học-Phần*) kq : B

65 Hãy đặc tả hàm trả về tên của chuyên ngành có số lượng học phần nhiều nhất (ghi chú : trong trường hợp có nhiều chuyên ngành có cùng số lượng học phần nhiều nhất, chỉ cần trả tên của một chuyên ngành trong số này)

Chuyên-Ngành-Nhiều-Học-Phần-Nhất

(ds-HọcPhần-ChuyênNgành : Tên-Chuyên-Ngành ⎯⎯→m Học-Phần*) tênHP : char*

Trang 9

Cho các kiểu dữ liệu sau :

Sinh-Viên ::

mã-SV: Mã-SV

họ-tênSV: char*

khóa-tuyển: ℕ1

Khoa::

mã-Khoa : Mã-Khoa tên-Khoa: char*

Cho các ánh xạ sau:

ds-Khoa : Mã-Khoa ⎯⎯→m Khoa

ds-SV : Mã-SV ⎯⎯→m Sinh-Viên

ds-SV-Thuộc-Khoa : Mã-Khoa ⎯⎯→m Mã-SV-set cho biết d/sách sinh viên thuộc từng Khoa

Lưu ý: trong các đặc tả dưới đây (từ câu 66 đến 70), có thể sử dụng các ánh xạ trên dưới dạng

các biến toàn cục (nếu cần)

66 Hãy đặc tả hàm trả về tổng số sinh viên thuộc một khóa tuyển cho trước

Tổng-Số-SV-Khoa (khóa-tuyển: ℕ) tổng-số-SV: ℕ

67 Hãy đặc tả hàm trả về số lượng sinh viên của Khoa với mã khoa là mã-Khoa cho trước

SL -SV-Khoa (mã-Khoa: Mã-Khoa) kq: ℕ

68 Hãy đặc tả hàm trả về ánh xạ số-lượng-SV-Khoa: Mã-Khoa ⎯⎯→m ℕ cho biết tổng số sinh viên theo từng Khoa

Tính-SL -SV-Khoa () số-lượng-SV-Khoa: Mã-Khoa ⎯⎯→m

69 Giả sử các khoa đều có tên phân biệt Hãy đặc tả hàm trả về mã khoa tương ứng với tên khoa cho trước

Tìm-Mã-Khoa-Theo-Tên (tên-Khoa: char* ): mã-Khoa: Mã-Khoa

70 Hãy đặc tả hàm trả về số lượng sinh viên trong khóa tuyển khóa-tuyển thuộc Khoa với tên Khoa là tên-Khoa cho trước Giả sử các khoa đều có tên phân biệt

SL-SV-Khoa-Trong-Khóa-Tuyển (tên-Khoa: char* , khóa-tuyển:ℕ1 ) sốlượngSV: ℕ

Trang 10

BÀI TẬP ĐẶC TẢ HÌNH THỨC #8

Bài 71 : Đặc tả kiểu dữ liệu NGAY Đặc tả điều kiện của một ngày hợp lệ

Bài 72: Đặc tả hàm trả về ngày tiếp theo sau 1 ngày cho trước

Bài 73: Đặc tả hàm trả về ngày thứ n (n >= 0) tiếp theo sau ngày cho trước

Bài 74: Đặc tả hàm trả về số ngày chênh lệch giữa 2 ngày cho trước

(ví dụ : ngày 1 : 1/1/2007, ngày 2 : 1/1/2006 " Kết quả : -365)

Bài 75: Cho biết ngày 12/5/2007 là ngày thứ bảy.Hãy đặc tả hàm trả về thứ của 1 ngày cho trước(trả về chuỗi ký tự)

Bài 76: Hãy đặc tả kiểu ĐƠN-THỨC & ĐA-THỨC

Bài 77: Đặc tả hàm tính đạo hàm (cấp 1) của 1 đa thức

Bài 78: Đặc tả hàm tìm tất cả các nghiệm (phân biệt) của 1 đa thức

Tập-Nghiệm ::

sốNghiệm:

Bài 79: Đặc tả hàm tính giá trị đa thức với giá trị x0 cho trước

Bài 80: Đặc tả hàm tính tích phân xác định của 1 đa thức trên đoạn [x1, x2]

Trang 11

Cho trước các đặc tả kiểu dữ liệu sau:

VERTEX =

GRAPH ::

n:

A: ℝ**

Giải thích:

n:là số lượng đỉnh trong đồ thị

A là ma trận kề, với quy ước: A(i)(j) = 0 nếu không có cung từ đỉnh i đến đỉnh j

A(i)(j) ≠ 0 là trọng số của cung từ đỉnh i đến đỉnh j

Bài 81: Đặc tả hàm kiểm tra đồ thị G có phải là đồ thị vô hướng hay không

Bài 82: Đặc tả hàm kiểm tra đồ thị G có chứa cạnh có trọng số âm hay không

Bài 83: Đặc tả hàm tính bậc của một đỉnh v trong đồ thị G cho trước

Degree (G: GRAPH, v: VERTEX) deg :

Bài 84: Tự đặc tả kiểu dữ liệu PATH để lưu trữ được một đường đi trên đồ thị Đặc tả hàm

tính độ dài một đường đi cho trước Lưu ý: đường đi bao gồm các cung liên tiếp nhau (và

phải tôn trọng hướng của cung)

Bài 85: Đặc tả hàm kiểm tra có tồn tại dây chuyền từ đỉnh u đến đỉnh v trong đồ thị G hay không Lưu ý:

- Các cung trên dây chuyền KHÔNG cần tôn trọng hướng

- Đồ thị G có thể vô hướng hoặc có hướng

Bài 86: Đặc tả hàm kiểm tra một đồ thị G có liên thông hay không Gợi ý: Trong đồ thị liên

thông, luôn tồn tại dây chuyền nối liền hai đỉnh phân biệt bất kỳ

Bài 87: Đặc tả hàm kiểm tra một đồ thị G có phải là cây hay không Gợi ý: cây là đồ thị liên

thông có đúng n-1 cạnh (với n là số lượng đỉnh của đồ thị)

Bài 88: Tự đặc tả kiểu dữ liệu SPANNING-TREE để lưu trữ một cây khung của đồ thị Đặc tả điều kiện hợp lệ inv-SPANNING-TREE cho kiểu dữ liệu này

Bài 89: Đặc tả hàm tính trọng số của một cây khung cho trước Đặc tả hàm xác định cây

khung nhỏ nhất (có tổng trọng số nhỏ nhất) của một đồ thị vô hướng G cho trước (không xử

lý khi đồ thị không liên thông)

Bài 90: Đặc tả hàm kiểm tra một đồ thị vô hướng G có tồn tại đường đi Euler hay không? Gợi

ý: đồ thị G có tồn tại đường đi Euler nếu G có 0 hoặc 2 đỉnh bậc lẻ.

Trang 12

BÀI TẬP ĐẶC TẢ HÌNH THỨC #10

Sử dụng các kiểu dữ liệu sau cho các câu từ 91 đến 95:

SÂN-VẬN-ĐỘNG ::

tên-Sân: char*

sức-chứa: ℕ1

TỶ-SỐ ::

số-bàn-thắng-đội-nhà : ℕ

số-bàn-thắng-đội-khách : ℕ

ĐỘI-BÓNG ::

tên-Đội: char*

sân-nhà : SÂN-VẬN-ĐỘNG

TRẬN-ĐẤU ::

đội-nhà : ĐỘI-BÓNG

đội-khách : ĐỘI-BÓNG

vòng-thi-đấu: ℕ1

tỷ-số : TỶ-SỐ

Ghi chú: Mỗi đội bóng thi đấu đúng 2 trận với các đội còn lại (một trận lượt đi trên sân khách, một trận lượt về trên sân nhà của

chính mình)

91 Đặc tả hàm tính số trận thắng của một đội bóng trong giải vô địch

92 Đặc tả hàm tính số trận hòa của một đội bong trong giải vô địch

93 Đặc tả hàm tính điểm của một đội bóng với quy định: mỗi trận thắng được 3 điểm, mỗi trận hòa được 1 điểm, mỗi trận thua không có điểm

94 Đặc tả hàm tính hiệu số bàn thắng bại của một đội bong

95 Đặc tả hàm sắp hạng các đội bóng theo điểm giảm dần Nếu nhiều đội cùng điểm thì xét tiếp các tiêu chí sau: hiệu số bàn thắng bại (giảm dần), số bàn thắng (giảm dần), kết quả trận đối kháng trực tiếp

Sử dụng kiểu dữ liệu dưới đây cho câu 96 và 97:

Xét một hệ điều hành đơn giản Cho trước đặc tả các kiểu dữ liệu biểu diễn thông tin của 1 tiến trình và ReadyList như sau:

PROCESS_ID =

PROCESS_INFO ::

pID : PROCESS_ID

CPUBurstTime:

READY_LIST = PROCESS_INFO*

Cho trước biến toàn cục ready-List : READY-LIST

96 Hãy đặc tả hàm FIFOScheduler cho phép chọn ra tiến trình theo chiến lược FIFO với

thông tin các tiến trình đang chờ sử dụng CPU trong ready-List

Ngày đăng: 23/03/2014, 21:25

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w