Máy tính Analog
Máy tính số
Hệ nhị phân
Máy tính lập trình được
Mô hình máy Turing và Von Newman
Các thế hệ máy tính
Đặc tính chung
Khả năng tính toán
Khả năng thực hiện các phép toán logic
Tốc độ tính toán cao
Làm theo chỉ thị
20 trang |
Chia sẻ: lylyngoc | Lượt xem: 1657 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Bài giảng Lập trình căn bản Chương 1: Khái niệm cơ bản, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
Dành cho sinh viên chính quy
chuyên ngành Công Nghệ Thông Tin
ThS. Nguyễn Cao Trí
caotri@dit.hcmut.edu.vn
www.dit.hcmut.edu.vn/~caotri
Giới thiệu
Mục tiêu môn học
Giới thiệu các khái niệm cơ bản về lập trình trên máy tính.
Cung cấp cơ sở lý thuyết và kỹ năng cơ bản về lập trình cho
các môn học sau.
Nội dung
Một số thuật ngữ liên quan đến máy tính và lập trình.
Sơ lược về ngôn ngữ lập trình
Ngôn ngữ minh họa Pseudo code và Pascal
Các giải thuật cơ bản
Kỹ năng tư duy và thực hành trên ngôn ngữ cụ thể.
Phương thức
Phương thức học
Giờ lý thuyết: giảng và báo cáo
Giờ thực hành tại phòng máy
Kiểm tra và thi
Kiểm tra thực hành: kỹ năng lập trình
Thi lý thuyết : trắc nghiệm khách quan
Được tham khảo tài liệu
Tài liệu tham khảo
Slide bài giảng Lập Trình Căn Bản
Giáo trình Lập trình căn bản – Khoa CNTT
Tài liệu khác
CDROM bài tập PASCAL và thực hành
www.dit.hcmut.edu.vn/~caotri
Một số khái niệm cơ bản về
Máy tính & chương trình máy tính
Ngôn ngữ lập trình ,translator,..
Giải thuật và flow chart
Giải thuật & biểu diễn giải thuật
Flowchart
Công cụ phát triển
Công cụ IDE, Compiler
Error & debug
Máy tính - Computer
Máy tính Analog
Máy tính số
Hệ nhị phân
Máy tính lập trình được
Mô hình máy Turing và Von Newman
Các thế hệ máy tính
Đặc tính chung
Khả năng tính toán
Khả năng thực hiện các phép toán logic
Tốc độ tính toán cao
Làm theo chỉ thị
Kiến trúc máy tính
Máy tính (Computer system)
Bao gồm nhiều thiết bị phần cứng (hardware devices)
Keyboard
Screen (monitor)
Disks
Memory
Processing Units
Hệ điều hành (Operating System – OS)
Phần mềm (software)
Công dụng: êệ thống, ứng dụng, cơ sở dữ liệu
Môi trường hoạt động: OS, Network, WEB, Server,..
Chương trình máy tính
Chương trình
Danh mục các trang thiết bị, tài nguyên sử dụng
Tiến trình sử dụng các tài nguyên và thực hiện các công việc định trước
Kết quả thực hiện
Chương trình máy tính
Tập hợp các lệnh được liệt kê theo một trình tự nhất định
Các dữ liệu sẽ được nhận
Các tài nguyên cần sử dụng
Các kết quả sẽ có được
Mục tiêu: xử lý dữ liệu theo yêu cầu định trước
Lập trình: viết chương trình cho máy tính
Ngôn ngữ lập trình
Ngôn ngữ lập trình
Phương tiện để viết chương trình cho máy tính
Hàng trăm ngôn ngữ lập trình khác nhau
Những quy định về cú pháp (syntax) & ngữ nghĩa
(semantic)
Máy tính có thể hiểu được
Phân chia làm 3 nhóm chính
Ngôn ngữ máy - Machine languages
Ngôn ngữ duy nhất của máy tính - CPU
Hợp ngữ - Assembly languages
Ngôn ngữ cấp cao - High-level languages
Ngôn ngữ máy - Machine languages Ngôn ngữ duy nhất được máy tính (CPU) hiểu trực tiếp.
Được xác định bởi tập lệnh của CPU
Phụ thuộc vào máy tính cụ thể
Dạng nhị phân {0,1}*
Rất khó đọc hiểu
Khó có khả năng viết chương trình trực tiếp
Khó nhớ hàng chục ngàn lệnh dạng {0,1}*
Rất khó xác định & sửa lỗi
Không được sử dụng trong thực tế để viết chương trình
Nền tảng xây dựng hợp ngữ
Hợp ngữ - Assembly Languages
Sử dụng các từ khóa tiếng Anh cho các lệnh hay nhóm
lệnh của mã máy.
Được dịch sang mã máy khi thực hiện
Chuyển đỗi nhanh chóng
Dễ đọc và dễ hiểu hơn
Vẫn tương đối khó sử dụng do
Các lệnh còn đơn giản nên phải dùng nhiều lệnh.
Chưa có những cấu trúc điều khiển thuận tiện
Khả năng tìm và sửa lỗi cũng chưa thuận tiện.
Nền tảng xây dựng các ngôn ngữ cấp cao
Ngôn ngữ cấp cao
Một câu lệnh diễn tả nhiều động thái
Có cấu trúc ngày càng giống ngôn ngữ tự nhiên (tiếng
Anh)
Được dịch sang assembly hay mã máy bằng các chương
trình dịch trước khi thực thi.
Source code & Executed code
Được phân làm nhiều lớp
Lập trình goto
Lập trình cấu trúc – Structured
Lập trình hướng đối tượng – Object Oriented
Các dạng khác
Học ngôn ngữ lập trình
Học ngữ pháp
Quy tắc ngữ pháp
Từ vựng
Cấu trúc câu
Ngữ nghĩa của các lệnh
Các “thành ngữ”
Học ngôn ngữ lập trình VS. Học ngôn ngữ tự nhiên
Quy tắc ngữ pháp đơn giản
Từ vựng ít, tự quy định
Cấu trúc câu đơn giản
Hạn chế và khó khăn của sử dụng ngôn ngữ lập trình.
Chương trình dịch Dùng để dịch từ một ngôn ngữ lập trình này sang ngôn ngữ lập
trình khác
Mục tiêu cuối cùng là dịch sang mã máy để có được executed
code –> chương trình thực thi
Phân loại:
Intepreter – thông dịch
Compiler – biên dịch
Intepreter vs. Compiler
Công cụ phát triển – Integrated Development Environment (IDE)
Soạn thảo
Dịch và sửa lỗi chương trình
Chạy thử và sửa lỗi
Một số khái niệm khác Lỗi và sửa lỗi
Syntax error – lỗi ngữ pháp
Semantic error- lỗi ngữ nghĩa
Runtime error - Lỗi thực thi
Debug – Tìm và sửa lỗi
Dữ liệu, kiểu dữ liệu
Các kiểu dữ liệu cơ bản
integer, long, character, byte, ….
Real (double, float)
Kiểu khác: string
Kiểu dữ liệu có cấu trúc: array, string, record,..
Biến (Variable) & Hằng (Constant)
Giải thuật: khái niệm, công cụ biểu diễn
Flow chart – lưu đồ
Flow chartStart • Start /Begin bắt đầu giải thuật. Chỉ có 1 và chỉ 1 điểm START.
• Input / Output dữ liệu
xuất/nhập
• Dòng xử lý
• Đặc tả thao tác xử lý hay tính toán dữ liệu
• Điều khiển rẽ nhánhĐiều kiện
Yes
No
• Phát biểu rẽ nhánh khác
Giá trị xét phân nhánh
Trường hợp 1 Trường hợp i Khác
Stop • Stop/End kết thúc của giải thuật. Có thể có một hoặc nhiều
điểm STOP.
Flow chart
Ưu điểm
Trình bày trực quan giải thuật
Độc lập với ngôn ngữ tự nhiên
Độc lập với ngôn ngữ lập trình
Bảo đảm khả năng lập trình
Cho phép dễ dàng kiểm tra giải thuật
Nguyên tắc kiểm tra
Đi từ START theo bất cứ đường nào cũng phải đến một
điểm dừng STOP
Không có sự quay vòng vĩnh viễn
Không có sự kết thúc lưng chừng
Flow chartStart
Nhập a, b
a=0 ?
Yes
No
b=0 ?
Yes
No
X=-b/a
Không có nghiệm Vô số nghiệm
Stop
Algorithms
Giải phương trình ax + b = 0
Cấu trúc điều khiển cơ bản
If then Statement;
If then Statement 1
else Statement 2;
Case of
value 1 : Statement 1;
………..
value n : Statement n;
else : Statement 0
end;
While do Statement;
Repeat Statement until ;
For counter=start value to end value do Statement;
For counter=start value downto end value do Statement
Chu kỳ sống của phần mềm
Thu thập yêu cầu
Phân tích thiết kế
Phát triển chương trình - codeing
Xác định giải thuật
Viết code và dịch thử , hiệu chỉnh các lỗi syntax
Thử nghiệm - Testing
Chạy thử với các dữ liệu mẫu để kiểm tra lỗi semantic và
runtime
Vận hành và bảo trì
Phát triển theo yêu cầu
Một số ngôn ngữ lập trình
Lập trình goto
Assembly
Basic
Lập trình cấu trúc
Pascal, C
Foxpro
Lập trình hướng đối tượng
Java, C++, Object Pascal,…
Khác
Prolog, LISP, Visual basic (VB), VC++, J++, Delphi, ASP, PHP,..
Visual studio .NET: VB.NET, ASP.NET, C++.NET, C#