MẢNG MỘT CHIỀU  | Đại học Ngoại Ngữ - Tin Học Thành Phố Hồ Chí Minh

MẢNG MỘT CHIỀU  | Đại học Ngoại Ngữ - Tin Học Thành Phố Hồ Chí Minh được sưu tầm và soạn thảo dưới dạng file PDF để gửi tới các bạn sinh viên cùng tham khảo, ôn tập đầy đủ kiến thức, chuẩn bị cho các buổi học thật tốt. Mời bạn đọc đón xem

BUỔI 06 MẢNG MỘT CHIỀU
Bài 1: ập mảng 1 chiềuNh
Định nghĩa các hàm sau đây, mỗi hàm là 1 chương trình C#:
1. static void NhapMang1( [] aint rr):
Trong Hàm Main(): y cầu người dùng nhập kích thước , mảng 1 chiềêu n khởi tạo u
ch ênứa các số nguy arr với kích thước n (Gợi ý: [] arr int = new int[n]; )
Trong Hàm NhapMang1 có tham số là mảng 1 chiều chứ các số nguyên đã (): a arr
được khởi tạo, yêu cầu người dùng nhập giá ị cho các phần tử củ mảng tr a a.
[] arrstatic void NhapMang1(int )
{
( rr.Length for int i = 0; i <= a -1 ; i++)
{
{i}Console.Write($"arr[ ] = ");
arr[i] = Convert.ToInt32(Console.ReadLine());
}
}
[] args)static void Main(string
{
Console.Write("Nhap n: ");
int n = Convert.ToInt32(Console.ReadLine());
[] arr int = new int[n];
NhapMang1(arr);
}
2. NhapMang2(static void out int[] arr):
Trong Hàm Main(): mảng 1 chiều ứa các số nguyên , chưa biết trướkhai báo ch arr c
kích thước (Gợi ý: [] a ; )int rr
Trong Hàm NhapMang2 : Hàm có tham số là mảng 1 chiều chứ() a các số nguyên arr
không cần ải ởi tạo trướcph kh , yêu cầu người dùng nhập kích thước , n khởi tạo
mảng arr với kích thước vừa nhập n, sau đó ập giá nh trị cho phẩn tử của các arr.
[] arrstatic void NhapMang2(out int )
{
Console.Write("Nhap n: ");
int n = Convert.ToInt32(Console.ReadLine());
arr = [n];new int
( rr.Length 1; i++)for int i = 0; i <= a -
{
{i}Console.Write($"arr[ ] = ");
arr[i] = Convert.ToInt32(Console.ReadLine());
}
}
[] args)static void Main(string
{
[] arrint ;
NhapMang2( arr);out
}
3. static int[] NhapMang3():
Trong Hàm Main(): mảng 1 chiều ứa các số nguyên , chưa biết trướkhai báo ch arr c
kích thước (Gợi ý: [] a ; )int rr
Trong Hàm NhapMang3 : yêu cầu người dùng nhập kích thước () n, khởi tạo một mảng
1 chiều chứ các số nguyêna arr với kích thước vừa nhập n, sau đó nhập giá cho tr
các a. phẩn tử của Hàm kết quả mả trả về ng arr sau khi đã nhập xong.
static int[] NhapMang3()
{
Console.Write("Nhap n: ");
int n = Convert.ToInt32(Console.ReadLine());
[] arr int = new int[n];
( rr.Length 1; i++)for int i = 0; i <= a -
{
{i}Console.Write($"arr[ ] = ");
arr[i] = Convert.ToInt32(Console.ReadLine());
}
arrreturn ;
}
[] args)static void Main(string
{
[] arr int = NhapMang3();
}
Nhận xét sự khác nhau của 3 hàm trên.
Bài 2: ất mảng 1 chiềuXu
Định nghĩa hàm XuatMang có tham số là một mảng 1 chiều chứa các số nguyên arr với kích thước n. In
các phần tử của mảng arr ra màn hình, mỗi phần tử cách nhau bởi một ký tự khoảng trắng, sau khi in
xong phần tử ối cùng thì xuống hàng.cu
Input
• Dòng đầu tiên chứa số nguyên n
• Dòng thứ hai chứa 𝑛 số nguyên
Output
• Dòng duy nhất ứa các số nguyên trong mảngch
Gợ ni ý: dùng 4 dòng code để nhập và mảng arr.
Console.Write("Nhap n: ");
int n = Convert.ToInt32(Console.ReadLine());
int int[] arr = new [n];
arr = Array.ConvertAll(Console.ReadLine().Trim().Split( ), Convert.ToInt32);' '
Bài 3: Tổng mảng
Định nghĩa hàm TinhTong tìm và trả về tổng giá trị các phần tử của một mảng số nguyên.
Input
• Dòng đầu tiên chứa số nguyên n
• Dòng thứ hai chứa 𝑛 số nguyên
Output
• Dòng duy nhất ứa giá trị tổng của các số nguyên trong mảngch
Bài 4: Tìm kiếm x
Định nghĩa hàm TimX tìm và trả về vị trí của phần tử có giá trị bằng x trong mảng số nguyên.
Nếu có nhiều phần tử có giá trị bằng x thì trả về vị trí đầu tiên tính từ đầu mảng;
Nếu không có phần tử nào có giá trị bằng x thì trả về -1.
Input
• Dòng đầu tiên chứa số nguyên n
• Dòng thứ hai chứa 𝑛 số nguyên
• Dòng thứ ba chứa số nguyên
x
Output
• Dòng duy nhất ứa giá trị tổng của các số nguyên trong mảngch
5i : Tìm kiếm max
Định nghĩa hàm TimMax tìm và trả về vị trí phần tử có giá trị lớn nhất trong một mảng một chiều chứa
các số ực. Nếu có nhiều phần tử có giá trị bằng giá trị lớn nhất thì trả về trong mảng.th vị trí cuối cùng
Input
• Dòng đầu tiên chứa số nguyên n
• Dòng thứ hai chứa 𝑛 số nguyên
Output
• Dòng duy nhất ứa giá trị tổng của các số nguyên trong mảngch
Bài 6 Đếm số nguyên dương:
Định nghĩa hàm Dem đếm và trả về số lượng phần tử có giá trị lớn hơn 0 trong một mảng một chiều
chứa các số nguyên.
Input
• Dòng đầu tiên chứa số nguyên n
• Dòng thứ hai chứa 𝑛 số nguyên
Output
• Dòng duy nhất ứa giá trị tổng của các số nguyên trong mảngch
Bài 7a: Bài toán Sắp xếp Interchange Sort (Sắp xếp trực tiếp ).
Cho số nguyên = ( 1, 2, … , ) ( ). Hãy định nghĩa các hàm sắp xếp dãy n 𝑎 𝑎 𝑎 𝑎𝑛 𝟏 𝒏 𝟓𝟎𝟎𝟎 a
tăng dần theo thuật toán Interchange Sort đã hướng dẫn trong lớp lý thuyết.
Input
• Dòng đầu tiên chứa số nguyên n
• Dòng thứ hai chứa 𝑛 số nguyên
Output
• Dòng duy nhất các số nguyên đã sắp xếp
Bài 7b: Bài toán Sắp xếp Bubble Sort (Sắp xế nổi bọt p ).
Cho số nguyên = ( 1, 2, … , ) ( ). Hãy định nghĩa các hàm sắp xếp dãy n 𝑎 𝑎 𝑎 𝑎𝑛 𝟏 𝒏 𝟓𝟎𝟎𝟎 a
tăng dần theo thuật toán Thuật toán sắp xếp nổi bọt (Bubble Sort) là thuật toán thực hiện Bubble Sort.
việc so sánh các cặp phần tử ền kề nhau và tráo đổi vị ị của nó cho đúng thứ tự mà chúng ta mong li tr
muốn. Trong thuật toán này:
Duyệt từ bên trái và so sánh các phần tử ền kề và hoán đổi vị li trí của cặp đó nếu không đúng thứ
tự.
Bằng cách này, phần tử lớn nhất được di chuyển đến vị trí bên phả cùng của mải ng.
Vòng lặp tiếp theo tìm ra số lớn thứ hai và đặt nó vào bên trái củ phần tử lớn nhất (vị a trí thứ hai
từ bên phải qua).
Quá trình này sau đó được tiếp tục cho đến khi dữ ệu của mảng ợc sắp xếp.li đư
Input
• Dòng đầu tiên chứa số nguyên n
• Dòng thứ hai chứa 𝑛 số nguyên
Output
• Dòng duy nhất các số nguyên đã sắp xếp
Bài 8:
Hiệu chỉnh thuật toán ở Bài 7a Interchange Sort (Sắp xếp trực tiếp) để ực hiện việc sắp xếp các phần th
tử trong đoạn [ , ] (0 ≤ ) theo thứ tự tăng dần.𝒌 𝒍 𝑘 𝑙 < 𝑛
Input
• Dòng đầu tiên chứa số nguyên n
• Dòng thứ hai chứa 𝑛 số nguyên
• Dòng thứ ba ứa số nguyên kch
• Dòng thứ tư ứa số nguyên lch
Output
• Dòng duy nhất các số nguyên đã sắp xếp
| 1/5

Preview text:

BUỔI 06 MẢNG MỘT CHIỀU Bài 1: N ậ h p mảng 1 chiều
Định nghĩa các hàm sau đây, mỗi hàm là 1 chương trình C#:
1. static void NhapMang1(int[] arr): •
Trong Hàm Main(): yêu cầu người dùng nhập kích thước n, khởi tạo mảng 1 chiều
chứa các số nguyên arr với kích thước n (Gợi ý: int[] arr = new int[n]; ) •
Trong Hàm NhapMang1(): có tham số là mảng 1 chiều chứa các số nguyên arr đã
được khởi tạo, yêu cầu người dùng nhập giá t ị
r cho các phần tử của mảng a.
static void NhapMang1(int[] arr) {
for (int i = 0; i <= arr.Length -1 ; i++) {
Console.Write($"arr[{i}] = ");
arr[i] = Convert.ToInt32(Console.ReadLine()); } }
static void Main(string[] args) { Console.Write("Nhap n: ");
int n = Convert.ToInt32(Console.ReadLine()); int[] arr = new int[n]; NhapMang1(arr); }
2. static void NhapMang2(out int[] arr): •
Trong Hàm Main(): khai báo mảng 1 chiều chứa các số nguyên ar ,
r chưa biết trước
kích thước (Gợi ý: int[] ar ; r ) • Trong Hàm NhapMang2( :
) Hàm có tham số là mảng 1 chiều chứa các số nguyên arr không cần p ả h i k ở
h i tạo trước, yêu cầu người dùng nhập kích thước n, khởi tạo
mảng arr với kích thước vừa nhập n, sau đó n ậ
h p giá trị cho các phẩn tử của arr.
static void NhapMang2(out int[] arr) { Console.Write("Nhap n: ");
int n = Convert.ToInt32(Console.ReadLine()); arr = new [ int n];
for (int i = 0; i <= arr.Length - 1; i++) {
Console.Write($"arr[{i}] = ");
arr[i] = Convert.ToInt32(Console.ReadLine()); } }
static void Main(string[] args) { int[] arr; NhapMang2( out arr); } 3. static int[] NhapMang3(): •
Trong Hàm Main(): khai báo mảng 1 chiều chứa các số nguyên ar ,
r chưa biết trước
kích thước (Gợi ý: int[] ar ; r ) •
Trong Hàm NhapMang3(): yêu cầu người dùng nhập kích thước n, khởi tạo một mảng
1 chiều chứa các số nguyên arr với kích thước vừa nhập n, sau đó nhập giá trị cho
các phẩn tử của a. Hàm c
ó kết quả trả về là mảng arr sau khi đã nhập xong. static int[] NhapMang3() { Console.Write("Nhap n: ");
int n = Convert.ToInt32(Console.ReadLine()); int[] arr = new int[n];
for (int i = 0; i <= arr.Length - 1; i++) {
Console.Write($"arr[{i}] = ");
arr[i] = Convert.ToInt32(Console.ReadLine()); } return arr; }
static void Main(string[] args) { int[] arr = NhapMang3(); }
Nhận xét sự khác nhau của 3 hàm trên. Bài 2: X ấ u t mảng 1 chiều
Định nghĩa hàm XuatMang có tham số là một mảng 1 chiều chứa các số nguyên arr với kích thước n. In
các phần tử của mảng arr ra màn hình, mỗi phần tử cách nhau bởi một ký tự khoảng trắng, sau khi in
xong phần tử cuối cùng thì xuống hàng. Input
• Dòng đầu tiên chứa số nguyên n
• Dòng thứ hai chứa 𝑛 số nguyên Output • Dòng duy nhất c ứ
h a các số nguyên trong mảng
Gợi ý: dùng 4 dòng code để nhập n và mảng arr. Console.Write("Nhap n: ");
int n = Convert.ToInt32(Console.ReadLine()); int[] arr = new int[n];
arr = Array.ConvertAll(Console.ReadLine().Trim().Split(' ), Conve ' rt.ToInt32); Bài 3: Tổng mảng
Định nghĩa hàm TinhTong tìm và trả về tổng giá trị các phần tử của một mảng số nguyên. Input
• Dòng đầu tiên chứa số nguyên n
• Dòng thứ hai chứa 𝑛 số nguyên Output • Dòng duy nhất c ứ
h a giá trị tổng của các số nguyên trong mảng Bài 4: Tìm kiếm x
Định nghĩa hàm TimX tìm và trả về vị trí của phần tử có giá trị bằng x trong mảng số nguyên. •
Nếu có nhiều phần tử có giá trị bằng x thì trả về vị trí đầu tiên tính từ đầu mảng; •
Nếu không có phần tử nào có giá trị bằng x thì trả về -1. Input
• Dòng đầu tiên chứa số nguyên n
• Dòng thứ hai chứa 𝑛 số nguyên
• Dòng thứ ba chứa số nguyên x Output • Dòng duy nhất c ứ
h a giá trị tổng của các số nguyên trong mảng Bài 5: Tìm kiếm max
Định nghĩa hàm TimMax tìm và trả về vị trí phần tử có giá trị lớn nhất trong một mảng một chiều chứa
các số thực. Nếu có nhiều phần tử có giá trị bằng giá trị lớn nhất thì trả về vị trí cuối cùng trong mảng. Input
• Dòng đầu tiên chứa số nguyên n
• Dòng thứ hai chứa 𝑛 số nguyên Output • Dòng duy nhất c ứ
h a giá trị tổng của các số nguyên trong mảng
Bài 6: Đếm số nguyên dương
Định nghĩa hàm Dem đếm và trả về số lượng phần tử có giá trị lớn hơn 0 trong một mảng một chiều chứa các số nguyên. Input
• Dòng đầu tiên chứa số nguyên n
• Dòng thứ hai chứa 𝑛 số nguyên Output • Dòng duy nhất c ứ
h a giá trị tổng của các số nguyên trong mảng
Bài 7a: Bài toán Sắp xếp Interchange Sort (Sắp xếp trực tiếp).
Cho n số nguyên 𝑎 = (𝑎1, 𝑎2, … , 𝑎 )
𝑛 (𝟏 ≤ 𝒏 ≤ 𝟓𝟎𝟎𝟎). Hãy định nghĩa các hàm sắp xếp dãy a
tăng dần theo thuật toán Interchange Sort đã hướng dẫn trong lớp lý thuyết. Input
• Dòng đầu tiên chứa số nguyên n
• Dòng thứ hai chứa 𝑛 số nguyên Output
• Dòng duy nhất các số nguyên đã sắp xếp
Bài 7b: Bài toán Sắp xếp Bubble Sort (Sắp xếp n ổi bọt).
Cho n số nguyên 𝑎 = (𝑎1, 𝑎2, … , 𝑎 )
𝑛 (𝟏 ≤ 𝒏 ≤ 𝟓𝟎𝟎𝟎). Hãy định nghĩa các hàm sắp xếp dãy a
tăng dần theo thuật toán Bubble Sort. Thuật toán sắp xếp nổi bọt (Bubble Sort) là thuật toán thực hiện
việc so sánh các cặp phần tử liền kề nhau và tráo đổi vị t ị
r của nó cho đúng thứ tự mà chúng ta mong
muốn. Trong thuật toán này: •
Duyệt từ bên trái và so sánh các phần tử liền kề và hoán đổi vị trí của cặp đó nếu không đúng thứ tự. •
Bằng cách này, phần tử lớn nhất được di chuyển đến vị trí bên phải c ùng của mảng. •
Vòng lặp tiếp theo tìm ra số lớn thứ hai và đặt nó vào bên trái của phần tử lớn nhất (vị trí thứ hai từ bên phải qua). •
Quá trình này sau đó được tiếp tục cho đến khi dữ liệu của mảng đ ợc ư sắp xếp. Input
• Dòng đầu tiên chứa số nguyên n
• Dòng thứ hai chứa 𝑛 số nguyên Output
• Dòng duy nhất các số nguyên đã sắp xếp Bài 8:
Hiệu chỉnh thuật toán ở Bài 7a Interchange Sort (Sắp xếp trực tiếp) để thực hiện việc sắp xếp các phần
tử trong đoạn [𝒌, 𝒍] (0 ≤ 𝑘 ≤ 𝑙 < 𝑛) theo thứ tự tăng dần. Input
• Dòng đầu tiên chứa số nguyên n
• Dòng thứ hai chứa 𝑛 số nguyên
• Dòng thứ ba chứa số nguyên k
• Dòng thứ tư chứa số nguyên l Output
• Dòng duy nhất các số nguyên đã sắp xếp