<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1></div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2></div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>
BÀI TỐN MỞ ĐẦU
BÀI TỐN MỞ ĐẦU
<i><b>Hãy viết chương trình nhập </b></i>
<i><b>dữ liệu từ bàn phím, tính và </b></i>
</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4></div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5></div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>
<b>Để xử lý vấn đề này các ngơn ngữ lập trình bậc cao cung </b>
<b>cấp khả năng xây dựng các </b>
<b>chương trình con dạng tổng </b>
<b>quát “đại diện” cho nhiều đoạn lệnh</b>
<b> tương tự nhau</b>
<b>Ví dụ: tính luỹ thừa </b>
<b>Luythua = x</b>
<b>k</b>
<i><b>Trong đó Luythua và x là giá trị kiểu thực</b></i>
<i><b> k thuộc kiểu nguyên</b></i>
Đây là chương trình
con được đặt tên là
Luythua(x,k)
</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>
Luythua(a,n)
Luythua(b,m)
Luythua(c,p)
</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>
<i><b>Quan sát chương trình sau khi đã cài đặt </b></i>
<i><b>chương trình con</b></i>
</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>
Để 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 toán nhỏ, 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à ctc). Sau đó ghép nối các ch ơng trình con thành ch ơng trình
chính.
Nhãm
tr ëng
ViÖc A
ViÖc B
</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>
2. Phân loại ch ơng trình con
Ch ơng trình con
Ch ơng trình con
<b>Hàm (Function)</b>
<b>L ch ng trỡnh con </b>
<b>thực hiện một số </b>
<b>thao tác nào đó, và </b>
<b>trả về một giá trị </b>
<b>qua tên của nó.</b>
<b>Hµm (Function)</b>
<b>Là ch ơng trình con </b>
<b>thực hiện một số </b>
<b>thao tác nào đó, và </b>
<b>trả về một giá trị </b>
<b>qua tên của nó.</b>
<b>Thủ tục (Procedure)</b>
<b>Là ch ơng trình con </b>
<b>thực hiện một số thao </b>
<b>tác nào đó, và khơng </b>
<b>trả về giá trị nào qua </b>
<b>tên của nó.</b>
<b>Thủ tục (Procedure)</b>
<b>Là ch ơng trình con </b>
<b>thực hiện một số thao </b>
<b>tác nào đó, và </b>
<b>khơng </b>
<b>trả về giá trị nào </b>
<b>qua </b>
<b>tên của nó.</b>
<b>TÝnh tỉng l thõa</b>
<b> </b>
<b>S = a</b>
<b>n</b>
<b><sub> + b</sub></b>
<b>m</b>
<b><sub> + c</sub></b>
<b>p</b>
<b><sub> + d</sub></b>
<b>q</b>
</div>
<span class='text_page_counter'>(11)</span><div class='page_container' data-page=11>
<i><b><PhÇn đầu></b></i>
<i><b><Phần khai báo></b></i>
<i><b>< Phần thân></b></i>
<i><b><Phần đầu></b></i>
<i><b><Phần khai báo></b></i>
<i><b>< Phần thân></b></i>
Phn đầu
<b>: khai báo tên chương trình con;</b>
Phần khai báo:
<b>có thể khai báo biến cho dữ liệu vào </b>
<b>và ra,các hằng và biến dùng trong chương trình con.</b>
Phần thân:
<b>là dãy câu lệnh thực hiện để từ những </b>
<b>dữ liệu vào ta nhận được dữ liệu ra hay kết quả </b>
<b>mong muốn;</b>
</div>
<span class='text_page_counter'>(12)</span><div class='page_container' data-page=12>
3. CÊu tróc cđa ch ơng trình con
Function <Tênhàm>[<ds tham số>) : kiểu của hàm;
[< Phần khai báo >]
Begin
[<DÃy các lệnh>]
tênhàm := giátrị;
End;
Procedure <tªn thđ tơc> [<ds tham sè>);
[< Phần khai báo >]
Begin
[<D·y c¸c lƯnh>]
End;
<b>Hµm (Function)</b>
<b>Thđ tơc (Procedure)</b>
<i><b><Phần đầu></b></i>
<i><b><Phần khai báo></b></i>
<i><b>< Phần thân></b></i>
<i><b><Phần đầu></b></i>
<i><b><Phần khai báo></b></i>
</div>
<span class='text_page_counter'>(13)</span><div class='page_container' data-page=13>
4. Một số ví dụ
Bài toán 1: Lập ch ơng trình tối giản phân số
Bài toán 1:
Lập ch ơng trình tối giản phân số
VÝ dô: nhËp 6/10 => ra 3/5
* INPUT : NhËp ph©n sè a/b;
* OUTPUT : Phân số c/d - Trong đó: c = a/ƯCLN(a,b);
d = b/ƯCLN(a,b);
</div>
<span class='text_page_counter'>(14)</span><div class='page_container' data-page=14>
Program tgps;
Uses crt;
Var 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 vµ mau so: ); readln(tu,mau);<b>‘</b> <b>’</b>
C := tu div UCLN(tu,mau) ; d := mau div UCLN(tu,mau);
Writeln( Phan so toi gian = , c, / , d);<b>‘</b> <b>’</b> <b>‘ ’</b>
Readln;
Write( Nhap vao tu so va mau so: );‘ ’
C := 6 div UCLN(6,10) <sub>d := 10 div</sub> <sub>UCLN(6,10);</sub>
Writeln( Phan so toi gian = , 3, / , 5);<b>‘</b> <b>’</b> <b>‘ ’</b>
Readln;
BEGIN
Readln(tu,mau);
USCLN=2;
USCLN=2;
</div>
<span class='text_page_counter'>(15)</span><div class='page_container' data-page=15>
• <b><sub>Các CTC th ờng đ ợc đặt sau </sub></b>
<b>phÇn khai báo của ch ơng </b>
<b>trình chính. </b>
ã <b><sub>CTC chỉ đ ợc thực hiện khi </sub></b>
<b>có lời gọi nó.</b>
ã <b><sub>Lợi ích của việc sử dụng </sub></b>
<b>ch ơng trình con:</b>
<i><b><sub>Hỗ trợ việc thực hiện </sub></b></i>
<i><b>các ch ¬ng tr×nh lín.</b></i>
<i><b><sub>Tránh đ ợc việc phải viết </sub></b></i>
<i><b>lặp đi lặp lại cùng một </b></i>
<i><b>dãy lệnh nào đó.</b></i>
</div>
<span class='text_page_counter'>(16)</span><div class='page_container' data-page=16>
HÃy nhớ!
<b> Ch ơng trình con là một dÃy </b>
<b>lệnh giải quyết một bài toán </b>
<b>con cụ thể.</b>
<b> Cấu trúc ch ơng trình gồm:</b>
<b><sub>Phân loại ch ơng trình con:</sub></b>
<b> + Hàm</b>
<b> + Thđ tơc </b>
<i><b><Phần khai báo></b></i>
</div>
<!--links-->