Phan1 gioithieu
-
Upload
ly-hai -
Category
Technology
-
view
443 -
download
5
description
Transcript of Phan1 gioithieu
1
LẬP TRÌNH CĂN BẢN
GIỚI THIỆU VỀ CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT
2
Nội dung chương
Từ bài toán đến chương trình Giải thuật
Khái niệm giải thuật Các đặc trưng của giải thuật Ngôn ngữ biểu diễn giải thuật Một số giải thuật cơ bản Các cấu trúc suy luận cơ bản của giải thuật Từ giải thuật đến chương trình
Kiểu dữ liệu Khái niệm về ngôn ngữ lập trình Chương trình dịch
Phần mềm, chương trình, câu Phần mềm, chương trình, câu lệnhlệnh
Software
Program 2
Program 1
Comman
ds
Comman
ds
Comman
ds
4
Từ Bài Toán Đến Chương Trình
Các bước giải bài toán bằng máy tính Mô tả các bước giải bài toán Vẽ sơ đồ xử lý Viết chương trình xử lý bằng ngôn ngữ giả Chọn ngôn ngữ lập trình và chuyển chương trình
từ ngôn ngữ giả sang ngôn ngữ lập trình Thực hiện chương trình: nhập vào các tham số,
nhận kết quả
5
Giải Thuật
Khái niệm giải thuật Các đặc trưng của giải thuật Ngôn ngữ biểu diễn giải thuật Một số giải thuật cơ bản Các cấu trúc suy luận cơ bản của giải thuật Từ giải thuật đến chương trình
6
Khái Niệm Giải Thuật
Ví dụ: Hoán đổi chất lỏng trong 2 bình A (rượu) và B (nước mắm): Yêu cầu phải có thêm một bình thứ ba gọi là bình C. Bước 1: Đổ rượu từ bình A sang bình C. Bước 2: Đổ nước mắm từ bình B sang bình A. Bước 3: Đổ rượu từ bình C sang bình B.
“Giải thuật là một dãy các thao tác trên những dữ liệu vào sao cho sau một hữu hạn bước ta thu được kết quả của bài toán ”.
7
Các Đặc Trưng Của Giải Thuật
Tính kết thúc Số bước là hữu hạn
Tính xác định Máy phải thực hiện được Cho cùng kết quả trên các máy khác nhau
Tính phổ dụng Tính hiệu quả
Thời gian Tài nguyên máy
8
Ngôn Ngữ Biểu Diễn Giải Thuật
Ngôn ngữ tự nhiên Ngôn ngữ giả Ngôn ngữ sơ đồ
9
Ngôn Ngữ Tự Nhiên
Là ngôn ngữ của chúng ta (tiếng Anh, Việt…) Ví dụ: Giải thuật giải phương trình bậc nhất ax+b=0.
Bước 1: Nhận giá trị của các tham số a, b.
Bước 2: Xét giá trị của a xem có bằng 0 hay không?
Nếu a=0 thì làm bước 3, nếu a khác không thì làm bước 4.
Bước 3: (a bằng 0) Nếu b bằng 0 t=> pt vô số nghiệm. Nếu b khác 0 => pt vô nghiệm.
Bước 4: ( a khác 0) Ta kết luận phương trình có nghiệm x=-b/a.
10
Ngôn Ngữ Giả Là một sự kết hợp giữa ngôn ngữ tự nhiên với các cấu trúc
câu lệnh của một ngôn ngữ lập trình.
Ví dụ: Giải thuật giải phương trình bậc nhất ax+b=0.BEGIN Nhập vào a, b If a==0 then
If b==0 then Kết luận phương trình vô số nghiệm
else Kết luận phương trình vô nghiệm
End If else
Kết luận phương trình có nghiệm x=-b/a End IfEND
11
Ngôn ngữ sơ đồ - Ngôn ngữ sơ đồ - Lưu đồ (Flowcharts)Lưu đồ (Flowcharts)
Lưu đồ là một hình ảnh minh hoạ cho giải thuật
START
DISPLAY ‘Hello World !’
STOP
12
Biểu tượng trong lưu đồ Biểu tượng trong lưu đồ
13
Lưu đồ cộng hai sốLưu đồ cộng hai số
14
Cấu trúc IFCấu trúc IF
BEGININPUT numr = num MOD 2IF r=0
Display “Number is even”END IFEND
S TART
INP UT num
r = num M OD 2
r = 0
DIS P LAY "Num ber is E ven"
S TOP
YesNo
15
Cấu trúc IF…ELSECấu trúc IF…ELSE
BEGININPUT numr=num MOD 2IF r=0 DISPLAY “Even Number”ELSE DISPLAY “Odd Number”END IFEND
S TA RT
INP UT num
r = num M O D 2
r = 0
DIS P LAY "Num ber is E ven"
S TOP
DIS PLA Y " Num ber is O dd"
Yes No
16
Ða điều kiện sử dụng Ða điều kiện sử dụng AND/ORAND/OR
BEGININPUT yearsWithUsINPUT bizDoneIF yearsWithUs >= 10 AND bizDone >=5000000
DISPLAY “Classified as an MVS”ELSE
DISPLAY “A little more effort required!”END IFEND
17
Cấu trúc IF lồng nhauCấu trúc IF lồng nhau
BEGININPUT yearsWithUsINPUT bizDoneIF yearsWithUs >= 10
IF bizDone >=5000000DISPLAY “Classified as an MVS”
ELSE DISPLAY “A little more effort required!”
END IFELSE
DISPLAY “A little more effort required!”END IFEND
18
Cấu trúc IF lồng nhauCấu trúc IF lồng nhau (tt.) (tt.)START
INPUT bizDone
YearsWithUs >= 10
bizDone > 5000000
DISPLAY “A Little more effort required”
STOP
NOYES
NO
YES
DISPLAY “A Little more effort required”
DISPLAY “Classified as an MVS”
INPUT YearsWithUs
19
Vòng lặpVòng lặp
BEGINcnt=0WHILE (cnt < 1000) DO
DISPLAY “Scooby”cnt=cnt+1
END DOEND
S TA RT
cnt=0
cnt < 1000
DIS PLA Y " Sc ooby "
cnt=c nt+1
S TOP
Yes
No
20
Phương pháp chạy thử bằng tay (dry run)
Là cách kiểm tra sự đúng đắn của thuật toán bằng tay
21
Phương pháp chạy thử bằng tay (Ví dụ)Bước 1. Bắt đầuBước 2. X=10Bước 3. Y=5Bước 4. M=0Bước 5. M=X+Y+(X*Y)Bước 6. Y=Y+4Bước 7. M=M+YBước 8. Hiển thị X,Y,MBước 9. Dừng
DRY RUN TABLE
X Y M Initial values 10 5 0 After Step 5 10 5 65 After Step 6 10 9 65 After Step 7 10 9 74
22
Lưu đồ - Ví dụ
Ví dụ: Lưu đồ biểu diễn giải thuật tìm UCLN như sau:
23
Một Số Giải Thuật Cơ Bản (1)
Ví dụ 1: Yêu cầu: Nhập vào 1 dãy n số
hạng a1, a2, .., an
Tính tổng S: S= a1 + a2 + a3 + ... + an
In S ra màn hình
24
Một Số Giải Thuật Cơ Bản (2)
Ví dụ 2: Yêu cầu: Nhập vào 2 số a và b là
2 hệ số của pt: ax+b=0 Cho biết nghiệm của
phương trình.
25
Các Cấu Trúc Suy Luận Cơ Bản Của Giải Thuật (1) Giải thuật được thiết kế theo 3 cấu trúc suy luận cơ bản:
Tuần tự (Sequential): Các công việc được thực hiện tuần tự, công việc này nối tiếp
công việc kia.
Cấu trúc lựa chọn (Selection) Lựa chọn một công việc để thực hiện căn cứ vào một điều kiện
nào đó Cấu trúc 1: Nếu < điều kiện> (đúng) thì thực hiện <công việc> Cấu trúc 2: Nếu < điều kiện> (đúng) thì thực hiện <công việc 1>,
ngược lại (điều kiện sai) thì thực hiện <công việc 2> Cấu trúc 3: Trường hợp < i> thực hiện <công việc i>
26
Các Cấu Trúc Suy Luận Cơ Bản Của Giải Thuật (2)
Cấu trúc lặp (Repeating) Lặp lại thực hiện một công việc không hoặc nhiều
lần căn cứ vào một điều kiện nào đó. Có 2 dạng như sau:
Lặp với số lần xác định Lặp với số lần không xác định
27
Từ Giải Thuật Đến Chương Trình
Cả 2 đều là tập các chỉ thị (instruction) – làm thế nào để giải quyết 1 công việc (task).
Giải thuật Nói chuyện với con người, dễ hiểu. Dùng ngôn ngữ đơn giản (English…) – không viết
bằng mã. Chương trình
Nói chuyện với máy tính. Có thể được xem như 1 diễn tả hình thức (formal
expression) của 1 giải thuật.
28
Kiểu Dữ Liệu Ví dụ:
Dim x As Integer, y As IntegerDim f As Single
F=3.14
“Kiểu dữ liệu là một tập hợp các giá trị có cùng một tính chất và tập hợp các phép toán thao tác trên các giá trị đó”.
Có 2 loại Kiểu dữ liệu sơ cấp Kiểu dữ liệu có cấu trúc
29
Kiểu Dữ Liệu Sơ Cấp
“Kiểu dữ liệu sơ cấp là kiểu dữ liệu mà giá trị của nó là đơn nhất”.
Ví dụ: Kiểu Integer trong Basic là kiểu sơ cấp gồm các số nguyên từ -32768..32767 và các phép toán: +, -, *, /, \, Mod…
30
Kiểu Dữ Liệu Có Cấu Trúc
“Kiểu dữ liệu có cấu trúc là kiểu dữ liệu mà các giá trị của nó là sự kết hợp của các giá trị khác”.
Ví dụ : Kiểu chuỗi ký tự trong Basic. là kiểu có cấu trúc. Ví dụ: Dim s As String
s = “Chao cac ban!”
31
Ngôn Ngữ Lập Trình
Khái niệm về ngôn ngữ lập trình Chương trình dịch
32
Khái Niệm Về Ngôn Ngữ Lập Trình
Ngôn ngữ lập trình là một ngôn ngữ dùng để viết chương trình cho máy tính
Ta có thể chia ngôn ngữ lập trình thành các loại sau: Ngôn ngữ máy Hợp ngữ Ngôn ngữ cấp cao
33
Ngôn Ngữ Máy (machine language) Là các chỉ thị dưới dạng
nhị phân, can thiệp trực tiếp vào trong các mạch điện tử.
Có thể được thực hiện ngay không cần qua bước trung gian nào.
Tuy nhiên chương trình viết bằng ngôn ngữ máy dễ sai sót, cồng kềnh và khó đọc, khó hiểu vì toàn những con số 0 và 1.
3
Machine Language
10100110 0111011000100110 0000000011111010 1111101001001110 1010011011100110 1001011011001110 0010111010100110 0100111011111010 0110011001001110 10000110
etc...
34
Hợp Ngữ (Assembly language) Bao gồm tên các câu lệnh và
quy tắc viết các câu lệnh đó. Tên các câu lệnh bao gồm hai
phần: Phần mã lệnh (English) chỉ
phép toán cần thực hiện Phần địa chỉ chứa toán hạng
của phép toán đó.
Để máy thực hiện được một chương trình viết bằng hợp ngữ thì chương trình đó phải được dịch sang ngôn ngữ máy. Công cụ thực hiện việc dịch đó được gọi là Assembler.
Assembly Language
INPUT a ; Nhập giá trị cho a từ bàn phím LOAD a ; Đọc giá trị a vào thanh ghi tổng A PRINT a; Hiển thị giá trị của a ra màn hình. INPUT b ADD b ; Cộng giá trị của thanh ghi tổng A ;với giá trị b
35
Ngôn Ngữ Cấp Cao (High level language ) Rất gần với ngôn ngữ con người.
Một chương trình viết bằng ngôn ngữ cấp cao được gọi là chương trình nguồn (source programs).
Để máy tính "hiểu" và thực hiện được các lệnh trong chương trình nguồn thì phải có một chương trình dịch để dịch chương trình nguồn thành dạng chương trình có khả năng thực thi.
36
Chương Trình Dịch
Được dùng để chuyển một chương trình nguồn sang chương trình đích.
Có 2 dạng: Thông dịch (interpreter):
Dịch từng lệnh một, dịch tới đâu thực hiện tới đó. Ví dụ: ngôn ngữ LISP, BASIC.
Biên dịch (compiler): Dịch toàn bộ chương trình nguồn thành chương trình
đích rồi sau đó mới thực hiện. Ví dụ: Pascal, C...
37
Hết chương