Câu lệnh rẽ nhánh IF … THEN… ELSE Bài 4.1: (1) Cú pháp của câu lệnh IF dạng đầy đủ là: A. IF THEN B. IF THEN ELSE C. IF THEN ELSE D. IF THEN (2) Chọn câu lệnh rẽ nhánh IF dạng đầy đủ đúng: A. IF N := 5 TO N := N+1 ELSE N := N1; B. IF N= 5 THEN N := N+1 ELSE N := N1; C. IF N = 5 THEN N+1 ELSE N1; D. IF N= 5 THEN N := N+1 ; (3) Xét A,B,C có phải là số đo ba cạnh tam giác hay không. Chọn câu lệnh IF đúng: A. IF (A+B>C) OR (A+C>B) OR (B+C>A) THEN Write(`A,B,C la 3 canh tam giac`) B. IF (A>B) AND (B>C) AND (C>A) THEN Write(`A,B,C la 3 canh tam giac`) C. IF (A+B>C) AND (A+C>B) AND (B+C>A) THEN Write(`A,B,C la 3 canh tam giac`) D. IF (A+B>C) AND (A+C>B) THEN Write(`A,B,C la 3 canh tam giac`) (4) Chọn câu lệnh IF đúng: A. IF X:= A+B THEN X := SQRT(AA + BB) ELSE X:= 1; B. WHILE (A>B) DO X := AAA BBB C. FOR I:= 1 TO 100 DO S:= S + I; D. IF (A >0) and (A 0 THEN A := A+ 5 ELSE A:= A 5; T: = T + M; IF A < 10 THEN M : = M + K ELSE K := K + M; (1) Giá trị của A khi thực hiện xong đoạn chương trình này là: A. 10 B. 5 C. 20 D. 15 (2) Giá trị của M khi thực hiện xong đoạn chương trình này là: A. 10 B. 15 C. 20 D. 5 (3) Giá trị của K khi thực hiện xong đoạn chương trình này là: A. 10 B. 15 C. 20 D. 5 (4) Giá trị của T khi thực hiện xong đoạn chương trình này là: A. 10 B. 15 C. 20 D. 25 (5) Bao nhiêu lệnh gán được thực hiện trong đoạn chương trình này? A. 1 B. 2 C. 3 D. 4 Bài 4.3: Khai báo VAR A,B,C,D, Max: Byte; Cho biết giá trị biến Max in ra trong đoạn chương trình sau: Max := A; IF B >MAX THEN Max := B; IF C > MAX THEN Max : = C ELSE Max := D; WRITELN(Max); (1) Giá trị nhập vào cho A = 10; B =1 5; C = 20 và D = 25. A. 10 B. 15 C. 20 D. 25 (2) Giá trị nhập vào cho A = 25; B =1 0; C = 20 và D = 15. A. 10 B. 15 C. 20 D. 25 (3) Giá trị nhập vào cho A = 15; B =25; C = 25 và D = 10. A. 10 B. 15 C. 20 D. 25 (4) Giá trị nhập vào cho A = 20; B =1 5; C = 20 và D = 25. A. 10 B. 15 C. 20 D. 25 (5) Giá
Trang 1Câu lệnh rẽ nhánh
IF … THEN… ELSE
Bài 4.1:
(1) Cú pháp của câu lệnh IF dạng đầy đủ là:
A IF <Điều kiện> THEN <Các câu lệnh>
B IF <Điều kiện> THEN <Câu lệnh 1> ELSE <Câu lệnh2>
C IF <Biến> THEN <Câu lệnh 1> ELSE <Câu lệnh2>
D IF <Điều kiện> THEN <Câu lệnh>
(2) Chọn câu lệnh rẽ nhánh IF dạng đầy đủ đúng:
A IF N := 5 TO N := N+1 ELSE N := N-1;
B IF N= 5 THEN N := N+1 ELSE N := N-1;
C IF N = 5 THEN N+1 ELSE N-1;
D IF N= 5 THEN N := N+1 ;
(3) Xét A,B,C có phải là số đo ba cạnh tam giác hay không Chọn câu lệnh IF đúng:
A IF (A+B>C) OR (A+C>B) OR (B+C>A) THEN Write('A,B,C la 3 canh tam giac')
B IF (A>B) AND (B>C) AND (C>A) THEN Write('A,B,C la 3 canh tam giac')
C IF (A+B>C) AND (A+C>B) AND (B+C>A) THEN Write('A,B,C la 3 canh tam giac') D IF (A+B>C) AND (A+C>B) THEN Write('A,B,C la 3 canh tam giac')
(4) Chọn câu lệnh IF đúng:
A IF X:= A+B THEN X := SQRT(A*A + B*B) ELSE X:= 1;
B WHILE (A>B) DO X := A*A*A - B*B*B
C FOR I:= 1 TO 100 DO S:= S + I;
D IF (A >0) and (A <= 1) THEN X := SQRT(A) ELSE X:= 0;
Bài 4.2:
Khai báo biến VAR A , M , K , T : INTEGER; Khi thực hiện đoạn chương
trình sau với giá trị nhập vào cho A = 10; M = 10; T = 15 và K = 5.
IF M > 0 THEN A := A+ 5 ELSE A:= A - 5; T: = T + M;
IF A < 10 THEN M : = M + K ELSE K := K + M;
(1) Giá trị của A khi thực hiện xong đoạn chương trình này là:
(2) Giá trị của M khi thực hiện xong đoạn chương trình này là:
(3) Giá trị của K khi thực hiện xong đoạn chương trình này là:
4
Trang 2Bài 4.3: Khai báo VAR A,B,C,D, Max: Byte; Cho biết giá trị biến Max in ra
trong đoạn chương trình sau:
Max := A;
IF B >MAX THEN Max := B;
IF C > MAX THEN Max : = C ELSE Max := D;
WRITELN(Max);
(1) Giá trị nhập vào cho A = 10; B =1 5; C = 20 và D = 25
(2) Giá trị nhập vào cho A = 25; B =1 0; C = 20 và D = 15
(3) Giá trị nhập vào cho A = 15; B =25; C = 25 và D = 10
(4) Giá trị nhập vào cho A = 20; B =1 5; C = 20 và D = 25
(5) Giá trị nhập vào cho A = 20; B =15; C = 25 và D = 30
Bài 4.4: Khai báo VAR A,B,C, Min: Byte; và đoạn chương trình
Mini := A;
IF B>Mini THEN Mini := B ELSE Mini := C; WRITELN(Mini);
Cho biết giá trị biến Mini sau khi thực hiện đoạn chương trình ứng với mỗi bộ INPUT
Inpu
t
t
Bài 4.5: Khai báo biến VAR Toan, Van, Tong: Byte; Khoi: CHAR; cho đoạn
chương trình
IF Khoi='A' THEN Tong := Toan * 2 + Van;
IF Khoi='B' THEN Tong := Toan + Van
ELSE Tong := Toan + Van*2;
Writeln('Tong =', Tong);
Cho biết kết quả in ra giá trị của TONG sau khi thực hiện đoạn chương trình với giá trị nhập vào theo bảng sau:
Input Toa
n
Van Khố
i
i
Tong
Trang 33 6 8 'C' 8 8 5 'B'
Bài 4.6:
Khai báo VAR X,Y, F: REAL; và đoạn chương trình
IF X> 1 THEN
IF Y > 1 THEN F : = X + Y ELSE F := X - Y ELSE
IF Y > 0 THEN F : = X + SQRT(Y + 1) ELSE F := X - Y*Y + 2;
WRITELN(F);
Cho biết giá trị biến Mini sau khi thực hiện đoạn chương trình ứng với mỗi bộ INPUT
Inpu
t
t
Bài 4.7:
Khai báo VAR X,Y, F: REAL; và đoạn chương trình
IF X MOD Y = 0 THEN
Begin
R := 1;
X := X DIV Y;
End ELSE
Begin
R := X MOD Y;
Y := X DIV Y;
End;
Cho biết giá trị biến X, Y, R sau khi thực hiện đoạn chương trình ứng với mỗi bộ INPUT
Trang 42 30 6 7 3 27
Bài 4.8: Viết CT xét phương trình: Ax2 + Bx + C = 0 (A <>0) có nghiệm
hay không? (Trường hợp nghiệm kép xem là hai nghiệm có cùng giá trị)
Hãy sắp xếp các dòng theo thứ tự để được một chương trình đúng.
1 Xác định bài toán:
Input:
Output:
2 Tổ chức dữ liệu: Hằng:
Biến:
3 Thuật toán:
4 Chương trình:
Chương trình bạn Aro viết Chương trình viết lại
READLN(A,B,C);
WRITE(‘Nhap so A,B,C voi A<>0:’
);
VAR A,B,C,D,X1,X2: REAL;
BEGIN
BEGIN
Delta := B*B - 4*A*C;
X1 := (-B + SQRT(Delta))/2/A;
PROGRAM PTB2;
IF Delta >= 0 THEN
Trang 5READLN;
END;
END.
WRITELN('X1 =' , X1:10:2);
WRITELN('X2 =' , X2:10:2);
WRITELN('Phuong trinh vo
nghiem');
ELSE
X2 := (-B - SQRT(Delta))/2/A;
Bài 4.9: Viết chương trình giải phương trình: Ax2 + Bx + C = 0 (A <>0)
Hãy chương trình theo sơ đồ khối giải thuật.
1 Xác định bài toán:
Input:
Output:
2 Tổ chức dữ liệu: Biến:
3 Thuật toán: 4 Chương trình:
Trang 6
Bài 4.10: Viết chương trình giải phương trình: Ax + B = 0 Hãy chương trình theo sơ đồ khối giải thuật 1 Xác định bài toán: Input:
Output:
2 Tổ chức dữ liệu: Biến:
3 Thuật toán: 4 Chương trình:
Trang 7
Bài 4.11: Viết câu lệnh IF trong các trường hợp sau, biết rằng X,Y,A,B,C được nhập từ bàn phím và khai báo VAR X,Y,Z,A,B,C: REAL; Tính X2 + Y2 nếu X2 + Y2 <= 1 (1) Z = X + Y nếu X2 + Y2 > 1 và Y >= X 0.5 nếu X2 + Y2 > 1 và Y < X
Tính |X| + |Y| nếu M(x,y) thuộc hình tròn bán kính R, tâm A(a,b) (2) Z = 0.5 trong trường hợp còn lại
(3) Xét điểm M(x,y) trong hệ trục toạ độ Oxy In ra thông báo điểm M nằm ở góc vuông nào Nếu M nằm trên trục Ox hoăc Oy thì thông báo thuộc trục.
Trang 8
(4) Cho số đo 3 cạnh tam giác là A,B,C Xét xem tam giác đó là tam
giác gì: Tam giác thường, tam giác vuông, tam giác cân hay tam giác đều
Bài 4.12: Kết nối các câu lệnh IF khuyết thành câu lệnh IF dạng đầy đủ (1) IF D > 0 THEN WRITELN('PHUONG TRINH CO 2 NGHIEM'); IF D = 0 THEN WRITELN('PHUONG TRINH CO 1 NGHIEM'); IF D < 0 THEN WRITELN('PHUONG TRINH CO 0 NGHIEM');
(2) Z = 0.5 trong trường hợp còn lại
(3) Xét điểm M(x,y) trong hệ trục toạ độ Oxy In ra thông báo điểm M nằm ở góc vuông nào Nếu M nằm trên trục Ox hoăc Oy thì thông báo thuộc trục.
Trang 9
(4) Cho số đo 3 cạnh tam giác là A,B,C Xét xem tam giác đó là tam giác gì: Tam giác thường, tam giác vuông, tam giác cân hay tam giác đều
Bài 4.13: Viết chương nhập vào ba số a, b, c và kiểm tra xem chúng có phải là ba cạnh của một tam giác hay không, nếu phải thì tính diện tích của tam giác và xét xem tam giác đó có phải là tam giác cân hay không? Ví dụ: - Nhập vào: a = 3; b= 4 ; c = 5 - In ra : Dien tich: 6 Khong phai tam giac can Gợi ý: Điều kiện để a,b,c là số đo 3 cạnh tam giác là a + b > c và |a-b|<c Khi a,b,c đã là 3 cạnh của tam giác thì xét xem có hay không a = b hoặc b = c hoặc c = a 1 Xác định bài toán: Input:
Output:
2 Tổ chức dữ liệu: Hằng:
Biến:
3 Thuật toán:
4 Chương trình:
Trang 10
Bài 4.14: Viết chương trình nhập vào điểm Văn, Toán và Khối thi là A,B hoặc C Tính điểm tổng nếu Khối ='A' thì điểm Toán nhân 2, Khối = 'C' thì Văn nhân 2, còn khối B thì cộng thêm 1/2 tổng điểm Toán + Văn Sau đó in ra kết quả tổng điểm Ví dụ: - Nhập vào: Toán = 8; Văn= 7 ; Khối=C - In ra : Tổng điểm: 22 Gợi ý: Sử dụng 2 lệnh IF … THEN … ELSE… lồng nhau xét điều kiện khối thi để tính tổng 1 Xác định bài toán: Input:
Output:
2 Tổ chức dữ liệu: Hằng:
Biến:
3 Thuật toán:
4 Chương trình:
Trang 11
Bài 4.15: Viết chương trình nhập vào điểm thi Văn, Toán, Anh và đối tượng chính sách thuộc nhóm từ 1 đến 9 Nếu đối tượng từ 1 đến 3 thì được cộng thêm 1 điểm, đối tượng từ 4 đến 6 thì được cộng thêm 0.5 điểm còn lại không được cộng Nhập vào điểm chuẩn trúng tuyển Sau đó in ra kết quả 'Trúng tuyển' hoặc 'Không trúng tuyển' và tổng điểm Ví dụ: - Nhập vào : Toán = 8; Văn= 4 ; Anh=9; Đối tượng=5; Chuẩn= 20 - In ra : Trúng tuyển - Tổng điểm: 21.5 Gợi ý: Sử dụng 2 lệnh IF … lồng nhau xét điều kiện đối tượng để tính tổng Dùng thêm lệnh IF để xét xem tổng >= điểm chuẩn hay không. 1 Xác định bài toán: Input:
Output:
2 Tổ chức dữ liệu: Hằng:
Biến:
3 Thuật toán:
Trang 12
Bài 4.16: Viết chương trình nhập vào chỉ số của công tơ điện đầu tháng và cuối tháng của một gia đình sau đó tính số KWh tiêu thụ và tiền phải trả Biết rằng giá tiền 1KWh được tính nếu dùng <= 100 KWh giá 3$ ngược lại giá 5$ Tiền thuê bao công tơ 1 tháng: 10$ Ví dụ: - Nhập vào : Chỉ số đầu: 2050; Chỉ số cuối: 2200 - In ra : Số KWh đã dùng: 150 Tiền phải trả: 560 Gợi ý: Sử dụng lệnh IF … xét điều kiện số kWh tiếu thụ nếu <= 10 thì số KWh * 3 +10 ngược lại tiền là 100*3 + (số KWh - 100)*5 +10 1 Xác định bài toán: Input:
Output:
2 Tổ chức dữ liệu: Hằng:
Biến:
3 Thuật toán:
4 Chương trình:
Trang 13
Bài 4.17: Viết chương trình nhập vào chỉ số của công tơ điện đầu tháng và cuối tháng của một gia đình sau đó tính số KWh tiêu thụ và tiền phải trả Biết rằng giá tiền 1KWh được tính: Từ KWh thứ 001 đến 100: 3$; từ KWh thứ 101 đến 200: 5$; từ KWh thứ 201 trở lên giá 8 $/KWh Ví dụ: - Nhập vào: Chỉ số đầu: 2050; Chỉ số cuối: 2300 - In ra : Số KWh đã dùng: 150 Tiền phải trả: 1200 Gợi ý: Sử dụng 2 lệnh IF … lồng nhau xét điều kiện số kWh tiếu thụ nếu <= 10 thì số KWh * 3 ngược lại nếu <=200 thì 100*3 + (số KWh - 100)*5 ngược lại thì 100*3+100*5+(số KWh -200)*8 1 Xác định bài toán: Input:
Output:
2 Tổ chức dữ liệu: Hằng:
Biến:
3 Thuật toán:
Trang 14
Bài 4.18: Viết chương nhập vào bốn số thực A, B, C, D sau đó tìm và in ra lớn nhất của chúng Gợi ý: Áp dụng thuật toán tìm số lớn nhất trong 3 số 1 Xác định bài toán: Input:
Output:
2 Tổ chức dữ liệu: Hằng:
Biến:
3 Thuật toán:
4 Chương trình:
Trang 15
Bài 4.19: Viết chương trình nhập vào tọa độ điểm A(XA, YA) và điểm B(XB,YB) Tính độ dài đoạn thẳng Xét xem điểm A có nằm ở góc vuông thứ I của hệ tọa độ Oxy hay không (tính cả phần dương trục toạ độ)? Gợi ý: Điểm A thuộc góc vuông thứ nhất khí Xa >= 0 và Ya >=0 1 Xác định bài toán: Input:
Output:
2 Tổ chức dữ liệu: Hằng:
Biến:
3 Thuật toán:
Trang 16
Bài 4.20: Viết chương trình giải hệ phương trình P Ny Mx C By Ax 1 Xác định bài toán: Input:
Output:
2 Tổ chức dữ liệu: Hằng:
Biến:
3 Thuật toán: B1: Nhập: A,B,C,M,N,P B2: Tính D:= A*N -B*M; DX:= C*N - B*P; DY := C*M - A*P; B3: Nếu D <>0 thì ( X:= DX/D; Y:= DY/D; Xuất : X, Y) Ngược lại {khi D = 0} Nếu DX = 0 và DY = 0 thì Xuất: 'Hệ phương trình vô số nghiệm' Ngược lại Xuất: 'Hệ phương trình vô nghiệm' B4: Kết thúc 4 Chương trình:
Trang 17
Bài 4.21: Viết chương trình chương trình tính tiền cho dịch vụ giữ trẻ biết rằng: - Mốc thời gian tính từ 0 giờ đến 24 giờ - Trước 14 giờ tiền giữ trẻ mỗi giờ là 8 đôla - Sau 14 giờ tiền giữ trẻ mỗi giờ là 6 đôla Gợi ý: Phải xét thời điểm gửi trẻ và thời điểm nhận trẻ nằm trước hay sau 14 giờ Trường hợp gửi trước 14 giờ nhưng nhận trẻ sau 14 thì phải tính theo 2 giá khác nhau 1 Xác định bài toán: Input:
Output:
2 Tổ chức dữ liệu: Hằng:
Biến:
3 Thuật toán:
Trang 18