Tải bản đầy đủ (.pdf) (20 trang)

Bài giảng lập trình căn bản chương 1 ths nguyễn cao trí

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (18.59 MB, 20 trang )

Dành cho sinh viên chính quy
chuyên ngành Công Nghệ Thông Tin

ThS. Nguyễn Cao Trí

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ữ
duymáy
nhất được
máy tính (CPU)
hiểu trực tiếp.
Ngôn
ngữ
- Machine
languages
 Đượ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
 Dùng để dịch từtrình
một ngôndịch
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


 Lỗi vàsố
sửa lỗi
Một
khái niệm khác
 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 chart
Start

• Start /Begin bắt đầu giải thuật. Chỉ có 1 và chỉ 1 điểm START.

• Dòng xử lý
• Input / Output dữ liệu

xuất/nhập

• Đặc tả thao tác xử lý hay tính toán dữ liệu
No
Điều kiện

• Điều khiển rẽ nhánh

Yes

Giá trị xét phân nhánh

• Phát biểu rẽ nhánh khác
Trường hợp 1

Stop

Trường hợp i

• Stop/End kết thúc của giải thuật. Có thể có một hoặc nhiều
điểm STOP.

Khác


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 chart

Algorithms
Giải phương trình ax + b = 0

Start

Nhập a, b
Yes

a=0 ?
No

X=-b/a

Stop

Yes

b=0 ?
No

Không có nghiệm


Vô số nghiệm


Cấu trúc điều khiển cơ bản
 If <condition> then Statement;
 If <condition> then Statement 1







else Statement 2;
Case <Value> of
value 1 : Statement 1;
………..
value n : Statement n;
else
: Statement 0
end;
While <condition> do Statement;
Repeat Statement until <condition>;
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#




×