Tải bản đầy đủ (.doc) (12 trang)

các bước lập trình bài toán trên mt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (134.95 KB, 12 trang )

các bớc giải một bài toán cho lớp bài toán trên máy vi tính
A Đặt vấn đề
1. Lý do
Hiện nay nớc ta cũng nh các nớc trên thế giới đang cạnh tranh về nghành công
nghệ chế tạo máy cũng nh các sản phần phần mềm giúp ích cho con ngời trên mọi lĩnh
vực. Vậy làm thế nào để làm đợc điều đó : nhờ vào ngành công nghệ thông tin. Ngày xa
xa con ngời không biết đọc, không biết viết đó là một nỗi khỗ vô cùng, còn ngày nay
con ngời không biết sử dụng máy vi tính thì coi nh là không biết đọc, không biết viết.
Vậy khi biết sử dụng máy vi tính rồi chúng ta sẽ làm gì hay chỉ ngồi chơi điện tử, các
trò giải trí, soạn thảo các bài văn bản mà thôi ?
Là một giáo viên tin học một trong các mục tiêu khi đa tin học vào trờng học là
nhằm giúp học sinh không chỉ biết soạn thảo mà còn phải có khả năng phân tích, tổng
hợp, trừu tợng hoá, khái quát hoá vấn đề và đặc biệt là phát triển t duy, sáng tạo. Những
năm qua môn tin học ở THCS cha có sách giáo khoa cụ thể hớng dẫn cho học sinh về
cách phân tích lập trình. Vì vậy học sinh cha có tính độc lập sáng tạo mà phải nhờ vào
giáo viên rất nhiều. Nhng năm nay đã có sách giáo khoa hớng dẫn cho học sinh cụ thể
qui trình lập trình nh thế nào.Vì thế mà tôi sẽ hớng cho học sinh lớp 8 cách để trở thành
một nhà lập trình thì cần phải nắm bớc cơ bản nào?
2. Cơ sở thực tiễn
Trong quá trình dạy tôi nhận thấy ở các em học sinh. Mới đầu các em cũng rất sợ
khi thấy giải một bài toán ở ngoài thì đơn giản và chỉ trong vòng vài giây có thể nhẩm ra
kết quả . Còn ở trong lập trình cũng bài toán đó mà phải làm đến hàng chục phút . Song
bằng những tâm huyết của mình và cũng nh sự yêu thích của học sinh. Nhất là năm nay
nghành giáo dục có phát động phong trào giải toán trên mạng. Điều đó đã thúc đẩy tôi
rất nhiều trong việc dạy học là làm sao đa ra đợc cho các em sự đam mê và phát triển
tài năng của học sinh trong việc đào tạo nhân tài cho đất nớc .
Ngôn ngữ lập trình PASCAL là một phần mềm có cấu trúc và rất đợc nhiều độc
giả quan tâm và cũng chính đó cũng có nhiều cuốn sách do nhiều tác giả viết. Song với
bản thân tôi khi lựa chọn viết đề tài này là muốn đa ra các bớc giải một bài
toán, lớp bài toán trên máy vi tính sử dụng bằng ngôn ngữ lập trình và cụ thể
là ngôn ngữ lập trình pascal.


B- Giải quyết các vấn đề
Phơng pháp cơ bản giải các bài toán trong tin học không chỉ dùng để giải một bài
toán cụ thể mà còn giải 1 lớp các bài toán cụ thể thuộc cùng một loại. Bài toán đợc cấu
tạo từ hai yếu tố cơ bản: Thông tin vào (Input) và thông tin ra (Output). Phơng pháp
tổng quát để giải một bài toán bằng máy vi tính dựa trên ngôn ngữ pascal thì cần các b-
ớc sau:
1. Xác định các bài toán.
2. Tìm thuật toán.
3. Viết chơng trình.
4. Chạy thử, sửa đổi chơng trình.
I- Xác định bài toán
1. Khái niệm bài toán
Trong quá trình học ngời học sinh hay bất kỳ một cá nhân nào luôn phải liên tục
giải quyết các bài toán. Trong cuộc sống là 1 chuỗi các bài toán mà ta phải đối đầu giải
quyết không một chút đơn giản mà nhiều lúc phải bức mình. Song đối với học sinh lớp 8
do chơng trình học toán của các em chỉ mới đến giải phơng trình bậc nhất là cao nhất.
Nên việc đa các lớp bài toán vào giải cho các em đang còn một phần nào bị hạn chế.
Nhng bất kỳ một bài toán nào thì chúng ta cũng đọc đề rồi xác định nó : A->B.
Trong đó:- A là giải thiết : điều kiện ban đầu hoặc cái đã cho khi bắt đầu giải bài
toán.
- B là kết luận: Mục tiêu cần đạt đợc hay cái phải tìm, phải làm ra khi kết
thúc bài toán .
- Là suy luận: giải pháp cần xác định hay một chuối thao tác thực hiện
từ A đến B .
2. Bài toán trên máy vi tính
Bài toán trên máy cũng mang đầy đủ các tính chất của bài toán tổng quát trên,
nhng nó lại đợc diễn đạt theo một các khác.
- A: là đa thông tin vào (Input )
- B: là đa thông tin ra ( Output)
- : là ngôn ngữ chơng trình tạo từ các lệnh cơ bản của máy tính

cho phép biến đổi từ A đến B (Ngôn ngữ của máy tính).
3. Một số ví dụ
Ví dụ 1: Tính diện tích hình chữ nhật có chiều dài là 6 chiều rộng là 4.
Ta cần xác định cho bài toán:
+ Thông tin vào: Chiều dài là cạnh 6, chiều rộng là cạnh 4
+ Thông tin ra: Kết quả diện tích là 6*4
Đối với bài toán tổng quát trên:
Tính diện tích hình chữ nhật có chiều dài là a chiều rộng là b
+ Thông tin vào: Chiều dài là cạnh a, chiều rộng là cạnh b.
+ Thông tin ra: Kết quả diện tích khi đa a,b vào.
+ Các thông tin cần chế biến thông tin nh:
- Lần lợt đa a,b vào ( cho a=6,b=4)
- áp dụng công thức tính diện tích hình chữ nhật: a*b
- Kết quả in ra là 12.
Ví dụ 2: Cho 2 số tự nhiên a, b .Tìm ớc số chung lớn nhất của chúng.
Các bớc các định bài toán:
+ Xác định thông tin vào: hai số tự nhiên a,b
+ Xác định thông tin ra: số tự nhiên d thoả mãn:
d là ớc của a và d là ớc của b
d là số lớn nhất trong tập các ớc chung của a, b
+ Xác định các thao tác chế biến thông tin
Xây dựng hữu hạn các thao tác cho phép tính đợc d từ a và b.
Nhập a =16 b= 24 -> d =8
Ví dụ 3: Tìm tất cả các số nguyên tố trong các số nguyên N đợc nhập vào từ bàn
phím:
+ Xác định thông tin vào:Nhập số nguyên N
+ Xácđịnh thông tin ra: Các số nguyên tố ( chia hết cho nó và số 1)
II- Tìm thuật toán
Thuật toán là một quá trình gồm một dãy hữu hạn các thao tác đơn giản đợc sắp
xếp theo một trình tự xác định sao cho theo đó từ Input của bài toán sẽ tìm ra đợc

Output bài toán .
Đây là bớc khó nhất đối với học sinh và cũng cho giáo viên khi dạy phần này vì
các em quen giải bài toán cụ thể nào đó và giải bài toán bằng ngôn ngữ tự nhiên mà các
em đã học còn bây giờ các em phải xây dựng thuật toán của một bài toán tổng quát và
bằng ngôn ngữ lập trình của máy.vì thế trong phần này chúng ta cần đa ra một phơng
pháp mô tả thuật toán một cách khoa học để học sinh nhận biết đợc quy trình làm việc
của máy vi tính (Ngôn ngữ lập trình) làm việc nh thế nào .
Mô tả thuật toán là bớc quan trọng nhất đối với ngời lập trình, nếu ngời lập trình
mô tả thuật toán sai hoặc dài dòng thì dẫn đến khi viết chơng trình sẽ khó khăn hoặc sẽ
cho kết quả sai vì vậy trong phần này tôi sẽ đa ra hai phơng pháp mô tả thuật toán một
cách rõ ràng và khoa học nhất để các em dễ dàng mô tả thuật toán đúng theo ý tởng của
mình.
Khi dạy cho học sinh tôi đa ra 2 phơng pháp để mô tả thuật toán cuả một bài toán nh
sau:
- Mô tả thuật toán bằng cách liệt kê các bớc .
- Sử dụng sơ đồ khối để mô tả thuật toán .
Đối với SGK Tin Học lớp 8 chỉ đa ra bớc thứ nhất là Mô tả thuật toán bằng cách liệt kê
các bớc chứ không đa ra cách thứ hai là mô tả thuật toán bằng vẽ sơ đồ khối. Theo tôi
cần đa ra cho học sinh nắm đợc hai cách mô tả thuật toán trên vì vẽ sơ đồ khối sẽ giúp
các em dễ nhận thấy đợc cấu trúc của một bài toán hơn..
Ví dụ: Tìm ớc số chung lớn nhất của 2 số nguyên dơng a,b . ta có thể giải bằng các
cách trên
Cách 1: Mô tả thuật toán bằng cách liệt kê các bớc.
- Bớc 1: Nhập 2 số nguyên dơng là a,b
- Bớc 2: So sánh giá trị a và b . Nếu a bằng b thì sang bớc 3, ngợc lại a khác b thì
sang bớc 4
- Bớc 3: Tìm đợc ớc số chung là a và kết thúc chơng trình
- Bớc 4: Nếu a lớn hơn b thì ớc số chung lớn nhất là a và quay trở lại bớc 2. Ngợc
lại ớc số chung là b và quay trở lại bớc 2
Cách 2: Giải bài toán bằng sơ đồ khối.

- Có hình thoi
thể hiện các thao tác so sánh
- Hình chữ nhật
thể hiện các phép tính toán, các câu lệnh
- Hình ôvan
thể hiện bắt đầu và kết thúc.
- Các mũi tên quy định trình tự các thao tác
Begin
a, b
a=b đúng
sai
Đúng Sai
a<>b
Cách 4: Viết chơng trình hoàn chỉnh (dùng ngôn ngữ pascal)
PROGRAM USCLN;
USES CRT;
VAR
a,b, :integer;
BEGIN
CLRSCR;
WRITE('nhap 2 gia tri m,n=');READLN(a,b);
WHILE m<>n DO
IF a>b THEN a:=a b
else b:=b-a;
WRITELN('uoc so chung lon nhat cua 2 so ,a:5);
READLN
END.
III- Viết chơng trình
Lập trình là dùng ngôn ngữ máy vi tính cụ thể nào (ngôn ngữ Pascal) để diễn tả
thuật toán, cấu trúc dữ liệu thành câu lệnh để máy tính có thể thực hiện đợc và giải

quyết đúng bài toán mà ngời lập trình mong muốn.
1. Kỹ năng lập trình
- Rèn luyện đợc cho học sinh kỹ năng cài đặt thành công các thuật toán bằng một ngôn
ngữ lập trình.
UCLN là a
EN
D
b:= b - a
a:= b - a

×