Việc nhập và xuất mảng trong Java là một yêu cầu cơ bản mà mọi lập trình viên cần nắm vững. Trong bài viết này, chúng ta sẽ tìm hiểu cách thực hiện các thao tác nhập mảng trong java, xuất mảng và xử lý thông qua một bài toán cụ thể.
Xem thêm:
- Bài thực hành 2: xuất ra n số đầu tiên của dãy Fibonacci java
- Bài thực hành 3: tính diện tích tam giác theo công thức Heron java
1. Bài toán nhập xuất mảng trong java
Bài 1 (TH-LTHDT-01): Viết chương trình nhập vào một mảng các số nguyên từ bàn phím. Thực hiện:
– In lại các phần tử đã nhập.
– Tính tổng các phần tử mảng.
– In các phần tử lẻ có trong mảng.
– Cho biết giá trị và vị trí phần tử nhỏ nhất có trong mảng.
2. Ý tưởng thực hiện
2.1 Khai báo và khởi tạo mảng trong Java
- Sử dụng cú pháp
int[] a = new int[n];
để khai báo mảng có kích thướcn
. - Nhập kích thước mảng từ bàn phím bằng
Scanner
.
2.2 Nhập mảng trong java
Scanner x = new Scanner(System.in)
: Đoạn code này tạo một đối tượngScanner
để đọc dữ liệu từ người dùng thông qua bàn phím.System.out.print("a["+i+"]: ")
: Dòng này sẽ hiển thị thông báo yêu cầu người dùng nhập giá trị cho phần tử thứi
của mảng.a[i]=x.nextInt()
: Đoạn code này sẽ đọc giá trị nguyên từ người dùng và gán vào phần tử thứi
của mảnga
.
Scanner x = new Scanner(System.in); for(int i = 0; i < n; i++) { System.out.print("a[" + i + "]: "); a[i] = x.nextInt(); }
2.3 Xuất mảng trong java
- Duyệt vòng lặp for, sử dụng
System.out.print(a[i]+" ")
để hiển thị giá trị của phần tử thứi
của mảnga
, cách nhau bởi dấu cách.
for(int i = 0; i < n; i++) { System.out.print(a[i] + " "); }
2.4 Tính tổng các phần tử mảng java
float sum = 0;
: Biếnsum
được khởi tạo với giá trị ban đầu bằng 0, sẽ được sử dụng để tính tổng các phần tử của mảng.- Duyệt vòng lặp for, sử dụng
sum = sum + a[i];
để tính tổng của các phần tử mảng bằng cách cộng giá trị của từng phần tử vào biếnsum
. System.out.println("Tổng mảng vừa nhập là: " + sum);
: Dòng này sẽ hiển thị tổng của mảng đã nhập.
float sum = 0; for(int i = 0; i < n; i++) { sum += a[i]; } System.out.println("Tổng mảng là: " + sum);
2.5 In các phần tử lẻ có trong mảng java
if(a[i] % 2 != 0)
: Điều kiện này kiểm tra xem phần tử thứi
của mảng có phải là số lẻ hay không.System.out.print(a[i] + " ");
: Nếu phần tử thứi
là số lẻ, nó sẽ được hiển thị trên cùng một dòng, cách nhau bởi dấu cách.
for(int i = 0; i < n; i++) { if(a[i] % 2 != 0) { System.out.print(a[i] + " "); } }
2.6 Tìm phần tử nhỏ nhất và vị trí
int gtnn = a[0];
: Biếngtnn
(giá trị nhỏ nhất) được khởi tạo với giá trị ban đầu bằng phần tử đầu tiên của mảnga
. Khởi tạo biến vị trí với giá trị ban đầu bằng 0, đại diện cho vị trí của phần tử nhỏ nhất trong mảng.if(a[i] < gtnn)
: Điều kiện này kiểm tra xem phần tử thứi
của mảng có nhỏ hơn giá trị nhỏ nhất hiện tại (gtnn
) hay không.gtnn = a[i];
: Nếu phần tử thứi
nhỏ hơngtnn
, thìgtnn
sẽ được cập nhật với giá trị của phần tử thứi
.vt = i;
: Biếnvt
sẽ được cập nhật với vị trí của phần tử nhỏ nhất trong mảng, đó lài
.vt = vt + 1;
: Vì vị trí trong mã nguồn bắt đầu từ 0, nên giá trị củavt
sẽ được tăng lên 1 để thể hiện vị trí thực tế trong mảng.System.out.println("Phần tử nhỏ nhất là: " + gtnn + ", vị trí: " + vt);
: Dòng này sẽ hiển thị giá trị của phần tử nhỏ nhất và vị trí của nó trong mảng.
int min = a[0], pos = 0; for(int i = 1; i < n; i++) { if(a[i] < min) { min = a[i]; pos = i; } } System.out.println("Phần tử nhỏ nhất là: " + min + ", vị trí: " + (pos + 1));
3. Code tham khảo
Dưới đây là code hoàn chỉnh để giải quyết bài toán trên:
import java.util.Scanner; public class Bài1 { //nhap mang public static void nhapmang(int a[], int n){ Scanner x = new Scanner(System.in); for(int i=0;i<n;i++){ System.out.print("a["+i+"]: "); a[i]=x.nextInt(); } } //hien mang public static void hienmang(int a[], int n){ System.out.print("Mang vua nhap la: "); for(int i=0;i<n;i++){ System.out.print(a[i]+" "); } System.out.println(""); } // tinh tong mang public static void tongmang(int a[], int n){ float sum=0; for(int i=0;i<n;i++){ sum=sum+a[i]; } System.out.println("Tong mang vua nhap la: "+sum); } // tim phan tu le trong mang public static void phantule(int a[], int n){ System.out.print("Cac phan tu le trong mang la:"); for(int i=0;i<n;i++){ if(a[i]%2!=0){ System.out.print(a[i]+" "); } } System.out.println(""); } // tim phan tu nho nhat trong mang public static void min(int a[], int n){ int gtnn=a[0]; int vt = 0; for(int i=0;i<n;i++){ if(a[i]<gtnn){ gtnn=a[i]; vt=i; } } vt=vt+1; System.out.println("Phan tu nho nhat la:"+gtnn+" vi tri: "+vt); } public static void menu(){ System.out.println("1. Nhap mang"); System.out.println("2. Hien mang"); System.out.println("3. Tong mang"); System.out.println("4. In phan tu le"); System.out.println("5. Phan tu nho nhat"); System.out.println("6. Thoat"); } public static void main(String[] args) { int n; int chon; Scanner x = new Scanner(System.in); System.out.print("Nhap so phan tu cua mang: "); n=x.nextInt(); int a[] = new int [n]; do{ menu(); System.out.println("Luachon:"); chon=x.nextInt(); switch(chon){ case 1: nhapmang(a,n); break; case 2: hienmang(a,n); break; case 3: tongmang(a,n); break; case 4: phantule(a,n); break; case 5: min(a,n); break; } }while(chon!=0); } }
4. Kết quả chạy chương trình
Full source code:
Trên đây là chương trình cơ bản về nhập xuất một mảng số nguyên từ bàn phím bằng ngôn ngữ lập trình java. Cảm ơn các bạn đã tham khảo bài tập lập trình hướng đối tượng java trên ttnguyen.net.
Bài viết liên quan: