Giáo án tin học 11 - Học kỳ I (Pascal)
I. MỤC TIÊU
1. Kiến thức:
Học sinh cần nắm được:
Một số khái niệm cơ sở về ngôn ngữ lập trình, những đặc điểm chủ yếu của ngôn ngữ lâp trình bậc cao;
Hai loại chương trình dịch: Biên dịch và thông dịch;
Các thành phần trong ngôn ngữ lập trình như: tên, tên chuẩn, từ khóa, hằng, biến ;
Các quy định của một ngôn ngữ lập trình (cụ thể Pascal).
2. Kĩ năng:
Biết viết hằng và tên đúng trong một ngôn ngữ lập trình (cụ thể Pascal).
3. Thái độ:
Nhận thức được quá trình phát triển của ngôn ngữ lập trình gắn liền với quá trình phát triển của tin học nhằm giải quyết các bài toán thực tiễn ngày càng phức tạp;
Ham muốn học một ngôn ngữ lập trình cụ thể để có khả năng giải các bài toán bằng máy vi tính.
II. NỘI DUNG
Phân loại ngôn ngữ lập trình;
Chương trình dịch;
Các thành phần của ngôn ngữ lập trình;
Các thành phần cơ sở của ngôn ngữ lập trình Pascal.
ể rèn luyện khả năng tư duy áp dụng đúng cấu trúc lặp. V. BÀI TẬP VỀ NHÀ Trả lời các câu hỏi và làm bài tập trong SGK trang 51 và sách bài tập; Chuẩn bị tiết sau luyện tập. VI. RÚT KINH NGHIÊM ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… Tiết 14: BÀI TẬP Ngày soạn: ……/……/2008 Ngày dạy: ……/……/2008 I. MỤC ĐÍCH, YÊU CẦU Ôn lại cấu trúc rẽ nhánh và cấu trúc lặp; Biết áp dụng cấu trúc rẽ nhánh để làm các bài tập; Biết áp dụng cấu trúc lặp để làm các bài tập; Rèn luyện thêm kỹ năng viết chương trình trong Pascal. II. PHƯƠNG TIỆN DẠY HỌC Sử dụng bảng kết hợp máy chiếu để chiếu một số bài tập giáo viên chuẩn bị sẵn. III. NỘI DUNG Bài 3: Có thể dùng câu lệnh While … do… để thay thế cho câu lệnh For… do… được không? Nếu được, hãy thực hiện điều đó với chương trình Tong_1a. Trả lời: Có thể sử dụng câu lệnh While … do… để thay thế cho câu lệnh For… do… trong ví dụ 1a, khi đó ta chuyển giá trị cuối thành điều kiện của bài toán. Bài toán được phát biểu lại như sau: Tính cho đến khi i>100. Chương trình được viết lại: Program Bai_1a; Uses crt; Var S: Real; a,i: integer; Begin clrscr; write('Nhap vao gia tri a= '); readln(a); S:= 1/a; i:=1; While not(i>100) do begin S:= S + 1/(a+i); i := i+1; end; write('Ket qua S= ',S:6:2); Write('Nhan Enter de thoat'); Readln; End. Bài 4: Viết câu lệnh rẽ nhánh tính: a) Trả lời: nếu điểm (x,y) thuộc đường tròn O(a,b) bán kính r. ngược lại b) Trả lời: Bài 5: Lập trình tính: a) Trả lời: Program Bai_5a; Uses crt; Var Y: Real; n: integer; Begin clrscr; Y:=0; For n:= 1 to 100 do Y:= Y+n/(n+1); Write('Tong Y =',Y::2); Write('Nhan Enter de thoat'); Readln; End. b) cho đến khi Program Bai_5b; Uses crt; Var e,gt: Real; n: integer; Begin clrscr; gt := 1/2; e := 2 + gt; n:=3; While not(gt<2*1E-6) do begin gt:= gt*1/n; e := e+gt; n := n+1; end; write('Ket qua e(n)= ',e:6:2); write('Nhan Enter de thoat'); Readln; End. Bài 6: Lập trình giải bài toán cổ sau: Vừa gà vừa chó Bó lại cho tròn Ba mươi sáu con Một trăm chân chẵn Hỏi có bao nhiêu con mỗi loại? Trả lời: Program Bai_6; Uses crt; Var ga, cho: byte; Begin clrscr; for cho:=1 to 24 do begin ga:= 36 - cho; if ga + 2*cho = 50 then write('So ga la: ',ga,' So cho la: ',cho); end; Write('Nhan Enter de thoat'); Readln; End. Bài 7: Nhập từ bàn phím tuổi của cha và tuổi của con (hiện tại tuổi cha lớn hơn 2 lần tuổi con và tuổi cha hơn tuổi con ít nhất là 25 tuổi). Đưa ra màn hình câu trả lời cho câu hỏi “Bao nhiêu năm nữa thì tuổi cha gấp đôi tuổi con?”. Trả lời: Program Bai_7; Uses crt; Var cha, con, nam: integer; Begin clrscr; write('nhap vao tuoi cha va tuoi con'); write('Chu y: tuoicha > 2lan tuoicon va tuoicha - tuoicon>=25'); write('Tuoi cha = '); readln(cha); write('Tuoi con = '); readln(con); nam := 0; while not(cha = 2*con) do begin cha := cha + 1; con := con + 1; nam := nam +1; end; write('Sau ', nam,' thi tuoi cha gap doi tuoi con'); write('Nhan Enter de thoat'); Readln; End. Bài 8: Một người gửi tiết kiệm không thời hạn với số tiền ban đầu là A với lãi suất 0,3% mỗi tháng. Hỏi sau bao nhiêu tháng, người đó sẽ có số tiền rút về là B. Biết rằng tiền lãi không được cộng vào vốn. Trả lời: Program Bai_8; Uses crt; Const laisuat = 0.003; Var tienvon, tienrut, tinhlai: real; thang: integer; Begin clrscr; write('nhap vao so tien von'); readln(tienvon); write('nhap vao so tien muon co khi rut ve'); readln(tienrut); tinhlai := tienvon; thang := 0; while (tienvon < tienrut) do begin tienvon := tienvon + tinhlai*laisuat; thang := thang +1; end; write('Sau ', thang,' thang thi se co so tien rut ve la ',tienrut); write('Nhan Enter de thoat'); Readln; End. IV. BÀI TẬP VỀ NHÀ Xem bài thực hành số 2 và các chương trình đã viết trong tiết bài tập để tiết sau thực hành tại phòng máy. V. RÚT KINH NGHIÊM ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… Tiết 15,16: BÀI TẬP VÀ THỰC HÀNH SỐ 2 Ngày soạn: ……/……/2008 Ngày dạy: ……/……/2008 I. MỤC ĐÍCH, YÊU CẦU Xây dựng chương trình có sử dụng cấu trúc rẽ nhánh (dạng thiếu và dạng đủ); Xây dựng chương trình có sử dụng cấu trúc lặp (lặp với số lần xác định và lặp với số lần chưa xác định); Sửa lỗi khi trình biên dịch phát hiện lỗi sai. II. PHƯƠNG TIỆN DẠY HỌC Thực hành trực tiếp trên máy tính. III. NỘI DUNG Bài 1: Bài toán Bộ số Pitago Bộ ba số nguyên a, b, c được gọi là bộ số Pitago nếu tổng bình phương của 2 số bằng bình phương số còn lại. Viết chương trình nhập từ bàn phím ba số nguyên a, b, c và kiểm tra xem chúng có phải là bộ số Pitago hay không ? Những công việc thực hiện: a) Học sinh gõ chương trình sau: program Pitago; uses crt; var a,b,c: integer; Begin clrscr; write('nhap gia tri a= '); readln(a); write('nhap gia tri b= '); readln(b); write('nhap gia tri c= '); readln(c); if (a*a = b*b + c*c) or (b*b = a*a + c*c) or (c*c = a*a + b*b) then write('Ba so ',a,' ',b,' ', c, 'la bo Pitago') else write('Ba so ',a,' ',b,' ', c, 'khong phai bo Pitago'); write('nhan phim Enter de thoat !'); readln; End. b) Lưu chương trình với tên PITAGO lên đĩa. c) Dịch và sửa lỗi chương trình (nếu có). d) Chạy chương trình với các bộ số bất kì. d) Nhấn phím F7 để thực hiện từng câu lệnh của chương trình, nhập các giá trị a = 3, b = 4, c = 5. Bài 2: Gõ các chương trình đã viết trong phần bài học và trong tiết bài tập để củng cố lại kiến thức về câu lệnh rẽ nhánh và câu lệnh lặp trong chương III. IV. BÀI TẬP VỀ NHÀ Ôn tập kiến thức của 3 chương đã học để chuẩn bị cho tiết kiểm tra 1 tiết. V. RÚT KINH NGHIÊM ………………………………………………………………………………………… Tiết 17: KIỂM TRA 1 TIẾT I. Mục tiêu đánh giá: Đánh giá kiến thức và kỹ năng của học sinh về: Một số khái niệm về lập trình và ngôn ngữ lập trình; Cấu trúc chương tình; Một số kiểu dữ liệu chuẩn; Khai báo biến; Phép toán, biểu thức, lệnh gán; Các thủ tục vào/ra; Hiệu chỉnh chương trình; Cấu trúc rẽ nhánh và cấu trúc lặp. II. Mục đích, yêu cầu của đề: Kiểm tra kiến thức của học sinh về biết, hiểu và vận dụng các nội dung đã được học trong 3 chương (I, II, III). III. Ma trận đề: Nội dung Mức độ Chương I Chương II Chương III Biết Câu 1,3 Câu 3,8,9 Câu 1,2 Hiểu Câu 4 Câu 1,2,5 Câu 3 Vận dụng Câu 5,2 Câu 4,6,7,10 Câu 4,5,6,7,8,9 IV. Nội dung câu hỏi Chương I Câu 1: Chương trình dịch không có khả năng nào trong các khả năng sau: Phát hiện lỗi ngữ nghĩa; Phát hiện lỗi cú pháp; Thông báo lỗi cú pháp; Tạo được chương trình đích. Câu 2: Tên (do người dùng đặt) nào sau đây là đúng trong Pascal? Lớp 11 Lop 11 Lop11 11 Lớp 11 Câu 3: Biểu diễn nào dưới đây là từ khoá trong Pascal? Real; Sqrt; “End” Const Câu 4: Hãy chọn những biểu diễn hằng trong những biểu diễn dưới đây: ’11a’ -0.5 1024 11A Câu 5: Điền vào dấu (…) trong câu sau: “Ba thành phần cơ bản của ngôn ngữ lập trình bậc cao là: bảng chữ cái,……… và ngữ nghĩa”. Chương II Caâu 1: Ñeå giaûi pt baäc nhaát ax + b = 0 vôùi a, b thuoäc kieåu Integer thì bieán x thuoäc kieåu naøo trong caùc kieåu sau? Byte Integer Real Char Caâu 2: Bieán x ñöôïc khai baùo nhö sau: Var x: integer; thì x coù theå nhaän giaù trò naøo? 12 1.4 “pascal” true Caâu 3: Cho bieåu thöùc sau: Not (x=1), choïn phaùt bieåu ñuùng nhaát? a. “x beù hôn 1” b. “x lôùn hôn 1” c. “x khoâng baèng 1” d.“x baèng 1” Caâu 4: Haõy cho bieát keát quaû in ra maøn hình sau khi thöïc hieän daõy leänh sau? X:= 10; Y:= 5; X:= X+Y; Y:=X; X:= X+Y; Write(X,’,’,Y); 25,10 10,25 5,25 5,10 Caâu 5: Cho x, y, z laø caùc bieán kieåu nguyeân, leänh naøo ñuùng trong caùc leänh sau? x+y:=z; writeln(x,y,z:0:2); x:=y/z; Realn (x,y,z); Caâu 6: Cho bieát keát quaû traû veà cuûa bieåu thöùc sau: ((3>2) and (4>3)) or ((43)) True False And Or Caâu 7 : Cho bieát keát quaû traû veà cuûa bieåu thöùc sau: Round ((5mod2 + 6div3)/2); 1 1.5 2 2.5 Caâu 8: Trong NNLT Pascal töø khoùa Var duøng ñeå ? Khai baùo bieán Khai baùo haèng Khai baùo kieåu Khai baùo thö vieän chöôøn trình maãu. Câu 9: Để nhập dữ liệu cho 3 biến a,b,c ta viết lệnh : read(a); read(b); read(c); readln(a);readln(b,c); readln(a,b,c); Các câu trả lời đều đúng Câu 10: Đoạn chương trình sau cho kết quả là : S:=5; Writeln(‘ket qua là :’ , s+10); Readln; ‘ket qua la :’ , 15 ket qua la : 15 15 5 Chương III Câu 1: Các lệnh nào trong ngôn ngữ lập trình Pascal ta dùng để lặp: While…do, if…then For …to…do, if…then While …do, for…to(downto)…do If…then, while …do, for…to(downto)…do Câu 2: Trong Pascal, biến đếm của lệnh For…to(downto)…do phải có kiểu dữ liệu là: Kiểu thực Kiểu nguyên hoặc thực Kiểu nguyên hoặc thực hoặc kí tự Kiểu nguyên hoặc kí tự hoặc logic Câu 3: Cho biết các lệnh sau có mấy lỗi cú pháp: Var a,b:byte; If a>b then writeln(a); else write(b) Không có lỗi Có 1 lỗi Có 2 lỗi Có 3 lỗi Câu 4: Cho a, b là các biến kiểu nguyên, kết quả in ra màn hình của đoạn chương trình sau là bao nhiêu? a:=10; b:=15; While a<b do Begin a:=a+3; b:=b-1; End; Write(a:4); a. 13 b. 16 c. 19 d. 14 Câu 5: Cho S, i là biến nguyên. Khi chạy đoạn chương trình: S:=1; For i:=1 to 10 do s:=s+i; Writeln(s); Kết quả in ra màn hình là: a.11 b.55 c. 56 d. 101 Câu 6: Hãy cho biết kết quả in ra màn hình là bao nhiêu khi x là biến thực? x:=10; If x<=10 then x:=x-5; Writeln(x:3:1); a. 10.0 b. 5.0 c.5 d. 10 Câu 7: Cho a,b là biến nguyên, lệnh nào sau đây in ra màn hình số lớn nhất giữa a và b? If a >b then readln(a) else readln(b); If a<b then writeln(a) else writeln(b); If a>b then write(a) else write(b); If a>b then write(b) else write(a); nếu x >= y nếu x<y Câu 8: Viết câu lệnh trong Pascal mô tả cho bài toán sau: Câu 9: Lập trình tính
File đính kèm:
- Giáo án tin học 11 - Học kỳ I (Pascal).doc