Đăng Nhập

Quên mật khẩu

November 2018
MonTueWedThuFriSatSun
   1234
567891011
12131415161718
19202122232425
2627282930  

Calendar Calendar

Thống Kê
Hiện có 1 người đang truy cập Diễn Đàn, gồm: 0 Thành viên, 0 Thành viên ẩn danh và 1 Khách viếng thăm

Không

[ View the whole list ]


Số người truy cập cùng lúc nhiều nhất là 48 người, vào ngày 2/8/2017, 00:32
Statistics
Diễn Đàn hiện có 74 thành viên
Chúng ta cùng chào mừng thành viên mới đăng ký: AlinaL92956302

Tổng số bài viết đã gửi vào diễn đàn là 107 in 53 subjects

Bài 5: Vòng lặp biết trước số lần lặp(For .. to .. do)

Go down

Bài 5: Vòng lặp biết trước số lần lặp(For .. to .. do)

Bài gửi by Admin on 4/4/2014, 19:28

A. Lý thuyết

     Khi giải quyết một bài toán nào đó mà cần phải lặp đi, lặp lại một công việc, ta sẽ cần đến câu lệnh lặp. Có hai dạng: Lặp với số lần biết trước: lệnh For, lặp với sớ lần chưa biết trước: lệnh Repeat, While
     - Dạng tiến
          + Cấu trúc:       For (biến:=giá trị đầu) to (giá trị cuối) do
                                       (Câu lệnh)
          + Ý nghĩa: Biến nhận giá trị đầu và kiểm tra có nhỏ hơn hoặc bằng giá trị cuối hay không? nếu đúng thì thực hiện câu lệnh. tiếp tục tăng giá trị đầu lên 1 đơn vị và kiểm tra như trên nếu đúng thì thực hiện câu lệnh, cứ tiếp tục như thế đến khi biến lớn hơn giá trị cuối thì ngừng vòng lặp.
           + VD: for i:=1 to 10 do
           + Chú ý:
                 * Giá trị đầu và cuối phải là số nguyên hoặc kí tự
                 * Giá trị đầu phải nhỏ hơn hoặc bằng giá trị cuối
                 * Nếu phải thực hiện nhiều câu lệnh, cần đặt các câu lệnh đó trong cặp từ khóa Begin .. end;
                 * Số lần lặp được tính bằng cách: giá trị cuối - giá trị đầu +1
     - Dạng lùi
          + Cấu trúc:       For (biến:=giá trị đầu) downto (giá trị cuối) do
                                       (Câu lệnh)
          + Ý nghĩa: Biến nhận giá trị đầu và kiểm tra có lớn hơn hoặc bằng giá trị cuối hay không? nếu đúng thì thực hiện câu lệnh. tiếp tục tăng giá trị đầu lên 1 đơn vị và kiểm tra như trên nếu đúng thì thực hiện câu lệnh, cứ tiếp tục như thế đến khi biến nhỏ hơn giá trị cuối thì ngừng vòng lặp.
           + VD: for i:=10 downto 1 do
           + Chú ý:
                 * Giá trị đầu và cuối phải là số nguyên hoặc kí tự
                 * Giá trị đầu phải lớn hơn hoặc bằng giá trị cuối
                 * Nếu phải thực hiện nhiều câu lệnh, cần đặt các câu lệnh đó trong cặp từ khóa Begin .. end;
                 * Số lần lặp được tính bằng cách: giá trị đầu- giá trị cuối +1

B. Bài tập

Bài 1: Viết chương trình tính tổng các số từ 1 đến 100
Bài 2: Cho số nguyên a được nhập từ bàn phím, kiểm tra xem a có phải là số nguyên tố hay không?
     Gợi ý: 
      - Cho vòng lặp for chạy từ 1 đến a
      - Đếm xem a chia hết mấy số( các số từ 1 -> a )
      - Nếu chia hết cho 2 số thì là số nguyên tố, ngược lại thì không phải
     VD: a = 3, kết quả: là số nguyên tố
           a = 4, kết quả: không là số nguyên tố
Bài 3: Cho số nguyên dương n, hãy liệt kê ra màn hình những số chẵn từ 1 đến n
     Gợi ý
      - Nhập số n
      - Cho vòng lặp for chạy từ 1 đến n
      - Kiểm tra nếu là số chẵn thì in ra màn hình(từ khóa Mod là chia lấy phần dư)
     VD: n = 10, kết quả: 2  4  6  8  10
Bài 4: Cho hai số nguyên m,n(m<n). Hãy tính tổng các số chia hết cho 3 từ m đến n
     Gợi ý:
      - Nhập m,n
      - Cho vòng lặp chạy từ m đến n
      - Nếu số nào chia hết cho 3 thì tính tổng
     VD: m = 5, n = 14, kết quả tổng = 6+9+12 = 27
Bài 5: Hãy in ra màn hình các số lẻ từ 2 đến 100 theo thứ tự giảm giần
     Gợi ý:
      - Dùng vòng lặp for dạng lùi(for downto do)
      - Kiểm tra nếu là số lẻ thì in ra màn hình
Bài 6: CHo số tự nhiên a. Hãy cho biết trong a số tự nhiên đầu tiên có bao nhiêu:
      - Số chia hết cho 2
      - Là bội của 3
      - Chia hết cho cả 2 và 3
     VD: a = 20, kết quả:
           số chia hết cho 2 là 10                (2  4  6  8  10  12  14  16  18  20)
           Bội của 3 là: 6                           (3  6  9  12  15  18)
           Chia hết cho cả 2 và 3 la: 3         (6  12  18)
Bai 7: Sữ dụng vòng lặp For in các số từ 1 đến 100 theo mẫu:
         1    2   3  4   5  6   7   8  9  10
         11 12 13 14 15 16 17 18 19  20
         ......
         91 92 93 94 95 96 97 98 99 100
     Gợi ý: 
         + Cách 1: Dùng vòng lặp For lồng nhau, một vòng lặp cho dòng, một vòng lặp cho cột.
         + Cách 2: Dùng 1 vòng lặp for và trong vòng lặp cần xác định khi nào thì xuống hàng(lệnh writeln; để xuống hàng).
Bài 8: Hãy in tất cả các số nguyên tố nhỏ hơn hoặc bằng a(a là số nguyên dương)
     Gợi ý: 
         + Dùng vòng lặp từ 2 đến a
         + kiểm tra từng giá trị có phải là số nguyên tố không(giống bài 2), nếu đúng thì in ra.
     VD: a = 20, kết quả: 2  3  5  7  11  13  17  19
Bài 9: Một số có tổng các ước nhỏ hơn nó, bằng chính nó được gọi là số hoàn chỉnh
(VD: 6 có các ước nhỏ hơn nó là: 1, 2, 3. Tổng là: 1 + 2 + 3 = 6).
Viết chương trình xét xem một số a được nhập từ bàn phím có phải là số hoàn chỉnh không?
     Gợi ý:
          + Nhập a
          + Gán biến tổng = 0
          + Cho i chạy từ 1 đến a-1, nếu i là ước của a thì cộng vào tổng
          + Nếu a = tổng thì a là số hoàn chỉnh.
     VD: số 6 là số hoàn chỉnh.
Bài 10: Nhập m từ bàn phím. Hãy liệt kê tất cả các số hoàn chỉnh từ 1 đến m(m nguyên dương)
     Gợi ý:
          + Nhập m
          + Chạy vòng lặp từ 1 đến m
          + Kiểm tra xem mỗi số tứ 1 đến m có là số hoàn chỉnh không?(làm giống bài 9)
     VD: m = 100, Liệt kê các số hoàn chỉnh từ 1 đến 100


Được sửa bởi Admin ngày 16/1/2015, 17:09; sửa lần 9.

Admin
Admin

Tổng số bài gửi : 59
Points : 171
Reputation : 3
Join date : 06/10/2013
Age : 35
Đến từ : Cà Mau

Xem lý lịch thành viên http://phamhoe.forumvi.com

Về Đầu Trang Go down

Re: Bài 5: Vòng lặp biết trước số lần lặp(For .. to .. do)

Bài gửi by lethanhnhan9a3 on 7/4/2015, 19:37

bai 1:
program tong;
uses crt;
var i,s:integer;
begin
clrscr;
s:=0;
for i:=1 to 100 do
s:=s+i;
writeln('tong la ',s);
readln;
end.

lethanhnhan9a3
Cấp 1
Cấp 1

Tổng số bài gửi : 11
Points : 12
Reputation : 1
Join date : 20/01/2015

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Bài 5: Vòng lặp biết trước số lần lặp(For .. to .. do)

Bài gửi by crazy on 2/2/2016, 18:55

bai 1
program tinh_tong;
uses crt;
var a,tong: integer;
begin
tong:=0;
for a:=1 to 100 do tong:=tong+a;
writeln(' tong cac so tu den 100 la:', tong);
end.

crazy
Cấp 1
Cấp 1

Tổng số bài gửi : 10
Points : 10
Reputation : 0
Join date : 13/11/2015
Age : 16
Đến từ : Cà Mau

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Bài 5: Vòng lặp biết trước số lần lặp(For .. to .. do)

Bài gửi by Sponsored content


Sponsored content


Về Đầu Trang Go down

Về Đầu Trang


 
Permissions in this forum:
Bạn không có quyền trả lời bài viết