I. Điều kiện hoàn cảnh tạo ra sáng kiến:
- Chúng ta đang sống trong một thời đại mới, thời đại phát triển rực rỡ của
Công nghệ thông tin( CNTT). CNTT đã ở một bước phát triển cao đó là số hóa
tất cả các dữ liệu thông tin, luân chuyển mạnh mẽ và kết nối tất cả chúng ta lại
với nhau. Mọi loại thông tin, số liệu âm thanh, hình ảnh có thể được đưa về dạng
kỹ thuật số để bất kỳ máy tính nào cũng có thể lưu trữ, xử lý và chuyển tiếp cho
nhiều người. Những công cụ và sự kết nối của thời đại kỹ thuật số cho phép
chúng ta dễ dàng thu thập, chia sẻ thông tin và hành động trên cơ sở những
thông tin này theo phương thức hoàn toàn mới, kéo theo hàng loạt sự thay đổi về
các quan niệm, các tập tục, các thói quen truyền thống, và thậm chí cả cách nhìn
các giá trị trong cuộc sống. CNTT đến với từng người dân, từng người quản lý,
nhà khoa học, người nông dân, bà nội trợ, học sinh tiểu học….Không có lĩnh
vực nào, không có nơi nào không có mặt của CNTT. Công nghệ thông tin là một
trong các động lực quan trọng nhất của sự phát triển…ứng dụng và phát triển
công nghệ thông tin ở nước ta nhằm góp phần giải phóng sức mạnh vật chất, trí
tuệ và tinh thần của toàn dân tộc, thúc đẩy công cuộc đổi mới, phát triển nhanh
và hiện đại hoá các ngành kinh tế, tăng cường năng lực cạnh tranh của các
doanh nghiệp, hỗ trợ có hiệu quả cho quá trình hội nhập kinh tế quốc tế, nâng
cao chất lượng cuộc sống của nhân dân, đảm bảo an ninh quốc phòng và tạo khả
năng đi tắt đón đầu để thực hiện thắng lợi sự nghiệp công nghiệp hóa, hiện đại
hóa đất nước (CT số 58-CT/TW ngày 17- 10- 2000 của BCT khoá VIII). Tác
động của CNTT đối với xã hội loài người vô cùng to lớn, nó không chỉ thúc đẩy
nhanh quá trình tăng trưởng kinh tế, mà còn kéo theo sự biến đổi trong phương
thức sáng tạo của cải, trong lối sống và tư duy của con người. Trong nền kinh tế
tri thức, các quy trình sản xuất đều được tự động hoá. Máy móc không chỉ thay
thế con người những công việc nặng nhọc, mà thay thế con người ở những khâu
phức tạp của sản xuất và quản lý, không chỉ thay thế thao tác lao động của con
người mà cả thao tác tư duy. Trong nền kinh tế toàn cầu, với sự phát triển của
internet, thương mại điện tử đang trở thành một lĩnh vực phát triển rất mạnh mẽ,
nó thúc đẩy các ngành sản xuất dịch vụ trên phạm vi toàn thế giới, và đặc biệt
1
quan trng vi cỏc nc ang phỏt trin, nht l i vi vựng xa xụi ho lỏnh,
cỏc nc v cỏc vựng ny cú c hi tip cn th trng quc t. CNTT chic
chỡa khoỏ m cỏnh cng vo nn kinh t tri thc. Mng thụng tin l mụi
trng lý tng cho s sỏng to, l phng tin quan trng qung bỏ v nhõn
rng nhanh vn tri thc, ng lc ca s phỏt trin, thỳc y phỏt trin dõn ch
trong xó hi, phỏt trin nng lc ca con ngiCNTT s nhanh chúng thay i
th gii mt cỏch mnh m, s chuyn i ny cú v th trong lch s nh mt
cuc cỏch mng kinh t - xó hi v cú nh hng to ln n i sng con ngi.
- Chính vì xác định đợc tầm quan trọng đó nên Nhà nớc
ta đã đa môn Tin học vào trong nhà trờng và ngay từ tiểu học,
học sinh đợc tiếp xúc với môn Tin học để làm quen dần với mỏy
tớnh, vi lĩnh vực CNTT, tạo nền móng cơ sở ban đầu để học
những phần nâng cao trong các cấp hc tiếp theo.
- Trong chng trỡnh lp 8, cỏc em lm quen vi lp trỡnh. Ngụn ng lp
trỡnh dng nh rt xa l vỡ õy l kin thc u tiờn trong lp trỡnh m cỏc em
c hc.
- Qua ging dy mụn Tin hc trng THCS M Thnh - M Lc, bn thõn
tụi nhn thy rng nhiu hc sinh lp 8 thy mụn lp trỡnh Pascal khú, khụ khan
v cc k phc tp. Mi u cỏc em cng rt s vỡ khi thy gii mt bi toỏn
ngoi thỡ n gin v ch trong vũng vi giõy cú th nhm ra kt qu cũn trong
lp trỡnh cng bi toỏn ú m phi lm n hng chc phỳt, a ra thut toỏn m
cú th cho kt qu sai.
- Tõm lý mt s em u cho rng mụn Tin hc khụng phi l mụn hc chớnh.
Do ú khụng cn phi tõm n.
- Xột mt gúc no ú lp trỡnh cng l mt phn hc khú i vi hc
sinh THCS. Khú õy khụng phi do tớnh phc tp ca phn hc hay phm vi
kin thc quỏ rng ln. Nu em so sỏnh lp trỡnh v cỏc mụn Toỏn hc, Vt
Lý, Húa hc trng THCS thỡ lp trỡnh Pascal gn nh hn
2
- Lp trỡnh Pascal "khú" i vi hc sinh THCS vỡ mụi trng lp trỡnh
Pascal cú giao din v cỏc t khúa u bng ting Anh, cỏc dũng thụng bỏo hay
tr giỳp cng vy. Nhỡn chung hc sinh THCS vn ting Anh khụng nhiu,
nhiu em cũn yu v ting Anh..
- Mt vn na cng l ro cn i vi vic cỏc hc sinh THCS tip cn
vi lp trỡnh Pascal ú l: t duy Toỏn hc ca cỏc em cũn hn ch ph thuc
vo Sỏch Giỏo Khoa do ú k nng phõn tớch, tng hp, xõy dng thut toỏn cho
mi bi toỏn hay vn cn lp trỡnh cha tt. Cỏc em vn th ng trong vic
tip cn bi toỏn, sp xp t duy, xõy dng thut gii.
- T thc t trờn, trong quỏ trỡnh dy hc tụi luụn bn khon, trn tr lm th
no nõng cao cht lng k nng lp trỡnh cho hc sinh lp 8. Vic tip cn vi
mụn hc rt khú khn, phi lm rt nhiu ln v thc hnh rt nhiu tit cỏc em
mi hiu vic nhp v xut d liu. Do ú s rt khú khn cỏc em hỡnh thnh
k nng vit chng trỡnh. Nht l nhng nm gn õy Ngnh giỏo dc luụn
thnh lp i tuyn tham d thi hc sinh gii mụn Tin hc ,. iu ú ó thỳc
y tụi trong quỏ trỡnh ging dy phi nghiờn cu tỡm tũi bin phỏp, kinh nghim
giỳp cho cỏc em cú s am mờ hc tp v lp trỡnh, giỳp cỏc em bit c
quy trỡnh lp trỡnh nh th no v nh hng cho hc sinh cỏch tr thnh
mt nh lp trỡnh thỡ cn phi nõng cao k nng lp trỡnh pascal. Giỳp cỏc em
hiu, yờu thớch lp trỡnh v hc lp trỡnh trong s hng thỳ, phn khi.
II.Mụ t gii phỏp
1. Tỡnh hỡnh thc t trc khi to sỏng kin
1.1. Thuận lợi:
* Nhà trờng:
- Tuy môn Tin học mới chỉ là môn học tự chọn nhng nhà trờng đã tạo điều kiện để học sinh có thể học từ khối lớp 6, tạo
điều kiện sắm sửa máy móc, trang thiết bị phục vụ cho việc
dạy và học môn Tin học.
3
- Đợc sự ủng hộ của các cấp Uỷ Đảng, c quan a phng Xã Mỹ
Thịnh, phụ huynh
hc sinh toàn trờng hỗ trợ về cả tinh thần
cũng nh cơ sở vật chất cho nhà trờng.
* Giáo viên:
- Giáo viên đợc đào tạo ỳng chuyên ngành về tin học để
đáp ứng yêu cầu cho dạy và học môn tin học trong bậc THCS.
* Học sinh:
- Vì là môn học trực quan, sinh động, môn học khám phá
những lĩnh vực mới nên học sinh rất hứng thú học, nhất là
những tiết thực hành.
- Mt s gia ỡnh cú iu kin kinh t ó mua sm mỏy vi tớnh, to iu
kin hc tp thun li cho con em mỡnh i vi mụn Tin hc núi riờng, v cỏc
mụn hc khỏc núi chung.
1.2. Khó khăn:
* Nhà trờng:
- Nhà trờng đã có một phòng máy vi tính để cho học sinh
học nhng vẫn còn hạn chế về số lợng cũng nh chất lợng, mỗi ca
thực hành có tới 3 em ngồi cùng một máy nên các em không có
nhiều thời gian để thực hành làm bài tập một cách đầy đủ.
Hơn nữa nhiều máy cấu hình máy đã cũ, chất lợng không còn
tốt nên hay hỏng hóc, ảnh hởng rất nhiều đến chất lợng học
tập của học sinh.
* Giáo viên:
- Môn Tin học mới chỉ là môn tự chọn trong chơng trình
bậc THCS nên chơng trình và sự phân phối chơng trình bớc
đầu cha có sự thống nhất và đang dn hoàn chỉnh. Hơn nữa
4
khi thực hành, các máy móc cũ thờng gặp sự cố, trục trặc dẫn
đến học sinh thiếu máy, gp khú khn trong quỏ trỡnh thc hnh.
* Học sinh:
- Mt b phn hc sinh lp 8 cha ý thc tivic hc tp Tin hc, mt s
em cũn s dng mỏy vi tớnh khụng ỳng mc ớch ca mụn hc.
- Vn cũn mt s em hc sinh tip thu kin thc cũn chm, c bit l k
nng c hiu chng trỡnh, vỡ a phn dựng ngụn ng Ting Anh.
- Do c thự kinh t ca Xó M Thnh l a phng thun nụng, nờn s
quan tõm ca ph huynh n vic hc tp ca con em cũn hn ch. t cú iu
kin chm súc, giỏo dc v nh hng cho con em trong vic hc tp.
- Mt s hc sinh cha coi trng mụn hc, xem õy l mt mụn ph nờn
cha cú s u t thi gian cho vic hc. Ngoi ra, chng trỡnh Tin hc 8,
cỏc em phi lm quen, tip cn vi ngụn ng lp trỡnh Pascal l mt phn mm
cú cu trỳc phc tp, ngụn ng lp trỡnh bng ting anh. Mc khỏc thc hin
c mt chng trỡnh thỡ cỏc em phi cú mt kin thc toỏn hc nht nh.
2. Mụ t gii phỏp trong sỏng kin
- Pascal l mt ngụn ng lp trỡnh cho mỏy tớnh thuc dng mnh lnh,
c Niklaus Wirth phỏt trin vo nm 1970 l ngụn ng c bit thớch hp cho
kiu lp trỡnh cú cu trỳc.
- Pascal da trờn ngụn ng lp trỡnh ALGOL v c t tờn theo nh
toỏn hc v trit hc Blaise Pascal. Wirth ng thi cng xõy dng Modula2 v Oberon, l nhng ngụn ng tng ng vi Pascal. Oberon cng h tr
kiu lp trỡnh hng i tng.
- mụi trng ny, hc sinh s hu mt lng ti nguyờn l cỏc kiu d
liu n gin, cựng vi cỏc cõu lnh rừ rng, nht quỏn v rt d thuc. Tuy
nhiờn, nú ũi hi ngi lp trỡnh ti b cc, thit k mt thut toỏn sao cho ỳng
n, hiu qu v ti u, ri vn dng cỏc quy tc cỳ phỏp vit ra c nhng
cõu lnh phự hp.
5
- Vì thế để giúp các em đọc hiểu được các câu lệnh, nâng cao kỹ năng lập
trình, về phía giáo viên cần phải:
+ Nắm vững mục tiêu, đối tương, phương pháp, chưong trình Sách
Giáo Khoa (SGK) lập kế hoạch dạy học, tiến hành từng tiết lên lớp
+ Phát huy được tính tích cực, chủ động của học sinh.
+ Tiến hành dạy, kiểm tra đánh giá học sinh, bồi dưỡng học sinh
giỏi, giúp đỡ học sinh yếu. Hỗ trợ dạy môn Tin học thông qua giaó viên chủ
nhiệm và phụ huynh học sinh.
+ Tiếp cận nội dung, lựa chọn phương pháp phù hợp với từng đối
tượng học sinh Giỏi, Khá, Trung Bình, Yếu, Kém.
+ Tự thích ứng với sự thay đổi chương trình SGK môn Tin học
+ Gợi cho học sinh niềm yêu thích, tìm tòi với môn học.
- Về phía học sinh cần xác định được SGK là phương tiện chủ yếu để học
tập, phải lựa chọn các tài liệu tham khảo phù hợp, tư duy chủ động, quan sát vấn
đề, vận dụng vào thực hành và làm tốt các bước sau:
+ Xác định bài toán
+ Tìm dữ liệu biểu diễn thuật toán
+ Xây dựng thuật toán
+ Viết chương trình
+ Chạy thử, thay đổi, kiểm tra chương trình
2.1 Xác định bài toán:
- Khái niệm bài toán: Bài toán là một công việc hay một nhiệm vụ cần
phải giải quyết.
- Vấn đề có nghĩa rộng hơn bài toán( là một loại vấn đề mà để giải quyết
phải liên quan ít nhiều đến tính toán: bài toán trong Vật lý, Hóa học, Sinh
học…)
- Có 2 loại vấn đề
+ Vấn đề được khẳng định tính đúng/ sai
+ Vấn đề cần tìm được giải pháp để đạt được một mục đích xác
định từ những điêu kiện ban đầu nào đó.
- Biễu diễn vấn đề bài toán: A → B
+ Trong đó A: Giả thiết, điều kiện ban đầu.
B: Kết luận, mục tiêu cần đạt.
- Giải quyết vấn đề bài toán:
6
+ Từ A dùng một số hữu hạn, các bước suy luận có lý hoặc hành
động thích hợp để đạt được B
+ Trong Tin học: A là đầu vào, B là đầu ra.
- Quá trình giải bài toán trên máy 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, nhưng nó lại được diễn đạt theo
một các khác.
+ A : là đưa thông tin vào – thông tin trước khi xử lý (Input )
+ B: là đưa thông tin ra – kết quả sau khi xử lý (Output)
+ : là chương trình tạo từ các câu lệnh cơ bản của máy tính cho
phép xử lý từ A đến B.
- Xác định bài toán: Là xác định rõ 2 thành phần Input và Output và mối
quan hệ giữa chúng để có thể lựa chọn thuật toán và ngôn ngữ lập trình thích
hợp.
Ví dụ 1: Tính chu vi, diện tích hình tròn.
Các bước xác định cho bài toán:
+ Thông tin vào (Input)
: Bán kính hình tròn.
+ Thông tin ra (Output)
: Kết quả chu vi, diện tích khi đưa gía trị bán
kính vào.
Ví dụ :: Đưa bán kính hình tròn vào( r = 6)
Áp dụng công thức tính chu vi hình tròn = 2r x 3.14
Áp dụng công thức tính chu vi hình tròn = r2 x 3.14
Kết quả in ra là chu vi = 37.68, diện tích = 113.04.
Ví dụ 2: Giải phương trình bậc nhất dạng tổng quát bx + c =0(SGK)
Các bước xác định cho bài toán:
+ Input
: Các số b và c
+ Output
: Nghiệm của phương trình bậc nhất
7
Ví dụ : Lần lượt đưa giá trị b, c vào
( b = 5,c = - 7)
- Áp b = 0 và c = 0 thì phương trình có vô số nghiệm
- Nếu b = 0 và c ≠ 0 thì phương trình vô nghiệm
- Nếu b ≠ 0 thì phương trình có nghiệm x = -c/b;
Kết quả in ra là x = 7/5
Ví dụ 3: Bài toán cổ dân gian( Bài toán gà chó)
Vừa gà vừa chó
Bó lại cho tròn
Ba mươi sáu(36) con
Một trăm(100) chân chẵn
Hỏi mấy gà, mấy chó?
Cách giải bằng toán học như sau:
Gọi x là số chó
Số gà là: 36 – x
Số chân chó: 4x
Số chân gà: 2(36-x)
theo đề bài ta có:
4x + 2(36 – x) =100
4x + 72 – 2x = 100
2x = 100 -72
x = 14
Vậy số chó là 14 con
Số gà : 36 – 14 = 22 con
Bài toán vui này được lập trình như sau :Vì số con là 36 và số
chân là 100. Giả sử tất cả là chó, thì số con tối đa là 100/4 = 25
(con). Tối thiểu là 36/4 = 9 (con). Như vậy chúng ta chỉ cần sử
dụng vòng lặp for từ 9->25. Tối ưu hơn so với từ 0 -> 36
Các bước xác định cho bài toán:
8
+ Input
: số chân gà và chó là 100, tổng số gà và chó:36
+ Output
: Số gà, số chó
+ Các dữ liệu cần xử lý để chế biến thông tin như:
Chạy chương trình
9
Ví dụ 4: Bài toán cổ dân gian(Trăm trâu trăm cỏ)
Trăm trâu trăm cỏ
Trâu đứng ăn năm
Trâu nằm ăn ba
Lụ khụ trâu già
Mỗi con 1 bó.
Tính số trâu mỗi loại.
Cách giải bằng toán học như sau :
Gọi x là số trâu đứng, y là số trâu nằm, z là số trâu già
Điều kiện: x, y, z đều nhỏ hơn 100 và x,y,z ≥ 0
Vậy ta có số trâu: x + y + z = 100 (1)
Và số bó cỏ : 5x + 3*y +z/3 =100 hay 15*x+ 9*y + z =100 (2)
Lấy (2) - (1) ta có 14*x +8*y =200 (3)
Rút gọn (3) ta có 7*x+4*y = 100
=> y = 25- (x*7)/4
Vì y là số tự nhiên, y ≥ 0 nên (x*7)/4 phải nhỏ hơn hoặc bằng 25
Thỏa mãn x=0, x = 4, x = 8, x =12 ;
Khi đó số trâu đứng, trâu nằm, trâu già là :
x= 0, y = 25, z = 75
x= 4, y = 18, z = 78
x= 8, y =11, z =81
x= 12, y =4, z =84
Các bước xác định cho bài toán:
+ Input
: 100 con trâu, 100 bó cỏ. Trâu đứng ăn 5 bó cỏ, trâu nằm ăn
3 bó cỏ, trâu già ăn 1 bó cỏ
10
+ Output
: Số con trâu đứng, trâu nằm, trâu già
+ Các dữ liệu cần xử lý để chế biến thông tin như:
Chạy chương trình:
11
2.2. Tìm dữ liệu biểu diễn thuật toán:
*Cấu trúc dữ liệu :
- Là kiểu dữ liệu mà bên trong nó có chứa nhiều thành phần dữ liệu và các
thành phần dữ liệu đấy được tổ chức theo một cấu trúc nào đó. Nó dùng để biểu
diễn cho các thông tin có cấu trúc của bài toán. Cấu trúc dữ liệu thể hiện khía
cạnh logic của dữ liệu.
- Khi giải một bài toán, cần phải định nghĩa tập hợp dữ liệu để biểu diễn tình
trạng cụ thể. Việc lựa chọn này tùy thuộc vào vấn đề cần giải quyết và những thao
12
tác sẽ tiến hành trên dữ liệu vào. Có những thuật toán chỉ thích ứng với một cách tổ
chức dữ liệu nhất định, đối với những cách tổ chức dữ liệu khác thì sẽ kém hiệu
quả hoặc không thể thực hiện được. Chính vì vậy nên bước xây dựng cấu trúc dữ
liệu không thể tách rời bước tìm kiếm thuật toán giải quyết vấn đề.
* Các tiêu chuẩn khi lựa chọn dữ liệu:
- Dữ liệu trước hết phải biểu diễn được đầy đủ các thông tin nhập và xuất
của bài toán.
Các kiểu dữ liệu
Phạm vi sử dụng
Byte
Các số nguyên từ 0 đến 255
Integer
Các số nguyên từ -215 đến 215-1
Real
Số thực có giá trị tuyệt đối trong khoảng 2,9x10 -39 đến
1,7x1038 và số 0
Char
Các kí tự trong bảng chữ cái
String
Các dãy số tối đa 255 kí tự
- Dữ liệu phải phù hợp với các thao tác của thuật toán mà ta lựa chọn để
giải quyết bài toán.
2.3 Xây dựng thuật toán:
- Khái niệm thuật toán:
Thuật toán là dãy hữu hạn các thao tác cần thực hiện theo trình tự xác
định để thu được kết quả cần thiết từ những điều kiện cho trước.
- Phương pháp biểu diễn thuật toán: Khi chứng minh hoặc giải một bài
toán trong toán học, chúng ta thường dùng những ngôn từ toán học như : "ta có",
"điều phải chứng minh", "giả thiết", ... và sử dụng những phép suy luận toán học
như phép suy ra, tương đương, ...Thuật toán là một phương pháp thể hiện lời
giải bài toán nên cũng phải tuân theo một số quy tắc nhất định. Ðể có thể truyền
đạt thuật toán cho người khác hay chuyển thuật toán thành chương trình máy
tính, ta phải có phương pháp biểu diễn thuật toán. Có 3 phương pháp biểu diễn
thuật toán :
13
+ Dùng ngôn ngữ tự nhiên.
+ Dùng lưu đồ - sơ đồ khối
+ Dùng mã giả
- Các tiêu chí thuật toán cần thỏa mãn
+ Tính hữu hạn: Giải thuật phải dừng lại sau một số bước hữu hạn.
+ Tính dừng: Khi kết thúc giải thuật phải cung cấp kết quả đúng
đắn.
+ Tính hiệu quả: Thời gian tính toán nhanh.
+ Sử dụng ít tài nguyên không gian như: bộ nhớ, thiết bị.
+ Mang tính phổ dụng: dễ hiểu, dễ cài đặt và mở rộng cho các bài
toán khác.
- Phân loại thuật toán
+ Phân loại theo cài đặt.
+ Phân loại theo thiết kế.
+ Phân loại theo lĩnh vực nghiên cứu.
a. Ngôn ngữ tự nhiên
- Trong cách biểu diễn thuật toán theo ngôn ngữ tự nhiên, người ta sử
dụng ngôn ngữ thường ngày để liệt kê các bước của thuật toán.
- Ưu điểm:
+ Đơn giản
+ Không yêu cầu người viết và người đọc có kiến thức nền tảng
- Nhược điểm
+ Dài dòng
+ Không làm nổi bật cấu trúc thuật toán
+ Khó biểu diễn với các bài toán phức tạp
14
Ví dụ: Bài toán giải phương trình bậc nhất 1 ẩn ax+b=0
Bước 1: Nhập a, b.
Bước 2: Nếu a = 0 thì
Bước 2.1 . Nếu b = 0 thì phương trình vô số nghiệm.
Bước 2.2. Nếu b ≠ 0 thì phương trình vô nghiệm
Bước 3. Nếu a ≠ 0 thì phương trình có nghiệm x= - b/a.
Bước 4. Đưa ra giá trị nghiệm x.
Bước 5. Kết thúc.
b. Lưu đồ - sơ đồ khối
- Lưu đồ hay sơ đồ khối là một công cụ trực quan để diễn đạt các thuật
toán. Biểu diễn thuật toán bằng lưu đồ sẽ giúp người đọc theo dõi được sự phân
cấp các trường hợp và quá trình xử lý của thuật toán. Phương pháp lưu đồ thường
được dùng trong những thuật toán có tính rắc rối, khó theo dõi được quá trình xử
lý.
- Ðể biểu diễn thuật toán theo sơ đồ khối, ta phải phân biệt hai loại thao
tác.
+ Một thao tác là thao tác chọn lựa dựa theo một điều kiện nào đó.
+ Các thao tác không thuộc loại chọn lựa được xếp vào loại hành
động.
- Ưu điểm
+ Trực quan, dễ hiểu, dễ thiết kế.
+ Cung cấp toàn cảnh, tổng quan về thuật toán.
- Nhược điểm
+ Cồng kềnh, đặc biệt đối với bài toán phức tạp
Một số khối trong sơ đồ khối dùng để biểu diễn thuật toán.
15
- Cấu trúc tuần tự : Các bước thực hiện theo một trình tự, hết bước này
tới bước khác.
- Cấu trúc rẽ nhánh:
+ Nếu biểu thức điều kiện đúng, thực hiện công việc 1
16
+ Nếu biểu thức điều kiện sai, thực hiện công việc 2
17
- Cấu trúc lặp
Ví dụ: Giải phương trình bậc nhất ax + b = 0
18
c. Mã giả
- Là ngôn ngữ tựa, gần giống như ngôn ngữ lập trình. Trong mã giả ta còn
sử dụng cả các ký hiệu toán học, các biến, và đôi khi cả cấu trúc kiểu thủ tục.
Cấu trúc thuật toán kiểu thủ tục thường được sử dụng để trình bày các thuật toán
đệ qui hay các thuật toán quá phức tạp cần phải được trình bày thành nhiều cấp
độ.
- Ưu điểm:
+ Tiện lợi, đơn giản.
+ Dễ hiểu, dễ diễn đạt.
- Cùng với việc sử dụng các biến, trong thuật toán rất thường gặp một phát
biểu hành động đặt (hay gán) một giá trị cho một biến.
19
Ví dụ: hành động tăng biến i lên 1 đơn vị có thể được viết như sau: i := i + 1
- Các cấu thường được sử dụng trong mã giả dựa theo ngôn ngữ lập trình
PASCAL gồm:
+ Cấu trúc chọn:
if (điều kiện) then (hành động)
if (điều kiện) then (hành động)
else (hành động)
+ Cấu trúc lặp:
while (điều kiện) do (hành động)
for (biến đếm) := (giá trị đầu) to (giá trị cuối) do (hành động)
Ví dụ: Thuật toán tìm nghiệm của phương trình bậc nhất ax+b=0
Nhập : 2 hệ số a, b,
Xuất : nghiệm của phương trình
Thuật toán:
1. a = 0
2. if b = 0 then
begin
Xuất kết quả: phương trình có vô số nghiệm
end
3. esle if b <> 0 then
Xuất kết quả: phương trình vô nghiệm
4. else if a <> 0
Xuất kết quả: phương trình có nghiệm x= -b/a
2.4. Viết chương trình
20
- Viết chương trình là dùng ngôn ngữ lập trình cụ thể nào để 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 viết chương trình mong muốn. Và đây cũng là một
trong những bước then chốt của người lập trình.
- Sau khi đã có thuật toán ta phải lập trình để thực hiện thuật toán đó. Muốn
lập trình đạt hiệu quả cao, cần phải có kỹ thuật lập trình tốt. Kỹ thuật lập trình tốt
thể hiện ở kỹ năng viết chương trình, khả năng gỡ rối và thao tác nhanh.
- Lập trình tốt không chỉ nắm vững ngôn ngữ lập trình là đủ, mà phải biết
cách viết chương trình một cách uyển chuyển, khôn khéo và phát triển dần dần để
chuyển các ý tưởng ra thành chương trình hoàn chỉnh.
a. Các thành phần cơ bản của ngôn ngữ lập trình Pascal
a.1 . Bộ ký tự
- Bộ 26 chữ Latinh:
+ Chữ in:
A, B, C, ..., X, Y, Z
+ Chữ thường:
a, b, c, ..., x, y, z
- Bộ chữ số thập phân:
0, 1, 2, 3, ..., 8, 9
- Ký tự gạch nối dưới:
_
- Các ký hiệu toán học:
+, -, *, /, =, <, >,<=,>=, (, ), [, }
a. 2. Từ khóa
- Định nghĩa : Là những từ dành riêng, không được dùng các từ khóa này
cho bất kỳ mục đích nào khác ngoài mục đích sử dụng do ngôn ngữ lập trình
quy định.
- Từ khóa chung: program, begin, end…
- Từ khóa để khai báo: var, const, array…
- Từ khóa của lệnh lựa chọn: if..then..else…
- Từ khóa của lệnh lặp: for ..to..do, while.. do
21
- Từ khóa toán tử: and, div, mod…
a.3. Danh hiệu tự đặt
- Định nghĩa: Định hiệu tự đặt là một dãy ký tự dùng để đặt tên cho các
hằng, biến, kiểu,... Khi đặt tên, ta phải chú ý một số điểm sau:
+ Không được đặt trùng tên với từ khoá
+ Ký tự đầu tiên của tên không được bắt đầu bởi các ký tự đặc biệt
hoặc chữ số.
+ Không được đặt tên với ký tự space, các phép toán.
Ví dụ: Các tên viết như sau là sai
#PHUONGNHUNG
Sai vì bắt đầu bằng ký tự đặc biệt.
SO 1
Sai vì có khoảng trắng .
ELSE
Sai vì trùng với từ khoá.
LAP-TRINH- TIN
Sai vì dấu trừ (-) là phép toán.
1ABC
Sai vì bắt đầu bằng chữ số.
b. Cấu trúc chung của một chương trình Pascal .
22
b1. Phần khai báo :
- Phần khai baó bắt đầu bằng từ khóa Program.
- Phần khai báo gồm:
+ Khai báo tên chương trình.
+ Khai báo thư viện.
+ Một số khai báo khác( khai báo biến, khai báo hằng…)
- Khai báo tên chương trình chấm dứt bằng dấu chấm phẩy(;). Tên
chương trình phải được đặt theo đúng quy cách của danh hiệu tự đặt. Phần này
có hay không cũng được.
- Ví dụ:
Program Giai _Phuong_trinh_bac_nhat;
Program timsolonnhat ;
- Khai báo các thư viện bằng từ khóa Uses.Ví dụ thư viện crt,
- Ví dụ:
Uses crt ;
{khai báo thư viện crt }
Thư viện crt trong Pascal cung cấp các chương trình có sẵn để làm việc
với màn hình và bàn phím.
- Ví dụ: Muốn xóa những gì đang có trên màn hình kết quả ta dùng lệnh
Clrscr.
- Khai báo Hằng: Hằng là đại lượng không đổi trong suốt quá trình thực
hiện chương trình( Hằng được sử dụng cho các giá trị xuất hiện nhiều lần trong
chương trình). Ta dùng tên hằng để chương trình rõ ràng và dễ sửa đổi.
+ Hằng được khai báo với từ khóa Const
+ Cú pháp Const <tên hằng> = <giá trị>;
- Ví dụ :
Const chiphi = 1000 ;
- Khai báo Biến: Là đại lượng mà giá trị của nó có thể thay đổi trong quá
trình thực hiện chương trình.
+ Biến được khai báo với từ khóa Var
23
+ Biến là tên của một vùng bộ nhớ lưu trữ dữ liệu.
+ Biến được xuất trong chương trình thông qua tên biến.
+ Biến là cấu trúc ghi nhớ dữ liệu, vì vậy phải quy định theo 1 kiểu
dữ liệu nào đó. Ví dụ: Real, Integer, byte,…
+ Cú pháp Var < danh sách biến > : < kiểu dữ liệu> ;
Trong đó : Danh sách biến là một hay nhiều tên biến, các tên biến được
viết cách nhau bởi dấu phẩy (,). Kiểu dữ liệu thường là một trong các kiểu dữ
liệu chuẩn hay kiểu dữ liệu do người lập trình định nghĩa.
Ví dụ :
Var x , y : integer ; A: Array[1..50] of real;
b2. Phần thân chương trình:
- Phần thân chương trình là phần đặc biệt quan trọng và bắt buộc phải có,
phần này luôn nằm giữa 2 từ khoá là begin và end. Ở giữa là lệnh mà các chương
trình chính cần thực hiện. Đề bài yêu cầu viết chương trình thực hiện công việc gì
thì ở phần thân phải có các câu lệnh dùng để thực hiện công việc đó. Sau từ khóa
end là dấu chấm (.) để báo kết thúc chương trình. Các lệnh sau dấu chấm đều
không có ý nghĩa.
24
-
Câu lệnh
Câu lệnh đơn giản
Lệnh gán (:=)
Ra dữ liệu
Vào dữ liệu
Câu lệnh có cấu
trúc
Lệnh
ghép(begin..end)
Lệnh chọn
(if..then..else)
Lệnh lặp
(for..to..do,….
- Các thủ tục nhập, xuất thường dùng
TT
Thủ
Cú pháp lệnh
Ý nghĩa lệnh
tục
Read(x1, x2,..., xn);
Nhập các biến x1, x2,…, xn theo
hàng ngang từ bàn phím (con trỏ
không xuống hàng).
1
Nhập
Readln(x1, x2, ..., xn);
Nhập các biến x1, x2,…, xn theo
hàng dọc từ bàn phím (mỗi lần nhập
con trỏ xuống hàng).
Readln;
Dừng chương trình, đợi Enter mới
tiếp tục.
Write(x1, x2, ..., xn);
Viết giá trị trong các biến x1, x2,..,xn
25