1. Trang chủ
  2. » Công Nghệ Thông Tin

bài giảng lập trình pascal đại học bách khoa

18 495 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 113,25 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Điều đó có nghĩa là mọi biến và hằng của một kiểu dữ liệu không thể tự do đem trộn lẫn với các biến và hằng của một kiểu dữ liệu khác.. + Cấu trúc về chương trình : Một chương trình có t

Trang 1

chương i giới thiệu sơ lược về pascal

I Giới thiệu về ngôn ngữ PASCAL:

PASCAL là ngôn ngữ lập trình cấp cao do giáo sư Niklaus Wirth thuộc trường đại học kỹ

thuật Zurich Thuỵ sĩ sáng tác và công bố vào đầu những năm 1970, với tên là PASCAL để kỹ

niệm nhà toán học người Pháp Blaise PASCAL ở thế kỷ 17

PASCAL là một ngôn ngữ có định kiểu mạnh mẽ Điều đó có nghĩa là mọi biến và hằng của

một kiểu dữ liệu không thể tự do đem trộn lẫn với các biến và hằng của một kiểu dữ liệu khác

PASCAL là một ngôn ngữ có cấu trúc Tính cấu trúc đó được thể hiện trên các mặt sau :

+ Cấu trúc về dữ liệu : Từ các dữ liệu đã có ta có thể xây dựng các cấu trúc dữ liệu phức tạp

hơn

+ Cấu trúc về lệnh : Từ các lệnh đã có ta có thể nhóm chúng lạI với nhau và đặt giữa hai từ

khoá Begin và End thành câu lệnh phức tạp hơn

+ Cấu trúc về chương trình : Một chương trình có thể chia thành các modun chương trình độc

lập (chương trình con)

II Cấu trúc chung của chương trình PASCAL:

PROGRAM Tên_chương_trình; { Dòng tiêu đề }

USES Tên thư viện; { CRT; DOS; PRINTER;GRAPH; }

LABEL Tên nhãn ; {Khai báo nhãn}

CONST Tên hằng = giá trị; { Khai báo hằng }

TYPE Tên kiểu = Kiểu cần khai báo; { Khai báo kiểu }

VAR Tên biến : Kiểu giá trị của biến; { Khai báo biến }

PROCEDURE { Thủ tục (chương trình con) }

FUNCTION { Hàm (chương trình con) }

BEGIN

END

Ví dụ :

PROGRAM Duong_tron;

Uses CRT;

Const pi= 3.14;

Var s, r : real;

Begin

Clrscr;

Readln(r);

S:=pi*r*r;

Write(‘Dien tich hinh tron la: ’, s :4:2);

Readln;

End

Trang 2

III Các phím chức năng cơ bản khi thao tác với PASCAL:

F1: Trợ giúp;

F2: Lưu chương trình;

F3: Mở file hoặc tạo file mới (*.PAS);

F9: Dịch chương trình;

Ctrl + F9: Chạy chương trình;

Alt + F5 : Xem kết quả;

Alt + X : Thoát khỏi PASCAL;

IV Các phép toán tử, toán hạng và quan hệ:

- + , - , * , /, DIV, MOD ( phép chia lấy phần nguyên(DIV) và phần dư(MOD))

Ví dụ: 5 div 2 = 2; 5 mod 2= 1;

- AND, OR, NOT, XOR(cho giá trị đúng khi 2 toán hạng khác nhau)

- <>, =, >=, <=, >, <, IN ( Ví dụ : ‘A‘ IN [‘A’ ’Z’] )

V Các hàm số học chuẩn:

- ASB(x): cho giá trị tuyệt đối của toán hạng x Ví dụ : ASB(-3)= 3

- SQR(x): cho giá trị bình phương của x Ví dụ : SQR(2)= 4

- SIN(x), COS(x), ARCTAN(x): cho giá trị các hàm lượng giác

- LN(x): cho giá trị của logex

- EXP(x): cho giá trị của ex

- SQRT(x): cho giá trị căn bậc hai của x Ví dụ : SQRT(9)= 3

- SUCC(x): cho giá trị đứng sau x Ví dụ : SUCC(3)= 4

- PRED(x): cho giá trị đứng trước x Ví dụ : PRED(3)= 2

- ODD(x): cho giá trị TRUE nếu x lẻ và FALSE nếu x chẵn

- TRUNC(x):cho giá trị phần nguyên của x Ví dụ : TRUNC(3.146)= 3

- ROUND(x): cho giá trị làm tròn phần thập phân cuả x

Ví dụ : ROUND(3.421)= 3; ROUND(5.56)= 6

chương ii: các kiểu dữ liệu, các khai báo, biểu thức, câu lệnh vμ

thủ tục vμo ra dữ liệu vμ một số chương trình con có sẵn trong

pascal

I Các kiểu dữ liệu :

1 Kiểu số nguyên:

a Kiểu Integer: Là kiểu số nguyên chiếm 2 bytes trong bộ nhớ RAM, nhận giá trị từ

-32768 đến +32767

b Kiểu Byte: là kiểu số nguyên chiếm 1 byte trong bộ nhớ RAM, nhận giá trị từ 0 đến

255

c Kiểu ShortInt: là kiểu số nguyên chiếm 1 byte trong bộ nhớ RAM, nhận giá trị từ –128

đến + 127

d Kiểu Word: là kiểu số nguyên chiếm 2 bytes trong bộ nhớ RAM, nhận giá trị từ 0 đến

65535

e Kiểu LongInt: là kiểu số nguyên chiếm 4 bytes trong bộ nhớ RAM, nhận giá trị từ

- 2.147.483.648 đến + 2.147.483.647

2 Kiểu số thực:

a Kiểu Real: là kiểu số thực chiếm 6 bytes trong bộ nhớ RAM, nhận giá trị từ 2.9E-39

đến 1.7E+38

Trang 3

b Kiểu Single: là kiểu số thực chiếm 4 bytes trong bộ nhớ RAM, nhận giá trị từ 1.5E-45

đến 3.4E+36

c Kiểu Double: là kiểu số thực chiếm 8 bytes trong bộ nhớ RAM, nhận giá trị từ

5.0E-324 đến 1.7E+308

d Kiểu Extended: là kiểu số thực chiếm 10 bytes trong bộ nhớ RAM, nhận giá trị từ

1.9E-4951 đến 1.1E+4932

3 Kiểu Boolean: là kiểu logic cho hai giá trị TRUE(đúng) và FALSE(sai)

4 Kiểu Char: là kiểu biểu diễn các ký tự từ bàn phím như:‘A’,’B’, ,’0’,’1’, ’@’,’{‘

5 Kiểu String: là kiểu biểu diễn xâu ký tự (chuỗi) như : “Cong hoa”,” ”

II Các khai báo:

1 Khai báo hằng:

Hằng là các đại lượng không thay đổi giá trị Có các loại khai báo hằng số (nguyên và

thực), hằng ký tự, hằng Boolean

Cách viết:

Tên_hằng = giá_trị_của_hằng;

Ví dụ: Const

L= True;

N = 5;

Pi = 3.146;

C = ‘Z’ ;

2 Khai báo biến:

Biến là đại lượng có thể thay đổi giá trị Tên biến của chương trình là tên của ô nhớ cất

giữ dữ liệu

Cách viết:

Tên_biến : kiểu_dữ_liệu_của_biến;

Ví dụ: Var

I; byte;

Hoten: String[30];

Kt: Boolean;

3 Kiểu tự định nghĩa: khác với các kiểu dữ liệu có sẵn trong PASCAL thì kiểu dữ liệu này

người lập trình tự định nghĩa theo yêu cầu của bài toán

Cách viết Tên_kiểu = dữ_liệu_tự_định_nghĩa;

Ví dụ: Type

Color = ( Red, Green, Blue);

Mang = Array[1 100] of Integer;

Var

C: Color;

A: Mang;

III Biểu thức:

Biểu thức là một công thức tính toán để có một giá trị theo một qui tắc toán học nào đó

Một biểu thức bao gồm toán tử và toán hạng

Ví dụ : 6+Pi*Cos(x);

A+B;

KT= TRUE;

IV.Câu lệnh:

Bên cạnh phần mô tả dữ liệu là phần lệnh của chương trình Câu lệnh được chia ra hai

loại:

1 Câu lệnh đơn giản: là những lệnh không chứa những lệnh khác:

- Phép gán ;

- Lời gọi Procedure;{ thủ tục }

- Lệnh nhảy GOTO {lệnh nhảy vô đIều kiện, thường ít dùng trong PASCAL}

2 Câu lệnh có cấu trúc: là khối lệnh, lệnh thử và rẽ nhánh, lệnh lặp:

Trang 4

- Câu lệnh ghép BEGIN END;

- Câu lệnh lựa chọn IF THEN ELSE;

CASE OFF;

- Các vòng lặp: FOR TO DO ;

` REPEAT UNTIL ;

WHILE DO ;

- Câu lệnh WITH DO ;

3 Phép gán: Biến := biểu_thức;

Ví dụ : x:= a+b;

Kt:= false;

I:= I+1;

V Thủ tục vào ra dữ liệu:

1 Thủ tục viết dữ liệu ra màn hình:

- Write(item); Trong đó item có thể là một xâu ký tự, một biểu thức hay một giá trị

nào đó

Ví dụ: Write(‘Chao cac ban’); Write(a); Write(x*3+4*sin(x));

- Writeln(item); Chỉ khác nhau với Write ở chỗ là nó đưa con trỏ màn hình xuống

dòng

- Writeln;

2 Các thủ tục trình bày màn hình:

- GOTOXY(x,y); Là thủ tục đưa con trỏ nhảy đến toạ độ (x,y), trong đó x là cột

(1 80 cột), y là dòng (1 25 dòng)

- Clrscr; Là thủ tục xoá toàn bộ màn hình và sau khi xoá con trỏ sẽ ở vị trí góc phía

trên bên trái màn hình

- TextColor(Color); Là thủ tục lựa chọn màu ký tự

- TextBackground(Color); Là thủ tục chọn màu nền màn hình

Trong đó Color nhận giá trị từ 0 đến 15, và 128 (nhấp nháy)

( Nhớ khai báo USES CRT;)

3 Thủ tục vào dữ liệu: Read và Readln:

- Read(biến); Là thủ tục đọc dữ liệu được nhập từ bàn phím vào trong bộ nhớ RAM

Ví dụ:

Var n : integer;

Begin

Write(‘Nhap n:=’); read(n);

End

- Readln(biến); Tương tự như Read nhưng con trỏ xuống dòng

- Readln;

4 Một số thủ tục nhập phím đặc biệt của PASCAL:

- Hàm ReadKey; có kiểu ký tự, cho giá trị là ký tự nhận vào từ bàn phím ngay từ khi

bạn gõ phím mà không cần ấn tiếp nút Enter

Ví dụ: ch:= ReadKey;

- Hàm KeyPressed có kiểu Boolean, cho giá trị TRUE nếu bàn phím có chứa ký tự gõ

vào mà chưa được lấy ra xử lý, FALSE nếu không có ký tự gõ vào

VI Một số chương trình con của PASCAL

1 Thủ tục Delay(Time): tạo ra thời gian trễ Time (tính bẵng ms) Time là số nguyên

2 Thủ tục Sound(F) và NoSound; : tạo ra dao động âm thanh với tần số F (F:số nguyên) cho

đến khi ta gọi NoSound;

Ví dụ:

Sound(500);

Delay(100);

NoSound;

3 Thủ tục Exit; : là thủ tục thoát khỏi chương trình con

4 Thủ tục Break; :là thủ tục thoát khỏi những vòng lặp

Trang 5

5 Thủ tục Halt; : là thủ tục thoát khỏi chương trình PASCAL

6 Hàm tạo số ngẫu nhiên:

Hàm Random(n); với n :0 65535;(cho giá trị ngẫu nhiên trong n phần tử)

Trước khi gọi hàm Random ta phảI gọi thủ tục Randomize; để tạo bộ số ngẫu nhiên

7 Hàm UpCase(ch) :hàm cho ký tự hoa của ký tự ch

Ví dụ: ch:=’a’; UpCase(ch)=’A’;

Chương III Câu Lệnh Có Cấu Trúc

I Câu lệnh đIều kiện IF THEN ELSE :

1 Dạng 1: IF < đIều kiện >THEN < công việc >;

Ví du: If n>0 Then Write(n,’ la so duong’);

2 Dạng 2: IF <đIều kiện> THEN <công việc1> ELSE <công việc 2>;

Ví dụ: Tìm giá trị MAX và MIN của 2 số a và b

IF a< b THEN

Begin

Max:= b;

Min:= a;

End

ELSE { nghĩa là a>b }

Begin

Max:= a;

Min:= b;

End;

• Chú ý: + Câu lệnh trước ELSE của lệnh IF không có dấu chấm phẩy(;)

+ Trong đoạn lệnh nếu có từ hai công việc trở lên thì

Begin

End;

II Câu lệnh lựa chọn CASE OF

1 Dạng 1:

CASE < biểu thức > OF

hằng 1 :< công việc 1>;

hằng n : < công việc n>;

END;

Ví dụ : Tính số ngày của một tháng:

Var songay:byte; thang:1 12 {kiểu liệt kê} ; nam:integer;

Begin

Write(‘Nhap thang:’);readln(thang);

Write(‘Nhap nam:’);readln(nam);

CASE thang OF

4, 6, 9,11 : songay:= 30;

2:If (nam Mod 4 = 0) then songay:= 29

else

songay:= 28;

1, 3, 5, 7, 8, 10, 12 : songay:= 31;

END;

Write(‘So ngay cua Thang ’,thang,’ Nam ’,nam,’ la ‘,songay);

End

Trang 6

2 Dạng 2:

CASE < biểu thức > OF

hằng 1 : < công việc 1>;

hằng n : < công việc n>;

ELSE < công việc n+1>;

END;

Ví dụ : Với ch là biến ký tự:

Write(‘Nhap ky tu:’);readln(ch);

CASE ch OF

‘0’ ’9’ : Write(Ch,’ la chu so’);

‘A’ ’Z’ : Write(Ch,’ la chu cai’);

ELSE { câu lệnh trước ELSE của CASE có dấu chấm phẩy (;) }

Write(Ch,’ khong thuoc cac lua chon tren’);

END;

III Vòng lặp có số bước lặp xác định FOR :

1 Dạng 1:

FOR < biến:= giá_trị_đầu > TO < giá_trị_cuối> DO < công việc > ;

2 Dạng 2:

FOR < biến:= giá_trị_cuối > DOWNTO < giá_trị_đầu > DO < công việc > ;

Ví dụ : Tính tổng các số nguyên từ 1 đến 200:

Uses CRT;

Var s, I :integer;

Begin

Clrscr; { thủ tục dùng xoá sạch màn hình }

S:=0; { lệnh khởi tạo giá trị đầu}

For I:= 1 To 200 Do s:= s+1;

{ hoặc For I:= 500 Downto 1 Do s:= s+1; }

Write(‘Tong la :’, s);

Readln; { để giữ lạI màn hình cho ta thấy được kết quả }

End

IV Câu lệnh có số bước lặp không xác định REPEAT và WHILE :

1 Dạng 1:

WHILE < biểu thức logic > DO

Begin

< công việc >;

End;

Ví dụ : Tính tổng sau : S= 1+1/2 +1/3 +.… +1/N ;

S:= 0; I:= 1;

While I<= N DO

Begin

S:= S + 1/I;

I:=I+1;

End;

2 Dạng 2:

REPEAT

< công việc >;

UNTIL < biểu thức logic >;

Ví dụ : Như ví dụ trên

S:= 0; I:= 1; { giá trị khởi tạo ban đầu }

Repeat

S:= S + 1/I;

Trang 7

I:= I +1;

Until I > N;

3 Sự khác nhau giữa REPEAT và WHILE:

- Trong vòng lặp Repeat thì máy sẽ thực hiện < công việc > sau đó mới kiểm tra < biểu

thức logic > Còn trong vòng lặp WHILE thì nó kiểm tra < biểu thức logic > rồi sau đó

mới làm < công việc >

- Điều kiện trong < biểu thức logic > giữa hai vòng lặp luôn trái ngược nhau Trong

REPEAT Sai (FALSE) thì nó làm tiếp, Đúng (TRUE) thì nó thoát Còn trong WHILE

thì Đúng nó mới làm, Sai nó thoát

- Điều kiện Đúng trong WHILE thoả mãn điều kiện Bài toán còn REPEAT thì ngược

lại

V Lệnh nhảy vô đIều kiện GOTO:

Lệnh GOTO thuộc loại lệnh đơn giản, cho phép chương trình nhảy vô điều kiện tới một

vị trí trong chương trình thông qua tên nhãn

Ví dụ :Tìm các số nguyên tố giữa 2 số nguyên dương n1 va n2:

Program nhay;

Label

L1,L2 ;

Var i, j, n1, n2: integer;

tt: char;

Begin

L1: Write(‘Nhap hai so n1 va n2:’);readln(n1, n2);

For i:= n1 to n2 do

Begin

For j:= 2 to i-1 do If ( i mod j = 0 ) then Goto L2;

Write( i, ‘ ‘ );

L2 : ; { lệnh không làm gì cả }

End;

Writeln;

Write(‘Ban co muon tiep tuc khong ?( C / K )’); readln(tt);

If Upcase(tt)= ‘C’ then Goto L1;

End

Tuy nhiên lệnh nhảy GOTO rất ít dùng trong PASCAL vì nó sẽ làm mất tính “cấu trúc

thuật toán” của ngôn ngữ

Chương IV Chương Trình Con

I.KháI niệm:

Trong khi lập chương trình chúng ta thường gặp những đoạn chương trình được lặp đi lặp

lại nhiều lần ở những chỗ khác nhau Để tránh rườm rà, những đoạn chương trình này được

thay thế bằng các chương trình con tương ứng khi cần Hơn nữa, một vấn đề phức tạp sẽ tương

ứng với một chương trình có thể rất lớn, rất dài Do đó việc nhìn tổng quan cả chương trình

cũng như việc gỡ rối, hiệu chỉnh sẽ rất khó khăn.Ta có thể giải quyết các vấn đề đó thành các

vấn đề nhỏ hơn (chương trình con) để dễ kiểm tra, gỡ rối từng khối một và sau đó ghép lại

thành chương trình lớn Đây cũng là ý tưởng cơ bản của lập trình cấu trúc

II Procedure và Function ( Thủ tục và Hàm):

PASCAL có hai loạI chương trình con :

- Procedure ( thủ tục )

- Function ( hàm )

Sự khác nhau cơ bản và duy nhất của hai loại chương trình con này là Function có giá

trị trả về thông qua tên hàm và do đó nó được sử dụng trong một biểu thức Còn Procedure

không có giá trị trả về thông qua tên của nó nên các Procedrre không thể viết trong các biểu

thức

Trang 8

• CÊu tróc chung cña mét ch−¬ng tr×nh ®−îc m« t¶ nh− sau:

Program Tªn_ch−¬ng_tr×nh;

Uses Tªn_th−_viÖn;

Label Tªn_nh·n;

Const { Khai b¸o h»ng };

Type { Khai b¸o kiÓu };

Var { Khai b¸o biÕn toµn côc };

Procedure Tªn_thñ_tuc( Khai b¸o tham sè, tham biÕn nÕu cÇn );

Var { nÕu cã biÕn côc bé }

Begin

{ Th©n ch−¬ng tr×nh con };

End;

Function Tªn_hµm(Khai b¸o tham sè, tham biÕn nÕu cÇn):KiÓu_d÷_liÖu;

Var { nÕu cã }

Begin

.{ Th©n ch−¬ng tr×nh con };

End;

BEGIN

{ Th©n ch−¬ng tr×nh chÝnh }

END

VÝ dô : TÝnh biÓu thøc

Program Bieu_thuc;

Uses CRT;

Var a,b: integer; bt: real;

Procedure Nhap;

Var OK : Char ;

Begin

Repeat

Write(‘Nhap tu:’);readln(a);

Write(‘Nhap mau:’);readln(b);

Write(‘Cã sua lai so lieu khong ( C / K )?’);

OK:= ReadKey;

Writeln;{ ®−a con trá xuèng dßng }

Until ( OK= ‘K’ ) Or ( OK= ‘k’ );

End;

Function Chia( x, y: integer): real;

Var z : real;

Begin

If y<>0 then z:= x/y

Else

Begin

Writeln(#7,’ Khong chia duoc vi mau so bang= 0’);

Halt; { thñ tôc halt dõng l¹i ch−¬ng tr×nh}

End;

Chia:= z; { gi¸ trÞ tr¶ vÒ cña hµm }

End;

BEGIN

Clrscr;

Nhap; { gäi thñ tôc th× b×nh th−êng }

Trang 9

Bt := Chia(a,b); { gọi hàm thì nằm trong biểu thức gán }

Write(‘Bieu thuc chia la: ‘,bt);

Readln;

END

Chú ý: -Biến toàn cục là biến được dùng chung cho cả chương trình Còn biến cục bộ( địa

phương) thì chỉ có giá trị trong chương trình con

-Tham số và tham biến được khai báo trong chương trình con nhưng tham biến thì

có Var phía trước còn tham số thì không

Vidụ : Procedure tinh( x,y:integer; Var s:real);

{ x, y là tham số ; s: là tham biến vì s bị thay đổi giá trị }

Begin

End;

III Tính đệ qui của chương trình con:

Trong Procedure và Function có thể gọi chính thủ tục hoặc hàm vào thân chương trình

của chính nó Tính chất này được gọi là tính đệ qui

Ví dụ: Tìm ước số chung của hai số x va y có thể được định nghĩa như sau:

USCLN(x, y)= x nếu y= 0

= (y, phần dư của x/y) nếu y<>0

Như vậy hàm USCLN có thể được viết theo đệ qui như sau:

Function USCLN(x, y: integer): integer;

Begin

If y= 0 then USCLN:= x

Else USCLN:= USCLN(y, x mod y);

End;

Và hãy so sánh gì ? với chương trình không đệ qui sau:

( Dành riêng cho các ban !)

Function USCLN(x, y: integer): integer;

Var sodu : integer; { số dư }

Begin

While (y < > 0 ) do

Begin

Sodu:= x mod y;

x: = y;

y:= sodu;

End;

USCLN:= x;

End;

Chú ý :

Chỉ nên dùng đệ qui đối với những bài toán không có tính lặp

Chương V Kiểu Dữ Liệu Có Cấu Trúc : Kiểu Mảng Vμ Kiểu Tập Hợp

I Kiểu Mảng ( Array):

Mảng là kiểu dữ liệu có cấu trúc được tạo ra nhằm mục đích để lưu một số hữu hạn

dữ liệu có cùng kiểu Số phần tử của mảng được xác định ngay từ khi định nghĩa ra

mảng Mỗi phần tử của mảng được truy nhập trực tiếp thông qua tên mảng cùng

với chỉ dẫn truy nhập được để giữa hai ngoặc vuông [ ]

1 Mảng một chiều:

Có hai hình thức khai báo mảng:

Trang 10

a Khai báo gián tiếp:

Type

Tên_kiểu = ARRAY[Kiểu_chỉ_dẫn] OF < Kiểu_phần_tử >;

Var Biến_mảng : Tên_kiểu;

Ví dụ : Type

So = Array[1 100] of Integer;

Kytu = Array[‘A’ ‘Z’] of Char;

Color = (Red, Blue, Green, White, Black);

Var

A : So; Kt : Kytu; Cl : Array[Color] of Boolean;

b Khai báo trực tiếp:

Var Biến_mảng : ARRAY[Kiểu_chỉ_dẫn] OF < Kiểu_phần_tử >;

Ví dụ : A : Array[1 100] of integer;

Ví dụ : Viết chương trình nhập dãy số vào mảng sau đó sắp xếp mảng theo thứ tự tăng

dần:

Program Day_so;

Uses CRT;

Type mang = Array[1 50] of integer;

Var a:mang; n: integer;

Procedure Nhap;

Var I: byte;

Begin

Write(‘Nhap so phan tu cua mang:’);readln(n);

For I:=1 to n do

Begin

Write(‘ A[ ‘, I , ’]= ’);

Readln(A[ I ] );

End;

End;

{ Đây là thủ tục sắp xếp mà các bạn cần tham khảo }

Procedure Sapxep; { sắp xếp tăng dần }

Var I, j : byte; T: integer;

Begin

For I:=1 to n-1 do

Begin

For j := I+1 to n do

If a[ I ] > a[ j ] then { nếu sắp xếp giảm thì dấu ngược lạI }

Begin

T: = a[ I ];

A[ I ] := A[ j ]; { đây là thuật hoán đổi 2 giá trị }

A[ j ] := T;

End;

End;

End;

{ Chương trình chính }

Begin

Clrscr;

Nhap;

Sapxep;

Readln;

Ngày đăng: 17/10/2014, 07:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w