1. Trang chủ
  2. » Giáo án - Bài giảng

SGK Tin 8 Quyen 3 - phan 1

22 476 3
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Lập trình đơn giản
Thể loại Sách giáo khoa
Định dạng
Số trang 22
Dung lượng 1,07 MB

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

Nội dung

Như vậy, để chỉ dẫn máy tính thực hiện một công việc nào đó, con người đưa cho máy tínhmột hoặc nhiều lệnh, máy tính sẽ lần lượt thực hiện các lệnh này theo đúng thứ tự nhận được.. Để th

Trang 1

Phần 1

Lập trình đơn giản

Trang 2

Bài 1 Máy tính

và chương trình máy tính

Tóm tắt: Khái niệm chương trình như một công cụ và cách thức để điềukhiển máy tính làm việc theo ý muốn của con người

1 Con người ra lệnh cho máy tính như thế nào?

Chúng ta đã biết rằng máy tính là công cụ trợ giúp con người để xử lí thông tin một cách rấthiệu quả Tuy nhiên, máy tính thực chất chỉ là một thiết bị điện tử vô tri vô giác Để máy tính cóthể thực hiện một công việc theo mong muốn của mình, con người phải đưa ra những chỉ dẫnthích hợp cho máy tính

Khi nháy đúp chuột lên biểu tượng của một phần mềm trên màn hình, phần mềm sẽ đượckhởi động Bằng cách đó ta đã cho máy tính những chỉ dẫn, nói cách khác, đã ra lệnh cho máytính khởi động phần mềm

Khi soạn thảo văn bản, ta gõ một phím chữ (chẳng hạn phím chữ a), chữ tương ứng sẽ xuấthiện trên màn hình Như vậy ta cũng đã ra lệnh cho máy tính (ghi chữ lên màn hình)

Khi thực hiện lệnh sao chép một đoạn văn bản từ vị trí này sang vị trí khác, thực chất ta đãyêu cầu máy tính thực hiện liên tiếp hai lệnh: lệnh thứ nhất là sao chép nội dung đoạn văn bảnvào bộ nhớ của máy tính và lệnh thứ hai là sao chép nội dung trong bộ nhớ vào vị trí mới trên vănbản

Như vậy, để chỉ dẫn máy tính thực hiện một công việc nào đó, con người đưa cho máy tínhmột hoặc nhiều lệnh, máy tính sẽ lần lượt thực hiện các lệnh này theo đúng thứ tự nhận được

2 Ví dụ: rô-bốt quét nhà

Rô-bốt (hay người máy) là một loại máy có thể thực hiện những công việc một cách tự độngthông qua sự điều khiển của con người Chúng ta sẽ tìm hiểu cách ra lệnh cho máy tính thông quamột ví dụ về một rô-bốt có thể thực hiện được các thao tác cơ bản như tiến một bước, quay phải,quay trái, nhặt rác và bỏ rác vào thùng

Giả sử có một đống rác và một rô-bốt ở các vị trí như hình 1 dưới đây Từ vị trí hiện thờicủa rô-bốt, ta cần ra các lệnh để chỉ dẫn rô-bốt nhặt rác và bỏ rác vào thùng rác để ở nơi quy định

Trang 3

Vị trí thùng rác

Vị trí đống rác

Vị trí rôbốtNếu thực hiện theo cỏc lệnh sau đõy, rụ-bốt sẽ hoàn thành tốt cụng việc:

3 Viết chương trỡnh: ra lệnh cho mỏy tớnh làm việc

Trong vớ dụ núi trờn, việc viết cỏc lệnh để điều khiển rụ-bốt về thực chất cũng cú nghĩa làviết chương trỡnh Tương tự, để điều khiển mỏy tớnh làm việc, chỳng ta cũng viết chương trỡnhmỏy tớnh

Chương trỡnh mỏy tớnh là một dóy cỏc lệnh mà mỏy tớnh cú thể hiểu và thực hiện được Khithực hiện chương trỡnh, mỏy tớnh sẽ thực hiện cỏc lệnh cú trong chương trỡnh một cỏch tuần tự,nghĩa là thực hiện xong một lệnh sẽ thực hiện lệnh tiếp theo, từ lệnh đầu tiờn đến lệnh cuối cựng.Trở lại vớ dụ về rụ-bốt nhặt rỏc, chương trỡnh cú thể cú cỏc lệnh như sau:

Trang 4

4 Tại sao cần viết chương trình?

Các công việc con người muốn máy tính thực hiện rất đa dạng và phức tạp Một lệnh đơngiản không đủ để chỉ dẫn cho máy tính Vì thế người ta cần viết nhiều lệnh và tập hợp lại trongmột chương trình

Để thực hiện được công việc, máy tính phải hiểu các lệnh được viết trong chương trình Vậylàm thế nào để máy tính hiểu được các lệnh của con người? Ta có thể ra lệnh cho máy tính bằngcách nói hoặc gõ các phím bất kì được không?

Chúng ta đã biết rằng để máy tính có thể xử lí, thông tin đưa vào máy phải được chuyển đổithành dạng dãy bit (dãy các tín hiệu được kí hiệu bằng 0 hoặc 1) Như vậy, khác với con ngườitrao đổi thông tin bằng ngôn ngữ tự nhiên (tiếng Việt, tiếng Anh, ), máy tính “nói” và “hiểu”

bằng một ngôn ngữ riêng, được gọi là ngôn ngữ máy

Khi nói chuyện với người bạn chỉ biết tiếng Anh, ta chỉ có thể nói tiếng Anh hoặc cần mộtngười giúp dịch tiếng Việt sang tiếng Anh và ngược lại Tương tự, để ra lệnh cho máy tính, conngười cũng phải dùng ngôn ngữ máy để máy có thể hiểu được

Viết chương trình bằng ngôn ngữ máy rất khó khăn và mất nhiều thời gian, công sức Vì thế

các ngôn ngữ lập trình đã ra đời để giảm nhẹ khó khăn trong việc viết chương trình Với ngôn

ngữ lập trình, thay vì phải viết các dãy bit, người viết chương trình có thể sử dụng các từ có nghĩa(thường là tiếng Anh) Nhờ vậy, người lập trình có thể hiểu và nhớ ý nghĩa của các câu lệnh mộtcách dễ dàng hơn

Khi đó, các chương trình dịch đóng vai trò "người phiên dịch" và dịch những chương trình

được viết bằng ngôn ngữ lập trình sang ngôn ngữ máy để máy tính có thể hiểu được

Trang 5

GHI NHớ

1 Con người chỉ dẫn cho máy tính thực hiện công việc thông qua các lệnh

2 Viết chương trình là hướng dẫn máy tính thực hiện các công vệc hay giải một bài toán cụ

thể

CÂU HỏI Và BàI TậP

1 Em hãy cho biết trong soạn thảo văn bản khi yêu cầu máy tính tìm kiếm và thay thế

(Replace), thực chất ta đã yêu cầu máy thực hiện những lệnh gì? Ta có thể thay đổi thứ

tự của chúng được không?

2 Sau khi thực hiện lệnh “Hãy quét nhà” ở trên, vị trí mới của rô-bốt là gì? Em hãy đưa ra

các lệnh để rô-bốt trở lại vị trí xuất phát của nó (góc dưới bên trái màn hình)

3 Tại sao người ta tạo ra các ngôn ngữ khác để lập trình trong khi các máy tính đều đã có

ngôn ngữ máy của mình?

Trang 6

Bài 2 Từ BàI TOáN ĐếN CHƯƠNG TRìNH

Tóm tắt: Thế nào là bài toán và xác định bài toán Quá trình giải bài toántrên máy tính Làm quen với khái niệm thuật toán và mô tả thuật toán

1 Bài toán và chương trình

Bài toán là khái niệm quen thuộc trong các môn học như Toán, Vật lí, Chẳng hạn tínhtổng của các số tự nhiên từ 1 đến 100, tính quãng đường ô tô đi được trong 3 giờ với tốc độ 60km/giờ là những ví dụ về bài toán

Tuy nhiên, hàng ngày ta thường gặp và giải quyết các công việc đa dạng hơn nhiều Ví dụ:lập bảng cửu chương, lập bảng điểm của các bạn trong lớp hoặc so sánh chiều cao của hai bạnLong và Trang, Nói chung, chúng ta hiểu bài toán là một công việc hay một nhiệm vụ cần phải giải quyết

Để máy tính có thể giúp giải quyết các bài toán nói chung, chúng ta cũng phải viết chươngtrình, tức chỉ dẫn cho máy tính thực hiện các phần công việc cụ thể thông qua các lệnh và cho kếtquả mong muốn

Chẳng hạn, với bài toán ghi ra màn hình tổng của hai số a và b được gõ vào từ bàn phím,

chương trình có thể gồm các lệnh như hình sau đây:

2 Bài toán và xác định bài toán

Các bài toán rất phong phú và đa dạng Ví dụ: Tính diện tích hình tam giác, tìm đường đitránh các điểm nút nghẽn giao thông trong giờ cao điểm, nấu một món ăn từ những thực phẩmhiện có,

Để phát biểu một bài toán cụ thể, người ta cần xác định rõ các điều kiện cho trước và kết quả cần thu được.

Ví dụ

Để tính diện tích hình tam giác:

 Điều kiện cho trước: Một cạnh và chiều cao tương ứng với cạnh đó;

 Kết quả cần thu được: Diện tích hình tam giác

Trang 7

Đối với bài toán nấu một món ăn:

 Điều kiện cho trước: Thực phẩm hiện có (trứng, mỡ, mắm, muối, rau, );

 Kết quả cần thu được: Một món ăn

Đối với bài toán vượt qua điểm nút nghẽn giao thông:

 Điều kiện cho trước: Điểm nút giao thông và các con đường có thể đi;

 Kết quả cần thu được: Đường về nhà mà không phải đi qua điểm nút nghẽn giao thông.Muốn giải được thì việc xác định bài toán là rất quan trọng

3 Quá trình giải bài toán trên máy tính

Giải bài toán trên máy tính có nghĩa là giao cho máy tính cách thực hiện các hoạt động cụthể qua từng bước để từ điều kiện cho trước ta nhận được kết quả cần thiết

Mặc dù có nhiều tính năng ưu việt, song máy tính vẫn chỉ là một công cụ trợ giúp con ngườitrong xử lý thông tin Máy tính chỉ có thể thực hiện các công việc tiếp nhận, xử lý, biến đổi, tínhtoán, lưu trữ và biểu diễn thông tin thành dạng cần thiết dưới sự chỉ dẫn của con người thông quacác câu lệnh Do vậy, việc dùng máy tính giải một bài toán nào đó chính là hướng dẫn cho máytính dãy hữu hạn các thao tác đơn giản mà nó có thể thực hiện được để từ các điều kiện cho trước

ta nhận được kết quả cần thu được

Dãy hữu hạn các thao tác cần thực hiện để giải một bài toán thường được gọi là thuật toán

Máy tính không thể tự mình tìm ra lời giải của các bài toán Lời giải của một bài toán cụ thểphải là tư duy sáng tạo của con người và kết quả của tư duy đó là thuật toán Một khi đã có thuậttoán, dựa vào thuật toán chúng ta sẽ viết chương trình trong một ngôn ngữ lập trình nào đó Máytính sẽ chạy chương trình và cho ta lời giải của bài toán (hình 4)

Hình 4

Từ đó ta thấy rằng, thuật toán mới là các bước để giải một bài toán, còn chương trình chỉ làthể hiện của thuật toán trên một ngôn ngữ lập trình cụ thể

Có thể phân chia quá trình dùng máy tính để giải bài toán thành các bước sau:

Xác định bài toán: Xác định cụ thể hai thành phần của bài toán: điều kiện ban đầu (thông

tin vào - INPUT) và kết quả cần xác định (thông tin ra -OUTPUT)

Thiết lập phương án giải quyết (xây dựng thuật toán): Bao gồm việc lựa chọn và mô tả các

thao tác cùng trình tự thực hiện các thao tác đó (mô tả thuật toán) để giải bài toán đã cho

Trang 8

Cần phải lưu ý, có thể có nhiều thuật toán khác nhau cùng giải một bài toán, song mỗi thuậttoán chỉ dùng để giải một bài toán cụ thể Vì vậy, khi mô tả thuật toán, người ta thường chỉ

ra cả INPUT và OUTPUT kèm theo để biết được thuật toán đó dùng để giải bài toán nào

Viết chương trình (lập trình): Là diễn đạt (thể hiện) thuật toán bằng một ngôn ngữ lập trình

sao cho máy tính có thể hiểu và thực hiện Như vậy, chương trình thực chất là sự mô tảthuật toán thành các thao tác cụ thể (các câu lệnh) để máy tính có thể thực hiện

4 Thuật toán và mô tả thuật toán

Trong phần này chúng ta sẽ tìm hiểu sâu hơn về khái niệm thuật toán

Nhiều công việc thường nhật chúng ta làm gần như không cần phải suy nghĩ, tuy nhiên, nếu

hệ thống lại, ta có thể thấy thực chất đó là những thuật toán Đơn giản như việc pha trà mời khách

có thể được nêu thành các bước như sau:

 Bước 1: Tráng ấm chén bằng nước sôi

 Bước 2: Cho trà vào ấm

 Bước 3: Rót nước sôi vào ấm và đợi khoảng 3-4 phút

 Bước 4: Rót trà ra chén để mời khách

Cách liệt kê các bước như trên là một phương pháp thường dùng để mô tả thuật toán Trong

các thuật toán được trình bày tiếp theo, nếu không có các yêu cầu gì khác, các bước của thuậttoán được thực hiện một cách tuần tự theo trình tự như đã được chỉ ra

Mặc dù không được nêu rõ trong khái niệm thuật toán, song thuật toán phải được mô tả đủ

cụ thể để bất kỳ đối tượng nào thực thi thuật toán, với cùng khả năng và điều kiện như nhau, cũngđều thu được kết quả như nhau Để minh họa, chúng ta cùng xét thêm một vài ví dụ:

Bài toán giải phương trình bậc nhất dạng tổng quát bx + c = 0:

Bước 1 Nếu b = 0 chuyển tới bước 3.

Bước 2 Tính nghiệm của phương trình x = – c

b rồi chuyển tới bước 4

Bước 3 Nếu c  0, thông báo phương trình đã cho vô nghiệm Ngược lại (c = 0), thông

báo phương trình có vô số nghiệm

 Bước 4 Kết thúc thuật toán

Bài toán ”Chuẩn bị món trứng tráng”

 Bước 1: Đập quả trứng, tách vỏ và cho trứng vào bát

 Bước 2: Cho một chút muối và hành tươi thái nhỏ vào trứng Dùng đũa quấy mạnhkhoảng 1 phút cho muối tan đều trong trứng

Trang 9

 Bước 3: Cho một thìa dầu ăn vào chảo, đun nóng đều rồi đổ trứng vào Nấu trongkhoảng 1 phút.

 Bước 4: Dùng đũa, thìa lật mặt trên của miếng trứng úp xuống dưới Nấu tiếp trongkhoảng 1 phút

 Bước 5: Lấy trứng ra đĩa

Rõ ràng, bất kỳ ai biết về các phép toán số học hay hiểu biết một chút về làm bếp, theo đúngtrình tự và chỉ dẫn ở các bước trong các thuật toán nêu trên đều có thể tính ra nghiệm của phươngtrình đã cho hay tự chuẩn bị cho mình một món trứng tráng

Như vậy, có thể hiểu:

Thuật toán là dãy các thao tác cần thực hiện theo một trình tự xác định để thu được kết quả

cần tìm từ những điều kiện cho trước

5 Một số ví dụ về thuật toán

Ví dụ 1 Một hình A được ghép từ một hình chữ nhật với chiều rộng 2a, chiều dài b và một

hình bán nguyệt bán kính a như hình 5 dưới đây:

Thuật toán đơn giản để tính diện tích hình A có thể gồm các bước sau:

INPUT: a là 1/2 chiều rộng và b là chiều dài của hình chữ nhật, a là bán kính của hình bán

Bước 4 Nhân kết quả nhận được ở bước 3 với ð và chia cho 2.

Bước 5 Tính kết quả S = S1 + S2 và kết thúc thuật toán

Trang 10

Trong biểu diễn thuật toán, người ta thường sử dụng kí hiệu a  A để chỉ phép gán giá trị của số hoặc biểu thức A cho biến a Ví dụ:

x   c/b (biến x nhận giá trị bằng  c/b);

i  i + 5 (biến i được gán bằng giá trị hiện tại của i cộng thêm 5 đơn vị)

Như vậy, phép gán a  A thực hiện đồng thời hai việc: xóa giá trị cũ của biến a và thay vào giá trị mới bằng giá trị của A Trong các ví dụ tiếp theo chúng ta sẽ sử dụng kí hiệu phép gán.

Ví dụ 2: Tính tổng của 100 số tự nhiên đầu tiên

Ta sẽ dùng biến SUM để lưu giá trị của tổng Việc tính SUM có thể được thực hiện như sau:Đầu tiên gán cho SUM giá trị bằng 1; tiếp theo lần lượt thêm các giá trị 2, , 100 vào SUM Vấn

đề là ở chỗ tổ chức việc “lần lượt thêm vào” này như thế nào? Cách đơn giản nhất là thực hiệnliên tiếp 99 phép cộng:

 Bước 1: SUM  1

 Bước 2: SUM  SUM + 2

 Bước 99: SUM  SUM + 100

Tuy nhiên, việc mô tả thuật toán như trên là quá dài dòng (nhất là khi không phải 100 số mà

n số, với n lớn)! Để ý một chút ta có thể thấy ở tất cả các bước nêu trên đều chỉ thực hiện cùng

một phép toán: cộng thêm vào SUM lần lượt các giá trị 2, 3, , 100 Tức là chỉ có một thao tác

“cộng” được lặp đi lặp lại 99 lần Mặt khác, việc cộng thêm số i vào SUM chỉ được thực hiện khi

i không vượt quá 100 Vì vậy, thuật toán tìm SUM có thể được mô tả ngắn gọn hơn như sau: INPUT: Dãy 100 số tự nhiên đầu tiên (từ 1 đến 100).

OUTPUT: Giá trị SUM = 1+ 2+ + 100

Trang 11

Bước 1 So sánh a và b Nếu a > b, ghi thông báo “a lớn hơn b”

Bước 2 Nếu a < b, ghi thông báo “a nhỏ hơn b”; ngược lại, ghi thông báo “a bằng b” và

kết thúc thuật toán

Tuy nhiên, nếu thử lại các bước với a = 6 và b =5, ta sẽ thấy sau bước 1 ta có thông báo “a lớn hơn b”, nhưng trong bước 2, khi kiểm tra a < b ta lại có tiếp thông báo “a bằng b”!

Vì vậy cần mô tả chi tiết hơn như sau:

Bước 1 So sánh a và b Nếu a > b, ghi thông báo “a lớn hơn b” và kết thúc thuật toán

Bước 2 Nếu a < b, ghi thông báo “a nhỏ hơn b”; ngược lại, ghi thông báo “a bằng b” và

kết thúc thuật toán

Ví dụ 4 Đổi giá trị của hai biến x và y cho nhau.

Ta không thể thực hiện trực tiếp luôn hai phép gán: x  y và y  x Bởi sau phép gán thứ nhất thì giá trị của x đã bị thay bằng giá trị của y và kết quả của hai phép gán này là cả hai biến x

và y cùng có giá trị của biến y ban đầu Vì thế, cần dùng một biến khác, ví dụ biến z, để lưu giá trị của biến x Do vậy, ta có thuật toán sau:

INPUT: Hai biến x, y có giá trị tương ứng là X và Y.

OUTPUT: Đổi giá trị của x và y cho nhau.

Bước 1 z  x {Sau bước này giá trị của z sẽ bằng X}

Bước 2 x  y {Sau bước này giá trị của x sẽ bằng Y}

Bước 3 y  z {Sau bước này giá trị của y sẽ bằng giá trị của z, chính là giá trị X ban đầu của biến x}

Ví dụ 5 Cho hai biến x và y có giá trị tương ứng là a, b với a < b và biến z có giá trị c Hãy

sắp xếp ba biến x, y và z để chúng có giá trị tăng dần.

Rõ ràng là x và y đã có các giá trị theo thứ tự tăng dần Vấn đề còn lại chỉ là so sánh giá trị c của biến z với a và b và đổi giá trị của các biến x và z, y và z tùy theo kết quả so sánh Từ ý tưởng

này ta có thể giải bài toán bằng thuật toán sau đây:

INPUT: Ba biến x, y và z có giá trị tương ứng là a, b và c (a < b).

OUTPUT: x, y và z có giá trị tăng dần.

Bước 1 Tính z  x {tức c  a} Nếu z  x < 0, thực hiện các phép gán t  x , x  z và z  t (t

là biến trung gian) và kết thúc thuật toán

Bước 2 Tính z  y {tức c  b} Nếu z  y < 0, thực hiện các phép gán t  y , y  z và z  t

và kết thúc thuật toán

Ví dụ 6: Tìm số lớn nhất trong dãy A các số a , a , , a cho trước

Ngày đăng: 11/10/2013, 11:12

HÌNH ẢNH LIÊN QUAN

Hình 2. Ví dụ về chương trình - SGK Tin 8 Quyen 3 - phan 1
Hình 2. Ví dụ về chương trình (Trang 4)
Hình 11 c) Nhận biết các thành phần:  Thanh bảng chọn; tên tệp đang mở; con trỏ;  dòng trợ giúp phía dưới màn hình - SGK Tin 8 Quyen 3 - phan 1
Hình 11 c) Nhận biết các thành phần: Thanh bảng chọn; tên tệp đang mở; con trỏ; dòng trợ giúp phía dưới màn hình (Trang 19)

TỪ KHÓA LIÊN QUAN

w