Java. Lập trình căn bản C. Mảng 1 chiều. Thủ tục nhập, xuất mảng 1 chiều A với n phần tử (n cho trước) Liệt kê vị trí chẵn. Ước chung lớn nhất của mảng 1 chiều gồm n phần tử Xóa các phần tử trùng trong mảng 1 chiều.
Các phần tử trong mảng hai chiều trong Lập trình C ++ Xuất các phần tử mảng 2 chiều. Để truy xuất giá trị của phần tử trong mảng, ta sử dụng cú pháp: [][]; Ví dụ: Cho mảng như sau: int a[2][3] // 2 dòng, 3 cột Các truy
Đăng ký học lập trình PASCAL, C/C++, Python, PHP, Bồi dưỡng giáo viên luyện thi Học sinh giỏi, Phân tích thiết kế thuật toán, C#, Hướng dẫn chấm điểm tự động môn Tin học. Giảng viên: thầy Nguyễn Tô Sơn - Thủ khoa Đại học Sư phạm Hà Nội
Cú pháp để khai báo mảng nhiều chiều như sau: type [, , … ,] varname = new type [size1, size2, …, sizeN]; Ví dụ khai báo mảng số nguyên hai chiều 3x4 (3 hàng 4 cột) int [,] myvar = new int [ 3, 4 ]; Để truy cập vào phần tử cụ thể của mảng, chỉ ra số chỉ số (bằng số chiều):
Bài viết đệ quy trong lập trình là gì? sẽ giúp ích được cho bạn nếu bạn mới bắt đầu với khái niệm đệ quy, hãy thử nghĩ một chút, một kĩ thuật đệ quy cần có:. Điều kiện dừng: trong trường hợp này, điều kiện dừng của mảng là chỉ số i khi i bằng 0 hoặc bằng n (n là số lượng phần tử của mảng.
U6s9N. Sử dụng 2 vòng lặp for lồng nhau để duyệt đến từng phần tử với chỉ số dòng và cột trong mảng 2 chiều. Sau đó, nhập hoặc xuất mảng 2 chiều với các phần tử class Main { public static void mainString[] args { int[][] matrix = new int[3][4]; Scanner input = new Scanner "+ + " dong va " + matrix[0].length + " cot cua matrix"; forint row = 0; row < ; row++ { forint column = 0; column < matrix[row].length; column++ { matrix[row][column] = } } matrix co "+ + " dong va " + matrix[0].length + " cot"; forint row = 0; row < ; row++ { forint column = 0; column < matrix[row].length ; column++ { + " "; } } } } Kết quảNhap 3 dong va 4 cot cua matrix 1 2 3 0 4 5 6 9 7 2 5 5 Xuat matrix co 3 dong va 4 cot 1 2 3 0 4 5 6 9 7 2 5 5 Xuất mảng 2 chiều sử dụng vòng lặp for-eachclass Main { public static void mainString[] args { int[][] matrix = { {1, 2, 3, 0}, {4, 5, 6, 9}, {7, 2, 5, 5} }; //vòng lặp for-each đầu tiên truy cập đến mảng 1 chiều chứa các dòng for int[] innerArray matrix { //vòng lặp for-each truy cập đến từng phần tử trong các dòng forint data innerArray { + " "; } } } } Kết quả1 2 3 0 4 5 6 9 7 2 5 5 2. Tính tổng các phần tử trong mảng 2 chiềuSử dụng 2 vòng lặp for lồng nhau để duyệt qua từng phần tử trong mảng 2 chiều. Sau đó, cộng dồn các phần tử Main { public static void mainString[] args { int[][] matrix = { {1, 2, 3, 0}, {4, 5, 6, 9}, {7, 2, 5, 5} }; int total = 0; forint row = 0; row < row++ { forint column = 0; column < matrix[row].length; column++ { total += matrix[row][column]; } } cac phan tu trong matrix = " + total; } } Kết quảTong cac phan tu trong matrix = 493. Tính tổng các phần tử trong mảng 2 chiều theo cộtDuyệt theo số cột trước rồi dựa trên từng cột, cộng dồn các phần tử trong từng dòng tương ứng với cột Main { public static void mainString[] args { int[][] matrix = { {1, 2, 3, 0}, {4, 5, 6, 9}, {7, 2, 5, 5} }; forint column = 0; column < matrix[0].length; column++{ int total = 0; forint row = 0; row < row++{ total += matrix[row][column]; } for column " + column + " is " + total; } } } Kết quảSum for column 0 is 12 Sum for column 1 is 9 Sum for column 2 is 14 Sum for column 3 is 14 4. Tính tổng các phần tử trên đường chéo chính của ma trậnĐường chéo chính của một ma trận A bao gồm các phần tử Ai,j với i=j. Ba ma trận sau đây đều có đường chéo chính được biểu thị bởi các số 1 màu đỏBên dưới là một ma trận được biểu diễn bằng mảng 2 chiều. Các phần tử màu đỏ nằm trên đường chéo chính của ma trình tính tổng các phần tử trên đường chéo chính của ma trận trong Java như sauclass Main { public static void mainString[] args { int[][] matrix = { {1, 2, 3, 0}, {4, 5, 6, 9}, {7, 2, 5, 5} }; int total = 0; forint row = 0; row < row++ { forint column = 0; column < matrix[row].length; column++ { ifrow==column{ total += matrix[row][column]; } } } cac phan tu tren duong cheo chinh cua matrix = " + total; } } Kết quảTong cac phan tu tren duong cheo chinh cua matrix = 115. Mảng 2 chiều và phương thức trong Truyền mảng 2 chiều cho phương thức trong JavaMột mảng 2 chiều là tham số của phương thức thì là truyền tham chiếu. Các bạn có thể đọc lại bài Truyền tham trị và tham chiếu cho phương thức trong Java để hiểu rõ về truyền tham chiếu trong Main { public static void changeMatrixint[][] arr{ arr[0][0]=1; arr[0][1]=0; arr[0][2]=0; arr[0][3]=0; arr[1][0]=0; arr[1][1]=1; arr[1][2]=0; arr[1][3]=0; arr[2][0]=0; arr[2][1]=0; arr[2][2]=1; arr[2][3]=0; } public static void mainString[] args { int[][] matrix = { {1, 2, 3, 0}, {4, 5, 6, 9}, {7, 2, 5, 5} }; truoc khi goi ham changeMatrix"; forint row = 0; row < ; row++ { forint column = 0; column < matrix[row].length ; column++ { + " "; } } changeMatrixmatrix; sau khi goi ham changeMatrix"; forint row = 0; row < ; row++ { forint column = 0; column < matrix[row].length ; column++ { + " "; } } } } Kết quảMatrix truoc khi goi ham changeMatrix 1 2 3 0 4 5 6 9 7 2 5 5 Matrix sau khi goi ham changeMatrix 1 0 0 0 0 1 0 0 0 0 1 0 Rõ ràng, khi truyền mảng matrix vào hàm changeMatrix thì mảng matrix đã thay Kết quả trả về của một phương thức có thể là một mảng 2 chiềuclass Main { public static int[][] initMatrixint row, int col{ int[][] matrix = new int[row][col]; matrix[0][0]=1; matrix[0][1]=0; matrix[0][2]=0; matrix[0][3]=0; matrix[1][0]=0; matrix[1][1]=1; matrix[1][2]=0; matrix[1][3]=0; matrix[2][0]=0; matrix[2][1]=0; matrix[2][2]=1; matrix[2][3]=0; return matrix; } public static void mainString[] args { int row = 3; int col = 4; int[][] matrix; matrix = initMatrixrow, col; duoc khoi tao"; forint i = 0; i < ; i++ { forint j = 0; j < matrix[i].length ; j++ { + " "; } } } } Kết quảMatrix duoc khoi tao 1 0 0 0 0 1 0 0 0 0 1 0 Hàm initMatrix có kiểu trả về là mảng 2 chiều kiểu int. Thư viện cmath và một số hàm toán học thông dụng trong C++ Lập trình giao tiếp màn hình LCD với board mạch Arduino Các loại Thread trong Java Daemon Thread và User Thread Kỹ thuật cấp phát bộ nhớ động và minh họa với C++ Hàm đệ quy recursive function trong Python
This entry is part 10 of 31 in the series Tự học lập trình JavaBài viết hôm nay mình sẽ giới thiệu cho các bạn hiểu và biết cách sử dụng mảng một chiều trong java. 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 trong Java là một đối tượng chứa các phần tử có kiểu dữ liệu giống nhau. Cách khai báo [kiểu dữ liệu] [] [tên mảng] ; Ví dụ public class Test { public static void mainString[] args{ int []a; }} Ngoài ra bạn có thể khai báo theo cách sau [kiểu dữ liệu] [tên mảng] []; Cách khai báo này giống như cách khai báo mảng trong C/C++. Nhưng mình khuyên các bạn không nên khai báo theo cách này. Tạo mảng một chiều trong java Các bạn có thể khởi tạo mảng bằng cách dùng từ khóa new bằ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] ; Bằng cú pháp này bạn vừa khai báo mảng vừa khởi tạo mảng. Nếu bạn 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]; Các bạn xem qua ví dụ public class Test { public static void mainString[] args{ int []a;//khai báo mảng a = new int [5];//khởi tạo mảng }} Các bạn có thể truy cập đến phần tử của mảng bằng cú pháp Các bạn lưu ý là mảng bắt đầu bằng từ phần tử 0 đến kích_thước_mảng -1. Mảng một chiều trong java public class Test { public static void mainString[] args{ int []a; a = new int [5]; forint i=0;i< a[i] = i; } }} Trong ví dụ trên i chạy từ 1 đến 4 và lần lượt gán giá trị của chính nó cho phần tử thứ i của mảng. Chúng ta dùng thuộc tính length để xác định kích thước mảng. Chúng cùng in giá trị của mảng a ra màn hình public class Test { public static void mainString[] args{ int []a; a = new int [5]; forint i=0; i< a[i] = i; } forint i=0;i < 5;i++{ tri cua a"+i+" la "+a[i]; } }} Gia tri cua a0 la 0Gia tri cua a1 la 1Gia tri cua a2 la 2Gia tri cua a3 la 3Gia tri cua a4 la 4 Thay vì bạn viết forint i ;i < kích_thước_mảng ; i++ thì java hỗ trợ một vòng lặp foreach cho phép chúng ta duyệt qua tất cả các phần tử của mảng. Cú pháp for kiểu_dữ_liệu tên_biến tên_mảng { //khối lệnh } Trong đó tên_biến được khai báo mới, mà là một kiểu tương thích với các phần tử của mảng bạn đang truy cập. Biến này sẽ là có sẵn trong khối for và giá trị của nó sẽ là giống như phần tử mảng hiện tại. Cùng xem qua ví dụ public class Test { public static void mainString[] args{ float a[] = {4,5,6,8};//Khởi tạo mảng a gồm 4 phần tử for float i a { In ra các giá trị a[i] } }} Ở đây mình đã khởi tạo sẵn một mảng float có các giá trị { } . Biến i được xem như một a[i] và các bạn có thể thao tác với nó. Bài viết của mình đến đây là kết thúc.
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!
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
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!
nhập xuất mảng 1 chiều trong java