1. Trang chủ
  2. » Công Nghệ Thông Tin

giáo án thao giảng, bồi dưỡng thi giáo viên giỏi môn tin bài ngôn ngữ lập trình (4)

108 1,5K 1

Đ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 108
Dung lượng 2,54 MB

Nội dung

 Sử dụng ngôn ngữ lập trình để giải một số bài toán cơ bản... Các bước để giải một bài toán trên máy tính Bước 1: Xác định vấn đề - bài toán  Bước 2: Lựa chọn phương pháp giải  Bước

Trang 1

NHẬP MÔN LẬP TRÌNH

TIN HỌC ĐẠI CƯƠNG

Trang 2

BIỂU DIỄN BÀI TOÁN TRÊN MÁY TÍNH

I Bài toán và thuật toán:

 Khái niệm bài toán trong tin học

 Khái niệm thuật toán, các đặc trưng cơ bản của thuật toán

 Biểu diễn bài toán trên máy tính.

 Biểu diễn thuật toán.

II Ngôn ngữ lập trình Pascal

 Khái niệm về ngôn ngữ lập trình và chương trình dịch.

 Các lệnh cơ bản: lệnh nhập/xuất, lệnh rẽ nhánh (if), lệnh lặp

(while, for)

 Sử dụng ngôn ngữ lập trình để giải một số bài toán cơ bản.

Trang 3

1 Vấn đề - bài toán

2 Máy tính và việc giải quyết vấn đề - bài

toán

3 Thuật toán - thuật giải

4 Các phương pháp biểu diễn thuật toán

5 Bài tập tổng hợp

I BÀI TOÁN VÀ THUẬT TOÁN

Trang 4

Các bước để giải một bài toán trên máy tính

 Bước 1: Xác định vấn đề - bài toán

 Bước 2: Lựa chọn phương pháp giải

 Bước 3: Xây dựng thuật toán hoặc thuật

giải

 Bước 4: Cài đặt chương trình

 Bước 5: Hiệu chỉnh chương trình

 Bước 6: Thực hiện chương trình

Trang 5

1 Vấn đề - bài toán

Vấn đề được hiểu như những khó khăn vướng mắc cần

được giải quyết

Vấn đề được thể hiện dưới dạng bài toán Có điều kiện

ban đầu và kết quả cần đạt tới

A là giả thiết hay điều kiện ban đầu

B là kết luận hay kết quả cần đạt tới

là suy luận, giải pháp để giải quyết vấn đề

Trang 7

2 3

Trang 8

2 Máy tính và việc giải quyết vấn đề - bài toán

 Máy tính có thể tính toán một khối lượng khổng lồ phép tính

với độ chính xác tuyệt đối và tốc độ cực nhanh

 Máy tính không thể tự tìm ra cách giải quyết vấn đề mà phải

nhờ vào những chỉ dẫn của con người thông qua ngôn ngữ

máy

 Sự phát triển của ngôn ngữ bậc cao giúp con người có thể giao tiếp với máy tính một cách dễ dàng hơn.

 Quá trình chuyển đổi giữa ý tưởng , ngôn ngữ tự nhiên sang

ngôn ngữ bậc cao gọi là lập trình

 Ngôn ngữ bậc cao còn được gọi là ngôn ngữ lập trình

Trang 11

2.1.2 Hợp ngữ (Assembly)

Có cấu trúc rất giống ngôn ngữ máy

Mã lệnh được thay bằng tên viết tắt tương ứng

Chỉ chạy được sau khi đã được dịch ra ngôn ngữ máy thông qua chương trình hợp dịch ( Assembler )

Ưu điểm: khắc phục được nhược điểm của ngôn ngữ máy

Nhược điểm: không phù hợp với số đông người lập trình

Trang 12

2.1.3 Ngôn ngữ bậc cao

Mô phỏng ngôn ngữ tự nhiên, sử dụng các ký hiệu toán học thống nhất chung

Không phụ thuộc vào loại máy tính cụ thể

Chỉ chạy được sau khi đã được dịch ra ngôn ngữ máy thông qua chương trình thông dịch ( Interpreter ) hoặc biên dịch ( Compiler )

Ưu điểm: dễ viết, chương trình dễ hiểu, dễ hiệu chỉnh và dễ nâng cấp hơn

Trang 14

Nội dung

2.2.1 Khái niệm

2.2.2 Kỹ thuật thông dịch (Interpreter)

2.2.3 Kỹ thuật biên dịch (Compiler)

Trang 15

2.2.1 Khái niệm

Là chương trình đặc biệt dùng để chuyển chương trình trên ngôn ngữ ban đầu (chương trình nguồn) sang chương trình tương đương trên ngôn ngữ máy

Trang 16

2.2.2 Kỹ thuật thông dịch

Là kiểu dịch từng dòng lệnh để hiểu công việc cần làm và thực hiện ngay chứ không nhất thiết phải tạo ra các đoạn

mã tương đương trong ngôn ngữ máy

Nếu một câu lệnh phải thực hiện nhiều lần thì cũng phải dịch nhiều lần

Ứng dụng: môi trường đối thoại giữa người và hệ thống

Trang 17

2.2.3 Kỹ thuật biên dịch

Là kiểu dịch toàn bộ chương trình ban đầu thành một

chương trình tương ứng trong ngôn ngữ máy (chương trình đích), sau đó nạp chương trình đích vào máy tính để thực hiện

Ứng dụng: phù hợp với các chương trình ổn định và phải thực hiện nhiều lần

Trang 18

Một số ngôn ngữ lập trình thông dụng

Basic được thiết kế bởi John G Kemeny và Thomas E Kurtz tại ĐH Dartmouth vào 1963

Pascal được Niklaus Wirth phát thiết kế năm 1970

C do Dennis Richie thiết kế năm 1972 tại phòng thí

nghiệp Bell Telephone của hãng AT&T sử dụng trong

hệ điều hành Unix

Java được phát triễn bởi James Gosling thuộc Sun

Microsystem vào 6/1991

Trang 19

Phương pháp gián tiếp

Áp dụng khi vấn đề - bài toán chưa tìm ra lời giải chính xác

Trang 20

3 Thuật toán – Thuật giải

3.1 Thuật toán

Thuật toán là một dãy hữu hạn các bước xác định nhằm giải quyết vấn đề với kết quả mong muốn.

Ví dụ: Thuật toán giải phương trình bậc nhất

ax+b=0 với a,b là hằng số

1 Yêu cầu cho biết giá trị của a,b

2 Nếu a=0 thì

2.1 Nếu b = 0 thì PT vô định Kết thúc 2.2 Nếu b ≠ 0 thì PT vô nghiệm Kết thúc

3 Nếu a ≠ 0 thì PT có nghiệp x=-b/a Kết thúc

Trang 22

3.3 Đặc trưng của thuật toán

 Đầu vào và đầu ra

Mọi thuật toán đều nhận kết quả ở đầu vào, xử lý và cho kết quả cuối cùng

 Tính hiệu quả

Khối lượng tính toán, không gian và thời gian được thi hành

là yếu tố quyết định để đánh giá, lựa chọn thuật toán giải quyết vấn đề.

 Tính tổng quát

Thuật toán phải áp dụng cho một họ bài toán

Trang 23

3.4 Thuật giải

Mở rộng hai tiêu chuẩn của thuật toán :

Tính xác định và tính đúng đắn được mở rộng để chấp nhận các cách giải cho kết quả tốt, gần đúng nhưng ít phức tạp

Trang 24

4 Các phương pháp biểu diễn thuật toán

4.1 Dùng ngôn ngữ tự nhiên

4.2 Dùng lưu đồ, sơ đồ khối

4.3 Dùng mã giả

Trang 26

Ví dụ: Thuật toán giải phương trình bậc nhất a x+ b =0 với a , b là hằng số

1 Yêu cầu cho biết giá trị của a , b

2 Nếu a =0 thì

2.1 Nếu b = 0 thì PT vô số nghiệm

Kết thúc thuật toán 2.2 Nếu b ≠ 0 thì PT vô nghiệm.

Kết thúc thuật toán

3 Nếu a ≠ 0 thì PT có nghiệp x =- b / a

Kết thúc thuật toán

Trang 28

4 Các phương pháp biểu diễn thuật toán

4.2 Dùng lưu đồ, sơ đồ khối

Lưu đồ hay sơ đồ khối là công cụ trực quan để diễn đạt các thuật

Điều kiện lựa chọn

Trang 29

Đ S

Trang 30

4 Các phương pháp biểu diễn thuật toán

if b =0 thì : xuất kết quả “Pt vô định”

else xuất kết quả “Pt vô nghiệm”

else xuất kết quả x = - b / a

Trang 31

Bài tập tổng hợp: Viết thuật toán dạng liệt

kê và vẽ lưu đồ các vấn đề sau

1 Tính diện tích, chu vi của hình chữ nhật.

2 Tính diện tích, chu vi của hình tròn.

3 Giải phương trình bậc hai a x 2 + b x+ c =0

4 Tìm số lớn nhất giữa 3 nguyên cho trước được nhập từ bàn

Trang 32

II Ngôn ngữ lập trình Pascal

1. Giới thiệu ngôn ngữ lập trình Pascal

2. Cấu trúc tổng quát của một chương trình Pascal

3. Các kiểu dữ liệu đơn giản

4. Khai báo, biểu thức, câu lệnh

Trang 33

1 Giới thiệu ngôn ngữ lập trình Pascal

1.1 Chương trình Pascal đầu tiên

Sử dụng Turbo Pascal hoặc Free Pascal soạn thảo, biên dịch và chạy chương trình.

{This is first program}

Program FirstProgram ; Begin

Writeln( ‘ Hello World ’ );

End.

Trang 34

1.2 Chương trình giải phương trình bậc nhất.

Program PhuongTrinhBacI ; Var a,b:integer;

Trang 35

{Phần chương trình con}

Procedure Function {Chương trình chính}

Begin {Các lệnh của chương trình chính}

End.

Trang 36

3 Các kiểu dữ liệu cơ bản

3.1 Kiểu dữ liệu đơn giản

Kiểu số nguyên(Integer)

Kiểu số thực(Real)

Kiểu ký tự(Char)

Kiểu logic(Boolean)

3.2 Kiểu dữ liệu có cấu trúc

Kiểu mảng(Array)

Kiểu chuỗi(String)

Kiểu tập hợp(Set)

Kiểu bản ghi(Record)

Kiểu tập tin(File,Text)

Trang 37

3.1 Kiểu dữ liệu đơn giản

Kiểu số nguyên( Integer )

Phép toán Ý nghĩa Kiểu kết quả

DIV Chia lấy phần nguyên Số nguyên MOD Chia lấy phần dư Số nguyên + - * Cộng, Trừ, Nhân Số nguyên

INC(x) Tăng x lên 1 DEC(x) Giảm x xuống 1 ODD(x) Cho kết quả đúng nếu x lẻ

Trang 38

3.1 Kiểu đơn giản

Kiểu số thực( Real )

ABS(x) Lấy giá trị tuyệt đối của x SQR(x) Lấy bình phương của x SQRT(x) Lấy căn bậc 2 của x ROUND(x) Làm tròn x

INT(x) Lấy phần nguyên của x

1.7E+38

Trang 40

3.1 Kiểu đơn giản

Kiểu ký tự( Char )

+ Nối các ký tự thành chuỗi ‘A’+’B’ ‘AB’

‘B’<=‘A’  TRUE

Tên

ORD(c) Cho vị trí của ký tự c trong

bảng mã ASCII ORD(‘A’) = 65ORD(‘0’) = 48 CHR(n),

#n Cho ký tự tại vị trí n trong bảng mã ASCII CHR(32) = ‘ ’CHR(65) = ‘A’

Trang 41

3.1 Kiểu đơn giản

Dữ liệu thuộc kiểu boolean chỉ có thể nhận giá trị

TRUE hoặc FALSE

Các phép toán trên kiểu Boolean

AND, OR, NOT, XOR

E

TRUE TRUE

FALS E

FALS E

E TRUE TRUEFALS

Trang 42

4 Khai báo, biểu thức, câu lệnh

4.2 Khai báo biến(Variable)

Biến là một vùng nhớ được đặt cho một tên dùng để lưu trữ dữ liệu nào đó Giá trị của vùng nhớ chính là giá trị của biến

Tên biến phải bắt đầu bằng một chữ cái, không có

khoảng trắng

Cách khai báo

Var <tên biến> : <kiểu dữ liệu>;

Trang 43

4 Khai báo, biểu thức, câu lệnh

4.2 Khai báo biến(Variable)

Var

N : integer ; a,b : real ;

ch : char ; hovaten : string ; test : boolean ;

Cách khai báo

Var <tên biến> : <kiểu dữ liệu>;

Trang 44

4 Khai báo, biểu thức, câu lệnh

4.1 Khai báo hằng (Constant)

Hằng là một đại lượng không đổi trong suốt quá trình thực thi chương trình

Trang 46

4 Khai báo, biểu thức, câu lệnh

4.3 Biểu thức

Thứ tự ưu tiên

1. Phép gọi hàm

2. Not - (dấu âm)

3. * / DIV MOD AND

5. = <> <= >= < > IN

Qui tắc tính thứ tự độ ưu tiên

• Phép toán có độ ưu tiên cao hơn sẽ được tính trước

• Các phép toán có cùng độ ưu tiên thì tính từ trái sang phải.

• Phần trong ngoặc từ trong ra ngoài được tính thành giá trị đơn.

Trang 47

<tên biến> := <giá trị>;

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

Ví dụ

Delta := SQR (B) – 4*A*C;

Bcnn := a*b div UCLN (a,b);

dientich := chieudai*chieurong;

Trang 48

4 Khai báo, biểu thức, câu lệnh

Trang 49

Readln(X1, X2, …, Xn)

Nhập dữ liệu từ bàn phím vào các biến X1,X2, ,Xn

Readln; Dừng chương trình, đợi

Trang 50

Writeln( ‘ chu vi= ’ , (dai+rong)*2);

Writeln( ‘ ket thuc chuong trinh ’ );

Trang 51

6 Cấu trúc điều kiện

Program PhuongTrinhBacI ; Var a,b:integer

Begin

if a<>0 then writeln(‘x=‘,-b/a)

Đ S

Trang 52

6 Cấu trúc điều kiện

6.1 Câu lệnh if …then …else Program PhuongTrinhBacI ;

Trang 54

6 Cấu trúc điều kiện

end ; End

Trang 55

a

Trang 56

Until < điều kiện >

Lặp lại quá trình thực hiện câu

lệnh cho đến khi điều kiện

đúng thì dừng.

Trang 57

if a>b then a:=a-b

Trang 58

if a>b then a:=a-b

Nếu điều kiện đúng thì thực hiện

câu lệnh cho đến khi điều kiện

Sai thì dừng.

Trang 59

7 Cấu trúc lặp

Viết chương trình tính tổng sau với N là

số tự nhiên cho trước:

N

T  12  22  32   2

Trang 60

Write (‘N=’); Readln ( N );

until N >0;

T :=0; I:=1;

while I<=N do begin

Trang 61

End

Trang 64

7 Cấu trúc lặp

Chú ý:

Vòng lặp For có số bước lặp xác định

Biến đếm phải có kiểu rời rạc

Biến đếm tự động tăng/giảm 1 sau mỗi lần lặp

For <biến đếm>:=<giá trị đầu> to <giá trị cuối> do

<câu lệnh>

For < biến đếm >:=< giá trị đầu > downto < giá trị cuối > do

<câu lệnh>

7.3 Cấu trúc lặp For

Trang 65

Bài tập về chu trình và rẽ nhánh :

1. Số hoàn thiện là số mà tổng các ước thực sự bằng chính

nó Ví dụ: 6=1+2+3 Hãy tìm các số hoàn thiện nhỏ hơn N.

2. Số nguyên tố là số chỉ có 2 ước là 1 và chính nó Hãy tìm các số nguyên tố nhỏ hơn N.

Trang 66

8 Kiểu dữ liệu mảng (Array)

Trang 68

R: array[- 1 1 ] of real ; C: array[‘ a ’ ’ d ’] of char ; B: array[ 1 10 ] of byte ;

Trang 71

tên mảng : tên kiểu mới ;

Khai báo gián tiếp

Type

MangSoNguyen : array[‘ 1 ’ ’ 10 ’] of byte

Var

Trang 73

readln( n );

for i := 1 to n do begin

write(‘ nhap phan tu thu ’, i ,’ :’); readln( a [ i ] );

Trang 74

write(‘ phan tu thu ’, i ,’ :’); writeln( a [ i ] );

end;

end;.

Trang 75

Bài tập về mảng một chiều

1 Nhập vào dãy số N số nguyên Xếp các số lẻ vào đầu dãy,

các số chẵn vào cuối dãy.

2 Viết chương trình nhập vào một dãy số nguyên Sau đó

chèn thêm một phần tử tại vị trí bất kỳ vào dãy In ra dãy số sau khi chèn.

3 Viết chương trình nhập vào một dãy số nguyên Xóa một

phần tử có giá trị bất kỳ trên dãy In ra dãy sau khi xóa.

4 Nhập vào một dãy gồm N số nguyên Xuất ra dãy số trên

sau khi được sắp xếp tăng dần.

5 Nhập vào một dãy số nguyên, kiểm tra dãy trên có phải là

cấp số cộng không?

6 Nhập vào dãy N số nguyên, tìm dãy cấp số cộng dài nhất

trên dãy đã cho.

Trang 76

] [2, 2] [2,3 ] [2, 4] [2, 5] [3,1

] [3, 2] [3,3 ] [3, 4] [3, 5] [4,1

] [4, 2] [4,3 ] [4, 4] [4, 5] [5,1

] [5, 2] [5,3 ] [5, 4] [5, 5]

Trang 78

] [2, 2] [2,3 ] [2, 4] [2, 5] [3,1

] [3, 2] [3,3 ] [3, 4] [3, 5] [4,1

] [4, 2] [4,3 ] [4, 4] [4, 5] [5,1

] [5, 2] [5,3 ] [5, 4] [5, 5]

A[ 3 , 3 ] = 5

A:array[1 5,1 5] of byte;

Trang 79

readln( n,m );

for i := 1 to n do for j := 1 to m do begin

Trang 80

end;

end.

Trang 82

Bài tập về mảng hai chiều

4 Viết nhập vào hai ma trận, sau đó in ma trận

kết quả của phép nhân 2 ma trân trên.

5 Viết chương trình tính tổng các phần tử trên

tam giác dưới của một ma trận vuông cấp N.

Trang 83

9 Kiểu dữ liệu chuỗi (String)

Trang 84

gioitinh : string[ 3 ];

filename : string;

danhsachlop:array[1 50] of string[50];

Trang 85

Các thao tác nhập, xuất, so sánh, gián giá trị

trên chuổi được sử dụng giống như các biến thuộc kiểu cơ bản thông thường

Trang 86

b Các hàm thao tác trên chuỗi

Length(St) cho độ dài thực sự của xâu ký tự St

VD: Length(‘ABC’)  3 Delete(St,N,M) Xóa M ký tự của chuỗi St bắt đầu tại vị trí N

St=‘Tin học’ Delete(St,4,4)  St=‘Tin’

Insert(S,St,N) Chèn xâu S vào xâu St bắt đầu tại vị trí N

St=‘Nguyen Thanh’

Insert(‘Van ‘,St,8)  St=‘Nguyen Van Thanh’

Copy(St,N,M) Sao chép M ký tự của xâu St bắt đầu tại vị trí N

St=‘Tin học’; Copy(St,5,3)  ‘học’

Str(N,St) Biến đổi giá trị số N thành chuỗi số đặt vào St

Str(3.1416,St)  St=‘3.1416’

Val(St,N,Er) Biến đổi chuỗi St thành số đặt vào N, Er là biến số nguyên

sẽ chứa mã lỗi nếu có.

Val(‘3.1416’,N,Er)  N=3.1416 nếu N là kiểu Real  N=0, Er=2 nếu N có kiểu số Word

Phép nối chuỗi St=“Tin”; St=St+ ‘ ’+ ‘học’  St=‘Tin học’

Trang 87

Bài tập về chuỗi

1. Viết chương trình kiểm tra một chuỗi có phải là

Palindrom hay không?

2. Viết chương trình đếm số ký tự xuất hiện trong

5. Viết chương trình in ra từ dài nhất trong chuỗi

6. Viết chương trình nhập vào họ và tên In ra họ, tên

lót, tên

7. Viết chương trình nhập vào danh sách họ và tên In

ra danh sách vừa nhập với định dạng canh đều 2 bên

Trang 88

10 Chương trình con

Procedure & Function

Trang 90

Một số thủ tục và hàm tự định nghĩa

Nhapmang(

A,n);

dtb:=Tinh trungbinh(a)

T:=T+Giaithua(i)/

Mu(i,n);

If palindrom(st) then

Trang 91

10.1 Khái niệm

Thủ tục (Procedure) và hàm (Function) là những chương trình con có chức năng giúp cho người lập

trình giảm bớt công sức và chương trình ngắn gọn, dễ hiểu và dễ kiểm tra.

End.

Trang 92

10.2 Định nghĩa thủ tục và gọi thủ tục

Loại 1: Thủ tục không có tham số

Procedure Ten_thu_tuc ; {phần khai báo của thủ tục}

Writeln(‘Chao cac ban’); Writeln(‘ -’); End;

Begin

xuat_loi_chao ; End.

Lời gọi thủ tục

Trang 93

10.2 Định nghĩa thủ tục và gọi thủ tục

Loại 2: Thủ tục có tham số

Procedure Ten_thu_tuc( Danh sách các tham số )

{phần khai báo của thủ tục}

End;

Begin

Nhapmang(a ,n);

Xuatmang(a, n)

End.

Trang 94

10.3 Định nghĩa hàm và gọi hàm

Định nghĩa

Funtion ten_ham(Danh sách các tham số nếu có):kiểu trả về

{phần khai báo của hàm}

Tên_hàm(Danh sách các tham số nếu có )

Khi gọi hàm, tên hàm phải tham gia như là một biểu thức.

End.

Trang 95

10.3 Định nghĩa hàm và gọi hàm

Funtion ten_ham(Danh sách các tham số nếu có):kiểu trả về

{phần khai báo của hàm}

Trang 96

10.3 Định nghĩa hàm và gọi hàm

Funtion ten_ham(Danh sách các tham số nếu có):kiểu trả về

{phần khai báo của hàm}

giaithua:=gt;

End.

Begin

Writeln(giaithua( 10));

End.

Trang 97

10.4 Tầm vực hoạt động của biến

Biến toàn cục:

Là biến được khai báo trong chương trình chính Các biến này

có thể sử dụng mọi nơi trong chương trình, kể cả trong chương trình con.

Biến cục bộ:

Là biến được khai báo trong chương trình con Biến này chỉ

có thể sử dụng trong chương trình con mà nó khai báo.

Tầm vực hoạt động của biến là phạm vi mà biến có tác dụng.

Program

Mức 0 Mức 1

Mức 2

Trang 98

Cho biết kết quả sau khi chạy chương trình

Trang 99

10.5 Tham số của chương trình con

Tham biến : là tham số của chương trình con, được khai báo sau từ khóa Var Tham biến giúp đưa giá trị vào chương trình con và giúp chương trình gọi nhận giá trị từ chương trình con.

Tham trị : là tham số của chương trình con, giúp đưa giá trị vào chương trình con.

End.

Ngày đăng: 22/10/2014, 14:32

HÌNH ẢNH LIÊN QUAN

Bảng mã ASCII ORD(‘A’)  =  65 - giáo án thao giảng, bồi dưỡng thi giáo viên giỏi môn tin bài ngôn ngữ lập trình (4)
Bảng m ã ASCII ORD(‘A’) = 65 (Trang 40)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w