Trong thuật toán tìm giá trị lớn nhất của dãy số nguyên với n = 8 và dãy a như sau

1. Khái niệm thuật toán:

Là một dãy hữu hạn các thao tác được sắp xếp  theo một trình tự xác định sao cho sau khi thực hiện một dãy các thao tác ấy, từ Input của bài toán, ta nhận được Output cần tìm.

Ví dụ: Tìm giá trị lớn nhất của một dãy số nguyên.

Xác định BT

- Input: Số nguyên dương N và dãy N số nguyên a1,a2,…,aN.

- Output: Giá trị lớn nhất Max của dãy số.

Ý tưởng

+ Khởi tạo giá trị Max= a1.

+ Lần lượt với i từ 2 đến N so sánh ai với Max, nếu ai>Max thì Max= ai.

Thuật toán:

a. Cách liệt kê:

+ B1: Nhập N và dãy a1,...,aN;

+ B2: Max Ñ a1, i Ñ 2;

+ B3:nếu i>N thì đưa giá trị Max rồi kết thúc;

+ B4:

   B4.1:Nếu ai>Max thì Maxß ai;

   B4.2: ißi+1 rồi quay lại bước 3;

ß: gán giá trị của biểu thức bên phải cho biến ở bên trái.

b. Sơ đồ khối

Thuật toán còn được diễn tả bằng sơ đồ khối.

 * Quy định:

+ Hình ô van            : các thao tác nhập, xuất dữ liệu.

+ Hình thoi               :Thao tác so sánh.

+ Hình chữ nhật          : :Các phép toán.

+ Mũi tên     : trình tự thực hiện các thao tác.

* Các tính chất của thuật toán :

+ Tính dừng: Thuật toán phải kết thúc sau một số hữu hạn lần thực hiện các thao tác.

+ Tính xác định: Sau khi thực hiện một thao tác thì hoặc là thuật toán kết thúc hoặc là có đúng một thao tác xác định để được thực hiện tiếp theo.

+ Tính đúng đắn: Sau khi thuật toán kết thúc ta phải nhận được Output cần tìm.

3. Một số ví dụ về thuật toán:

Ví dụ 1: Bài toán sắp xếp:

Cho dãy A gồm N số nguyên a1…aN. Cần sắp xếp các số hạng để dãy A trở thành dãy không giảm [số hạng trước không lớn hơn số hạng sau].

Thuật toán sắp xếp bằng tráo đổi:

Xác định bài toán

  - Input: dãy A gồm N số nguyên a1…aN

  - Output: dãy A được sắp xếp lại thành dãy không giảm

Ý tưởng: với mỗi cặp số hạng đứng liền kề trong dãy, nếu số trước lớn hơn số sau thì ta đổi chổ chúng . Việc đó lặp lại cho đến khi không có sự đổi chổ nào xảy ra nữa.

+ Thuật toán

a.      Liệt kê:

B1: Nhập vào n và dãy số nguyên a1, . . . ,aN;

B2: MßN;

B3: Nếu M M thì quay lại bước 3;

B7. Nếu ai > ai+1 thì tráo đổi cho nhau;

B8: Quay lại bước 5;

b.      Sơ đồ khối:

SGK trang 39

Vd: Sắp xếp dãy A: 6, 3, 2, 9, 8 thành dãy không giảm.

3. Một số ví dụ về thuật toán:

Ví dụ 2: Bài toán tìm kiếm:

Cho dãy A gồm N số nguyên khác nhau: a1…aN. và một số nguyên k. Cần biết có hay không chỉ số i mà ai=k. Nếu có hãy cho biết chỉ số đó.

Thuật toán tìm kiếm tuần tự:

Xác định bài toán

  - Input: dãy A gồm N số nguyên khác nhau: a1…aN và số nguyên k.

  - Output: chỉ số i mà ai=k hoặc thông báo không có số hạng nào của dãy A có giá trị là k.

Ý tưởng: lần lượt từ số hạng thứ nhất, ta so sánh giá trị số hạng đang xét với khoá cho đến khi hoặc gặp một số hạng bằng khoá hoặc dãy đã được xét hết và không có giá trị nào bằng khoá. Trong trường hợp thứ 2 dãy A không có số hạng nào bằng khoá..

+ Thuật toán

c.      Liệt kê:

B1: Nhập vào N, các số hạng a1, . . . ,aN và khóa k;

B2: iß1;

B3: Nếu ai=k thì thông báo chỉ số i rồi kết thúc;

B4. i ßi+1;

B5: Nếu i>N thì thông báo dãy A không có số hạng nào có giá trị bằng k rồi kết thúc;

B6: Quay lại bước 3;

d.      Sơ đồ khối:

SGK trang 41

Vd: dãy A: 6, 3, 2, 9, 8 khóa k=9 cho biết có hay không chỉ số i mà ai=k.

Viết thuật toán Tìm giá trị lớn nhất của dãy số nguyên sau N=8

7, 8 , 10, 6 ,5 ,11 ,5 ,4

1. Xác định bài toán - Input: Số nguyên dương N và dãy N số nguyên a1,..., aN. - Output: Giá trị lớn nhất Max của dãy số.

2. Thuật toán.

a/ Thuật toán giải bài toán này có thể được mô tả theo cách liệt kê như sau: Bước 1. Nhập N và dãy a1,…, aN; Bước 2. Max := a1, i := 2; Bước 3. Nếu i > N thì đưa ra giá trị Max rồi kết thúc; Bước 4. Bước 4.1. Nếu ai > Max thì Max := ai; Bước 4.2. i := i + 1 rồi quay lại bước 3; b/ Sơ đồ khối

Câu 1: Trong thuật toán tìm giá trị lớn nhất của dãy số nguyên. Với N=8 và dãy A như sau: 3 7 4 8 19 15 9 12 Khi thuật toán kết thúc thì Max và i nhận giá trị là bao nhiêu? A. Max=19 tại i=1 B. Max=19 tại i=5 C. Max=19 tại i=6 D. Max=19 tại i=4 Câu 2: Cho dãy A gồm các số sau: 4 7 9 1 6 3 Dựa vào thuật toán sắp xếp bằng tráo đổi để được 1 dãy tăng, hãy cho biết dãy thu được sau lần 1 duyệt dãy A trên: A. 4 1 6 3 7 9 B. 1 4 3 6 7 9 C. 4 7 1 6 3 9 D. 1 3 4 6 7 9 Câu 28: Trong thuật toán tìm kiếm tuần tự với N=8; K=6 và dãy A như sau: 4 9 7 1 6 3 5 8 Khi thuật toán kết thúc thì i nhận giá trị là bao nhiêu? A. 6 B. 5 C. 4 D. 8 Câu 3: Cho thuật toán sau: B1: Nhập 2 số nguyên a, b B2: Nếu a>b thì a a – b , ngược lại b  b – a B3: a  a * b B4: Thông báo giá trị a, b, rồi kết thúc. Với a = 7 và b = 10, kết quả của thuật toán là bao nhiêu? A. a = 3, b =10; B. a = 21, b = 3; C. a = 7, b = 3; D. a = 70, b = 3; Câu 4: Cho thuật toán diễn đạt bằng sơ đồ khối như sau. a. Với a = 10 và b = 7, kết quả của thuật toán là bao nhiêu? A. q = 1, r = 3; B. q = 0, r = 10; C. q = 1, r = 10. D. q = 3, r =10; b. Em hãy trình bày các bước liệt kê cho thuật toán trên Câu 5: Một chiếc USB có dung lượng 4GB. Dung lượng USB đó tương ứng với bao nhiêu MB? A. 4000 B. 4194304 C. 1048576 D. 4096 Câu 6: Biểu diễn thập phân của số nhị phân 11000012 là: A. 9610 B. 9710 C. 19410 D. 6710 Câu 7: Số 24110 được biểu diễn trong hệ đếm 16 là: A. 1F16 B. F116 C. 15116 D. 11516 Câu 8: Các thành phần cơ bản của một máy tính? A. CPU, màn hình, máy in, bàn phím, chuột B. CPU, bộ nhớ trong/ngoài C. CPU, bộ nhớ trong/ngoài, thiết bị vào/ra D. CPU, ổ cứng, màn hình, chuột, bàn phím Câu 9: Bộ xử lý trung tâm [CPU] là : A. Thiết bị nhập thông tin cho máy. B. Thiết bị chính thực hiện chương trình và điều khiển việc thực hiện chương trình. C. Nơi thông báo kết quả cho người sử dụng. D. Dùng để lưu trữ dữ liệu Câu 10: Trong máy tính, ổ đĩa cứng là thiết bị: A. Chuyên dùng để làm thiết bị vào B. chuyên dùng để làm thiết bị ra C. Dùng để lưu trữ dữ liệu D. Nơi thông báo kết quả cho người sử dụng. Câu 11: “… là nơi chương trình được đưa vào để thực hiện và là nơi lưu trữ dữ liệu đang được xử lý”. Cụm từ còn thiếu là? A. Bộ nhớ trong B. Bộ nhớ ngoài C. Bộ xử lý trung tâm D. Bộ nhớ Cache trả lời giúp mình vote đủ 5 sao,trả lời hay nhất

Trong thuật toán tìm giá trị lớn nhất của dãy số nguyên. Với N=8 và dãy A như sau: 3  7  4  8  19  15  9  12

Khi thuật toán kết thúc thì Max và chỉ số i nhận giá trị là bao nhiêu?

[0.5 Điểm]

a Max=19 và  i=9

b Max=19  và  i=5

c Max=19  và  i=1

d Max=19 và  i=6

Các câu hỏi tương tự

a]Xác định bài toán. [1đ]

Video liên quan

Chủ Đề