1. BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM TP HCM
280 An Dương Vương Q5 Tp HCM280, An Dương Vương, Q5, Tp HCM
ĐT: (08).8352020 - 8352021 Fax: (84-8).8398946
---------
KHOA TOÁN - TIN
Bộ môn Tin học
PHƯƠNG PHÁP DẠY HỌC TINPHƯƠNG PHÁP DẠY HỌC TINPHƯƠNG PHÁP DẠY HỌC TINPHƯƠNG PHÁP DẠY HỌC TIN
HỌC PHẦN 1HỌC PHẦN 1 –– 5 ĐVHT (75 TIẾT)5 ĐVHT (75 TIẾT)
PHẦN CƠ BẢNPHẦN CƠ BẢNPHẦN CƠ BẢNPHẦN CƠ BẢN
Tp. Hồ Chí Minh, 10/2006
2. BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM TP HCM
280 An Dương Vương Q5 Tp HCM280, An Dương Vương, Q5, Tp HCM
ĐT: (08).8352020 - 8352021 Fax: (84-8).8398946
---------
KHOA TOÁN - TIN
Bộ môn Tin học
CHUYÊN ĐỀ DẠY HỌC LẬP TRÌNHCHUYÊN ĐỀ DẠY HỌC LẬP TRÌNHCHUYÊN ĐỀ DẠY HỌC LẬP TRÌNHCHUYÊN ĐỀ DẠY HỌC LẬP TRÌNH
DỰA TRÊN TƯ TƯỞNG CỦA DẠY HỌC LẬP TRÌNHDỰA TRÊN TƯ TƯỞNG CỦA DẠY HỌC LẬP TRÌNH
THEO A MODELING LANGUAGE (AML)THEO A MODELING LANGUAGE (AML)
ThS Lê Đứ L ĐH S Ph T HCMThS. Lê Đức Long – ĐH Sư Phạm, Tp.HCM
Email: ldlong@math.hcmup.edu.vn; longld@hcm.vnn.vn
C ll h 0913 766 057Cell phone: 0913. 766. 057
3. THẾ GIỚI THỰC vs VIỆC THỰC HIỆN TRÊN MÁY TÍNHTHẾ GIỚI THỰC vs VIỆC THỰC HIỆN TRÊN MÁY TÍNH
Ế ỚẾ ỚTHẾ GIỚI THỰCTHẾ GIỚI THỰC
TIN HỌC HÓATIN HỌC HÓA
VIỆC THỰC HIỆN TRÊNVIỆC THỰC HIỆN TRÊN
MÁY TÍNHMÁY TÍNHMÁY TÍNHMÁY TÍNH
Edited by DucLong, Le 3
LẬP TRÌNHLẬP TRÌNH CHƯƠNG TRÌNHCHƯƠNG TRÌNH
4. CHƯƠNG TRÌNH vs LẬP TRÌNHCHƯƠNG TRÌNH vs LẬP TRÌNH
Chương trìnhChương trìnhBên ngoàiBên ngoài Bên trongBên trongChương trìnhChương trìnhBên ngoàiBên ngoài Bên trongBên trong
Công cụ hỗ trợCông cụ hỗ trợ
ngườidùng thựcngườidùng thực
hiệ tốt hiệhiệ tốt hiệ
Hệ thống các đơn vịHệ thống các đơn vị
xử lý cùng với đơnxử lý cùng với đơn
vị dữ liệu liên quanvị dữ liệu liên quanhiện tốt nghiệp vụhiện tốt nghiệp vụ vị dữ liệu liên quanvị dữ liệu liên quan
UserUser Programmer,Programmer,
IT engineerIT engineer
Nghiệp vụNghiệp vụ Đvị xử lýĐvị xử lý
Lập trìnhLập trìnhMô Tạo
Edited by DucLong, Le 4
gg
cần hỗ trợcần hỗ trợ
ýý
Đvị dữ liệuĐvị dữ liệu
Lập trìnhLập trìnhhình
hóa
thành
5. DẠY HỌC LẬP TRÌNH VỚI AMLDẠY HỌC LẬP TRÌNH VỚI AML
Tác giả: Nguyễn Tiến Huy ĐHKHTN Tp HCMTác giả: Nguyễn Tiến Huy, ĐHKHTN Tp.HCM
AML bao gồm hệ thống các sơ đồ được sử dụng như
một công cụ hỗ trợ giảng dạy về lập trìnhmột công cụ hỗ trợ giảng dạy về lập trình
AML hỗ trợ giáo viên:
o Soạn thảo trình bày các bài tập lập trình một cách rõ ràng súco Soạn thảo, trình bày các bài tập lập trình một cách rõ ràng, súc
tích và trực quan
o Soạn thảo, trình bày bài giải một cách ngắn gọn, đơn giản và độc
lậ ới NNLTlập với NNLT
AML hỗ trợ học sinh:
o Tiếp nhận à hiể rõ các ê cầ của bài tập lập trình của go Tiếp nhận và hiểu rõ các yêu cầu của bài tập lập trình của gv
o Tiếp thu dễ dàng các bài giải của gv
o Bước đầu rèn luyện tư duy lập trình theo thiết kế và lập trình theoo Bước đầu rèn luyện tư duy lập trình theo thiết kế và lập trình theo
yêu cầu với các bài tập lập trình đây chính là các tư duy nền
tảng cho việc phát triển các phần mềm ứng dụng sau này
Edited by DucLong, Le 5
6. HỌC LẬP TRÌNH VỚI AMLHỌC LẬP TRÌNH VỚI AML
Ý tưởng: xây dựng chương trình xuất phát từ sự phân
tích - thiết kế theo qui trình công nghệ phần mềm MÔ
HÌNH HOÁ BÀI TOÁN BẰNG CÁC SƠ ĐỒ, HÌNH VẼ
Sử dụng hệ thống các sơ đồ để thực hiện
o Sơ đồ phục vụ cho việc mô tả yêu cầu: DFD (Data Flow Diagram)p ụ ụ ệ y ( g )
o Sơ đồ mô tả kiến trúc tổ chức các thành phần của chương
trình/phần mềm: MAD (Module Architecture Diagram)
o Sơ đồ mô tả hoạt động phối hợp giữa các thành phần của
chương trình/ phần mềm: FCD (Function Collaboration Diagram)
Thiết kế iải th ật hi tiết h từ hà thủ t biểThiết kế giải thuật chi tiết cho từng hàm, thủ tục biểu
diễn bằng ngôn ngữ tự nhiên hoặc sơ đồ khối
ằCài đặt bằng ngôn ngữ lập trình Pascal phong cách lập
trình hướng thủ tục
Edited by DucLong, Le 6
7. NHẮC LẠI Ý NGHĨA MỘT SỐNHẮC LẠI Ý NGHĨA MỘT SỐ
ÁÁKHÁI NIỆMKHÁI NIỆMBiểu diễn thông tin trong thế giới thực
ấ ể
BiếnBiến
Vùng nhớ có cấu trúc được mô tả bởi một kiểu dữ liệu
Số nguyên 4 Biến kiểu số nguyên có giá trị là 4
Phân số 4/3 Biến có kiểu PHANSO
Ngày 15/9/2006 Biến có kiểu Ngày
Biểu diễn loại thông tin trong thế giới thực
Kiểu dữ liệuKiểu dữ liệuKiểu dữ liệuKiểu dữ liệu
Cấu trúc dữ liệu được định nghĩa
Kiểu thư viện – đã tạo sẵn dưới dạng từ khóa trong NNLT
Kiể t đị h hĩ kiể d ời lậ t ì h t t
Các bước thực hiện 1 nghiệp vụ trong thực tế
LệnhLệnh
Kiểu tự định nghĩa – kiểu do người lập trình tự tạo
ệệ
Những chỉ thị/lệnh bên trong CPU lệnh trong NNLT
Một nghiệp vụ trong thực tế
Hàm xử lýHàm xử lýHàm xử lýHàm xử lý
Bao gồm những lệnh để thực hiện trọn vẹn 1 nghiệp vụ
Một tổ chức bao gồm nhiều nghiệp vụ
Đơn thểĐơn thể
Edited by DucLong, Le 7
Một tổ chức bao gồm nhiều nghiệp vụ
Đơn thểĐơn thể
Hệ thống những hàm xử lý để chung 1 chỗ
8. CÁC BƯỚC XÂY DỰNGCÁC BƯỚC XÂY DỰNG
C Ơ G ÌC Ơ G ÌCHƯƠNG TRÌNHCHƯƠNG TRÌNH
YÊU CẦUYÊU CẦU CHƯƠNG TRÌNHCHƯƠNG TRÌNH
Lập trìnhLập trình
Xác định và trình
bày lại yêu cầu
ế ếế ế Lập trìnhLập trìnhThiết kếThiết kế
chương trìnhchương trình
Lập trìnhLập trình
Phân tíchPhân tích
yêu cầuyêu cầu
Lập trìnhLập trình
Thiết kếThiết kế
chương trìnhchương trình
Tạo lập chương
trình nguồn
Edited by DucLong, Le 8
gg
Mô tả các thành phần
của chương trình Xây dựng đơn vị dữ
liệu và đơn vị xử lý
9. KỸ THUẬT LẬP TRÌNH CƠ BẢNKỸ THUẬT LẬP TRÌNH CƠ BẢN
TƯ TƯỞNGTƯ TƯỞNG
BÀI TOÁNBÀI TOÁN
ĐẶC TẢ YÊU CẦUĐẶC TẢ YÊU CẦU PHÂN TÍCHPHÂN TÍCH THIẾT KẾTHIẾT KẾ CÀI ĐẶTCÀI ĐẶT
BÀI TOÁNBÀI TOÁN
ĐẶC TẢ YÊU CẦUĐẶC TẢ YÊU CẦU PHÂN TÍCHPHÂN TÍCH THIẾT KẾTHIẾT KẾ CÀI ĐẶTCÀI ĐẶT
Edited by DucLong, Le 9
CHƯƠNG TRÌNHCHƯƠNG TRÌNH
10. TIỀN ĐỀ XUẤT PHÁTTIỀN ĐỀ XUẤT PHÁT
Ngữ cảnh giảng dạy là HS lớp 11
Chương trình Tin học - Kỹ thuật lập trình
với NNLT Pascalvới NNLT Pascal
Phần tự chọn nâng caoự ọ g
Kiến thức đã biết:
ấ ề ểCác cấu trúc điều khiển
Khai báo và sử dụng chương trình con
Khai báo và sử dụng kiểu cấu trúc: mẫu tin (Record),
chuỗi (String), mảng (Array)( g), g ( y)
Kiến thức cần học:
ế
Edited by DucLong, Le 10
Kỹ thuật lập trình theo phương pháp tiếp cận AML
11. Ví dụ minh hoạ 1Ví dụ minh hoạ 1
Bài toán: Viết chương trình xác định toạ
độ trung điểm I khi biết toạ độ của 2 điểm
A và BA và B
Các bước trình bày và hướng dẫn:y g
o Xác định yêu cầu của bài toán
Phâ tí h bài t áo Phân tích bài toán
o Thiết kế chương trìnhg
o Các giải thuật chi tiết
Cài đặt h t ì h h à hỉ ho Cài đặt chương trình hoàn chỉnh
Edited by DucLong, Le 11
12. XÁC ĐỊNH YÊU CẦU CỦAXÁC ĐỊNH YÊU CẦU CỦA
À ÁÀ ÁBÀI TOÁNBÀI TOÁN
Bài toán: Viết
Bài toán yêuchương trình
xác định toạ độ
Bài toán yêu
cầu việc gì ?ị ạ ộ
trung điểm I khi
biết toạ độ của
Cho trước gì ?
Cần tìm gì ?biết toạ độ của
2 điểm A và B
Cần tìm gì ?
Bằng toán học
ếsẽ giải quyết
những gì ?g g
BÀI TOÁN PHẢI ĐƯỢC LÀM RÕ CÁC YÊU CẦU …BÀI TOÁN PHẢI ĐƯỢC LÀM RÕ CÁC YÊU CẦU …
Edited by DucLong, Le 12
ỢỢ
... NẾU CHƯA RÕ PHẢI HỎI LẠI ĐỂ NẮM VỮNG !... NẾU CHƯA RÕ PHẢI HỎI LẠI ĐỂ NẮM VỮNG !
13. PHÂN TÍCH BÀI TOÁNPHÂN TÍCH BÀI TOÁN
Bài toán có:Bài toán có:
o Input: ?
o Output: ?
Dữ liệ ủ bài t á ầ làDữ liệu của bài toán cần là
o Tp nhập: ?p ập
o Tp xuất: ?
ầ ể ế
DÙNG MÔ HÌNH !DÙNG MÔ HÌNH !Thể hiện bằngThể hiện bằng
2 thành phần2 thành phần
Xử lý cần làm để cho kết quả
mong muốn ?mong muốn ?
Edited by DucLong, Le 13
MÔ TẢ QUI TẮC XỬ LÝ BẰNG LỜI !MÔ TẢ QUI TẮC XỬ LÝ BẰNG LỜI !
14. Biểu diễn ở giai đoạn phân tích:Biểu diễn ở giai đoạn phân tích:
Sơ đồ luồng dữ liệu (DFD)
Qui tắc xử lýQ ý
Cho 2 điểm trong mặt phẳng A(xA, yA)
và B(xB, yB)
Trung điểm I (x y ) của đoạn AB đượcTrung điểm I (xI, yI) của đoạn AB được
xác định theo công thức:
xI = (xA + xB)/2
y = (y + y )/2yI = (yA + yB)/2
Cá h ử lý ủ thế iới th
Luồng dữ liệu:
D T độ ủ 2 điể A B
Cách xử lý của thế giới thực
o D1: Toạ độ của 2 điểm A, B
o D2: Toạ độ trung điểm I của A, B Làm rõ đầu vào (Input) D1
và đầu ra (Output) D2( p ) 2
Toạ độ của 2 điểm A, B phải là loại ... ? Thuộc kiểu gì ?
Edited by DucLong, Le 14
ạ ộ , p ạ ộ g
Toạ độ của điểm I phải là loại ... ? Thuộc kiểu gì ?
15. MMô tả thành phần dữ liệu vàô tả thành phần dữ liệu và
ầầthành phần xử lý …thành phần xử lý …
Dữ liệu: Xử lý:
o Toạ độ x, y của
A, B, I
o Nhập điểm A, B
toạ độ A,B
o Loại số
o Kiểu số thực
o Tính trung điểm I
theo công thứco Kiểu số thực g
o Xuất toạ độ điểm
ID1: A B ID1: A, B
D2: I
Edited by DucLong, Le 15
16. THIẾT KẾ CHƯƠNG TRÌNHTHIẾT KẾ CHƯƠNG TRÌNH
Sử dụng bao
nhiêu biến ?
Chương trình sẽ
như thế nào ?
Biến loại gì ? Có bao nhiêu
hàm thủ tục ?hàm, thủ tục ?
ế6 biến : xA, yA, xB, yB, xI, yI
Kiểu số thực
Chương trình với các lệnhChương trình với các lệnh
nhập, xử lý, xuất
CÓ THỂ CẢI TIẾN GÌ CHO VIỆC KHAI BÁO DỮ LIỆU ?CÓ THỂ CẢI TIẾN GÌ CHO VIỆC KHAI BÁO DỮ LIỆU ?
Edited by DucLong, Le 16
CÓ THỂ CẢI TIẾN GÌ CHO VIỆC KHAI BÁO DỮ LIỆU ?CÓ THỂ CẢI TIẾN GÌ CHO VIỆC KHAI BÁO DỮ LIỆU ?
VIẾT LẠI CHƯƠNG TRÌNH THEO HƯỚNG THỦ TỤC ?VIẾT LẠI CHƯƠNG TRÌNH THEO HƯỚNG THỦ TỤC ?
17. NÂNG CAO MỨC ĐỘ THIẾT KẾ VÀ LẬPNÂNG CAO MỨC ĐỘ THIẾT KẾ VÀ LẬP
TRÌNH BẰNG CÁCH SỬ DỤNG CẤU TRÚC VÀTRÌNH BẰNG CÁCH SỬ DỤNG CẤU TRÚC VÀ
T độ điể A
TRÌNH BẰNG CÁCH SỬ DỤNG CẤU TRÚC VÀTRÌNH BẰNG CÁCH SỬ DỤNG CẤU TRÚC VÀ
CHƯƠNG TRÌNH CON …CHƯƠNG TRÌNH CON …
Toạ độ điểm A,
B, I đều là x, y Không thể hiện
Xây dựng cấu
trúc ĐIỂM gồm
chương trình
dưới dạng tuần tựtrúc ĐIỂM gồm
2 thành phần:
x y
ạ g ự
Sử dụng chương
trình conx, y trình con
o Nhap_diem
o Tinh_trung_diem
o Xuat_diem
CÓ CẤU TRÚC, DỄ ĐỌC,
DỄ BẢO TRÌ !!!
Edited by DucLong, Le 17
GẦN GŨI VỚI THẾ GIỚI THỰC !
18. XÂY DỰNG ĐƠN VỊ DỮ LIỆU VÀ ĐƠN VỊ XỬXÂY DỰNG ĐƠN VỊ DỮ LIỆU VÀ ĐƠN VỊ XỬ
LÝ CỦA CHƯƠNG TRÌNHLÝ CỦA CHƯƠNG TRÌNH
Mô tả kiểu dữ liệu cấu trúc
LÝ CỦA CHƯƠNG TRÌNH …LÝ CỦA CHƯƠNG TRÌNH …
Mô tả các kiểu dữ liệu tự
định nghĩa (CẤU TRÚC)
ồ ế ể
Mô tả cấu trúc của chương trình
Sơ đồ kiến trúc các đơn thể (MAD)
Dạng tổng quátDạng tổng quát
Dạng chi tiếtDạng chi tiết
Edited by DucLong, Le 18
19. VIẾT GIẢI THUẬT TỔNG QUÁT VÀ VẼ
SƠ ĐỒ THỦ TỤC/HÀM
Sơ đồ phối hợp các hàm xử lý (FCD)
Mô tả kiến trúc của chương trình
SƠ ĐỒ THỦ TỤC/HÀM …
Sơ đồ phối hợp các hàm xử lý (FCD)
Edited by DucLong, Le 19
20. VIẾT GIẢI THUẬT TỔNG QUÁT VÀ VẼ
SƠ ĐỒ THỦ TỤC/HÀMSƠ ĐỒ THỦ TỤC/HÀM …
Đối ới h i h hổ thô ê ử dĐối ới h i h hổ thô ê ử dĐối với học sinh phổ thông nên sử dụngĐối với học sinh phổ thông nên sử dụng
cách này để trình bày cấu trúc xử lý củacách này để trình bày cấu trúc xử lý của
ch ơng trìnhch ơng trình dễ hiể !!!dễ hiể !!!chương trìnhchương trình dễ hiểu !!!dễ hiểu !!!
SƠ ĐỒ THỦ TỤC/HÀMSƠ ĐỒ THỦ TỤC/HÀM
Prog.Prog.
Nh diNh di Ti h t diTi h t di X t diX t diNhap_diemNhap_diem Tinh_trung_diemTinh_trung_diem Xuat_diemXuat_diem
GIẢI THUẬT TỔNG QUÁTGIẢI THUẬT TỔNG QUÁT
Edited by DucLong, Le 20
ẬẬ
21. MÔ TẢ CHI TIẾT CHO TỪNG THỦ TỤC/HÀM - SỬ DỤNG
CÁCH VIẾT MÃ GIẢ ĐỂ MINH HOẠ (HOẶC VIẾT LUÔN BẰNG
Thuật giải hàm xử lý chính Lập trình với Pascal
NNLT ĐANG HỌC …
Thuật giải hàm xử lý chính
Program Xac_dinh_trung_diem;
Khai báo sử dụng 2 điểm A, B
Kh i bá ử d điể I
Lập trình với Pascal
Program Xac_dinh_trung_diem;
Type
DIEM R dKhai báo sử dụng điểm I
Nhập dữ liệu cho A, B
DIEM = Record
x : Real;
y : Real;
I = Trung điểm của A, B
end;
Var
A, B: DIEM;
Xuất I
, ;
I: DIEM;
Begin
Nhập dữ liệu cho A BNhập dữ liệu cho A, B
I = Trung điểm của A, B
Xuất I
EndEnd.
Edited by DucLong, Le 21
22. MÔ TẢ CHI TIẾT CHO TỪNG THỦ TỤC/HÀM - SỬ DỤNG
CÁCH VIẾT MÃ GIẢ ĐỂ MINH HOẠ (HOẶC VIẾT LUÔN BẰNG
Thuật giải chi tiết Thuật giải chi tiết
NNLT ĐANG HỌC …
Thuật giải chi tiết
Function Nhap_diem(): DIEM;
Khai báo sử dụng điểm P;
Nhậ dữ liệ h P
Thuật giải chi tiết
Procedure Xuat_diem(P: DIEM);
X ất á t độ ủ PNhập dữ liệu cho P;
Nhap_diem = P;
Xuất các toạ độ của P;
Thuật giải chi tiết
Function Tinh trung diem(P1: DIEM; P2: DIEM): DIEM;Function Tinh_trung_diem(P1: DIEM; P2: DIEM): DIEM;
Khai báo sử dụng điểm P;
Tính P.x = (P1.x + P2.x)/2;
Tính P.y = (P1.y + P2.y)/2;
Tinh_trung_diem = P;
Edited by DucLong, Le 22
23. CÀI ĐẶT CHƯƠNG TRÌNHCÀI ĐẶT CHƯƠNG TRÌNHCÀI ĐẶT CHƯƠNG TRÌNHCÀI ĐẶT CHƯƠNG TRÌNH
D a trên các thiết kế âNội dung nàyNội dung này Dựa trên các thiết kế xây
dựng chương trình
Nội dung nàyNội dung này
thường để hsthường để hs
thực hiệnthực hiện –– gvgv ự g g
Thực hiện theo nguyên tắc:
ể
thực hiệnthực hiện –– gvgv
kiểm tra …kiểm tra …
o Khai báo kiểu dữ liệu
o Khai báo biếno Khai báo biến
o Viết từng thủ tục, hàm
ồ ốo Dựa trên sơ đồ phối hợp các
hàm để thể hiện các lời gọi thủệ gọ
tục, hàm trong chương trình
chính
Edited by DucLong, Le 23
chính
24. CẤU TRÚC CHƯƠNG TRÌNHCẤU TRÚC CHƯƠNG TRÌNH
PASCALPASCAL
{Chú thí h đầ h t ì h tê ời th hiệ tê l t ữ bài t á ý{Chú thích đầu chương trình: tên người thực hiện, tên lưu trữ, bài toán, ý
tưởng và giải thuật tổng quát, ngày cập nhật cuối cùng}
PROGRAM TEN_CHƯƠNG _TRINH; { Phần tiêu đề}
USES CRT PRINTER { Phầ kh i bá }USES CRT, PRINTER ; { Phần khai báo}
LABEL …
CONST …
TYPE …
VAR
{Khai báo đầu vào};{ };
{Khai báo đầu ra};
{Các biến trung gian};
PROCEDURE {phần mô tả chương trình con}PROCEDURE … {phần mô tả chương trình con}
FUNCTION …
BEGIN { Phần thân chương trình}
…
{Các câu lệnh }
ế
Edited by DucLong, Le 24
END. {kết thúc chương trình}
25. Ví dụ minh hoạ 2Ví dụ minh hoạ 2
Bài toán: Viết chương trình nhập vào một
hàm số bậc 2, tính và xuất ra cực trị của
hàmhàm
Các bước trình bày và hướng dẫn:y g
o Xác định yêu cầu của bài toán
Phâ tí h bài t áo Phân tích bài toán
o Thiết kế chương trìnhg
o Các giải thuật chi tiết
Cài đặt h t ì h h à hỉ ho Cài đặt chương trình hoàn chỉnh
Edited by DucLong, Le 25
26. XÁC ĐỊNH YÊU CẦU CỦAXÁC ĐỊNH YÊU CẦU CỦA
À ÁÀ ÁBÀI TOÁNBÀI TOÁN
Bài toán: Viết
Bài toán yêuchương trình
nhập vào một
Bài toán yêu
cầu việc gì ?ập ộ
hàm số bậc 2,
tính và xuất ra
Cho trước gì ?
Cần tìm gì ?tính và xuất ra
cực trị của hàm
Cần tìm gì ?
Bằng toán học
ếsẽ giải quyết
những gì ?
ắ ắắ ắ
g g
Làm rõ các thắc mắc ???Làm rõ các thắc mắc ???
-- Nhập vào hàm số bậc 2 là nhập những gì ?Nhập vào hàm số bậc 2 là nhập những gì ?
Edited by DucLong, Le 26
ập ậ ập g gập ậ ập g g
-- Xuất cực trị là xuất ra những gì ? Thành phầnXuất cực trị là xuất ra những gì ? Thành phần
cần xuất là cái gì ? Xuất ra như thế nào ?cần xuất là cái gì ? Xuất ra như thế nào ?
27. PHÂN TÍCH BÀI TOÁNPHÂN TÍCH BÀI TOÁN
S đồ l ồ dữ liệ (DFD)Sơ đồ luồng dữ liệu (DFD)
Q i tắ ử lýQui tắc xử lý
Cho hàm số bậc hai f(x) = ax2+bx+c (với a ≠ 0)
Cực trị M của f được xác định như sau:
xM = Nghiệm của phương trình f'(x) = 0
(xM = -b/2a)
yM = f(xM) = axM
2+bxM+cyM ( M) M M
Nếu a > 0 thì M là cực tiểu
Nếu a < 0 thì M là cực đại
Luồng dữ liệu:
o D1: Các hệ số a, b, c của hàm số bậc hai f(x) = ax2+bx+c
ố(Với a, b, c là ba số thực, và a ≠ 0)
o D2: Toạ độ cực trị và loại cực trị (cực đại, cực tiểu)
Edited by DucLong, Le 27
28. THIẾT KẾ CHƯƠNG TRÌNHTHIẾT KẾ CHƯƠNG TRÌNH
Mô tả kiểu dữ liệu cấu trúc Sơ đồ kiến trúc các đơn thể (MAD)
Xac_dinh_cuc_tri
ệ ( )
Dạng tổng quátDạng tổng quát
Program Xac dinh cuc tri;Dạng chi tiếtDạng chi tiết Program Xac_dinh_cuc_tri;Dạng chi tiếtDạng chi tiết
Edited by DucLong, Le 28
29. VIẾT GIẢI THUẬT TỔNG QUÁT VÀ VẼ SƠ ĐỒ THỦ TỤC/HÀM
Sơ đồ phối hợp các hàm xử lý (FCD)
Edited by DucLong, Le 29
30. VIẾT GIẢI THUẬT TỔNG QUÁT VÀ VẼ
SƠ ĐỒ THỦ TỤC/HÀMSƠ ĐỒ THỦ TỤC/HÀM …
Bắt đầu
SƠ ĐỒ THỦ TỤC/HÀMSƠ ĐỒ THỦ TỤC/HÀM
a, b, c (a ≠ 0)
Prog.Prog.
xM -b/2a
yM axM
2
+bxM+c
Nhap_tam_thucNhap_tam_thuc Tinh_cuc_triTinh_cuc_tri Xuat_cuc_triXuat_cuc_tri
yM M M
Đ
Tinh_tri_tam_thucTinh_tri_tam_thuc
a > 0
Đ
S
Tb ‘cực đại’ Tb ‘cực tiểu’
M(xM,yM); Tb
Edited by DucLong, Le 30
GIẢI THUẬT TỔNG QUÁTGIẢI THUẬT TỔNG QUÁTKết thúc
31. MÔ TẢ CHI TIẾT CHO TỪNG THỦ TỤC/HÀM - SỬ DỤNG
CÁCH VIẾT MÃ GIẢ ĐỂ MINH HOẠ (HOẶC VIẾT LUÔN BẰNG
Thuật giải chi tiết các hàm
NNLT ĐANG HỌC …
ậ g
Tinh_cuc_tri(P: TAM_THUC): CUC_TRI;
Khai báo cực trị KqKhai báo cực trị Kq
Kq.x = -P.b/(2*P.a)
Kq y = Tinh tri tam thuc(P Kq x);
Tuỳ theo trình độTuỳ theo trình độ
hs mà thể hiệnhs mà thể hiện
ố ấố ấKq.y = Tinh_tri_tam_thuc(P, Kq.x);
Nếu P.a > 0 thì Kq.Loai = 'cuc tieu';
ế 0 ì
một số hay tất cảmột số hay tất cả
các thủcác thủ
tục/hàmtục/hàmNếu P.a < 0 thì Kq.Loai = 'cuc dai';
Trả kết quả về là Kq
tục/hàm…tục/hàm…
Tinh_tri_tam_thuc(P: TAM_THUC; x: Real): Real;
Khai báo số thực tKhai báo số thực t
t = P.a*x*x + P.b*x + P.c;
Edited by DucLong, Le 31
Trả kết quả về là t
32. MÔ TẢ CHI TIẾT CHO TỪNG THỦ TỤC/HÀM - SỬ DỤNG
CÁCH VIẾT MÃ GIẢ ĐỂ MINH HOẠ (HOẶC VIẾT LUÔN BẰNG
Thuật giải hàm xử lý chính Lập trình với Pascal
NNLT ĐANG HỌC …
Thuật giải hàm xử lý chính
Program Xac_dinh_cuc_tri;
Khai báo sử dụng tam thức P;
ử
Lập trình với Pascal
Program Xac_dinh_cuc_tri;
Type
Khai báo sử dụng cực trị M;
Nhập dữ liệu cho P;
TAM_THUC = Record
..................
end;
M = Cực trị của P;
CUC_TRI = Record
..................
end;
Xuất M;
end;
Var
P: TAM_THUC;
M: CUC TRI;M: CUC_TRI;
Begin
Nhập dữ liệu cho P;
M C t ị ủ PM = Cực trị của P;
Xuất M;
End.
Edited by DucLong, Le 32
33. TÓM TẮTTÓM TẮT
Xác định bài toán (I), (O)
Phân tích bài toánTrìnhTrình
Phân tích bài toán
o Mô hình luồng dữ liệu
o Qui tắc xử lý
bày sẵnbày sẵn
cho hscho hs
khi chokhi cho o Qui tắc xử lý
Thành phần dữ liệu + Thành phần xử lý
Thiết kế chương trình
khi chokhi cho
bàibài
toán …toán …
Thiết kế chương trình
o Đơn vị dữ liệu, đơn vị xử lý: thiết kế dữ liệu ,
thiết kế xử lý (sơ đồ kiến trúc các đơn thể, giải
ổ
TuỳTuỳ
theotheo ý ( , g
thuật tổng quát)
o Thiết kế các hàm, vẽ sơ đồ phối hợp các hàm
(S đồ thủ t /hà )
trình độtrình độ
hs màhs mà
hdẫn …hdẫn …
(Sơ đồ thủ tục/hàm)
o Thuật giải chi tiết từng hàm
Cài đặt ắ ể ấắ ể ấ
Edited by DucLong, Le 33
Cài đặt Bắt buộc hs thể hiện trên giấy vàBắt buộc hs thể hiện trên giấy và
trên máy …trên máy …
34. Bài t á Viết h t ì h hậ à ộtBài toán: Viết chương trình nhập vào một
số nguyên dương, kiểm tra số đó có phảig y g, p
là số hoàn chỉnh không ?
Cá b ớ t ì h bà à h ớ dẫCác bước trình bày và hướng dẫn:
o Xác định yêu cầu của bài toáno Xác định yêu cầu của bài toán
o Phân tích bài toán
ế ếo Thiết kế chương trình
o Các giải thuật chi tiếto Các giải thuật chi tiết
o Cài đặt chương trình hoàn chỉnh
Edited by DucLong, Le 34
35. Xác định bài toánXác định bài toánịị
(I): số nguyên dương n(I): số nguyên dương n
(O): tb số n là số hoàn chỉnh
ố ố ỉhoặc số n không là số hoàn chỉnh
Định nghĩa: một số nguyên dươngĐịnh nghĩa: một số nguyên dương
gọi là số hoàn chỉnh, nếu tổng các
ước số của nó bằng tích các ướcước số của nó bằng tích các ước
số của nó (không kể chính nó)
Ví dụ:
o số 6 ‘là số hoàn chỉnh’, vì 1+2+3 = 1.2.3,
o số 10 ‘kô là số hoàn chỉnh’,
vì 1+2+5 ≠ 1 2 5
Edited by DucLong, Le 35
vì 1+2+5 ≠ 1.2.5
36. Phân tích bài toánPhân tích bài toán
Sơ đồ luồng dữ liệu (DFD)
Q i tắ ử lýQui tắc xử lý
Nhập số n
Tính tổng các ước số của n: Sg
Lặp i từ 1 … n-1 làm
Nếu n mod i = 0 thỏa
Cộng dồn SCộng dồn S
Cuối nếu
Cuối lặp
Tính tích các ước số của n: P
Luồng dữ liệu:
o D1: Số nguyên n (Với n > 0)
Tính tích các ước số của n: P
So sánh S và P và xuất thông báo
o D1: Số nguyên n (Với n > 0)
o D2: Chuỗi Tb
Ử ÝỬ ÝXỬ LÝXỬ LÝ::
Nhập số nNhập số n
Tính tổng S, tích PTính tổng S, tích P
Edited by DucLong, Le 36
DỮ LIỆUDỮ LIỆU: số nguyên n (n>0) và chuỗi tb: số nguyên n (n>0) và chuỗi tb
gg
So sánh S và PSo sánh S và P
Xuất tbXuất tb
37. Thiết kế chương trìnhThiết kế chương trìnhgg
Đơn vị dữ liệu Đơn vị xử lý
n : integer;
Kiểm tra n>0 khi nhập
-Thủ tục Nhap(n)
-Hàm tính TongS(n)Kiểm tra n>0 khi nhập g ( )
-Hàm tính TichP(n)
-Hàm Sosanh(S,P)
-Thủ tục Xuat(S,P)
Sơ đồ kiến trúc các đơn thể (MAD)
Giải thuật tổng quát
Thủ tục Xuat(S,P)
Giải thuật tổng quát
Sơ đồ thủ tục/hàm
Prog.Prog.
Giải thuật chi tiết
Sơ đồ thủ tục/hàm
NhapNhap TongSTongS TichPTichP XuatXuat
ậ
SosanhSosanh
Edited by DucLong, Le 37
38. CàiCài đặđặt …t …
Dựa trên sơ đồ thủ tục/hàm để cài đặt các
chương trình con và chương trình chính
Prog.Prog.Prog.Prog.
NhapNhap TongSTongS TichPTichP XuatXuat
SosanhSosanh
Cài đặt các chương trình con
Cài đặt chương trình chính
Edited by DucLong, Le 38
39. BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM TP HCM
280 An Dương Vương Q5 Tp HCM280, An Dương Vương, Q5, Tp HCM
ĐT: (08).8352020 - 8352021 Fax: (84-8).8398946
---------
KHOA TOÁN - TIN
Bộ môn Tin học