LẬP TRÌNH CĂN BẢN - Trang 151

/codegym.vn/ - 146

10.

}

11.

}

Với cách viết như trên, vòng lặp nào cũng sẽ không báo về việc tìm thấy hoặc không
tìm thấy từ vựng đã nhập. Lỗi này rất thường gặp ở những người mới học lập trình.
Để giải quyết tình huống trên, chúng ta chuyển việc thông báo kết quả ra khỏi vòng
lặp, và sử dụng từ khoá break để ngắt vòng lặp sau khi tìm thấy kết quả. Đoạn mã
được viết lại như sau:

1.

let

inpWord

=

prompt

(

"Nhập vào từ cần tra:"

);

2.

let

enWords

=

[

"Hello"

,

"Google"

,

"Code"

,

"Fun"

];

3.

let

viWords

=

[

"Xin chào"

,

"Google"

,

"Viết mã"

,

"Vui"

];

4.

let

foundIndex

=

-

1

;

5.
6.

for

(

let

i

=

0

;

i

<

enWords

.

length

;

i

++)

{

7.

if

(

enWords

[

i

]

===

inpWord

)

{

8. foundIndex

=

i

;

9.

break

;

10.

}

11.

}

12.

if

(

foundIndex

>

-

1

)

{

13. console

.

log

(

'Nghĩa của từ vựng là: '

+

viWords

[

foundIndex

]);

14.

}

else

{

15. console

.

log

(

'Không tìm thấy từ vựng đã nhập!'

);

16.

}

7. Bài thực hành

Bài 1: Tìm một giá trị trong mảng sử dụng thuật toán tìm kiếm nhị phân

Mục tiêu:
Luyện tập sử dụng thuật toán tìm kiếm nhị phân
Mô tả:
Cho trước 1 mảng các số nguyên đã được sắp xếp như sau:

array = [1, 2, 3, 4, 6, 7, 9, 11, 12, 14, 15, 16, 17, 19, 33, 34, 43, 45, 55, 66];

Hãy tìm số có giá trị bằng 9 được lưu trữ tại vị trí nào trong mảng.
Hướng dẫn:
Bước 1:
Xây dựng hàm binarySearch(data, intArray) có 2 tham số hình thức là giá trị
cần tìm và mảng các số nguyên đã được sắp xếp.

1.

function

binarySearch

(

data

,

intArray

)

{

2.

let

lowerBound

=

0

;

// chỉ số đầu

3.

let

upperBound

=

intArray

.

length

-

1

;

// chỉ số cuối

4.

let

midPoint

=

-

1

;

// chỉ số giữa

5.

let

index

=

-

1

;

// vị trí tìm thấy giá trị cần tìm trong mảng

6.
7.

while

(

lowerBound

<=

upperBound

)

{

8. midPoint

=

Math

.

floor

((

lowerBound

+

upperBound

)

/

2

);

9.

if

(

intArray

[

midPoint

]

==

data

)

{

10. index

=

midPoint

;

11.

break

;

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.