So sánh chương trình con và chương trình chính năm 2024

  • 1. TRÌNH CON VÀ LẬP TRÌNH CÓ CẤU TRÚC BÀI 17: CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI Nhóm 22: Trần Nữ Tú Trinh – K33103060 Nguyễn Tiến Dưỡng – K33103008
  • 2. một ngũ giác (như hình vẽ) với các độ dài a, b, c, d, e, f, g. Hãy tính diện tính hình sau đây? b c a B C A g e d E f D Để tính diện tích của hình trên thì ta cần phải tính diện tích của từng tam giác nhỏ. Sau đó cộng diện tích của 3 tam giác đó lại. 2
  • 3. a, b, c: '); readln(a,b,c); p1:=(a+b+c)/2; s1:= sqrt(p1*(p1-a)*(p1-b)*(p1-c)); writeln('Moi nhap g, f: '); readln(g, f); p3:=(e+f+g)/2; s3:= sqrt(p3*(p3-e)*(p3-g)*(p3-f)); writeln('Moi nhap d, e: '); readln(d, e); p2:=(c+d+e)/2; s2:= sqrt(p2*(p2-c)*(p2-d)*(p2-e)); s:=s1+s2+s3; writeln('Dien tich cua ngu giac la: ', s); var a, b, c, p, s: real; Begin writeln(‘Nhap canh cua tam giac can tinh: ‘); p:= (a+b+c)/2; s:= sqrt(p*(p-a)*(p-b)*(p-c); end; 3
  • 4. Việc giải quyết 1 bài toán phức tạp có thể phân thành các bài toán con.  Khi lập trình, để viết chương trình giải các bài toán lớn, phức tạp người lập trình có thể chia thành nhiều bài toán nhỏ (còn gọi là khối), mỗi bài toán là một dãy lệnh mô tả một số thao tác nhất định (gọi là chương trình con). Sau đó ghép nối các chương trình con thành chương trình chính. Nhóm trưởng 4
  • 5. Chương trình con là một khối lệnh nhằm giải quyết một bài toán con để góp phần giải quyết một bài toán lớn hơn bằng một chương trình.  Khi phải viết những chương trình dài, phức tạp, việc sử dụng chương trình con là hết sức cần thiết. 5
  • 6. Phep_tinh_so_hoc; var x, y: integer; phep_tinh: char; FUNCTION Cong(a, b: integer): integer; begin cong:=a + b; end; FUNCTION Tru(a, b: integer): integer; begin tru:=a - b; end; FUNCTION Nhan(a, b: integer): integer; begin nhan:=a * b; end; FUNCTION Chia(a, b: integer): integer; begin chia:=a DIV b; end; begin writeln('Nhap so thu nhat: '); readln(x); writeln('Nhap so thu hai: '); readln(y); writeln('Nhap phep tinh (+, -, *, /): '); readln(phep_tinh); case phep_tinh of '+':writeln('So ', x, ' + ', y, ' = ', cong(x,y)); '-':writeln('So ', x, ' - ', y, ' = ', tru(x, y)); '*':writeln('So ', x, ' * ', y, ' = ', nhan(x, y)); '/':writeln('So ', x, ' / ', y, ' = ', chia(x, y)); end; readln; end. CHƯƠNG TRÌNH CON (HAY KHỐI LỆNH) 6
  • 7. SỬ DỤNG CHƯƠNG TRÌNH CON o Tránh được việc phải viết lặp đi lặp lại cùng một dãy lệnh. o Hỗ trợ việc thực hiện các chương trình lớn. o Phục vụ cho quá trình trừu tượng hóa. o Mở rộng khả năng ngôn ngữ. o Thuận tiện cho phát triển, nâng cấp chương trình. 7
  • 8. trình con thực hiện các thao tác nhất định nào đó, nhưng không trả về giá trị nào qua tên của nó. Là chương trình con thực hiện một số thao tác nào đó, và trả về một giá trị qua tên của nó. - Nhập vào một dãy các số nguyên dương. - Xuất ra dãy số nguyên dương. - Vẽ các hình chữ nhật. - Hàm tính n! - Hàm tìm UCLN của hai số nguyên dương. - Hàm tìm giá trị lớn nhất (nhỏ nhất) của hai hay nhiều số nguyên. PHÂN LOẠI CHƯƠNG TRÌNH CON CHƯƠNG TRÌNH CON 8
  • 9. TRÌNH CON THỦ TỤC VẼ KÝ TỰHÀM TÍNH TỔNG 2 SỐ PROCEDURE Ve(k: integer, ky_tu:char); Var i: integer; Begin For i:=1 to k do Write(ky_tu); End; FUNCTION Cong(a, b: integer): integer; begin cong:=a + b; end; CHƯƠNG TRÌNH CON 9
  • 10. VÀ THỦ TỤC THỦ TỤC VẼ KÝ TỰHÀM TÍNH TỔNG 2 SỐ PROCEDURE Ve(k: integer, ky_tu:char); Var i: integer; Begin For i:=1 to k do Write(ky_tu); End; FUNCTION Cong(a, b: integer): integer; begin cong:=a + b; end; - Từ khóa Procedure. - Kết quả trả về không phải là một giá trị. - Từ khóa Function. - Có kết quả trả về là một số nguyên. 10
  • 11. TRÌNH CON []  Phần đầu: khai báo tên của chương trình con, nếu là hàm phải khai báo kiểu dữ liệu trả về của hàm.  Phần khai báo: khai báo biến cho dữ liệu vào và ra, các hằng và biến dùng trong chương trình con.  Phần thân: dãy câu lệnh. 11
  • 12. TRÚC CHƯƠNG TRÌNH CHÍNH VÀ CHƯƠNG TRÌNH CON CHƯƠNG TRÌNH CONCHƯƠNG TRÌNH CHÍNH [] [] Chương trình con nhất thiết phải có tên và phần đầu để khai báo tên, nếu là hàm thì phải khai báo kiểu dữ liệu cho giá trị trả về của hàm 12
  • 13. SỐ HÌNH THỨC VÀ THAM SỐ THỰC SỰ THAM SỐ HÌNH THỨC THAM SỐ THỰC SỰ Các biến được khai báo cho dữ liệu vào/ ra được gọi là tham số hình thức của chương trình con. Khi gọi 1 chương trình con, ta cần phải có lệnh gọi nó bao gồm tên chương trình con với tham số đặt trong dấu ngoặc ( ). Các tham số này được gọi là tham số thực sự. Cong (2, 5)Cong (a, b) Tên chương trình con Tên chương trình con Tham số thực sự 13
  • 14. (12, 4)Cong (a, b) THAM SỐ HÌNH THỨC THAM SỐ THỰC SỰ Cong (x, y)Cong (a, b) THAM TRỊ THAM BIẾN 14
  • 15. VÀ BIẾN CỤC BỘ BIẾN TOÀN CỤC BIẾN CỤC BỘ Là biến được khai báo ở đầu chương trình chính, chúng tồn tại trong suốt thời gian chạy của chương trình. Biến toàn cục ảnh hưởng toàn bộ chương trình, cả chương trình chính lẫn chương trình con. Là biến được khai báo trong mỗi chương trình con. Chúng được hình thành khi chương trình con được gọi và sẽ tự biến mất khi chương trình con kết thúc. 15
  • 16. b, c, d, m, n, p, q : integer; i : integer; TLuythua : real; Function Luythua( x,k :integer) : real; var j : integer; Tich: = 1.0; For j:=1 to k do Tich: = Tich * x; Luythua: = Tich; BEGIN Writeln(‘Nhap so can tinh luy thua: ’); Readln(a,b,c,d,n,m,p,q); TLuythua:=Luythua(a,m) + Luythua(b,n) + Luythua(c,p) + Luythua(d,q); Writeln(‘Tong luy thua la:’,TLuythua); Readln; END. Biến toàn cục Tham số hình thức Biến cục bộ Tham số thực sự 16
  • 17. : Lập chương trình tối giản phân số Ví dụ: nhập 6/10 => ra 3/5  INPUT :  OUTPUT :  - Yêu cầu: viết chương trình con thực hiện tìm UCLN(a,b) và gọi nó khi tính c,d trong chương trình chính. Nhập phân số a/b; ?Phân số c/d - Trong đó: c = a/UCLN (a,b); d = b/UCLN(a,b); ? 17
  • 18. tu, mau, c, d : integer; Function UCLN( a,b :integer) : integer; Begin While a<> b do if a>b then a := a-b else b:=b-a; UCLN := a; end; BEGIN Write(‘ Nhap vao tu so va mau so:’); readln(tu,mau); c := tu div UCLN(tu,mau) ; d := mau div UCLN(tu,mau) ; Writeln(‘ Phan so toi gian = ’, c, ‘ / ’, d); Readln; END. Write(‘Nhap vao tu so va mau so:’) c := 6 div d := 10 divUCLN(6,10) UCLN(6,10) Writeln(‘ Phan so toi gian = ’, c, ‘ / ’, d); Readln; END. BEGIN readln(tu,mau); USCLN=2;USCLN=2; Nhap vao tu so va mau so: 6 10 Phan so toi gian= 3/5 18
  • 19. chương trình con thường được đặt sau phần khai báo của chương trình chính.  Chương trình con chỉ được thực hiện khi có lời gọi nó. 19