Lặp với số lần biết trước: - Dạng lặp tiến, câu lệnh viết sau từ khóa “do” được thực hiện tuần tự, với “biến đếm” lần lượt nhận các giá trị liên tiếp tăng từ “giá trị đầu” đến “giá trị c[r]
Trang 1A LÍ THUYẾT:
1 Câu lệnh rẽ nhánh:
- Dạng thiếu: Ở dạng thiếu, “điều kiện” sẽ được tính và kiểm tra Nếu “điều kiện” đúng (có giá trị true) thì “câu lệnh” sẽ được thực hiện, ngược lại thì “câu lệnh” sẽ bị bỏ qua
if <điều kiện> then <câu lệnh>;
- Dạng đủ: Ở dạng đủ: “điều kiện” cũng được tính và kiểm tra Nếu “điều kiện” đúng thì “câu lệnh 1” sẽ được thực hiện, ngược lại thì “câu lệnh 2” sẽ được thực hiện
if <điều kiện> then <câu lệnh 1> else <câu lệnh 2>;
trong đó: “điều kiện” là biểu thức logic, “câu lệnh”, “câu lệnh 1”, “câu lệnh 2” là một câu lệnh của Pascal
* Câu lệnh ghép:
begin
<các câu lệnh>;
end;
2 Lặp với số lần biết trước:
- Dạng lặp tiến, câu lệnh viết sau từ khóa “do” được thực hiện tuần tự, với “biến đếm” lần lượt nhận các giá trị liên tiếp
tăng từ “giá trị đầu” đến “giá trị cuối”
for <biến đếm>:=<giá trị đầu> to <giá trị cuối> do <câu lệnh>;
- Dạng lặp lùi, câu lệnh viết sau từ khóa “do” được thực hiện tuần tự, với “biến đếm” lần lượt nhận các giá trị liên tiếp
giảm từ “giá trị cuối” đến “giá trị đầu”
for <biến đếm>:= <giá trị cuối> downto <giá trị đầu> do <câu lệnh>;
trong đó:
• “Biến đếm” là biến đơn, thường có kiểu nguyên
• “Giá trị đầu”, “giá trị cuối” là các biểu thức cùng kiểu với biến đếm và “giá trị đầu” phải nhỏ hơn hoặc bằng “giá trị cuối” Nếu “giá trị đầu” lớn hơn “giá trị cuối” thì vòng lặp không được thực hiện
3 Lặp với số lần chưa biết trước:
while <điều kiện> do <câu lệnh>;
trong đó:
• “Điều kiện” là biểu thức logic
• “Câu lệnh” là một câu lệnh đơn hoặc ghép
B BÀI TẬP:
1 Nhập vào 2 số nguyên a, b (a < b) Tìm các ước của b trong phạm vi từ 1 đến a
program Bai_1;
uses crt;
var a,b,i: integer;
begin
writeln(‘Nhap so a nho hon so b’); readln(a, b);
for i:= 10 to a do
if (b mod i = 0) then writeln(‘Uoc cua b la i’);
readln
end.
2 Nhập vào 2 số nguyên a, b (a < b) Tính tổng các ước tìm được trong phạm vi từ 1 đến a
program Tong_uoc;
uses crt;
var a, b, x, i: integer;
begin
writeln(‘Nhap so a nho hon so b’); readln(a, b);
x:= 0;
for i:= 1 to a do
if (b mod i = 0) then
x:= x + 1;
writeln(‘Tong cac uoc tim duoc la’, x);
readln
end.
Trang 23 Nhập vào 1 số nguyên N, kiểm tra N là số chẵn hay số lẻ Nếu N chẵn, tính giá trị √N và viết ra màn hình Nếu N
lẻ, tính N2 và viết ra màn hình
program Tim_N;
uses crt;
var N, X, Y: integer;
begin
write(‘Nhap N bang’); readln(N);
if (N mod 2 = 0) then
writeln(‘N la so chan’) else writeln(‘N la so le’);
if (N mod 2 = 0) then
begin
X:= sqrt(N);
writeln(‘Gia tri cua X la’, X);
end;
if (N mod 2 <> 0) then
begin
Y:= sqr(N);
writeln(‘Gia tri cua Y la’, Y);
readln
end.
4 Nhập vào 2 số nguyên A, B a) Kiểm tra tính chẵn lẻ của chúng
b) Đưa ra số lớn hơn hoặc nhỏ hơn
program Bai_4;
uses crt;
var A, B: integer;
begin
write(‘Nhap gia tri cua A va B bang’); readln(A, B);
if (A mod 2 = 0) then
writeln(‘A la so chan’) else writeln(‘A la so le’);
if (B mod 2 = 0) then
writeln(‘B la so chan’) else writeln(‘B la so le’);
if A>B then writeln(‘A lon hon B’)
else writeln(‘A nho hon B’);
readln
end.
5 Nhập 1 số N có 3 chữ số Tính tổng bình phương các chữ số của N
program Tong_binh_phuong;
uses crt;
var N, a, b, c, m: integer;
begin
writeln(‘Ba chu so hang tram, chuc, don vi cua so N lan luot la’);
readln(a, b, c);
N:= a*100 + b*10 + c;
m:= sqr(a) = sqr(b) + sqr(c);
writeln(‘Tong binh phuong cua cac chu so cua N la’, m);
readln
end.
6 Nhập n và kiểm tra n có phải là số nguyên tố hay không
program Kt_so_nguyen_to;
uses crt;
var n: integer;
begin
writeln (‘Gia tri cua n la’); readln(n);
if (n mod 1 = 0) and (n mod n = 0) then
writeln(‘n la so nguyen to’) else writeln(‘n khong la so nguyen to’);
readln
Trang 37 Tìm bội chung nhỏ nhất của 2 số A và B.
program Boi_chung_nho_nhat;
uses crt;
var A, B, C: integer;
begin
writeln(‘Nhap hai so A va B’); readln(A, B);
C:= B;
while (C mod A <> 0) and (C mod B <> 0) do
C:= C+1;
writeln(‘Boi chung nho nhat cua A va B la’, C:8);
readln
end.
8 Tìm nghiệm thực của phương trình bậc hai ax2 + bx + c = 0, với a ≠ 0
program Giai_ptb2;
uses crt;
var a,b,c: real;
D, x1, x2: real;
begin
clrscr;
write(‘a, b, c: ‘);
readln(a,b, c);
D:= b*b – 4*a*c;
if D < 0 then writeln(‘Phuong trinh vo nghiem’)
else begin
x1:= (-b – sqrt(D))/(2*a);
x2:= -b/1 – x1;
writeln(‘ x1 = ‘, x1:8:3,’ x2 = ‘, x2:8:3);
end;
readln
end.
9 Tìm số ngày của năm N, biết rằng năm nhuận là năm chia hết cho 400 hoặc chia hết cho 4 nhưng không chia hết cho 100
program Nam_nhuan;
uses crt;
var N, SN: integer;
begin
clrscr;
write(‘Nam: ‘); readln(N):
if (N mod 400 = 0) or ((N mod 4 = 0) and (N mod 100 <> 0))
then SN:= 366 else SN:= 365;
writeln(‘So ngay cua nam’ , N, ‘ la ’, SN);
readln
end.
10 Tìm ước chung lớn nhất của hai số nguyên dương M và N
program UCLN;
uses crt;
var M,N: integer;
begin
clrscr;
write(‘Gia tri cua hai so M va N la’); readln(M, N);
while M <> N do
if M > N then M:= M-N else N:= N-M;
write(‘Uoc chung lon nhat cua M va N la’, M);
readln
end.