Bu makalada massiwler bilen baglanyşykly meselelere serediler (we esasanam garaşsyz derňewi üpjün eder). Aşakdaky ugurlarda başarnyklarymyzy ösdüreris:
Bir ölçegli massiwler bilen baglanyşykly meseleler
Yzygiderliligi dowam etdiriň
Bu meseleleriň tapgyrynda size zerur bolar:- Bu ýa-da san yzygiderliliginiň haýsy görnüşini emele getirýändigini kesgitläň.
- Berlen yzygiderliligiň ilkinji N elementlerini bitewi massiw hökmünde emele getirýän we massiw elementlerini ekranda görkezýän funksiýa ýazyň.
1, 2, 3, 4, 5…
1-nji ädim: nagşy kesgitläň. Bu ýerdäki hemme zat başlangyç - bu tebigy sanlaryň tapgyry. 2-nji ädim: Berlen hataryň ilkinji N elementlerini massiw hökmünde emele getirjek bir funksiýa ýazyň:
public class Main {
public static void main(String[] args) {
System.out.println(Arrays.toString(createArrayOfIntegers(10)));
// Output: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
}
public static int[] createArrayOfIntegers(int n) {
int[] array = new int[n];
for (int i = 1; i <= n; i++) {
array[i-1] = i;
}
return array;
}
}
Şonuň ýaly-da, aşakdaky yzygiderliligi dowam etdirjek funksiýalary ýazmak zerurdyr:
A. 2, 4, 6, 8, 10...
B. 1, 3, 5, 7, 9...
C. 1, 4, 9, 16, 25...
D. 1, 8, 27, 64, 125...
E. 1, -1, 1, -1, 1, -1...
F. 1, -2, 3, -4, 5, -6...
G. 1, -4, 9, -16, 25....
H. 1, 0, 2, 0, 3, 0, 4....
I. 1, 2, 6, 24, 120, 720...
J. 1, 1, 2, 3, 5, 8, 13, 21…
Elementleri gözläň
Bu meseleleriň tapgyrynda, käbir aýratynlyklara eýe bolan taýýar massiwde element tapmaly. Mysal üçin, iň ýokary bahasy bolan element. Görkezmek üçin, geliň, bir massiw alýan we massiwdäki iň ýokary elementiň indeksini kesgitleýän bir funksiýa üçin kod ýazalyň, soňra bolsa bu elementi indeks bilen bilelikde konsola çykaralyň.java.util.concurrent.ThreadLocalRandom
Şeýle hem, synpy ulanyp, tötänleýin elementlerden ybarat belli bir uzynlygyň bitewi massiwini nädip çalt döredip boljakdygyny görkezerin :
public class Main {
public static void main(String[] args) {
int[] array = generateRandomIntArray(10);
findMax(array);
/*
Output:
Generated random array: [50551934, -551646189, 410352642, 1822778873, -1744293692, -1140287711, 878876868, -2116893120, -797503442, -703924530]
Max element is [1822778873] with index [3]
*/
}
public static int[] generateRandomIntArray(int n) {
int[] array = ThreadLocalRandom.current().ints().limit(n).toArray();
System.out.println("Generated random array: " + Arrays.toString(array));
return array;
}
public static void findMax(int[] array) {
int maxIndex = 0;
int max = array[maxIndex];
for (int i = 1; i < array.length; i++) {
if (array[i] > max) {
max = array[i];
maxIndex = i;
}
}
System.out.println(String.format("Max element is [%d] with index [%d]", max, maxIndex));
}
}
Indi wezipeleriň özleri. Tötänleýin bitewi elementleriň toplumyndan tapmaly:
- Maksimum.
- Minimum.
- Ortaça.
- Iň ýokary we iň az elementleriň arasyndaky elementleriň sany.
- Ilkinji esasy san.
- Iň soňky san.
- Toplumdaky esasy sanlaryň sany.
Sortirlemek
Meseleleriň bu tapgyrynda dürli sortlaşdyryş algoritmlerini ulanyp, bitewi elementleriň toplumyny tertipleşdirmeli. Internetde dürli algoritmlerde gaty köp material bar. Ilki bilen algoritmiň manysyna düşünmäge synanyşyň, soňra bolsa özüňiz durmuşa geçirmäge synanyşyň. Ilki kagyzda (blok diagrammasy, pseudokod, size laýyk zat), soň bolsa IDEA-da. Implementationerine ýetirmegiň algoritmleri:- köpürjik görnüşi;
- saýlama görnüşi;
- goýmak görnüşi;
- görnüşi birleşdirmek.
Iki ölçegli massiwler bilen baglanyşykly meseleler
Matrisa çyzyň
Işleriň indiki tapgyrynda belli bir görnüşde düzülen iki ölçegli massiwleri (matrisalary) çekmek zerur (olar konsola çykyş): olar ýumuş bilen görkezilen nagşa laýyk bolmaly. Size bir mysal bereýin. Formanyň matrisasyny gurmaly we görkezmelim*n
( m
hatarlaryň sany nirede we n
hatardaky elementleriň sany):
1, 2, 3, 4
5, 6, 7, 8
9,10,11,12
Geliň, biziň üçin hemme zady etjek, şeýle hem matrisany konsola owadan çykarjak bir funksiýa ýazalyň (peýdaly bolup biler):
public class Main {
public static void main(String[] args) {
createAndDrawMatrix(3, 4);
}
public static void createAndDrawMatrix(int m, int n) {
int[][] matrix = new int[m][n];
int value = 1;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
matrix[i][j] = value;
value ++;
}
}
printMatrix(matrix);
}
public static void printMatrix(int[][] matrix) {
for (int[] array : matrix) {
for (int anInt : array) {
System.out.print(String.format("%3d", anInt));
}
System.out.println();
}
}
}
m*n
Indi meseleler: Formanyň matrisasyny görkeziň : 4, 3, 2, 1 8, 7, 6, 5, 12,11,10, 9 ----------- 1, 4, 7 2, 5, 8 3, 6, 9 ----------- 9, 8, 7 6, 5, 4 3, 2, 1 ----------- 12,11,10, 9 8, 7, 6, 5, 4, 3, 2, 1
Elementleri gözläň
Bu bölümde matrisanyň dürli böleklerinde: belli bir sütünde ýa-da belli bir hatarda dürli elementleri gözlemek amala aşyrylmalydyr. Formanyň matrisasy bar diýip pikir edeliň: -1 2 -3 4 -5 6 -7 8 -9 10 -11 12 -13 14 -15 16 -17 18 -19 20 -21 22 -23 24 -25 26 -27 28 -29 30 -31 32 -33 34 -35
Mysal üçin, üçünji hatarda otrisatel elementleriň sanyny tapalyň:
public class Main {
public static void main(String[] args) {
int [][] matrix = {
{ -1, 2, -3, 4, -5, 6, -7},
{ 8, -9, 10, -11, 12, -13, 14},
{-15, 16, -17, 18, -19, 20, -21},
{ 22, -23, 24, -25, 26, -27, 28},
{-29, 30, -31, 32, -33, 34, -35}
};
findNegativeCountInRow(matrix, 3);
}
private static void findNegativeCountInRow(int[][] matrix, int rowNumber) {
int negativeCount = 0;
for (int element : matrix[rowNumber]){
if (element < 0) {
negativeCount ++;
}
}
System.out.println("Matrix: ");
printMatrix(matrix);
System.out.println(String.format("Has %d negative elements in #%d row ", negativeCount, rowNumber));
}
public static void printMatrix(int[][] matrix) {
for (int[] array : matrix) {
for (int anInt : array) {
System.out.print(String.format("%5d", anInt));
}
System.out.println();
}
}
}
Esasy usuly ýerine ýetirmegiň netijesinde, konsola aşakdakylar çykar:
Matrix:
-1 2 -3 4 -5 6 -7
8 -9 10 -11 12 -13 14
-15 16 -17 18 -19 20 -21
22 -23 24 -25 26 -27 28
-29 30 -31 32 -33 34 -35
Has 3 negative elements in #3 row
Indi ýumuşlar. Geň zat üçin formanyň n
matrisasyny çap ediň :n*n
1, -2, 3,
-4, 5, -6,
7, -8, 9
Bu matrisadan alyň:
- ähli negatiw elementler;
- setirdäki ähli negatiw elementler
i
; - sütündäki ähli negatiw elementler
j
; - ähli diagonal elementler (çep ýokarky burçdan başlap);
- ähli diagonal elementler (aşaky çep burçdan başlap).
Deňiz söweşi
Teryldyzjyk bilen soňky bölüm: maslahat ýa-da mysal ýok. Matrisalar deňiz söweşi programmirlemek üçin amatlydyr. Bu oýny programmirlemegiň tapgyrlaryndan biri gämileriň oýun meýdançasyna ýerleşdirilmegi. Bu meseleleriň birnäçesini çözseňiz, deňiz söweşini ýeňip geçjekdigiňize arkaýyn boluň. Şeýlelik bilen, noldan ybarat 10x10 matrisa berildi. Deňiz söweşini oýnamak üçin meýdan diýip çaklalyň. Bu ugurda 0 boş öýjük, 1 gämi ýa-da gäminiň bir bölegi. Deňiz söweş oýnunyň düzgünlerine laýyklykda funksiýalary ýazyň, olaryň her biri tötänleýin ýerleşdirilýär:- 10 sany bir gatly gämi;
- 10 sany iki gatly korbals;
- 5 üç gatly gämi;
- deňiz söweşi üçin ähli gämileri tertipleýär (4 sany bir gatly, 3 sany iki gatly, 2 sany üç gatly, 1 sany dört gatly).
GO TO FULL VERSION