Bài tập về câu lệnh lặp For...do trong Pascal lớp 8

Xem toàn bộ tài liệu Lớp 8: tại đây

Giải Bài Tập Tin Học 8 – Bài 7: Câu lệnh lặp giúp HS giải bài tập, giúp cho các em hình thành và phát triển năng lực sử dụng công nghệ thông tin và truyền thông:

    • Sách Giáo Khoa Tin Học Lớp 8
    • Sách Giáo Viên Tin Học Lớp 8

    Bài 1 (trang 59 sgk Tin học lớp 8):Cho một vài ví dụ về hoạt động được thực hiện lặp lại trong cuộc sống hàng ngày.

    Trả lời:

    – Hàng ngày ta đi học từ thứ 2 đến 7.

    – Hàng ngày ta ăn một ngày ba bữa cơm.

    – Hàng ngày đêm đến ta đều đi ngủ.

    Bài 2 (trang 59 sgk Tin học lớp 8): Chương trình Pascal sau đây thực hiện hoạt động nào?

    var i: integer; begin for i:=1 to 1000 do; end.

    Trả lời:

    – Chương trình chạy biến i từ 1 đến 1000 rồi không làm gì cả.

    Bài 3 (trang 59 sgk Tin học lớp 8): Hãy mô tả thuât toán để tính tổng A sau đây (n là số tự nhiên được nhập vào từ bàn phím):

    Bài tập về câu lệnh lặp For...do trong Pascal lớp 8

    Trả lời:

    – Bước 1: Nhập n. Gán i=1, A:=0;

    – Bước 2: A=1/i(i+2).

    – Bước 3: i:= i+1;

    – Bước 3: Nếu i > n thì đến bước 5, ngược lại quay về bước 2.

    – Bước 4: In ra A.

    – Bước 5 kết thúc vòng lặp.

    Tìm hiểu mở rộng (trang 59 sgk Tin học lớp 8): Ngoài lệnh lặp đã biết, Pascal còn có câu lệnh lặp tương tự:

    For <biến đếm> := <giá trị đầu> downto <giá tri cuối> do <câu lệnh>

    Trong câu lệnh này, ban đầu biến đếm nhận giá trị đầu. Sau mỗi lần thực hiện câu lệnh, biến đếm bị giảm đi một đơn vị và câu lệnh được lặp lại tới khi biến đếm bằng giá trị cuối.

    Ví dụ. Đoạn chương trình sau sẽ ghi trên màn hình các số từ 100 đến 1 theo thứ tự giảm dần:

    Writeln (‘Dem nguoc’); For i:=100 downto 1 do writeln(i);

    Nếu sử dụng lệnh for … to em phải làm thế nào? Hãy tìm hiểu cách thức sử dụng câu lệnh for … downto và thể hiện trong một chương trình.

    Trả lời:

    – Nếu sử dụng lệnh for.. to thì chương trình đếm ngược sẽ là:

    Bài tập về câu lệnh lặp For...do trong Pascal lớp 8

    – Ví dụ với downto cho thuật toán ở câu 3:

    Bài tập về câu lệnh lặp For...do trong Pascal lớp 8

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

    • Viết được chương trình có sử dụng vòng lặp for...do;
    • Sử dụng được câu lệnh ghép;
    • Rèn luyện kĩ năng đọc hiểu chương trình có sử dụng vòng lặp for...do.

    1.2. Nội dung

    Cú pháp:

    For < biến đếm >:= < giá trị đầu > to < giá trị cuối > do

           < câu lệnh >;

    Trong đó:

    • FOR, TO, DO: là từ khóa.
    • Biến đếm: thuộc kiểu dữ liệu số nguyên.
    • Giá trị đầu, giá trị cuối: là giá trị nguyên.
    • Câu lệnh: có thể là câu lệnh đơn hay câu lệnh ghép.

    Ý nghĩa:

    Khi thực hiện, biến đếm sẽ nhận giá trị là giá trị đầu, sau mỗi vòng lặp, biến đếm sẽ tự động tăng thêm một đơn vị cho đến khi bằng giá trị cuối thì dừng lại.

    b. Thực hành

    Bài 1. Viết chương trình in ra màn hình bảng nhân của một số từ 1 đến 9, số được nhập từ bàn phím và dừng màn hình để có thể quan sát kết quả.

    a. Khởi động Pascal. Gõ chương trình sau và tìm hiểu ý nghĩa của từng câu lệnh trong chương trình;

    uses crt;

    var N,i:integer;

    begin

         clrscr;

         write('Nhap so N=');

         readln(N);

         writeln;

         writeln('Bang nhan ',N);

         writeln;

         for i:=1 to 10 do

                writeln(N,' x ', i:2,' = ',N*i:3);

         readln;

    end.

    b. Lưu chương trình với tên BANGNHAN.PAS;

    c. Dịch và chỉnh sửa các lỗi gõ, nếu có;

    d. Chạy chương trình với các giá trị nhập vào lần lượt bằng 1, 2, …,10. Quan sát kết quả nhận được trên màn hình.

    Gợi ý làm bài:

    Kết quả in ra màn hình:

    Bài tập về câu lệnh lặp For...do trong Pascal lớp 8

    Hình 1. Kết quả in ra màn hình bảng nhân 6

    Nhận xét kết quả trên: 

    • Các hàng kết quả sát nhau khó đọc;
    • Các hàng kết quả không được cân đối với hàng tiêu đề.
    Bài 2. Chỉnh sửa chương trình để làm đẹp kết quả trên màn hình như hình dưới đây:

    Bài tập về câu lệnh lặp For...do trong Pascal lớp 8

    Hình 2. Kết quả in ra màn hình bảng nhân 7

    Gợi ý làm bài:

    Chương trình:

    uses crt;

    var N,i:integer;

    begin

      clrscr;

      write('Nhap so N='); readln(N);

      writeln;

      writeln('Bang nhan ',N);

      writeln;

      for i:=1 to 10 do

      begin

      GotoXY(5,WhereY);

      writeln(N,' x ',i:2,' = ',N*i:3);

      writeln;

      end; 

      readln

    end.

    Các câu lệnh được thêm vào:

    • Writeln; => Tạo một hàng trống tại vị trí con trỏ.
    • GotoXY(a,b); => Đưa con trỏ về cột a hàng b.
    • Lệnh GotoXY(5, whereY); => Đưa con trỏ về vị trí cột 5 của hàng hiện tại.
    • WhereY =>  Cho biết thứ tự của hàng đang có con trỏ.

    Lưu ý: Chỉ sử dụng được các lệnh GotoXY(a,b), WhereX, WhereY sau khi đã khai báo thư viện crt; của Pascal.

    Bài 3. Cũng như câu lệnh if, có thể dùng câu lệnh for lồng trong một câu lệnh for khác khi thực hiện lặp. Sử dụng các câu lệnh for…do lồng nhau để in ra màn hình các số từ 0 đến 99 theo dạng bảng như hình sau:

    Bài tập về câu lệnh lặp For...do trong Pascal lớp 8

    Hình 3. Kết quả in ra màn hình các số từ 0 đến 99

    Gợi ý làm bài:

    Chương trình:

    Program Tao_bang;

    Uses Crt;

    Var

      i: byte;  {chi so cua hang}

      j: byte;  {chi so cua cot}

    Begin

      Clrscr; {xoa man hinh}

      For i:=0 to 9 do  {viet theo tung hang}

      begin

      For j:=0 to 9 do   {viet theo tung cot tren moi hang}

      write(10*i+j:4); {viet cac so ij ra man hinh}

      writeln;  {xuong hang moi}

      end;  {xong hang thu i}

      readln;  {dung chuong trinh de xem ket qua}

    end. 

    I. BÀI TẬP LÀM QUEN PASCAL DẠNG CƠ BẢN

    Bài 1: Sử dụng cấu trúc điều kiện kiểm tra số chẳn hay lẻ

    Program chanle;

    var so:integer;

    begin

    writeln('nhap so kiem tra');readln(so);

    if so mod 2 =0 then writeln('so chan')

    else writeln('so le');

    readln;

    end.

    Bài 2: Sử dụng cấu trúc lặp for …do viết chương trình in ra 10 dòng chữ “CAU TRUC LAP FOR … DO

    program bai2;

    var i: integer;

    begin

    for i:=1 to 10 do

    writeln('CAU TRUC LAP FOR ..DO');

    readln;

    Bài 3: Sử dụng cấu trúc lặp while …  do viết chương trình in ra 10 dòng chữ “CAU TRUC LAP WHILE…DO

    program bai3;

    var i:integer;

    begin

    i:=0;

        while i<=10 do

        begin

        writeln('CAU TRUC LAP WHILE...DO');

        I:=I+1;

        end;

    readln;

    end.

    Bài 4: Sử dụng cấu trúc lặp repeat… until viết chương trinh in ra 10 dòng chữ “ CAU TRUC LAP REPEAT…UNTIL

    program bai4;

    var i: integer;

    begin

    i:=0;

        repeat

        writeln(' CAU TRUC LAP REPEAT...UNTIL');

        i:=i+1;

        until i=10;

    readln;

    end.

    Bài 5: Viết chương trình tính tổng số nguyên từ 1-n, n là số nguyên nhập từ bàn phím. Sử dụng vòng lặp for… do

    PROGRAM BAI5;

    var i: integer;

            s: real;

    begin

    writeln('nhap so n de tinh tong'); readln(n);

    s:=0;

    for i:=1 to n do s:=s+i;

    writeln('tong tu 1-n la=',s:2:0);

    readln;

    end.

    Bài 6: Viết chương trình tính tổng số nguyên từ 1-n, n là số nguyên nhập từ bàn phím. Sử dụng vòng lặp while… do

    program bai6;

    var i: integer;

            s: real;

    begin

    writeln('nhap so n de tinh tong tu 1-n'); readln(n);

    s:=0;

    i:=0;

        while i<=n do

        begin

        i:=i+1;

        s:=s+i;

        end;

    writeln('tong tu 1-  ' , n , ' la= ' ,s:5:2);

    readln;

    end.

    Bài 7: Viết chương trình tính tổng số nguyên từ 1-n, n là số nguyên nhập từ bàn phím. Sử dụng vòng lặp repeat… until

    program bai7;

    var i:integer;

            s:real;

    begin

    write('n= '); readln(n);

    s:=0; i:=0;

        repeat

        i:=i+1;

        s:=s+i;

        until i=n;

    writeln('tong 1- ' , n, '=',s:0:2);

    readln;

    end.

    Bài 8: Viết chương trình sử dụng mảng số nguyên nhập n phần tử và in các phần tử vừa nhập ra man hình.

    program bai8;

    var a:array[1..100] of integer;

        i , n: integer;

    begin

    writeln('n= ');readln(n);

    for i:=1 to n do  

        begin

        writeln('a[' ,i, ']='); readln(a[i]);

        end;

    for i:=1 to n do

    writeln('a[',i,']=',a[i]);

    readln;

    end.

    Bài 9: Viết chương trình sử dụng mảng số nguyên nhập n phần tử và in các phần tử là số chẳn

    program bai9;

    var a:array[1..100] of integer;

        i: integer;

    begin

    writeln('nhap so luong phan tu la bao nhieu'); readln(n);

    for i:=1 to n do

    begin

    writeln('a[',i,']='); readln(a[i]);

    end;

    writeln(' cac so chan vua nhap la:');

    for i:=1 to n do

    if a[i] mod 2 =0 then writeln(a[i]);

    readln;

    end.

    Bài 10: Viết chương trình sử dụng mảng số nguyên nhập n phần tử và in tổng các giá trị phần tử là số chẳn.

    Bài 11: Viết chương trình sử dụng mảng số nguyên nhập n phần tử và in tổng các giá trị phần tử là số lẻ.

    Bài 12: Viết chương trình sử dụng mảng số nguyên nhập n phần tử và in tổng các giá trị phần tử là số dương.

    Bài 13: Viết chương trình sử dụng mảng số nguyên nhập n phần tử và in tổng các giá trị phần tử là số chia hết cho 2 và 3.

    Bài 14: Viết chương trình kiểm tra số nguyên tố.