Phân Tích Nếu người chơi và máy tính chọn giống nhau thì xuất kết qua "Hoa".. Nếu người chơi ra Kéo thì Thông báo "Người chơi thắng "nếu máy tính ra Bao Ngược lại thông báo người chơi th
Trang 1
BO GIAO DUC VA DAO TAO
DAI HOC KINH TE TP HO CHi MINH (UEH)
TRUONG CONG NGHE VA THIET KE
wl «
ĐỎ ÁN MÔN HỌC
CƠ SỞ LẬP TRÌNH
Sinh Viên NGUYÊN THI HUYEN TRAM
NGUYEN CAP BAO HUYEN Chuyén Nganh :AN TOAN THONG TIN
Khóa : K49 Giang Vién: TS Dang Ngoc Hoang Thanh
Tp Hồ Chí Minh, Ngày 24 tháng 11 năm 2023
Trang 2MUC LUC MỤC LỤC 5 5s 222 HH HH TH HH tt HH Hà H21 Hee re 2
Phần Ì -22-22s22112211217122122 1212211221221 HE ng tra 3 Phần 2 - 2-2222 1221112112171 222122212112 1 H1 n2 rau 3 Phan 3 occ ecccecccecsecssecsvecsvessesssscssesssessvecsressecssesssessussssessisssiearesssesavessresseessesevesssesaressneanessese 3 Phần 4 ooo ccc cecceecsecssecsvecsvessesssscsressscsvecsressecssesssesssessuessusssisaresssesavesaressvesseseseessesanessneannesseee 3 PHAN 5 ooo eeccecceecsecssecsvessvessesssscssessscssvecssessecssesssesssessiessnsssisaresssesavessressesseseseessesssessneanessese 3 Phần 6 - 2+ 2222122111211 1712212210211 1 HE Hee 4
LỜI GIẢI 55 2 22E2212221211221121121102 2212122222211 eerrea 5 BÀI Í 2225222122 2221 2E HH1 T122 HH2 t2 212 11t rrreưe 5
Phân Tích - 55+ cEE112E11271122T107 TỰ 2 1 1n tr HH reo 5
2 Thuật Toán -: 2s 22122 1122111271122 1211022122 E tr ren H2 1 tr re e 5
Trang 3Có n + 1 dấu căn Trong đó n là số thứ tự của tên bạn trong danh sách, ví dụ, bạn có số thứ tự
là 1,11,21, thì n = 1, như yêu cầu đầu tiên.(n=2)
Ví dụ S=”Bong chang chon luot qua ngon che”; s1="ch”; s2="tr”
Kết quả in ra “Bong trang tron luot qua ngon tre”
Trang 4Phan 6
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ử đữ liệu của mảng gồm có ít nhất 5 phan tử Hãy in ra toàn bộ các phiếu điểm theo mẫu như sau:
BANG DIEM TOT
NGHIEP
Cap cho sinh vién <hotén>, nam sinh <nam sinh>
Trong kì thi tốt nghiệp 2021, sinh viên trê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 <??2> trong lớp
Hiệu Trưởng Trường Đại học ABC
Kí tên, Đóng dấu
Trang 5LOI GIAI
BÀI 1
Phân Tích
Nếu người chơi và máy tính chọn giống nhau thì xuất kết qua "Hoa"
Nếu người chơi ra Kéo thì
Thông báo "Người chơi thắng "nếu máy tính ra Bao
Ngược lại thông báo người chơi thua
Nếu người chơi ra Bao thì
Thông báo "Người chơi thắng "nếu máy tinh ra Bua
Ngược lại thông báo người chơi thua
Nếu người chơi ra Búa thì
Thông báo "Người chơi thắng "nếu máy tính ra Kéo
Ngược lại thông báo người chơi thua
2 Thuật Tuán
a) Mô lả Thuật Toán
Khởi gán lựa chọn của máy tính (ComputerChoice) băng một giá trị số nguyên bắt kì nằm trong
khoảng (1,3), đại diện cho Kéo, Búa, Bao, cụ thé:
1: Kéo
2: Bua
3: Bao
Nếu lựa chọn không hợp lệ thì xuất kết quả “Lựa chọn không hợp lệ Chỉ chấp nhận lựa chọn là
số nguyên từ 1-3 Vụi lòng chọn lạt” Nếu lựa chọn hợp lại thì thực hiện bước tiếp theo
Gọi (ComputerChoice, PlayerChoice) là các cặp số nguyên khả thi Thực thi câu lệnh if:
Nếu ComputerChoice = PlayerChoice thì xuất kết quả Hoà
Xuất kết quả “Người chơi thắng” trong khi có các bộ số sau: (3,1),(1,2) và (2.3)
Ngược lại thì xuất kết quả “Người chơi thua”
Algorithm 1 Thuật toán trỏ chơi kéo búa bao
Require: 1<n<3
Trang 6if PlayerChoice == ComputerChoice then
Trang 7Console WriteLine("Nhap lwa chọn cua ban:");
Console WriteLine("[1] Kéo\t[2] Bua\t[3] Bao\t"); ConsoleKeyInfo key; int Player; key =
Console.ReadKey(true); string num = key.KeyChar.ToString(); if (int TryParse(num, out Player)
== false)
{
Console.ClearQ;
Console WriteLine("Lya chon của bạn không tồn tại Chi chấp nhận lựa chọn là số
,—> nguyên từ 1-3 Vui lòng chọn lại "); øoto reinputl_ 1;
} string PlayerChoiceName = Player== 1? "Kéo" : Player == 2 ? "Bua" : Player == 3 ? ,—> "Bao": "";
if (Player > 0 & Player < 4) if (Player == Computer)
Console WriteLine("Lya chon cua bạn là {0}, lựa chọn của máy là {1} Kết qua: ,—> Hòa”,
Trang 8“i + "oy ant ntl
với n là số nguyên do người dùng nhập vào
2 Thuật Toán
a) Mô lả Thuật Toán
Yêu cầu người dùng nhập vào số thứ tự có đạng số nguyên n Xuất thông báo "Chỉ chấp nhận số nguyên đương khác 0 Vui lòng nhập lại."nếu đữ liệu đầu vào không hợp lệ Ngược lại thực hiện bước tiếp theo
Lấy số cuối cùng của số thứ tự bằng cách thực hiện phép chia lấy phần dư
Dùng vòng lặp for dé tinh giá trị biểu thức, với i>1 và i giảm dẫn (i-)
Algorithm 2 Thuật toán tính biểu thức P
Console Write("Nhap vao n: ");
string num = Console.ReadLine();
Trang 9a) Mlô Tả Thuật Toản
Yêu cầu người dùng nhập vào bậc n cao nhất của đa thức cần tính Nếu lựa chọn không hợp
lệ thì xuất kết quá "Chỉ chấp nhận số nguyên đương khác 0 Vui lòng nhập lại "Ngược lại ta
thực hiện bước tiếp theo
Sử dụng vòng lặp for, khởi gán ¿ = ø, điều kiện dừng ï > 0 Yêu cầu người dùng nhập vào các
hệ số tương ứng cho từng bậc ø,# — l, và hệ số tự do Nếu lựa chọn không hợp lệ thì xuất
kết quả "Nhập sai Chỉ chấp nhận số Vui lòng nhập lại "Ngược lại ta thực hiện bước tiếp theo
Trang 10Yêu cầu người dùng nhập vào giá trị của x Thực hiện phép tính ở bước tiếp theo, néu input không hợp lệ thì xuất thông báo “"Nhập sai Chỉ chấp nhận số Vui lòng nhập lại.”
Sử dụng vòng lặp for, với mỗi giá trị, tính giá trị zesulf = resuit + F[i] + Xĩ
Algorithm 3 Thuật toán tính biểu thire F(x)
Require: degree > 0
Require: X
for i=level down to 0 do
Nhập vào hệ số của hạng bac i
end for
for i= level,, 1 down to 0 do
result= result +Fi + Xi
Console Write("Nhap vào bậc của đa thức: ");
string num = Console.ReadLine();
int level;
if (int TryParse(num, out level) == false)
Console.WriteLine("Chỉ chấp nhận số nguyên dương khác 0 Vưi lòng nhập lại.");
double[] F = new double[level + 1];
for (int 1 = level; i > 0; i )
{
reinput3 2:
Console Write("Nhap vào hệ số của số hạng bậc {0}: ", 1);
Trang 11num = Console.ReadLineQ);
if (double TryParse(num, out F[i]) == false)
Console WriteLine("Nhap sai Chi chap nhận số Vui lòng nhập lại.");
for (int 1 = level; 1 >= 0; 1 )
result = result + F[i] * Math Pow(X, 1);
Console WriteLine("Két qua: {0}", result);
BÀI 4
1 Phâm Tích
Dùng vòng lặp for, kiểm tra phan tt a[/] và với giá trị tương ứng (đối xứng qua trục đọc, trục ngang) Nếu bằng nhau thì ma trận là đối xứng qua trục giữa, ngược lại ma trận không đối xứng
Ví dụ: Kiểm tra tính đối xứng qua trục giữa của ma trận:
Trang 123 duoc tinh bang cach lay số phần tử hàng ?—1—đex của giá tri i dang xét: 4-1-0 =3
Ta thấy cá bốn phần tử đều bằng nhau nên ma trận A đối xứng qua trục đọc
2 Thuật Toán
a) Mô lả Thuật Toán
Khai báo máng hai chiều double a Yêu cầu người dùng nhập vào từng phần tử tương ứng Kiểm tra đối xứng qua trục dọc Với mỗi 7 = 0 vai < tổng số phân tử của hàng, với mỗi /,
thực hiện:
Kiém tra phan tr a[i][j] voi phần tử tương ứng đối xứng qua trục đọc là a[i][Số phần tử của hàng - 1 - j] Nếu có cặp hai giá trị không bằng nhau thì xuất thông báo "Ma trận không đối xứng qua trục dọc", ngược lại xuất thông báo "Ma trận đối xứng qua trục dọc"
Kiểm tra phân tử a[i][j] với phần tử tương ứng đối xứng qua trục ngang là a[Số phần tử của hàng - 1 - j][¡] Nếu có cặp hai giá trị không bằng nhau thì xuất thông báo "Ma trận không đối xứng qua trục ngang", ngược lại xuất thông báo "Ma trận đối xứng qua trục ngang"
Algorithm 4 Thuật toán kiểm tra tính đối xứng của ma trận
Require: Số dòng của ma trận siZeM
Require: Số cột cua ma tran sizeN
Require: Cac phan tt acta ma tran
->Kiém tra d6i xứng trục đọc
for 1=0 up to number of rows do
for j=0 up to number of columns do
->Kiểm tra đối xứng trục ngang
for 1=0 up to number of columns do
for j=0 up to number of rows do
Trang 13string num = Console.ReadLine();
if (int TryParse(num, out size) == false)
double[][] matrix = new double[size]|[];
for (int 1 = 0; 1< size; i++)
matrix[i] = new double[size];
for (int 1 = 0; 1< size; i++)
Trang 14Console.WriteLine("Nhập sai Chỉ chấp nhận số Vui lòng nhập lại."); goto reinput4 2;
}
for (int i= 0; i < size; i++)
{
for (int j = 0; | < size; j++)
Console Write("{0,5}", matrix[i][j]);
Console WriteLine();
}
for (int i= 0; i < size; i++)
for (int } = 0; ) < size; j++)
Viết chương trình thay thế xâu 1 thành xâu 2 từ xâu ngẫu nhiên người đùng nhập vào
Yêu cầu người dùng nhập vào xâu §
Yêu cầu người dùng nhập vào xâu con S1
Trang 15Yêu câu người dùng nhập vào xâu 82
Thực thi hàm outstring để thay thế xâu S1 thành xâu S2 trong xâu S
2 Thuật Toán
a) Mô lả Thuật Toán
Mô tả thuật toán
Khai báo string S là xâu gốc người dùng nhập vào
Khai bao string S; la xâu con trong xâu gốc muốn thay thế
Khai báo string S› là xâu thay thé
Khi tìm được xâu Š¡ trong xâu S thi S IndexOf(s1) tra vé giá trị lớn hơn hoặc bang 0
Thực hiện xoá n kí tự (độ đài của 6) tại vị trí lấy được từ index
Điền xâu % vào SŠ tai vi tri index
string output = S Replace(s1, s2);
Console.WriteLine("Xâu sau khi được xu ly: " + output);
15
Trang 16Khởi tạo biến amount là số lượng sinh viên người dùng nhập vào (và là số nguyên)
Dùng vòng lặp for với điều kiện dừng i<amount, yêu cầu người dùng nhập thông tin cho sinh viên thứ 1
Dùng vòng lặp for với điều kiện dừng j < 3 (do có 3 phần tử gồm họ tên, năm sinh, điểm trung bình cân được thêm vào máng) Sử dụng câu lệnh switch-case đề nhập vào từng loại phân tử, xuất ra các thông báo nhập lại nêu dữ liệu nhập vào không hợp lệ, ngược lại thưc hiện bước tiệp theo
Khởi tạo biến score là điểm của từng sinh viên trong máng Sử dụng câu lệnh if để xếp loại
tốt nghiệp sinh viên Nếu điểm >= 8 thì xếp loại GIỏi, >=6.5 và <8 thì xếp loai Kha, >=5 va
<=6.5 thì xếp loại Trung bình, ngược lại xếp loại Yếu
Hàm sắp xếp
Xép hang sinh viên dựa trên điểm trung bình: Vòng lặp for ¡ từ đầu đến cuối mảng, j từ vị trí
kề sau ¡ đến cuối máng Nếu j có điểm tổng kết lớn hơn ¡ thì đổi vị tri cho nhau bằng biến
tam Tra về biến z[7][4] là mảng theo thứ tự đã sắp xếp
Trang 17loai = "Kha"
else if 5<=score<6.5 then
loai = "Trung binh"
Console Write("Nhap ho tén sinh vién: ");
a[i][j] = Console ReadLineQ);
>_ Thuật toán sắp xếp
17
Trang 18Console Write("Nhap nam sinh sinh vién: "); input = Console.ReadLine(Q);
if (int TryParse(input, out num) == false)
Trang 19else if (score >= 5 & score < 6.5)
a{i][3] = "Trung Binh";
else a[i][3] = "Yếu";
order(a, amount);
}
static void order(object[][] a, int amount)
t
object[] temp = new object[5];
for (int 1 = 0; 1 < amount - 1; 1++)
for (int j = amount - 1; j > 1; j )
Trang 20Console WriteLine("BANG DIEM TOT NGHIEP\n");
Console WriteLine("Cap cho sinh vién {0}, nam sinh {1}.\n", (string)a[0], a[1]);
Console WriteLine("Trong ki thi tot nghiép 2021, sinh viên trén da dat diém trung binh la {0},
và được xép loai {1} Sinh viên có thir hang {2} trong lép.\n", a[2], (string)a[3], a[4]); Console.WriteLine("Hiệu Trưởng Trường Đại học ABC \n\nKi tén, Dong dau.\n");
Console.Write("Nhap vao số lượng sinh viên: ");
string num = Console.ReadLine();
if (int TryParse(num, out amount) == false)
Trang 21object[][] listsv =new object[amount][];
for (int 1 = 0; 1 < amount; i++)
listsv[i] = new object[5];
import(listsv, amount);
exportlist(listsv, amount);
21
Trang 22UNG DUNG
Chụp ảnh ứng dụng khi chạy (theo trình tự các bài)
Hiền thị menu :
TRÌNH STNH VIEN : NGUYEN TKT HUYEN TRAM
Novyen CAP BAO HUYE
KÉO - BÚA BAO
Nhập Lựa chọn của bạn:
[1] Héo [2] Búa [3] Bao
Lựa chọn của bạn Là Búa, tựa chọn của máy Là Hẻo Hết quả: Bạn
Nhấn [1] để quay tại menu, nhấn phím bất kì để thoát:
Hình 2 - Hiển thị kết quả bài 1
22
Trang 23Hién thi két qua bai 2, voi n=2
Hinh 3 : Hién thi két qua bài 2 Hién thị kết quả bài 3, với đa thức bậc 4 và các hệ số lần lượt là: 4,3,2,1, hệ số tự do là 1 và x = 2
Nhập vào bậc của đa thức
chỉ ch nhận số nguyên dương khác 9 Vui tòng nhập tại
Hiển thị kết quả bài 4, nhập một ma trận m x n = 3
Hình 5 : Hiển thị kết quả bài 4
Hiên thị kết quả bài 5 , với xâu gốc S=“Bong chang chon luot qua ngon che”, xâu cần thay thé S1= “ch”, xâu thay thế =“tr”
23
Trang 24Nhập vào xá s1: C
Nhập vào xấu con s2
Xâu sau khi được xử tỷ: Bong trang tron 1uot qua ngon tre
Nhấn [1] để quay tại nenu, nhấn phím bất kì để thoát:
Hình 6 : Hiển thị kết quả bai 5
Hiền thị kết quá bài 6 :
Kết quả màn hình hiển thị , nếu nhập số lượng sinh viên dưới 5, cụ thé là 4
Hình 7.1 : Màn hình hiển thị số lượng sinh viên nếu dưới Š
Nhập số lượng 5 sinh viên:
Trang 26PHU LUC
Ma nguồn toàn bộ chương trình
using System;
using System Text;
using System Threading;
Console WriteLine("KEO - BUA - BAO\n");
int Computer = new Random().Next(1, 3);
string ComputerChoiceName = Computer = | ? "Kéo"
"Bao";
reinputl 1:
Console WriteLine("Nhap lựa chọn của ban:");
Console WriteLine("[1] Kéo\t[2] Bua\t[3] Bao\t");
ConsoleKeyInfo key;
int Player;
key = Console.ReadKey(true);
string num = key.KeyChar.ToString();
if (int TryParse(num, out Player) == false)
{
Console.Clear();
Console WriteLine("Lya chon cua ban khong ton tai Chi chap nhận lựa chọn
là số nguyên từ 1-3 Vui long chon lai.");
goto remputl_1;
: Computer == 2 ? "Bua" :
26