You are on page 1of 26

Conceive Design Implement Operate

NHẬP MÔN LẬP TRÌNH


BÀI 6.1

THỰC HỌC – THỰC NGHIỆP

http://www.poly.edu.vn
MỤC TIÊU

 Hiểu mảng là gì
 Biết cách tạo mảng
 Biết cách nhập dữ liệu vào mảng
 Biết cách xuất dữ liệu trong mảng
NỘI DUNG

 Điểm danh
 Review bài online
 Thảo luận tình huống trích từ bài online
hoặc hướng dẫn thực hiện lab
 Thực hiện các tình huống/bài lab
Hướng dẫn thực hiện assignment
 Hướng dẫn học bài online tiếp theo
ĐIỂM DANH
KHỞI ĐỘNG
AI NHANH HƠN?

 Hãy tìm ra điểm bất hợp lý trong bức ảnh này


AI NHANH HƠN?

 Hãy tìm ra điểm bất hợp lý trong bức ảnh này


AI NHANH HƠN?

 Hãy tìm ra điểm bất hợp lý trong bức ảnh này


AI NHANH HƠN?

 Hãy tìm ra điểm bất hợp lý trong bức ảnh này


REVIEW BÀI ONLINE
GIỚI THIỆU MẢNG

 Mảng là tập hợp các phần tử cùng


kiểu.
 Mảng có số lượng phần tử cố định
và được cấp phát vùng nhớ liên tục.
 Truy xuất các phần tử mảng bằng
chỉ số, bắt đầu là 0
 Ví dụ:
 int a[10] = {5,8,22,1,7,6,11,25,33,9};

11
GIỚI THIỆU MẢNG

 Lợi ích của mảng


 Sử dụng mảng để nắm giữ nhiều giá trị thay vì phải khai
báo nhiều biến.
 Truy xuất nhanh
 Dễ dàng đọc dữ liệu từ các phần tử và sắp xếp

 Bất lợi của mảng


 Số phần tử cố định nên không thể bổ sung hoặc bớt
 Cấp phát liên tục nên cần phải có vùng bộ nhớ liên tục đủ
lớn để cấp phát.
12
PHÂN LOẠI MẢNG

 Mảng một chiều


 Mảng nhiều chiều
2 chiều 1 chiều

13
KIỂU DỮ LIỆU & BIẾN

 Là một kiểu dữ liệu có cấu trúc do người lập trình định nghĩa.
 Biểu diễn một dãy các biến có cùng kiểu. Ví dụ: dãy các số nguyên,
dãy các ký tự…
 Kích thước được xác định ngay khi khai báo và không bao giờ thay
đổi.
 Ngôn ngữ lập trình C luôn chỉ định một khối nhớ liên tục cho một
biến kiểu mảng.

14
KHỞI TẠO GIÁ TRỊ

 Gồm các cách sau


 Khởi tạo giá trị cho mọi phần tử của mảng
int a[4] = {2912, 1706, 1506, 1904};
0 1 2 3

a 2912 1706 1506 1904

int a[4] = {2912, 1706};

0 1 2 3
 Khởi
a tạo
2912giá trị
1706cho một
0 số phần
0 tử đầu mảng

15
KHỞI TẠO GIÁ TRỊ(TT)

 Khởi tạo giá trị 0 cho mọi phần tử của mảng


int a[4] = {0};
0 1 2 3

a 0 0 0 0

int a[] = {2912, 1706, 1506, 1904};


 Tự động0 xác định
1 số 2lượng 3phần tử
a 2912 1706 1506 1904

16
TRUY XUẤT MẢNG

 Thông qua chỉ số


<tên biến mảng>[<gt cs1>][<gt cs2>]…[<gt csn>]

 Ví dụ
 Cho mảng như sau
0 1 2 3
int a[4];

 Các truy xuất


 Hợp lệ: a[0], a[1], a[2], a[3]
 Không hợp lệ: a[-1], a[4], a[5], …

17
DUYỆT MẢNG 1 CHIỀU

 Có thể sử dụng bất kỳ vòng lặp nào để duyệt mảng. Tuy nhiên
vòng lặp thường được sử dụng để duyệt mảng là for.
int i = 0; int i = 0;
int marks[5]; // khai báo mảng
int marks[5]={20, 30, 40, 50, 60};
marks[0] = 80; // khởi tạo mảng
marks[1] = 60; //duyệt mảng
marks[2] = 70;
for (i = 0; i < 5; i++) {
marks[3] = 85;
marks[4] = 75; printf("%d \n", marks[i]);
//duyệt mảng }
for (i = 0; i < 5; i++) {
printf("%d \n", marks[i]);
}

18
HOẠT ĐỘNG NHÓM
HOẠT ĐỘNG NHÓM

 Hãy tìm hiểu và xây dựng một hàm để chuyển số


thập phân sang số nhị phân
 Bước 1: Chia số đó cho 2 với toán tử % và lưu phần dư
vào trong mảng
 Bước 2: Chia số cho 2 với toán tử /
 Bước 3: Lặp lại bước 2 tới khi số là lớn hơn 0
THỰC HÀNH LAB 6
HƯỚNG DẪN ASSIGMENT
HƯỚNG DẪN HỌC BÀI ONLINE
TIẾP THEO
NỘI DUNG BÀI ONLINE TIẾP THEO

 Lệnh switch-case cũng tương tự như lệnh if-else-


if mà chúng ta đã được học ở bài trước. Nghĩa là
nó có nhiều điều kiện, chương trình chúng ta
duyệt từng điều khiện từ trên xuống dưới, nếu
thỏa điều kiện nào thì đoạn code bên trong điều
kiện đó sẽ được thực thi.
 Lệnh switch cũng giống cấu trúc if, nhưng nó
mềm dẻo hơn và linh động hơn nhiều so với sử
dụng if.
TÓM TẮT

 Biết cách vẽ lưu đồ thuật toán


 Biết cách sử dụng lệnh rẻ nhánh if-else

You might also like