1. Trang chủ
  2. » Giáo án - Bài giảng

Slide MẢNG VÀ CHUỖI KÝ TỰ C++

43 1,3K 5
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Slide Mảng Và Chuỗi Ký Tự C++
Trường học Đại Học Công Nghệ Thông Tin - Học Viện Kỹ Thuật Mật Mã
Chuyên ngành Lập trình C++
Thể loại Bài giảng
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 43
Dung lượng 548 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Truy cập phần tử mảng Khai báo mảng với số phần tử xác định  Khai báo mảng với số phần tử không xác định Cú pháp: Kiểu Tên mảng[Số phần tử]; Trong đó: - Kiểu là kiểu dữ liệu của các

Trang 3

1 Khai báo

2 Truy cập phần tử mảng Khai báo mảng với số phần tử xác định

 Khai báo mảng với số phần tử không xác định

Cú pháp: Kiểu Tên mảng[Số phần tử];

Trong đó:

- Kiểu là kiểu dữ liệu của các phần tử mảng

- Tên mảng được đặt theo quy tắc đặt tên trong C++

- Số phần tử là một hằng số nguyên hoặc một biểu thức mà giá

trị của nó là một hằng số nguyên

Ví dụ: int a[10];

Lúc này, máy sẽ dành một dãy liên tiếp các ô nhớ, mỗi ô nhớ có

kích thước 2 bytes dùng để lưu một phần tử mảng và được đánh số

bắt đầu từ 0 đến 9 (Số phần tử - 1)

4.2 Mảng một chiều

a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]

Trang 4

 Khai báo mảng với số phần tử xác định

4.2 Mảng một chiều

 Khai báo mảng với số phần tử xác định

Ví dụ: float Sothuc[5]= {2.3, 1.5, 0.34, 5.04, 7.213};

 Khai báo mảng với số phần tử xác định

Có thể vừa khai báo vừa gán giá trị cho mảng theo cú pháp sau:

Kiểu Tên mảng[Số phần tử] = {Các giá trị cần gán };

Trang 5

 Khai báo mảng với số phần tử xác định

Ví dụ : Kiểm tra tính đúng/sai của các khai báo mảng sau:

?

4.2 Mảng một chiều

Trang 6

1 Khai báo

Kiểu khai báo này được sử dụng khi ta không biết chính xác số phần tử của mảng Và được áp dụng trong các

trường hợp:

• Vừa khai báo vừa gán giá trị cho mảng

• Khai báo mảng là tham số hình thức của hàm

4.2 Mảng một chiều

Trang 7

 Khai báo mảng với số phần tử không xác định

• Vừa khai báo vừa gán giá trị cho mảng

Cú pháp: Kiểu Tên mảng[] ={Các giá trị cần gán };

Ví dụ: int b[] = {2, 5, 3, -4, 7, 6};

char Ten[] = "Lap trinh";

char Kytu[] = {'H', 'E', 'L','L', 'O'};

4.2 Mảng một chiều

Trang 8

 Khai báo mảng với số phần tử không xác định

• Khai báo mảng là tham số hình thức của hàm

int Sapxep(int a[], int n);

{

thân hàm}

4.2 Mảng một chiều

Trang 9

 Khai báo mảng với số phần tử không xác định

Ví dụ: Xét 2 cách khai báo sau:

Trang 10

Mỗi được truy cập thông qua - Tên mảng

- Chỉ số đặt trong cặp dấu [ ]

Trang 11

2 Truy cập phần tử mảng

Với cách truy cập này, Tên mảng[Chỉ số] giống như một

biến có kiểu dữ liệu là kiểu dữ liệu của mảng

=> Thao tác nhập/xuất với từng phần tử mảng cũng giống

như với một biến

Ví dụ 1: Ta có khai báo mảng và gán giá trị như sau:

int a[3];

a[0] = 4; a[1] = 45; a[2] = 65;

cout<<a[0]<<a[1]<<a[2]<<endl;

4.2 Mảng một chiều

Trang 12

2 Truy cập phần tử mảng

Ví dụ 2: Khai báo mảng số thực gồm 10 phần tử Nhập các giá trị vào cho các phần tử mảng sau đó hiển thị ra màn hình các giá trị vừa nhập

Trang 13

2 Truy cập phần tử mảng

float a[10];

cout<<"Nhap gia tri vao: ";

for (int i=0;i<=9;i++)cout<<"a["<<i<<"]= "; cin>>a[i];

cout<<"Cac gia tri vua nhap la: "<<endl;

for (i=0;i<10;i++)cout<<a[i]<<"\t"; cout<<endl;

4.2 Mảng một chiều

Trang 14

Lưu ý:

- C++ là ngôn ngữ không hỗ trợ cơ chế kiểm tra biên; có

nghĩa là nếu truy cập vào phần tử mảng mà chỉ số mảng nhỏ

hơn 0 hoặc lớn hơn so_phan_tu – 1 thì chương trình vẫn

Trang 15

Bài tập 1: Khai báo mảng số nguyên gồm 20 phần tử Nhập giá trị vào cho các phần tử mảng sau đó in ra các giá trị vừa nhập.

Bài tập 2: Viết chương trình nhập giá trị vào cho các phần tử mảng số thực gồm n phần tử (với n nguyên dương được nhập vào từ bàn phím) Sau đó, tính và in ra tổng giá trị của các

phần tử mảng

4.2 Mảng một chiều

Trang 16

1 Khái niệm

Mảng hai chiều là mảng trong đó kiểu phần tử của mảng là kiểu mảng

2 Khai báo

- Khai báo mảng với số phần tử xác định

- Khai báo mảng với số phần tử không xác định

4.3 Mảng hai chiều

Trang 17

- Khai báo mảng với số phần tử xác định

Số_ptử_chiều_1, Số_ptử_chiều_2: là hằng số nguyên hoặc

biểu thức mà kết quả trả về là hằng số nguyên

4.3 Mảng hai chiều

Trang 18

- Khai báo mảng với số phần tử xác định

Ví dụ: Ta có khai báo mảng 2 chiều gồm 3 hàng, 4 cột lưu trữ các số nguyên như sau:

Trang 19

- Khai báo mảng với số phần tử xác định

Ta có thể vừa khai báo vừa gán giá trị cho phần tử mảng

Trang 20

- Khai báo mảng với số phần tử không xác định

Tuy khai báo mảng với số phần tử không xác định nhưng vẫn phải chỉ ra số phần tử của chiều thứ 2

Cách khai báo này được áp dụng trong hai trường hợp:

+ Vừa khai báo vừa gán giá trị cho mảng+ Khai báo mảng là tham số hình thức của hàm

4.3 Mảng hai chiều

Trang 21

- Khai báo mảng với số phần tử không xác định

+ Vừa khai báo vừa gán giá trị cho mảng

Trang 22

- Khai báo mảng với số phần tử không xác định

+ Khai báo mảng là tham số hình thức của hàm

Cú pháp:

Kiểu_dl Tên_hàm(kiểu_dl Tên_mảng[][số_pt_chiều2],…);

Ví dụ: Ta có khai báo hàm tính tổng các phần tử của mảng:

int Tong(int A[][10], int m, int n);

4.3 Mảng hai chiều

Trang 24

Bài tập 3: Viết chương trình khai báo và gán giá trị cho

mảng 2 chiều gồm 2 hàng, 3 cột các số thực Sau đó, hiển thị

ra màn hình theo dạng ma trận

Bài tập 4: Viết chương trình nhập các giá trị vào cho ma trận

A gồm m hàng, n cột Với m, n nguyên dương được nhập

vào từ bàn phím Sau đó hiển thị mảng ra màn hình theo

dạng ma trận

4.3 Mảng hai chiều

Trang 26

2 Khai báo

Cú pháp: char Tên_chuỗi[số_phần_tử];

char Tên_chuỗi[số_phần_tử] = xâu ký tự;

char Tên_chuỗi[] = xâu ký tự;

Trong đó:

Số_phần_tử: Là số ký tự của chuỗi ký tự Lưu ý cần khai

báo thừa một ký tự để chứa ký tự kết thúc xâu

Xâu ký tự: Được đặt trong cặp dấu nháy kép " "

4.4 Chuỗi ký tự

Trang 27

Ví dụ: Xét đoạn khai báo sau:

char xau1[20] = "lap trinh C++";

char xau2[20], xau3[20];

xau2 = "lap trinh C++";

xau3 = xau1;

cout<<xau1<<xau2<<xau3<<endl;

4.4 Chuỗi ký tự

Trang 29

Hoạt động của cin>>:

- Toán tử >> sẽ bỏ qua các ký tự trống như: dấu space, enter

- Đọc các ký tự vào thành một chuỗi và dừng lại khi gặp ký

tự trống Phần còn lại chờ trong luồng vào cin

4.4 Chuỗi ký tự

Trang 31

Do đó, để nhập được dữ liệu cho biến tiếp theo ta cần xóa dữ liệu còn lưu trong cin bằng phương thức ignore.

Cú pháp: cin.ignore(n, ‘ch’);

4.4 Chuỗi ký tự

Trang 33

Để nhận được đầy đủ chuỗi, ta sử dụng hàm gets() để nhập.

Trang 34

Ngoài ra chuỗi còn được khai báo bằng từ khóa string

Trang 35

3 Một số hàm xử lý chuỗi ký tự:

Các hàm xử lý chuỗi được chứa trong tệp tiêu đề string.h, do

đó cần khai báo tệp tiêu đề trước khi sử dụng hàm

- Các hàm sao chép dữ liệu: strcpy(), strncpy()

- Các ghép xâu: strcat(), strncat()

- Các hàm so sánh xâu: strcmp(), strncmp(), stricmp()

- Các hàm chuyển đổi ký tự (HOA <-> thường): strupr(),

strlwr()

4.4 Chuỗi ký tự

Trang 36

Cú pháp: strcpy(chuỗi đích, chuỗi nguồn)

strncpy(chuỗi đích, chuỗi nguồn, n)

Ví dụ: xét đoạn code và cho biết kết quả

char sv1[20], sv2[20]="Lap trinh C++", sv3[20];

Trang 37

Cú pháp: strcat(chuỗi đích, chuỗi nguồn)

strncat(chuỗi đích, chuỗi nguồn, n)

Ví dụ: xét đoạn code và cho biết kết quả

char sv1[20], sv2[20]="Lap trinh C++", sv3[20];

Trang 38

1 Viết chương trình nhập vào một mảng 1 chiều, sau đó tính và in ra tổng:

- Giá trị của tất cả các phần tử mảng

- Các phần tử mảng có chỉ số chẵn (lẻ)

- Các phần tử mảng có giá trị chẵn (lẻ)

- Các phần tử mảng có giá trị âm (dương)

- Các phần tử mảng có giá trị chia hết cho 3.

2 Viết chương trình nhập vào một mảng 1 chiều, sau đó in ra theo

thứ tự ngược lại giá trị các phần tử của mảng đó.

3 Viết chương trình nhập vào một mảng 1 chiều, sau đó sắp xếp

mảng theo thứ tự tăng dần.

4 Viết chương trình nhập vào một mảng 1 chiều, kiểm tra xem mảng

đó có đối xứng hay không?

BÀI THỰC HÀNH (1/6)

Trang 39

5 Viết chương trình nhập vào một dãy các số nguyên, sau đó

nhập vào một số m và in ra tất cả các phần tử có giá trị lớn

hơn m cùng với chỉ số tương ứng.

6 Viết chương trình tìm Max và Min trong một mảng 1 chiều

gồm 20 phần tử nguyên.

7 Viết chương trình nhập vào một mảng 1 chiều gồm 20 phần

tử Đếm xem có bao nhiêu phần tử của mảng có giá trị bằng m (với m được nhập vào từ bàn phím).

8 Cho dãy đã được sắp xếp tăng dần Chèn thêm vào dãy phần

tử có giá trị m sao cho dãy vẫn sắp xếp tăng dần.

9 Cho 2 mảng A, B có các phần tử đều đã được sắp xếp tăng

(giảm) dần Viết chương trình trộn 2 mảng trên để thu được

mảng thứ 3 mà vẫn đảm bảo tính tăng (giảm) dần của mảng.

BÀI THỰC HÀNH (2/6)

Trang 40

10 Viết chương trình nhập vào và hiển thị ra màn hình giá trị

vừa nhập của một ma trận có kích thước m x n.

11 Viết chương nhập vào hai ma trận A, B có m hàng, n cột

Tính và xuất ra màn hình ma trận tổng của 2 ma trận trên

12 Viết chương nhập vào hai ma trận A, B có m hàng, n cột

Tính và xuất ra màn hình ma trận tích của 2 ma trận trên

13 Viết chương trình nhập vào ma trận A Sau đó, tính và hiển thị lên màn hình ma trận chuyển vị của A.

14 Viết chương trình nhập giá trị vào cho ma trận A gồm m

hàng, n cột Sau đó, hiển thị ra màn hình ma trận đối xứng

của nó.

BÀI THỰC HÀNH (3/6)

Trang 41

15 Cho một ma trận nguyên kích thước m x n Tính và hiển thị

ra màn hình:

- Tổng tất cả các phần tử của ma trận

- Tổng tất cả các phần tử có giá trị dương (hoặc âm) của ma trận

- Tổng tất cả các phần tử có giá trị chẵn (hoặc lẻ) của ma trận

- Tổng tất cả các phần tử có chỉ số hàng (hoặc cột) chẵn (hoặc

lẻ) của ma trận

- Tổng tất cả các phần tử chia hết cho một số nguyên x khác

không bất kỳ được nhập vào từ bàn phím.

BÀI THỰC HÀNH (4/6)

Trang 42

16 Cho ma trận thực kích thước m x n Tìm và hiển thị lên màn

hình:

- Giá trị lớn nhất (hoặc nhỏ nhất) kèm chỉ số của ma trận

- Giá trị lớn nhất (hoặc nhỏ nhất) kèm chỉ số theo từng hàng (hoặc cột) của ma trận.

- Giá trị lớn nhất (hoặc nhỏ nhất) kèm chỉ số của đường chéo chính (hoặc đường chéo phụ) của ma trận.

- Số lần xuất hiện giá trị x (x bất kỳ được nhập vào từ bàn phím) có trong ma trận.

17 Viết chương trình tìm và xuất ra màn hình chỉ số hàng và cột

của phần tử âm đầu tiên xuất hiện trong ma trận.

18 Viết chương trình nhập vào một xâu ký tự và in ra xâu nghich đảo của nó.

BÀI THỰC HÀNH (5/6)

Trang 43

19 Viết chương trình nhập vào một xâu ký tự, sau đó đếm và in ra số lần xuất hiện ký tự ch trong xâu vừa nhập (với ch là ký tự bất kỳ

22 Viết chương trình nhập vào một xâu ký tự thường, sau đó chuyển

các ký tự thường thành các ký tự hoa rồi in kết quả ra màn hình.

23 Viết chương trình đếm số từ trong một xâu ký tự

24 Viết chương trình kiểm tra ‘‘hello’’ có trong xâu s hay không ?

(không phân biệt chữ hoa và chữ thường)

25 Viết chương trình sắp xếp một mảng xâu họ và tên theo thứ tự từ

điển của tên

BÀI THỰC HÀNH (6/6)

Ngày đăng: 16/04/2014, 13:56

TỪ KHÓA LIÊN QUAN