Mảng một chiều Khởi tạo mảng một chiều Duyệt mảng một chiều Nhập hoặc Xuất mảng một chiều Sắp Xếp Mảng Bubble sort Cấp Phát Vùng Nhớ Động là những kiến thức mà chúng tôi sẽ cung cấp cho bạn trong bài viết mảng và mảng một chiều này .hi vọng sẽ giúp ich nhiều cho các bạn trong học tập nghiên cứu
www.hoasen.edu.vn Cùng Đại học Hoa Sen xây dựng tương lai Nhập Môn Lập Trình Mảng – Mảng Một Chiều www.hoasen.edu.vn Cùng Đại học Hoa Sen xây dựng tương lai Road Map Khái Niệm Mảng Mảng một chiều Khởi tạo mảng 1 chiều Duyệt mảng 1 chiều Nhập/ Xuất mảng 1 chiều Sắp Xếp Mảng Bubble sort Cấp Phát Vùng Nhớ Động www.hoasen.edu.vn Cùng Đại học Hoa Sen xây dựng tương lai www.hoasen.edu.vn 3 Array = Mảng: là một tập hợp nhiều phần tử có cùng kiểu và chung một tên Sắp xếp các biến cùng kiểu dữ liệu thành một dãy liên tiếp. Ví dụ: int array_int [5]; /* Mảng array_int có 5 phần tử kiểu int xếp liên tiếp*/ float array_float [1000]; /* Mảng array_float có 1000 phần tử kiểu float xếp liên tiếp */ Khái niệm mảng www.hoasen.edu.vn Cùng Đại học Hoa Sen xây dựng tương lai www.hoasen.edu.vn 4 Mảng một chiều là mảng mà những phần tử của nó được xác định một chỉ số. Khai báo bien_so kiểu Array <T> : <T> bien_so [n]; Trong đó: <T> là kiểu dữ liệu bien_so : tên biến n: số phần tử của Array Khai báo tường minh: int A[10]; float X[20]; Khai báo không tường minh: int A[ ]; float B[ ]; Mảng Một Chiều www.hoasen.edu.vn Cùng Đại học Hoa Sen xây dựng tương lai www.hoasen.edu.vn 5 7 4 10 15 90 30 3 21 56 80 Mảng B Phần tử B[3] có giá trị là 15 0 1 2 3 4 5 6 7 8 9 chỉ số Mảng Một Chiều Ví dụ: int B[10]; www.hoasen.edu.vn Cùng Đại học Hoa Sen xây dựng tương lai www.hoasen.edu.vn 6 Khởi tạo = khai báo + gán giá trị cho mảng Cú pháp khởi tạo mảng #include<stdio.h> #include<conio.h> #define SIZE 5 void main() { clrscr(); int a[SIZE]={4,6,3,8,9}; for(int i=0; i<SIZE; i++) printf("\na[%d]=%d",i, a[i]); getch(); } Khởi tạo mảng 1 chiều www.hoasen.edu.vn Cùng Đại học Hoa Sen xây dựng tương lai www.hoasen.edu.vn 7 Gán giá trị cho mảng dùng vòng lặp #include<stdio.h> #include<conio.h> #define SIZE 10 void main() { clrscr(); int value[SIZE]; /* value is an array of 10 integers */ int i; /* counter */ /* initialise elements of array to 0 */ for( i=0; i< SIZE; i++) { value[i] = 0; } } Khởi tạo mảng 1 chiều www.hoasen.edu.vn Cùng Đại học Hoa Sen xây dựng tương lai www.hoasen.edu.vn 8 Lỗi thường gặp khi khai báo : int n[10]; n[0]++; /* quên gán giá trị trước khi dùng */ int b[5] = { 1, 3, 5, 7, 9, 11 }; /* gán nhiều giá trị hơn số phần tử */ int n[10] = { 0 }; /* gán giá trị zero cho phần từ đầu tiên và */ /* đồng thời gán giá trị zero cho tất cả phần tử còn lại vì số giá trị dùng để gán ít hơn số phần tử của mảng */ int n[] = { 1, 3, 5, 7, 9 } /* Khởi tạo mảng có 5 phần tử số nguyên */ Mảng Một Chiều www.hoasen.edu.vn Cùng Đại học Hoa Sen xây dựng tương lai www.hoasen.edu.vn 9 Xử lý mảng = Xử lý nhóm các phần tử = Xử lý mỗi phần tử trong mảng. Một phần tử được xác định bởi một chỉ số for (i=0; i<n; i++) xử lý a[i]; for (i=0; i<n; i++) if (Điều kiện) xử lý a[i]; Duyệt mảng ngược for (i=n-1; i>=0; i ) xử lý a[i]; for (i=n-1; i>=0; i ) if (điều kiện) xử lý a[i]; Duyệt mảng xuôi Duyệt mảng 1 chiều www.hoasen.edu.vn Cùng Đại học Hoa Sen xây dựng tương lai www.hoasen.edu.vn 10 #include <stdio.h> #include <conio.h> #define SIZE 5 void main() { clrscr(); int a[SIZE]={4,6,3,8,9},S1=0, S2=0, S3=0, i; printf("noi dung mang:"); for(i=0; i< SIZE; i++) printf("%3d", a[i]); for(i=0; i< SIZE; i++) S1 += a[i]; printf("\nTong mang: %d", S1); for(i=0; i< SIZE; i++) if(a[i]%2==0) S2+=a[i]; printf("\nTong mang chan: %d", S2); for(i= SIZE-1; i>=0; i ) if(a[i]%2) S3+=a[i]; printf("\nTong mang le: %d", S3); getch(); } Duyệt mảng ngược Duyệt mảng có điều kiện Duyệt mảng không có điều kiện 18 12 Minh họa duyệt mảng 1 chiều [...]... lẻ 3/ Viết chương trình nhập 1 mảng số nguyên có n phần, tính tổng của các phần tử dương, tổng các phần tử âm 4/ Viết chương trình nhập một mảng số thực có n phần tử, hãy tính giá trị trung bình của các phần tử trong mảng đó, làm tròn 2 số lẻ 5/ Viết chương trình nhập một mảng ký tự có n phần tử, hãy kiểm tra xem có bao nhiêu phần tử trùng nhau trong mảng 6/ Viết chương trình tạo một mảng số nguyên ngẫu... www.hoasen.edu.vn Bài tập điểm cộng tại nhà 1 2 Hãy viết mã giả, vẽ lưu đồ, và viết chương trình cho thuật toán Bubble Sort với phương án tim số lớn nhất và chuyển đến cuối mảng Giải thuật trình bài trong slide bài giảng cho Bubble sort là chưa được tối ưu Xem ví dụ sau: Cho mảng A[] = {2,5,7,1,9} Sau 1 vòng sắp xếp, mảng trở thành A[] = {1,2,5,7,9} Như vậy mảng đã được sắp xếp theo thứ tự và chương trình nên... các yêu cầu sau: - Xuất mảng đó ra màn hình - Thêm 1 phần từ vào cuối mảng - Thêm 1 phần từ vào đầu mảng - Thêm 1 phần tử vào ví trí bất kỳ - Xuất lại mảng ra màn hình Cùng Đại học Hoa www.hoasen.edu.vn Sen xây dựng tương lai 30 www.hoasen.edu.vn Bài tập điểm cộng tại nhà Bài tập 5: Viết chương trình nhập n phần tử số nguyên vào mảng Rồi thực hiện các yêu cầu sau: - Xuất mảng đó ra màn hình -... a[j-1]; a[j-1] = t; } //Xuất mảng đã sắp xếp tăng for (i=0; i . www.hoasen.edu.vn 3 Array = Mảng: là một tập hợp nhiều phần tử có cùng kiểu và chung một tên Sắp xếp các biến cùng kiểu dữ liệu thành một dãy liên tiếp. Ví dụ: int array_ int [5]; /* Mảng array_ int. dụ: int array_ int [5]; /* Mảng array_ int có 5 phần tử kiểu int xếp liên tiếp*/ float array_ float [1000]; /* Mảng array_ float có 1000 phần tử kiểu float xếp liên tiếp */ Khái niệm mảng www.hoasen.edu.vn Cùng. định một chỉ số. Khai báo bien_so kiểu Array <T> : <T> bien_so [n]; Trong đó: <T> là kiểu dữ liệu bien_so : tên biến n: số phần tử của Array Khai báo tường minh: int A[10];