<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
<b>Chương 3</b>
<b>Chương 3</b>
<b>LẬP TRÌNH CƠ BẢN</b>
<b>LẬP TRÌNH CƠ BẢN</b>
</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>
<b>Chương 3</b>
<b>Chương 3</b>
<b>LẬP TRÌNH CƠ BẢN</b>
<b>LẬP TRÌNH CƠ BẢN</b>
3.1. Thuật tốn
3.2. Giới thiệu ngơn ngữ lập trình Pascal
3.3. Các thành phần của ngơn ngữ
3.4. Các kiểu dữ liệu cơ bản
3.5. Các cấu trúc điều khiển trong Pascal
3.8. Chương trình con
</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3></div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>
3.2. Giới thiệu ngơn ngữ lập trình Pascal
3.2. Giới thiệu ngơn ngữ lập trình Pascal
3.2.1. Đặc điểm của ngơn ngữ Pascal
Pascal là ngơn ngữ lập trình có ngữ pháp, ngữ
nghĩa đơn giản có tính logic, cấu trúc chương trình
rõ ràng, dễ hiểu, dễ sửa chữa cải tiến
Pascal là ngôn ngữ đầu tiên đưa ra và thể hiện
được khái niệm
<b>lập trình có cấu trúc.</b>
Pascal là một ngôn ngữ không chỉ chặt chẽ về mặt
</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>
3.2. Giới thiệu ngôn ngữ lập trình Pascal
3.2. Giới thiệu ngơn ngữ lập trình Pascal
3.2.2. Mơi trường TP
<b>TURBO PASCAL</b>
là sản phẩm của hãng Borland
được dùng rất phổ biến vì: tốc độ nhanh, các cải
tiến so với Pascal chẩn phù hợp với yêu cầu người
dùng.
Các tập tin chính của TP
Turbo.exe: Chương trình dịch và soạn thảo, liên kết CT
Turbo.tpl: Tập tin thư viện lưu các đơn vị chuẩn để chạy
Turbo.exe
</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>
3.2. Giới thiệu ngơn ngữ lập trình Pascal
3.2. Giới thiệu ngơn ngữ lập trình Pascal
Khởi động TP
Chạy tập tin Tubor.exe hoặc BP.exe
Các phím chức năng chính của TP
<b>F2</b>: Lưu chương trình trong khi soạn thảo.
<b>F3</b>: Tạo một file mới hoặc mở một file cũ.
<b>F9</b>: Dịch thử chương trình để kiểm tra lỗi.
<b>Ctrl - F9</b>: Chạy chương trình.
</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>
3.2. Giới thiệu ngơn ngữ lập trình Pascal
3.2. Giới thiệu ngơn ngữ lập trình Pascal
3.2.3 Các vấn đề cơ bản
Các bước cơ bản khi viết chương trình
B1: Soạn thảo chương trình
B2: Dịch và kết nối chương trình
Biên dịch (Compiler)
Thông dịch (Interpreter)
B3: Chạy thử và sửa lỗi chương trình
Cấu trúc chương trình Pascal đơn giản nhất phải
có hai từ khoá
Begin
và
End
như sau:
</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>
Begin
Dùng ch ơng trình
soạn thảo văn bản
(EDITOR)
vit v sa li
ch ng trỡnh
Gọi ch ơng trình dịch
COMPILER
và ch ơng trình kết nối LINKER
Có lỗi cú pháp
Chạy thử ch ơng trình
vừa đ ợc dịch xong
Cú li thut gii ?
Cú mun sa lại cho đẹp ?
End
Cã
Cã
</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>
3.2. Giới thiệu ngôn ngữ lập trình Pascal
3.2. Giới thiệu ngơn ngữ lập trình Pascal
Phương pháp khai báo và tổ chức cấu trúc một
chương trình Pascal
<i>Program </i>
ProgName;
<i>Uses </i>
UnitName1, UnitName2, UnitNameN;
<i>Label </i>
LabelName1, LabelName2, LabelNameN;
<i>Const</i>
Const1 = n, Const2 = m, ConstN = k;
<i>Type </i>
Type1 = AnyType;
<i>Var </i>
Var1, Var2, VarN : Type;
<i>Begin </i>
{ Các lệnh của chương trình }
</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>
3.2. Giới thiệu ngơn ngữ lập trình Pascal
3.2. Giới thiệu ngơn ngữ lập trình Pascal
<b>Program</b>
<i>:</i>
Từ khố khai báo tên chương trình
<b>ProgName: </b>Tên chương trình, tn theo quy tắc
Khơng có ký tự trống xen giữa
Không đặt số ở ký tự đầu tiên.
Trong phần tên không chứa các ký tự đặt biệt như: ‘!’, ‘@’,
<i>‘#’, ‘$’, ‘%’, ‘^’,‘&’, ‘* ’, ‘(‘, ‘)’, ‘-‘, ‘+’, ‘/’, ‘\’, ‘.’, ’,’,.v.v.</i>
Kết thúc phải có dấu ‘<b>;</b>’.
Phần này có thể khơng có.
Ví dụ: Program TimUSCLN;
</div>
<span class='text_page_counter'>(11)</span><div class='page_container' data-page=11>
3.2. Giới thiệu ngơn ngữ lập trình Pascal
3.2. Giới thiệu ngơn ngữ lập trình Pascal
<b>Uses:</b>
Từ khố khai báo việc sử dụng
Unit (thư
viện)
cho chương trình.
Ex: Uses CRT, GRAPH;
<b>Label</b>
:
Khai báo các nhãn cho chương trình
Ex: Label TH1, N2;
<b>Const</b>
:
Khai báo các hằng số sử dụng trong
chương trình
Ex: Const k = 5, Max = 500, Ten = ‘Nam’;
<b>Type</b>
:
Khai báo các kiểu hằng dữ liệu sử dụng
cho chương trình
</div>
<span class='text_page_counter'>(12)</span><div class='page_container' data-page=12>
3.2. Giới thiệu ngơn ngữ lập trình Pascal
3.2. Giới thiệu ngơn ngữ lập trình Pascal
<b>Var:</b>
Từ khoá dùng để khai báo các biến số được
sử dụng trong chương trình.
Ex: Var HoDem, Ten : String;
N : Integer ;
Chú ý:
Thứ tự các khai báo trên là điều bắt buộc
Trong chương trình Pascal, để tạo lời chú thích,
ta sử dụng cặp dấu {...} hoặc (*...*) lồng các
câu chú thích vào bên trong nó.
Trên một dịng có thể viết một hoặc nhiều câu
lệnh.
</div>
<span class='text_page_counter'>(13)</span><div class='page_container' data-page=13>
3.2. Giới thiệu ngôn ngữ lập trình Pascal
3.2. Giới thiệu ngơn ngữ lập trình Pascal
Program DonXinPhep;
Uses CRT;
Begin
ClrScr;
Writeln ( ‘ ********************************** ’ );
Writeln ( ‘ * Cong hoa Xa hoi Chu nghia Viet Nam * ‘ );
Writeln ( ‘ * Doc Lap - Tu Do - Hanh Phuc * ‘ );
Writeln ( ‘ * DON XIN PHEP NGHI HOC * ‘ );
Writeln ( ‘ ********************************** ’ );
Writeln ( ‘... ‘ );
</div>
<span class='text_page_counter'>(14)</span><div class='page_container' data-page=14>
3.3. Các thành phần của ngôn n
3.3. Các thành phần của ngôn n
gữ
<sub>gữ</sub>
3.3.1 Các ký hiệu và từ khoá
Tập ký tự cơ bản
Các chữ cái la tinh: A, B, C,...,Z, a, b, c,..., z
Các chữ số :0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Các ký hiệu đặc biệt: +, -, *, /, =, <, {, }, [, ], %, $, &,
#, ...
Ký tự gạch nối ‘_’ và ký tự trắng ‘ ‘ ( space)
Từ khóa (key word)
Các từ khoá là các từ dùng để khai báo, đặt tên cho đối
tượng trong Pascal, khi ta đặt tên cho đối tượng nào đó,
khơng được đặt trùng tên với các từ khoá
</div>
<span class='text_page_counter'>(15)</span><div class='page_container' data-page=15>
3.3.1
3.3.1
Các ký hiệu và từ khoá
Các ký hiệu và từ khoá
Tên – định danh (Identfier)
Định danh là tên các biến, hằng, hàm, thủ tục, ...
được sử dụng trong chương trình, khơng phân biệt
chữ hoa hay thường, khơng trùng với từ khóa, độ
dài lớn nhất 127 ký tự.
Ex1: Delta, X1, X2, i, j , Chuc_vu, Luong, So_luong,
Don_gia.
Ex2: 3ABC, In, Chu vi, Ma-so <b>???</b>
Trong Pascal có một số tên đã được đặt sẵn gọi là
</div>
<span class='text_page_counter'>(16)</span><div class='page_container' data-page=16>
3.3. Các thành phần của ngôn n
3.3. Các thành phần của ngôn n
gữ
<sub>gữ</sub>
3.3.2 Biến hằng và biểu thức
<b>Hằng số</b>
Hằng số là các giá trị không thay đổi trong quá trình chạy
chương trình
Khai báo hằng:
Const
Tên_hằng = giá_trị_hằng;
Ex: Const Pi = 3.1416, Max = 500;
<b>Chú ý:</b>
</div>
<span class='text_page_counter'>(17)</span><div class='page_container' data-page=17>
3.3.2 Biến hằng và biểu thức
3.3.2 Biến hằng và biểu thức
<b>Biến số:</b>
Là đại lượng mà giá trị của nó có thể thay đổi trong q
trình thực hiện chương trình.
Biến là tên của một vùng bộ nhớ lưu trữ dữ liệu.
Biến được truy xuất trong chương trình thơng qua tên biến.
Biến là một cấu trúc ghi nhớ dữ liệu vì vậy phải được quy
định theo một kiểu dữ liệu nào đó.
Khai báo:
<b>VAR Tên_biến_1, Tên_biến_2, Tên_biến_n : </b>
<b>Kiểu_dữ_liệu_của_biến</b>;
</div>
<span class='text_page_counter'>(18)</span><div class='page_container' data-page=18>
3.3.2 Biến hằng và biểu thức
3.3.2 Biến hằng và biểu thức
<b>Biểu thức</b>
Một biểu thức được tạo bởi các
toán tử (phép toán)
và các
toán hạng
dùng để thể hiện một cơng thức
tốn học.
Tốn hạng
có thể là
hằng, hàm
hoặc
biến
.
Ex: Sau khi khai có báo:
Const Max = 120;
Var x: Integer;
Ta có biểu thức sau: 5 + Max * Exp(x);
Trong đó:
+
và
*
là hai toán tử, các hằng số
5
,
Max
</div>
<span class='text_page_counter'>(19)</span><div class='page_container' data-page=19>
3.3.2 Biến hằng và biểu thức
3.3.2 Biến hằng và biểu thức
Thứ tự thực hiện các phép toán
Ex: (4+5)*2 div 7 + sin(pi/6) = 9 * 2 div 7 + 0.5
= 18 div 7 + 0.5 = 2 + 0.5 = 2.5
<b>Cấp ưu tiên</b> <b>Phép toán</b>
1 Biểu thức trong ngoặc đơn (...)
2 Các hàm
3 NOT, - (phép lấy dấu âm)
4 * , /, DIV, MOD, AND
5 Shl, Shr
6 +, - (trừ), OR, XOR
</div>
<span class='text_page_counter'>(20)</span><div class='page_container' data-page=20>
3.3.2 Biến hằng và biểu thức
3.3.2 Biến hằng và biểu thức
Các phép toán so sánh
Ex: 5*2=10 :TRUE
6 div 2 > 10 div 3 : FALSE.
<b>Ký hiệu</b> <b>Ý nghĩa</b> <b>Ví dụ</b>
= bằng nhau x=y
<> khác nhau x<>y
< nhỏ hơn x<y
<= nhỏ hơn hoặc bằng x<=y
> lớn hơn x>y
</div>
<span class='text_page_counter'>(21)</span><div class='page_container' data-page=21>
3.3. Các thành phần của ngôn n
3.3. Các thành phần của ngôn n
gữ
<sub>gữ</sub>
3.3.3. Kiểu dữ liệu cơ bản
Một kiểu dữ liệu được xác định bởi 2 yếu tố
Một tập hợp các giá trị mà một biến thuộc kiểu đó có thể
nhận đc.
Định nghĩa các phép tốn trên tập giá trị đó
Các kiểu dữ liệu trong Pascal chia làm 2 loại
Các kiểu dữ liệu <b>đơn giản </b>: kiểu nguyên, kiểu thực, kiểu
lôgic, kiểu ký tự, kiểu liệt kê và kiểu đoạn con.
</div>
<span class='text_page_counter'>(22)</span><div class='page_container' data-page=22>
3.3.3. Kiểu dữ liệu cơ bản
3.3.3. Kiểu dữ liệu cơ bản
<b>Kiểu logic (Boolean)</b>
Có hai giá trị True (1), False (0)
Các phép toán: AND, OR, XOR, NOT
<b>X</b> <b>Y</b> <b>A AND Y</b> <b>X OR Y</b> <b>X XOR Y</b>
<b>FALSE</b> <b>FALSE</b> <b>FALSE</b> <b>FALSE</b> <b>FALSE</b>
<b>FALSE</b> <b>TRUE</b> <b>FALSE</b> <b>TRUE</b> <b>TRUE</b>
</div>
<span class='text_page_counter'>(23)</span><div class='page_container' data-page=23>
Tên kiểu Phạm vi giá giá trị Số byte <sub>Ví dụ</sub>
ShortInt -128 .. 127 1 <sub>112, -34</sub>
Byte 0..255 1 <sub>23, 255</sub>
Integer -32768 .. 32767 2 <sub>-32767, 432</sub>
Word 0 .. 65535 2 <sub>672</sub>
LongInt -2147483648 ..
2147483647
4 <sub>2222222222</sub>
3.3.3. Kiểu dữ liệu cơ bản
3.3.3. Kiểu dữ liệu cơ bản
Kiểu nguyên
</div>
<span class='text_page_counter'>(24)</span><div class='page_container' data-page=24>
Kiểu nguyên
Kiểu nguyên
<b>Các phép toán số học trên số nguyên</b>
Phép cộng và trừ : ký hiệu + và
-
Phép nhân : ký hiệu bằng dấu *
Ex: 4*2 = 8
Phép chia : ký hiệu bằng dấu /
Ex: 6/4 = 1.5.
Phép chia lấy phần nguyên : ký hiệu
<b>DIV</b>
21 DIV 6 = 3.
Phép chia lấy phần dư: ký hiệu
<b>MOD</b>
</div>
<span class='text_page_counter'>(25)</span><div class='page_container' data-page=25>
Kiểu nguyên
Kiểu nguyên
Chú ý:
Chú ý: kết quả phép chia phải là kiểu thực
Các số nguyên hệ thập lục phân (hệ 16) được
biểu diễn bằng cách viết thêm dấu $ ở trước
Ex : $A , $FF và $10 (10, 255, 16)
Số nguyên N là chẵn nếu N mod 2 = 0, là lẻ
nếu N mod 2 <> 0. (dấu <>: Khác).
</div>
<span class='text_page_counter'>(26)</span><div class='page_container' data-page=26>
Kiểu nguyên
Kiểu nguyên
Một số phép toán và hàm với số nguyên
<b>N SHR</b>
k :dịch phải k bit.
120 shr 4 = 7 (120 shr 4 = 120 div 24 = 120 div 16 = 7)
<b>N SHL</b>
k : dịch trái k bit.
120 shl 3 = 960 (120 shl 3 = 120 * 23 = 120 * 8 = 960)
Hàm
<b>PRED(k)</b>
:đối số k nguyên, trả về số nguyên
đứng ngay trước k, tức là k-1 .
Pred (5) = 4, Pred (-6) = -7.
Hàm
<b>SUCC(k)</b>
: đối số k nguyên, trả về số nguyên
đứng ngay sau k, tức là k+1 .
</div>
<span class='text_page_counter'>(27)</span><div class='page_container' data-page=27>
Kiểu nguyên
Kiểu nguyên
Hàm
<b>ODD(k)</b>
: đối số k nguyên, trả về giá trị
logic là TRUE nếu k lẻ, là FALSE nếu k chẵn.
Odd(15) = True , Odd(4) = False.
Thủ tục
<b>INC(k)</b>
: tăng k lên một đơn vị
Inc(5) = 6;
Thủ tục
<b>DEC(k)</b>
: giảm k đi một đơn vị
Dec(7) = 6;
Ví dụ:
Bài toán đổi tiền
</div>
<span class='text_page_counter'>(28)</span><div class='page_container' data-page=28>
3.3.3. Kiểu dữ liệu cơ bản
3.3.3. Kiểu dữ liệu cơ bản
Kiểu số thực
Khai báo: Var a, b: Real;
<b>Tên kiểu</b> <b>Phạm vi giá trị </b> <b>Số byte</b>
Real 2.9*10-39 .. 1.7*1038 6
Single 1.5*10-45 .. 3.4*1038 4
Double 5.0*10-324 .. 1.7*10308 8
Extended 3.4*10-4932 .. 1.1*104932 10
</div>
<span class='text_page_counter'>(29)</span><div class='page_container' data-page=29>
Số thực
Số thực
Có 2 cách viết
Cách 1: Viết bình thường, dấu phẩy thập phân được thay
bằng dấu chấm thập phân (dấu chấm thập phân cố định)
Ex: 45.0 -256.45 122.08
Cách 2: Viết số dưới dạng khoa học, gồm 2 phần: trước E
là phần định trị, sau E phần bậc ( dấu chấm thập phân di
động)
1.257E+01 (có giá trị = 1.257*101 = 12.57 )
1257.0E-02 (có giá trị = 1257*10-2 = 12.57 )
Các phép tốn trên số thực
Khơng sử dụng phép MOD, DIV và phép toán logic
<b>Chú ý: Một số hạng của phép tốn là số thực thì kết quả </b>
</div>
<span class='text_page_counter'>(30)</span><div class='page_container' data-page=30>
Số thực
Số thực
<b>Các hàm có đối số nguyên hoặc thực</b>
Hàm <b>ABS(x)</b>: tính trị tuyệt đối của x :|x|. Kiểu dữ liệu
của kết quả cùng kiểu với đối số.
Abs(5 - 8) = 3
Hàm <b>SQR(x)</b>: tính bình phương của x: x2 . Kiểu dữ liệu
của kết quả cùng kiểu với đối số.
Sqr(4.0) = 16.0
Sqr(7 div 3) = 4
Các hàm dưới đây giá trị trả về luôn luôn là kiểu thực:
Hàm <b>SQRT(x):</b> tính , (x > 0)
Hàm <b>EXP(x) :</b> tính en
Hàm <b>LN(x):</b> tính lnx, (x > 0)
<i>xx</i>
</div>
<span class='text_page_counter'>(31)</span><div class='page_container' data-page=31>
Số thực
Số thực
Các hàm <b>SIN(x), COS(x), và ARCTAN(x):</b> tính sinx, cosx
và arctgx.
Hàm <b>INT(x) :</b> cho số thực bằng phần nguyên của x.
Int(12.55) = 12.0
Hàm <b>FRAC(x) :</b> cho số thực bằng phần lẻ của X
Frac(12.55) = 0.55
Hàm <b>TRUNC(x):</b> cho số nguyên là phần nguyên của x
Trunc(12.55) = 12
</div>
<span class='text_page_counter'>(32)</span><div class='page_container' data-page=32>
3.3.3. Kiểu dữ liệu cơ bản
3.3.3. Kiểu dữ liệu cơ bản
Kiểu ký tự (Char)
<b>KT</b>
<b>ASCII</b> <b>KT</b> <b>ASCII</b> <b>KT</b> <b><sub>ASCII</sub></b> <b>KT</b> <b><sub>ASCI</sub></b>
<b>I</b>
<b>KT</b>
<b>ASCII</b>
<b>32</b> <b>A</b> <b>65</b> <b>a</b> <b>97</b> <b>N</b> <b>78</b> <b>n</b> <b>110</b>
<b>0</b> <b>48</b> <b>B</b> <b>66</b> <b>b</b> <b>98</b> <b>O</b> <b>79</b> <b>o</b> <b>111</b>
<b>1</b> <b>49</b> <b>C</b> <b>67</b> <b>c</b> <b>99</b> <b>P</b> <b>80</b> <b>p</b> <b>112</b>
<b>2</b> <b>50</b> <b>D</b> <b>68</b> <b>d</b> <b>100</b> <b>Q</b> <b>81</b> <b>q</b> <b>113</b>
<b>3</b> <b>51</b> <b>E</b> <b>69</b> <b>f</b> <b>101</b> <b>R</b> <b>82</b> <b>r</b> <b>114</b>
<b>4</b> <b>52</b> <b>F</b> <b>70</b> <b>e</b> <b>102</b> <b>S</b> <b>83</b> <b>s</b> <b>115</b>
<b>5</b> <b>53</b> <b>G</b> <b>71</b> <b>g</b> <b>103</b> <b>T</b> <b>84</b> <b>t</b> <b>116</b>
<b>6</b> <b>54</b> <b>H</b> <b>72</b> <b>h</b> <b>104</b> <b>U</b> <b>85</b> <b>u</b> <b>117</b>
<b>7</b> <b>55</b> <b>I</b> <b>73</b> <b>i</b> <b>105</b> <b>V</b> <b>86</b> <b>v</b> <b>118</b>
<b>8</b> <b>56</b> <b>J</b> <b>74</b> <b>j</b> <b>106</b> <b>W</b> <b>87</b> <b>w</b> <b>119</b>
<b>9</b> <b>57</b> <b>K</b> <b>75</b> <b>k</b> <b>107</b> <b>X</b> <b>88</b> <b>x</b> <b>120</b>
<b>L</b> <b>76</b> <b>l</b> <b>108</b> <b>Y</b> <b>89</b> <b>y</b> <b>121</b>
</div>
<span class='text_page_counter'>(33)</span><div class='page_container' data-page=33>
Kiểu Char
Kiểu Char
<b>Khai báo</b>
Var ch, ch1: Char
<b>Các hàm liên quan đến ký tự </b>
Hàm <b>PRED(ch)</b>: cho ký tự đứng ngay trước ký tự ch
trong bảng mã
Pred(‘B’)=‘A’
Hàm <b>SUCC(ch): </b>cho ký tự đứng ngay sau ký tự ch trong
bảng mã.
Succ(‘A’)=‘B’.
Hàm <b>UpCase(ch):</b> đổi ký tự ch thành chữ hoa.
Upcase( ‘a’ ) = ‘A’, Upcase( ‘b’ ) = ‘B’, Upcase( ‘A’ ) = ‘A’ .
Hàm <b>ORD(ch)</b> : cho mã của ký tự ch.
</div>
<span class='text_page_counter'>(34)</span><div class='page_container' data-page=34>
Kiểu Char
Kiểu Char
Hàm
<b>CHR(k) :</b>
đối số k nguyên, 0
<sub></sub>
k
<sub></sub>
255, cho
ký tự có mã bằng k
Chr (65)= ‘A’ ,
Chr(32) là ký tự trắng.
Có một số ký tự khơng có trên bàn phím, để viết
chúng lên màn hình ta phải dùng lệnh Write và hàm
CHR
Lệnh Writeln(Chr(201)) ; in ra ký tự : +
Ký tự có mã là 7 gọi là ký tự BEL (chng), và lệnh:
Write( Chr(7) ) ; hay Write(#7) ; {có tác dụng phát ra một tiếng
</div>
<span class='text_page_counter'>(35)</span><div class='page_container' data-page=35>
Kiểu Char
Kiểu Char
<b>Ví dụ: </b>
Nhập một ký tự, nếu là chữ hoa thì đổi ra chữ
thường, nếu là chữ thường thì đổi ra chữ hoa.
<b>PROGRAM VIDU;</b>
{ Ðổi chữ hoa ra thường và ngược lại}
<b>Var ch, ch1 : Char;</b>
<b>Begin</b>
<b>Write(‘ Nhập một ký tự :’); Readln(ch);</b>
<b>If (ch>=‘A’) and ( ch<=‘Z’) then ch1:=Chr( Ord (ch)</b>
<b>+32) </b>
<b>Else ch1:= Upcase(ch);</b>
<b>Writeln(ch, ‘ đã đổi ra: ‘ , ch1);</b>
<b>Readln</b>
</div>
<span class='text_page_counter'>(36)</span><div class='page_container' data-page=36>
<b>Chương 3</b>
<b>Chương 3</b>
<b>LẬP TRÌNH CƠ BẢN</b>
<b>LẬP TRÌNH CƠ BẢN</b>
3.4 Lệnh và cấu tạo lệnh
3.4.1 Phân loại câu lệnh
Câu lệnh là một dãy các ký tự cơ bản được xây dựng
theo một quy tắc nhất định (gọi là cú pháp) nhằm chỉ thị
cho máy thực hiện một công việc xác định. Các câu lệnh
được chia ra hai loại:
Câu lệnh đơn giản: Lệnh gán, lời gọi thủ tục
</div>
<span class='text_page_counter'>(37)</span><div class='page_container' data-page=37>
3.4 Lệnh và cấu tạo lệnh
3.4 Lệnh và cấu tạo lệnh
<b>Lệnh gán </b>
Cú pháp:
<b>TênBiến := Biểuthức ;</b>
Ý nghĩa : Tính tốn biểu thức bên phải, rồi
lưu kết qủa tính được vào tên biến ở vế trái.
Ví dụ, cho khai báo :
<b>Var</b> A, B : Real; K : Integer;
Lệnh: K := 10 ; B := K* K+5.5; ?
K:= 3.5 ; ?
Chú ý:
Sự tương thích kiểu, 1 số ngun có thể gán cho 1 biến thực
nhưng ngược lại không đúng.
</div>
<span class='text_page_counter'>(38)</span><div class='page_container' data-page=38>
3.4 Lệnh và cấu tạo lệnh
3.4 Lệnh và cấu tạo lệnh
3.4.2
Nhập dữ liệu, thủ tục Readln
Nhập dữ liệu kiểu số
<b>Cú pháp: Readln(biến1, biến2, ..., biếnk);</b>
Trong đó biến1, biến2,..., biếnk đã được khai báo và có
kiểu dữ liệu là nguyên hay thực.
Khi gặp lệnh này, chương trình tạm dừng, chờ ta gõ đủ
k số từ bàn phím và kết thúc bằng Enter, rồi gán lần
</div>
<span class='text_page_counter'>(39)</span><div class='page_container' data-page=39>
3.4 Lệnh và cấu tạo lệnh
3.4 Lệnh và cấu tạo lệnh
<b>Var</b>
<b> I, J: integer;</b>
<b> XX, ZZZ: Real;</b>
<b>Begin</b>
<b> Readln(I, XX, ZZZ, </b>
<b>J);</b>
<b> ...</b>
<b>End.</b>
<b>Begin</b>
<b> Readln(I);</b>
<b> Readln(XX);</b>
<b> Readln(ZZZ);</b>
<b> Readln(J);</b>
</div>
<span class='text_page_counter'>(40)</span><div class='page_container' data-page=40>
3.4 Lệnh và cấu tạo lệnh
3.4 Lệnh và cấu tạo lệnh
Nhập dữ liệu kiểu ký tự hay kiểu chuỗi
Cú pháp:
<b>Readln( biến );</b>
Chú ý:
Sự tương thích kiểu
Lệnh Readln; lệnh dừng màn hình để xem kết
quả
Kiểu logic khơng nhập được từ bàn phím
Lệnh <b>Read</b>, có cơng dụng như lệnh Readln,
</div>
<span class='text_page_counter'>(41)</span><div class='page_container' data-page=41>
3.4 Lệnh và cấu tạo lệnh
3.4 Lệnh và cấu tạo lệnh
Ví dụ, cho khai báo :
<b>Var</b>
Ho_ten: String[18];
Phai: String[3];
Khoi_thi : Char;
Muốn nhập dữ liệu ta phải dùng ba lệnh
<b> Readln(Ho_ten);</b>
<b> Readln(Phai);</b>
<b> Readln(Khoi_thi);</b>
Khi nhập, ta gõ:
<b> Tran Van Thanh </b>
<b> nam </b>
<b> A </b>
</div>
<span class='text_page_counter'>(42)</span><div class='page_container' data-page=42>
3.4 Lệnh và cấu tạo lệnh
3.4 Lệnh và cấu tạo lệnh
Xuất dữ liệu, thủ tục Write và Writeln
<b>Cú pháp: Writeln( bt1, bt2 , ... , btk ); </b>
<b>Write( bt1, bt2 , ... , btk );</b>
bt1, bt2, ..., btk là các biểu thức cần phải in giá trị
lên màn hình, có thể là biến, hằng, hàm…
Các biểu thức được in liên tiếp theo thứ tự.
Sự khác nhau giữa lệnh Writeln và Write sau khi in
xong giá trị của các biểu thức:
</div>
<span class='text_page_counter'>(43)</span><div class='page_container' data-page=43>
3.4 Lệnh và cấu tạo lệnh
3.4 Lệnh và cấu tạo lệnh
Ví dụ:
<b>Writeln</b>
(‘
<i>Lập trình </i>
‘);
<b>Writeln</b>
(‘P
<i>ascal</i>
’);
Kết qủa trên màn hình sẽ hiện hai dịng :
<i> Lập trình </i>
<i> Pascal</i>
Nếu dùng lệnh:
<b>Write</b>
(‘
<i>Lập trình </i>
‘);
<b>Writeln</b>
(‘P
<i>ascal</i>
’);
thì kết qủa trên màn hình sẽ hiện ra chỉ một
</div>
<span class='text_page_counter'>(44)</span><div class='page_container' data-page=44>
3.4 Lệnh và cấu tạo lệnh
3.4 Lệnh và cấu tạo lệnh
<b>In không định dạng</b>
Ðối với các biểu thức kiểu
nguyên
, kiểu
ký tự
, kiểu
logic h
ay kiểu
chuỗi
, thì lệnh :
<b> Writeln( biểuthức ) ;</b>
sẽ in nguyên văn giá trị của biểu thức.
Ví dụ:
Lệnh Writen(‘ket qủa x=‘ , 4+15); sẽ in ra: ket qua
x=19
Lệnh Writeln(‘A’ , ‘=‘ , 2*3<5); sẽ in ra: A=FALSE vì
biểu thức 2*3< 5 có kết qủa là FALSE.
</div>
<span class='text_page_counter'>(45)</span><div class='page_container' data-page=45>
3.4 Lệnh và cấu tạo lệnh
3.4 Lệnh và cấu tạo lệnh
Ðối với các biểu thức kiểu số thực thì lệnh:
<b>Writeln( biểuthức );</b>
sẽ in giá trị của biểu thức ra dưới dạng dấu
chấm thập phân di động có cả thảy 17 ký
</div>
<span class='text_page_counter'>(46)</span><div class='page_container' data-page=46>
3.4 Lệnh và cấu tạo lệnh
3.4 Lệnh và cấu tạo lệnh
<b>In số thực có định dạng:</b>
<b> Writeln( biểuthức : n : k );</b>
n và k là các số tự nhiên, ấn định dùng n cột để in
giá trị của biểu thức, trong đó có k cột dành cho
phần thập phân.
Nếu số cần in có ít hơn n chữ số thì nó sẽ được in
</div>
<span class='text_page_counter'>(47)</span><div class='page_container' data-page=47>
3.4 Lệnh và cấu tạo lệnh
3.4 Lệnh và cấu tạo lệnh
Ví dụ:
Cho x, y là các biến kiểu thực và: x:=100/4;
y:=-123.4824;
Hai lệnh sau : Writeln(‘ x=‘, x:6:2);
Writeln(‘ y=‘, y:10:3); sẽ in lên màn hình:
x= 25.00 ( trước số 2 có 1 ký tự trắng)
y= -123.482 (trước dấu - có 2 ký tự trắng)
Nếu n nhỏ hơn chiều dài của số cần in thì số sẽ
được in ra với đầy đủ các chữ số trong phần
nguyên.
</div>
<span class='text_page_counter'>(48)</span><div class='page_container' data-page=48>
3.4 Lệnh và cấu tạo lệnh
3.4 Lệnh và cấu tạo lệnh
In kiểu nguyên, ký tự, chuỗi và lôgic có định dạng :
<b>Writeln(biểuthức : n);</b>
<b>Ví dụ</b>
Lệnh Write(5+40:4); in ra: 45 (có 2 ký tự trắng trước số
45)
Lệnh Write(5+40:1); in ra:45 (in nguyên văn giá trị 45)
Lệnh Write(‘Pascal’ :9); in ra: Pascal (có 3 ký tự trắng trước
chữ Pascal)
Lệnh Write(‘Pascal’ :2); in ra:Pascal (in nguyên văn)
</div>
<span class='text_page_counter'>(49)</span><div class='page_container' data-page=49>
3.4 Lệnh và cấu tạo lệnh
3.4 Lệnh và cấu tạo lệnh
<b>Chú ý</b>
Nhóm ba lệnh: Write(x); Write(y); Write(j); chỉ có tác dụng như
một lệnh: Write(x,y,j); (writeln tương tự)
Lệnh: <b>Writeln;</b> khơng in gì cả, chỉ đưa con trỏ xuống dòng dưới
Muốn in dữ liệu ra máy in ta dùng lệnh Write hoặc Writeln với
tham số LST vào trước. Biến LST được khai báo trong thư viện
Printer.
<b>Ví dụ:</b>
Uses Printer;
Begin
Writeln(Lst,’ Welcome to Turbo Pascal Language ! ‘ );
End.
</div>
<span class='text_page_counter'>(50)</span><div class='page_container' data-page=50>
3.4 Lệnh và cấu tạo lệnh
3.4 Lệnh và cấu tạo lệnh
<b>Ví dụ:</b>
Viết chương trình tính diện tích
<i>S</i>
của hình thang với
đáy dài
<i>a</i>
, đáy ngắn
<i>b</i>
, chiều cao
<i>h</i>
, được nhập từ bàn phím.
Program DienTichHinhThang;
Uses CRT;
Var a, b, h, s : Real;
Begin
ClrScr;
Write( ‘ Nhap gia tri cua a, b, h :‘ );
Readln(a, b, h);
S := (a + b) * h / 2;
Write( ‘ Dien tich S = ‘,S:1:5);
Readln;
</div>
<!--links-->