Cấu trúc chương trình Pascal trong phần mềm Norton Commander

MỤC LỤC

Thoát khỏi Pascal

Để thực hiện trên MS-DOS PROMPT, bạn vào MS-DOS PROMPT, trên màn hình DOS, vào Norton Commander, chọn thư mục có chứa tập tin Turbo.exe, di chuyển vệt sáng đến tập tin này và nhấn phím Enter.  Để mở một chương trình, bạn nhấn phím F3 hoặc vào menu File, chọn Open, trong hộp thoại hiện ra, chọn tên tập tin muốn mở, nhấp nút Open trên hộp thoại.

CẤU TRÚC CHƯƠNG TRÌNH PASCAL

    Thông thường trong một chương trình Pascal, các khai báo Uses, Label, const, type, Function, Procedure có thể có hoặc không tuỳ theo bài, nếu không dùng biến thì cũng không cần khai báo Var (như ví dụ ở bài 1), tuy nhiên hầu hết các chương trình đều dùng khai báo Program, var các biến và thân chương trình. Có những giải thuật tổng quát như tổ chức cấu trúc dữ liệu, thuật toán sắp xếp, thuật toán tìm kiếm, thuật toán phân phối bộ nhớ … những thuật toán thuộc lĩnh vực chuyên môn như những giải thuật của toán, của cơ sở dữ liệu, của trí tuệ nhân tạo, của đồ hoạ …Tuy nhiên trong lĩnh vực cấp 2, các bạn chỉ cần biết qua các thuật toán đơn giản.

    KIỂU DỮ LIỆU CƠ SỞ

    Thủ tục

     Cần nắm vững các dữ liệu kiểu số, kiểu Logic, kiểu Char, kiểu String, cách khai báo các kiểu, biết giá trị giới hạn của từng loại kiểu, khi khai báo nên chọn kiểu gì cho phù hợp, tránh tốn nhiều bộ nhớ, biết cách khai báo các biến, các toán tử sử dụng trong mỗi kiểu.  Cần biết thêm các hàm và thủ tục dùng trong các kiểu và cách dùng hàm và thủ tục trong chương trình để thực hiện những yêu cầu của đầu bài một cách nhanh chóng. Lệnh này thuộc đơn vị chuẩn CRT, nếu bạn không khai báo Uses Crt; trình biên dịch sẽ báo lỗi vì nó không hề biết lệnh Clrscr, nó xem như bạn chưa định nghĩa biến này.

    Để cho một chương trình sáng sủa dễ hiểu, người ta thường dùng hàm và thủ tục trong chương trình, vị trí của chúng thường được đặt trước thân của chương trình chính.  Không đọc giá trị gì cả, chờ cho đến khi nhấn phím Enter sẽ trở về màn hình soạn thảo, được dùng để kiểm tra kết quả của chương trình, nếu không có lệnh này, khi nhấn phím Ctrl+F9 bạn không thấy kết quả, nó sẽ về ngay màn hình soạn thảo, muốn thấy, bạn phải nhấn Alt+F5.

    Lệnh xuất dữ liệu

     Mỗi câu lệnh Read hoặc Readln đều dừng chương trình để cho chúng ta nhập dữ liệu vào các biến, nếu nhập chưa đủ, máy chờ cho đến khi nhập xong. Ví dụ: nếu dùng lệnh Clrscr, Gotoxy(x,y) bạn phải khai báo Uses Crt; khi muốn xuất dữ liệu ra màn hình, bạn phải khia báo Uses Printer; ….  Lệnh gán dùng ‘:=’, khi phải lựa chọn một vấn đề dùng phát biểu if hoặc Case, khi cần công việc lặp đi lặp lại, dùng phát biểu For, While hoặc Repeat.

     Khi cần xuất dữ liệu ra màn hình dùng lệnh Write hoặc Writeln, nếu dùng Write thì không xuống hàng, nếu dùng Writeln thì sẽ xuống hàng sau khi thực hiện.  Biết và nắm vững các câu lệnh chọn lựa trong Pascal, cách dùng câu lệnh cho phù hợp, khi nào sẽ dùng câu lệnh If không có Else, khi nào có dùng Else, câu lệnh If lồng nhau, câu lệnh Case.

    Lệnh 2;

       Đầu tiên biểu thức chọn được tính trị, nếu trị đó nằm trong chọn nào, thì câu lệnh sau chọn đó sẽ thực hiện, nó sẽ kiểm tra từ trên xuống, nếu không có chon nào thoả, thì thực hiện lệnh sau ELSE.  Khi xét điều kiện đúng thì thực hiện một điều gì đó, không thì thôi, chúng ta dùng câu lệnh if … then điều cần thực hiện. Viết chương trình nhập 3 số a, b, c bất kỳ, Hãy kiểm tra xem ba số đó có thể là độ dài của các cạnh trong một tam giác hay không, thông báo thoả hay không thoả trong từng trường hợp tương ứng.

      Viết chương trình nhập vào một mùa Xuân, Hạ, Thu, Đông (mùa Xuân, nhập X, mùa Hạ, nhập H, mùa Thu nhập T và mùa Đông nhập D), dùng phát biểu Case … of có Else. Sau khi nhập xong 3 câu hỏi trên, nếu nhập kết quả đúng hoặc sai tuỳ từng trường hợp, chương trình sẽ báo ra như sau: Trường hợp a, nếu đúng sẽ báo câu “Hoan hô bé rất giỏi, vì a+b+c=”, ngược lại sẽ báo “Bé làm sai rồi”.

      BÀI CÂU LỆNH LẶP

         Trước hết điều kiện được xét, nếu giá trị là False, vòng lặp While sẽ kết thúc, nếu là True thì phát biểu caulenh được thực hiện, sau khi thực hiện xong, quay lại kiểm tra điều kiện, công việc cứ tiếp tục như lập luận ở trên cho đến khi điều kiện có giá trị là False.  Bạn cần chú ý khi dùng điều kiện trong vòng lặp While, nếu chọn điều kiện luôn luôn đúng thì vòng lặp sẽ thực hiện vô tận, không thoát ra được, trừ khi Caulenh có chứa một phát biểu Goto nhảy khỏi vòng lặp While.  Bạn thử thêm vào đoạn chương trình trên một biến Dem có kiểu nguyên, gán cho biến này bằng 0, cứ mỗi lần điều kiện While đúng biến đếm sẽ tăng lên 1 (kiểm tra điều kiện trước, thực hiện biến dem nếu điều kiện thoả).

         Các phát biểu bên trong thân Repeat được thực hiện, sau đó sẽ kiểm tra biểu thức logic điều kiện, nếu trị là True thì phát biểu Repeat thực hiện xong, nếu trị là False thì quay lại thực hiện các phát biểu bên trong Repeat, quá trình tiếp tục cho đến khi điều kiện là True.  Bạn cần chú ý khi dùng điều kiện trong vòng lặp Repeat, nếu chọn điều kiện luôn luôn sai thì vòng lặp sẽ thực hiện vô tận, không thoát ra được, trừ khi Caulenh có chứa một phát biểu Goto nhảy khỏi vòng lặp Repeat.

        KIỂU DỮ LIỆU Cể CẤU TRÚC: ARRAY (kiểu mảng)

          Có nhiều phương pháp sắp xếp trong mảng, ở đây các bạn chỉ biết qua hai cách, đó là dùng phương pháp chọn (selection sort) và phương pháp đổi chỗ, hay còn gọi là phương pháp nổi bọt (bubble sort). Đây là một trong những thuật toán sắp xếp đơn giản nhất hoạt động như sau: Đầu tiên tìm phần tử nhỏ nhất trong mảng và hoán vị nó với phần tử trong vị trí đầu tiên, sau đó tìm phần tử nhỏ nhất kế tiếp và hoán vị nó với phần tử trong vị trí thứ hai, và tiếp tục theo phương pháp này cho đến khi toàn bộ trong mảng đã được sắp xếp. Đây là phương pháp cơ bản thường dùng, hoán vị các phần tử kề nhau, nếu cần, khi không cần đến một hoán vị nào khác ở một bước nào đó thì tập tin được sắp xong.

          Viết chương trình nhập vào hai mảng có số phần tử bằng nhau, tạo một mảng thứ ba bằng tổng của hai mảng đó (c[i]=a[i] + b[i]), Xuất ra màn hình các phần tử của cả ba mảng (mỗi mảng trên một dòng). Nhập vào một mảng với các phần tử là tên của các trái cây, nhập vào một tên trái cây, sẽ tìm kiếm trong mảng, nếu thấy thì báo có, ngược lại thì không báo gì hết.

          CHƯƠNG TRÌNH CON (Sub program)

             Qua hai ví dụ viết chương trình con dạng thủ tục và hàm, các bạn cần lưu ý cách gọi, các bước thực hiện, phân biệt sự khác nhau để nắm vững và tránh sai sót khi viết các chương trình sau này.  Chương trình con là một đoạn chương trình, các câu lệnh của chúng được bao giữa cặp từ khoá Begin … End; Chúng ta có thể gọi một hoặc nhiều lần trong chương trình qua tên của chương trình con đó.  Các khai báo trong chương trình con cũng khá giống như chương trình chính, trong chương trình con phải có dạng Procedure hoặc Function, sau đó là đến tên của chương trình con, tiếp theo là các tham số được bao trong dấu ngoặc đơn, các tham số có thể có hoặc không và được cách nhau bởi dấu chấm phẩy.

             Các biến được khai báo sau từ khoá Var của chương trình chính được gọi là biến toàn cục, nó được biết trong toàn bộ chương trình, biến khai báo sau từ khoá Var của chương trình con gọi là biến địa phương nó không hề được biết đến trong chương trình chính.  Tham biến đi sau tứ khoá Var trong danh sách các tham số.Tham số thực tương ứng phải là một biến.Những thay đổi trên tham biến thực chất là được thực hiện trên tham số thực tương ứng.

            KIỂU DỮ LIỆU Cể CẤU TRÚC FILE

              Giải thích như lệnh read, ở đây các biến sẽ được ghi lên Bienfile, sau mỗi lần ghi thì con trỏ của file sẽ tự động đưa đến phần tử kế tiếp. Ngoài Read(F, ch); hoặc Write(F, ch); được dùng để đọc, ghi từng ký tự, tập tin văn bản còn có các lệnh ghi, đọc theo dòng văn bản.  Hàm EOLN(F): Cho giá trị True nếu con trỏ file ở vị trí kết thúc dòng của file văn bản, thủ tục này chỉ được dùng với file văn bản.

               Chương trình trên dùng để nhập thông tin vào File, nếu muốn vừa nhập thông tin vào File đồng thời cũng cho xuất hiện ra màn hình các thông tin vừa nhập.  Khi thực hiện chương trình, sẽ in ra một lần tất cả các học sinh mà bạn vừa nhập, nếu có quá nhiều học sinh, chúng ta chỉ thấy được màn hình cuối cùng, để thấy mỗi lần những thông tin của một học sinh mà thôi và cho biết đây là học sinh thứ mấy, bạn thêm một vài lệnh (những lệnh đậm).