For (тип_массива переменная: имя_массива)




{

Операторы вывода

}

Например, необходимо вывести на экран элементы следующего массива:

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



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-03-31 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: