CHNG 1
QUI TC CNG
QUI TC NHN
Vớ d 1
Vớ d 2
Vớ d 3
Vớ d 4
GII THUT TNH GI TR TRUNG BèNH
Vớ d 1
Cõu hi chng 2
Câu hỏi chương 2
Cấu trúc dữ liệu danh sách
1 - Tìm kiếm một phần tử trong danh sách
2 - Bổ xung phần tử vào danh sách
Chú ý : Các phần tử đi sau phần tử thêm vào sẽ bị thay đổi vị trí sau khi thực hiện phép thêm vào
3 - Loại bỏ một phần tử khỏi danh sách
4 - Thay thế một phần tử của danh sách bởi một phần tử khác
5 - Tách một danh sách thành nhiều danh sách
6 - Ghép nhiều danh sách thành một danh sách
Kết quả của phép ghép là tạo ra một danh sách mới có số lượng các phần tử bằng tổng các phần tử của các danh sách thành phần . Danh sách thứ nhất gồm hai ngành :
7 - Trộn nhiều danh sách thành một danh sách mới
Khi trộn nhiều danh sách chúng ta phải dựa vào một qui tắc nào đó . Chẳng hạn , trộn hai danh sách có cùng thứ tự ( tăng dần hay giảm dần ) để tạo ra một danh sách có cùng thứ tự đó .
Kết quả trộn là danh sách sau đây :
8 - Sắp xếp thứ tự một danh sách
Khi sắp xếp ta phải dựa vào một khoá nào đó . Việc sắp xếp sẽ làm thay đổi vị trí của các phần tử trong danh sách theo trình tự của khoá . Ví dụ : Sắp xếp danh sách sau đây theo trình tự A,B,C của tên ngành học :
Giải thuật tạo lập Stack
Giải thuật tạo lập Queue
Giải thuật kiểm tra Queue rỗng
Giải thuật chèn vào Queue
Giải thuật loại khỏi Queue
Bài toán 1
Chương 4
Bài toán 2
Giải thuật tạo lập
Giải thuật ghép nối hai danh sách
Giải thuật tách danh sách
Giải thuật ghép danh sách liên kết đối xứng
Giải thuật tách danh sách liên kết đối xứng
Trường hợp 1
Trường hợp 2
Bài toán 1
Bài toán 2
Bài toán 3
Bài toán 4
Câu hỏi ôn tập chương 5
Bài 2
Giải thuật tìm theo chiều sâu
Dùng danh sách kề
Dùng danh sách các cạnh
Sắp sếp - SORTING
Procedure Comparison - Counting;
Phân tích phương pháp đếm
Procedure Straight - Selection - Sort
Phân tích phương pháp chọn trực tiếp
1.2.Sự ra đời và phát triển của PASCAL
1.3.Giới thiệu Turbo PASCAL
2.1.Bộ chữ viết dùng trong PASCAL
a. Các chữ cái của bảng chữ cái tiếng Anh
b. Các chữ số
2.3.Tên (Define)
Một số tên chuẩn thường được dùng trong Turbo PASCAL
3.1.Phần tên chương trình
PROGRAM SAPXEP;
PROGRAM TAOTEPSN;
PROGRAM GiaiPhuongTrinhBac2;
3.2.Phần khai báo
a.Khái niệm hằng và biến
b.Khai báo hằng
CONST
GIOIHAN = 255; TOIDA = 1024;
VAR
I, J : Integer ;
Traloi: Boolean;
Tong : Real;
3.3.Phần thân chương trình
Program Loichao;
Begin
Writeln('Chao ban Phan Thi Phuong Thanh ');
End.
Chao ban Phan Thi Phuong Thanh!
4.1.Khởi động Turbo PASCAL
TURBO
4.2.Bảng chọn lệnh
4.3.Dịch chương trình
4.4.Thực hiện chương trình
4.5.Thoát khỏi Turbo PASCAL
5.1.Khái niệm kiểu dữ liệu
1. Kiểu vô hướng (còn gọi là kiểu đơn giản).
1.2 + Kiểu vô hướng do người lập trình tự định nghĩa.
1.2.2 _ Kiểu liệt kê (ENUMERATED).
2. Kiểu dữ liệu có cấu trúc (STRUCTURED TYPE).
3. Kiểu dãy ký tự (STRING TYPE).
4. Kiểu con trỏ (POINTER TYPE).
5.2.Kiểu dữ liệu lô gic (Boolean)
a.Khái niệm kiểu dữ liệu lô gic
b.Các phép toán đối với dữ liệu kiểu lô gic
VAR
GioiTinh,DangVien: Boolean;
5.3.Kiểu dữ liệu số nguyên (Integer)
a.Khái niệm kiểu dữ liệu số nguyên
VAR
I,J: Integer;
b.Các phép toán số học đối với dữ liệu kiểu nguyên
5.4.Kiểu dữ liệu số thực (Real)
a.Khái niệm kiểu dữ liệu số thực
b.Số thực dấu phẩy tĩnh
c.Số thực dấu phẩy động
VAR
S,Tong: Real;
d.Các phép toán số học và quan hệ đối với kiểu dữ liệu số thực
5.5.Các hàm chuẩn cho dữ liệu kiểu nguyên và thực
5.6.Kiểu dữ liệu ký tự (Character)
a.Khái niệm kiểu dữ liệu ký tự
VAR
Traloi: char ;
b.Các hàm chuẩn dùng cho các dữ liệu kiểu ký tự
5.7.Kiểu dữ liệu dãy ký tự (String)
a.Khái niệm kiểu dữ liệu dãy ký tự
VAR
HOVATEN: String[25];
LOP:String[25];
HOVATEN:= 'BUI DIEU LINH';
LOP:= 'Tai chinh B khoa 39 - Ngan hang';
b.Phép toán đối với dữ liệu kiểu dãy ký tự
'TURBO'+' PASCAL' = 'TURBO PASCAL'.
c.So sánh hai dãy kí tự
6.1.Khái niệm biểu thức
6.2.Các phép toán (Operator)
6.3.Thứ tự thực hiện phép toán trong biểu thức
7.1.Thủ tục xuất dữ liệu ra màn hình (Write)
WRITE(<Biểu thức 1, Biểu thức 2,..., Biểu thức n>);
VAR
I:Integer;
T:Real;
Begin
I:= 1;
T:= 51.124;
Write(I,T);
End.
7.2.Thủ tục xuất dữ liệu ra màn hình (Writeln)
WRITELN(<Biểu thức 1, Biểu thức 2,..., Biểu thức n>);
WRITELN;
7.3.Đưa ra màn hình có qui cách
<Biểu thức kiểu St>:n
Var
Ten1, Ten2: String[25];
Begin
Writeln('1234567890123456789012345');
End.
<Biểu thức kiểu BL>:n
Var
OK: Boolean;
Begin
Writeln('12345678901234567890');
OK:= 3 < 5;
End.
<Biểu thức kiểu IN>:n
Var
I, J: Integer;
Begin
Writeln('12345678901234567890');
I:=123;
End.
<Biểu thức kiểu RE>:n
<Biểu thức kiểu RE>:n:m
Var
R: Real;
Begin
Writeln('12345678901234567890');
R:= 123.456;
End.
7.4.Đưa ra máy in
Uses Printer;
.
.
Writeln(Lst,I:5,R:12:5);
7.5.Thủ tục trình bầy màn hình
a.Thủ tục GoToXY(X,Y)
b.Thủ tục ClrScr (Clear Screen)
c.Thủ tục ClrEol (Clear End Of Line)
d.Thủ tục TextColor (Color)
e.Thủ tục TextBackGround (Color)
Program Cac_Lenh_Man_Hinh;
Uses
Crt;
Var
X, Y: Integer;
Begin
ClrScr;
X:= 10;Y:= 2;
GoToXY(X,Y);TextColor(Red);
Write('PASCAL');
GoToXY(X-6,Y+1);TextColor(Green);
Write('PASCAL');
GoToXY(X+6,Y+2);TextColor(Blue);
Write('PASCAL');
GoToXY(X,Y+3);TextColor(0);
Write('PASCAL');
Readln;
End.
f.Các thủ tục LowVideo và NormVideo
NormVideo;Write('P');
LowVideo;Write('ASCA');
NormVideo;Write('L');
g.Hàm WhereX và hàm WhereY
7.6.Thủ tục vào dữ liệu (Read)
Var
Luong,no: Real;
Begin
Write('Nhap vao hai gia tri luong, no');
Read(Luong,No);
End.
7.7.Thủ tục vào dữ liệu (Readln)
READLN;
Program ViDuVeQuiCach;
MaCB: Integer;
MLuong,Tamung:Real;
Begin
Write('Nhap vao Ma can bo, Muc luong va tam ung');
Readln(MaCB,MLuong,Tamung);
Write(MaCB:4,MLuong:8:2,Tamung:8:2);
Writeln(Mluong - Tamung:8:2);
Readln;
End.
8.1. Lệnh gán (Assignment)
<Tên biến>:= <Biểu thức>;
I:=1;
TB:=(Toan+Ly+Hoa)/3;
J:=J+1;
8.2. Câu lệnh ghép (Compound Statement)
IF A1>A2 Then
Begin
End;
8.3. Một số ví dụ
Program Tinh_Diem_Trung_Binh;
Var
TenSV:String[25];
Toan,Ly,Hoa,TB:Real;
Begin
Write('Nhap ten Sinh Vien ');Readln(TenSV);
Write('Nhap diem toan ly, hoa ');
Readln(Toan, Ly, Hoa);
TB:= (Toan+Ly+Hoa)/3;
Writeln(Ten sinh vien;TenSV:25,Diem TB;TB:5:2);
Readln;
End.
Program Tinh_Luong;
Var
TenCN:String[25];
TL,TT,TNO,TDL:Real;
Begin
Write('Nhap ten cong nhan ');
Readln(TenCN);
Write('Nhap luong,Thuong,No ');
Readln(TL,TT,TNO);
TDL:=(TL+TT-TNO);
Writeln(TenCN:25, TDL:10:2);
Readln;
End.
9.1. Câu lệnh rẽ hai nhánh (If..Then..)
Program Tinh_Tien_Thuong;
Var
TenCN:String[25];
SLSP,DM,TT:Real;
Begin
Write ('Nhap ten cong nhan ');
Readln(TenCN);
Write('Nhap So Luong san pham ');
Readln(SLSP)
Write('Nhap Dinh muc san pham ');
Readln(DM);
If SLSP > DM Then
TT:=(SLSP-DM)*5000
Else
TT:=0;
Writeln(TenCN,TT);
End.
Progam Giai_Phuong_Trinh_Bac_Hai;
VAR
A,B,C,X1,X2,Delta:Real;
Begin
Write('nhap 3 so A,B,C');Readln(A,B,C);
Delta:=B*B-4*A*C;
If Delta < 0 Then
Writeln('Phuong trinh vo nghiem')
Else
Begin
X1:= (-B + SQRT(Delta))/(2*A);
X2:= (-B - SQRT(Delta))/(2*A);
Writeln('X1 = ',X1,'X2 = ',X2);
End;
End.
9.2.Câu lệnh chuyển vô điều kiện (Goto) và khai báo nhãn (Label)
GOTO <Nhãn>;
9.4.Câu lệnh rẽ nhiều nhánh (Case ... Of)
Câu lệnh CASE có 2 qui cách
CASE <Biểu thức> OF
END;
END;
10.1.Khái niệm chương trình có chu trình
10.2.Các lệnh chu trình của PASCAL
a. Câu lệnh chu trình số học (FOR ... DO)
b. Câu lệnh chu trình lô gic WHILE... DO
c. Câu lệnh chu trình lô gic REPEAT... UNTIL
11.1.Khái niệm dữ liệu kiểu mảng
11.2.Khai báo dữ liệu kiểu mảng
Chương trình này cho ta kết quả
I = 512 thi Str(I:5,St) sẽ cho kết quả là St = ' 512'.còn
Tệp rỗng có thể gán cho mọi biến kiểu tập hợp khác nhau.
A := [3..5]; B := [4..6,10,123];
C := A*B; ( thì C sẽ là [4,5]).
GRAPH.TPU
USES GRAPH;
CGA.BGI
EGAVGA.BGI
Qui cách:
Qui cách:
Qui cách:
Qui cách:
Qui cách:
Qui cách:
Qui cách:
Qui cách:
Qui cách1:
Qui cách 2:
Qui cách:
Tiền được lĩnh = Tiền lương + Tiền thưởng - Tiền nợ