Câu 1: Xác định bài toán là gì?
A. Chỉ rõ các điều kiện cho trớc và kết quả cần thu đợc. B. Chỉ rõ các điều kiện cho trớc và phơng pháp giải. C. Chỉ rõ phơng pháp giải và kết quả cần thu đợc. D. Chỉ rõ các bớc để giải bài toán.
Câu 2: Giải thuật đổi giá trị hai biến x và y cho nhau, ta có thể thực hiện nh sau: A. x ← z; x ← y; y ← x B. z←x; z ←y; y←x
C. z ← x; x ← y; y ← z; D. z←x; x ←y; z←x
Câu 3: Phần thân chơng trình của Pascal đợc bắt đầu và kết thúc bởi cặp từ khoá: A. Begin và end B. Begin: và end
C. Begin và end; D. Begin và end. Câu 4: Kiểu dữ liệu thờng dùng của Turbo Pascal là: A. Xâu ký tự B. Số nguyên
C. Số thực D. Cả A, B và C đều đúng. Câu 5: Kết quả của phép chia 7 mod 5 thuộc kiểu gì? A. Kiểu số nguyên B. Kiểu số thực C. Kiểu xâu ký tự D. Kiểu thập phân.
Câu 6: Nội dung các văn bản muốn ghi ra màn hình bằng lệnh Write phải đợc đặt trong cặp dấu ngoặc:
A. ( và ) B. “ và “ C. ‘ và ‘ D. { và } Câu 7: Để tăng biến nhớ X lên 1 đơn vị, ta thực hiện lệnh: A. X => X + 1; B. X := X+1
C. X => X+ 1 D. X := X + 1; Câu 8: Tính giá trị cuối cùng của c, biết rằng: a := 3; b := 5;
a := a+ b; c:= a+b;
Câu 9: Câu lệnh Write và Writeln, Read và Readln khác nhau ở điểm nào? A. Writeln và Readln sau khi thực hiện, con trỏ tự động xuống dòng kế tiếp; B. Write và Read sau khi thực hiện, con trỏ tự động xuống dòng kế tiếp; C. Write là viết ra viết ra còn Writeln là ghi vào?
D. Read là đọc vào còn Readln là ghi ra.
Câu 10: Cấu trúc rẽ nhánh dạng đủ có dạng nh sau:
A. If <câu lệnh 1> Then <điều kiện> Else <Câu lệnh 2>; B. If <điều kiện> Then <câu lệnh 1> Else <Câu lệnh 2> C. If <điều kiện> Then <câu lệnh 1> Else <Câu lệnh 2>; D. If <điều kiện> Then <câu lệnh 1>; Else <Câu lệnh 2>;
II/ Tự luận:
11/ Cấu trúc chơng trình gồm mấy phần? Gồm những phần nào? Phần nào là quan trọng nhất và không thể thiếu đợc?
12/ Chơng trình dịch đóng vai trò gì?
13/ a) Viết chơng trình nhập vào hai số nguyên bất kỳ, báo ra màn hình số nào lớn hơn. Nếu bằng thì thông báo là bằng nhau. (Danh cho lớp B,C,D)
b) Viết chơng trình. Nhập vào ba số thực bất kỳ, báo ra màn hình giá trị lớn nhất trong ba số đó. (Dành cho lớp A).
Đáp án và biểu điểm: I/ Trắc nghiệm Câu 1 2 3 4 5 6 7 8 9 10 Đáp án A C D D A C D D A C Tiết 37: Câu lệnh lặp Ngày soạn: 8/01/2009 I/ Mục tiêu:
* Kiến thức: - Biết hu cầu cầ có cấu trúc lặp trong ngôn ngữ lập trình.
- Biết ngôn ngữ lập trình dùng cấu trúc lặp để chỉ dẫn máy tính thực hiện lặp đi lặp lại công việc nào đó một số lần.
- Hiểu hoạt động của câu lệnh lặp với số lần biết trớc For do trong Pascal.… - Viết đúng đợc lệnh for do trong một số tình huống đơn giản.…
- Biết lệnh ghép trong Pascal.
* Kỹ năng: - Viết đúng câu lệnh lặp For do.…
- Biết sử dụng đúng và có hiệu quả câu lệnh lặp.
II/ Ph ơng pháp: Thuyết trình, vấn đáp, thảo luận…
III/ Chuẩn bị: Tranh ảnh, lu đồ, bảng phụ,…
IV/ Hoạt động dạy học:
1/ Kiểm tra bài cũ:
Hãy cho biết câu lệnh điều kiện dạng thiếu và câu lệnh điều kiện dạng đủ? (GV gọi HS lên bảng trình bày, gọi HS khác nhận xét)
2/ Bài mới:
Hoạt động của GV Hoạt động của HS
Hoạt động 1: Tìm hiểu các công việc phải đợc thực hiện nhiều lần
?Hãy nêu 1 số ví dụ trong đời sống thực tiễn có tính chất lặp đi lặp lại?
* Khi viết chơng trình máy tính cũng vậy. Để chỉ dẫn cho máy tính thực hiện đúng công việc, trong nhiều trờng hợp ta cũng cần phải viết lặp lại nhiều câu lệnh thực hiện một phép tính nhất định.
Hoạt động 2: Tìm hiểu câu lệnh lặp một –
lệnh thay cho nhiều lệnh.
Ví dụ1: Vẽ ba hình vuông có cạnh 1 đơn vị
(H33). Mỗi hình vuông là ảnh dịch chuyển của hình bên trái nó một khoảng cách 2 đơn vị. ?Việc vẽ 3 hình vuông đợc thực hiện bằng thuật toán nh thế nào?
?Hãy nêu thuật toán vẽ hình vuông?
Ví dụ 2: Tính tổng của 100 số tự nhiên đầu tiên. S= 1+2+3+…+100
Hoạt động chính khi giải bài toán trên là thực hiện phép cộng
* Cách mô tả các hoạt động lặp trong thuật toán nh trong các ví vụ trên đợc gọi là các cấu trúc lặp. ? Cấu trúc lặp dùng để làm gì?
* Mọi ngôn ngữ lập trình đều có các câu lệnh lặp thể hiện cấu trúc lặp.
Hoạt động 3:Tìm hiểu ví dụ về câu lệnh lặp
Ngôn ngữ Pascal thể hiện cấu trúc lặp với số lần
1. Các công việc phải đợc thực hiện nhiều lần. hiện nhiều lần.
VD: Tiếng gà trống gáy,
tiếngchuông đồng hồ báo thức em dậy mỗi sáng, các ngày trong tuần buổi sáng em đến trờng và buổi chiều trở về nhà,…
Ví dụ: Viết chơng trình Pascal để in lời chào của các bạn trong lớp em.
Nh vậy viết một chơng trình Pascal cho phép việc lặp đi lặp lại việc nhập tên và hiển thị ra màn hình lời chào.
2. Câu lệnh lặp một lệnh thay –
cho nhiều lệnh.
*Việc vẽ 3 hình vuông đợc thực hiện bằng thuật toán nh sau: B1: Vẽ hình vuông
B2: Nếu số hình vuông đã vẽ đợc bé hơn 3, di chuyển bút vẽ về bên phải 2 đơn vị và trở lại bớc 1; ngợc lại kết thúc thuật toán.
* Thuật toán vẽ 1 hình vuông B1: k← 0 (k là số doạn thẳng đã vẽ đợc) Bớc 2: k ← k+1 Bớc 3: Nếu k<4 thì trở lại bớc 2; ngợc lại kết thúc. * Cấu trúc lặp đợc sử dụng để chỉ thị cho máy tính thực hiện lặp lại một hoạt động nào đó cho đến khi một điều kiện nào đó đợc thoã mãn.
lặp biết trớc bằng câu lệnh
For <biến đếm>:= <giá trị đầu> to <giá trị cuối> do <câu lệnh>;
Trong đó: For, to, do là các từ khoá;
biến đếm có kiểu nguyên; Giá trị đầu giá trị cuối là các giá trị nguyên.
Câu lệnh lặp sẽ thực hiện câu lệnh nhiều lần, mỗi lần, mỗi lần là một vòng lặp. Số vòng lặp là biết trớc và bằng: giá trị cuối – giá trị đầu +1.
Khi thực hiện, ban đầu biến đếm sẽ nhận giá trị là giá trị đầu, sau mỗi vòng lặp, sau mỗi vònglặp biến đếm đợc tự động tăng thêm một đơn vị cho đến khi bằng giá trị cuối.
Ví dụ 3: Viết chơng trình in ra màn hình thứ tự
lần lặp.
Ví dụ 4: Viết chơng trình ghi nhận các vị trí của
một quả trứng rơi từ trên cao xuống, ta có thể lặp lại lệnh trên nhiều lần
Lu ý: Trong ví du 4 các câu lệnh đơn giản Writeln (‘o’) và delay (100) đợc đặt trong hai từ khoá begin và end để tạo thành câu lệnh ghép trong Pascal. 3. Ví dụ về câu lệnh lặp Lắng nghe và ghi chép. Program Lap; var i: interger; begin For i:=1 to 10 do
Writeln (‘ Day la lan lap thu’,i); Readln;
end.
var i: integer; begin
For i: 1 to 20 do
Begin writeln (‘o’); Delay(100) end; Readln; end.
V/ Củng cố bài: Đọ ghi nhớ, làm bài tập 1, 3 SGK
Bài tập về nhà : 1, 4,5 SGK.
Tiết 38: Câu lệnh lặp (tiếp)
Ngày soạn: 10/01/2009
I/ Mục tiêu:
* Kiến thức:
- Hiểu hoạt động của câu lệnh lặp với số lần biết trớc For do trong Pascal.… - Viết đúng đợc lệnh for do trong một số tình huống đơn giản.…
- Biết vận dụng câu lệnh lặp vào viết một số chơng trình. * Kỹ năng: - Viết đúng câu lệnh lặp For do.…
- Biết sử dụng đúng và có hiệu quả câu lệnh lặp.
II/ Ph ơng pháp: Thuyết trình, vấn đáp, thảo luận…
III/ Chuẩn bị: Tranh ảnh, lu đồ, bảng phụ,…
IV/ Hoạt động dạy học:
1/ Kiểm tra bài cũ:
?Em hãy cho biết câu lệnh lặp thờng dùng trong ngôn ngữ lập trình Pascal có dạng nh thế nào?
(For <biến đếm>:= <giá trị đầu> to <giá trị cuối> do <câu lệnh>;)
Trong đó for, to, do là từ khoá, biến đếm có kiểu nguyên; giá trị đầu và giá trị cuối là các giá trị nguyên.
2/ Bài mới:
Hoạt động của GV Hoạt động của HS
Hoạt động 1: Tính tổng và tích bằng câu lệnh
lặp
Ví dụ 5 (SGK): Viết chơng trình tính tổng của N
số tự nhiên đầu tiên đợc nhập vào từ bàn phím. GV gợi ý: Sử dụng thuật toán ở ví dụ 3 bài 5
* Do tổng là một số rất lớn nên ta sử dụng một kiểu dữ liệu mới của Pascal là Longint (lu số nguyên trong phạm vi 2-31 đến 231 -1).
GV yêu cầu HS viết vào giấy nháp và lên bảng trình bày.
GV gọi HS nhận xét.
Ví dụ 6:Viết chơng trình tính N! (N! = 1.2.3 n)…
Với N là số tự nhiên đợc nhập vào từ bàn phím. Gv gợi ý: Chơng trình sử dụng một câu lệnh lặp For do.…
GV chia nhóm HS, các nhóm thảo luận và lên bảng trình bày.
Program Tinh_tong;
var n,i: integer; S: Longint; Begin
Write (‘ Nhap so n=’); Readln(n);
S:=0;
For i:= 1 to 100 do S:= S+i; Writeln(‘Tong cua ‘, N,’ so tu nhien dau tien S = ‘, S);
Readln; End. Program Tinh_giai_thua; Var n, i : Integer; P: longint; Begin
Write (‘Nhap n=’); Readln (n); P:=1;
For i:= 1 to n do P:=P*i; Writeln (N,’ ! = ‘, P); Readln; End.
Hoạt động 2: Chữa một số bài tập SGK
Bài 2: Hãy cho biết tác dụng của câu lệnh lặp với
số lần biết trớc?
GV cho HS thảo luận và rút ra kết luận
Bài 4: Sau khi thực hiện đoạn chơng trình sau, giá
trị của biến J bằng bao nhiêu? J: = 0;
For i:= 0 to 5 do J: = J+2;
? Lệnh lặp trên thực hiện bao nhiêu vòng lặp? Mỗi vòng lặp J tăng thêm bao nhiêu đơn vị?
Bài 2: Câu lệnh lặp với số lần biết trớc có tác dụng làm đơn giản và giảm nhẹ công sức của ngời viết chơng trình.
Bài 4:
Lệnh lặp trên thực hiện 6 vòng lặp, mỗi lần J tăng thêm 2 đơn vị. Vậy khi kết thúc vòng lặp J có giá trị 12.
Bai 5: SGK
Các câu lệnh Pascal sau có hợp lệ hay không, vì sao?
Gv chia HS ra 5 nhóm mỗi nhóm làm một câu cử đại diện trả lời câu hỏi.
Bài 6: Hãy mô tả thuật toán tính tổng.
A= 3 . 1 1 + 4 . 2 1 + ... ( 1 2) 5 . 3 1 + + n n
Thuật toán đợc mô tả nh sau: Bớc 1: Gán A ←0, i ← 1 Bớc 2: A ← ( 2) 1 + i i Bớc 3: i←i+1
Bớc 4: Nếu i ≤ n, quay lại bớc 2.
Bớc 5: Ghi kết quả A và kết thúc thuật toán.
Bài 5:
a) Không hợp lệ, giá trị đầu phải nhỏ hơn giá trị cuối.
b) Không hợp lệ, giá tị đầu và giá trị cuối phải là số nguyên
c) Không hợp lệ, thiếu dấu : khi gán giá trị đầu.
d) Hợp lệ, tuy nhiên nếu ta muốn lặp lại câu lệnh Writeln (‘A’) mời làn thì không hợp lệ do thừa dấu chấm phẩy thứ nhất.
e) Không hợp lệ vì biến x đợc khai báo kiểu số thực.
Lắng nghe và ghi chép
V/ Củng cố bài: GV yêu cầu đọc lại phần ghi nhớ SGK
Hớng dẫn về nhà: Làm trớc các bài ở bài thức hành 5 để tiết sau thực hành.
Tiết 39: Bài thực hành 5
Sử dụng lệnh lặp for do…
Ngày soạn: 157/01/2009