Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (385.28 KB, 20 trang )
<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
Cho 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>b</b>
<b>c</b>
<b>a</b>
<b>B</b>
<b>C</b>
<b>A</b>
<b>g</b>
<b>e</b> <b>d</b>
<b>E</b>
<b>f</b>
<b>D</b>
Để 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.
<b>b</b>
<b>c</b>
<i><b>readln(a,b,c);</b></i>
<i><b>p1:=(a+b+c)/2;</b></i>
<i><b>s1:= sqrt(p1*(p1-a)*(p1-b)*(p1-c));</b></i>
<i><b>writeln('Moi nhap g,e, f: ');</b></i>
<i><b>readln(g,e, f);</b></i>
<i><b>p3:=(e+f+g)/2;</b></i>
<i><b>s3:= sqrt(p3*(p3-e)*(p3-g)*(p3-f));</b></i>
<i><b>writeln('Moi nhap d, c,e: ');</b></i>
<i><b>readln(d, c,e);</b></i>
<i><b>p2:=(c+d+e)/2;</b></i>
<i><b>s2:= sqrt(p2*(p2-c)*(p2-d)*(p2-e));</b></i>
<i><b>s:=s1+s2+s3;</b></i>
<i><b>writeln('Dien tich cua ngu giac la: ', s);</b></i>
<b>2</b>
<b>3</b>
Việc giải quyết 1 bài tốn phức tạp có thể phân thành
các bài tốn con.
Khi lập trình, để viết chương trình giải các bài tốn
lớn, phức tạp người lập trình có thể chia thành nhiều
bài tốn nhỏ (cịn gọi là khối), mỗi bài tố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. <i><b><sub>Nhóm trưởng</sub></b></i>
Cơng việc A
Cơn
g việ<sub>c</sub><sub> B</sub>
Kết quả A
<i><b>FUNCTION Tru(a, b: </b></i>
<i><b>integer): integer;</b></i>
<i><b> begin</b></i>
<i><b> tru:=a - b;</b></i>
<i><b> end;</b></i>
<i><b>FUNCTION Cong(a, b: </b></i>
<i><b>integer): integer;</b></i>
<i><b> begin</b></i>
<i><b> cong:=a + b;</b></i>
<i><b> end;</b></i>
<i><b>FUNCTION Chia(a, b: </b></i>
<i><b>integer): integer;</b></i>
<i><b> begin</b></i>
<i><b> chia:=a DIV b;</b></i>
<i><b> end;</b></i>
<i><b>FUNCTION Nhan(a, b: </b></i>
<i><b>integer): integer;</b></i>
<i><b> begin</b></i>
<i><b> nhan:=a * b;</b></i>
<i><b> end;</b></i>
<b>CHƯƠNG TRÌNH CON (HAY </b>
<b>KHỐI LỆNH)</b>
<b>5</b>
o <sub>Tránh được việc phải viết lặp đi lặp lại cùng </sub>
một dãy lệnh.
o <sub>Hỗ trợ việc thực hiện các chương trình lớn.</sub>
o <sub>Phục vụ cho q trính trừu tượng hố</sub>
o <sub>Thuận tiện cho phát triển, nâng cấp chương </sub>
<b>THỦ TỤC(procedure)</b>
<b>HÀM(function)</b>
Là chương trình con thực
hiện các thao tác lệnh nhất
định nào đó, nhưng <b>khơng </b>
<b>trả về giá trị nào qua tên </b>
<b>của của thủ tục</b>.
Là chương trình con thực
hiện một số thao tác lệnh nào
đó, và <b>trả về một giá trị qua </b>
<b>tên của hàm</b>.
<b>Writeln();</b>
<b>Readln();</b>
<b>- Sqr();</b>
- <b><sub> Sqrt();</sub></b>
- <b><sub> Abs();</sub></b>
- <b><sub> Exp();</sub></b>
<b>CHƯƠNG TRÌNH CON</b>
<i><b><phần đầu của chuong trinh con></b></i>
<i><b>[<phần khai báo chương trình con>]</b></i>
<i><b><phần thân chương trình con></b></i>
<i><b>Begin</b></i>
<i>{<b>Loi goi chuong trinh con </b>}</i>
<i><b>End.</b></i>
<i>Phần đầu: </i>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.
<i>Phần khai báo</i>: 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.
<i>Phần thân: </i>dãy câu lệnh.
<b>10</b>
<b>1. Cách viết và sử dụng thủ tục:</b>
Xét ví dụ vẽ hình chữ nhật có dạng sau:
* * * * * * *
* *
* * * * * * *
Ta có thể vẽ hình chữ nhật trên
với ba câu lệnh:
Writeln(‘* * * * * * *’);
Writeln(‘* * * * * * *’);
Writeln(‘* *’);
<b>Program vd1;</b>
<b>Begin</b>
Writeln(‘* * * * * * *’);
Writeln(‘* *’);
Writeln(‘* * * * * * *’);
Readln;
End.
<b> </b>
<i><b>Theo em để vẽ hình</b></i>
<i><b> chữ nhật trên ta phải </b></i>
<b>11</b>
<b>1. Cách viết và sử dụng thủ tục:</b>
Xét ví dụ vẽ 3 hình chữ nhật có dạng sau:
* * * * * * *
* * * * * * *
* *
* * * * * * *
* * * * * * *
* *
* * * * * * *
* * * * * * *
* *
Ta có thể vẽ 3 hình chữ nhật trên với 9 câu lệnh
Writeln(‘* * * * * *
*’);
Writeln(‘* * * * *
**’);
Writeln(‘* * * * * *
*’);
Writeln(‘* * * * * *
*’);
Writeln(‘* * * * * *
*’);
Writeln(‘* * * * * * *’);
Writeln(‘*
*’);
Writeln(‘*
*’);
Writeln(‘* *’);
<b>Program vd1;</b>
<b>Procedure Ve_HCN;</b>
<b>Begin</b>
Writeln(‘* * * * * * *’);
Writeln(‘* *’);
Writeln(‘* * * * * * *’);
Readln;
End;
BEGIN
Ve_HCN;
<i><b>Theo em, để vẽ 3 </b></i>
<i><b>hình chữ nhật trên </b></i>
<i><b>ta phải viết bao </b></i>
<i><b>nhiêu lệnh trong </b></i>
<b>12</b>
<b>1. Cách viết và sử dụng thủ tục:</b>
<b>a. Cấu trúc của thủ tục:</b>
<b>Procedure <tên thủ tục>[<danh sách tham số>];</b>
<b>[<phần khai báo>]</b>
<b>begin</b>
[<dãy các lệnh>]
<b> end;</b>
<b>program</b> VD_thutuc1;
{************************}
<b>procedure</b> Ve_Hcn;
<b>begin</b>
writeln(‘* * * * * * *’);
writeln(‘* * * * * * *’);
writeln(‘* *’);
<b>end;</b>
{************************}
<b>begin</b>
Ve_Hcn;
writeln; writeln;
Ve_Hcn;
writeln; writeln;
Ve_Hcn;
<b>13</b>
<b>function <</b><i><b>tên hàm</b></i><b>>[(<</b><i><b>danh sách tham số</b></i><b>>)]:<</b><i><b>kiểu dữ liệu</b></i><b>>;</b>
<b>[<</b><i><b>phần khai báo</b></i><b>>]</b>
<b>begin</b>
<b>[<</b><i><b>dãy các lệnh</b></i><b>>]</b>
<b>end;</b>
Trong đó:
• Kiểu dữ liệu là kiểu dữ liệu của giá trị mà
hàm trả về như các kiểu integer, real, char,
boolean, string…
• Trong thân hàm (dãy các lệnh) bắt buộc có
lệnh <b>gán giá trị cho tên hàm</b>:
<b>14</b>
<b>Chương trình tính tổng 2 số</b>
<b>Program </b>TongHaiSo;
<b>var</b> a, b: real;
<b>function</b> <b>Tong</b>(a,b: real): real;
<b>begin</b>
<b>Tong</b>: =a+b;
<b>end;</b>
<b>begin</b>
write(‘Nhap vao hai so:’);
readln(a,b);
writeln(‘Tong 2 so ban dau la: ‘, <b>Tong</b>(a,b));
readln;
<b>15</b>
<b>16</b>
<b>V Í D Ụ</b>
<b>Vẽ một dãy n kí tự bất kì</b>
<b>Tính tổng hai số</b>
<b>CHƯƠNG TRÌNH CON</b>
<b>THỦ TỤC VẼ KÝ TỰ</b>
<b>HÀM TÍNH TỔNG 2 SỐ</b>
<i>PROCEDURE Ve(k: integer, </i>
<i>ky_tu:char);</i>
<i>Var i: integer;</i>
<i>Begin</i>
<i>For i:=1 to k do</i>
<i>Write(ky_tu);</i>
<i>End;</i>
<i>FUNCTION Cong(a, b: integer): </i>
<i>integer;</i>
<i> begin</i>
<i> cong:=a + b;</i>
<i> end;</i>
- Kết quả trả về không phải là
một giá trị qua tên hàm
- Có kết quả trả về là một số
<b>CHƯƠNG TRÌNH CON</b>
<b>CHƯƠNG TRÌNH CHÍNH</b>
<i>[phần đầu có hoặc khơng]</i>
<i>[<phần khai báo>]</i>
<i><phần thân></i>
<i><phần đầu>bắt buộc phải có</i>
<i>[<phần khai báo>]</i>
<i><phần thân></i>