BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC KINH TẾ TP HỒ CHÍ MINH (UEH) TRƯỜNG CÔNG NGHỆ VÀ THIẾT KẾ ✍ ĐỒ ÁN MÔN HỌC CƠ SỞ LẬP TRÌNH GVHD: TS.GVC Nguyễn Quốc Hùng Nhóm thực hiện: Nhóm 4 Trịnh Thị Hải Âu - 31211027629 (Trưởng nhóm) Đặng Thị Như Quỳnh - 31221026955 Hoàng Thị Thanh Thảo - 31221024605 Tp. Hồ Chí Minh, 30 Tháng 9 Năm 2023 0 MỤC LỤC MỤC LỤC.5 a) Mô Tả Thuật Toán.10 a) Mô Tả Thuật Toán.15 a) Mô Tả Thuật Toán.16 a) Mô Tả Thuật Toán.19 a) Mô Tả Thuật Toán.20 a) Mô Tả Thuật Toán.23 a) Mô Tả Thuật Toán.25 a) Mô Tả Thuật Toán.28 a) Mô Tả Thuật Toán.30 a) Mô Tả Thuật Toán.36 TÀI LIỆU THAM KHẢO.51 2 ĐỀ BÀI Bài 1: Viết chương trình mô phỏng trò chơi Bao - Búa - Kéo. Biết: Bao thắng Búa, Búa thắng Kéo, Kéo thắng Bao. Bài 2: Giải phương trình trùng phương: 𝑎𝑥 + 𝑏𝑥 + 𝑐 = 0.
4 2 Bài 3: Tìm bán kính hình cầu có thể tích tương đương với hình trụ tròn có bán kính R và chiều cao h. Bài 4: Nhập các hệ số của đa thức bậc n theo x vào một mảng. Nhập giá trị X. In ra kết quả đa thức này.
+ 𝑎2𝑥 + 𝑎1𝑥 + 𝑎0 𝑛 𝑛−1 2 Bài 5: Nhập vào một mảng các số nguyên. In ra một số kết quả sau: số lượng số âm, tổng số số âm, số lượng số dương, tổng số số dương trong mảng. Bài 6: Nhập một mảng các số nguyên dương, Nhập 2 số nguyên dương N, M (N<M). Cho biết trong mảng có bao nhiêu số thuộc đoạn [N,M], in các số này cùng vị trí của nó trong mảng.
Bài 7: Nhập các phần tử của ma trận 𝐴𝑚𝑥𝑛, kiểm tra ma trận này có phải là ma trận đối xứng qua trục giữa không? Bài 8: Nhập các phần tử của một ma trận 𝐴𝑚𝑥𝑛, in ra ma trận phản chiếu. Bài 9: Nhập ma trận vuông cấp n. Tính tổng các phần tử chẵn nằm ở tam giác dưới đường chéo chính (kể cả đường chéo chính). PHẦN 4 - CHẴN: Cho một mảng nhiều chiều gồm thông tin cá nhân của mỗi sinh viên: họ tên, năm sinh, điểm trung bình, xếp loại.
Giả sử dữ liệu của mảng gồm có ít nhất 5 phần tử. Hãy in ra toàn bộ các phiếu điểm theo mẫu như sau: ------------------------------------ BẢNG ĐIỂM TỐT NGHIỆP Cấp cho sinh viên <họ tên>, năm sinh <năm sinh>. Trong kì thi tốt nghiệp 2021, sinh viên đã đạt điểm trung bình là <điểm trung bình>, và được xếp loại <xếp loại>. Sinh viên có thứ hạng <???> trong lớp.
Hiệu Trưởng Trường Đại học ABC. Kí tên, Đóng dấu ------------------------------------ 3 4 LỜI GIẢI BÀI 1. Phân Tích Trong trò chơi Bao – Búa – Kéo, mỗi người chơi được quyền chọn ngẫu nhiên 1 trong 3 lựa chọn: Bao, Búa, Kéo. Kết quả trò chơi dựa trên quy tắc sau - Bao thắng Búa - Búa thắng Kéo - Kéo thắng Bao - Nếu 2 người chơi cùng ra lựa chọn giống nhau thì hòa Input: Nhập các lựa chọn: 1 - Bao, 2 - Búa, 3 - Kéo, 4 - Thoát trò chơi Output: In ra kết quả “Thắng”, “Thua” và “Hòa” 2.
Thuật Toán a) Mô Tả Thuật Toán - Bước 1: Người chơi chọn 1 trong 4 lựa chọn: (1) Bao (2) Búa (3) Kéo (4) Thoát trò chơi - Bước 2: Nếu người chơi chọn (1), (2) hoặc (3) thì chuyển sang bước 3. Nếu người chơi chọn (4) thì chuyển sang bước 7 - Bước 3: Máy sẽ lựa chọn ngẫu nhiên “Bao”, “Búa” hoặc “Kéo” - Bước 5: So sánh lựa chọn của người chơi và máy để đưa ra kết quả - Bước 6: Hiển thị kết quả là “Thắng”, “Thua” hay “Hòa” - Bước 7: Kết thúc trò chơi 5 b) Sơ Đồ Khối c) Mã Nguồn Console. Thoát game -"); Console.WriteLine("-----------------------------"); string luaChon; do 6 { Random r = new Random(); int may = r.Write("Chọn từ 1 đến 4: "); luaChon = Console.ReadLine(); switch (luaChon) { case "1": Console.WriteLine("Bạn chọn Bao"); if (may == Convert.ResetColor(); break; } else { Console.ResetColor(); break; } case "2": Console.WriteLine("Bạn chọn Búa"); if (may == Convert.ResetColor(); break; } else { Console.ResetColor(); break; 8 } case "3": Console.WriteLine("Bạn chọn Kéo"); if (may == Convert.ResetColor(); break; } else { Console.ResetColor(); break; } case "4": Console.WriteLine("Đã thoát game!"); 9 break; default: Console. Phân Tích Nhập vào các số thực a, b, c (input) sau đó hiển thị kết quả báo số nghiệm x sao cho thỏa 𝑎𝑥 + 𝑏𝑥 + 𝑐 = 0 (output).
Output: Phương trình có 4 nghiệm = 1, -1, 0. Thuật Toán a) Mô Tả Thuật Toán Phương trình trùng phương: 𝑎𝑥 + 𝑏𝑥 + 𝑐 = 0 hay phương trình bậc 4 khuyết 4 2 𝑥 và 𝑥 có các biến bậc chẵn nên ta tiến hành đặt ẩn phụ 𝑡 = 𝑥 để đưa phương trình 3 1 2 về dạng bậc 2: 𝑎𝑡 + 𝑏𝑡 + 𝑐 = 0 để giải phương trình phụ rồi đưa về phương 2 trình trùng phương ban đầu. Bước 2: Đặt ẩn phụ 𝑡 = 𝑥 , đưa phương trình về dạng bậc 2: 𝑎𝑡 + 𝑏𝑡 + 𝑐 = 0. 2 2 Bước 3: Nếu a ≠ 0 thì qua bước 4, ngược lại ta có phương trình trở về dạng bậc 1: 𝑏𝑡 + 𝑐 = 0→𝑡 = − 𝑏.
Nếu 𝑡 > 0 → 𝑥 =± 𝑡 ; 𝑡 = 0 → 𝑥 = 0; 𝑡 < 0, 𝑐 phương trình vô nghiệm. 2 Bước 5: Nếu ∆ < 0, phương trình vô nghiệm. Nếu không thì qua bước 6. 10 Bước 6: Nếu ∆ ≠ 0 thì qua bước 7, ngược lại ta sẽ có phương trình phụ có nghiệm kép 𝑡= − 2𝑎.
Nếu 𝑡 > 0 → 𝑥 =± 𝑡 ; 𝑡 = 0 → 𝑥 = 0; 𝑡 < 0, phương trình vô 𝑏 nghiệm. Bước 7: Phương trình phụ có 2 nghiệm 𝑡 phân biệt. Nếu 𝑡 > 0 → 𝑥 =± 𝑡 ; 𝑡 = 0 → 𝑥 = 0; 𝑡 < 0, phương trình vô nghiệm. Số nghiệm 𝑥 có được là số nghiệm 𝑡 dương nhân 2 cộng trường hợp 𝑡 = 0 → 𝑥 = 0 (nếu có) Bước 8: Đưa ra số nghiệm và các giá trị nghiệm 𝑥 thỏa 𝑎𝑥 + 𝑏𝑥 + 𝑐 = 0 và 4 2 kết thúc.
11 b) Sơ Đồ Khối 12 c) Mã Nguồn while (true) { try { Console.Write("Nhập vào số a: "); float a = float.Write("Nhập vào số b: "); float b = float.Write("Nhập vào số c: "); float c = float.ReadLine()); double d = b * b - 4 * a * c; if (a == 0 && b != 0 && c != 0) { double A1 = Math.Sqrt(-c / b); double A2 = -Math.WriteLine("Phương trình có 2 nghiệm {0}, {1}", A1, A2); else Console.WriteLine("Phương trình vô nghiệm"); if (d == 0) { double t = -b / (2 * a); double X1 = Math.Sqrt(t); double X2 = -Math.WriteLine("Phương trình có 1 nghiệm = 0"); else Console.WriteLine("Phương trình có 2 nghiệm {0}, {1}", X1, X2); } else { double t1 = ((-b + Math.Sqrt(d)) / (2 * a)); 13 double t2 = ((-b - Math.Sqrt(d)) / (2 * a)); double x1 = Math.Sqrt(t1); double x2 = -Math.Sqrt(t1); double x3 = Math.Sqrt(t2); double x4 = -Math.WriteLine("Phương trình có 4 nghiệm = {0}, {1}, {2}, {3}", x1, x2, x3, x4); } } menub2: Console.Write("Tiếp tục nhập? C/K: "); string end = Console.ReadLine(); if (end.WriteLine("Thoát bài 2."); break; } else if (end.WriteLine("-------------------------"); else { Console.WriteLine("Không hợp lệ! Xin vui lòng nhập lại!"); goto menub2; } } catch { Console. Phân Tích Input: Nhập vào bán kính r và chiều cao h của hình trụ tròn có thể tích tương đương với hình cầu có bán kính r1. Output: Bán kính r1 của hình cầu. Thuật Toán a) Mô Tả Thuật Toán Bước 1: Nhập bán kính hình trụ tròn: r Nhập chiều cao hình trụ tròn: h Bước 2: Khởi tạo biến v- thể tích của hình trụ tròn.
Cụ thể: Double V= Math.PI * r * r * h; Bước 3: Khởi tạo và gán giá trị tính toán r1- bán kính của hình cầu: Double r1=Math.0 ); Bước 4: In kết quả giá trị r1 ra màn hình. Bước 5: Kết thúc chương trình. b) Sơ Đồ Khối 15 c) Mã Nguồn Console.UTF8; while(true) { try { Console.Write("Nhập bán kính của hình trụ tròn: "); double r = double.Write("Nhập vào chiều cao của hình trụ tròn: "); double h = double.ReadLine()); double v = Math.PI * r * r * h; double r1 = Math.ReadKey(); } catch { Console. Phân Tích Input: Nhập vào phần tử bậc n, a0 → an, x Output: Kết quả của công thức: F(x)=anxn + an-1xn-1 +…+a2x2 + a1x + a0 Ví dụ: - Input + n=3 + a0 = 4 + a1 = 2 + a2 = 1 + a3 = 3 + x=2 - Output: 36 16 2.
Thuật Toán a) Mô Tả Thuật Toán Bước 1: Nhập lần lượt số bậc n Bước 2: Nếu n ≤ 0 thì chuyển sang bước 3, ngược lại bước 4 Bước 3: In ra màn hình “Đa thức F(x) phải > 0” và kết thúc Bước 4: Nếu n > 0 thì chuyển sang bước 5 Bước 6: Nhập các phần tử từ a0 → an và nhập x Bước 7: Tính toán dựa trên công thức F(x)=anxn + an-1xn-1 +…+a2x2 + a1x + a0 Bước 8: In ra kết quả và kết thúc b) Mã Nguồn Console.UTF8; int[] a = Nhap(); int kq = Tinh(a); Console.WriteLine("Đa thức có bậc >= 0"); return 0; } Console.WriteLine("Nhập x: "); int x = Convert.ReadLine()); int kq = a[0]; int mu = 1; for (int i = 1; i < a.Length; i++) { mu += x; kq += a[i] * mu; } return kq; } private static int[] Nhap() { 17 int n; Console.ReadLine()); } } else { a = null; } return a; BÀI 5. Phân Tích Input: Nhập vào số phần tử mảng N và các phần tử số nguyên tương ứng trong mảng. Output: Số lượng số âm, tổng số số âm, số lượng số dương, tổng số số dương trong mảng. Ví dụ: Input: Mời nhập vào số phần tử N của mảng: 6 Phần tử [0] của mảng: -2 Phần tử [1] của mảng: 4 Phần tử [2] của mảng: 6 Phần tử [3] của mảng: -8 Phần tử [4] của mảng: 4 Phần tử [5] của mảng: 1 Output: Số lượng số âm là: 2 18 Tổng số số âm là: -10 Số lượng số dương là: 4 Tổng số số dương là: 15 2.
Thuật Toán a) Mô Tả Thuật Toán Bước 1: Nhập số lượng phần tử N của mảng. Bước 2: Nhập lần lượt các giá trị số nguyên vào các thành phần A[i] trong mảng. Bước 3: Nếu A[i] > 0, demduong+=1, tongduong+=A[i], ngược lại thì qua bước 4 Bước 4: Nếu A[i] < 0, demam+=1, tongam+=A[i], nếu không thì qua bước 5. Bước 5: Nếu i<N, i=i+1 rồi quay lại bước 3.
Ngược lại thì qua bước 6. Bước 6: Thông báo giá trị của các biến demduong cho số lượng số nguyên dương, tongduong cho tổng số số dương, demam cho số lượng số nguyên âm, tongam cho tổng số số âm rồi kết thúc. b) Mã Nguồn while (true) { p2b2: try { Console.Write("Mời nhập vào số phần tử N của mảng: "); int n = int.