TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN Câu 1: - Input: Nhập vào số tự nhiên n.2... - Output: tất cả các số tự nhiên chia hết cho 7 và bé hơn hoặc bằng n... hiện lại ma trận2..
Trang 1BÁO CÁO BÀI TẬP LỚN
MÔN KỸ THUẬT LẬP TRÌNH CƠ SỞ MÃ ĐỀ: 52
Giảng viên : Nguyễn Thị Quỳnh Như Sinh viên thực hiện : Nguyễn Hoàng Quân Lớp : 2210A04
Mã sinh viên : 22A1001D0270
MỤC LỤC:
1
Trang 2TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
Câu 1:
- Input: Nhập vào số tự nhiên n.
2
Trang 3- Output: tất cả các số tự nhiên chia hết cho 7 và bé hơn hoặc bằng n.
- Process:
Bước 1: Bắt đầu Bước 2: Nhập n Bước 3: Khởi tạo i = 1
Bước 4: Nếu i % 7 = 0 thì xuất ra i
Trang 6freopen("ipCau3.txt","r",stdin); freopen("op.txt","w",stdout);
Trang 7*nếu k < benhat thì benhat = k Bước 5: Nếu sum < n thì quay lại bước 4 Bước 6: Xuất benhat là giá trị bé nhất trong dãy
freopen("ipCau4.txt","r",stdin); freopen("op.txt","w",stdout);
Trang 9-Input: Nhập vào số nguyên dương n -Output: Các ước số của n
Bước 1: Bắt đầu Bước 2: Nhập n Bước 3: Khởi tạo i = 0
Bước 4: nếu n % i == 0 thì xuất i
void uoc(int n){ for (int i = 1; i <= n; i++)
freopen("ipCau5.txt","r",stdin); freopen("op.txt","w",stdout);
Trang 11-Output: chuỗi ký tự trên nhưng không có ký tự x - Process:
Bước 1: Bắt đầu
Bước 2: Nhập chuỗi ký tự ( chuỗi a ) Nhập ký tự cần xóa ( x ) Bước 3: Khởi tạo i = 0
Bước 4: Nếu a[i] == x[0] thì xóa a[i]
freopen("ipCau6.txt","r",stdin); freopen("op.txt","w",stdout);
Trang 12-Bộ dữ liệu test:
- a = “abcdef” x = “a”, xuất ra chuỗi a = “bcdef” - b = “ghiklm” x = “h”, xuất ra chuỗi b = “giklm”
Câu 7
-Input: Số phần tử của mảng(n)
12
Trang 13Các phần tử của mảng(a[i]) -Output;
1.hiện mảng vừa nhập
2.hiện 3 vị trí liên tiếp có tbc lớn nhất
3.sắp xếp lẻ lên đầu dãy, chẵn cuối dãy và hiện lại mảng Bước 2: Khởi tạo i = 0 Bước 3: Xuất a[i]
Bước 2: Khởi tạo 2 biến max = -1e9, t Bước 3: Khởi tạo i = 0
Bước 4: t = trung bình cộng 3 giá trị liên tiếp
13
Trang 14Nếu t > max *max=t Bước 5: i = i + 1
*nếu i < n – 2 quay lại bước 4 Bước 6: Xuất ra kết quả
Bươc 7: Kết thúc
d.Sắp xếp giá trị lẻ về đầu dãy, chẵn về cuối dãy Bước 1: Bắt đầu
Bước 2: Khởi tạo biến x = 0 Bước 3: Khởi tạo i = 0 Bước 4: Nếu a[i] % 2 != 0
*hoán đổi vị trí a[i] và a[x]
Bước 2: Khởi tạo biến t = 0 Bước 3: Khởi tạo i = 0
Trang 15{
cout << a[i] << ;" "
}}
void tbc( a[], intint n){ float max = -1e9;
Trang 16freopen("ip.txt","r",stdin); freopen("op.txt","w",stdout);
Trang 17Các giá trị của ma trận(a[i][j]) h1,h2
1 hiện lại ma trận
2 đổi chỗ vị trí 2 hàng h1 h2, hiện lại ma trận 3 Kiểm tra 1 số có phải là số nguyên tố 4 hiện hàng có nhiều số nguyên tố nhất
Bước 2: Khởi tạo i = 0, j = 0 Bước 3: Xuất a[i][j]
Trang 18c Hàm đổi vị trí 2 hàng bất kỳ Bước 1: Bắt đầu
Bước 2: Nhập h1, h2 Bước 3: Khởi tạo j = 0
Bước 4: Hoán đổi vị trí 2 giá trị của 2 hàng
Bước 2: Khởi tạo biến sum = 0 Bước 3: Khởi tạo i = 0
Bước 4: n % i == 0 *sum ++ Bước 5: i = i + 1
*nếu i < căn bậc 2 của n quay lại bước 3 Bước 6: Nếu sum == 0 thì n là số nguyên tố
Nếu không thì n không phải số nguyên tố
Trang 19Bước 4: Dùng hàm d với từng phần tử của hàng
void nhap( a[][int20], int m, n){int
for (int i = 0; i < n; i++)
void in(int a[][20], m, intint n){ for (int i = 0; i < n; i++)
Trang 21freopen("ip.txt","r",stdin); freopen("op.txt","w",stdout);
Trang 231 Xuất lại thông tin cán bộ
2 Xuất ds cán bộ có hệ số lương lớn hơn 5.0 3 Sắp xếp ds cán bộ theo thứ tự tăng dần của lương 4 Số lượng cán bộ có lương trên 2tr
a.Hàm nhập ds cán bộ Bước 1: Bắt đầu Bước 2: Nhập n
Bước 3: Nhập thông tin (tên, phòng ban, hệ số lương, lương cơ bản)
Bước 4 : Kết thúc b.Hàm hiện ds cán bộ
Bước 1: Bắt đầu Bước 2: Khởi tạo i = 0
Bước 3: In ra thông tin cán bộ có chỉ
Trang 24c Hàm hiện ds cán bộ có hệ số lương > 5.0 và ghi vào file canbo.dat
Bước 1: Bắt đầu
Bước 2: Tạo file canbo.dat Bước 3: khởi tạo i = 0
Bước 4: nếu hệ số lương cán bộ a[i] > 5.0 thì in ra và ghi vào file Bước 4: khi j < n, thực hiện
*nếu a[i].luong > a[j].luong thì hoán đổi a[i] và a[j]
Trang 25e Hàm đến số cán bộ có lương trên 2tr và hiện ra màn hình
Bước 1: Bắt đầu
Bước 2: khởi tạo i = 0, sum = 0 Bước 3: nếu lương a[i] > 2tr
Trang 26int d=1;
cout <<"Danh sach can bo \n";
cout <<"stt"<<" "<<"ho va ten"<<" "<<"phong ban"<<" "<<"he so
void nhapds(cb a[], int n){ for int( i=0; i<n; i++){ a[i].nhap(); }}
void ghifile(cb a[], int n){
cout <<"thong tin can bo co hsl >5.0 \n";
cout <<"sap xep giam dan theo luong \n"; for int( i = 0; i < n - 1; i++){
Trang 27void t2t(cb a[], int n){
cout << ố"ds vá s lượng cán b có lộương > 2tr \n"; for int( i=0; i<n; i++)
freopen("ipbai9.txt","r",stdin); freopen("op.txt","w",stdout); int n,lc; cin >> n; cb a[100]; nhapds(a,n);
cout <<" -MENU -\n"; cout <<"1.In ra tat ca thong tin \n";
cout <<"2.In thong tin can bo co hsl >5.0 va ghi vao file \n"; cout <<"3.Sap xep thu tu tang dan cua luong \n"; cout <<"4.In ra can bo luong tren 2tr \n"; cout <<"5.Thuc hien het chuc nang \n"; cout <<"Moi lua chon \n";
27
Trang 28-Danh sach can bo
stt ho va ten phong ban he so luong luong 1 nguyen van a 12a1 4.15 6.23 tr
Trang 30-Input:1.Nhập n là số lượng thí sinh
2.Danh sách thông tin thí sinh gồm số báo danh, họ tên, giới tính, tên tiết mục dự thi, kết quả
-Output:
1 Xuất lại ra danh sách thông tin thí sinh
2 Xuất danh sách thông tin thí sinh có tiết mục trùng tên 3 Ghi danh sách thông tin thí sinh đạt vòng dự thi vào file
Bước 2: Nhập n số lượng thí sinh
Bước 3: Nhập thông tin (số báo danh, họ tên, giới tính, tên tiết mục dự thi, kêt quả)
Bước 4: Kết thúc b Hàm hiện ds thí sinh
Bước 1: Khởi tạo i = 0
Bước 2: In ra thông tin thí sinh có chỉ số i trong mảng Bước 3: i = i + 1
30
Trang 31Bước 4: Nếu i < n ( n là số lượng ) thì quay lại bước 2
Bước 4: Nếu kết quả của thí sinh là đạt *ghi thông tin vào file
Trang 32e Sắp xếp danh sách thí sinh theo thứ tự anphabet của họ tên
Bước 1: Bắt đầu Bước 2: Khởi tạo i = 0 Bước 3: Tính j = i + 1
Bước 4: So sánh họ tên của thí sinh theo chỉ số i với j *nếu true hoán đổi vị trí 2 thí sinh
Trang 33void nhapds(ts a[], int n){ for( int i = 0; i < n; i++) {
a[i].nhap(); }}
void inds(ts a[], n){int
cout <<"Danh sách thí sinh \n";
cout <<"sbd"<<" "<<"ho va ten"<<" "<<"gioi tinh"<<" "<<"tiet muc"<<" "<<"ket qua \n";
for int( i = 0; i < n; i++) {
a[i].in(); }}
void trungten(ts a[], int n){
cout << "Các thí sinh có ti t m c trùng tên \n"ếụ; for int( i=0; i<n-1; i++)
void ghifile(ts a[], int n){
cout <<"thong tin thi sinh dat vong loai \n";
Trang 34void sapxep(ts a[], int n){
cout <<"sap xep ds thí sinh theo th t anphabet c a tên \n"ứựủ;
freopen("ipbai10.txt","r",stdin); freopen("op.txt","w",stdout); cout <<"1.In ra tat ca thong tin \n";
cout <<"2.In thong tin thi sinh trung tiet muc \n"; cout <<"3.In thi sinh dat vong loai va ghi vao file \n"; cout <<"4.Sap xep ds thi sinh theo thu tu anphabet cua ten \n";
34
Trang 35cout <<"Moi lua chon \n";
- 4, 123, nguyen van a, nam, nhay, d 456, hoang thi b, nu, hat, d 789, duong minh c, nam, rap, kd 741, nguyen thai d, nam, nhay, kd
- Xuất ra: Danh sách thí sinh
sbd ho va ten gioi tinh tiet muc ket qua 123 nguyen van a nam nhay d 456 hoang thi b nu hat d 789 duong minh c nam rap kd
35
Trang 36741 nguyen thai d nam nhay kd Các thí sinh có tiết mục trùng tên
123 nguyen van a nam nhay d 741 nguyen thai d nam nhay kd Thong tin thi sinh duoc ghi vao file
123 nguyen van a nam nhay d 456 hoang thi b nu hat d Sap xep ds thí sinh theo thứ tự anphabet của tên 789 duong minh c nam rap kd 123 nguyen van a nam nhay d 456 hoang thi b nu hat d 741 nguyen thai d nam nhay kd
36