1. Trang chủ
  2. » Thể loại khác

Tự luận kỹ thuật lập trình cơ sở it01 ehou

18 2 0
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 đề Tự luận kỹ thuật lập trình cơ sở
Trường học Trường Đại học Mở Hà Nội
Chuyên ngành Kỹ thuật lập trình cơ sở
Thể loại Bài tập
Thành phố Hà Nội
Định dạng
Số trang 18
Dung lượng 19,18 KB

Nội dung

TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI BÀI TẬP MÔN KỸ THUẬT LẬP TRÌNH CƠ SƠ TRUNG TÂM ĐÀO TẠO ELEARNING YÊU CẦU: Nhập vào từ bàn phím dãy số gồm n số nguyên (n>0) và thực hiện các yêu cầu sau đây a. Hiển thị dãy số ra màn hình b. Nhập vào từ bàn phím số nguyên x. Hãy cho biết x xuất hiện trong dãy số bao nhiêu lần và các vị trí xuất hiện của x c. Xoá các số có giá trị bằng 0 có trong dãy Sắp xếp các số nguyên tố về đầu dãy, các số không phải là số nguyên tố về cuối dãy d. Tính trung bình cộng các số chia hết cho 3 có trong dãy BÀI LÀM

Trang 1

TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI BÀI TẬP MÔN KỸ THUẬT LẬP TRÌNH CƠ SƠ TRUNG TÂM ĐÀO TẠO ELEARNING

YÊU CẦU: Nhập vào từ bàn phím dãy số gồm n số nguyên

(n>0) và thực hiện các yêu cầu sau đâya Hiển thị dãy số ra màn hìnhb Nhập vào từ bàn phím số nguyên x Hãy cho biết x xuất hiện trong dãy số bao

nhiêu lần và các vị trí xuất hiện của xc Xoá các số có giá trị bằng 0 có trong dãySắp xếp các số nguyên tố về đầu dãy, các số không phảilà số nguyên tố về cuối dãy

d Tính trung bình cộng các số chia hết cho 3 có trong dãyBÀI LÀM

Code phần a #include <iostream>#include <vector> // Sử dụng thư viện vector để dễ quản lý dãy sốusing namespace std;

int main() { int n; // Nhập số lượng phần tử n do {

cout << "Nhap so luong phan tu n (n > 0): "; cin >> n;

Trang 2

} while (n <= 0); // Đảm bảo n > 0 vector<int> array(n); // Khai báo dãy số với n phần tử // Nhập dãy số từ bàn phím

for (int i = 0; i < n; i++) { cout << "Nhap so thu " << i + 1 << ": "; cin >> array[i];

} // a Hiển thị dãy số ra màn hình cout << "Day so vua nhap: "; for (int i = 0; i < n; i++) { cout << array[i] << " "; }

cout << endl; return 0;}

Code phần a và b#include <iostream>

Trang 3

#include <vector> // Sử dụng thư viện vector để dễ quản lý dãy sốusing namespace std;

int main() { int n; // Nhập số lượng phần tử n do {

cout << "Nhap so luong phan tu n (n > 0): "; cin >> n;

} while (n <= 0); // Đảm bảo n > 0 vector<int> array(n); // Khai báo dãy số với n phần tử // Nhập dãy số từ bàn phím

for (int i = 0; i < n; i++) { cout << "Nhap so thu " << i + 1 << ": "; cin >> array[i];

} // a Hiển thị dãy số ra màn hình cout << "Day so vua nhap: ";

Trang 4

for (int i = 0; i < n; i++) { cout << array[i] << " "; }

cout << endl; // b Nhập số nguyên x và tìm số lần xuất hiện, vị trí của x int x;

cout << "Nhap so nguyen x can tim: "; cin >> x;

int count = 0; // Đếm số lần xuất hiện của x vector<int> viTri; // Lưu trữ các vị trí xuất hiện của x for (int i = 0; i < n; i++) {

if (array[i] == x) { count++; // Tăng số lần xuất hiện viTri.push_back(i); // Lưu vị trí xuất hiện }

} // Hiển thị kết quả tìm kiếm

Trang 5

if (count > 0) { cout << "So " << x << " xuat hien " << count << " lan o cac vi tri: "; for (int i = 0; i < viTri.size(); i++) {

cout << viTri[i] << " "; }

cout << endl; } else {

cout << "So " << x << " khong xuat hien trong day so." << endl; }

return 0;}

*** Code phần a,b,c#include <iostream>#include <vector>#include <algorithm> // Sử dụng cho hàm removeusing namespace std;

// Hàm kiểm tra số nguyên tố

Trang 6

bool KiemTraNguyenTo(int n) { if (n < 2) {

return false; }

for (int i = 2; i <= n / 2; i++) { if (n % i == 0) {

return false; }

} return true;}

int main() { int n; // Nhập số lượng phần tử n do {

cout << "Nhap so luong phan tu n (n > 0): "; cin >> n;

Trang 7

} while (n <= 0); // Đảm bảo n > 0 vector<int> array(n); // Khai báo dãy số với n phần tử // Nhập dãy số từ bàn phím

for (int i = 0; i < n; i++) { cout << "Nhap so thu " << i + 1 << ": "; cin >> array[i];

} // a Hiển thị dãy số ra màn hình cout << "Day so vua nhap: "; for (int i = 0; i < n; i++) { cout << array[i] << " "; }

cout << endl; // b Nhập số nguyên x và tìm số lần xuất hiện, vị trí của x int x;

cout << "Nhap so nguyen x can tim: "; cin >> x;

Trang 8

int count = 0; // Đếm số lần xuất hiện của x vector<int> viTri; // Lưu trữ các vị trí xuất hiện của x for (int i = 0; i < n; i++) {

if (array[i] == x) { count++; // Tăng số lần xuất hiện viTri.push_back(i); // Lưu vị trí xuất hiện }

} // Hiển thị kết quả tìm kiếm if (count > 0) {

cout << "So " << x << " xuat hien " << count << " lan o cac vi tri: "; for (int i = 0; i < viTri.size(); i++) {

cout << viTri[i] << " "; }

cout << endl; } else {

cout << "So " << x << " khong xuat hien trong day so." << endl;

Trang 9

} // c Xóa các số có giá trị bằng 0 array.erase(remove(array.begin(), array.end(), 0), array.end()); // Sắp xếp số nguyên tố lên đầu, các số không phải nguyên tố về cuối vector<int> MangNguyenTo;

vector<int> MangKhongNguyenTo; for (int i = 0; i < array.size(); i++) { if (KiemTraNguyenTo(array[i])) { MangNguyenTo.push_back(array[i]); // Lưu số nguyên tố } else {

MangKhongNguyenTo.push_back(array[i]); // Lưu số không phải nguyên tố

} } // Ghép 2 mảng lại: số nguyên tố lên đầu, số không phải nguyên tố về cuối array.clear();

array.insert(array.end(), MangNguyenTo.begin(), MangNguyenTo.end());

Trang 10

array.insert(array.end(), MangKhongNguyenTo.begin(), MangKhongNguyenTo.end());

// Hiển thị dãy số sau khi sắp xếp cout << "Day so sau khi sap xep so nguyen to ve dau va cac so khac ve cuoi: "; for (int i = 0; i < array.size(); i++) {

cout << array[i] << " "; }

cout << endl; return 0;}

***Code phần a,b,c,d#include <iostream>#include <vector>#include <algorithm> // Sử dụng cho hàm removeusing namespace std;

// Hàm kiểm tra số nguyên tốbool KiemTraNguyenTo(int n) { if (n < 2) {

Trang 11

return false; }

for (int i = 2; i <= n / 2; i++) { if (n % i == 0) {

return false; }

} return true;}

int main() { int n; // Nhập số lượng phần tử n do {

cout << "Nhap so luong phan tu n (n > 0): "; cin >> n;

} while (n <= 0); // Đảm bảo n > 0 vector<int> array(n); // Khai báo dãy số với n phần tử

Trang 12

// Nhập dãy số từ bàn phím for (int i = 0; i < n; i++) { cout << "Nhap so thu " << i + 1 << ": "; cin >> array[i];

} // a Hiển thị dãy số ra màn hình cout << "Day so vua nhap: "; for (int i = 0; i < n; i++) { cout << array[i] << " "; }

cout << endl; // b Nhập số nguyên x và tìm số lần xuất hiện, vị trí của x int x;

cout << "Nhap so nguyen x can tim: "; cin >> x;

int count = 0; // Đếm số lần xuất hiện của x vector<int> viTri; // Lưu trữ các vị trí xuất hiện của x

Trang 13

for (int i = 0; i < n; i++) { if (array[i] == x) { count++; // Tăng số lần xuất hiện viTri.push_back(i); // Lưu vị trí xuất hiện }

} // Hiển thị kết quả tìm kiếm if (count > 0) {

cout << "So " << x << " xuat hien " << count << " lan o cac vi tri: "; for (int i = 0; i < viTri.size(); i++) {

cout << viTri[i] << " "; }

cout << endl; } else {

cout << "So " << x << " khong xuat hien trong day so." << endl; }

// c Xóa các số có giá trị bằng 0

Trang 14

array.erase(remove(array.begin(), array.end(), 0), array.end()); // Sắp xếp số nguyên tố lên đầu, các số không phải nguyên tố về cuối vector<int> MangNguyenTo;

vector<int> MangKhongNguyenTo; for (int i = 0; i < array.size(); i++) { if (KiemTraNguyenTo(array[i])) { MangNguyenTo.push_back(array[i]); // Lưu số nguyên tố } else {

MangKhongNguyenTo.push_back(array[i]); // Lưu số không phải nguyên tố

} } // Ghép 2 mảng lại: số nguyên tố lên đầu, số không phải nguyên tố về cuối array.clear();

array.insert(array.end(), MangNguyenTo.begin(), MangNguyenTo.end()); array.insert(array.end(), MangKhongNguyenTo.begin(),

MangKhongNguyenTo.end());

Trang 15

// Hiển thị dãy số sau khi sắp xếp cout << "Day so sau khi sap xep so nguyen to ve dau va cac so khac ve cuoi: "; for (int i = 0; i < array.size(); i++) {

cout << array[i] << " "; }

cout << endl; // d Tính trung bình cộng các số chia hết cho 3 int tong = 0;

int dem = 0; for (int i = 0; i < array.size(); i++) { if (array[i] % 3 == 0) {

tong += array[i]; // Cộng dồn các số chia hết cho 3 dem++; // Đếm số lượng các số chia hết cho 3 }

} if (dem > 0) { float tbc = (float)tong / dem;

Trang 16

cout << "Trung binh cong cac so chia het cho 3 la: " << tbc << endl; } else {

cout << "Khong co so nao chia het cho 3 trong day so." << endl; }

return 0;}

*** Giải thích các bước

Phần a

Giải thích:Nhập số lượng phần tử: Người dùng được yêu cầu nhập số nguyên n lớn hơn 0 Nếu n <= 0, chương trình sẽ yêu cầu nhập lại

Khai báo mảng: vector<int> array(n) được dùng để lưu trữ dãy số với kích thước n.Nhập giá trị cho mảng: Dãy số được nhập từ bàn phím thông qua vòng lặp

Hiển thị dãy số: Sử dụng vòng lặp để in từng phần tử của dãy số ra màn hình

Phần b

Giải thích phần b:Nhập số nguyên x: Người dùng nhập số nguyên x cần tìm.Tìm số lần xuất hiện của x: Sử dụng vòng lặp để duyệt qua dãy số, nếu số x xuất hiện trong mảng, biến count sẽ tăng lên

Lưu trữ các vị trí của x: Vị trí xuất hiện của x được lưu trong vector viTri

Trang 17

Hiển thị kết quả:Nếu x xuất hiện ít nhất một lần, chương trình sẽ hiển thị số lần xuất hiện và các vị trí.

Nếu không tìm thấy, chương trình sẽ thông báo rằng x không xuất hiện trong dãy số

Phần c

Giải thích phần c:Sử dụng hàm remove: Hàm remove từ thư viện <algorithm> sẽ di chuyển các phần tử không bằng 0 lên đầu mảng và trả về một con trỏ tới vị trí mới của phần tử cuối cùng

Sử dụng erase: Kết hợp với erase để loại bỏ tất cả các phần tử 0 khỏi vector array.Hiển thị dãy sau khi xóa: Sau khi xóa các số 0, dãy số được hiển thị lại

Giải thích phần sắp xếp số nguyên tố:Hàm KiemTraNguyenTo: Hàm này kiểm tra xem một số có phải là số nguyên tố không Nếu là nguyên tố, hàm trả về true, nếu không thì trả về false

Sắp xếp các số nguyên tố và không phải nguyên tố:MangNguyenTo: Lưu trữ tất cả các số nguyên tố trong dãy.MangKhongNguyenTo: Lưu trữ các số không phải là số nguyên tố.Sau đó, chúng ta ghép 2 mảng lại với nhau, với số nguyên tố được đưa lên đầu dãy và các số không phải nguyên tố ở cuối

Giải thích phần d

Trang 18

Giải thích phần d:Tính tổng và đếm các số chia hết cho 3:Sử dụng vòng lặp để duyệt qua dãy số Nếu một số chia hết cho 3, chúng ta cộng sốđó vào biến tong và tăng biến dem để đếm số lượng các số chia hết cho 3.

Tính trung bình cộng:Nếu có số chia hết cho 3 (dem > 0), tính trung bình cộng bằng cách lấy tong chia cho dem

Nếu không có số nào chia hết cho 3, thông báo rằng không có số nào chia hết cho 3trong dãy

Kết quả:Chương trình sẽ nhập dãy số, hiển thị dãy, tìm số nguyên x, xóa các số 0, sắp xếp số nguyên tố về đầu và tính trung bình cộng các số chia hết cho 3

Ngày đăng: 21/09/2024, 10:12

w