Bài giảng Tin đại cương - Bài 7: Mảng - Vũ Thương Huyền

BÀI 7  
MẢNG  
Giảng viên:  
Vũ Thương Huyền – Khoa Công nghệ thông tin – ĐH Thủy Lợi  
Email:  
NỘI DUNG  
.Khái niệm về mảng  
.Mảng một chiều  
.Mảng hai chiều  
KHÁI NIỆM VỀ MẢNG  
. Mảng là tập hợp hữu hạn các phần tử có cùng kiểu dữ liệu  
. Các phần tử lưu trữ ở các vị trí kế tiếp nhau trong bộ nhớ  
. Kích thước của mảng bằng số phần tử  
. Mảng một chiều, mảng nhiều chiều  
MẢNG MỘT CHIỀU  
. Khai báo:  
kieudulieu tenmang [sophantu];  
Phần tử của mảng truy nhập thông qua tên mảng  
Các phần tử được đánh số từ 0 (số phần tử - 1)  
Số phần tử là hằng số  
. Ví dụ:  
int x[10];  
char hoten[50];  
float a[10], b[20];  
MẢNG MỘT CHIỀU  
. Khởi tạo giá trị khi khai báo:  
kieudulieu tenmang [sophantu] = {giatri1, giatri2…., giatriN};  
Chú ý:  
Các giá trị khởi tạo là hằng số  
Số lượng giá trị khởi tạo ít hơn số phần tử thì các phần tử còn lại sẽ có giá trị 0  
Có thể không cần khai báo kích thước của mảng khi khởi tạo  
MẢNG MỘT CHIỀU  
. Ví dụ 1: Khởi tạo cho mọi phần tử của mảng  
char a[5] = {'A', 'B', 'C', 'D', 'E'};  
2
1
B
3
0
A
4
E
C
D
a
. Ví dụ 2: Khởi tạo cho một số phần tử của mảng  
int b[5] = {1, 2, 3};  
2
1
3
0
4
1 2 3 0 0  
b
NHẬP GIÁ TRỊ CHO CÁC PHẦN TỬ CỦA MẢNG  
Nhập trực tiếp thông qua chỉ số  
b[0] = 1;  
b[1] = 2;  
Nhập thông qua vòng lặp for  
for(int i=0; i< n; i++)  
{
cout<<"a["<<i<<"]=";cin>>a[i];  
}
Chỉ số phải nhỏ hơn số phần tử của mảng  
TRUY XUẤT GIÁ TRỊ CÁC PHẦN TỬ CỦA MẢNG  
Thông qua chỉ số  
int a = b[0];  
cout<<b[1];  
Thông qua vòng lặp for  
for(int i=0; i< n; i++)  
{
cout<<"a["<<i<<"]=";cout<<a[i]<<endl;  
}
MẢNG MỘT CHIỀU  
. Ví dụ:  
- Đọc vào dãy n số nguyên (n<=100)  
- Hiển thị dãy số vừa nhập ra màn hình  
MẢNG MỘT CHIỀU  
. Ví dụ:  
BÀI TẬP  
. Bài 1: Đọc vào n số nguyên từ bàn phím.  
a. Đếm các số chia hết cho 3  
b. Đếm các số lớn hơn 10  
. Bài 2: Cho dãy n số nguyên A1, A2… An  
a. Tìm các số bằng số trước nó cộng 3  
b. Tìm các số bộ ba số trong dãy thỏa mãn điều kiện  
푨풊 = 푨풊−ퟏ + 푨풊+ퟏ  
TÌM CHỖ CHƯA ĐÚNG!  
float a[50];  
a[100] = 12.34;  
int a[5] = (0; 1; 2; 3; 4; 5);  
char kt[6] = {a, b, c, d, e, f};  
int arr[10];  
for(int i=1; i<=10; i++)  
cout<<arr[i];  
ĐOẠN CHƯƠNG TRÌNH SAU HIỂN THỊ GÌ TRÊN MÀN HÌNH!  
char a[3] ={‘a’, ‘b’, ‘c’};  
for(int i=0; i<3; i++)  
{
cout<<a[i]<<" ";  
}
double a[3] ={1.1, 2.2, 3.3};  
cout<<a[0]<<" "<<a[1] <<" "<<a[2]<<endl;  
a[1]= a[2];  
cout<<a[0]<<" "<<a[1] <<" "<<a[2]<<endl;  
MỘT SỐ BÀI TOÁN  
. Tìm giá trị lớn nhất, nhỏ nhất trong dãy số.  
. Sắp xếp dãy số tăng dần (giảm dần)  
. Chèn thêm một số vào dãy số ban đầu  
. Xóa một phần tử của dãy số  
TÌM GIÁ TRỊ LỚN NHẤT  
. Bài toán:  
- Nhập vào dãy n số nguyên (n<=100)  
- Đưa ra màn hình giá trị lớn nhất trong dãy vừa nhập  
TÌM GIÁ TRỊ LỚN NHẤT  
#include <iostream>  
using namespace std;  
int main ()  
{
int a[100], n;  
cout<<"Nhap so phan tu cua day (<100) ="; cin>>n;  
for(int i=0; i<n; i++)  
{
cout<<"a["<<i<<"="; cin>>a[i];  
}
int max = a[0];  
for(int i=1; i<n; i++)  
if(max< a[i])  
max = a[i];  
cout<<"Gia tri lon nhat cua day la: "<<max;  
return 0;  
}
SẮP XẾP MẢNG  
. Bài toán:  
Lập trình nhập vào một mảng gồm n phần tử. Sắp xếp các phần tử của  
mảng theo thứ tự tăng dần. Hiển thị mảng đã sắp xếp ra màn hình.  
12  
9
9
24  
12  
35  
18  
11  
18  
35  
11  
24  
SẮP XẾP MẢNG  
#include <iostream>  
cout<<“Sau khi sap xep:"<<endl;  
using namespace std;  
int main ()  
{
for(i=0; i<n; i++)  
cout<<a[i]<<" ";  
return 0;  
int a[100], n, temp, i;  
}
cout<<"Nhap so phan tu cua day (<100) ="; cin>>n;  
for(i=0; i<n; i++)  
{
cout<<"a["<<i<<"="; cin>>a[i];  
}
int min, k;  
for(i=0; i<n-1; i++)  
for(int j=i+1; j<n; j++)  
if(a[j] < a[i])  
{
temp = a[i];  
a[i] = a[j];  
a[j] = temp;  
}
XÓA PHẦN TỬ KHỎI MẢNG  
. Bài toán:  
Lập trình nhập vào một mảng gồm n phần tử. Nhập vào một giá trị cần  
xóa khỏi mảng. Hiển thị mảng sau khi đã xóa.  
20  
12  
3
7
8
12  
18  
20  
3
7
8
18  
XÓA PHẦN TỬ KHỎI MẢNG  
#include <iostream>  
using namespace std;  
int main ()  
{
if(m==n)  
cout<<"Khong co gia tri "<<x<<"  
trong day.";  
else  
{
int a[100], n, m, i, x;  
cout<<"Nhap so phan tu cua day (<100) ="; cin>>n;  
for(i=0; i<n; i++)  
{
cout<<"Day moi la: "<<endl;  
for(i=0; i<m; i++)  
cout<<a[i]<<" ";  
cout<<"a["<<i<<"="; cin>>a[i];  
}
}
cout<<"Gia tri can xoa:"; cin>>x;  
i=0;m=n;  
while(i<m)  
return 0;  
}
if(a[i]==x)  
{
for(int j=i; j<m-1; j++)  
a[j] = a[j+1];  
m--;  
}
else  
i++;  
Tải về để xem bản đầy đủ
pdf 29 trang baolam 23720 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Tin đại cương - Bài 7: Mảng - Vũ Thương Huyền", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_tin_dai_cuong_bai_7_mang_vu_thuong_huyen.pdf