Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 48 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
48
Dung lượng
311 KB
Nội dung
Trường THCS Lê Quý Đôn Tuần: Tiết - - 3: Giáo án bồi dưỡng HSG tin học Ngày soạn: 21/09/2015 CÂU LỆNH CÓ CẤU TRÚC: IF THEN, FOR DO,… A.MỤC TIÊU 1.Kiến thức: Học sinh nắm lệnh có cấu trúc, làm tập sữ dụng lệnh có cấu trúc 2.Kỹ năng: Rèn kỹ viết câu lệnh xác, kỹ vận dụng câu lẹnh vào toán cụ thể 3.Thái độ: Học sinh tích cực xác viết câu lệnh, biết vận dụng vào toán thực tế B PHƯƠNG PHÁP Nêu vấn đề, gợi mở C CHUẨN BỊ CỦA THẦY VÀ TRÒ Gv: Giáo án, tài liệu tham khảo Hs: Ôn tập câu lệnh D TIẾN TRÌNH LÊN LỚP Ổn định: Sĩ số Kiểm tra cũ: Kiểm tra việc nắm câu lệnh Bài I CÂU LỆNH ĐIỀU KIỆN (RẼ NHÁNH) 1.1 Lệnh IF Cú pháp: (1) Dạng thiếu: IF B THEN S; (2) Dạng đủ : IF B THEN S1 ELSE S2; Sơ đồ thực hiện: Chú ý: Khi sử dụng câu lệnh IF đứng trước từ khố ELSE khơng có dấu chấm phẩy (;) 1.2 Lệnh CASE (1) + R B (2) - S + S1 Dạng CASE B OF Const 1: S1; Const 2: S2; Dạng CASE B OF Const 1: S1; Const 2: S2; S2 Cú pháp: GV: Trần Đình Luận B Trường THCS Lê Quý Đôn Giáo án bồi dưỡng HSG tin học Const n: Sn; END; Const n: Sn; ELSE Sn+1; END; Trong đó: B: Biểu thức kiểu vơ hướng đếm kiểu nguyên, kiểu logic, kiểu ký tự, kiểu liệt kê Const i: Hằng thứ i, giá trị hằng, giá trị (phân cách dấu phẩy) đoạn (dùng hai dấu chấm để phân cách giá trị đầu giá trị cuối) Giá trị biểu thức giá trị tập i (i=1¸n) phải có kiểu Khi gặp lệnh CASE, chương trình kiểm tra: - Nếu giá trị biểu thức B nằm tập const i máy thực lệnh S i tương ứng - Ngược lại: + Đối với dạng 1: Khơng làm + Đối với dạng 2: thực lệnh Sn+1 II CÂU LỆNH LẶP 2.1 Vịng lặp biết trước số lần lặp Có hai dạng sau: Dạng tiến FOR := TO DO S; Dạng lùi FOR := DOWNTO DO S; Sơ đồ thực vòng lặp FOR: Chú ý: Khi sử dụng câu lệnh lặp FOR cần ý điểm sau: Không nên tuỳ tiện thay đổi giá trị biến đếm bên vịng lặp FOR làm khơng kiểm sốt biến đếm Giá trị Max Min câu lệnh FOR xác định vào đầu vịng lặp Do cho dù vịng lặp ta có thay đổi giá trị số lần lặp không thay đổi Dạng tiến Dạng lùi Biến đếm:=Min Biến đếm:=Max Biến đếm=Max Thoát S; DEC(Biến đếm); Thốt Trường THCS Lê Q Đơn Giáo án bồi dưỡng HSG tin học 2.2 Vòng lặp chưa biết trước số lần lặp Dạng REPEAT Repeat S; Until B; Dạng WHILE While B Do S; Ý nghĩa: • Dạng REPEAT: Lặp lại cơng việc S biểu thức B=TRUE (đúng) dừng • Dạng WHILE: Trong biểu thức B=TRUE (đúng) tiếp tục thực công việc S Repeat While S B - B đ đ ú S; ng + - Thoát Thoát Bài tập 1: Viết chương trình nhập vào số nguyên kiểm tra xem số vừa nhập số chẵn hay số lẻ Uses crt; Var x:integer; Begin Write('Nhap vao mot so nguyen : '); Readln(x); If x MOD 2=0 Then Writeln('So vua nhap vao la so chan') Else Writeln('So vua nhap vao la so le'); Readln; End Bài tập 2: Viết chương trình giải phương trình bậc ax+b=0 Uses Crt; Var a,b,x : real; Begin Write('a = '); Readln(a); Write('b = '); Readln(b); If a = Then { Nếu a } If b = Then { Trường hợp a = b = } Writeln('Phuong trinh co vo so nghiem') Else { Trường hợp a=0 b ≠ } Giáo Viên: Trần Đình Luận Trường THCS Lê Q Đơn Giáo án bồi dưỡng HSG tin học Writeln('Phuong trinh vo nghiem') Else { Trường hợp a ≠ } Begin x:= -b/a; Writeln('Phuong trinh co nghiem la :',x:0:2); End; Readln; End Bài tập 3: Viết chương trình nhập vào tuổi người cho biết người thiếu niên, niên, trung niên hay lão niên Biết rằng: tuổi nhỏ 18 thiếu niên, từ 18 đến 39 niên, từ 40 đến 60 trung niên lớn 60 lão niên Program bai3; Uses crt; Var tuoi:Byte; Begin Write(Nhap vao tuoi cua mot nguoi:');Readln(tuoi); Case tuoi Of 17: Writeln(Nguoi la thieu nien'); 18 39: Writeln(Nguoi la nien'); 40 60: Writeln(Nguoi la trung nien'); Else Writeln(Nguoi la lao nien'); End; Readln; End CỦNG CỐ Hãy nêu giống khác hai dạng lệnh lặp Repeat Until While HƯỚNG DẪN, DẶN DÒ Bài tập nhà Bài tập 1: Viết chương trình tính tổng S = 1+2+ +N Bài tập 2: Viết chương trình nhập vào N số nguyên từ bàn phím Hãy tính in hình tổng số vừa nhập vào Ý tưởng: Bài tập 3: Viết chương trình tính số Pi với độ xác Epsilon, biết: Pi/4 = 1-1/3+1/5-1/7+ Ý tưởng: Ta thấy rằng, mẫu số số lẻ có qui luật: 2*i+1 với i=1, ,n Do ta dùng i làm biến chạy Vì tính số Pi với độ xác Epsilon nên khơng biết trước cụ thể số lần lặp, ta phải dùng vịng lặp WHILE REPEAT Có nghĩa phải lặp t=4/(2*i+1) ≤ Epsilon dừng Dùng phương pháp cộng dồn Cho vòng lặp FOR chạy từ tới N, ứng với lần lặp thứ i, ta nhập vào số nguyên X đồng thời cộng dồn X vào biến S ********************************************************** Giáo Viên: Trần Đình Luận Trường THCS Lê Quý Đôn Tuần: Tiết - – 6: Giáo án bồi dưỡng HSG tin học Ngày soạn: 28/09/2015 THỰC HÀNH CÂU LỆNH CÓ CẤU TRÚC A.MỤC TIÊU 1.Kiến thức: Học sinh biết vận dụng câu lệnh có cấu trúc giải tập 2.Kỹ năng: Rèn kỹ vận dụng câu lệnh có cấu trúc vào giải tốn 3.Thái độ: Học sinh tích cực thực hành, linh họat vận dụng vào thực tế B PHƯƠNG PHÁP Thực hành C CHUẨN BỊ CỦA THẦY VÀ TRÒ Gv: Bài tập thực hành Hs: Làm tập nhà D TIẾN TRÌNH LÊN LỚP Ổn định: Sĩ số Kiểm tra cũ: Kiểm tra việc nắm câu lệnh Bài Bài tập 1: Viết chương trình tính tổng S = 1+2+ +N Hướng dẫn: Cho giá trị S ban đầu băng 0, biếm đếm I chạy từ đến n thực hiên phép công dồn I vào biến S in giá trị tỏng S Cách 1: Dùng vòng lặp FOR Program TinhTong; Uses crt; Var N,i,S:integer; Begin Clrscr; Write('Nhap vao gia tri cua N :'); Readln(N); S:=0; For i:=1 to N S:=S+i; Writeln('Ket qua la :',S); Readln; End Cách 2: Dùng vòng lặp REPEAT Program TinhTong; Uses crt; Var N,i,S:integer; Begin Clrscr; Write('Nhap vao gia tri cua N :'); Readln(N); S:=0; i:=1; Repeat S:=S+i; i:=i+1; Until i>N; Giáo Viên: Trần Đình Luận Trường THCS Lê Quý Đôn Giáo án bồi dưỡng HSG tin học Writeln('Ket qua la :',S); Readln; End Cách 3: Dùng vòng lặp WHILE Program TinhTong; Uses crt; Var N,i,S:integer; Begin Clrscr; Write('Nhap vao gia tri cua N :'); Readln(N); S:=0; i:=1; While iEpsilon Do Begin Pi:=Pi+s*t; s:=-s; i:=i+1; t:=4/(2*i+1); End; Writeln('So Pi = ',Pi:0:4); Readln; End Bài tập 5: Viết chương trình nhập vào số nguyên N In hình tất ước số N Ý tưởng: Cho biến i chạy từ tới N Nếu N MOD i=0 viết i hình Uses Crt; Var N,i : Integer; Begin Clrscr; Write('Nhap so nguyen N= '); Readln(N); For i:=1 To N Do If N MOD i=0 Then Write(i:5); Giáo Viên: Trần Đình Luận Trường THCS Lê Quý Đôn Giáo án bồi dưỡng HSG tin học Readln; End 4.CÚNG CỐ: Nhận xét thực hành HƯỚNG DẪN VỀ NHÀ Bài tập1: Viết chương trình tìm USCLN BSCNN số a, b nhập vào từ bàn phím Ý tưởng: - Tìm USCLN: Lấy số lớn trừ số nhỏ a=b dừng Lúc đó: USCLN=a - BSCNN(a,b) = a*b DIV USCLN(a,b) Bài tập 2: Viết chương trình tìm số có chữ số abc cho: abc = a3 + b3 + c3 Ý tưởng: Dùng phương pháp vét cạn Ta biết rằng: a có giá trị từ 1→9 (vì a số hàng trăm), b,c có giá trị từ 0→9 Ta dùng vịng lặp FOR lồng để duyệt qua tất trường hợp a,b,c Ứng với abc, ta kiểm tra: Nếu 100.a + 10.b + c = a3 + b3 + c3 in abc ********************************************************* Tuần: Ngày soạn: 4/10/2015 Tiết - – 9: CÁC CÂU LỆNH CÓ CẤU TRÚC (Tiếp theo) A.MỤC TIÊU 1.Kiến thức: Học sinh nắm lệnh có cấu trúc, làm tập sữ dụng lệnh có cấu trúc 2.Kỹ năng: Rèn kỹ viết câu lệnh xác, kỹ vận dụng câu lệnh vào toán cụ thể 3.Thái độ: Học sinh tích cực xác viết câu lệnh, biết vận dụng vào toán thực tế B PHƯƠNG PHÁP Nêu vấn đề, gợi mở C CHUẨN BỊ CỦA THẦY VÀ TRÒ Gv: Giáo án, phấn màu viết sơ đồ Hs: Ôn tập câu lệnh D TIẾN TRÌNH LÊN LỚP Ổn định: Sĩ số Kiểm tra cũ: Kiểm tra việc nắm câu lệnh Bài Bài tập 1: Viết chương trình tìm USCLN BSCNN số a, b nhập vào từ bàn phím Ý tưởng: - Tìm USCLN: Lấy số lớn trừ số nhỏ a=b dừng Lúc đó: USCLN=a - BSCNN(a,b) = a*b DIV USCLN(a,b) Uses crt; Var a,b,aa,bb:integer; Begin Write('Nhap a : '); Readln(a); Write('Nhap b : '); Readln(b); Giáo Viên: Trần Đình Luận Trường THCS Lê Q Đơn Giáo án bồi dưỡng HSG tin học aa:=a; bb:=b; While aabb Do Begin If aa>bb Then aa:=aa-bb Else bb:=bb-aa; End; Writeln('USCLN= ',aa); Writeln('BSCNN= ',a*b DIV aa); Readln; End Bài tập 2: Viết chương trình tìm số có chữ số abc cho: abc = a3 + b3 + c3 Ý tưởng: Dùng phương pháp vét cạn Ta biết rằng: a có giá trị từ 1→9 (vì a số hàng trăm), b,c có giá trị từ 0→9 Ta dùng vòng lặp FOR lồng để duyệt qua tất trường hợp a,b,c Ứng với abc, ta kiểm tra: Nếu 100.a + 10.b + c = a3 + b3 + c3 in abc Uses crt; Var a,b,c : Word; Begin For a:=1 To Do For b:=0 To Do For c:=0 To Do If (100*a + 10*b + c)=(a*a*a + b*b*b + c*c*c) Then Writeln(a,b,c); Readln; End Bài tập 3: Viết chương trình nhập vào số tự nhiên N thơng báo lên hình số có phải số ngun tố hay không Ý tưởng: N số nguyên tố N khơng có ước số từ → N div Từ định nghĩa ta đưa giải thuật: - Đếm số ước số N từ → N div lưu vào biến d - Nếu d=0 N số nguyên tố Uses crt; Var N,i,d : Word; Begin If NA[giua] tìm đoạn sau mảng [giua+1,cuoi], ngược lại tìm đoạn đầu mảng [dau,giua-1] Bài tập 3: Cho mảng số nguyên gồm n phần tử Tìm dãy gồm m phần tử (m≤ n) cho dãy có tổng lớn (Dãy dãy phần tử liên tiếp mảng) Program Bai3; Uses Crt; Type Mang=ARRAY[1 50] Of Integer; Var A:Mang; n,m,i,j,k:Byte; S,Max:Integer; Begin Write('So phan tu cua mang: n= '); Readln(n); For i:=1 To n Do Begin Write('a[',i,']='); Readln(a[i]); End; Write('Nhap so phan tu cua day con: m= '); Readln(m); k:=1; {Vị trí phần tử dãy con} {Giả sử m phần tử mảng A dãy có tổng lớn nhất} Max:=0; For i:=1 To m Do Max:=Max+A[i]; {Tìm dãy khác} For i:=2 To n-m+1 Do Begin {Tính tổng dãy thứ i} S:=0; For j:=i To i+m-1 Do S:=S+A[j]; If S>Max Then {Nếu dãy tìm có tổng lớn dãy trước} Begin Max:=S; {Thay tổng mới} k:=i; {Thay vị trí dãy mới} End; End; Writeln('Day co tong lon nhat la:'); For i:=k To k+m-1 Do Write(A[i]:5); Readln; End Bài 4: Nhập n số thực từ bàn phím vào mảng, tính trung bình cộng số Program Bai4; Uses CRT; Giáo Viên: Trần Đình Luận 34 Trường THCS Lê Q Đơn Giáo án bồi dưỡng HSG tin học Var i,n : Integer; s : Real; a : Array[1 100] of Real; Begin ClrScr; Write( ‘ Ban muon nhap bao nhieu PT cho mang : ‘ ); Readln(n); For i := to n Begin Write( ‘ PT A[ ‘ , i , ‘ ]= ’ ); Readln(a[i]); End; s := 0; For i := to n s := s + a[i]; Write( ‘ Trung binh cong cua day so = ‘ , s / n : : ); Readln; End 3.CŨNG CỐ: Nhận xét thực hành 4.HƯỚNG DẪN DẶN DỊ 5.1 Viết chương trình nhập vào dãy n số a[1], a[2], , a[n] in hình thơng tin sau: - Tổng phần tử dãy - Số lượng số dương tổng số dương dãy - Số lượng số âm tổng số âm dãy - Trung bình cộng dãy 5.2 Viết chương trình nhập vào dãy n số a[1], a[2], , a[n] in hình thơng tin sau: - Số hạng dương lớn dãy số (vị trí) - Số hạng dương nhỏ dãy số (vị trí) - Số hạng âm lớn dãy số (vị trí) - Số hạng âm nhỏ dãy số (vị trí) ****************************************************** Tuần: Ngày soạn: 14/12/2015 Tiết 37-38-39: THỰC HÀNH: MẢNG MỘT CHIỀU(TT) 1.Kiến thức: Học sinh nắm cách viết liệu dạng mảng chiều, làm toán mảng chiều 2.Kỹ năng:Có kỹ phân tích tốn, viết câu lệnh xác 3.Thái độ: Học sinh tích cực, tự giác, hứng thú giải tốn mảng B PHƯƠNG PHÁP: Thuyết trình, gợi mở, vấn đáp C CHUẨN BỊ CỦA THẦY VÀ TRÒ GV: Giáo án, phấn màu vẽ sơ đồ HS: Ôn tập câu lệnh D TIẾN TRÌNH LÊN LỚP Ổn định: Sĩ số 2.Kiểm tra cũ: Bài tập 1: Viết chương trình in hình tam giác Pascal Ví dụ, với n=4 in hình sau: 1 1 35 Giáo Viên: Trần Đình Luận Trường THCS Lê Q Đơn Giáo án bồi dưỡng HSG tin học 3 1 Ý tưởng: Tam giác Pascal tạo theo qui luật sau: + Mỗi dòng bắt đầu kết thúc số + Phần tử thứ j dòng k nhận cách cộng phần tử thứ j-1 j dòng thứ k-1 Program Bai1; Uses Crt; Var Dong:Array[0 20] Of Byte; n,i,j:Byte; Begin Write('n= '); Readln(n); Clrscr; Dong[0]:=1; Writeln(Dong[0]:4); {Khoi tao gia tri cua dong} For i:=1 To n Do Dong[i]:=0; {Voi moi dong i} For i:=1 To n Do Begin For j:=i DownTo Do Begin Dong[j]:=Dong[j-1]+Dong[j]; Write(Dong[j]:4); End; Writeln(Dong[i]:4); End; Readln; End Bài tập 2: Viết chương trình nhập vào mảng số nguyên A, B đại diện cho tập hợp (khơng thể có phần tử trùng tập hợp) Trong trình nhập, phải kiểm tra: phần tử vừa nhập vào có mảng khơng bổ sung vào mảng In hình phần tử giao tập hợp A, B Ý tưởng: Duyệt qua tất phần tử ai∈A Nếu ai∈B viết hình Program Bai2; Uses Crt; Type Mang=ARRAY[1 50] Of Integer; Var A,B:Mang; n,m:Byte; Function KiemTra(x:Integer; n:Byte; A:Mang):Boolean; Var i:Byte; Found:Boolean; Begin Kiemtra:=False; i:=1; While (i