Tải bản đầy đủ (.ppt) (74 trang)

Tài liệu Giáo trình lập trình căn bản doc

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 (470.06 KB, 74 trang )

Đại Học Bách Khoa Tp.HCM
Khoa Công Nghệ Thông Tin
Bài giảng môn Lập Trình Căn Bản
Giáo trình
Giáo trình
LẬP TRÌNH CĂN BẢN
LẬP TRÌNH CĂN BẢN
Dành cho sinh viên chính quy
chuyên ngành Công Nghệ Thông Tin
( Nguồn:
/>try_id/1007043
).
ThS. Nguyễn Cao Trí

www.dit.hcmut.edu.vn/~caotri
Đại Học Bách Khoa Tp.HCM
Khoa Công Nghệ Thông Tin
Trang 2
Giới thiệu
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ể.
Đại Học Bách Khoa Tp.HCM
Khoa Công Nghệ Thông Tin
Trang 3
Phương thức
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
Đại Học Bách Khoa Tp.HCM
Khoa Công Nghệ Thông Tin
Bài giảng môn Lập Trình Căn Bản
Chương 1
Chương 1
Khái niệm cơ bản
Khái niệm cơ bản

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
Đại Học Bách Khoa Tp.HCM
Khoa Công Nghệ Thông Tin
Trang 5
Máy tính - Computer
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ị
Đại Học Bách Khoa Tp.HCM

Khoa Công Nghệ Thông Tin
Trang 6
Kiến trúc máy tính
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,
Đại Học Bách Khoa Tp.HCM
Khoa Công Nghệ Thông Tin
Trang 7
Chương trình máy tính
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
Đại Học Bách Khoa Tp.HCM
Khoa Công Nghệ Thông Tin
Trang 8
Ngôn ngữ lập trì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
Đại Học Bách Khoa Tp.HCM
Khoa Công Nghệ Thông Tin
Trang 9
Ngôn ngữ máy - Machine 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ữ
Đại Học Bách Khoa Tp.HCM
Khoa Công Nghệ Thông Tin
Trang 10
Hợp ngữ - Assembly Languages
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
Đại Học Bách Khoa Tp.HCM
Khoa Công Nghệ Thông Tin
Trang 11
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
Đại Học Bách Khoa Tp.HCM
Khoa Công Nghệ Thông Tin
Trang 12
Học ngôn ngữ lập trình
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.
Đại Học Bách Khoa Tp.HCM
Khoa Công Nghệ Thông Tin
Trang 13
Chương trình dịch
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
Đại Học Bách Khoa Tp.HCM

Khoa Công Nghệ Thông Tin
Trang 14
Một số khái niệm khác
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 đồ
Đại Học Bách Khoa Tp.HCM
Khoa Công Nghệ Thông Tin
Trang 15
Flow chart
Flow chart
Start

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.
Đại Học Bách Khoa Tp.HCM

Khoa Công Nghệ Thông Tin
Trang 16
Flow chart
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
Đại Học Bách Khoa Tp.HCM
Khoa Công Nghệ Thông Tin
Trang 17
Flow chart
Flow chart

Start
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
Đại Học Bách Khoa Tp.HCM
Khoa Công Nghệ Thông Tin
Trang 18
Cấu trúc điều khiển cơ bản
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
Đại Học Bách Khoa Tp.HCM
Khoa Công Nghệ Thông Tin
Trang 19
Chu kỳ sống của phần mềm
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
Đại Học Bách Khoa Tp.HCM
Khoa Công Nghệ Thông Tin
Trang 20
Một số ngôn ngữ lập trình
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#

Đại Học Bách Khoa Tp.HCM
Khoa Công Nghệ Thông Tin
Bài giảng môn Lập Trình Căn Bản
Chương 2
Chương 2
Dữ liệu & cấu trúc chương trình
Dữ liệu & cấu trúc chương trình

Các khái niệm cơ bản về dữ liệu và biểu diễn
dữ liệu trong máy tính

Khai báo dữ liệu trong chương trình

Một số phép toán cơ bản

Cấu trúc cơ bản một chương trình PASCAL
Đại Học Bách Khoa Tp.HCM
Khoa Công Nghệ Thông Tin
Trang 22
Danh hiệu
Danh hiệu

Khái niệm “Danh hiệu”

Là tên của các đối tượng khác nhau trong lập trình, dùng
để phân biệt giữa đối tượng này với đối tượng khác.

Các đối tượng thường được đặt tên bằng danh hiệu: biến,
hằng, chương trình con, ……


Qui tắc ngữ pháp của danh hiệu:

Bắt đầu bằng chữ cái (A-Z, a-z) hay dấu gạch dưới ( _ )

Theo sau là chữ cái, dấu gạch dưới hay chữ số.

Với Pascal không phân biệt CHỮ HOA hay chữ thường

Một số ngôn ngữ có phân biệt như Java,…

Ví dụ: X , BienDem, Bien_dem, X1 , X2 , X3 , x1,x2,x3

Ví dụ sai: 101X3, (X1), Bien Dem
Đại Học Bách Khoa Tp.HCM
Khoa Công Nghệ Thông Tin
Trang 23
Danh hiệu (tt)
Danh hiệu (tt)

Danh hiệu gồm 2 loại:

Danh hiệu thuộc ngôn ngữ (Pre-defined)

Do ngôn ngữ quy định trước ý nghĩa của nó.

Được dùng cho các đối tượng có sẵn trong ngôn ngữ

Ví dụ: Integer, Readln,sqrt, real,…

Danh hiệu do người sử dụng đặt ra (user defined)


Do người sử dụng tự qui ước và qui định ý nghĩa của nó trong chương
trình nguồn (source code)

Ví dụ: abc, xyz1, xyz2, delta, namsinh, tinh_giai_thua

Từ dành riêng: Là những từ do ngôn ngữ quy định sẵn như là một bộ phận
cấu thành ngôn ngữ đó.

Ví dụ: begin, if, then, program, array, procedure (trang 22)

Ký hiệu đặc biệt: là những ký tự có ý nghĩa được quy định trước trong ngôn
ngữ.

Ví dụ: + - * / > >= := <> ; , ( ) @ [ ] (trang 23)
Đại Học Bách Khoa Tp.HCM
Khoa Công Nghệ Thông Tin
Trang 24
Qui ước đặt tên danh hiệu
Qui ước đặt tên danh hiệu

Qui tắc đặt tên danh hiệu

Tuân thủ quy tắc ngữ pháp của danh hiệu

Không được trùng lắp với danh hiệu thuộc ngôn ngữ hoặc
đã được định nghĩa.

Nên sử dụng các tên gợi nhớ


Tên gợi nhớ?

Tên mà khi đọc đến sẽ giúp ta biết được ý nghĩa của đối
tượng mang tên đó.

Lợi ích của tên gợi nhớ: giúp chương trình dễ đọc, dễ hiểu
& dể kiểm tra.
If ABC < 0 then write(‘Phuong trinh vo nghiem’) ABC không gợi nhớ
If Delta < 0 then write(‘Phuong trinh vo nghiem’) Delta là tên gợi nhớ
Đại Học Bách Khoa Tp.HCM
Khoa Công Nghệ Thông Tin
Trang 25
Kiểu dữ liệu (data type)
Kiểu dữ liệu (data type)

Kiểu dữ liệu là gì?

Một kiểu dữ liệu là một qui định về hình dạng, cấu trúc, miền giá trị,
cách biểu diễn và cách xử lý một loại dữ liệu thực tế nào đó trong máy
tính.
Kiểm INTEGER biểu diễn số nguyên từ -32767 đến 32768 và thực hiện được các
phép toán cộng, trừ, nhân, chia, div, mod
Kiểm CHAR biểu diễn các ký tự và biểu diễn giữa cắp dấu nháy đơn. ‘A’
Có thể thực hiện phép so sánh, không thể cộng, trừ, nhân, chia

Mọi dữ liệu muốn được xử lý bằng máy tính thì phải quy về
một kiểu dự liệu nào đó mà ngôn ngữ lập trình đó hiểu được.

Số kiểu dữ liệu là một yếu tố so sánh ngôn ngữ lập trình.
Càng nhiều kiểu thì càng thuận lợi cho xử lý.


Bao nhiêu kiểu dữ liệu thì đủ?

×