Bài Thực Hành 6: Sử Dụng Lệnh Lặp While…Do

1.1. Mục đích, yêu cầu

  • Viết chương trình Pascal sử dụng câu lệnh lặp với số lần chưa biết trước.
  • Rèn luyện kĩ năng đọc chương trình, tìm hiểu tác dụng của các câu lệnh.

1.2. Nội dung

a. Ôn tập kiến thức

Câu lệnh lặp với số lần chưa biết trước While…Do:

Cú pháp: While Do ;

Trong đó:

  • Điều kiện: thường là phép so sánh.
  • Câu lệnh: có thể là câu lệnh đơn giản hay câu lệnh ghép.

Các bước thực hiện của câu lệnh lặp While…Do:

  • Bước 1: Kiểm tra điều kiện.
  • Bước 2: Nếu điều kiện sai, câu lệnh sẽ bị bỏ qua và thực hiện lệnh lặp kết thúc. Nếu điều kiện đúng thực hiện câu lệnh và quay lại bước 1. 

b. Thực hành

Bài 1: Viết chương trình sử dụng lệnh lặp While…Do để tính trung bình N số thực X1, X2, X3,…, Xn. Các số N và X1, X2, X3,…, Xn được nhập từ bàn phím.

Gợi ý làm bài:

Ý tưởng:

Ta sử dụng biến Dem và câu lệnh lặp While…Do để nhập và cộng dần các số vào một biến kiểu số thực Tong cho đến khi nhập đủ n số.

Xác định bài toán:

  • Input: Dãy số thực x1, x2...xn
  • Output: Giá trị trung bình (x1 + x2+..+xn)/n

Thuật toán:

  • Mô tả thuật toán bằng cách liệt kê:
    • Bước 1. Nhập N là số lượng số thực sẽ được nhập từ bàn phím:
      • Gán biến đếm bằng 0 Dem \(\leftarrow\) 0;
      • Gán tổng Tong \(\leftarrow\) 0.
    • Bước 2. Trong khi Dem < N thì:
      • Nhập giá trị số thực x từ bàn phím;
      • Cộng thêm x vào tổng: Tong\(\leftarrow\)Tong + x;
      • Tăng biến dem thêm 1 đơn vị: Dem\(\leftarrow\)Dem + 1;
    • Bước 3. Tính trung bình dãy số vừa nhập TB \(\leftarrow\) Tong/N.
    • Bước 4. Đưa TB ra màn hình, rồi kết thúc.
  • Mô tả thuật toán bằng sơ đồ khối:

Hình 1. Sơ đồ khối mô tả thuật toán tính trung bình N số thực

Chương trình:

Program tinh_trung_binh;

Var   N, Dem: integer;

         X, TB: real;

Begin

      Clrscr;

      Dem:=0;

      TB:=0;

      Writeln(‘Nhap cac so can tinh N =’);

      Readln(N);

      While Dem < N do

         Begin

            Dem:= Dem + 1;

            Writeln(‘Nhap so thu’, Dem,’=’);

            Readln(x);

            Tb:= TB + x;

         End;

      TB:=TB/n;

      Witeln(‘Trung binh của’,N,’so là =’, TB:10:3);

      Readln;

End.

Bài 2: Tìm hiểu chương trình nhận biết một số tự nhiên N được nhập vào từ bàn phím có phải là số nguyên tố hay không.

Gợi ý làm bài:

Ý tưởng: Kiểm tra lần lượt N có chia hết cho các số tự nhiên \(2 \leq i \leq N-1\) hay không. Kiểm tra tính chia hết bằng phép chia lấy phần dư (mod).

Xác định bài toán:

  • Input: Số tự nhiên N.
  • Output: Trả lời N là số nguyên tố hoặc N không là số nguyên tố.

Xây dựng thuật toán:

  • Bước 1: Nhập số tự nhiên N từ bàn phím;
  • Bước 2: Nếu N \(\leq\) 0 thông báo N không phải là số tự nhiên, rồi chuyển đến Bước 4;
  • Bước 3: Nếu N > 0:
    • 3.1. i\(\leftarrow\)2;
    • 3.2. Trong khi N mod i 0, i\(\leftarrow\)i+1;
    • 3.3. Nếu i = N thì thông báo N là số nguyên tố, rồi chuyển đến Bước 4, không thì thông báo N không phải là số nguyên tố;
  •    Bước 4: Kết thúc.

Chương trình:

Uses Crt;

Var N, i:integer;

Begin

     clrscr;

     write('Nhap vao mot so nguyen: ');

     readln(N);

     If N

Từ khóa » Bài Tập Vòng Lặp While Pascal