Write Và Writeln Trong Pascal

--- Bài mới hơn ---

  • Cách Lấy Link Tik Tok Của Mình Và Cách Copy Link Video Tik Tok
  • Cách Lấy Link Video Tik Tok – Lấy Để Làm Gì???
  • Cách Liên Kết Tài Khoản Instagram Với Trang Chủ
  • Action Và Actionresult Trongcore Mvc
  • Cách Sử Dụng Url Actions Trong Tableau (Phần 1)
  • Theo tiếng anh write là viết ra nhưng trong pascal nó có nghĩa là in ra và câu lệnh này dùng để in kết quả ra màn hình.

    write là gì ?

    là câu lệnh dùng để in kết quả hay một đoạn văn ra màn hình khi chạy chương trình dịch.

    cấu trúc để sử dụng câu lệnh để in ra màn hình một đoạn văn tùy thích:

    write(‘một đoạn văn mình cần in ra màn hình’);

    khi sử dụng câu trên khi in ra màn hình: một đoạn văn mình cần in ra màn hình

    cấu trúc để sử dụng câu lệnh để in ra màn hình một kết quả:

    write(1+1);

    khi sử dụng câu trên khi in ra màn hình: 2

    thế bạn thấy khi in ra một đoạn văn bản với một kết quả thì câu lệnh khác nhau cái gì không ?

    – đó chính là hai dấu nháy (‘  ‘), đúng thế hai dấu nháy trên giúp chương trình dịch hiểu rằng đâu là đoạn văn và đâu là kết quả bạn muốn in ra. Khi ta in ra một đoạn văn thì chương trình dịch sẽ không dịch lỗi trong hai dấu nháy trên vì thế bạn có thể gõ write(‘gklgjskfjdkfsdf’); thì nó vẫn không hiện lỗi và in ra mà hình kết quả: gklgjskfjdkfsdf 

    #Lưu ý: nhớ đặt “;” khi kết thúc câu lệnh

    Writeln là gì ? nó có khác với write không ?

    writeln là viết tắt của từ write line để ngắn gọn người ta viết là: writeln.

    chức năng của nó vẫn không đổi đó là in ra màn hình một thứ gì đó tùy thích nhưng nó sẽ xuống dòng khi kết thúc câu lệnh

    cấu trúc in ra một đoạn văn của nó:

    writeln(‘in ra mot doan van’);

     cấu trúc in ra kết quả của nó:

    writeln(1+1);

    thế nó khác như nào: nếu dụng lệnh writeln thì khi chạy chương trình xong thì con trỏ nó sẽ xuống hàng và nếu có một dòng lệnh writeln ở phía dưới thì nó sẽ xuống dòng cho bạn, bạn không phải bị trường hơn kết quả in ra đều nằm trên một dòng, ví du:

    writeln(‘ket qua cua 1+1 la:);

    writeln(1+1);

     khi in ra màn hình kết:

    ket qua cua 1+1 la:

    2

    SHARE THIS

    --- Bài cũ hơn ---

  • Pascal: Ôn Tập Lý Thuyết Pascal
  • Pascal: Hàm Xử Lý Chuỗi (String)
  • Trường Thpt Nguyễn Thị Minh Khai
  • Bài 6. Chuỗi Kí Tự
  • Chuyên Đề Xử Lí Bit
  • Bài 4: Mảng Trong Pascal

    --- Bài mới hơn ---

  • Pascal: Các Kiểu Dữ Liệu Cơ Bản
  • Một Số Lưu Ý Về Chương Trình Con
  • Bài 3 (Tiếp Theo): Biến Toàn Cục, Biến Cục Bộ Và Phạm Vi Của Biến
  • Pascal Cơ Bản – Chủ Đề Ii: Một Số Kiểu Dữ Liệu Chuẩn
  • Câu Lệnh Điều Khiển Vòng Lặp Break, Continue, Goto
  • 1. Mảng 1 chiều:

    – Có thể hiểu nôm na: Mảng 1 chiều là dãy số hữu hạn.

    vd: nhiệt độ mỗi ngày trong tuần (tháng/năm), cấp số cộng, cấp số nhân…

    – Chỉ số của mảng:

    vd: Xét mảng: 10 20 30 5 6 7

    là một dãy các số tự nhiên bất kì có 6 phần tử mà

    phần tử thứ 1 là 10

    phần tử thứ 2 là 20

    phần tử thứ 3 là 30

    phần tử thứ 4 là 5

    phần tử thứ 5 là 6

    phần tử thứ 6 là 7

    Lưu ý!

    Xét dãy: Ti Suu Dan Mao Thin Ti Ngo Mui Than Dau Tuat Hoi

    cũng được coi là mảng 1 chiều, trong đó:

    • Phần tử 1 là Ti
    • Phần tử 2 là Suu
    • Phần tử 3 là Dan
    • Phần tử 4 là Mao
    • Phần tử 5 là Thin

    Xét dãy:cũng được coi là mảng 1 chiều, trong đó:

    – Cách tham chiếu đến mảng: A=10; A=30; A=6; A of integer;

    b,c:array of integer;

    var a,b,c:mang;

    – Cách nhập/xuất mảng 1 chiều:

    vd:- Cách nhập/xuất mảng 1 chiều:

    var a:array=’); readln(A);

    end.

    2. Mảng 2 chiều:

    – Khái niệm: Nếu mảng 1 chiều là dãy thì mảng 2 chiều là bảng các phần tử cùng kiểu (bảng các số).

    – Tham chiếu: Vì mảng 2 chiều là bảng nên sẽ cần chỉ số hàng và chỉ số cột: A of Integer;

          i,j,N,Max,k,c,M:Integer;

    begin

         write(‘So hang cot:’);readln(N,M);Max:=0;

         for i:=1 to N do

          for j:=1 to M do

           begin

                write(‘A);

           end;

         for i:=1 to N do

           begin

                for j:=1 to M do

                write(A[i,j]);

           end;

    end.

    Tổng hợp và biên tập

    Mảng 1 chiều,

    Mảng 2 chiều,

    Pascal cơ bản

    --- Bài cũ hơn ---

  • Dữ Liệu Kiểu Mảng (Array)
  • Làm Việc Với File Trong Pascal
  • Tin Học Cho Người Việt
  • Cùng Nhau Khám Phá, Cùng Nhau Học Tập
  • Phương Thức Thanh Toán D/a
  • Lệnh If .. Then Trong Pascal

    --- Bài mới hơn ---

  • Dữ Liệu Kiểu Tệp: Giới Thiệu Và Sử Dụng (P2) Mở Tệp Và Đọc Tệp
  • Ý Nghĩa Thủ Tục Fillchar Trong Pascal
  • Cách Viết Hàm (Function) Trong Pascal
  • Thủ Tục Trong Pascal, Định Nghĩa Và Cách Khai Báo
  • Vòng Lặp Repeat .. Until Trong Pascal
  • Trong bài này chúng ta sẽ học lệnh rẻ nhánh if .. then trong Pascal, đây là lệnh dùng để đổi hướng chương trình dựa vào một điều kiện nào đó. Kể từ bài lệnh if này ta sẽ bắt đầu học những kiến thức nâng cao hơn.

    Trước khi học bài này bạn cần phải hiểu được khái niệm về giá trị của biểu thức. Chúng ta có hai giá trị đó là đúng ( TRUE) – sai ( FALSE), và mỗi biểu thức đặt trong điều kiện if phải trả về một trong hai giá trị này, vì vậy ta phải sử dụng các toán tử mà mình đã giới thiệu ở bài trước.

    I. Lệnh if .. then trong Pascal

    Giả sử bạn cần viết một chương trình tính tổng của hai số được nhập vào từ bàn phím, sau đó in ra màn hình tổng đó là số chẵn hay số lẻ. Lúc này bạn phải sử dụng lệnh if.

    Cú pháp như sau:

    if (condition) then begin // statement end;

    Trong đó:

    • condition là điều kiện xảy ra
    • statement là đoạn code sẽ được chạy nếu condition có giá trị TRUE, ngược lại nếu giá trị FALSE thì sẽ bỏ qua.

    Ví dụ: Viết chương trình kiểm tra một số có phải là số chẵn hay không

    program IfThenPascal; var a : integer; begin writeln('HOC PASCAL TAI FREETUTS.NET'); writeln('Nhap vao so can kiem tra'); readln(a); if ( a mod 2 = 0 ) then begin writeln(a, ' la so chan'); end; readln; end.

    Chạy chương trình bnạ sẽ thu được kết quả như sau:

    Lưu ý: Nếu bên trong begin và end chỉ có một lệnh duy nhất thì ta có thể bỏ begin và end. Như ví dụ trên ta có thể viết lại như sau:

    begin writeln('HOC PASCAL TAI FREETUTS.NET'); writeln('Nhap vao so can kiem tra'); readln(a); if ( a mod 2 = 0 ) then writeln(a, ' la so chan'); readln; end.

    II. Lệnh if .. then .. else trong Pascal

    Ở lệnh if .. then ta chỉ cho chương trình chạy được một nhánh duy nhất, nhưng thực tế thì ta cần rẻ rất nhiều nhánh nên lúc này phải sử dụng lệnh if .. then .. else.

    Giả sử mình cần viết một chương trình kiểm tra một số xem nó số chẵn hay số lẻ, sau đó in ra màn hình là số chẵn hoặc số lẻ.

    if (condiiton) then begin // statement1 end else begin // statement2 end;

    Ok, bây giờ mình sẽ giải bài toán trên như sau:

    program IfThenPascal; var a : integer; begin writeln('HOC PASCAL TAI FREETUTS.NET'); writeln('Nhap vao so can kiem tra'); readln(a); if ( a mod 2 = 0 ) then begin writeln(a, ' la so chan'); end else begin writeln(a, ' la so le'); end; readln; end.

    Kết quả:

    Ở bài giải trên mình đã sử dụng khối lênh begin và end, tuy nhiên điều đó là dư thừa bởi đoạn code bên trong chỉ có một lệnh duy nhất. Ta có thể viết lại như sau:

    if ( a mod 2 = 0 ) then writeln(a, ' la so chan'); else writeln(a, ' la so le');

    III. Lệnh if .. then .. else lồng nhau trong Pascal

    Lệnh lồng nhau tức là bên trong một lệnh có chứa nhiêu lệnh con. Điều này có nghĩa trong chương trình có sử dụng các lệnh if .. then, và bên trong đoạn code xử lý lại chứ thêm những đoạn code if .. then khác, ta gọi là lồng nhau.

    if (condition1) then if (condition2) then // statement

    Nghe có ve khó phải không nào? Thực ra nó cũng rất dễ nếu như bạn biên dịch tuân theo thứ tự từ trên xuống và từ trái qua phải. Nếu điều kiện thỏa thì chạy code bên trong điều kiện đó, cứ như vậy cho đến hết tất cả các lệnh if lồng nhau.

    Ví dụ: Viết chương trình kiểm tra một số, nếu là số chẵn thì kiểm tra số đó lớn hơn 100 không, nếu số lẻ thì kiểm số đó lớn hơn 20 không.

    program IfThenPascal; var a : integer; begin writeln('HOC PASCAL TAI FREETUTS.NET'); writeln('Nhap vao so can kiem tra'); readln(a); if ( a mod 2 = 0 ) then begin writeln(a, ' la so chan'); writeln(a, ' lon hon 100'); end else begin writeln(a, ' la so le'); writeln(a, ' lon hon 20'); end; readln; end.

    Chạy lên và nhập số 25 thì ta có được kết quả sau:

    --- Bài cũ hơn ---

  • 13 Sai Lầm Thường Gặp Khi Học Tin 11 Và Cách Khắc Phục
  • Ngôn Ngữ Lập Trình Pascal (Bổ Trợ Tin 11)
  • Một Số Hàm Và Lệnh Pascal Cơ Bản
  • Kinh Nghiệm Khi Thi Hsg Môn Tin Học Bằng Pascal
  • Khối Lệnh Begin … End Trong Pascal
  • Hàm Pascal, Tổng Hợp Các Hàm Phổ Biến, Thường Gặp Trong Pascal

    --- Bài mới hơn ---

  • Câu 1: Cho Biểu Thức Trong Pascal: Abs(X+1) 3
  • Aptomat ! Phân Loại, Cách Sử Dụng Và Báo Giá
  • Hạt Nhựa Tiếng Anh Là Gì? Những Về Hạt Nhựa Bạn Cần Biết
  • Hệ Thống Phanh Abs: Khái Niệm, Cấu Tạo, Phân Loại Và Nguyên Lý Hoạt Động
  • Abs, Ebd Và Ba, 3 Trang Bị An Toàn Ô Tô ‘tối Thiểu’
  • Pascal là ngôn ngữ lập trình cấp thấp với những câu lệnh đơn giản để xử lý những bài toán cơ bản, thường được sử dụng làm ngôn ngữ lập trình trong chương trình học phổ thông để học sinh có thể hình thành tư duy lập trình cơ bản. Tuy nhiên trong chương trình học mới chỉ mang đến một số câu lệnh đơn giản, Taimienphi sẽ đưa đến cho các bạn một số hàm Pascal với nhiều công dụng khác nhau.

    Các hàm nhập và xuất dữ liệu

    write() – in ra màn hình liền sau kí tự cuối.

    writeln() – in ra màn hình xuống một hàng.

    read() – đọc biến.

    readln(‘ ‘) – đọc biến và xuống dòng.

    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.

    pd(x) – cho kết quả là số nguyên đứng trước số nguyên x.

    Suuc(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,) – tạo file.

    rewrite(f) – khởi tạo.

    append(f) – chèn thêm dữ liệu cho file.

    close(f) – tắt file.

    erase(f) – xóa.

    rename() – đổi tên cho file.

    length(s) – cho kết quả là chiều dài của chuỗi.

    copy(s,a,b) – copy chuỗi.

    insert(,s,a) – chèn thêm cho chuỗi.

    delete(s,a,b) – xoá chuỗi.

    Unit GRAPH (Các hàm đồ họa)

    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

    --- Bài cũ hơn ---

  • Abs Trên Xe Máy Hoạt Động Thế Nào?
  • Maknae Là Gì? Bỏ Túi 30+ Thuật Ngữ Chuyên Dùng Của Fan K
  • 14 Thuật Ngữ Tiếng Anh Mà Fan Kpop Phải Biết
  • Bảo Ôn Là Gì? Bảo Ôn Quan Trọng Hay Không Quan Trọng?
  • Thuốc Bảo Vệ Thực Vật Là Gì
  • Các Mã Lỗi Trong Pascal

    --- Bài mới hơn ---

  • Các Lỗi Thường Gặp Trong Pascal
  • Kiểu Tập Tin Trong Pascal
  • Dữ Liệu Kiểu Tệp Trong Pascal
  • Chương Trình Con : Hàm Và Thủ Tục Trong Pascal
  • Pascal: Hằng, Biến, Biểu Thức
  • In trang này

    Khi làm việc với bất cứ một ngôn ngữ lập trình nào, việc hiểu biết rõ các thông báo lỗi rất quan trọng. Đối với người đang học ngôn ngữ đó, trong quá trình làm việc không thể tránh khỏi thao tác sai sinh lỗi. Việc biết rõ ý nghĩa các thông báo lỗi sẽ giúp cho việc sửa chưng trình được nhanh hơn, giúp cho người học hiểu rõ hơn công việc mình làm. Đối với những người viết ứng dụng, ý nghĩa các lỗi sinh ra trong quá trình chạy chưng trình cũng rất quan trọng. Người lập trình cần phải bắt các lỗi trong chương trình để có thể thông báo kịp thời cho người sử dụng, tránh việc chưng trình bị ngắt, không thực hiện tiếp được.

    Việc học ngôn ngữ PASCAL

    trong nhà trường đã trở nên rộng rãi, do đó một tài liệu mô tả chi tiết các

    lỗi mà người dùng có thể gặp khi làm việc với môi trường PASCAL.

    Các lỗi sinh ra trong

    quá trình chạy chương trình (Runtime error)

    Mã lỗi ý nghĩa

    1 Invalid function number Sai số hiệu hàm

    2 File not found Không tìm thấy file

    3 Path not found Không tìm thấy đường dẫn

    4 Too many open files Mở quá nhiều

    file

    5 File access denied Không truy

    nhập được file

    6 Invalid file handle Số hiệu

    file không hợp lệ

    12 Invalid file access code Mã truy nhập file

    không hợp lệ

    15 Invalid drive number Số hiệu thiết

    bị không hợp lệ

    16 Cannot remove current directory Không thể xoá hoặc chuyển thư

    mục hiện hành

    17 Cannot rename across drives Không thể đổi tên các

    thiết bị chéo nhau

    100 Disk read error Lỗi khi đọc đĩa

    101 Disk write error Lỗi khi ghi đĩa

    102 File not assigned File chưa được chỉ định

    103 File not open File chưa được mở

    104 File not open for input File chưa được

    mở để lấy dữ liệu

    105 File not open for output File chưa đựoc mở

    để xuất dữ liệu

    106 Invalid numeric format Định dạng số

    không hợp lệ

    150 Disk is write-protected Đĩa đang được bo vệ chống ghi

    151 Bad drive request struct length Độ lớn cấu yêu cầu cấu trúc

    thiết bị sai

    152 Drive not ready Thiết bị chưa sẵn sàng

    154 CRC error in data Lỗi kiểm tra độ dư vòng trong

    dữ liệu

    156 Disk seek error Lỗi tìm kiếm trên đĩa

    157 Unknown media type Không biết kiểu thiết bị

    158 Sector Not Found Không tìm thấy sector được yêu

    cầu

    159 Printer out of paper Hết giấy

    trên máy in

    160 Device write fault Lỗi ghi thiết bị

    161 Device read fault Lỗi đọc thiết bị

    162 Hardware failure Lỗi phần cứng

    200 Division by zero Lỗi chia cho 0

    201 Range check error Lỗi tràn bộ nhớ

    202 Stack overflow error Lỗi tràn ngăn

    xếp

    203 Heap overflow error Lỗi tràn vùng

    nhớ Heap

    208 Overlay manager not installed Quản lí tràn chưa được cài

    đặt

    209 Overlay file read error Lỗi tràn khi đọc

    file

    210 Object not initialized Đối tượng

    chưa được khởi tạo

    211 Call to abstract method Lỗi gọi một phưng

    thức trừu tượng

    212 Stream registration error Lỗi đăng kí dòng

    xuất nhập

    204 Invalid pointer operation Con trỏ phép toàn

    không hợp lệ

    205 Floating point overflow Tràn dấu phẩy

    động

    206 Floating point underflow Tràn dấu phẩy động

    207 Invalid floating point operation Phép toàn với số dấu phẩy

    động không hợp lệ

    Các lỗi biên dịch

    (Compiler error)

    --- Bài cũ hơn ---

  • Chuyên Đề: Làm Quen Với Pascal–Khai Báo, Sử Dụng Biến
  • Exp Là Gì Giải Đáp Exp Ý Nghĩa Trong Từng Lĩnh Vực Cụ Thể
  • Bài 2. Các Thành Phần Cơ Bản
  • Cầu Tên Trong Ngôn Ngữ Lập Trình Là…
  • Lập Trình Pascal – Tin Học Không Khó
  • Vòng Lặp For .. Do Trong Pascal

    --- Bài mới hơn ---

  • Kiểu Bản Ghi (Record) Trong Pascal
  • Kiểu Dữ Liệu Xâu Kí Tự (String) Trong Pascal
  • Cho Biểu Thức Trong Pascal: Sqrt(Sqr(X)
  • Con Trỏ Trong Pascal, Cấu Trúc Và Ví Dụ Minh Họa
  • Tìm Hiểu Khái Niệm Winword
  • Trong bài này chúng ta sẽ tìm hiểu về vòng lặp For .. Do trong Pascal, đây là vòng lặp cơ bản và được sử dụng nhiều nhất trong lập trình Pascal.

    1. Vòng lặp For .. do trong Pascal

    Vòng lặp for .. do là một cấu trúc điều khiển cho phép bạn viết một chương trình có tính lặp đi lặp lại với số lần cụ thể. Cú pháp của nó như sau:

    Trong đó:

    • variable-name là tên biến điều khiển vòng lặp
    • initial_value là lần lặp đầu tiên
    • final_value là lần lặp cuối, tổng số lần lặp được tính từ initial_value đến final_value
    • S là những lệnh sẽ được chạy trong vòng lặp. Nếu có nhiều lệnh thì phải đặt trong khối BEGIN … END

    HÌnh: internet

    Giả sử bạn muốn in ra các số từ 1 đến 5 thì có thể viết theo cách thông thường như sau:

    program forLoop; begin writeln('1'); writeln('2'); writeln('3'); writeln('4'); writeln('5'); end.

    Nhưng nếu mình muốn in ra từ 1 đến 1000, thậm chí là 1.000.000 lần thì phải làm sao? Nếu viết thủ công như vậy thì là điều rất khó, mất khá nhiều thời gian.

    Áp dụng cấu trúc vòng lặp for thì mình sẽ viết lại bài này như sau:

    program forLoop; var a: integer; begin for a := 1 to 5 do begin writeln('Gia tri cua a la: ', a); end; end.

    Các bước thực hiện như sau:

    • Bước 1: Lặp lần thứ nhất, a bắt đầu từ 1, vì nó nằm trong khoảng từ 1 đến 5 nên khối lệnh bên trong được thực hiện.
    • Bước 2, 3, 4, 5: Tương tự, a sẽ có giá trị lần lượt là 2, 3, 4, 5 và nó nằm trong khoảng 1 – 5 nên vẫn thực hiện.
    • Bước 6: Lúc này a = 6, nằm ngoài phạm vi lặp nên vòng lặp hết thúc.

    Kết quả in ra màn hình các số từ 1 đến 5.

    Gia tri cua a la: 1 Gia tri cua a la: 2 Gia tri cua a la: 3 Gia tri cua a la: 4 Gia tri cua a la: 5

    2. Vòng lặp for .. do lồng nhau

    Trong pascal bạn có thể đặt vòng lặp for này nằm trong vòng lặp for khác để tạo ra cấu trúc lồng nhau. Lúc này tổng số lần lặp sẽ là cấp số nhân giữa vòng lặp ngoài (cha) và vòng lặp trong (con).

    Ví dụ vòng lặp cha lặp từ 1 đến 5, vòng lặp con lặp từ 1 đến 10 thì tổng số lần lặp là 5 x 10 = 50.

    Cấu trúc cú pháp cơ bản như sau:

    for a := 1 to 5 do begin for b := 1 to 10 do begin ... end; end;

    Trong đó các số điều khiển vòng lặp có thể thay đổi theo yêu cầu của bài toán bạn cần lập trình.

    Ví dụ: Mình cần in ra bảng cửu chương thì có thể viết như sau:

    program IfThenPascal; var a: integer; b: integer; begin for a := 2 to 9 do begin for b := 1 to 9 do begin writeln(a, ' x ', b, ' = ', (a * b)); end; end; readln; end.

    Chạy chương trình này bạn sẽ thu được kết quả như sau:

    Trên là kiến thức cơ bản của vòng lặp for trong Pascal. Đây là một vòng lặp rất quan trọng không chỉ ở Pascal mà ở bất kì một ngôn ngữ khác, vì vậy bạn cần phải hiểu ý nghĩa của nó để áp dụng, cũng như sau này sẽ phân biệt với các vòng lặp while và repeat.

    --- Bài cũ hơn ---

  • Giới Thiệu Tổng Quan Stored Procedure Là Gì Trong Sql Server
  • Chương Trình Con (Procedure Và Function) Trong Pascal
  • Pascal : Bài Tập Mảng 1 Chiều Hot Nhất Nên Xem
  • Tổng Hợp Bài Tập Pascal Có Giải, Từ Dễ Đến Khó
  • Lỗi Cú Pháp Trong Pascal Loi Cu Phap Pascal Doc
  • Lỗi Cú Pháp Trong Pascal Loi Cu Phap Pascal Doc

    --- Bài mới hơn ---

  • Tổng Hợp Bài Tập Pascal Có Giải, Từ Dễ Đến Khó
  • Pascal : Bài Tập Mảng 1 Chiều Hot Nhất Nên Xem
  • Chương Trình Con (Procedure Và Function) Trong Pascal
  • Giới Thiệu Tổng Quan Stored Procedure Là Gì Trong Sql Server
  • Vòng Lặp For .. Do Trong Pascal
  • MỘT SỐ LỖI CÚ PHÁP THƯỜNG GẶP TRONG PASCAL

    1. Lỗi cú pháp là những lỗi phát sinh do lập trình viên viết sai những quy định về văn phạm của hệ thống hoặc ngôn ngữ. Thí dụ các lỗi sau đây là những lỗi cú pháp: (a + b * 2: thiếu dấu đóng ngoặc BEGIM: định viết BEGIN, sai N 2. Xử lý lỗi. Lỗi cú pháp được phát hiện trong quá trình dịch. Turbo Pascal báo lỗi cú pháp theo nguyên tắc “Mỗi lần chỉ báo một lỗi”. Nếu gặp lỗi ta cần trở về chế độ soạn thảo, tìm vị trí xuất hiện lỗi, sửa lại lỗi đó rồi dịch lại chương trình. Sau khi báo lỗi, Turbo Pascal sẽ chờ ta bấm phím ESC để trở về chế độ soạn thảo. Con trỏ của màn hình soạn thảo sẽ đặt ở cạnh vị trí xuất hiện lỗi, thông thường quá đi 1 ký tự. 3. Các thông báo lỗi thường gặp và gợi ý khắc phục. Lỗi 2. Identifier expected: mong gặp định danh (có thể do chưa khai báo biến, hằng…) Lỗi 3. Unknown identifier: định danh chưa được khai báo. Hãy khai báo định danh này ở đầu thủ tục hoặc chương trình.( có thể do sai chính tả một tên, từ khoá nào đó) Lỗi 4. Duplicate identifier: định danh được khai báo 2 lần trở lên. Lỗi 5. Syntax error: Lỗi cú pháp. Gặp một ký tự sai hoặc viết sai một hằng. Lỗi 6. Error in real constant: Viết sai hằng thực. Lỗi 7. Error in integer constant: Viết sai hằng nguyên. Chú ý rằng khai báo CONST c = 1234 sẽ cho ta một hằng c kiểu nguyên. Muốn có một hằng kiểu thực, ta viết CONST c = 1234.0. Những hằng có giá trị nằm ngoài khoảng -2147483648..2147483647 cần được khai báo theo kiểu thực, thí dụ: CONST c = 12345678912.0; Lỗi 8. String constant exceeds line: giá trị của xâu ký tự quả dài, xem lại có thiếu dấu đóng/mở (dấu nháy đơn) hằng văn bản không? Lỗi 10. Unexpected end of file: Cần gặp dấu kết tệp. Lỗi 10 có thể xuất hiện trong các trường hợp sau: – Trong trương trình các cặp BIGIN và END không cân đối. – Tệp khác được gọi lồng tại một vị trí không hợp lệ. – Chú thích chưa được đóng bằng dấu } hoặc * ). Lỗi 11. Line too long: Dòng dài quá Bộ soạn thảo cho phép phát sinh các dòng dài tối đa 249 ký tự trong khi khi chương trình dịch chỉ làm việc với các dòng dài tối đa 126 ký tự. Lời khuyên: Không nên viết các dòng dài quá 60 ký tự. Lỗi 12. Type identifier expected: Cần có định danh kiểu Lỗi 20. Variable identifier expected: Cần một định danh cho biến Thí dụ FOR = 4 TO 20 DO sẽ sinh lỗi 20. Lỗi 25. Invalid string length: Chiều dài xâu không hợp lệ. Chiều dài hợp lệ nằm trong khoảng 0 .. 255.

    Lỗi 26. TYPE mismatch: Kiểu không tương thích. các nguyên nhân sinh lỗi có thể là: – Biểu thức được gán cho biến không đúng kiểu. Thí dụ VAR x: char; BEGIN x: = 127 * 8 END. Lỗi 29. Ordinal type expected: Cần một kiểu thứ bậc. Trong trường hợp này không được dùng các kiểu Real, string, Record, PROCEDURE hoặc pointer. Lỗi 30. Integer constant expected: Cần một hằng nguyên Lỗi 31. Constant expected: Cần một hằng

    Lỗi 33. Type identifier expected: Cần một định danh kiểu Lỗi 36. BEGIN expected: Thiếu BEGIN

    Lỗi 37. END expected: Thiếu END Lỗi 38. Integer expssion expexted: Cần biểu thức nguyên Lỗi 39. Ordinal expssion expected: Cần biểu thức thứ bậc Lỗi 40. Boolean expssion expected: Cần biểu thức kiểu BOOLEAN Lỗi 41. Operand types do not match operator: Kiểu toán hạng không phù hợp với toán tử Lỗi 42. Error in expssion: Biểu thức sai. Thường gặp trường hợp sử dụng ký tự lạ hoặc quên viết dấu phép toán trong biểu thức. Lỗi 43. Illegal assigment: Gans Gán không hợp lệ. Không được gán trị cho biến tệp hoặc biến không định kiểu. Không được gán trị cho định danh hàm ở ngoài thân của hàm đó. Lỗi 44. Field identifier expected: Cần một định danh thường. Lỗi phát sinh khi sử dụng bản ghi (RECORD) không có trường hợp đi kèm. Lỗi 54. OF expected:Thiếu OF trong TYPE, CASE, FILE, SET, ARRAY Lỗi 57. THEN expected:Thiếu THEN trong IF Lỗi 58. TO or DOWN TO expected: Thiếu To hoặc DOWN TO trong FOR Lỗi 66. String variable expected: Cần một biến string. Lỗi 67. String expssion expected; Cần một biểu thức string.

    --- Bài cũ hơn ---

  • Cấu Trúc Một Chương Trình Pascal, Khai Báo Biến, Khai Báo Hàm
  • Các Thành Phần Cơ Bản Trong Pascal
  • Biến Toàn Cục Và Biến Cục Bộ Trong Javascript
  • Biến Toàn Cục Và Biến Địa Phương
  • Ý Nghĩa Tham Số, Tham Trị, Tham Biến
  • Chương Trình Con Trong Pascal

    --- Bài mới hơn ---

  • Bài 3: Câu Lệnh Vòng Lặp Trong Pascal (For, While, Repeat)
  • Từ Pascal Đến C/c++ (P2) – Vòng Lặp
  • Phần 3: Record Trong Pascal
  • Nội Dung Ôn Tập Tin Học 11
  • Chuyên Đề Xử Lí Bit
  • Phần này do Thạc sỹ Nguyễn Văn Linh viết và phát hành theo giấy phép CC-BY

    Đây là một phần của Ngôn ngữ Pascal

    Khái niệm : chương trình con là một dãy lệnh mô tả một số thao tác nhất định và có thể được thực hiện ( được gọi ) từ nhiều vị trí trong chương trình (SGK tin học lớp 11 trang 91)

    Procedure Ten_thu_tuc(Danh sách các tham số cùng với kiểu dữ liệu tương ứng)

    Ví dụ:

    Trong sự đặc tả này, tham số có tên đứng sau VAR biểu thị một kết quả hoặc một tham số có thể bị thay đổi. Cú pháp của sự đặc tả này trong Ada là:

    <s

    Các phép toán nguyên thuỷ được cài đặt bằng cách dùng cấu trúc dữ liệu và các phép toán được cung cấp bởi máy tính ảo bên dưới ngôn ngữ lập trình. Chương trình con biểu diễn một phép toán được xây dựng bởi người lập trình và do đó chương trình con được cài đặt bằng cách dùng cấu trúc dữ liệu và các phép toán được cung cấp bởi chính bản thân ngôn ngữ lập trình đó. Sự cài đặt được xác định bởi thân chương trình con, bao gồm cả việc khai báo dữ liệu cục bộ xác định cấu trúc dữ liệu được dùng cho chương trình con và các lệnh xác định hành động sẽ làm khi chương trình con thực hiện.

    Sự khai báo và các lệnh thường được bao gói, người sử dụng chương trình con không thể truy xuất được tới dữ liệu cục bộ và các lệnh bên trong chương trình con. Người sử dụng chỉ có thể gọi chương trình con với một tập hợp các tham số và nhận lại các kết quả đã được tính toán. Cú pháp của Pascal đối với chương trình con là điển hình:

    FUNCTION

    FN

    (

    x

    :

    REAL

    ;

    y

    :

    INTEGER

    )

    :

    REAL

    ;

    (

    M

    ô

    t

    )

    VAR

    m

    :

    ARRAY

    [

    1

    ..

    10

    ]

    OF

    REAL

    ;

    (

    Khai

    b

    á

    o

    c

    á

    c

    đố

    i

    n

    :

    INTEGER

    ;

    t

    ượ

    ng

    d

    li

    u

    c

    c

    b

    )

    BEGIN

    .

    (

    D

    ã

    y

    c

    á

    c

    l

    nh

    x

    á

    c

    đị

    nh

    .

    h

    à

    nh

    độ

    ng

    c

    a

    ch

    ươ

    ng

    .

    tr

    ì

    nh

    con

    )

    END

    ;

    --- Bài cũ hơn ---

  • Pascal: Hằng, Biến, Biểu Thức
  • Chương Trình Con : Hàm Và Thủ Tục Trong Pascal
  • Dữ Liệu Kiểu Tệp Trong Pascal
  • Kiểu Tập Tin Trong Pascal
  • Các Lỗi Thường Gặp Trong Pascal
  • Vòng Lặp While Trong Pascal

    --- Bài mới hơn ---

  • Trong Ngôn Ngữ Lập Trình Pascal, Xâu Kí Tự Là ?
  • Cách Tải Video Tiktok, Download Video Tik Tok Về Máy Tính, Điện Thoại
  • Tải Tik Tok Video Saver Cho Máy Tính Pc Windows Phiên Bản
  • Url Là Gì, Cách Tối Ưu Hóa Thế Nào Khi Seo?
  • Đây Là Cách Thay Đổi Tên Và Url Kênh Youtube Của Bạn
  • Trong bài này chúng ta sẽ tìm hiểu vòng lặp while trong Pascal, đây là vòng lặp có công dụng giống như vòng lặp for, chỉ khác một điều là ta không cần biết trước tổng số lần lặp.

    Vòng lặp while cũng đóng vai trò rất quan trọng, được sử dụng rất nhiều trong lập trình thực tế. Không chỉ ở Pascal mà các ngôn ngữ như C, C++, PHP đều xem trong while.

    1. Vòng lặp while trong Pascal

    Lệnh lặp while-do trong Pascal cho phép tính toán lặp đi lặp lại cho đến khi một số điều kiện kiểm tra được thỏa mãn. Nói cách khác, nó liên tục thực thi một câu lệnh đích, miễn điều kiện lặp đã cho là đúng.

    Cú pháp như sau:

    Trong đó:

    • condition là điều kiện lặp. Nếu condition true thì vòng lặp thực hiện, false thì dừng vòng lặp.
    • S là những lệnh sẽ thực hiện nếu condition true. Nếu nhiều lệnh thì phải đặt trong khối BEGIN .. END

    Ví dụ: In ra các số từ 1 đến 5. Bài toán này đã được giải ở vòng lặp for, bây giờ mình sử dụng vòng lặp while để xử lý như sau.

    program WhileLoopFreetuts; var number: integer; begin number : = 1; while number <= 5 do begin writeln(number); number : = number + 1; end; readln; end.

    Như bạn thấy, trong thân vòng lặp mình đã có một đoạn code như sau:

    2. Vòng lặp for lồng nhau trong Pascal

    Tương tự như vòng lặp for, vòng lặp while trong Pascal cũng cho phép bạn đặt lồng nhau. Thực tế điều này được sử dụng rất thường xuyên khi xây dựng những ứng dụng thực tiễn.

    Vòng lặp for lồng nhau tức là đặt vòng while A nằm trong B, cấu trúc như sau:

    while (condition_A) begin while (condition_B) begin // S end; end;

    Quay lại giải bài toán in ra bảng cửu chương, ta sẽ sử dụng vòng lặp while để thực hiện như sau:

    program WhileLoopFreetuts; var a: integer; b: integer; begin a := 2; while (a <= 9) do begin // phai gan lai b = 1 tai vi phan tu dau tien la 1 // neu ban khong gan lai thi sai thuat toan b := 1; while (b <= 9) do begin writeln(a, ' x ', b, ' = ', (a * b)); // cong them 1 cho b b := b + 1; end; // cong them 1 cho a a := a + 1; end; readln; end.

    Nếu bạn là người mới bắt đầu học lập trình thì khi giải bài toán này có vẻ rất khó hiểu phải không? Điểm khó nhất là dòng gán lại b = 1, đây là dòng quan trọng vì nó quyết định đến kết quả in ra của bảng cửu chương.

    Không tin bạn hãy thử bỏ dòng này, sau đó chạy lên thì kết quả chỉ in ra bảng cửu chương 2. Lý do là sau lần lặp này thì b đã có giá trị là 10, nên các lần lặp sau vòng lặp con sẽ không được thực hiện.

    --- Bài cũ hơn ---

  • Ý Nghĩa Của Thủ Tục Write Trong Pascal
  • Lớp Trong Pascal, Định Nghĩa Và Ví Dụ Minh Họa
  • Thao Tác Xử Lý Bit Trong Pascal
  • Vòng Lặp Repeat .. Until Trong Pascal
  • Thủ Tục Trong Pascal, Định Nghĩa Và Cách Khai Báo
  • Phần 3: Record Trong Pascal

    --- Bài mới hơn ---

  • Nội Dung Ôn Tập Tin Học 11
  • Chuyên Đề Xử Lí Bit
  • Bài 6. Chuỗi Kí Tự
  • Trường Thpt Nguyễn Thị Minh Khai
  • Pascal: Hàm Xử Lý Chuỗi (String)
  • Dữ liệu có cấu trúc – Phần 3: Record trong Pascal

    I – Khái niệm và định nghĩa

    1. Khái niệm và định nghĩa:

    Chúng ta đã học về các kiểu cấu trúc dữ liệu như mảng (Array), kiểu tập hợp (Set). Các kiểu cấu trúc dữ liệu này đều được tạo ra bằng một tập hợp các phần tử có cùng (mô tả), kiểu.Ví dụ: các phần tử của một 

    array ; Thanh_pho : String, string ; Ngay_sinh : Date ; Gioi_tinh : (Nam, nu) ; O_tai : Dia_chi ; Luong : Reals ; End ;

    Thí dụ 3 cho ta thấy điểm đặc biệt là việc mô tả lồng nhau của cấu trúc dữ liệu. Trong mô tả RECORD của nhân sự, ta có thể mô tả các phần tử (các trường) của Record là một kiểu Record khác như các trường Ngày sinh và chỗ ở. Mức lương được mô tả là Real (số thực) vì có thể đếm hàng xu, hàng hào.

    Ta cũng có thể viết trực tiếp mô tả trường 

    Ngay_sinh 

    nếu như có mô tả kiểu Date :

    Code:

    Type Nhan_su = Record Ho_ten : String

    . Còn 

    Nguoi_1.O_tai

    .

    Pho 

    cho ta thâm nhập vào trường 

    Pho 

    của trường

    O_tai 

    của biến 

    Nguoi_1

    . Trong đó 

    O_tai 

    có mô tả kiểu 

    Dia_chi.

    Dòng lệnh 

    nguoi_2 := Nguoi_1 

    cho phép ta copy 2 biến với nhau. Thực chất dòng lệnh này là việc thâm nhập vào cả một biến kiểu Record chứ không phải là việc thâm nhập vào môi trường riêng lẻ nào đó của biến Record đó (là 

    Nguoi_1 

    và 

    Nguoi_2 

    ở đây).

    Ta có thể dùng phép so sánh :

    If Nguoi_1 = Nguoi_2 then writeln (‘Cung mot nguoi!) ;

    hoặc :

    If Nguoi_2.Ho_ten = Nguoi_1.Ho_ten then writeln (hai nguoi trung ten nhau!)

    Tuy nhiên cần lưu ý là không thể dùng các thao tác sau :

    _ Viết ra màn hình hoặc đọc từ bàn phím cả một biến kiểu Record như :

    _ Readln (Nguoi_1) hoặc Writeln (Nguoi_1) ;

    _ Tất cả các phép toán số học và logic.

    Chúng ta cũng có thể kết hợp kiểu Record với các kiểu dữ liệu khác như lập một mảng các Record. Để miêu tả đội ngũ cán bộ của một cơ quan nào đó có số người nhiều nhất là 100 chẳng hạn, ta có thể viết :

    Code:

    Var Canbo : Array ; Canbo ; Canbo

    , ta có thể viết :

    Code:

    With Canbo ; Ngay_sinh : Date ; Gioi_tinh : (Nam , Nu) ; O tai : Dia_chi ; Luong : Real ; Case Nghe_nghiep : Nghe Of Cong_nhan : (NganhCN : Nganh) ; Bac_tho : Byte ; Ky_su : (NganhKS : Nganh) ; TrinhDoTT : (Kem , TB , Kha , Gioi) ; Bac_sy : (Chuyen_Khoa : Khoa) ; Ca_biet : ( ) ; End ; (* Of Record *) Var Nguoi1 , Nguoi2 : Nhan_su ; BEGIN .......... With Nguoi1 Do Begin Ho_ten := ' Nguyen Van A ' ; Nghe_nghiep := Cong_nhan ; NganhCN := Dien ; Bac_tho := 3 ; End ; ........... With Nguoi2 Do Begin Ho_ten := ' Le Thi B ' ; Nghe_nghiep := Ky_su ; NganhKS := Dien ; TrinhDoTT := Kha ; End ; END.

    CÁC QUY TẮC SỬ DỤNG RECORD CÓ CẤU TRÚC THAY ĐỔI

    Record có cấu trúc thay đổi nói chung sẽ có 2 phần :

    * Phần cố định : Gồm các trường 

    Ho_ten , Ngay_sinh , O_tai

    ,… Phần này là đặc điểm chung của mọi người , ai cũng có cả. Cách viết này hoàn toàn như Record bình thường.

    * Phần thay đổi : Luôn đặt sau phần cố định và chỉ cho phép có một trường thay đổi mà thôi. Nói cách khác phần thay đổi được đặt sau cùng trong danh sách các trường và nó được bắt đầu bằng câu lệnh Case. Tuy nhiên , phần thay đổi có thể lại chứa Record khác có cấu trúc thay đổi , nghĩa là ta lại có trường thay đổi thứ hai khác nằm trong một trường thay đổi. Đó là Record có nhiều mức thay đổi.

    Code:

    Type Khoa = (Dien_tu , Toan , Co_khi) ; Nghe = (Thu_ki , Sinh_vien) ; Diem := 0.. 10 ; Nhan_Cong = Record Ho_ten : String[30] ; Case Cong_Viec : Nghe Of Thu_Ky : (Ngay_sinh : date , Luong : real) ; Sinh_vien : (K : Byte) ; Case SV_Khoa : Khoa Of Dien_tu : (Mach , Vi_tinh , Anh_van : Diem) ; Toan : (Dai_so , Giai_tich , Hinh_hoc : Diem) ; Co_khi : (Hinh_hoa , Chi_tiet_may : Diem)) ; End ; (* Of Record *) ; Var N : Nhan_cong ;

    Trong Record này có 2 mức biến dạng :

    Mức 1 là : Case Cong_viec : Nghe Of…

    Mức 2 là : Case SV_khoa : Khoa of…

    Mức 2 đương nhiên cũng tuân theo các quy tắc xây dựng Record có cấu trúc thay đổi kể trên , do đó nó phải là trường cuối cùng của mức 1: trường có nhãn là Sinh_vien. Chính trường này có cấu trúc của một Record thay đổi nằm trong Record thay đổi khác.

    Các câu lệnh sau là hợp lệ :

    Code:

    N.Cong_viec := Sinh_vien ; N.Ngày_sinh. Ngay := 8 ; N.Mach := 4 ; N.Dai_so := 4 ; N.SV_Khoa := Dien_tu ; N.K := 18 ;

    --- Bài cũ hơn ---

  • Từ Pascal Đến C/c++ (P2) – Vòng Lặp
  • Bài 3: Câu Lệnh Vòng Lặp Trong Pascal (For, While, Repeat)
  • Chương Trình Con Trong Pascal
  • Pascal: Hằng, Biến, Biểu Thức
  • Chương Trình Con : Hàm Và Thủ Tục Trong Pascal