SlideShare a Scribd company logo
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
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
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
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
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
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
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ỗ
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ý
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
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
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
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 !
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 !
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ì ?
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
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 ?
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 !
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
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
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
ẬẬ
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
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
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
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}
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
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 ?
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
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
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
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
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
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
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 …
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
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
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
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
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
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

More Related Content

PDF
Chuong2 c
PDF
phân tích thiết kế hệ thống thông tin
PDF
Phạm văn ất
PDF
C++ buu chinh vien thong
PPT
bài giảng phân tích thiết kệ thống thông tin (hutech)
PDF
Lap trinh huong_doi_tuong
PPT
NGUYỄN ĐỖ QUỲNH NAM - K33103244
PPTX
kịch bản dạy học tin học 10 bai4
Chuong2 c
phân tích thiết kế hệ thống thông tin
Phạm văn ất
C++ buu chinh vien thong
bài giảng phân tích thiết kệ thống thông tin (hutech)
Lap trinh huong_doi_tuong
NGUYỄN ĐỖ QUỲNH NAM - K33103244
kịch bản dạy học tin học 10 bai4

Viewers also liked (7)

PPTX
Kịch Bản Dạy Học
PPTX
Kịch bản dạy học tin học lớp 10
PDF
669160 esw0whit00hoa0o0viet0nam00tv0
PPTX
Kbdh bài 16 tin hoc 10
DOC
Kế hoạch thực tập chủ nhiệm 2016
PPT
Bài 16- Định dạng văn bản
PDF
Bài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPT
Kịch Bản Dạy Học
Kịch bản dạy học tin học lớp 10
669160 esw0whit00hoa0o0viet0nam00tv0
Kbdh bài 16 tin hoc 10
Kế hoạch thực tập chủ nhiệm 2016
Bài 16- Định dạng văn bản
Bài 5: Các thuật toán sắp xếp và tìm kiếm cơ bản - Giáo trình FPT
Ad

Similar to Day hoc lt (aml) (20)

PDF
BAOCAO.pdf
PDF
Bài giảng------------------ CTDLGT 1.pdf
PPTX
giaithuatkhoa2024truongyeuquycuatoidoa11
PDF
Hdth01 ltudql2-lap tinhduongdoituong-vb
PDF
45128de03569526f74ab41afe7186aef
PDF
Dotnet
PDF
Cautrucdulieu full
 
PDF
4.1.phat trien ct ham-thutuc-tktt
PDF
Cấu truc-dữ-liệu-va-thuật-giải-1
DOC
Bài tập CTDL và GT 3
PDF
Bài 1: Tổng quan - NỀN TẢNG LẬP TRÌNH ỨNG DỤNG VỚI C#
PPT
Gioi Thieu
PPSX
Trần Thị Minh Hảo _ K33103226
DOC
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
PDF
Baigiangkythuatlaptrinh hvbcvt
PPT
Bai 1 tong quan ve ctdl&amp;gt
PDF
Ngon ngu lap_trinh_c++
PDF
Giao trinh ky thuat lap trinh 2
DOCX
Luận Văn Đề Cương Dùng Cho Ngành Công Nghệ Thông Tin Cấu Trúc Dữ Liệu Và Giả...
PPT
Ctdl 01 t_quan
BAOCAO.pdf
Bài giảng------------------ CTDLGT 1.pdf
giaithuatkhoa2024truongyeuquycuatoidoa11
Hdth01 ltudql2-lap tinhduongdoituong-vb
45128de03569526f74ab41afe7186aef
Dotnet
Cautrucdulieu full
 
4.1.phat trien ct ham-thutuc-tktt
Cấu truc-dữ-liệu-va-thuật-giải-1
Bài tập CTDL và GT 3
Bài 1: Tổng quan - NỀN TẢNG LẬP TRÌNH ỨNG DỤNG VỚI C#
Gioi Thieu
Trần Thị Minh Hảo _ K33103226
BÀI GIẢNG LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Baigiangkythuatlaptrinh hvbcvt
Bai 1 tong quan ve ctdl&amp;gt
Ngon ngu lap_trinh_c++
Giao trinh ky thuat lap trinh 2
Luận Văn Đề Cương Dùng Cho Ngành Công Nghệ Thông Tin Cấu Trúc Dữ Liệu Và Giả...
Ctdl 01 t_quan
Ad

More from Võ Tâm Long (20)

PDF
Chuanhk2
PDF
Chuanhk1
PDF
PDF
Ly p han 2
PDF
Phuongphap
PDF
HÓa 11
DOCX
Bai tap hoa hoc lop 11 ca nam
PDF
200211 gubryaltphcmhanoidansodichuyennoithi
PDF
7 chuyenkhao dicu-dothihoa
PPTX
Đô thị hóa TP.HCM 1986-2015
DOCX
Hoàn cảnh lịch sử và đường lối của đảng từ năm 1930 đến năm 1939
DOCX
Hoàn cảnh lịch sử và đường lối của đảng từ năm 1930 đến năm 1939
PPTX
Dioxin office
PPTX
Dioxin office
DOC
Vu kien chat doc mau da cam
PDF
Nvt phanquyet jw
DOC
Vu kien chat doc mau da cam
PPTX
PPTX
Thuyết trình cmts
PPTX
Chuanhk2
Chuanhk1
Ly p han 2
Phuongphap
HÓa 11
Bai tap hoa hoc lop 11 ca nam
200211 gubryaltphcmhanoidansodichuyennoithi
7 chuyenkhao dicu-dothihoa
Đô thị hóa TP.HCM 1986-2015
Hoàn cảnh lịch sử và đường lối của đảng từ năm 1930 đến năm 1939
Hoàn cảnh lịch sử và đường lối của đảng từ năm 1930 đến năm 1939
Dioxin office
Dioxin office
Vu kien chat doc mau da cam
Nvt phanquyet jw
Vu kien chat doc mau da cam
Thuyết trình cmts

Recently uploaded (20)

PPTX
Chương 5 của Tâm lí học - Tâm Lí Học Giáo Dục Đạo Đức
PDF
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
PDF
GIẢI PHÁP NÂNG CAO CÔNG TÁC CHỦ NHIỆM QUA CÁC TIẾT SINH HOẠT THEO CHỦ ĐỀ NHẰ...
PDF
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
PPTX
CHƯƠNG I excel,,,,,,,,,,,,,,,,,,,,,,,,,,
PDF
Public economy và vai trò trong phân bổ nguồn lực, cung cấp hàng hóa công, đi...
PPTX
Bai 44 Thuyet dong hoc phan tu chat khi Cau tao chat .pptx
PPTX
2. tràn khí màng phổi bệnh học nộii.pptx
PDF
Dao tao va Phat trien NỘI DUNG ÔN THI CHO SINH VIÊN
PPTX
Giáo án Lý Luận Chung về Hành chính Nhà nước cập nhật mới....
PDF
BỘ TÀI LIỆU CHINH PHỤC ĐỈNH CAO TIẾNG ANH NĂM 2026 CHUYÊN ĐỀ ÔN HỌC SINH GIỎI...
PPTX
Triết học: Vận dụng nguyên tắc phát triển trong nhận thức và hoạt động thực...
PDF
bai thao luan triet hoc mac lennin hayyy
PPTX
TIẾT 8, 9, 10. BÀI 32. DINH DƯỠNG VÀ TIÊU HÓA Ở NGƯỜI.pptx
PDF
TeétOrganicChemistryFromVietNamVeryHardd
PPT
SINH 8 TUYẾN YÊN TUYẾN GIÁP CÂU TẠO VÀ CHỨC NĂNG
PPTX
Bài 6 Du an bua an ket noi yeu thuong.pptx
DOCX
Ôn tập Văn học phương đông tài liệu tham khảo
PPTX
Triet hoc con nguoi va triet hoc thac si
PPTX
Flashcard giải pháp đơn giản – trực quan – hiệu quả, giúp học từ vựng theo t...
Chương 5 của Tâm lí học - Tâm Lí Học Giáo Dục Đạo Đức
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
GIẢI PHÁP NÂNG CAO CÔNG TÁC CHỦ NHIỆM QUA CÁC TIẾT SINH HOẠT THEO CHỦ ĐỀ NHẰ...
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
CHƯƠNG I excel,,,,,,,,,,,,,,,,,,,,,,,,,,
Public economy và vai trò trong phân bổ nguồn lực, cung cấp hàng hóa công, đi...
Bai 44 Thuyet dong hoc phan tu chat khi Cau tao chat .pptx
2. tràn khí màng phổi bệnh học nộii.pptx
Dao tao va Phat trien NỘI DUNG ÔN THI CHO SINH VIÊN
Giáo án Lý Luận Chung về Hành chính Nhà nước cập nhật mới....
BỘ TÀI LIỆU CHINH PHỤC ĐỈNH CAO TIẾNG ANH NĂM 2026 CHUYÊN ĐỀ ÔN HỌC SINH GIỎI...
Triết học: Vận dụng nguyên tắc phát triển trong nhận thức và hoạt động thực...
bai thao luan triet hoc mac lennin hayyy
TIẾT 8, 9, 10. BÀI 32. DINH DƯỠNG VÀ TIÊU HÓA Ở NGƯỜI.pptx
TeétOrganicChemistryFromVietNamVeryHardd
SINH 8 TUYẾN YÊN TUYẾN GIÁP CÂU TẠO VÀ CHỨC NĂNG
Bài 6 Du an bua an ket noi yeu thuong.pptx
Ôn tập Văn học phương đông tài liệu tham khảo
Triet hoc con nguoi va triet hoc thac si
Flashcard giải pháp đơn giản – trực quan – hiệu quả, giúp học từ vựng theo t...

Day hoc lt (aml)

  • 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