Các Phương Thức Và Thuộc Tính Của System.array.


Lập chương trình thực hiện các công việc sau:

1. Nhập số thực x từ bàn phím. Nếu dữ liệu nhập vào không đúng, chương trình yêu cầu nhập lại.

2. Tính giá trị hàm số sau rồi in kết quả ra màn hình:


2𝑥2 + 1 𝑛ế𝑢 𝑥 < 1

𝑓𝑥= 5 − 𝑒𝑥 𝑛ế𝑢 𝑥 > 1

4 𝑛ế𝑢 𝑥 = 1

Bài 2.4

Lập chương trình thực hiện các công việc sau:

1. Nhập số thực x từ bàn phím. Nếu dữ liệu nhập vào không đúng, chương trình yêu cầu nhập lại.

2. Tính giá trị hàm số sau rồi in kết quả ra màn hình:


𝑓𝑥= 𝑥 − 2 𝑛ế𝑢 𝑥 ≥ 2

2 + 𝑒𝑥 𝑛ế𝑢 𝑥 < 2


Bài 2.5

Lập chương trình thực hiện các công việc sau:

1. Nhập số nguyên dương n từ bàn phím. Nếu dữ liệu nhập vào không đúng, chương trình yêu cầu nhập lại.

2. Tính giá trị biểu thức sau rồi in kết quả ra màn hình:


Hướng dẫn thực hiện:


𝑆 = 1 +

1 1 1

+ + ⋯ +

2 3 𝑛

- Bước 1: Tạo ứng dụng Console đặt tên là Bai2_5.

- Bước 2: Trong phương thức Main() thêm đoạn mã lệnh thực hiện việc kiểm tra nhập n đúng theo yêu cầu.

Boolean kt;

float S; int n; do

{

Console.Write("Nhap n = ");

kt = int.TryParse(Console.ReadLine(), out n); if (!kt||n<=0) Console.WriteLine("Hay nhap so nguyen duong!");

} while (!kt||n<=0);

- Bước 3: Viết mã lệnh tính tổng và in kết quả:

S = 0;//Khởi tạo tổng ban đầu = 0 for (int i = 1; i <= n; i++)

S += (float)1 / i; Console.WriteLine("Tong S = {0}", S);


Kết quả chương trình:

Hình 2 23 Kết quả chương trình bài 2 5 Bài 2 6 Lập chương trình thực hiện các 1

Hình 2.23: Kết quả chương trình bài 2.5

Bài 2.6

Lập chương trình thực hiện các công việc sau:

1. Nhập số nguyên dương n từ bàn phím. Nếu dữ liệu nhập vào không đúng, chương trình yêu cầu nhập lại.

2. Tính giá trị biểu thức sau rồi in kết quả ra màn hình:

1 1 1

𝑆 = 1 + + + ⋯ +

2! 3! 𝑛 !

Gợi ý: Mã lệnh tính tổng:

float S = 0, M=1;

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

{

M *= i;

S += (float)1 / M;

}


Bài 2.7

Console.WriteLine("Tong S = {0}", S); Console.ReadLine();

Lập chương trình thực hiện các công việc sau:

1. Nhập số nguyên dương n và số thực x từ bàn phím. Nếu dữ liệu nhập vào không đúng, chương trình yêu cầu nhập lại.

2. Tính giá trị biểu thức sau rồi in kết quả ra màn hình:

S = 1- x + x2 + …+ (-1)n xn


Bài 2.8

Lập chương trình thực hiện các công việc sau:

1. Nhập số nguyên dương n từ bàn phím. Nếu dữ liệu nhập vào không đúng, chương trình yêu cầu nhập lại.

2. Tính giá trị biểu thức sau rồi in kết quả ra màn hình:

S= 1- 2 + 4 – 6 +…+(-1)n 2n

Bài 2.9


Lập chương trình thực hiện các công việc sau:

1. Nhập hai số nguyên dương m, n từ bàn phím. Nếu dữ liệu nhập vào không đúng, chương trình yêu cầu nhập lại.

2. Hiển thị ước chung lớn nhất và bội số chung lớn nhất của hai số m và n.

3. Tính tổng các chữ số của n.

Gợi ý

- Mã lệnh tìm ước chung lớn nhất của hai số m, n

int du;

do

{

du = n % m; n = m;

m = du;

} while (du != 0); Console.WriteLine(‚UCLN {0}‛,n);

- Mã lệnh tính tổng các chữ số của n

int tong = 0; while(n!=0)

{

du = n % 10; n = n/10;

tong+=du;

}


Bài 2.10

Console.WriteLine(‚Tong cac chu so {0}‛,n);

Lập chương trình thực hiện in các số từ 0 đến 99 ra màn hình theo cách sau:


0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

.................

90

91

92

93

94

95

96

97

98

99

Bài 2.11

Có thể bạn quan tâm!

Xem toàn bộ 212 trang tài liệu này.

Lập chương trình thực hiện nhập số nguyên dương n và in ra màn hình giá trị biểu thức:

S 1 1 1 .. (1)n1 1


Bài 2.12

1! 2! 3! n!

Lập chương trình thực hiện nhập số nguyên dương n và thực hiện các công việc sau:


- In ra màn hình những số nguyên tố nhỏ hơn n.

- In ra màn hình những số hoàn hảo nhỏ hơn n.( số hoàn hảo là số bằng tổng các ước số của nó mà không kể chính nó)


CHƯƠNG 3: MỘT SỐ CẤU TRÚC DỮ LIỆU

3.1. Mảng

Mảng là một tập hợp có thứ tự của những đối tượng, tất cả các đối tượng này có cùng một kiểu dữ liệu. Mảng trong ngôn ngữ C# có một vài sự khác biệt so với mảng trong ngôn ngữ C++ và một số ngôn ngữ khác, bởi vì chúng là những đối tượng, do đó mảng sẽ có các phương thức và thuộc tính.

Mảng trong ngôn ngữ C# kết hợp cú pháp khai báo mảng theo kiểu ngôn ngữ C và kết hợp với định nghĩa lớp do đó thể hiện của mảng có thể truy cập những phương thức và thuộc tính của lớp System.Array.

Một số các thuộc tính và phương thức của lớp System.Array


Phương thức

Mô tả

BinarySearch

Phương thức tĩnh tìm kiếm một mảng một chiều đã

sắp thứ tự.

Clear

Phương thức tĩnh thiết lập các thành phần của mảng

về 0 hay null.

Copy

Phương thức tĩnh đã nạp chồng thực hiện sao chép

một vùng của mảng vào mảng khác.

CreateInstance

Phương thức tĩnh đã nạp chồng tạo một thể hiện

mới cho mảng



IndexOf

Phương thức tĩnh thực hiện tìm kiếm phần tử nào đó

có trong mảng hay không và trả về chỉ mục của phần tử đầu tiên bằng với phần tử đó nếu tìm thấy

LastIndexOf

Phương thức tĩnh thực hiện tìm kiếm phần tử nào đó có trong mảng hay không và trả về chỉ mục của

phần tử cuối cùng bằng với phần tử đó nếu tìm thấy

Reverse

Phương thức tĩnh đảo thứ tự của các phần tử trong

mảng một chiều

Sort

Phương thức tĩnh sắp xếp các phần tử trong mảng

một chiều

IsFixedSize

Thuộc tính thể hiện mảng có kích thước cố định hay

không.

IsReadOnly

Thuộc tính thể hiện mảng chỉ đọc hay không

Length

Thuộc tính xác định chiều dài của mảng

Rank

Thuộc tính xác định số chiều của mảng

GetLength

Phương thức trả về kích thước của một chiều cố

định trong mảng

GetLowerBound

Phương thức trả về cận dưới của chiều xác định

trong mảng

GetUpperBound

Phương thức trả về cận trên của chiều xác định

trong mảng

Bảng 3.1: Các phương thức và thuộc tính của System.Array.

3.1.1. Mảng một chiều

Mảng một chiều là dãy hữu hạn các phần tử có cùng kiểu dữ liệu. Các phần tử trong mảng có cùng chung một tên và phân biệt nhau bởi một chỉ số.

Khai báo mảng

Khai báo mảng một chiều trong C# với cú pháp sau:

<kiểu dữ liệu>[] <tên mảng>

Ví dụ có khai báo như sau:

int[] mang_a;

Kiểu dữ liệu là kiểu của các thành phần bên trong mảng. Trong ví dụ bên trênmang_ađược khai báo là mảng số nguyên.

Ngoài ra có thể tạo thể hiện của mảng bằng cách sử dụng từ khóa new như sau:


mang_a = new int[6];

Khai báo này sẽ thiết lập bên trong bộ nhớ một mảng chứa sáu số nguyên. Đối tượng mang_alà một mảng, thành phần của mảng là sáu số nguyên. Mảng trong ngôn ngữ C# là kiểu dữ liệu tham chiếu, được tạo ra trên heap.

Giá trị mặc định

Khi tạo một mảng có kiểu dữ liệu giá trị, mỗi thành phần sẽ chứa giá trị mặc định của kiểu dữ liệu. Với khai báo:

mang_a = new int[5];

sẽ tạo ra một mảng năm số nguyên và mỗi thành phần được thiết lập giá trị mặc định là 0, đây cũng là giá trị mặc định của số nguyên.

Không giống với mảng kiểu dữ liệu giá trị, những kiểu tham chiếu trong một mảng không được khởi tạo giá trị mặc định. Thay vào đó, chúng sẽ được khởi tạo giá trị null. Nếu cố truy cập đến một thành phần trong mảng kiểu dữ liệu tham chiếu trước khi chúng được khởi tạo giá trị xác định, sẽ sinh ra một ngoại lệ.

Giả sử khai báo một mảng các đối tượng Button với cú pháp sau:

Button[] mangNut;

và tạo thể hiện của mảng như sau:

mangNut = new Button[3];

Không giống với ví dụ mảng số nguyên trước, câu lệnh này không tạo ra một mảng với những tham chiếu đến ba đối tượng Button. Thay vào đó việc này sẽ tạo ra một mảng mangNut với ba tham chiếu null. Để sử dụng mảng này, đầu tiên phải tạo và gán đối tượng Button cho từng thành phần tham chiếu trong mảng.

Truy cập các thành phần trong mảng

Để truy cập vào thành phần trong mảng có thể sử dụng toán tử chỉ mục ([]). Trong mảng, chỉ mục của thành phần đầu tiên luôn luôn là 0. Như ví dụ trước thành phần đầu tiên là mang_a[0].

Mảng là đối tượng và do đó nó có những thuộc tính. Một trong những thuộc tính hay sử dụng là Length, thuộc tính này cho biết số phần tử có trong một mảng. Một mảng được đánh chỉ mục từ 0 đến Length –1. Do đó nếu có năm thành phần trong mảng thì các chỉ mục là: 0, 1, 2, 3, 4.

Ví dụ 3.1: Lập chương trình thực hiện các công việc sau:

- Nhập một dãy số gồm n số nguyên từ bàn phím (n là một số nguyên dương nhập từ bàn phím);

- Hiển thị lại dãy số vừa nhập;

- Tính và hiển thị tổng các số có trong dãy;

- Tính và hiển thị số lớn nhất có trong dãy;


- Sắp xếp và hiển thị dãy số theo chiều tăng dần;

namespace Vidu3_1{ class Program

{

static void Main(string[] args)

{

int[] a; int n; bool kt; do

{

Console.Write("Nhap kich thuoc mang n = "); kt = int.TryParse(Console.ReadLine(), out n);

if (!kt || n <= 0) Console.WriteLine("Nhap n nguyen duong!");

}

while (!kt || n <= 0); a = new int[n];

// Nhập mảng

Console.WriteLine("Nhap gia tri cac phan tu trong mang:"); for (int i = 0; i < n; i++)

{

Console.Write("a[{0}] = ", i);

a[i] = int.Parse(Console.ReadLine());

}

//Hiển thị mảng Console.Write("Day so: ");

for (int i = 0; i < a.Length; i++)

{

Console.Write("{0} ", a[i]);

}

Console.WriteLine();

//Tìm số nhỏ nhất int min = a[0];

for (int i = 1; i < a.Length; i++) if (a[i] < min) min = a[i];

Console.WriteLine("So nho nhat {0}", min);

/*

* Có thể tìm min bằng cách sử dụng phương thức Min

* min = a.Min();

*/

//Tinh tổng các số int td = 0;

for (int i = 0; i < a.Length; i++) if (a[i] > 0) td += a[i];

Console.WriteLine("Tong cac so trong day {0}", td);

//Sắp xếp dãy tăng dần

Array.Sort(a);//Sử dụng phương thức Sort của lớp Array

//Hiển thị mảng

Console.Write("Day so sau khi sap xep: "); for (int i = 0; i < a.Length; i++)

{

Console.Write("{0} ", a[i]);

}

Console.WriteLine(); Console.ReadLine();

} }

}

Kết quả chương trình:

Hình 3 1 Kết quả chương trình ví dụ 3 1 Khởi tạo thành phần của mảng Khởi 2

Hình 3.1: Kết quả chương trình ví dụ 3.1.

Khởi tạo thành phần của mảng

Khởi tạo một mảng ngay lúc tạo thể hiện của mảng bằng cách đặt những giá trị bên trong dấu ngoặc ({}). C# cung cấp hai cú pháp để khởi tạo các thành phần của mảng, một cú pháp dài và một cú pháp ngắn:

int[] mang_a= new int[5] { 2, 4, 6, 8, 10};

int[] mang_a= { 2, 4, 6, 8, 10};

Câu lệnh lặp foreach

Câu lệnh lặp foreach khá mới với những người đã học ngôn ngữ C, từ khóa này được sử dụng trong ngôn ngữ Visual Basic. Câu lệnh foreach cho phép duyệt qua tất cả các phần tử trong một mảng hay trong một tập hợp.

Cú pháp sử dụng lệnh lặp foreach như sau:

foreach (<kiểu dữ liệu thành phần><tên truy cập> in <mảng/tập hợp>)

{

// thực hiện thông qua <tên truy cập> tương ứng với

// từng mục trong mảng hay tập hợp

}

Do vậy, có thể cải tiến ví dụ 3.1 trước bằng cách thay việc sử dụng vòng lặp for bằng vòng lặp foreach để truy cập đến từng thành phần trong mảng.

Ví dụ 3.2: Sử dụng foreach

..... Xem trang tiếp theo?
⇦ Trang trước - Trang tiếp theo ⇨

Ngày đăng: 03/07/2022