1. Trang chủ
  2. » Giáo Dục - Đào Tạo

bai

63 3 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 63
Dung lượng 753,5 KB

Nội dung

-Söû duïng caùc kieåu döõ lieäu vaø khai baùo bieán ñuùng ñeå coù theå vieát ñöôïc moät chöông trình.. Troïng taâm:.[r]

(1)

CHƯƠNG I: MỘT SỐ KHÁI NIỆM LẬP TRÌNH VÀ NGƠN NGỮ LẬP TRÌNH

BÀI 1: KHÁI NIỆM LẬP TRÌNH VÀ NGƠN NGỮ LẬP TRÌNH

I MỤC TIÊU BAØI HỌC: Kiến thức:

-Biết khái niệm lập trình ngơn ngữ lập trình. -Biết khái niệm chương trình dịch.

-Phân biệt loại chương trình dịch: thơng dịch biên dịch. Kỹ năng:

-Chưa cần kó cụ thể. Trọng tâm:

-Chương trình dịch. Tư – Thái độ:

-Học tập nghiêm túc lập trình. II PHƯƠNG TIỆN CHUẨN BỊ :

Giáo viên:

-Phương pháp: Vấn đáp, gợi mở.

-Phương tiện: Phấn màu, thước kẻ, SGK tin11, SGV.

Hoïc sinh:

-Sách giáo khoa, đọc trước SGK, thực tiễn. III TIẾN TRÌNH BÀI HỌC:

.Ổn định lớp kiểm tra sĩ số .Kiểm tra cũ:không .Bài mới:

HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC

SINH NỘI DUNG

Hoạt động 1: Tìm hiểu khái niệm lập trình ngơn ngữ lập trình. GV: Đặt vấn đề: tốn có thuật tốn

đều giải máy tính Các bước để giải toán: +Xác định toán +Xây dựng thuật tốn khả thi +Lập trình

HS: Chú ý lắng nghe

GV: u cầu học sinh: Xác định yếu tố input output tốn giải phương trình bậc ax+b=0:

B1: Nhập a,b

B2: Nếu a<>0, kết luận: x=-b/a

B3: Nếu a=0 b<>0, kết luận: vô nghiệm B4: Nếu a=0 b=0, kết luận: vô số nghiệm

HS: Xaùc định:

Input: a,b

Output: nghiệm nhất: x=-b/a, voâ nghiệm, voâ

số nghiệm

GV: Diễn giảng: hệ thống bước gọi thuật toán

Hỏi: diễn đạt thuật toán cho máy hiểu em

(2)

dùng ngôn ngữ gì?

HS: Dùng ngôn ngữ lập trình

GV: Diễn giảng: Hoạt động để diễn đạt thuật tốn thơng qua ngơn ngữ lập trình gọi lập trình

Yêu cầu: đọc SGK cho biết khái niệm lập trình

HS: Lập trình việc sử dụng cấu trúc liệu

và lệnh ngôn ngữ lập trình cụ thể để mô

tả liệu diễn đạt thao tác thuật toán GV: Hỏi: kết hoạt động lập trình gì?

HS: Được chương trình

GV: Yêu cầu: Ghi loại ngôn ngữ lập trình biết

HS: Có loại ngôn ngữ lập trình:

+Ngôn ngữ máy

+Hợp ngữ

+Ngoân ngữ bậc cao

GV: Hỏi: em hiểu ngôn ngữ máy ngôn ngữ bậc cao?

HS: Ngôn ngữ máy: lệnh mô tả thành

các bit 0,1 Chương trình viết ngôn ngữ

máy nạp vô nhớ thực

Ngoân ngữ bậc cao:lệnh mô tả gần

ngôn ngữ người

Chương trình phải chuyển đổi thành chương

trình ngôn ngữ máy

GV: Hỏi: Để chuyển đổi chương trình viết ngơn ngữ bậc cao sang ngơn ngữ máy phải làm sao?

HS: Sử dụng chương trình dịch để chuyển đổi GV: Hỏi: Tại khơng lập trình ngơn ngữ máy mà phải làm ngơn ngữ bậc cao?

HS: Lập trình ngôn ngữ bậc cao dễ viết

hơn

Khái niệm lập trình: Lập trình sử dụng cấu

trúc liệu câu lệnh ngôn ngữ lập trình cụ thể để mơ tả liệu diễn đạt thuật tốn

-Có loại ngơn ngữ lập trình: Ngơn ngữ máy, hợp ngữ ngơn ngữ bậc cao

-Chương trình viết ngơn ngữ máy nạp trực tiếp vào nhớ thi hành

-Chương trình viết ngơn ngữ bậc cao nói chung khơng phụ thuộc loại máy, muốn thi hành phải chuyển sang ngơn ngữ máy

=>Cần phải có chương trình dịch để chuyển chương trình viết ngơn ngữ lập trình bậc cao sang ngơn ngữ máy để máy thi hành

Hoạt động 2: Tìm hiểu chương trình dịch: thơng dịch biên dịch GV: Đặt vấn đề: Giới thiệu đất nước cho

một du khách nước ngoài:

C1: cần người biết tiếng Anh dịch câu nói em cho người khách

C2: Soạn nội dung cần giới thiệu giấy dịch tồn nội dung sang tiếng Anh cho người khách

HS: Chú ý lắng nghe ví dụ đưa thảo luận để tìm ví dụ tương tự

GV: Yêu cầu học sinh nghiên cứu SGK cho biết bước tiến trình thơng dịch biên dịch

Chương trình dịch có loại: Biên dịch thông dịch

+ Biên dịch (Compiler): Thực bước sau:

-Duyệt, kiểm tra, phát lỗi kiểm tra tính đắn câu lệnh chương trình nguồn

-Dịch tồn chương trình nguồn thành chương trình đích (ngơn ngữ máy) để thực máy lưu trữ để sử dụng lại cần

(3)

HS: Tìm hiểu trả lời:

Biên dịch: ( cần thực nhiều lần) Thông dịch: (Phù hợp với môi trường

đối thoại người máy)

lệnh thực câu lệnh

Thông dịch thực cách lặp lại dãy bước sau:

-Kiểm tra tính đắn câu lệnh chương trình nguồn

-Chuyển đổi câu lệnh thành hay nhiều câu lệnh ngôn ngữ máy

-Thực câu lệnh vừa chuyển đổi

.Củng cố:

-Lập trình ngôn ngữ lập trình

-Hai loại chương trình dịch: thông dịch biên dịch .Dặn dò tập nhà:

-Mỗi loại ngôn ngữ lập trình phù hợp với lập trình có trình độ nào?

-Kể tên số ngôn ngữ lập trình bậc cao có sử dụng biên dịch số sử dụng kĩ thuật thoâng dịch

-Xem trước .Rút kinh nghiệm bổ sung:

………

-

-CHƯƠNG I: MỘT SỐ KHÁI NIỆM LẬP TRÌNH VÀ NGƠN NGỮ LẬP TRÌNH

BÀI 2: CÁC THÀNH PHẦN CỦA NGƠN NGỮ LẬP TRÌNH

I MỤC TIÊU BAØI HỌC: Kiến thức:

-Biết thành phần ngơn ngữ lập trình Một ngơn ngữ lập trình có thành phần: Bảng chữ cái, cú pháp, ngữ nghĩa.

-Biết số khái niệm như: tên, tên dành riêng, tên chuẩn, tên người lập trình đặt, hằng, biến và chú thích.

2 Kỹ năng:

-Phân biệt thành phần ngơn ngữ lập trình.

-Biết cách đặt tên phân biệt tên chuẩn, tên dành riêng tên người lập trình đặt -Phân biệt biến.

-Biết sử dụng thích. Trọng tâm:

-Một số khái niệm: tên dành riêng, tên chuẩn, tên người lập trình đặt, hằng, biến. Tư – Thái độ:

- Rèn luyện tư logic. II PHƯƠNG TIỆN CHUẨN BỊ :

Giáo viên:

-Phương pháp: thuyết trình kết hợp với vấn đáp gợi mở, hoạt đơng nhóm. -Phương tiện: Phấn màu, thước kẻ,SGK tin11 ,SGV.

Hoïc sinh:

-Sách giáo khoa, đọc trước SGK, thực tiễn. III TIẾN TRÌNH BÀI HỌC:

.Ổn định lớp kiểm tra sĩ số .Kiểm tra cũ:

-Tại phải xây dựng ngôn ngữ lập trình bậc cao?

-Chương trình dịch gì? Tại cần có chương trình dịch?

Tiết :2

(4)

-Phân biệt thông dịch biên dịch

.Bài mới:

HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC

SINH NỘI DUNG

Hoạt động 1: Tìm hiểu thành phần ngơn ngữ lập trình. GV: Hãy nhắc lại khái niệm ngơn ngữ lập

trình bậc cao số ngơn ngữ lập trình bậc cao

GV: Các lệnh mã hóa ngơn

ngữ gần với ngơn ngữ tiếng anh Chương trình viết ngơn ngữ lập trình bậc cao phải chuyển đổi thành chương trình ngơn ngữ máy thựa

Một số ngơn ngữ lập trình bậc cao: Pascal, C+ +,C#, Java,…

Một ngôn ngữ lập trình thường có thành phần: bảng chữ cái, cú pháp ngữ nghĩa

GV: Hỏi:bảng chữ sử dụng ngơn ngữ

lập trình gì?

HS: Nghiên cứu SGK trả lời: bảng chữ

trong ngơn ngữ lập trình gồm: chữ thường hoa bảng chữ tiếng anh, số từ 0,…, 9; kí tự khác

GV: Hỏi: cú pháp khác ngữ nghĩa chỗ nào? HS: Trả lời: cú pháp qui tắc để viết chương trình, dễ phát lỗi tổ hợp kí tự khơng hợp lệ, cịn ngữ nghĩa xác định ý nghĩa tổ hợp kí tự chương trình

1.Các thành phần bản:

- Mỗi ngơn ngữ lập trình thường có thành phần : bảng chữ cái, cú pháp ngữ nghĩa

a.Bảng chữ cái: Là tập ký hiệu dùng để viết chương trình

-Trong ngơn ngữ Pascal bảng chữ gồm: Các chữ bảng chữ tiếng Anh, chữ số 

số ký tự đặc biệt (xem SGK)

b.Cú pháp: Là quy tắc dùng để viết chương trình

c Ngữ nghĩa: Xác định ý nghĩa thao tác cần thực

ứng với tổ hợp ký tự dựa vào ngữ cảnh

-Cú pháp cho biết cách viết chương trình hợp lệ, ngữ nghĩa xác định ý nghĩa tổ hợp ký tự chương trình

-Lỗi cú pháp chương trình dịch phát thơng báo cho người lập trình Chương trình khơng cịn lỗi cú pháp dịch sang ngôn ngữ máy Lỗi ngữ nghĩa phát chạy chương trình

Hoạt động 2: Tìm hiểu tên ngơn ngữ lập trình. GV: Đặt vấn đề: đối tượng chương

trình phải đặt tên

HS: Trình bày: turbo pascal: tên tối đa 127 kí tự, dùng chữ, số , dấu gạch bắt đầu số

GV: Hỏi: vấn đề đặt ra: vấn đề chữ hoa

và thường ngôn ngữ lập trình có phân biệt hay khơng?

HS: Tìm hiểu trả lời: ngơn ngữ lập trình C+ + phân biệt chữ thường chữ hoa cịn ngơn ngữ pascal khơng

GV: Hỏi: nêu số ví dụ tên hợp lệ

và khơng hợp lệ turbo pascal?

2 Một số khái niệm a Tên

-Mọi đối tượng chương trình phải đặt tên

(5)

HS: Trả lời: số tên hợp lệ: CBA,_405 Một số tên không hợp lệ:9AB,VE C,AW@#K…

GV: Chia lớp thành ba nhóm: cho nhóm

nghiên cứu trình bày tên dành riêng , tên chuẩn, tên người lập trình đặt

HS: Nghiên cứu trình bày:

Tên dành riêng ( từ khóa) :là tên dùng với ý nghĩa xác định , không dùng với ý nghĩa khác Tên chuẩn:là tên ngơn ngữ lập trình có ý nghĩa đó, định nghĩa lại để dùng với ý nghĩa khác

Tên người lập trình đặt tên dùng ý nghĩa riêng người lập trình khai báo trước sử dụng khơng trùng với tên dành riêng

GV: Hỏi:Xác định tên dành riêng , tên chuẩn,

tên người lập trình đặt: program, type, var,abs vidu,xyz, abc,byte, div,char

HS: Trả lời:

Tên dành riêng:Program, type

Tên chuẩn:integer, byte, abs,div,char Tên người lập trình đặt:vidu,xyz,abc

GV: Đúc kết lại tất ý kiến nhóm.

-Ngơn ngữ lập trình thường có loại tên bản: Tên dành riêng, tên chuẩn tên người lập trình tự đặt Tên dành riêng:

-Là tên ngơn ngữ lập trình quy định với ý nghĩa xác định mà người lập trình khơng thể dùng với ý nghĩa khác

-Tên dành riêng cịn gọi từ khóa

Ví dụ: Một số từ khóa

Trong ngơn ngữ Pascal: Program, Var, Uses, Begin, End, …

Trong ngôn ngữ C++: main, include, while, void,… Tên chuẩn:

-Là tên ngơn ngữ lập trình (NNLT) dùng với ý nghĩa thư viện NNLT, người lập trình sử dụng với ý nghĩa khác

Ví dụ: Một số tên chuẩn

Trong ngôn ngữ Pascal: Real, Integer, Sin, Cos, Trong ngôn ngữ C==: cin,cout Getchar…

Tên người lập trình tự đặt

-Được xác định cách khai báo trước sử dụng không trùng với tên dành riêng

-Các tên chương trình khơng trùng

Hoạt động 3: Tìm hiểu , biến thích. GV: Hỏi: cho ví dụ số , xâu

và logic?

Trình bày khái niệm này?

HS: Trả lời:Hằng số là:31,4; +3.1419, 1.0E-6

Haèng logic: true,false Hằng xâu: “ học di”

Hằng số:là số ngun, số thực, có dấu khơng dấu

Hằng logic giá trị sai

b Hằng biến Hằng:

- Các ngơn ngữ lập trình thường có: + Hằng số học : số nguyên số thực

+ Hằng xâu : chuỗi ký tự đặt d6áu nháy “ ””

+ Hằng Logic : giá trị sai

Là đại lượng có giá trị khơng đổi q trình thực chương trình

Bieán:

(6)

Hằng xâu chuỗi kí tự mã Ascii, đặc cặp dấu nháy

GV: Hỏi:hãy xác định số xâu

trong ví dụ: ‘ abc’; 3,14; ’14,3’ ;1.5E+3 Để xác định xâu dấu nháy đơn pascal:’ ‘

HS: Trả lời: số 3,14;1.5E+3 Hằng xâu ‘abc’, ’14,3’

GV: Hoûi: định nghóa định

nghóa bieán?

HS: Nghiên cứu SGK trả lời:

Hằng giá trị không đổi thực chương trình

Biến phải khai báo trước sử dụng,lưu giá trị thay đổi thưc chương trình

GV: Hỏi: cho biết chức

thích chương trình ?

HS: Chú thích đặt cặp dấu {} (* *)để giải thích cho chương trình dễ hiểu

GV: Hỏi:Các lệnh viết dấu{} có

turbo pascal dịch không?

Tên biến tên thuộc kiểu tên ba loại học?

HS: Trả lời: khơng dịng thích Trả lời: tên người lập trình đặt

-Là đại lượng đặt tên, giá trị thay đổi chương trình

-Các NNLT có nhiều loại biến khác -Biến phải khai báo trước sử dụng

c Chú thích

- Chú thích khơng làm ảnh hưởng đến chương trình Trong Pascal thích đặt { } (* *)

Trong C++ Chú thích đặt /* */

.Củng cố:

-Nhắc lại khái niệm: tên , tên dành riêng ,tên chuẩn, tên người lập trình đặt -Phân biệt tên dành riêng ,tên chuẩn đồng thời biến

.Dặn dò tập nhà:

-Làm baøi 4,5,6 SGK

-Xem trước cấu trúc chương trình -Đọc đọc thêm ngơn ngữ pascal

.Rút kinh nghiệm bổ sung:

………

-

-CHƯƠNG I: MỘT SỐ KHÁI NIỆM LẬP TRÌNH VÀ NGƠN NGỮ LẬP TRÌNH

BÀI TẬP

I MỤC TIÊU BAØI HỌC: Kiến thức:

-Củng cố kiến thức học ban đầu lập trình, ngơn ngữ lập trình: chương trình dịch, thơng dịch biên dịch,các thành phần ngơn ngữ lập trình, tên chuẩn, tên dành riêng,hằng biến.

2 Kỹ năng:

-Hiểu phải xây dựng ngôn ngữ lập trình bậc cao.

-Biết cách phân biệt thơng dịch biên dịch,phân biệt tên dành riêng tên chuẩn. Tư – Thái độ:

Tieát :3

(7)

II PHƯƠNG TIỆN CHUẨN BỊ :

Giáo viên:

-Phương pháp: thuyết trình kết hợp với vấn đáp gợi mở. -Phương tiện: Phấn màu, thước kẻ, SGK tin11, SGV.

Hoïc sinh:

-Sách giáo khoa, đọc trước SGK, thực tiễn. III TIẾN TRÌNH BÀI HỌC:

.Ổn định lớp kiểm tra sĩ số .Kiểm tra cũ:

-Hãy nêu thành phần ngơn ngữ lập trình?

-Mọi đối tượng chương trình phải đặt tên, tên qui định ngơn ngữ lập trình nào?

-Hãy viết số tên hợp lệ ngôn ngữ lập trình Pascal,viết số tên dành riêng tên chuẩn? -Nêu hiểu biết biến ngôn ngữ lập trình?

.Bài mới:

HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC SINH

NỘI DUNG

Hoạt động 1: Củng cố kiến thức ban đầu lập trình, ngơn ngữ lập trình. GV: Nêu vấn đề: em học lập trình

và ngơn ngữ lập trình,bây trả lời số câu hỏi

GV: Yêu cầu: Học sinh trả lời xong câu, hỏi học sinh khác cần bổ sung câu trả lời bạn khơng, từ đúc kết thành câu trả lời hồn chỉnh

GV: Đặt câu hỏi số 1: Tại người ta phải xây dựng ngơn ngữ lập trình bậc cao? -Nhận xét, đánh giá bổ sung hướng dẫn cho học sinh trả lời câu hỏi số 1:

HS: Đọc suy nghĩ trả lời câu hỏi

GV: Đặt câu hỏi 2: Chương trình dịch gì?

Tại cần phải có chương trình dịch?

HS: Suy nghĩ, trả lời câu hỏi

GV: Đặt câu hỏi 3: Biên dịch thông dịch

khác nào?

-Phân tích câu trả lời học sinh

HS:Suy nghĩ, trả lời câu hỏi, cho ví dụ

GV: Đặt câu hỏi 4: Hãy cho biết điểm

khác tên dành riêng tên chuẩn? -Gọi hs trả lời cho ví dụ

HS: Suy nghĩ để đưa phương án trả lời

GV: Phân tích câu trả lời học sinh

Câu 1: ngơn ngữ lập trình bậc cao gần với ngơn ngữ tự nhiên nên dễ hiểu, dễ nâng cấp.Chương trình viết ngơn ngữ lập trình bậc cao khơng phụ thuộc vào phần cứng máy tính nên thực nhiều loại máy

Cho phép làm việc với nhiều kiểu liệu

Câu 2:Chương trình dịch chương trình chuyển đổi chương trình viết ngơn ngữ lập trình bậc cao thành ngơn ngữ máy

Chương trình viế ngơn ngữ máy nạp vào nhớ htực

Câu 3:

Trình thơng dịch:dịch câu lệnh ngôn ngữ máy thực câu lệnh, báo lỗi

Trình biên dịch:duyệt, phát lỗi, kiểm tra tính đắn, dịch tồn chương trình nguồn thành chương trình đích lưu trữ để sử dụng lại Câu 4:

Tên dành riêng:khôn gđược dùng khác với ý nghĩa xác định

Tên chuẩn:có thể dùng với ý nghĩa khác phải khai báo

(8)

GV: Đặt câu hỏi 5: Hãy tự viết ba tên theo quy tắc Pascal

-Gọi học sinh lên bảng cho ví dụ tên người lập trình đặt

-Nhận xét, sửa chữa, góp ý

HS: Suy nghĩ, trả lời, giải thích câu hỏi,

GV: Đặt câu hỏi 6: Hãy cho biết biểu

diễn biểu diễn Pascal rõ trường hợp:

a) 150.0 b) –22 c) 6,23 d) ‘43’ e) A20 f) 1.06E-15 g) 4+6 h) ‘C i) ‘TRUE’

HS: Suy nghĩ, trả lời câu hỏi

GV:Nhận xét, giải thích

Câu 5:

Ba tên ngơn ngữ lập trình Pascal: Tinhoc, lap_trinh11,_92hugo

Ba tên dành riêng:program, const, var Ba tên chuẩn:char, exp,sin

Câu 6:

Những biểu diễn pascal: 6,23 ( thay dấu chấm)

A20 ( tên không rõ giá trị khôn gphải hằng) ‘C ( sai qui định xâu)

Còn: 4+6 biểu thức Pascal chuẩn coi Turbo Pascal

Hoạt động 2: Tìm hiểu số tập. GV: Nêu số câu hỏi:

HS: Học sinh suy nghĩ trả lời:

Câu 1: chế độ biên dịch, chương trình dịch thơng suốt, hệ thống khơng báo lỗi.Có thể khẳng định ta có chương trình hay chưa?Tại sao?

Câu 2:Trong chế độ thông dịch, giả sử 2/3 số câu lệnh chương trình thực Có thể khẳng định chương trình khơng cịn chứa lỗi cú pháp hay không ? Tại sao?

Câu 3:Sau chương trình dịch thơng suốt, khơng cịn lỗi cú pháp có cần tiếp tục tìm sửa lỗi chương trình nguồn hay khơng?

Câu 4:Tại phải kiểm tra tính đắn chương trình nhiều liệu thử nghiệm khác nhau?

Câu1:Chưa thể khẳng định ta có chương trình Vì có cịn lỗi nhữ nghĩa

Ví dụ:Câu lệnh Z:=a+b trình dịch Turbo Pascal câu lệnh cú pháp biến khai báo trước Nếu a b khai báo kiểu integer ( giá trị từ -32768 đến 32767)

Nếu cho a=20000, b=15000 Z thuộc kiểu longint câu lệnh sai ngữ nghĩa TP qui định cộng hai số integer phải trả kiểu Nhưng với Free Pascal khơng lỗi

Nếu khai báo a,b thuộc longint

Lỗi ngữ nghĩa sinh không đáp ứng yêu cầu ngữ nghĩa ngơn ngữ chương trình dịch cụ thể Câu 2:Khơng thể khẳng định chương trình khơng cịn chứa lỗi cú pháp.Vì theo thơng dịch câu lệnh 1/3 cịn lại chưa kiểm tra tính đắn ,nên có lỗi xảy

Câu 3:Cịn cần tiếp tục tìm sửa lỗi chương trình nguồn chương trình nguồn cịn có lỗi ngữ nghĩa

Câu 4:Bởi chương trình chạy sai số liệu đặc biệt đó.Ví dụ : chương trình xếp dãy số tăng có liệu có hai phần tử trùng

(9)

Câu 5: Trong chương trình cịn có lỗi cú pháp thơng thường chương trình biên dịch hay thông dịch phát lỗi nhanh sao?

Câu 6: người ta dùng trình soạn thảo ngơn ngữ bậc cao để soạn thảo chương trình nguồn cho ngơn ngữ bậc cao khác khơng thể dùng trình soạn thảo cho ngơn ngữ máy được? Vì sao?

Câu 7:Hãy giải thích hợp ngữ chưa thích hợp với đa số người lập trình ứng dụng?

Câu 8:có thể nói so với hợp ngữ ngơn ngữ lập trình bậc cao phụ thuộc vào loại máy cụ thể khơng?Hãy giải thích sao?

vì kiểm tra tính đắn duyệt sửa lỗi tồn chương trình thực lệnh

Câu 6:Vì ngơn ngữ máy câu lệnh biểu diễn dãy bit, loại máy tính có ngơn ngữ riêng.Ngơn ngữ máy cho phép tối ưu khả máy tính

Mặt khác ngơn ngữ bậc cao cần phải có chương trình dịch nên thực

Câu 7:Vì chương trình viết hợp ngữ cịn phụ thuộc vào máy, chương trình cịn cồng kềnh

Câu 8:Ngơn ngữ lập trình bậc cao phụ thuộc vào loại máy cụ thể, chương trình thực nhiều loại máy khác gần với ngôn ngữ tự nhiện

Chương trình trở nên ngắn gọn, dễ chỉnh sửa , cho phép làm việc nhiều kiểu liệu

.Củng cố:

-Giáo viên nhắc lại số kiến thức chương đặc biệt chương trình dịch, cú pháp ngữ nghĩa, tên ngôn ngữ lập trình

.Dặn dò tập nhà:

-Học sinh nhà xem lại tập chuẩn bị

.Rút kinh nghiệm bổ sung:

-

-CHƯƠNG II: -CHƯƠNG TRÌNH ĐƠN GIẢN BÀI 3: CẤU TRÚC CHƯƠNG TRÌNH

I MỤC TIÊU BÀI HỌC: Kiến thức:

-Biết cấu trúc chung thành phần chương trình viết ngơn ngữ bậc cao. -Hiểu chương trình mơ tả thuật tốn ngơn ngữ lập trình

-Biết cấu trúc chương trình đơn giản gồm cấu trúc chung thành phần. -Nhận biết phần chương trình đơn giản.

2 Kỹ năng:

-Nhận thức chương trình viết ngơn ngữ lập trình bậc cao cần phải viết cú pháp ngơn ngữ đó.

-Biết viết biểu thức đơn giản chương trình. Trọng tâm:

-Các thành phần chương trình. Tư – Thái độ:

-Xác định thái độ nghiêm túc học tập làm quen với nhiều quy định nghiêm ngặt lập trình. II PHƯƠNG TIỆN CHUẨN BỊ :

Giáo viên:

-Phương pháp: thuyết trình kết hợp với vấn đáp gợi mở. -Phương tiện: Phấn màu, thước kẻ,SGK tin11 ,SGV.

Hoïc sinh:

-Sách giáo khoa, soạn nhà. -Đọc trước SGK,thực tiễn.

Tieát :4

(10)

III TIẾN TRÌNH BÀI HỌC:

.Ổn định lớp kiểm tra sĩ số .Kiểm tra cũ: không .Bài mới:

HOẠT ĐỘNG CỦA GIÁO VIÊN VAØ HỌC

SINH NỘI DUNG

Hoạt động 1: Tìm hiểu cấu trúc chung chương trình. GV: Câu hỏi gợi ý: để viết đơn

một tập làm văn phải viết phần nào?Vì phải chia ra?

Yêu cầu học sinh nghiên cứu SGK trả lời

HS: Suy nghĩ trả lời:có phần: mở đầu, phần thân phần kết luận

Bởi : chia dễ viết, dễ hiểu nội dung kiểm tra

GV: Hỏi:chương trình viết ngơn ngữ lập trình bậc cao có phần?

HS: Trả lời: cấu trúc chương trình diễn tả gồm: [<phần khai báo>]

<phần thân>

Phần khai báo có khơng , phần thân chương trình thiết phải có

1 Cấu trúc chung

- Mỗi chương trình nói chung gồm phần: phần khai báo phần thân chương trình

[<Phần khai báo>] <Phần thân>

Hoạt động 2: Tìm hiểu thành phần chương trình. GV: Yêu cầu học sinh nghiên cứu SGK trả

lời:

Hỏi:trong phần khai báo có khai báo nào?

HS: Tên chương trình , thư viện , hằng, biến

và chương trình

GV: Giúp học sinh hiểu phần có khơng.u cầu học sinh lấy ví dụ khai báo tên chương trình ngơn ngữ Pascal

HS: Program chongiadung;

tên chương trình nên đặt xác với mục đích chương trình

GV: Trình bày:mỗi ngơn ngữ lập trình có thư viện cung cấp chương trình mẫu, để sử dụng phải khai báo.Yêu cầu học sinh lấy ví dụ khai báo thư viện ngôn ngữ Pascal

HS: Uses tênthưviện;

Uses crt; cung cấp chương trình làm việc với hình văn bàn phím

Và lệnh clrscr; xóa hình đưa dấu trỏ đầu hình

GV: Trình bày: khai báo tạo thuận lợi để chỉnh sửa giá trị lần cho tồn chương trình.u cầu lấy ví dụ khai báo

2 Các thành phần chương trình a.Phần khai báo

- Có thể khai báo tên chương trình, đặt tên, biến, thư viện, chương trình con,…

Khai báo tên chương trình

- Trong Turbo pascal

Program <tên chương trình>;

- Tên chương trình người lập trình tự đặt theo quy tắc đặt tên

Ví dụ : Program Bai_1;

Program phuongtrinh;

Khai báo thư viện:

- Trong ngôn ngữ Pascal : Uses <tên thư viện>; - Trong ngôn ngữ C++ :

#include <Tên tệp thư viện>

Ví dụ: Trong Turbo Pascal : Uses CRT, GRAPH;

Khai baùo :

(11)

ngơn ngữ Pascal

HS: Const kq = ‘thua’; Const giadung =5.500; Const no =60;

GV: Trình bày:biến phải đặt tên khai báo để chương trình dịch biết lưu trữ xử lý.Yêu cầu học sinh lấy ví dụ

HS: Var tenbien :kieugiatri;

Để giải phương trình bậc nhất:ax+b=0 giá trị a,b cụ thể ta khai báo biến a,b:

Var a,b:integer;

GV: Yêu cầu học sinh cho biết cấu trúc chung phần thân chương trình ngơn ngữ Pascal?( khai báo chương trình tìm hiểu sau)

HS: Begin

Dãy leänh; End

thường đặt tên cho tiện sử dụng

Ví dụ: Trong Pascal :

Const N = 100; e = 2.7;

Trong C++ :

Const int N = 100; Const float e = 2.7

Khai báo biến :

- Mọi biến sử dụng chương trình phải khai báo để chưoyng trình dịch biết để xử lý lưu trữ

- Biến mang giá trị gọi biến đơn (Khai báo biến trình bày 5)

Phần thân chương trình :

- Thân chương trình thường nơi chứa tồn câu lệnh chương trình lời gọi chương trình

- Thân chương trình thường có cặp dấu hiệu bắt đầu kết thúc chương trình

Ví dụ: Trong ngơn gnữ Pascal

Begin

[<Các câu lệnh>] End

Hoạt động 3: Tìm hiểu ví dụ chương trình đơn giản. GV: Đưa bảng có chương trình pascal đơn

giản

Program giadung; Uses crt;

Const giadung = 5.500; Begin

Clrscr;

Writeln(‘ xin chao cac ban toi la computer so:’,giadung);

Readln; End

GV: Hỏi:chỉ phần khai báo chương trình thân chương trình?

HS: Khai báo tên chương trình Khai báo thư viện

Khai báo

Phần thân chương trình có lệnh xố hình , lệnh đưa thơng tin hình

GV: Đưa bảng có chương trình c++ đơn giản:

#include < stdio.h> Void main()

3 Ví dụ chương trình đơn giản

Xét hai chương trình đơn giản ngôn ngữ khác sau :

Chương trình : Trong ngơn ngữ Turbo Pascal

Chương trình : Trong ngơn ngữ C++

(12)

{ printf(“ xin chao toi la computer”); }

GV: Hỏi:phần khai báo chương trình thân chương trình lệnh Printf có ý nghóa gì?

HS: Lệnh Printf dùng để đưa thơng tin hình

GV: Yêu cầu học sinh lấy ví dụ chương trình khác?

HS: Begin writeln(‘ thieu no’); End

.Củng cố:

-Giáo viên nhắc lại thành phần chương trình

.Dặn dò tập nhà:

- Học sinh chuẩn bị

.Rút kinh nghiệm bổ sung:

-

-CHƯƠNG II: -CHƯƠNG TRÌNH ĐƠN GIẢN

BAØI 4-5: MỘT SỐ KIỂU DỮ LIỆU CHUẨN-KHAI BÁO BIẾN

I MỤC TIÊU BAØI HỌC: Kiến thức:

- Biết tên số kiểu liễu chuẩn: nguyên, thực, kí tự, logic biết giới hạn biểu diễn mỗi loại kiểu liệu đó.

-Biết biến dùng chương trình phải khai báo tên kiểu liệu trước sử dụng. -Biết cấu trúc chung khai báo biến ngơn ngữ Pascal.

2 Kỹ năng:

-Phải xác định kiểu cần khai báo liệu đơn giản. -Biết cách để khai báo biến đúng.

-Sử dụng kiểu liệu khai báo biến để viết chương trình. Trọng tâm:

-Khai báo biến. Tư – Thái độ:

-Thái độ nghiêm túc học tập II PHƯƠNG TIỆN CHUẨN BỊ :

Giáo viên:

-Phương pháp: thuyết trình kết hợp với vấn đáp gợi mở. -Phương tiện: Phấn màu, thước kẻ,SGK tin11,giáo án.

Hoïc sinh:

-Sách giáo khoa, soạn nhà. -Đọc trước SGK,thực tiễn.

III TIẾN TRÌNH BÀI HỌC:

.Ổn định lớp kiểm tra sĩ số .Kiểm tra cũ:

-Hãy viết chương trình Pascal đơn giản có sử dụng thư viện làm việc với hình văn bàn phím, có khai báo câu lệnh đưa thơng báo hình?

Tiết :5

(13)

.Bài mới:

HOẠT ĐỘNG CỦA GIÁO VIÊN VAØ HỌC SINH

NOÄI DUNG

Hoạt động 1: Tìm hiểu số kiểu liệu chuẩn. GV: Đặt vấn đề: toán học sử dụng tập

hợp số để thể phép tính tốn tập số tự nhiên, tập số nguyên, tập số hữu tỉ, tập số thực

Trình bày: tin học , ngơn ngữ lập trình Pascal để viết chương trình giải tốn cần tập có giới hạn định

HS: Học sinh suy nghĩ để thấy tập số tốn tương ứng với kiểu liệu Pascal

Các em hiểu sau:Vậy liệu thơng tin mã hố máy tính, ngơn ngữ lập trình thường cung cấp số kiểu liệu chuẩn Mỗi kiểu đặc trưng tên kiểu, miền giá trị, kích thước nhớ, phép toán, hàm thủ tục sử dụng chúng

GV: Yêu cầu học sinh nghiên cứu SGK trả lời câu hỏi sau:

-Trong ngôn ngữ lập trình Pascal người ta sử dụng kiểu liệu chuẩn?

-Có kiểu nguyên thường dùng, phạm vi biểu diễn loại?

- Có kiểu thực thường dùng phạm vi biểu diễn loại?

-Trình bày kiểu logic kiểu kí tự ngơn ngữ lập trình Pascal?

HS: Trả lời

- Sử dụng kiểu chuẩn

- Có kiểu nguyên: Kiểu byte, Kiểu integer, Kiểu word, Kiểu longint

-Có kiểu thực: Kiểu real, Kiểu extended -Đặc điểm kiểu logic, kiểu kí tự

GV: Lấy ví dụ để thấy kiểu kí tự sử dụng kí tự mã Ascii

VD: @ có mã 64, $ có mã 36, & có mã 38, % có mã 37

GV: Giải thích phạm vi biểu diễn loại kiểu số khác nhau:

- kiểu nguyên có hạn chế miền giá trị, máy tính kiểu nguyên hữu hạn, có thứ tự tập số ngun vơ hạn có thứ tự đếm

-kiểu thực miền giá trị mở rộng so với

Bài 4: Kiểu liệu chuẩn.

Kiểu nguyên, kiểu thực, kiểu kí tự, kiểu logic - Kiểu byte: 1byte, phạm vi: 0-255

Kieåu integer: 2byte, phạm vi:-215 – 215-1 -32768…32767 Kiểu word: byte, phaïm vi:0 - 216 -1 0…65535 Kiểu longint: byte, phạm vi:-231 – 231-1 -2148473648…2148473647

-Kiểu real: byte, phạm vi: có giá trị tuyệt đối nằm phạm vi từ : 10-38 đến 10 38

Khoảng từ 2.9* 10-39 đến 1.7 *1038 số + Khoảng từ -1.7* 1038 đến -2.9 * 10-39 số âm.

Một số thực viết dạng số thập phân: -1.5E3 = -1.5*103

Kiểu extended: 10 byte, phạm vi: có giá trị tuyệt đối nằm phạm vi từ : 10-4932 đến 104932 Khoảng từ: 3.4 * 10-4932 đến 1.1 * 104932

-Kiểu logic: có hai giá trị True ( đúng)hoặc False ( sai) dùng kiểm tra điều kiện tìm giá trị biểu thức logic

(14)

kiểu nguyên, kiểu thực lưu trữ kết tính tốn gần đúng,cũng số ngun số thực máy tính rời rạc hữu hạn.Phép toán chứa toán hạn gồm kiểu nguyên thực cho kết kiểu thực

GV: Hỏi: muốn tính tốn giá trị: 2, -5, 9.04 ta dùng kiểu liệu nào?

HS: Trả lời: kiểu số thực

phân từ đến 255

Hoạt động 2: Tìm hiểu khai báo biến đơn ngơn ngữ lập trình Pascal. GV: Nêu vấn đề:mọi biến dùng chương

trình cần khai báo tên kiểu liệu, tên biến dùng để xác lập quan hệ biến với địa nhớ nơi lưu trữ giá trị biến quan trọng khai báo biến nên nghiên cứu kĩ phần

GV: Hỏi: cấu trúc chung việc khai báo biến ngôn ngữ Pascal?

HS: Nghiên cứu SGK đồng thời nhớ trước

GV: Yêu cầu học sinh lấy ví dụ khai báo biến

HS: Lấy ví dụ

GV: Trình bày: khai báo thường đặt sau khai báo hằng: cấu trúc chương trình phần khai báo sau: Program <tênchươngtrình>;

Uses <têncácthưviên>;

Const <tênhằng> = <giátrịcủahằng>; Var <danhsáchbiến> : <kiểudữliệu>;

GV: Chú ý khai báo biến

GV: Hỏi:các em đưa ví dụ biến sai với qui định đặt tên, biến danh sách biến không phân cách dấu phẩy, tên biến trùng nhau, sử dụng biến chưa khai báo, biến danh sách không kiểu?

HS: Suy nghó đưa ví dụ: Var x y z:real;

A,a:integer; N,l:long int;

Trphu:integer,tphu:real;

Bài 5: Khai báo bieán.

Var < danh sách biến> :<kiểu liệu>;

Trong danh sách biến biến cách dấu phẩy

Kiểu liệu biến kiểu liệu chuẩn Sau từ khố khai báo nhiều danh sách biến *Ví dụ: var x,y: real; biến kiểu thực

a,b,c:char; biến kiểu kí tự

*Chú ý :

-Đặt tên biến gợi nhớ đến ý nghĩa biến

VD: đặt tên biến biểu diễn điểm rớt điểm đậu Không nên đặt: dr,dd mà đặt drot, ddau

-Không đặt ngắn dài dễ lỗi viết nhiều lần tên biến

VD: không nên đặt: latrieuphu, latiphu mà đặt trphu,tphu

(15)

GV: Khai báo biến để cấp phát nhớ cho biến , đưa tên biến vào danh sách đối tượng cần quản lý, kiểu biến giúp chương trình dịch biết cách tổ chức liệu, truy cập giá trị biến.Sau khai báo biến có vùng nhớ dành cho biến kiểu để lưu trữ giá trị biến

GV: Nêu ví dụ: xét khai báo biến: Var a,b,c:word;

X:longint; tno:integer; thua:byte;

Cho biết nhớ phải cấp phát bao nhiêu?

HS: Suy nghĩ trả lời:

Tổng nhớ cần cấp phát: a( 2byte),b( 2byte),c ( 2byte) X( 4byte)

tno( 2byte) tthua( 1byte) Tổng 13 byte

GV: Trình bày: sau khai báo vùng nhớ dành cho biến chưa xoá hết dẫn đến việc ban đầu biến nhận giá trị nên cần gán giá trị đầu cho biến.Các biến đơn thời điểm chứa giá trị

*Ví dụ: xét khai báo biến: Var a,b,c:word; X:longint; tno:integer; thua:byte;

Cho biết nhớ phải cấp phát bao nhiêu?

.Củng cố:

-Các kiểu liệu chuẩn: kiểu số nguyên, kiểu số thực, kiểu kí tự, kiểu logic

-Mọi biến chương trình phải khai báo để cấp phát nhớ cho biến.Cấu trúc chung khai báo biến: var <danh sách biến>: <tên kiểu liệu>;

.Dặn dò tập nhà:

-Làm taäp 1,2,3,4,5 SGK trang 35

-xem trước nội dung bài: phép tốn, biểu thức, lệnh gán

.Rút kinh nghiệm bổ sung:

-

-CHƯƠNG II: -CHƯƠNG TRÌNH ĐƠN GIẢN BÀI 6: PHÉP TOÁN, BIỂU THỨC, CÂU LỆNH GÁN

I MỤC TIÊU BAØI HỌC: Kiến thức:

- Biết khái niệm phép toán,biểu thức số học, hàm số học chuẩn, biểu thức quan hệ. -Nắm phép tốn thơng dụng ngơn ngữ lập trình.

-Học sinh phải hiểu lệnh gán, hiểu chức lệnh gán, hiểu cấu trúc lệnh gán. Kỹ năng:

- Viết biểu thức số học, biểu thức quan hệ biểu thức logic với phép tốn thơng dụng.

Tieát :6

(16)

-Sử dụng phép toán để xây dựng biểu thức.

-Viết lệnh gán, sử dụng lệnh gán để viết chương trình Trọng tâm:

-Biểu thức, lệnh gán. Tư – Thái độ:

- Giáo dục thái độ cách nhìn nhận biểu thức số học câu lệnh gán. II PHƯƠNG TIỆN CHUẨN BỊ :

Giáo viên:

-Phương pháp: thuyết trình kết hợp với vấn đáp gợi mở. -Phương tiện: Phấn màu, thước kẻ,SGK tin11,bảng con,SGV.

Hoïc sinh:

-Sách giáo khoa, soạn nhà. -Đọc trước SGK,thực tiễn.

III TIẾN TRÌNH BÀI HỌC:

.Ổn định lớp kiểm tra sĩ số .Kiểm tra cũ:

- Câu hỏi: Trình bày số kiểu liệu chuẩn thường dùng cho biến đơn pascal?

.Bài mới:

HOẠT ĐỘNG CỦA GIÁO VIÊN VAØ HỌC SINH

NỘI DUNG

Hoạt động 1: Tìm hiểu số phép tốn ngơn ngữ lập trình pascal. GV: Nêu vấn đề:bất kì ngơn ngữ lập trình

để mô tả thao tác thuật toán cần phải xây dựng phép toán.Các phép tốn ngơn ngữ lập trình thường có nét diễn đạt riêng thường ứng với phép toán ta thường thấy toán học

HS: Chú ý lắng nghe

GV: Hỏi:em kể số phép toán học toán học?

HS: Trả lời:cộng , trừ , nhân , chia, chia lấy nguyên, lấy phần dư, so sánh, phủ định

GV: Diễn giảng: ngôn ngữ lập trình pascal xây dựng phép tốn diễn đạt cách riêng

GV: Yêu cầu: học sinh đọc SGK cho biết nhóm phép tốn ngơn ngữ Pascal

HS: Ghi bài:

-Các phép toán số học:+, -, *, div, mod i mod j= i- i div j *j

-Các phép toán quan hệ:<, <=, >,>=, <> -Các phép toán logic:not, and, or

GV: Hỏi:sau ta sử dụng biểu thức có sử dụng phép tốn quan hệ kiểu trả kiểu gì?

HS: Trả lời: kiểu logic

* NNLT sử dụng đến phép toán, câu lệnh gán biểu thức, khái niệm xét NNLT Pascal

1 Phép toán:

NNLT Pascal sử dụng số phép toán sau: + Số nguyên: +,- , *, / , DIV, MOD

+ Số thực: +,- , *, / ,

(17)

GV: Diễn giảng:đối với phép toán div mod ta sử dụng cho kiểu liệu số nguyên

Hoạt động 2: Tìm hiểu biểu thức, hàm số học chuẩn ngôn ngữ Pascal. GV: Đặt vấn đề: toán học

gặp khái niệm biểu thức.Vậy yếu tố xây dựng nên biểu thức toán học gì?

HS: Trả lời: bao gồm hai phần tốn hạng tốn tử

GV: Trong lập trình biểu thức số học biểu thức có dạng tương tự cách viết toán học toán tử phép tốn số học cịn tốn hạng gì?

HS: Nghiên cứu SGK trả lời: toán hạng biến số, số, biến số, số liên kết toán tử dấu ngoặc tròn ( )

GV: Hãy biểu diễn biểu thức tốn học sau thành biểu thức ngơn ngữ lập trình: 9x3+2x2-x+3

x uv v

v u

uv

 

1 a3bc

xx2yy

HS: Lên bảng viết biểu thức ngơn ngữ lập trình:

9*x*x*x+2*x*x-x+3 u*v*(u+v)/(v-1)+u*v/x (a+b+c)/3

(x+2*y)/(x-y)

GV: Hỏi:hãy nêu thứ tự thực phép toán?

HS: Trả lời ghi bài:

-Thực phép toán ngoặc trước -Dãy phép tốn khơng chứa ngoặc thực từ trái sang phải:nhân, chia, chia nguyên, lấy phần dư thực trước, cộng trừ thực sau

GV: Nêu vấn đề:

Ngơn ngữ lập trình cung cấp thư viện chứa chương trình tính giá trị hàm toán học thường dùng gọi hàm số học chuẩn

Ta biết số hàm số học em kể tên số hàm đó?

HS: Trả lời:căn bậc hai, logarit, sin, cos

GV: Hỏi:em trình bày cách trình bày hàm số học chuẩn ngơn ngữ lập trình?

2 Biểu thức số học:

- Là dãy phép toán +,- , *, / , DIV, MOD từ biến kiểu số hàm

- Dùng dấu ( ) để qui định trình tự tính tốn VD: ( SGK- 25)

* Chú yù:

Thứ tự thực phép toán: + Trong ngoặc trước, ngoặc sau

+ Nhân, chia, chia nguyên, chia lấy dư trước, cộng, trừ sau

3 Hàm số học chuẩn:

Cách viết cho số hàm số học chuẩn: Tên hàm (đối số)

+ Đối số hay nhiều biểu thức số học đặt dấu ngoặc ( ) sau tên hàm

VD: (SGK- 26)

(18)

HS: Suy nghĩ trả lời: đối số đặt cặp ngoặc tròn sau tên hàm, hàm chuẩn xem biểu thức số học giống toán hạng

GV: Treo bảng chứa hàm số học chuẩn ,yêu cầu học sinh lên bảng điền đầy đủ kiểu đối số kiểu kết

HS: Nghiên cứu SGK trả lời số hàm chuẩn, ghi bài: bình phương, bậc hai, giá trị tuyệt đối, logarit tự nhiên, luỹ thừa số e, sin, cos Tương ứng ngơn ngữ lập trình: sqr(x), sqrt(x), abs(x), ln(x), exp(x), sin(x), cos(x)

GV: Hỏi:viết biểu thức sau sang biểu thức ngơn ngữ lập trình?

p(pa)(pb)(pc) , ( P=

2 c b a 

)

HS: Sqrt(p*(p-a)*(p-b)*(p-c))

GV: Hỏi: hai biểu thức số học kiểu liên kết với phép toán quan hệ ta biểu thức biểu thức gọi gì?

HS: Trả lời: biểu thức gọi biểu thức quan hệ

GV: Hỏi: lấy ví dụ biểu thức quan hệ?

HS: Suy nghĩ trả lời: no+6*laixuat*no>100

GV: Trình bày: “no” có giá trị 90 “laixuat” có giá trị :1.5% biểu thức có giá trị true

GV: Hỏi:em cho biết cấu trúc chung biểu thức quan hệ, biểu thức quan hệ thực theo trình tự nào?

HS: Trả lời ghi bài: cấu trúc chung biểu thức quan hệ:

< biểu thức1> phép toán quan hệ <biểu thức2> Biểu thức quan hệ thực theo trình tự:

- tính giá trị biểu thức

- thực phép toán quan hệ

GV: Trình bày:các biểu thức quan hệ liên kết với phép toán logic.( and, or, not)

x y not x x and y x or y true true false true true true false false false true false true true false true false false true false false

GV: Hỏi:cho ví dụ biểu thức logic biểu diễn ngôn ngữ lập trình

4 Biểu thức quan hệ: Cấu trúc chung:

<BT1> < phép toán quan hệ > <BT2> + BT1 BT2 phải kiểu

+ Kết biểu thức quan hệ TRUE FALSE

VD:- > 2

5 Biểu thức logic.

- Biểu thức logic đơn gian biến logic - Dùng để liên kết nhiều biểu thức quan hệ lại với

(19)

HS: Cho ví dụ:

Xeáp :6.5<= kha<= 7.9

Hàng đổi hàng: 3<= bo 9<= trau Biểu diễn ngôn ngữ lập trình: (6.5<=kha) and (kha<=7.9) (3<= bo) or (9<= trau)

GV: Hỏi:kết biểu thức logic có kiểu liệu gì?

HS: Nhận thấy giá trị biểu thức logic true false( kiểu logic)

Hoạt động 3: Tìm hiểu câu lệnh gán ngơn ngữ lập trình pascal. GV: Trình bày: chức lệnh đặt cho

biến có tên bên trái dấu “:=” có giá trị với giá trị biểu thức bên phải

Cấu trúc lệnh gán: <tên biến>:=<biểu thức>;

GV: Hỏi:vậy kiểu biến giá trị biểu thức nào?

HS: Trả lời:Kiểu giá trị biểu thức phù hợp với kiểu biến

GV: Giới thiệu ví dụ lệnh gán Pascal: No:=4+6;

GV: Giải thích:lấy 4+6 đem kết đưa vào no nên “no” 10;

GV: Hỏi:vậy em nêu chức lệnh gán?

HS: Nghe ví dụ suy nghĩ để trả lời Tính giá trị biểu thức gán giá trị tính vào tên biến

GV: Giới thiệu chương trình:nhập số giây in giờ, phút, giây tương ứng

Program doigiay; Var h,m,s:integer; Begin

Writeln(‘ giay can doi la:’); S:=5000;

h:= s div 3600;

m:= (s mod 3600) div 60; s:= s mod 60;

writeln(‘doi ta duoc:’,h,’:’, m,’:’,s); end

HS: Quan sát tìm hiểu cơng việc câu lệnh đồng thời kết chương trình

HS: Lên bảng viết kết chương trình giải thích câu lệnh

6 Câu lệnh gán.

- Lệnh gán cấu trúc NNLT, thường dùng để gán gái trị cho biến

Cấu trúc:

< tên- biến>:= <biểu thức>;

VD:

x:= (b*b-4* a*c); i:= i+1;

j:= j-1;

.Củng cố:

(20)

- Nhắc lại cho học sinh : phép toán, biểu thức, lệnh gán ngơn ngữ lập trình pascal (về số học, quan hệvà logic)

.Dặn dò tập nhà:

- Học sinh chuẩn bị

.Rút kinh nghiệm bổ sung:

-

-CHƯƠNG II: -CHƯƠNG TRÌNH ĐƠN GIẢN BÀI 7: CÁC THỦ TỤC CHUẨN VÀO/RA ĐƠN GIẢN

BÀI 8: SOẠN THẢO, DỊCH, THỰC HIỆN VÀ HIỆU CHỈNH CHƯƠNG TRÌNH

I MỤC TIÊU BAØI HỌC: Kiến thức:

- Biết ý nghĩa thủ tục vào/ra đơn giản với việc lập trình để nhập liệu từ bàn phím đưa dữ liệu hình.

-Biết cấu trúc chung thủ tục vào ngôn ngữ Pascal. Kỹ năng:

- Viết lệnh vào/ra liệu.

-Rèn luyện việc nhập liệu thực chương trình. Trọng tâm:

-Các thủ tục chuan vào/ra. Tư – Thái độ:

-Nâng cao nhận thức cần phải thật cẩn thận việc nhập liệu cho liệu vịêc học lập trình pascal.

II PHƯƠNG TIỆN CHUẨN BỊ :

Giáo viên:

-Phương pháp: thuyết trình kết hợp với vấn đáp gợi mở, hoạt động nhóm. -Phương tiện: Phấn màu, thước kẻ,SGK tin11, SGV.

Hoïc sinh:

-Sách giáo khoa, soạn nhà. -Đọc trước SGK,thực tiễn.

III TIẾN TRÌNH BÀI HỌC:

.Ổn định lớp kiểm tra sĩ số .Kiểm tra cũ:

-Câu hỏi: Viết số hàm số học chuẩn Pascal?

Cho biết chức lệnh gán, cấu trúc chung lấy ví dụ?

.Bài mới:

HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC SINH

NỘI DUNG

Hoạt động 1: Tìm hiểu thủ tục chuẩn vào/ra đơn giản. GV: Đặt vấn đề: cần giải toán ta

phải đưa liệu vào để máy tính xử lý,ta sử dụng lệnh gán sử dụng với liệu cố định muốn chỉnh sửa lại

1 Nhập liệu vào từ bàn phím:

Tiết :7

(21)

phải vơ chương trình để chỉnh.Để khắc phục điều người ta sử dụng thủ tục nhập liệu

GV: Yêu cầu học sinh nghiên cứu SGK tìm hiểu cấu trúc chung thủ tục nhập liệu ngơn ngữ lập trình pascal

HS: Suy nghĩ trả lời, ghi bài:nhập liệu từ bàn phím thực thủ tục chuẩn: Read(<tên biến1>,…,<tên biến k>); Readln(<tên biến 1>,…<tên biến k>); ( trừ biến kiểu boolean)

Câu lệnh readln; khơng có biến dấu “ ()” có tác dụng dừng chương trình cho xem kết

GV: Nêu ví dụ:a,b,c biến số thực.Ta nhập liệu cho biến sau: Readln(a,b,c); nhập: -3.5 Trình bày:khi thực câu lệnh

read/readln chương trình tạm dừng sau ta gõ giá trị cho biến từ bàn phím từ trái qua phải cách khoảng trắng sau nhập đủ ta kết thúc phím enter

GV: Nêu vấn đề:sau xử lý xong kết tìm được lưu nhớ Để thấy kết hình ta phải sử dụng thủ tục xuất liệu

GV: Yêu cầu học sinh nghiên cứu SGK cho biết cấu trúc chung thủ tục xuất liệu ngơn ngữ lập trình pascal

HS: Nghiên cứu trả lơiø, ghi bài:

Cú pháp:write/writeln( <danh sách biểu thức>);

Danh sách biểu thức cách dấu phẩy

Biểu thức:hằng ,biến,các biểu thức số học Cách thực hiện:xuất kết toán hình từ trái qua phải

Câu lệnh Writeln sau xuất kết hình trỏ hình xuống đầu dịng

Lệnh writeln(); khơng có tham số:viết hình dịng chữ dịch chuyển trỏ hình xuống đầu dịng ( chừa chỗ trống)

GV: Diễn giảng: Các biểu thức câu lệnh writeln in qui cách sau:

Đối với kết thực:

<biểu thức>:<độ rộng>:<số chữ số thập phân> Đối với kết khác:

- Trong pascal ta dùng thủ tục chuẩn sau: Read(danh sách biến vào);hoặc

Readln(danh sách biến vào); - Ví dụ: Read(N); Readln(a,b,c);

- Chú ý:+ Khi nhập liệu từ bàn phím READ, READLN, có ý nghĩa nhau, thường hay dùng READLN

+ Khi nhập giá trị cho biến thủ tục, giá trị gõ cách dấu cách phím Enter

2 Đưa liệu hình

Trong pascal cung cấp thủ tục chuẩn:

write(<Danh sách kết ra>); writeln(<Danh sách kết ra>);

trong <Danh sách kết ra>có thể tên biến đơn, biểu thức,

Ví dụ: write(‘Nap so N:’); Readln(N); *Chú ý:

- writeln sau đưa kết trỏ xuống dịng

- Ngồi TPcó quy cách đưa thơng tin nàm hình sau:

+ Kết thực:

: <Độ rộng>:<số chữ số thập phân> + Kết khác:

:<Độ rộng>

ví dụ: Write(N:3); Writeln(‘X=’,x:8:2);

(22)

<biểu thức>:<độ rộng>

GV: Nêu ví dụ: write(a:8); Write(no:8:2);

vị trí kể từ vị trí trỏ thời dành để đưa giá trị a nên a có giá trị nguyên dương chữ số giá trị số âm chữ số vị trí đầu điền dấu cách.8 vị trí dành để đưa giá trị biến “no” vị trí để đưa phần thập phân.Do phần nguyên thập phân cách dấu chấm nên cịn lại vị trí cho phần ngun

HS: Theo dõi giáo viên trình bày ví dụ

GV: Hỏi: tham số lệnh write() thuộc kiểu char real quy định vị trí nào?

HS: Khi tham số có kiểu kí tự việc qui định vị trí giống kiểu nguyên

Khi tham số có kiểu thực phải quy định hai loại vị trí :vị trí cho tồn số thực vị trí cho phần thập phân

GV: Đưa bảng có chứa

HS: Theo dõi chương trình cho biết thủ tục nhập xuất liệu Kết việc chạy chương trình đồng thời giải thích câu lệnh

3 Chương trình ví dụ: chương trình tính diện tích

một hình chữ nhật: Program dtich; Uses crt; Var a,b,s:real; Begin

Clrscr;

Write(‘nhap chieu rong cua hcn’); Readln(a);

Write(‘nhap chieu dai cua hcn’); Readln(b);

S:=a*b;

Writeln(‘dieân tich la:’,s); Readln;

End

Hoạt động 2: Tìm hiểu việc soạn thảo , dịch, thực hiệu chỉnh chương trình. GV: Nêu vấn đề: thực chương trình viết

bằng ngơn ngữ lập trình pascal cần sử dụng chương trình dịch, dịch chương trình soạn thảo sang ngơn ngữ máy Vì hệ thống lập trình cung cấp phần mềm phục vụ cho việc soạn thảo, dịch, hiệu chỉnh chương trình

-Để sử dụng chương trình

turbopascal máy phải có file chương trình.Cụ thể:turbo.exe, turbo.tpl,

graph.tpu,egavga.bgi

GV: Yêu cầu học sinh theo dõi hình aûnh minh

Một số thao tác thường dùng pascal:

- Khi soạn thảo muốn xuống dòng nhấn Enter - Ghi file vào đĩa: F2

- Mở file có: F3

- Biên dịch chương trình: Alt +F9 - Chạy chương trình: Ctrl + F9 - Đóng cửa sổ chương trình: Alt + F3

(23)

hoạ hình pascal SGK

HS: Tìm hiểu:dịng thứ hai hình gọi bảng chọn, mục nhóm cơng việc ta lựa chọn Dấu “ :” cuối hình cho biết trỏ dịng cột hình soạn thảo

HS: Tập soạn chương trình dịch lỗi cú pháp:

GV: Hỏi: tìm lỗi cú pháp chương trình sau:

Program giadung Var gia:integer; Begin

Write(‘ ban hay nhap gia cho san pham:’); readln( gia);

Gdung:= sqr(gia); Write(‘ gia dung cua san pham:’,gdung);

End

Nhấn F2 lưu chương trình , sau dịch chương trình:alt +F9, chạy chương trình: clr + F9 ,đóng cửa số: alt+F3, thoát:alt+X

HS: Theo dõi chương trình giáo viên đưa suy nghĩ để sửa lỗi cú pháp chương trình:

Thứ nhất: sai cú pháp cuối tên chương trình phải có dấu chấm phẩy

Thứ hai: trước sử dụng phải khai báo biến gdung

.Củng coá:

- Thủ tục, nhập liệu: Read/readln(<tên biến1>,…,<tên biến k>); -Thủ tục, xuất liệu: Write/writeln(<danh sách liệu>);

.Dặn dò tập nhà:

-Viết chương trình nhập vào bán kính hình tròn tính chu vi , diện tích

.Rút kinh nghiệm bổ sung:

-

-CHƯƠNG II: -CHƯƠNG TRÌNH ĐƠN GIẢN BÀI TẬP VAØ THỰC HAØNH 1

I MỤC TIÊU BAØI HỌC: Kiến thức:

- Biết viết chương trình ngơn ngữ lập trình Pascal đơn giản.

-Làm quen sử dụng dịch vụ chủ yếu Pascal việc soạn thảo, lưu, dịch thực chương trình

(24)

2 Kỹ năng:

- Phải biết cách soạn chương trình, lưu vào máy, dịch lỗi cú pháp,thấy lỗi thuật toán chạy chương trình

-Biết cách phân tích nhập liệu chạy chương trình hình nhập liệu. Tư – Thái độ:

-Xác định thái độ nghiêm túc,tự giác, tích cực q trình thực hành.

-Có thái độ tn thủ giai đoạn xây dựng chương trình chạy chương trình. II PHƯƠNG TIỆN CHUẨN BỊ :

Giáo viên:

-Phương tiện: SGK tin11,sách tập,phịng máy, chương trình soạn kiểm tra máy

Hoïc sinh:

-Phương tiện: SGK 11, đọc trước SGK , xem lại khái niệm,xem trước chương trình đơn giản để soạn thảo máy chạy thử.

III TIẾN TRÌNH THỰC HÀNH:

TIẾT 1 .Ổn định lớp kiểm tra sĩ số

.Kiểm tra cũ:không .Bài mới:

HOẠT ĐỘNG CỦA GIÁO VIÊN VAØ HỌC

SINH NỘI DUNG

Hoạt động 1: Tìm hiểu chương trình đơn giản. GV: Diễn giảng: chương trình có phần khai báo phần thân

Yêu cầu học sinh viết chương trình xuất ngồi hình câu thơng báo: chúng tơi học sinh lớp 11CB

HS: Chú ý lắng nghe viết chương trình

1 Tìm hiểu viết chương trình đưa hình câu thông baùo

Program vd; Ues crt; Begin Clrscr;

Writeln(' chung toi la hoc sinh lop 11CB.'); Readln

End

Hoạt động 2: Tìm hiểu chương trình hồn chỉnh. GV: u cầu học sinh thực nhiệm

vuï:

-Soạn chương trình vào máy -Lưu chương trình

-Dịch chương trình -Chạy chương trình

-Sửa lại chương trình khơng dùng biến delta

HS: Mở chương trình soạn thảo pascal gõ chương trình giải phương trình bậc hai Nhấn F2 tên pt.pas

Nhaán alt+F9

2 Tìm hiểu ,viết, chạy chương trình giải phương trình bậc 2:

Program giaipt; Uses crt;

Var a, b, c, delta:real; Begin

Clrscr;

Write('nhap he so cua phuong trinh:'); Readln(a,b,c);

Delta:=b*b-4*a*c;

X1:=(-b –sqrt(delta))/(2*a); X2:=-b/a-x1;

Write('x1=',x1:8:2,'x2=',x2:8:2);

Tiết :8

(25)

Nhấn clt+F9

Nhập liệu -3 quan sát kết thị hình x1=1.00 x2=2.00 Nhập liệu Chạy chương trình thơng báo lỗi bậc hai số khơng âm tức delta âm phương trình vơ nghiệm

X1:= (-b-sqrt(b*b-4*a*c))/(2*a); X1:= (-b+sqrt(b*b-4*a*c))/(2*a);

Readln; End

.Củng cố:

-Dịch chương trình: Alt+F9 -Chạy chương trình: Ctr+F9

.Dặn dò tập nhà:

-Xem lại thực hành, chuẩn bị thực hành tiếp

.Rút kinh nghiệm bổ sung:

-

-TIẾT 2 .Ổn định lớp kiểm tra sĩ số

.Kiểm tra cũ: không .Bài mới:

HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC

SINH NỘI DUNG

Hoạt động: Rèn luyện tư cách thiết lập chương trình, soạn thảo dịch chạy chương trình. GV: Nêu tập

GV: Định hướng cho học sinh: Dữ liệu vào: a

Dữ liệu ra:s

Cách tính :cạnh hình vuông a hai

HS: Chú ý lắng nghe

GV: Yêu cầu học sinh viết chương trình

HS: Thực theo u cầu:

-Soạn chương trình ngơn ngữ pascal

GV: Yêu cầu học sinh nhập liệu thông báo kết

HS: Chạy chương trình với liệu a=2,10

Bài thực hành:

Chương trình tính diện tích hình tô đậm sau đây:

Program tinhdientich; Uses crt;

Var a,s:real; Begin

Clrscr;

Writeln('gia tri :'); Readln(a); S:=(a* )2/2;

Write('dien tich la:',s); Readln;

End

Tiết :9

(26)

.Củng cố:

- Hồn thành chương trình cần phải:xác định liệu vào ra, xác định thuật tốn,soạn chương trình,lưu chương trình, dịch chương trình,thực hiệu chỉnh

.Dặn dò tập nhà:

- Viết chương trình nhập cạnh hình tam giác tính diện tích -Chuẩn bị tập SGK sách tập

.Rút kinh nghiệm bổ sung:

-

-CHƯƠNG II: -CHƯƠNG TRÌNH ĐƠN GIẢN BÀI TẬP

I MỤC TIÊU BAØI HỌC: Kiến thức:

- Củng cố nội dung thực hành phòng máy. -Ôn lại cách sử dụng biến, phải khai báo biến.

2 Kỹ năng:

-Xây dựng cách giải biết viết chương trình từ tốn. Tư – Thái độ:

-Có thái độ học tốt việc xác định phạm vi biến để khai báo biến viết chương trình từ tốn.

II PHƯƠNG TIỆN CHUẨN BỊ :

Giáo viên:

-Phương pháp: thuyết trình kết hợp với vấn đáp gợi mở.

-Phương tiện: SGK tin11,sách tập, chương trình soạn bảng

Hoïc sinh:

-Phương tiện: SGK tin11, sách tập,đọc trước SGK , xem trước tập. III TIẾN TRÌNH BÀI HỌC:

.Ổn định lớp kiểm tra sĩ số .Kiểm tra cũ:

-Câu hỏi: em viết chương trình Pascal đơn giản nhập vào cạnh hình vuông xuất diện tích

.Bài mới:

HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC

SINH NỘI DUNG

Hoạt động 1: Tìm hiểu số tập khai báo biến. GV: Hỏi: giá trị có đặt tên biến

như nào?

HS: Trả lời: Giá trị ô nhớ chứa có đặt tên khơng đổi q trình chạy chương trình cịn giá trị nhớ biến thay đổi thời điểm chạy chương trình

GV: Hướng dẫn: biến chương trình cân thiết sử dụng ta phải khai báo Trong khai báo biến ta phải khai báo kiểu biến

Câu 1:Hãy cho biết khác có đặt tên biến?

Câu 2:Tại phải khai báo biến?

Tiết :10

(27)

HS: Khai báo biến nhằm mục đích: -Xác định kiểu biến, để tổ chức ô nhớ tương ứng chứa giá trị biến

-Đưa tên biến vào danh sách chương trình quản lý

-Trình dịch biết cách truy cập giá trị biến

GV: Yêu cầu học sinh lên bảng giải tập 3,4

HS: Giải tập

GV: Khai báo b,d khai báo d tốt

Biểu thức logic: (y<=1) and (y>=abs(x))

Câu 3:Biến p nhận giá trị

5,10,15,20,30,60,90 biến x nhận giá trị 0,1;0,2;0,3;0,4;0,5 Khai báo khai báo sau đúng:

a) var x,p:byte; b)var p,x:real; c)var p:real; d)var x:real; x:byte; p:byte;

Câu 4:Hãy viết biểu thức logic cho kết True toạ độ (x,y) vùng gạch chéo kể biên hình sau:

Hoạt động 2: Xây dựng chương trình từ tốn. GV: u cầu học sinh viết chương trình giải tốn

HS: Lên bảng xây dựng chương trình: Xác định tốn:

Dữ liệu vào: h,g=9.8 Dữ liệu ra: v

Caùch tính: v=

HS: Soạn chương trình

HS: Soạn chương trình

Lưu chương trình, dịch chạy chương trình

1) Tính đưa hình vận tốc v chạm đất vật từ độ cao h, biết v=

g= 9,8 m/s2, h nhập vào từ bàn phím. Program vantoc;

Const g=9.8; Var v,h:real; Begin

Write('nhap cao cua vat h='); Readln(h);

V:=sqrt(2*g*h);

Write('van toc cham dat la:v=',v:10:2); Readln;

End

2) Viết chương trình nhập vào độ dài cạnh tam giác tính chu vi diện tích tam giác

Program tamgiac; Uses crt;

Var a,b,c,p,s:real; Begin

Clrscr;

Writeln('nhap cac canh cua tam giac:'); Readln(a,b,c);

P:=a+b+c;

S:=sqrt(p/2*(p/2-a)*(p/2-b)*(p/2-c)); Write('chu vi hinh tam giac:',p); Write('dien tich tam giac:',s);

(28)

Readln; End

.Củng cố:

-Khai báo biến

.Dặn dò tập nhà:

-Làm tập 5,6,9 SGK sau:cho biết chương trình sau làm gì: Program vd;

Var x,y:real; Begin

realn(x); y:=(((x-1)*x+4)*x-3)*x+6; writeln('y=',y); end

-Đọc trước bài: cấu trúc rẽ nhánh

.Rút kinh nghiệm bổ sung:

-

-CHƯƠNG III: CẤU TRÚC RẼ NHÁNH VÀ LẶP BÀI 10: CẤU TRÚC RẼ NHÁNH

I MỤC TIÊU BAØI HỌC: Kiến thức:

-Học sinh hiểu khái niệm rẽ nhánh, biết cấu trúc chung cấu trúc rẽ nhánh.

-Biết sử dụng câu lệnh rẽ nhánh, sử dụng hai dạng cấu trúc rẽ nhánh dạng thiếu đủ Kỹ năng:

-Biết thể câu lệnh,viết chương trình giải số tốn đơn giản áp dụng cấu trúc rẽ nhánh. -Biết sử dụng câu lệnh ghép cần thiết

3 Trọng tâm:

-Câu lệnh rẽ nhánh: If- Then. Tư – Thái độ:

-Nhận thức niềm ham thích lập trình máy tính để giải tốn. II PHƯƠNG TIỆN CHUẨN BỊ :

Giáo viên:

-Phương pháp: Nêu vấn đề, diễn giảng, học sinh giải vấn đề. -Phương tiện: Phấn màu, thước kẻ,SGK tin11, SGV.

Hoïc sinh:

-Sách giáo khoa, soạn nhà. -Đọc trước SGK,thực tiễn.

III TIEÁN TRÌNH BÀI HỌC:

.Ổn định lớp kiểm tra sĩ số .Kiểm tra cũ:

-Câu hỏi: Viết số hàm số học chuẩn Pascal?

Cho biết chức lệnh gán, cấu trúc chung lấy ví dụ?

.Bài mới:

HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC

SINH NỘI DUNG

Tieát :11

(29)

Hoạt động 1: Tìm hiểu ý nghĩa cấu trúc rẽ nhánh. GV: Giao nhiệm vụ cho học sinh

HS: Thực yêu cầu

GV: Hỏi: làm để tìm số lớn số a,b

HS: Trả lời: thực so sánh: Nếu a>b max=a

Nếu a<b max=b

GV: Hỏi: để thực thuật toán pascal em làm nào?

HS: Trả lời: chưa thể làm

GV: Nêu ví dụ thực tiễn minh họa cho cấu trúc rẽ nhánh: chiều mai trời không mưa T rủ N xem phim

HS: Chú ý theo dõi ví dụ giáo viên để tìm ví dụ khác

GV: Yêu cầu học sinh tìm thêm ví dụ

HS: Nếu đội bóng Việt Nam thắng đội Thái Lan đoạt cúp khơng Việt Nam giành huy chương bạc

GV: Yêu cầu học sinh đưa cấu trúc chung cách diễn đạt

HS: Ví dụ 1:Cấu trúc chung là:Nếu… Ví dụ 2:Cấu trúc chung là:Nếu …thì…nếu không…thì…

GV: Hỏi:hãy nêu bước kết luận nghiệm phương trình bậc nhất:ax+b=0

HS: Theo dõi thực u cầu:

Nếu a<>0 phương trình có nghiệm x=-b/a Nếu a=0 b<>0 phương trình vô nghiệm Nếu a=0 b=0 kết luận phương trình vô số nghiệm

GV: Diễn giảng: Cấu trúc dùng để mô tả mệnh đề gọi cấu trúc rẽ nhánh dạng thiếu đủ Mọi ngơn ngữ lập trình có câu lệnh để mơ tả cấu trúc rẽ nhánh

Cấu trúc tìm số lớn số

1 Rẽ nhánh:

* Một số mệnh đề có dạng điều kiện: + Dạng thiếu: Nếu…thì…

+ Dạng đủ: Nếu … … khơng …

* Cấu trúc dùng để mô tả mệnh đề gọi cấu trúc rẽ nhánh thiếu đủ

* Mọi ngơn ngữ lập trình có câu lệnh để mô tả cấu trúc rẽ nhánh

Hoạt động 2: Tìm hiểu câu lệnh rẽ nhánh ngơn ngữ lập trình Pascal. GV: Diễn giảng: để mơ tả cấu trúc rẽ nhánh

Pascal dùng câu lệnh

HS: Quan sát ghi chép

GV: Giải thích q trình thực câu lệnh

GV: Yêu cầu học sinh viết câu lệnh so sánh để tìm Max(a,b) cách

HS: Lên bảng viết:

If a > b then max:= a; If a < b then max:= b;

1)Cấu trúc IF dạng thiếu:

+ Cú pháp: If <điều kiện> then <lệnh>; <điều kiện> biểu thức logic +Chức năng: (thực hiện) pascal tính kiểm tra <điều kiện> , <điều kiện> thực lệnh, <điều kiện> sai bỏ qua lệnh

2)Cấu trúc IF dạng đủ:

+Cú pháp: If <điều kiện> then <lệnh 1> else <lệnh 2>;

<điều kiện> biểu thức logic +Chức năng:Tính kiểm tra <điều kiện>

(30)

Hoặc: If a > b then max:=a Else max:=b;

GV: Với dạng dạng thuận tiện hơn?

HS: Tùy trường hợp cụ thể

GV: Yêu cầu:Hãy vẽ sơ đồ khối thể câu lệnh rẽ nhánh dạng thiếu đủ?

HS: Lên bảng vẽ sơ đồ khối:

GV: Trình bày ví dụ: viết chương trình kiểm tra số nguyên nhập vào có chia hết cho không?

*Giải thuật:

+ Xác định tốn: Đại lượng vào:số ngun

Đại lượng ra: thơng báo a chia hết cho không chia hết

+ Trình bày thuật tốn:

Nhập số nguyên a. >Kiểm tra a có chia hết cho không. >Thông báo. >Kết thúc

HS: Quan sát vaø ghi baøi

GV: Đối với cấu trúc IF dạng đủ câu lệnh thể với lệnh trên?

HS: Trả lời:If a mod =0 then write(a,' chia het cho 3')

else write(a,' khong chia het cho 3');

GV: Diễn giảng: Sau then, else cấu trúc lệnh, thực tế nhiều lệnh.Để ghép lệnh thành lệnh ta sử dụng câu lệnh ghép

HS: Ghi bài: Câu lệnh ghép:

Begin Leänh 1;… Leänh n; end

Thực lệnh đến lệnh n.Khi lệnh n kết thúc lệnh ghép kết thúc

Nếu <điều kiện> thực <lệnh 1>, <điều kiện> sai thực <lệnh 2>

*Chương trình ví dụ:

kiểm tra số nguyên nhập vào có chia hết cho Program kiemtra;

Var a:integer; Begin

Write(' nhap so nguyen:'); Readln(a);

If a mod =0 then write(a,' chia het cho 3'); Readln

End

* Câu lệnh ghép :

* Trong ngơn ngữ Pascal câu lệnh ghép có dạng: Begin

<các câu lệnh>; End;

Hoạt động 3: Tìm hiểu số ví dụ. GV: Viết lên bảng ví dụ

GV: Yêu cầu học sinh xác định toán

HS: Xác định toán:

Input: số a,b,c nhập từ bàn phím

Output: diện tích tam giác thơng báo khơng cạnh tam giác

GV: Phân nhóm, yêu cầu học sinh thảo luận

nhóm viết chương trình Ghi lời giải vào bảng

3 Ví dụ:

VD1: viết chương trình tính diện tích tam giác theo

cơng thức herong có a,b,c nhập vào từ bàn phím Program tamgiac;

Uses crt; Var a,b,c,p,s:real; Begin

Write(' nhap so canh tam giac:'); Readln(a,b,c);

Điề u kiện

lệnh

Đi ều kie än

(31)

phụ

HS: Thảo luận nhóm trình bày lời giải vào

bảng phụ, đại diện nhóm lên treo bảng trình bày, nhóm khác nhận xét

GV: Trình bày hướng giải tốn: độ dài

cạnh tam giác dương nên phải sử dụng lệnh rẽ nhánh để kiểm tra giá trị độ dài nhập vào, đồng thời tổng hai cạnh tam giác phải lớn cạnh thứ ba Tổng quát lời giải học sinh cho điểm

GV: Yêu cầu học sinh làm ví dụ 2: viết

chương trình giải phương trình bậc hai: ax2+bx+c=0 (a<>0).

HS: Xác định toán:

Input:hệ số a,b,c nhập từ bàn phím

Output:đưa hình nghiệm thơng bào phương trình vơ nghiệm

GV: Trình bày:các bước để tìm nghiệm

phương trình bậc hai Tính delta

Nếu delta <0 kết luận phương trình vô nghiệm

Nếu delta>=0 kết luận phương trình có nghiệm: x:=(-b+sqrt(delta))/2a);

x:=(-b-sqrt(delta))/2a);

Trong toán cần hai lệnh rẽ nhánh dạng thiếu, sử dụng lệnh dạng đủ

HS: Viết chương trình

If (a+b>c) and (b+c>a) and (a+c>b) then Begin

P:=(a+b+c)/2; S:=sqrt(p*(p-a)*(p-b)*(p-c)); Write('dien tich',s:6:3);

End;

Else write(' so khong la canh tam giac'); Readln

End

VD2: viết chương trình giải phương trình bậc hai:

ax2+bx+c=0 (a<>0). Program pt;

Uses crt;

Var a,b,c,d,x1,x2:real; Begin

Clrscr;

Write('nhap he so phuong trinh:'); Readln(a,b,c);

D:=b*b-4*a*c;

If d<0 then writeln('phuong trinh vo nghiem'); Else begin

X1:=(-b-sqrt(d))/(2*a); X2:=(-b+sqrt(d))/(2*a); End;

Readln; End

.Củng cố:

-Câu lệnh rẽ nhánh dạng đủ thiếu Pascal -Sơ đồ thực chức câu lệnh if

.Dặn dò tập nhà:

-Viết chương trình nhập vào ba số đưa giá trị lớn

.Rút kinh nghiệm bổ sung:

-

-CHƯƠNG III: CẤU TRÚC RẼ NHÁNH VÀ LẶP BÀI 11: CẤU TRÚC LẶP (3 TIẾT)

I MỤC TIÊU BÀI HỌC: Kiến thức:

-Học sinh hiểu ý nghóa tác dụng cấu trúc lặp.

(32)

-Học sinh hiểu cấu trúc lặp với số lần biết trước,cấu trúc chung lệnh for ngơn ngữ lập trình pascal, biết sử dụng hai dạng lệnh for ngơn ngữ lập trình pascal.

-Hiểu cấu trúc lặp kiểm tra điều kiện trước, cấu trúc chung lệnh while ngôn ngữ pascal, sự thực chương trình dịch gặp lệnh while

2 Kỹ năng:

-Sử dụng lệnh for để lập trình giải số tốn đơn giản. -Sử dụng lệnh while.

-Phân biệt hai cấu trúc lặp for while, sử dụng lệnh lặp để lập trình giải tốn. -Mơ tả thuật toán số toán đơn giản có sử dụng lệnh lặp

3 Trọng taâm:

-Câu lệnh lặp: For while. Tư – Thái độ:

-Tìm hiểu cấu trúc lặp để viết chương trình rút ngắn cho thuật tốn II PHƯƠNG TIỆN CHUẨN BỊ :

Giáo vieân:

-Phương pháp: Nêu vấn đề, diễn giảng, học sinh giải vấn đề, hoạt động nhóm. -Phương tiện: Phấn màu, thước kẻ,SGK tin11, SGV.

Hoïc sinh:

-Sách giáo khoa, soạn nhà. -Đọc trước SGK, thực tiễn.

III TIẾN TRÌNH BÀI HỌC:

TIẾT 1 .Ổn định lớp kiểm tra sĩ số

.Kiểm tra cũ:

Kiểm tra 15 phút

Câu 1: Hãy nêu cú pháp cách thực lệnh if dạng thiếu đủ? (4đ)

Câu 2: Viết chương trình kiểm tra số nhập từ bàn phím có phải cạnh tam giác khơng, tính diện tích theo cơng thức hêrơng? (6đ)

.Bài mới:

HOẠT ĐỘNG CỦA GIÁO VIÊN VAØ HỌC SINH

NOÄI DUNG

Hoạt động 1: Tìm hiểu ý nghĩa cấu trúc lặp.

GV: Đặt vấn đề cách đưa toán:

Bài tốn 1: Tính tổng

s=1/a+1/(a+1)+ +1/(a+1000)

HS: Chú ý quan sát tốn

GV: Hỏi: Có thể xác định cơng thức tốn để

tính tổng khơng?

HS: Trả lời: khó xác định

GV: Gợi ý: xem tổng s không gian chứa,

các số hạng vật chứa nước có dung tích khác nhau, việc tính tổng giống đổ nước vào khơng gian chứa

Lặp:

- Cấu trúc lặp mơ tả thao tác lặp - Có loại thao tác lặp:

+ Lặp với số lần biết trước + Lặp với số lần chưa biết trước Bài tốn 1: Tính tổng

s=1/a+1/(a+1)+ +1/(a+1000)

Tieát :12

(33)

GV: Hỏi: có lần đổ nước? Mỗi lần đổ bao nhiêu?

Thực tất lệnh?

HS: Có tất ngàn lần

Mỗi lần đổ:1/(a+i)

Thực 1000 lệnh lâu

GV: Bài toán 2: Giả sử có số tiền X, gửi tiết

kiệm ngân hàng lãi 2% tháng Hỏi sau năm không rút tiền lãi số tiền bao nhiêu?

HS: Chú ý quan sát toán

GV: Hỏi: cách tính tiền gửi tiết kiệm sau motä

năm nào?

HS: Sau tháng có tiền lãi: 0,02*X,cộng

vào tiền gốc tính lãi cho tháng đến đủ 12 tháng thơi

GV: Phải thực lần?

HS: Mười hai lần

GV: Bài toán 3: Viết chương trình xuất 10 câu

Diễn giảng: Đối với ba tốn chương trình viết dài,dễ sai.Cần phải có cấu trúc để thực cơng việc lặp

HS: Tập trung theo dõi

Bài tốn 2: Giả sử có số tiền X, gửi tiết kiệm ngân hàng lãi 2% tháng Hỏi sau năm không rút tiền lãi số tiền bao nhiêu?

Bài tốn 3: Viết chương trình xuất 10 câu

Hoạt động 2: Tìm hiểu lệnh lặp for ngôn ngữ pascal.

GV: Yêu cầu học sinh nhắc lại toán

nghiên cứu tiết trước.Chia lớp làm hai nhóm, yêu cầu nhóm viết thuật tốn; bắt đầu tính tổng số hạng cuối, nhóm viết thuật tốn

HS: Viết thuật tốn:

Nhóm 1:B1:s 1/a, n 0; B2: n n+1;

B3:nếu n>1000 xuất s dừng B4: s s+1/ (a+n) quay lại B2; Nhóm 2: B1:s 1/a, n 1001;

B2: n n-1;

B3:nếu n<1 xuất s dừng B4: s s+1/ (a+n) quay lại B2;

GV: Hỏi: cấu trúc chung lệnh for

gì?

HS: Nghiên cứu SGK trả lời

GV: Diễn giảng cách thực lệnh For

GV: Khi dùng lệnh FOR cần ý

2 Lệnh lặp biết trứơc số lần lặp: (lệnh FOR)

a Cú pháp: C1(dạng tieán):

FOR <biến đếm> := <giatrị 1> TO <giatrị 2> DO <lệnh>;

<giatrò 1> <= <giatrị 2> C2(dạng lùi):

FOR <biến đếm> := <giatrị 1> DOWNTO <giatrị 2> DO <lệnh>;

<giatrò 1> >= <giatrò 2>

b Chức năng:

Biến đếm nhận giá trị từ giátrị đến giátrị 2.Sau lần thực lệnh sau DO

c Chú ý: Dạng tiến sau lần biến đếm tăng

Dạng lùi giảm

Giátrị = giatrị câu lệnh sau DO thực lần

Số lần thực lệnh: trị tuyệt đối <giatrị 1> - <giatrị 2> +

(34)

GV: GV treo bảng phụ sơ đồ thuật tốn lặp

Cấu trúc leänh For

Sơ đồ khối câu lệnh: dạng tiến

S

Đ

Dạng lùi:

S Đ

.Củng cố:

-Cú pháp lệnh For

.Dặn dò tập nhà:

-Chuẩn bị

.Rút kinh nghiệm bổ sung:

-

-TIẾT 2 .Ổn định lớp kiểm tra sĩ số

.Kieåm tra cũ:

-Câu hỏi: cú pháp câu lệnh For cách thực lệnh?

.Bài mới:

HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC

SINH NỘI DUNG

Hoạt động: Rèn luyện vận dụng lệnh FOR qua số tập. GV: Treo bảng chương trình tính tổng số từ

1000

HS: Quan sát bảng phụ

*Bài tập 1: viết chương trình in 1000 số nguyên từ đến 1000

Program bt1;

Biếnđếm:=giatrị

Lệnh, Biếnđếm:=biếnđếm+1 Biếnđế

m<=gia tri

Biếnđếm:=giatrị

Lệnh, Biếnđếm:=biếnđếm-1 Biếnđế

m>=gia tri

Tieát :13

(35)

GV: Yêu cầu học sinh thực Mục tiêu: xác định việc cần làm: Xác định giá trị đầu, giá trị cuối Xác định lệnh cần lặp

HS: trả lời:

-Giá trị đầu 1, giá trị cuối 1000 Lệnh xuất hình: write(i, ‘ ‘);

GV: Yêu cầu viết chương trình

HS: Thực viết chương trình

GV: Sửa học sinh đúc kết chương trình

GV: Bài tập 2: Viết chương trình tính tổng:

S=1/a+1/(a+1)+…+1/(a+n)

GV: Yêu cầu học sinh định hướng vấn đề

chính

HS: Giá trị đầu 1, giá trị cuối 1000

Lệnh xuất hình: s:=s+1/(a+n);

GV: Chia lớp làm nhóm u cầu viết chương

trình

HS: Thực viết chương trình

GV: Hỏi: Qua ví dụ ta nhận xét

biến đếm?

HS: Được điều chỉnh tự động

Var i: integer; Begin

Write(‘ chuong trinh in 1000 so nguyen’); FOR i:=1 TO 1000 DO write(i, ‘ ‘);

Readln End

*Bài tập 2: Viết chương trình tính tổng: S=1/a+1/(a+1)+…+1/(a+n)

Program bt2; Var s: real; a,n: integer; Begin

Write(‘ nhap gia tri a:’); readln(a); S:=1/a;

FOR n:=1 TO 1000 DO s:=s+1/(a+n); Writeln(‘tong s la:’,s:8:4);

Readln End

.Củng cố:

-Cấu trúc lệnh For

.Dặn dò tập nhà:

-Giải tập 5a,6 SGK trang 51

-Viết chương trình tạo bảng cửu chương

.Rút kinh nghiệm bổ sung:

BẢNG PHỤ:

Chương trình tính tổng số ngun từ đến 1000.

*Dùng lệnh For tiến:Program tong; Var i,S: integer; Begin

Write (‘ Tong cac so nguyen tu den 1000 la:’); S:=0;

For i:= to 1000 S: = S + i; Writeln(S);

Readln; End

*Dùng lệnh For lùi:Program tong; Var i,S: integer; Begin

Write (‘ Tong cac so nguyen tu den 1000 la:’); S:=0;

For i:= 1000 downto S: = S + i;

(36)

Writeln(S); Readln; End

-

-TIẾT 3 .Ổn định lớp kiểm tra sĩ số

.Kiểm tra cũ: -Câu hỏi:Viết chương trình in hình 50 số nguyên, từ đến 50? .Bài mới:

HOẠT ĐỘNG CỦA GIÁO VIÊN VAØ HỌC

SINH NOÄI DUNG

Hoạt động 1: Tìm hiểu lệnh lặp While (chưa biết trước số lần lặp) ngôn ngữ pascal.

GV: Yêu cầu học sinh nghiên cứu SGK cho

biết cấu trúc chung lệnh lặp While

HS: Chú ý theo dõi làm theo yêu cầu giáo

viên

GV: Cú pháp, chức lệnh while

GV: Neâu ý

GV: Hỏi: khác lệnh cần lặp

For While gì?

HS: Suy nghĩ trả lời: câu lệnh while

phải có tăng biến số

GV: Hỏi: Dựa vào sơ đồ khối xác định máy

sẽ thực tính <điều kiện> trước hay thực <lệnh cần lặp> trước?

HS: Tính biểu thức điều kiện trước, thực lệnh cần lặp sau

3 Lệnh lặp với số lần lặp biết trứơc: (lệnh WHILE)

a) Cú pháp: while <điều kiện> <leänh>;

<điều kiện> biểu thức quan hệ biểu thức logic

<lệnh> lệnh đơn lệnh ghép

b) Chức năng:Bước 1:tính kiểm tra điều kiện Bước 2:Nếu điều kiện sai kết thúc câu lệnh

Nếu điều kiện thực lệnh quay lại bước

c)Chú ý: Nếu từ đầu điều kiện sai câu lệnh sau Do khơng thực hiện, điều kiện câu lệnh sau Do thực vô hạn

Hoạt động 2: Rèn luyện vận dụng lệnh While qua số tập

GV: Chia học sinh làm hai nhóm, yêu cầu

nhóm viết thuật tốn, nhóm viết chương trình

HS: Theo doõi

HS: Làm theo yêu cầu giáo viên: *Viết thuật toán:

Bước 1:gán i:=1,s:=0;

Bước 2:nếu s>10 xuất giá trị s;

*Bài tập 1: viết chương trình tính s=1+1/2+…+1/n, đến s>10 dừng

Điều kiện

Câu lệnh

Tieát :14

(37)

Bước 3: gán s:=s+1/i; i:=i+1; quay lại bước *Viết chương trình:

Program bt;

Var s:real; I:integer; Begin

I:=1; s;=0;

While s<=10 begin

S:=s+1/I; I:=I+1; End;

Writeln('tong s la:',s:8:4); End

GV: Diễn giảng: Muốn biết số lần lặp lệnh

ta in kết i

Muốn cộng vào biến s đại lượng x ta dùng s:=s+x;

HS: Chú ý lắng nghe

GV: Yêu cầu học sinh

-Định hướng vấn đề chính: +Xác định điều kiện để lặp +Xác định lệnh cần lặp -Nhận xét chương trình

HS: Định hướng: Điều kiện:s<s1

s:=s+0.005 *s; để tính tiền I:=i+1; để tính số tháng

HS: Làm việc nhóm để viết chương trình hồn chỉnh

Program bt2;

Const ls=0.005; Var s,s1:real; i:integer; Begin

Writeln('nhap so tien da gui:');readln(s); Writeln('nhap so tien muon nhan:'); readln(s1);

while s>= s1 begin

s:=s+0.005*s; i:=i+1; end;

readln end

GV: Chia nhóm học sinh viết chương trình

HS: Làm việc nhóm để viết chương trình hồn chỉnh

Program uocchung;

Var a,b,m,n,ucln:integer; Begin

Writeln('nhap hai so a va b:'); readln(a,b); if a=0 then ucln:=b

*Bài tập 2: người có số tiền s, gửi tiết kiệm 0.5% tháng Hỏi sau tháng có số tiền lớn s1?

*Bài tập 3:viết chương trình nhập vào hai số nguyên dương a b Tìm ước số chung lớn hai số đó?

(38)

else begin

m:=a; n:=b;

r:=n mod m;

while r<>0 begin n:=m; m:=r;

r:=n mod m; end; ucln:=m;

writeln('ucln cua', a,' va',b,' la:',ucln); readln

end

.Củng cố:

-Củng cố nội dung học:cấu trúc lệnh lặp while cách thực

.Dặn dò tập nhà:

-Giải tập SGK

.Rút kinh nghiệm bổ sung:

-

-CHƯƠNG III: CẤU TRÚC RẼ NHÁNH VAØ LẶP BAØI TẬP VAØ THỰC HAØNH (2 TIẾT)

I MỤC TIÊU BAØI HỌC: Kiến thức:

-Học sinh củng cố cấu trúc thực cấu trúc rẽ nhánh, lặp. Kỹ năng:

-Sử dụng lệnh if,while,for để rèn luyện kĩ lập trình giải số toán đơn giản liên quan.

3 Tư – Thái độ:

-Tích cực, chủ động thực hành II PHƯƠNG TIỆN CHUẨN BỊ :

Giáo viên:

-Phương tiện: SGK tin11, phịng máy, chương trình soạn kiểm tra máy, máy chiếu

Hoïc sinh:

-Phương tiện: SGK 11, đọc trước SGK , xem lại khái niệm,xem trước chương trình đơn giản để soạn thảo máy chạy thử.

III TIẾN TRÌNH THỰC HÀNH:

TIẾT 1 .Ổn định lớp kiểm tra sĩ số

.Kiểm tra cũ:không .Bài mới:

HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC SINH

NỘI DUNG

Tieát :15

(39)

Hoạt động 1: Làm quen với chương trình sử dụng cấu trúc rẽ nhánh công cụ hiệu chỉnh chương

trình

GV: Yêu cầu học sinh tìm hiểu

HS: Theo dõi SGK

GV: Yêu cầu học sinh nêu khái niệm

số pitago

HS: Theo dõi nêu khái niệm số pitago: tổng bình phương hai số bình phương số lại

GV: Hỏi: Để kiểm tra số nhập có số

pitago không ta kiểm tra nào?

HS: Ta kiểm tra: a2=b2+c2, b2=a2+c2, c2=a2+b2 Ví dụ số pitago: a=3, b=4, c=5

GV: Yêu cầu học sinh soạn chương trình vào

máy

HS: Gõ chương trình chạy máy:

GV: u cầu học sinh lưu chương trình với

tên pytago.pas ( F2 gõ tên)

GV: u cầu học sinh thực lệnh

của chương trình (F7 nhập giá trị a=3,b=4,c=5)

GV: u cầu học sinh tự tìm thêm liệu

là số pitago so sánh

HS: Làm theo yêu cầu giáo viên

Tập viết chạy chương trình tốn: nhập từ bàn phím số nguyên dương a,b,c kiểm tra xem chúng có số Pitago hay không?

Program ct; Uses crt;

Var a,b,c:integer; a2,b2,c2:longint; begin

clrscr; write('a,b,c:'); readln(a,b,c); a2:=a; b2:=b; c2:=c; a2:=a2*a; b2:=b2*b; c2:=c2*c;

If (a2=b2+c2) or (b2=a2+c2) or (c2=a2+b2) then writeln(' so da nhap la bo so pitago')

else writeln(' so khong la bo so pitago'); readln

end

.Củng cố:

-Dịch chương trình: Alt+F9 -Chạy chương trình: Ctr+F9

.Dặn dò tập nhà:

-Xem lại thực hành, chuẩn bị thực hành tiếp

.Rút kinh nghiệm bổ sung:

-

-TIẾT 2 .Ổn định lớp kiểm tra sĩ số

.Kiểm tra cũ: Thông qua thực hành kiểm tra số học sinh .Bài mới:

HOẠT ĐỘNG CỦA GIÁO VIÊN VAØ HỌC

SINH NOÄI DUNG

Hoạt động: Làm quen với chương trình sử dụng cấu trúc lặp cơng cụ hiệu chỉnh chương trình.

GV: Chiếu đề lên

HS: Theo doõi

GV: Yêu cầu học sinh tìm hiểu soạn chương

1 Tập viết chương trình, luyện tập với chương trình có cấu trúc lặp: nhập vào số nguyên dương n>1 Cho biết từ đến n có số chia hết cho

Tieát :16

(40)

trình chạy máy

HS: Soạn chương trình máy

GV: Yêu cầu học sinh lưu chương trình với tên

dem.pas ( F2 gõ tên)

GV: Chiếu đề

GV: Hỏi: xác định input output

HS: Viết nháp: Input: giá trị a,b nguyên Output: ước chung a b

GV: Yêu cầu học sinh xem lại thuật tốn

học

GV: Yêu cầu học sinh viết chương trình

HS: Soạn chương trình

Program bai1;

Var n,I,dem:integer; Begin

I:=1; Readln(n); Dem:=0;

While(n>=i) begin

If I mod =0 then dem:=dem+1; I:=i+1;

End; Writeln(dem); End

2 Tìm hiểu chương trình tìm in UCLN hai số nguyên a,b(>=0)

Program ucln;

Var a,b,m,n,r,uc:integer; Begin

Readln(a,b);

If a=0 then uc:=b Else begin M:=a;

N:=b;

R:=n mod m;

While r<>0 begin N:=m; M:=r;

R:= n mod m; End; Uc:=m;

End; End

.Củng cố:

- Các bước hồn chỉnh chương trình

+Phân tích tốn +Soạn chương trình +Lưu chương trình +Biên dịch +Thực hiệu chỉnh chương trình

.Dặn dò tập nhà:

- Làm tập SGK

.Rút kinh nghiệm bổ sung:

-

-CHƯƠNG III: CẤU TRÚC RẼ NHÁNH VÀ LẶP BÀI TẬP

I MỤC TIÊU BÀI HỌC: Kiến thức:

- Củng cố nội dung thực hành phịng máy.

-Ơn lại câu lệnh rẽ nhánh, lặp biết trước số lần lặp FOR chưa biết trước số lần lặp Tiết :17

(41)

2 Kỹ năng:

-Xây dựng cách giải biết viết chương trình liên quan đến câu lậnh rẽ nhánh lặp. Tư – Thái độ:

-Có thái độ học tốt việc xác định kiểu lệnh viết chương trình từ toán. II PHƯƠNG TIỆN CHUẨN BỊ :

Giáo viên:

-Phương pháp: thuyết trình kết hợp với vấn đáp gợi mở.

-Phương tiện: SGK tin11,sách tập, chương trình soạn bảng

Học sinh:

-Phương tiện: SGK tin11, sách tập,đọc trước SGK , xem trước tập. III TIẾN TRÌNH BAØI HỌC:

.Ổn định lớp kiểm tra sĩ số .Kiểm tra cũ: Không .Bài mới:

HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC

SINH NỘI DUNG

Hoạt động: Tìm hiểu số tốn liên quan đến câu lệnh lặp.

GV: Ghi baûng: chương trình tập

Xây dựng chương trình giải toán giáo viên đưa ra:

GV: Định hướng vấn đề chính:

Xác định giá trị đầu, giá trị cuối: giá trị đầu 1, giá trị cuối 35

Xác định lệnh cần lặp: câu lệnh IF , xuất hình số gà số chó

GV: Treo bảng u cầu học sinh xây dựng

chương trình

HS: Xây dựng chương trình: Định hướng vấn đề chính:

Xác định điều kiện để tiếp tục lặp: n>=I;

Xác định lệnh cần lặp: câu lệnh IF, I:=i+1;

GV: Treo bảng có chứa chương trình ví dụ để

sửa lỗi cho học sinh

*Bài : Viết chương trình vừa gà, vừa chó, bó lại cho trịn 36 con, 100 chân chẵn.Hỏi gà, chó

Program ga,cho;

Var x,y:integer; Begin

For x:=1 to 35 For y:=1 to 35

If (x+y=35) and (2*x+4*y=100) Then write('so ga:',x,' so cho',y); End

*Bài : Viết chương trình tính tổng số lẻ từ m đến n nhập:

Program tong;

Var m,n,s,i:integer; Begin

Readln(m,n); S:=0;

I:=m;

While n>=I begin

If (I mod 2<>0) then s:=s+I; I:=i+1;

End; End

.Cuûng coá:

(42)

-Cấu trúc lệnh lặp while, for cách thực

.Dặn dò tập nhà:

- Dặn dò giải thêm tập SGK

.Rút kinh nghiệm bổ sung:

-

-CHƯƠNG III: CẤU TRÚC RẼ NHÁNH VÀ LẶP

KIỂM TRA TIẾT

A) M C ĐÍCH CẦN ĐÁNH GIÁ:

-Giúp học sinh hệ thống hoá kiến thức học

-Rèn luyện kĩ viết chương trình ngơn ngữ lập trình Pascal để giải tốn B) M C Đ ÍCH U CẦU C A ĐỀ :

-Bám sát kiến thức SGK kiến thức mà học sinh học

-Phù hợp với học sinh , học sinh trung bình làm điểm trung bình

C) MA TR N ĐỀ :

Mức độ

Chủ đề

NHẬN BIẾT THÔNG

HIỂU

VẬN

DỤNG

T ỔNG

caâu Điểm Tự

luận

Trắc

nghiệm

Tự

luận

Trắc

nghiệm

Tự

luận

Trắc

nghiệm

Tự

luận

Trắc

nghiệm

Tên,Biến,hằng, kiểu liệu chuẩn,cấu trúc chương trình

Câu

6,2,17 Câu 16,20 Câu 1,19 1.75

Phép toán, biểu thức, câu lệnh gán.Thủ tục

chuẩn vào/ra

Câu 3,8,18

Câu 4,9,10,

15

Câu

5,12,13 10 2.5

Cấu trúc rẽ nhánh

lặp Câu Câu Caâu 11 Caâu Caâu 14 5.75

caâu 7 20

(43)

ĐỀ KIỂM TRA TIẾT- TIN 11(HKI,2008-2009)- THỜI GIAN 45 PHÚT I) TRẮC NGHIỆM: (5Đ)

1) Biến X nhận giá trị: 0;1;3;5;7;9 biến Y nhận giá trị: 0.5; 1.5; 2.5; 3.5; 4.5 Khai báo biến sau đúng?

A) Var X:Real; Y:Byte; B) Var X,Y:Byte; C) Var X,Y:Real; D) Var X:Byte; Y:Real; 2) Tên đặt sai quy định Pascal:

A) Giai_PT_Bac_2 B) Noi Sinh C) PN1992 D) NgayThangNamSinh

3) Cho câu lệnh Writeln(x:7:3) độ rộng biểu diễn là:

A) B) C) D) 10

4) Cho biến x kiểu thực gán x:=12.41; Lệnh để in lên sau: x=12.41

A) Writeln(x); B) Writeln('x=,x:5:2'); C) Writeln('x=',x:5:2); D) Writeln(x:5); 5) Biểu thức 25 div 3+5/2*3 có giá trị là:

A) 8.0 B) 15.5 C) 15.0 D) 9.5

6) Khai báo đúng:

A) Var x,y:integer; B) Var x,y = integer; C) Var x,y of integer; D) Var x,y:=integer; 7) Lệnh sau in hình số lớn x y:

A) If x>y then write(x) else write(y); B) If x=<y then write(x) else write(y);

C) If x>y then readln(x); D) If x>y then write(x);

8) Để biên dịch chương trình Pascal ta dùng tổ hợp phím:

A) ALT+F9 B) CTR+F7 C) ALT+F7 D) CTR+F9

9) Lệnh sau dùng để nhập liệu cho biến x:

A) Readln('x'); B) Writeln(x); C) Readln(x); D) Write('x');

10) Để tính giá trị

b x

a

 

, chọn cách viết nào:

A) x:=-b/2a; B)

b x

a

 

C) x:=-b/2*a; D) x:=-b/2/a;

11) Cho đoạn chương trình sau: Begin x:=a;

If a<b then x:=b; End

Cho a=20; b=15 Kết x bao nhiêu?

A) 25 B) 20 C) 10 D) 15

12) Biểu thức viết Pascal: - a/c/sqrt(b - 1) tốn học viết nào? A)

ac

1

b 

 B)

(1 a) b c

 

C)

a

1

c b 

 D)

1 a c b

  13) Với biến a, b nguyên, để nhập liệu vào máy lệnh sau đúng:

A) Real(a,b); B) Read(a,b) C) Readln(a;b); D) Write(a,b);

14) Cho đoạn chương trình sau: i:=1; s:=0;

While i<10 begin s:=s+2; i:=i+1; end;

Đoạn chương trình cho kết S là:

A) 10 B) 14 C) 18 D) 20

15) Biểu thức tính cạnh huyền a tam giác ABC:

A) a:=Sqrt(Sqr(c)+Sqr(b)); B) Sqrt(a):= Sqrt(b)+Sqrt(c);

C) a:=Sqr(Sqrt(b)+Sqrt(c); D) Sqr(a):=Sqr(b)+Sqr(c);

16) Giá trị x=105.32 nhận kiểu liệu kiểu liệu sau:

A) Word B) Integer C) Real D) Longint

17) Mục có tên đặt quy định Pascal:

A) x1,X-2; B) CONST, X_123; C) X1,X2; D) X[1],x2;

18) Trong Pascal, để chạy chương trình, ta dùng tổ hợp phím:

A) ALT+F9 B) ALT+F8 C) CRTL+F8 D) CRTL+F9

(44)

19) Chọn câu sai: chương trình Pascal không có:

A) Phần đầu chương trình B) Phần khai báo C) Phần khai báo biến D) Phần thân chương trình 20) Trong Pascal, lệnh có tác dụng xóa hình:

A) Clrslr; B) Clrscr; C) Clrscl; D) Crlscr;

II) PHẦN TỰ LUẬN: ĐỀ 1(5Đ)

CÂU 1: (3đ) Viết chương trình giải phương trình bậc ax+b=0? CÂU 2: (2đ) Viết câu lệnh rẽ nhánh tính:

x+y, x>1 y>1 V= x-y, x>1 y<=1

-x+y, x<=1

ĐỀ 2(5Đ)

CÂU 1: (3đ) Viết chương trình nhập vào số kiểm tra số có chia hết cho khơng? CÂU 2: (2đ) Viết câu lệnh rẽ nhánh tính:

x y , neáu x+y >=0

Z= x y , x+y<0 x2+y2=1 x , neáu x+y<0 x2+y2<>1

HẾT -

-ĐÁP ÁN (MÔN TIN HỌC LỚP 11) ĐỀ1

II.T Ự LU Ậ N :( 5Điểm)

Câu 1: (3 ñieåm) Program cau1;

Uses crt; Var a,b: real; Begin Clrscr;

Write('nhap he so a,b:'); readln(a,b);

If a<>0 then write('pt co nhat nghiem:',-a/b:8:2) Else If b=0 then write('pt co vo so nghiem.')

Else write('pt vo nghiem.'); Readln

End Câu 2: (2 điểm)

If (x>1) then If (y>1) then v:=x+y Else v:= x-y

Else x:=y-x;

ĐỀ2 II.T Ự LU Ậ N :( 5Điểm)

Câu 1: (3 điểm) Program VD2;

Uses crt; Var x: integer; Begin Clrscr;

Write('nhap mot so:'); Readln(x);

If x mod 3=0 then write(' chia het cho 3.') Else write(' khong chia het cho 3.'); Câu 2: (2 điểm)

If (x+y)>=0 then z:= sqrt(x-y)

Else If (sqr(x) +sqr(y))=1 then z:= abs(x+y) Else z:=x;

(45)

ĐỀ1

1.D 2.B 3.B 4.C 5.B 6.A 7.A 8.A 9.C 10.D 11.B 12.C 13.B 14.C 15.A 16.C 17.C 18.D 19.D 20.B

ĐỀ2

1.C 2.D 3.D 4.C 5.C 6.D 7.A 8.C 9.B 10.C 11.C 12.A 13.A 14.D 15.B 16.A 17.C 18.B 19.A 20.D

ĐỀ12 3

1.D 2.A 3.A 4.C 5.B 6.C 7.A 8.B 9.C 10.A 11.A

12.C 13.B 14.B 15 D 16.C 17.D 18.A 19.A 20.A

ĐỀ32 1

1.C 2.D 3.C 4.B 5.A 6.C 7.D 8.C 9.D 10.B 11.C 12.D 13.A 14.A 15 B 16.B 17.A 18.C 19.A 20.A

Vuõ Bảo Tuyên

(46)

CHƯƠNG IV: KIỂU DỮ LIỆU CĨ CẤU TRÚC BÀI 11: KIỂU MẢNG (4 TIẾT)

I MỤC TIÊU BAØI HỌC: Kiến thức:

- Hiểu kiểu liệu kiểu mảng chiều Biết loại biến có số.

- Cách khai báo biến mảng chiều Tham chiếu đến phần tử mảng tên mảng chỉ số tương ứng phần tử này.

2 Kỹ năng:

-Khai báo sử dụng biến mảng chiều ngôn ngữ Pascal -Nhận biết thành phần khai báo kiểu mảng chiều. -Biết cách định danh phần tử kiểu mảng chiều chương trình. Trọng tâm:

-Mảng chiều. Tư – Thái độ:

-Ý thức rèn luyện kĩ thao tác kiểu mảng. II PHƯƠNG TIỆN CHUẨN BỊ :

Giaùo vieân:

-Phương pháp: Nêu vấn đề, diễn giảng, học sinh giải vấn đề. -Phương tiện: Phấn màu, thước kẻ,SGK tin11.

Hoïc sinh:

-Sách giáo khoa, soạn nhà, đọc trước SGK,thực tiễn. III TIẾN TRÌNH BÀI HỌC:

TIẾT 1 .Ổn định lớp kiểm tra sĩ số

.Kiểm tra cũ: không .Bài mới:

HOẠT ĐỘNG CỦA GIÁO VIÊN VAØ HỌC

SINH NOÄI DUNG

Tiết : 19 Ngày soạn : 11/10

(47)

GV: Đưa đề chương trình ví dụ để dẫn dắt vào vấn đề:

HS: Theo dõi chương trình ví dụ, ghi

GV: u cầu học sinh tìm hiểu chương trình trả lời: số tuần lớn chương trình có hạn chế gì?

HS: Trả lời câu hỏi giáo viên:

Khai báo nhiều biến nên số câu lệnh xử lý nhiều

GV: Dẫn dắt vào bài: để khắc phục ta ghép biến thành dãy, đặt chung tên, đánh phần tử số

HS: So s ánh ch/tr

1 Kiểu mảng chiều:

a) Xét ví dụ:

Nhập vào nhiệt độ trung bình ngày tuần, tính đưa hình nhiệt độ trung bình tuần số lượng ngày tuần có nh/độ cao nh/độ t/bình tuần

- Giải: Chương trình viết sau: Program ndtuan;

Var t1,t2,t3,t4,t5,t6,t7,tb:real; Dem:integer;

Begin

Write('nhap vao nhiet ngay:'); Readln(t1,t2,t3,t4,t5,t6,t7);

Tb:=(t1+t2+t3+t4+t5+t6+t7)/7; Dem:=0;

If t1>tb then dem:=dem+1; If t1>tb then dem:=dem+1; If t1>tb then dem:=dem+1; If t1>tb then dem:=dem+1; If t1>tb then dem:=dem+1; If t1>tb then dem:=dem+1; If t1>tb then dem:=dem+1; If t1>tb then dem:=dem+1; Writeln('nhiet tb tuan:',tb);

Writeln('so nd cao hon nd tb tuan:',dem); End

Dùng mảng chiều: Program nhdo;

Const max = 20;

Type a = array[1 max] of real; Var ndo:a; d,i,n: byte; t,tb: real; Begin

Writeln('Nhap so ngay: '); Readln(n);

T:=0; d:=0; For i:=1 to n Begin

Writeln('Nhap vao nhiet cua thu ',i,':'); Readln(ndo[i]);

T:=t+ndo[i]; End;

Tb:=t/n; For i:=1 to n

If ndo[i]>tb then d:=d+1;

Writeln('Nhiet tr/binh tuan: ',tb:5:2);

Writeln('So nh/do cao hon nh/do t/binh la: ',d);

(48)

.Củng cố:

-Cách tạo mảng 1chiều

-Tham chiếu đến phần tử mảng

.Dặn dò tập nhà:

-Làm 1-7 SGK/79

.Rút kinh nghiệm bổ sung:

-

-TIẾT 2 .Ổn định lớp kiểm tra sĩ số

.Kiểm tra cũ:

-Câu hỏi: Khai báo tham chiếu mảng chiều?

.Bài mới:

HOẠT ĐỘNG CỦA GIÁO VIÊN VAØ HỌC SINH

NOÄI DUNG

Hoạt động: Viết chương trình sử dụng mảng chiều. GV: Treo bảng phụ: viết chương trình cho ví dụ

1: Tìm phần tử lớn dãy số nguyên

GV: Yêu cầu học sinh xác định toán

HS: Tìm input output:

Input : số nguyên dương n, dãy số nguyên: a1,a2, …, an

Output: giá trị lớn dãy số

GV: Lấy ví dụ cụ thể: có dãy số: -6 10

10

GV: Yêu cầu học sinh viết chương trình qua hướng dẫn thuật tốn giáo viên

HS: Khai báo mảng chiều A

Nhập số phần tử

Nhập giá trị phần tử câu lệnh for Viết lệnh theo thuật toán: cho giá trị lớn phần tử ban đầu, xét từ phần tử thứ đến hết có phần tử lớn cho giá trị lớn phần tử lớn

Ví dụ 1 : Tìm phần tử lớn dãy số

nguyeân

- Input : Số nguyên dương N dãy số A1, A2,

… , AN

- Output : Chỉ số giá trị số lớn

daõy

- Ý tưởng :

+ Đặt số A1 số lớn (max)

+ Cho i lặp từ đến N, A[i]> đổi max = A[i] vả lưu lại vị trí i

Chương trình: Const nmax=250;

Type mang=array[1 nmax] of integer; Var n,I,max:integer;

A:mang; Begin

Write('nhap so phan tu:'); readln(n); For i:=1 to n begin

Write('phan tu thu',I,'la:'); Readln(A[i]);

End; Max:=A[1];

For i:=2 to n if A[i]>max then Max:=A[i]; Tieát : 20

Ngày soạn : 11/10

(49)

HS: Thể chương trình.

GV: u cầu học sinh xác định tốn

HS: Tìm input output:

Input: số nguyên dương n, dãy số nguyên: a1,a2, …, an

Output: dãy A dãy không giảm

GV: Lấy ví dụ dãy số: -3 -7 Có đĩa A,B hai giá tráo đổi vị trí thơng qua giá thứ 3:

 A  B

GV: Tóm lại ta có ý tưởng thuật toán Diễn giảng ý tưởng

GV: Yêu cầu học sinh dự vào ý tưởng viết chương trình

HS: Khai báo mảng chiều A

Nhập số phần tử

Nhập giá trị phần tử câu lệnh for Viết lệnh theo thuật toán: phần tử đứng trước lớn phần tử đứng sau ta đổi chổ chúng biến trung gian

Chương trình hồn chỉnh

Writeln('phan tu lon nhat:',max); Readln

End

Ví dụ : Sắp xếp dãy số nguyên thuật toán

tráo đổi

- Input : Số nguyên dương N dãy số A1, A2,

…, AN

- Output : Dãy A xếp theo thứ tự

không giảm

- Ý tưởng :

+ Đổi để đưa số lớn vị trí cuối + Làm tương tự số cịn lại

Chương trình sau :

Const amax=250;

Type mang=array[1.nmax] of integer; Var n,I,j,t:integer;

A:mang; Begin

Write('nhap so phan tu:'); readln(n); For i:=1 to n begin

Write('phan tu thu:',I,'la:'); readln(A[i]);

end; for j:=n downto for i:=1 to j-1

if A[i]>A[i+1] then begin t:=A[i];

A[i]:=A[i+1]; A[i+1]:=t;

End; Writeln('day da sap:');

For i:=1 to n write(A[i]:4); Readln

End

.Củng cố:

-Ý tưởng tìm giá trị lớn dãy xếp dãy

.Dặn dò tập nhà:

-Đọc trước nội dung toán mảng chiều SGK/58

.Rút kinh nghiệm bổ sung:

-

-TIẾT 3 .Ổn định lớp kiểm tra sĩ số

.Kiểm tra cũ:

-Câu hỏi: Hãy nêu ý tưởng tốn tìm GTLN?

.Bài mới:

Tiết : 21 Ngày soạn : 11/10

(50)

HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC

SINH NỘI DUNG

Hoạt động: Viết chương trình sử dụng mảng chiều. GV: Trình bày phương pháp tìm kiếm nhị phân

Cho dãy số nguyên: k= {5,7,10,17,21, 29} với khóa X=21

HS: Trả lời câu hỏi giáo viên: Input, Output

GV: Hãy xác định khóa X có nằm dãy K hay không? Xác định Input Output?

HS: Chia đôi mảng xếp so sánh phần tử lớn hay nhỏ giá trị X cần tìm bên phải hay bên trái mảng

GV: Hướng dẫn học sinh hiểu đoạn câu lệnh thuật tốn tìm kiếm nhị phân ví dụ SGK trang 58

HS: Theo dõi SGK trang 58.

Ví dụ 3 : Tìm kiếm nhị phân

- Input : Dãy số A1, A2,………, AN

xếp tăng dần

- Output : Có hay không số i mà A[i] = k

hoặc thơng báo khơng tìm thấy

- Ý tưởng :

Thuật tốn tìm kiếm nhị phân SGK lớp 10

Chương trình sau :

Program sapxep ; Uses crt ;

var A : Array[1 250] of integer ; n,i,k : Integer ;

dau,cuoi,giua : Integer ; TK : boolean ;

Begin clrscr ;

Write('Nhap so ptu mang n = ') ; Readln(n) ;

For i := to n Begin

Write('A[',i,'] = ') ; readln(A[i]) ; End ;

Write('nhap so can tim k : ') ; Readln(k);

dau := ; cuoi := n ; TK := false ;

while (dau <= cuoi) and Not TK Do Begin

giua := (dau+cuoi) div ; If A[giua] = k then TK := true Else

If a[giua]>k then cuoi := giua - Else dau := giua + ;

End ;

If TK then write('Chi so la : ',giua) else write(' Khong tim thay '); readln ;

End

.Củng cố:

-Ý tưởng giải tốn tìm kiếm nhị phân

.Dặn dò tập nhà:

-Chuẩn bị mới: mảng hai chiều

(51)

-

-TIEÁT 22

I MỤC TIÊU BAØI HỌC: Kiến thức:

-Biết kiểu liệu kiểu mảng hai chiều

-Cách khai báo biến mảng hai chiều Tham chiếu đến phần tử mảng tên mảng chỉ số tương ứng phần tử

2 Kỹ năng:

-Khai báo sử dụng biến mảng hai chiều ngôn ngữ Pascal

-Nhận biết thành phần khai báo kiểu mảng chiều: hình dung mảng chiều như bảng có dịng cột.

-Biết cách định danh phần tử kiểu mảng hai chiều chương trình.Phân biệt với mảng một chiều.

3 Trọng tâm:

-Kiểu mảng chiều. Tư – Thái độ:

-Xác định thái độ nghiêm túc học tập II PHƯƠNG TIỆN CHUẨN BỊ :

Giáo viên:

-Phương pháp: Nêu vấn đề, diễn giảng.

-Phương tiện: Phấn màu, thước kẻ,SGK tin10,bài soạn.

Hoïc sinh:

-Sách giáo khoa, soạn nhà, đọc trước SGK, thực tiễn. III TIẾN TRÌNH BÀI HỌC:

.Ổn định lớp kiểm tra sĩ số .Kiểm tra cũ:

-Câu hỏi: Hãy nêu ý tưởng toán xếp thành dãy không giảm?

.Bài mới:

HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC SINH

NỘI DUNG

Hoạt động 1: Tìm hiểu ý nghĩa kiểu mảng chiều. GV: Dẫn dắt ví dụ

HS: Tìm hiểu ví dụ sách.

GV: Hỏi: Nếu dùng mảng chiều có hạn chế

gì?

HS: Dùng mảng, lưu hàng bảng. GV: Diễn giảng: Khắc phục: xem mảng chiều phần tử, ghép mảng chiều thành mảng chiều

Bài tốn tính đưa hình bảng cửu chương: sgk

Hoạt động 2: Khai báo biến mảng chiều, tham chiếu đến phần tử mảng.

GV: Diễn giảng: đặc điểm mảng chiều Mảng hai chiều bảng phần tử kiểu

Với mảng hai chiều ta quan tâm đến:

- Tên kiểu mảng hai chiều

- Số lượng phần tử chiều mảng

Tiết : 22 Ngày soạn : 11/10

(52)

GV: Hỏi: em nêu cách khai báo biến mảng chiều?

HS: Dựa vào SGK đứng chỗ trình bày

cách khai báo

GV: Yêu cầu học sinh lấy ví dụ cụ thể

HS: Lên bảng lấy ví dụ cho lớp theo dõi

GV: Hỏi: muốn biết giá trị phần tử mảng ta phải làm sao?

HS: Phải tham chiếu đến phần tử mảng

GV: Lấy ví dụ đánh số phòng chia phòng phòng lớn để minh họa cách tham chiếu đến phần tử mảng

GV: Yêu cầu học sinh viết chương trình nhập bảng điểm tin có cột : 15', 45', dtb bảng có 46 dịng tương ứng số học sinh Tính dtb=(điểm 15'+2*điểm 45')/3 Xuất dtb lớn

HS: Khai báo mảng chiều: có cột cột loại điểm, dòng mảng điểm học sinh

Nhập điểm câu lệnh FOR Tính điểm trung bình đưa vào cột thứ

Dùng thuật tốn tìm giá trị lớn tính dtb lớn

Đưa giá trị lớn hình

- Kiểu liệu phần tử

- Cách khai báo biến mảng hai chiều - Cách truy cập vào phần tử mảng 1.Khai báo:

Cách trực tiếp:

Var <tên biến mảng>:array[kiểu số dòng, kiểu số cột] of <kiểu phần tử>;

Cách gián tiếp:

Type <tên kiểu mảng>=array[kiểu số dòng, kiểu số cột] of <kiểu phần tử>;

Var <tên biến mảng>:<tên kiểu mảng>; Kiểu số: đoạn số nguyên

Kiểu phần tử: phần tử mảng: integer, real, boolean

Ví dụ:

Type tiencuatoi=array[1 7,1 3] of real; Var tien:tiencuatoi;

2.Tham chiếu đến phần tử mảng: Tênbiếnmảng[chỉ số dòng,chỉ số cột]

3.Ví dụ:

Var A:array[1 46,1 3] of real; I,j:byte;

Begin

Writeln('nhap diem va tinh dtb:'); For i:=1 to 46 begin

writeln('hoc sinh thu:',i);

write('diem 15:'); readln(A[I,1]); write('diem 45:'); readln(A[I,2]; write('diem tb:');

A[I,3]:=(A[I,1]+2*A[I,2])/3; Writeln(A[I,3]:4:1);

End; Max:=A[I,3];

For i:=2 to 46

If max<A[I,3] then max:=A[I,3]; Writeln('diem tbln la:',max:4:1); Readln

End

.Củng cố:

-Tạo kiểu mảng chiều.Tham chiếu đến phần tử Phân biệt mảng chiều chiều

.Dặn dò tập nhà:

-Làm 8,9SGK/79,80 -Xem trước TH SGK/63

.Ruùt kinh nghiệm bổ sung:

(53)

-CHƯƠNG IV: KIỂU DỮ LIỆU CĨ CẤU TRÚC BÀI TẬP VAØ THỰC HAØNH ( TIẾT)

I MỤC TIÊU BAØI HỌC: Kiến thức:

- Củng cố kiến thức mảng chiều chiều. Kỹ năng:

-Biết giải số toán đơn giản qua việc xây dựng ý tưởng viết chương trình. +Tính tổng phần tử thoả điều kiện.

+Đếm số phần tử.

+Tìm phần tử thoả điều kiện: lớn nhỏ nhất. Tư – Thái độ:

-Tích cực, chủ động thực hành II PHƯƠNG TIỆN CHUẨN BỊ :

Giáo viên:

(54)

Học sinh:

-Phương tiện: SGK 11, đọc trước SGK , xem lại khái niệm, xem trước chương trình đơn giản III TIẾN TRÌNH BÀI HỌC:

TIẾT 1 .Ổn định lớp kiểm tra sĩ số

.Kiểm tra cũ: -Thông qua thực hành kiểm tra lấy điểm miệng số em .Bài mới:

HOẠT ĐỘNG CỦA GIÁO VIÊN VAØ HỌC SINH

NOÄI DUNG

Hoạt động 1: Tìm hiểu sử dụng mảng chiều qua chương trình ví dụ.

Tìm hiểu chương trình câu a SGK/63 Cho học sinh chạy thử

GV: Treo bảng phụ có nội dung số 1a/

sgk/63 ( sử dụng máy chiếu ) Sau đặt câu hỏi cho học sinh trả lời

GV: Khai báo uses CRT; có ý nghóa gì?

HS: Trả lời

GV: Hỏi: tên myarray kiểu liệu hay tên

bieán?

HS: Tên kiểu liệu

GV: Hỏi: dòng lệnh tạo biến mảng A?

Lệnh khai báo kiểu khai báo biến

HS: Chỉ vị trí chương trình

GV: Hỏi: lệnh gán: A[i]:=random(300)-random(300) có ý nghóa gì?

HS: Sinh ngẫu nhiên giá trị cho mảng A từ -299 đến 299

GV: Leänh for i:=1 to n write(A[i]:5); có

ý nghóa gì?

HS: Xuất hình phần tử A

GV: Lệnh s:=s+A[i]; thực lần?

HS: Trả lời:

+Số lần thực lệnh gán số phần tử mảng chia hết cho k (Bằng số phần tử A[i] chia hết cho k.)

HS: Soạn chương trình Pascal chạy thử

GV: Sửa câu a để chương trình giải

quyết câu b

GV: Hỏi: ý nghóa biến Posi neg?

Chức lệnh:

If A[i]>0 then posi:=posi+1 Else if A[i]<0 then neg:=neg+1;

HS: Lưu số lượng đếm Đếm số dương số âm

-Khai báo thư viện chương trình CRT để sử dụng thủ tục Clrscr;

- Myarray: tên kiểu liệu

- nmax: số phần tử tối đa chứa biến mảng a,

n: số phần tử thực tế a

-Random(n): cho số ngẫu nhiên từ đến n-1

+posi: đếm số dương mảng +neg: đếm số âm mảng

(55)

GV: Yêu cầu học sinh thêm vào chương trình câu a để đếm số lưu lại với tên khác Thực chương trình báo cáo kết

HS: Thêm câu lệnh vào vị trí Lưu lại chương trình chạy

.Củng cố:

-Khai báo câu lệnh nhập mảng chiều

.Dặn dò tập nhà:

-Chuẩn bị tiếp thực hành

.Rút kinh nghiệm bổ sung:

-

-TIẾT 2 .Ổn định lớp kiểm tra sĩ số

.Kiểm tra cũ: -Thông qua thực hành kiểm tra lấy điểm miệng số em .Bài mới:

HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC

SINH NỘI DUNG

Hoạt động: Rèn luyện kĩ viết chương trình.

Tìm hiểu chương trình tìm số giá trị lớn

GV: Cho học sinh đọc đoạn chương trình 2/64sgk

GV: Lấy ví dụ minh học: giống người mù

tìm sỏi kích thước lớn dãy viên sỏi kích thước khác nhau, gợi ý cho học sinh ý tưởng toán

HS: Từ gợi ý giáo viên xây dựng ý tưởng tốn

GV: Hỏi: biến j có tác dụng gì?

HS: Cho biết số phần tử có giá trị lớn

GV: Nếu muốn tìm phần tử nhỏ cần

sửa chỗ nào?

HS: Thay đổi phép so sánh hai phần tử Sửa a[i] > a[j] ; thành a[i] < a[j] ;

GV: Nếu muốn tìm phần tử lớn với

số lớn ta sửa chỗ nào?

HS: Chỉnh sửa chương trình để đưa số

Ví dụ: Cho mảng gồm phần tử: Tìm phần tử có giá trị lớn vị trí mảng ( số thứ tự )

j:=1;

For i:=2 to n If a[i] > a[j] then j:=i;

(Sau kết thúc:

+ Giá trị lớn a[j] + vị trí cần tìm j.)

Tiết : 24 Ngày soạn : 25/10

(56)

của phần tử có giá trị lớn Sửa a[i] > a[j]; thành a[i] >= a[j];

GV: Lệnh xuất số có giá trị giá

trị lớn tìm Nằm sau tìm giá trị lớn

Nhận xét liệu xuất hình có thoả mãn u cầu tốn chưa

GV: Hỏi: cần thêm lệnh vị trí cần

theâm?

HS: Trả lời

GV: Chạy thử chưong trình cho học sinh theo dõi

Yêu cầu học sinh thực chạy chương trình, nhập liệu đánh giá kết

HS: thực chạy chương trình

GV: Theo dõi học sinh thực chương trình xem kết

.Củng cố:

-Ý tưởng tốn tìm giá trị lớn

.Dặn dò tập nhà:

-Viết chương trình nhập giá trị cho mảng chiều nhập x , đếm số số có giá trị x -Xem nội dung TH SGK/65

.Rút kinh nghiệm bổ sung:

-

-CHƯƠNG IV: KIỂU DỮ LIỆU CÓ CẤU TRÚC BAØI TẬP VAØ THỰC HAØNH ( TIẾT)

I MỤC TIÊU BAØI HỌC: Kiến thức:

-Học cách lập trình với thuật tốn xếp đơn giản. -Nâng cao khả lập trình với kiểu liệu mảng. Kỹ năng:

-Rèn cách sử dụng kiểu liệu có cấu trúc.

-Khả nhận xét, phân tích, đề xuất ý tưởng giải tốn cho chương trình chạy nhanh hơn.

3 Tư – Thái độ:

-Tích cực, chủ động thực hành II PHƯƠNG TIỆN CHUẨN BỊ :

(57)

-Phương tiện: Bút dạ, thước kẻ,SGK tin11,bài soanï, phịng máy vi tính đầy đủ.

Hoïc sinh:

-Phương tiện: SGK 11, đọc trước SGK , xem lại khái niệm, xem trước chương trình đơn giản III TIẾN TRÌNH BÀI HỌC:

TIẾT 1 .Ổn định lớp kiểm tra sĩ số

.Kiểm tra cũ: không .Bài mới:

HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC

SINH NỘI DUNG

Hoạt động 1: Tìm hiểu cách xây dựng chương trình tốn xếp

GV: u cầu học sinh trình bày bước

xếp phần tử thành không giảm

HS: Lấy cặp phần tử kề từ trái qua phải, so sánh với nhau, số trước nhỏ số sau đổi chỗ

GV: Yêu cầu học sinh soạn chương trình vào Pascal chạy

HS: Sau soạn xong, nhập liệu cho toán, kiểm tra kết

GV: Hỏi: Biến I,j có tác dụng gì?

Ba lệnh để đổi giá trị phần tử A[i], A[i+1] gì?

HS: Làm biến đếm cho chương trình T:=A[i];

A[i]:=A[i+1]; A[i+1]:=t;

Đề: Sắp xếp dãy số nguyên thuật toán tráo đổi với giá trị khác n số

CT( SGK/65)

Hoạt động 1: Sửa CT câu a để giải toán câu b. GV: Trình bày: khai báo thêm biến dem

để chương trình xuất số lần thực tráo đổi Yêu cầu hs sửa lại CT theo gợi ý nêu

HS: Viết lệnh tăng biến dem lân đơn vị lần thực tráo đổi tức sau lệnh thực tráo đổi phần tử

Thêm CL hướng dẫn vào CT

GV: Hướng dẫn hs chỉnh sửa chạy CT

GV: Đưa liệu khác tổng quát trường hợp đặc biệt ví dụ số âm số dương, nhiều số trùng Yêu cầu học sinh nhập liệu kiểm tra xem chương trình có chạy khơng

HS: Nhập vào từ bàn phím liệu mà giáo viên đưa Thơng báo kết cho giáo viên Sau nhận xét kết

GV: Đánh giá kết hs

Đề: Khai báo biến đếm nguyên Dem bổ sung vào chương trình câu lệnh cần thiết để biến Dem tính số lần tráo đổi chương trình

.Củng cố:

-Thuật tốn xếp tráo đổi

(58)

- Đếm số lần tráo đổi

-Ý tưởng toán xếp thuật tốn tráo đổi đơn giản

.Dặn dò tập nhà:

- Tìm thêm thuật toán xếp khác tối ưu

- Cho mảng A mảng B (là mảng A xếp) Hãy in số phần tử mảng A theo mảng B

- Xem trước thực hành

.Rút kinh nghiệm bổ sung:

-

-TIẾT 2 .Ổn định lớp kiểm tra sĩ số

.Kiểm tra cũ: Thông qua thực hành kiểm tra số học sinh .Bài mới:

HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC

SINH NỘI DUNG

Hoạt động 1: Ôn lại kiến thức chuẩn bị thực hành

GV: Hỏi 1: cách khai báo kiểu mảng chieàu

Hỏi 2: (tuỳ lớp)

HS: Tl: có cách + gián tiếp:

+ trực tiếp:

Mảng chiều.

Hoạt động 2: Rèn luyện kĩ nhận xét, phân tích, đề xuất cách giải tốn để chương trình

chạy nhanh

GV: Cho mảng A gồm n phần tử Viết chương

trình tạo mảng B mà B[i] tổng giá trị I phần tử mảng A

HS: Đọc đề suy nghĩ ý nghĩa lệnh chương trình

GV: Yêu cầu học sinh xác định liệu vào,

dữ liệu

HS: Vào: mảng A gồm n phần tử

Ra: mảng B có tính chất phần tử thứ I tổng giá trị phần tử từ đến I mảng A

GV: Thực chương trình để học sinh biết

thời gian chạy chương trình kết chương trình

GV: Hỏi: chương trình phải thực

bao nhiêu phép cộng?

HS: Thực n(n+1)/2 phép

Đề: Cho mảng A gồm n phần tử Viết CT tạo mảng B[1 n]

Khai baùo: + k/baùo mảng + biến đơn Phần thân:

B1: tạo mảng A B2: xd maûng B theo A B3: In maûng B

(59)

GV: Thực thay đổi chương trình cho xử lý phép cộng

HS: Cải tiến: để tính bước thứ I ta sử dụng kết tính bước thứ i-1

Thay B[i]:=B[i-1]+A[i] lệnh For j:=1 to I B[i]:=B[i]+A[j];

Hoạt động 3: Hs thực hành máy theo nhóm

GV: Yêu cầu học sinh viết chương trình hồn

chỉnh

HS: Chạy chương trình nhận xét thời gian thực so với chương trình trước Hs nhập chtrình vào máy

2. Tự biên dịch chạy CT với ví dụ Tự lấy Input để chạy lại CT

GV: Nhận xét: tốn có nhiều

cách giải khác nhau, người lập trình nên chọn cách cho máy thực nhanh đỡ tốn nhớ

Đề: Cho mảng A gồm n phần tử Viết CT tạo mảng B[1 n]

Đoạn CT cải tiến: Sgk

.Củng cố:

-Một tốn có nhiều cách viết, chọn cách thích hợp

.Dặn dò tập nhà:

-Xem lại lý thuyết kiểu mảng, số chương trình kèm thuật tốn

.Rút kinh nghiệm bổ sung:

-

-CHƯƠNG IV: KIỂU DỮ LIỆU CĨ CẤU TRÚC BÀI 11: KIỂU XÂU (2 TIẾT)

I MỤC TIÊU BAØI HỌC: Kiến thức:

-Biết xâu dãy kí tự , xem mảng chiều.

-Biết cách khai báo biến xâu, tham chiếu đến phần tử xâu, phép toán thủ tục, hàm liên quan đến xâu.

-Phân biệt kiểu mảng kí tự xâu kí tự. Kỹ năng:

-Sử dụng biến kiểu xâu phép toán xâu để giải số ví dụ tốn đơn giản. Trọng tâm:

-Kiểu liệu xâu. Tư – Thái độ:

(60)

II PHƯƠNG TIỆN CHUẨN BỊ :

Giáo viên:

-Phương pháp: Nêu vấn đề, diễn giảng, học sinh giải vấn đề. -Phương tiện: Phấn màu, thước kẻ,SGK tin11.

Hoïc sinh:

-Sách giáo khoa, soạn nhà, đọc trước SGK. III TIẾN TRÌNH BÀI HỌC:

TIẾT 1 .Ổn định lớp kiểm tra sĩ số

.Kiểm tra cũ: không .Bài mới:

HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC SINH

NỘI DUNG

Hoạt động 1: Tìm hiểu xâu kí tự cách sử dụng chương trình.

GV: Dẫn dắt: Viết chương trình nhập họ tên

của học sinh lớp

Yêu cầu học sinh sử dụng kiểu mảng chiều đưa nhận xét

HS: Khai báo biến mảng A gồm 45 phần tử kiểu kí tự

Lệnh nhập xuất liệu cho phần tử: Readln(A[1]);…readln(A[45]);

GV: Diễn giảng: Chương trình viết dài,

có thể gộp lại thành câu lệnh ngắn để yêu cầu nhập giá trị cho phần tử : Cần có kiểu liệu cho phép nhập, xuất liệu cho xâu lệnh

GV: Yêu cầu học sinh đưa caùch khai baùo

kiểu liệu xâu Hỏi: Ý nghĩa từ String? Độ dài lớn xâu

HS: Đưa khai báo trả lời

GV: Hỏi: Khi khai báo n số lượng phần tử tối đa bao nhiêu?

HS: Số lượng phần tử tối đa 255

GV: Trình bày: kí tự xem phần tử xâu Số lượng kí tự xâu gọi độ dài xâu

GV: Hỏi: Xâu gồm kí tự rỗng, viết nào?

HS: Đặt cặp nháy đơn khoảng trắng

GV: Một xâu có nhiều kí tự thành phần tử xâu Hỏi: để biết phần tử xâu ta làm cách nào?

HS: Dùng tham chiếu đến xâu

GV: Yêu cầu học sinh nêu ví dụ xâu tham chiếu đến phần tử thứ

1) Khai baùo:

Cú pháp: var <tênbiến>:string[độ dài lớn xâu];

Độ dài lớn xâu không 255 VD: var doan:string[30];

Khai báo biến doan kiểu xâu dài 30 kí tự

Chú ý: khai báo biến xâu khơng có độ dài ngầm định độ dài 255

VD: var douong:string;

2) Tham chiếu đến phần tử xâu: Tênbiếnxâu[ chỉsố]

VD: biến Hoten lưu giá trị xâu: 'AnSongJong'

Hoten[4]'s'

Kí hiệu: ' ', độ dài VD: readln(hoten);

Writeln('ten ban:',hoten);

(61)

GV: Nhập, xuất liệu xâu giống biến đơn

Có thể sử dụng lệnh gán để nhập liệu cho biến xâu

GV: Yêu cầu học sinh đưa cách nhập xuất xâu

HS: Nhớ lại đứng chỗ trình bày

VD: doan:=' cacom';

Hoạt động 2: Tìm hiểu thao tác xử lý xâu. GV: Yêu cầu học sinh nhắc lại phép toán học kiểu liệu chuẩn

HS: Suy nghĩ trả lời: Phép toán số học, phép toán so sánh, phép tốn logic

GV: Diễn giảng: Kết chương trình sau

là ta xâu hồn chỉnh

GV: Chiếu chương trình VD Var s:string;

Begin

S:='ran la loai bo'+'sat khong chan'; Write(s);

Readln End

Hỏi: Kết chương trình in hình? Thực chương trình cho HS thấy kết

GV: Y/c HS tìm số VD khác

GV: Hỏi: Chức phép cộng

GV: Chiếu chương trình VD phép so sánh y/c HS cho biết kết

HS: Kết chương trình sau là: true Var ga:boolean;

Begin

Ga:='AB' < 'AC'; Write(ga); Readln End

GV: Lưu ý cho HS

Chú ý: xâu có độ dài nhỏ lớn xâu có độ dài lớn

GV: Đối với xâu ta cần thao tác xử lý gì?

HS: Tính chiếu dài, trích xâu, xóa số kí tự xâu, chèn xâu…

GV: Tương ứng với thao tác xâu ta có hàm thủ tục: Nêu hàm cho ví dụ

HS: Đưa cấu trúc chung

3) Các thao tác xử lý xâu: a Phép ghép xâu: kí hiệu: +

VD: 'ran la loai bo'+'sat khong chan' b Phép so sánh: =,<>, <,>,<=,>= độ ưu tiên thấp phép ghép xâu *Quy tắc so sánh hai xâu: A B

-Xâu A lớn xâu B kí tự khác chúng từ trái sang phải A có mã Ascii lớn

VD: 'A'<'a'  giá trị true

-Xâu A B có độ dài KN A đoạn đầu B A<B

VD:'Hoa' <'Hoa Hong'

-A B giống hồn tồn VD: 'Nam' <> 'Nu'

c Các hàm thủ tục:

+Hàm length(s): cho giá trị độ dài xâu s VD: length('Hoa Hong') 8

+Hàm copy(s,p,n): tạo xâu dài n kí tự từ vị trí p xâu s

VD: trích từ 'hoa' , copy(s,1,3)

+Hàm pos(s1,s2): cho vị trí xuất s1 s2

VD: pos('o',s) 2

+Hàm upcase(ch): cho chữ viết hoa từ chữ ch

+Thủ tục delete(s,p,n): xố n kí tự từ vị trí p xâu s

+Thủ tục insert(s1,s2,p): chèn s1 vào s2 p

VD: chèn xâu 'do' vào đề có xâu 'Hoa Hong Do' Insert('do',s, 9)

.Củng cố:

-Khai báo sử dụng kiểu liệu xâu, tham chiếu, nhập/xuất

.Dặn dò tập nhà:

-Xem kĩ hàm thủ tục xử lý xâu

(62)

-

-TIẾT 2 .Ổn định lớp kiểm tra sĩ số

.Kieåm tra cũ: -Câu hỏi: Hãy viết cú pháp khai báo biến xâu cho ví dụ Cách tham

chieáu?

.Bài mới:

HOẠT ĐỘNG CỦA GIÁO VIÊN VÀ HỌC

SINH NỘI DUNG

GV: Treobảng phụ chứa ví dụ

yêu cầu học sinh đọc phân tích

HS: Theo dõi, tìm hiểu

GV: Yêu cầu học sinh xác định input, output,

nhiệm vụ giải tốn, cần sử dụng hàm nào?

HS: Làm theo yêu cầâu: Input: giá trị họ tên Output: tên dài

So sánh độ dài xâu họ tên, dùng hàm "length"

GV: Ý nghiã hàm Length(b)?

HS: Cho số lượng kí tự có xâu b

GV: Em giải thích câu lệnh

For i:=k downto write([i]);

HS: Sử dụng vòng lặp For giá trị cuối downto giá trị đầu để sau in kí tự chuỗi theo chiều ngược lại

GV: Bảng phụ chứa ví dụ

HS: Yêu cầu học sinh giải thích lệnh chương trình

VD1: viết chương trình nhập họ tên hai người vào biến xâu đưa hình xâu dài Nếu đưa xâu nhập sau

Var a,b:string[20]; Begin

Writeln('nhap ho ten thu 1:'); readln(a); Writeln('nhap ho ten thu 2:'); readln(b); If length(a)> length(b) then write(a) Else write(b);

End

VD2: Nhập sau vào từ bàn phím đưa hình xâu theo thứ tự ngược

Var I,d:byte; A:string; Begin

Write('nhap xau:'); readln(a); D:=length(a);

For i:=d downto write(a[i]); End

(63)

GV: Bảng phụ chứa ví dụ

HS: Yêu cầu học sinh giải thích lệnh chương trình

GV: Bảng phụ chứa ví dụ

HS: Yêu cầu học sinh giải thích lệnh chương trình

GV: Qua ví dụ ta thấy điêù gì?

HS: cho thấy hàm length() tham chiếu đến kí tự xâu thơng qua vị trí

GV: Em có nhận xét xâu b tạo

thaønh

HS: Xâu b tạo thành từ xâu rỗng qua phép ghép xâu

VD3:Viết chương trình nhập vào tên bạn lớp Nếu nhập xuất thơng báo: roi Ngược lại xuất : sai

Var a,b:string[30]; Begin

A:='LVTi';

Writeln('nhap xau:'); readln(b); If b=a then writeln('dung roi.') Else writeln('sai roi.');

End

VD4: viết chương trình nhập từ bàn phím xâu Sau đổi chữ thường xâu sang chữ hoa

Var s:string; I:byte; Begin

Writeln('nhap xau:'); readln(s); For i:=1 to length(s)

If(s[i]>='a') and (s[i]<='z') then s[i]:=upcase(s[i]);

Writeln('xau hoa la:',s); End

.Củng cố:

-Một số hàm xử lý xâu

.Dặn dò tập nhà:

-Bài 10/80

-Viết chương trình nhập xâu, xuất số từ xâu -Chuẩn bị TH

.Rút kinh nghiệm bổ sung:

Ngày đăng: 28/04/2021, 15:30

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w