Tóm tắt lý thuyết 1. Mục đích, yêu cầu Rèn luyện các thao tác xử lí xâu, kĩ năng tạo hiệu ứng chữ chạy trên màn hình; Nâng cao kĩ năng viết, sử dụng chương trình con. 2. Ôn tập kiến thức a. Cách viết và sử dụng chương trình con Hình 1. Cách viết và sử dụng chương trình con b. Các biến - tham số và thực hiện chương trình trong chương trình con Hình 2. Các biến - tham số và thực hiện chương trình trong chương trình con b.1. Biến Hình 3. Nội dung trọng tâm về biến b.2. Tham số Hình 4. Nội dung trọng tâm về tham số b.3. Thực hiện chương trình con Hình 5. Cách thực hiện chương trình con Bài tập minh họa Bài tập 1 Viết chương trình thực hiện lần lượt các công việc sau: Lập thủ tục nhập ba số nguyen dương a, b, c từ bàn phím. Lập thủ tục kiểm tra xem ba số trên có lập thành ba cạnh của tam giác hay không? Viết hàm tính diện tích của tam giác. Viết hoàn thiện chương trình chính. Gợi ý làm bài: Xác định bài toán: INPUT: 3 cạnh a,b,c của tam giác OUTPUT: Kiểm tra tam giác và tính diện tích Công thức Herong: p := (a+b+c)/2; dt := sqrt(p* (p-a)*(p-b)*(p-c)); Cài đặt chương trình: PHP: Var a,b,c : Integer; Procedure NhapABC (Var a, b, c : Integer); {1. Nhập 3 cạnh a,b,c} Begin Write( 'Nhap a:' ); Readln( a ); Write( 'Nhap b:' ); Readln( b ); Write( 'Nhap c:' ); Readln( c ); End; Procedure KiemTra_InDienTich ( a,b,c:Integer); {2. Kiểm tra tam giác} Begin If ((a+b>c) and (b+c>a) and (a+c>b)) then Writeln(' Ba canh tren tao thanh tam giac.dien tich', Dientich(a,b,c) ) Else Writeln('Ba canh tren khongtao thanh tam giac'); End; Function Dientich( a, b, c:Integer ) : Real; {3. Hàm tính diện tích} Var dt,p : Real; Begin p := (a+b+c)/2; dt := sqrt(p* (p-a)*(p-b)*(p-c)); Dientich := dt; End; BEGIN {4. Chương trình chính} NhapABC(a,b,c); KiemTra_InDienTich (a,b,c); END. Bài tập 2 Viết chương trình tính \(C_{n}^{k}\). Có sử dụng hàm? Gợi ý làm bài: Xác định bài toán: INPUT: Nhập n, k OUTPUT: \(C_{n}^{k}=\frac{n!}{k!(n-k)!}\) Cài đặt chương trình: PHP: Program to_hop; Uses crt; Var n,k : integer; nCk: real; Function gt( n : integer) : integer; var i,s: integer; Begin s:=1; for i:=1 to n do s:=s*i; gt:=s; end; BEGIN Write(‘ Nhap n:’); readln(n); Write(‘ Nhap k:’); readln(k); nCk := gt(n) /(gt(k) *gt(n-k)); Writeln(‘ nCk = ’, nCk); Readln; END.