bài giảng môn cơ sở dữ liệu chương 1, 2, 3. giúp các bạn học tập tốt môn cơ sở dữ liệu. ngoài chương 1, 2, 3. chúng tôi sẽ có thêm tài liệu bài giảng của chương 4, 5. chúc các bạn học tập tốt. chúc các bạn vui vẻ
Trang 1Số tín chỉ: 3 Giảng viên: Ths Đinh Thị Hà
Bộ môn Tin học Email: dinhha100983@gmail.com
Phone: 0947830983
Trang 2Chương 1: Kỹ thuật lập trình cơ bản
Chương 2: Lập trình căn bản trên C
Chương 3: Mảng, xâu và con trỏ
Chương 4: Hàm và macro
Chương 5: Kiểu dữ liệu có cấu trúc
Trang 3[1] Đỗ Xuân Lôi – Cấu trúc dữ liệu và giải thuật – Nhà xuất bản Khoa học và Kỹ thuật.
[2] Nguyễn Minh San – Cẩm nang lập trình, tập 1 &
Trang 51.1.1 Khái niệm
1.1.2 Tính chất của thuật toán
1.1.3 Ví dụ
Trang 6Khái niệm 1: Thuật toán là một dãy hữu
hạn các bước được sắp xếp theo một trật
tự xác định, mỗi bước mô tả chính xác các phép toán hoặc hành động cần thực hiện,
để giải quyết một vấn đề
Khái niệm 2: Thuật toán là một dãy hữu
hạn các thao tác, sắp xếp theo một trật tự xác định, sau khi thực hiện, từ Input ta nhận được Output cần tìm
Trang 8Tìm UCLN của 2 số nguyên dương
nguyên dương
nguyên
Trang 91.2.1 Khái niệm
1.2.2 Các cấu trúc điều khiển
1.2.3 Ví dụ
Trang 10Khái niệm 1: Sơ đồ khối là tập hợp các ký hiệu và quy tắc dùng để biểu diễn thuật toán
Khái niệm 2: Sơ đồ khối là cách thể hiện thuật toán bằng các hình khối hình học nối với nhau bằng đường đi
có hướng
Các thành phần:
Hình thoi: thể hiện thao tác so sánh
Hình chữ nhật: thể hiện các phép tính toán
Hình bình hành: thể hiện thao tác nhập xuất dữ liệu
Hình oval: thể hiện sự bắt đầu/kết thúc của thuật toán.
Các mũi tên: thể hiện trình tự thực hiện các thao tác
Trang 11 Các khối
Khối Vào/Ra
Vào/ra a Hướng thực hiện
KT
Khối kết thúc
X=-b/a
Khối tính toán Khối bắt đầu
BĐ
a=0
Khối kiểm tra điều kiện
Trang 12 Sơ đồ khối dạng tuần tự: Là sơ đồ khối thể hiện thuật
toán gồm n khối mà khi thực hiện thuật toán với một bộ
dữ liệu cụ thể sẽ lần lượt thực hiện từ khối đầu tiên đến khối cuối cùng theo thứ tự viết của nó.
Sơ đồ khối dạng rẽ nhánh: Là sơ đồ khối thể hiện thuật
toán gồm n nhánh mà khi thực hiện thuật toán với một bộ
dữ liệu cụ thể sẽ thực hiện một trong n nhánh mà thôi.
Sơ đồ khối dạng chu trình: Là sơ đồ khối thể hiện thuật
toán gồm n khối mà khi thực hiện thuật toán với một bộ
dữ liệu cụ thể sẽ có một số khối lặp đi lặp lại nhiều lần phụ thuộc vào một điều kiện nào đó vẫn thỏa mãn.
Trang 13Làm việc với dãy số nguyên:
Tìm giá trị lớn nhất của dãy
Tính tổng các phầns tử của dãy mà chia hết cho 3
Trang 141.3.1 Chương trình
1.3.2 Ngôn ngữ lập trình
1.3.3 Trình tự giải bài toán trên MTĐT
1.3.4 Đánh giá chương trình MTĐT
Trang 15Khái niệm: Chương trình là một tập hợp
các lệnh để thể hiện một thuật toán giải quyết một bài toán hay một nhiệm vụ nào
đó Trong đó:
Lệnh: là một chỉ thị để máy tính có thể
thực hiện một cách tự động
Trang 16Khái niệm: Ngôn ngữ lập trình là ngôn
ngữ để viết chương trình
Phân loại: (phụ thuộc vào kiến trúc và
hoạt động của máy tính)
Trang 17Bước 1: Xác định bài toán
Bước 2: Tìm cấu trúc biểu diễn bài toán
Bước 3: Chọn phương pháp giải
Bước 4: Lập trình giải bài toán
Bước 5: Thử nghiệm chương trình
Bước 6: Tối ưu chương trình (bảo trì)
Trang 18 Mục tiêu: xây dựng chương trình tốt, có
chất lượng
Tính đúng đắn: chương trình phải thực hiện đúng và đầy đủ các nhiệm vụ mà bài toán đặt ra.
Tính bền vững: có khả năng hoạt động tốt ngay
cả trong những điều kiện bất bình thường.(khi đặc tả hệ thống không lường hết các tình huống)
Trang 19 Tính hiệu quả: chi phí thấp (xây dựng, vận hành,
…, đào tạo, huấn luyện sử dụng, tài nguyên máy tính: không gian và thời gian)
Trang 20 Tính dễ chuyển đổi: có thể chuyển sang thực
hiện trên phần cứng mới hoặc môi trường phần mềm (hệ điều hành) khác.
Tính an toàn: bảo vệ được quyền truy cập,
đảm bảo không cho người không được phép truy cập, sửa đổi và làm hư hại thông tin
Thân thiện với người sử dụng: tin cậy và trình
độ sử dụng tỉ lệ thuận với những công sức đầu
tư học và sử dụng nó trong thực tế.
1.3.4 Đánh giá chương trình MTĐT
Trang 21 1.4.1 Lập trình hướng thủ tục
Trang 22 Tư tưởng: Chia nhỏ bài toán cho đến khi không còn chia nhỏ được nữa từ đó xây dựng cấu trúc dữ liệu và các hàm, thủ tục để giải các bài toán con
Tổ chức chương trình thành các chương trình con (hàm và thủ tục)
Trong đó: hàm là một đơn vị chương trình độc lập dùng để thực hiện một phần việc nào đó như: nhập số liệu, in kết quả hoặc thực hiện một số tính toán Hàm có thể có biến và tham
số của nó
Ví dụ: C, Pascal, Foxpro
Trang 23Chương trình chính
Hàm_1 Hàm_2 Hàm_3
Hàm_4 Hàm_5 Hàm_6
Trang 24 Ví dụ: sơ đồ tổ chức chức năng của nhà
cơ quan, Bài toán về dãy sốchức
năng/hàm?
Trang 25mà không cần biết nội dung cụ thể)
tiếp cận từ trên xuống (top - down)
Trang 26Nhược điểm:
liệu chung khó kiểm soát (nhất là đối với chương trình lớn, phức tạp)
chung cho một số hàm thì phải thay đổi các hàm liên quan dữ liệu đó
cận này không mô tả được đầy đủ và trung thực các hệ thống trong thực tế (phân tích, thiết kế)
Trang 28Vấn đề: xây dựng cấu trúc dữ liệu để thể hiện cây quan hệ:
thành thạo con trỏ, cập nhập thông tin trên cây quan hệ
Yêu cầu bài toán: “Hưng và Hiếu có quan hệ như thế
nào?”xây dựng giải thuật xác địnsh mối quan hệ, tên gọi các mối quan hệ ở Việt nam rất phong phú vét cạn các mối quan hệ
Câu hỏi: Muốn quản lý nhiều gia đình và các gia đình có quan
hệ thông gia với nhau?? cấu trúc thay đổi thuật toán thay đổi
Trang 29Tư tưởng: Phân tích bài toán thành các thực thể được gọi là các đối tượng từ đó xây dựng các dữ liệu và các hàm (thao tác) xung quanh đối tượng đó.
chương trình sẽ được tổ chức thành các đối tượng.
Trong đó: đối tượng là sự kết hợp giữa dữ
liệu và hàm (phương thức) thao tác trên dữ liệu đó.
Ví dụ:
C++, Java, Smalltalk
Trang 30 Giải quyết: xem xét dưới góc độ
quản lý tập các đối tượng con người
con cái, vợ chồng,…
cưới, là anh, là ông nội,…
Chiến.Cưới(Hải)
Hải.Sinh con(gái,Linh)
Hải.Sinh con(trai, Hưng)
không cần quan tâm tạo cấu trúc
cây quan hệ mà vẫn trả lời được
các câu hỏi
Con người
Tên ? Cha ?
Mẹ ? Anh em ? Con cái ?
Vợ chồng?
Sinh con Cưới
Là anh
Là ông nội
Trang 31 Đặc điểm:
Đặt trọng tâm vào đối tượng, tập trung vào dữ liệu thay cho các hàm
Chương trình được chia thành các đối tượng
Các đối tượng tác động và trao đổi thông tin cho nhau thông qua các hàm với cơ chế thông báo.
Đóng gói chức năng và dữ liệu (với mỗi đối tượng ta không thể truy cập trực tiếp vào các thành phần dữ liệu của nó mà phải thông qua các thành phần chức năng- phương thức)
Các CTDL được thiết kế sao cho đặc tả được các đối tượng
Các hàm xác định trên các vùng dữ liệu của đối tượng được gắn với nhau trên cấu trúc dữ liệu đó.
Chương trình được thiết kế theo cách tiếp cận từ dưới lên (bottom - up)
Trang 32Ưu điểm
Dữ liệu và các hàm mới có thể dễ dàng bổ sung vào đối tượng nào đó khi cần thiết dễ nâng cấp thành hệ thống lớn hơn.
Dữ liệu được bao bọc, che dấu và không cho phép các hàm ngoại lai truy cập tự do mà dữ liệu của một đối tượng chỉ có thể được truy cập bởi chính các hàm xác định trong đối tượng đó chương trình an toàn
Mô hình được xây dựng gần với hệ thống thực tế
Thông qua nguyên lý kế thừa loại bỏ đoạn chương trình lặp lại khi khai báo lớp và mở rộng khả năng sử dụng các lớp ngắn gọn, tiết kiệm thời gian
Cách thiết kế đặt trọng tâm vào dữ liệuxây dựng mô hình chi tiết và cài đặt dễ hơn
Trang 331.5.1 Kỹ thuật thiết kế trên xuống
1.5.2 Kỹ thuật chương trình con
1.5.3 Kỹ thuật đệ quy