Bài giảng Tin học đại cương: Bài 9 - TS. Đỗ Bá Lâm

20 5 0
Bài giảng Tin học đại cương: Bài 9 - TS. Đỗ Bá Lâm

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

– Nếu số phần tử của mảng được nhập từ bàn phím và chỉ biết trước số phần tử tối đa tối đa => khai báo mảng với kích thước tối đa và sử dụng biến lưu số phần tử thực sự của mảng. N[r]

(1)

Đỗ Bá Lâm

lamdb@soict.hut.edu.vn

TIN HỌC ĐẠI CƯƠNG

(2)

9.1 Mảng 9.2 Con trỏ 9.3 Xâu kí tự

(3)

9.1 Mảng

9.1.1 Khái niệm mảng

9.1.2 Khai báo sử dụng mảng

9.1.3 Các thao tác mảng 9.1.4 Tìm kiếm mảng

9.1.5 Sắp xếp mảng

(4)

• Tập hợp hữu hạn phần tử kiểu, lưu trữ nhớ

• Các phần tử mảng có tên (là tên mảng) phân biệt với số cho biết vị trí mảng

• Ví dụ:

– Bảng điểm sinh viên – Vector

– Ma trận

(5)

• Khai báo mảng chiều:

kiểu_dữ_liệu tên_mảng [kích_thước_mảng];

• Trong đó

– kiểu_dữ_liệu: kiểu liệu phần tử mảng

– tên_mảng: tên mảng

– kích_thước_mảng: số phần tử mảng

• Ví dụ

(6)

• Cấp phát nhớ

– Các phần tử mảng cấp phát ô nhớ nhớ

– Biến mảng lưu trữ địa ô nhớ vùng nhớ cấp phát

• Ngơn ngữ C đánh số phần tử mảng 0

– Phần tử thứ i mang_nguyen xác

định mang_nguyen[i-1]

6

(7)

• Mảng mảng nhiều chiều: Mỗi phần tử mảng mảng

• Ví dụ

– int a[6][5] ;

mảng a gồm phần tử

mỗi phần tử mảng gồm số nguyên int – int b[3][4][5]; // mảng b gồm phần tử,

(8)

• Khai báo biến mảng

kiểu_dữ_liệu tên_mảng[size1][size2]…[sizek];

Trong

• sizei kích thước chiều thứ i mảng

(9)

• Sử dụng mảng

– Truy cập vào phần tử thông qua tên mảng số phần tử mảng

tên_mảng[chỉ_số_phần_tử]

– Chú ý: số

• Ví dụ

– int a[4];

(10)

• Ví dụ (tiếp)

– int b[3][4];

– phần tử mảng: b[0] mảng chiều

– phần tử mảng b[0]: b[0][0]

– b[i][j]: phần tử thứ j+1 b[i], b[i] phần tử thứ i+1 b

(11)

a Nhập liệu cho mảng

• Khởi tạo giá trị cho mảng khai báo

– int a[4] = {1,4,6,2};

– int b[2][3]={ {1,2,3}, {4,5,6} }:

– Số lượng giá trị khởi tạo không lớn số lượng phần tử mảng

(12)

a Nhập liệu cho mảng

– Có thể xác định kích thước mảng thông qua số giá trị khởi tạo để trống kích thước mảng

– int array1 [8] = {2, 4, 6, 8, 10, 12, 14, 16}; – int array2 [] = {2, 4, 6, 8, 10, 12, 14, 16};

(13)

a Nhập liệu cho mảng

• Nhập liệu từ bàn phím hàm scanf

– int a[10];

– Nhập liệu cho a[1]: scanf(“%d”, & a[1]); – Nhập liệu cho toàn phần tử mảng a

=> Sử dụng vịng lặp for

• Lưu ý

(14)

#define MONTHS 12 int main(){

int rainfall[MONTHS], i;

for ( i=0; i < MONTHS; i++ ){

printf(“Nhap vao phan tu thu

%d: “, i+1);

scanf("%d", &rainfall[i] ); }

getch(); return 0; }

(15)

a Nhập liệu cho mảng • Lưu ý

– Nếu số phần tử mảng nhập từ bàn phím biết trước số phần tử tối đa tối đa => khai báo mảng với kích thước tối đa sử dụng biến lưu số phần tử thực mảng – Ví dụ: Khai báo mảng số nguyên a có tối đa

(16)

#include<conio.h> main(){

int a[100]; int n, i; do{

printf(“\n Cho biet so phan

tu cua mang: “); scanf(“%d”,&n);

}while (n>100||n<1);

(17)

printf(“a[%d] = ", i);

scanf("%d",&a[i]); }

(18)

b Xuất liệu mảng

– Dùng hàm printf()

– Để hiển thị tất phần tử: dùng vịng for

• Ví dụ

– Hiển thị phần tử

– Hiển thị tất phần tử, phần tử dòng

– Hiển thị tất phần tử dịng, cách vị trí

– Hiển thị k phần tử dòng

(19)

#define MONTHS 12 int main(){

int rainfall[MONTHS], i;

for ( i=0; i < MONTHS; i++ ){

printf(“Nhap vao phan tu thu

%d: “, i+1);

scanf("%d", &rainfall[i] ); }

for ( i=0; i < MONTHS; i++ )

printf( "%2d ” , rainfall[i]);

(20)

c Tìm giá trị lớn nhất, nhỏ nhất • Tìm giá trị lớn nhất

– Giả sử phần tử phần tử

– Lần lượt so sánh với phần tử lại – Nếu lớn => so sánh tiếp

– Nếu nhỏ => coi phần tử phần tử lớn tiếp tục so sánh

• Tìm giá trị nhỏ nhất: tương tự

Ngày đăng: 09/03/2021, 05:51

Tài liệu cùng người dùng

Tài liệu liên quan