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

(SKKN HAY NHẤT) hướng dẫn lập trình giải một số dạng bài tập cơ bản chương trình tin học lớp 11

22 8 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 22
Dung lượng 236,92 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Chương trình Tin học lớp 11 là một môn học khó, kiến thức thì trải rộngnhưng đòi hỏi các em phải biết vận dụng kiến thức của từng bài sắp xếp mộtcách lôgíc để lập trình giải một bài toán

Trang 1

MỤC LỤC

A ĐẶT VẤN ĐỀ: 2

B NHỮNG BIỆN PHÁP GIẢI QUYẾT VẤN ĐỀ: 3

1 Cơ Sở đề ra biện pháp: 3

2 Biện pháp giải quyết: 3

2.1 Cấu trúc cơ bản nhất của một bài lập trình trong Turbo pascal: 4

2.2 Các bài tập cơ bản sử dụng cấu trúc điều kiện IF – THEN: 9

2.3 Các bài tập cơ bản sử dụng câu lệnh lặp với số lần biết trước: 15

2.4 Các bài tập cơ bản sử dụng câu lệnh lặp với số lần chưa biết trước: 18 3 Tác động của biện pháp: 21

4 Kết quả đạt được: 20

C KẾT LUẬN: 21

TÀI LIỆU THAM KHẢO: 22

Trang 2

A ĐẶT VẤN ĐỀ:

Tin học là một ngành khoa học có mục tiêu là phát triển và sử dụng máytính điện tử để nghiên cứu cấu trúc, tính chất của thông tin, phương pháp thuthập, lưu trữ, tìm kiếm, biến đổi, truyền thông tin và ứng dụng vào các lĩnh vựckhác nhau của đời sống xã hội Đối với các em học sinh, có thể nói đây là một

“hành trang” để giúp các em vững bước đi tới tương lai - tương lai của một thế

hệ công nghệ thông tin bùng nổ!

Trong việc giảng dạy cho học sinh, ngoài việc giúp học sinh lĩnh hội nhữngkiến thức cơ bản Giáo viên còn phải biết kích thích tính tích cực, sự sáng tạosay mê học hỏi của học sinh trong việc học tập của các em Bởi vì, việc học tập

tự giác, tích cực, chủ động và sáng tạo đòi hỏi học sinh phải có ý thức về nhữngmục tiêu đặt ra và tạo được động lực bên trong thúc đẩy bản thân họ hoạt động

để đạt các mục tiêu đó

Chương trình Tin học lớp 11 là một môn học khó, kiến thức thì trải rộngnhưng đòi hỏi các em phải biết vận dụng kiến thức của từng bài sắp xếp mộtcách lôgíc để lập trình giải một bài toán hoàn chỉnh Tuy nhiên trong thực tế rất

ít học sinh làm được điều đó Hầu hết các em vận dụng câu lệnh, cú pháp khôngphù hợp cho yêu cầu của bài tập

Vì vậy quá trình dạy và học bộ môn Tin học trong nhà trường phổ thôngcòn gặp rất nhiều khó khăn Từ thực tế này tôi muốn chia sẻ một kinh nghiệmnho nhỏ để chúng ta cùng tham khảo trong quá trình dạy học, đó là hướng dẫnlập trình giải một số dạng bài tập cơ bản chương trình Tin học lớp 11 chương II,chương III

Trang 3

B NHỮNG BIỆN PHÁP GIẢI QUYẾT VẤN ĐỀ:

1 Cơ sở đề ra biện pháp:

Qua việc nghiên cứu các vấn đề về lập trình theo từng dạng bài tập từ cơbản đến phức tạp của ngôn ngữ lập trình Pascal, các tài liệu về phương phápgiảng dạy Từ đó, đưa ra các biện pháp lập trình cho học sinh thông qua các ví

dụ cụ thể về chương trình lập trình từng phần khác nhau

Để thực hiện được điều đó, chúng ta cần phải tìm tòi, nghiên cứu tìm ranhững bài toán phù hợp, kích thích được sự độc lập, tích cực của học sinh tronghọc tập Trên cơ sở đó, học sinh có thể tự mình tìm ra được những ý tưởng sángtạo vận dụng thiết thực vào cuộc sống thực tế khi nhu cầu nảy sinh, khi đó các

em có thể tự mình hoàn thành được ý tưởng đó

2 Biện pháp giải quyết:

Qua quá trình giảng dạy để giúp cho học sinh dễ hiểu tôi có một số kinhnghiệm sau:

- Trước hết phải giúp các em nắm vững về lý thuyết, tính nguyên tắc vàlogíc của một bài lập trình Cách đặt tên chương trình, tên biến: ví dụ quá 8 kí tự

ta cần dùng dấu gạch nối xen giữa, bài lập trình nào thì cần dùng câu lệnh gánphối hợp với công thức của toán học để tính, bài lập trình nào thì cần dùng câu

lệnh If … then, for … to … do …, while do.

- Hướng dẫn học sinh lập trình đi từ bài dễ tới khó

- Để lập trình tốt yêu cầu các em nắm vững công thức của toán học đểchuyển đổi thành biểu thức của Pascal Cho học sinh ghi lại một số công thức cơbản trong toán học như :

 Tính biểu thức : TBP= (a+b)2 Khi đó viết biểu thức trong Pascal là: TBP := a*a + 2*a*b+b*b;

 Tính diện tích hình vuông : dientich = canh x canh Khi đó viết biểu thức trong Pascal là: S:= canh* canh;

 Tính chu vi tam giác: Chuvi = canh a + canh b + canh c

Trang 4

Khi đó viết biểu thức trong Pascal là: CV := a+b+c; …

- Ngoài ra, phải có biện pháp khuyến khích động viên các em như thưởngđiểm, khen trước lớp, hoặc những em có tư duy lập trình tốt cùng với thầyhướng dẫn những em học yếu trong lớp từ đó để kích thích sự sáng tạo kíchthích bộ môn trong học tập

2.1 Cấu trúc cơ bản nhất của một bài lập trình trong Turbo pascal.

a Cấu trúc chung bài lập trình:

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

- Cách đặt tên:

Tên không trùng với từ khóa ví dụ tên đặt begin là sai Vậy từ khóa là :

Program, uses, var, begin End…

 Tên đặt nhiều hơn 8 kí tự dùng dấu gạch nối xen giữa và không dài quá

127 kí tự

 Tên đặt bằng tiếng việt không dấu, không sử dụng dấu cách…

- Cú pháp khai báo tên các thư viện:

 <Từ khóa> <Tên các thư viện>;

Ví dụ khai báo thư viện Crt, graph … là: Uses CRt, graph;

- Cú pháp khai báo hằng:

 <Từ khóa> <Tên hằng = giá trị>;

Ví dụ khai báo hằng gia tốc của một vật rơi tự do là: Const g = 9.8;

Trang 5

- Cú pháp khai báo biến:

 <Từ khóa> <Tên các biến : kiểu dữ liệu>;

 Ví dụ khai báo biến cho bài toán tính diện tích và chu vi hình chữ nhậtkhi biết chiều dài và chiều rộng nhập từ bàn phím là các số nguyên thì:

Var cd, cr, p, s : integer;

 Kiểu dữ liệu: số nguyên là (byte, word, integer, longint), số thực (real,extended), …

- Câu lệnh nhập dữ liệu vào từ bàn phím:

Read(<danh sách biến vào>); hoặc Readln(<danh sách biến vào>);

Ví dụ: readln(cd, cr);

- Câu lệnh hiển thị dữ liệu ra màn hình:

Write(<danh sách kết quả ra>); hoặc Writeln(<danh sách kết quả ra>); Ví

dụ: hiển thị Trường THPT Le Van Huu ra màn hình thì ta có lệnh là:

Writeln(’Trường THPT Le Van Huu’); …

- Câu lệnh gán là tính toán giá trị biểu thức bên phải được kết quả cuối cùng thì gán cho tên biến phía bên trái là:

<tên biến> := <biểu thức>; ví dụ: a:=9; b:=a*3;

c Các phép toán số học, các hàm cơ bản:

- Các phép toán số học cơ bản: +, -, * (phép nhân), / (phép chia).

- Các hàm cơ bản:

 Hàm ABS(x): hàm tính giá trị tuyệt đối cho số thực hoặc số nguyên.

 Hàm SQR(x): hàm tính bình phương cho số thực hoặc số nguyên.

 Hàm SQRT(x): hàm tính căn bậc hai cho số thực hoặc số nguyên.

 Hàm Ln(x) tính lôgarit tự nhiên của x (x là số thực).

 Hàm Exp(x), sin(x), cos(x) tính lôgarit tự nhiên của x (x là số thực)

d Một số bài tập áp dụng lý thuyết trên:

Bài 1: Dựa vào cấu trúc bài lập trình sắp xếp các lệnh sau để thành một bài

lập trình tính giá trị s=a+b;

Trang 6

Các lệnh cho như sau: Program tinh_tong; a:=12; b:=88; uses crt; begin readln end s:=a+b; writeln(’tong s=’, s); Var a,b,s:integer; clrscr;

Bài 2: Lập chương trình gán biến a=9, biến b=10 và tính tổng, tích, hiệu của b

với a Cho kết quả hiển thị trên màn hình

Hướng dẫn:

Program Tinh_tong_tich_hieu;

Var a,b,tong,tich,hieu:byte;

Begin a:= 9; b:= 10;

Bài 3: Lập chương trình nhập vào chiều dài và chiều rộng hình chữ nhật, tính

chu vi và diện tích hình chữ nhật đó, cho kết quả hiển thị lên màn hình:

Hướng dẫn:

Program Tinh_chuvi_dientich_ HCN;

Trang 7

Wrietln(’chu vi hinh chu nhat:’, p);

Writeln(’dien tich hinh chu nhat:’,s);

Readln

End.

Gợi ý: Bài tập 4: Lập chương trình nhập vào cạnh hình vuông, tính chu vi và

diện tích hình vuông đó, cho kết quả hiển thị lên màn hình:

Hướng dẫn Lập trình tương tự như bài 3:

Chu vi tính P:=canh*4;

Diện tích tính S:=canh*canh;

Bài tập 5: Lập chương trình nhập vào ba cạnh của một tam giác, tính chu vi

và diện tích hình tam giác đó, cho kết quả hiển thị lên màn hình:

Hướng dẫn Lập trình tương tự như bài 3:

Chu vi tính CV:=a+b+c;

Nửa chu vi tính p:=CV/2;

Diện tích tính S:=SQRT(p(p-a)*(p-b)*(p-c));

Bài 6: Lập chương trình nhập vào bán kính đường tròn R, tính chu vi và diện

tích đường tròn đó, cho kết quả hiển thị lên màn hình:

Trang 8

cv:= 2*pi*r;

dt:=pi*r*r;

Wrietln(’chu vi hinh chu nhat: ’, cv:10:1);

{cv:10:1 de doc ket qua}

Writeln(’dien tich hinh chu nhat: ’,dt:10:1);

Readln

End.

Bài 7: Lập chương trình tính và đưa ra màn hình vận tốc V khi chạm đất của

một vật rơi từ độ cao h, biết rằng v= , trong đó g là gia tốc rơi tự do vàg=9.8m/s2 Độ cao h(m) được nhập vào từ bàn phím Tính xong cho kết quả vhiển thị lên màn hình lấy tròn 3 số thập phân

Trang 9

Hieu:= a*a – 2*a*b + b*b;

Writeln(’hieu binh phuong =’, hieu);

Readln

End.

Gợi ý: - Kết quả thu được khi chạy chương trình bài 8 là:

hieu binh phuong = 1

- Các bài toán chạy chương trình nên tính toán kết quả câu lệnh gán, đoạn

lập trình và đối chiếu câu lệnh hiển thị writeln để đưa ra kết quả.

2.2 Các bài tập cơ bản sử dụng cấu trúc điều kiện IF - THEN

- Để có thể giúp học sinh nắm bắt được các kiến thức cấu trúc điều kiện ta

có thể hình dung như sau:

a Cú pháp If - Then và ý nghĩa:

Để mô tả cấu trúc rẽ nhánh, Pascal dùng câu lệnh If - Then Với hai dạngthiếu và đủ :

Dạng 1: Cấu trúc rẽ nhánh dạng thiếu:

If <điều kiện> Then <câu lệnh>;

 Ý nghĩa: Nếu điều kiện có giá trị đúng thì câu lệnh sau từ khóa then được

thực hiện Nếu điều kiện có giá trị sai thì câu lệnh sau điều kiện thenkhông được thực hiện

 Ví dụ: If 9>3 Then Writeln(’ban lam toan rat tot!’);

Dạng 2: Cấu trúc rẽ nhánh dạng đầy đủ:

If <điều kiện> Then <câu lệnh 1>

Else <câu lệnh 2>;

 Ý nghĩa: Nếu điều kiện có giá trị đúng thì câu lệnh 1 sau then được thực

hiện và bỏ qua câu lệnh 2 Nếu điều kiện có giá trị sai thì câu lệnh 2 sau từkhóa Else được thực hiện và bỏ qua câu lệnh 1

 Ví dụ: If 9<3 Then wrietln(’ Ban di hoc toan ’) Else writeln(’ ban di hoc ly ’);

Trang 10

Lưu ý: - Câu lệnh rẽ nhánh dạng đầy đủ lệnh đứng trước ELSE không sử

b Một số bài tập áp dụng câu lệnh If – Then.

Bài 1: Sắp xếp các lệnh sau thành một chương trình hoàn chỉnh:

Begin

Var a,b: integer;

Write(’Nhap vao hai so a,b:’);

Readln(a,b);

Writeln(’so a lon hon so b:’)Writeln(’so b lon hon so a:’);

If a>b thenElse

Program Tim_solon_sobe;

Readln End

Hướng dẫn:

Program Tim_solon_sobe;

Var a,b:integer;

BeginWriteln(’moi nhap hai so a,b:’);

Readln(a,b);

If a>b then writeln(’So a lon hon so b:’)Else

Trang 11

Writeln(’so b lon hon so a:’);

ReadlnEnd

Bài 2: Cho biết kết quả hiển thị ra màn hình khi thực hiện chương trình

If b=0 then Writeln(’Ket qua bieu thuc b=0’);

If b>0 then writeln(’Ket qua bieu thuc b lon hon 0’);

If b<0 then writeln(’Ket qua bieu thuc b nho hon 0’);

Readln

End.

Hướng dẫn:

Sau khi chạy chương trình trên có kết quả là:

Ket qua bieu thuc b=0.

Bài 3: Lập chương trình nhập vào một số nguyên khác 0 Cho biết bạn

vừa nhập số nguyên đó là số âm hay số dương, hiển thị kết quả lên màn hình

Hướng dẫn:

Program Nhap_xet_so;

Var so:integer;

Begin

Writeln(’moi vao mot so nguyen khac 0:’); Readln(so);

If so < 0 then writeln(’ so ba vua nhap la so am’);

If so > 0 then writeln(’ so ban vua nhap la so duong’);

Readln

End.

Trang 12

Bài 4: Hãy lập chương trình nhập vào hai hệ số a và b Cho biết Nghiệm

của phương trình ax+b=0

Writeln(’phuong trinh bac nhat co mot nghiem x:’, x:10:1);

End;

Readln;

End.

Bài 5: Hãy lập chương trình nhập vào ba hệ số a,b,c (a khác 0) Cho biết

nghiệm của phương trình bậc hai ax2+bx+c=0

Trang 13

Writeln(’phuong trinh bac hai vo nghiem);

If delta=0 then Begin

x:=-b/(2*a);

Writeln(’phuong trinh bac hai co mot nghiem x1=x2=’,x:10:1);

End;

If delta <0 then Begin

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

x2:= (-b+sqrt(delta))/(2*a);

Writeln(’phuong trinh bac hai co nghiem thu nhat x1=’,x1:10:1);

Writeln(’phuong trinh bac hai co nghiem thu hai x2=’,x2:10:1);

Bài 7: Hãy lập chương trình tính tiền điện cho khách hàng của từng hộ

dân Khi biết Số điện tiêu thu nhập vào từ bàn phím

Trang 14

Biết rằng 100KW đầu giá 1242đồng/1kw50kW sau là giá 1369đồng/1kw

Các số KW còn lại là: 1836đồng/1kw

Tiền = số điện *đơn giá

Cho hiển thị số tiền cần phải trả

Tien:=skwtt*1242;

Writeln(’so tien can tra la:’, tien:12:1);

End;

If ((skwtt>100) and (skwtt<=150)) thenBegin

Tien:= (100*1242)+((skwtt-100)*1369);

Writeln(’so tien can tra la:’, tien:12:1);

End;

If SKWTT>150 thenBegin

Trang 15

2.3 Các bài tập cơ bản sử dụng câu lệnh lặp với số lần biết trước:

- Câu lệnh For tiến.

- Câu lệnh For lùi.

- Để có thể giúp học sinh nắm bắt được các kiến thức câu lệnh lặp với sốlần biết trước ta cần nắm vững lý thuyết sau:

Dạng 1: Câu lệnh For tiến.

For <biến đếm>:= <giá trị đầu> to <Giá trị cuối> do <Câu lệnh>;

Trong đó:  For (lặp), To (tới), Do (làm) là các từ khóa của Pascal

 Biến đếm : Là một biến đơn, kiểu nguyên

 Giá trị đầu, giá trị cuối: Là những con số nguyên, một đoạn

số nguyên liên tục: chẳng hạn như 1 đến 100, -10 đến 10, …

Ví dụ: For i:=1 to 100 do write(i:4); {Hiển thị số từ 1 đến 100}

 Câu lệnh là một lệnh đơn hoặc lệnh ghép (lệnh ghép là sau

do nếu yêu cầu thực hiện cùng lúc từ hai lệnh trở lên thì đặt vào giữa begin vàend;)

Ý nghĩa: Biến đếm nhận giá trị đầu kiểm tra nhỏ hơn hoặc bằng giá trị cuối thì đi thực hiện <câu lệnh> sau do Sau đó biến đếm tự động tăng lên một

đơn vị thì cũng phải kiểm tra tương tự như trên nếu đúng đi thực hiện câu lệnh

sau do Nếu sai thoát khỏi vòng lặp for tiến.

- Một số bài tập cơ bản:

Bài 1: Sắp xếp các lệnh sau đây thành một bài lập trình hoàn chỉnh trong

pascal để thực hiện hiển thị các số từ 1 2 3 4 5 mỗi số cách nhau 3 khoảngcách trắng

Trang 16

Var i:integer;

End

ReadlnBegin

Clrscr;

Uses crt;

For i:=1 to 5 doWrite(i:4);

readln

End.

Bài 2: Sắp xếp các lệnh sau đây để tạo thành một bài lập trình Cho

biết bài lập trình đang giải quyết bài toán nào? Phát biểu bài toán đó

Program tinh;

Var i, s:integer;

BeginUses crt;

Clrscr;

Readln;

End

For i:=1 to 20 doS:=0;

S:=s+i;

Writeln(’s=’,s);

Trang 17

Phát biểu bài toán: Em hãy lập trình tính tổng của các số từ 1 đến 20.

Cho hiển tổng vừa tính ra màn hình.

Bài 3: Em hãy lập chương trình nhập vào một số nguyên dương n Tính

tổng các số nguyên từ 1 đến n Cho hiển thị tổng ra màn hình

Trang 18

Bài 4: Em hãy lập chương trình nhập vào một số nguyên dương n Tính

Gợi ý cho bài toán: Nhập số nguyên dương n tính s=1+3+…+2n-1.

Ta chỉ sửa bài lập trình chỗ câu lệnh {A}: if (i mod 2= 1) then s:=s+i; từbài tập trên

Vòng lặp For lùi Cách làm tương tự nhưng cho chạy từ giá trị cuối và giảm dần tới giá trị đầu.

Ví dụ 1: S:=0;

For i:=100 downto 1 do S:=S+i; {tính giá trị tổng s đoạn [ 100]}

Ví dụ 2: s:=0

For i:=n downto 1 do S:=S+i; {tính giá trị tổng s đoạn [1 n]}

2.4 Các bài tập cơ bản sử dụng câu lệnh lặp với số lần chưa biết trước:

- Để có thể giúp học sinh nắm bắt được các kiến thức câu lệnh lặp với sốlần biết trước ta cần nắm vững lý thuyết sau:

While <Điều kiện> Do <Câu lệnh>;

Trong đó: + While, Do là các tên dành riêng của Pascal

Trang 19

+ Câu lệnh là một câu lệnh đơn hoặc ghép.

Ý nghĩa: Câu lệnh sẽ kiểm tra xem nếu Điều kiện đúng thì sẽ thực hiện

câu lệnh Sau một vòng lặp thì chúng ta phải có thao tác tăng hoặc giảm biến đểcho Điều kiện sẽ bị sai sau một số vòng lặp

Bài 2: Hãy lập chương trình nhập vào số tự nhiên N Kiểm tra xem số đó

có phải là số nguyên tố hay không Thông báo kết quả ra màn hình

Trang 20

If n < 2 thenWrite(’ Hop so’);

If (n=2)or(n=3) thenWrite(’ So nguyen to’);

If n > 3 then Begin d:= 0;

i:= 2;

while i < n div 2 do begin

if n mod i = 0 then d:= d+ 1;

Trong quá trình thử nghiệm đề tài bản thân tôi cũng gặp nhiều khó khăn

Là một trường huyện xét tuyển đầu vào chưa cao, những lớp tôi phụ trách lựchọc của các em không đồng đều, phần lớn hổng kiến thức cơ bản về toán họcdẫn đến các em áp dụng công thức lập trình sai, tính tư duy hạn chế Để khắcphục điều đó tôi cho các em ghi lại các công thức toán học liên quan tới lập trìnhgiải các bài toán trong tin học, rồi hướng dẫn chuyển đổi từ biểu thức toán họcsang biểu thức ngôn ngữ lập trình pascal Ghi từng từ khóa, câu lệnh, cấu trúc cơbản của từng bài tập theo từng chương cụ thể Cho các em lập chương trìnhnhiều lần với bài tập dễ Khi thành thạo sẽ hướng dẫn các em lập trình giải các

Ngày đăng: 10/10/2022, 08:48

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w