Hiển thị các bài đăng có nhãn Pascal. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Pascal. Hiển thị tất cả bài đăng

Tổng hợp các Ebook lập trình pascal

Bookmark and Share
Pascal là một ngôn ngữ lập trình cho máy tính thuộc dạng mệnh lệnh, được Niklaus Wirth phát triển vào năm 1970 là ngôn ngữ đặc biệt thích hợp cho kiểu lập trình có cấu trúc.

Pascal dựa trên ngôn ngữ lập trình Algol và được đặt tên theo nhà toán học và triết học Blaise Pascal. Wirth đồng thời cũng xây dựng Modula-2 và Oberon, là những ngôn ngữ tương đồng với Pascal. Oberon cũng hỗ trợ kiểu lập trình hướng đối tượng.


Ban đầu, Pascal là một ngôn ngữ được hướng để dùng trong giảng dạy về lập trình có cấu trúc, và nhiều thế hệ sinh viên đã "vào đời" thông qua việc học Pascal như ngôn ngữ vỡ lòng trong các chương trình học đại cương. Nhiều biến thể của Pascal ngày nay vẫn còn được sử dụng khá phổ biến, cả trong giảng dạy lẫn trong công nghiệp phát triển phần mềm.


Phần lớn hệ điều hành Macintosh được viết bằng Pascal. Hệ sắp chữ TeX phổ biến được viết bằng một ngôn ngữ tên là Web là ngôn ngữ mà Donald Knuth đã vay mượn khá nhiều yếu tố từ Pascal


* 150 bài toán pascal

* Kỹ Thuật Lập Trình Nâng Cao
* Quy hoạch động
* Giáo trinh pascal căn bản
* Thuật toán - thuật giải
* Ngôn ngữ lập trình Pascal

Download:
Đọc tiếp...

Một số lệnh trong pascal

Bookmark and Share
SYSTEM
  • write(): in ra màn hình liền sau kí tự cuối.
  • writeln(): in xuống một hàng.
  • read( ): đọc biến.
  • readln( ): đọc biến và xuống dòng

Unit CRT

    • clrscr : xoá toàn bộ màn hình.
    • textcolor() : in chữ màu.
    • textbackground() : tô màu cho màn hình.
    • sound() : tạo âm thanh.
    • delay() : làm trễ.
    • nosound : tắt âm thanh.
    • windows(x1,y1,x2,y2) : thay đổi cửa sổ màn hình.
    • highvideo : tăng độ sáng màn hình.
    • lowvideo : giảm độ sáng màn hình.
    • normvideo : màn hình trở lại chế độ sáng bình thường.
    • gotoxy(x,y) : đưa con trỏ đến vị trí x,y trên màn hình.
    • deline : xoá một dòng đang chứa con trỏ.
    • clreol : xoá các ký tự từ vị trí con trỏ đến cuối mà không di chuyển vị trí con trỏ.
    • insline : chèn thêm một dòng vào vị trí của con trỏ hiện hành.
    • exit : thoát khỏi chương trình.
    • textmode(co40) : tạo kiểu chữ lớn.
    • randomize : khởi tạo chế độ ngẫu nhiên.
    • move(var 1,var 2,n) : sao chép trong bộ nhớ một khối n byte từ biến Var 1 sang biến Var 2.
    • halt : Ngưng thực hiện chương trình và trở về hệ điều hành.
    • Abs(n) : Giá trị tuyệt đối.
    • Arctan(x) : cho kết quả là hàm Arctan(x).
    • Cos(x) : cho kết quả là cos(x).
    • Exp(x) : hàm số mũ cơ số tự nhiên ex.
    • Frac(x) : cho kết quả là phần thập phân của số x.
    • int(x) : cho kết quả là phần nguyên của số thập phân x.
    • ln(x) : Hàm logarit cơ số tự nhiên.
    • sin(x) : cho kết quả là sin(x), với x tính bằng Radian.
    • Sqr(x) : bình phương của số x.
    • Sqrt(x) : cho kết quả là căn bậc hai của x.
    • pred(x) : cho kết quả là số nguyên đứng trước số nguyên x.
    • Succ(x) : cho kết quả là số nguyên đứng sau số nguyên x.
    • odd(x) : cho kết quả là true nếu x số lẻ, ngược lại là false.
    • chr(x) : trả về một kí tự có vị trí là x trong bảng mã ASCII.
    • Ord(x) : trả về một số thứ tự của kí tự x.
    • round(n) : Làm tròn số thực n.
    • Random(n) : cho một số ngẫu nhiên trong phạm vi n.
    • upcase(n) : đổi kí tự chữ thường sang chữ hoa.
    • assign(f,'<đường dẫn><tên file>.<phần mở rộng>') : tạo file.
    • rewrite(f) : ghi file lên đĩa.
    • append(f) : chèn thêm dữ liệu cho file.
    • close(f) : tắt file.
    • erase(f) : xóa.
    • rename() : đặt lại tên.
    • length(s) : cho kết quả là chiều dài của xâu.
    • copy(s,a,b) : copy xâu.
    • insert(,s,a) : chèn thêm cho xâu.
    • delete(s:string,a:integer,b:integer) : xóa b ký tự từ vị trí a trong xâu s

Unit GRAPH

    •  initgraph(a,b,) : khởi tạo chế độ đồ hoạ.
    • closegraph; : tắt chế độ đồ hoạ.
      • setcolor(x) : chọn màu.
      • outtext() : in ra màn hình tại góc trên bên trái.
      • outtextxy(x,y,); : in ra màn hình tại toạ độ màn hình.
      • rectangle(x1,y1,x2,y2): vẽ hình chữ nhật.
      • line(x1,y1,x2,y2) : vẽ đoạn thẳng.
      • moveto(x,y) : lấy điểm xuất phát để vẽ đoạn thẳng.
      • lineto(x,y) : lấy điểm kết thúc để vẽ doạn thảng.
      • circle(x,y,n) : vẽ đường tròn.
      • ellipse(x,y,o1,o2,a,b): vẽ hình elip.
      • floodfill(a,b,n) : tô màu cho hình.
      • getfillpattern(x) : tạo biến để tô.
      • setfillpattern(x,a) : chọn màu để tô.
      • cleardevice; : xoá toàn bộ màn hình.
      • settextstyle(n,a,b) : chọn kiểu chữ.
      • bar(a,b,c,d) : vẽ thanh.
      • bar3d(a,b,c,d,n,h) : vẽ hộp.
      • arc(a,b,c,d,e) : vẽ cung tròn.
      • setbkcolor(n) : tô màu nền.
      • putpixel(x,y,n) : vẽ điểm.
      • setfillstyle(a,b) : tạo nền cho màn hình.
      • setlinestyle(a,b,c) : chọn kiểu đoạn thẳng.
      • getmem(p,1) : chuyển biến để nhớ dữ liệu.
      • getimage(x1,y1,x2,y2,p): nhớ các hình vẽ trên vùng cửa sổ xác định.
      • putimage(x,y,p,n) : in ra màn hình các hình vừa nhớ. ...

    Unit DOS

    • getdate(y,m,d,t): lấy các dữ liệu về ngày trong bộ nhớ.
    • gettime(h,m,s,hund): lấy các dữ liệu về giờ trong bộ nhớ.
    • findnext(x): tìm kiếm tiếp.
    • Findfirst($20,dirinfo): tìm kiếm. ...
    Đọc tiếp...

    Vẽ và tính trong đa giác

    Bookmark and Share
    Program Da_giac;
    Uses Crt,graph;
    Const Max=20;
    Type Dinh=Record
    X:integer;
    Y:integer;
    End;
    Var Diem:Array[1..Max] of Dinh;
    N,i,j,h,k:Byte;
    D,dt,total,t,p:Real;
    A,b,c:Real;
    Gd,gm:integer;
    {+}
    Procedure Ngat;
    Begin
    WRITELN('//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\//\\');
    End;
    {-}

    {+}
    Procedure Nhap;
    Begin
    Clrscr;
    Write(' - Xac dinh trong da giac co bao nhieu dinh: ');readln(n);
    IF n<=2 then
    Writeln(' Ban da nhap sai so luong dinh trong da giac! ') else
    For i:=1 to n do
    Begin
    Writeln(' > Toa do dinh thu ',i,' la: ');
    begin
    Write(' * Toa do Hoanh X : ');readln(diem[i].x);
    Write(' * Toa do Tung Y : ');readln(diem[i].y);
    end;
    End;
    Writeln;
    Ngat;
    End;
    {-}

    {+}
    Function Kc(x1,y1,x2,y2:LongInt):Real;
    Begin
    Kc:=sqrt(sqr(x1-x2)+sqr(y1-y2));
    End;
    {-}
    {+}
    Procedure KhoangCach;
    Begin
    For h:=1 to n-1 do
    Begin
    Write(' [] Khoang cach giua hai diem thu ',h,' va thu ',h+1,' la: ');
    d:=kc(diem[h].x,diem[h].y,diem[h+1].x,diem[h+1].y);
    Writeln(' ',d:8:2);
    End;
    Write(' [] Khoang cach giua hai diem thu ',n,' va thu 1 la: ');
    Writeln(' ',kc(diem[n].x,diem[n].y,diem[1].x,diem[1].y):8:2);
    Writeln;
    Ngat;
    End;
    {-}

    {+}
    Procedure Chuvi;
    Begin
    T:=0.00;
    For h:=1 to n-1 do
    Begin
    d:=kc(diem[h].x,diem[h].y,diem[h+1].x,diem[h+1].y);
    T:=t+d;
    End;
    Writeln(' [] Chu vi da giac ',n,' dinh la: ',t+kc(diem[n].x,diem[n].y,diem[1].x,diem[1].y):8:2);
    Writeln;
    Ngat;
    End;
    {-}

    {+}
    Function S(x1,y1,x2,y2,x3,y3:byte):Real;
    Begin
    a:=kc(x1,y1,x2,y2);
    b:=kc(x2,y2,x3,y3);
    c:=kc(x3,y3,x1,y1);
    p:=(a+b+c)/2;
    S:=Sqrt(p*(p-a)*(p-b)*(p-c));
    End;
    {-}
    {+}
    Procedure Dientich;
    Begin
    Total:=0.00;
    For i:=2 to n-1 do
    Begin
    Dt:= S(diem[1].x,diem[1].y,diem[i].x,diem[i].y,diem[i+1].x,diem[i+1].y);
    Writeln(' [] Dien tich tam giac qua 3 diem [1]_[',i,']_[',i+1,'] la: ',dt:8:2);
    Total:=Total+Dt;
    End;
    Writeln(' [] Dien tich da giac ',n,' dinh la: ',Total:8:2);
    Writeln;
    Ngat;
    End;
    {-}

    {+}
    Procedure Ve;
    Begin
    Gd:=Detect;
    InitGraph(Gd, Gm, 'C:\BGI');
    TextBackGround(Yellow);
    SetColor(Green);
    For i:=1 to n do
    Line(diem[i].x,diem[i].y,diem[i+1].x,diem[i+1].y);
    For i:=2 to n-1 do
    Line(diem[1].x,diem[1].y,diem[i].x,diem[i].y);
    Writeln;
    Ngat;
    End;
    {-}

    {+}
    Procedure ToMauDaGiac;
    Const Triangle:array[1..4] of PointType=
    ((x:50;y:100),(x:100;y:100),(x:150;y:150),(x:50;y: 100));
    Begin
    Ve;
    If graphresult <> grOk then
    Halt(3);
    FillPoly(SizeOf(Triangle) div SizeOf(PointType), Triangle);
    CloseGraph;
    Writeln;
    Ngat;
    End;
    {-}

    {+}
    Procedure Tinh;
    Begin
    KhoangCach;
    Chuvi;
    DienTich;
    Readln;
    End;
    {-}

    BEGIN
    NHAP;
    TINH;
    VE;
    Readln
    END.
    Đọc tiếp...

    Kiểu bản ghi (Record)

    Bookmark and Share

     I. KHAI BÁO DŨ LIỆU KIỂU RECORD
    TYPE TênKiểu = RECORD
                                                    Field1 : Kiểu1;
                                                    Field2 : Kiểu2;
                                                    …
                                                    FieldN: KiểuN;
                                        END;
    VAR               Biến : TênKiểu;
    Ví dụ:
    TYPE  HocSinh  = Record
    Hoten : String[20];
    Tuoi : Integer;
    DiemTB : real;
    End;
    VAR  HS : HocSinh;

    II. XUẤT NHẬP DỮ LIỆU KIỂU RECORD

                Không thể dùng các thủ tục xuất/nhập, các phép toán so sánh đối với các biến kiểu record mà chỉ có thể sử dụng thông qua từng truờng của biến record đó.

    1. Truy nhập trực tiếp: TênbiếnRecord.Field

    2. Sử dụng câu lệnh WITH
              WITH  TênbiếnRecord DO
                       BEGIN
                                 Xử lý Field1;
                                 Xử lý Field2;
                                 …
                                 Xử lý FieldN;
                       END;

    3. Gán biến Record: Ta có thể gán 2 biến Record cùng kiểu với nhau.
    VÍ DỤ:
    Viết chương trình thực hiện phép cộng 2 số phức.
    Uses Crt;
    Type  Complex =   Record
    a,b:Real;
    End;
    Var    c1,c2,c3:Complex;
    dau:string;
    Begin
    Writeln(‘Nhap so phuc c1:’);
    Write(‘Phan thuc a = ‘); Readln(c1.a);
    Write(‘Phan ao b = ‘); Readln(c1.b);
    Writeln(‘Nhap so phuc c2:’);
    Write(‘Phan thuc a = ‘); Readln(c2.a);
    Write(‘Phan ao b = ‘); Readln(c2.b);
    {Tính tổng 2 số phức}
    c3.a := c1.a + c2.a;
    c3.b := c1.b + c2.b;
    {In kết quả ra màn hình}
    Writeln(‘Tong cua 2 so phuc:’);
    If c1.b>=0 Then dau:=’+i’ else dau:=’-i’;
    Writeln(‘c1 = ‘, c1.a:0:2, dau, abs(c1.b):0:2); {Số phức c1}
    If c2.b>=0 Then dau:=’+i’ else dau:=’-i’;
    Writeln(‘c2 = ‘, c2.a:0:2, dau, abs(c2.b):0:2); {Số phức c2}
    Writeln(‘La so phuc:’);
    If c3.b>=0 Then dau:=’+i’ else dau:=’-i’;
    Writeln(‘c3 = ‘, c3.a:0:2, dau, abs(c3.b):0:2); {Số phức c3}
    Readln;
    End.
    Đọc tiếp...
    Photobucket