Trong quá trình kiểm tra ta dùng một biến flag, ban đầu flag được gán là false, nếu n chia hết cho số nào đó thì flag được bậc lên thành True, đến khi kết thúc vòng lặp, nếu như flag [r]
Trang 1Bài tập chương 3 tin học 11 - Cấu trúc Rẽ Nhánh và Lặp Phần 1: Cấu Trúc Rẽ Nhánh
Bài 1: Viết chương trình nhập vào ba số a, b, c, xuất ra màn hình số lớn nhất (max) của
ba số đó
Bài 2: Viết chương trình nhập vào số kw điện, tính và xuất ra số tiền phải trả (T) theo công thức sau:
- Nếu kw <=100 thì Tính 2000 đ cho 1kw
- Nếu 100<kw<=200 thì những kw vượt 100 tính 2500 đ cho 1 kw
Phần 2: Cấu Trúc Lặp
Bài 1: Viết chương trình nhập vào số nguyên n, xuất ra dãy số từ 1 đến n
Bài 2: Viết chương trình nhập vào số n, xuất ra dãy số chẵn trong khoảng 1 đến n Bài 3: Viết chương trình nhập vào hai số m, n, xuất ra dãy số chẵn từ m đến n
Bài 4: Nhập vào hai số m, n, xuất ra dãy số bội 3 từ m đến n
Bài 5: Nhập vào số nguyen dương n, tính và xuất ra tổng S = 1 + 2 + +n
Bài 6: Nhập vào số nguyên dương n, tính và xuất ra tổng S = 2 + 4 + + (n-k) với k=1 hay 0 Tức là tổng dãy số chẵn trong khoảng 1 đến n
Bài 7: Nhập số nguyên dương n, kiểm tra xem n có phải số nguyên tố trong tập số nguyên dương hay không
Bài 8: Nhập số nguyên dương n, tính n!, biết n! = 1.2.3.4.5 n
Bài 9: Nhập vào số a và số nguyên dương n, tính a mũ n
Phần 1: Cấu trúc rẽ nhánh:
Bài 1: Xác định yêu cầu:
B i 1: à
*Xác định yêu cầu:
+ Input: a, b, c ( số thực)
+Output: max ( số thực)
* Thuật toán:
B1: Nhập a, b, c
B2: max< a
B3 Nếu max<b thì max< b
B4: nếu max <c thì max < c
B5: Xuất max, kết thúc
* Chương trình:
Program Tim_Max;
Uses crt;
Var a, b, c, max: Real;
Begin Clrscr;
Write(‘Hay nhap ba so a, b,c:’); Readln(a, b, c);
Max:=a;
If ( Max < b) Then Max:= b;
If (Max < c) Then Max:=c;
Write(‘Max cua a, b, c la:’, Max); Readln;
Trang 2Bài 2:
* Xác định yêu cầu:
+ Input: kw ( số thực)
+ Output: T ( số thực)
* Thuật toán:
B1: Nhập kw
B2: Nếu kw <= 100 thì Tß kw*2000
B3: Nếu 100< kw<=200 thì Tß100* 2000 + ( kw-100) * 2500
B4: Xuất T, kết thúc
Học sinh tự viết chương trình
Phần 2: Cấu trúc lặp
Bài 1:
* Xác định yêu cầu:
+ Input: n ( nguyên)
+ Output: Dãy số từ 1 đến n
* Thuật toán:
B1: Nhập n
B2: Cho i chạy từ 1 đến n thực hiện:
Xuất i
B3: Kết thúc
* Chương trình:
Program Dayso;
Uses crt;
Var i,n: Integer;
Begin Clrscr;
Write(‘ nhap n:’); Readln(n);
For i:=1 to n do Write(i:4);
Readln;
End
Bài 2:
* Xác định yêu cầu:
+ Input: n ( nguyên)
+ Output: Dãy số chẵn từ 1 đến n
* Thuật toán:
B1: Nhập n
B2: Cho i chạy từ 1 đến n thực hiện:
Nếu I chia hết cho 2 thì Xuất i
B3: Kết thúc
* Chương trình:
Program Dayso;
Uses crt;
Var i,n: Integer;
Begin Clrscr;
Write(‘ nhap n:’); Readln(n);
For i:=1 to n do If ( i mod 2= 0) then Write(i:4);
Readln;
End
Bài 3: Nhập 2 số m, n ( m<n) Xuất dãy số lẻ từ m đến n
*Xác định yêu cầu
Trang 3+ output: dãy số lẻ từ m đến n
* Thuật toán:
B1: Nhập m, n
B2: Cho i chạy từ m đến n, nếu i không chia hết cho 2 thì xuất i
B3: Bước 3, kết thúc
*Chương trình:
Học sinh tự viết, lưu ý để i không chia hết cho 2 thì i mod 2 <>0
Bài 4: Nhập 2 số m, n Xuất ra dãy số bội 3 từ m đến n
Tương tự bài 3, chỉ khác là thay vì kiểm tra I có chia hết cho 2 hay không ta kiểm tra I
có chia hết cho 3 hay không Nghĩa là i mod 3 = 0
Bài 5:
Ý tưởng: bài này yeu cầu chúng ta tính tổng S của dãy số từ 1 đến n Để tính được tổng S, chúng ta tưởng tượng S như chiếc thùng rỗng, chúng ta sẽ đổ lần lượt các ly nước vào thùng theo quy tắc sau:
Số ly nước đổ vào tương ứng với số lần đổ: lần 1 đổ 1 ly, lần 2 đổ 2 ly, …
Như vậy số nước trong thùng lúc sau bằng số nước trước đó cộng với số ly nước ở lần
đổ đó
* Xác định yêu cầu:
+ Input: n ( nguyên)
+ Output: S ( số nguyên)
* Thuật toán:
B1: Nhập n
B2: S< 0
B3: Cho i chạy từ 1 đến n thực hiện:
S< S+ i
B4: Xuất S
B5: Kết thúc
* Chương trình:
Program TongDaySo;
Uses crt;
Var i,n, S: Integer;
Begin Clrscr;
Write(‘ nhap n:’); Readln(n);
S:= 0;
For i:=1 to n do S:= S+i ; Write( ‘ Tong S=’, S);
Readln;
End
Bài 6: Bài này tương tự như bài 5, chỉ khác là chúng ta kiểm tra i trước khi cộng vào S, chỉ i nào chia hết cho 2 mới cộng;
B3: Cho i chạy từ 1 đến n thực hiện: nếu i chia hết cho 2 thì S < S+i
Bài 7: Nhập vào số nguyên dương n, kiểm tra xem n có nguyên tố trong tập số nguyên dương hay không
* Xác định yêu cầu:
+input: n
Trang 4+out put: n là nguyên tố hay không
* ý tưởng:
Trong tập số nguyên dương, số 1 không phải số nguyên tố, số 2 và 3 là hai số nguyên
tố Từ số 4 trở lên, nếu số nào chỉ có hai ước là 1 và chính nó thì đó là số nguyên tố để kiểm tra, ta kiểm tra từ 2 đến n-1 xem n có chia hết số nào không Tuy nhiên ta chỉ cần kiểm tra đến căn bậc 2 của n, mà không phải kiểm tra đến n-1 Trong quá trình kiểm tra ta dùng một biến flag, ban đầu flag được gán là false, nếu n chia hết cho số nào đó thì flag được bậc lên thành True, đến khi kết thúc vòng lặp, nếu như flag vẫn là False chứng tỏ n không chia hết cho số nào, vậy nó là nguyên tố, ngược lại thì nó không nguyên tố Từ ý tưởng trên ta có thể xây dựng thuật toán như sau:
* Thuật toán:
B1 : nhập n
B2: Nếu n=1, xuất n không nguyên tố, đến bước 5
B3: Nếu n <4 thì xuất n nguyên tố, đến bước 5
B2: Cho flag< False
B3: Chi i chạy từ 2 đến căn bậc 2 của n thực hiện: nếu n chia hết cho i thì gán flag< True
B4: Nếu flag = True thì xuất ra n không nguyên tố ngược lại xuất n nguyên tố
B5: kết thúc
* Chương trình:
Học sinh tự viết