Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1005.36 KB, 36 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
<b>MÔN KỸ THUẬT LẬP TRÌNH CƠ SỞ MÃ ĐỀ: 52</b>
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
<i>Mã sinh viên : 22A1001D0270</i>
<small>1</small>
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2"><small>TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI </small>
<b><small>KHOA CÔNG NGHỆ THÔNG TIN </small></b>
Câu 1:
- <i>Input</i>: Nhập vào số tự nhiên n.
<small>2</small>
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">- <i>Output</i>: 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
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6"><small> freopen("ipCau3.txt","r",stdin); freopen("op.txt","w",stdout);</small>
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="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
<small> freopen("ipCau4.txt","r",stdin); freopen("op.txt","w",stdout);</small>
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="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
<small>void uoc(int n){ for (int i = 1; i <= n; i++)</small>
<small> freopen("ipCau5.txt","r",stdin); freopen("op.txt","w",stdout);</small>
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="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]
<small> freopen("ipCau6.txt","r",stdin); freopen("op.txt","w",stdout);</small>
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="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)
<small>12</small>
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">Cá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
<small>13</small>
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">Nế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
*hố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
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15"><small> {</small>
<small> cout << a[i] << ;" "</small>
<small> }}</small>
<small>void tbc( a[], intint n){ float max = -1e9; </small>
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16"><small> freopen("ip.txt","r",stdin); freopen("op.txt","w",stdout);</small>
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">Cá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]
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">c. 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: Hố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ố
</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">Bước 4: Dùng hàm d với từng phần tử của hàng
<small>void nhap( a[][int20], int m, n){int</small>
<small> for (int i = 0; i < n; i++)</small>
<small>void in(int a[][20], m, intint n){ for (int i = 0; i < n; i++)</small>
</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21"><small> freopen("ip.txt","r",stdin); freopen("op.txt","w",stdout);</small>
</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">1. 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ỉ
</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">c. 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ì hốn đổi a[i] và a[j]
</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">e. 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
</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26"><small> int d=1;</small>
<small> cout <<"Danh sach can bo \n";</small>
<small> cout <<"stt"<<" "<<"ho va ten"<<" "<<"phong ban"<<" "<<"he so </small>
<small>void nhapds(cb a[], int n){ for int( i=0; i<n; i++){ a[i].nhap(); }}</small>
<small>void ghifile(cb a[], int n){</small>
<small> cout <<"thong tin can bo co hsl >5.0 \n";</small>
<small> cout <<"sap xep giam dan theo luong \n"; for int( i = 0; i < n - 1; i++){</small>
</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27"><small>void t2t(cb a[], int n){</small>
<small> cout << ố"ds vá s lượng cán b có lộương > 2tr \n"; for int( i=0; i<n; i++)</small>
<small> freopen("ipbai9.txt","r",stdin); freopen("op.txt","w",stdout); int n,lc; cin >> n; cb a[100]; nhapds(a,n);</small>
<small> cout <<"---MENU---\n"; cout <<"1.In ra tat ca thong tin \n";</small>
<small> 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";</small>
<small>27</small>
</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="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
</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="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
<small>30</small>
</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">Bướ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
</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">e. 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 hốn đổi vị trí 2 thí sinh
</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33"><small>void nhapds(ts a[], int n){ for( int i = 0; i < n; i++) {</small>
<small> a[i].nhap(); }}</small>
<small>void inds(ts a[], n){int</small>
<small> cout <<"Danh sách thí sinh \n";</small>
<small> cout <<"sbd"<<" "<<"ho va ten"<<" "<<"gioi tinh"<<" "<<"tiet muc"<<" "<<"ket qua \n";</small>
<small> for int( i = 0; i < n; i++) {</small>
<small> a[i].in(); }}</small>
<small>void trungten(ts a[], int n){</small>
<small> cout << "Các thí sinh có ti t m c trùng tên \n"ếụ; for int( i=0; i<n-1; i++)</small>
<small>void ghifile(ts a[], int n){</small>
<small> cout <<"thong tin thi sinh dat vong loai \n";</small>
</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34"><small>void sapxep(ts a[], int n){</small>
<small> cout <<"sap xep ds thí sinh theo th t anphabet c a tên \n"ứựủ;</small>
<small> freopen("ipbai10.txt","r",stdin); freopen("op.txt","w",stdout); cout <<"1.In ra tat ca thong tin \n";</small>
<small> 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";</small>
<small>34</small>
</div><span class="text_page_counter">Trang 35</span><div class="page_container" data-page="35"><small> cout <<"Moi lua chon \n";</small>
- 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
<small>35</small>
</div><span class="text_page_counter">Trang 36</span><div class="page_container" data-page="36">741 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
<small>36</small>
</div>