You are on page 1of 5

TIN HỌC ĐẠI CƯƠNG GV : Nguyễn Thiện Dương

Họ và tên : …
MSSV : …
Lớp : …

BÁO CÁO BÀI TẬP LAB3



Với mỗi bài tập dưới đây , SV sẽ paste vào đây source code và hình ảnh minh chứng chạy
chương trình thành công.

Lưu ý : Hình chụp phãi rõ ràng , không nhòe/mờ và phải có hiện thanh taskbar của Desktop
và tên máy sử dụng hiện trong màn hình Console

Để hiển thị tên máyDesktop sử dụng sinh viên làm theo các bước sau :

1. SV chèn thêm 2 dòng lệnh màu vàng vào vị trí đoạn code như trong hình :

2. Ngay trước dòng lệnh system(“pause”) hoặc return 0 của hàm main , SV chèn
vào đoạn code sau :

// Sử dụng hàm getenv để lấy tên máy tính từ biến môi trường COMPUTERNAME
char computerName[MAX_COMPUTERNAME_LENGTH + 1];
DWORD size = sizeof(computerName);

if (GetComputerName(computerName, &size)) {
std::cout << "Ten may tinh la: " << computerName << std::endl;
}
else {
std::cerr << "Khong the lay ten may tinh." << std::endl;
}

Giống như hình dưới :

Trang 1
TIN HỌC ĐẠI CƯƠNG GV : Nguyễn Thiện Dương

-------------------------------------
PHẦN 1 : Bài tập lập trình C++ các thao tác trên mảng 1 chiều áp dụng con trỏ
//Trong mỗi câu của phần 5 , SV paste vào code các hàm để xử lý từng câu đó và gọi lại hàm đó
trong 1 hàm main duy nhất để chạy câu đó
Câu 1 : Viết hàm cho phép nhập mảng 1 chiều các số nguyên có n phần tử

 Souce code các hàm cần thiết …


… (paste dạng text , không phải image)

Câu 2 : Viết hàm cho phép xuất ra hết các phần tử trong mảng 1 chiều ở trên.

 Souce code các hàm cần thiết …


… (paste dạng text , không phải image)

//SV trình bày tương tự theo bố cục trên cho các câu khác SV làm trong phần 5

 Source code hàm main duy nhất để gọi lại các hàm chạy các câu trên
…(paste dạng text , không phải image)
 Hình chụp kết quả chạy câu 1
… (paste dạng image)
 Hình chụp kết quả chạy câu 2
… (paste dạng image)
 Hình chụp kết quả chạy câu 3
… (paste dạng image)
…//Chụp hình tương tự cho các câu khác

Trang 2
TIN HỌC ĐẠI CƯƠNG GV : Nguyễn Thiện Dương

-----------------------------------------

PHẦN 3 : Bài tập lập trình với Cấu trúc (Struct)


Câu 1 :

 Source code :

#include<iostream>

using namespace std;

// Định nghĩa struct PhanSo


struct PhanSo {
int tu;
int mau;
};
typedef PhanSo PS;
// Hàm nhập phân số
void nhapPhanSo(PS* ps) {
printf("\nNhap tu so: ");
scanf_s("%d", &ps->tu);
printf("\nNhap mau so: ");
scanf_s("%d", &ps->mau);

// Hàm xuất phân số


void xuatPhanSo(PS* ps) {
printf("\n%d/%d ", ps->tu, ps->mau);
}

// Hàm trừ 2 phân số


PS* truPhanSo(PS* ps1, PS* ps2) /*Sử dụng hàm con trỏ. Kết quả trả về là giá trị của đối
tượng PS được trỏ bởi
một biến con trỏ kiểu PS */
{
PS* ketQua = (PS*)malloc(10 * sizeof(PS));/*cấp phát động vùng nhớ để sử dụng mỗi
khi tạo mới một
biến con trỏ kiểu PS để trỏ tới các đối tượng PS quản lý*/
ketQua->tu = ps1->tu * ps2->mau - ps2->tu * ps1->mau;
ketQua->mau = ps1->mau * ps2->mau;
return ketQua;
}
int timUCLN(int a, int b) {
while (b != 0) {
int r = a % b;
a = b;
b = r;
}
return a;
}

// Hàm rút gọn phân số


void rutGonPhanSo(PS* ps) {

Trang 3
TIN HỌC ĐẠI CƯƠNG GV : Nguyễn Thiện Dương

int ucln = timUCLN(ps->tu, ps->mau);


ps->tu /= ucln;
ps->mau /= ucln;
}

int main() {
PS ps1, ps2;

printf("\nNhap vao phan so thu nhat");


PS *p1 = &ps1;//khởi tạo biến con trỏ p1 kiểu PS trỏ đến đối tượng PS ps1 để quản

nhapPhanSo(p1);

printf("\nNhap vao phan so thu hai");


PS *p2 = &ps2;//khởi tạo biến con trỏ p2 kiểu PS trỏ đến đối tượng PS ps2 để quản

nhapPhanSo(p2);

PhanSo* ketQua = truPhanSo(p1, p2);


rutGonPhanSo(ketQua);

printf("\nKet qua tru hai phan so la : ");


xuatPhanSo(ketQua);

// Giải phóng bộ nhớ đã cấp phát cho biến con trỏ ketqua
delete ketQua;
system("pause");
return 0;
}

 Hình chụp kết quả

Câu 2 :

//SV trình bày tương tự theo bố cục trên cho các câu khác SV làm trong phần 3
Trang 4
TIN HỌC ĐẠI CƯƠNG GV : Nguyễn Thiện Dương

Trang 5

You might also like