Java: Транспонированная матрица

Начал учить JAVA. Первая программа пусть будет транспонированная матрица. Мне код понятен, очень похоже на c/c++/c#.

Я модифицировал эту программу написанную на си

Транспонированная матрица — матрица, полученная из исходной матрицы  заменой строк на столбцы.

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
36
37
38
39
40
41
42
43
44
45
import java.io.*;
import java.util.Random;
 
public class Main 
{
    public static void main(String[] args) throws IOException
    {   
 
        BufferedReader bReader = new BufferedReader (new InputStreamReader(System.in));
 
        String str = bReader.readLine();
        int n = Integer.parseInt(str);
        int[][] a = new int[n][n];
        Random rand = new Random();
 
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < n; j++)
            {
                a[i][j] = Math.abs(rand.nextInt() % 100);
                System.out.print(a[i][j] + " ");
            }
            System.out.print("\n");
        }       
        for(int i=0;i<n;i++) 
        { 
            for(int j=i;j<n;j++) 
            {
                int temp=a[j][i];
                a[j][i]=a[i][j];
                a[i][j]=temp;
            }
        }
        System.out.println("Транспонированная матрица:");
        for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < n; j++)
            {
                System.out.print(a[i][j] + " ");
            }
            System.out.print("\n");
        }
        System.in.read();
    }
}
import java.io.*;
import java.util.Random;

public class Main 
{
	public static void main(String[] args) throws IOException
	{	

		BufferedReader bReader = new BufferedReader (new InputStreamReader(System.in));

		String str = bReader.readLine();
		int n = Integer.parseInt(str);
		int[][] a = new int[n][n];
		Random rand = new Random();

		for (int i = 0; i < n; i++)
		{
			for (int j = 0; j < n; j++)
			{
				a[i][j] = Math.abs(rand.nextInt() % 100);
				System.out.print(a[i][j] + " ");
			}
			System.out.print("\n");
		}		
		for(int i=0;i<n;i++) 
	    { 
	        for(int j=i;j<n;j++) 
	        {
	            int temp=a[j][i];
	            a[j][i]=a[i][j];
	            a[i][j]=temp;
	        }
	    }
		System.out.println("Транспонированная матрица:");
		for (int i = 0; i < n; i++)
	    {
	        for (int j = 0; j < n; j++)
	        {
	        	System.out.print(a[i][j] + " ");
	        }
	        System.out.print("\n");
	    }
	    System.in.read();
	}
}

А принцип тот же. Отличия в чтении с клавиатуры и вывод на консоль. Создается BufferedReader. При его помощи информация с консоли читается в строковую переменную, далее конвертируется в integer… Далее создается экземпляр класса Random для генерации псевдослучайных чисел (для заполнения матрицы)

А далее все в точности так же как в си (и в C#). Заполнение матрицы, потом перестановка элементов, потом снова вывод.

Запуск в Eclipse (Ubuntu)

И после переноса на Windows 8 как Jar-файл:

К сожалению на Windows кодировка сбита

Скачать Jar-файл

Добавить комментарий