Giáo án bồi dưỡng học sinh giỏi tin học lớp 8

36 598 2
Giáo án bồi dưỡng học sinh giỏi tin học lớp 8

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài 1: MỘT SỐ KHÁI NIỆM CƠ BẢN VỀ NGÔN NGỮ LẬP TRÌNH TURBO PASCAL I MỤC TIÊU: HS nắm số khái niệm ngôn ngữ lập trình PC II TIẾN TRÌNH BÀI DẠY Hoạt động thầy trò Nội dung GV giới thiệu Các tập tin cần thiết lập trình với Turbo Pascal Để lập trình với Turbo Pascal, tối thiểu cần file sau:TURBO.EXE: Dùng để soạn thảo dòch chương trình TURBO.TPL: Thư viện chứa đơn vò chuẩn để chạy với TURBO.EXE Ngoài ra, muốn lập trình đồ hoạ phải cần thêm tập tin:GRAPH.TPU: Thư viện đồ hoạ *.BGI: Các file điều khiển loại hình tương ứng dùng đồ hoạ *.CHR: Các file chứa font chữ đồ họa ? Hãy nêu bước Các bước lập chương trình Pascal lập trình ch trình PC Bước 1: Soạn thảo chương trình Bước 2: Dòch chương trình (nhấn phím F9), có lỗi phải sửa lỗi Bước 3: Chạy chương trình (nhấn phím Ctrl-F9) ? Nêu cấu trúc chung Cấu trúc chung chương trình Pascal chương trình - Phần khai báo + Khai báo tên chương trình; + Khai báo thư viện (chứa lệnh viết sẵn sử dụng chương trình) số khai báo khác - Phần thân chương trình gồm câu lệnh mà máy tính cần thực * Chú ý:- Phần thân phần bắt buộc phải có phần khai báo có không - Phần khai báo (nếu có) phải đặt trước phần thân chương trình ? Nêu thành phần Các thành phần ngôn ngữ Pascal NNPC 4.1 Từ khóa Từ khoá từ mà Pascal dành riêng để phục vụ cho mục đích (Chẳng hạn như: BEGIN, END, IF, WHILE, ) 4.2 Tên (đònh danh) Tên danh dãy ký tự dùng để đặt tên cho hằng, biến, kiểu, tên chương trình Khi đặt tên, ta phải ý số điểm sau: - Không đặt trùng tên với từ khoá - Ký tự tên không bắt đầu ký tự GV giới thiệu đặc biệt chữ số Không đặt tên với ký tự space, phép toán Các hàm số học sử dụng cho kiểu số nguyên số thực: SQR(x): Trả x2 SQRT(x): Trả bậc hai x (x≥0) ABS(x): Trả |x| TRUNC(x): Trả số nguyên gần với x bé x INT(x):Trả phần nguyên x FRAC(x): Trả phần thập phân x ROUND(x): Làm tròn số nguyên x PRED(n): Trả giá trò đứng trước n SUCC(n): Trả giá trò đứng sau n ODD(n): Cho giá trò TRUE n số lẻ INC(n): Tăng n thêm đơn vò (n:=n+1) DEC(n): Giảm n đơn vò (n:=n-1) * Các hàm kiểu ký tự: - UPCASE(ch): Trả ký tự in hoa tương ứng với ký tự ch Ví dụ: UPCASE('a') = 'A' - ORD(ch): Trả số thứ tự bảng mã ASCII ký tự ch Ví dụ ORD('A')=65 - CHR(n): Trả ký tự tương ứng bảng mã ASCII có số thứ tự n Ví dụ: CHR(65)='A' - PRED(ch): cho ký tự đứng trước ký tự ch Ví dụ: PRED('B')='A' - SUCC(ch): cho ký tự đứng sau ký tự ch Ví dụ: SUCC('A')='B' Bài 2: CHƯƠNG TRÌNH VÀ NGÔN NGỮ LẬP TRÌNH A- MỤC TIÊU: - HS biết phân biệt từ khóa tên, nắm quy tắc đặt tên - Biết viết biểu thức toán ngôn ngữ Pascal ngược lại, biết chuyển biểu thức ngon ngưa Pascal sang biểu thức Toán - Biết viết số chương trình đơn giản B- TIẾN TRÌNH DẠY HỌC HOẠT ĐỘNG CỦA GV VÀ HS GHI BẢNG Hoạt động 1: Kiến thức bản: I Kiến thức bản: - GV yêu cầu HS nhắc lại khái niệm từ Từ khóa tên: - Từ khóa khóa tên, quy tắc đặt tên - Tên: - Quy tắc đặt tên: + Không trùng từ khóa + Không dùng dấu cách, dấu trừ, dấu cộng, + Không dùng số đầu tên - Yêu cầu HS xác đònh xem tên Ví dụ 1: Những tên sau hợp lệ? Vì hợp lệ sao? - GV chưa lại cho a) ues b) tukhoa c) tu khoa c) tu_khoa d) tu-khoa e) tu+khoa g) 1tukhoa k) tukhoa1 - GV yêu cầu HS nhắc lại cấu trúc Cấu trúc chung chương trình: chung chương trình - Phần khai báo: - Phần thân: (phần bắt buộc) ? Hãy xác đònh từ khóa tên Ví dụ 1: Cho chương trình sau, xác đònh chương trình bên từ khóa, tên chương trình: - HS xác đònh, GV chữa lại cho program baitap; uses crt; Var a, b: Integer; Begin clrscr; Writeln(‘Hay nhap vao so a: ‘); Readln(a); Writeln(‘Hay nhap vao so b: ‘); Readln(b); Writeln(‘Thuong cua hai so la: ‘, a/b); Readln; End - HS nhắc lại kiểu dự liệu thường Kiểu liêu: dùng - Số nguyên: Integer, longint, word, byte, - GV nêu thêm số kiểu liệu - Số thực: Real khác - Kí tự: char - Xâu kí tự: string, string[x] - GV nhắc lại phép toán Các phép toán phép so sánh: phép so sánh - Cộng, trừ, nhân, chia - Chia lấy phần nguyên - Chia lấy phần dư - HS nhắc lại cú pháp lệnh in Lệnh in hình: hình lệnh nhập liệu write( ); writeln( ); Lệnh nhập liệu: Read( ); Readln( ); Hoạt động 2: Bài tập: II Bài tập: Bài 1: Viết biểu thức toán ngon ngữ - GV yêu cầu HS làm tập Pascal: vào a) 5x3 + 2x2 - 18x + 25 2a + 2c − a Lưu ý: -38 b) -10 c) + abs: giá trò tuyệt đối VD: abs(x) x+ y −b + ∆ + srq: bình phương d) x − y e) ( x + 1) g) 2a + sqrt: bậc hai k) p( p − a)( p − b)( p − c) + exp: mũ Bài 2: Viết chương trình tính chu vi diện thang đây: 3,5 B A 2,5 4,5 C 9,0 D program hinhthang; uses crt; begin clrscr; writeln(‘dien tich = ‘, ((3.5 +9)*2.5)/2); writeln(‘Chu vi = ‘, (3+3.5+4.5+9)); Readln; End Bài 3: Chuyển biểu thức sau sang công Hoạt động 3: Hướng dẫn nhà: thức toán: Yêu cầu HS ghi tập nhà a) 2*p*r b) -b/(2*a) c) 1/(n*(n+1)*(n+2)) d) 1+1/(x*x) + 1/(y*y)+1/(z*z) e) sqrt(p*(p-a)*(p-b)*(p-c)) Bài 4: Viết chương trình in hình f) 1(abs(x)+1)+1/((abs(y)+1)*(abs((y)-1)) trang trí sau: a) * * * * * b) * * * * * * * * * * * * * * * * * * * * * * * * * * * Bài 3: SỬ DỤNG BIẾN TRONG CHƯƠNG TRÌNH A- MỤC TIÊU: - HS biết phân biệt từ khóa tên, nắm quy tắc đặt tên - Biết viết biểu thức toán ngôn ngữ Pascal ngược lại, biết chuyển biểu thức ngon ngưa Pascal sang biểu thức Toán - Biết viết số chương trình đơn giản B-TIẾN TRÌNH DẠY HỌC: HOẠT ĐỘNG CỦA GIÁO VIÊN, HỌC SINH GHI BẢNG Hoạt động 1: Kiến thức bản: I Kiến thức bản: - GV yêu cầu HS nhắc lại khái niệm Biến khai báo biến: - Biến: biến cách khai báo biến - Khai báo: var tênbiến : Kiểudữliệu ; + Gán giá trò cho biến: tênbiến := biểuthức ; ? Sử dụng biến để làm gì? + Tính toán - GV yêu cầu HS nhắc lại khái niệm Hằng: biến cách khai báo biến - Hằng: - Khai báo: Const tênhằng = giátrò ; Ví dụ 1: Cho chương trình sau, xác đònh - Yêu cầu HS xác đònh biến, biến chương trình: chương trình program baitap; - GV chửa lại cho uses crt; Var a, b: Integer; const n=4 ; Begin clrscr; Writeln(‘Hay nhap vao so a: ‘); Readln(a); Writeln(‘Hay nhap vao so b: ‘); Readln(b); Writeln(‘Thuong cua hai so la: ‘, a/b); Readln; End Hoạt động 2: Bài tập: GV yêu cầu HS làm tập 4.7 ; 4.8 ; 4.9; 4.11; 4.14 SBT/T31; 32;33; 34 Hoạt động 3: Hướng dẫn nhà: Yêu cầu HS ghi tập 4.17; 4.21; 4.23/SBT Bài 4: CÂU LỆNH ĐIỀU KIỆN I MỤC TIÊU: -Nắm cú pháp câu lệnh điều kiện dạng thiếu - Vận dụng làm tập II TIẾN TRÌNH BÀI DẠY Câu lệnh điều kiện dạng thiếu a) Cú pháp IF THEN ; b) Sơ đồ thực lệnh c) Ghi - Điều kiện phải biểu thức Logic - Câu lệnh thực Điều kiện (Nhiều lệnh phải đặt khối lệnh) d) Bài tập Bài 1: Nhập vào số tự nhiên a từ bàn phím, kiểm tra a có phải số chẵn k? program chan_le; uses crt; var a: byte; begin clrscr; Write('nhap vao a '); readln(a); If a mod = then writeln(a , ' la so chan '); readln end Bài 2: Tìm số lớn hai số program gtln; uses crt; var max,a, b:real; begin clrscr; Writeln('nhap vao so '); readln(a, b); max:=a; if b>max then max:=b; Writeln('gia tri lon nhat la ', max:2:3); readln end Bài 3:Tìm GTLN số program gtln; uses crt; var max,a, b, c:real; begin clrscr; Writeln('nhap vao so '); readln(a, b, c); max:=a; if b>max then max:=b; if c> max then max:=c; Writeln('gia tri lon nhat la ', max:2:3); readln end Bài 4: Tìm GTNN số program gtnn; uses crt; var min,a, b, c:real; begin clrscr; Writeln('nhap vao so '); readln(a, b, c); min:=a; if b then writeln(a:2:1 , ' la so duong ') else writeln(a:2:1 , ' la so am'); readln end Bài 5: Kiểm tra số dương a, b, c có cạnh tam giác hay không? program BT_03_01; var a,b,c : real; begin write('Nhap vao so duong '); readln(a,b,c); if (abs(a-b) < c) and (c0 then dem:=dem+1; end; Writeln(‘So cac so duong la’,dem); Readln; End Bµi 3: M« t¶ tht to¸n vµ viÕt ch¬ng tr×nh tÝnh tỉng sau ®©y: A = x + x + + x n lÇn program tinhcan; uses crt; Var n, i: Integer; x, A: Real; 10 P:=(a+b+c)/2; S:=sqrt(p(p-a)*(p-b)*(p-c)); write('Dien tich tam giac la: ‘,s:2:2); end else write('Nhap lai canh cua tam giac! ‘); readln; end Bài Đọc ngày tháng năm , sau viết hình ngày thứ tuần GIẢI Var Thu , Ngay , Thang : Byte ; Nam : Integer ; BEGIN Write (' Doc Ngay Thang Nam : ') ; Readln ( Ngay , Thang , Nam ) ; Nam := 1900 + ( Nam mod 1900 ) ; If Thang < Then Begin Thang := Thang + 12 ; Nam := Nam - ; End ; Thu := Abs ( Ngay + Thang * + ( Thang + ) * div + Nam + Nam div ) mod ; Case Thu Of : Writeln (' Chu Nhat ') ; : Writeln (' Thu Hai ') ; : Writeln (' Thu Ba ') ; : Writeln (' Thu Tu ') ; : Writeln (' Thu Nam ') ; : Writeln (' Thu Sau ') ; : Writeln (' Thu Bay ') ; End ; Readln ; END * Bài : Viết chương trình : Nhâp số báo danh Nhập điểm văn , tốn , ngoại ngữ In hình dạng : _ Phiếu điểm : _ Số báo danh : _ Điểm văn : _ Điểm tốn : _ Điểm ngoại ngữ : _ Tổng số điểm : 22 Bạn trúng tuyển ( Bạn khơng trúng tuyển ) với điều kiện Tổng số điểm >= 15 hay ngược lại GIẢI Uses Crt ; Var SBD : Integer; Van , Toan , Ngoaingu , Tongdiem : Real ; BEGIN Clrscr ; Write (' So bao danh : ') ; Readln( SBD ) ; Write (' Diem toan : ') ; Readln( Toan ) ; Write (' Diem ngoai ngu : ') ; Readln( Ngoaingu ) ; Write (' Diem van : ') ; Readln ( Van ) ; Tongdiem := Toan + Van + Ngoaingu ; Clrscr ; Writeln (' Phieu Bao Diem ') ; Writeln (' So bao danh : ', SBD ) ; Writeln (' Diem van : ', Van ) ; Writeln (' Diem toan : ', Toan ) ; Writeln (' Diem ngoai ngu : ', Ngoaingu) ; Writeln (' Tong diem : ', Tongdiem) ; If Tongdiem >= 15 Then Writeln(' Ban da trung tuyen ') Else Writeln(' Ban khong trung tuyen ') ; Readln ; END * Bài : Viết chương trình nhập hai số thực Sau hỏi phép tính cần thực in kết phép tính Nếu “+” , in kết tổng lên hình Nếu “-” , in kết hiệu lên hình Nếu “/” , in kết thương lên hình Nếu “*” , in kết tích lên hình Nếu “+” , in kết tổng lên hình Nếu “+” , in kết tổng lên hình GIẢI Uses Crt ; Var a , b , kq : Real ; Pt : Char ; BEGIN Clrscr ; Write (' a = ') ; Readln( a ) ; Write (' b = ') ; Readln( b ) ; Write (' Phep tinh thuc hien la (+ - * /) : ') ; Readln( Pt ) ; If Pt = '+’ Then kq := a + b ; If Pt = '-’ Then kq := a - b ; If Pt = '*’ Then kq := a * b ; If Pt = '/’ Then kq := a / b ; 23 Write ( a , pt , b , ' = ', kq ) ; Readln ; END * Bài : Viết chương trình nhập hai số tự nhiên N, M thơng báo ‘Dung‘ N , M tính chẵn lẽ , trường hợp ngược lại thơng báo ‘Sai‘ GIẢI Uses Crt ; Var N , M : Integer ; Begin Clrscr ; Write(' N , M = ') ; Readln( N , M ) ; If ( (N + M) mod = ) Then Writeln(' Dung ! ') Else Writeln(' Sai ! ') ; Readln ; END Bài 10 :Cho số tự nhiên n , lập trình để tính tổng sau : a a b b GIẢI + 1/22 + 1/32 + … + 1/n2 + 1/2! + 1/3! + … + 1/n! a) Var n , i : Word ; S : Real ; BEGIN Write (' Nhap n : ') ; Readln (n) ; S := ; For i := To n Do S := S + / sqr(i) ; Writeln (' S = ', S:0:2) ; Readln ; END b) Var n , i , j , p : Word ; S : Real ; BEGIN Write (' Nhap n : ') ; Readln(n) ; p := ; s := ; For i :=1 To n Do Begin p := p * i ; (* tính i *) S := S + / p ; End ; Writeln (' S = ', S:0:2) ; Readln ; END *Bài 11 : 24 Tính giá trị biểu thức sau : ( + 1/12 ) ( + 1/22 ) … ( + 1/n2 ) GIẢI Var i , n : Byte ; p : Real ; Begin Write(' Nhap n : ') ; Readln (n) ; p := ; For i := To n Do p := p * ( + 1/sqr(i) ) ; Writeln(' p = ', p:10:5 ) ; Readln ; End Sử dụng lệnh While * Bài 12 : Lập trình tính tổng : A = + 1/2 + 1/3 + … + 1/n n số tự nhiên nhập vào từ bàn phím GIẢI Uses Crt ; Var i , n : Integer ; tong: Real ; BEGIN Clrscr ; Write (' Cho so tu nhien n : ') ; Readln (n) ; tong :=0 ; i :=1 ; While i a[j] then begin tg:=a[i]; a[i]:=a[j]; a[j]:=tg; end; write('thu tu sap xep tang dan la:'); for i:=1 to n write( a[i],' '); writeln; writeln('so chia het cho la:'); for i :=1 to n 27 if a[i]mod 5=0 then write(a[i],' '); writeln; write('so chia het cho la:'); for i:=1 to n if a[i] mod 7=0 then write(a[i],' '); writeln; readln; end Bài : Viết chương trình nhập dãy số tối đa 100 số , sau in hình số khác GIẢI Var A : Array [1 100] Of Integer; i , j , n : Integer ; BEGIN Write(' Do dai cua day so N = ') ; Readln (N); For I := To N Do Begin Write ('A[', i , ']= ') ; Readln ( A[i] ); End; Writeln(' Cac so khac la : ') ; for i:=1 to n Begin j := 1; While ( j < i ) and ( A[j] A[i] ) Do j:=j+1; If j = i Then Writeln( A[i] ); End; Readln; END Bài : Viết chương trình nhập dãy số tối đa 50 số in hình số trùng dãy GIẢI Uses crt ; Var a , b : Array[1 50] Of Integer ; n , m , i , j , k : Byte ; trung : Boolean ; BEGIN Clrscr ; Write (' Nhap dai cua day so nguyen : ') ; Readln(n) ; 28 Writeln (' Nhap cac phan tu cua day : ') ; For i := To N Begin Write (' a[', i ,'] = ') ; Readln( a[i] ) ; End ; i := ; m := ; Repeat trung := false ; j := i + 1; Repeat If ( j n ) ; If trung Then Begin m := m + 1; b[m] := a[i] ; writeln ( b[m] : ) ; End ; inc(i) ; Until i > n ; If m > Then Begin i := ; Repeat j := i + ; Repeat trung := false ; If b[i] = b[j] Then trung := true ; If trung Then Begin If j < m Then For k := j To m - Do b[k] := b[k + 1] ; m := m - ; dec ( j ) ; End ; inc ( j ) ; Until j > m ; inc ( i ) ; Until i > m ; End ; If m > Then For k := To m Do Write ( b[k] : ) ; Readln ; END inc (j) ; * Bài : Viết chương trình tìm ƯSCLN N số nhập từ bàn phím GIẢI program UCLN; Uses crt ; 29 Var a : Array [1 100] Of Integer ; n , i : Byte ; d : integer ; BEGIN clrscr; Clrscr ; Writeln (' Tim USCLN cua N so :') ; Write (' Nhap so N : ') ; Readln(n) ; Writeln ('Nhap ', N ,' so : ') ; For i := To n Do Begin Write(' So thu ', i ,' = ') ; Readln( a[i] ) ; End ; For i := To n-1 Do while a[i]0 begin d := a[i] ; a[i] := a[ i+1 ] mod a[i] ; a[i+1] := d ; end; Writeln (' USCLN cua ', N ,' so la : ', a[n] ) ; Readln ; END Dạng CÁC CHƯƠNG TRÌNH VỀ XÂU Câu 1: Viết chương trình nhập vào xâu sau đếm số xuất ký tự xâu program xau; uses crt; Var A: array [ 'A' 'Z'] of integer; S: string; ch: char; i: integer; BEGIN clrscr; Write(' Cho mot xau ki tu : '); Readln(s); For ch:= 'A' to 'Z' A[ch]:=0; For i:=1 to length(s) Begin If Upcase(S[i]) in (['A' 'Z']) then Begin S[i]:= Upcase(S[i]); A[S[i]]:= A[S[i]]+1; End; End; For ch:= 'A' to 'Z' Writeln('So lan xuat hien cua ',ch,' xau la: ', A[ch]:4) ; Readln ; 30 END Bài : Cho số tự nhiên n xâu có độ dài n Hãy biến đổi xâu cho cách thay đổi : a a Tất dấu ! dấu chấm b b Mỗi nhóm dấu chấm liền dấu chấm c c Một nhóm dấu chấm đứng liền dấu ba chấm a) Var S: string; i: byte; BEGIN Write(' Cho mot xau ki tu S = '); Readln(S); For i:=1 to length(S) If S[i] = '!' then S[i]:= '.'; Write( ' Chuoi sau da bien doi la : ', S); Readln; END b) Uses crt; Var S : string; i : byte; BEGIN Clrscr; Write(' Cho mot xau ki tu S = '); Readln(S); i:=1; While i< length(S) If (S[i]='.')and(S[i+1]='.') then Delete(S,i,1) Else inc(i); Write('Chuoi sau da bien doi la: ' ,S); Readln; END c) 31 Uses crt; Var S: string; i, j: byte; BEGIN Clrscr; Write('Nhap xau S='); Readln(S); i:=1; While i=1)and(S[i] ',' ) i:=i -1; If i>=1 then Write('So thu tu thoa man la: ', i) Else Write('Khong ton tai.'); 33 Readln; END Bài : Viết chương trình nhập xâu kí tự , sau xem xâu có phải xâu đối xứng khơng ( xâu đối xứng xâu có kí tự giống đối xứng qua điểm xâu , ví dụ ‘ABBA’ ‘ABCBA’ ) Uses Crt; Var St : string; dx : Boolean; i, len: byte; BEGIN Clrscr; Write(' Nhap xau St = '); Readln(St); dx:= True; i:=1; len:= Length(St); While dx and (i[...]... khỏch ú nhn c s tin ln hn hoc bng 20 000 000 Program gui_ngan_hang; Uses crt; Var t:real; d:integer; Begin clrscr; t:=10000000; d:=0; While t

Ngày đăng: 08/09/2016, 22:22

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan