Hướng Dẫn Download & Cài Đặt Hate Pascal If You Can

Link download :   https://goo.gl/U2Wxnu Home:  http://hatepascalifucan.byethost3.com/

Thứ Sáu, 31 tháng 3, 2017

CÁC THỦ TỤC XUẤT/NHẬP Phần 2

4. Cấu trúc lặp

a. Lệnh FOR
 Cấu trúc FOR cho phép lặp lại nhiều lần một dãy lệnh. Số lần lặp lại dãy lệnh đã biết trước. Phát biểu FOR có 2 dạng: 
            FOR .. TO .. DO                     đếm lên
            FOR .. DOWNTO ..DO          đếm xuống 
* Cú pháp tổng quát là:       
            FOR <biến đếm> := <trị đầu> TO/DOWNTO <trị cuối>  DO <Công việc>;

            * Lưu đồ:
                                        
     Hình 6. 6:  Lưu đồ phát biểu FOR .. TO .. DO 
Chú ý:  Trị đầu, trị cuối là các biến hoặc hằng và biến đếm phải là kiểu rời rạc.

Ví dụ 6.15:   Chương trình in một dãy số từ  0 đến 9
            PROGRAM Day_So ;

            VAR    

                        i : Integer ;

            BEGIN

                        FOR  i := 0 TO 9  DO Write (i) ;

                        Readln ;

            END.
 b. Lệnh WHILE .. DO
* Lưu đồ của lệnh
Description: https://websrv1.ctu.edu.vn/coursewares/khoahoc/tinhocdc/images/ch6/ch6.ht125.gif
Hình 6. 7:  Lưu đồ cấu trúc WHILE .. DO 
* Ý nghĩa lưu đồ:
Trong khi mà điều kiện còn đúng thì cứ thực hiện Công việc, rồi quay trở về kiểm tra điều kiện lại. Vòng lặp được tiếp tục, đến khi điều kiện đặt ra không còn đúng nữa thì đi tới thực hiện lệnh tiếp theo 
            * Cú pháp
                                    WHILE <điều kiện> DO <Công việc>
 Description: https://websrv1.ctu.edu.vn/coursewares/khoahoc/tinhocdc/images/ch6/ch6.ht126.gif
Hình 6.8:  Sơ đồ cú pháp  lệnh WHILE .. DO 
Ghi chú:
  · Ðiều kiện trong cấu trúc lặp WHILE .. DO là một biểu thức logic kiểu Boolean chỉ có 2 giá trị là Ðúng (True) hoặc Sai (False)
  · Nếu điều kiện Ðúng thì chương trình sẽ chạy trong cấu trúc WHILE .. DO.
 · Sau mỗi lần lặp, chương trình trở lại kiểm tra điều kiện. Tùy theo biểu thức logic của điều kiện là Ðúng hay Sai thì chương trình sẽ thực hiện Công việc tương ứng.
  · Nếu Sai thì chuyển xuống dưới cấu trúc WHILE .. DO 




Ví dụ 6.16:  Chương trình tính trung bình n số:  x1 + x2 + x3 + ... + xn
  
              Program Trung_binh_Day_So ;

              VAR

                        n, count : Integer ;

                        x, sum, average : real ;

              BEGIN

                        count := 1 ;

                        sum   := 0 ;

                        Write (' Nhập n = ') ;

                        readln (n) ;

                        WHILE  count  < n+1  DO

                                    BEGIN

                                                Write (' Nhp giá tr thứ' , count,' ca x = ' ) ;

                                                readln (x) ;

                                                sum  := sum + x ;

                                                count := count + 1 ;

                                    END ;

                        average  :=  sum/n ;

                        Writeln (' Trung bình là ='  , average : 10 : 3 ) ;

                        Writeln (' Nhn Enter để thoát ...' ) ;

                        Readln ;

              END.
c. Lệnh REPEAT .. UNTIL
   Câu lệnh REPEAT .. UNTIL dùng trong các trường hợp khi biến điều khiển không có kiểu rời rạc và đặc biệt trong các trường hợp số lần lặp không biết trước.
Hình 6.9:  Lưu đồ cấu trúc của REPEAT .. UNTIL 
* Ý nghĩa câu lệnh:
Nếu điều kiện logic là Sai (False)  thì lặp lại lệnh cho đến khi điều kiện Ðúng  thì mới thoát ra khỏi cấu trúc REPEAT .. UNTIL. 
Nếu có nhiều câu lệnh thì mỗi lệnh ngăn cách nhau bằng dấu chấm phẩy (;)Công việc của REPEAT và UNTIL không nhất thiết phải dùng lệnh ghép để nhóm từ 2 lệnh đơn trở lên thành công việc.
 
Hình 6.10:  Sơ đồ cú pháp REPEAT .. UNTIL 
Ví dụ 6.17:  Với bài toán trung bình cộng một dãy số ở ví dụ trước có thể viết theo cấu trúc REPEAT .. UNTIL như  sau: 
              PROGRAM Trung_binh_Day_So ;

              VAR   n, count : Integer ;

                        x, sum : real ;

              BEGIN

                        count := 1 ;

                        sum   := 0 ;

                        Write := (' Nhập n = ') ;  readln (n) ;

                                    REPEAT

                                                Write (' Nhập giá trị thứ' , count, 'của x =  ') ;

                                                readln(x) ;

                                                sum  := sum + x ;

                                                count := count + 1 ;

                                    UNTIL count > n ;

                        Writeln (' Trung bình là ='  , sum/n : 8 :2 ) ;

                        Readln ;

              END. 
Ghi chú:
 
 
So sánh 2 cách viết WHILE .. DO và REPEAT .. UNTIL ta thấy có sự khác biệt: 
 
 
- Trong cấu trúc WHILE .. DO thì <Ðiều kiện> được kiểm tra trước, nếu thỏa <Ðiều kiện> thì mới thực hiện <Công việc>. 
 
 
- Ngược lại, trong cấu trúc REPEAT .. UNTIL thì <Công việc> sẽ được thực thi trước sau đó mới kiểm tra <Ðiều kiện>, nếu không thỏa <Ðiều kiện> thì tiếp tục thi hành <Công việc> cho đến khi <Ðiều kiện> là đúng. 
 
 
Lệnh REPEAT .. UNTIL thường được sử dụng trong lập trình, nhất là lúc người sử dụng muốn tiếp tục bài toán ở trường hợp thay đổi biến mà không phải trở về chương trình và nhấn tổ hợp phím Ctrl + F9 lại. 


Ví dụ 6.18:       Nhân 2 số a và b 
            PROGRAM Tich;

            VAR     a, b : integer ;

                                    CK : char ;

            BEGIN

                                    REPEAT

                                                Write (' Nhập số a = '); Readln (a) ;

                                                Write (' Nhập số b = '); Readln (b) ;

                                    Writeln (' Tích số của a x b là :' , a*b : 10 ) ;

                                                Writeln (' Tiếp tục tính nữa không (CK) ? ');

                                                Readln (CK) ;

UNTIL upcase(CK) = K; {hàm chuyển đổi ký tự trong biến}
                                              {CK thành ký tự in hoa}

                        END.

Không có nhận xét nào:

Đăng nhận xét