Quick Review Pascal (cho các thím thi Tin học)

#PASCAL - Thằng hại não :joy:

Bài viết phục vụ cho việc ôn tập Pascal nhanh chóng cho các bạn thi tin học các kiểu :stuck_out_tongue:

##Tổng Quan - Xấu mà đẹp

  • Pascal không phân biệt hoa thường. Bắt đầu định danh phải là Kí tự chữ, không cho phép kí hiệu trong định danh (trừ _ )
    VD: BAI_NAY_MEO_BIET_LAM, bainayMeoBietLam, bai3eoThemLam

  • Mỗi câu lệnh kết thúc bằng " ; ", khối lệnh mở đầu bang " begin " và kết thúc bang “end”

  • Cấu trúc một chương trình Pascal chuẩn

program Bai3MeoBietLam;
uses crt;
begin
   {Méo biết trong này chứa gì}
end.
  • Mọi biến đều phải khai báo ở đầu chương trình với từ khoá var hoặc const (đ/v hằng số)

##CƠ cmn BẢN (những gì trẻ trâu 8 học)
###Biến và Hằng

const SauChin = 69;
var SauChin, SinChau : integer = 69;
  • Khai báo hàm (sau var): <Định danh> : < kiểu > [< = <giá trị khởi tạo> ];
    Giá trị khởi tạo có thể có hoặc không.
  • Khai báo hằng : const <định danh> = <giá trị>;
  • Các kiểu dữ cmn lieu: biết mấy thằng này là ngon rồi
Tên Kiểu | Phạm Vi                 | Ý cmn Nghĩa
---------+-------------------------+--------------------
BYTE     | 0..255                  | Số tự nhiên
INTEGER  | -32768..32767           | Số Nguyên
CHAR     | 256 Kí tự ASCII         | Kí tự đơn
STRING   | Max = 256 Char          | Chuỗi (Mảng kí tự)
BOOLEAN  | TRUE/FALSE              | Luận lý
REAL     | 2,9x10^-39 .. 1,7x10^38 | Số Thực
LONGINT  | -2147483648..2147483647 | Số Nguyên
CARDINAL |     0 .. 4294967295     | Số Tự Nhiên
INT64    |    -2^63 .. 2^63 - 1    | Số Nguyên         

//Lưu ý: INT64 không thể dùng cho biến đếm for
  • Mảng: <định danh> : array [ < min > .. < max > ] of <kiểu>;

###Toán Tử

:= gán (bác Wirth vui tính v**l)
+ - * / div (chia lấy nguyên) mod (chia lấy dư)
> < >= <= = <>(khác)
not or and

###Điều Khiển

if <điều kiện> then <lệnh> [ else <lệnh (có thể if đc)> ] ;

case <biểu thức> of
  <giá trị> : <lệnh> ;
 [ else <lệnh>; ]
end;

for <biến đếm> := <đầu> to/downto <cuối> do <lệnh>
while <đk> do <lệnh>;
do <lệnh> while <đk>;
rapeat <lệnh> until <đk thoát>; 

Thủ Tục Cơ bản

write ( 'Đây là chuỗi'); writeln ('Bla bla'); -> in ra không xuống dòng & xuống dòng
read (<biến>); readln(<biến>); -> nhập input không cần enter và cần enter
sqr -> bình phương
sqrt -> căn bậc hai
abs -> lấy trị tuyệt đối
odd(x); xét x có là số lẻ ko
chr(x); -> trả về kí tự thứ x trong ascii
ord(x); -> trả về thứ tự của x trong ascii
round(x); -> làm tròn

##CHUYÊN MÔN (những gì thằng đi thi học)
###Thủ Tục và Hàm

  • Thủ Tục:
procedure <tên> [ ([var] <tham số>: <kiểu tham số> ) ];
var <biến nội bộ> : <kiểu>;
begin
   { bla bla }
end;
  • Hàm: khi cần trả về trị, ta dùng exit(<trị>);
function <tên> [ ([var] <than số> : <kiểu tham số> ) ] : <kiểu trả về>;
var <biến nội bộ> : <kiểu>;
begin
   { bla bla }
end;

###Thao Tác Tệp
Trước hết ta cần tạo 1 biến kiểu text

assign(<filevar>, <địa chỉ file trên đĩa>); -> gán file
rewrite(<filevar>); -> tạo file mới để ghi
reset(<filevar>); -> đọc file
append(<filevar>); -> ghi file (file có sẵn)
close(<filevar>); -> đóng file

để đọc dữ liệu file ta dùng lệnh:

eof(<filevar>); -> file có kết thúc chưa
eoln(<filevar>); -> dòng đang đọc kết thúc chưa

###Sâu

delete(<strvar>, <vị trí>, <độ dài>);
insert(<strvar>, <string>, <vị trí>);
copy(<strvar> , <vị trí>, <độ dài>);
length(<strvar>); -> trả về độ dài sâu (áp dung cho mảng cũng đc nhé ;) )
pos(<string>,<strvar>); -> trả về vị trí xuất hiện string đầu tiên trong strvar
upcase(<strvar>); / lowcase(<strvar>);
StrToInt(<string>); -> cast chuỗi thành số, cần dùng uses SysUtils;

Còn nữa và sẽ cập nhật thêm sau :wink:

14 Likes

Hình như còn thiếu repeat … until anh ơi :joy:

3 Likes

cảm ơn e nhé ^^ đã fix

1 Like

Các thím đi thi tin học thì những cái này chắc phải thông thuộc như Tiếng Việt rồi chứ :grin:

3 Likes

vẫn còn 69% thí sinh thù pascal mà :joy:

2 Likes

Ủa anh ơi mảng đâu anh, làm luôn vài cái giải thuật cơ bản như quy hoạch động, chia để trị đi anh

4 Likes

Trẻ trâu 8 là lớp 8 hả anh?, vậy sao trường em không dạy lập trình nhỉ!

2 Likes

Mà nếu thù Pascal thì khỏi thi cũng được mà ?
Vì lên THPT là được dùng thêm C++ nên giờ cứ ôn kỹ để vào trường THPT chuyên nào đó rồi bắt tay luyện giải thuật :smiley:

2 Likes

Từng học Pascal ở Trung học và Phổ thông sau đó lên Đại Học lại học Pascal tiếp !
Nhưng giờ nhìn lại vẫn chẳng hiểu gì :joy:

3 Likes

thi tin học ko học thuật toán học ngôn ngữ làm gì. Ai đi thi mà ko biết mấy cái đó -_-

3 Likes

có sự nhầm lẫn giữa hàm và thủ tục kìa :smiley:

2 Likes

thím xem lại đi, chưa qua chỉnh sửa nhé :wink:

1 Like

Anh ơi, em thấy đây chỉ là cú pháp thôi anh nhỉ? Anh có định đăng mấy cái thuật toán không anh? Cho em học lóm với :smiley:

2 Likes

sẽ có 1 topic riêng về thuật toán, cứ hóng đi :slight_smile:

3 Likes

Series đã tiếp tục rồi nhé :wink: Quick Review Algorithms (cho các thím thi Tin học)

2 Likes

Con trỏ Pascal cũng có nhé.
Struct là như kiểu RECORD hay OBJECT trong Pascal thôi.
Danh sách liên kết là kết hợp giữa con trỏ và 1 số hàm, thủ tục thôi.
Tóm lại, Pascal là một ngôn ngữ cấp cao rồi bạn à.

1 Like

Ừm, Pascal cũng bá nhể :v

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?