Máy tính là công cụ phục vụ con người, Máy tính chỉ làm việc khi được ra lệnh và hướng dẫn cụ thể, GV cần lưu ý HS hiểu: Khả năng hiểu và là việc được của bản thân MT là rất hạn
Trang 1Người trình bày:Nguyễn Thanh Tùng
ĐHBK HN
1
Trang 2Phần II
Phần I
2
Trang 5Kiến thức:
Biết quy trình giải bài toán trên MTĐT,
Biết khái niệm thuật toán,
Biết một số giải thuật cơ bản,
Biết các dạng mô tả giải thuật:
Liệt kê theo bước,
Sơ đồ khối,
Bằng ngôn ngữ lập trình.
5
Trang 7Máy tính là thiết bị có tiềm năng lớn:
Soạn thảo và in ấn tài liệu, văn bản,
Lưu trữ dữ liệu: hồ sơ, hình ảnh, bài hát,
Tìm kiếm thông tin,
Phục vụ giải trí: Xem phim, chơi trò chơi, nghe nhạc,
Giải các bài toán có khối lượng tính toán lớn,
Giúp đỡ con người phân tích đưa ra các giải
pháp thông minh
7
Trang 8 Máy tính là công cụ phục vụ con người,
Máy tính chỉ làm việc khi được ra lệnh và hướng dẫn cụ thể,
GV cần lưu ý HS hiểu:
Khả năng hiểu và là việc được của bản thân MT là rất
hạn chế , tương tự như khả năng hiểu và làm việc của một em bé mẫu giáo,
Trên cơ sở các chỉ dẫn đơn giản người ta đã xây dựng
bộ hướng dẫn để MT có thể thực hiện một công việc phức tạp hơn: chơi nhạc, hiện một bức ảnh V v
8
Trang 9 Ví dụ: Ở lớp mẫu giáo cô giáo hướng dẫn các cháu thực hiện các phép gấp giấy cơ bản , từ đó hướng
dẫn cách gấp máy bay, thuyền, tên lửa
Với Máy tính: Có bộ hướng dẫn máy phục vụ soạn thảo (WINWORD), chơi nhạc (WIN Media Player), kết nối vào Internet (Internet Exploirer), tra cứu từ điển (Lạc Việt Từ điển),
Các bộ hướng dẫn nêu trên: chuyên dụng, định
hướng cho một loại công việc cụ thể,
∃ các bộ hướng dẫn cho phép ta lắp ráp thành
những hướng dẫn mới chưa có sẵn trong hệ thống.
9
Trang 10 GV nêu qua ví dụ về rô bốt trong SGK,
Có thể lấy các ví dụ gần gũi hơn với HS, chẳng hạn: hướng dẫn lau bảng:
Lấy khăn trên bàn GV,
Lau dọc từ trái sang phải,
Gấp và trả lại khăn về chổ cũ.
Yêu cầu đối với HS: “Em lau bảng dùm thầy (cô)”.
10
Trang 11 GV không cần đi sâu giải thích khái niệm lệnh
và chương trình,
Chỉ cần xác định:
Lệnh là một hướng dẫn mà máy (hệ thống) có thể
hiểu và thực hiện được,
Chương trình: dãy các câu lệnh.
Với các HS đã làm việc nhiều với MT: nêu một
số ví dụ minh họa các loại lệnh khác nhau:
www.vnn.vn – Lệnh truy nhập trang WEB,
Lệnh tìm kiếm File trong hệ thống quản lý file,
Lệnh phóng to, thu nhỏ hình, trang văn bản,
11
Trang 12 Ví dụ về CT:
Lấy ví dụ khi kích hoạt Win Media Player:
Danh sách bài hát (Playlist): CT cho Win
Trang 13 Những lệnh nêu trong các ví dụ trên: thuộc các
hệ thống ra lệnh chuyên dụng,
Cần có công cụ trợ giúp cho phép ta mô tả dãy lệnh để thực hiện công việc bất kỳ,
GV lưu ý các đặc trưng của loại công cụ này:
Cần thiết vì tính đa dạng của các v/đ cần giải quyết trên MT,
Phải đơn giản hơn cách ra lệnh trực tiếp bằng ngôn ngữ máy,
Gần với ngôn ngữ tự nhiên
13
Trang 14 Ngôn ngữ lập trình – công cụ mô tả dãy các
Trang 15Để khai thác NNLT cần:
Biết và nắm vững quy tắc viết câu lệnh và dãy câu lệnh (chương trình),
Cần có hệ thống hỗ trợ:
Soạn thảo chương trình,
Trợ giúp người viết tìm và sửa lỗi ,
Dịch CT đã viết sang ngôn ngữ máy – ngôn ngữ duy nhất
MT có thể trực tiếp hiểu và thực hiện,
Trang 16 GV không cần giới thiệu sâu về vai trò & chức năng CTD, chỉ lưu ý cho HS nhớ 2 chức năng cơ bản:
Trang 17 Xét ví dụ bài 1 (2 tiết).
Dự kiến đề xuất:
Tiết 1: Các mục 1, 2 và 3,
Tiết 2: Chương trình và ngôn ngữ lập trình,
Đây là đối tượng nghiên cứu và là sản phẩm kết quả của tất cả các bài lý thuyết và thực hành còn lại trong phần III
17
Trang 18Phút Giáo viên Học sinh & xử lý tình huống
02 Nhắc lại các cách lựa chọn và kích hoạt một số một số công việc, dịch vụ hệ
thống.
08
Đặt các câu hỏi cho HS:
• Em yêu thích CT TV nào? Để xem được
• Phải làm gì để MT thông báo lên màn
hình diện tích hình chữ nhật có chiều dài
2 cạnh là a và b?
3 câu hỏi đầu:
Mọi câu trả lời đều chấp nhận được, mỗi HS xử lý một kiểu tình huống, khen ngợi các ý kiến với tình huống đặc biệt, GV: Nếu ghi lại – được CT xử lý,
Câu hỏi cuối: HS không trả lời được (nếu có HS trả lời đúng – đưa tiếp tình huống phức tạp hơn) → Ta học cách
để trả lời câu hỏi này! 18
Trang 19Phút Giáo viên Học sinh & xử lý tình huống
NN MT và NN con người quá khác nhau,
Một giải pháp: xây dựng NN trung gian
(kiểu ESPERANTO)
Hỏi HS :
2 bạn HS VN và Thụy Điển có thể nói
chuyện với nhau thông qua NN nào? Nhờ
nhau giúp đỡ bằng cách nào?
Đặc điểm chung của các ngôn ngữ?
Nêu giải pháp phiên dịch.
Trả lời:
HS sẽ đưa ra dủ các loại phương án: Anh, Đức, Nga, Pháp, Việt, Thụy Điển,
Tổng kết các ý kiến: bảng chữ cái + văn phạm,
19
Trang 20Phút Giáo viên Học sinh & xử lý tình huống
Yêu cầu HS nhắc lại rất ngắn gọn các đặc
điểm chung của một ngôn ngữ nói chung
(chuẩn bị cho tiết sau)
Tập cho HS biết:
Tập trung vào trọng tâm,
Diễn đạt ngắn gọn.
20
Trang 21Mục đích – Yêu cầu:
Giới thiệu các khái niệm cơ bản liên quan tới
một ngôn ngữ lập trình,
Cấu trúc một CT PASCAL đơn giản,
Làm quen với môi trường lập trình TURBO
PASCAL
Lưu ý: GV có thể chọn môi trường LT khác để
giới thiệu, Ví dụ: TMT, Free Pascal,
21
Trang 2222
Trang 24 Mọi biến dùng trong CT đều phải đặt tên,
Không được đặt tên trùng nhau,
Phân biệt tên và từ khóa,
Tên phải được khai báo (bằng câu lệnh khai báo – sẽ xét sau)
24
Trang 25• Để ánh xạ sang địa chi hệ thống cần biết kích thước để
Trang 26 Giới thiệu cho HS làm quen với một CT hoàn thiện đơn giản,
Sử dụng CT này để giới thiệu về môi trường lập trình:
Khả năng,
Cách thao tác.
Nhấn mạnh với HS: trong Tin học sản phẩm phải có tính hoàn thiện, chương trình – phải chạy được và cho kết quả đúng!
26
Trang 27 GV nên yêu cầu học sinh đưa ra nhiều ví dụ và phản ví
dụ về tên,
Cho HS đưa ví dụ phân biệt, nhận dạng từ khóa,
Nên cho một số lỗi trong CT, giới thiệu cho HS biết về phản ứng của hệ thống lập trình,
Lưu ý HS: Cần mạnh dạn, mọi lỗi đều có thể khắc
phục,
Không yêu cầu HS nhớ và thuộc ngay các cách thao tác với CTD, nguyên tắc giảng dạy: “Mưa dầm thấm đất”!.
27
Trang 28 Với mỗi dữ liệu cần phải chỉ cho hệ thống biết
Công cụ nêu sự lựa chọn đó: Câu lệnh khai báo ,
Phải khai báo trước khi xử lý ,
Việc lựa chọn này tác động rất nhiều đến các
khâu còn lại của quá trình giải bài toán trên MT.
28
Trang 29Cấu trúc dữ liệu + Giải thuật +
Nghệ thuật tổ chức
29
Trang 32 Chỉ giới hạn trong phạm vi SGK: các phép tính số
học và các phép tính quan hệ,
Lưu ý:
Quy định về phép chia( / ) trong PASCAL,
Quy định về kiểu kết quả khi hai toán hạng không cùng kiểu.
Cách viết biểu thức số học:
Cần thường xuyên luyện tập cho HS quen cách viết biểu thức,
Để HS phân tích phát hiện các sai sót của bạn mình, học
qua sai sót có hiệu quả hơn rất nhiều.
32
Trang 33 Cần thường xuyên, nhắc đi nhắc lại các quy tắc:
Chỉ dùng một loại ngoặc – các ngoặc tròn,
Viết tuyến tính từ trái sang phải, mỗi vị trí chỉ được viết một ký tự ,
Các ký tự phải cùng một mức : không xuống dưới
hoặc lên trên,
Không được bỏ qua dấu phép nhân
Người LT nói chung và HS nói riêng thường
xuyên vi phạm 3 quy tắc cuối, đặc biệt khi viết trên bảng, trên giấy!
33
Trang 34 Chỉ cần lưu ý: theo các quy tắc thông thường
Trang 35 Việc đưa các dòng thông tin biên tập kết quả hoặc
thông báo nhắc nhở là cần thiết nhưng dần dần HS sẽ quen và mau chóng thành thạo – Trăng đến rằm thì sẽ tròn!
Điều phải đặc biệt lưu ý, nhắc nhở thường xuyên:
tránh để các giá trị dính với nhau khi đưa ra:
Sai: Writeln(i,j);
Một cách sửa: Writeln(i,’ ‘,j);
Vấn đề tạm ngừng: không cần tốn nhiều thời gian
trình bày và không đòi hỏi HS phải nhớ.
35
Trang 36 Tập trung rèn luyện kỹ năng viết đúng các loại biểu thức,
Công cụ soạn thảo của CTD sẽ hỗ trợ, nhưng kỹ năng trình bày trên giấy và bảng là rất cần thiết,
Viết một biểu thức toán học, cho cả lớp chuẩn
bị độ 30”
Gọi HS lên bảng viết biểu thức trên PASCAL,
Gọi các HS khác nhận xét, tìm một chổ sai (nếu có),
Gọi HS khác sửa sai,
Lặp lại hai bước cuối cho đến khi hết lỗi,
36
Trang 37 Lưu ý nhắc nhở, động viên khi HS viết chưa
đúng,
Khen ngợi HS và cả lớp nếu kết quả đúng ngay
từ lần viết đầu,
Trong quá trình HS sửa lỗi – xem nháp của một
số HS trong lớp, thông báo về tỷ lệ KQ
đúng/sai,
Khen ngợi động viên các HS có kết quả đúng, có thể cho điểm với những HS này
37
Trang 38 Khái niệm biến và hằng trong NNLT hoàn toàn
tương đương với khái niệm biến và hằng trong toán học và vật lý GV không nên mất thời gian giải thích
Nên nhắc lại nguyên lý Von NeumanBiến
38
Trang 39 Không cần định nghĩa chặt chữ cú pháp câu lệnh khai báo,
GV viết một câu lệnh khai báo đơn giản trên bảng, giải thích:
Các thành phần của câu lệnh,
Các thông tin phải có,
Những gì có thể thay đổi (những khác nhau trong 2 câu lệnh khai báo),
Nhấn mạnh:
Mọi biến đều phải khai báo,
Mỗi biến: khai báo một lần,
Một câu lệnh: có thể khai báo nhiều biến,
Có thể có nhiều câu lệnh khai báo.
39
Trang 40 Câu lệnh khai báo:
Var k:Integer;
Từ khóa
Tên biến Kiểu dữ liệu
Có thể là danh sách biến
Có thể lặp lại nhiều lần
40
Trang 41 Ở đây chỉ mới xét việc gán giá trị cho biến,
Lệnh gán: Lệnh thường dùng nhất trong mọi
NNLT,
Giải thích tương tự như trường hợp khai báo,
Nếu HS thắc mắc: Giải thích ngắn gọn về việc chuyển đổi kiểu dữ liệu trước khi gán giá trị
cho biến và một số hạn chế trong PASCAL đối với lệnh gán
41
Trang 42 Xét lệnh gán:
x:=(a+b)/2;
42
Trang 43 Quan trọng nhất trong xác định bài toán sẽ giải trên MT: xác định dữ liệu cho trước (Input) và kết quả cần đưa ra (Output).
Quá trình giải bài toán trên MT gồm nhiều bước bao gồm 4 giai đoạn cơ bản khác nhau,
Nguyên tắc: Giảm tối đa chi phí lao động (trí
óc và chân tay) của con người.
43
Trang 45 Chỉ cần HS biết 3 bước như trong SGK là đủ,
Tuy vậy, để thuận tiện cho việc triển khai giảng dạy GV cần nắm vững 4 mức khác nhau về chất đã nêu ở trên,
Mỗi mức được chia nhỏ thành nhiều bước theo tinh thần “mịn hóa” và “đủ trơn” – không
ngôn ngữ tự nhiên sang ngôn ngữ lập trình.
45
Trang 46Xác định bài toán
Chọn giải thuật & Cấu
trúc dữ liệu
46
Trang 47Mô tả giải thuật
47
Trang 48 Khâu Thực hiện CT: Không xét tiếp ở đây vì
ra khỏi phạm vi nội dung của SGK,
Tuy vậy GV cần lưu ý HS: trong Tin học, chỉ khi nào có KẾT QUẢ mới có thể coi là giải
được bài toán,
Kết quả cũng có thể là CT nếu bài toán đặt
ra là lập trình
48
Trang 49Mục tiêu các ví dụ:
Ví dụ 3: Cách tính tổng,
Ví dụ 4: Cách hoán đổi giá trị hai biến,
Ví dụ 6: Cách tìm Max ( Min) trong dãy số.
Đặc trưng:
Công tác chuẩn bị,
Các thao tác tương tự lặp lại nhiều lần.
49
Trang 50 Thuật toán:
Dãy hữu hạn các thao tác,
Thực hiện theo trình tự xác định,
Mục tiêu: để thu được kết quả (từ điều kiện và
Input cho trước)
Thuật toán cần thỏa mãn một số tính chất
nhất định, nhưng ta không xét ở đây.
50
Trang 51 Quy luật: “Lượng biến thành chất” – tính khả thi
và hiệu quả của thuật toán phụ thuộc rất nhiều vào kích thước bài toán, phạm vi giá trị (miền xác định) của các dữ liệu vào (Input),
Khi phát biểu bài toán: cần chỉ rõ miền xác định này,
Cùng một mô hình toán học: có rất nhiều thuật toán (cho từng miền xác định).
Không nên “dùng dao mổ trâu để giết gà”,
nhưng không thể dùng dao cắt tiết gà để mổ trâu!
51
Trang 52Từ cụm lúa von thứ nhất thí nghiệm viên chiết xuất được
A phân tử chất Giberline (một chất kích thích tăng trưởng thực vật) đựng vào bình 1, từ cụm lúa von thứ hai thí nghiệm viên chiết xuất được B phân tử chất Giberline đựng vào bình 2 Sau đó hai bình này được đổ chung vào một chai để cất giữ trong tủ lạnh.
Hãy cho biết trong chai có bao nhiêu phân tử Giberline.
Dữ liệu: Vào từ file văn bản GIB.INP gồm một dòng chứa
2 số nguyên A và B
Kết quả: Đưa ra file văn bản GIB.OUT kết quả tìm được dưới dạng số nguyên.
52
Trang 53 Mô hình toán học: tính A+B,
Giải thuật tính sẽ khác nhau cho các
Trang 54 GV chỉ nên gới hạn việc xét các ví dụ và bài tập trong phạm vi giá trị dữ liệu đủ nhỏ ,
Trong mọi ví dụ và bài tập: cần chỉ rõ miền xác định ,
Nếu HS thắc mắc về miền xác định:
Với lớp “đại trà” chỉ cần giải thích: điều đó là cần thiế t, tương tự như khi yêu cầu tính a/b phải giả thiết b≠0,
Với lớp năng khiếu, ngợi khóa – giải thích: liên quan tới kiểu dữ liệu và phép tính với chúng (lấy ví dụ A+B).
54
Trang 55 Với nhóm HS đã biết ít nhiều về lập trình có thể giải thích thêm:
Có nhiều cách mô tả giải thuật,
CT cũng là một cách mô tả và là đích phải đạt tới,
Các cách mô tả khác: những bậc thang dẫn tới đích,
Sơ đồ mô tả một chiều, Sơ đồ mô tả hai chiều, …
55
Trang 56Bài 6 CÂU L NH ĐI U KI N Ệ Ề Ệ
Ở các mục 1, 2 và 3:
Không cần mất thời gian trình bày quá nhiều ví dụ thực tế,
Nên bổ sung ví dụ cho trường hợp đầy đủ hai tình huống hành động,
Nêu mẫu viết hai loại câu lệnh, lần lượt thay đổi điều kiện, yêu cầu HS giải thích hoạt động,
Nêu mẫu viết hai loại câu lệnh, lần lượt thay đổi câu lệnh (câu lệnh 1, câu lệnh 2 hoặc cả 2), yêu cầu HS giải thích hoạt động,
Nêu m u vi t hai lo i câu l nh, l n l ẫ ế ạ ệ ầ ượ t thay đ i đi u ổ ề
ki n và câu l nh (các câu l nh), yêu c u HS gi i thích ệ ệ ệ ầ ả
Trang 57Bài 7 CÂU LỆNH LẶP
57
Nên dạy theo kiểu trực quan thông qua các ví dụ đơn giản
về câu lệnh tương tự như ở bài 6,
Các ví dụ luyện tập đồng thời là “cẩm nang” cho HS lập trình giải các bài tập và thực hành,
Các làm này sẽ đảm bảo HS thuộc bài tại lớp.
Lưu ý N!, chỉ xét ví dụ trong SGK với N ≤ 13.
Không giải thích sâu các lệnh gotoXY, whereX, whereY, nhưng cần nói qua về cách tính tọa độ trên màn hình cho
HS biết, không yêu cầu nhớ!
Trang 58Bài 8 Lặp với số lần chưa biết trước
Trang 59Bài 9.LÀM VIỆC VỚI DÃY SỐ
PASCAL – thông qua ví d , sau đó t ng quát hóa, ụ ổ
L u ý v i HS: th ư ớ ườ ng dùng câu l nh l p FOR đ ệ ặ ể làm vi c v i các ph n t c a bi n m ng ệ ớ ầ ử ủ ế ả
Trang 60 Trong các ví dụ:
Cho kích thước đủ nhỏ ( N ≈ 5, 6),
Không cầu kỳ quá trong nhập dữ liệu – không đủ thời gian!
Yêu cầu HS xem cách tổ chức nhập trong SGK, giải thích ý nghĩa các câu lệnh trong ví dụ của sách,
Cần nhắc lại giải thuật tìm MAX từ bài 5:
Công tác chuẩn bị,
Các công việc lặp,
Phạm vi lặp: chỉ số chạy từ đâu đến đâu,
Yêu cầu HS mở chỉnh lý thành tìm MIN,
Tạo các CT riêng biệt tìm MAX, MIN,
Tổng hợp 2 chương trình thành một, tìm đồng thời MAX và MIN.
Bài 9.LÀM VIỆC VỚI DÃY SỐ
Trang 61 Trong quá trình dạy: yêu cầu tất cả HS viết ra nháp (3 – 4 phút cho một ví dụ) đoạn CT lặp, GV nhắc các lỗi cần sửa ( không nêu tên HS ),
Có thể viết lại đoạn CT lỗi điển hình, huy động cả lớp
cùng tham gia chỉnh lý,
Lưu ý: nếu có độ 1/3 số HS trong lớp viết được đoạn CT yêu cầu (dù còn có lỗi) – có thể coi là thành công ngoài mong đợi! HS có thể hiểu, nhưng chưa có khả năng độc lập tái tạo,
Quan trọng: Động viên HS mạnh dạn
Bài 9.LÀM VIỆC VỚI DÃY SỐ
Trang 62 Sao chép cho HS, sau đó đề xuất HS cải
biên, chỉnh lý theo các yêu cầu khác nhau,
62
Trang 63 Tổ chức HS làm việc theo nhóm, thay
phiên nhau ngồi trước máy, các HS
khác trong nhóm: vai trò cố vấn, giám
sát, chỉ đạo,
Cho điểm: theo mức độ tích cực và thái
độ nghiêm túc của từng thành viên (với
HS – công bằng là quan trọng nhất).
63
CÁC BÀI THỰC HÀNH
Trang 64CÂU HỎI & KIỂM TRA
Hãy cho biết hai thành phần phải có của NNLT bất kỳ?
Tại sao phải khai báo kiểu dữ liệu?