Bài giảng Kỹ thuật lập trình Các cấu trúc dữ liệu cơ bản GV. Hà Đại Dương

20 246 0
Bài giảng Kỹ thuật lập trình Các cấu trúc dữ liệu cơ bản  GV. Hà Đại Dương

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài giảng Kỹ thuật lập trình do GV. Hà Đại Dương biên soạn trình bày về nội dung cấu trúc dữ liệu mảng (array), cách truy xuất phần tử trong mảng,... Để biết rõ hơn về nội dung chi tiết, mời các bạn cùng tham khảo.

9/24/2016 Kỹ thuật lập trình Tuần - Các cấu trúc liệu Giáo viên: Hà Đại Dương duonghd@mta.edu.vn 9/24/2016 Bài trước • Fundamental Types of the C/C++ Language – Kiểu nguyên (Integral) – Kiểu thực (Floating point) Tham khảo: https://msdn.microsoft.com/en-us/library/cc953fe1.aspx • Kích thước nhớ, miền giá trị kiểu liệu Tham khảo: https://msdn.microsoft.com/en-us/library/s3f49ktz.aspx 9/24/2016 9/24/2016 https://msdn.microsoft.com/en-us/library/cc953fe1.aspx 9/24/2016 https://msdn.microsoft.com/en-us/library/cc953fe1.aspx 9/24/2016 9/24/2016 https://msdn.microsoft.com/en-us/library/s3f49ktz.aspx 9/24/2016 https://msdn.microsoft.com/en-us/library/s3f49ktz.aspx 9/24/2016 9/24/2016 Một số tốn • Tìm số lớn danh sách có 100, 1000 phần tử • Bài tốn quản lý sinh viên? • Bài tốn kiểm sốt giao thơng? • … Các kiểu số thực, số ngun mơ tả liệu cho tốn nêu ra? 9/24/2016 Nội dung • Mảng (array) • Con trỏ (pointer) • Xâu ký tự (string) 9/24/2016 9/24/2016 Mảng (array, list) 9/24/2016 Mơ tả • Cho phép mô tả (lưu trữ) danh sách (các biến) với: – Cùng tên (identifier), – Cùng kiểu liệu – Mỗi phần tử phân biệt số (số thứ tự) phần tử mảng • Mảng (về mặt hình thức) – chiều: dùng số để truy xuất đến phần tử – nhiều chiều: dùng nhiều số 9/24/2016 10 9/24/2016 Mảng chiều • Cú pháp (khai báo): Kiểu Tên_Biến[N]; Kiểu Tên_Biến[] ={Gt1, Gt2, …, GtN}; • Trong đó: – Kiểu: Kiểu liệu phần tử mảng – N: Số phần tử mảng, số mảng đến N-1 – Gt1, Gt2, …, GtN: giá trị phần tử mảng 9/24/2016 11 Hình ảnh nhớ • Ví dụ: int a[10]; float b[50]; • Khi gặp khai báo int a[10]; chương trình tạo 10 “ơ” nhớ liên tiếp sau: Chỉ số Ơ nhớ • Mỗi “ơ” nhớ có kích thước (byte) kích thước kiểu liệu phần tử mảng 9/24/2016 12 9/24/2016 Truy xuất phần tử • Viết số phần tử cặp dấu [, ] sau tên biến mảng • Ví dụ: – a[0], a[3] , b[1], b[i] … – Đọc scanf: scanf(“%d”, &a[i]); – Ghi hình printf: printf(“Phan tu thu %d la %d”, i, a[i]); 9/24/2016 13 Ví dụ • Viết chương trình nhập vào danh sách điểm mơn kỹ thuật lập trình lớp Tìm điểm lớn 9/24/2016 14 9/24/2016 Ví dụ … 9/24/2016 15 Ví dụ … • Kết Chỉ số Phù hợp với số mảng Không phù hợp với cách hiểu thông thường Sửa lại chương trình ??? 9/24/2016 16 9/24/2016 Ví dụ • Đổi số hệ thập phân thành số hệ nhị phân • Cách đổi: – Chia cho 2, lấy thương chia tiếp tục thương thu = – Viết số dư phép chia theo chiều ngược lại -> Số nhị phân – Ví dụ: 3710 -> 1001012 9/24/2016 17 Ví dụ … • Viết chương trình chuyển số thập phân -> nhị phân – Dùng mảng để lưu kết phần dư phép chia – Mỗi phần tử có kiểu là??? – Số phần tử (tối đa) mảng ??? – Sử dụng vòng lặp (đã học) – Viết chương trình (10 phút) 9/24/2016 18 9/24/2016 Ví dụ … 9/24/2016 19 Ví dụ • Sắp xếp danh sách điểm (ví dụ 1) theo thứ tự giảm dần • Ý tưởng: – Tìm số lớn N số cho đầu, lại N-1 số; – Tìm số lớn N-1 số cịn lại cho đầu, N-2 số … – Còn số: nguyên vị trí cuối Danh sách xếp giảm 9/24/2016 20 10 9/24/2016 Ví dụ … • Dãy số: 8, 6, 9, 7, – Số lớn 8, 6, 9, 7, -> 9, 6, 8, 7, – Số lớn 6, 8, 7, -> 9, 8, 6, 7, – Số lớn 6, 7, -> 9, 8, 7, 6, – Số lớn 6, -> 9, 8, 7, 6, – Số lớn -> 9, 8, 7, 6, • Lưu ý: Khi tìm phần tử lớn đổi chỗ phần tử xem xét với phần tử lớn 9/24/2016 21 Vừa khai báo vừa gán giá trị 9/24/2016 22 11 9/24/2016 Ví dụ … • Kết 9/24/2016 23 Ví dụ • Sắp xếp danh sách điểm (ví dụ 1) theo thứ tự tăng dần – Viết chương trình (10 phút) 9/24/2016 24 12 9/24/2016 Một số lưu ý • Có thể đọc phần tử nằm ngồi giới hạn mảng Ví dụ Phần tử: 5,6,7,8,9 Ngoài giới hạn mảng 9/24/2016 25 Một số lưu ý … • Có thể ghi phần tử nằm ngồi giới hạn mảng Ví dụ Phần tử: 5,6,7,8,9 Ngoài giới hạn mảng 9/24/2016 26 13 9/24/2016 Một số lưu ý … • Có thể ghi phần tử nằm giới hạn mảng Khi kết thúc chương trình hiển thị thơng báo lỗi 9/24/2016 27 Mảng nhiều chiều • Mảng 2, 3, … chiều • Khai báo Kiểu Tên_Biến[N1][N2][…] • Trong đó: – N1: Số phần tử theo chiều thứ – N2: Số phần tử theo chiều thứ –… • Thường dùng đến mảng 2, chiều 9/24/2016 28 14 9/24/2016 Mảng chiều • Ví dụ: Tính ma trận tổng C hai ma trận A, B • Khai báo: – float A[3][3], B[3][3], C[3][3]; int i2[5][7] • Tổ chức mảng chiều 9/24/2016 29 Ví dụ • Tính ma trận tổng C – Nhập/In ma trận A – Ma trận tổng: C[i][j] = A[i][j] + B[i][j] 9/24/2016 30 15 9/24/2016 Ví dụ • Tính ma trận tổng C: • Nhập in ma trận A 9/24/2016 31 Ví dụ … • Tính ma trận tổng C – Nhập/In ma trận A – Viết chương trình hồn chỉnh (10 phút) (Nhập B, Tính C, In A, B, C) (A) (B) (C) 4 2 + = 6 4 9/24/2016 32 16 9/24/2016 Ví dụ • Tính ma trận tích C = A*B • Biết: – C[i][j] = Sumk=1 N(A[i][k]*B[k][j]) • Viết chương trình (10 phút) 9/24/2016 33 9/24/2016 34 17 9/24/2016 Một số lưu ý • Khai báo không tường minh (số phần tử theo chiều đó) khơng cho phép chiều cuối Ví dụ, khai báo sau; int A[][] ={{1,2,3},{4,5,6},{7,8,9}} khơng hợp lệ 9/24/2016 35 Bài tập 9/24/2016 36 18 9/24/2016 Bài tập Viết chương trình chuyển số thập phân bát phân, thập lục phân Viết chương trình chuyển số nhị phân, bát phân, thập lục phân dạng thập phân 9/24/2016 37 Bài tập nhà Tính ma trận tổng C, in kết sau: Tính ma trận tích C = A*B Kiểm tra điều kiện để nhận A*B Tính định thức ma trận Tính ma trận nghịc đảo 9/24/2016 38 19 9/24/2016 Bài tập nhà … Giải hệ phương trình bậc N ẩn phương pháp Gauss Xét chương trình ví dụ viết giá trị mảng sau bước lặp j mảng d[] ={5, 7, 3, 8, 6} 9/24/2016 39 20 ... Viết chương trình nhập vào danh sách điểm mơn kỹ thuật lập trình lớp Tìm điểm lớn 9/24/2016 14 9/24/2016 Ví dụ … 9/24/2016 15 Ví dụ … • Kết Chỉ số Phù hợp với số mảng Không phù hợp với cách hiểu... tốn • Tìm số lớn danh sách có 100, 1000 phần tử • Bài tốn quản lý sinh viên? • Bài tốn kiểm sốt giao thơng? • … Các kiểu số thực, số ngun mơ tả liệu cho toán nêu ra? 9/24/2016 Nội dung • Mảng (array)... ={{1,2,3},{4,5,6},{7,8,9}} không hợp lệ 9/24/2016 35 Bài tập 9/24/2016 36 18 9/24/2016 Bài tập Viết chương trình chuyển số thập phân bát phân, thập lục phân Viết chương trình chuyển số nhị phân, bát phân, thập

Ngày đăng: 16/05/2017, 16:13

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan