Trong lập trình thường có 2 loại mảng :
- Mảng một chiều .
- Mảng hai chiều .
1. Kiểu mảng một chiều
- Mảng một chiều là một dãy hữu hạn các phần tử có cùng kiểu, mảng được đặt tên và mỗi phần tử mang một chỉ số. Để mô tả mảng một chiều ta cần xác định kiểu của các phần tử và cách đánh chỉ số các phần tử .
Với mảng một chiều ta quan tâm đến :
- Tên mảng một chiều .
- Số lượng phần tử trong mảng .
- Kiểu dữ liệu của phần tử .
- Cách khai báo biến mảng một chiều .
- Cách truy cập vào từng phần tử của mảng .
Xét ví dụ : Nhập vào nhiệt độ trung bình mỗi ngày trong tuần . Tính và đưa ra màn hình nhiệt độ trung bình của cả tuần và đếm số ngày có nhiệt độ lớn hơn nhiệt độ trung bình này .
96 trang |
Chia sẻ: binhan19 | Lượt xem: 810 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Giáo án Tin học 11 học kì 1, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
của biểu thức (ABS(25-50) mod 4) ) là:
a. 1 b. -1 c. -4 d. 4
Câu 22: Trong Pascal để lưu một chương trình:
a. Nhấn phím F3 b. Nhấn phím F2
c. Nhấn tổ hợp phím Ctrl + S d. Nhấn phím F5
Câu 23: Trong những biểu diễn dưới đây, biểu diễn nào là tên chuẩn trong Pascal?
a. Uses. b. Begin. c. Longint d. Var.
Câu 24: Trong ngôn ngữ lập trình Pascal, các khẳng định sau, khẳng định nào sai?
a. Phần thân chương trình có thể có hoặc không.
b. Phần tên chương trình không nhất thiết phải có.
c. Phần thân chương trình nhất thiết phải có.
d. Phần khai báo có thể có hoặc không.
Câu 25: Trong ngôn ngữ lập trình Pascal, với câu lệnh như sau (a là một biến kiểu số thực):
a:=20;
Writeln('KQ la: ',a:5:2);
sẽ ghi ra màn hình?
a. KQ la: a:5:2 b. KQ la: a
c. KQ la: 20.00 d. Ket qua la 20.00
Câu 26: Trong Turbo Pascal, tên nào sau đây là sai?
a. _Baitap. b. Tin hoc. c. Ho_Ten. d. X1.
C©u 27: Tªn dµnh riªng lµ:
a. Mét sè tªn gäi th«ng dông
b. Mét sè tªn ®îc NNLT quy ®Þnh dïng víi ý nghÜa x¸c ®Þnh, ngêi lËp tr×nh kh«ng ®îc sö dông víi ý nghÜa kh¸c vµ gäi lµ tõ kho¸ ch¬ng tr×nh.
c. Mét sè tªn ®îc NNLT quy ®Þnh dïng víi ý nghÜa x¸c ®Þnh, ngêi lËp tr×nh ®îc sö dông víi ý nghÜa kh¸c.
d. Mét sè tªn ®îc NNLT quy ®Þnh dïng víi ý nghÜa x¸c ®Þnh, ngêi lËp tr×nh kh«ng ®îc sö dông víi ý nghÜa kh¸c vµ ®îc goi lµ tªn chuÈn.
C©u 28: BiÓu diÔn nµo díi ®©y kh«ng ph¶i lµ lÖnh g¸n trong pascal
a. a:=10; b. a+b:= 100; c. cd := 50; d. a:=a*2
C©u 29: Phát biểu nào dưới đây là sai?
a. Chương trình viết bằng ngôn ngữ lập trình bậc cao phải được chuyển đổi thành chương trình trên ngôn ngữ máy mới có thể thực hiện được;
b. Trong biên dịch không có chương trình đích để lưu trữ và sử dụng lại về sau.
c. Chương trình có chức năng chuyển đổi chương trình được viết bằng ngôn ngữ lập trình bậc cao thành chương trình thực hiện được trên máy tính được gọi là chương trình dịch.
d. Chương trình dịch có hai loại: thông dịch và biên dịch.
C©u 30: BiÓu thøc nµo sau ®©y cã gi¸ trÞ lµ True
a. (20>10) and (15 mod 3 < 0);
b. ((5>8) and not(a+24 div 2);
c. ((35)) and (2<6 div 2)
d. 4+2*3*(3+5)<18 div 4*4;
C©u 31: KÕt qu¶ cña ®o¹n ch¬ng tr×nh sau lµ g×?
Var a: Real;
Begin
A:=12;
Writeln(“KQ la”, a);
End.
KÕt qu¶ khi ch¹y ch¬ng tr×nh lµ:
a. KQ la: 1.2E+ 01; b. KQ la: a;
c. KQ la 12; d. Chương trình báo lỗi ;
C©u 32:Trong c¸c ph¸t biÓu sau ph¸t biÓu nµo sai
a. Trong phÇn khai b¸o nhÊt thiÕt ph¶i khai b¸o biÕn vµ h»ng
b. Dßng khai b¸o tªn ch¬ng tr×nh còng lµ 1 dßng lÖnh
c. §Ó sö dông c¸c ch¬ng tr×nh lËp s½n trong c¸c th viÖn do NNLT cung cÊp ph¶i khai b¸o c¸c th viÖn trong phÇn khai b¸o.
d. Khi soạn thảo chương trình thì sau các từ khóa phải sử dụng dấu cách.
C©u 33: Kết quả của biểu thức (20 div 3)/(20 mod 4) là:
a. 6 b. 0 c. 4 d. không xác định
C©u 34: Trong các khai báo sau, khai báo nào hợp lệ:
a. Var hs: integer; b. Var 4hs: integer;
c. const R : real ; d. Var R = 30;
Câu 35: Để nhập các giá trị của biến X từ bàn phím ta dùng lệnh?
a. Readln(‘X’); b. Write(X); c. Read(X); d. Writeln(X);
C©u 36: Giá trị hằng không đúng qui định của NNLT là giá trị nào sau đây ?
a. 15.5 b. ‘TRUE’
c. ‘TIN HOC’ d. FALSE
C©u 37: Trong Pascal, phát biểu nào sau đâu là đúng
a. Sau mỗi câu lệnh đều có chấm phẩy
b. Để dùng câu lệnh Clrscr; ta phải khai báo thư viện Crt;
c. Các lệnh phải phân biệt chữ hoa và chữ thường
d. Câu lệnh trước END bắt buộc phải có chấm phẩy
C©u 38: KÕt qu¶ cña ®o¹n ch¬ng tr×nh sau lµ g×?
Var i:byte;
Begin
Writeln(‘Ket qua la:’);
I:=123;
Write (I:5);
Write(-456);
End.
a. Ket qua la: b. Ket qua la: 123__ -456 c. 123__ 456 d. 123__
123__ -456 -456
C©u 39: NNLT lµ ng«n ng÷:
a. So¹n th¶o v¨n b¶n trong ®ã cã ch¬ng tr×nh
b. Ng«n ng÷ Pascal hoÆc C, C++, Java
c. DiÔn ®¹t thËt to¸n ®Ó giao cho m¸y tÝnh thùc hiÖn c«ng viÖc
d. Sö dông cÊu tróc d÷ liÖu vµ c¸c c©u lÖnh cña NNLT cô thÓ ®Ó gi¶i bµi to¸n trªn m¸y tÝnh
C©u 40: Ph¸t biÓu nµo díi ®©y Sai:
a. Ch¬ng tr×nh lµ 1 m« t¶ thuËt to¸n b»ng 1 NNLT
b. Mçi NNLT ®Òu cã B¶ng ch÷ c¸i, có ph¸p vµ ng÷ nghÜa nªn khai b¸o biÕn, h»ng, hµm, m¶ng ®îc ¸p dông nh nhau cho mäi NNLT
c. Ch¬ng tr×nh dÞch gióp t×m ra lçi vÒ mÆt có ph¸p cña ch¬ng tr×nh
d. Kh«ng thÓ viÕt ®îc ch¬ng tr×nh ®Ó gi¶i bµi to¸n nÕu nh kh«ng biÕt thuËt to¸n ®Ó gi¶i bµi to¸n ®ã
2. Hoạt động 2: Hs làm bài
3. Hoạt động 3: Gv thu bài
4. Dặn dò: xem trước bài cấu trúc rẽ nhánh
Chương 3: CẤU TRÚC RẼ NHÁNH VÀ LẶP
Tuần 08
Tiết 15-16
Ngày soạn:
Ngày giảng ://.
Bài 9: CẤU TRÚC RẼ NHÁNH
I. MỤC ĐÍCH, YÊU CẦU
1. Kiến thức:
- Hiểu nhu cầu của cáu trúc rẽ nhánh trong biểu diễn thuật toán.
- Học sinh nắm vững ý nghĩa và cú pháp của câu lệnh rẽ nhánh dạng khuyết và dạng đủ, hiểu được cách sử dụng câu lệnh ghép.
2. Kĩ năng:
- Sử dụng cấu trúc rẽ nhánh trong mô tả thuật toán của một số bài toán đơn giản.
- Viết được các lệnh rẽ nhánh khuyết, rẽ nhánh đầy đủ và áp dụng được để thể hiện thuật toán của một số bài toán đơn giản
3. Về tư duy và thái độ:
- Hình thành cho học sinh bước đầu về tư duy về lập trình có cấu trúc.
- Tự giác, tích cực và chủ động hoàn thành.
II. CHUẨN BỊ
1. Giáo viên:
+ Soạn giáo án.
+ Chuẩn bị bảng phụ sau:
Câu lệnh
IF
Điều kiện
Đ
S
Câu lệnh 1
IF
Điều kiện
Đ
S
Câu lệnh 2
2. Học sinh: học bài cũ, đọc và chuẩn bị bài mới.
III. PHƯƠNG PHÁP
- Thuyết trình, gợi mở, vấn đáp
- Diễn giải, đàm thoại, giải quyết tình huống có vấn đề.
- Làm việc theo nhóm.
IV. NỘI DUNG BÀI GIẢNG
1. Ổn định lớp:
Chào thầy cô.
Cán bộ lớp báo cáo sỉ số
Chỉnh đốn trang phục
2. Kiểm tra bài cũ:
Bài toán: cho 2 số nguyên a, b; tìm Max(a,b).
Yêu cầu: viết phần tên, phần khai báo, và câu lệnh nhập a, b.
Nêu thuật toán tìm Max(a,b).
3. Bài mới
TG
Hoạt động của GV & HS
Nội dung
Kiểm tra r>=0
Thông báo vô nghiệm
Tính và đưa ra nghiệm
Kết thúc
GV : Đưa ra ví dụ rồi cùng học sinh thảo luận phương pháp giải quyết bài toán.
Đưa ra khái niệm rẽ nhánh trong lập trình.
1. Khái niệm rẽ nhánh
Ví dụ : Để viết chương trình giải phương trình bậc 2, ta phải:
Tính r = b2 – 4ac;
Sau đó tùy thuộc vào giá trị của r mà ta có tính nghiệm hay không.
Trong thực tế :
Nếu r <0 thì phương trình vô nghiệm
Nếu r >=0 thì phương trình có nghiệm
Như vậy tùy thuộc vào giá trị của r mà ta đưa ra vô nghiệm hay có nghiệm.
Hoặc có thể nói : Nếu r < 0 thì phương trình vô nghiệm, ngược lại thì phương trình có nghiệm.
=>Như vậy ta thấy một số mệnh đề có dạng
Nếu ..thì..
Nếu ..thì.. ngược lại thì
Cấu trúc này được gọi là cấu trúc rẽ nhánh
Gv. Mỗi NNLT có cách thể hiện rẽ nhánh khác nhau .
GV : Đưa ra cấu trúc lệnh rẽ nhánh trong Pascal. Nhắc nhở học sinh đây là cấu trúc quan trọng, nó sẽ được sử dụng rất nhiều trong các chương trình sau này.
GV : Lưu ý các em sau Then và sau Else chỉ có một lệnh chương trình.
GV : Với hai dạng này, dạng nào dùng thuận tiện hơn ?
HS : Tìm câu trả lời, giáo viên gợi ý để học sinh đưa ra được tùy trường hợp cụ thể mà dùng dạng thiếu hay dạng đủ.
Đưa ra các ví dụ có sử dụng lệnh rẽ nhánh, nếu không có lệnh rẽ nhánh thì không thể thực hiện được.
GV : ở VD3: Cách nào nhanh hơn, tiện hơn?
=> Cách 2 tiện hơn
GV : Phân tích sự tiện lợi trong cách 2 và số lệnh mà máy phải thực hiện.
Cấu trúc rẽ nhánh là một điều khiển chọn thực hiện hay không thực hiện công việc phù hợp một điều kiện đang xảy ra
2. Câu lệnh If – Then
Pascal dùng câu lệnh If – then để mô tả việc rẽ nhánh tương ứng với hai loại mệnh đề rẽ nhánh như nhau
- Dạng thiếu :
If Then ;
- Dạng đầy đủ :
If Then
Else ;
Trong đó:
- Điều kiện : Là biểu thức quan hệ Logic.
- Câu lệnh, câu lệnh 1, câu lệnh 2 là 1 câu lệnh của Pascal
Ý nghĩa của các câu lệnh :
- Dạng thiếu : Nếu điều kiện đúng thì câu lệnh được thực hiện, nếu điều kiện sai thì không thực hiện gì
- Dạng đủ : Nếu điều kiện đúng thì thực hiện câu lệnh 1, nếu điều kiện sai thì thực hiện câu lệnh 2.
VD 1 : If (X Mod 2 = 0) Then
WRITE(x,’La so chan’);
VD 2: If DELTA <0 Then
WRITE(‘PT Vo Nghiem’)
Else WRITE(‘PT co nghiem’);
VD 3: Tìm giá trị lớn nhất (max) của 2 số a và b
Cách 1 :
Max :=a; If b >a Then max :=b;
Cách 2 :
If a >b Then max :=a Else max :=b;
GV : Trong câu lệnh If – Then muốn thực hiện nhiều lệnh sau Then hay nhiều lệnh sau Else làm thế nào ?
HS : Phát biểu ý kiến của mình.
GV : Khi đó ta cần gộp nhiều lệnh đó lại và coi đó là một câu lệnh trong chương trình. Các ngôn ngữ lập trình thường có cấu trúc để giúp ta thực hệin điều này.
GV : Giới thiệu lệnh ghép của một vài ngôn ngữ lập trình khác
C==: {}
VB: If – Then – Endif
GV : Chỉ rõ đâu là lệnh ghép trong chuỗi lệnh này.
GV nên soạn sẵn hai chương trình này và cho các em quan sát cách viết chương trình để các em hình thành dần cách viết một chương trình .
Chạy thử chương trình và chỉ rõ các lệnh trong chương trình dùng để làm gì .
3. Câu lệnh ghép
- Trong ngôn ngữ Pascal, Câu lệnh ghép có dạng:
Begin
End ;
Chú ý :
- Sau End phải là dấu; và trước Else không chứa dấu ;
- Từ nay nói đến câu lệnh thì đó có thể là câu lệnh đơn hoặc là câu lệnh ghép.
Ví dụ : Đoạn chương trình sau trong ngôn ngữ Pascal có sử dụng chương trình ghép.
IF DELTA <0 THEN
WRITELN(‘Phuong trinh vo nghiem’)
ELSE
BEGIN
X1 :=(-B-SQRT(DELTA))/(2*A);
X2 := - B/A – X1;
WRITELN(‘X1=’,X1:6:3,’X2=’,X2:6:3);
END;
Nếu có nhiều thời gian, GV có thể gõ từng lệnh chương trình, gõ đến đâu giải thích cho học sinh đến đó.
Nếu còn thời gian, gọi học sinh lên bảng viết câu lệnh If – Then cho một số bài toán đơn giản .
Có thể viết chương trình mẫu cho học sinh xong, yêu cầu các em gõ lại chương trình vừa được theo dõi mà không cần nhìn vào bài mẫu .
4. Một số ví dụ
Quan sát các chương trình sau trong ngôn ngữ lập trình Pascal .
Ví dụ 1 :
Tìm nghiệm thực của phương trình bậc hai
AX2 + BX + C= 0
Ví dụ 2 :
Tìm số ngày của một năm: 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 .
4. Cũng cố
- Nhắc lại một số khái niệm mới .
- Nhắc lại cấu trúc câu lệnh IF – THEN, IF – THEN – ELSE thông qua các ví dụ .
- Cho bài tập về nhà .
5. Dặn dò: học bài và chuẩn bị bài 10. Câu lệnh lặp
Tuần 09
Tiết 17-18
Ngày soạn:
Ngày giảng ://.
Bài 10: CẤU TRÚC LẶP
I. MỤC ĐÍCH, YÊU CẦU
1. Kiến thức:
- Hiểu nhu cầu của cấu trúc lặp trong biểu diễn thuật toán.
- Biết được cấu trúc chung của lệnh lặp FOR trong ngôn ngữ lập trình.
- Hiểu được cấu trúc lặp với số lần biết trước và câu lệnh FOR - DO
2. Kỹ năng: Bước đầu sử dụng được lệnh lặp FOR để lập trình giải quyết được một số bài toán đơn giản
3. Về tư duy và thái độ:
- Hình thành cho học sinh bước đầu về tư duy về lập trình có cấu trúc.
- Tự giác, tích cực và chủ động hoàn thành.
II. CHUẨN BỊ
1. Giáo viên: SGK, Giáo án
2. Học sinh: HS: SGK, vỏ
III. PHƯƠNG PHÁP
- Gợi mở, vấn đáp.
- Làm việc theo nhóm
IV. NỘI DUNG BÀI GIẢNG
1. Ổn định lớp:
- Chào thầy cô.
- Cán bộ lớp báo cáo sỉ số
- Chỉnh đốn trang phục
2. Kiểm tra bài cũ:
Cho biết kết quả của doạn chương trình sau
Program VD;
Begin
Writeln (‘PASCAL’);
Writeln (‘PASCAL’);
Writeln (‘PASCAL’);
Writeln (‘PASCAL’);
Writeln (‘PASCAL’);
Readln;
End.
3. Bài mới
TG
Hoạt động của GV & HS
Nội dung
Gv: Nếu giải bài toán trên với việc in khoảng 10 dòng có từ PASCAL?
Hs: Chương trình dài dòng
Gv: Có nhận xét gì về các dòng lệnh trong chương trình trên?
Hs: Lặp lại nhiều lần với câu lệnh: Writeln
Gv: Đối với những thuật toán có những thao tác phải thực hiện lặp đi lặp lại một số lần thì máy tính có thể thực hiện hiệu quả hơn các thao tác lặp đó bằng các cấu trúc lặp.
GV : Đưa ra bài toán, yêu cầu học sinh tìm cách để lập trình giải các bài toán này .
HS : Đưa ra cách giải của mình, học sinh có thể đưa ra những cách giải khác nhau .
GV : Đưa ra cách giải cho bài toán .
Giải theo các lệnh tuần tự
S1:=0;
If (1/a>0.0001) then S1:=S1+ 1/a;
If (1/(a+1)>0.0001) then S1:=S1+ 1 /(a+1);
If (1/(a+2)>0.0001) then S1:=S1+ 1 /(a+2);
If (1/(a+3)>0.0001) then S1:=S1+ 1 /(a+3);
HS : Nhận xét với việc giải bài toán theo cách đó ?
Với N = 100 thì lặp 100 lần như thế nhưng theo việc kiểm tra điều kiện thì không biết phải làm theo cách nào? Theo cả hai trường hợp thì đều quá dài.
Để học sinh hiểu được khái niệm lặp, giáo viên đưa ra một số ví dụ trong thực tế được tính toán lặp đi lặp lại nhiều lần.
VD1 : Bài toán gửi tiền vào ngân hàng. Hằng tháng phải tính lãi và cộng thêm vào gốc đang gửi hay nói cách khác gốc của tháng sau = gốc + lãi tháng trước.
VD 2: Tính tổng của một đoạn số nguyên mà không được dùng công thức.
1. Khái niệm lặp
- Xét 2 bài toán như sau với a > 2 là số nguyên cho trước :
Bài toán 1 : Tính tổng
S1=
Bài toán 2 : Tính Tổng
S2=
Với điều kiện
Cách giải :
Bắt đầu S được gán giá trị 1/a.
Tiếp theo mỗi lần cộng thêm vào S là 1/(a+N) với N = 1, 2, 3,
Với bài toán 1, việc cộng thêm dừng khi 1/(a+N) số lần lặp chưa biết.
Với bài toán 2, việc cộng thêm dừng khi N = 100, => số lần lặp đã biết trước.
Trong lập trình, có những thao tác phải lặp lại nhiều lần, khi đó ta gọi là cấu trúc lặp.
Lặp thường có 2 loại :
Lặp với số lần biết trước .
Lặp với số lần không biết trước .
NNLT nào cũng cung cấp một số câu lệnh để mô tả các cấu trúc lặp như trên.
Sau đây chúng ta sẽ tìm hiểu các câu lệnh trong ngôn ngữ Pascal.
GV : Đưa ra ví dụ:
So sánh hai thuật toán sau:
Thuật toán
Tong_1a
B1: S:=1/a; N:=0;
B2: N:=N+1;
B3: Nếu N >100 thì chuyển sang bước 5;
B4: S:= S + 1/(a+ N) rồi quay lại B2;
B5: Đưa ra S rồi kết thúc.
Thuật toán
Tong_1b
B1:S:=1/a;N:=101;
B2: N := N -1;
B3: Nếu N < 1 thì chuyển sang bước 5;
B4: S:= S+ 1/(a+N) rồi quay lại B2;
B5: Đưa ra S rồi kết thúc.
GV : Gọi một số học sinh nhận xét về 2 thuật toán trên về một số vấn đề :
Thuật toán có lặp không?
Lặp bao nhiêu lần?
Hai thuật toán giống và khác nhau như thế nào?
Cái gì thay đổi trong thuật toán này?
Sau khi so sánh hai thuật toán trên, giáo viên đưa ra hai cách lặp trong ngôn ngữ Pascal, giải thích ý nghĩa của các thành phần trong câu lệnh .
2. Lặp có số lần biết trước và câu lệnh for – do
Trong Pascal, có 2 lọai câu lệnh lặp có số lần biết trước :
- Lặp dạng tiến:
For := to do ;
- Lặp dạng lùi
For := downto do ;
Trong đó:
Biến đếm thường là biến kiểu số 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. Giá trị đầu phải nhỏ hơn hay bằng giá trị cuối.
Ở dạng lặp tiến: Biến đếm tự tăng dần từ giá trị đầu đến giá trị cuối.
Ở dạng lặp lùi: Biến đếm tự giảm dần từ giá trị cuối đến giá trị đầu.
Tương ứng với mỗi giá trị của biến đếm, câu lệnh sau do thực hiện 1 lần.
Gv. Nêu thuật toán của bài toán tong_1a
Gv. Viết chương trình pascal tính tong_1a. và giải thích thành phần các câu lệnh.
Hs. Học sinh chú ý nghe giảng.
GV : Lấy ví dụ minh họa trong Pascal để các em thấy được sự thay đổi giá trị của biến đếm trong một chương trình thực sự của Pascal .
Vd: a=2;
Ví dụ
Ví dụ 1 : Chương trình cài đặt thuật toán tong_1a
tong_1a:
program tong_1a;
var a,N:integer;
S:real;
Begin
Write(‘nhap gia tri cua a=’);readln(a);
S:=1/a;
For N:=1 to 100 do S:=S+1/(a+N)
Write(S:8:4);
readln
End.
Gv. Nêu thuật toán của bài toán tong_1b
nhóm viết chương trình với thuật toán tính tong_1b.
Hs. Học sinh thảo luận nhóm
Báo cáo kết quả
tong_1b:
program tong_1a;
var a,N:integer;
S:real;
Begin
Write(‘nhap gia tri cua a=’);readln(a);
S:=1/a;
For N:=100 downto 100 do S:=S+1/(a+N)
Write(S:8:4);
readln
End.
Gv. Định hướng phương pháp và yêu cầu học sinh lên bảng làm bài
Hs. Suy nghĩ trả lời
Gv. Với 2 ví dụ này, giáo viên nên chạy nháp chương trình trên bảng để hs thấy rõ quá trình lặp của câu lệnh.
Ví dụ 2 : Tính tổng các số nguyên chia hết cho 3 hoặc 5 trong phạm vi từ M đến N (M<N).
Var M,N,i:Integer;
Begin
Write(‘nhap so M nho hon so N’);
Write(‘M, N =’); Readln(M,N);
T:=0;
For i:=M to N do
If (i mod 3 =0) or (i mod 5=0) then
T:=T+I;
Write(‘Ket qua’,T);
Readln
End.
4. Cũng cố
- Nắm lại các cấu trúc lặp.
- Nhớ được 2 dạng tiến lùi của câu lệnh FOR - DO trong Pascal
5. Dặn dò: Xem trước bài mới
Tuần 10
Tiết 19
Ngày soạn:
Ngày giảng ://.
Bài 10: CẤU TRÚC LẶP
I. MỤC ĐÍCH, YÊU CẦU
1. Kiến thức:
- Biết được cấu trúc chung của lệnh lặp WHILE trong ngôn ngữ lập trình.
- Hiểu được cấu trúc lặp với số lần không biết trước và câu lệnh While_do
2. Kỹ năng: Sử dụng được lệnh lặp While để lập trình giải quyết được một số bài toán đơn giản
3. Về tư duy và thái độ:
- Hình thành cho học sinh bước đầu về tư duy về lập trình có cấu trúc.
- Tự giác, tích cực và chủ động hoàn thành.
II. CHUẨN BỊ
1. Giáo viên: SGK, Giáo án
2. Học sinh: SGK, vỏ
III. PHƯƠNG PHÁP
- Gợi mở, vấn đáp.
- Làm việc theo nhóm
IV. NỘI DUNG BÀI GIẢNG
1. Ổn định lớp:
- Chào thầy cô.
- Cán bộ lớp báo cáo sỉ số
- Chỉnh đốn trang phục
2. Kiểm tra bài cũ:
Dùng câu lệnh lặp For_do tính tổng sau S=12+32+52++(2n-1)2 với n được nhập vào từ bàn phím.
3.Bài mới:
TG
Hoạt động của Gv & Hs
Nội dung
GV : Đưa ra thuật toán hoặc có thể yêu cầu học sinh tự xây dựng thuật toán giải bài toán 2, nếu tự xây dựng được thuật toán thì các em sẽ hiểu hơn về lặp không biết trước số lần
Đưa thêm ví dụ : Nhắc lại bài toán gửi tiền vào ngân hàng: Nếu có số tiền là A, muốn gửi vào ngân hàng để được số tiền là B > A thì cần gửi trong bao lâu với lãi suất là k%.
Yêu cầu học sinh đưa ra cách giải cho bài toán này .
GV : Phân tích phương án trả lời của học sinh sau đó đưa ra lời giải cho bài toán.
3. a)Lặp với số lần chưa biết trước
Để giải bài toán 2 ta dùng thuật toán như sau :
Bước 1 : S :=1/a; N :=0;
Bước 2 : Nếu 1/(a+N) < 0.0001 thì chuyển đến bước 5 ;
Bước 3: N :=N +1;
Bước 4: S := S+ 1/(a+N) rồi quay lại bước 2;
Bước 5: Đưa kết qủa S ra màn hình rồi kết thúc
- Từ bước 2 đến bước 4 được lặp lại nhiều lần nếu điều kiện 1/(a+N) < 0.0001 chưa được thỏa mãn.
GV : Đưa ra cấu trúc câu lệnh While – Do Trong Pascal, giải thích ý nghĩa các thành phần.
HS : Lắng nghe và ghi chép.
Gv: Đưa ra bài toán 2.
- Định hướng và cùng học sinh phân tích đưa ra thuật toán.
Hs. Nghe và trả lời
Gv. Cài đặt thuật toán, chạy thử chương trình. Giải thích các dòng lệnh của chương trình.
Hs. Nghe giảng
Gv. Đưa ra ví dụ 2.
Phân tích, định hướng và yêu cầu Hs nêu thuật toán.
Hs. Suy nghĩ trả lời.
Gv. Phân tích thuật toán và chia lớp thành 4 nhóm. Cho học sinh cài đặt thuật toán
Hs. Cài đặt thuật toán.
Báo cáo kết quả của nhóm.
Gv. Sửa và chiếu chương trình đã làm sẳn và chạy chương trình cho hs quan sát.
Hs. Chú ý quan sát và ghi bài.
b) câu lệnh while – do
_ Pascal sử dụng câu lệnh lặp While
- Do để tổ chức lặp với số lần chưa viết như sau
While Do ;
Trong đó
- Điều kiện là biểu thức quan hệ hoặc logic.
- Câu lệnh là một câu lệnh trong Pascal.
Ý nghĩa : Khi điều kiện còn đúng thì còn thực hiện câu lệnh sau Do sau đó lại quay lại kiểm tra điều kiện.
Bài toán 2:
b1: Sß1/a; Nß0;
b2: Nếu 1/(a+N)<0.0001 Chuyển đến b5
b3: NßN+1;
b4: SßS+1/(a+N) rồi quay lại bước 2
b5: Đưa S ra màn hình
Chương trình:
Var a,N:Integer;
S: real;
Begin
Write(‘Nhap gia tri a=’);readln(a);
While not(1/(a+N)<0.0001) do
Begin
N:=N+1;
S:=S+1/(a+N);
End;
Write(‘tong S la’, S:8:4);
readln
End.
Ví dụ 2 : Tìm ước chung lớn nhất của M và N.
Thuật toán :
B1: Nếu M = N thì ƯCLN := M;
Kết thúc.
B2: Nếu M > N thì M := M – N rồi quay lại B1, ngược lại N := N – M rồi quay lại B1
Sau đây là chương trình tìm UCLN;
4. Củng cố
- Nhắc lại cấu trúc câu lệnh lặp không biết trước số lần lặp While_do
- Cho bài tập về nhà.
5. Dặn dò: Xem lại bài 9, bài 10 chuẩn bị cho tiết bài tập
Tuần 11
Tiết 21-22
Ngày soạn:
Ngày giảng ://.
BÀI TẬP VÀ THỰC HÀNH 2
I. MỤC ĐÍCH, YÊU CẦU
1. Kiến thức:
- Nắm chắc cấu trúc và sơ đồ thực hiện của cấu trúc rẽ nhánh
2. Kỹ năng:
- Rèn luyện kỹ năng sử dụng cấu trúc rẽ nhánh trong việc giải một số bài toán cụ thể
- Làm quen với công cụ phục vụ và hiệu chỉnh chương trình
3. Về tư duy và thái độ:
- Hình thành cho học sinh bước đầu về tư duy về lập trình có cấu trúc.
- Tự giác, tích cực và chủ động hoàn thành.
II. CHUẨN BỊ
1. Giáo viên: SGK, Giáo án
2. Học sinh: SGK, vỏ
III. PHƯƠNG PHÁP
- Gợi mở, vấn đáp.
- Làm việc theo nhóm
Tiết 21
IV. NỘI DUNG BÀI GIẢNG
1. Ổn định lớp:
- Chào thầy cô.
- Cán bộ lớp báo cáo sỉ số
- Chỉnh đốn trang phục
2. Kiểm tra bài cũ:
Dùng câu lệnh lặp For_do tính tổng sau S=12+32+52++(2n-1)2 với n được nhập vào từ bàn phím.
3.Bài mới:
Làm quen với một chương trình và các công cụ hiệu chỉnh chương trình
a. Mục tiêu
- Học sinh hiểu được nội dung chương trình và kết quả sau khi thực hiện chương trình. Biết các công cụ hiệu chỉnh chương trình khi cần thiết như thực hiện từng bước và xem kết quả trung gian
b. nội dung
- Ba số nguyên dương a, b, c được gọi là bộ số Pitago nếu tổng bình phương của hai số bằng bình phương số còn lại.
- Yêu cầu: Viết chương trình nhập từ bàn phím ba số nguyên dương a, b, c và kiểm tra xem chúng có phải là bộ số Pitago hay không
TG
Hoạt động của Gv & Hs
Nội dung
Gv. Gợi ý để học sinh nêu khái niện về bộ số Pitago
Hs. Theo dõi dẫn dắt để nêu khái niệm về bộ số Pitago.
Gv. Yêu cầu học sinh lấy ví dụ cụ thể.
Hs. Lấy ví dụ
Gv. Để kiểm tra bộ ba số a,b,c có phải là bộ 3 số Pitago ta phải kiểm tra đẳng thức nào?
Hs. Dựa vào khái niệm trả lời
Gv. Yêu cầu học sinh soạn vào máy theo yêu cầu.
Hs. Làm bài
Gv. Yêu cầu học sinh lưu chương trình, soát lỗi, chạy chương trìn, để học sinh làm quen với công cụ trong môi trường Turbo pascal 7.0.
Nhập các bộ số để kiểm tra thuật toán
Vd: 3 4 5 / 4 7 10 /
Hs. Làm theo yêu cầu của gv
1. Bộ số Pitago
Tổng bình phương của hai số bằng bình phương số còn lại. a2=b2+c2
Vd: bộ ba số: 5 4 3
a, b, c là bộ số Pitago thì xãy ra một trong các đẳng thức sau
a2 = b2 + c2.
b2 = a2 + c2.
c2 = a2 + b2.
Program Pitago;
Var a, b, c: Integer;
Begin
Write(‘Nhap a, b, c=’);readln(a, b, c);
If (a2 = b2 + c2 ) or ( b2 = a2 + c2 ) or ( c2 = a2 + b2) then write(a, b, c ,‘la bo ba Pitago’)
Else write(‘khong phai la bo ba pitago’);
readln
End.
F2 (File/save): Lưu chương trình
F9 : Soát lỗi chương trình
Ctrl+ F9 : Chạy chương trình
4. Củng cố
- Nhắc lại cấu trúc câu lệnh rẽ nhánh If_then
- Các thao tác cơ bản trong việc soạn thảo và biên dịch chương trình
5. Dặn dò: ôn lại các thao tác chuẩn bị cho tiết thực hành sau
Tiết 22
IV. NỘI DUNG BÀI GIẢNG
1. Ổn định lớp:
- Chào thầy cô.
- Cán bộ lớp báo cáo sỉ số
- Chỉnh đốn trang phục
2. Kiểm tra bài cũ:
Trong khi giảng bài
3.Bài mới:
Rèn luyện kỹ năng lập trình hoàn thiện một bài toán
a. Mục tiêu: Học sinh biết đọc hiểu đề, phân tích yêu cầu của đề. Từ đó chọn được cấu trúc dữ liệu và lệnh phù hợp để lập trình
b. Nội dung: Viết chương trình giải phương trình ax+b=0
c. Các bước tiến hành
TG
Hoạt động của Gv & Hs
Nội dung
Gv. Nêu nội dung , mục đích, yêu cầu của bài toán
- bước đầu tiên để giải bài toán
- Để xác định ta phải đặt các câu hỏi như thế nào? Gọi học sinh đặt câu hỏi và gọi học sinh trả lời
Hs. Làm theo dẫn dắt của giáo viên
Gv. Yêu cầu học sinh xác định Input/Output
Nêu thuật toán
Thảo luận nhóm viết chương trình
Hs. Xđ Input/Output
Viết thuật toán
Viết chương trình theo nhóm
Báo cáo kết quả
Gv. Yêu cầu học sinh nhập dữ liệu dùng thử
Hs. Làm bài theo yêu cầu.
1. Xác định Input/Output
- Input: hệ số a, b
- Output: giải phương trình;
2. Thuật toán
B1: Nhập hệ số a và b
B2: - Nêu a=0 và b=0 thì thông báo phương trình vố số nghiệm.
- Nếu a=0 và b0 thì thông báo phương trình vô nghiệm.
- Nêu a0 thì phương trình có nghiệm
X=-b/a;
B3: Đưa ra và kết thúc.
3. Chương trình
Program giaipt;
Var a, b:integer;
Begin
Write(‘nhap he so a, b’);readln(a,b);
If a=0 and b=0 then Write(‘phương trình vo so nghiem’);
If a=0 and b0 then Write(‘phương trình vo nghiem’);
If a0 then x:=-b/a;
Write(x);
readln
End.
4. Củng cố
- Nhắc lại cấu trúc câu lệnh rẽ nhánh If_then
- Cho bài tập về nhà.
5. Dặn dò: ôn lại bài 9, bài 10 chuẩn bị làm tiếp bài tập trong SGK
Tuần 10
Tiết 20
Ngày soạn:
Ngày giảng ://.
BÀI TẬP
I. MỤC ĐÍCH, YÊU CẦU
1. Kiến thức
- Biết sử dụng đúng lệnh lặp For . . . Do
- Biết sử dụng đúng lệnh lặp While . . . Do
2. Kĩ năng:
- Bước đầu sử dụng được lệnh lặp For . . . do , và While . . . Do để lập trình giải quyết 1 số bài toán đơn giản.
- Phân biệt được sự giống và khác nhau giữa cấu trúc lặp For và While.
- Bước đầu biết lựa chọn đúng dạng lệnh lặp để lập trình giải quyết một số bài toán đơn giản.
3. Tư duy và thái độ: Tích cực trong học tập, cẩn thận , chính xác.
II. CHUẨN BỊ
1. Giáo viên: Sách giáo khoa, sách giáo viên, một số bài tập áp dụng...
2. Học sinh: sgk, và chuẩn bị bài tập trước
III. PHƯƠNG PHÁP
1. Phương pháp: Gợi mở, vấn đáp, đan xen hoạt động nhóm
2. Phương tiện: Giáo án.
IV. TIẾN TRÌNH BÀI HỌC
1. Ổn định lớp.
- Chào thầy cô.
- Cán bộ lớp báo cáo sỉ số
- Chỉnh đốn trang phục
2. Kiểm tra bài cũ Kiểm tra trong khi
Các file đính kèm theo tài liệu này:
- Giao an hoc ki 1_12497479.doc