30/09/2018, 21:28

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

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

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

##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

Nguyễn Tấn Khoa viết 23:45 ngày 30/09/2018

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

Quốc Hùng viết 23:34 ngày 30/09/2018

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

Truong Pham viết 23:41 ngày 30/09/2018

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ứ

Quốc Hùng viết 23:35 ngày 30/09/2018

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

Đỗ Quốc Chí viết 23:32 ngày 30/09/2018

Ủ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

Phạm Văn Thịnh viết 23:35 ngày 30/09/2018

CƠ cmn BẢN (những gì trẻ trâu 8 học)

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ỉ!

Người bí ẩn viết 23:36 ngày 30/09/2018

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

The Wind viết 23:30 ngày 30/09/2018

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ì

GodOfGod viết 23:38 ngày 30/09/2018

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 đó -_-

Khôi Trần viết 23:32 ngày 30/09/2018

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

Quốc Hùng viết 23:40 ngày 30/09/2018

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

Lưu Nguyễn Phát viết 23:41 ngày 30/09/2018

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

Quốc Hùng viết 23:34 ngày 30/09/2018

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

Quốc Hùng viết 23:35 ngày 30/09/2018

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

Tống Hoàng Vũ viết 23:44 ngày 30/09/2018

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 à.

Người bí ẩn viết 23:40 ngày 30/09/2018

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

Bài liên quan
0