Chương trình phần mềm MTĐT
Trang 1IV Quy trình thiết kế chương trình phần mềm
V Giải thuật (thuật toán)
Trang 3Các loại phần mềm
UNIX LINUS
Trang 4Quy trình xây dựng phần mềm ứng dụng
5) Cài đặt, hướng dẫn sử dụng;
6) Cập nhật dữ liệu;
7) Điều chỉnh;
8) Phát triển.
Trang 5Hãy giải bài tập sau
Tìm trong số 200 học viên, người nào có
điểm trung bình cao nhất, điểm trung bình cao nhất là bao nhiêu?
Trang 6Thuật toán
Là cách thức giải bài toán;
Dùng để trình bày cách thức đạt đến kết quả
Thuật toán bắt đầu bằng dữ kiện ban đầu và kết thúc là kết quả;
Được sử dụng để thiết lập phần mềm ứng dụng Để xây dựng phần mềm cần tìm ra thuật toán Có nhiều thuật toán để đi đến kết quả.
Trang 7Thuật toán
Thuật toán (giải thuật) là một bản hướng
dẫn gồm một số hữu hạn các mệnh lệnh quy định chính xác những phép toán và những động tác cần thực hiện một cách máy móc theo một trình tự đã vạch rõ để giải quyết một bài toán hoặc một nhiệm vụ nào đó.
Ngôn ngữ thuật toán
Trang 8Ngôn ngữ thuật toán
Là cách thức trình bày và biểu diễn thuật toán.
1- Ngôn ngữ liệt kê;
2- Ngôn ngữ sơ đồ khối.
Trang 9Ngôn ngữ liệt kê
Các bước giải phương trình: ax 2 + bx + c = 0
Trang 10Ngôn ngữ sơ đồ khối
K B
+ –
Khối bắt đầu
Khối kết thúc
Khối tính toán Khối nhập dữ liệu
Khối kiểm tra điều kiện
Trang 12Ngôn ngữ lập trình
Cần sử dụng các quy ước để biểu diễn trình tự
giải bài toán – ngôn ngữ lập trình
Ngôn ngữ lập trình là quy ước thực hiện công
việc để máy tính hiểu được yêu cầu
Nhà lập trình sử dụng chương tình dịch để dịch
các chương trình phần mềm thành những chương trình phần mềm hoàn chỉnh đưa tới người sử dụng.
Trang 13Thử dùng Pascal lập chương trình giải bài toán phương trình bậc hai với các số a,b,c cho trước, a#0
Progame giaiPTbac2;
Var
A, B, C, X1, X2, Delta:Real ; Begin
Write (‘nhap 3 so a, b, c’); readln (A, B, C) ; Delta:=B*B-4*A*C ;
If Delta < 0 then Writeln (‘PT vo nghiem’) Else
begin
X1:= (-B +Sqrt(Delta) / (2*A) ;
…………
………….
Trang 146 Giai đoạn phân tích và thiết kế hệ
Trang 151 Tìm hiệu vấn đề: phân tích hiện trạng, đưa giải
5 Cài đặt: chuyển sang hệ thống mới Đào tạo
nhân lực.
6 Bảo trì: kiểm tra hệ thống, thu nhận phản hồi từ
phía người dùng, định kỳ đánh giá hoạt động hệ thống.
Trang 16Lập trình
Một chương trình (program) là tập các câu
lệnh (instruction) viết bằng một ngôn ngữ lập trình dùng để ra lệnh cho máy tính thực hiện các thao tác xử lý dữ liệu thành thông tin
Lập trình là tiến trình tạo thành một chương
trình
Trang 17Các bước lập trình
Xác định và làm rõ vấn đề (clarification): xác định
đầu vào, kết xuất, các yêu cầu xử lý cần thiết.
Lên phương án giải quyết (design): sử dụng các
công cụ mô hình hoá để lên sơ đồ vấn đề cần giải
quyết.
Viết chương trình (coding): sử dụng một ngôn ngữ
lập trình để viết chương trình.
Trang 18Các bước lập trình
Kiểm tra chương trình (test): kiểm tra và sửa chữa
các lỗi logic (bug) trong chương trình (debug).
Viết tài liệu và bảo trì chương trình (document,
maintenance): viết hướng dẫn sử dụng, giải thích
chương trình, hướng dẫn cách chạy chương trình.
Trang 19Ngôn ngữ lập trình
cố định và một tập các quy tắc (gọi là
syntax-cú pháp) dùng để lập ra các chỉ lệnh cho máy tính
cách sử dụng một trình biên tập văn bản hoặc trình xử lý để soạn ra mã nguồn (source code)
Trang 20Ngôn ngữ lập trình
Mã nguồn sẽ được biên dịch (compile) hoặc thông dịch (interprete) sang ngôn ngữ máy (machine code) cho máy tính có thể hiểu và thực hiện
Có nhiều loại ngôn ngữ lập trình, và hầu hết các nhà khoa học về máy tính đều đồng ý rằng không có một ngôn ngữ duy nhất nào có đủ khả năng đáp ứng cho các yêu cầu của tất cả các lập trình viên
Trang 21NNLT - Phân loại – NNLT Bậc cao
Các ngôn ngữ lập trình bậc cao
(BASIC, C, Pascal, Ada, Cobol, …) cho phép lập
trình viên có thể diễn đạt chương trình bằng các từ khóa và cú pháp bắt chước ngôn ngữ tự nhiên của con người
Các ngôn ngữ này được gọi là "bậc cao" vì chúng
giải phóng cho các lập trình viên khỏi phải quan tâm đến vấn đề từng lệnh sẽ được máy tính thực hiện
như thế nào
Trang 22NNLT – Phân loại – NNLT Bậc cao
Mỗi câu lệnh trong ngôn ngữ lập trình bậc cao tương ứng với một số chỉ lệnh của ngôn ngữ máy.
Có thể viết các chương trình nhanh hơn nhiều so với khi dùng ngôn ngữ bậc thấp, như hợp ngữ (assembly language)
Tuy nhiên, việc dịch sang ngôn ngữ máy có hiệu suất thấp, không hoàn toàn tối ưu cho nên các chương trình viết theo
các ngôn ngữ bậc cao chạy chậm hơn các chương trình viết theo ngôn ngữ bậc thấp.
Trang 23Phân loại – NNLT Bậc thấp
Các ngôn ngữ lập trình bậc thấp (hợp ngữ)
cho phép lập trình viên mã hóa các chỉ lệnh
với hiệu suất cao nhất có thể có
Người lập trình phải thông thạo một cách chi tiết về các khả năng chính xác của hệ máy
tính và bộ vi xử lý của nó
Lập trình bằng hợp ngữ cũng mất nhiều thời gian hơn
Trang 24MACHINE CODE
ASSEMBLER LANGUAGES
HIGH-LEVEL LANGUAGES
Fortran, COBOL, C, C ++ , LISP, Pascal, Java ,
4GLs ORACLE, SEQUEL, INGRES,
5GLs artificial intelligence
Trang 25Chuyển NN bậc cao thành NN bậc thấp - Compiler
phải được “dịch” thành NN máy để máy tính
có thể hiểu và thực thi lệnh
“Dịch” bằng trình biên dịch (compiler): bộ
“dịch” chuyển toàn bộ chương trình viết bằng
NN bậc cao thành NN máy trước khi máy tính
có thể thực hiện chương trình
VD: COBOL, FORTRAN, C, Pascal là các ngôn
ngữ sử dụng cơ chế “biên dịch”
Trang 26 “Dịch” bằng trình thông dịch (interpreter): bộ
“dịch” chuyển từng dòng lệnh trong chương
trình viết bằng NN bậc cao thành NN máy và thực hiện từng lệnh ngay khi dịch xong lệnh
đó
VD: BASIC là ngôn ngữ sử dụng cơ chế “thông
dịch”
Trang 27Lập trình hướng đối tượng
Object-oriented programming (OOP) là
phương pháp lập trình cho phép kết hợp dữ
liệu với các câu lệnh xử lý dữ liệu đó trong
một “đối tượng”
Các “đối tượng” có thể được sử dụng lại để
viết các chương trình khác nhau
Trang 28Lập trình trực quan
Visual programming là phương pháp viết các chương trình bằng cách kết hợp các đối tượng sẵn có thông qua các thao tác trực quan
chóng hơn
VD: Visual Basic, Visual J, Visual C++,
Trang 29Lập trình trên Internet
Sử dụng các ngôn ngữ lập trình:
HTML – HyperText Markup Language: ngôn ngữ
đánh dấu siêu văn bản.
XML – eXtensible Markup Language:
VRML – Virtual Reality Markup Language:
Java
ActiveX
Kỹ thuật khác: COM, DCOM, RMI, RPC
Trang 31Tham khảo từ Web
Có thể tham khảo cách viết chương trình in ra chữ “Hello world” của hơn 200 ngôn ngữ lập trình khác nhau tại địa chỉ
http://www2.latech.edu/~acm/HelloWorld.shtml
Trang 32MACHINE CODE ASSEMBLER LANGUAGES
HIGH-LEVEL LANGUAGES
ForTran, COBOL, C, C ++ , LISP, Pascal, Java ,
4GLs ORACLE, SEQUEL, INGRES,
5GLs artificial intelligence
Trang 33Thuật toán - Algorithm
Tập các lệnh được tổ chức có thứ tự nhằm giải
quyết một bài toán hoặc đạt đến một mục tiêu nào đó.
Ví dụ:
hướng dẫn chế biến một món ăn,
hướng dẫn sửa chữa xe máy,
cách giải một bài toán.
…
Algorithm –Thuật toán - Thuật giải
Trang 34bằng ngôn ngữ bình thường nhưng có thể không rõ ràng Thay vào đó, chúng ta sẽ dùng ngôn ngữ lập trình (hoặc một ngôn ngữ giả lập ngôn ngữ lập trình
gọi là mã giả pseudocode)
Trang 35Chương trình tính điểm trung bình môn học
Nhập: điểm thực hành Vật Lý, điểm bài tập, điểm bài kiểm tra giữa học kỳ, điểm bài kiểm tra cuối học kỳ.
Trang 36Sơ đồ xử lý
Sử dụng sơ đồ xử lý để minh họa quá trình xử lý một
chương trình.
start,st op
condition expression process
data flow
Bài tập: dùng sơ đồ để biểu diễn bài toán nhập và tính điểm
trung bình.
Trang 37Không dùng các chương trình soạn thảo văn bản (vd:Word, WordPad)
Hello
Trang 38Chương trình C đầu tiên
#include <stdio.h>
int main() {
printf(“Hello\n");
return 0;
}
Trang 39Chương trình C
khai báo sử dụng thư viện xuất/nhập chuẩn (standard I/O library)
Các thư viện khác: string, time, math…
khai báo hàm main() Chương trình C phải khai báo (duy nhất) một
hàm main() Khi chạy, chương trình sẽ bắt đầu thực thi ở câu lệnh đầu tiên trong hàm main().
mở và đóng một khối mã.
hàm printf() gửi kết xuất ra thiết bị xuất chuẩn (màn hình) Phần nằm
giữa “…“ gọi là chuỗi định dạng kết xuất (format string)
ngừng chương trình Mã lỗi 0 (error code 0) – không có lỗi khi chạy chương trình.