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

tiểu luận đồ án môn họccơ sở lập trình giải phương trình trùng phương ax4 bx2 c 0

18 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

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 3: Nhập các phần tử của một ma trận A , in ra ma trận phản chiếu.mxnBài 4: Cho

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Ế

Nguễn Nữ Nhân Hậu Đỗ Thùy Vân

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

Trang 2

ĐỀ BÀIBài 1: Giải phương trình trùng phương: ax + bx + c = 042

Bài 2: Nhập vào một mảng 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 3: Nhập các phần tử của một ma trận A , in ra ma trận phản chiếu.mxn

Bài 4: Cho mảng nhiều chiều gồm có các thông tin liên quan đến khách lưu trú ở khách

sạn Khách gồm các thông tin: họ tên, số ngày ở, số bữa ăn, tiền ở (1 ngày), tiền ăn (1bữa), phí phục vụ Phân tích và viết chương trình tính tiền trọ khách sạn In hóa đơn tínhtiền lên màn hình có mẫu sau:

***********************************************************************Khách sạn Five Starts

Hóa đơn khách sạn

Qúi Ông(Bà): ???????????????????

Số ngày ở: ????? Số bữa ăn: ?????

Tiền ở: ??????? Tiền ăn: ??????? Phí phục vụ: ???????Tổng cộng: ???????????????

Hân hạnh phục vụ quý khách

************************************************************************

Trang 3

LỜI GIẢIBÀI 1.

INPUT: các tham số a, b, c được nhập từ bàn phím.OUTPUT: tập nghiệm của phương trình ax + bx + c = 0.422 Thuật Toán:

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

Bước 1: Yêu cầu người dùng nhập các tham số a,b,c Giải phương trình bậc hai có dạngat2 + bt + c = 0 được đưa về từ phương trình trùng phương ax + bx + c = 0.42

Bước 2: Giải phương trình và in kết qủa các nghiệm của phương trình: kiểm tra a và chiara các trường hợp nếu có của phương trình sau đó giải và in số nghiệm x1, x , x23, x4 vừatìm được.

Bước 3: Xét trường hợp, khi a = 0 phương trình sẽ trở thành phương trình bậc nhất bt + c= 0 và kiểm tra và biện luận các trường hợp sau :

 b = 0 && c = 0 thì chương trình sẽ in ra “Phương trình có vô số nghiệm”. b == 0 && c!=0 thì chương trình sẽ in ra “Phương trình vô nghiệm”.

 c != 0 thì giải chương trình như phương trình bậc nhất, bằng cách: tính t = −bcvàkiểm tra t Nếu t≥0 thì phương trình in ra 2 nghiệm x , x là 12 ± √ và ngược lại sẽ inra màn hình “Phương trình vô nghiệm”.

Bước 4: Xét trường hợp, khi a != 0 thì giải chương trình bậc hai: at + bt + c = 0.2Tính đenta ∆= b*b - 4*a*c và kiểm tra các trường hợp của ∆có thể xảy ra:

 Nếu ∆ < 0 thì chương trình in ra “phương trình vô nghiệm”. Nếu ∆ == 0 thì thực hiện tính nghiệm kép t = t = 12

2 a sau đó kiểm tra t nếu t≥0 thìphương trình in ra 2 nghiệm x1,x2 là ± √ và ngược lại nếu không thỏa mãn điềukiện sẽ in ra “Phương trình vô nghiệm”.

Trang 4

 Trong trường hợp, ∆ > 0 thì thực hiện tính 2 nghiệm t , t với t = 12 1−b+√ ∆

2 và t =2−b−√ ∆

2 Sau đó, chương trình sẽ kiếm tra t và t có thỏa mãn điều kiện t ≥ 0 ban12đầu không và phân chia các trường hợp của t và t để in ra nghiệm x , x , x , x 121234một cách phù hợp nhất theo những điều kiện ban đầu.

S Nhập a, b, c

Bắt đầu

a = 0 t = x2

Too long to read onyour phone? Save to

read later on yourcomputer

Save to a Studylist

Trang 5

Phương trình vônghiệm

Phương trình có 2nghiệm: t =1−b+√ ∆

2 , t =2b √

Phương trình cónghiệm kép: t = t12

= −2 ab

t ≥ 0

x1 = √ t , x = -2 √ t t ≥ 0 và1

t2 ≥ 0

t1 ≥ 0 vàt2 < 0

x1 = √ t 1 , x2 = - √ t 1 ,x3 = √ t 2 , x = -4 √ t 2

Phương trình vônghiệm

Trang 6

\c) Mã Nguồn:using System;using System.Text;classbt1

static public void Main() {

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

Console.WriteLine("Hãy nhập 3 tham số a,b,c của phương trình trùng phương:"); double a, b, c, t1, t2, denta;

double x1, x2, x3, x4;

a = double.Parse(Console.ReadLine()); b = double.Parse(Console.ReadLine()); c = double.Parse(Console.ReadLine());

x1 = √ t 1x2 = −√ t 1

Kết thúc t1 < 0 và

t2 ≥0

x1 = √ t 2x2 = −√ t 2

t1 < 0 vàt2 ¿0

Phương trình vônghiệm

Trang 7

(a == 0)if {

(b == 0 && c == 0) Console.Write(if "Phương trình vô số nghiệm"); else if (b == 0 && c != 0) Console.WriteLine("phương trình vô nghiệm"); else

{ t1 = -c / b; (t1 > 0)if {

x1 = Math.Sqrt(t1); x2 = Math.Sqrt(t1) * -1;

Console.WriteLine("Nghiệm của phương trình là x1 = " + x1 + "; x2 = " + x2); }

(t1 == 0) Console.Write(if "Nghiệm của phương trình là x1 = x2 = 0"); else Console.Write("Phương trình vô nghiệm");

} } else {

(t1 < 0) Console.WriteLine(if "phương trình vô nghiệm");

else if (t1 == 0) Console.Write("Nghiệm của phương trình là x1 = x2 = 0"); else

{

x1 = Math.Sqrt(t1); x2 = Math.Sqrt(t1) * -1;

Console.Write("Nghiệm của phương trình là x1 =" + x1 + "; x2 = " + x2); }

} else {

t1 = (-b + Math.Sqrt(denta)) / (2 * a); t2 = (-b - Math.Sqrt(denta)) / (2 * a); (t1 < 0 && t2 < 0)if

{

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

(t1 > 0)if {

x1 = Math.Sqrt(t1); x2 = Math.Sqrt(t1) * -1;

Console.Write("Nghiệm của phương trình là x1 =" + x1 + "; x2 = " + x2);

Trang 8

} (t1 == 0)if {

x1 = x2 = 0;

Console.Write("Nghiệm của phương trình là x1 = x2 = " + x1); }

(t2 > 0)if {

x3 = Math.Sqrt(t2); x4 = Math.Sqrt(t2) * -1;

(t1 >= 0) Console.WriteLine(if "; x3 = " + x3 + "; x4 = " + x4);

else Console.WriteLine("Nghiệm của phương trình là x1 =" + x3 + "; x2 = " + x4); }

(t2 == 0)if {

BÀI 2.

1 Phân Tích:

Để có thể giải quyết bài tập này, trước tiên cần sử dụng vòng lặp lần lượt duyệt qua nsố, nếu đó là một số nguyên âm thì tiến hành cộng vào biến tổng âm đồng thời biến tínhsố âm sẽ tăng thêm 1 Ngược lại, nếu đó là một số nguyên dương thì sẽ thực hiện cộngvào biến tổng dương và lúc này số số dương cũng sẽ tăng thêm 1 Ngoài ra, nếu trong nsố nhập vào có số 0 là một số không âm không dương thì sẽ không thực hiện câu lệnh nàocả.

INPUT: Mảng n số nguyên được nhập từ người dùng.

OUTPUT: số lượng số âm, tổng số số âm, số lượng số dương, tổng số số dương trongmảng.

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

Bước 1: Khai báo các biến cần thiết trong chương trình và thực hiện gán giá trị ban đầucho tổng âm, tổng dương, số số âm và số số dương bằng 0.

Trang 9

Bước 2: Yêu cầu người dùng nhập các số nguyên n sau đó tạo thành mảng có n phần tử.Bước 3: Sử dụng vòng lặp for để lặp n lần Yêu cầu người dùng nhập phần tử thứ i với i =1,2,…,n từ bàn phím cho mảng đồng thời thực hiện kiểm tra phần thứ a[i], nếu:

 a[i] > 0 thì biến tổng dương thêm một lượng là a[i] và biến đếm số dương sẽ tănglên 1.

 a[i] < 0 thì biến tổng âm tăng thêm một lượn là a[i] đồng thời biến đếm số âm tăngthêm 1.

 a[i] = 0 thì chương trình không làm gì cả vì số 0 là một số không âm không dương.Bước 4: Kết thúc vòng lặp và in ra màn hình các thông số theo đúng yêu cầu của đề bàigồm có: số lượng số âm, tổng số số âm, số lượng số dương, tổng số số dương.

b) Mã Nguồn:using System;using System.Text;using System.Threading;classbt2

static void Main() {

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

demam = 0, demduong = 0, tongam = 0, tongduong = 0;int Console.WriteLine("Nhập số phần tử của mảng"); n = Parse(Console.ReadLine()); int int // 1 2 3 4 -3 -5 -2 [] mang = int new int [n];

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

Console.WriteLine("Nhập phần tử thứ " + i); mang[i] = int.Parse(Console.ReadLine()); (mang[i] < 0)if

{

demam += 1; tongam += mang[i]; }

(mang[i] > 0)if {

demduong += 1; tongduong += mang[i]; }

}

Console.WriteLine("Số lượng số âm: " + demam); Console.WriteLine("Tổng số số âm: " + tongam); Console.WriteLine("Số lượng số dương: " + demduong); Console.WriteLine("Tổng số số dương: " + tongduong);

Trang 10

}}

BÀI 3

1 Phân Tích:

Để thực hiện đề bài này, trước hết cần yêu cầu người dùng nhập kích thước matrận, nếu kích thước ma trận không phải là một ma trận vuông thì in ra màn hình matrận không hợp lệ vì trong đại số tuyến tính, ma trận phản chiếu hay ma trận đối xứngđược định nghĩa là một ma trận vuông và bằng chính ma trận chuyển vị của nó Điềunày đồng nghĩa với việc trước hết để tồn tại tính phản chiếu, ma trận khởi tạo phảithỏa mãn điều kiện là một ma trận vuông có dạng Anxn

Người dùng cần nhập vào kích cỡ kiểu số nguyên int cụ thể (m: số dòng, n: số cột)của ma trận Dựa vào kích cỡ đã nhập, hệ thống tiến hành so sánh m và n Nếu giá trịcủa m khác n nghĩa là ma trận không thỏa điều kiện nên không tồn tại ma trận phảnchiếu; ngược lại nếu giá trị của m bằng n thì tồn tại ma trận phản chiếu và tiếp tụcchương trình Nhằm mục đích in ra ma trận phản chiếu, mảng hai chiều được khởi tạođể lưu trữ dữ liệu Các phần tử trong mảng hai chiều được truy xuất thông qua hai chỉsố phần tử tương ứng với số dòng m và số cột n của ma trận (ma trận vuông nên giátrị m, n bằng nhau, vì vậy có thể sử dụng n, n để thay thế)

Áp dụng cấu trúc vòng lặp for lồng nhau để nhập xuất dữ liệu cho phép ngườidùng nhập vào lần lượt các mục trong ma trận Vì mỗi phần tử của một ma trận phảnchiếu thì đối xứng qua đường chéo, người dùng chỉ cần nhập giá trị aij tại các vị trítrong tam giác dưới của ma trận (j ≤ i), chương trình sẽ tạo ra một ma trận phản chiếuhoàn chỉnh Cuối cùng, vì là ma trận phản chiếu nên suy ra aij = aji, gán giá trị aij vàoaji và sử dụng vòng lặp for lồng nhau để xuất ra màn hình ma trận phản chiếu.2 Thuật Toán

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

Bước 1: Chương trình yêu cầu người dùng nhập vào kích thước m,n ma trận có phải là ma trận vuông không, nếu không thì in ra “ma trận không phù hợp để có ma trận phản chiếu” và nếu có thì sẽ tiếp tục thực hiện những câu lệnh tiếp theo.

Bước 2: Sử dụng hai vòng lặp for lồng nhau Vòng lặp ngoài dùng để duyệt chỉ số hàng(i<n) và vòng trong duyệt chỉ số cột (j<=i) để người dùng nhập các phần tử ở tam giác dưới (kể cả đường chéo chính).

Bước 3: Tiếp tục sử 2 vòng lặp như trên để gán gía trị cho các phần tử đối xứng qua đường chéo chính (A[j,i] = A[i,j]) Đối với phần tử được gán sẽ được duyệt cột ở ngoài

Trang 11

và duyệt dòng bên trong Đối với phần tử gán thì sẽ được duyệt dòng bên ngoài và duyệt cột bên trong.

Bước 4: Sử dụng 2 hai vòng lặp lồng nhau để in từng phần tử của ma trận vừa có được bằng cách duyệt chỉ số dòng (i<n) ở vòng ngoài và duyệt chỉ số cột (j<n) ở vòng lặp bên trong.

b) Mã Nguồn:using System;using System.Text;using System.Threading;classbt3

static void Main() {

Console.InputEncoding = Encoding.Unicode; Console.OutputEncoding = Encoding.Unicode; Console.WriteLine("Nhập kích thức của ma trận Amxn "); m = int int.Parse(Console.ReadLine());

n = int int.Parse(Console.ReadLine()); [,] matrix = int new int [m, n];

(m != n || m <= 0 || n <= 0) Console.WriteLine(if "Kích thước của mảng không thích hợp để tồn tại ma trận phản chiếu.");

else {

Console.WriteLine("Hãy nhập phần tử của ma trận (chỉ cần nhập phần tử ở tam giác dướikể cả đường chéo chính của ma trận)");

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

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

Console.WriteLine("Nhập giá trị A{0}{1} của ma trận ", i, j); matrix[i, j] = int.Parse(Console.ReadLine());

} }

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

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

matrix[j, i] = matrix[i, j]; }

Trang 12

Console.Write(matrix[i, j] + " "); }

Console.WriteLine("\n"); }

} }}

PHẦN 4:

Cho mảng nhiều chiều gồm có các thông tin liên quan đến khách lưu trú ở kháchsạn Khách gồm các thông tin: họ tên, số ngày ở, số bữa ăn, tiền ở (1 ngày), tiền ăn(1 bữa), phí phục vụ Phân tích và viết chương trình tính tiền trọ khách sạn In hóađơn tính tiền lên màn hình có mẫu sau:

Khách sạn Five StartsHóa đơn khách sạn

Qúi Ông(Bà): ???????????????????

Số ngày ở: ????? Số bữa ăn: ?????

Tiền ở: ??????? Tiền ăn: ??????? Phí phục vụ: ???????Tổng cộng: ???????????????

Hân hạnh phục vụ quý khách

1 Phân Tích

Nhập vào số lượng n khách và tạo mảng một chiều để chứa tên n các vị khác đó mảng 2chiều gồm 2 hàng 2 cột để chứa thông tin như bảng sau:

Dùng vòng lặp n lần để in ra n hoá đơn của n khác hàng trong mỗi vòng lặp gồm các yêucầu: người dùng nhập lần lượt số ngày ở, tiền ở (1 ngày); số bữa ăn, số tiền ăn (1 bữa) sauđó tính toán tổng số tiền ăn, ở và tổng tiền thanh toán (bao gồm phí dịch vụ) sau đó inhoá đơn ứng với mỗi khách hàng.

Trang 13

INPUT: Cho mảng nhiều chiều gồm có các thông tin liên quan đến khách lưu trú ở kháchsạn Khách gồm các thông tin: họ tên, số ngày ở, số bữa ăn, tiền ở (1 ngày), tiền ăn (1bữa), phí phục vụ.

OUTPUT: hoá đơn tính tiền của các vị khách.2 Thuật Toán

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

Bước 1: Yêu cầu người dùng nhập số n khách cần in hoá đơn, tạo mảng kiểu string nphần tử để chứa tên khách hàng sau đó yêu cầu người dùng nhập tên của từng kháchhàng.

Bước 2: Tạo mảng kiểu int hai chiều gồm 2 hàng và 2 cột chứa các giá tiền, số ngày(bữa) của từng dịch vụ theo quy tắc:

A[0,0] số ngày ởA[1,0] tiền ở 1 ngàyA[0,1] số bữa ănA[1,1] tiền ăn 1 bữa

Bước 3: Sử dụng vòng lặp for lặp n phần tử ứng với n khách hàng để in hoá đơn từngkhách hàng Nội dung mỗi lần lặp bao gồm:

 Sử dụng hai vòng lặp for để yêu cầu người dùng nhập các chỉ số vào mảng haichiều theo thứ tự và quy tắc trên sau đó yêu cầu người nhập thêm phí dịch vụ. Tính tổng tiền ăn = A[0,0] (số ngày ở) * A[1,0] (tiền 1 ngày ở).

 Tính tổng tiền ở = A[0,1] (số bữa) * A[1,1] (tiền ăn 1 bữa). Tính tổng tiền thanh toán = tổng tiền ăn + tổng tiền ở + phí dịch vụ.

 Sử dụng các câu lệnh in và định dạng để tạo và in hoá đơn gồm các phí cần thanhtoán của khách hàng theo mẫu của đề bài.

Trang 14

ỨNG DỤNG

Chụp ảnh ứng dụng khi chạy (theo trình tự các bài).

Bài 1:

1 Đối với a = 0:a b = 0, c ≠ 0

b b = 0, c = 0

Trang 15

c b ≠ 0, c ≠0:

2 Đối với a ≠ 0:a ∆ <0

Trang 16

d ∆ ≠ 0:Có 4 nghiệm phân biệt:

Trang 17

Trường hợp có hai nghiệm:

Trường hợp phương trình vô nghiệm:

Trang 18

Bài 2:

Bài 3:

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

Xem thêm:

w