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 đủ
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:
bai_giang_tin_dai_cuong_bai_7_mang_vu_thuong_huyen.pdf

