Skip navigation.

exploreopera

| Help

Sign up | Help

Nếu

Nếu em là anh

Nếu em là con trai, và anh là con gái, em sẽ khen anh xinh đẹp mỗi ngày, dù sự thật có phải thế hay không. Và em sẽ phùng mang trợn mắt với ai dám chê bai anh của em.

Em sẽ luôn nắm tay anh ở chỗ đông người, không phải vì sợ anh lạc mất, mà để mọi người nhìn vào trầm trồ rằng “hai đứa nó đang yêu nhau đấy".

Em sẽ ngồi im nhìn anh khóc và làm nhiệm vụ tiếp tế khăn giấy cho anh mỗi khi chúng mình xem phim buồn, dù em thấy cái cảnh ấy chả có gì đáng rỏ nước mắt cả.

Em sẽ dắt anh đi ăn kem, ăn chè, ăn tất tật những thứ mà con gái đứa nào cũng thích và con trai đứa nào cũng ghét. Em sẽ ngồi ăn chung chứ không ngồi nhìn dù cái món ấy chả có gì ngon lành, vì em biết anh không thích phải ăn một mình.

Em sẽ cố gắng dùng hết nơron phân biệt của con trai để nhận ra hôm nay anh mặc một cái áo mới hay cắt tóc ngắn lên 2 cm, dù đa số trường hợp, sự cố gắng này là vô ích.

Em sẽ khen tóc anh dài ra thấy rõ khi anh hỏi, dù thật ra nó chẳng khác cái gì cả. Vì em biết anh mong tóc dài lắm lắm.

Em sẽ hồ hởi thức dậy vào lúc 4 h sáng để kêu anh dậy làm việc dù lúc đó em có dậy cũng chẳng biết làm gì.

Em sẽ lắng nghe anh huyên thuyên đủ thứ chuyện trên đời, về đủ thứ người mà em chưa một lần nghe tên chứ đừng nói biết mặt, bằng tất cả khả năng tập trung của một thằng con trai.

Em sẽ luôn thật lòng. Nếu một buổi sàng thức dậy, không thấy có anh trong tim nữa, em sẽ gọi điện cho anh và nói: “Này anh, mình xa nhau thôi.”.

Em sẽ không bao giờ hứa hẹn những điều xa xôi về năm, mười năm nữa. Em chỉ hứa những điều em làm được vì em biết con gái không thích hứa lèo.

Em không bao giờ thề thốt sẽ làm tất cả vì anh. Nhưng em sẽ làm như thế.

Nếu em là con trai, còn anh là con gái, thì sẽ như thế. Vậy em đang là con gái, và anh đang là con trai, thì sẽ như thế nào?

THẾ NÀY:


Anh sẽ luôn luôn nghĩ về em.

Anh sẽ luôn giúp đỡ em,cho dù anh có bận rộn đến đâu.

Anh sẽ luôn lắng nghe những gì em nói cho dù anh cũng đang gặp chuyện không hay.

Anh sẽ luôn là người để cho em trút giận.

Anh sẽ không giận em cho dù em nói dối anh.

Anh sẽ là tài xế cho em những khi em cần.

Anh sẽ là người quan tâm tới em nhất mỗi khi em gặp chuyện.

v...v...v...

ANH CHỈ SỢ DUY NHẤT 1 ĐIỀU LÀ EM KHÔNG CÓ TÌNH CẢM VỚI ANH MÀ THÔI!

những suy nghĩ đầy mâu thuẫn.Sẽ không bao giờ co kết thúc trừ khi trên thế gian này không còn tồn tại 2 chữ:YÊU THƯƠNG!

ví dụ anh.....thích......em

Đó là sự thật không thể chối cãi được rồi. Vì sao à? Bởi...

Trước khi quen anh, ý nghĩ đầu tiên của em khi ngủ dậy là: "Lại muộn học rồi". Còn bây giờ là: "Cầu trời mọi điều tốt đẹp đến với anh ấy hôm nay".

Trước khi quen anh, ý nghĩ cuối cùng của em trước khi ngủ là... chẳng kịp nghĩ thì đã ngủ khì mất. Còn bây giờ, hết quay trái, quay phải, hết tắt điện đi rồi lại bật điện lên chỉ vì phải đánh vật với câu hỏi mà em biết thừa chả bao giờ có câu trả lời: "Trong giấc mơ anh, có em... không?"

Trước khi quen anh, ngày nào em cũng than vãn vài chục lần câu "cuộc đời thật buồn bởi em chẳng có nổi một lý do nào để buồn". Bây giờ, thì em không thể hét nổi nữa bởi em đã tìm được hàng vạn lý do... Chẳng hạn... có lẽ mạng bị lỗi nên tin nhắn đến muộn. Nghe thì cái lý do này thật vô lý nhưng anh cứ thử thích em đi, anh sẽ biết ngay là em nói sai hay nói đúng.

Thế ví dụ... anh cũng thích em đi. Thì sao nhỉ? Chỉ ví dụ thôi nhé!

Ví dụ... anh thích em nhé, chỉ ví dụ thôi ấy, thì thể nào em cũng cười rất nhiều cho mà xem. Trên đời làm gì có ai buồn khi người mình thích cũng thích mình cơ chứ. Cuộc sống sẽ tràn ngập niềm vui. Chẳng phải những niềm vui còn được mang tên là "hạnh phúc" đó sao?

Ví dụ... anh thích em nhé, chỉ ví dụ thôi ấy, thì thể nào em cũng dịu dàng đi cho mà xem. Em sẽ chẳng bao giờ chí choé, cãi nhau ầm ĩ với mấy thằng bạn nữa, sẽ nói năng thật nhỏ nhẹ. Anh không tin em làm được đúng không? Thế thì phải thử mới biết được chứ.

Ví dụ... anh thích em nhé, chỉ ví dụ thôi ấy, lúc anh buồn có thể em sẽ chẳng làm cho anh vui lên được. Nhưng em có thể buồn cùng anh đấy. Mà một người buồn thì thật... chán. Hai người buồn chắc hẳn sẽ... vui hơn. Anh có tin vào điều ấy không? Nếu không thì cũng phải thử mới biết được.

Ví dụ... anh thích em nhé, chỉ là ví dụ thôi, có thể anh thấy lắm lúc em nói nhiều kinh khủng. Nhưng vào lúc anh muốn có một người lắng nghe, thì em vẫn có thể ngồi cạnh anh im lặng. Có thể, em sẽ chẳng làm được gì cho anh cả. Nhưng: I'll be there for you, this five word I swear to you (tạm hiểu là: Sẽ ở đó vì anh, đó là 5 từ mà em hứa với anh). Anh lại không tin à? Thế thì anh hãy một lần... thử đi. Anh sẽ biết kết quả ngay mà.

Ví dụ... anh thích em nhé, chỉ là ví dụ thôi ấy, có thể như anh thấy đấy - em là một con nhóc rất bình thường đôi khi còn ngốc nghếch nữa. Nhiều cái chẳng biết gì. Tại anh rất là thông minh. Nhưng nếu một lúc nào đó anh cảm thấy mệt mỏi... thì em sẽ dắt anh đến một nơi mà em đảm bảo chẳng có ai biết đâu. Một nơi không có nỗi buồn, không có điều gì khiến con người phải mệt mỏi. Anh cứ thử... thích em đi, rồi anh sẽ biết em nói dối hay nói thật.

Và cuối cùng... nếu anh thích em, không ví dụ đâu nhé! Đang nói thật đấy. Thì em rất muốn nói với anh một điều, một điều mà khi nào ví dụ thành sự thật em sẽ nói cho riêng mình anh nghe.

Cứ cho đi mà chẳng cần nhất thiết được nhận lại.

Cứ hy vọng đi để rồi có thể phải thất vọng.

Giao Thức Mạng

Mục đích và yêu cầu:
- Nắm được các khái niệm cơ bản nhất về mạng máy tính.
- Biết cách cài đặt giao thức TCP/IP và web server.


I. Khái niệm cơ bản:
1. Mạng máy tính: Là 2 hay nhiều máy tính được kết nối với nhau.
2. Máy chủ - Máy khách:

Trong mạng máy tính, máy chủ (hay còn gọi là server) là một máy tính được sử dụng để các máy tính khác truy cập. Các máy tính truy cập vào 1 máy chủ được gọi là máy khách.

Như vậy, 1 máy tính trong mạng có thể vừa là 1 máy chủ (khi có máy khác truy cập đến nó), vừa là một máy khách (nếu nó truy cập đến một máy tính khác). Vì vậy đừng nên nghĩ rằng máy chủ là 1 cái gì đó cao siêu cho mệt óc

3. Giao thức mạng:

Các máy tính trên mạng "nói chuyện" với nhau thông qua một ngôn ngữ đặc biệt gọi là các giao thức mạng. Có rất nhiều giao thức khác nhau, mỗi giao thức có 1 nhiệm vụ riêng. Ở đây tôi tạm chia ra làm 2 nhóm giao thức:
- Giao thức truyền dữ liệu, chuyên dùng để vận chuyển dữ liệu giữa 2 máy tính.
- Giao thức xử lý dữ liệu, có nhiệm vụ xử lý dữ liệu nhận được từ giao thức truyền dữ liệu

Túm lại: Không nên phát hoảng khi nghe thấy 2 từ giao thức. Chẳng qua nó chỉ là 1 dạng ngôn ngữ để trao đổi với nhau mà thôi. Và bạn cứ yên chí rằng nếu thích, bạn có thể tự định nghĩa ra một cái giao thức nào đó. Chẳng hạn như các chương trình chat của Yahoo, hay các chương trình remote trojan… Chúng tự đẻ ra các giao thức riêng dựa trên nền giao thức TCP/IP đấy.

4. Chùm giao thức TCP/IP

Giao thức TCP/IP là 1 giao thức được sử dụng để truyền dữ liệu giữa 2 máy tính. Theo giao thức này, mỗi máy tính sẽ có 1 địa chỉ xác định trên mạng gọi là địa chỉ IP. Địa chỉ IP là một cụm chữ số có dạng a.b.c.d (a,b,c,d là các số từ 0 đến 255). VD: 174.178.0.1.

Giao thức TCP/IP chỉ có nhiệm vụ duy nhất là truyền dữ liệu giữa 2 máy tính và đảm bảo giữ nguyên vẹn dữ liệu khi truyền đi. Ngoài ra nó chẳng cần biết dữ liệu đó là gì và được xử lý như thế nào.

Dựa trên khả năng vận chuyển của giao thức TCP/IP, người ta xây dựng nên một nhóm các giao thức khác chuyên xử lý dữ liệu nhận được từ TCP/IP, gọi là chùm giao thức TCP/IP hay họ giao thức TCP/IP.

Để phân chia các giao thức con trong chùm giao thức TCP/IP, người ta sử dụng một khái niệm khác gọi là Cổng giao thức. Đây là 1 con số nguyên từ 0 đến 32767 thì phải p:. Mỗi giao thức con trong chùm giao thức sẽ chiếm hữu một cổng riêng. Thông thường thì mỗi chương trình ứng dụng trên server sẽ chịu trách nhiệm mở một cổng TCP/IP, định nghĩa giao thức cho cổng đó, và sau đó là lắng nghe các yêu cầu từ máy khách và xử lý các yêu cầu đó.

Như vậy, trong hệ giao thức TCP/IP, một máy khách sẽ truy cập thành công đến máy chủ nếu như nó có địa chỉ IP và cổng đang mở của dịch vụ trên máy chủ.

Chẳng hạn: Với 1 máy chủ quản lý web (web server), chúng ta cần phải có một ứng dụng web gọi là web server. Ứng dụng này sẽ mở 1 cổng (mặc định là 80) và xử lý các tín hiệu đến từ cổng đó.

Bây giờ hãy nhấp 1 ngụm café cho tỉnh táo đã

II. Trang Web tĩnh và Trang Web động
1. Trang web tĩnh và trang web động

Bạn đã từng xây dựng một trang Web và đưa nó lên mạng? Trang web của bạn thật là thú vị (ít nhất là theo ý nghĩ của bạn ) và tất nhiên bạn muốn tham khảo ý kiến của người đọc? Chẳng nhẽ bạn lại cho số điện thoại và yêu cầu người góp ý phải gọi điện đến? Hic… Đảm bảo sẽ chẳng có ma nào thèm gọi điện.
Bạn muốn "xin" một ít thông tin về người duyệt Web… hic. Làm cách nào bây giờ???
Vâng, đó chính là nhược điểm của cái gọi là trang web tĩnh. Đó là các trang Web không cho phép bạn có thể tương tác với người dùng (chẳng hạn như là trao đổi hay thu thập các thông tin từ phía người dùng). Nó là các trang web có đuôi *.htm thông thường. Ngược lại, các trang Web động cho phép bạn nhận thông tin từ người dùng, xử lý thông tin đó, và có thể đáp trả lại các yêu cầu của họ. Xem ra nó cũng linh động ra phết đấy chứ?
Để làm được điều đó, tất nhiên là bạn phải … theo dõi các bài viết này

2. Lập trình Script

Các trang web nguyên thuỷ sử dụng ngôn ngữ định dạng chuẩn là HTML (HyperText Markup Language). HTML chuẩn chỉ bao gồm các cặp thẻ đánh dấu để định khuôn dạng của tài liệu. Tuỳ theo tên thẻ là gì mà trình duyệt sẽ tự động hiểu và làm các công việc do thẻ đó quy định. Chẳng hạn như cặp thẻ …. quy định đoạn văn bản trong đó sử dụng chữ đậm. Vì vậy, trên thực tế người ta không coi nó là một ngôn ngữ (vì nó chẳng liên quan gì đến những thứ mà ta hay gặp trong lập trình như biến, câu lệnh rẽ nhánh, lặp…). Cũng chính vì nguyên nhân này, nó phải tự mở rộng bằng cách cho phép "nhúng" vào bản thân nó một số đoạn mã lệnh chương trình đặc biệt, người ta thường gọi chúng là các đoạn mã Script hay các đoạn mã nhúng . Ngôn ngữ sử dụng trong các đoạn mã lệnh đó gọi là các ngôn ngữ Script. Các ngôn ngữ script thường đơn giản và không có nhiều sức mạnh như các ngôn ngữ "kinh điển" cùng tên, hay nói cách khác, chúng là một phần rất nhỏ của một ngôn ngữ nào đó được tích hợp vào trình duyệt để thực hiện một số thao tác nhất định.
Chi tiết về ngôn ngữ HTML đã có đầy rẫy trên Internet, cũng như ở các hiệu sách, nên chúng không được nhắc lại ở đây. Nếu các bạn chưa biết gì về nó thì bạn phải tìm đọc các tài liệu về HTML trước khi tiếp tục theo dõi khoá học này.

Lập trình Script ở máy khách

Như tên gọi của nó, lập trình script ở máy khách là viết các đoạn script chạy trên máy khách. Các đoạn mã này được máy chủ gửi kèm trong tài liệu, đưa về máy khách và được thực hiện ở đây.
Trong tài liệu gửi về trình duyệt, các đoạn mã này thường được tìm thấy trong cặp thẻ <Script language ="xxxxxx">…</Script>.
Có nhiều ngôn ngữ script phía máy khách. Nổi tiếng hơn cả là Javascript. Kế đến là VbScript và PerlScript.
Vì tài liệu này chủ yếu tập trung vào PHP - một ngôn ngữ script chạy trên máy chủ, nên chi tiết những ngôn ngữ này không được nhắc đến trong tài liệu. Riêng về JavaScript, các bạn có thể tìm thấy các tài liệu tiếng Việt qua trang tìm kiếm Vinaseek.com. Nếu có thời gian, tôi khuyên các bạn nên tìm hiểu về chúng. Rất nhiều xảo thuật bắt mắt có thể tìm thấy trong các đoạn mã này.


Lập trình Script ở máy chủ

Trái ngược với lập trình Script ở máy khách (thực thi mã lệnh ở máy khách), lập trình script ở máy chủ cho phép thực thi các đoạn mã ngay ở trên máy chủ. Không như các đoạn mã script hoạt động ở máy khách, các tài liệu có chứa các đoạn mã script phía máy chủ thường được lưu ở các file tài liệu có đuôi mở rộng riêng biệt, và các đoạn mã thi hành trên máy chủ cũng phải được đặt trong một cặp thẻ đặc biệt tuỳ theo quy định của chương trình xử lý. Chú ý rằng đối với mỗi loại ngôn ngữ server script sẽ có một chương trình xử lý riêng. Chẳng hạn các đoạn mã ASP thường được đặt trong các file *.asp, và chúng được xử lý bằng file ASP.dll.
Chi tiết về cách thức hoạt động của loại này, có thể tóm tắt như sau:
- Bước 1: Client gửi yêu cầu đến máy chủ
- Bước 2: Web server kiểm tra xem yêu cầu đó cần loại tài liệu nào. Nếu đó là loại tài liệu có chứa các đoạn mã server script, nó sẽ triệu gọi chương trình xử lý tương ứng với loại tài liệu đó
- Bước 3: Chương trình xử lý sẽ thực thi các đoạn mã server script trong tài liệu đó, và trả kết quả (thường là dưới khuôn dạng HTML) về cho web server.
- Bước 4: Web server trả kết quả tìm được cho Client và ngắt kết nối.
Bây giờ, 5 phút dành cho café. Ơ nhưng mà hết café rồi, hix, thôi đi ngủ vậy

Thuật toán nổi bọt

Sắp xếp nổi bọt (bubble sort) là một thuật toán sắp xếp đơn giản, so sánh hai phần tử đầu, nếu phần tử đứng trước lớn hơn phần tử đứng sau thì đổi chỗ chúng cho nhau. Tiếp tục làm như vậy với cặp phần tử tiếp theo cho đến cuối tập hợp dữ liệu. Sau đó, quay lại với hai phần tử đầu cho đến khi không còn cần phải đổi chỗ nữa. Nó có tên gọi này từ hình ảnh của các "bọt" khí nhẹ hơn được nổi lên trên. Nó sử dụng phép so sánh các phần tử nên là một sắp xếp kiểu so sánh.

Ví dụ:
Quá trình sắp xếp nổi bọt của 5 phần tử

Đề cho 1 dãy số gồm 5 số:
42,23,74,11,65 sắp xếp theo thứ tự tăng dần

Ta làm chi tiết như sau:
Giai đoạn 1 ( chạy cho 5 phần tử của dãy )
1.Đầu tiên so sánh 42 và 23 ,ta thấy 23 bé hơn nên đổi chỗ chúng cho nhau ("so sánh hai phần tử đầu, nếu phần tử đứng trước lớn hơn phần tử đứng sau thì đổi chỗ chúng cho nhau") ( cột 2 trong hình vẽ trên )
2.Sau đó so sánh 42 và 74 do 42<74 nên giữ nguyên vị trí ( cột 3 trong hình vẽ trên )
3.So sánh 74 với 11 ta thấy 11<74 nên đổi chỗ chúng cho nhau ( cột 4 trong hình vẽ trên )
4.Cuối cùng của giai đoạn này là so sánh 65 với 74 , 65<74 nên đảo vị trí chúng cho nhau ( cột 5 )
Giai đoạn 2 ( chạy cho 4 phần tử của dãy ,phần tử dưới cúng 74 làm xong rồi )
1.So sánh 23 và 42 do 23<42 nên vẫn giữ nguyên ( cột 6 )
2.So sánh 11 với 42 do 11 < 42 nên đổi vị trí chúng cho nhau ( cột 7 )
3.Cuối cùng của giai đoạn 2 là so sánh 42 và 65 do 42<65 nên vẫn giữ nguyen vị trí của chúng ( cột 8 )
Giai đoạn 3 ( chạy cho 3 phần tử )
1.So sánh 11 với 23 do 11<23 nên tróa chỗ cho nhau ( cột 9 )
2.So sánh 23 với 42 do 42> 23 nên vẫn giữ nguyên vị trí của chúng ( cột 10)
Giai đoạn cuối cùng ( chạy cho 2 phần tử ,và do đó thì chỉ có 1 bước trong giai đoạn này vì chỉ so sánh 2 phần tử còn lại trên cùng với nhau thôi )
1.So sánh 11 với 23 do 11<23 nên giữ nguyên ( cột 11 )

Oki
ta được dãy 11,23,42,65,74 ( cột cuối cùng trên hình vẽ trên )

function BubbleSort($sort_array,$column = 0,$reverse)
{
  $lunghezza=count($sort_array);
  for ($i = 0; $i < $lunghezza ; $i++){
    for ($j = $i + 1; $j < $lunghezza ; $j++){
      if($reverse){
        if ($sort_array[$i][$column] < $sort_array[$j][$column]){
          $tmp = $sort_array[$i];
          $sort_array[$i] = $sort_array[$j];
          $sort_array[$j] = $tmp;
        }
      }else{
        if ($sort_array[$i][$column] > $sort_array[$j][$column]){
          $tmp = $sort_array[$i];
          $sort_array[$i] = $sort_array[$j];
          $sort_array[$j] = $tmp;
        }
      }
    }
  }
  return $sort_array;          
}  

Thuật toán Knuth-Morris-Pratt (KMP)

Thuật toán Knuth-Morris-Pratt (KMP)

Đây là 1 thuật toán so khớp chuỗi.Ta sẽ đi ví dụ sau cho dễ hiểu về thuật toán này:

String:
Code:
gcatcgcagagagtatacagtacg

Pattern:
Code:
gcagagag

So khớp Pattern với String ta làm các bước như sau:

So ký kự đầu tiên của Pattern với ký tự đầu tiên của String -> khớp
Tiếp so khớp ký tự thứ 2 của Pattern và String ->khớp
Ký tự thứ 3 cũng khớp nhưng đến ký tự thứ 4 thì không khớp nữa.
Code:

 
gcatcgcagagagtatacagtacg
GCAg....

(chú ý ký tự in hoa là khớp)

Bây giờ so ký tự đầu tiên của Pattern với ký tự thứ 5 của String-> không khớp.
Code:
gcatcgcagagagtatacagtacg
     g.......


Giờ lại so ký tự đầu tiên của Parttern với ký tự thứ 6 của String->khớp.
Cho đến ký tự 13 của String cũng khớp
Code:
gcatcgcagagagtatacagtacg
     GCAGAGAG

ký tự đầu của Pattern khớp với ký tự thứ 13 của String
Giờ ta so ký tự thứ 2 của Pattern với ký tự thứ 14 của String ->không khớp
Code:
gcatcGCAGAGAGtatacagtacg
            .c......

So ký tự thứ 15 của String với ký tự đầu của Pattern->không khớp
Code:
gcatcGCAGAGAGtatacagtacg
             g.......

So tiếp ký tự 16 của String với ký tự đầu của Pattern->không khớp
Code:
gcatcGCAGAGAGtatacagtacg
              g.......

Đến ký tự 17 cũng không khớp
Code:
gcatcGCAGAGAGtatacagtacg
               g.......

18 cũng không
Code:
gcatcGCAGAGAGtatacagtacg
                g.......

Hết quá trình so khớp

Rút cục chuỗi so khớp
Code:
gcatcGCAGAGAGtatacagtacg

( ký tự in hoa là khớp )

Ví dụ tiếp:
String:
Code:
dabcabca

Pattern:
Code:
abc

ta sẽ có các bước:

Code:
dabcabca
a..

Code:
dabcabca
 ABC

Code:
dABCabca
    ABC

Vậy ta được:
Code:
dABCABCa



Chương trình PHP:
PHP Code:
<?
function preKmp($x) {

   $i = 0;
   $j = -1;
   $m = strlen($x);

   $kmpNext[0] = -1;
   while ($i < $m) {
      while ($j > -1 && $x[$i] != $x[$j])
         $j = $kmpNext[$j];
      $i++;
      $j++;
      if ($x[$i] == $x[$j])
         $kmpNext[$i] = $kmpNext[$j];
      else
         $kmpNext[$i] = $j;
   }
   return $kmpNext;
}


function KMP($x, $y) {
   $m = strlen($x);
   $n = strlen($y);
   $kmpNext=preKmp($x);
   $b = 1;
   $i = 0;
   $j = 0;
   while ($j < $n) {
         if($x[$i] != $y[$j]){
           $k[$j] = "khong khop";    
               
      }else{
           $k[$j] = "khop";
      }
         echo "Buoc $b : ky tu ".$i." cua pattern la \"".$x{$i}."\" so khop voi ky tu $j cua string la \"".$y{$j}."\" -> ".$k[$j]." <br>";
      while ($i > -1 && $x[$i] != $y[$j])
         $i = $kmpNext[$i];
      if( $x[$i] != $y[$j] ) $b++;
      $i++;
      $j++;
      if ($i >= $m) {
         echo "vi tri so khop :".($j - $i)."</br>";
         $i = $kmpNext[$i];
         $b++;
      }
      
   }
}

//vi tri so khop tinh tu 0
KMP("aba","dcababacc");
?>

cho ra kết quả:
Buoc 1 : ky tu 0 cua pattern la "a" so khop voi ky tu 0 cua string la "d" -> khong khop
Buoc 2 : ky tu 0 cua pattern la "a" so khop voi ky tu 1 cua string la "c" -> khong khop
Buoc 3 : ky tu 0 cua pattern la "a" so khop voi ky tu 2 cua string la "a" -> khop
Buoc 3 : ky tu 1 cua pattern la "b" so khop voi ky tu 3 cua string la "b" -> khop
Buoc 3 : ky tu 2 cua pattern la "a" so khop voi ky tu 4 cua string la "a" -> khop
vi tri so khop :2
Buoc 4 : ky tu 1 cua pattern la "b" so khop voi ky tu 5 cua string la "b" -> khop
Buoc 4 : ky tu 2 cua pattern la "a" so khop voi ky tu 6 cua string la "a" -> khop
vi tri so khop :4
Buoc 5 : ky tu 1 cua pattern la "b" so khop voi ky tu 7 cua string la "c" -> khong khop
Buoc 6 : ky tu 0 cua pattern la "a" so khop voi ky tu 8 cua string la "c" -> khong khop


October 2008
MTWTFSS
September 2008November 2008
12345
6789101112
13141516171819
20212223242526
2728293031