1. Trang chủ
  2. » Luận Văn - Báo Cáo

tiểu luận đồ án môn học cơ sở lập trình nhập vào 3 số biết rằng đó là số đo của 2 cạnh và góc nằm giữa hai cạnh của một tam giác hãy tính các số đo còn lại 1 cạnh và 2 góc

61 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Bài 1: Nhập các phần tử của một ma trận vuông cấp n, kiểm tra ma trận này có phảilà ma trận đối xứng qua đường chéo chính không?………27LỜI GIẢI CÁ NHÂN: BÙI LƯƠNG TRỌNG TRÍPhần 1.. Dùng mả

Trang 1

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Ế

Tp Hồ Chí Minh, Tháng 12 Năm 2023

Trang 2

MỤC LỤC

ĐỀ BÀI……….……… 2

PHÂN CHIA CÔNG VIỆC……… 4

LỜI GIẢI……… 5

LỜI GIẢI CÁ NHÂN: NGUYỄN HUY HOÀNG……… 5

Phần 1 Bài 6: Nhập vào 3 số, biết rằng đó là số đo của 2 cạnh và góc nằm giữa hai cạnh củamột tam giác Hãy tính các số đo còn lại (1 cạnh và 2 góc) ……….……….… 5

Phần 2 Bài 6: Dùng mảng 1 chiều để lưu số ngày của các tháng trong năm, chương trình nhập tháng t trong phạm vi từ 1-12, sau đó cho biết số ngày của tháng t…….……… 8

Phần 3 Bài 6: Nhập vào 2 ma trận A và B tính kết quả của C =A * Bmxnnxpmxpmxnnxp… …10

LỜI GIẢI CÁ NHÂN: NGUYỄN NHẬT BẢOPhần 1 Bài 2: 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. ……… ……….14

Phần 2 Bài 2: 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: F(x) = anXn + a + + a + a x + an-1Xn-12x210……….………… 16

Phần 3 Bài 2: Nhập các phần tử của ma trận Amxn , 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?……… ……… 19

LỜI GIẢI CÁ NHÂN: NGUYỄN LÊ ĐỨC TRÍPhần 1 Bài 1: Viết chương trình giải hệ phương trình sau:a1x + b y = c11a2x + b y = c22 ……… 21

Phần 2 Bài 1: Nhập dữ liệu vào mảng có n số nguyên Nhập số nguyên X In ra vị trí các phần tử trong mảng có giá trị bằng X……….…… 25

Phần 3 Bài 1: Nhập các phần tử của một ma trận vuông cấp n, kiểm tra ma trận này có phảilà ma trận đối xứng qua đường chéo chính không?………

27LỜI GIẢI CÁ NHÂN: BÙI LƯƠNG TRỌNG TRÍPhần 1 Bài 10: Một hình cầu có bán kính R và một hình trụ có bán kính r và chiều cao h Nếu bán kính của mỗi hình tăng lên gấp đôi, thì thể tích sẽ thay đổi như thế nào …… … 30

Phần 2 Bài 10: Nhập số hạng đầu tiên của cấp số cộng, công sai của cấp số cộng, số lượng phần tử cần in Sau đó in ra đây cấp số cộng này ……… …….………… 35

Trang 3

Phần 3 Bài 10: Nhập ma trận vuông cấp n In ra các phần tử của ma trận này theo phương

của đường chéo chính. ……….… 38

ĐỀ NHÓM: ĐỀ CHẴN – NHÓM 2……….……… … … 43

Cho 1 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ểmtrung 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ácphiếu điểm theo mẫu sau: -

BẢNG ĐIỂM TỐT NGHIỆPCấ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 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 <???> trong lớp.Hiệu Trưởng Trường Đại học ABC.Kí tên, Đóng dấu -

Trang 4

PHÂN CHIA CÔNG VIỆC

Bài 6 - phần 1, 2, 3 Nguyễn Huy HoàngBài 2 - phần 1, 2, 3 Nguyễn Nhật BảoBài 1 - phần 1, 2, 3 Nguyễn Lê Đức TríBài 10 - phần 1, 2, 3 Bùi Lương Trọng TríBài cho nhóm chẵn - phần 4 Cả nhóm cùng làmTrình bày đồ án và định dạng Word Cả nhóm cùng làmCheck đạo văn Turnitin Nguyễn Lê Đức Trí

Too long to read onyour phone? Save to

read later on yourcomputer

Save to a Studylist

Trang 5

LỜI GIẢI

PHẦN LỜI GIẢI CÁ NHÂN: NGUYỄN HUY HOÀNG

Phần 1- Bài 6.Nhập vào 3 số, biết rằng đó là số đo của 2 cạnh và góc nằm giữa hai cạnh của một tam giác Hãy tính các số đo còn lại (1 cạnh, và 2 góc)

1 Phân Tích

Để tìm các cạnh và góc của một tam giác thì

Đầu tiên xác định các cạnh, góc đã cho có thỏa điều kiện trở thành 1 tam giác chưaÁp dụng định lý hàm cos để tìm các cạnh, góc còn thiếu bằng công thức

2 Thuật Toána) Mô Tả Thuật Toán

Bước 1: để xuất tiếng việt dùng câu lệnh

Console.OutputEncoding = Encoding.Unicode; Console.InputEncoding = Encoding.Unicode;

Bước 2: nhập vào lần lượt số đo của cạnh A, cạnh B, số đo góc giữa hai cạnh A,B bằng các câu lệnh

Console.Write("nhập vào cạnh A: ");Console.Write("nhập vào cạnh B: ");Console.Write("nhập vào góc giữa A và B: ");

Bước 3: lưu các giá trị vừa nhập vào các biến a, b, A

a = Convert.ToInt32(Console.ReadLine()); ; b = Convert.ToInt32(Console.ReadLine()); ; A = Convert.ToInt32(Console.ReadLine()); ;

Bước 4: kiểm tra các giá trị vừa nhập có thỏa mãn điều kiện để tạo thành một tam giác không

(a < 0 || b < 0 || A >= 180)if {

Console.WriteLine("Tam giác không tồn tại"); return; }Bước 5: tính các giá trị yêu cầu

double c = Math.Sqrt(a * a + b * b - 2 * a * b * Math.Cos(A)); double C = Math.Acos((c * c + b * b - a * a) / (2 * c * b)); double B = 180 - A - C;

Bước 5: Xuất các giá trị

Console.WriteLine("số đo cạnh C= {0}", c); Console.WriteLine("số đo góc B= {0}", B); Console.WriteLine("số đo góc C= {0}", C);

Trang 6

b) Sơ Đồ Khối

Trang 7

c) Mã nguồn

using System.Text;namespace bai6._1{

internal classProgram {

static void Main(string[] args) {

Console.OutputEncoding = Encoding.Unicode; Console.InputEncoding = Encoding.Unicode; a, b, A;int

Console.Write("nhập vào cạnh A: "); a = Convert.ToInt32(Console.ReadLine()); ; Console.Write("nhập vào cạnh B: "); b = Convert.ToInt32(Console.ReadLine()); Console.Write("nhập vào góc giữa A và B: "); A = Convert.ToInt32(Console.ReadLine()); (a < 0 || b < 0 || A >= 180)if

{

Console.WriteLine("Tam giác không tồn tại"); return;

} else {

double c = Math.Sqrt(a * a + b * b - 2 * a * b * Math.Cos(A)); double C = Math.Acos((c * c + b * b - a * a) / (2 * c * b)); double B = 180 - A - C;

Console.WriteLine("số đo cạnh C= {0}", c); Console.WriteLine("số đo góc B= {0}", B); Console.WriteLine("số đo góc C= {0}", C); }

} }}

Trang 8

Phần 2- Bài 6 Dùng mảng 1 chiều để lưu số ngày của các tháng trong năm, chương trình nhập tháng t trong phạm vi từ 1-12, sau đó cho biết số ngày của tháng t1 Phân Tích

Khởi tạo mảng (soNgayThang) 1 chiều với kích thước 12, mỗi phần tử lưu số ngày của một tháng.

Nhập tháng t trong phạm vi từ 1-12.

Truy cập vào phần tử thứ t của mảng (soNgayThang) để lấy số ngày của tháng t.2 Thuật Toán

a) Mô Tả Thuật Toán

Bước 1: để xuất tiếng việt dùng câu lệnh

Console.OutputEncoding = Encoding.Unicode; Console.InputEncoding = Encoding.Unicode;

Bước 2: nhập vào tháng t

Console.Write("Nhập tháng : ");

Bước 3: lưu giá trị vừa nhập vào biến t

int t = Parse(Console.ReadLine());int

Bước 4: kiểm tra giá trị vừa nhập có thỏa điều kiện số tháng trong 1 năm không

if (t < 1 || t > 12) {

Console.WriteLine("Giá trị của tháng không hợp lệ!"); return;

}

Bước 5: Khởi tạo mảng (soNgayThang) 1 chiều với kích thước 12, mỗi phần tử lưu số ngày của một tháng

int[] soNgayThang = new int [] { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

bước 6: xuất ra màng hình số ngày của tháng vừa nhập

Console.WriteLine("Số ngày của tháng {0} là: {1}", t, soNgayThang[t - 1]);b) Mã nguồn

using System.Text;namespace ConsoleApp7{

internal classProgram {

static void Main(string[] args) {

Console.OutputEncoding = Encoding.Unicode; Console.InputEncoding = Encoding.Unicode; Console.Write("Nhập tháng : "); t = intint.Parse(Console.ReadLine());

Trang 9

Console.WriteLine("Giá trị của tháng không hợp lệ!"); return;

}

[] soNgayThang = intnew int [] { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; Console.WriteLine("Số ngày của tháng {0} là: {1}", t, soNgayThang[t - 1]); }

}}

Trang 10

Phần 3- Bài 6 Nhập vào 2 ma trận A và B tính kết quả của C =A * Bmxnnxpmxpmxnnxp

Bước 1: để xuất tiếng việt dùng câu lệnh

Console.OutputEncoding = Encoding.Unicode; Console.InputEncoding = Encoding.Unicode;

Bước 2: khởi tạo các biến i, j, k, r1, c1, r2, c2, sum = 0

i, j, k, r1, c1, r2, c2, sum = 0;int

Bước 3: khởi tạo các mảng ma trận 1, 2, ma trận tích

int[,] arr1 = new int [50, 50];int[,] arr2 = new int [50, 50];int[,] ma_tran_tich = new int [50, 50];

Bước 4: nhập số cột và hàng của ma trận 1

Console.WriteLine("Nhập số cột, hàng của ma trận 1"); Console.Write("Nhập số hàng: ");

r1 = Convert.ToInt32(Console.ReadLine()); Console.Write("Nhập số cột: "); c1 = Convert.ToInt32(Console.ReadLine());

Bước 5: nhập số cột và hàng của ma trận 2

Console.WriteLine("Nhập số cột, hàng của ma trận 2"); Console.Write("Nhập số hàng ");

r2 = Convert.ToInt32(Console.ReadLine()); Console.Write("Nhập số cột: "); c2 = Convert.ToInt32(Console.ReadLine());

Bước 6: kiểm tra các giá trị vừa nhập cho ma trận 1,2 có thỏa điều kiện của phép nhân ma trận

(c1 != r2)if {

Console.WriteLine("Không thể nhân hai ma trận !!!");

Console.Write("số cột của ma trận 1 phải bằng số hàng của ma trận 2");

Trang 11

Bước 7: nhập các thành phần của ma trận 1

Console.Write("Nhập các phần tử của ma trận 1:\n"); (i = 0; i < r1; i++)

for {

for (j = 0; j < c1; j++) {

Console.Write("phần tử - [{0}],[{1}]: ", i, j); arr1[i, j] = Convert.ToInt32(Console.ReadLine()); }

}

Bước 8: nhập các thành phần của ma trận 2

Console.Write("Nhập các phần tử của ma trận 2:\n");for (i = 0; i < r2; i++)

for (j = 0; j < c2; j++) {

Console.Write("Phần tử - [{0}],[{1}]: ", i, j); arr2[i, j] = Convert.ToInt32(Console.ReadLine()); }

Bước 9: in ra màn hình ma trận 1

Console.Write("\nIn ma trận 1:\n");for (i = 0; i < r1; i++){

Console.Write("\n"); for (j = 0; j < c1; j++) Console.Write("{0}\t", arr1[i, j]);}

Bước 10: in ra màn hình ma trận 2

Console.Write("\nIn ma trận 2:\n");for (i = 0; i < r2; i++){

Console.Write("\n"); for (j = 0; j < c2; j++) Console.Write("{0}\t", arr2[i, j]);}

Bước 11: tính tích hai ma trận

for (i = 0; i < r1; i++) for (j = 0; j < c2; j++) ma_tran_tich[i, j] = 0;

(i = 0; i < r1; i++)for

{

for (j = 0; j < c2; j++) {

sum = 0; for (k = 0; k < c1; k++) sum = sum + arr1[i, k] * arr2[k, j]; ma_tran_tich[i, j] = sum; }

}

Bước 12: in ra màn hình ma trận tích

Trang 12

for (i = 0; i < r1; i++) {

Console.Write("\n"); for (j = 0; j < c2; j++) {

Console.Write("{0}\t", ma_tran_tich[i, j]); }

}b) Mã Nguồn

using System.Text;namespace bai6_p3{

internal classProgram {

static void Main(string[] args) {

Console.OutputEncoding = Encoding.Unicode; Console.InputEncoding = Encoding.Unicode; i, j, k, r1, c1, r2, c2, sum = 0;int [,] arr1 = intnew int [50, 50]; [,] arr2 = intnew int [50, 50]; [,] ma_tran_tich = intnew int [50, 50];

Console.WriteLine("Nhập số cột, hàng của ma trận 1"); Console.Write("Nhập số hàng: ");

r1 = Convert.ToInt32(Console.ReadLine()); Console.Write("Nhập số cột: "); c1 = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Nhập số cột, hàng của ma trận 2"); Console.Write("Nhập số hàng ");

r2 = Convert.ToInt32(Console.ReadLine()); Console.Write("Nhập số cột: "); c2 = Convert.ToInt32(Console.ReadLine()); (c1 != r2)if

{

Console.WriteLine("Không thể nhân hai ma trận !!!");

Console.Write("số cột của ma trận 1 phải bằng số hàng của ma trận 2"); }

else {

Console.Write("Nhập các phần tử của ma trận 1:\n"); for (i = 0; i < r1; i++)

{

for (j = 0; j < c1; j++) {

Console.Write("phần tử - [{0}],[{1}]: ", i, j); arr1[i, j] = Convert.ToInt32(Console.ReadLine()); }

}

Console.Write("Nhập các phần tử của ma trận 2:\n"); for (i = 0; i < r2; i++)

{

for (j = 0; j < c2; j++) {

Console.Write("Phần tử - [{0}],[{1}]: ", i, j);

Trang 13

}

Console.Write("\nIn ma trận 1:\n"); for (i = 0; i < r1; i++) {

Console.Write("\n"); for (j = 0; j < c1; j++) Console.Write("{0}\t", arr1[i, j]); }

Console.Write("\nIn ma trận 2:\n"); for (i = 0; i < r2; i++) {

Console.Write("\n"); for (j = 0; j < c2; j++) Console.Write("{0}\t", arr2[i, j]); }

for (i = 0; i < r1; i++) for (j = 0; j < c2; j++) ma_tran_tich[i, j] = 0; for (i = 0; i < r1; i++) {

for (j = 0; j < c2; j++) {

sum = 0; for (k = 0; k < c1; k++) sum = sum + arr1[i, k] * arr2[k, j]; ma_tran_tich[i, j] = sum; }

}

Console.Write("\n Tích 2 ma trận là \n"); for (i = 0; i < r1; i++)

{

Console.Write("\n"); for (j = 0; j < c2; j++) {

Console.Write("{0}\t", ma_tran_tich[i, j]); }

} }

Console.Write("\n\n");

Console.ReadKey(); }

}}

Trang 14

PHẦN LỜI GIẢI CÁ NHÂN: NGUYỄN NHẬT BẢO

Búa, Búa thắng Kéo, Kéo thắng Bao.1 Phân Tích

Input: Lựa chọn của người chơi, lựa chọn ngẫu nhiên của máy: Bao, Búa hoặc Kéo Output: Kết quả so sánh lựa chọn, kết luận ai thắng ai thua.

2 Thuật Toána) Mô Tả Thuật Toán:

● Bước 1: Sử dụng lệnh Console.OutputEncoding = Encoding.UTF8;Điều này sẽ đảm bảo Console hỗ trợ ký tự Unicode

● Bước 2: Khởi tạo các biến

Khai báo biến LuaChonNguoiChoi, KetQua theo kiểu String để kết quả thu được là dạng chuỗi ký tự; đối với biến LuaChonMay thì theo kiểu Int:

● Bước 3: Nhận sự lựa chọn của người chơi

Người chơi có thể tùy chọn 1 trong 3 tùy chọn Bao, Búa, Kéo từ đầu vào của người dùng để bắt đầu trò chơi

Console.WriteLine(“Lựa chọn của bạn là gì? Bao, Búa hay Kéo?”);LuaChonNguoiChoi = Console.ReadLine();

Phương thức ReadLine() sẽ đọc ra một dòng chữ từ đầu vào của người dùng● Bước 4: Tạo lựa chọn ngẫu nhiên cho máy

Ta dùng Random để tạo một lựa chọn ngẫu nhiên của máy theo giá trị từ 0 đến 2 (0, 1, 2 tương ứng với Bao, Búa, Kéo)

● Bước 5: So sánh lựa chọn của người chơi và của máy

Ta sẽ dùng toán tử == để so sánh Nếu lựa chọn của người chơi và máy giống nhau, thì kết quả là “Hòa” Nếu lựa chọn của người chơi thắng lựa chọn của máy, thì kết quả là người chơi thắng Và nếu lựa chọn của máy thắng lựa chọn của người chơi, thì kết quả là máy thắng.

● Bước 6: Hiển thị kết quả trò chơi

Ta sẽ dùng phương thức WriteLine() để hiển thị kết quả của trò chơi:Console.WriteLine(“Kết quả: {0}”, KetQua);

Trang 15

// Nhận lựa chọn của người chơi

Console.WriteLine("Bạn chọn Bao, Búa hay Kéo:"); LuaChonNguoiChoi = Console.ReadLine(); // Tạo lựa chọn ngẫu nhiên của máy

Random random = new Random(); LuaChonMay = random.Next(0, 3);

Console.WriteLine("Lựa chọn của máy: {0}, (0: Bao, 1: Búa, 2: Kéo)", LuaChonMay); // So sánh lựa chọn của người chơi và máy

switch (LuaChonNguoiChoi) {

case"Bao": (LuaChonMay == 0)if {

KetQua = "Hòa"; }

else if (LuaChonMay == 1) {

KetQua = "Bạn thắng"; }

else {

KetQua = "Máy thắng";

Trang 16

case"Búa": (LuaChonMay == 1)if {

KetQua = "Hòa"; }

else if (LuaChonMay == 0) {

KetQua = "Máy thắng"; }

else {

KetQua = "Bạn thắng"; }

break; case"Kéo": (LuaChonMay == 2)if {

KetQua = "Hòa"; }

else if (LuaChonMay == 1) {

KetQua = "Máy thắng"; }

else {

KetQua = "Bạn thắng"; }

break; default:

KetQua = "Lựa chọn không hợp lệ"; break;

}

// Hiển thị kết quả của trò chơi

Console.WriteLine("Kết quả: {0}", KetQua); Console.ReadKey();

In ra kết quả đa thức này: F(x) = anXn + a + + a + a x + a

1 Phân Tích:

Input: Bậc n của F(x), giá trị xOutput: Giá trị của biểu thức F(x)

Trang 17

2 Thuật Toána) Mô Tả Thuật Toán:

● Bước 1: Nhập bậc của đa thức F(x)

Khai báo biến n theo kiểu số nguyên Int, rồi in ra màn hình

● Bước 2: Khởi tạo mảng a có kích thước n + 1 chứa các hệ số bậc x của đa thứcHệ số a[0] tương ứng với hệ số của x bậc 0, hệ số a[1] tương ứng với hệ số của x bậc 1, v.v

double[] a = new double[n + 1];

● Bước 3: Nhập các hệ số bậc x của đa thức F(x)

Các hệ số sẽ được nhập theo thứ tự từ bé đến lớn (nghĩa là hệ số của x bậc 0 nhập trước, sau đó tới x bậc 1, bậc 2,…v.v)

i = 0: F(x) = a[0]i = 1: F(x) = a[0] + a[1]xi = 2: F(x) = a[0] + a[1]x + a[2]x^2…

Và kết quả cuối cùng của F(x) là giá trị của đa thức tại x● Bước 6: In kết quả giá trị của đa thức F(x) ra màn hình

Ta dùng phương thức WriteLine(); để in ra kết quả

Trang 18

b) Mã Nguồn

static void Main(string[] args){

Console.OutputEncoding = Encoding.UTF8; // Nhập bậc của đa thức

n;int

Console.Write("Nhập bậc của đa thức: "); n = Convert.ToInt32(Console.ReadLine()); // Khởi tạo mảng chứa các hệ số của đa thức

double[] a = new double[n + 1]; // Nhập các hệ số của đa thức

Console.WriteLine("Nhập các hệ số của đa thức: "); for int ( i = 0; i <= n; i++)

{

Console.Write("Nhập hệ số của x bậc {0} = ", i); a[i] = Convert.ToDouble(Console.ReadLine()); }

// Nhập giá trị của x

double x;

Console.Write("Nhập giá trị của x: "); x = Convert.ToDouble(Console.ReadLine()); // Tính giá trị của đa thức

double f = 0; for int ( i = 0; i <= n; i++) {

f += a[i] * Math.Pow(x, i); }

// In ra kết quả của đa thức

Console.WriteLine("F(x) = {0}", f); Console.ReadKey();

}

Trang 19

Phần 3 – Bài 2 Nhập các phần tử của ma trận Amxn , 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?

1 Phân Tích

Input: Số hàng, số cột, số phần tử của ma trậnOutput: Ma trận có đối xứng qua trục giữa hay không?2 Thuật Toán

a) Mô Tả Thuật Toán:

● Bước 1: Sử dụng lệnh Console.OutputEncoding = Encoding.UTF8;Điều này sẽ đảm bảo Console hỗ trợ ký tự Unicode.

int[,] A = new int[m, n];

● Bước 4: Nhập vào các phần tử của ma trận

Sử dụng vòng lặp for để duyệt từng phần tử của ma trận Tại mỗi vị trí (i, j) chương trình sử dụng Console.Write() để hiển thị phần tử của ma trận và Convert.ToInt32() để chuyển đổi giá trị i,j được nhập từ người dùng thành kiểu dữ liệu int.

● Bước 5: Kiểm tra ma trận đối xứng qua trục giữa:

Để kiểm tra ma trận đối xứng qua trục giữa, chương trình sẽ duyệt từng phầntử của ma trận Tại mỗi vị trí (i, j) chương trình sẽ so sánh phần tử A[i, j] vớiphần tử A[m-i-1,n-j-1] Nếu hai phần tử này không bằng nhau, thì ma trận không đối xứng qua trục giữa Còn nếu hai phần tử này bằng nhau, thì chương trình sẽ tiếp tục duyệt phần tử tiếp theo.

Biến DoiXung được sử dụng để lưu kết quả kiểm tra Biến này được gán giá trị true ban đầu với kiểu dữ liệu bool Nếu chương trình tìm thấy một phần tử không đối xứng qua trục giữa, thì biến DoiXung sẽ được gán giá trị false và vòng lặp sẽ bị ngắt Ngược lại, nếu chương trình duyệt hết tất cả các phầntử mà không tìm thấy phần tử nào không đối xứng qua trục giữa thì biến DoiXung vẫn giữ nguyên giá trị true và ma trận được coi là đối xứng qua trục giữa.

● Bước 6: Hiển thị kết quả

Trang 20

Sử dụng lệnh if else để hiển thị kết quả:

- Nếu biến DoiXung có giá trị true thì chương trình hiển thị kết quả “Ma trận A đối xứng qua trục giữa.

- Nếu biến DoiXung có giá trị false thì chương trình hiển thị kết quả “Ma trận A không đối xứng qua trục giữa”.

b) Mã Nguồn

static void Main(string[] args){

Console.OutputEncoding = Encoding.UTF8; // Nhập số hàng và số cột của ma trận

Console.Write("Nhập số hàng của ma trận A: "); m = intint.Parse(Console.ReadLine()); Console.Write("Nhập số cột của ma trận A: "); n = intint.Parse(Console.ReadLine()); // Khởi tạo ma trận

[,] A = intnew int [m, n];

// Nhập vào các phần tử của ma trận

for int ( i = 0; i < m; i++) {

for int ( j = 0; j < n; j++) {

Console.Write("Nhập phần tử A[{0},{1}]: ", i, j); A[i, j] = Convert.ToInt32(Console.ReadLine()); }

}

// Kiểm tra ma trận đối xứng qua trục giữa

bool DoiXung = true; for int ( i = 0; i < m; i++) {

for int ( j = 0; j < n; j++) {

(A[i, j] != A[m - i - 1, n - j - 1])if {

DoiXung = false; break; } }

(!DoiXung) ifbreak; }

// Hiển thị kết quả

(DoiXung)if {

Console.WriteLine("Ma trận A đối xứng qua trục giữa."); }

else {

Console.WriteLine("Ma trận A không đối xứng qua trục giữa."); }

Console.ReadKey();}

Trang 21

LỜI GIẢI CÁ NHÂN: NGUYỄN LÊ ĐỨC TRÍ

Phần 1 - Bài 1 Viết chương trình giải hệ phương trình sau: a1x + b y = c11 a2x + b y = 2

1 Phân Tích

- Trong C#, để giải hệ phương trình bậc nhất hai ẩn ta dùng phương pháp Cramer Phương pháp Cramer là phương pháp tiếp cận đặc biệt khi hệ phương trình có số phương trình bằng số ẩn sử dụng các định thức của ma trận để giải, và hoàn toàn có thể áp dụng vào hệ phương trình bậc nhất hai ẩn Cách thực hiện như sau:

- Trước hết người dùng sẽ khai báo biến cho các hệ số a , b , c111,a2,b2,c ,2 D,Dx, Dy

- Sau đó người dùng sẽ nhập các hệ số a , b , c111,a2,b2,c2

- Sau khi người dùng nhập vào các hệ số từ bàn phím, chương trình sẽ tiến hành tính toánvà đưa ra kết quả về số nghiệm của hệ phương trình thiết lập được từ các hệ số đã cho.

2 Thuật Toána) Mô Tả Thuật ToánB1: Sử dụng dòng lệnh

Console.OutputEncoding = Encoding.UTF8;Để đảm bảo rằng Console có hỗ trợ ký tự Unicode.B2: Khai báo kiểu dữ liệu double cho các biến

B3:Nhập vào các hệ số a , b , c111 ,a2, 2b c, 2 và thiết lập hệ phương trình bậc nhất hai ẩnConsole.Write("Nhập hệ số a1: ");

a1 = double.Parse(Console.ReadLine());Console.Write("Nhập hệ số b1: ");b1 = double.Parse(Console.ReadLine());Console.Write("Nhập hệ số c1: ");c1 = double.Parse(Console.ReadLine());Console.Write("Nhập hệ số a2: ");a2 = double.Parse(Console.ReadLine());Console.Write("Nhập hệ số b2: ");b2 = double.Parse(Console.ReadLine());Console.Write("Nhập hệ số c2: ");c2 = double.Parse(Console.ReadLine());

Console.WriteLine("Hệ phương trình bậc nhất hai ẩn: \n{0}x + {1}y = {2} \n{3}x + {4}y = {5}", a1, b1, c1, a2, b2, c2);

B4: Sử dụng phương pháp Cramer để tính các định thức D, D , D xy

D = a1 * b2 - a2 * b1;Dx = c1 * b2 - c2 * b1;Dy = a1 * c2 - a2 * c1;

B5: Sử dụng cấu trúc điều khiển rẽ nhánh IF… ELSE để xét các trường hợp - Nếu (D != 0) thì

x = Dx / D;y = Dy / D;

Chương trình sẽ cho ra kết quả nghiệm của hệ phương trình

Trang 22

Console.WriteLine("Nghiệm của hệ phương trình trên là: (x; y) = ({0}; {1})", x, y);- Nếu (D == 0 && Dx == 0 && Dy == 0) thì chương trình sẽ thông báo hệ phương trình có vô số nghiệm qua câu lệnh

Console.WriteLine("Hệ phương trình trên có vô số nghiệm");

- Nếu (D == 0) và (Dx != 0 || Dy != 0) chương trình sẽ thông báo hệ phương trình vô nghiệm qua câu lệnh

Console.WriteLine("Hệ phương trình trên vô nghiệm");B6: Sử dụng câu lệnh

Console.ReadKey();

để kết thúc chương trình và in ra màn hình kết quả cuối cùng.

Trang 23

b) Sơ Đồ Khối

c) Mã Nguồn

using System;

Trang 24

namespace Phan1Bai1{

classPhan1Bai1 {

public static void Main() {

Console.OutputEncoding = Encoding.UTF8; double a1, a2, b1, b2, c1, c2, x, y, D, Dx, Dy; Console.Write("Nhập hệ số a1: "); a1 = double.Parse(Console.ReadLine()); Console.Write("Nhập hệ số b1: "); b1 = double.Parse(Console.ReadLine()); Console.Write("Nhập hệ số c1: "); c1 = double.Parse(Console.ReadLine()); Console.Write("Nhập hệ số a2: "); a2 = double.Parse(Console.ReadLine()); Console.Write("Nhập hệ số b2: "); b2 = double.Parse(Console.ReadLine()); Console.Write("Nhập hệ số c2: "); c2 = double.Parse(Console.ReadLine());

Console.WriteLine("Hệ phương trình bậc nhất hai ẩn: \n{0}x + {1}y = {2} \n{3}x + {4}y= {5}", a1, b1, c1, a2, b2, c2);

D = a1 * b2 - a2 * b1; Dx = c1 * b2 - c2 * b1; Dy = a1 * c2 - a2 * c1; (D != 0)if { x = Dx / D; y = Dy / D;

Console.WriteLine("Nghiệm của hệ phương trình trên là: (x; y) = ({0}; {1})", x, y); }

else if (D == 0 && Dx == 0 && Dy == 0) {

Console.WriteLine("Hệ phương trình trên có vô số nghiệm"); }

else if (D == 0 && (Dx != 0 || Dy != 0)) {

Console.WriteLine("Hệ phương trình trên vô nghiệm"); }

Console.ReadLine(); Console.ReadKey(); }

}}

Trang 25

Phần 2 - Bài 1 Nhập dữ liệu vào mảng có n số nguyên Nhập số nguyên X In ra vị trí các phần tử trong mảng có giá trị bằng X

2 Thuật Toána) Mô Tả Thuật ToánB1: Sử dụng câu lệnh

Console.OutputEncoding = Encoding.UTF8; Để đảm bảo rằng console hỗ trợ ký tự Unicode

B2: Nhập vào số lượng phần tử của mảng bằng hai câu lệnhConsole.Write("Nhập số lượng phần tử của mảng: ");int n = int.Parse(Console.ReadLine());

Với là kích thước của mảngn

B3: Khai báo mảng số nguyên có kích thước là nint n = int.Parse(Console.ReadLine());

Tiếp đến, sử dụng vòng lặp FOR để nhập từng phần tử cho mảng, với là đại diện choithứ tự phần tử của mảng

for (int i = 0; i < n; i++){

Console.Write("Phần tử {0}: ", i + 1); arr[i] = int.Parse(Console.ReadLine());}

B4: Nhập vào số nguyên X thông qua hai câu lệnhConsole.Write("Nhập số nguyên X: ");

int x = int.Parse(Console.ReadLine());Với là biến đại diện cho số nguyên Xx

B5: Sử dụng vòng lặp FOR lần nữa để duyệt qua từng phần tử của mảngConsole.Write("Các vị trí của phần tử có giá trị bằng {0} trong mảng là: ", x); for (int i = 0; i < n; i++)

{

if (arr[i] == x) {

Console.WriteLine("Vị trí {0}", i + 1); }

}

Kiểm tra nếu giá trị của phần tử tại vị trí bằng với giá trị của , thì in ra vị trí đó.i xB6: Sử dụng câu lệnh

Console.ReadKey();

Trang 26

để kết thúc chương trình và in ra màn hình vị trí các phần tử trong mảng có giá trị bằngsố nguyên X được cho trước.

b) Mã Nguồn

using System;using System.Text;namespace Phan2Bai1{

classPhan2Bai1 {

public static void Main() {

Console.OutputEncoding = Encoding.UTF8; Console.Write("Nhập số lượng phần tử của mảng: "); n = intint.Parse(Console.ReadLine());

[] arr = intnew int[n];

Console.WriteLine("Nhập giá trị cho từng phần tử của mảng:"); for int ( i = 0; i < n; i++)

{

Console.Write("Phần tử {0}: ", i + 1); arr[i] = int.Parse(Console.ReadLine()); }

Console.Write("Nhập số nguyên X: "); x = intint.Parse(Console.ReadLine());

Console.Write("Các vị trí của phần tử có giá trị bằng {0} trong mảng là: ", x); for int ( i = 0; i < n; i++)

{

(arr[i] == x)if {

Console.WriteLine("Vị trí {0}", i + 1); }

}

Console.ReadKey(); }

}}

Trang 27

Phần 3 - Bài 1 Nhập các phần tử của một ma trận vuông cấp n, kiểm tra ma trận này cóphải là ma trận đối xứng qua đường chéo chính không?

Console.OutputEncoding = Encoding.UTF8; Để đảm bảo rằng console hỗ trợ ký tự Unicode.

B2: Nhập vào số cấp của một ma trận vuông bằng hai câu lệnhConsole.Write("Nhập cấp của ma trận vuông: ");

int n = int.Parse(Console.ReadLine());Với là số cấp của ma trận vuông đó.n

B3: Khai báo và khởi tạo ma trận vuông kích thước n x n bằng câu lệnhint[,] matrix = new int[n, n];

Với int[,] là kiểu dữ liệu của mảng hai chiều, được sử dụng để lưu trữ dữ liệu của ma trậnvuông.

B4: Sử dụng vòng lặp FOR để duyệt qua các hàng và cột của ma trận, và nhập vào các phần tử cho ma trận vuông

Console.WriteLine("Nhập các phần tử của ma trận: ");for (int i = 0; i < n; i++)

for (int j = 0; j < n; j++) {

Console.Write("Phần tử [{0},{1}]: ", i + 1, j + 1); matrix[i, j] = int.Parse(Console.ReadLine()); }

B5: Tiếp tục sử dụng hai vòng lặp FOR để so sánh các phần tử qua đường chéo chính, kiểm tra xem ma trận có phải là ma trận đối xứng qua đường chéo chính khôngbool isSymmetric = true;

for (int i = 0; i < n; i++){

for (int j = 0; j < i; j++) {

if (matrix[i, j] != matrix[j, i])

Trang 28

{

isSymmetric = false; break;

} }

if (!isSymmetric) break;}

Nếu tìm thấy ít nhất một cặp phần tử không đối xứng, biến isSymmetric được đặt thành false.B6: Sử dụng câu lệnh điều kiện

if (isSymmetric){

Console.WriteLine("Ma trận là ma trận đối xứng qua đường chéo chính.");}

Console.WriteLine("Ma trận không phải là ma trận đối xứng qua đường chéo chính.");}

Để in ra kết quả dựa trên giá trị của biến isSymmetricB7: Sử dụng câu lệnh

classBai31 {

public static void Main() {

Console.OutputEncoding = Encoding.UTF8; Console.Write("Nhập cấp của ma trận vuông: "); n = intint.Parse(Console.ReadLine()); [,] matrix = intnew int [n, n];

Console.WriteLine("Nhập các phần tử của ma trận: "); for int ( i = 0; i < n; i++)

{

for int ( j = 0; j < n; j++) {

Console.Write("Phần tử [{0},{1}]: ", i + 1, j + 1); matrix[i, j] = int.Parse(Console.ReadLine()); }

}

bool isSymmetric = true; for int ( i = 0; i < n; i++) {

for int ( j = 0; j < i; j++) {

(matrix[i, j] != matrix[j, i])if {

isSymmetric = false; break; }

Trang 29

}

(isSymmetric)if {

Console.WriteLine("Ma trận là ma trận đối xứng qua đường chéo chính"); }

else {

Console.WriteLine("Ma trận không phải là ma trận đối xứng qua đường chéo chính"); }

Console.ReadKey(); }

}}

Trang 30

LỜI GIẢI CÁ NHÂN: BÙI LƯƠNG TRỌNG TRÍ

h Nếu bán kính của mỗi hình tăng lên gấp đôi, thì thể tích sẽ thay đổi như thế nào.1 Phân Tích:

Chương trình yêu cầu người dùng nhập bán kính của hình cầu, bán kính và chiều cao củahình trụ tròn Sau đó tính thể tích hình cầu và hình trụ tròn sau khi tăng gấp đôi bán kính.- Ta có công thức tính thể tích hình cầu và hình trụ tròn là:

Hình cầu:

Vcau = (4*π*R^3)/3Hình trụ tròn:

Vtru1(sau khi tăng gấp đôi bán kính) = π*h*(2*r)^2= 4*π*h*r^2= 4*Vtru

- Tính sự thay đổi thể tích của hình cầu và hình trụ tròn sau khi tăng bán kính là:Hình cầu: Vcau2 = Vcau1 - Vcau = 8*Vcau - Vcau = 7*Vcau = 7*(4*π*R^3)/3Hình trụ tròn: Vtru2 = Vtru1 - Vtru = 4*Vtru - Vtru = 3*Vtru = 3*π*h*r^22 Thuật Toán:

a) Mô Tả Thuật ToánBước 1: Sử dụng

Console.InputEncoding = Encoding.Unicode;Console.OutputEncoding = Encoding.Unicode;

Để đảm bảo rằng Console có thể nhận và xử lý các ký tự Unicode khi nhậptừ bàn phím và hiển thị các ký tự của Unicode đúng cách khi in ra màn hình.

Ngày đăng: 20/06/2024, 16:48

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w