1. Trang chủ
  2. » Trung học cơ sở - phổ thông

chuc mùng tin học 7 đỗ tấn thanh thư viện tư liệu giáo dục

57 4 0

Đ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

Định dạng
Số trang 57
Dung lượng 689,67 KB

Nội dung

j) ViÖc giíi thiÖu phÇn mÒm häc tËp nh»m môc ®Ých chÝnh lµ cung cÊp kiÕn thøc, rÌn luyÖn kÜ n¨ng khai th¸c phÇn mÒm cho HS. Do vËy, mÆc dï SGK tr×nh bµy hai phÇn t¸ch biÖt nhng kh«ng cã [r]

(1)

Phần 1 A vấn đề chung

I Nội dung chơng trình chuẩn kiến thức, kĩ môn Tin học cấp trung học sở

1 Mơc tiªu  KiÕn thøc:

o Trang bÞ cho häc sinh mét sè hiĨu biÕt nhập môn thuật toán ngôn ngữ lập trình, cấu trúc chơng trình bản: tuần tự, rẽ nhánh lặp mức phổ thông

o Bit đợc lợi ích việc viết chơng trình máy tính để giải tốn khác lĩnh vực đời sống

o Biết cách sử dụng đợc phần mềm học tập trình bày SGK

o Hiểu đợc ý nghĩa phần mềm máy tính ứng dụng lĩnh vc khỏc ca cuc sng

Kĩ năng:

o Giải đợc số toán đơn giản máy tính cách vận dụng thuật tốn đơn giản, liệu chuẩn ngơn ngữ lập trình bậc cao cụ thể

o Sử dụng khai thác thành thạo phần mềm học tập đợc giới thiệu o Rèn luyện khả thao tác nhanh với bàn phím chuột máy tính  Thái độ:

o Ham thích môn học, tác phong làm việc nghiêm túc, cẩn thận tinh thần làm việc theo nhóm o Nghiêm túc học làm việc máy tính không phân biệt phần mềm học tập hay phần mềm

trị chơi Có ý thức sử dụng máy tính mục đích o Nâng cao ý thức lịng say mê học tập môn học 2 Nội dung chơng trình

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

- Thuật toán ngôn ngữ lập trình;

- Chng trình Turbo Pascal (TP) đơn giản; - Tổ chức rẽ nhỏnh;

- Tổ chức lặp;

- Kiểu mảng biến có số; - Một số thuật toán tiêu biểu Khai thác phần mềm học tập 3) Chuẩn kiến thức, kĩ năng

CHủ Đề MứC Độ CầN ĐạT GHI CHú

Lp trỡnh n gin

1 Thuật toán ngôn ngữ lập trình

KiÕn thøc

Biết đợc khái niệm toán, thuật tốn Biết mơ tả thuật tốn cách liệt kê bớc sơ đồ khối

Biết đợc chơng trình mơ tả thuật tốn ngơn ngữ cụ thể

KÜ năng

Mụ t c thut toỏn n gin bng liệt kê bớc

(2)

CHđ §Ị MứC Độ CầN ĐạT GHI CHú

2 Chng trỡnh TP đơn giản

KiÕn thøc

BiÕt s¬ bé ngôn ngữ lập trình Pascal Biết cấu trúc chơng trình TP: cấu trúc chung thành phần

Biết thành phần sở ngôn ng÷ Pascal

Hiểu đợc số kiểu liệu chuẩn Hiểu đợc cách khai báo biến

Biết đợc khái niệm: phép toán, biểu thức số học, hàm số học chuẩn, biểu thức quan hệ Hiểu đợc lệnh gán

Biết câu lệnh vào/ra đơn giản để nhập thơng tin từ bàn phím đa thơng tin mn hỡnh

Kĩ năng

Vit c chng trình TP đơn giản, khai báo biến, câu lệnh vào/ra để nhập thơng tin từ bàn phím đa thơng tin hình

- Cã thĨ sư dụng ngôn ngữ lập trình khác theo hớng dẫn thực chơng trình

- Minh ho cỏc khỏi nim chơng trình TP đơn giản

- Cần xây dựng thực hành tổ chức thực phòng máy để học sinh đạt đợc kỹ theo yêu cầu

3 Tæ chøc rÏ nh¸nh

KiÕn thøc

Hiểu đợc câu lệnh rẽ nhánh (dạng thiếu dạng đủ)

Hiểu đợc câu lệnh ghép Kĩ năng

Viết lệnh rẽ nhánh khuyết, rẽ nhánh đầy đủ

Biết sử dụng có hiệu câu lệnh rẽ nhánh

- Nhấn mạnh cấu trúc điều khiển tuần tự, rẽ nhánh lặp

- Trỡnh by c thuật toán số toán rẽ nhánh thờng gặp, chẳng hạn giải phơng trình bậc

4 Tỉ chøc lỈp

KiÕn thøc

Hiểu đợc câu lệnh lặp kiểm tra điều kiện tr-ớc, vòng lặp với số lần định trớc

Biết đợc tình s dng tng loi lnh lp

Kĩ năng

Viết lệnh lặp với số lần định trớc

- Kĩ yêu cầu sử dụng lệnh lặp vi s ln nh trc

5 Kiểu mảng biÕn cã chØ sè

KiÕn thøc

Biết đợc khái niệm mảng chiều

BiÕt c¸ch khai b¸o mảng, truy cập phần tử mảng

Kĩ năng

Thc hin c khai bỏo mng, truy cp phần tử mảng, sử dụng phần tử mảng biểu thức tính tốn

- u cầu học sinh viết đợc chơng trình số tốn sau: nhập giá trị phần tử mảng, in, tính tổng phần tử

6 Mét sè thuËt to¸n tiªu biĨu

KiÕn thøc

Hiểu thuật tốn số tốn thờng gặp nh: tìm số lớn nhất, số nhỏ nhất; kiểm tra số cho trớc có phải độ dài cạnh tam giác khụng

Khai thác phần

mm hc tp Kin thứcBiết cách sử dụng phần mềm học tập lựa chn

Kĩ năng

Thc hin c cỏc cụng việc khởi động/ra khỏi, sử dụng bảng chọn, thao tác tơng tác với phần mềm

- Lùa chän phần mềm học tập theo hớng dẫn thực chơng tr×nh

(3)

Sách giáo khoa Tin học dành cho THCS Q3 đợc biên soạn theo số định hớng cụ thể sau:

 Thể nội dung, yêu cầu chơng trình đợc Bộ Giáo dục Đào tạo phê duyệt cung cấp cho học sinh kiến thức, kĩ bản, thiết thực có hệ thống ban đầu thuật tốn kĩ thuật lập trình

 Tiếp cận đợc trình độ giáo dục phổ thơng nớc tiên tiến khu vực giới

 Nội dung sách giáo khoa tập trung vào kiến thức định hớng để từ học sinh phát huy yếu tố tích cực thành tựu công nghệ thông tin tăng cờng khả tự học

 Nội dung, cách trình bày diễn đạt ngắn gọn, dễ hiểu thông qua mơ tả ví dụ minh hoạ cụ thể Cu trỳc

Tơng ứng với Chơng trình giáo dục phổ thông môn Tin học, cấp Trung học Cơ sở (THCS), phần III, sách giáo khoa (SGK) gồm hai phÇn:

Phần 1- Lập trình đơn giản: gồm lí thuyết, thực hành; Phần - Phần mềm học tập: gồm lí thuyết kết hợp với thực hành  Nội dung

TIN häc dµnh cho THCS - qun

Phần 1- Lập trình đơn giản Bài Máy tính chơng trỡnh mỏy tớnh

Bài Làm quen với Chơng trình Ngôn ngữ lập trình Bài thực hành Làm quen với Turbo Pascal

Bài Chơng trình máy tính liệu

Bi thc hnh Viết chơng trình để tính tốn Bài Sử dụng biến chơng trình

Bài thực hành Khai báo sử dụng biến Bài Từ toán n chng trỡnh

Bài Câu lệnh điều kiện

Bài thực hành Sử dụng lệnh điều kiện if then Bài Câu lệnh lặp

Bài thực hành Sử dụng lệnh lặp for do Bài Lặp với số lần cha biết trớc

Bài thực hành Sử dụng lệnh lặp while do Bµi Lµm viƯc víi d·y sè

Bµi thùc hành Xử lí dÃy số chơng trình

PhÇn - PhÇn mỊm häc tËp Lun gâ phÝm nhanh víi Finger Break Out

T×m hiĨu thêi gian với phần mềm Sun Times Học vẽ hình với phần mềm Geogebra

Quan sát hình không gian với phần mềm Yenka Đề xuất phân bổ thời lợng:

Nội dung Bài lí thuyết lí thuyết kết hợp thùc

hµnh

Bµi thùc hµnh

Tổng số tiết Phần Lập trình đơn

gi¶n

9 34

PhÇn PhÇn mỊm häc tập

4 16

Bài tập

Ôn tËp

KiÓm tra

(4)

2 Mét sè gi¶i thÝch

a) Sách giáo khoa Tin học dành cho THCS - Quyển đợc biên soạn bám sát theo nội dung, yêu cầu Chơng trình giáo dục phổ thơng mơn Tin học, cấp THCS, phần III đợc ban hành kèm theo Quyết định số 16/2006/QĐ-BGDĐT ngày 05/5/2006 Bộ trởng Bộ Giáo dục Đàotạo

b) Phần gồm lí thuyết, dạy 02 tiết lí thuyết 01 tiết tập, riêng dạy 04 tiết lí thuyết và 02 tiết tập; Bài khơng có tiết tập riêng Có thực hành, dạy 02 tiết Phần gồm lí thuyết kết hợp thực hành Mỗi đ ợc dạy trọn vẹn 04 tiết Về tiết tập dành cho việc làm tập phần (Lập trình đơn giản), phần (Phần mềm học tập) không cần tiết tập

c) Thời lợng dành cho ôn tập cuối kì 04 tiết, học kì 02 tiết Thời lợng dành cho kiểm tra định kì tiết, học kì 04 tiết

Việc phân bổ thời lợng tơng đối, q trình dạy học giáo viên (GV) điều chỉnh để phù hợp với tình hình thực tiễn

d) Trong phân bổ thời lợng, số tiết tập nhiều (8 tiết) Điều thể câu hỏi, tập phần quan trọng viƯc gióp HS tiÕp thu kiÕn thøc, rÌn lun kÜ

e) Cỏc ni dung c thờm cuối không bắt buộc, tránh yêu cầu tất HS phải đọc, hiểu, gây tải GV chọn lựa, giới thiệu, giải thích đơi chút để gây hứng thú cho em ham thích, đọc thêm

3 Gợi ý cách tiến hành giảng dạy

a) Về SGK lựa chọn phơng án trình bày kiến thức, kĩ chung lập trình sử dụng ngôn ngữ Pascal để minh hoạ Cách tiếp cận thể rõ việc dạy lập trình nói chung mà khơng phải dạy ngơn ngữ lập trình cụ thể Pascal Tuy nhiên, giảng dạy GV khơng thiết phải trình bày theo cách tiếp cận Có thể tiếp cận cách từ ngơn ngữ lập trình cụ thể Pascal khái quát thành kiến thức, kĩ lập trình nói chung Cách tiếp cận từ cụ thể đến khái quát phù hợp với phần lớn HS THCS Trong SGV, nội dung cụ thể đợc gợi ý cách dạy học theo hớng từ cụ thể để khái quát

b) Do sử dụng ngôn ngữ Pascal để minh hoạ, thời lợng làm việc với câu lệnh, chơng trình, phần mềm TP nhiều nên dễ cảm nhận học ngôn ngữ Pascal Vì vậy, trình dạy học GV cần lu ý tiến hành khái quát lúc, chỗ để HS vợt khỏi ngôn ngữ cụ thể, rút đ-ợc kiến thức, kĩ năng, nguyên lí lập trình nói chung Trong SGV có hớng dẫn thời điểm khái quát hoá kiến thức, kĩ số học cụ thể

c) Các chơng trình đợc viết học tiết lí thuyết, tiết tập cần để HS chạy thử thực hành sau Làm nh giúp HS củng cố, hiểu rõ nội dung lí thuyết vừa học Hơn nữa, việc giúp tạo hứng thú, củng cố niềm tin cho HS, gắn kết tốt học với hành Để tránh HS nhiều thời gian vào việc gõ chơng trình, GV nên gõ sẵn chơng trình đợc viết lí thuyết, tập để HS chỉnh sửa, chạy thử, tìm hiểu thực hành, khơng nên u cầu HS gõ chơng trình tiết thực hành

d) Trong phân bổ thời lợng dành tiết để làm tập, tiết để ôn tập Các tiết cha đợc định nội dung cụ thể, GV hoàn toàn chủ động đa nội dung cho tiết tập, ôn tập Tuy nhiên, tiết tập nên dành thời gian để hớng dẫn học sinh làm số tập SGK (nếu tiết lí thuyết cha làm hết), chuẩn bị cho thực hành sau Tuỳ mức độ tiếp thu HS, GV thêm tập, bổ sung thực hành máy tính để HS ơn luyện kiến thức, kĩ Các tiết ôn tập nên đợc bố trí vào cuối kì (ngay trớc sau kiểm tra cuối học kì), tiết ơn tập cần tổng kết, khái quát kiến thức, kĩ trọng tâm chơng trình để HS khắc sâu, ghi nhớ Đặc biệt tiết ơn tập cần khái qt hố để thể đợc t tởng dạy lập trình mà khơng dạy ngơn ngữ lập trình cụ thể

e) Trong SGV có gợi ý mơ tả số thuật tốn theo cách biểu diễn gần với câu lệnh mà học sinh cần viết cần tìm hiểu chơng trình tơng ứng GV tham khảo, lựa chọn cách mô tả để giảng dạy phù hợp với đối tợng HS

f) Các tốn đợc giới thiệu SGK nói chung đơn giản, viết chơng trình mà khơng gặp nhiều khó khăn Đối với toán cụ thể, nhiệm vụ HS viết đợc chơng trình Tuy nhiên, qua toán HS cần hiểu thực đợc bớc giải tốn máy tính: Xác định toán, xây dựng (lựa chọn) thuật toán viết chơng trình Do vậy, cần thực đầy đủ bớc từ tốn đến chơng trình: Xác định input, output tốn, xây dựng, mơ tả thuật tốn cách liệt kê viết chơng trình

(5)

lệnh với việc dạy thuật toán mới, nghĩa dạy xong câu lệnh đến thuật toán ngợc lại Trong SGV có giới thiệu số cách làm nh vậy, toán sử dụng để giới thiệu áp dụng câu lệnh thờng dễ HS biết toán, thuật toán từ trớc Khi đó, HS cịn nhiệm vụ tìm hiểu câu lệnh, thời gian để hiểu tốn, thuật tốn HS cần tập trung tìm hiểu câu lệnh Ngợc lại, giới thiệu thuật toán cần sử dụng câu lệnh HS biết sử dụng, lúc HS tập trung vào tìm hiểu thuật tốn Hi vọng cách làm nh tạo thuận lợi để học sinh tiếp thu kiến thức nhẹ nhàng

h) SGK tài liệu mà HS có SGK đợc in màu, hình thức đẹp, tranh, ảnh cách trình bày SGK đợc chọn lọc, cân nhắc kĩ lỡng Vì vậy, cần khai thác tối đa SGK trình dạy học Một việc thực lớp học hớng dẫn HS dành thời gian cho HS tự nghiên cứu nội dung SGK Ban đầu việc giao cho HS đọc thời gian, nh ng kĩ đọc hiểu HS đợc cải thiện việc dành thời gian để em tự đọc khơng không thời gian mà ngợc lại tiết kiệm thời gian

i) Việc dạy học phần mềm dạy học hiệu tiến hành phịng máy tính Nhng dạy lập trình khơng nên lạm dụng phịng máy tính Tiết thực hành để HS chạy thử chơng trình, rèn luyện kĩ làm việc với mơi trờng lập trình Khơng để tình trạng vào tiết thực hành HS biết tốn viết chơng trình máy tính mà cha chuẩn bị trớc

j) Việc giới thiệu phần mềm học tập nhằm mục đích cung cấp kiến thức, rèn luyện kĩ khai thác phần mềm cho HS Bên cạnh đó, việc khai thác phần mềm học tập cịn nhằm mục đích tạo thay đổi, gây thêm hứng thú học tập Do vậy, SGK trình bày hai phần tách biệt nhng khơng có nghĩa phải dạy theo trình bày SGK Nội dung Phần (Phần mềm học tập) cần đợc dạy xen kẽ với Phần (Lập trình đơn giản) Cũng lí mà SGK không đánh số thứ tự bi phn Phn mm hc

4 Ôn tËp vµ kiĨm tra

a) Thời lợng dành cho ôn tập 04 tiết (02 tiết/học kì) Căn vào tình hình thực tế lớp học, giáo viên tự xác định nội dung tiết ôn tập Tuy nhiên, nên dành tiết ôn tập để ôn luyện, tổng kết kiến thức, kĩ trọng tâm chơng trình Trong tiết ơn tập GV cần khái qt kiến thức, kĩ lập trình nói chung thể rõ mục tiêu, trọng tâm chơng trình

b) Thời lợng để kiểm tra, đánh giá tiết, học kì 04 tiết Có thể dành tiết cho kiểm tra cuối học kì, tiết cịn lại dành cho kiểm tra định kì học kì Nếu tiến hành hai kiểm tra định kì (mỗi tiết) học kì, nên có kiểm tra giấy, kiểm tra thực hành máy Hớng dẫn cụ thể kiểm tra, đánh giá có Hớng dẫn thực chơng trình, sách giáo khoa mơn Tin học lớp phân phối chơng trình mơn học

c) Nội dung kiểm tra phải đảm bảo lí thuyết thực hành Cần lựa chọn nội dung kiểm tra để đảm bảo bao quát hết kiến thức, kĩ trọng tâm chơng trình

d) Một số nội dung phần lập trình đơn giản thuận lợi cho việc áp dụng phơng pháp trắc nghiệm khách quan kiểm tra, đánh giá Vì vậy, cần lu ý tăng cờng sử dụng trắc nghiệm khách quan kiểm tra, đánh giá nội dung

e) Việc kiểm tra, đánh giá có tác động đến q trình dạy học Để định hớng học tập cho HS, bên cạnh việc kiểm tra kiến thức, kĩ gắn liền với ngơn ngữ lập trình cụ thể, cần dành tỉ lệ thích đáng cho câu hỏi, tập kiến thức, kĩ lập trình nói chung Những câu hỏi, tập giúp HS có ý thức trọng đến kiến thức, kĩ lập trình nói chung, tránh HS trọng đến đến chi tiết cụ thể ngơn ngữ lập trình Pascal

f) Cần tiến hành đánh giá học sinh thực hành, điểm điểm kiểm tra thờng xuyên (hệ số 1) Trong tiết thực hành đánh giá, cho điểm lớp nhóm vài học sinh Tuy nhiên, cần lu ý mục tiêu thực hành để học sinh thực hành, kiểm tra Kiểm tra thực hành để học sinh tập trung, chăm chỉ, nghiêm túc học tập

g) Việc kiểm tra, đánh giá môn Tin học cấp THCS đợc thực theo Quy chế Đánh giá, xếp loại học sinh trung học sở học sinh trung học phổ thông (Ban hành kèm theo Quyết định số: 40/2006/QĐ-BGDĐT ngày 05 tháng 10 năm 2006 Bộ trởng Bộ Giáo dục o to)

5 Thiết bị dạy học

(6)

b) Phần lớn nội dung dạy học Tin học THCS hiệu sử dụng thiết bị trình chiếu, máy chiếu projector, máy chiếu overhead, máy chiếu vật thể, thiết bị đợc khuyến khích trang bị để dạy học cho môn Tin học

c) Trong SGK sử dụng phần mềm Turbo Pascal để minh hoạ Phần mềm TP chạy máy tính có tốc độ cao bị lỗi Division by zero (khi sử dụng th viện crt - uses crt) GV tải phần mềm TP đợc chỉnh sửa lỗi website www.vnschool.net Với nội dung dạy học SGK hồn tồn thay TP (for Dos) Pascal for Windows Free Pascal Các phần mềm phục vụ dạy học theo SGK (kể phần mềm học tập) đợc tải từ website nêu có sẵn đĩa CD GV tham dự lớp bồi dỡng GV cốt cán (xem trang 24)

d) Những trờng đợc trang bị hệ thống Hishare (một CPU kết nối với nhiều hình) gặp khó khăn sử dụng TP (for DOS), tốc độ chậm Trong trờng hợp nên thay TP (for DOS) Pascal for Windows Free Pascal

e) Hiện số trờng THCS cịn có máy tính cấu hình thấp đợc trang bị từ trớc Những máy tính hồn tồn đợc sử dụng để thực hành với phần mềm TP (for DOS) Do vậy, cần rà sốt, tận dụng máy tính cũ để phục vụ cho tiết thực hành với TP

f) Hiện có số phần mềm hỗ trợ cho việc quản lí dạy học phịng máy tính Hơn phần mềm cịn giúp khai thác phịng thực hành mơn Tin học nh phịng đa phơng tiện để dạy học mơn học khác Dới giới thiệu số phần mềm để giáo viên tham khảo:

o XClass: www.hungphat.com.vn o Magic Class: www.anhkiet.com.vn

o NetOPSchool (Đề nghị sử dụng www.google.com để tìm kiếm) o E-Learning Class (Đề nghị sử dụng www.google.com để tìm kiếm)

(7)

B vấn đề cụ thể phần lập trình đơn giản

I Giíi thiƯu 1 Mơc tiªu

Mơc tiªu cđa phần cung cấp cho HS số kiến thức, kĩ bản, phổ thông lập trình thông qua ngôn ngữ lập trình bậc cao Pascal

KiÕn thøc

 Biết đợc khái niệm toán, thuật tốn, mơ tả thuật tốn cách liệt kê;  Biết đợc chơng trình mơ tả thuật tốn ngơn ngữ cụ thể;

 Hiểu thuật toán số toán đơn giản (tìm số lớn nhất, số nhỏ nhất; kiểm tra ba số cho tr ớc có phải độ dài ba cạnh tam giác không);

 Biết cấu trúc chơng trình, số thành phần sở ngôn ngữ;  Hiểu số kiểu liệu chuẩn, đơn giản, cách khai báo biến;

 Biết khái niệm: phép toán, biểu thức số học, hàm số học chuẩn, biểu thức quan hệ;  Hiểu đợc lệnh gán;

 Biết câu lệnh vào/ra đơn giản để nhập thơng tin từ bàn phím đa thơng tin hình;

 Hiểu đợc câu lệnh điều kiện, câu lệnh ghép, câu lệnh lặp kiểm tra điều kiện trớc, vòng lặp với số lần định trớc;

 Biết đợc tình sử dụng loại lệnh lặp;

 Biết đợc khái niệm mảng chiều, cách khai báo mảng, truy cập phần tử mảng Kĩ năng

 Mơ tả đợc thuật tốn đơn giản liệt kê bớc;

 Viết đợc chơng trình đơn giản, khai báo biến, câu lệnh vào/ra để nhập thông tin từ bàn phím đa thơng tin hình;

 Viết lệnh rẽ nhánh khuyết, rẽ nhánh đầy đủ;  Biết sử dụng có hiệu câu lệnh điều kiện;  Viết lệnh lặp với số lần định trớc;

 Thực đợc khai báo mảng, truy cập phần tử mảng, sử dụng phần tử mảng biểu thức tính tốn

Thái độ

 Nghiêm túc học tập, ham thích lập trình máy tính để giải tập 2 Nội dung

Bµi Máy tính chơng trình máy tính (2 tiết)

Bài Làm quen với chơng trình ngôn ngữ lập trình (2 tiết) Bài thực hành Làm quen với Turbo Pascal (2 tiết)

Bài Chơng trình máy tính liệu (2 tiết)

Bi thc hành Viết chơng trình để tính tốn (2 tiết) Bài Sử dụng biến chơng trình (2 tiết)

Bài thực hành Khai báo sử dụng biến (2 tiết) Bài Từ toán đến chơng trỡnh (4 tit)

Bài Câu lệnh điều kiện (2 tiÕt)

Bµi thùc hµnh Sư dơng lƯnh điều kiện if then (2 tiết) Bài Câu lệnh lặp (2 tiết)

Bài thực hành Sử dụng lệnh lặp for (2 tiết) Bài Lặp với số lần cha biết trớc (2 tiết)

(8)

Bµi Lµm viƯc víi d·y sè (2 tiÕt)

Bài thực hành Xử lí dãy số chơng trình (2 tiết)Nh nói trên, việc phân bố thời lợng nh tơng đối, trình giảng dạy, nhà trờng, giáo viên phân bố thời lợng cho cho phù hợp với tình hình cụ thể nhà trờng trình độ nhận thức học sinh

3 Những điểm cần lu ý gợi ý d¹y häc

a Nội dung phần cung cấp cho học sinh số kiến thức kĩ ban đầu lập trình Sau phần này, học sinh có số hiểu biết lập trình, viết đợc số chơng trình đơn giản ngơn ngữ lập trình cụ thể ngơn ngữ Pascal Các chơng trình đơn giản mặt gây hứng thú cho học sinh việc tìm hiểu tốn phức tạp viết chơng trình để giải tốn đó, mặt khác chúng phục vụ cho việc học tập tìm hiểu sâu mơn học khác, mơn Tốn

Phần đợc chia thành lí thuyết thực hành, nội dung đợc biên soạn để trình bày trọn vẹn 02 tiết 01 tiết tập Riêng với Bài thời lợng đợc tăng gấp đôi, tức 04 tiết lí thuyết 02 tiết câu hỏi tập Mỗi thực hành đợc trình bày sau lý thyết nhằm mục đích để học sinh ghi nhớ rèn luyện kiến thức kĩ học sinh học lí thuyết trớc

b Về SGK trình bày theo cách tiếp cận kiến thức, khái niệm lập trình từ khái quát đến cụ thể Mục tiêu SGK trình bày khái niệm ban đầu lập trình nói chung, với cố gắng khơng gắn với ngơn ngữ lập trình cụ thể Cách tiếp cận thể rõ mục tiêu ch ơng trình dạy kiến thức, kĩ lập trình, ngơn ngữ lập trình nói chung, khơng phải dạy ngơn ngữ lập trình định

Đối với HS THCS, để HS dễ tiếp thu, việc trình bày ngơn ngữ lập trình cần thơng qua ngơn ngữ lập trình cụ thể để minh hoạ, giải thích Hơn nữa, kĩ lập trình nh viết, chỉnh sửa, dịch, chạy kiểm thử chơng trình địi hỏi phải sử dụng ngơn ngữ lập trình bậc cao cụ thể Khó lựa chọn ngơn ngữ lập trình cụ thể đáp ứng lúc đợc tiêu chí nh: đại, cập nhật, dễ hiểu, dễ dùng, giá thành rẻ (hoặc miễn phí) tính s phạm cao Cho nên cách sử dụng Pascal để minh hoạ SGK phơng án Giáo viên thay ngơn ngữ Pascal ngơn ngữ lập trình khác phù hợp với thực tế lớp học miễn truyền đạt đợc kiến thức, kĩ theo yêu cầu chơng trình

Việc lựa chọn ngơn ngữ Pascal để minh hoạ SGK đợc cân nhắc kĩ lỡng số lí sau đây: (1) Ngơn ngữ Pascal ngơn ngữ lập trình cấu trúc, sáng, có tính s phạm cao; (2) Phần lớn GV Tin học cấp THCS đợc học thực hành ngơn ngữ lập trình Pascal chính; (3) Ngơn ngữ Pascal có nhiều phiên chạy đợc hệ điều hành khác có trờng THCS; (4) Ngơn ngữ lập trình Pascal chạy đợc hầu hết tất máy đợc trang bị trờng THCS từ trớc đến nay; (5) Việc cài đặt Pascal dễ dàng ngơn ngữ Pascal đợc sử dụng miễn phí

Cũng có ý kiến cho chọn ngơn ngữ lập trình khác để minh họa, chẳng hạn nh Logo, Basic, VB, C Java, VB, C Java chúng ngôn ngữ đại đợc sử dụng để phát triển hầu hết ứng dụng Hai ngôn ngữ đầu ngôn ngữ đ ợc phổ biến, khơng cịn đợc sử dụng rộng rãi Những ngôn ngữ sau lại ngôn ngữ nặng nề phức tạp việc cài đặt sử dụng, điều kiện sở vật chất trờng phổ thơng Do tác giả thấy Pascal lựa chọn hợp lí khả thi

Tuy sử dụng Pascal để minh họa, giảng dạy giáo viên cần lu ý truyền đạt kiến thức lập trình chính, tránh việc sa đà trình bày nhiều chi tiết thủ thuật với ngôn ngữ Pascal

c Do ngơn ngữ đóng vai trị minh họa cho kiến thức bắt đầu lập trình nên nội dung cụ thể gắn liền với Pascal SGK đợc cố gắng trình bày cách đọng, tăng tính trực quan giảm tối đa tính hình thức theo nguyên tắc cần đến đâu giới thiệu đến SGK khơng nhằm mục đích giới thiệu thành phần, kiểu liệu, cú pháp, ngữ nghĩa câu lệnh đặc trng khác Pascal một cách đầy đủ nh cẩm nang lập trình Chẳng hạn, nhiều kiểu liệu, câu lệnh điều kiện case, các câu lệnh lặp khác, không đợc giới thiệu SGK, nhiều câu lệnh đợc giới thiệu ngắn gọn mà không sâu vào giải thích cú pháp ngữ nghĩa, v.v

Các ví dụ chơng trình Pascal đợc lựa chọn trình bày theo nguyên tắc Xét mặt đấy, chúng cha phải chơng trình đợc viết cách gọn tối u Tuy nhiên chúng đợc mơ tả trình bày cách phù hợp với phát triển t học sinh sau đợc giới thiệu phần kiến thức tơng ứng ngơn ngữ lập trình Trong trình học tập, với hớng dẫn giáo viên, học sinh chỉnh sửa để có chơng trình tốt hơn, qua phát triển tốt kĩ lập trình

(9)

Tuy nhiên, tác giả cho nội dung thuật tốn mơ tả thuật tốn vấn đề khó tồn nội dung SGK Trớc hết, thuật tốn ln ln gắn liền với t tốn học, việc mơ tả thuật tốn lại gắn liền với t công nghệ Không phải ngẫu nhiên mà đa phần học sinh thờng khó hiểu nội dung phép gán giá trị cho biến, đặc biệt dới dạng X = X + Nếu trình bày thuật toán Bài 1, học sinh bắt đầu năm học mới, gây cảm giác tải cho học sinh, phần lớn học sinh khơng có nhiều khiếu tốn Hơn nữa, việc giới thiệu nh làm cho học sinh hiểu nhầm lập trình giải toán (mặc dù việc giải toán nhỏ nh thế)

Mặt khác, với tâm sinh lí học sinh THCS, trớc giới thiệu nội dung khó cần bắt đầu dẫn dắt từ nội dung nhẹ nhàng dễ gây hứng thú cho học sinh Nội dung từ đến phục vụ mục đích

Có lý khác cha đợc giới thiệu cha hiểu đợc chất phép gán, học sinh khó hiểu nội dung thuật tốn Trong đó, để học sinh có đợc khái niệm phép gán cách tốt giới thiệu nội dung liên quan đến biến lập trình

Cuối cùng, để học sinh hiểu đợc nội dung từ đến không cần thiết phải có kiến thức thuật tốn Các vấn đề giới thiệu thực hành giải đợc với “thuật toán hiển nhiên”, hầu nh học sinh nhận biết áp dụng Tuy nhiên, trớc đề cập tới cấu trúc điều khiển chơng trình lại cần thiết phải giới thiệu trớc khái niệm thuật tốn mơ tả thuật tốn

Đó lí nội dung tốn thuật tốn đợc trình bày Bài

e Mỗi phần nội dung SGK đợc trình bày lí thuyết thực hành Bài lí thuyết giới thiệu kiến thức ban đầu nội dung tơng ứng Ngay sau lí thuyết (trừ 5) thực hành kiến thức lí thuyết học Mục đích thực hành cung cấp kĩ cho HS, qua hiểu sâu nội dung vừa học lí thuyết Các thực hành để HS thực hành, sử dụng nội dung vừa học phần lí thuyết Tuy nhiên, sau thực hành không phục vụ cho việc củng cố, thực hành nội dung lí thuyết học tơng ứng mà cịn giúp ơn luyện kiến thức, kĩ đợc học trớc

f Cấu trúc lí thuyết đợc xây dựng cách quán nh sau:

Mỗi lí thuyết đêu cố gắng bắt đầu ví dụ sống hàng ngày, từ dẫn dắt đến cách thức giải vấn đề đời thờng cách viết chơng trình Quan điểm tác giả chơng trình máy tính đợc viết để giải toán đời thờng nh Bằng cách học sinh dễ thấy mối liên hệ chặt chẽ việc lập trình sống, lợi ích việc lập trình để giải tốn máy tính

Phần nội dung trình bày thành phần cấu trúc tơng ứng ngơn ngữ lập trình nói chung Các nội dung đợc cố gắng trình bày mức tổng quát có thể, nhng đảm bảo học sinh hiểu đợc Do đó, sử dụng Pascal để minh họa mục tiếp theo, SGK khơng cố gắng trình bày cú pháp ngữ nghĩa câu lệnh Pascal cách đầy đủ chi tiết Giáo viên cần lu ý điều để bổ sung cho học sinh thực hành tiếp sau

Cuối số ví dụ chơng trình để minh họa tình sử dụng Về ví dụ, tác giả cố gắng hạn chế đến mức tối đa việc lập trình giải tốn có nội dung toán học, tránh gây tải cho học sinh dẫn đến hiểu nhầm lập trình gắn liền với toán học Tuy nhiên, hạn chế nội dung chơng trình, minh họa gây hứng thú nh thiết kế giao diện, màu sắc, phông chữ mô chuyển động đối tợng hình khơng đợc đa vào Do ví dụ tốn học chiếm tỷ lệ đáng kể

Cuối lí thuyết có mục Ghi nhớ liệt kê số điểm học để HS dễ dàng ghi nhớ Mục ghi nhớ để GV xác định nội dung kiến thức, kĩ trọng tâm

Mỗi lí thuyết có phần Câu hỏi tập nhằm mục đích cho học sinh ôn luyện kiến thức, kĩ học lí thuyết chuẩn bị cho thực hành sau Một phần câu hỏi, tập nhắc lại kiến thức học lí thuyết, cần hớng dẫn HS làm lớp Một phần khác dành để giúp học sinh nắm vững cú pháp ngữ nghĩa câu lệnh Pascal Với câu hỏi tập giáo viên nên hớng dẫn học sinh giải trả lời tiết tập

Trong phân bổ thời lợng, số tiết tập nhiều (8 tiết) Điều thể câu hỏi, tập phần quan trọng việc giúp HS tiếp thu kiến thức, rèn luyện kĩ Hệ thống câu hỏi, tập đa dạng, phù hợp với HS THCS, phù hợp với đổi dạy học đổi kiểm tra, đánh giá Tốt nên tổ chức tiết tập sau học sinh thực tiết thực hành

(10)

sinh có điều kiện đào sâu suy nghĩ kiến thức lí thuyết giúp giáo viên phân biệt trình độ học sinh rõ Cũng có thể, trờng, số tập học sinh lớp khó, nhng học sinh lớp khác lại tự giải tất tập cách khơng khó khăn Do vậy, tuỳ tình hình tiếp thu kiến thức HS, giáo viên lựa chọn làm số chủ động thêm câu hỏi, tập phù hợp với trình độ học sinh, không thiết phải làm hết câu hỏi, tập SGK

g Các thực hành đợc xây dựng cách quán với việc đề mục tiêu, bớc cần thực hiện, thông thờng mức chi tiết Ngồi cịn có ví dụ để học sinh tìm hiểu tác dụng câu lệnh chơng trình Do thời lợng có hạn, giáo viên nên khuyến khích học sinh viết chạy chơng trình tự học nhà

Khác với thực hành Quyển 2, SGK nội dung thực hành không ôn luyện, củng cố, thực hành kiến thức học mà giới thiệu kiến thức mới, cụ thể kiến thức lí thuyết, nhng gắn liền với ngơn ngữ lập trình Pascal Một số kiến thức khơng đợc trình bày lí thuyết với chủ đích tránh làm dàn trải nội dung lí thuyết lập trình nói chung Một số câu lệnh, thủ tục, hàm Pascal đợc giới thiệu thực hành Kiến thức câu lệnh đợc đúc rút sau HS đợc thực hành câu lệnh Giáo viên cần nhận rõ khác biệt này, dành thời gian giới thiệu, hớng dẫn cho học sinh để tăng hiệu thực hành

Mục Tổng kết cuối thực hành tóm tắt kiến thức, kĩ học sinh cần tiếp thu đợc thực hành, chủ yếu bớc thực hiện, cú pháp, ngữ nghĩa nh cách sử dụng Pascal Phần giúp HS hệ thống lại kiến thức, kĩ thực hành nội dung giúp HS tra cứu nhanh trình học tập Tuy nhiên, khơng nên u cầu học sinh học thuộc lịng phần nội dung Trong trình thực hành, học sinh bớc ghi nhớ cú pháp ngữ nghĩa câu lệnh

h Nội dung toán thuật toán (Bài 5) đợc phân bố thời lợng gấp đơi (04 tiết lí thuyết 02 tiết bài tập) Theo đánh giá tác giả, phần nội dung quan trọng, khơng nói quan trọng Nếu nắm vững cách thức mơ tả thuật tốn để giải tốn, học sinh dễ dàng tiếp thu đợc kiến thức trình bày

Có thể biểu diễn thuật toán sơ đồ khối cách liệt kê Tuy nhiên, SGK lựa chọn giới thiệu cách biểu diễn thuật toán cách liệt kê Về cách liệt kê gần gũi với cách t HS THCS đặc biệt mô tả cách liệt kê thuận lợi cho viết chơng trình vài chỗ, SGK sử dụng sơ đồ khối để biểu diễn hoạt động cấu trúc điều khiển (rẽ nhánh, lặp) GV không giới thiệu thêm cách biểu diễn thuật toán sơ đồ khối u cầu học sinh mơ tả thuật tốn cách vẽ sơ đồ khối

Bên cạnh kiến thức, kĩ theo yêu cầu Chơng trình, SGK cịn giới thiệu thêm số nội dung, ví dụ số cơng cụ lập trình (câu lệnh, hàm chuẩn, thủ tục chuẩn) nhằm tạo thêm hứng thú cho HS; số tốn, thuật tốn phổ thơng, đơn giản để HS mở rộng thêm kiến thức, kĩ năng; số câu hỏi, tập, thực hành có yêu cầu cao dành cho HS khá, giỏi

Một số kiến thức nh cú pháp câu lệnh, cú pháp khai báo biến, kiểu liệu, đợc giới thiệu Do cách giới thiệu nh nên ban đầu cha đủ, cha bao quát hết nhng đảm bảo không sai Khai báo biến, cú pháp câu lệnh rẽ nhánh, câu lệnh lặp đợc đúc rút, khái quát hoá sau tiết thực hành

i Các nội dung đọc thêm cuối không bắt buộc, tránh yêu cầu tất HS phải đọc, hiểu, gây quá tải GV chọn lựa, giới thiệu, giải thích đơi chút để gây hứng thú cho em ham thích, đọc thêm

Việc phân bổ thời lợng cho lí thuyết, thực hành tơng đối, GV phối hợp với tiết tập, ôn tập để tự cân đối thời lợng cho phù hợp với tình hình giảng dạy thực tiễn Điều quan trọng đảm bảo truyền đạt đúng, đủ kiến thức, kĩ theo yêu cầu Chơng trình

II Híng dÉn chi tiÕt

Bài Máy tính chơng trình máy tính 1 Mục đích, u cầu

 BiÕt ngêi chØ dÉn cho m¸y tÝnh thùc hiƯn c«ng viƯc th«ng qua lƯnh

 Biết chơng trình cách để ngời dẫn cho máy tính thực nhiều cơng việc liên tiếp cách tự động

 Biết viết chơng trình viết lệnh để dẫn máy tính thực cơng việc hay giải tốn c th

(11)

2 Những điểm cần lu ý gợi ý dạy học

Khỏi nim lệnh, nút lệnh HS đợc biết đến lớp lớp Dựa hiểu biết có sẵn HS lệnh, GV cần nhắc để HS nhớ lại hình dung lệnh cách đơn giản, phổ thông

HS thực thao tác khởi động/thoát khỏi phần mềm, chép, cắt, dán thực bớc để tắt máy tính (theo quy cách) Đặc biệt HS thờng xuyên sử dụng nút lệnh công cụ lệnh bảng chọn để làm việc với chơng trình soạn thảo văn bản, chơng trình bảng tính Khi thực thao tác HS lệnh cho máy tính thực cơng việc Ví dụ, thực thao tác nháy vào nút lệnh Cut công cụ Word lệnh cho máy tính thực cơng việc cắt văn

Thực khái niệm “lệnh” máy tính phức tạp, hiểu mô tả lệnh với mức độ chi tiết khác Xét đến kiến trúc máy tính có tập hợp (khơng nhiều) lệnh bản hay vi lệnh lệnh (micro-instruction), lệnh dùng để dẫn máy tính dãy lệnh (với thứ tự định) Từ thờng nảy sinh câu hỏi phải lệnh cha tập hợp lệnh Tuy nhiên ngời ta thờng hiểu lệnh máy tính dẫn ngời để máy tính thực cơng việc cụ thể Giáo viên nên giới thiệu lệnh cho HS mức độ

Kết thúc mục 1, học sinh cần biết đợc ngời điều khiển máy tính thơng qua lệnh

Cần cho HS nhận thấy khác biệt việc lệnh cho máy tính với lệnh cho ngời Qua ví dụ điều khiển rô-bốt nhặt rác, GV cần cho HS nhận thấy công việc đơn giản với ngời, nhng muốn máy tính thực cần phải chia thành nhiều thao tác nhỏ, đơn giản, cụ thể mà rơ-bốt thực đợc Có khác biệt vì, khác với ngời, máy tính vật vơ tri, vơ giác

Có hai cách để điều khiển rơ-bốt thực cơng việc trên: Cách thứ lệnh rô-bốt thực thao tác một; Cách thứ hai dẫn để rô-bốt tự động thực lần l ợt thao tác Việc viết lệnh để điều khiển, dẫn rơ-bốt (hay máy tính) thực tự động loạt thao tác liên tiếp viết Chơng trình máy tính, hay cịn gọi tắt Chơng trình

Kết thúc mục mục học sinh cần biết chơng trình cách để ngời dẫn cho máy tính thực nhiều công việc liên tiếp cách tự động viết chơng trình viết lệnh để dẫn máy tính thực cơng việc hay giải tốn cụ thể

Có thể dẫn dắt HS tiếp cận khái niệm ngơn ngữ lập trình nh sau: Chơng trình mà ngời viết phải đảm bảo máy tính "hiểu" đợc HS biết máy tính hiểu đợc ngơn ngữ nhị phân, tức dãy số Vì vậy, nguyên tắc để máy tính "hiểu" đợc phải viết chơng trình ngơn ngữ máy

Vấn đề ngơn ngữ máy lại khó sử dụng, khó nhớ ngời Vì vậy, khó cho ngời sử dụng ngôn ngữ để viết chơng trình

Do cần phải tìm ngơn ngữ trung gian ngời ngôn ngữ máy để ngời dễ dàng sử dụng viết chơng trình sau chuyển đổi sang dạng ngơn ngữ máy cho máy tính hiểu đ-ợc Ngơn ngữ lập trình bậc cao giải pháp nh Có thể liệt kê số ngơn ngữ lập trình bậc cao nh Pascal, Free Pascal, C, Java Để tránh tải cho học sinh mặt thuật ngữ, SGK tác giả sử dụng thuật ngữ ngơn ngữ lập trình nói chung với hàm ý ngơn ngữ lập trình bậc cao

Tuy nhiên, nh nêu trên, chơng trình viết ngơn ngữ lập trình phải đợc chuyển sang thành ch-ơng trình ngôn ngữ nhị phân Điều giống nh việc phiên dịch trao đổi với ngời nớc Chơng trình đóng vai trị dịch từ ngơn ngữ lập trình bậc cao sang ngơn ngữ máy gọi "chơng trình dịch"

Nh vậy, để có đợc chơng trình mà máy tính thực đợc cần qua hai bớc: (1) Viết chơng trình theo ngơn ngữ lập trình;

(2) Dịch chơng trình thành ngơn ngữ máy để máy tính hiểu đợc

Cần lu ý rằng, bớc nêu hai số nhiều bớc (giai đoạn) để tạo chơng trình cụ thể “chạy” máy tính Để có chơng trình hoạt động hiệu máy tính phục vụ mục tiêu, ngời ta cịn phải thực nhiều công việc khác, việc khảo sát nhu cầu ngời sử dụng (xác định mục tiêu, yêu cầu; khảo sát qui trình nghiệp vụ, ), phân tích, thiết kế, lập trình, kiểm thử, triển khai cài đặt, đào tạo, hỗ trợ, v.v Hai bớc nói phần cơng việc lập trình, sau thuật tốn đợc xây dựng Tuy nhiên, học sinh bắt đầu làm quen với lập trình ngơn ngữ lập trình, cách giới thiệu nh SGK đủ nhằm để học sinh phân biệt đợc hai công việc viết chơng trình dịch chơng trình Trong thực hành với Pascal, học sinh phân biệt rõ hai bớc

(12)

Qua mục học sinh cần ghi nhớ đợc ngơn ngữ lập trình cơng cụ để viết chơng trình máy tính chơng trình dịch đóng vai trị dịch chơng trình viết ngơn ngữ lập trình sang ngơn ngữ máy

Nội dung đợc xem nh cầu nối cho học sinh từ ngời sử dụng sang ngời xây dựng ch-ơng trình máy tính Qua học sinh cần biết phía sau thao tác nh nháy nút lệnh Cut, Copy mà em quen sử dụng đoạn chơng trình máy tính tơng ứng Khi nháy nút lệnh em u cầu máy tính thực đoạn chơng trình tơng ứng đợc viết sẵn

3 Híng dÉn trả lời câu hỏi tập

Bi 1. Khi soạn thảo văn máy tính, ta yêu cầu chơng trình tìm kiếm cụm từ thay cụm từ khác, thực chất ta u cầu máy tính thực nhiều lệnh Có thể mô tả lệnh với mức độ chi tit khỏc

Dới mô tả lệnh theo trật tự thực hiện: Sao chép cụm từ cần tìm vào nhớ (gọi lµ cơm tõ 1) Sao chÐp cơm tõ sÏ thay vào nhớ (cụm từ 2) Tìm cơm tõ

4 Xóa cụm từ tìm đợc

5 D¸n cơm tõ tõ bé nhí vào vị trí cũ cụm từ

Vi lệnh đợc liệt kê theo thứ tự nh trên, ta thấy thay đổi thứ tự vài lệnh (ví dụ nh lệnh 2), nhng nói chung việc thay đổi thứ tự phần lớn lệnh không cho kết nh mong muốn, chẳng hạn nh thay đổi thứ tự lệnh khơng có nghĩa

Lu ý giáo viên Việc mô tả lệnh thực với nhiều mức chi tiết khác Tuy cha đầy đủ mức lập trình đợc (cha tính đến điều kiện kết thúc, tức trỏ đợc di chuyển đến cuối văn bản), nhng dới mô tả chi tiết hn:

1 Sao chép dÃy kí tự cần tìm vµo bé nhí (d·y 1) Sao chÐp d·y kÝ tù sÏ thay thÕ vµo bé nhí (d·y 2) Đặt trỏ trớc kí tự văn b¶n

4 Sao chép dãy kí tự (tính từ vị trí trỏ sang phải) có độ dài dãy vào nhớ (dãy 3) So sánh dãy dãy Nếu dãy không trùng với dãy 1, chuyển đến lệnh

6 Xãa dÃy văn

7 Dỏn dóy vào vị trí cũ dãy chuyển trỏ đến cuối dãy Vẫn khơng xác lệnh (bớc) chuyển trỏ nữa! Di chuyển trỏ sang phải kí tự quay lại lệnh

Thuật toán nh này, không sai!

Học sinh cần có đáp án mơ tả lệnh đạt yêu cầu Giáo viên nên giới thiệu mơ tả chi tiết nh học sinh có yêu cầu

Bài 2. Nếu thay đổi thứ tự hai lệnh chơng trình điều khiển rơ-bốt, rơ-bốt khơng thực đợc cơng việc nhặt rác khơng hớng khơng tới đợc vị trí có rác dẫn đến khơng nhặt đợc rác, Ví dụ, thay đổi thứ tự lệnh "Tiến bớc" lệnh "Quay trái, tiến bớc" Khi đó, sau hai lệnh rô-bốt "Quay trái tiến bớc" tới vị trí khơng có rác Nói chung, lệnh chơng trình cần đợc đa theo thứ tự xác định cho ta đạt kết mong muốn

Vị trí rô-bốt sau thực xong lệnh "Hãy nhặt rác" vị trí có thùng rác (ở góc đối diện) Có nhiều cách khác để đa hai lệnh để rơ-bốt trở lại vị trí ban đầu mình, cách hai lệnh "Quay trái, tiến bớc" "Quay trái, tiến bớc"

Lu ý giáo viên Trong nhiều trờng hợp, ta đa lệnh khác nhau, nhng đạt kết Chẳng hạn, ví dụ rơ-bốt, thay cho hai câu lệnh đầu tiên, ta điều khiển rơ-bốt đến vị trí có rác lệnh sau: "Quay trái, tiến bớc" "Quay phải, tiến bớc" "Quay phải, tiến bớc", "Quay trái, tiến bớc" "Quay trái, tiến bớc" Trong số trờng hợp khác, việc thay đổi thứ tự vài câu lệnh cho kết nh yêu cầu Tuy nhiên, nh nguyên tắc chung, việc thay đổi thứ tự câu lệnh không cho kết Có thể liên hệ với thứ tự bớc thuật tốn Bài

Bài 3. Lí do: Điều khiển máy tính tự động thực công việc đa dạng phức tạp mà lệnh đơn giản không đủ để dẫn

Bài 4. Các ngơn ngữ lập trình bậc cao đợc phát triển để khắc phục yếu điểm ngôn ngữ máy: khó sử dụng, khó nhớ Ngơn ngữ lập trình sử dụng cụm từ tự nhiên nên dễ nhớ, dễ học

(13)

Lu ý giáo viên Tuy ngôn ngữ máy cũng loại ngơn ngữ lập trình, nhng hiểu ngơn ngữ lập trình ngơn ngữ lập trình bậc cao Trong ngôn ngữ máy, thị đợc biểu diễn số nhị phân Ngơn ngữ máy khó đọc khó sử dụng, nhng ngôn ngữ mà vi xử lí nhận biết thực lệnh cách trực tiếp Ngoài yếu điểm chơng trình viết ngơn ngữ máy phụ thuộc vào phần cứng máy tính

(NhËn biÕt vµ thùc hiƯn gi? ®iĨm u?

Yếu điểm khái niệm chung, cịn điểm yếu cụ thể Giữ ngun!)

Bài 5. Chơng trình dịch chơng trình có chức chuyển đổi chơng trình đợc viết ngơn ngữ lập trình thành chơng trình thực đợc máy tính Nh vậy, chơng trình dịch chuyển đổi dịng lệnh đợc soạn thảo thành tệp chạy máy tính

Bài 6. Hai bớc để tạo chơng trình máy tính là: (1) Viết chơng trình theo ngơn ngữ lập trình;

(2) Dịch chơng trình thành ngơn ngữ máy để máy tính hiểu đợc Kết tệp tin thực đợc máy tính

Lu ý giáo viên Đây hai bớc lập trình phần cơng việc giải tốn máy tính

Bài Làm quen với chơng trình ngơn ngữ lập trình 1 Mục đích, u cầu

 Biết ngơn ngữ lập trình gồm thành phần bảng chữ quy tắc để viết chơng trình, câu lệnh

 Biết ngơn ngữ lập trình có tập hợp từ khóa dành riêng cho mục đích sử dụng định  Biết tên ngơn ngữ lập trình ngời lập trình đặt ra, đặt tên phải tuân thủ quy tắc

của ngơn ngữ lập trình Tên khơng đợc trùng với từ khố

 BiÕt cấu trúc chơng trình bao gồm phần khai báo phần thân chơng trình 2 Những điểm cần lu ý gợi ý dạy học

Mc tiờu ca bi giới thiệu cho học sinh số thành phần ngơn ngữ lập trình nói chung, làm quen với chơng trình đơn giản, làm quen với TP để chuẩn bị cho thực hành

Để giới thiệu thành phần ngôn ngữ lập trình, SGK sử dụng cách tiếp cận xuất phát từ ch-ơng trình Pascal cụ thể, sau khái qt hóa tổng kết Cần lu ý khơng giải thích tất có chơng trình ví dụ, tránh sa đà giới thiệu chi tiết cú pháp ngữ nghĩa câu lệnh Pascal mà nên tập trung khai thác điểm cần thiết phục vụ cho mục tiêu học Cần đến thành phần, câu lệnh tập trung vào đó, phân tích, giải thích vừa đủ, biết điểm dừng để hớng đến mục tiêu mục,

HS biết viết chơng trình cần sử dụng ngơn ngữ lập trình cụ thể Do vậy, GV đặt câu hỏi lại phải viết chơng trình theo ngơn ngữ lập trình cụ thể để HS thảo luận, trả lời nhằm ôn lại cũ

Cần cho HS quan sát hình để thấy trực quan chơng trình cụ thể Cách làm nhằm gây hứng thú cho học sinh vào học Từ việc quan sát ví dụ GV khái quát lên thành kiến thức chung ngơn ngữ lập trình

Ngơn ngữ lập trình Pascal đợc nhắc đến 1, giáo viên giới thiệu cho em biết ví dụ hình chơng trình viết ngơn ngữ lập trình Pascal

Để dạy mục 2, SGK dựa học sinh quan sát đợc nh chữ cái, kí hiệu để khái quát nên thành phần thứ nhất: bảng chữ cái, kí hiệu Dựa ví dụ câu lệnh writeln('Chao Cac Ban'); để khái quát thành phần thứ hai: quy tắc viết

Với mục 2, xuất phát từ ngôn ngữ tiếng Việt, HS đợc học ngoại ngữ dùng ngơn ngữ tự nhiên ngoại ngữ em học để lấy ví dụ thuận tiện HS biết ngôn ngữ bao gồm chữ cái, từ quy tắc ngữ pháp Muốn ngời khác hiểu đợc hiểu cần dùng chữ cái, từ cho phép phải đợc ghép theo quy tắc ngữ pháp

(14)

lệnh cho máy tính hiển thị dòng chữ chào bạn chơng trình phải viết là: writeln('Chao cac ban');.

Giỏo viờn cú thể sử dụng cách so sánh với ngôn ngữ tự nhiên để học sinh dễ dàng hiểu đ ợc nội dung Chẳng hạn, tiếng Việt, ghép chữ đợc từ có nghĩa, ghép từ (có nghĩa) có câu có nghĩa Nh xem quy tắc viết câu lệnh ngơn ngữ lập trình (cú pháp ngữ nghĩa) quy tắc “chính tả” “ngữ pháp” ngơn ngữ lập trình

Trên thực tế, chơng trình đợc viết khơng phải ngơn ngữ lập trình cụ thể mà hai nhiều ngơn ngữ lập trình đợc sử dụng chơng trình Ví dụ, nh ch-ơng trình đợc soạn thảo dịch với TP có số lệnh đợc viết ngơn ngữ Assembly (hợp ngữ) Tuy nhiên, ta không đề cập đến vấn đề mà mặc định chơng trình mà ta đề cập đến sử dụng ngôn ngữ lập trình

Mục 3, GV sử dụng ví dụ hình 6, SGK (CT_Dau_Tien) để minh hoạ cho HS thành phần ngơn ngữ lập trình

Các từ nh program, uses, begin, end đợc gọi từ khố (nhiều tài liệu chun mơn gọi từ dành riêng), từ mà ngơn ngữ lập trình quy định dùng với ý nghĩa, chức cố định Từ khoá khái niệm với HS, để HS hiểu quy định từ khố ngơn ngữ lập trình, lấy ví dụ cụm từ Lớp trởng Lớp trởng cụm từ dành riêng để gọi HS lớp đảm nhiệm chức vụ lớp trởng của lớp, có HS khác lớp đợc gọi lớp trởng (trong thời điểm)

Tên ngời lập trình tự đặt sử dụng kí tự mà ngơn ngữ lập trình cho phép, tất nhiên tên khơng đợc trùng với từ khố

Câu lệnh writeln('Chao cac ban') câu lệnh dẫn máy tính hiển thị dòng chữ "Chao cac ban" hình

GV không cần giải thích sâu chơng trình này, không nên giải thích kĩ từ khoá, tên, câu lệnh HS tiếp cận dần với kiến thức học sau

GV cú th giới thiệu thêm việc thay cụm từ Chao cac ban thành cụm từ khác để HS thực thực hành tới, tạo hứng thú cho HS tiết thực hành

Mục 4, dựa vào hình (CT_Dau_Tien), cần cho HS nhận biết đợc chơng trình gồm hai phần: Phần khai báo: Khai báo tên số khai báo khác (các em s hc sau).

Phần thân: Bắt đầu từ khoá Begin kết thúc từ khoá End dấu chấm (End.) Giữa từ khoá Begin End câu lệnh

Lu ý: phần thân phần quan trọng, bắt buộc phải có chơng trình, phần khai báo có không

Đến cho HS phát từ khố chức từ khố qua chơng trình hình SGK: Program từ khố dùng để khai báo tên chơng trình; Từ khố Begin dùng để khai báo bắt đầu chơng trình, từ khố End dùng để khai báo kết thúc chơng trình

Cách tiếp cận từ cụ thể đến khái quát có u điểm phù hợp với lứa tuổi học sinh THCS Tuy nhiên, hạn chế cách tiếp cận HS dễ bị dẫn đến nhận thức học ngôn ngữ Pascal Nh biết, mục tiêu dạy học lập trình, ngơn ngữ Pascal minh hoạ cụ thể Do vậy, GV cần lu ý trớc chuyển sang mục 5, cần nhấn mạnh để học sinh ghi nhớ, với tất ngơn ngữ lập trình có tập hợp kí hiệu (bảng chữ cái) quy tắc riêng để viết chơng trình

Có thể giới thiệu nội dung Mục lớp yêu cầu em đọc nội dung nhà chuẩn bị cho thực hành Mục tiêu để HS nhận biết giao diện phần mềm Turbo Pascal biết bớc soạn thảo, dịch chơng trình phục vụ trực tiếp cho thực hành Nếu giới thiệu lớp, giáo viên nên chuẩn bị sẵn số hình ảnh giao diện Turbo Pascal giấy khổ rộng tận dung kênh hình SGK Trong hai trờng hợp, tiến hành Bài thực hành giáo viên cần tổng kết lại nội dung trớc học sinh bắt đầu sử dụng máy tính để thực hành

Cần nhấn mạnh cho HS việc tạo chơng trình chạy đợc máy tính gồm hai bớc: bớc một, soạn thảo chơng trình máy tính theo ngơn ngữ lập trình cụ thể; bớc hai, dịch chơng trình vừa soạn thảo sang ngơn ngữ máy

Việc soạn thảo chơng trình giống với soạn thảo văn mà em học Việc dịch ch -ơng trình đơn giản, ví dụ với ngơn ngữ lập trình Turbo Pascal, sau soạn thảo xong cần nhấn Alt+F9 máy tính tự động dịch chơng trình Để dịch chạy chơng trình, nhấn Ctrl + F9.

(15)

3 Hớng dẫn trả lời câu hỏi tËp

Bài 1. Các thành phần ngôn ngữ lập trình gồm bảng chữ quy tắc để viết câu lệnh (cú pháp) có ý nghĩa xác định, cách bố trí câu lệnh, cho tạo thành chơng trình hồn chỉnh chạy đợc máy tính

Lu ý giáo viên Các quy tắc nhắc đến bao gồm thuật ngữ chuyên môn cú pháp và ngữ nghĩa Xem SGK, mục 2, 2.

Bài 2. Không Các cụm từ sử dụng chơng trình (từ khố, tên) phải đợc viết chữ bảng chữ ngôn ngữ lập trình Các ngơn ngữ lập trình phổ biến có bảng chữ bảng chữ tiếng Anh kí hiệu khác, khơng có chữ có dấu tiếng Việt

Lu ý giáo viên Câu hỏi "viết chơng trình có câu lệnh tiếng Việt" Điều khơng có nghĩa chơng trình khơng thể có chữ có dấu tiếng Việt (hay ngôn ngữ khác) nh liệu dạng văn cần xử lí Các chữ có dấu đợc ngơn ngữ lập trình xử lí mã kí tự t-ơng ứng bảng mã ASCII mở rộng Ví dụ cht-ơng trình Pascal sau hồn tồn hợp l:

begin

program CT_thu;

writeln(' Chào b¹n');

end.

Bài 3. Tên chơng trình dãy chữ hợp lệ đợc lấy từ bảng chữ ngơn ngữ lập trình Từ khố ngơn ngữ lập trình (cịn đợc gọi từ dành riêng) tên đợc dùng cho mục đích định ngơn ngữ lập trình quy định, khơng đợc dùng cho mục đích khác

Ngời lập trình đặt tên cách tuỳ ý nhng phải tuân thủ quy tắc ngơn ngữ lập trình nh chơng trình dịch, (1) Hai đại lợng khác phải có tên khác nhau; (2) Tên không đợc trùng với 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 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

Bài 6. Chơng trình chơng trình Pascal đầy đủ hồn tồn hợp lệ, chơng trình chẳng thực điều Phần thiết phải có chơng trình phần thân đợc xác định hai từ khoá begin end (cú du chm)

Chơng trình chơng trình Pascal không hợp lệ câu lệnh khai báo tên chơng trình program CT_thu nằm phần thân chơng trình.

Bi thc hnh Lm quen vi Turbo Pascal 1 Mục đích, yêu cầu

 Thực đợc thao tác khởi động/kết thúc TP, làm quen với hình soạn thảo TP  Thực đợc thao tác mở bảng chọn chọn lệnh

 Soạn thảo đợc chơng trình Pascal đơn giản

 Biết cách dịch, sửa lỗi chơng trình, chạy chơng trình xem kết  Biết cần thiết phải tuân thủ quy định ngôn ng lp trỡnh

2 Những điểm cần lu ý gợi ý dạy học

chy c chng trình Turbo Pascal cần có tối thiểu hai tệp: TURBO.exe TURBO.TPL Lu ý sử dụng Turbo Pascal for DOS, chơng trình có sử dụng th viện crt (khai báo uses crt) dịch chơng trình gặp thơng báo lỗi Error 200: Division by zero nh hình dới

(16)

đợc sửa lỗi website www.vnschool.net sử dụng phần mềm Pascal for Windows Free Pascal Tất phần mềm có sẵn đĩa CD phát cho GV tham gia tập huấn cốt cán

LỈp trang 13

Vì HS đợc học, thực hành khởi động chơng trình năm học trớc nên việc khởi động TP dễ dàng với em Mặc dù vậy, GV nên tạo biểu tợng chơng trình TP hình (Shortcut) để thuận tiện cho HS khởi động tiết thực hành

Khi khởi động TP, hình lên nh hình dới Rất HS bỡ ngỡ, lúng túng có thơng báo hình điều khơng đợc nhắc đến 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, hình làm việc TP cửa sổ nhỏ, không chiếm hết toàn hình nh minh hoạ dới

Để HS tiện theo dõi nên mở rộng cửa sổ TP toàn hình Cách làm nh sau: - Chọn biểu tợng tắt TP 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 lên - Trong cửa sổ Shortcut to Turbo Pascal Properties, chọn mục Screen, sau nháy chuột chọn

(17)

- Nháy OK để kết thúc

Từ lần khởi động TP hình làm việc TP mở rộng tồn hình máy tính Trong 1, cần cho HS nhận biết biểu tợng TP 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 hình để tra cứu nhanh phím chức cần Không nên nhiều thời gian cho kĩ học sinh cịn phải làm quen, sử dụng sau SGK trình bày nội dung theo bớc cụ thể (cầm tay việc), giáo viên cần yêu cầu học sinh làm theo bớc ú

Với 2, cần nhắc HS gõ xác chơng trình vào máy tính

Mc dự vic soạn thảo chơng trình ngắn nh ví dụ đa cha cần sử dụng nhiều đến công cụ soạn thảo Tuy nhiên, GV cần lu ý cho HS số điểm: Soạn thảo TP có số điểm khác với soạn thảo văn mà em đợc học, cần hớng dẫn học sinh sử dụng phím Delete, Backspace soạn thảo TP Các cơng cụ soạn thảo nh: chép, cắt, dán TP khác, cần hớng dẫn HS cách tra cứu lệnh bảng chọn cần thiết Có thể HS muốn gõ tiếng Việt có dấu câu tiếng Việt (do quen với gõ tiếng Việt có dấu làm việc với phần mềm bảng tính, phần mềm soạn thảo văn lớp trớc), cần lu ý em 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 HS thực đợc việc soạn thảo, lu, dịch chạy đợc chơng trình

Khi dịch chơng trình máy tính báo lỗi HS soạn thảo chơng trình cịn lỗi tả, khơng hồn tồn 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 SGK để chỉnh sửa theo chơng trình mẫu Việc làm cần thiết để HS thấy đợc tính nghiêm ngặt ngơn ngữ lập trình rèn luyện thái độ nghiêm túc học tập, làm việc với ngơn ngữ lập trình

Khi nhấn Ctrl+F9 để dịch chạy chơng trình, HS không xem đợc kết hiển thị hình Để dừng hình lại cho HS quan sát kết cần thêm lệnh Readln trớc từ khố End Khi đó, hình dừng lại để HS quan sát kết quả, quan sát kết xong nhấn phím Enter để trở hình soạn thảo TP

GV hớng dẫn em thay cụm từ Chao cac ban Minh la Turbo Pascal cụm từ khác để tạo hứng thú học tập

Bài nhằm mục đích để HS làm quen với việc sử dụng TP sửa lỗi cú pháp chơng trình Có thể vào thông báo lỗi 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 thông báo lỗi yếu tố quan trọng môi trờng lập trình Một môi trờng lập trình tốt môi trờng có nhiều công cụ hỗ trợ cho ngời lập trình việc soạn thảo, dịch, phát sửa lỗi Hiện nay, có nhiều môi trờng lập trình cung cấp tiện tích hỗ trợ tốt cho ngời lập tr×nh nh Java, Visual C, Visual Basic

(18)

trình có hai dịng lệnh writeln('Chao cac ban'); writeln('Minh la Turbo Pascal'); kết đa màn hình hai dịng Sau sửa lệnh thành write('Chao cac ban') giữ nguyên lệnh thứ hai kết in dịng So sánh hai kết để rút khác lệnh write writeln Cách làm phơng pháp hớng dẫn HS tự khám phá, tìm hiểu câu lệnh ngơn ngữ lập trình

Bài Chơng trình máy tính liệu 1 Mục ớch, yờu cu

Biết khái niệm kiểu liệu;

Biết số phép toán với liệu số;

Biết khái niệm điều khiển tơng tác ngời với máy tính 2 Những điểm cần lu ý gợi ý dạy học

HS đợc làm quen với khái niệm liệu lớp trớc, khơng cần thiết phải giải thích sâu thêm khái niệm liệu

Kiểu liệu khái niệm tơng đối khó với HS Vì vậy, khơng u cầu truyền đạt hết kiến thức kiểu liệu HS đợc tiếp cận dần kiểu liệu sau

Có thể nêu cho HS thấy, mơn Văn-Tiếng Việt tiến hành phân tích, phát biểu cảm nghĩ văn, thơ Nhng mơn Tốn ta thờng tính tốn phép cộng trừ, nhân, chia với số

Cũng bắt đầu học với ví dụ khác lớp trớc học sinh bớc đầu làm quen với kiểu liệu số liệu văn học sử dụng chơng trình bảng tính Giáo viên nhắc lại hai kiểu liệu quen thuộc Excel đặt câu hỏi nêu ví dụ kết nhập cơng thức tính tổng giá trị l u hai tính chứa liệu số văn bản, yêu cầu học sinh dự đoán kết nhận đợc (hình dới)

Từ kết luận: Đối với kiểu liệu khác nhau, ngời ta thờng thực phép xử lí liệu khác

Tơng tự nh vậy, ngơn ngữ lập trình thờng phân chia liệu thành kiểu định nghĩa phép xử lí tơng ứng kiểu liệu

SGK hạn chế giới thiệu kiểu liệu đơn giản thờng đợc sử dụng nhất: liệu kiểu số nguyên, kiểu số thực, kiểu kí tự kiểu xâu kí tự Thậm chí, kiểu số nguyên ngôn ngữ minh họa Pascal, SGK bớc đầu giới thiệu kiểu integer Trong thực hành tiếp theo, học sinh đợc giới thiệu thêm vài kiểu liệu khác Một học sinh làm quen hiểu khái niệm vài kiểu liệu, việc giới thiệu kiểu liệu khác nhẹ nhàng Học sinh dần biết tầm quan trọng kiểu liệu học đến tiếp theo, sử dụng biến chơng trình

Tơng ứng với kiểu liệu cụ thể có phép tốn xử lí tơng ứng, ví dụ với liệu số tiến hành phép tốn cộng, trừ, nhân, chia với số Phép tốn nh div, mod lại thực với kiểu nguyên mà không thực đợc với kiểu thực

Về thao tác xử lí liệu kiểu xâu, GV cho HS thấy ví dụ thực thao tác hiển thị liệu kiểu xâu hình mà em học thực hành

writeln('Chao Cac Ban');

write('Minh la Turbo Pascal');

Lu ý liệu kiểu xâu Pascal đợc đặt cặp dấu nháy đơn GV cha nên giới thiệu thao tác xử lí liệu kiểu xâu kí tự gây ti vi HS

Mục nêu phép toán với liệu kiểu nguyên kiểu thực Cần lu ý mét sè ®iĨm sau:

- Sự khác kí hiệu phép tốn tốn học Pascal Có thể cho HS tự xem bảng mục để phát khác

(19)

- Các phép toán đợc thực theo thứ tự u tiên:

 Các phép toán ngoặc đợc thực trớc tiên;

 Trong dãy phép tốn khơng có dấu ngoặc, phép nhân, phép chia, phép chia lấy phần nguyên (div) phép chia lấy phần d (mod) đợc thực trớc;

 Cuèi cïng thùc hiÖn phÐp céng phép trừ theo thứ tự từ trái sang phải

Các phép toán lấy phần nguyên (div), lấy phần d (mod) 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

Trong số quy tắc có quy tắc quan trọng mà học sinh thờng bỏ qua có ảnh hởng tới kết tính tốn: Trong biểu thức có phép cộng phép trừ, có phép nhân phép chia, phép tính đợc thực theo thứ tự từ trái sang phải Cần đặc biệt lu ý đến điều chuyển đổi biểu thức toán học sang dạng biểu thức Pascal Giáo viên nhiều ví dụ khác để nhắc nhở học sinh lu ý sử dụng cặp dấu ngoặc đơn để nhóm phép tính, ví dụ:

 10  + = 7, nhng thực phép cộng trớc ta đợc kết

 66/22 = 36, nhng thực phép nhân trớc ta đợc kt qu l

Chẳng hạn, học sinh thờng chun nhÇm biĨu thøc

2

(2 )

a

b c sang d¹ng biĨu thøc Pascal nh sau: a*a/(2*b+c)*(2*b+c)

Mục - phép so sánh, giống với mục 2, cần cho HS nhận thấy khác biệt kí hiệu sử dụng toán học Pascal Điểm cần nhấn mạnh mục kết phép so sánh sai HS hiểu rõ ý nghĩa phép so sánh học đến câu lệnh điều kiện, cấu trúc điều khiển sau

Cần lu ý kí hiệu phép tốn, phép so sánh Pascal Có khác kí hiệu ngơn ngữ lập trình khác Khi làm việc với ngơn ngữ lập trình phải tn thủ quy định kí hiệu phép tốn ngơn ngữ lập trình Tuy nhiên, ngơn ngữ lập trình cho phép biểu diễn phép tính số học, phép so sánh

Nội dung mục 4, Giao tiếp ngời-máy tính, tốt nên đợc GV minh hoạ máy tính Có thể viết sẵn cho chạy chơng trình nh sau (GV sử dụng chơng trình khác):

Chơng trình cho phép nhập tên ngời sử dụng tiến hành in 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 lặp đến ngời sử dụng nhấn phím khác với phím C Có thể mời lần lợt số em lên nhập tên em để thấy đợc thay đổi tơng ứng với liệu nhập vào Từ 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 ý cần cho HS thấy tơng tác ngời máy có đợc ngời lập trình tạo Có thể mở chơng trình giải thích sơ cho em 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 khơng phải thời điểm thích hợp để giải thích tất câu lệnh chơng trình Những tơng tác ngời-máy tính mà em thực soạn thảo văn bản, sử dụng hệ điều hành ngời lập trình tạo kiến thức quan trọng mà em cần rút Điều thể khác biệt học tin học đơn để sử dụng học tin học với t cách ngành khoa học HS dần hiểu rõ việc học sau

(20)

3 Hớng dẫn trả lời câu hỏi tËp

Bài 1. Vì liệu thao tác xử lí liệu đa dạng, lí dễ nhận thấy việc phân chia liệu thành kiểu giúp xác định phép xử lí (phép tốn) thực kiểu liệu Ngồi ra, việc phân chia kiểu liệu cịn cho biết giá trị (phạm vi) liệu, giúp cho việc quản lí tài nguyên máy tính (đặc biệt nhớ trong) cách hiu qu

Bài 2. Có thể nêu ví dụ sau đây:

a) D liu kiu s v liệu kiểu xâu kí tự Phép cộng đợc định nghĩa liệu số, nhng khơng có nghĩa liệu kiểu xâu

b) D÷ liƯu kiĨu sè nguyên liệu kiểu số thực Phép chia lấy phần nguyên phép chia lấy phần d có nghĩa liệu kiểu số nguyên, nhng nghĩa liệu kiểu số thực

Bi 3. Dóy chữ số 2010 liệu kiểu liệu số nguyên, số thực kiểu xâu kí tự Tuy nhiên, để chơng trình dịch Turbo Pascal hiểu 2010 liệu kiểu xâu, phải viết dãy số cặp dấu nháy đơn (')

var a: real; b: integer; c: string;

begin

writeln('2010'); writeln(2010); a:=2010;

b:=2010; c:=’2010’

end

Bài 4. Cho hai xâu kí tự "Lớp" "8A" Có thể định nghĩa nhiều "phép tốn" tập hợp liệu kiểu xâu Chẳng hạn phép ghép: Lớp + 8A = Lớp8A

Bµi 5. LƯnh Writeln('5+20=','20+5') in hình hai xâu kí tự '5+20' '20+5' liỊn nhau: 5+20 = 20+5, cßn lƯnh Writeln('5+20=',20+5) in hình xâu kí tự '5+20' tổng 20 + nh sau: 5+20=25 Bài 6. Các biểu thức Pascal:

a) a/b+c/d; b) a*x*x+b*x+c ;

c) 1/x-a/5*(b+2); d) (a*a+b)*(1+c)*(1+c)*(1+c) Bài 7. Các biểu thức toán tơng ứng:

a)

2

(a b) x

y  

; b)

b ac;

c)

2

(2 )

a

b c ; d)

1 1

1

2 2.3 3.4 4.5

Bài 8. Kết phép so sánh:

a) Đúng; b) Sai; c) Đúng; d) Đúng x > 2.5; ngợc lại, phép so sánh có kết sai

Bài 9. a) 15-8>=3; b) (20-15)*(20-15)<>25; c) 11*11=121; d) x>10-3*x

Bài 10.Một số ví dụ tơng tác ngời máy tính chơng trình hoạt động: thơng báo kết tính tốn hay trạng thái hoạt động chơng trình, nhập liệu, tạm ngừng chơng trình Xem SGK, mục 4,

Bài thực hành Viết chơng trình để tính tốn 1 Mục đích, u cầu

 Chuyển đợc biểu thức toán học sang biểu diễn Pascal;  Biết đợc kiểu liệu khác đợc xử lý khác  Hiểu phép tốn div, mod

(21)

2 Những điểm cần lu ý gợi ý dạy học

Cõu a nhằm mục đích để HS tập chuyển biểu thức viết dạng toán học sang viết Pascal Chỉ cần tập trung vào bốn phép tính đơn giản cộng, trừ, nhân, chia Mặc dù Pascal có hàm sqr, nhng để biểu diễn bình phơng số dùng phép nhân số với Ví dụ, 32

= 3*3

Lu ý, kh¸c víi to¸n häc, Pascal sử dụng kí hiệu * / tơng ứng với phép nhân phép chia

Nhắc lại trang 29

Đây HS tập viết biểu thức Pascal Do vậy, cần đa ví dụ đơn giản với phép tính đơn giản, dễ dàng tính kết Tránh đa ví dụ phức tạp, số lợng phép tính nhiều, khó tính tốn kết Làm nh để HS tập trung vào mục tiêu phần chuyển biểu thức tốn học sang mơ tả Pascal mà khơng thời gian vào tính toán phức tạp

Nội dung câu a để HS làm lớp, không cần thiết phải sử dụng đến máy tính Do vậy, nội dung đợc dạy lớp sau

Trong phần b phần c, HS luyện tập soạn thảo, chỉnh sửa, biên dịch, chạy xem kết chơng trình Cần lu ý HS gõ chuẩn xác, dựa vào thông báo lỗi TP biên dịch, đối chiếu với nội dung in SGK để chỉnh sửa chơng trình có (do HS gõ nhầm)

Các biểu thức câu b biểu diễn biểu thức toán học câu a

Khi quan sát kết hình cần cho HS thấy đợc với lệnh write(), TP hiển thị hình xâu kí tự nằm cặp dấu nháy đơn hiển thị kết biểu thức đ ợc đặt sau dấu phẩy

Cần giải thích để HS thấy đợc hai dãy giống gồm số kí hiệu phép tốn, đặt cặp dấu nháy đơn Pascal hiểu xâu kí tự lệnh write hiển thị y nguyên xâu kí tự hình Nhng khơng đặt cặp dấu nháy đơn Pascal coi biểu thức tính tốn biểu thức lệnh write() hiển thị kết biểu thức Đây ví dụ minh hoạ cho việc kiểu liệu khác cách xử lí liệu khác Sự kết hợp hiển thị liệu xâu kết biểu thức tạo thuận lợi cho ngời theo dõi kết tính tốn

Để HS dễ dàng kiểm chứng kết tính tốn biểu thức, tạo niềm tin, hứng thú học tập, GV dành thời gian để HS tự tính tốn đối chiếu với kết hình TP Nếu cần thiết, GV thay ví dụ SGK ví dụ khác, đơn giản hơn, dễ kiểm chứng kết HS, tránh thời gian tính toỏn khụng cn thit

Qua HS nhận chơng trình Pascal phần khai báo Nói cách khác phần khai báo không bắt buộc phải có, ngợc lại phần thân chơng trình bắt buộc phải có

Yờu cu HS lu lại để sử dụng tiến hành

Qua HS cần hiểu đợc lệnh div, mod tiếp tục rèn luyện số thao tác nh soạn thảo, dịch, hiệu chỉnh, chạy quan sát kết chơng trình Cần lu ý số điểm sau:

- HS làm quen với phép tính div, mod; thấy đợc khác phép div, phép mod phép chia - Biết lệnh clrscr đợc dùng để xóa tất có hình thời điểm Lệnh

có th viện crt nên muốn sử dụng lệnh phải khai báo sử dụng th viện đầu chơng trình GV gợi ý HS bỏ lệnh uses crt để kiểm chứng điều (nếu nh cha thực thao tác thực hành 1)

- Các lệnh delay(), read, readln đợc dùng để tạm ngừng chơng trình Các lệnh thờng đợc dùng vị trí thích hợp chơng trình để ngời quan sát kết quả, theo dõi chơng trình Việc sử dụng lệnh ví dụ việc điều khiển giao tiếp ngời-máy tính

Khi làm HS phải mở chơng trình đợc ghi vào đĩa Mặc dù việc mở tệp có sẵn HS đợc thực hành nhiều lớp dới, nhiên thao tác mở tệp TP khác, HS lúng túng Do vậy, cần lu ý hớng dẫn HS thao tác mở tệp bắt đầu

ViƯc ®iỊu khiĨn ghi số thực hình TP cần giới thiệu qua, kiến thức trọng tâm cđa bµi thùc hµnh

Bài Sử dụng biến chơng trình 1 Mục đích, u cầu

 BiÕt kh¸i niƯm biÕn, h»ng;

(22)

 Hiểu lệnh gán

2 Những điểm cần lu ý gợi ý dạy học

õy l bi tng đối khó HS Cần lu ý nhấn mạnh số điểm sau:

Biến đại lợng để lu trữ liệu, thay đổi giá trị biến vị trí ch ơng trình Muốn sử dụng biến phải khai báo, khai báo biến phải khai báo kiểu liệu mà biến lu trữ Biến lu trữ đợc liệu có kiểu thuộc kiểu biến Ngời lập trình tự đặt tên cho biến theo quy tắc ngơn ngữ lập trình sử dụng Có thể gán giá trị cho biến tính tốn với biến

Hằng có khai báo đại lợng để lu trữ liệu cố định Không đợc phép thay đổi giá trị chơng trình

Bài hồn tồn đợc tiến hành dạy học theo trình tự nh SGK Tuy nhiên, dới xin giới thiệu cách tiến hành dạy học khác để GV tham khảo

Vào đầu học GV u cầu HS viết chơng trình tính diện tích hình trịn có bán kính r = Do HS đợc thực hành viết biểu thức Pascal nên HS dễ dàng làm đợc

Begin

Write('Dien tich hinh tron co ban kinh r=2 la: ', 3.14*2*2);

readln;

end

Với cách viết nh trên, muốn tính diện tích hình trịn khác lại phải vào chơng trình để sửa lại Nh thời gian, cha kể ngời sử dụng phải biết lập trình, hiểu chơng trình vào sửa chơng trình đợc Việc địi hỏi ngời sử dụng phải biết lập trình, sửa đợc chơng trình khơng thực tế

GV đa yêu cầu (Đây lý hàng đầu phải sử dụng biến Nh dễ nhầm vai trò biến với hằng!) cần viết chơng trình cho phép ngời sử dụng nhập từ bàn phím bán kính hình trịn, sau tính tốn diện tích hiển thị kết hình

Nói chung HS cha đa đợc phơng án để giải vấn đề GV cần đa chơng trình thực điều để em quan sát

Var

R: Integer;

Begin

Write('Nhap ban kinh hinh tron R=: '); Readln(R); Write('Dien tich hinh tron la: ', 3.14*R*R);

readln;

end

Nếu dạy với máy tính, GV cho chạy thử chơng trình để HS quan sát hiệu

Dựa chơng trình GV giới thiệu biến nhớ, cách khai báo biến sử dụng lệnh read() hoặc readln() để nhập giá trị biến từ bàn phím, cụ thể giới thiệu nh sau:

Trong chơng trình sử dụng cơng cụ hỗ trợ lập trình PASCAL biến nhớ R

Var R: Integer;

là lệnh khai báo biến nhớ Khi chạy chơng trình, đến lệnh PASCAL dành phần nhớ đặt tên cho phần nhớ R - gọi tắt nhớ R Có thể hình dung ban đầu nhớ R cha chứa giá trị (nói chứa giá trị - tuỳ thuộc vào ngơn ngữ lập trình, nhng cha phải thời điểm phù hợp để nói chi tiết với HS) Về cú pháp khai báo biến cần lu ý tên biến ngời lập trình đặt (tuân thủ theo qui tắc đặt têncủa ngôn ngữ lập trình) kiểu liệu biến Chi tiết khai báo tên đ ợc đề cập thực hành

Readln(R);

là lệnh dùng để nhập giá trị cho biến R từ bàn phím Gặp lệnh chơng trình dừng lại yêu cầu ngời sử dụng nhập giá trị từ bàn phím Khi ngời sử dụng nhập số, ví dụ số 3, nhấn Enter, chơng trình "mang" số "đặt" vào ô nhớ R Trong lập trình việc đợc gọi gán giá trị cho biến R Đến đây, biến R có giá trị

(23)

điểm cần giải thích câu lệnh HS biểu thức 3.14*R*R Vì R đợc khai báo biến đợc gán giá trị nên tính toán biểu thức này, Pascal thay tên biến R giá trị đợc lu ô nhớ R, nghĩa tính 3.14*3*3 Biểu thức tính diện tích hình trịn với bán kính vừa đợc nhập từ bàn phím

Khi thực chơng trình, ngời sử dụng nhập giá trị bán kính (chính xác phải số ngun bất kì, nhng GV cha cần giải thích xác, đầy đủ đây) Điều có nghĩa nhớ R nhận giá trị khác phụ thuộc vào ngời sử dụng Đây đặc điểm quan trọng biến: Giá trị biến thay đổi.

Lu ý cách trình bày nh giúp dẫn dắt học sinh đến khái niệm biến Sau này, trình giới thiệu nội dung thực hành, giáo viên cần nhấn mạnh để học sinh hiểu rõ: mục tiêu việc sử dụng biến tránh giảm đơn giản cơng việc chỉnh sửa chơng trình mà mục tiêu hàng đầu lu trữ giá trị trung gian (đợc nhập vào hay đợc tính tốn) cho hoạt động xử lí liệu sau tên biến giúp chơng trình nhận biết xác liệu đợc lu đâu nhớ Nhiều thao tác xử lí liệu khơng thể thực đợc khơng sử dụng biến SGK trình bày rõ ý

Đến nhấn mạnh cho HS cần khai báo biến, kiểu biến trớc Có thể gán giá trị cho biến sử dụng biến tính tốn Giá trị biến thay đổi

Sau GV đa chơng trình dới đây:

Var

R: Integer; S: Real;

Const

So_PI = 3.14;

Begin

Write('Nhap ban kinh hinh tron R=: '); Readln(R); S:= So_PI*R*R;

Write('Dien tich hinh tron la: ', S); readln

end

So với chơng trình trớc, điểm khác biệt chơng trình khai báo số So_PI, sử dụng số So_PI để tính diện tích hình trịn biểu thức So_PI*R*R Cần nhấn mạnh cho HS cách khai báo đặc điểm số giá trị đợc xác định từ khai báo không thay đổi giá trị Thực đến lệnh PASCAL dành ô nhớ với tên So_PI gán giá trị cho ô nhớ 3.14 Tơng tự nh với biến R, biểu thức So_PI*R*R, tính tốn Pascal thay số So_PI giá trị 3.14 đợc l-u ô nhớ So_PI

Câu lệnh S:= So_PI*R*R đợc sử dụng để giải thích cho HS lệnh gán HS biết cách khai báo biến R, cách gán giá trị cho biến R thông qua lệnh Readln() Cách gán giá trị cho biến S dùng lệnh gán, kí hiệu := Gặp lệnh này, Pascal tính giá trị biểu thức bên phải phép gán gán giá trị cho biến bên trái dấu gán Cụ thể, Pascal tính tốn biểu thức So_PI*R*R bên phải dấu :=, sau mang giá trị vừa tính đợc đặt vào nhớ S Cần lu ý HS khơng có nghĩa nh dấu tốn học

Lu ý, TP đinh nghĩa sẵn hàm Pi giá trị số π(Hàm) , thực chất chơng trình khơng cần khai số So_PI Tuy nhiên, thời điểm giáo viên không đề cập đến điều để tránh gây phức tạp vấn đề

Có thể dựa vào khác hai khai báo biến chơng trình để giới thiệu cho HS cần thiết phải có phù hợp kiểu biến với kiểu liệu Cụ thể, biến R đợc khai báo với kiểu integer nhập bán kính ngời dùng đợc phép nhập giá trị nguyên Nếu dạy với máy tính, máy chiếu GV cho HS quan sát trực quan tình báo lỗi nhập bán kính số thực

Có thể u cầu HS giải thích lại khai báo S kiểu thực, khai báo kiểu nguyên có đ ợc không? Qua câu hỏi HS cần nhận thấy đợc S phải có kiểu số thực So_PI số thực, nên kết biểu thức So_PI*R*R số thực

(24)

Các chơng trình ví dụ cịn đợc sử dụng để giới thiệu cho HS việc kết hợp lệnh write(), writeln() read(), readln() để tạo giao diện nhập, xuất liệu.

Để chuẩn bị cho thực hành 3, GV tập để học sinh tập khai báo biến Pascal, cụ thể nh: khai báo biến để lu giữ tuổi ngời; khai báo biến để lu giữ tên ngời, khai báo biến để lu cân nặng, chiều cao ngời HS cần giải thích đợc việc lựa chọn kiểu liệu phù hợp

Cuối học này, cần khái quát cho HS biết biến, đại lợng có ngơn ngữ lập trình Trên ví dụ đợc viết ngơn ngữ Pascal

Lu ý: Việc sử dụng biến giúp cải tiến chơng trình ban đầu phép ngời sử dụng tính diện tích hình trịn với bán kính nhập từ bàn phím Điều góp phần lí giải ý nghĩa, lợi ích biến ch-ơng trình Tuy nhiên, ví dụ lại cha làm rõ ý nghĩa chch-ơng trình

Thử hình dung, chơng trình sử dụng So_PI nhiều lần, tức có nhiều biểu thức dùng đến So_PI nh tính diện tích, tính chu vi nhiều hình trịn chẳng hạn Trong trờng hợp khơng sử dụng tất biểu thức cần dùng số Pi phải viết giá trị số 3.14 Giả sử sau muốn tính tốn với độ xác cao hơn, chẳng hạn với số Pi 3.1416, ngời lập trình phải tìm tất chỗ mà số Pi đợc viết 3.14 để thay 3.1416 Nh thời gian dễ nhầm lẫn

Nhng chơng trình sử dụng So_PI, đợc khai báo ban đầu Const So_PI = 3.14; sau cơng thức có sử dụng đến số Pi, thay phải viết 3.14 ng ời lập trình dùng So_PI thay vào Vì vậy, muốn thay đổi giá trị số Pi tồn chơng trình từ 3.14 sang 3.14.16 ngời lập trình cần tiến hành chỉnh sửa câu lệnh khai báo đầu chơng trình thành So_PI = 3.1416;, khơng cần phải chỉnh sửa biểu thức chơng trình Khi tất biểu thức dùng So_PI chơng trình đợc tính tốn với số Pi có giá trị mi l 3.1416

Tình ví dụ làm rõ lợi ích ý nghĩa cđa h»ng lËp tr×nh

Nếu khả tiếp thu HS tốt thời gian, sau hồn thành học, vào giải thích ý nghĩa trên, giáo viên lấy chơng trình minh hoạ ý nghĩa, lợi ích cho HS Phần giải thích ý nghĩa, lợi ích khơng bắt buộc phải giới thiệu cho HS

3 Hớng dẫn trả lời câu hỏi vµ bµi tËp

Bài 1. Xét mặt lập trình, biến đại lợng đợc dùng để lu trữ liệu liệu đợc biến lu trữ thay đổi thực chơng trình Xét mặt lu trữ liệu, xem biến "tên" vùng nhớ đợc dành sẵn để lu liệu suốt trình thực chơng trình

Gán giá trị cho biến thực chất lu liệu tơng ứng vào vùng nhớ đợc đặt tên dành riêng cho biến Việc thực tính tốn xử lí với biến có nghĩa thực tính tốn xử lí với liệu đợc gán

Giả sử X đợc khai báo biến với kiểu liệu số nguyên X đợc gán liệu số Sau khai báo, chơng trình dành riêng vùng nhớ cho biến X, gán cho X vùng nhớ lu liệu Lệnh ghi X hình có nghĩa ghi số hình

Lu ý giáo viên Khi vùng nhớ đợc khai báo để lu liệu làm giá trị biến, vùng nhớ khơng đợc phép sử dụng vào mục đích khác Do vậy, kĩ lập trình sử dụng biến tốt, trờng hợp việc sử dụng nhớ bị hạn chế Nhng với công nghệ nay, nhớ máy tính có dung lợng lớn nên vấn đề hạn chế sử dụng biến chơng trình khơng cịn vấn đề cấp thiết

Bµi 2. Việc khai báo biến gồm: Khai báo tên biến khai báo kiểu liệu biến

Khi khai báo biến, việc tên biến đợc đa vào danh sách đối tợng quản lí, máy tính (thơng qua chơng trình dịch) xác định kiểu biến dành vùng nhớ có độ lớn thích hợp với phạm vi kiểu biến để lu giá trị biến Ví dụ, để lu giá trị số nguyên, khai báo biến kiểu byte, máy tính dành vùng nhớ có độ lớn byte, nhng khai báo biến kiểu nguyên, máy tính dành vùng nhớ có độ lớn byte, vùng nhớ byte đợc dành cho biến đợc khai báo với kiểu số thực, Nhờ việc sử dụng nhớ hiệu Ngồi máy tính biết áp dụng phép tốn thích hợp giỏ tr ca bin

Bài 3. Đáp án: a) Hợp lệ; b) Không hợp lệ; c) Hợp lệ; d) Không hợp lệ

Bi 4. Mc dự u cựng phải khai báo trớc sử dụng chơng trình, khác biến chỗ giá trị không thay đổi suốt q trình thực chơng trình, cịn giá trị biến thay đổi đợc thời điểm thực chơng trình

Bài 5. Khơng thể gán lại giá trị 3.1415 cho Pi phần thân chơng trình giá trị khơng thay đổi suốt trình thực chơng trình

(25)

Bài 7. Các lỗi chơng trình: (1) Thừa dấu dòng (chỉ cần dấu hai chấm); (2) Thừa dấu hai chấm dòng (với cần dấu bằng); (3) Thiếu dấu chấm phẩy dòng 4; (4) Khai báo kiểu liệu biến b không phù hợp: Khi chia hai số nguyên, kết luôn số thực, cho dù có chia hết hay khơng Do cần phải khai báo biến b biến có kiểu liệu số thc

Bài 8. Cách khai báo hợp lí:

a) Các biến a h kiểu số nguyên; biÕn S: kiĨu sè thùc b) C¶ biÕn a, b, c d kiểu số nguyên

Bài 9. Cần sử dụng biến sau với học sinh: biến kiểu xâu để lu tên, ví dụ Hoa, Mai, , biến kiểu số nguyên để lu điểm, ví dụ Diem_Hoa, Diem_Mai; ngồi cần biến Trungbinh biến kiểu số thực để ghi điểm trung bình lớp (Bài khó hiểu, với học sinh, cần điểm trung bình, cịn tên 50 HS 50 tên khác nhau, 50 im khỏc nhau!!!)

Bài 10.Chơng trình Pascal nh sau đây:

uses crt;

var r: integer; C,S: real;

begin

clrscr;

write('Nhap ban kinh r = '); readln(r); C:=2*Pi*r;

S:=Pi*r*r;

writeln('Chu vi duong tron bang ',C:8:2); writeln('Dien tich hinh tron bang ',S:8:2);

end.

Bài thực hành Khai báo sử dụng biến 1 Mục đích, yêu cầu

 Thực đợc khai báo cú pháp, lựa chọn đợc kiểu liệu phù hợp cho biến

 Kết hợp đợc lệnh write(), writeln() với read() readln() để thực việc nhập liệu cho biến từ bàn phím

 Hiểu kiểu liệu chuẩn: kiểu số nguyên, kiểu số thực  Sử dụng đợc lệnh gán giá trị cho biến

 HiÓu cách khai báo sử dụng

Hiu thực đợc việc tráo đổi giá trị hai biến 2 Những điểm cần lu ý gợi ý dạy học

Chơng trình câu a, chơng trình giả định số tiền phải trả bao gồm số tiền mua hàng (bằng đơn giá nhân với số lợng) số tiền cớc phí vận chuyển (cố định 10000) Tổng số tiền phải trả số tiền mua hàng cộng với cớc phí

Với HS tập khai báo biến Pascal, cần cho HS tìm hiểu cú pháp khai báo biến, đặt tên theo quy định Pascal, chọn kiểu liệu biến

Rèn luyện soạn thảo, dịch, hiệu chỉnh, chạy kiểm tra kết mục tiêu Cần hớng dẫn để HS tìm hiểu chức lệnh Readln(tên biến); để nhập giá trị biến; Sự kết hợp write() readln() việc nhập giá trị biến từ bàn phím; Việc sử dụng biến biểu thức thanhtien:= soluong*dongia+cuocphi.

Các thích đặt cặp dấu ngoặc {} (* *) đợc dùng để giải thích câu lệnh, ý đồ ngời viết chơng trình Gặp cặp dấu ngoặc Pascal bỏ qua, không dịch nội dung bên Việc viết thích chơng trình đơi cần thiết để giúp ngời khác nhanh chóng hiểu đợc chơng trình, chí để ngời viết chơng trình dễ dàng xem lại chỉnh sửa chơng trình

(26)

trong chơng trình số nguyên Có thể gợi ý để HS thay đổi kiểu biến số lợng khai báo để nhập số lợng số thực

Khi nhập số liệu (1, 35000), kết khơng cịn nữa, nguyên nhân t ợng tràn số Biến Soluong có kiểu integer nên cho phép chứa giá trị khoảng từ 32768 đến 32767, giá trị 35000 khoảng giá trị gây lỗi, kết đa không xác Có thể gợi ý cho HS chỉnh sửa khai báo kiểu liệu để khắc phục hạn chế

Một nội dung quan trọng giúp học sinh luyện tập việc nhận biết khai báo kiểu liệu hợp lí cho biến Khai báo kiểu liệu hợp lí mặt giúp cho việc sử dụng nhớ cách tối u (ví dụ, với đại lợng nhận giá trị số tự nhiên vợt 255 không cần thiết phải khai báo biến kiểu số nguyên, mà cần kiểu byte), mặt khác giúp tránh lỗi tràn liệu dẫn đến kết sai Trong thực hành sau, giáo viên nên lu ý học sinh đến điểm

Với 2, trọng tâm cho HS luyện tập với lệnh gán thực việc tráo đổi giá trị hai biến x, y Đây công việc hay gặp lập trình qua ví dụ HS hiểu rõ biến, cách sử dụng biến Bài giới thiệu cách viết câu lệnh nhập nhiều liệu từ bàn phím cõu lnh writeln hoc write

Để thực hành nµy, cã thĨ tiÕn hµnh nh sau:

Cho HS gõ chơng trình SGK, tiến hành dịch, chỉnh sửa cho chạy chơng trình

Do thông báo cho ngời dùng yêu cầu nhập giá trị tơng ứng biến x, y nên HS gặp khó khăn nhập GV cần hớng dẫn HS cú pháp câu lệnh cách nhập hai số nguyên (cách dấu cách) nhấn Enter quan sát kết

Nờn gợi ý cho HS cải tiến chơng trình để hớng dẫn ngời sử dụng nhập giá trị cho x, y từ bàn phím In hình giá trị x, y vừa đợc ngời sử dụng nhập vào in hình giá trị x, y sau tráo đổi giá trị Có thể tham khảo chơng trình Tinhtien.pas để thực việc

Về việc tráo đổi giá trị hai biến x biến y, lấy ví dụ minh hoạ nh việc muốn tráo đổi hai cốc nớc Giả sử có hai cốc nớc, cốc nớc chứa nớc màu đỏ, cốc nớc chứa nớc màu xanh Làm để tráo đổi nớc hai cốc nớc Đơng nhiên phải dùng cốc thứ ba làm trung gian để thực điều này, cụ thể: Giả sử cốc X chứa nớc màu đỏ, cốc Y chứa nớc màu xanh cốc Z cốc trung gian, không chứa Cách tráo đổi nớc chứa cốc X cốc Y nh sau:;

Đổ nớc đỏ cốc X sang cốc Z; Đổ nớc xanh cốc Y sang cốc X; Đổ nớc đỏ cốc Z sang cốc Y

Sau thực nh nớc hai cốc đợc tráo sang

Việc tráo đổi giá trị biến tơng tự, chơng trình phải sử dụng biến z làm biến trung gian để lu giữ giá trị ban đầu biến x Cụ thể:

z:=x; {Lu giá trị biến x vào biết z}

x:=y; {Giá trị biến x đợc thay giá trị biến y}

y:=z; { Giá trị biến y đợc thay giá trị biến z, giá trị biến z lúc giá trị biết x ban đầu}

* Có khác biệt cần đợc lu ý Khi đổ xong nớc cốc Y sang nớc cốc X cốc Y có nớc cịn cốc X hết nớc Khác với gán X:= Y; giá trị biến X giá trị biến Y, nhng giá trị biến Y khơng Nếu học sinh thắc mắc GV giải thích điều này, học sinh khơng thắc mắc GV khơng nên giải thích để tránh làm phức

Chơng trình sau chỉnh sửa cã thÓ nh sau:

Program hoan_doi;

var x,y,z:integer;

begin

write('Nhap gia tri bien x = '); readln(x); write('Nhap gia tri bien y = '); readln(y);

Writeln('Truoc trao doi, gia tri cua bien x: ', x); Write('Truoc trao doi, gia tri cua bien y: ', y); {Bat dau thuc hien trao doi}

z:=x; x:=y; y:=z;

{Ket thuc trao doi}

(27)

readln

end

Lu ý, để HS dễ tiếp thu, chơng trình lựa chọn cách viết nhiều lệnh đơn giản, ghép số lệnh thành lệnh để chơng trình ngắn gọn ví dụ, thay hai lệnh:

Writeln('Truoc trao doi, gia tri cua bien x = ', x); Write('Truoc trao doi, gia tri cua bien y = ', y); b»ng mét lÖnh nh sau:

Writeln('Truoc trao doi, gia tri cua bien x = ', x, ' y = ', y); Bài Từ tốn đến chơng trình

1 Mục đích, u cầu

 BiÕt kh¸i niệm toán, thuật toán; Biết bớc giải toán máy tính;

Xỏc nh c Input, Output toán đơn giản;

 Biết chơng trình thể thuật toán ngôn ngữ cụ thể Biết mô tả thuật toán phơng pháp liệt kê bớc

Hiểu thuật toán tính tổng N số tự nhiên đầu tiên, tìm số lớn dÃy số 2 Những điểm cần lu ý gợi ý dạy häc

Bài toán thuật toán để giải toán nội dung quan trọng, khơng nói quan trọng lập trình Nếu học sinh nắm vững đợc kiến thức dễ dàng nhiều việc tiếp thu kiến thức sau Vì lẽ tác giả đề xuất dành thời lợng cho Bài 04 tiết lí thuyết 02 tiết tập Giáo viên cần tận dụng hết thời gian dành cho để truyền đạt cho học sinh cách kỹ lỡng

Khái niệm toán giải toán trở thành quen với học sinh mơn học khác nh Tốn, Vật lí, Bài tốn tin học khơng tốn lĩnh vực tốn học mà cịn nhiệm vụ, công việc cần giải sống thực tiễn (nhiều chẳng liên quan đến tốn học) nh: tính điểm trung bình mơn học, học kì, nấu ăn hay điều khiển rô-bốt nhặt rác chẳng hạn

Để cho HS mở rộng nhận thức khái niệm toán mà em đợc biết mơn học khác, sử dụng lại ví dụ tốn điều khiển rơ-bốt nhặt rác HS học Ví dụ cho thấy tốn cịn công việc, nhiệm vụ gắn liền với sống hàng ngày Do đợc tiếp cận với ví dụ học nên việc tìm điều kiện cho trớc kết thu đợc toán dễ dàng với HS

Để dẫn dắt đến khái niệm xác định toán, GV viên dựa vào giả thiết kết luận tốn mơn Tốn để dẫn dắt học sinh xác định Input, Output toán Tin học Trong mơn tốn, thờng trớc bắt đầu giải toán em quen với việc tìm giả thiết kết luận tốn Trong tin học, phần giả thiết điều kiện cho trớc (Input), phần kết luận kết cần thu đợc (Output)

Có thể sử dụng toán đơn giản, quen thuộc với HS để HS dễ dàng tìm đợc điều kiện cho trớc (giả thiết) kết cần thu đợc (kết luận) tốn (khơng thiết phải lấy ví dụ SGK)

Để máy tính "giải" đợc tốn ngời phải dẫn cho máy tính Tuy nhiên, dẫn ngời để máy tính thực phải cụ thể, chi tiết đặc biệt máy tính phải "hiểu" đợc dẫn (Lặp lại đoạn sau!) Có thể đặt câu hỏi với HS: Máy tính có "giải" đợc tốn khơng? Có thể sử dụng ví dụ rơ-bốt nhặt rác để HS thảo luận tìm câu trả lời Việc viết chơng trình điều khiển máy tính rẽ phải, tiến, rẽ trái, nhặt rác ngời nghĩ ra, máy tính thực thao tác theo dẫn ngời

Nh vậy, ngời tìm cách thức, thao tác trình tự thực thao tác để giải cơng việc, máy tính biết thực thao tác theo dẫn Máy tính khơng tự giải đợc tốn

Tập hợp bớc để điều khiển rơ-bốt nhặt rác thuật tốn

Có thể mơ tả thuật tốn cách liệt kê bớc nh giới thiệu SGK sơ đồ khối Tuy nhiên, GV không cần giới thiệu thêm cách mô tả sơ đồ khối

(28)

Để từ toán đến chơng trình SGK nêu ba bớc: Xác định tốn, xây dựng thuật tốn, viết ch-ơng trình Đây phch-ơng án chia bớc đơn giản, HS dễ hiểu, dễ tiếp thu Mặc dù có số cách chia bớc khác, để tránh làm phức tạp hoá vấn đề, GV khơng cần giới thiệu thêm hay phân tích sâu bớc

Nội dung mục quan trọng tơng đối khó với HS Cần dành thời gian thích đáng cho mục Nên sử dụng tiết tập để bổ sung thêm thời lợng dạy học cho nội dung Mục tiêu ví dụ mục rèn luyện kĩ xác định Input, Ouput mơ tả thuật tốn cách liệt kê bớc với việc giới thiệu thuật toán Các thuật toán giới thiệu mục thuật toán học sinh cần tiếp thu Trong đó, thuật tốn tìm số lớn dãy số thuật toán đợc yêu cầu cụ thể chuẩn kiến thức kĩ Hơn nữa, ví dụ mục cịn đề cập đến thuật toán liên quan đến cấu trúc rẽ nhánh, cấu trúc lặp số toán sau

Lu ý tất thuật toán nêu mục phần câu hỏi tập Bài đ ợc sử dụng làm ví dụ minh họa để giải câu hỏi tập sau Do việc việc rèn luyện kĩ với ví dụ giải số tập sẽ tạo điều kiện thuận lợi để HS tiếp thu nội dung sau

§Ĩ gióp HS hiĨu râ vỊ thuật toán, GV mô thuật toán với liệu cụ thể Ví dụ: + Mô thuật toán tính tổng N số tự nhiên đầu tiªn, víi N = 10 (trong SGK, N= 100)

Bíc 10

i 10 11

i≤ N §óng §ón g

§ón g

§óng §óng §óng §ón g

§óng §óng §ó ng

Sai

SUM 10 15 21 28 36 45 55 KÕt

thúc

+ Mô thuật toán tìm số lín nhÊt d·y sè cho tríc:

D·y sè 5 3 4 7 6 3 15 9 11

i 1 2 3 4 5 6 7 8 9 10

i>n Sai Sai Sai Sai Sai Sai Sai Sai Sai §óng ai >

SMAX

Sai Sai §óng Sai Sai §óng §óng §óng KÕt thóc

SMAX 5 7 15 15 15

3 Hớng dẫn trả lời câu hỏi tập Bài 1. Đáp án:

a) INPUT: Danh sách hä cđa c¸c häc sinh líp OUTPUT: Sè häc sinh cã hä TrÇn

b) INPUT: D·y n sè

OUTPUT: Tổng phần tử lớn c) INPUT: D·y n sè

OUTPUT: Sè c¸c sè có giá trị nhỏ (có thể hay nhiều sè)

Bài 2. Sau ba bớc, x có giá trị ban đầu y y có giá trị ban đầu x, tức giá trị hai biến x y đợc hốn đổi cho

Bµi 3. Mô tả thuật toán:

INPUT: Ba số dơng a > 0, b > vµ c >

OUTPUT: Thông báo "a, b c ba cạnh tam giác" thông báo "a, b c ba cạnh mét tamgi¸c"

Bíc TÝnh a + b NÕu a + b  c, chun tíi bíc 5. Bíc TÝnh b + c NÕu b + c  c, chun tíi bíc 5. Bíc TÝnh a + c NÕu a + c  b, chun tíi bíc 5.

Bớc Thông báo "a, b c ba cạnh tamgiác"và kết thúc thuật toán Bớc Thông báo "a, b c ba cạnh tamgiác"và kết thúc thuật toán Bài 4. Có thể giải toán cách sử dụng biến phụ không dùng biÕn phô

(29)

INPUT: Hai biÕn x vµ y

OUTPUT: Hai biÕn x vµ y cã giá trị tăng dần Bớc Nếu x y, chun tíi bíc 5.

Bíc z  x Bíc x  y. Bíc y  z.

Bíc KÕt thóc tht to¸n.

Tht toán Không sử dụng biến phụ (xem tập trên). INPUT: Hai biến x y

OUTPUT: Hai biến x y có giá trị tăng dÇn Bíc NÕu x  y, chun tíi bíc 5.

Bíc x  x + y Bíc y  x  y. Bíc x  x  y.

Bíc KÕt thóc tht to¸n.

Bài 5. Trớc hết, cần, ta hốn đổi giá trị hai biến x y để chúng có giá trị tăng dần Sau lần lợt so sánh z với x z với y, sau thực bớc hoán đổi giá trị cần thiết (xem lại ví dụ 5, SGK)

INPUT: Ba biÕn x, y vµ z

OUTPUT: Ba biến x, y z có giá trị tăng dần Bíc NÕu x  y, chun tíi bíc 3.

Bíc t  x, x  y, y  t (t lµ biÕn trung gian Sau bíc nµy x y có giá trị tăng dần.) Bớc NÕu y  z, chun tíi bíc 6.

Bớc Nếu z < x, t  x, x  z z  t, (với t biến trung gian) chuyển đến bớc 6. Bớc t  y, y  z z  t.

Bíc Kết thúc thuật toán.

Bài 6. a) Tính tổng phần tử dÃy số A = {a1, a2, , an} cho tríc

INPUT: n vµ d·y n sè a1, a2, , an

OUTPUT: Tæng S = a1 + a2 + + an

Bíc S  0; i  0. Bíc i  i + 1.

Bíc NÕu i  n, S S + quay lại bớc Bớc Thông báo S kết thúc thuật toán.

b) Tìm số nhỏ dÃy n sè a1, a2, , an cho tríc Tht to¸n tơng tự nh thuật toán tìm giá trị

lớn dãy n số cho (xem ví dụ 6, 5) Điều khác biệt thêm bớc nhập số n dãy n số a1, a2, , an

INPUT: n vµ d·y n sè a1, a2, , an

OUTPUT: Min = Min{ a1, a2, , an}

Bíc NhËp n vµ d·y n sè a1, a2, , an

Bíc G¸n Min  a1; i 

Bíc i  i + 1.

Bớc Nếu i > n, chuyển đến bớc 6.

Bíc NÕu ≥ Min, quay lại bớc Trong trờng hợp ngợc lại, gán Min quay lại bớc Bớc Ghi giá trị Min hình kết thúc thuật toán.

Bài 7. a) Đếm số sè d¬ng d·y sè A = {a1, a2, , an} cho tríc

INPUT: n vµ d·y n sè a1, a2, , an

OUTPUT: Soduong = Sè c¸c sè > Bíc G¸n Soduong  0, i  0. Bíc i  i + 1.

(30)

Bíc NÕu > 0, gán Soduong Soduong +1 quay lại bớc Trong trờng hợp ngợc lại, quay lại bớc

Bớc Thông báo giá trị Soduong kết thúc thuật toán.

b) Tìm vị trí số dơng dÃy số A = {a1, a2, , an} cho trớc, tính từ phải sang trái

INPUT: n vµ d·y n sè a1, a2, , an

OUTPUT: Vitri = Vị trí số dơng đầu tiªn d·y sè a1, a2, , an, tÝnh tõ phải sang trái

Bớc Gán i n

Bíc NÕu > 0, chun tíi bíc 5. Bíc G¸n i  i 

Bíc NÕu i < 1, chun tíi bớc 5; ngợc lại, quay lại bớc 2. Bớc Thông báo giá trị Vitri = i kết thúc thuật toán

Bài 8. Tính tổng số d¬ng d·y sè A = {a1, a2, , an} cho tríc

INPUT: n vµ d·y n sè a1, a2, , an

OUTPUT: S = Tỉng c¸c sè > d·y a1, a2, , an

Bíc S  0; i  0. Bíc i  i + 1.

Bíc NÕu > 0, S S + ai; ngợc lại, giữ nguyên S Bớc Nếu i n, quay lại bớc 2.

Bớc Thông báo S kết thúc thuật toán.

Bi Cõu lnh điều kiện 1 Mục đích, yêu cầu

 BiÕt cần thiết cấu trúc rẽ nhánh lập tr×nh

 Biết cấu trúc rẽ nhánh đợc sử dụng để dẫn cho máy tính thực thao tác phụ thuộc vào điều kiện

 Hiểu cấu trúc rẽ nhánh có hai dạng: Dạng thiếu dạng đủ

 Biết ngơn ngữ lập trình có câu lệnh để thể cấu trúc rẽ nhánh

 Hiểu cú pháp, hoạt động câu lệnh điều kiện dạng thiếu dạng đủ trongPascal  Bớc đầu viết đợc câu lệnh điều kiện Pascal

2 Những điểm cần lu ý gợi ý d¹y häc

Trớc bắt đầu học mới, GV kiểm tra cũ yêu cầu học sinh nhận xét thứ tự thực câu lệnh chơng trình học GV cần nhấn mạnh cho HS biết rằng: lệnh chơng trình đợc thực theo thứ tự từ xuống dới Thực lệnh từ xuống dới thứ tự thực ngầm định (và cấu trúc điều khiển) ngơn ngữ lập trình

Bắt đầu học mới, GV xuất phát từ hoạt động phụ thuộc vào điều kiện đời sống để dẫn dắt HS đến cần thiết cần có cấu trúc rẽ nhánh ngơn ngữ lập trình Nhiều tốn mà máy tính giúp ngời giải vấn đề đời sống thực tiễn Trong thực tiễn, cơng việc đợc thực nh điều kiện đợc thoả mãn Vì vậy, ngơn ngữ lập trình phải có cấu trúc điều khiển cho phép giải tình Nghĩa là, chơng trình số câu lệnh đ-ợc thực không đđ-ợc thực phụ thuộc vào điều kiện cụ thể Theo nghĩa cấu trúc rẽ nhánh cho phép “phá vỡ” tính trình thực lệnh chơng trình

Cũng từ ví dụ hoạt động phụ thuộc vào điều kiện, GV khái quát lên hai cấu trúc rẽ nhánh dạng thiếu dạng đủ ngôn ngữ tự nhiên nh sau:

Nếu

Nếu không

Tơng ứng với hai cấu trúc rẽ nhánh dạng thiếu dạng đủ, Pascal có hai câu lệnh điều kiện dạng thiếu dạng đủ nh sau:

Dạng thiếu: if <điều kiện> then <câu lệnh>;

Dạng đủ: if <điều kiện> then <câu lệnh 1> else <câu lệnh 2>;

(31)

(Xuân sửa lu đồ nhé)

ở dạng thiếu: Nếu điều kiện thoả mãn câu lệnh đợc thực hiện, ngợc lại bỏ qua câu lệnh

(Xuân sửa lu đồ nhé)

ở dạng đủ: Nếu điều kiện thoả mãn câu lệnh đợc thực hiện, ngợc lại thực câu lệnh Trong đó, câu lệnh, câu lệnh 1, câu lệnh câu lệnh Pascal

Điều kiện thờng phép so sánh (lu ý, HS THCS cha học biểu thức quan hệ nên dùng cụm từ phép so sánh để nói điều kiện câu lệnh điều kiện) Phép so sánh cho kết tơng đ-ơng điều kiện đợc thoả mãn, ngợc lại phép so sánh cho kết sai tđ-ơng đđ-ơng với điều kiện không thoả mãn

Trong SGK dành mục mục để nói điều kiện phép so sánh Trọng tâm hai mục cần cho HS biết lập trình điều kiện thờng đợc thể phép so sánh (biểu thức so sánh) khái niệm điều kiện đợc thoả mãn (hay không đợc thoả mãn) đời sống tơng đơng với khái niệm phép so sánh cho kết (hay sai) ngơn ngữ lập trình

Mặc dù phép so sánh, kí hiệu phép so sánh Pascal đợc giới thiệu học trớc Tuy nhiên, HS cha đợc luyện tập, GV cần lu ý hớng dẫn HS luyện tập phép so sánh với việc tìm hiểu, tập viết câu lệnh điều kiện học

Đến GV sử dụng ví dụ mục (SGK) để HS luyện tập nhằm hiểu rõ hoạt động câu lệnh điều kiện dạng thiếu, dạng đủ, biết ý nghĩa câu lệnh, câu lệnh 1, câu lệnh điều kiện Cần dành thời gian thích đáng cho HS luyện tập qua ví dụ minh hoạ (khoảng tiết học) Các ví dụ đơn giản, dễ hiểu để HS dễ dàng nắm bắt đợc hoạt động câu lệnh điều kiện, ý nghĩa biểu thức điều kiện, câu lệnh Giáo viên chủ động chọn ví dụ khác, nhng tránh ví dụ phức tạp điều kiện, nhiều phép so sánh

Cuối học GV cần khái quát hoá để HS biết cấu trúc rẽ nhánh, hoạt động cấu trúc rẽ nhánh giống ngơn ngữ lập trình Nhng ngơn ngữ lập trình lại có câu lệnh riêng để thể cấu trúc rẽ nhánh

Lu ý: Hồn tồn theo trình tự giới thiệu SGK để tiến hành dạy học học Tuy nhiên, tiến trình dạy học theo cách giới thiệu phơng án khả thi Phơng án từ câu lệnh cụ thể Pascal, sau khái quát thành kiến thức, nguyên tắc chung cho ngôn ngữ lập trình Căn vào điều kiện thực tế, GV chủ động lựa chọn cách tiến hành phù hợp

Việc dịch câu lệnh if then if then esle tiếng Việt tơng ứng khơng cần thiết cho HS dễ nhớ ý nghĩa câu lệnh, với HS cha đợc học tiếng Anh.

if <®iỊu kiƯn> then <câu lệnh>;

(32)

3 Hớng dẫn trả lời câu hỏi tập

Bi 1. Cú thể nêu vài ví dụ hoạt động ngày phụ thuộc vào điều kiện Dới số ví dụ: a) Nếu đạt điểm tổng kết năm cao 8.5, em đạt danh hiệu "Học sinh giỏi"

b) Nếu không đợc cắm điện, máy tính để bàn em khơng hoạt động đợc c) Nếu bị bệnh, em (cần phải) đến phòng khám để bác sĩ khám bệnh

d) Nếu không đợc tới đủ nớc thời kì phát triển, lúa không cho thu hoạch cao Bài 2. Đáp án: a) Đúng; b) Đúng; c) Sai; d) Sai; e) Sai, nu x

Bài 3. Giả sử Điểm_1 số điểm ngời thứ Điểm_2 số điểm ngời thứ hai, ng-ời thứ nghĩ đầu số tự nhiên n < 10

Điều kiện trò chơi ngời thứ hai đốn số n Khi Điểm_2 đợc cộng thêm 1; ngợc lại, Điểm_2 đợc giữ nguyên Tơng tự, ngời thứ hai nghĩ số tự nhiên m, điều kiện thứ hai ngời thứ đoán số m Khi Điểm_1 đợc cộng thêm 1; ngợc lại, Điểm_1 đợc giữ nguyên

Điều kiện trò chơi sau 10 lần, Điểm_1 > Điểm_2 ngời thứ đợc tuyên bố thắng cuộc; ngợc lại, ngời thứ hai thắng Trờng hợp Điểm_1 = Điểm_2 khơng có ngời thắng ngời thua Bài 4. Các điều kiện để điều khiển khay trị chơi ngời chơi nhấn phím mũi tên  phím

 Nếu ngời chơi nhấn phím , biểu tợng khay di chuyển sang phải đơn vị khoảng cách; phím  đợc nhấn, biểu tợng khay di chuyển sang trái Nếu phím khác ngồi hai phím mũi tên đợc nhấn, khay giữ ngun vị trí

Bµi 5. a) Sai (thõa dÊu hai chÊm);

b) Sai (thõa dÊu chÊm phÈy thø nhÊt);

c) Đúng, nhng câu lệnh điều kiện khơng có tác dụng Tuy nhiên, với mục đích gán giá trị biến b cho biến a giá trị x lớn câu lệnh sai (thừa dấu chấm phẩy sau t then);

d) Đúng, phép gán m:=n không phụ thuộc điều kiện x>5; ngợc lại, sai cần đa hai câu lệnh a:=b; m:=n; vào cặp từ khoá begin end;

e) Sai (thừa dấu chấm phÈy thø nhÊt); f) §óng.

Bài 6. a) Vì 45 chia hết cho 3, điều kiện đợc thoả mãn nên giá trị X đợc tăng lên 1, tức 6; b) Điều kiện không đợc thoả mãn nên câu lệnh không đợc thực hiện, tức X giữ nguyờn giỏ tr

Bài 7. Thuật toán: Bớc NhËp sè n

Bíc NÕu n chia hết cho 2, ghi hình "n số chẵn"; ngợc lại, ghi hình "n số lẻ" Bớc Kết thúc thuật toán.

Bài 8. Chơng trình Pascal:

uses crt;

var X,Y,Z: real;

begin

clrscr;

write('Nhap so X = '); readln(X); write('Nhap so Y = '); readln(Y);

if X>Y then begin Z:=X; X:=Y; Y:=Z; writeln(X,' ',Y);

readln

end Bài 9. Thuật toán:

Bớc NhËp ba sè A, B vµ C

Bíc NÕu A > B, X  A, A  B, B  X Bíc NÕu C < A, X  A, A  C, C  X Bíc NÕu C < B, X  B, B  C, C  X

(33)

Chơng trình Pascal:

uses crt;

var A, B, C, X: integer;

begin

clrscr;

write('Nhap so A: '); readln(A); write('Nhap so B: '); readln(B); write('Nhap so C: '); readln(C);

if A>B then begin X:=A; A:=B; B:=X end; if C<A then begin X:=A; A:=C; C:=X end; if C<B then begin X:=B; B:=C; C:=X end; writeln(A,' ',B,' ',C);

readln;

end Bài 10.Thuật toán:

Bíc NhËp ba sè A, B vµ C

Bíc NÕu A + B  C hc B + C  A hc C + A  B, thông báo A, B C ba cạnh tam giác chuyển tới bớc

Bíc NÕu A2 + B2 = C hc B2 + C2 = A2 hc C2 + A2 = B, thông báo A, B C ba cạnh một

tam giác vuông chuyển tới bíc

Bớc Nếu A = B B = C, thông báo A, B C ba cạnh tam giác đều; ngợc lại, A = B B = C A = C, thông báo A, B C ba cạnh tam giác cân

Bíc KÕt thóc thuật toán Chơng trình Pascal:

program Tam_giac;

uses crt;

var A, B, C, X: integer;

begin

clrscr;

write('Nhap so A: '); readln(A); write('Nhap so B: '); readln(B); write('Nhap so C: '); readln(C);

if (A+B<=C) or (B+C<=A) or (A+C<=B)then

writeln('Day khong la ba canh cua mot tam giac')

elseif (A*A=B*B+C*C)or(B*B=A*A+C*C) or (C*C=A*A+B*B) then

writeln('Day la ba canh cua tam giac vuong')

else if (A=B) and(B=C) and (A=C) then

writeln('Day la ba canh cua tam giac deu')

else if (A=B) or (B=C) or (C=A)then

writeln('Day la ba canh cua tam giac can')

else

(34)

end

Bài thực hành Sử dụng lệnh rẽ nhánh 1 Mục đích, yêu cầu

 Viết đợc đợc câu lệnh điều kiện if then chơng trình;

 Rèn luyện kĩ ban đầu đọc chơng trình đơn giản hiểu đợc ý nghĩa thuật toán sử dụng chơng trỡnh

2 Những điểm cần lu ý gợi ý d¹y häc

Bài HS thực hành sử dụng lệnh if then Do vậy, ví dụ cần đơn giản, dễ hiểu để HS dễ dàng nhận ý nghĩa, hoạt động câu lệnh điều kiện, biểu thức điều kiện, câu lệnh cấu trúc rẽ nhánh

HS đợc làm quen với thuật tốn ví dụ 4, Do vậy, nói chung HS khơng gặp khó khăn thuật tốn tìm hiểu chơng trình Sap_xep tập thực hành Hồn tồn sử dụng chơng trình Sap_xep để đạt mục tiêu thực hành sử dụng câu lệnh if then else

Tuy nhiên, dới xin giới thiệu phơng án dựa yêu cầu nhng có chỉnh sửa đôi chút để GV tham khảo tiến hành dạy học

Giữ nguyên yêu cầu đề Đối với câu a, yêu cầu HS mô tả bớc để giải toán Các bớc để giải toán (Nội dung nên đợc dạy tiết lý thuyết tiết tập trớc thực hành):

Bíc NhËp hai số nguyên a, b từ bàn phím;

Bc Nếu a b hiển thị hình giá trị biến a trớc đến giá trị biến b; Bớc Nếu b < a hiển thị hình giá trị biến b trớc đến giá trị biến a; Bớc Kết thúc.

Trên sở phần mơ tả thuật tốn, GV hớng dẫn để HS viết đợc chơng trình tơng ứng Chơng trình nh sau:

program Sap_xep;

uses crt;

var A, B, T: integer;

begin

clrscr;

{Buoc 1: Nhap hai so nguyen a, b tu ban phim} write('Nhap so A:'); readln(A);

write('Nhap so B:'); readln(B);

{Buoc 2: Neu a < b thi hien thi man hinh gia tri bien a truoc roi den gia tri bien b}

if A<=B then write(A,' ',B);

{Neu b < a thi hien thi man hinh gia tri bien b truoc roi den gia tri bien a}

if B<A then write(B,' ',A); readln;

End

Thuật tốn thực chơng trình gần với cách nghĩ HS Do vậy, hi vọng HS thấy gần gũi dễ dàng việc tìm hiểu chơng trình nh hiểu đợc hoạt động, cách sử dụng lệnh rẽ nhánh chơng trình Hơn nữa, mặt s phạm nên giới thiệu câu lệnh điều kiện dạng thiếu trớc câu lệnh đơn giản câu lệnh điều kiện dạng đủ Sau giới thiệu câu lệnh dạng thiếu, việc giới thiệu câu lệnh dạng s thun li hn

Tuy nhiên, cách tiếp cận có nhợc điểm sử dụng hay câu lệnh if then thay cho câu lệnh Yêu cầu HS chạy chơng trình thử với số liệu có câu c), (SGK)

(35)

- Với câu lệnh điều kiện dạng đủ if then else, lu ý không đặt dấu chấm phảy sau câu lệnh trớc từ khoá else Pascal dùng dấu chấm phảy để phân cách câu lệnh (không phải kết thúc câu lệnh) (Không hiểu!)

- Đoạn chơng trình:

If Long>Trang then writeln('Ban Long cao hon');

If Long<Trang then writeln('Ban Trang cao hon')

else writeln('Hai ban cao bang nhau');

Thoạt nhìn, theo cách suy luận nhiều HS kết hợp hai câu lệnh điều kiện đảm bảo đầy đủ trờng hợp, đặc biệt câu lệnh thứ xét đến trờng hợp Long>Trang nên câu lệnh thứ hai khơng cịn xét đến trờng hợp mà xét đến hai trờng hợp lại Long<Trang Long=Trang Cách suy luận nh khơng phải khơng có lí xét trờng hợp ngời xử lí tình Tuy nhiên, máy tính xử lí "máy móc"

Khi máy tính thực đến câu lệnh thứ hai

If Long<Trang then writeln('Ban Trang cao hon')

else writeln('Hai ban cao bang nhau'); máy tính "khơng nhớ" thực câu lệnh điều kiện thứ trớc

If Long>Trang then writeln('Ban Long cao hon');

Chính vậy, thực đến lệnh thứ hai máy tính lại xét tất trờng hợp Vì vậy, dẫn đến lỗi thực chơng trình trờng hợp Long cao Tang

Dới xin phân tích rõ đoạn chơng trình này, GV xem xét, tham khảo để giảng dạy cho HS GV không cần dành nhiều thời gian giải thích chi tiết, tỉ mỉ nh trình bày dới

Khi thực đến câu lệnh thứ hai, máy tính thử kiểm tra điều kiện Long<Trang có trờng hợp xảy nh sau:

- Nếu Long<Trang cho kết đúng, tức Trang cao Long máy hiển thi hình dịng chữ 'Ban Trang cao hon' Trong trờng hợp câu lệnh trớc

If Long>Trang then writeln('Ban Long cao hon');

đã không thực việc hiển thị hình dịng chữ "Ban Long cao hon" biểu thức điều kiện Long>Trang câu lệnh điều kiện thiếu cho kết sai Kết hình hiển thị dịng chữ 'Ban Trang cao hon'.

- Nếu Long<Trang cho kết sai, Pascal thực câu lệnh in hình dịng chữ 'Hai ban cao bang nhau' Tuy nhiên, có hai trờng hợp dẫn đến biểu thức Long<Trang cho kết sai:

- Long Trang cao nhau, biểu thức điều kiện Long>Trang cho kết sai câu lệnh điều kiện thứ không thực việc hiển thị hình dịng chữ Kết hình có dịng chữ 'Hai ban cao bang nhau'

- Long cao Trang, biểu thức điều kiện Long>Trang câu lệnh điều kiện thứ cho kết Vì vậy, câu lệnh điều kiện thứ thực hiển thị hình dịng chữ 'Ban Long cao hon' Nh vậy, hình hiển thị hai dịng thơng báo khác là 'Ban Long cao hon' va 'Hai ban cao bang nhau' Đây lỗi chơng trình cần đợc chỉnh sửa

(36)

Về cách dạy phần này, nên cho HS gõ chơng trình vào máy chạy thử với liệu kiểm tra Các số liệu cần phủ kín trờng hợp: Trang cao Long, hai bạn cao Long cao Trang Yêu cầu HS quan sát kết để phát vấn đề tìm hiểu chơng trình, phát lỗi

Thực ra, việc thử chơng trình với số liệu mẫu cơng đoạn phát triển phần mềm, cịn gọi bớc kiểm thử Sau lập trình xong, phần mềm cần đợc thử nghiệm với số liệu mẫu (hay gọi test) mà ngời ta dễ dàng biết đợc kết để kiểm chứng với kết mà chơng trình đa

Việc thử chơng trình với liệu test chứng minh đợc chơng trình sai mà khơng chứng minh đợc chơng trình Nghĩa thử với liệu test chơng trình cho kết sai khác với kết đợc biết trớc kết luận chơng trình sai, nhng thử với số liệu test mà chơng trình cho kết với kết đợc biết trớc khơng thể kết luận chơng trình hồn tồn đắn đ-ợc mà nói cha phát sai sót chơng trình mà thơi

Tuy nhiên, ngời ta số cách khác chứng minh tính đắn chơng trình mà không sử dụng đến liệu test

Có hai cách để chỉnh sửa chơng trình để đảm bảo đa thông báo Cách đơn giản sử dụng ba câu lệnh điều kiện dạng thiếu nh sau:

If Long>Trang then writeln('Ban Long cao hon');

If Long=Trang then writeln('Hai ban cao bang nhau');

If Long<Trang then writeln('Ban Trang cao hon');

Cách thứ hai sử dụng câu lệnh điều kiện lồng nh SGK, mục đích cách giới thiệu cho HS sử dụng câu lệnh điều kiện lồng nhau:

If Long>Trang then writeln('Ban Long cao hon') else

If Long<Trang then writeln('Ban Trang cao hon')

else writeln('Hai ban cao bang nhau');

Có thể sử dụng sơ đồ dới để giải thích hoạt động hai câu lệnh điều kiện lồng để HS hiểu đợc lí câu lệnh hiển thị hình thơng báo

Long>Trang?

writeln('BanLong

cao hon');

§óng

Sai

Long<Trang?

writeln('Ban Trang cao hon')

§óng

Sai

(37)

Với tập 3, HS cần biết điều kiện để ba số dơng a, b, c ba cạnh tam giác tổng hai cạnh phải lớn lớn cạnh lại, nghĩa phải đồng thời thoả mãn ba điều kiện a + b > c, b + c > a c + a > b GV hớng dẫn HS cách biểu diễn ba điều kiện Pascal:

(a+b>c) and (b+c>a) and (c+a>b)

Điểm khó học sinh biết chuyển biểu thức điều kiện toán học sang biểu diễn Pascal Cần giải thích để HS hiểu dùng phép quan hệ and để đảm bảo ba điều kiện a + b > c, b + c > a c + a > b đồng thời thoả mãn; Việc phải sử dụng dấu ngoặc tròn phép so sánh để đảm bảo thứ tự u tiên thực phép toán để đảm bảo tham số phép and (và or) giá trị sai (không số)

Cần cho HS đọc, thảo luận kĩ để hiểu chơng trình Bài tốn toán yêu cầu chuẩn kiến thức, kĩ Sau học này, HS phải hiểu phải tự viết chơng trình giải tốn t-ơng tự (ví dụ kiểm tra tính chất tam giác dựa số đo cạnh: cân, đều, vuông)

Để HS luyện tập thêm câu lệnh điều kiện, phép so sánh, u cầu HS viết ch ơng trình cho phép nhập điểm kiểm tra bạn đó, sau thực hiện:

- NÕu ®iĨm nhá 5, in dòng chữ "Ban can co gang hon";

- Nếu điểm lớn nhỏ 6.5, in dòng chữ "Ban dat diem trung binh"; - Nếu điểm lớn 6.5 nhỏ 8, in dòng chữ "Ban dat diem Kha"; - Nếu điểm lớn 8, in dòng chữ "Hoan ho ban dat diem Gioi"

Hoặc ví dụ khác yêu cầu HS viết chơng trình giải phơng trình bậc ax + b = 0, với a  0, a, b nhập từ bàn phím Lu ý, phơng trình bậc ẩn số đợc giới thiệu chơng trình mơn Tốn lớp (học kì II) Do vậy, HS cha đợc học phơng trình mơn Tốn, GV nên dành vài phút để HS làm quen với khái niệm

§óng

writeln('Ban Long cao hon') Long>Trang

writeln('Hai ban cao bang nhau')

writeln('Ban Trang cao hon'

§óng

Long<Trang

Sai

(38)

Bài Lặp với số lần biết trớc 1 Mục đích, u cầu

 BiÕt nhu cÇu cần có cấu trúc lặp ngôn ngữ lập trình

 Biết ngơn ngữ lập trình dùng cấu trúc lặp để dẫn máy tính thực lặp lặp lại cơng việc số lần

 Hiểu hoạt động câu lệnh lặp với số lần biết trớc for trong Pascal  Viết đợc lệnh for số tình đơn giản

 HiĨu lƯnh ghÐp Pascal 2 Nh÷ng điểm cần lu ý gợi ý dạy học

Giống với cấu trúc rẽ nhánh, cần xuất phát từ hoạt động đời sống thực tiễn có tính chất lặp lặp lại để HS hiểu khái niệm lặp Ví dụ, tiếng gà trống gáy, tiếng chim hót, tiếng chng đồng hồ báo thức gọi em dạy buổi sáng; Các ngày tuần em lặp lặp lại hoạt động buổi sáng đến trờng buổi chiều trở nhà; Hoặc lớp, trả kiểm tra cô giáo lặp lặp lại việc gọi tên HS ghi điểm HS vào sổ điểm, cô giáo ngừng lại vào điểm cho tất HS lớp

Giả sử giáo đề nghị em viết chơng trình Pascal để chào bạn lớp em (hoặc nhóm em), cụ thể chơng trình cho phép bạn nhập tên từ bàn phím in lời chào tơng ứng, ví dụ bạn nhập tên Mai, chơng trình in 'Chao ban Mai', bạn khác nhập tên Trung in 'Chao ban Trung' Nh em cần viết chơng trình Pascal cho phép lặp lặp lại việc nhập tên hiển thị hình lời chào Làm để chơng trình Pascal em thực việc lặp này?

Giả sử lớp em có 40 bạn, em hồn tồn viết 40 lần lệnh để nhập tên lệnh hiển thị dịng chào Các lệnh hồn tồn giống Tuy nhiên, chơng trình nh vừa dài, vừa nhàm chán, dễ sai sót

Trong Pascal cung cấp câu lệnh lặp nh sau:

for <biến đếm> := <giá trị đầu> to <giá trị cuối> do <câu lệnh>;

trong đó:

- biến đếm biến đơn có kiểu nguyên;

- giá trị đầu giá trị cuối biểu thức có kiểu với biến đếm giá trị cuối phải lớn hơn giá trị đầu;

- câu lệnh câu lệnh đơn giản hay câu lệnh ghép.

Hoạt động câu lệnh lặp nh sau: Ban đầu biến đếm đợc gán giá trị đầu, lần câu lệnh viết sau từ khoá đợc thực biến đếm đợc tăng lên đơn vị, câu lệnh đợc thực biến đếm lớn giá trị cuối.

Lu ý:

+ Để tránh phức tạp, gây khó hiểu với HS, mơ tả hoạt động lệnh for dựa mặc định biến đếm, giá trị đầu, giá trị cuối số nguyên Một cách tổng quát, biến đếm, giá trị đầu, giá trị cuối kiểu kí tự, kiểu đoạn Tuy nhiên, không đề cập đến vấn đề với mục đích để giản lợc nội dung, giúp HS dễ tiếp thu kiến thức mà đảm bảo kiến thức, kĩ cần thiết theo yêu cầu

+ Trong Pascal cấu trúc for có hai dạng tiến lïi: D¹ng tiÕn:

for <biến đếm> := <giá trị đầu> to <giá trị cuối> do <câu lệnh>; Dạng lùi:

for <biến đếm> := <giá trị cuối> downto <giá trị đầu> do <câu lệnh>;

Trong SGK giới thiệu dạng tiến Về dạng tiến gần gũi với cách suy nghĩ tự nhiên HS THCS cần dạng tiến đủ, không yêu cầu phải giới thiệu thêm dạng lùi

Khi thực câu lệnh lặp for giá trị đầu giá trị cuối phải đợc xác định trớc Chính mà ta biết trớc đợc số lần thực câu lệnh sau từ khóa (số lần lặp giá trị cuối - giá trị đầu + 1) Chính vậy, câu lệnh for cịn đợc gọi câu lệnh lặp với số lần biết trớc

GV nên sử dụng chơng trình Lap SGK, phân tích ví dụ HS hiểu rõ hoạt động câu lệnh lặp, hiểu biến đếm, giá trị đầu, giá trị cuối câu lệnh

(39)

var i: Integer;

begin

for i := 1 to 10 do

writeln('Day la lan lap thu ',i);

end

Cã thĨ híng dẫn học sinh lập bảng trình thực chơng trình nh dới đây: Lần lặp thứ i Kết viết hình

1 Day la lan lap thu 1

2 Day la lan lap thu 2

3 Day la lan lap thu 3

4 Day la lan lap thu 4

5 Day la lan lap thu 5

6 Day la lan lap thu 6

7 Day la lan lap thu 7

8 Day la lan lap thu 8

9 Day la lan lap thu 9

10 10 Day la lan lap thu 10

Sau với HS phân tích chơng trình Lap, GV HS sử dụng câu lệnh for để viết đoạn câu lệnh nhập tên hiển thị hình dịng chào hỏi Giả sử lớp có 40 bạn đoạn câu lệnh nh sau:

For i:= 1 to 40 Begin

write('Nhap ten cua ban'); Readln(Ten); write('Chao ban ', Ten);

end;

Lu ý: Cần dành thời để giới thiệu câu lệnh ghép Khác với chơng trình Lap, sau từ khố có câu lệnh cần thực hiện, chơng trình Chao_hoi, sau từ khố có hai câu lệnh cần thực Muốn vậy, hai câu lệnh cần phải đợc "gói" từ khố begin end Một cách đơn giản hiểu cấu trúc begin end câu lệnh Pascal, câu lệnh chứa nhiều câu lệnh khác Pascal Lu ý HS cấu trúc câu lệnh ghép sau end dấu chấm phẩy (;), dấu chấm (.)

Cần lấy thêm số ví dụ khác để HS biết tập làm quen với tình sử dụng câu lệnh for lệnh ghép Có thể u cầu HS đọc hiểu ví dụ có SGK (nh chơng trình Tinh_tong, Tinh_giai_thua) đa toán đơn giản cần sử dụng đến câu lệnh for hớng dẫn HS viết chơng trình

GV cần khái quát cho HS cấu trúc lặp với số lần biết trớc có ngơn ngữ lập trình, ngơn ngữ lập trình có câu lệnh riêng để mô tả cấu trúc Trên em đợc tìm hiểu câu lệnh lặp với số lần biết trớc Pascal (for do)

Cuối này, giao nhiệm vụ cho HS hồn thiện chơng trình thực chào hỏi bạn lớp (hoặc nhóm) để chuẩn bị cho buổi thực hành tới

Căn vào tình hình tiếp thu HS, GV cần lựa chọn giao số tập cho HS luyện tập, không thiết phải làm hết tất tập cuối

3 Hớng dẫn trả lời câu hỏi tập

Bi 1. Có thể nêu nhiều vài ví dụ hoạt động lặp Dới số ví dụ: a) Hàng ngày em đặt đồng hồ báo thức lúc để dậy sớm tập thể dục

(40)

c) Mỗi lần đợc khởi động, máy tính em thực hoạt động tự kiểm tra thành phần máy tính, sau khởi động hệ điều hành theo trình tự đợc quy định trớc

Bài 2. a) Có thể thấy, để vẽ đợc hình a, thao tác cần thực vẽ nửa đờng trịn có bán kính đơn vị từ điểm A tới điểm B theo bốn hớng: lên trên, xuống dới, sang trái, sang phải (chẳng hạn, hình b nửa đờng tròn đợc vẽ từ điểm A tới điểm B theo hớng lên trên)

a) b)

H×nh 1

Có thể mơ tả bớc thuật tốn để vẽ hình a) nh sau: Bớc Xác định điểm bắt đầu vẽ X

Bớc Vẽ nửa đờng tròn theo hớng lên Bớc Vẽ nửa đờng tròn theo hớng sang trái Bớc Vẽ nửa đờng tròn theo hớng xuống dới. Bớc Vẽ nửa đờng tròn theo hớng sang phải Bớc Tô màu kết thúc thuật toán

Lu ý giáo viên Có thể trình bày thuật tốn vẽ hình dới dạng cách hình thức nh sau. Ta gọi thao tác vẽ nửa đờng tròn theo hớng x vẽ nửa đờng trịn có bán kính đơn vị điểm xác định, đờng kính nối điểm đầu điểm cuối nửa đờng trịn vng góc với hớng x nửa đờng tròn "cong hớng x" Ta xét x bốn hớng: lên trên, xuống dới, sang trái, sang phải

Với hớng, ta định nghĩa phép toán sau: lên + = sang trái, sang trái +1 = xuống dới, xuống d-ới +1 = sang phải, sang phải +1 = lên Khi mơ tả bớc thuật tốn để vẽ hình 1a nh sau:

Có thể mơ tả bớc thuật tốn để vẽ hình a) nh sau: Bớc Xác định điểm bắt đầu vẽ X

Bớc Đặt i = đặt hớng = lên trên. Bớc Vẽ nửa đờng tròn theo hớng đặt Bớc i = i +

Bớc Nếu i > 4, chuyển bớc 6; ngợc lại, đặt hớng = hớng + quay lại bớc 3. Bớc Tô màu kết thúc thuật toán

b) Thuật toán tơng tự nh Thao tác cần lặp lại vẽ hình vng Tại bớc, giữ ngun tâm hình vng thay đổi hớng vẽ góc 30o.

Lu ý giáo viên Bài không yêu cầu học sinh mơ tả cách xác bớc thuật toán Điều quan trọng học sinh nhận biết đợc: muốn vẽ đợc hình cho cần lặp thao tác vẽ nửa đ-ờng tròn bốn lần lặp thao tác vẽ hình vng ba lần

Bài 3. Câu lệnh lặp có tác dụng dẫn cho máy tính thực lặp lại câu lệnh hay nhóm câu lệnh với số lần định Câu lệnh lặp làm đơn giản giảm nhẹ công sức ngời viết chơng trình Bài 4. Chúng ta nói thực hoạt động lặp, chơng trình kiểm tra điều kiện Với lệnh lặp

for <biến đếm> := <giá trị đầu> to <giá trị cuối> do <câu lệnh>;

của Pascal, điều kiện cần phải kiểm tra giá trị biến đếm lớn giá trị cuối Nếu điều kiện không đợc thoả mãn, câu lệnh đợc tiếp tục thực hiện; ngợc lại, chuyển sang câu lệnh chơng trình

Bài 5. Tuy có vịng lặp 1000 lần, nhng chơng trình Pascal nêu câu hỏi khơng thực hoạt động Tuy nhiên cõu lnh hp l

Bài 6. Thuật toán tính tæng A = 1 3+

1 4+

1

(41)

Bíc G¸n A  0, i 

Bíc A 

( 2)

i i . Bíc i  i +

Bíc NÕu i  n, quay l¹i bíc

Bớc Ghi kết A kết thúc thuật toán. Bài 7. Trừ d), tất câu lệnh không hợp lệ:

a) Giá trị đầu biến đếm phải nhỏ giá trị cuối biến đếm; b) Các giá trị đầu giá trị cuối biến đếm phải số nguyên; c) Thiếu dấu hai chấm gán giá trị đầu;

d) Thõa dÊu chÊm phÈy thø nhất, nh ta muốn lặp lại câu lệnh writeln('A') mời lần, ngợc lại câu lệnh hợp lệ;

e) Biến x đợc khai báo nh biến có liệu kiểu số thực khơng thể dùng để xác định giá trị đầu giá trị cuối câu lệnh lặp

Bµi 8. ThuËt toán:

Bớc Nhập số n x

Bíc A  1, i  (A lµ biÕn lu l thõa bËc n cđa x) Bíc ii + 1, A  A.x

Bíc NÕu i < n, quay l¹i bíc

Bớc Thông báo kết A l thõa bËc n cđa x vµ kÕt thóc tht toán. Chơng trình Pascal nh sau:

var n,i,x: integer; a: longint;

begin

write('Nhap x='); readln(x); write('Nhap n='); readln(n); A:=1;

for i:=1 to n do A:=A*X;

writeln(x,' mu ',n,' bang ',A);

end Bµi 9. Tht to¸n:

Bíc NhËp sè n

Bớc A 32768 (gán số nhỏ số kiểu nguyên choA), i 1 Bớc Nhập số thứ i gán giá trị vào biến A.

Bíc NÕu Max < A, Max  A Bíc i i + 1.

Bíc NÕu i ≤ n, quay l¹i bíc

Bớc Thông báo kết Max số lớn kết thúc thuật toán. Chơng trình Pascal cã thÓ nh sau:

uses crt;

var n,i,Max,A: integer;

begin

clrscr;

write('Nhap N='); readln(n); Max:=-32768;

(42)

begin write('Nhap so thu ',i,':'); readln(A); if Max<A then Max:=A end;

writeln('So lon nhat: ',Max);

end

Lu ý Trong chơng trình sử dụng hai biến A Max để giải toán Một cách tự nhiên, để nhập n số cần tới n biến Tuy nhiên, việc xử lí giá trị dãy số thực cách cần so sánh giá trị đợc nhập vào, cần biến để lu lần lợt giá trị nhập vào đủ Một cách giải khác sử dụng biến mảng (xem bi 6, bi 9)

Bài 10.Lời giải tơng tự nh lời giải (xem thuật toán lời giải tập 5a, 5). Chơng trình Pascal nh sau:

uses crt;

var n,i,SoDuong,A: integer;

begin

clrscr;

write('Nhap N='); readln(n);

if n>0 then

begin

SoDuong:=0;

for i:=1 to n do

begin write('Nhap so thu ',i,':'); readln(A); if A>0 then SoDuong:=SoDuong+1 end;

writeln('So cac so duong = ',SoDuong) end

else writeln('n phai > 0!');

end

Bài thực hành Sử dụng lệnh lặp For do 1 Mục đích, u cầu

 Viết đợc chơng trình có sử dụng vòng lặp for do;  Sử dụng đợc câu lệnh ghép;

 Rèn luyện kĩ đọc hiểu chơng trình có sử dụng vịng lặp for 2 Những điểm cần lu ý gợi ý dạy học

Trớc tiến hành thực hành 5, để tạo hứng thú cho HS, GV dành thời gian để HS gõ chạy hai chơng trình em viết học lí thuyết Nh nói, việc thực hành đợc quan sát trực quan kết chạy chơng trình học tiết lí thuyết cần thiết, hữu ích để HS ơn lại lí thuyết, gắn kết lí thuyết-thực hành tạo niềm tin học tập Chơng trình thực chào hỏi bạn lớp (hoặc nhóm) nh sau:

Program Chao_hoi;

uses crt;

var Ten: string;

Begin

For i:= to do Begin

(43)

write('Chao ban ', Ten);

end; readln;

End

Lu ý: để tránh thời gian thử chơng trình, yêu cầu HS cho giá trị cuối nhỏ Nếu HS lỡ để giá trị cuối lớn, chơng trình lặp lại nhiều lần gây thời gian, GV nhấn tổ hợp phím Ctrl+Break để ngắt chơng trình

Yêu cầu HS thay đổi giá trị cuối nhận xét số lần nhập tên hiển thị lời chào hỏi HS cần giải thích đợc thay đổi để hiểu hoạt động câu lệnh for Số lần lặp Giá trị cuối - Giá trị đầu + 1.

Sau ví dụ này, HS hiểu rõ, giải thích đợc hoạt động câu lệnh for do, hiểu sử dụng đợc câu lệnh ghép

Víi bµi thực hành này, HS cần tập trung tìm hiĨu c©u lƯnh:

for i:=1 to 10 writeln(N,' x ',i:2,' = ',N*i:3);

Đặc biệt HS cần phải nhận thấy đợc thay đổi biến đếm i tham số câu lệnh write để viết bảng cửu chơng Các tham số :2, :3 có ý nghĩa việc quy định quy cách trình bày bảng cửu chơng hình, lu ý học sinh khơng cần quan tâm đến quy cách trình bày, cần quan tâm đến thay đổi biến đếm i, thông tin đợc lệnh writeln() viết hình

Có thể cho HS thảo luận theo nhóm để hồn thành bảng tiến trình thực câu lệnh nh sau:

Gi¶ sư víi N=3

Bíc i i  10 ? writeln(N,'.',i,' = ',N*i)

1 §óng 3.1 =

2 §óng 3.2 =

3 §óng 3.3 =

4 §óng 3.4 = 12

5 §óng 3.5 = 15

6 §óng 3.6 = 18

7 §óng 3.7 = 21

8 §óng 3.8 = 24

9 §óng 3.9 = 27

10 10 §óng 3.10 = 30

11 11 Sai Kh«ng thùc hiƯn lƯnh writeln() Kết thúc vòng lặp

Bi 2, cung cp cho HS câu lệnh thủ tục đa trỏ tới ví trị mong muốn hình (màn hình soạn thảo văn bản) GotoXY() Giới thiệu với thủ tục GotoXY hàm lấy vị trí cột WhereX, vị trí dịng WhereY thời trỏ Việc giới thiệu thủ tục nhằm cung cấp cho HS một cơng cụ để trình bày hình Hơn nữa, việc giới thiệu hàm, thủ tục cịn nhằm mục đích hớng dẫn HS tìm hiểu th viện chơng trình, sử dụng, khai thác hàm, thủ tục có sẵn Pascal Tuy nhiên, khơng phải yêu cầu bắt buộc Chuẩn kiến thức, kĩ GV cho thực hành lớp giao cho học sinh tự nghiên cứu Không cần sâu vào việc sử dụng thủ tục để trình bày hình

Bài 3, giới thiệu việc sử dụng hai vòng for lồng GV sử dụng lấy ví dụ khác để giới thiệu vịng for lồng Có ví dụ vui, hay đợc sử dụng để minh hoạ cho việc sử dụng vịng lặp for lồng tốn cổ:

Võa gµ võa chã Bã lại cho tròn Ba mơi sáu con Một trăm chân chẵn.

(44)

Chơng trình giải toán nµy cã thĨ nh sau:

Var ga, cho : byte;

Begin

for ga:=1 to 35 do

for cho:=1 to 35 do

if (ga*2 + cho*4 = 100) and (ga + cho = 36) then

writeln('So ga la: ', ga, '; So cho la: ', cho);

Readln;

End

GV giới thiệu chơng trình trớc yêu cầu HS tìm hiểu, giải thích chơng trình cho phép giải toán đặt

Thuật toán đơn giản, ý tởng xét tất trờng hợp kiểm tra xem trờng hợp thảo mãn: ga + cho= 36 ga*2 + cho*4 = 100 đáp số tốn

Qua tốn nêu cho HS thấy u điểm bật máy tính việc tính tốn nhờ tốc độ xử lý cao Với cách giải nh máy tính tìm kết nháy mắt, nhng để ngời thực lâu nhiều

Nhng nhợc điểm máy tính lại biết làm việc theo điều khiển ngời mà t sáng tạo Trong q trình tính tốn tìm kết quả, ngời cịn có khả phán đốn, dự đốn xu hớng để bỏ qua số cơng đoạn tính tốn nhằm đến kết nhanh Do đó, ngời cần lựa chọn, xây dựng thuật tốn cho nâng cao hiệu làm việc máy tính

GV yêu cầu học sinh cải tiến để có chơng trình hiệu

var ga, cho:byte; Begin

For cho:= to 24 Begin

ga:= 36 - cho;

if (2*ga + 4*cho = 100) then

writeln('Ga: ', ga, ', Cho: ',cho); end;

readln; End

GV phân tích, hớng dẫn để HS nhận thấy số lợng phép tính chơng trình sau với ch-ơng trình ban đầu Điều có nghĩa thuật tốn chch-ơng trình sau hiệu Việc xây dựng, lựa chọn thuật toán hiệu có vai trị quan trọng lập trình, với tốn có khối t-ợng tính tốn lớn Ln cần có ý thức xây dựng, lựa chọn thuật toán hiệu giải toán máy tính

Việc phân tích số lợng phép tốn gây q tải HS Do vậy, GV vào mức độ tiếp thu HS để tiến hành giới thiệu khơng giới thiệu nội dung số lợng phép toán, so sánh tính hiệu thuật tốn

Bài Lặp với số lần cha biết trớc 1 Mục đích, u cầu

 BiÕt nhu cÇu cÇn cã cấu trúc lặp với số lần cha biết trớc ngôn ngữ lập trình;

Bit ngụn ng lp trình dùng cấu trúc lặp với số lần cha biết trớc để dẫn máy tính thực lặp lặp lại công việc đến điều kiện đợc thoả mãn;

 Hiểu hoạt động câu lệnh lặp với số lần cha biết trớc while do Pascal 2 Những điểm cần lu ý gợi ý dạy học

(45)

Trong ví dụ 2, sau giới thiệu thuật toán, SGK khái quát, đa sơ đồ hoạt động cấu trúc lặp với số lần cha biết trớc Sau đó, SGK giới thiệu câu lệnh while Pascal nh ví dụ minh hoạ HS đợc làm quen với ví dụ sử dụng lệnh while qua ví dụ

Dới gợi ý cách tiến hành khác để GV tham khảo Cách tiếp cận đợc thực theo ph-ơng án từ câu lệnh lặp cụ thể while Pascal, sau khái quát thành kiến thức chung ngơn ngữ lập trình

Sau giới thiệu ví dụ SGK, giới thiệu ví dụ viết chơng trình chào hỏi trớc, GV đặt tình cha biết trớc số bạn nhóm phải viết chơng trình nh nào? Điểm thuận lợi sử dụng ví dụ HS hiểu yêu cầu toán từ tiết học trớc Do vậy, khơng phải nhiều thời gian vào tìm hiểu ý nghĩa tốn Điều tạo điều kiện thuận lợi cho việc làm bật vấn đề, tình cần giải Hơn nữa, sử dụng toán gắn liền với thực tế cách tốt để HS nhận thức rõ khái niệm tốn Tin học khơng tốn lĩnh vực tốn học

Nói chung HS cha đa đợc phơng án giải cho vấn đề GV nên chủ động đa chơng trình Pascal nh sau:

Program Chao_hoi;

uses crt;

var Tieptuc: char; Ten: string;

Begin

Tieptuc:='c';

while tieptuc = 'c' do

Begin

write('Nhap ten cua ban'); Readln(Ten); writeln('Chao ban ', Ten);

write('Tiep tuc ? c/k'); readln(Tieptuc);

end; readln;

End

Dựa chơng trình này, GV giới thiệu cú pháp, sơ đồ hoạt động câu lệnh while Trong Pascal, cú pháp câu lệnh lặp với số lần cha xác định trớc có dạng:

while <điều kiện> do <cõu lnh>; ú:

- điều kiện thờng mét phÐp so s¸nh;

- câu lệnh câu lệnh đơn giản hay câu lệnh ghép. Câu lệnh lặp đợc thực nh sau:

1 KiĨm tra ®iỊu kiƯn

2 Nếu điều kiện SAI, câu lệnh bị bỏ qua chuyển sang câu lệnh chơng trình Nếu điều kiện đúNG, thực câu lệnh quay lại bớc 1.

Sơ đồ hoạt động câu lệnh câu lệnh lặp với số lần cha biết trớc (Xuân sửa lu đồ nhé)

(46)

Đến đây, GV khái quát cho HS biết ngôn ngữ lập trình cung cấp câu lệnh lặp với số lần cha biết trớc, hoạt động câu lệnh lặp với số lần cha biết trớc ngôn ngữ lập trình giống Điểm khác ngơn ngữ lập trình cú pháp câu lệnh để thể cấu trúc mà

Phần cuối GV sử dụng ví dụ SGK lấy ví dụ khác để HS hiểu đợc hoạt động, viết cú pháp biết số trờng hợp sử dụng hiệu câu lệnh while

Lu ý:

+ Đối với vòng lặp while do, câu lệnh vịng lặp cần có câu lệnh làm thay đổi biểu thức điều kiện, có nghĩa phải có câu lệnh để đến lúc điều kiện khơng đ ợc thoả mãn, vịng lặp kết thúc Do câu lệnh sau từ khóa câu lệnh lặp while thờng phải câu lệnh ghép

Trong ví dụ đây, điều kiện khơng đợc thoả mãn vịng lặp kết thúc điều kiện tieptuc = 'c' cho kết sai, tức tieptuc <> 'c' Câu lệnh readln(Tieptuc) để gán giá trị cho biến Tieptuc từ bàn phím, giá trị biểu thức điều kiện thay đổi phụ thuộc vào câu trả lời ng ời sử dụng Khi ngời sử dụng nhấn "c" vịng lặp tiếp tục, ngợc lại, ngời sử dụng nhấn chữ (hoặc chữ số) khác vịng lặp kết thúc

+ Trong chơng trình trên, có câu lệnh Tieptuc:='c' sau từ khoá Begin GV đặt câu hỏi để HS tìm hiểu phải có câu lệnh Khi giải thích đợc ngun nhân phải có câu lệnh này, HS hiểu rõ thêm biến, điều kiện thực vịng lặp while Việc cần có câu lệnh Tieptuc:='c' đợc giải thích nh sau: gặp lệnh khai báo biến Tieptuc: char Pascal dành ô nhớ đặt tên ô nhớ Tieptuc Ban đầu ô nhớ cha đợc gán giá trị nên chứa giá trị ngẫu nhiên (có số ngơn ngữ lập trình khai báo biến gán ln cho biến giá trị mặc định ngơn ngữ lập trình quy định) Nếu giá trị ngẫu nhiên mà khác 'c' điều kiện tieptuc = 'c' khơng đợc thoả mãn từ đầu vòng lặp while không đợc thực lần Nh vậy, câu lệnh lặp while xảy tình vịng lặp khơng đợc thực lần

Trong trờng hợp điều kiện đợc thoả mãn, nghĩa ngời sử dụng luôn gõ phím c, ch-ơng trình tiếp tục lặp lặp lại GV sử dụng chch-ơng trình dới (có trong SGK) để giải thích việc lặp vơ hạn xảy lỗi ngời lập trình:

var a:integer;

begin

a:=5;

while a<6 do writeln('A');

end

+ Các câu lệnh vịng lặp không đợc thực lần đặc điểm quan trọng câu lệnh while Trong Pascal, để mô tả cấu trúc lặp với số lần cha biết trớc, cịn có câu lệnh khác Repeat until Với câu lệnh Repeat until có đặc điểm câu lệnh vịng lặp ln đợc thực lần SGK giới thiệu cho câu lệnh while Ngời ta chứng minh đợc cần câu lệnh while đủ, có nghĩa tình lặp sử dụng câu lệnh Repeat until, sử dụng while để thay GV không giới thiệu câu lệnh Repeat until, không so sánh câu lệnh Repeat until với while để tránh tải với HS.

+ Trong ví dụ có sử dụng kiểu liệu char mà học sinh cha biết Do mục đích ví dụ để giới thiệu câu lệnh while do, nên GV chỉnh sửa chơng trình để sử dụng với kiểu liệu khác mà em biết (ví dụ nh integer) sử dụng chơng trình nhng khơng giải thích kiểu char Tuy nhiên, học sinh tiếp thu tốt, GV nên giới thiệu thêm cho HS kiểu liệu char tr ớc kết thúc

3 Hớng dẫn trả lời câu hỏi tập

Bài 1. Có thể nêu nhiều vài ví dụ hoạt động lặp với số lần lặp cha biết trớc Dới số ví dụ:

a) Tìm từ định bị gõ sai tả văn sửa lại cho Số từ cần phải sửa ch a đợc biết trớc

b) Khi chuẩn bị tô phở để phục vụ cho khách, cô bán hàng thờng thực công việc sau đây: Cho lợng bánh phở vào nồi nớc phở để làm nóng bánh phở, cho bánh phở làm nóng vào bát, làm chín thịt cho vào bát bánh phở đợc làm nóng, cho thêm gia vị, thêm nớc phở đợc đun sơi vào bát phở, Các thao tác đợc thực lặp lại có khách ăn phở Trong suốt ca bán hàng số lần thực thao tác lặp khơng thể biết trớc

(47)

Bài 2. Sự khác biệt câu lệnh lặp với số lần lặp cho trớc câu lệnh lặp với số lần lặp cha biết trớc điểm sau đây:

a) Nh tờn gi nó, câu lệnh lặp với số lần lặp cho trớc thị cho máy tính thực lệnh nhóm lệnh với số lần đợc xác định từ trớc, với câu lệnh lặp với số lần lặp cha biết trớc số lần lặp cha đợc xác định trớc Điều kiện đợc thay đổi lần lặp dựa vào điều kiện chơng trình định thực tiếp câu lệnh lặp hay không

b) Trong câu lệnh lặp với số lần cho trớc, điều kiện giá trị biến đếm có giá trị nguyên đạt đợc giá trị cuối hay cha, câu lệnh lặp với số lần lặp cha biết trớc, điều kiện tổng quát nhiều, kiểm tra giá trị số thực, điều kiện tổng quát khác, ví dụ nh số có chia hết cho hay khơng,

c) Trong câu lệnh lặp với số lần cho trớc, câu lệnh đợc thực lần, sau kiểm tra điều kiện Trong câu lệnh lặp với số lần cha xác định trớc, trớc hết điều kiện đợc kiểm tra Nếu điều kiện đợc thoả mãn, câu lệnh đợc thực Do có trờng hợp câu lệnh hồn tồn khơng đợc thực

Bài 3. Mô tả thuật toán:

Bc t i = R (i bán kính đờng trịn vẽ)

Bớc Nếu i > 1.2, vẽ đờng trịn bán kính i; ngợc lại, chuyển đến bớc 4. Bớc i  i  1/2 quay lại bớc

Bíc KÕt thóc tht to¸n.

Bài 4. a) Thuật tốn 1: 10 vịng lặp đợc thực Khi kết thúc thuật toán S = 5.0 Đoạn chơng trình Pascal tơng ứng:

S:=10; x:=0.5;

while S>5.2 S:=S-x; writeln(S);

b) Thuật tốn 2: Khơng vịng lặp đợc thực từ đầu điều kiện đợc thỏa mãn nên chuyển tới bớc kết thúc thuật toán; bớc bị bỏ qua S = 10 kết thúc thuật tốn Đoạn ch-ơng trình Pascal tch-ơng ứng:

S:=10; n:=0; while S<10 do

begin n:=n+3; S:=S-n end; writeln(S);

Nhận xét: Trong thuật toán chơng trình trên, điều kiện đợc kiểm tra trớc bớc lặp đợc thực Do điều kiện không đợc thỏa mãn từ đầu, bớc lặp bị bỏ qua Điều đặc biệt câu lệnh lặp while do

Bài 5. a) Chơng trình thực vịng lặp b) Vịng lặp chơng trình đợc thực vơ tận sau câu lệnh n:=n+1; câu lệnh lặp kết thúc nên điều kiện S=0 luôn đợc thỏa mãn

Nhận xét: Trong câu lệnh thực hiện, điều kiện cần phải đợc thay đổi để sớm hay muộn chuyển sang trạng thái khơng thỏa mãn Khi vịng lặp đợc kết thúc sau hữu hạn bớc Để làm đợc điều này, câu lệnh câu lệnh lặp while thờng câu lệnh ghép

Bài 6. a) Thừa dấu hai chấm điều kiện; b) Thiếu dấu hai chấm câu lệnh gán; c) Thiếu từ khóa begin end trớc sau lệnh n:=n+1; S:=S+n, vịng lặp trở thành vơ tận Bài 7. Viết thuật tốn chơng trình Pascal có câu lệnh lặp với số lần khơng xác định để tính luỹ thừa bậc n

của x (tức xn), với n số tự nhiên x số thực đợc nhập vào từ bàn phím Hãy so sánh với thuật tốn tập 8,

ThuËt to¸n:

Bớc Đọc giá trị x n Bíc A  1, k 

Bíc NÕu k > n, chun xng bíc Bíc A = A.x, k  k + quay lại bớc

(48)

var n,k: integer; A, LT: real; begin

write(‘Nhap so A= ‘); readln(A); write(‘Nhap so n= ‘); readln(n); LT:=1; k:=1;

while k<=n begin LT:=LT*A, k:=k+1 end end.

Bài 8. Tính tích N số tự nhiên với số lần lặp không xác định (với N số tự nhiên đợc nhập vào từ bàn phớm)

Bớc Đọc giá trị N Bớc T  1, k 

Bíc Nếu k N, T = T.k; ngợc lại, chun xng bíc 5. Bíc k  k + quay lại bớc

Bớc Kết thúc thuật toán. Bài 9. Thuật toán:

Bớc Đọc giá trị n Bớc S 0, i 

Bíc NÕu i > n  1, chun xng bíc

Bíc NÕu n chia hÕt cho i, S  S + i, i i + quay lại bớc 3. Bớc Ghi giá trị S kết thúc thuật toán.

Chơng trình nh sau:

var n,i,S: integer;

begin

write('Cho so tu nhien n= '); readln(n); i:=2; S:=0;

while i<=n-1 do

begin

if (n mod i)=0 then S:=S+i; i:=i+1;

end;

write('Tong cac uoc so thuc su cua ',n,' la: ',S); readln;

end

Bài 10.Chơng trình nh sau:

Uses CRT;

Var A, sum: real; i: integer;

Begin

Write('cho so A: '); readln(A); i:=1; sum:= 0;

While (sum<=A) do Begin

(49)

i:= i+1;

end;

Write('Gia tri N bang ', i:6); Readln;

End

Bài thực hành Sử dụng lệnh lặp while do 1 Mục đích, yêu cầu

Hiểu câu lệnh lặp while chơng trình TP có sẵn

Biết lựa chọn câu lệnh lặp while do for phù hợp với tình cụ thể Rèn luyện kĩ khai b¸o, sư dơng biÕn

 Rèn luyện khả đọc chơng trình

 BiÕt vai trß cđa viƯc kết hợp cấu trúc điều khiển 2 Những điểm cần lu ý gợi ý dạy học

Trc hết cần lu ý Chuẩn kiến thức, kĩ khơng u cầu HS phải viết đợc chơng trình có sử dụng câu lệnh lặp với số lần cha biết trớc Do vậy, thực hành không yêu cầu HS phải viết chơng trình có câu lệnh while để giải tốn GV cho HS đọc, hiểu chơng trình đặc biệt cần hiểu đ-ợc hoạt động lệnh while chơng trình (Vậy cơng trình bày lí thuyết để làm gì? Chỉ gõ đoạn ngắn chơng trình mà vợt chuẩn ? Khi gõ chơng trình, hs hiểu thêm ý nghĩa câu lệnh không gõ cách máy móc!)

Trớc cho HS thực hành SGK, cho HS gõ chơng trình Chao_hoi mà em đợc học lí thuyết Việc thử nghiệm chơng trình viết học lí thuyết giúp HS dễ hiểu hơn, đặc biệt tính thuyết phục cao thể đợc việc gắn kết lí thuyết với thực hành

Với 1, trớc hết cần xác định Input Ouput toán: Input: Dãy số thực x1, x2 xn

Output: Giá trị trung bình (x1 + x2+ +xn)/n

ThuËt to¸n

Bớc - Nhập N số lợng số thực đợc nhập từ bàn phím:

- Gán biến đếm Dem 0; - Gán tổng Sum 

Bíc Trong Dem < N th×

2.1 Nhập giá trị số thực x từ bàn phím;

2.2 Cộng thêm x vào tổng Sum: Sum  Sum + x; 2.3 Tăng biến dem thêm đơn vị: Dem  Dem + 1; Bớc Tính trung bình dãy số vừa nhập TB  Sum/N.

Bíc Đa TB hình, kết thúc.

Cú nhiều cách để mơ tả thuật tốn này, nhiên cách mô tả đợc sử dụng với mục đích HS thuận lợi đọc, hiểu, đối chiếu thuật tốn với chơng trình Tinh_Trung_binh câu b

Căn vào mơ tả thuật tốn, HS tìm hiểu để xác định biến kiểu tơng ứng cần khai báo chơng trình

Câu c) yêu cầu HS thử dịch, chỉnh sửa, chạy kiểm thử chơng trình Những kĩ HS đợc rèn luyện thực hành trớc HS hồn tồn thực đợc GV đa hớng dẫn HS tạo liệu test

GV cần yêu cầu HS đọc, thảo luận đối chiếu thuật toán câu lệnh mơ tả thuật tốn ch-ơng trình Cần làm cho HS hiểu rõ hoạt động vòng lặp while ch ch-ơng trình, cho học sinh làm việc nhóm để mơ chơng trình (Việc nên đợc làm lớp học, tiết tập trớc thực hành máy)

(50)

2 Bắt đầu vòng lặp while

DEM < N DEM X (nhËp tõ bµn phÝm) TB

§óng 10 10

§óng 15 25

§óng 20 45

Sai

3 KÕt thóc vòng lặp while do: TB = 45/3 = 15

Câu d) yêu cầu HS chuyển từ sử dụng câu lệnh while sang sử dụng câu lệnh for Qua việc làm HS đợc rèn luyện thêm sử dụng lệnh for

Tuy nhiên, tình sử dụng while for khác While thích hợp với trờng hợp lặp với số lần cha biết trớc, for thích hợp với trờng hợp lặp với số lần biết trớc Ví dụ, khơng thể sử dụng lệnh for để thay lệnh while chơng trình Chao_hoi đợc (cha biết trớc số bạn nhóm)

Nh vậy, câu d, bên cạnh mục đích cho HS có ý thức việc lựa chọn cấu trúc lặp phù hợp với tình huống, cịn có mục đích tiếp tục rèn luyện viết chơng trình với câu lệnh for đảm bảo đạt yêu cầu đề chuẩn kiến thức, kĩ

Với 2, cách tiến hành giống nh với Trớc hết cần xác định Input Output toán: Input: Số t nhiờn N

Output: Trả lời N số nguyên tố N không số nguyên tố Thuật to¸n

HS lớp biết tính chất số nguyên tố, số nguyên tố số tự nhiên chia hết cho

Để kiểm tra N có phải số ngun tố hay khơng ta kiểm tra xem N có chia hết số từ đến N  hay không Nếu N không chia hết cho số khoảng từ đến N  N số nguyên tố, ngợc lại N chia hết cho số khoảng từ đến N  N khơng phải số ngun tố

Sử dụng phép chia lấy phần d mod để kiểm tra tính chia hết Bớc 1: Nhập số tự nhiên N từ bàn phím

Bớc 2: Nếu N thông báo N số tự nhiên, chuyển đến bớc 4. Bớc 3: Nếu N > 0:

3.1 i2;

3.2 Trong N mod i <> 0, ii+1;

3.3 Nếu i = N thông báo N số nguyên tố, chuyển đến bớc 4, khơng thơng báo N khơng phải số ngun tố;

Bíc 4: KÕt thóc.

Sau GV cho HS đọc chơng trình SGK, đối chiếu việc sử dụng câu lệnh để mô tả thuật tốn

Lu ý, chơng trình sử dụng câu lệnh điều kiện, câu lệnh lặp while Mục đích để HS thấy đợc cần thiết phải kết hợp cấu trúc điều khiển để giải toán Hơn nữa, ví dụ cịn sử dụng phép chia lấy phần d mod Điều thể cần thiết tính hiệu lựa chọn cơng cụ phù hp lp trỡnh

Đối với đa số HS lớp 8, thuật toán kiểm tra tính nguyên tố số tự nhiên không khó Tuy nhiên, thấy HS gặp khó khăn tìm hiểu thuật toán này, GV thay ví dụ khác Ví dụ mà GV đa cần thể kết hợp câu lệnh điều kiện câu lệnh lặp với số lần cha biết trớc, không thiết phải có tình hng sư dơng phÐp chia lÊy phÇn d mod

Sự kết hợp cấu trúc điều khiển (tuần tự, rẽ nhánh lặp) ngơn ngữ lập trình tạo nên linh hoạt góp phần tạo nên sức mạnh ngơn ngữ lập trình Chính kết hợp cấu trúc điều khiển cho phép ngôn ngữ lập trình mơ tả đợc thuật tốn phức tạp, giúp giải đợc nhiều toán xuất phát từ nhu cầu thực tiễn Giáo viên khơng cần trình bày ý nghĩa việc kết hợp cấu trúc điều khiển với HS

(51)

Bài Làm việc với dãy số 1 Mục đích, yêu cầu

 Biết đợc khái niệm mảng chiều

Biết cách khai báo mảng, nhập, in, truy cập phần tử mảng Hiểu thuật toán t×m sè lín nhÊt, sè nhá nhÊt cđa mét d·y số 2 Những điểm cần lu ý gợi ý d¹y häc

Tơng tự với câu lệnh điều kiện, câu lệnh lặp, vào đầu cần giới thiệu số ví dụ nhằm đ a đến nhu cầu cần có biến mảng ngơn ngữ lập trình

Ví dụ 1, SGK dẫn đến nhu cầu biến mảng, sau phân tích bất tiện sử dụng cách khai báo biến biết (khai báo biến đơn) Pascal cung cấp công cụ hiệu để hỗ trợ ng ời lập trình biến mảng

Mục có hai nội dung quan trọng nhu cầu biến mảng ngơn ngữ lập trình thuật tốn tìm số lớn dãy số Thuật tốn tìm số lớn dãy số (học sinh đ ợc tìm hiểu 5) Trong mục giới thiệu việc tìm số lớn dãy số nh nhiệm vụ cần thực mà không đề cập đến việc giải nhiệm vụ nh Mục tiêu ví dụ mục dẫn đến nhu cầu cần có biến mảng

Trong phÇn cần cho HS biết cách khai báo, truy cập, nhập (gán) giá trị, viết giá trị biến mảng hình

a) Khai báo biến mảng:

Có hai cách khai báo biến mảng

Cách 1: Khai báo trực tiếp biến mảng chiều:

var <tên biến mảng> : array [kiểu số] of [kiểu phần tử]; Cách 2: Khai báo gián tiếp biến mảng qua kiểu mảng chiều:

type <tên kiểu mảng> = array [kiểu số] of <kiểu phần tử>; var <tên biến mảng>:<tên kiểu mảng>;

trong ú:

- kiểu số dÃy số nguyên liên tục n1 n2 với n1, n2 (hoặc biểu thức cho kết

s nguyờn) xỏc nh ch số số cuối (n1n2)

- kiểu phần tử kiểu phần tử m¶ng.

Tuy nhiên, GV cần giới thiệu với HS cách Kiểu số cần giới thiệu thật đơn giản dãy số nguyên dơng n1=1 (không thiết phải giới thiệu trờng hợp cịn lại) Kiểu phần tử

cã thĨ số nguyên, thực

GV cn s dng mt số ví dụ để luyện tập khai báo mảng chiều giải thích số lợng phần tử, kiểu phần tử biến mảng tơng ứng với ví dụ

b) Truy cËp m¶ng:

Sau cho HS luyện tập với khai báo biến mảng, sử dụng khai báo vừa thực để giới thiệu truy cập vào biến mảng Ví dụ, với khai báo

var Diem: array[1 50] of real;

khai báo tạo biến mảng có 50 phần tử từ phần tử đến phần tử 50 Các phần tử đ ợc "đặt tên" nh nào? Để "gọi đích danh" phần tử cụ thể Pascal sử dụng cách: Tên biến mảng[chỉ số phần tử] Ví dụ, Diem[1] phần tử thứ nhất; Diem[5] phần tử thứ Có thể thực thao tác nh gán giá trị, so sánh, viết giá trị hình với Diem[1], Diem[2] Diem[50] nh với biến học (biến đơn) c) Nhập giá trị cho biến mảng:

Để nhập giá trị cho biến mảng cần nhập giá trị cho phần tử mảng Giống nh với việc gán giá trị cho biến đơn, có hai cách để gán giá trị cho phần tử mảng:

G¸n trùc tiÕp b»ng lƯnh g¸n: vÝ dơ: Diem[1] := 8, Diem[2] := 9.5 Gán giá trị cách nhập từ bàn phÝm, sư dơng lƯnh read(), readln()

Có thể viết đoạn chơng trình với 50 lệnh readln() để thực việc nhập giá trị cho 50 phần từ mảng từ bàn phím:

(52)

Tuy nhiên, việc kết hợp vòng lặp for với câu lệnh readln() cách lập trình hiệu quả, hay đ-ợc sử dụng để nhập liệu cho mảng

For i:=1 to 50 readln(Diem[i]);

Tơng tự nh vậy, để viết giá trị phần tử mảng hình ngời ta kết hợp for với lệnh writeln() write()

For i:=1 to 50 writeln(Diem[i]);

Giả sử muốn viết hình điểm số lớn chẳng hạn, câu lệnh nh sau:

For i:=1 to 50

if Diem[i] >= 9 then writeln(Diem[i]);

Việc đa u cầu có hai mục đích: thứ để HS làm quen trớc với so sánh phần tử biến mảng đợc sử dụng phần sau Làm nh HS không bị bỡ ngỡ gặp phép so sánh ch-ơng trình Thứ hai, HS thấy đợc kết hợp câu lệnh mà cụ thể câu lệnh for câu lệnh if-then chơng trình

Trong ví dụ trên, duyệt phần tử biến mảng hoàn toàn sử dụng cấu trúc while do, nhiên cấu trúc for phù hợp trờng hợp biết trớc số lần lặp Mặt khác, sử dụng cấu trúc for nói chung dễ hiểu hơn, gần với cách nghĩ tự nhiên HS GV nhắc lại tầm quan trọng việc lựa chọn cấu trúc điều khiển phù hợp lËp tr×nh

Mục ví dụ chơng trình cụ thể sử dụng biến mảng thuật tốn tìm giá trị lớn nhất, nhỏ dãy số nguyên Trớc giới thiệu chơng trình cụ thể GV nên hớng dẫn HS tìm hiểu lại thuật tốn (đã học Bài 5)

Gi¶i thÝch vỊ thuật toán tìm giá trị lớn dÃy số nguyên:

+ Đầu tiên gán giá trị số thứ dÃy số cho Max (Ban đầu tạm thời coi sè thø nhÊt lµ sè lín nhÊt -sè lín nhÊt t¹m thêi)

+ So sánh số lớn tạm thời với số thứ 2, số thứ lớn số lớn tạm thời-Max gán giá trị số thứ cho Max Nh đến thời điểm Max số lớn số thứ số thứ

+ Cứ tiếp tục nh vậy, đem so sánh Max với tất số lại, găp số lớn Max gán giá trị số cho Max Sau so sánh đến số cuối dãy số Max giá trị lớn dãy số

Do học sinh đợc tìm hiểu thuật toán 5, giáo viên u cầu học sinh trình bày lại thuật tốn tìm số lớn dãy số thực lại việc mơ thuật tốn dãy số cụ thể để em nhớ lại thuật toán Ví dụ mơ thuật tốn có

Sau yêu cầu học sinh thảo luận chỉnh sửa thuật tốn để tìm số nhỏ dãy số Ví dụ, mơ thuật tốn tìm giá trị nhỏ dãy số nh bảng dới đây:

D·y sè 4 15

i 1 2 3 4 5 6 7 8 9

ai < SMIN §óng Sai Sai Sai §óng Sai Sai Sai

SMIN 4 4 3 3

Thuật tốn tìm giá trị lớn nhất, nhỏ dãy số nguyên đơn giản, không khó hiểu với HS Nh-ng HS lại khó hiểu em cha biết máy tính lại phải sử dụNh-ng thuật tốn tìm đ-ợc số lớn Thực tế, GV viết dãy số nguyên lên bảng (ví dụ, 1, 4, 23, 6, 8, 9) HS thấy đợc 23 giá trị lớn mà không nhận thấy cần thiết phải thực thuật toán nêu

Trong trờng hợp này, có khác biệt ngời máy tính giải cơng việc Con ngời nhìn nhiều số đồng thời, với dãy số ngắn nh ngời nhìn dãy số lúc Con ngời nhận diện số lớn không dựa vào giá trị mà cịn qua số dấu hiệu bổ trợ khác, ví dụ nh: độ dài số (có số có hai chữ số) chẳng hạn Với dấu hiệu bổ trợ, khả quan sát t duy, ngời nhanh chóng "khoanh vùng" đợc đáp án nhanh chóng tìm đáp án Tức phơng án giải ngời khơng mà bỏ qua số bớc cần thiết Do vậy, trong nhiều tình ngời giải toán hiệu nhiều máy tính

Tuy nhiên, khả ngời lại bị hạn chế tình dãy số lớn (hàng ngàn, hàng triệu, hàng tỉ số chẳng hạn) Khi máy tính lại thể đợc sức mạnh u tốc độ xử lí

(53)

cạnh Yêu cầu HS chuyển lần lợt đến hết mảnh giấy hộp A sang hộp B Sau chuyển xong HS cho biết số số lớn số đợc ghi mảnh giấy HS đợc phép xem số mảnh giấy chuyển mảnh giấy từ hộp A sang hộp B Yêu cầu HS không ghi chép giấy Mục đích việc khơng cho học sinh ghi chép để HS mơ hoạt động máy tính: Chỉ cần nhớ số lớn thời điểm tại, so sánh với số vừa lấy từ hộp A (đang cầm tay) nhớ lấy số lớn tiếp tục nh đến hết số hộp, số đợc nhớ cuối số lớn

Để thực công việc cần hớng dẫn HS thực mô theo giải thuật tìm dãy số lớn dãy số nguyên Nhặt mảnh giấy hộp A, mở nhớ giá trị mảnh giấy (coi số lớn tạm thời), gấp lại bỏ vào hộp B Nhặt mảnh giấy thứ hai, mở so sánh với giá trị lớn tạm thời, nhớ giá trị lớn thấy lớn Lặp lại công việc đến hết mảnh giấy hộp A

GV thêm, bớt mảnh giấy để HS làm lại Sau HS làm đề nghị em mô tả lại cách em thực để tìm số lớn Cách mà HS làm giống với cách máy tính tính thực theo thuật tốn Máy tính tham chiếu đến số dãy số, máy tính khơng có khả quan sát dãy số máy tính phải thực theo thuật tốn nh Máy tính thực theo dẫn ngời, máy tính khơng có trí thơng minh Tất nhiên, ngợc lại máy tính lại có u điểm vợt trội tốc độ xử lí

Có thể cải biến nội dung dạy học thành nhiều trị chơi khác Ví dụ, u cầu em không sử dụng giấy, bút, GV lần lợt viết số lên bảng, xố ln, HS quan sát để tìm số lớn (hoặc nhỏ nhất) Hoặc mời nhóm HS đứng lên phía lớp Mời em qua bạn một, em đến bên bạn bạn phải đa số (có thể nói thầm viết mảnh giấy) Đi hết lợt HS phải nói đợc bạn đa số lớn (hoặc nhỏ nhất) Kết đợc kiểm chứng công khai bạn đa cỏc s

Thuật toán tìm Max dÃy số nguyên nhập từ bàn phím nh sau: Bớc NhËp N vµ d·y A1, , An

Bíc Max  A1

Bớc Lần lợt gán giá trị từ đến N cho i Với giá trị i thực hiện: Nếu Max <Ai

MaxAi

Bớc Đa hình giá trÞ Max råi kÕt thóc.

Sau giới thiệu xong thuật tốn tìm Max giáo viên hớng dẫn HS xác định biến, kiểu biến viết khai báo biến; viết câu lệnh thực bớc nhập N, nhập phần tử mảng, tìm Max, in Max hình Chơng trình đợc xây dựng dần phần cuối có đợc chơng trình nh dới

program P_Max;

Var

i, N, Max : integer;

A: array[1 100] of integer;

Begin

{Nhap N}

write('Hay nhap dai cua day so, N = '); readln(N); {Nhap day so}

writeln('Nhap cac phan tu cua day so:'); For i:=1 to N do

Begin

write('a[',i,']='); readln(a[i]); End;

{Tim Max} Max:=a[1];

for i:=2 to n do if Max<a[i] then Max:=a[i]; {Hien thi Max man hinh}

write('So lon nhat la Max = ',Max); readln;

(54)

Yêu cầu HS chỉnh sửa chơng trình để tìm giá trị nhỏ dãy số nguyên, tính tổng dãy số Sau hiểu -rõ thuật toán chơng trình tìm Max, Min u cầu HS kết hợp tìm Max, Min chơng trình nh SGK

3 Hớng dẫn trả lời câu hỏi tập Bài 1. Đúng

Bi 2. Lợi ích việc sử dụng biến mảng rút gọn việc viết chơng trình, sử dụng câu lệnh lặp để thay nhiều câu lệnh Ngoài cịn lu trữ xử lí nhiều liệu có nội dung liên quan đến mt cỏch hiu qu

Bài 3. Đáp án a) Sai Ph¶i thay dÊu phÈy b»ng hai dÊu chÊm; b) c) Sai, giá trị nhỏ lớn số mảng phải số nguyên; d) Sai, giá trị đầu số mảng phải nhỏ số cuối; e) Đúng

Bài 4. Không Giá trị nhỏ lớn số mảng phải đợc xác định khai báo biến mảng Bài 5. Chơng trình nh sau:

var N, i: integer;

A: array[1 100] of real;

begin

write('Nhap so phan tu cua mang, n= '); read(n);

for i:=1 to n do

begin

write('Nhap gia tri ',i,'cua mang, a[',i,']= ');

readln(a[i]) end;

end Bµi 6. Đúng

Bài 7. a) Nếu không sử dụng biến mảng, chơng trình dài nh sau:

uses crt;

var So_1, So_2, So_3, So_4, So_5, Max: integer;

begin

clrscr;

write('Nhap so thu nhat: '); readln(So_1); write('Nhap so thu hai: '); readln(So_2); write('Nhap so thu ba: '); readln(So_3); write('Nhap so thu tu: '); readln(So_4); write('Nhap so thu nam: '); readln(So_5); Max:=So_1;

If Max<So_2 then Max:=So_2;

If Max<So_3 then Max:=So_3;

If Max<So_4 then Max:=So_4;

If Max<So_5 then Max:=So_5; writeln('So lon nhat: ',Max);

end

b) Nếu sử dụng biến mảng, chơng trình ngắn gọn nh sau:

uses crt;

(55)

A: array[1 5] of integer;

begin

clrscr;

for i:=1 to do

begin write('Nhap so thu ',i,':'); readln(A[i]) end;

Max:=a[1];

for i:=2 to do If Max<a[i] then Max:=a[i]; writeln('So lon nhat: ',Max);

end

Lu ý Xem cách viết chơng trình ngắn gọn khơng sử dụng biến mảng tập 9, 7. Tuy nhiên, cách viết khơng cho kết mong muốn sau nhập giá trị biến cần thực thao tác liệu khác với giá trị

Bài 8. Viết chơng trình sử dụng biến mảng để tính giá trị trung bình tổng N số nguyên đợc nhập vào từ bàn phím

uses crt;

var N, i: integer; TB: real;

A: array[1 100] of real;

begin

clrscr;

write('Nhap so phan tu cua mang, n= '); read(n);

for i:=1 to n do

begin

write('Nhap gia tri ',i,'cua mang, a[',i,']= '); readln(a[i])

end; TB:=0;

for i:=1 to n do TB:=TB+a[i]; TB:=TB/n;

write('Trung binh bang ',TB);

end

Bài 9. Chơng trình nhập n số nguyên từ bàn phím tính tổng số d¬ng:

uses crt;

var n,k,S: integer;

X: array[1 1000] of integer;

begin

clrscr;

write('Nhap so tu nhien n: '); readln(n);

for k:=1 to n do

begin write('Nhap X[',k,']='); readln(X[k]) end;

S:=0;

for k:=1 to n do

(56)

end

Bài 10.Nội dung thực hành viết chơng trình nhận biết số tự nhiên có phải số nguyên tố hay không Nội dung tập 9, 8, viết chơng trình tính tổng ớc số thực số nguyên, nhng cha liệt kê đợc ớc số Để liệt kê, chơng trình cần phải ghi lại chúng ý tởng sử dụng biến mảng phục vụ cho điều Chơng trình tơng tự nh tập 9, Bài 8:

uses crt;

var n,i,k,S: integer;

X: array[1 10000] of integer;

begin

clrscr; i:=2; S:=0;

for k:=1 to (n-1) do X[k]:=0; {Dat lai = 0} write('Cho so tu nhien n>2: n= '); readln(n);

while i<=(n-1) do {Ghi lai uoc so vao X[i]}

begin if (n mod i)=0 then begin X[i]:=i; S:=S+X[i] end;

i:=i+1; end;

writeln('Tong cac uoc so thuc su cua ',n,' la: ',S);

if S<>0 then begin write('Cac uoc so cua ',n,' la: ');

for i:=1 to (n-1) if X[i]<>0 then write(X[i],' ') end else writeln(n,' la so nguyen to.');

readln;

end

Bài thực hành Xử lí dãy số chơng trình 1 Mục đích, u cu

Thực hành khai báo sử dụng biến mảng ;

ễn luyn cỏch s dụng câu lệnh lặp if then, for do;  Củng cố kĩ đọc, hiểu chỉnh sửa chơng trình

 Hiểu viết đợc chơng trình với thuật tốn tìm giá trị lớn nhất, nhỏ dóy s, tớnh tng dóy s

2 Những điểm cần lu ý gợi ý dạy học

gây hứng thú cho HS, cần dành thời gian để HS gõ, chạy thử chơng trình tìm Max, Min, Tính tổng dãy số Hơn nữa, việc thực học cần thiết yêu cầu Chơng trình HS cần viết đợc chơng trình Chơng trình tìm Max đợc tiến hành lí thuyết, GV cần hớng dẫn HS tham khảo chơng trình P_Max để tự viết đợc chơng trình P_Min chơng trình tính tổng P_Sum

Chơng trình tìm Max đợc giới thiệu trên, dới chơng trình P_Min chơng trình P_Sum Chơng trình tìm giá trị nhỏ dãy số nguyên P_Min:

Program P_Min;

Var

i, n, Min : integer;

A: array[1 100] of integer;

Begin

write('Hay nhap dai cua day so, N = '); readln(n); writeln('Nhap cac phan tu cua day so:');

(57)

Begin

write('a[',i,']='); readln(a[i]); End;

Min:=a[1];

for i:=2 to n do if Min>a[i] then Min:=a[i]; write('So nho nhat la Min = ',Min);

readln;

End

Chơng trình tính tổng dãy số, chơng trình có thêm câu lệnh in hình dãy số vừa nhập để ngời sử dụng thuận tiện kiểm chứng kết chơng trình Nhng nhằm mục đích luyện tập với việc in phần tử mảng hình

Program P_Sum;

Var

i, n, Sum : integer;

A: array[1 100] of integer;

Begin

write('Hay nhap dai cua day so, N = '); readln(n); writeln('Nhap cac phan tu cua day so:');

For i:=1 to n do

Begin

write('a[',i,']='); readln(a[i]); End;

Sum:=0;

for i:=1 to n do Sum:= Sum + a[i]; write('Day so vua nhap la: '); for i:=1 to n do write(a[i], ' '); writeln;

write('Tong day so la = ',Sum); readln;

End

Thời gian lại dành để HS thực hành với sử dụng kết hợp nhiều câu lệnh, biểu thức điều kiện SGK

Ngày đăng: 01/04/2021, 19:52

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w