Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 46 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
46
Dung lượng
1,09 MB
Nội dung
KỸ THUẬT LẬP TRÌNH Lecturer: Phan Hồ Duy Phương Mekong University Nhập Mơn Lập Trình – Mekong University Nội dung Giới thiệu Biểu diễn liệu máy tính Ngơn ngữ lập trình C# Lập trình hàm Mảng Thuật tốn Nhập Mơn Lập Trình – Mekong University Mảng Giới thiệu Khai báo mảng Duyệt mảng Các tốn mảng Nhập Mơn Lập Trình – Mekong University Mảng Giới thiệu Khai báo mảng Duyệt mảng Các toán mảng Nhập Mơn Lập Trình – Mekong University 5.1 Giới thiệu VD: Viết chương trình nhập vào 10 số nguyên, xuất tổng số nguyên void main() { int n1,n2,n3,…,n10; C.Write(“Nhap gia tri \n”); Console.Read(n1); …// lệnh nhập n2 n10 C.Write(“Tong:{0}”,n1+n2+…+n10) ; } Nhập Mơn Lập Trình – Mekong University 5.1 Giới thiệu o Yêu cầu thêm: nhập 100, 1000 số o Cần lưu trữ n số nguyên => không thực oCần xếp n số nguyên => không thực => Các kiểu liệu sở chưa đáp ứng việc lưu trữ truy xuất Giải pháp: Kiểu liệu cho phép lưu trữ dãy số nguyên dễ dàng truy xuất Nhập Mơn Lập Trình – Mekong University 5.1 Giới thiệu KIỂU DỮ LIỆU MẢNG (Array) oLà kiểu liệu có cấu trúc người lập trình định nghĩa oBiểu diễn dãy biến có kiểu VD: dãy số nguyên, dãy ký tự… oKích thước xác định khai báo không thay đổi oNgôn ngữ C cấp phát khối nhớ liên tục cho biến kiểu mảng Nhập Mơn Lập Trình – Mekong University Mảng Giới thiệu Khai báo mảng Duyệt mảng Các tốn mảng Nhập Mơn Lập Trình – Mekong University 5.2 Khai báo Mảng KHAI BÁO MẢNG Khai báo tường minh: [ ] = new []; Lưu ý: oPhải xác định cụ thể (hằng) khai báo oBộ nhớ sử dụng = * sizeof() oMột dãy liên tục có số từ đến Nhập Môn Lập Trình – Mekong University 5.2 Khai báo Mảng KHAI BÁO MẢNG VD: Giá trị nhớ vị trí i: A[i] A int[] A= new int[10]; Ô nhớ có kích cỡ sizeof(int) Chỉ số phần tử Nhập Môn Lập Trình – Mekong University 10 5.5 Mảng chiều KHAI BÁO MẢNG CHIỀU – MA TRẬN m x n [,] = new [ ,]; M1 N: Số lượng phần tử chiều Lưu ý: oPhải xác định cụ thể (hằng) khai báo oBộ nhớ sử dụng = M*N * sizeof() oMột dãy nhớ liên tục có số từ [0,0] đến [M - 1, N 1] oCó thể khai báo tường minh không tường minh mảng chiều Nhập Mơn Lập Trình – Mekong University 32 5.5 Mảng chiều KHAI BÁO MẢNG CHIỀU VD: int[,] A = new int[3,4]; Giá trị ô nhớ dòng i, cột j: A[i,j] A Chỉ số CỘT Ơ nhớ có kích cỡ sizeof(int) Nhập Mơn Lập Trình – Mekong University Chỉ số DÒNG 33 5.5 Mảng chiều KHAI BÁO MẢNG CHIỀU – MA TRẬN m x n Khởi tạo giá trị: oVD: int[,] A { {1, {3, {5, }; = 2}, 4}, 6} string[,] B = { {“Mekong”, “Uni”}, {“IT”, “Class”}, {“Vinh Long”, “City”} }; Nhập Mơn Lập Trình – Mekong University 34 5.5 Mảng chiều TRUY XUẤT PHẦN TỬ MẢNG CHIỀU Thông qua số: [,] oVD: int[] a = new int[4,5]; Console.Write(a[0,1]); Console.Write(a[3,2]); oKhông hợp lệ: a[4,0], a[5,5], a[-1,0] Nhập Mơn Lập Trình – Mekong University 35 5.5 Mảng chiều NHẬP – XUẤT GIÁ TRỊ MẢNG CHIỀU oNhập mảng: int[] a = new int[5,7]; for(int i = 0; i < 5; i++) { for(int j = 0; j < 7; j++) { Console.Write(“Nhap pt [{0},{1}]:”,i,j); Console.Read(a[i,j]); } } Nhập Mơn Lập Trình – Mekong University 36 5.5 Mảng chiều NHẬP – XUẤT GIÁ TRỊ MẢNG CHIỀU oXuất mảng: for(int i = 0; i < 5; i++) { Console.Write(“Dong thu {0}”,i); for(int j = 0; j < 7; j++) { Console.Write(a[i,j]); } } Nhập Mơn Lập Trình – Mekong University 37 5.5 Mảng chiều PHÂN LOẠI MA TRẬN An Am,n … n-1 0 m-1 n-1 Nhập Mơn Lập Trình – Mekong University … n-1 38 5.5 Mảng chiều MA TRẬN VNG – Đường chéo 0 An 1 … n-1 A[0,0] A[1,1] A[2,2] n-1 Nhập Môn Lập Trình – Mekong University A[n-1, n-1] - Dịng = Cột - A[i, j] với i = j - Các phần tử nằm đường chéo VD: A[0,0]; A[1,1] A[3,3]; 39 5.5 Mảng chiều MA TRẬN VUÔNG … An n-1 Dòng > Cột - Các phần tử phía đường chéo VD: n = A[1,0]; A[2,1] A[3,2]; n-1 Nhập Mơn Lập Trình – Mekong University 40 5.5 Mảng chiều MA TRẬN VUÔNG … An n-1 Dòng < Cột - Các phần tử phía đường chéo VD: n = A[0,1]; A[1,2] A[2,3]; n-1 Nhập Môn Lập Trình – Mekong University 41 5.5 Mảng chiều MA TRẬN VUÔNG – Đường chéo phụ … An n-1 Dòng + Cột = n-1 - Các phần tử đường chéo phụ VD: n = A[0,3]; A[1,2] A[3,0]; n-1 Nhập Mơn Lập Trình – Mekong University 42 5.5 Mảng chiều MA TRẬN VUÔNG … An n-1 Dòng + Cột > n-1 - Các phần tử phía đường chéo phụ VD: n = A[1,3]; A[2,2] A[3,3]; n-1 Nhập Môn Lập Trình – Mekong University 43 5.5 Mảng chiều MA TRẬN VUÔNG … An n-1 Dịng + Cột < n-1 - Các phần tử phía đường chéo phụ VD: n = A[1,1]; A[1,0] A[0,2]; n-1 Nhập Mơn Lập Trình – Mekong University 44 Bài tập Mảng thưa (Jagged Array) gì? Khai báo sử dụng Nhập Mơn Lập Trình – Mekong University 45 Bài tập Viết chương trình nhập vào ma trận số nguyên có n x n phần tử Yêu cầu: o Xuất phần tử ma trận o Xuất tổng phần tử đường chéo chính, phụ o Tìm phần tử lớn nửa phía đường chéo Nhập Mơn Lập Trình – Mekong University 46