1 8 TÓM TẮT LÝ THUYẾT PASCAL 1 Khai báo a Thư viện màn hình, âm thanh USES CRT; (Để dùng các lệnh CLRSCR; READKEY ) b Hằng CONST biến = giá trị (vd CONST m=10) Thường dùng khi làm bài tập với mảng c B.
1 TÓM TẮT LÝ THUYẾT PASCAL Khai báo: a Thư viện hình, âm thanh…: USES CRT; (Để dùng lệnh: CLRSCR; READKEY…) b Hằng: CONST biến = giá trị (vd: CONST m=10) Thường dùng làm tập với mảng c Biến: VAR biến : kiểu liệu Ví dụ: (xem bảng bên dưới) Số nguyên Thực: Kí tự Chuỗi Logic Mảng Tập hợp I: Integer X: Real Ch: Char S: String Ktra: Boolean A: array[1 10] of hoa Set of integer char Một số câu lệnh lưu ý: a IF THEN IF THEN ELSE ; b CASE OF giá trị 1: lệnh 1; giá trị 2: lệnh 2; …… giá trị n: lệnh n; ELSE lệnh 0; END; (lưu ý phải có END-kết thúc lệnh CASE, khơng chương trình báo lỗi em khó phát được) c FOR biến := giá trị đầu TO/DOWN TO giá trị cuối DO Lưu ý: Đối với TO giá trị đầu =< giá trị cuối, DOWN TO giá trị đầu >= giá trị cuối; nhiều câu lệnh phải dùng BEGIN…END d REPEAT UNTIL e WHILE DO Lưu ý: Nhiều câu lệnh phải dùng BEGIN…END * Đối với câu lệnh lặp phải có điều kiện thốt, khơng chương trình bị treo Khi giải tốn có câu lệnh lặp nên lưu tập tin trước chạy chương trình Một số hàm, thủ tục a Kiểu nguyên: Phép toán: MOD : Chia lấy phần dư (10 mod = 1); DIV: Chia lấy phần nguyên (10 div =3) Hàm: INC(X,N), DEC(X,N), … b Kiểu Thực: Hàm TRUNC(X): Lấy phần nguyên X không lấy phần lẻ (TRUNC(32,456)=32) c Kiểu kí tự: Hàm CHR(x): Trả giá trị kí tự mã ASCII ứng với số thứ tự x (CHR(65)=’A’; #65=’A’) Hàm ORD(ch): Trả giá trị số thứ tự ký tự ch bảng mã ASCII (ORD(‘a’)=97 Vị trí số ký tự bảng mã ASCII (phải học thuộc lịng): Phím cách trống 32, phím Enter: 13, phím ESC: 27, A : 65 , a: 97, Hàm READKEY(Ch:=Readkey): Nhận ký tự từ bàn phím (gán cho Ch) không ký tự (Dùng cho mật khẩu…) 2 Hàm KEYPRESSED; cho giá trị true có phím bấm, ngược lại cho gía trị false d Kiểu chuổi: Hàm LENGTH(S): Trả giá trị độ dài chuổi S Hàm COPY(S,P,N): Lấy chuổi S vị trí P, lấy N kí tự Hàm POS(S1,S): Trả giá trị vị trí S1 S, khơng thấy Thủ tục DELETE(S,P,N): Xoá chuổi S từ vị trí P, xố N kí tự Thủ tục INSERT(S1,S,P): Chèn chuổi S1 vào chuổi S vị trí P Thủ tục STR(X,S): Biếu đổi số X thành chuổi S Thủ tục VAL(S,X,C): Biến đổi chuổi S thành số X C=0, khơng C nhận giá trị vị trí khơng biến đổi được.(VD: Val(‘128b7,x,c) c=4 – không biến đổi được) *Mảng chiều: 1-Khai báo biết mảng: Var tênmảng: array[m1 m2] of kiểuphầntử; Giải thích: Ở m1, m2 hai xác định phạm vi số đầu (m1) số cuối (m2), chúng có chung kiểu liệu Ví dụ: var a:array[1 100] of integer; 2-Nhập giá trị cho biến mảng: for i:=1 to n begin write('nhap so thu ',i,':'); readln(a[i]); end; 3-Xuất giá trị biến mảng: for i:=1 to n write(a[i],' '); e Kiểu mảng: Giải thuật xếp mảng: (Phải nắm vững) Giải thuật tìm kiếm (tìm xem x có mảng For i:=1 to n-1 không) For j:=i+1 to n For i:=1 to n If a[i]a[j]) then If a[i]=x then Begin Begin vt:=i; break; end; Tam:=a[i]; If vt>0 then write(‘Da tim thay tai’,vt) a[i]:=a[j]; Else write(‘Khong thay’); a[j]:=tam; End; 1.Viết chương trình nhập dãy số, in dãy số hình program nhap_inds; var a:array[1 100] of integer; i,n:integer; begin write('nhap n: ');readln(n); for i:=1 to n begin write('nhap so thu ',i,':'); readln(a[i]); end; for i:=1 to n write(a[i],' '); readln; end 2.Viết chương trình nhập dãy số, in dãy số hình, tính tổng phần tử danh sách program tong_ds; var a:array[1 100] of integer; i,n,s:integer; begin write('nhap n: ');readln(n); for i:=1 to n begin write('nhap so thu ',i,':'); readln(a[i]); end; for i:=1 to n write(a[i],' '); s:=0; for i:=1 to n s:=s+a[i]; write('tong',n:3,' so mang la',s:4); readln; end 3.Viết chương trình nhập dãy số, in số lẻ hình, tính tổng số lẻ có danh sách program tong_ds; var a:array[1 100] of integer; i,n,s:integer; begin write('nhap n: ');readln(n); for i:=1 to n begin write('nhap so thu ',i,':'); readln(a[i]); end; for i:=1 to n if a[i] mod 20 then write(a[i],' '); s:=0; for i:=1 to n if a[i] mod 20 then s:=s+a[i]; write('tong cac so le mang la',s:4); readln; end 4.Viết chương trình nhập dãy số, in số chẳn hình, tính tổng số chẳn có danh sách program tong_ds; var a:array[1 100] of integer; i,n,s:integer; begin write('nhap n: ');readln(n); for i:=1 to n begin write('nhap so thu ',i,':'); readln(a[i]); end; for i:=1 to n if a[i] mod 2=0 then write(a[i],' '); s:=0; for i:=1 to n if a[i] mod 2=0 then s:=s+a[i]; write('tong cac so chan mang la',s:4); readln; end Viết chương trình nhập dãy số, in dãy số hình, tìm số nhỏ có danh sách program tong_ds; var a:array[1 100] of integer; i,n,min:integer; begin write('nhap n: ');readln(n); for i:=1 to n begin write('nhap so thu ',i,':'); readln(a[i]); end; for i:=1 to n write(a[i],' '); min:=a[1]; for i:=1 to n if a[i]max then max:=a[i]; write('so lon nhat mang la',max:4); readln; end Viết chương trình nhập dãy số, in hình số nhỏ nhất, lớn tính giá trị trung bình ptử danh sách program ln_nn_tb; var a:array[1 100] of integer; i,n,s,max,min:integer; begin write('nhap n: ');readln(n); for i:=1 to n begin write('nhap so thu ',i,':'); readln(a[i]); end; s:=0; max:=a[1]; min:=a[1]; for i:=1 to n begin if a[i]>max then max:=a[i]; if a[i]a[sau] then begin tg:=a[vt]; a[vt]:=a[sau]; a[sau]:=tg; end; for i:=1 to n 10 write(a[i],' '); write('nhap so bat ki: ');readln(x); i:=0; while (a[i+1]