Bài 1. Các thành phần cơ bản ngôn ngữ lập trình gồm bảng chữ cái và
các quy tắc để viết các câu lệnh (cú pháp) có ý nghĩa xác định,
cách bố trí các câu lệnh,... sao cho có thể tạo thành một chơng trình hoàn chỉnh và chạy đợc trên máy tính. Lu ý rằng các quy tắc nhắc đến ở đây bao gồm các thuật ngữ chuyên môn là cú pháp và
ngữ nghĩa. Xem SGK, mục 2, bài 2.
Bài 2.Không. Các cụm từ sử dụng trong chơng trình (từ khoá, tên) phải
đợc viết bằng các chữ cái trong bảng chữ cái của ngôn ngữ lập trình. Các ngôn ngữ lập trình phổ biến hiện nay đều có bảng chữ cái là bảng chữ cái tiếng Anh và các kí hiệu khác, trong đó không có các chữ có dấu của tiếng Việt.
Lu ý rằng câu hỏi trong bài là "viết chơng trình có các câu lệnh bằng tiếng Việt". Điều này không có nghĩa là trong chơng trình không thể có các chữ cái có dấu của tiếng Việt (hay của một ngôn ngữ khác) nh là dữ liệu dạng văn bản cần xử lí. Các chữ có dấu đó sẽ đợc ngôn ngữ lập trình xử lí mã kí tự tơng ứng trong các bảng mã ASCII mở rộng. Ví dụ chơng trình Pascal sau đây hoàn toàn hợp lệ:
begin
program CT_thu;
writeln(' Chào các bạn');
end.
Bài 3.Tên trong chơng trình là dãy các chữ cái hợp lệ đợc lấy từ bảng
chữ cái của ngôn ngữ lập trình.
Từ khoá của một ngôn ngữ lập trình (còn đợc gọi là từ dành riêng) là tên đợc dùng cho các mục đích nhất định do ngôn ngữ lập trình quy định, không đợc dùng cho bất kì mục đích nào khác.
Ngời lập trình có thể đặt tên một cách tuỳ ý nhng phải tuân thủ các quy tắc của ngôn ngữ lập trình cũng nh của chơng trình dịch, trong đó (1) Hai đại lợng khác nhau phải có tên khác nhau; (2) Tên không đợc trùng với các từ khoá.
Bài 4. Các tên hợp lệ: a, Tamgiac, beginprogram, b1, abc, tên không hợp lệ: 8a (bắt đầu bằng số), Tam giac (có dấu cách), end (trùng với từ khoá).
Bài 5.Xem SGK, mục 4, bài 2.
Bài 6. Chơng trình 1 là chơng trình Pascal đầy đủ và hoàn toàn hợp lệ, mặc dù chơng trình này chẳng thực hiện điều gì cả. Phần nhất thiết phải có trong chơng trình là phần thân đợc xác định bởi hai từ khoá
begin và end. (có dấu chấm).
Chơng trình 2 là chơng trình Pascal không hợp lệ vì câu lệnh khai báo tên chơng trình program CT_thu nằm ở phần thân.
Bài thực hành 1. Làm quen với Turbo Pascal
1. Mục đích, yêu cầu
• Thực hiện đợc thao tác khởi động/kết thúc TP, làm quen với màn hình soạn thảo TP
• Thực hiện đợc mở các bảng chọn và chọn lệnh.
• Soạn thảo đợc một chơng trình Pascal đơn giản.
• Biết cách dịch, sửa lỗi trong chơng trình, chạy chơng trình và xem kết quả.
• Biết sự cần thiết phải tuân thủ quy định của ngôn ngữ lập trình
2. Những điểm cần lu ý và gợi ý dạy học
Để chạy đợc chơng trình Turbo Pascal cần có tối thiểu hai tệp:
TURBO.exe v à TURBO.TPL. Lu ý rằng nếu sử dụng Turbo Pascal
for DOS, trong chơng trình có sử dụng th viện crt (khai báo uses crt) thì khi dịch chơng trình có thể sẽ có thể gặp thông báo lỗi Error 200: Division by zero nh hình dới đây.
Lỗi này không phải do viết chơng trình mà do phần mềm Turbo Pascal đang sử dụng không phù hợp với máy tính có tốc độ cao hiện tại. Để khắc phục lỗi này, GV có thể tải phần mềm Turbo Pascal đã đợc sửa lỗi này ở website www.vnschool.net hoặc có thể sử dụng phần mềm Pascal for Windows hoặc Free Pascal. Tất cả các phần mềm này có sẵn trong đĩa CD phát cho GV tham gia tập huấn cốt cán.
Vì HS đã đợc học, thực hành về khởi động chơng trình ở các năm học trớc nên việc khởi động TP là dễ dàng với các em. Mặc dù vậy, GV nên tạo biểu tợng của chơng trình TP trên màn hình nền (Shortcut) để thuận tiện cho HS khởi động trong tiết thực hành.
Khi khởi động TP, màn hình hiện lên nh hình dới đây. Rất có thể HS bỡ ngỡ, lúng túng vì có một thông báo giữa màn hình vì điều này không đợc nhắc đến trong SGK. GV lu ý nhắc HS nháy nút OK để bắt đầu làm việc với TP.
Một lu ý nữa, có thể màn hình làm việc của TP chỉ là một cửa sổ nhỏ, không chiếm hết toàn bộ màn hình nh minh hoạ dới đây.
Để HS tiện theo dõi thì nên mở rộng cửa sổ TP chiếm hết toàn bộ màn hình. Cách làm nh sau:
- Chọn biểu tợng tắt của TP trên màn hình nền;
- Nháy nút phải chuột để mở bảng chọn tắt nh hình dới đây;
- Trong bảng chọn tắt, chọn mục Properties, cửa sổ Shortcut
to Turbo Pascal Properties hiện lên.
- Trong cửa sổ Shortcut to Turbo Pascal Properties, chọn mục
Screen, sau đó nháy chuột chọn Full-screen nh hình dới
đây.
Từ lần khởi động TP tiếp theo màn hình làm việc của TP sẽ mở rộng toàn bộ màn hình máy tính.
Trong bài 1, cần cho HS nhận biết biểu tợng của TP trên màn hình nền, khởi động/thoát khỏi TP; biết cách mở bảng chọn; nhận biết đợc dòng trợ giúp nằm dới cùng của màn hình để tra cứu nhanh phím chức năng khi cần. Không nên mất nhiều thời gian cho bài 1 bởi vì những kĩ năng này học sinh sẽ còn phải làm quen, sử dụng ở những bài sau.
Với bài 2, cần nhắc HS gõ chính xác chơng trình vào máy tính. Mặc dù việc soạn thảo một chơng trình ngắn nh ví dụ đa ra cha cần sử dụng nhiều đến các công cụ soạn thảo. Tuy nhiên, GV cần lu ý cho HS một số điểm: Soạn thảo trong TP có một số điểm khác với soạn thảo văn bản mà các em đã đợc học, cần hớng dẫn học sinh sử dụng phím
Delete, Back khi soạn thảo trong TP. Các công cụ soạn thảo nh: sao
chép, cắt, dán... trong TP cũng khác, cần hớng dẫn HS cách tra cứu các lệnh này trong bảng chọn khi cần thiết. Có thể HS muốn gõ tiếng Việt có dấu ở những câu tiếng Việt (do đã quen với gõ tiếng Việt có dấu khi làm việc với phần mềm bảng tính, phần mềm soạn thảo văn bản ở các lớp trớc), cần lu ý các em chỉ gõ tiếng Việt không dấu, TP không hỗ trợ gõ tiếng Việt có dấu.
Trọng tâm của bài 2 này là HS thực hiện đợc việc soạn thảo, lu, dịch và chạy đợc chơng trình.
Khi dịch chơng trình rất có thể máy tính sẽ báo lỗi do HS soạn thảo chơng trình còn lỗi chính tả, không hoàn toàn chính xác. GV yêu cầu HS tự đối chiếu chơng trình vừa gõ với chơng trình trong SGK để chỉnh sửa theo đúng chơng trình mẫu. Việc làm này là cần thiết để HS thấy đợc tính nghiêm ngặt của ngôn ngữ lập trình và rèn luyện thái độ nghiêm túc trong học tập, làm việc với ngôn ngữ lập trình.
Khi nhấn Ctrl+F9 để dịch và chạy chơng trình, có thể HS không xem đợc kết quả hiển thị trên màn hình, để dừng màn hình lại cho HS quan sát kết quả cần thêm lệnh Readln ngay trớc từ khoá End. Khi đó, hình sẽ dừng lại để HS quan sát kết quả, quan sát kết quả xong nhấn
Enter để trở về màn hình soạn thảo của TP.
GV có thể hớng dẫn các em thay các cụm từ Chao cac ban và Minh la Turbo Pascal bằng các cụm từ khác để tạo hứng thú trong học
Bài 3 nhằm mục đích để HS làm quen với việc sử dụng TP sửa lỗi cú pháp cho chơng trình. Có thể căn cứ vào thông báo lỗi của TP để sửa chơng trình.
Cùng với việc cung cấp chơng trình soạn thảo, việc dịch, phát hiện và thông báo lỗi là các yếu tố quan trọng của một môi trờng lập trình. Một môi trờng lập trình tốt là một môi trờng có nhiều công cụ hỗ trợ cho ngời lập trình trong việc soạn thảo, dịch, phát hiện và sửa lỗi. Hiện nay, có nhiều môi trờng lập trình cung cấp các tiện tích hỗ trợ tốt cho ngời lập trình nh Java, Visual C, Visual Basic... .
Nếu còn thời gian, GV có thể yêu cầu HS thay đổi giữa cách viết thờng và cách viết hoa của từ khoá để thấy đợc PASCAL không phân biệt chữ hoa và chữ thờng. Cho HS thay lệnh write() bằng writeln() (hoặc ngợc lại) và quan sát để nhận thấy sự khác biệt giữa lệnh write() và writeln(). Ví dụ, ban đầu trong chơng trình có hai dòng lệnh
writeln('Chao cac ban'); và writeln('Minh la Turbo Pascal'); thì kết
quả đa ra màn hình trên hai dòng. Sau đó sửa lệnh đầu tiên thành
write('Chao cac ban') và giữ nguyên lệnh thứ hai thì kết quả in ra trên
một dòng. So sánh hai kết quả để rút ra sự khác nhau giữa lệnh write là writeln. Cách làm này là một phơng pháp hớng dẫn HS tự khám phá, tìm hiểu câu lệnh của ngôn ngữ lập trình.
Bài 3. Chơng trình máy tính xử lí dữ liệu gì?
1. Mục đích, yêu cầu
• Biết khái niệm kiểu dữ liệu;
• Biết một số phép toán cơ bản với dữ liệu số;
• Biết khái niệm điều khiển tơng tác giữa ngời với máy tính.
2. Những điểm cần lu ý và gợi ý dạy học
HS đã đợc làm quen với khái niệm dữ liệu ở các lớp trớc, không cần thiết phải giải thích sâu thêm về khái niệm dữ liệu ở đây.
Kiểu dữ liệu là một khái niệm mới và tơng đối khó với HS. Vì vậy, không yêu cầu truyền đạt hết kiến thức về kiểu dữ liệu ở bài này. HS còn đợc tiếp cận dần về kiểu dữ liệu ở các bài sau.
Có thể nêu cho HS thấy, ở môn Văn-Tiếng Việt có thể tiến hành phân tích, phát biểu cảm nghĩ về bài văn, bài thơ nào đó. Nhng ở môn
Toán thì ta thờng tính toán bằng các phép cộng trừ, nhân, chia... với các con số.
Tơng tự nh vậy, đối với ngôn ngữ lập trình kiểu dữ liệu nào thì có cách xử lí tơng ứng.
Trong ngôn ngữ lập trình dữ liệu đợc xử lí có thể là dãy các kí tự (gọi là kiểu xâu), có thể là các số (số nguyên-kiểu nguyên, số thực-kiểu thực). Tơng ứng với dữ liệu nào thì có các phép toán xử lí tơng ứng, ví dụ với dữ liệu là số thì có thể tiến hành các phép toán cộng, trừ, nhân, chia với các số đó. Phép toán nh div, mod lại chỉ có thể thực hiện với kiểu nguyên mà không thực hiện đợc với kiểu thực.
Về thao tác xử lí dữ liệu kiểu xâu, GV có thể cho HS thấy ví dụ về thực hiện thao tác hiển thị dữ liệu kiểu xâu ra màn hình mà các em đã học ở bài thực hành 1.
writeln('Chao Cac Ban');
write('Minh la Turbo Pascal');
Lu ý rằng dữ liệu kiểu xâu trong Pascal đợc đặt trong cặp dấu nháy đơn. GV cha nên giới thiệu về các thao tác xử lí đối với dữ liệu kiểu xâu kí tự gây quá tải với HS.
Mục 2, chỉ nêu các phép toán với dữ liệu kiểu nguyên và kiểu thực. Cần lu ý một số điểm sau:
- Sự khác nhau giữa kí hiệu phép toán trong toán học và trong Pascal. Có thể cho HS tự xem các bảng ở mục 2 để phát hiện ra sự khác nhau này.
- Trong PASCAL chỉ cho phép sử dụng cặp dấu ngoặc tròn () để mô tả thứ tự thực hiện các phép toán. Không dùng cặp dấu ngoặc vuông [] hay cặp dấu ngoặc nhọn {} nh trong toán học. GV có thể hỏi HS, giả sử khi viết chơng trình một bạn nào đó đã quên quy định này của Pascal mà dùng dấu ngoặc vuông hay dấu ngoặc tròn để viết biểu thức thì có đợc không? Mục tiêu của câu hỏi này là để các em nhớ rằng luôn phải tuân thủ những nguyên tắc, quy định mà ngôn ngữ lập trình đặt ra, nếu không chơng trình dịch sẽ không hiểu và không thể dịch ra cho máy tính thực hiện đợc.
- Các phép toán đợc thực hiện theo thứ tự u tiên:
• Trong dãy các phép toán không có dấu ngoặc, các phép nhân, phép chia, phép chia lấy phần nguyên (div) và phép chia lấy phần d (mod) đợc thực hiện trớc;
• Cuối cùng thực hiện phép cộng và phép trừ.
Các phép toán lấy phần nguyên (div), lấy phần d (mod) chỉ giới thiệu cho HS biết, không nên dành nhiều thời gian vào giới thiệu hai phép toán này.
Mục 3 - các phép so sánh, cũng giống với mục 2, cần cho HS nhận thấy sự khác biệt về kí hiệu sử dụng trong toán học và trong Pascal. Điểm cần nhấn mạnh ở mục này là kết quả của một phép so sánh chỉ có thể là đúng hoặc sai. HS sẽ hiểu rõ hơn về ý nghĩa của phép so sánh khi học đến câu lệnh điều kiện, cấu trúc điều khiển ở bài sau.
Cần lu ý rằng các kí hiệu phép toán, phép so sánh ở trên là của Pascal. Có sự khác nhau về các kí hiệu này ở các ngôn ngữ lập trình khác nhau. Khi làm việc với ngôn ngữ lập trình nào thì phải tuân thủ các quy định về kí hiệu phép toán của ngôn ngữ lập trình đó. Tuy nhiên, các ngôn ngữ lập trình đều cho phép biểu diễn các phép tính số học, phép so sánh.
Mục 4- Giao tiếp ngời-máy tính, nội dung này tốt nhất là GV nên minh hoạ trên máy tính. Có thể viết sẵn và cho chạy một chơng trình nh sau (GV có thể sử dụng chơng trình khác):
Chơng trình này sẽ cho phép nhập tên của ngời sử dụng và tiến hành in ra màn hình dòng chữ chào với tên mà ngời sử dụng vừa nhập. Chơng trình sẽ lặp đến khi ngời sử dụng nhấn phím khác với phím C.
Có thể mời lần lợt một số em lên nhập tên của chính các em để thấy đợc sự thay đổi tơng ứng với dữ liệu nhập vào. Từ đó các em thấy đợc khái niệm tơng tác ngời-máy tính.
Một điểm cần lu ý ở đây là cần cho HS thấy sự tơng tác giữa ngời và máy có đợc là do ngời lập trình tạo ra. Có thể mở chơng trình và giải thích sơ bộ cho các em về một số câu lệnh đơn giản để nhập tên, in dòng chào với tên tơng ứng. Lu ý, lúc này không phải là thời điểm thích hợp để giải thích tất cả các câu lệnh trong chơng trình. Những tơng tác ngời-máy tính mà các em đã thực hiện khi soạn thảo văn bản, sử dụng hệ điều hành... là do ngời lập trình tạo ra là một kiến thức quan trọng mà các em cần rút ra ở đây. Điều này thể hiện sự khác biệt giữa học tin học đơn thuần chỉ để sử dụng và học tin học với t cách là một ngành khoa học. HS sẽ dần hiểu rõ hơn về việc này ở những bài học sau.
Để chuẩn bị cho bài thực hành 2, GV có thể cho HS làm câu a, bài 1 của bài thực hành 2 ngay trên lớp.
3. Hớng dẫn trả lời câu hỏi và bài tập
Bài 1. Vì dữ liệu và các thao tác xử lí dữ liệu rất đa dạng, lí do dễ nhận thấy nhất là việc phân chia dữ liệu thành các kiểu giúp xác định các phép xử lí (phép toán) có thể thực hiện trên mỗi kiểu dữ liệu. Ngoài ra, việc phân chia kiểu dữ liệu còn cho biết các giá trị có thể (phạm vi) của dữ liệu, giúp cho việc quản lí tài nguyên của máy tính (đặc biệt là bộ nhớ trong) một cách hiệu quả.
Bài 2.Có thể nêu các ví dụ sau đây:
a) Dữ liệu kiểu số và dữ liệu kiểu xâu kí tự. Phép cộng đợc định nghĩa trên dữ liệu số, nhng không có nghĩa trên dữ liệu kiểu xâu.
b) Dữ liệu kiểu số nguyên và dữ liệu kiểu số thực. Phép chia lấy phần nguyên và phép chia lấy phần d có nghĩa trên dữ liệu kiểu số nguyên, nhng không có nghĩa trên dữ liệu kiểu số thực.
Bài 3. Biểu diễn số 2010 có thể dùng kiểu dữ liệu số nguyên, số thực hoặc kiểu xâu kí tự. Tuy nhiên, để chơng trình dịch Turbo Pascal hiểu 2010 là dữ liệu kiểu xâu, chúng ta phải viết dãy số này trong cặp dấu nháy đơn (').
var a: real; b: integer;
writeln('123'); writeln(123); a:=2010;
b:=2010;
end.
Bài 4. Cho hai xâu kí tự "Lớp" và "8A". Có thể định nghĩa nhiều "phép toán" trên tập hợp các dữ liệu kiểu xâu. Chẳng hạn phép ghép: Lớp