slide bài giảng nhập môn lập trình mảng và mảng một chiều - Pdf 14

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


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]);

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

18
12
Minh họa 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
11
#include <conio.h>
#include <stdio.h>
void main()
{ int a[100],n;
clrscr();
//Nhập các phần tử vào mảng
printf("\n nhap so phan tu cua mang:");
scanf("%d",&n);
for (int i=0;i<n;i++)
{ printf("nhap a[%d]: ",i);
scanf("%d",&a[i]);
}
//Xuất mảng ra màn hình
printf("Noi dung mang:");
for(int i=0;i<n; i++)
printf("%3d",a[i]);
getch();
}
Kết quả
Viết chương nhập n
phần tử kiểu số nguyên vào
mảng và xuất mảng


Ý tưởng chính:

Mảng có N phần tử

Tìm số nhỏ nhất trong N phần tử và đưa về vị trí đầu tiên

Tìm số nhỏ nhất trong N-1 phần tử và đưa về vị trí kế tiếp

Tiếp tục lặp lại đến hết phần tử trong mảng
www.hoasen.edu.vn
Cùng Đại học Hoa Sen xây dựng tương lai

14
Bubble Sort – Ví dụ
2 8 5 1 6 4
1
5
1
2
2 3 4 5 6 7 81
i
j
1
www.hoasen.edu.vn
Cùng Đại học Hoa Sen xây dựng tương lai

15
Bubble Sort – Ví dụ
1

2 4
1
2
8 5 6
1
5
1
2 3 4 5 6 7 81
i
j
5
www.hoasen.edu.vn
Cùng Đại học Hoa Sen xây dựng tương lai

18
Bubble Sort – Ví dụ
2 4 5
1
2
8 6
1
5
1
2 3 4 5 6 7 81
i
j
6
www.hoasen.edu.vn
Cùng Đại học Hoa Sen xây dựng tương lai


2
www.hoasen.edu.vn
Cùng Đại học Hoa Sen xây dựng tương lai

21
Bubble sort – Thuật toán
Mảng
bắt đầu
1
12
2
2
3
8
4
5
5
1
6
6
7
4
8
15
Sau 1
vòng
1
12
2
8

12
6
8
15
Sau 5
vòng
1
2
4
5
6
12
8
15
Sau 6
vòng
1
2
4
5
6
8
12
15
Mảng xếp
theo thứ tự
1
2
4
5

www.hoasen.edu.vn
24
Demo sắp xếp
mảng tăng dần
bằng thuật toán
Bubble Sort
Sắp xếp mảng 1 chiều
#include <stdio.h>
#include <conio.h>
void main()
{ int n=5;
int a[n] = {5,3,4,7,1};
int i,j, t ;
for (i=0; i<n-1; i++)
for (j=n-1; j> i ; j )
if (a[j] < a[j-1])
{ t = a[j];
a[j]= a[j-1];
a[j-1] = t;
}
//Xuất mảng đã sắp xếp tăng
for (i=0; i<n; i++)
printf(“%3d”,a[i]);
getch();
}
www.hoasen.edu.vn
Cùng Đại học Hoa Sen xây dựng tương lai

www.hoasen.edu.vn
25


Nhờ tải bản gốc
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status