{
Операторы вывода
}
Например, необходимо вывести на экран элементы следующего массива:
int myVector[]=new int[10]{9,8,7,6,5,4,3,2,1,0};
Используем специальную форму цикла for:
For (int value: myVector)
System.out.printf(“%5d”, value);
В этом случае не нужно указывать ни параметр цикла, ни длину вектора. Переменная value (имя может быть любым) по очереди перебирает элементы массива, принимая значения этих элементов.
В окне вывода появится:
9 8 7 6 5 4 3 2 1 0
Примеры:
1. задать с помощью генератора случайных чисел элементы целочисленного массива matr34, вывести его на экран и в диалоговое окно вывода построчно. Размеры массива ввести с помощью диалогового окна ввода:
package javaapplication1;
// импорт библиотеки графических компонентов Swing
import javax.swing.*;
import java.util.*;
public class JavaApplication1 // задание главного класса программы
{
// описание главного метода main этого класса
public static void main(String[] args)
{
// описание переменных:
int n, m, matrMin, matrMax;
String input, text;
// вызов диалогового окна ввода исходных данных
input=JOptionPane.showInputDialog("Нижняя граница диапазона matrMin:");
// преобразование из строкового значения в целое
matrMin=Integer.parseInt(input);
input=JOptionPane.showInputDialog("Верхняя граница диапазона matrMax:");
matrMax=Integer.parseInt(input);
input=JOptionPane.showInputDialog("Количество строк n:");
n=Integer.parseInt(input);
input=JOptionPane.showInputDialog("Количество столбцов m:");
m=Integer.parseInt(input);
// формирование строки вывода
text="Значения входных переменных:\nmatrMin=" + matrMin + "\nmatrMax=" + matrMax + "\nn=" + n + "\nm=" + m;
// вызов диалогового окна эхо-печати
JOptionPane.showMessageDialog(null, text);
// консольный вывод
System.out.printf("matrMin=%d\nmatrMax=%d\nn=%d\nm=%d\n ",
matrMin, matrMax, n, m);
// создание матрицы n x m элементов
int matr[][]=new int[n][m];
// консольный вывод
System.out.println("Исходная матрица:");
/*
создание объекта Rand класса Random - генератора случ. чисел
инициализация генератора случайных чисел,
привязка его к системному времени
*/
Random Rand=new Random();
// заполнение матрицы случайными числами
for (int i=0; i<n; i++)
{
for (int j=0; j<m; j++)
{
// получение очередного случайного числа в диапазоне
// от matrMin до matrMax
matr[i][j]=Rand.nextInt(matrMax-matrMin+1) + matrMin;
// консольный вывод элементов матрицы построчно
System.out.printf(" %5d", matr[i][j]);
}
// переход на новую строку
System.out.println();
}
// вывод элементов матрицы в диалоговое окно
text="Исходная матрица:\n";
for (int i=0; i<n; i++)
{
for (int j=0; j<m; j++)
text+=matr[i][j] + " ";
text+=”\n”; //переход на новую строку
}
// вызов диалогового окна
JOptionPane.showMessageDialog(null, text);
}
}
В окне вывода появится:
matrMin=-10
matrMax=10
n=3
m=4
Исходная матрица:
10 8 2 6
3 10 -1 -6
-3 -6 -8 7
2. Рассортировать элементы заданного случайным образом целочисленного вектора vector[n] методом обменной сортировки (пузырька):
package javaapplication6_1;
// импорт библиотеки графических компонентов Swing
import javax.swing.*;
import java.util.*;
public class JavaApplication6_1 // задание главного класса
{
// описание главного метода main этого класса
public static void main(String[] args)
{
// описание переменных:
int n, vectorMin, vectorMax, temp;
String input, text;
// вызов диалогового окна ввода исходных данных
input=JOptionPane.showInputDialog("Нижняя граница диапазона vectorMin:");
// преобразование из строкового значения в целое
vectorMin=Integer.parseInt(input);
input=JOptionPane.showInputDialog("Верхняя граница диапазона vectoMax:");
vectorMax=Integer.parseInt(input);
input=JOptionPane.showInputDialog("Размер вектора n:");
n=Integer.parseInt(input);
// формирование строки вывода
text="Значения входных переменных:\nvectorMin=" + vectorMin +
"\nvectorMax=" + vectorMax + "\nn=" + n;
// вызов диалогового окна эхо-печати
JOptionPane.showMessageDialog(null, text);
// консольный вывод
System.out.printf("vectorMin=%d\nvectorMax=%d\nn=%d\n",
vectorMin, vectorMax, n);
// создание вектора длиной n элементов
int vector[]=new int[n];
// консольный вывод
System.out.println("Исходный вектор:");
/*
создание объекта Rand класса Random - генератора случ.чисел
инициализация генератора случайных чисел,
привязка его к системному времени
* /
Random Rand=new Random();
// создание вектора случайных чисел
for (int i=0; i<n; i++)
{
// получение очередного случайного числа в диапазоне
// от vectorMin до vectorMax
vector[i]=Rand.nextInt(vectorMax-vectorMin+1) + vectorMin;
// консольный вывод элемента вектора
System.out.printf(" %5d", vector[i]);
}
System.out.println();
// сортировка вектора методом "пузырька"
for (int j=n-2; j>=0; j--)
for (int i=0; i<=j; i++)
if (vector[i] > vector[i+1])
{
temp=vector[i];
vector[i]=vector[i+1];
vector[i+1]=temp;
}
System.out.println("Отсортированный вектор:");
// консольный вывод вектора
for (int i=0; i<n; i++)
System.out.printf(" %5d", vector[i]);
System.out.println();
}
}
В окне вывода появится:
vectorMin=-10
vectorMax=10
n=10
Исходный вектор:
10 -7 -1 3 -6 7 7 -1 9 -2
Отсортированный вектор:
-7 -6 -2 -1 -1 3 7 7 9 10
3. Рассортировать элементы заданного случайным образом целочисленного вектора vector[n] методом Шелла (обменная сортировка с убывающим шагом). В этом случае массив делится на группы по два элемента и производится сортировка в каждой группе: максимальный элемент ставится на второе место. После этого массив делится на группы по четыре элемента, и они снова сортируются. Количество элементов в сортируемой группе удваивается до тех пор, пока не остается одна группа, включающая все элементы массива, которая и сортируется окончательно:
package javaapplication6_1;
// импорт библиотеки графических компонентов Swing
import javax.swing.*;
import java.util.*;
public class JavaApplication6_1 // задание главного класса
{
// описание главного метода main этого класса
public static void main(String[] args)
{
// описание переменных:
int n, vectorMin, vectorMax, temp;
int i1, i2, i3, m, per;
String input, text;
// вызов диалогового окна ввода исходных данных
input=JOptionPane.showInputDialog("Нижняя граница диапазона vectorMin:");
// преобразование из строкового значения в целое
vectorMin=Integer.parseInt(input);
input=JOptionPane.showInputDialog("Верхняя граница диапазона vectoMax:");
vectorMax=Integer.parseInt(input);
input=JOptionPane.showInputDialog("Размер вектора n:");
n=Integer.parseInt(input);
// формирование строки вывода
text="Значения входных переменных:\nvectorMin=" + vectorMin +
"\nvectorMax=" + vectorMax + "\nn=" + n;
// вызов диалогового окна эхо-печати
JOptionPane.showMessageDialog(null, text);
// консольный вывод
System.out.printf("vectorMin=%d\nvectorMax=%d\nn=%d\n",
vectorMin, vectorMax, n);
// создание вектора длиной n элементов
int vector[]=new int[n];
// консольный вывод
System.out.println("Исходный вектор:");
/*
создание объекта Rand класса Random - генератора случ. чисел
инициализация генератора случайных чисел,
привязка его к системному времени
*/
Random Rand=new Random();
// формирование вектора
for (int i=0; i<n; i++)
{
// получение очередного случайного числа в диапазоне
// от vectorMin до vectorMax
vector[i]=Rand.nextInt(vectorMax-vectorMin+1) + vectorMin
// консольный вывод элемента вектора
System.out.printf(" %5d", vector[i]);
}
System.out.println();
// сортировка вектора методом Шелла
i1=n-1;
while (i1>=1)
{
i1 /= 2;
i2=n-i1-1;
do
{
per=1;
for (int i=0; i<=i2; i++)
{
i3=i+i1;
if (vector[i] > vector[i3])
{
temp=vector[i];
vector[i]=vector[i3];
vector[i3]=temp;
per=0;
} // if (vector[i] > vector[i3])
} // for (i=0; i<=i2; i++)
}while (per==0); // do
} // while (i1>=1)
System.out.println("Отсортированный вектор:");
// консольный вывод вектора
for (int i=0; i<n; i++)
System.out.printf(" %5d", vector[i]);
System.out.println();
}
}
В окне вывода появится:
vectorMin=-10
vectorMax=10
n=10
Исходный вектор:
1 -1 2 8 6 0 -9 9 -5 4
Отсортированный вектор:
-9 -5 -1 0 1 2 4 6 8 9