Bài thc hành 8
MNG MT CHIU
Sinh viên to project mang tên BTH8 ti đĩa D. Sau đó thực hin các bài tập dưới
đây, mi bài tập u lại với định dng tên BTH8_BT01.cpp, BTH8_BT02.cpp,
BTH8_BT13.cpp.
A. Bài tập cơ bản
1. Viết chương trình thực hin các công việc sau đây:
a) Khai báo mt mảng alpha lưu 50 phần t kiu double.
b) Gán giá tr ca 25 phn t đầu tiên bình phương ca ch s phn t, 25 phn
t còn li có giá trlập phương của ch s.
c) In các giá tr trong mng alpha ra màn hình, mi dòng gm 10 phn t.
2. Viết chương trình thực hin các công việc sau đây:
a) Định nghĩa hằng MAXSIZE là 100.
b) Khai báo mng values th lưu số phn t ti đa MAXSIZE, kiểu ca mi
phn t double.
c) Khai báo currentSize lưu s phn t hin có trong mng.
d) Nhp vào giá tr ca currentSize.
e) Nhp vào các giá tr trong mng values, s phn t đọc vào là currentSize.
f) In các phn t trong mng values trên mt dòng, cách nhau bi du phy.
3. Viết chương trình nhp vào mt mng s nguyên (tối đa 100 phn t), tìm in ra
phn t ln nht ca mng.
4. Viết chương trình nhập vào mt mng s nguyên (tối đa 100 phần t), tính in ra
tng và giá tr trung bình ca các phn t trong mng.
5. Viết chương trình nhp vào mt mng s nguyên (tối đa 100 phần t) và v trí ca
phn t cn xóa, xóa phn t ti v trí đã nhập và in ra mng sau khi xóa.
6. Viết chương trình gồm các hàm sau đây:
a) Nhp mt dãy s nguyên vào mng arr, s phn t nhp vào là arrSize:
void nhap(int arr[], int arrSize);
b) In dãy s nguyên trong arr, cách nhau bi du phy, arrSize s phn t ca
dãy:
void xuat(const int arr[], int arrSize);
c) Tìm mt giá tr x trong mng arr, tr v true tìm thấy, ngược li tr v false,
arrSize là s phn t ca mng:
bool tim(const int arr[], int arrSize, int x);
d) Đảo ngược các phn t trong mng arr, arrSize là s phn t ca mng:
void daonguoc(int arr[], int arrSize)
e) Xóa phn t ti mt v trí p trong mng arr, arrSize là s phn t ca mng:
void xoa(int arr[], int& arrSize, int p)
7. Viết hàm tr v v trí xut hiện đầu tiên ca phn t nh nht trong mng. m
nhn vào mng s nguyên s phn t ca mng. Viết chương trình kim tra
hàm.
8. Viết hàm đếm s ln xut hin ca mt phn t trong mt mng s nguyên. m
nhn vào ba tham s: mng a, s phn t n phn t x. Hàm tr v s ln xut
hin ca x trong mng a. Viết chương trình kiểm tra hàm.
B. Bài làm thêm
9. Các h s của đa thức a
n
x
n
+ a
n1
x
n1
+ ... + a
0
được lưu trong mảng a. Viết hàm
nhn vào mng a, bc của đa thức n, giá tr x và tr v giá tr của đa thc.
10. Viết chương trình in các s nguyên t t 2 đến n bng cách dùng sàng Eratosthenes
(sieve of Eratosthenes). Thut giải như sau:
c 1. To mng cha các s nguyên t 2..n.
c 2. Bắt đầu t s nguyên t đầu tiên p = 2.
ớc 3. Đánh du tt c bi s ca p không phi là s nguyên t (2p,3p,4p,...).
c 4. Tìm s kế tiếp lớn hơn p chưa b đánh dấu. Nếu không thì thut gii kết
thúc. Ngược lại đặt p là s này và quay lại bước 3.
Ví d dùng thut giải để m các s nguyên t đến n = 25:
11. Viết hàm sp xếp các phn t trong mng tăng dần.
12. Viết hàm xóa các phn t trùng nhau trong mng.
13. Cho mng gm các s nguyên giá tr trong khong t 1 đến k (k < 100). Viết
hàm in ra s ln xut hin ca mi phn t trong mng.

Preview text:

Bài thực hành 8 MẢNG MỘT CHIỀU
Sinh viên tạo project mang tên BTH8 tại ổ đĩa D. Sau đó thực hiện các bài tập dưới
đây, mỗi bài tập lưu lại với định dạng tên BTH8_BT01.cpp, BTH8_BT02.cpp, … BTH8_BT13.cpp.
A. Bài tập cơ bản
1. Viết chương trình thực hiện các công việc sau đây:
a) Khai báo một mảng alpha lưu 50 phần tử kiểu double.
b) Gán giá trị của 25 phần tử đầu tiên là bình phương của chỉ số phần tử, 25 phần
tử còn lại có giá trị là lập phương của chỉ số.
c) In các giá trị trong mảng alpha ra màn hình, mỗi dòng gồm 10 phần tử.
2. Viết chương trình thực hiện các công việc sau đây:
a) Định nghĩa hằng MAXSIZE là 100.
b) Khai báo mảng values có thể lưu số phần tử tối đa là MAXSIZE, kiểu của mỗi phần tử là double.
c) Khai báo currentSize lưu số phần tử hiện có trong mảng.
d) Nhập vào giá trị của currentSize.
e) Nhập vào các giá trị trong mảng values, số phần tử đọc vào là currentSize.
f) In các phần tử trong mảng values trên một dòng, cách nhau bởi dấu phẩy.
3. Viết chương trình nhập vào một mảng số nguyên (tối đa 100 phần tử), tìm và in ra
phần tử lớn nhất của mảng.
4. Viết chương trình nhập vào một mảng số nguyên (tối đa 100 phần tử), tính và in ra
tổng và giá trị trung bình của các phần tử trong mảng.
5. Viết chương trình nhập vào một mảng số nguyên (tối đa 100 phần tử) và vị trí của
phần tử cần xóa, xóa phần tử tại vị trí đã nhập và in ra mảng sau khi xóa.
6. Viết chương trình gồm các hàm sau đây:
a) Nhập một dãy số nguyên vào mảng arr, số phần tử nhập vào là arrSize:
void nhap(int arr[], int arrSize);
b) In dãy số nguyên trong arr, cách nhau bởi dấu phẩy, arrSize là số phần tử của dãy:
void xuat(const int arr[], int arrSize);
c) Tìm một giá trị x trong mảng arr, trả về true tìm thấy, ngược lại trả về false,
arrSize là số phần tử của mảng:
bool tim(const int arr[], int arrSize, int x);
d) Đảo ngược các phần tử trong mảng arr, arrSize là số phần tử của mảng:
void daonguoc(int arr[], int arrSize)
e) Xóa phần tử tại một vị trí p trong mảng arr, arrSize là số phần tử của mảng:
void xoa(int arr[], int& arrSize, int p)
7. Viết hàm trả về vị trí xuất hiện đầu tiên của phần tử nhỏ nhất trong mảng. Hàm
nhận vào mảng số nguyên và số phần tử của mảng. Viết chương trình kiểm tra hàm.
8. Viết hàm đếm số lần xuất hiện của một phần tử trong một mảng số nguyên. Hàm
nhận vào ba tham số: mảng a, số phần tử n và phần tử x. Hàm trả về số lần xuất
hiện của x trong mảng a. Viết chương trình kiểm tra hàm. B. Bài làm thêm 9.
Các hệ số của đa thức a được lưu trong mả
nxn + an−1xn−1 + ... + a0 ng a. Viết hàm
nhận vào mảng a, bậc của đa thức n, giá trị x và trả về giá trị của đa thức.
10. Viết chương trình in các số nguyên tố từ 2 đến n bằng cách dùng sàng Eratosthenes
(sieve of Eratosthenes). Thuật giải như sau:
Bước 1. Tạo mảng chứa các số nguyên từ 2..n.
Bước 2. Bắt đầu từ số nguyên tố đầu tiên p = 2.
Bước 3. Đánh dấu tất cả bội số của p không phải là số nguyên tố (2p,3p,4p,...).
Bước 4. Tìm số kế tiếp lớn hơn p chưa bị đánh dấu. Nếu không có thì thuật giải kết
thúc. Ngược lại đặt p là số này và quay lại bước 3.
Ví dụ dùng thuật giải để tìm các số nguyên tố đến n = 25:
11. Viết hàm sắp xếp các phần tử trong mảng tăng dần.
12. Viết hàm xóa các phần tử trùng nhau trong mảng.
13. Cho mảng gồm các số nguyên có giá trị trong khoảng từ 1 đến k (k < 100). Viết
hàm in ra số lần xuất hiện của mỗi phần tử trong mảng.