Ở bài viết này JackV sẽ hướng dẫn các bạn 3 kỹ thuật random thường dùng: 1. Random tự nhiên, có thể lặp lại. 2. Random có thể lặp lại nhưng 2 phần tử liên tiếp không trùng nhau. 3. Random không lặp lại. Các bạn có thể random các phần tử trong một danh sách theo cách này, ở đây mình sẽ làm
146. Sắp xếp dãy số hay trong lập trình chính là sắp xếp mảng 1 chiều theo chiều tăng dần hoặc giảm dần. Đây là 1 bài toán sắp xếp đơn giản và rất cơ bản đối với bất cứ ai khi học lập trình. Bài toán sắp xếp dãy số là bài tập điển hình trong phần kiến thức
1. Nhập xuất mảng một chiều. Sử dụng vòng lặp for để nhập các phần tử của mảng từ bàn phím. Sau đó, duyệt mảng để xuất các phần tử của mảng ra màn hình. import java.util.Scanner; class Main { public static void main (String [] args) { double [] myList = new double [5]; Scanner input = new Scanner (System.in); System.out.println ("Nhap " +
Viết chương trình nhập vào 1 mảng gồm n phần tử,tìm và in ra màn hình. a)Số lớn nhất của dãy số Viết chương trình nhập vào dãy số gồm n số nguyên và in ra màn hình Trung bình cộng các số có trong mảng. Lớp 8 Tin học Bài 9. Làm việc với dãy số
VCT nhập mảng gồm n số nguyên dương in ra số nguyên tố những phần tử trong mảng. HOC24. Lớp học. Lớp học. Tất cả Lớp 12 Lớp 11 Lớp 10 Lớp 9 Lớp 8 Lớp 7 Lớp 6 Lớp 5 Lớp 4 Lớp 3 Lớp 2 Lớp 1
-Mảng 1 chiều: Tìm dãy con tăng trong mảng-Mảng 1 chiều: tìm dãy số lẻ không âm và sắp xếp tăng dần-Mảng 1 chiều: tìm giá trị dương đầu tiên Mảng 1 chiều: hàm nhập xuất số thực. Mảng 1 chiều: sắp xếp mảng tăng,giảm.
kHUgAM. Viết chương trình nhập mảng n số nguyên với các giá trị ngẫu nhiên. Xuất tổng, tìm giá trị nhỏ nhất và sắp xếp mảng. Bài giải - - Trong bài tập này tôi dùng phương pháp sắp xếp Exchange sort để sắp xếp các phần tử trong mảng theo thứ tự giảm dần. Sau khi đã có được mảng giảm dần thì phần tử nhỏ nhất chính là phần tử cuối cùng trong mảng. Bài viết này được đăng tại không được copy dưới mọi hình thức. Bài giải public static void mainString[] args { int n, sum = 0, tempSort; Scanner scanner = new Scanner do { vào số phần tử của mảng "; n = } while n < 0; // khởi tạo và cấp phát bộ nhớ cho mảng int array[] = new int[n]; các phần tử cho mảng "; for int i = 0; i < n; i++ { phần tử thứ " + i + " "; array[i] = } // Hiển thị mảng vừa nhập ban đầu "; for int i = 0; i < n; i++ { + "\t"; } // tính tổng các phần tử có trong mảng for int i = 0; i < n; i++ { sum += array[i]; } các phần tử có trong mảng = " + sum; // sắp xếp theo thứ tự giảm dần for int i = 0; i < n - 1; i++ { for int j = i + 1; j <= n - 1; j++ { if array[i] < array[j] { tempSort = array[i]; array[i] = array[j]; array[j] = tempSort; } } } sau khi sắp xếp là "; for int i = 0; i < n; i++ { + "\t"; } // tìm phần tử nhỏ nhất // sau khi sắp xếp theo thứ tự giảm dần // thì phần tử nhỏ nhất là phần tử cuối cùng trong mảng tử nhỏ nhất trong mảng là " + array[n - 1]; } Kết quả sau khi biên dịch chương trình Câu hỏi thường gặp liên quan Java - Nhập mảng và thực hiện các thao tác trên mảng. Java - Sắp xếp mảng tăng dần sử dụng phương pháp nổi bọt Bubble sort. Java - Tìm kiếm một phần tử sử dụng trong mảng sử dụng thuật tìm kiếm nhị phân. Java - Kiểm tra mảng một chiều vừa nhập có phải là mảng đối xứng hay không? Java - Tìm và in ra màn hình số lượng số nguyên lẻ, số lượng số nguyên chẵn trong mảng. Java - Xóa phần tử có giá trị k trong mảng k nhập từ bàn phím. Java - Nhập mảng và thực hiện tách các số chẵn và lẻ trong mảng sang hai mảng khác. Java - Tách một nửa đầu của mảng ban đầu sang mảng thứ nhất và nửa còn lại sang mảng thứ hai. Java - Viết chương trình hiển thị các phần tử chia hết cho 5 trong mảng. Java - Đếm số lần xuất hiện của 1 phần tử được nhập từ bàn phím. Java - Bài tập tổng hợp các thao tác trên mảng. Java - Viết chương trình nhập mảng sao cho không có phần tử nào trùng nhau. Cùng chuyên mục
Mảng trong Java là một đối tượng chứa các phần tử có kiểu dữ liệu giống nhau. Mảng là một cấu trúc dữ liệu nơi lưu trữ các phần tử giống nhau. Với mảng trong java chúng ta chỉ có thể lưu trữ một tập các phần tử có số lượng phần tử cố định. Mảng trong Java Thông thường, mảng array là một tập hợp các phần tử có cùng kiểu được lưu trữ gần nhau trong bộ nhớ. Mảng trong java lưu các phần tử theo chỉ số, chỉ số của phần tử đầu tiên là 0. Dưới đây là hình ảnh mô tả một mảng một chiều, chúng ta sẽ tìm hiểu kỹ ở phần dưới nhé. Mảng 1 chiều trong Java Khai báo Cú pháp khai báo Kiểu_dữ_liệu tên_mảng[]; Khai báo một con trỏ mảng Kiểu_dữ_liệu []tên_mảng; tương tự như trên Kiểu_dữ_liệu tên_mảng[] = new Kiểu_dữ_liệu[Số_lượng_phần_tử]; Tạo ra một mảng có spt phần tử Trong cú pháp trên thì Kiểu dữ liệu gồm kiểu nguyên thủy, kiểu đối tượng… nó xác định kiểu dữ liệu của từng phần tử của mảng. Số phần tử là số lượng phần tử của mảng và là một số nguyên Mảng trong Java là một đối tượng Cũng như các đối tượng khác, mảng phải được tạo ra bằng toán tử `new` như sau Tên_mảng = new Kiểu_dữ_liệu[spt]; Khi mảng được tạo ra thì mỗi phần tử của mảng sẽ nhận một giá trị mặc định, quy tắc khởi tạo giá trị cho các phần tử của mảng cũng chính là quy tắc khởi đầu giá trị cho các thuộc tính của đối tượng, tức là mỗi phần tử của mảng sẽ nhận giá trị 0 - đối với kiểu number, '\0' - đối với kiểu dữ liệu là ký tự, false - đối với kiểu dữ liệu boolean, null - nếu kiểu dữ liệu là một lớp nào đó Khai báo một mảng số nguyên gồm 100 phần tử // Cách 1 int mangInt[]; // Khai báo một con trỏ đến mảng các số nguyên mangInt = new int[100]; // Tạo ra mảng // Cách 2 int mangInt[]=new int[100]; Giả sử ta có lớp SinhVien đã đươc định nghĩa, hãy khai báo một mảng gồm 100 đối tượng của lớp SinhVien SinhVien arraySinhVien[] = new SinhVien[100]; Lúc này mỗi phần tử của mảng arraySinhVien là một con trỏ của lớp SinhVien và hiện giờ mỗi phần tử của mảng đang trỏ đến giá trị null. Để khởi tạo từng phần tử của mảng ta phải làm như sau arraySinhVien[0]=new SinhVien"sv01", "Nguyễn Văn An", "Hưng Yên"; arraySinhVien[1]=new SinhVien"sv02", "Nguyễn Thị Bình", "Bắc Giang"; …. arraySinhVien[99]=new SinhVien"sv100", "Đào Thị Mến", "Hà Nam"; Ngoài cách khai báo trên Java còn cho phép ta kết hợp cả khai báo và khởi gán các phần tử của mảng theo cách sau tạo ra một mảng gồm 5 phần tử, các phần tử của mảng lần lượt được gán các giá trị là 1, 3, 5, 7, 9 // Với trường hợp là số int[] mangInt = {1, 3, 5, 7, 9}; // Với trường hợp là object SinhVien[] mangSinhVien = { new SinhVien"sv01", "Nguyễn Văn A", "HY", new SinhVien"sv02", "Nguyễn Thị B", "HN", new SinhVien"sv03", "Đỗ Thị Q", "BG", null }; Khai báo một mảng gồm 4 phần tử, giá trị của các phần tử lần lượt được khởi gán như sau mangSinhVien [0]=new SinhVien"sv01", "Nguyễn Văn A", "HY" mangSinhVien [1]=new SinhVien"sv02", "Nguyễn Thị B", "HN" mangSinhVien [2]=new SinhVien"sv03", "Đỗ Thị Q", "BG" mangSinhVien [3]=null Truy xất đến các phần tử của mảng một chiều Để truy xuất đến phần tử thứ ind của mảng ta sử dụng cú pháp như sau Tên_mảng[Vị_trí_của_phần tử] Phần tử đầu tiên của mảng có chỉ số là 0 int a[] = new int [3]; // Khai báo và tạo ra mảng gồm 3 phần tử Lúc này các phần tử của mảng lần lượt được truy xuất như sau Phần tử đầu tiên của mảng là a[0] Phần tử thứ 2 của mảng là a[1] Phần tử thứ 3 đồng thời là phần tử cuối cùng của mảng là a[2] Truy cập các phần tử của một mảng trong Java public class Thaycacac { public static void mainString[] args { String[] cars = { "Honda", "BMW", "Ford", "Mazda" }; } } Thay đổi một phần tử mảng trong Java Để thay đổi giá trị của một phần tử cụ thể, hãy gán lại giá trị dựa vào vị trí của phần tử trong mảng public class TruyCapArray2 { public static void mainString[] args { String[] cars = { "Honda", "BMW", "Ford", "Mazda" }; // thay đổi phần tử đầu tiên của mảng cars cars[0] = "Morning"; // hiển thị phần tử đầu tiên của mảng cars tử đầu tiên " + cars[0]; } } Phần tử đầu tiên Morning Lấy về số phần tử hiện tại của mảng trong java Mảng trong Java là một đối tượng, do vậy nó cũng có các thuộc tính và các phương thức như các đối tượng khác. Để lấy về số phần tử của mảng ta sử dụng thuộc tính length như sau public class Thaycacac { public static void mainString[] args { String[] cars = { "Honda", "BMW", "Ford", "Mazda" }; dài của mảng cars là " + } } Độ dài của mảng cars là 4 Duyệt các phần tử của mảng trong Java Sử dụng vòng lặp for bạn có thể lặp qua các phần tử mảng bằng vòng lặp for và sử dụng thuộc tính length để chỉ định số lần vòng lặp sẽ chạy. public class Thaycacac { public static void mainString[] args { String[] cars = { "Honda", "BMW", "Ford", "Mazda" }; for int i = 0; i arr[i] { min = arr[i]; } } public static void mainString args[] { int a[] = { 33, 3, 4, 5 }; mina;// truyền mảng tới phương thức } } Sao chép một mảng trong java Chúng ta có thể sao chép một mảng tới mảng khác bởi phương thức arraycopy của lớp System. Cú pháp của phương thức arraycopy public class Thaycacac { public static void mainString[] args { char[] copyFrom = { 'd', 'e', 'c', 'a', 'f', 'f', 'e', 'i', 'n', 'a', 't', 'e', 'd' }; char[] copyTo = new char[7]; 2, copyTo, 0, 7; StringcopyTo; } } Mảng nhiều chiều Khai báo Khai báo mảng N chiều trong Java được tiến hành như sau Hoặc Trong đó KDL gồm kiểu nguyên thủy, kiểu đối tượng… nó xác định kiểu dữ liệu của từng phần tử của mảng. sp1, sp2, …, sptN lần lượt là số phần tử trên chiều thứ 1, 2, .., N // Khai báo một con trỏ của mảng 2 chiều int[][] a; int a[][]; // Cách khác để khai báo một con trỏ của mảng 2 chiều // Khai báo và tạo ra mảng 2 chiều Ma trận gồm 2 hàng, 3 cột int[][] a = new int[2][3]; // Khai báo và khởi gán giá trị cho các phần tử của mảng 2 chiều int a[][]={ {1, 2, 5}. //Các phần tử trên hàng thứ nhất {2, 4, 7, 9}. //Các phần tử trên hàng thứ hai {1, 7}. //Các phần tử trên hàng thứ ba } Khai báo trên sẽ tạo ra một mảng hai chiều gồm 3 hàng, nhưng trên mỗi hàng lại có số phần tử khác nhau, cụ thể là trên hàng thứ nhất có 3 phần tử, hảng 2 gồm 4 phần tử và hàng thứ 3 gồm 2 phần tử. Với khai báo trên nếu ta liệt kê các phần tử của mảng theo trình tự từ trái qua phải và từ trên xuống dưới thì các phần tử lần lượt là a[0][0], a[0][1], a[0][2], a[1][0], a[1][1], a[1][2], a[1][3], a[2][0], a[2][1] Truy xuất đến phần tử mảng nhiều chiều khai báo và khởi tạo mảng đa chiều trong java public class TestArray3 { public static void mainString args[] { // khai báo và khởi tạo mảng 2 chiều int arr[][] = { { 1, 2, 3 }, { 2, 4, 5 }, { 4, 4, 5 } }; // in mảng 2 chiều r màn hình for int i = 0; i < 3; i++ { for int j = 0; j < 3; j++ { + " "; } } } }
Bài viết chia sẻ khai báo, nhập xuất mảng hai chiều trong java, thao tác với ma trận số nguyên. Sắp xếp ma trận số nguyên theo cột và một số dạng bài tập ứng dụng khác liên quan. 1. Mảng hai chiều trong Java2. Cú pháp khai báo mảng hai chiều3. Nhập xuất mảng hai chiều trong Java4. Các bài tập thường gặp5. Xây dựng lớp MaTran Mảng hai chiều trong java là một dạng cấu trúc dữ liệu quan trọng. Cấu trúc này thường sử dụng thao tác với các bài toán liên quan đến ma trận và nó sẽ được ứng dụng rất nhiều trong lập trình thực tế. Giống với cấu trúc mảng hai chiều của các ngôn ngữ khác, mảng hai chiều java là một mảng trong đó mỗi ô nhớ sẽ có hai chỉ số hàng và cột. Thường một mảng sẽ có dạng kiểu m x n tức là mảng sẽ có m hàng và n cột. Bạn hình dung cấu trúc mảng sẽ có dạng tương tự như hình vẽ bên dưới. Đây là mô tả cấu trúc của ma trận 3×3 Thao tác với mảng hai chiều cũng rất quan trọng, cùng mình tìm hiểu ở phần dưới nhé! 2. Cú pháp khai báo mảng hai chiều Cú pháp khai báo có lẽ là phần được quan tâm nhất nếu như bạn đã nắm được cấu trúc mảng ở các ngôn ngữ có một điểm mạnh đó là mảng hai chiều có thể lưu trữ nhiều loại kiểu dữ liệu khác nhau. Có thể dùng kiểu int, double, string hay một kiểu tự định nghĩa nào đó. Có hai cú pháp thường dùng Cách đầu tiên là khai báo và cấp bộ nhớ trực tiếp. Cách thứ hai là khai báo sau đó mới cấp bộ nhớ. Cách 1 + + [][];Sau đó mới cấp bộ nhớ = new [số hàng][số cột]; Cách 2 Khai báo trực tiếp + + = new [số hàng][]; Ví dụ khai báo mảng hai chiều kích thước 4*3 // Cách 1 private int A[][]; A= new int [4][3]; // Cách 2 public int A= new int [4][3]; Vậy là xong phần khai báo, dưới đây đến nhập xuất nhé! 3. Nhập xuất mảng hai chiều trong Java Nhập mảng trong Java tương đối giống với C/C++, sử dụng 2 vòng lặp for lồng nhau để nhập vào từng giá trị thức nhập mảng // nhapInt là phương thức nhập dữ liệu kiểu từ bàn phím do mình tự viết void nhapMT { A = new int[soHang][soCot]; ma tran "+ soHang +" x"+ soCot; forint i=0;i<soHang;i++ forint j=0;j<soCot;j++ { "; A[i][j]=nhapInt; } } Xuất mảng hai chiều cũng tương tự với nhập. Để cho in ra màn hình thành một ma trận đẹp thì cứ hết một hàng bạn lại cho xuống dòng. void xuatMT { // TRAN "+ soHang +" x"+ soCot; forint i=0;i<soHang;i++ { forint j=0;j<soCot;j++ } } 4. Các bài tập thường gặp Ở đây mình sẽ ví dụ hai dạng bài tập về ma trận số nguyên đó là Sắp xếp ma trận theo cộtĐếm các số nguyên có trong ma trận. Code sắp xếp // Sắp xếp ma trận theo cột theo chiều tăng dần void sortCotDecrease { int temp; forint a=0;a<soCot;a++ forint i=1;i<soHang;i++ forint j=0;j<i;j++ ifA[i][a]>A[j][a] { temp=A[i][a]; A[i][a]=A[j][a]; A[j][a]=temp; } } Code đếm các số nguyên tố có trong ma trận boolean isPrimeint a { ifa <2 return false; forint i=2;i<=a/2;i++ ifa%i ==0 return false; return true; } int countPrime { int amount=0; forint i=0;i<soHang;i++ forint j=0;j<soCot;j++ ifisPrimeA[i][j] amount+=1; return amount; } 5. Xây dựng lớp MaTran Lắp ghép các phần trên lại, mình làm hoàn chỉnh thành một bài tập nhỏXây dựng lớp ma trận với các thuộc tính số hàng, số cột, ma trận phương thức Nhập vào kích thước ma trận, nhập ma trận. In ma trận ra màn hình, sắp xếp ma trận theo cột và đếm số các số nguyên tố có trong mảng. /* By admin * */ import public class MaTran { private int soHang; private int soCot; private int A[][]; public MaTran { } public MaTranint soHang, int soCot { = soHang; = soCot; A = new int[soHang][soCot]; } int getAijint i, int j { return A[i][j]; } int nhapInt { DataInputStream ip = new DataInputStream int so; try { so= } catchException e{ lai "; so=nhapInt; } return so; } void nhapKichThuoc { do { so hang "; soHang=nhapInt; ifsoHang<=0 hang khong hop le!"; } whilesoHang<=0; do { so cot "; soCot=nhapInt; ifsoCot<=0 cot khong hop le!"; } whilesoCot<=0; } void nhapMT { A = new int[soHang][soCot]; ma tran "+ soHang +" x"+ soCot; forint i=0;i<soHang;i++ forint j=0;j<soCot;j++ { "; A[i][j]=nhapInt; } } void xuatMT { // TRAN "+ soHang +" x"+ soCot; forint i=0;i<soHang;i++ { forint j=0;j<soCot;j++ } } void sortCotDecrease { int temp; forint a=0;a<soCot;a++ forint i=1;i<soHang;i++ forint j=0;j<i;j++ ifA[i][a]>A[j][a] { temp=A[i][a]; A[i][a]=A[j][a]; A[j][a]=temp; } } boolean isPrimeint a { ifa <2 return false; forint i=2;i<=a/2;i++ ifa%i ==0 return false; return true; } int countPrime { int amount=0; forint i=0;i<soHang;i++ forint j=0;j<soCot;j++ ifisPrimeA[i][j] amount+=1; return amount; } public static void mainString[] args { // TODO Auto-generated method stub MaTran a = new MaTran; tran sau khi sap xep "; tran co "+ so Prime!"; } } Minh họa kết quả chạy chương trình trên Trên đây là một chút nội dung cơ bản liên quan đến mảng hai chiều, ma trận số nguyên trong có thể tham khảo thêm cách cộng hai ma trận, nhân hai ma trận nhé! Xem thêm các bài viết về lập trình của mình tại đây. Cảm ơn bạn đã ghé thăm website!
Mảng là một tập hợp các phần tử có kiểu tương tự nhau mà có vị trí ô nhớ liền kề. Mảng một chiều là một tập hợp của nhiều phần tử có kiểu dữ liệu giống nhau. Thực ra nó cũng gần tương tự nhau nên mình sẽ không giải thích gì nhiều nữa. Sự khác biệt là ở mảng đa chiều ta sẽ học trong bài sau. Để khai báo mảng, chúng ta cần phải xác định trước 3 thông tin cần thiết sau Kiểu dữ liệu của mảng. Tên của mảng. Số lượng các phần tử hay kích thước của mảng. Ta có 2 cách để khai báo một biến mảng C1 []; C2 [] ; Trong đó kiểu_dữ_liệu mô tả kiểu của mỗi phần tử thuộc mảng như int, char, double, String,… tên_mảng là tên của mảng và quy tắc đặt tên phải tuân theo quy tắc đặt tên biến trong Java. Ngoài ra ta còn có thể sử dụng từ khóa new . Cú pháp với từ khóa new giúp bạn ta vừa khai báo mảng vừa khởi tạo mảng. Tại sao lại như vậy? Vì tương tự như chuỗi, bản chất của mảng là 1 đối tượng. Vì vậy mà mảng cũng cần cấp phát bộ nhớ trước khi sử dụng. Chính vì thế mà khi sử dụng new ta đã vừa khai báo mà vừa khởi tạo mảng. Cú pháp [kiểu_dữ_liệu] [] [tên_mảng] = new [kiểu_dữ_liệu] [kích_thước_mảng] ; Nếu ta khai báo mảng rồi thì có thể khởi tạo mảng bằng cú pháp sau [tên_mảng] = new [kiểu_dữ_liệu] [kích_thước_mảng]; Trong đó kích_thước_mảng chỉ ra số phần tử tối đa mà mảng có thể lưu trữ. Giá trị này luôn phải là một số nguyên dương Ví dụ class Main{ public static void mainString[] args{ int []a;//khai báo mảng a = new int [5];//khởi tạo mảng } } Hoặc ta có thể vừa khai báo vừa khởi tạo giá trị cho mảng int[] a = new int[]{1,3,5,7,9}; Mảng này tên là a có kiểu dữ liệu int và chứa 5 phần tử có giá trị là 1, 3, 5, 7, 9 2. Truy xuất phần tử mảng một chiều trong Java Đối với mảng một chiều thì chúng ta có thể truy xuất các phần tử của mảng thông qua các chỉ số của phần tử đó. Cú pháp Tên_mảng[Chỉ_số_phần_tử]; Trong đó [Chỉ_số_phần_tử] là số thứ tự của các phần tử trong mảng. Và như mình đã lưu ý nhiều lần thì chỉ số trong mảng bắt đầu từ 0. Ví dụ mảng có n phần tử thì các phần tử của nó có chỉ số lần lượt là 0, 1, 2,…, n – 1 Ví dụ class Main{ public static void mainString[] args { // Khai báo và khởi tạo giá trị ban đầu cho mảng char[] kyTu = new char[] {'l', 't', 't', 'd', 'j'}; // hiển thị ký tự tại vị trí thứ 2 trong mảng tự tại vị trí thứ 2 trong mảng " + kyTu[2]; } } Kết quả Ký tự tại vị trí thứ 2 trong mảng t 3. Gán giá trị cho phần tử trong mảng một chiều Ta có 2 mảng array1 và array2 là các mảng có cùng kiểu dữ liệu. Giả sử các phần tử trong mảng array1 đã có giá trị, khi đó chúng ta có thể gán giá trị của một phần tử trong array1 cho một phần tử trong mảng array2 Ta sẽ làm như sau class Main{ public static void mainString[] args { // khai báo mảng array1 và array2 int[] array1 = {2, 10, 3, 9, 8}; int array2[] = new int[5]; // gán giá trị của phần tử thứ 2 trong mảng array1 // cho phần tử thứ 3 trong mảng array2 array2[3] = array1[2]; trị của phần tử thứ 3 trong mảng array2 = " + array2[3]; } } Kết quả Giá trị của phần tử thứ 3 trong mảng array2 = 3
Ở chương này, chúng ta sẽ tìm hiểu về khái niệm mảng trong Java. Mảng trong lập trình có 2 loại đó là mảng một chiều và hai chiều. Tuy nhiên, vì hai phần này khá dài nên trong bài này tôi sẽ giới thiệu các bạn khái niệm mảng một chiều trong Java. Sang bài sau, các bạn sẽ được học về khái niệm mảng hai chiều. Cuối bài này, tôi sẽ đưa ra một số bài tập vận dụng mảng và kết hợp mảng một chiều và chuỗi để giải quyết các yêu cầu cho các bạn luyện viết này được đăng tại không được copy dưới mọi hình thức. 1. Giới thiệu chung về mảng Trong Java cũng như các ngôn ngữ lập trình khác, mảng là kiểu dữ liệu có cấu trúc gồm một tập hợp cố định các phần tử có cùng kiểu dữ liệu, các phần tử của mảng có cùng tên và được phân biệt nhau bởi chỉ số. Mỗi phần tử của mảng được sử dụng như là một biến đơn, kiểu dữ liệu của mảng chính là kiểu dữ liệu của phần tử. Như vậy, đối với mảng thì chúng ta cần quan tâm đến các thành phần sau Các thông tin liên quan đến mảng tên mảng, số phần tử của mảng, kiểu dữ liệu của mảng. Số chiều của mảng Nếu mảng chỉ có một chỉ số để lưu trữ các giá trị vào trong các biến thành phần của mảng thì được gọi là mảng một chiều. Nếu mảng có 2 chỉ số để lưu trữ các giá trị chẳng hạn giá trị của một bảng có m dòng, n cột được gọi là mảng 2 chiều. Tương tự, ta có mảng 3 chiều, 4 chiều, ..., n chiều. Trong lập trình, mảng thường xuyên được sử dụng không chỉ bởi tính đơn giản, dễ sử dụng của nó mà còn ở khả năng đáp ứng nhu cầu lưu trữ dữ liệu trong các bài toán thực tế. Chúng ta có thể sử dụng mảng khi cần lưu trữ nhiều giá trị, chẳng hạn như lưu trữ các số nguyên từ 1 đến 5; dãy 32 chuỗi ký tự, trong đó mỗi chuỗi lưu trữ tên của một sinh viên trong một lớp học... Trong Java, mảng được hỗ trợ dưới dạng mảng một chiều cho đến mảng nhiều chiều. Nhưng thông thường, khi lập trình chúng ta thường chỉ sử dụng mảng có tối đa là ba chiều và mảng một chiều là mảng được sử dụng nhiều nhất. Trong chương này, tôi sẽ hướng dẫn các bạn tìm hiểu về mảng một chiều và mảng hai chiều, khi đã nắm chắc được 2 khái niệm này thì các bạn có thể làm việc với các loại mảng có số chiều nhiều hơn. Sau đây, chúng ta sẽ đi vào phần nội dung chính của bài này, đó là khái niệm, cú pháp khai báo, cách sử dụng và các phương thức của mảng một chiều và ví dụ vận viết này được đăng tại [free tuts .net] 2. Mảng một chiều trong Java Mảng một chiều là một tập hợp của nhiều phần tử có kiểu dữ liệu giống nhau. Cú pháp khai báo mảng Để khai báo mảng, chúng ta cần phải xác định trước 3 thông tin cần thiết sau Kiểu dữ liệu của mảng. Tên của mảng. Số lượng các phần tử hay kích thước của mảng. Câu lệnh khai báo mảng sẽ có 2 dạng như sau Dạng 1 [Kiểu_dữ_liệu] tên_mảng[]; Dạng 2 [Kiểu_dữ_liệu][] tên_mảng; trong đó, [Kiểu_dữ_liệu] mô tả kiểu của mỗi phần tử thuộc mảng như int, char, double, String,..., tên_mảng là tên của mảng và quy tắc đặt tên phải tuân theo quy tắc đặt tên biến trong Java. Ví dụ int[] a; khai báo mảng tên a và có kiểu dữ liệu là int. Cấp phát bộ nhớ cho mảng Tương tự như chuỗi, bản chất của mảng là 1 đối tượng chi tiết về đối tượng chúng ta sẽ được học trong chương Lập trình hướng đối tượng, vì vậy mảng cần phải được cấp phát bộ nhớ trước khi sử dụng. Để cấp phát bộ nhớ cho mảng thì chúng ta có 2 cách như sau Cách 1 [Kiểu_dữ_liệu] tên_mảng[] = new [Kiểu_dữ_liệu] [Số_phần_tử_của_mảng]; Cách 2 [Kiểu_dữ_liệu][] tên_mảng = new [Kiểu_dữ_liệu] [Số_phần_tử_của_mảng]; trong đó, [Số_phần_tử_của_mảng] chỉ ra số lượng phần tử tối đa mà mảng có thể lưu trữ, giá trị này phải là một số nguyên dương. Ngoài ra, Java còn cho phép chúng ta vừa có thể khai báo mảng và vừa khởi tạo giá trị cho mảng, ví dụ int[] a = new int[] {2, 10, 4, 8, 5}; khai báo mảng một chiều có tên là a, kiểu dữ liệu là int và mảng này chứa 5 phần tử có giá trị lần lượt là 2, 10, 4, 8, 5. Truy xuất các phần tử của mảng Đối với mảng thì chúng ta có thể truy xuất các phần tử của mảng thông qua các chỉ số của phần tử đó. Cú pháp như sau Tên_mảng[Chỉ_số_phần_tử]; trong đó, [Chỉ_số_phần_tử] là số thứ tự của các phần tử trong mảng và bắt đầu từ 0. Như vậy, mảng có n phần tử thì các phần tử của nó có chỉ số lần lượt là 0, 1, 2,..., n - 1. Ví dụ Chúng ta có đoạn chương trình sau public static void mainString[] args { // Khai báo và khởi tạo giá trị ban đầu cho mảng char[] kyTu = new char[] {'a', 'b', 'c', 'd', 'e'}; // hiển thị ký tự tại vị trí thứ 2 trong mảng tự tại vị trí thứ 2 trong mảng là " + kyTu[2]; } Kết quả sau khi biên dịch chương trình 3. Nhập xuất các phần tử cho mảng Chương trình dưới đây sẽ minh họa cách nhập các phần tử cho mảng một chiều từ bàn phím và sau đó hiển thị các phần tử đó ra màn hình. Ví dụ public static void mainString[] args { int size; // kích thước của mảng Scanner scanner = new Scanner vào độ dài của mảng "; size= // khai báo và cấp phát bộ nhớ cho mảng // mảng này có tên là array và kích thước = size int[] array = new int[size]; // trả về kích thước của mảng // vòng lặp này sẽ duyệt i từ 0 đến chiều dài của mảng - 1 for int i = 0; i = 2 và n max - 1 // thì phải nhập lại do { số phần tử của mảng "; n = } while n max-1; giá trị cho các phần tử của mảng "; for int i = 0; i 0 từ bàn phím. Nhập số nguyên k từ bàn phím. Tìm kiếm phần tử đầu tiên trong mảng có giá trị bằng k và thông báo lên màn hình vị trí của phần tử đó. Nếu không có phần tử nào của mảng có giá trị bằng k thì thông báo "Trong mảng không có phần tử nào chứa giá trị cần tìm." Yêu cầu kỹ thuật Chương trình phải kiểm tra n nhập vào nếu n số phần tử tối đa của mảng thì yêu cầu nhập lại số phần tử cho đến khi thỏa mãn điều kiện. Bài giải public static void mainString[] args { int n, max = 100, i; int[] A = new int[max]; Scanner scanner = new Scanner do { số phần tử của mảng "; n = } while n max - 1; giá trị cho các phần tử của mảng "; for i = 0; i n-1 { mảng không có phần tử nào chứa giá trị cần tìm."; } else { tử đầu tiên có giá trị bằng " + k + " tại vị trí = " + i; } } Kết quả sau khi biên dịch chương trình Phương pháp tìm kiếm được sử dụng trong ví dụ này được gọi là tìm kiếm tuần tự. Với phương pháp thì trong trường hợp xấu nhất có thể có đến n phép so sánh, tuy nhiên đây cũng là 1 cách tìm kiếm cơ bản nhất mà bất cứ lập trình viên nào cũng nên biết và sử dụng được nó. 5. Lời kết Đây là bài tìm hiểu về kiểu mảng đầu tiên trong Java đó là mảng một chiều. Như đã nói, nội dung của bài này khá dài và khá phức tạp nên tôi sẽ không trình bày quá nhiều vì như vậy sẽ dễ làm cho các bạn khó nắm bắt được nội dung của bài. Để giúp các bạn có thể luyện tập tốt hơn về mảng một chiều trong Java, tôi sẽ bổ sung một số bài tập và cố gắng giải thích kỹ để các bạn có thể nắm chắc hơn nội dung về mảng. Các bạn theo dõi nhé!
Cú pháp, cách khai báo nhập xuất mảng một chiều trong Java array . Thao tác với mảng ứng dụng vào giải các bài tập liên quan trong thực tế! Giới thiệu về mảng trong JavaCú pháp khai báo mảng một chiềuCode nhập xuất mảng JavaLời kết Giới thiệu về mảng trong Java Định nghĩa Mảng là tập hợp các phần tử có cùng kiểu dữ liệu, có vị trí liên tiếp nhau trong các ô nhớ. Lập trình viên sử dụng mảng để khai báo và lưu các thông tin cần thiết để giải quyết các bài toán trong thực tế. Mảng có thể là mảng một chiều, mảng 2 chiều. Thao tác với mảng là nội dung quan trọng trong mỗi ngôn ngữ lập trình đều rất quan trọng. Đây dường như là một cấu trúc chính và được sử dụng nhiều nhất. Nếu không có mảng, coi như bạn đã bỏ qua ngôn ngữ lập trình. Giống như mảng trong ngôn ngữ C/C++, mảng trong Java có thể lưu trữ số nguyên, số thực hoặc các kiểu dữ liệu khác do bạn tự định nghĩa. Ví dụ như mảng các đối tượng sinh viên, lớp người . . . Khi khai báo mảng một chiều Java, bạn không cần phải cấp bộ nhớ trước, chỉ cần thực hiện theo cú pháp + + []; Sau đó khi xác định được số lượng phần tử cần phải lưu trữ thì bạn mới cấp phát bộ nhớ giúp đỡ tốn bộ nhớ. Cú pháp của nỏ giống như khai báo một đối tượng. = new [n]; trong đó n là số phần tử của mảng. Ví dụ int a[]; // khai báo mảng a a = new int[100]; // khai háo mảng a có 100 ô nhớ // Hoặc bạn cũng có thể khai báo trên cùng một dòng double b[] = new double[10]; // Khai báo mảng b kiểu double có 10 ô nhớ Code nhập xuất mảng Java Nhập mảng cũng giống như trong các ngôn ngữ lập trình khác. Chắc chắn bạn phải dùng một vòng lặp for chạy từ vị trí đầu, đến cuối mảng. Sau đó nhập dữ liệu từ bàn phím cho mỗi phần tử. Nếu bạn chưa biết cách nhập sử dụng lớp Scanner thì có thể xem tại đây. Cách xuất mảng thì đơn giản hơn. Bạn cũng chạy một vòng lặp for, sau đó in giá trị ra màn hình. Cụ thể bạn tham khảo code của mình dưới đây nhé! import public class Array_io { public static void mainString[] args { int a[]= new int[10]; // Khai báo mảng a gồm 10 phần tử số nguyên Scanner sc =new Scanner // Khai báo đối tượng sc lớp Scanner 10 phan tu cua mang "; forint i=0;i= 2 và n<100 thì bạn cho vòng lặp while vào là được. Ví dụ import public class Array_io { private int b[] = new int[10]; // Hàm nhập mảng public void nhapMang{ Scanner sc =new Scanner 10 phan tu cua mang "; forint i=0;i<10;i++ { b[i]= } } // Hàm xuất mảng public void xuatMang{ vua nhap "; forint i=0;i<10;i++ } public static void mainString[] args { Array_io vidu = new Array_io; } } Kết quả khi chạy một trong hai chương trình bên trên Lời kết Từ đây, bạn có thể thực hiện các bài toán như tính tổng các phần tử, giải quyết bài toán nào đó ghi gặp phải. Nội dung này xuyên suốt quả trình học tập sau này của bạn. Bài viết dựa trên kinh nghiệm cá nhân của mình. Nếu bạn có gì thắc mắc để lại comment xuống dưới bài viết này nhé! Nguồn kỷ niệm học lập trình Java của tui!
nhập xuất mảng 1 chiều trong java