TỔNG QUAN
CẤU TRÚC ĐIỀU KHIỂN
VÒNG LẶP
CHUỖI VÀ MẢNG
COLLECTIONS
THƯ VIỆN QUAN TRỌNG
HƯỚNG ĐỐI TƯỢNG
XỬ LÝ LUỒNG
EXCEPTION
LÀM VIỆC VỚI FILE
THAM KHẢO
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Java - Viết chương trình xóa dòng có tổng lớn nhất của một ma trận số thực.

Viết chương trình nhập vào một ma trận số thực. Sau đó xóa dòng có tổng lớn nhất của ma trận đó.

test php

Bài giải

-------------------- ######## --------------------

Bài giải
public static void main(String[] args) {
	int m, n;
	double tong = 0, max;
	int rowPosition = 0;	// vị trí dòng
	Scanner scanner = new Scanner(System.in);
		
	System.out.println("Nhập vào số dòng của ma trận: ");
	m = scanner.nextInt();
	System.out.println("Nhập vào số cột của ma trận: ");
	n = scanner.nextInt();
		
	double A[][] = new double[m][n];
        
        System.out.println("Nhập các phần tử cho ma trận: ");	
	for (int i = 0; i < m; i++) {
		for (int j = 0; j < n; j++) {
			System.out.print("A[" + i + "]["+ j + "] = ");
			A[i][j] = scanner.nextDouble();
		}
	}
		
	System.out.println("Ma trận A vừa nhập:");
	for (int i = 0; i < m; i++) {
		for (int j = 0; j < n; j++) {
			System.out.print(A[i][j] + "\t");
		}
		System.out.println("\n");
	}
		
	// tìm tổng trên dòng đầu tiên (i = 0) của ma trận
	for (int j = 0; j < n; j++) {
		tong += A[0][j];
	}
		
	max = tong;
		
	for (int i = 1; i < m; i++) {
		tong = 0;
		for (int j = 0; j < n; j++) {
			tong += A[i][j];
		}
			
		// nếu giá trị của tổng các số ở các dòng sau
		// lớn hơn tổng các số ở dòng đầu tiên
		// thì gán max = tong
		if (tong > max) {
			max = tong;
			// lưu lại vị trí dòng có tổng lớn nhất
			rowPosition = i;
		}
	}
		
	for (int i = rowPosition; i < m; i++) {
		for (int j = 0; j < n; j++) {
			// đẩy phần tử ở dòng i + 1 lên
			// vị trí ở dòng i
			A[i][j] = A[i+1][j];
		}
		m--;	// giảm số dòng của ma trận đi 1
	}
		
	System.out.println("Ma trận A sau khi xóa dòng có tổng lớn nhất:");
	for (int i = 0; i < m; i++) {
		for (int j = 0; j < n; j++) {
			System.out.print(A[i][j] + "\t");
		}
		System.out.println("\n");
	}
}

Giải thích hoạt động của chương trình trên: Giả sử tôi nhập vào ma trận số thực có 3 dòng và 2 cột như sau:

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

3.0    1.0     

1.0     8.0     

2.0     0.0

Bài viết này được đăng tại [free tuts .net]

Bước 1: Tính tổng các phần tử ở dòng đầu tiên của ma trận (i = 0) và gán vào biến tong, lúc này tong sẽ bằng 4.0.

Bước 2: Gán giá trị biến max = tong = 4.0.

Bước 3: Thiết lập giá trị biến tong = 0 và tính tổng của các phần tử ở dòng i = 1 trong ma trận, lúc này tong = 9.0.

Bước 4: So sánh biến max với biến tong, vì max = 4.0 < tong = 9.0 nên sẽ thực hiện các lệnh bên trong if: gán giá trị max = tong = 9.0 và lưu lại vị trí của dòng này rowPosition = 1. Mục đích đoạn lệnh bên trong if là để tìm ra vị trí của dòng có tổng các phần tử là lớn nhất trong ma trận.

Bước 5: Tăng i lên 1, lúc này i = 2, thiết lập giá trị biến tong = 0 và thực hiện tính tổng của các phần tử ở dòng i = 2 trong ma trận. Đến đây chúng ta sẽ tính được giá trị tong = 3.0.

Bước 6: So sánh biến max với biến tong, vì max = 9.0 > tong = 3.0 nên bỏ qua không thực hiện các lệnh bên trong if.

Bước 7: Tăng i lên 1, lúc này i = 3 không nhỏ hơn n nên sẽ bỏ qua không thực hiện các lệnh trong thân vòng lặp for.

Bước 8: Thực hiện vòng lặp for với giá trị khởi tạo i = rowPosition = 1j = 0 (là dòng có tổng các phần tử lớn nhất). Sau đó, chúng ta sẽ tiến hành thay thế phần tử ở dòng i bằng phần tử ở dòng i + 1 (tức là dòng kế tiếp). Kết quả sau khi thực hiện vòng lặp for này là các phần tử ở dòng lớn nhất sẽ bị xóa và được thay thế bằng các phần tử ở dòng tiếp theo.

Bước 9: Hiển thị ma trận sau khi xóa dòng có tổng lớn nhất ra màn hình.

Kết quả sau khi biên dịch chương trình:

ketqua baitap9mang2chieu PNG

 

Câu hỏi thường gặp liên quan:

Cùng chuyên mục:

Hướng dẫn Upload file với Spring Boot và jQuery Ajax trong Java

Hướng dẫn Upload file với Spring Boot và jQuery Ajax trong Java

Hướng dẫn download file với Spring Boot trong Java

Hướng dẫn download file với Spring Boot trong Java

Hướng dẫn Upload file với Spring Boot trong Java

Hướng dẫn Upload file với Spring Boot trong Java

Hướng dẫn CRUD với Spring Boot, REST và AngularJS trong Java

Hướng dẫn CRUD với Spring Boot, REST và AngularJS trong Java

Cách sử dụng Spring  Scheduled trong Spring Boot

Cách sử dụng Spring Scheduled trong Spring Boot

Cách dùng Groovy trong Spring Boot Java

Cách dùng Groovy trong Spring Boot Java

Cách dùng Spring Boot và Mustache trong Java

Cách dùng Spring Boot và Mustache trong Java

Cách dùng Spring Boot và MongoDB trong Java

Cách dùng Spring Boot và MongoDB trong Java

Cách tạo Restful Client bằng RestTemplate trong Spring Boot

Cách tạo Restful Client bằng RestTemplate trong Spring Boot

Hướng dẫn sử dụng Interceptor trong Spring Boot

Hướng dẫn sử dụng Interceptor trong Spring Boot

Sử dụng Twitter Bootstrap trong Spring Boot

Sử dụng Twitter Bootstrap trong Spring Boot

Tạo trang web đa ngôn ngữ với Spring Boot trong Java

Tạo trang web đa ngôn ngữ với Spring Boot trong Java

Tạo ứng dụng Chat với Spring Boot và Websocket

Tạo ứng dụng Chat với Spring Boot và Websocket

Sử dụng JUnit để tạo unit test trong Spring Boot

Sử dụng JUnit để tạo unit test trong Spring Boot

Cách triển khai Spring Boot trên Tomcat Server

Cách triển khai Spring Boot trên Tomcat Server

Cách test RESTful API trong Spring Boot

Cách test RESTful API trong Spring Boot

Cách dùng Spring Security trong Spring Boot để xác thực và phân quyền

Cách dùng Spring Security trong Spring Boot để xác thực và phân quyền

Duyệt cây nhị phân bằng phương pháp inOder trong Java

Duyệt cây nhị phân bằng phương pháp inOder trong Java

Xóa node của cây nhị phân tìm kiếm trong Java

Xóa node của cây nhị phân tìm kiếm trong Java

Bảo mật Spring Boot RESTful Service sử dụng Basic Authentication trong Java

Bảo mật Spring Boot RESTful Service sử dụng Basic Authentication trong Java

Top