import java.awt.*;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.*;
import java.util.Random;
public class SortSelectInMatrixApp {
public static void main(String[] args) throws FileNotFoundException {
new GrSortSelectInMatrixApp();
}//end main psvm
//TODO RANDOMIZE
public static int rnd(int min, int max)
{
return new Random().ints(min, max).iterator().nextInt();
}//end random
public static class GrSortSelectInMatrixApp
extends Frame implements WindowListener
{
public void windowOpened(WindowEvent e) {
}
public void windowClosed(WindowEvent e) {
}
public void windowIconified(WindowEvent e) {
}
public void windowDeiconified(WindowEvent e) {
}
public void windowActivated(WindowEvent e) {
}
public void windowDeactivated(WindowEvent e) {
}
public void windowClosing(WindowEvent e) {
dispose();
System.exit(0);
}
//TODO variable
public int n = 9;
public int k = 0;
public int[][] A = new int[n][n];
public int[] B = new int[n * n];
public int[] C = new int[n * n];
public int[] D = new int[n * n];
public String ms, t, z, text;
public File af = new File("A.txt");
public File bf = new File("B.txt");
public File cf = new File("C.txt");
public File otf = new File("data.txt");
public int RH, RW, minx, miny, maxx, maxy, cx, cy, dx, dy;
public int x, y, x1, y1, x2, y2, x3, y3, x4, y4;
public float wt = 1.5f;
public void paint(Graphics g) {
Dimension rc = getSize();
Insets in = getInsets();
RH = rc.width;
RW = rc.height;
minx = in.left;
maxx = RH - in.right;
miny = in.top;
maxy = RW - in.bottom;
cx = Math.abs(maxx - minx) / 2;
cy = Math.abs(maxy - miny) / 2;
dx = dy = 25;
g.setColor(new Color(4, 28, 237));
text = "Сортування обраних елементів матриці. Підготував: Моренко Олексій, 10-Мі клас";
g.setFont(new Font("Trebuchet Ms", Font.BOLD, 19));
g.drawString(text, minx + 5, miny + 35);
//TODO init MATRIX and write to File "A.txt"
ms = text; // todo write File "data.txt"
ms += "\n\nМатриця A[9][9]:\n";
k=0;
try {
af.createNewFile();
FileWriter writer = new FileWriter(af);
text = n + "\n";
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
A[i][j] = rnd(10, 99); //todo randomize
if (i == j)
{
B[k] = A[i][j];
C[k] = B[k];
D[k] = B[k];
k++;
}
text += A[i][j] + " ";
}
text += "\n";
}
writer.write(text);
writer.flush();
writer.close();
ms += text;
} catch (IOException e)
{
e.printStackTrace();
}
ms += "\n\nОбрані елементи:\n";
try {
bf.createNewFile();
FileWriter writer = new FileWriter(bf);
text = k + "\n";
for (int i = 0; i < k; i++)
{
text += B[i] + " ";
}
writer.write(text);
writer.flush();
writer.close();
ms += text;
} catch (IOException e)
{
e.printStackTrace();
}
int min, num, sw;
for (int i = 0; i < k - 1; i++)
{
min = C[i];
num = i;
for (int j = i + 1; j < k; j++)
{
if (min > C[j])
{
min = C[j];
num = j;
}
}
sw = C[i];
C[i] = min;
C[num] = sw;
}
///////////////////
for (int i = 0; i < n - 1; i++)
{
min = D[i];
num = i;
for (int j = i + 1; j < n; j++)
{
if (min > D[j])
{
min = D[j];
num = j;
}
}
sw = D[i];
D[i] = min;
D[num] = sw;
}
ms += "\n\nРезультат сортування за зростанням:\n";
try {
cf.createNewFile();
FileWriter writer = new FileWriter(cf);
text = k + "\n";
for (int i = 0; i < k; i++)
{
text += C[i] + " ";
}
writer.write(text);
writer.flush();
writer.close();
ms += text;
} catch (IOException e)
{
e.printStackTrace();
}
try {
otf.createNewFile();
FileWriter writer = new FileWriter(otf);
writer.write(ms);
writer.flush();
writer.close();
} catch (IOException e)
{
e.printStackTrace();
}
/////////////////////////////////////////////////
Graphics2D g2 = (Graphics2D) g;
g2.setStroke(new BasicStroke(wt));
g.setColor(new Color(255, 51, 58));
text = "Матриця A[9][9]:";
g.setFont(new Font("Trebuchet Ms", Font.BOLD, 21));
g.drawString(text, minx + 80, miny + 160);
g.setColor(new Color(107, 0, 229));
dx = (maxx - minx) / (2 * n);
dy = (maxy - miny) / (2 * n);
x = minx + 20;
y = miny + 175;
for (int i = 0; i <= n; i++)
{
g.drawLine(x, y + i * dy, x + maxx - 401, y + i * dy);
}
for (int i = 0; i <= n; i++)
{
g.drawLine(x + i * dx, y, x + i * dx, y + maxy - 320);
}
g.setColor(new Color(0, 0, 0));
g.setFont(new Font("Trebuchet Ms", Font.BOLD, 20));
x = x + dx / 2 - 17;
y = y + dy / 2 + 7;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if (i == j) text = " * ";
else text = " " + String.valueOf(A[i][j]);
g.drawString(text, x + j * dx, y + i * dy);
}
}
////////////////////////////////////////////////////////////
g.setColor(new Color(255, 51, 58));
g.setFont(new Font("Trebuchet Ms", Font.BOLD, 21));
text = "Обрані елементи:";
g.drawString(text, minx + 350, miny + 160);
g.setColor(new Color(107, 0, 229));
dx = (maxx - minx) / (3 * n);
dy = (maxy - miny) / (2 * n);
x = minx + 490;
y = miny + 175;
for (int i = 0; i <= n; i++)
{
g.drawLine(x, y + i * dy, x + maxx - 770, y + i * dy);
}
for (int i = 0; i <= 1; i++)
{
g.drawLine(x + i * dx, y, x + i * dx, y + maxy - 320);
}
g.setColor(new Color(0, 0, 0));
g.setFont(new Font("Trebuchet Ms", Font.BOLD, 20));
x = x + dx / 2 - 15;
y = y + dy / 2 + 7;
for (int i = 0; i < n; i++)
{
text = String.valueOf(B[i]);
g.drawString(text, x + 3, y + i * dy);
}
////////////////////////////////////////////////////////////
g.setColor(new Color(255, 51, 58));
text = "Результати сортування:";
g.setFont(new Font("Trebuchet Ms", Font.BOLD, 21));
g.drawString(text, minx + 550, miny + 160);
g.setColor(new Color(107, 0, 229));
dx = (maxx - minx) / (3 * n);
dy = (maxy - miny) / (2 * n);
x = minx + 660;
y = miny + 175;
for (int i = 0; i <= n; i++)
{
g.drawLine(x, y + i * dy, x + maxx - 770, y + i * dy);
}
for (int i = 0; i <= 1; i++)
{
g.drawLine(x + i * dx, y, x + i * dx, y + maxy - 320);
}
g.setColor(new Color(0, 0, 0));
g.setFont(new Font("Trebuchet Ms", Font.BOLD, 20));
x = x + dx / 2 - 15;
y = y + dy / 2 + 7;
for (int i = 0; i < n; i++)
{
text = String.valueOf(D[i]);
g.drawString(text, x + 3, y + i * dy);
}
}//end paint
public GrSortSelectInMatrixApp() throws FileNotFoundException
{
super("Обробка даних матриць в графічному режимі.");
addWindowListener(this);
setLayout(null);
setLocation(80, 80);
setSize(800, 600);
this.setResizable(false);
show();
}//end Project GrSortSelectInMatrixApp()
}
}
Якщо ви помітили помилку чи неточність, виділіть фрагмент тексту та натисніть Ctrl+Enter.