1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Nhập môn Lập trình: Chương 8

28 30 0

Đ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

Định dạng
Số trang 28
Dung lượng 0,95 MB

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

Nội dung

Bài giảng Nhập môn Lập trình: Chương 8 trình bày các nội dung chính sau: Tìm hiểu về mảng, các yếu tố xác định mảng, mảng 1 chiều, các tác vụ trên mảng 1 chiều, mảng 2 chiều, các tác vụ trên chuỗi ký tự. Mời các bạn cùng tham khảo để nắm nội dung chi tiết.

Trang 1

CHƯƠNG 6 – MẢNG

BÀI 9: TÌM HIỂU VỀ MẢNG – MẢNG 1 CHIỀU

Trang 2

CĐR buổi học

• Sau khi học xong buổi học, sinh viên có khả năng:

• Hiểu được khái niệm cơ bản mảng, mảng một chiều và cách tổ chức lưu trữ các phần tử trong mảng.

• Giải thích và sử dụng được một số thao tác cơ bản trên mảng một chiều.

• Viết chương trình sử dụng mảng một chiều

Trang 4

1 Giới thiệu

• Chương trình cần lưu trữ 3 số thực

 Khai báo 3 biến kiểu số thực : float a, b, c;

• Chương trình cần lưu trữ 10 hoặc 100 hoặc 1000 số thực

 Khai báo 10 hoặc 100 hoặc 1000 biến kiểu số thực?

 Không thực hiện được

 Cần có 1 kiểu dữ liệu mới để có thể lưu trữ dãy số thực này

và truy xuất dễ dàng  MẢNG

1.3 9.4 2.7 6.2 4.9 7.7 3.5 8.6 0.1 5.4

Trang 5

• Ngôn ngữ lập trình C luôn chỉ định một khối nhớ liên tục chomột biến kiểu mảng.

Ví dụ: dãy các số nguyên, dãy các ký tự…

Trang 6

Ma trận dòng > cột Dòng = 3 , cột =2

Trang 9

4.1 Khai báo mảng 1 chiều

• Cú pháp:

<Kiểu dữ liệu> <Tên biến mảng>[<Số phần tử mảng>];

Trong đó:

Trang 10

4.1 Khai báo mảng 1 chiều

• Phải xác định cụ thể <số phần tử mảng> ngay lúc khai báo,không được sử dụng biến hoặc hằng thường

• Nên sử dụng chỉ thị tiền xử lý #define để định nghĩa sốphần tử mảng

int n1 = 10; int a[n1];

const int n2 = 20; int b[n2];

#define n1 10

#define n2 20

int b[n1][n2]; // int b[10][20];

Trang 11

4.1 Khởi tạo mảng 1 chiều

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

Trang 12

4.2 Chỉ số mảng

• Chỉ số mảng (vị trí trong mảng) là một giá trị số nguyên int

• Chỉ số bắt đầu là 0 và không vƣợt quá số lƣợng phần tử tối

Kiểu dữ liệu của từng phần tử trong mảng: int

Số phần tử tối đa trong mảng: 5 phần tử

Trang 13

4.2 Truy xuất phần tử mảng

• Truy xuất phần tử mảng thông qua chỉ số

<Tên biến mảng>[<chỉ số mảng>]

• Các phần tử mảng là 1 dãy liên tục có chỉ số từ 0 đến <Số phần tử mảng>-1

int A[4]

Các truy xuất hợp lệ: A[0], A[1], A[2], A[3]

Các truy xuất không hợp lệ: A[-1], A[4], A[5]

Giá trị các phần tử mảng A[0]=29, A[1]=137, A[2]=50, A[3]=4

29 137 50 4

Trang 15

4.4 Truyền mảng cho hàm và lời gọi hàm

• Tham số kiểu mảng trong khai báo hàm giống nhƣ khai báo biến mảng

void SapXep(int A[100], int n);

Tên hàm: SapXep

Tham số: kiểu mảng số nguyên A và số lƣợng phần tử mảng n

Giá trị trả về: không có giá trị trả về void

int TinhTong(int A[100], int n);

Tên hàm: TinhTong

Tham số: kiểu mảng số nguyên A và số lƣợng phần tử mảng n

Giá trị trả về: kiểu số nguyên int

Trang 16

4.4 Truyền mảng cho hàm và lời gọi hàm

• Mảng có thể thay đổi nội dung sau khi thực hiện hàm

• Có thể bỏ số lƣợng phần tử hoặc sử dụng con trỏ

void NhapMang(int A[], int n);

void NhapMang(int *A, int n);

Trang 17

4.4 Truyền mảng cho hàm và lời gọi hàm

#include <stdio.h>

#include <conio.h>

void Nhap(int A[], int &N) // nhập mảng

void Xuat(int A[], int N) // xuất mảng

int TinhTong(int A[], int N) // tính tổng các phần tử trong mảng

Trang 19

5.1 Nhập mảng

void nhapmang(int A[1000])

{ int N;

printf(“Nhap so phan tu "); cout << “nhap N” ;

scanf(“%d”, &N); cin >> N ;

for(int i=0; i<N; i++)

Trang 20

Yêu cầu: Cho trước mảng a, số lượng phần tử n Hãy

xuất nội dung mảng a ra màn hình

Trang 21

Yêu cầu: Tìm xem phần tử x có nằm trong mảng a kích

thước n hay không? Nếu có thì xuất ra màn hình vị trí

đầu tiên tìm thấy được

Trang 22

5.3 Tìm kiếm 1 phần tử trong mảng

int Max(int a[], int n)

{

int Max=a[0];

for (int i= 0; i< n; i++)

if (Max < a[i]) // áp dụng kỹ thuật lính canh

Trang 23

5.4 Kiểm tra tính chất của mảng

Yêu cầu

Cho trước mảng a, số lượng phần tử n Mảng a có phải làmảng toàn các số nguyên tố hay không?

Trang 24

5.4 Kiểm tra tính chất của mảng

}

Trang 25

5.4 Kiểm tra tính chất của mảng

int KiemTra_YT1(int a[], int n)

Trang 26

{ int a[100],n,DC;

Trang 27

{ int a[100],n,TC;

Trang 28

Bài tập bắt buộc

1 Viết chương trình nhập vào một dãy tăng dần, không cần sắp xếp.

Nếu nhập sai yêu cầu sẽ phải nhập lại và xuất các số nguyên tố có trong mảng.

2 Kiểm tra mảng có đối xứng hay không?

3 Liệt kê các giá trị xuất hiện trong mảng đúng 1 lần.

4 Tìm vị trí của phần tử có giá trị âm lớn nhất trong mảng số nguyên.

5 Viết hàm xóa phần tử có chỉ số k trong mảng số nguyên a có n phần

tử Nếu giá trị của k<0 hoặc k>=n thì không xóa và hàm trả về giá trị 0 Ngược lại ta xóa giá trị phần tử a[k] và hàm trả về giá trị 1.

Ngày đăng: 23/09/2020, 14:15

TỪ KHÓA LIÊN QUAN