1. Trang chủ
  2. » Giáo án - Bài giảng

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

36 605 2

Đ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 36
Dung lượng 293 KB

Nội dung

Cấu trúc chung của một chương trình Pascal - Phần khai báo + Khai báo tên chương trình; + Khai báo các thư viện chứa các lệnh viết sẵn có thể sử dụng trong chương trình và một số khai

Trang 1

Bài 1: MỘT SỐ KHÁI NIỆM CƠ BẢN VỀ NGÔN NGỮ LẬP TRÌNH TURBO PASCAL

I MỤC TIÊU: HS nắm được một số khái niệm cơ bản về ngôn ngữ lập trình PC

II TIẾN TRÌNH BÀI DẠY

GV giới thiệu 1 Các tập tin cần thiết khi lập trình với Turbo Pascal

Để lập trình được với Turbo Pascal, tối thiểu cần 2 file

sau:TURBO.EXE: Dùng để soạn thảo và dịch chương trình TURBO.TPL: Thư viện chứa các đơn vị chuẩn để chạy

với TURBO.EXE.

Ngoài ra, muốn lập trình đồ hoạ thì phải cần thêm các tập

tin:GRAPH.TPU: Thư viện đồ hoạ.

*.BGI: Các file điều khiển các loại màn hình tương ứng khi

dùng đồ hoạ.

*.CHR: Các file chứa các font chữ đồ họa.

? Hãy nêu các bước cơ bản khi

lập trình 1 ch trình PC 2 Các bước cơ bản khi lập một chương trình PascalBước 1: Soạn thảo chương trình.

Bước 2: Dịch chương trình (nhấn phím F9), nếu có lỗi thì

phải sửa lỗi.

Bước 3: Chạy chương trình (nhấn phím Ctrl-F9).

? Nêu cấu trúc chung của 1

chương trình 3 Cấu trúc chung của một chương trình Pascal - Phần khai báo

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

+ Khai báo các thư viện (chứa các lệnh viết sẵn có thể sử dụng trong chương trình) và một số khai báo khác.

- Phần thân của chương trình gồm các câu lệnh mà máy

? Nêu các thành phần cơ bản

của NNPC 4 Các thành phần cơ bản của ngôn ngữ Pascal4.1 Từ khóa

Từ khoá là các từ mà Pascal dành riêng để phục vụ cho

mục đích của nó (Chẳng hạn như: BEGIN, END, IF, WHILE, )

4.2 Tên (định danh)

Tên danh là một dãy ký tự dùng để đặt tên cho các hằng, biến, kiểu, tên chương trình con Khi đặt tên, ta phải chú ý một số điểm sau:

- Không được đặt trùng tên với từ khoá

- Ký tự đầu tiên của tên không được bắt đầu bởi các ký tự

Trang 2

đặc biệt hoặc chữ số.

Không được đặt tên với ký tự space, các phép toán.

GV giới thiệu 5 Các hàm số học sử dụng cho kiểu số nguyên và số thực:

SQR(x): Trả về x2

SQRT(x): Trả về căn bậc hai của x (x≥ 0)

ABS(x): Trả về |x|

TRUNC(x): Trả về số nguyên gần với x nhất nhưng bé

hơn x.

INT(x):Trả về phần nguyên của x FRAC(x): Trả về phần thập phân của x ROUND(x): Làm tròn số nguyên x PRED(n): Trả về giá trị đứng trước n SUCC(n): Trả về giá trị đứng sau n ODD(n): Cho giá trị TRUE nếu n là số lẻ.

INC(n): Tăng n thêm 1 đơn vị (n:=n+1).

DEC(n): Giảm n đi 1 đơn vị (n:=n-1).

* Các hàm trên kiểu ký tự:

- UPCASE(ch): Trả về ký tự in hoa tương ứng với ký tự ch.

Ví dụ: UPCASE('a') = 'A'.

- ORD(ch): Trả về số thứ tự trong bảng mã ASCII của ký tự

ch Ví dụ ORD('A')=65.

- CHR(n): Trả về ký tự tương ứng trong bảng mã ASCII có

số thứ tự là n Ví dụ: CHR(65)='A'.

- PRED(ch): cho ký tự đứng trước ký tự ch Ví dụ:

Trang 3

- HS biết phân biệt từ khóa và tên, nắm chắc quy tắc đặt tên.

- Biết viết biểu thức toán bằng ngôn ngữ Pascal và ngược lại, biết chuyển các biểu thứcbằng ngon ngưa Pascal sang biểu thức Toán

- Biết viết một số chương trình đơn giản

B- TIẾN TRÌNH DẠY HỌC

HOẠT ĐỘNG CỦA GV VÀ HS GHI BẢNG

Hoạt động 1: Kiến thức cơ bản:

- GV yêu cầu HS nhắc lại khái niệm từ

khóa và tên, quy tắc đặt tên

- Yêu cầu HS xác định xem những tên

nào là hợp lệ

- GV chưa lại cho đúng

- GV yêu cầu HS nhắc lại cấu trúc

chung của một chương trình

? Hãy xác định từ khóa và tên trong

chương trình bên

- HS xác định, GV chữa lại cho đúng

- HS nhắc lại các kiểu dự liệu thường

I Kiến thức cơ bản:

1 Từ khóa và tên:

- Từ khóa

- Tên:

- Quy tắc đặt tên:

+ Không trùng từ khóa+ Không dùng dấu cách, dấu trừ, dấu cộng, + Không dùng số ở đầu tên

Ví dụ 1: Những tên nào sau đây là hợp lệ? Vì

sao?

a) ues b) tukhoa c) tu khoac) tu_khoa d) tu-khoa e) tu+khoag) 1tukhoa k) tukhoa1

2 Cấu trúc chung của một chương trình:

- Phần khai báo:

- Phần thân: (phần bắt buộc)

Ví dụ 1: Cho chương trình sau, hãy xác định

từ khóa, tên trong chương trình:

- Xâu kí tự: string, string[x]

4 Các phép toán và các phép so sánh:

- Cộng, trừ, nhân, chia

- Chia lấy phần nguyên

- Chia lấy phần dư

Trang 4

- HS nhắc lại cú pháp lệnh in ra màn

hình và lệnh nhập dữ liệu

Hoạt động 2: Bài tập:

- GV yêu cầu HS làm các bài tập trên

vào vở

Lưu ý:

+ abs: giá trị tuyệt đối VD: abs(x)

+ srq: bình phương

+ sqrt: căn bậc hai

+ exp: mũ

Hoạt động 3: Hướng dẫn về nhà:

Yêu cầu HS ghi bài tập về nhà

Bài 4: Viết chương trình in ra màn hình

các trang trí sau:

a) * * * * * b) *

* * * * * * *

* * * * * * * * *

* * * * * * * * * *

5 Lệnh in ra màn hình: write( ); hoặc writeln( );

6 Lệnh nhập dữ liệu: Read( ); hoặc Readln( );

II Bài tập:

Bài 1: Viết biểu thức toán bằng ngon ngữ Pascal:

a) 5x 3 + 2x 2 - 18x + 25 b) -10 -38 c) 2 2 2 2

4

a + ca

d) x y x y+− e) ( )2

1

x + g)

2

b a

− + ∆

k) p p a p b p c( − )( − )( − )

Bài 2: Viết chương trình tính chu vi và diện thang dưới đây:

program hinhthang;

uses crt;

begin clrscr;

writeln(‘dien tich = ‘, ((3.5 +9)*2.5)/2);

writeln(‘Chu vi = ‘, (3+3.5+4.5+9));

Readln;

End

Bài 3: Chuyển các biểu thức sau sang công thức toán:

a) 2*p*r b) -b/(2*a) c) 1/(n*(n+1)*(n+2)) d) 1+1/(x*x) + 1/(y*y)+1/(z*z)

e) sqrt(p*(p-a)*(p-b)*(p-c)) f) 1(abs(x)+1)+1/((abs(y)+1)*(abs((y)-1))

Bài 3: SỬ DỤNG BIẾN TRONG CHƯƠNG TRÌNH

C D

4,5

3,5 2,5 9,0

Trang 5

A- MỤC TIÊU:

- HS biết phân biệt từ khóa và tên, nắm chắc quy tắc đặt tên

- Biết viết biểu thức toán bằng ngôn ngữ Pascal và ngược lại, biết chuyển các biểu thứcbằng ngon ngưa Pascal sang biểu thức Toán

- Biết viết một số chương trình đơn giản

B-TIẾN TRÌNH DẠY HỌC:

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

SINH

GHI BẢNG

Hoạt động 1: Kiến thức cơ bản:

- GV yêu cầu HS nhắc lại khái niệm

biến và cách khai báo biến

? Sử dụng biến để làm gì?

- GV yêu cầu HS nhắc lại khái niệm

biến và cách khai báo biến

- Yêu cầu HS xác định biến, hằng trong

chương trình

- GV chửa lại cho đúng

Hoạt động 2: Bài tập:

GV yêu cầu HS làm các bài tập 4.7 ; 4.8

; 4.9; 4.11; 4.14 ở SBT/T31; 32;33; 34

I Kiến thức cơ bản:

1 Biến và khai báo biến:

- Biến:

- Khai báo: var tênbiến : Kiểudữliệu ;+ Gán giá trị cho biến: tênbiến := biểuthức ;+ Tính toán

2 Hằng:

- Hằng:

- Khai báo: Const tênhằng = giátrị ;

Ví dụ 1: Cho chương trình sau, hãy xác định

biến và hằng trong chương trình:

program baitap;

uses crt;

Var a, b: Integer;

const n=4 ;Begin clrscr;

Writeln(‘Hay nhap vao so a: ‘); Readln(a);Writeln(‘Hay nhap vao so b: ‘); Readln(b);Writeln(‘Thuong cua hai so la: ‘, a/b);

Readln;

End

Hoạt động 3: Hướng dẫn về nhà:

Yêu cầu HS ghi bài tập 4.17; 4.21;

4.23/SBT

Bài 4: CÂU LỆNH ĐIỀU KIỆN

I MỤC TIÊU:

Trang 6

-Nắm cú pháp câu lệnh điều kiện dạng thiếu

- Vận dụng làm bài tập

II TIẾN TRÌNH BÀI DẠY

1 Câu lệnh điều kiện dạng thiếu

a) Cú pháp

IF <điều kiện > THEN <câu lệnh>;

b) Sơ đồ thực hiện lệnh

c) Ghi chú

- Điều kiện phải là một biểu thức Logic

- Câu lệnh thực hiện khi Điều kiện đúng (Nhiều hơn 1 lệnh thì phải đặt trong khối lệnh)

if b>max then max:=b;

Writeln('gia tri lon nhat la ', max:2:3);

Trang 7

var max,a, b, c:real;

begin

clrscr;

Writeln('nhap vao 3 so '); readln(a, b, c);

max:=a;

if b>max then max:=b;

if c> max then max:=c;

Writeln('gia tri lon nhat la ', max:2:3);

if b<min then min:=b;

if c<min then min:=c;

Writeln('gia tri nho nhat la ', min:2:3);

Write('nhap vao a '); readln(a);

if a=0 then writeln(a , ' khong la so chan, khong la so le') else

Điều kiện?

Sai

Đúng

Trang 8

Writeln('chuong trinh giai phuong trinh bac nhat ax + b =0');

Write('nhap vao a='); readln(a);

Write('nhap vao b='); readln(b);

Writeln('chuong trinh giai phuong trinh bac hai a*x*x+b*x+c =0');

Write('nhap vao a='); readln(a);

Write('nhap vao b='); readln(b);

Write('nhap vao c='); readln(c);

Trang 9

Write('nhap vao a= '); readln(a);

if a=0 then writeln(a:2:1 ,' khong la so duong, khong la so am') else

If a> 0 then writeln(a:2:1 , ' la so duong ')

if (abs(a-b) < c) and (c<a+b) then

writeln('3 so tren la 3 canh cua mot tam giac')

Trang 10

Cỳ phỏp: FOR <biến đếm >:=<giỏ trị đầu> TO <giỏ trị cuối> DO <cõu lệnh >;

- For, to, do là từ khóa

- biến đếm là kiểu số nguyên

- giá trị đầu và giá trị cuối là kiểu số nguyên

- Câu lệnh có thể là câu lệnh đơn giản hoặc câu lệnh ghép

writeln(‘nhap vao so thu’,i); readln(A);

if A>0 then dem:=dem+1;

Trang 11

writeln('Nhap vao gia tri n = '); Readln(n);

writeln('Nhap vao gia tri x = '); Readln(x);

A;= sqrt(x);

for i:= 2 to n do A:= sqrt(x + A);

writeln('Gia tri cua A la: ', A:6:2);

If a[i] mod 3 = 0 then d:=d+1;

If d=0 then writeln('Khong co so chia het cho 3')

else write('co ', d,' so chia het cho 3 la: ');

Trang 12

-Nắm cú pháp câu lệnh lặp với số lần chưa biết trước

ài 1: Viết chương trình nhập vào số tiền gửi và lãi suất hàng tháng (nhỏ hơn 20

000 000) ở một ngân hàng Tính và in ra số tháng phải gửi để số tiền nhận được của kháchhàng không nhỏ hơn

ài 2: Một khách hàng gửi vào ngân hàng 10 000 000đ với lãi suất 0,1%.Tính số tháng phải

gửi của người khách đó để nhận được số tiền lơn hơn hoặc bằng 20 000 000đ

Trang 13

Bài 3: Viết chơng trình nhập vào các số thực x (biểu diễn điểm của một số học sinh)

Vòng lặp dừng lại khi tổng các điểm lớn hơn 100 In ra tổng điểm

Var <tên mãng>: array[<chỉ số đầu> <chỉ số cuối>] 0f <kiểu dữ liệu>;

- Var, array, of là từ khóa

- tờn móng là tờn biến móng

2 Bài tập:

Bài 1: Viết N chơng trình nhập n số nguyên từ bàn phím và in ra màn hình số nhỏ nhất và số

lớn nhất N cũng đợc nhập vào từ bàn phím

Program MaxMin; Uses crt;

Var i, n, max min: Integer;

A: array[1 100] of integer;

Begin clrscr;

Writeln(‘hay nhap vao do dai cua day so, N= ‘); Readln(N);

Writeln(‘Nhap cactu cua day so:’);

For i := 1 to N do

Begin

Trang 14

Writeln(‘a[‘,i,’]=’); Readln(a[i]);

End;

Max := a[1]; Min := a[1];

For i := 1 to N do

Begin if Max < a[i] then Max := a[i];

If Min > a[i] then Min := a[i];

End;

Writeln(‘So lon nhat la Max = ‘, Max);

Writeln(‘so nho nhat la Min = , Min);

If a[i] mod 3 = 0 then d:=d+1;

If d=0 then writeln('Khong co so chia het cho 3')

else write('co ', d,' so chia het cho 3 la: ');

for i:=1 to n do

If a[i] mod 3 = 0 then write(a[i],' ');

Readln;

End

Bài 3: Viết chương trình nhập điểm của các bạn trong lớp Sau đó in ra màn hình số bạn đạt

kết quả học tập loại giỏi, khá, trung bình và kém (theo tiêu chuẩn từ 8.0 trở lên đạt loại giỏi,

từ 6.5 đến 7.9 đạt loại khá, từ 5.0 đến 6.4 đạt trung bình và dưới 5.0 xếp loại kém).

For i:=1 to n do Begin

write(i,’ ‘); readln(a[i]); End;

Gioi:=0; Kha:=0; Trungbinh:=0; Kem:=0;

for i:=1 to n do

begin

if a[i]>=8.0 then Gioi:=Gioi+1;

if a[i]<5 then Kem:=Kem+1;

Trang 15

if (a[i]<8.0) and (a[i]>=6.5) then Kha:=Kha+1;

if (a[i]>=5) and (a[i]<6.5) then Trungbinh:=trungbinh+1

end;

writeln(‘Ket qua hoc tap:’);

writeln(Gioi,’ ban hoc gioi’);

writeln(Kha,’ ban hoc kha’);

writeln(Trungbinh,’ ban hoc trung binh’);

writeln(Kem,’ ban hoc kem’); readln; End.

Trang 16

write('Xau tong la: ');

For i:=1 to length(xt) do

Trang 19

Bài 2: Viết chương trình nhập vào một dãy n phần tử In ra giá trị lớn nhất của dãy In ra các

số dương và tổng các số dương của dãy

If max<a[i] then max:=a[i];

Writeln('so lon nhat la : ',max);

Trang 20

Bài 2: Lập chương trình tính tiền điện khi biết số Kw tiêu thụ Biết rằng 100 số đầu giá 500,

50 số tiếp theo giá 650đ/kw 50 số tiếp theo là 1200đ/kw và các số trên 200 giá 1600 đồng

Trang 21

write('nhap vao chieu dai: ‘);readln(a);

write('nhap vao chieu rong: ‘);readln(b);

write('nhap vao chieu cao: ‘);readln(h);

Program Tam_giac;

Uses crt;

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

Begin clrscr;

write('nhap vao canh 1: ‘);readln(a);

write('nhap vao canh 2: ‘);readln(b);

write('nhap vao canh 3: ‘);readln(c);

if (a+b>c) and (a+c>b) and (b+c>a) then

Begin

Trang 22

Write (' Doc Ngay Thang Nam : ') ;

Readln ( Ngay , Thang , Nam ) ;

Nam := 1900 + ( Nam mod 1900 ) ;

Thu := Abs ( Ngay + Thang * 2 + ( Thang + 1 ) * 3

div 5 + Nam + Nam div 4 ) mod 7 ;

Case Thu Of

0 : Writeln (' Chu Nhat ') ;

1 : Writeln (' Thu Hai ') ;

2 : Writeln (' Thu Ba ') ;

3 : Writeln (' Thu Tu ') ;

4 : Writeln (' Thu Nam ') ;

5 : Writeln (' Thu Sau ') ;

6 : Writeln (' Thu Bay ') ;

Nhâp số báo danh

Nhập điểm văn , toán , ngoại ngữ

Trang 23

Bạn đã trúng tuyển ( hoặc Bạn đã không trúng tuyển ) với điều kiện Tổng số điểm >=

15 hay ngược lại

GIẢI

Uses Crt ; Var SBD : Integer;

Van , Toan , Ngoaingu , Tongdiem : Real ;

BEGIN

Clrscr ;

Write (' So bao danh : ') ; Readln( SBD ) ;

Write (' Diem toan : ') ; Readln( Toan ) ;

Write (' Diem ngoai ngu : ') ; Readln( Ngoaingu ) ;

Write (' Diem van : ') ; Readln ( Van ) ;

Tongdiem := Toan + Van + Ngoaingu ;

Clrscr ;

Writeln (' Phieu Bao Diem ') ;

Writeln (' So bao danh : ', SBD ) ;

Writeln (' Diem van : ', Van ) ;

Writeln (' Diem toan : ', Toan ) ;

Writeln (' Diem ngoai ngu : ', Ngoaingu) ;

Writeln (' Tong diem : ', Tongdiem) ;

Nếu là “+” , in kết quả của tổng lên màn hình

Nếu là “-” , in kết quả của hiệu lên màn hình

Nếu là “/” , in kết quả của thương lên màn hình

Nếu là “*” , in kết quả của tích lên màn hình Nếu là “+” , in kết quả của tổng lên mànhình

Nếu là “+” , in kết quả của tổng lên màn hình

Trang 24

If ( (N + M) mod 2 = 0 ) Then Writeln(' Dung ! ')

Else Writeln(' Sai ! ') ;

Trang 25

Tính giá trị của biểu thức sau :

Write (' Cho so a : ') ; Readln(a) ;

Write (' Cho so mu n : ') ; Readln(n) ;

i := 1 ;

giatri := 1 ;

Trang 27

if max<a[i] then max:=a[i];

writeln('so lon nhat la: ',max);

t:=0;

for i:=1 to n do

if a[i]>0 then t:=t+a[i];

writeln('tong cac so duong la: ',t);

Trang 28

While ( j < i ) and ( A[j] <> A[i] ) Do j:=j+1;

If j = i Then Writeln( A[i] );

End; Readln; END

Trang 29

Writeln (' Nhap cac phan tu cua day : ') ;

Trang 30

Var a : Array [1 100] Of Integer ;

n , i : Byte ;

d : integer ;

BEGIN clrscr;

Clrscr ;

Writeln (' Tim USCLN cua N so :') ;

Write (' Nhap so N : ') ; Readln(n) ;

Write(' Cho mot xau ki tu : '); Readln(s);

For ch:= 'A' to 'Z' do A[ch]:=0;

For i:=1 to length(s) do

Trang 31

c c Một nhóm các dấu chấm đứng liền nhau bằng dấu ba chấm

a )

Var S: string;

i: byte;

BEGIN

Write(' Cho mot xau ki tu S = '); Readln(S);

For i:=1 to length(S) do

If S[i] = '!' then S[i]:= '.';

Write( ' Chuoi sau khi da bien doi la : ', S);

While i< length(S) do

If (S[i]='.')and(S[i+1]='.') then Delete(S,i,1)

Trang 32

Var S: string;

Trang 33

i: integer;

BEGIN

Write(' Cho mot xau ki tu : '); Readln(S);

i:= pos('aa', S); {tìm vị trí xâu con 'aa' trong S}

If i<>0 then Writeln(' Ton tai "aa" tai vi tri ', i)

Else Writeln(' Khong ton tai ') ;

a a Si là dấu phẩy đầu tiên

b b Si là dấu phầy cuối cùng

a )

Var S: string;

i: integer;

BEGIN

Write('Cho mot xau S co dau ",": '); Readln(S);

i:= pos(',', S); (* vị trí của dấu ',' trong S *)

If i<> 0 then Write(' Vi tri thoa man la: ', i);

While (i>=1)and(S[i] <> ',' ) do i:=i -1;

If i>=1 then Write('So thu tu thoa man la: ', i)

Else Write('Khong ton tai.');

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

TỪ KHÓA LIÊN QUAN

w