Rèn Luyện Sử Dụng Mod, Div Trong Pascal Và Scratch

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

  • Cac Ham Va Thu Tuc Trong Pascal
  • Biến Và Cách Khai Báo Của Pascal
  • Kiểu Dữ Liệu Trong Pascal
  • Iii. Các Kiểu Dữ Liệu Cơ Sở: Integer, Real, Boolean, Char
  • Trong Ngôn Ngữ Lập Trình Pascal, Từ Khoá Program Dùng Để
  • Mod, p là hai phép toán cho số nguyên được ứng dụng rất nhiều trong lập trình, trong bài viết này mình sẽ cùng học tập chia sẻ cách sử dụng Mod, Div trong Pascal và scratch qua một ví dụ cụ thể như sau:

    Bài toán: Viết chương trình nhập vào một số nguyên dương n (n< 2 tỉ). Xuất ra số các chữ số của số nguyên đó và tổng các chữ số của số nguyên đó.

    Ví dụ: Nếu người dùng nhập vào số: 123456 thì kết quả xuất ra: Số các chữ số là: 6. Tổng các chữ số cảu số nguyên vừa nhập là: 21

    Gợi ý: Để giải quyết bài toán này ta cần tìm cách để tách ra các chữ số của số nguyên nhập vào sau đó đếmcộng dồn để tính tổng các chữ số của số đó, vậy vấn đề quan trong nhất là làm sao để tách lấy được từng chữ số của số nguyên đó! ta hãy cũng tím hiểu

    Giới thiệu hai phép toán Mod và Div

    Mod: Là phép toán chia lấy phần dư.

    Div: Là phép toán chia lấy phần nguyên.

    Ví dụ: 13 p 5 = 2 và 13 mod 5 = 3 (vì 13 chia cho 5 được 2 dư 3)

    Ứng dụng mod, p trong Pascal cho bài toán trên

    Ý nghĩa của chương trình như sau:

    Nếu n = 0 thì cho biến đếm là 1 còn nếu không thì cho biến đếm là 0 . Đây là đoạn mã để xử lý trường hợp đặc biệt n = 0, nếu trường hợp này xảy ra thì chương trình sẽ không thực hiện vòng lặp phía sau và kết luận ngay số có 1 chữ số và tổng các chữ số bằng 0. Tùy theo thuật toán mà thường xuất hiện các trường hợp đặc biệt, ta cần lập trình để xử lý riêng các trường hợp này

    Vòng lặp While: Có nhiệm vụ lặp lại việc

    • Tách từng chữ số của số nguyên ra (từ phải sang trái) – Dùng phép toán mod
    • Sau khi tách được bỏ bớt chữ số đó – Dùng phép toán Div

    Liệu trong Scratch có hai hàm Mod và Div không?

    Mình tự đặt ra câu hỏi này ngay khi nghĩ đến bài toán, chúng ta thử lục tìm trong “Các phép toán” của Scratch xem nào.

    Thấy rồi hàm Mod đây rồi:

    Không thấy Div các bạn ơi, làm sao đây! Ta không thấy trong Scratch có phép toán Div nhưng đã là ngôn ngữ lập trình thì chắc chắn phải có cách xây dựng phép toán DIV mình suy nghĩ như vậy và cuối cùng tìm ra cách xây dựng phép toán này trong Scratch như sau:

    Xây dựng Div trong Scratch

    Không cần Mod và Div liệu có giải quyết được bài toán này?

    Còn trong Scratch thì còn đơn giản hơn nữa vì biến trong Scratch chung cả số và chuỗi vì vậy chẳng cần chuyển gì nữa cứ vậy mà tách từng chữ số ra mà đếm và công dồn thôi.

    Cách này có vẻ đơn giản hơn rất nhiều tuy nhiên mình không khuyến khích các bạn làm bằng cách này mà hãy làm bằng cách sử dụng Div và Mod nó “toán học” hơn phải không các bạn.

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

  • Vas Là Gì? Những Lưu Ý Về Vas Trong Kế Toán Cho Lính Mới
  • Vas Là Gì? Những Liên Quan Đến Vas Trong Kế Toán
  • Vas Trong Kế Toán Là Gì?
  • Thanh Toán T/t Là Gì ?, Thanh Toán D/a, D/p Là Gì ?
  • 【2018】Phương Thức Thanh Toán Dp, Lc, Tt Là Gì Trong Xuất Nhập Khẩu
  • 0 Trong Excel Là Gì? Cách Sửa Lỗi #div

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

  • Hướng Dẫn Cách Thêm Các Tiện Ích Vào Biểu Đồ Microsoft Excel (Phần 2)
  • Chỉnh Sửa Vùng Biểu Đồ Trong Excel.
  • Hàm Left Trong Excel Là Gì? Hướng Dẫn Sử Dụng Hàm Left Đơn Giản
  • Các Ví Dụ Và Cách Sử Dụng Hàm Match Trong Excel
  • Hàm Match Là Gì? Cách Sử Dụng Hàm Match Trong Excel
  • Cách ngăn chặn lỗi #DIV/0 xảy ra

    Chắc các bạn đã hiểu lỗi #DIV/0 trong Excel là gì? Có một số cách để khắc phục tình trạng này diễn ra. Trước đây, mọi người thường thử nghiệm bằng các ví dụ chuyển đổi để kiểm soát lại bảng tính. Ngoài ra còn có thể sử dụng một số cách mà chúng tôi sẽ giới thiệu ngay bây giờ. 

    Sử dụng hàm IF ngăn lỗi xảy ra

    – Bước 1: Tạo một bảng trong đó có một cột dành cho công thức. (Ví dụ cột kết quả là E)

    – Bước 2: Nhấp vào ô bất kỳ nào đó trong cột rồi chèn hàm cần tính toán. Tiếp đó bấm ENTER. 

    – Bước 3: Chọn vào trường Logical_test tại hộp thoại đối số hàm. 

    – Bước 4: Đi đến ô trên cùng tại cột mà bạn đang cần để chia ra. Khi ấy bạn sẽ thấy hiện ra trên ô tham chiếu giá trị bằng 0 trên cùng một bảng. Ví dụ ở đây D2 = 0.

    – Bước 5: Lúc này ta sẽ có một công thức như sau: =IF(D2=0,””,C2/D2). 

    Như vậy trường phía trước mang điều kiện giá trị bằng 0 còn công thức chính là C2/D2. Cuối cùng bấm OK sẽ ra được một bảng không bị lỗi #DIV/0. 

    – Bước 6: Cuối cùng, chỉ việc sao chép công thức Excel đó xuống từng ô trong cột là hoàn tất. 

    Sử dụng công thức hàm IFERROR để bẫy lỗi

    Bạn cảm thấy việc đưa hàm điều kiện vào biện luận cho mẫu số bằng 0 là rườm rà thì có thể sử dụng một cách khác ngắn hơn. Đó là áp dụng cấu trúc hàm IFERROR để sử dụng. Công thức của hàm này sẽ là như sau:

    =IFERROR(value,value_if_error) 

    Trong công thức trên thì có ý nghĩa là: 

    – Value: đây là giá trị cần xét cũng có thể hiểu là kết quả của một công thức. 

    – Value_if_error: kết quả trả về khi giá trị có lỗi. Tức là nếu công thức thông báo kết quả đang bị lỗi thì nên thay bằng giá trị nào đó. 

    Dùng định dạng ẩn và chuyển giá trị thành ô trắng

    Muốn làm được điều đó, trước tiên phải xác định được những ô nào sẽ ra kết quả lỗi. Các bạn hãy sử dụng định dạng có điều kiện sau đây: 

    – Bước 1: Bấm chọn một ô chứa lỗi rồi tại tab phần đầu của trang đi nhấp vào định dạng có điều kiện. 

    – Bước 2: Tiếp đó, chọn ở phần quy tắc mới để tiếp tục. 

    – Bước 3: Trong trang tính đã hiển thị các mục ở trong quy tắc định dạng mới nhớ chọn vào phần chỉ định dạng các ô đang có. 

    – Bước 4: Lúc này cần xem xét kỹ càng trong chỉ định dạng các ô đã có nhớ luôn đảm bảo giá trị ô xuất hiện tại hộp danh sách đầu tiên. 

    Dấu bằng sẽ xuất hiện trong hộp danh sách thứ hai. Việc của người dùng là nhập số 0 tại hộp văn bản phía bên phải. 

    – Bước 5: Đi đến tab số tại phần thể loại bấm vào mục tùy chỉnh. Ở phần hộp loại phía trong nhập 3 dấu chấm phải rồi chọn OK. Lúc này số 0 sẽ biến mất hoàn toàn và ô đó sẽ thành ô trắng. Tuy nhiên giá trị thực sự của nó vẫn bằng 0. 

    Ngoài những cách như trên người dùng còn có thể thực hiện sửa lỗi bằng một số mẹo sau: 

    – Chắc chắn rằng số chia trong hàm hoặc công thức mà bạn đã tạo ra không có ô trống. Cũng có thể xác định và đánh giá lại lần nữa ô trống đó có thực sự bằng 0 hay không. 

    – Nhiều khi lỗi không phải do công thức mà do giá trị tại ô tham chiếu có vấn đề. Bạn chỉ cần thay đổi tham chiếu trong công thức tại một ô bảng cùng một cột mà nó không hề chứa số 0. Muốn chắc chắn hơn thì hãy thay đổi thành một giá trị trống khác bất kỳ. 

    – Sử dụng lỗi chồng lỗi bằng cách nhập nội dung #N/A tại ô có tham chiếu chia cho công thức để thay đổi kết quả công thức thành #N/A nhằm hiển thị rõ giá trị của số chia. 

    Tham khảo: Lỗi #name trong Excel 👉 Xử lý chuẩn ⓪ cần chỉnh

    Một số lưu ý khi sử dụng các hàm để ngăn và bẫy lỗi

    – Nhiều khi lỗi #DIV/0 xảy ra bởi công thức sử dụng được nhập từ nhiều người nên mới xảy ra thông báo lỗi. Để ngăn chặn không xảy ra lỗi thì một bảng Excel tốt nhất chỉ nên để một người làm công thức sẽ ít đi phần trăm sai sót. 

    – Khi sử dụng công thức IFERROR hãy nhớ đây là phương pháp xử lý tất cả các lỗi không chỉ riêng #DIV/0. Vậy nên cần phải đảm bảo công thức mà bạn tạo hoạt động đúng. Nếu không cuối bạn sẽ không nhận ra công thức mình có vấn đề khi áp dụng cách xử lý lỗi này. Điều này sẽ dẫn đến những sai sót không đáng có. 

    – Bật tính năng kiểm tra lỗi trên Excel để khi có sai ở công thức sẽ có thông báo gửi đến. Chỉ cần bấm vào thông báo nó sẽ hiện toàn bộ bước tính toán và cho giải pháp hiệu quả. 

    Như vậy, thông qua bài viết này mọi người đã hiểu có câu trả lời cho thắc mắc “Lỗi #DIV/0 trong Excel là gì?”. Bên cạnh đó cũng giúp hình dung được cách ngăn chặn lỗi này xảy ra. Hy vọng những điều này sẽ bổ trợ cho các bạn khi sử dụng công thức đáp ứng công việc.

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

  • Các Lỗi Thông Dụng Thường Gặp Trong Excel
  • Lỗi #name Trong Excel 👉 Xử Lý Chuẩn ⓪ Cần Chỉnh
  • Nguyên Nhân Và Cách Khắc Phục Lỗi #name? Trong Excel
  • Làm Thế Nào Để Import File Text(Từ Excel Export Ra) Và Lấy Ra Từng Thuộc Tính Lưu Vào Đối Tượng?
  • Cách Import Dữ Liệu Từ File Excel Này Vào File Excel Khác
  • 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
  • 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