Tải bản đầy đủ (.doc) (3 trang)

II. Giới thiệu về Cấu trúc dữ liệu và Giải thuật

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 (126.84 KB, 3 trang )

I. Giới thiệu về Cấu trúc dữ liệu và Giải thuật
I.1 Các khái niệm cơ bản
 Ngôn ngữ lập trình
Khái niệm: Ngôn ngữ lập trình là ngôn ngữ dùng để trình bài các thuật toán trong máy tính mà
máy tính có thể hiểu được.
Phân loại Ngôn ngữ lập trình: Có 3 loại NNLT.
Ngôn ngữ máy: Ngôn ngữ riêng của từng loại máy và là loại ngôn ngữ mà máy tính có thể hiểu
được một cách trực tiếp.
Ưu điểm: Tốn ít bộ nhớ, chạy nhanh
Nhược điểm: Khó viết, khó nhớ, tốn nhiều thời gian để viết CT, phức tạp, khó bảo trì
Hợp ngữ: Tương tự ngôn ngữ máy. Nhưng hợp ngữ khác với ngôn ngữ máy ở chỗ, là thay vì
viết chương trình dưới dạng nhị phân, người ta sử dụng một số ký hiệu tượng trưng dễ nhớ.
Để máy tính có thể hiểu được Hợp ngữ thì cần phải được diễn dịch từ Hợp ngữ sang ngôn ngữ
máy: Assembler
Ngôn ngữ cấp cao: Chương trình viết bằng ngôn ngữ này thường dễ viết hơn so với Ngôn ngữ
máy và Hợp ngữ. Mỗi lệnh của ngôn ngữ cấp cao tương đương với một lệnh của thuật toán à hay
còn gọi là ngôn ngữ thuật toán:
Ví dụ: C, Pascal, Java, C++, Visual Basic, …
Ví dụ sau đây là một chương trình được viết bằng ngôn ngữ lập trình C.
#include <stdio.h>
#include <conio.h>
void main() {
printf(“Hello!”);
getch();
}
 Kiểu dữ liệu
Chúng ta có thể định nghĩa dữ liệu là tất cả những gì được máy tính xử lí, dữ liệu như là
nguyên vật liệu cho máy tính xử lí.
Các kiểu dữ liệu cần tới máy tính xử lý có rất nhiều, tồn tại dưới nhiều dạng khác nhau về bản
chất, về ý nghĩa. Song xét về phương diện điện tử thì máy tính chỉ hiểu các thông tin biểu diễn dưới
dạng mã nhị phân.


Về phương diện ngôn ngữ bậc cao thì dữ liệu đã được khái quát hoá thành các kiểu dữ liệu và
ta không cần quan tâm đến biểu diễn chi tiết trong máy tính của các kiểu dữ liệu
kiểu số nguyên
Kiểu cơ sở
Kiểu vô hướng (kiểu
đơn giản)

Kiểu kí tự
Kiểu logic

Kiểu vô hướng do con
người đinh nghĩa

Data type

Số thực

Kiểu DL có cấu trúc

Kiểu liệt kê

Kiểu mảng
Kiểu cấu trúc
Kiểu tập tin

Tổng quát phân loại các kiểu dữ liệu
 Giải thuật
Kiểu con trỏ



Ta có thể định nghĩa giải thuật như sau: Giải thuật là một hệ thống các qui tắc rõ ràng và chặt
chẽ nhằm xác định một chuỗi các thao tác trên những đôi tượng sao cho sau một số hữu hạn bước
thực hiện những thao tác ấy, người ta đạt được mục tiêu đề ra.
VD: Giải thuật dùng để giải quyết vấn đề “thay bánh xe hơi bị xì”
1. Đội xe lên
2. Mở các ốc bánh xe
3. Tháo bánh xe bị xì ra
4. Lắp bánh xe phòng hờ vào
5. Vặn các ốc vào bánh xe
6. Hạ xe xuống
Tính chất đặc trưng của giải thuật:
o Dữ liệu vào
o Dữ liệu ra
o Tính dừng
o Tính xác định
o Tính phổ dụng
o Tính hữu hiệu
Ngôn ngữ biễu diễn giải thuật.
Ngôn ngữ tự nhiên:
Để mô tả thuật toán (giải thuật), người ta sử dụng có thể sử dụng một loại ngôn ngữ tự nhiên để
liệt kê các bước tiến hành của thuật toán. Theo cách mô tả này, cả người xây dựng lẫn người đọc
thuật toán không cần đến một số kiến thức đặc biệt như đối với cách mô tả thuật toán theo lưu đồ
hoặc mã giả. Nhược điểm của cách mô tả này là: dài dòng, không nêu bật được cấu trúc của thuật
toán và đôi khi khó hiểu hoặc gây ra hiểu nhầm.
Ví dụ chúng ta dùng ngôn ngữ tự nhiên để mô ta giải thuật “Tính diện tích hình thang” như
sau:
1. Đọc vào giá trị độ dài của đáy lớn
2. Đọc vào giá trị độ dài của đáy nhỏ
3. Đọc vào giá trị của chiều cao
4. Diện tích= (đáy lớn + đáy nhỏ) X chiều cao / 2

5. Viết ra diện tích vừa tìm được
Lưu đồ:
Đôi khi việc mô tả giải thuật bằng hình vẽ sẽ rõ ràng và dễ hiểu hơn. Toàn bộ hình vẽ dùng để
mô tả thuật toán được gọi là lưu đồ hay sơ đồ khối. Cách biểu diễn này giúp chúng ta có được một
cái nhìn tổng quát về toàn bộ quá trình xử lí vấn đề/bài toán theo thuật toán.
Để xây dựng lưu đồ, chúng ta quy ước một số kí hiệu trong hình vẽ như sau:
 Bắt đầu và kết thúc thuật toán

Begin
End
 Thực hiện một công việc A

A
 Gọi một chương trình con A

A
 Dữ liệu vào ra


 Phép thử điều kiện B

đúng

B

sai

Sau đây là ví dụ dùng lưu đồ để biểu diễn giải thuật tính tổng của n số nguyên đầu tiên.

Begin

Đọc vào n
S=0
i=0

S=S+i
i=i+1
i>n
sai

đúng
In S

End



×