2016a
Материал из PTHSWiki
(Различия между версиями)
Antonk (обсуждение | вклад) |
Antonk (обсуждение | вклад) |
||
(не показаны 13 промежуточных версий 1 участника) | |||
Строка 1: | Строка 1: | ||
+ | == Бинарные файлы == | ||
+ | <source lang="java"> | ||
+ | import java.io.IOException; | ||
+ | import java.nio.file.Files; | ||
+ | import java.nio.file.Path; | ||
+ | import java.nio.file.Paths; | ||
+ | import java.util.ArrayList; | ||
+ | import java.util.Arrays; | ||
+ | import java.util.Random; | ||
+ | |||
+ | public class Main { | ||
+ | |||
+ | public static void main(String[] args) throws IOException { | ||
+ | byte[] arr = Files.readAllBytes(Paths.get("output.txt")); | ||
+ | for (int i = 0; i < arr.length; i++) { | ||
+ | System.out.println((arr[i]+256)%256); | ||
+ | } | ||
+ | |||
+ | int a = 209; | ||
+ | ArrayList<Byte> al = new ArrayList<>(); | ||
+ | al.add((byte) 1); | ||
+ | al.add((byte) 6); | ||
+ | al.add((byte) 87); | ||
+ | al.add((byte)(a - 256*(a/128))); | ||
+ | |||
+ | byte[] arr2 = new byte[al.size()]; | ||
+ | for (int i = 0; i < al.size(); i++) { | ||
+ | arr2[i] = al.get(i); | ||
+ | } | ||
+ | |||
+ | Files.write(Paths.get("output.txt"), arr2); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | </source> | ||
+ | |||
+ | == Конь-2 == | ||
+ | |||
+ | <source lang="java"> | ||
+ | import java.util.ArrayList; | ||
+ | import java.util.LinkedList; | ||
+ | |||
+ | public class Main { | ||
+ | static int[] marked; | ||
+ | static int[] dist; | ||
+ | |||
+ | public static void bfs(int z) { | ||
+ | LinkedList<Integer> queue = new LinkedList<Integer>(); | ||
+ | |||
+ | for (int i = 0; i < dist.length; i++) { | ||
+ | dist[i] = -1; | ||
+ | } | ||
+ | |||
+ | marked[z] = 1; | ||
+ | dist[z] = 0; | ||
+ | queue.add(z); | ||
+ | int i; | ||
+ | |||
+ | while (queue.size() > 0) { | ||
+ | int x = queue.remove(); | ||
+ | if ((x%8 > 1) && (x-10 >= 0) && (marked[x-10] == 0)) { | ||
+ | i = x-10; | ||
+ | marked[i] = 1; | ||
+ | dist[i] = dist[x] + 1; | ||
+ | queue.add(i); | ||
+ | } | ||
+ | if ((x%8 > 1) && (x+6 <= 63) && (marked[x+6] == 0)) { | ||
+ | i = x+6; | ||
+ | marked[i] = 1; | ||
+ | dist[i] = dist[x] + 1; | ||
+ | queue.add(i); | ||
+ | } | ||
+ | if ((x%8 < 6) && (x+10 <= 63) && (marked[x+10] == 0)) { | ||
+ | i = x+10; | ||
+ | marked[i] = 1; | ||
+ | dist[i] = dist[x] + 1; | ||
+ | queue.add(i); | ||
+ | } | ||
+ | if ((x%8 < 6) && (x-6 >= 0) && (marked[x-6] == 0)) { | ||
+ | i = x-6; | ||
+ | marked[i] = 1; | ||
+ | dist[i] = dist[x] + 1; | ||
+ | queue.add(i); | ||
+ | } | ||
+ | |||
+ | if ((x%8 > 0) && (x-17 >= 0) && (marked[x-17] == 0)) { | ||
+ | i = x-17; | ||
+ | marked[i] = 1; | ||
+ | dist[i] = dist[x] + 1; | ||
+ | queue.add(i); | ||
+ | } | ||
+ | if ((x%8 < 7) && (x-15 >= 0) && (marked[x-15] == 0)) { | ||
+ | i = x-15; | ||
+ | marked[i] = 1; | ||
+ | dist[i] = dist[x] + 1; | ||
+ | queue.add(i); | ||
+ | } | ||
+ | if ((x%8 < 7) && (x+17 <= 63) && (marked[x+17] == 0)) { | ||
+ | i = x+17; | ||
+ | marked[i] = 1; | ||
+ | dist[i] = dist[x] + 1; | ||
+ | queue.add(i); | ||
+ | } | ||
+ | if ((x%8 > 0) && (x+15 <= 63) && (marked[x+15] == 0)) { | ||
+ | i = x+15; | ||
+ | marked[i] = 1; | ||
+ | dist[i] = dist[x] + 1; | ||
+ | queue.add(i); | ||
+ | } | ||
+ | |||
+ | } | ||
+ | } | ||
+ | |||
+ | } | ||
+ | </source> | ||
+ | |||
+ | == Конь-3 == | ||
+ | |||
+ | <source lang="java"> | ||
+ | import java.util.ArrayList; | ||
+ | import java.util.LinkedList; | ||
+ | |||
+ | public class Main3 { | ||
+ | static int[] marked; | ||
+ | |||
+ | public static void bfs(int z) { | ||
+ | LinkedList<Integer> queue = new LinkedList<Integer>(); | ||
+ | |||
+ | marked[z] = 1; | ||
+ | queue.add(z); | ||
+ | int i; | ||
+ | |||
+ | while (queue.size() > 0) { | ||
+ | int x = queue.remove(); | ||
+ | |||
+ | for (i = 0; i <= 63; i++) { | ||
+ | if ((Math.abs((x%8-i%8)*(x/8-i/8)) == 2) && (marked[i] == 0)) { | ||
+ | marked[i] = marked[x]+1; | ||
+ | queue.add(i); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | </source> | ||
+ | |||
+ | == DFS + BFS == | ||
+ | |||
+ | <source lang="java"> | ||
+ | import java.io.File; | ||
+ | import java.io.FileNotFoundException; | ||
+ | import java.util.LinkedList; | ||
+ | import java.util.Scanner; | ||
+ | |||
+ | public class Main { | ||
+ | static int arr[][]; | ||
+ | static int V; | ||
+ | static int marked[]; | ||
+ | |||
+ | public static void dfs(int z, int k) { | ||
+ | marked[z] = k; | ||
+ | for (int i = 0; i < V; i++) { | ||
+ | if ((arr[z][i] == 1) && (marked[i] == 0)) { | ||
+ | dfs(i, k); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | public static void bfs(int z) { | ||
+ | marked[z] = 1; | ||
+ | |||
+ | LinkedList<Integer> queue = new LinkedList<Integer>(); | ||
+ | queue.add(z); | ||
+ | |||
+ | while (queue.size() > 0) { | ||
+ | int x = queue.remove(); | ||
+ | for (int i = 0; i < V; i++) { | ||
+ | if ((arr[x][i] == 1) && (marked[i] == 0)) { | ||
+ | queue.add(i); | ||
+ | marked[i] = 1; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | public static void main(String[] args) throws FileNotFoundException { | ||
+ | Scanner sc = new Scanner(new File("input.txt")); | ||
+ | |||
+ | V = sc.nextInt(); | ||
+ | |||
+ | arr = new int[V][V]; | ||
+ | |||
+ | for (int i = 0; i < V; i++) { | ||
+ | for (int j = 0; j < V; j++) { | ||
+ | arr[i][j] = sc.nextInt(); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | marked = new int[V]; | ||
+ | |||
+ | int z = 0; | ||
+ | |||
+ | bfs(z); | ||
+ | |||
+ | for (int i = 0; i < V; i++) { | ||
+ | System.out.println(marked[i]); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | </source> | ||
+ | |||
+ | |||
+ | == Java == | ||
+ | |||
+ | Этот кусочек кода считывает файл построчно и выводит сумму числе в каждой строке | ||
+ | <source lang="java"> | ||
+ | while (sc.hasNext()) { | ||
+ | String numberString = sc.nextLine(); | ||
+ | int summa = 0; | ||
+ | for (String s : numberString.split(" ")) { | ||
+ | summa += Integer.parseInt(s); | ||
+ | } | ||
+ | System.out.println(summa); | ||
+ | }</source> | ||
+ | |||
+ | == Java. Список смежности == | ||
+ | |||
+ | <source lang="java"> | ||
+ | import java.util.ArrayList; | ||
+ | import java.util.Collections; | ||
+ | |||
+ | |||
+ | public class Main { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | // int[] arr = new int[10]; | ||
+ | // arr[i] = 7 | ||
+ | // x = 2*arr[i] | ||
+ | // добавить в конец массива число 10 | ||
+ | |||
+ | // ArrayList<Integer> arr = new ArrayList<Integer>(); | ||
+ | // arr.set(i, 7); | ||
+ | // x = 2 * arr.get(i); | ||
+ | // arr.add(10); | ||
+ | |||
+ | // создать пустой список смежности | ||
+ | ArrayList< ArrayList<Integer> > arr = new ArrayList< ArrayList<Integer> >(); | ||
+ | int V = 20; | ||
+ | for (int i = 0; i < V; i++) { | ||
+ | ArrayList<Integer> tmp = new ArrayList<Integer>(); | ||
+ | arr.add(tmp); | ||
+ | } | ||
+ | |||
+ | // добавили ребро 3-5 | ||
+ | arr.get(3).add(5); | ||
+ | arr.get(5).add(3); | ||
+ | |||
+ | // сортировать третью строку | ||
+ | Collections.sort(arr.get(3)); | ||
+ | |||
+ | // вывести все вершины, с которыми связана третья | ||
+ | int a = 3; | ||
+ | for (int i = 0; i < arr.get(a).size(); i++) { | ||
+ | System.out.println(arr.get(a).get(i)); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | </source> | ||
+ | |||
+ | == Java Swing. ActionListener == | ||
+ | |||
+ | <source lang="java"> | ||
+ | class Window3 extends JFrame { | ||
+ | int num1; | ||
+ | char operation; | ||
+ | Window3() { | ||
+ | super("Ы:)"); | ||
+ | operation = 'E'; | ||
+ | setSize(700, 666); | ||
+ | setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); | ||
+ | |||
+ | Box b = Box.createVerticalBox(); | ||
+ | |||
+ | final JButton b1 = new JButton("+"); | ||
+ | b.add(b1); | ||
+ | final JButton b2 = new JButton("-"); | ||
+ | b.add(b2); | ||
+ | final JButton b3 = new JButton("="); | ||
+ | b.add(b3); | ||
+ | |||
+ | final JTextArea tf = new JTextArea(); | ||
+ | b.add(tf); | ||
+ | tf.setText("0"); | ||
+ | |||
+ | ActionListener al = new ActionListener() { | ||
+ | @Override | ||
+ | public void actionPerformed(ActionEvent arg0) { | ||
+ | if (operation != 'E') { | ||
+ | b3.doClick(); | ||
+ | } | ||
+ | |||
+ | num1 = Integer.parseInt(tf.getText()); | ||
+ | tf.setText(""); | ||
+ | operation = ((JButton)(arg0.getSource())).getText().charAt(0); | ||
+ | } | ||
+ | }; | ||
+ | |||
+ | b1.addActionListener(al); | ||
+ | b2.addActionListener(al); | ||
+ | |||
+ | b3.addActionListener(new ActionListener() { | ||
+ | @Override | ||
+ | public void actionPerformed(ActionEvent e) { | ||
+ | int num2 = Integer.parseInt(tf.getText()); | ||
+ | |||
+ | switch (operation) { | ||
+ | case '+': | ||
+ | tf.setText(Integer.toString(num1+num2)); | ||
+ | break; | ||
+ | case '-': | ||
+ | tf.setText(Integer.toString(num1-num2)); | ||
+ | break; | ||
+ | // default: | ||
+ | // tf.setText(""); | ||
+ | } | ||
+ | |||
+ | operation = 'E'; | ||
+ | } | ||
+ | }); | ||
+ | |||
+ | setContentPane(b); | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | == Java Swing. JTabbedPane == | ||
+ | |||
+ | <source lang="java"> | ||
+ | Box b = Box.createVerticalBox(); | ||
+ | |||
+ | JTabbedPane tp = new JTabbedPane(); | ||
+ | JPanel panel1 = new JPanel(); | ||
+ | panel1.setLayout(new FlowLayout()); | ||
+ | panel1.add(new JButton("1111111")); | ||
+ | JTextArea ta = new JTextArea(20, 20); | ||
+ | panel1.add(ta); | ||
+ | panel1.add(new JScrollPane(ta)); | ||
+ | tp.addTab("Заголовок", panel1); | ||
+ | JPanel panel2 = new JPanel(); | ||
+ | panel2.setLayout(new FlowLayout()); | ||
+ | panel2.add(new JButton("2222222")); | ||
+ | panel2.add(new JTextArea(20, 20)); | ||
+ | tp.addTab("Заголовок2", panel2); | ||
+ | |||
+ | b.add(tp); | ||
+ | </source> | ||
+ | |||
+ | == Java Swing. JFileChooser == | ||
+ | |||
+ | <source lang="java"> | ||
+ | import java.awt.GridLayout; | ||
+ | import java.awt.event.ActionEvent; | ||
+ | import java.awt.event.ActionListener; | ||
+ | import java.io.File; | ||
+ | import java.io.FileNotFoundException; | ||
+ | import java.util.Scanner; | ||
+ | |||
+ | import javax.swing.*; | ||
+ | |||
+ | class Window2 extends JFrame { | ||
+ | |||
+ | |||
+ | Window2() { | ||
+ | super("Ы)"); | ||
+ | setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); | ||
+ | setSize(300, 400); | ||
+ | |||
+ | Box b = Box.createVerticalBox(); | ||
+ | |||
+ | JButton b1 = new JButton("+"); | ||
+ | b.add(b1); | ||
+ | JButton b2 = new JButton("Exit"); | ||
+ | b.add(b2); | ||
+ | |||
+ | final JTextArea tf = new JTextArea(); | ||
+ | b.add(tf); | ||
+ | |||
+ | b1.addActionListener(new ActionListener() { | ||
+ | |||
+ | @Override | ||
+ | public void actionPerformed(ActionEvent e) { | ||
+ | JFileChooser opener = new JFileChooser(); | ||
+ | int res = opener.showOpenDialog(getParent()); | ||
+ | if (res == JFileChooser.APPROVE_OPTION) { | ||
+ | File f = opener.getSelectedFile(); | ||
+ | try { | ||
+ | Scanner s = new Scanner(f); | ||
+ | while (s.hasNext()) { | ||
+ | String str = s.nextLine(); | ||
+ | tf.append(str+"\n"); | ||
+ | } | ||
+ | } catch (FileNotFoundException e1) { | ||
+ | // TODO Auto-generated catch block | ||
+ | e1.printStackTrace(); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | }); | ||
+ | |||
+ | b2.addActionListener(new ActionListener() { | ||
+ | |||
+ | @Override | ||
+ | public void actionPerformed(ActionEvent arg0) { | ||
+ | System.exit(0); | ||
+ | } | ||
+ | }); | ||
+ | |||
+ | setContentPane(b); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | public class Main { | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | JFrame w = new Window2(); | ||
+ | w.setVisible(true); | ||
+ | } | ||
+ | |||
+ | } | ||
+ | </source> | ||
+ | |||
+ | == Java Swing == | ||
+ | |||
+ | <source lang="java"> | ||
+ | import java.awt.BorderLayout; | ||
+ | import java.awt.FlowLayout; | ||
+ | import java.awt.event.ActionEvent; | ||
+ | import java.awt.event.ActionListener; | ||
+ | import java.awt.event.MouseAdapter; | ||
+ | import java.awt.event.MouseEvent; | ||
+ | import java.util.Random; | ||
+ | |||
+ | import javax.swing.*; | ||
+ | |||
+ | class TestWindow extends JFrame { | ||
+ | TestWindow() { | ||
+ | super("Заголовок окна"); | ||
+ | setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); | ||
+ | setSize(300, 400); | ||
+ | |||
+ | // JPanel panel = new JPanel(); | ||
+ | // panel.setLayout(new BorderLayout()); | ||
+ | // | ||
+ | // JPanel upPanel = new JPanel(); | ||
+ | // upPanel.setLayout(new FlowLayout()); | ||
+ | // JButton b1 = new JButton("1"); | ||
+ | // upPanel.add(b1); | ||
+ | // JButton b2 = new JButton("2"); | ||
+ | // upPanel.add(b2); | ||
+ | // | ||
+ | // JPanel downPanel = new JPanel(); | ||
+ | // downPanel.setLayout(new FlowLayout()); | ||
+ | // JButton b3 = new JButton("3"); | ||
+ | // downPanel.add(b3); | ||
+ | // JButton b4 = new JButton("4"); | ||
+ | // downPanel.add(b4); | ||
+ | // | ||
+ | // panel.add(upPanel, BorderLayout.NORTH); | ||
+ | // panel.add(downPanel, BorderLayout.SOUTH); | ||
+ | // setContentPane(panel); | ||
+ | |||
+ | // Box box = Box.createVerticalBox(); | ||
+ | // JButton b1 = new JButton("1"); | ||
+ | // JButton b2 = new JButton("2"); | ||
+ | // JButton b3 = new JButton("3"); | ||
+ | // JButton b4 = new JButton("4"); | ||
+ | // box.add(b1); | ||
+ | // box.add(Box.createVerticalStrut(20)); | ||
+ | // box.add(b2); | ||
+ | // box.add(Box.createVerticalGlue()); | ||
+ | // box.add(b3); | ||
+ | // box.add(b4); | ||
+ | // setContentPane(box); | ||
+ | |||
+ | final JPanel panel = new JPanel(); | ||
+ | panel.setLayout(null); | ||
+ | final JButton b1 = new JButton("1"); | ||
+ | b1.setSize(100, 57); | ||
+ | b1.setLocation(100, 87); | ||
+ | |||
+ | b1.addActionListener(new ActionListener() { | ||
+ | public void actionPerformed(ActionEvent e) { | ||
+ | Random r = new Random(); | ||
+ | b1.setLocation(r.nextInt(panel.getWidth()), r.nextInt(panel.getHeight())); | ||
+ | int a = Integer.parseInt(b1.getText()); | ||
+ | |||
+ | b1.setText(Integer.toString(a+1)); | ||
+ | } | ||
+ | }); | ||
+ | |||
+ | b1.addMouseListener(new MouseAdapter() { | ||
+ | public void mouseEntered(MouseEvent e) { | ||
+ | Random r = new Random(); | ||
+ | b1.setLocation(r.nextInt(panel.getWidth()), r.nextInt(panel.getHeight())); | ||
+ | int a = Integer.parseInt(b1.getText()); | ||
+ | |||
+ | b1.setText(Integer.toString(a+1)); | ||
+ | } | ||
+ | }); | ||
+ | |||
+ | panel.add(b1); | ||
+ | setContentPane(panel); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | public class Main { | ||
+ | public static void main(String[] args) { | ||
+ | JFrame window = new TestWindow(); | ||
+ | window.setVisible(true); | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
+ | |||
+ | |||
+ | == Задание по отладке == | ||
+ | |||
+ | <source lang="java"> | ||
+ | public class Errors { | ||
+ | public static void main(String[] args) { | ||
+ | int arr[] = new int[20]; | ||
+ | |||
+ | for (int i = 0; i <= 20; i++) { | ||
+ | arr[i] = i*i; | ||
+ | } | ||
+ | |||
+ | int sum = 0; | ||
+ | for (int i = 0; i <= 20; i++) { | ||
+ | if (i % 2 == 0) { | ||
+ | sum = sum + arr[i]; | ||
+ | } else { | ||
+ | sum = sum - arr[i]; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | System.out.println(sum); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | </source> | ||
+ | |||
== Чтение массива из файла (BufferedReader - по одному числу в строке) == | == Чтение массива из файла (BufferedReader - по одному числу в строке) == | ||
− | < | + | <syntaxhighlight lang="java"> |
/* | /* | ||
Строка 18: | Строка 573: | ||
*/ | */ | ||
− | |||
import java.io.BufferedReader; | import java.io.BufferedReader; | ||
import java.io.File; | import java.io.File; | ||
Строка 46: | Строка 600: | ||
} | } | ||
− | </ | + | </syntaxhighlight > |
== Чтение массива из файла (Scanner - можно числа в одной строке) == | == Чтение массива из файла (Scanner - можно числа в одной строке) == | ||
Строка 182: | Строка 736: | ||
} | } | ||
</pre> | </pre> | ||
+ | |||
+ | == Создание собственных классов == | ||
+ | <syntaxhighlight lang="java"> | ||
+ | import java.util.Scanner; | ||
+ | |||
+ | public class Main { | ||
+ | |||
+ | public static class Person { | ||
+ | public String name; | ||
+ | public int ege; | ||
+ | } | ||
+ | |||
+ | public static void main(String[] args) { | ||
+ | Scanner sc = new Scanner(System.in); | ||
+ | |||
+ | Person arr[] = new Person[2]; | ||
+ | |||
+ | for (int i = 0; i < arr.length; i++) { | ||
+ | arr[i] = new Person(); | ||
+ | arr[i].name = sc.next(); | ||
+ | arr[i].ege = sc.nextInt(); | ||
+ | } | ||
+ | |||
+ | for (int i = 0; i < arr.length; i++) { | ||
+ | System.out.println(arr[i].ege + " " + arr[i].name); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | } | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | == ArrayList и чтение до конца файла == | ||
+ | |||
+ | <syntaxhighlight lang="java"> | ||
+ | import java.io.File; | ||
+ | import java.io.FileNotFoundException; | ||
+ | import java.util.ArrayList; | ||
+ | import java.util.Scanner; | ||
+ | |||
+ | public class Main { | ||
+ | public static void main(String[] args) throws FileNotFoundException { | ||
+ | Scanner sc = new Scanner(new File("input.txt")); | ||
+ | |||
+ | ArrayList<Point> al = new ArrayList<Point>(); | ||
+ | |||
+ | while (sc.hasNext()) { | ||
+ | int a = sc.nextInt(); | ||
+ | int b = sc.nextInt(); | ||
+ | |||
+ | Point p = new Point(a, b); | ||
+ | al.add(p); | ||
+ | } | ||
+ | |||
+ | for (int i = 0; i < al.size(); i++) { | ||
+ | al.get(i).print(); | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </syntaxhighlight> |
Текущая версия на 11:29, 21 января 2016
Бинарные файлы
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;
public class Main {
public static void main(String[] args) throws IOException {
byte[] arr = Files.readAllBytes(Paths.get("output.txt"));
for (int i = 0; i < arr.length; i++) {
System.out.println((arr[i]+256)%256);
}
int a = 209;
ArrayList<Byte> al = new ArrayList<>();
al.add((byte) 1);
al.add((byte) 6);
al.add((byte) 87);
al.add((byte)(a - 256*(a/128)));
byte[] arr2 = new byte[al.size()];
for (int i = 0; i < al.size(); i++) {
arr2[i] = al.get(i);
}
Files.write(Paths.get("output.txt"), arr2);
}
}
Конь-2
import java.util.ArrayList;
import java.util.LinkedList;
public class Main {
static int[] marked;
static int[] dist;
public static void bfs(int z) {
LinkedList<Integer> queue = new LinkedList<Integer>();
for (int i = 0; i < dist.length; i++) {
dist[i] = -1;
}
marked[z] = 1;
dist[z] = 0;
queue.add(z);
int i;
while (queue.size() > 0) {
int x = queue.remove();
if ((x%8 > 1) && (x-10 >= 0) && (marked[x-10] == 0)) {
i = x-10;
marked[i] = 1;
dist[i] = dist[x] + 1;
queue.add(i);
}
if ((x%8 > 1) && (x+6 <= 63) && (marked[x+6] == 0)) {
i = x+6;
marked[i] = 1;
dist[i] = dist[x] + 1;
queue.add(i);
}
if ((x%8 < 6) && (x+10 <= 63) && (marked[x+10] == 0)) {
i = x+10;
marked[i] = 1;
dist[i] = dist[x] + 1;
queue.add(i);
}
if ((x%8 < 6) && (x-6 >= 0) && (marked[x-6] == 0)) {
i = x-6;
marked[i] = 1;
dist[i] = dist[x] + 1;
queue.add(i);
}
if ((x%8 > 0) && (x-17 >= 0) && (marked[x-17] == 0)) {
i = x-17;
marked[i] = 1;
dist[i] = dist[x] + 1;
queue.add(i);
}
if ((x%8 < 7) && (x-15 >= 0) && (marked[x-15] == 0)) {
i = x-15;
marked[i] = 1;
dist[i] = dist[x] + 1;
queue.add(i);
}
if ((x%8 < 7) && (x+17 <= 63) && (marked[x+17] == 0)) {
i = x+17;
marked[i] = 1;
dist[i] = dist[x] + 1;
queue.add(i);
}
if ((x%8 > 0) && (x+15 <= 63) && (marked[x+15] == 0)) {
i = x+15;
marked[i] = 1;
dist[i] = dist[x] + 1;
queue.add(i);
}
}
}
}
Конь-3
import java.util.ArrayList;
import java.util.LinkedList;
public class Main3 {
static int[] marked;
public static void bfs(int z) {
LinkedList<Integer> queue = new LinkedList<Integer>();
marked[z] = 1;
queue.add(z);
int i;
while (queue.size() > 0) {
int x = queue.remove();
for (i = 0; i <= 63; i++) {
if ((Math.abs((x%8-i%8)*(x/8-i/8)) == 2) && (marked[i] == 0)) {
marked[i] = marked[x]+1;
queue.add(i);
}
}
}
}
}
DFS + BFS
import java.io.File;
import java.io.FileNotFoundException;
import java.util.LinkedList;
import java.util.Scanner;
public class Main {
static int arr[][];
static int V;
static int marked[];
public static void dfs(int z, int k) {
marked[z] = k;
for (int i = 0; i < V; i++) {
if ((arr[z][i] == 1) && (marked[i] == 0)) {
dfs(i, k);
}
}
}
public static void bfs(int z) {
marked[z] = 1;
LinkedList<Integer> queue = new LinkedList<Integer>();
queue.add(z);
while (queue.size() > 0) {
int x = queue.remove();
for (int i = 0; i < V; i++) {
if ((arr[x][i] == 1) && (marked[i] == 0)) {
queue.add(i);
marked[i] = 1;
}
}
}
}
public static void main(String[] args) throws FileNotFoundException {
Scanner sc = new Scanner(new File("input.txt"));
V = sc.nextInt();
arr = new int[V][V];
for (int i = 0; i < V; i++) {
for (int j = 0; j < V; j++) {
arr[i][j] = sc.nextInt();
}
}
marked = new int[V];
int z = 0;
bfs(z);
for (int i = 0; i < V; i++) {
System.out.println(marked[i]);
}
}
}
Java
Этот кусочек кода считывает файл построчно и выводит сумму числе в каждой строке
while (sc.hasNext()) {
String numberString = sc.nextLine();
int summa = 0;
for (String s : numberString.split(" ")) {
summa += Integer.parseInt(s);
}
System.out.println(summa);
}
Java. Список смежности
import java.util.ArrayList;
import java.util.Collections;
public class Main {
public static void main(String[] args) {
// int[] arr = new int[10];
// arr[i] = 7
// x = 2*arr[i]
// добавить в конец массива число 10
// ArrayList<Integer> arr = new ArrayList<Integer>();
// arr.set(i, 7);
// x = 2 * arr.get(i);
// arr.add(10);
// создать пустой список смежности
ArrayList< ArrayList<Integer> > arr = new ArrayList< ArrayList<Integer> >();
int V = 20;
for (int i = 0; i < V; i++) {
ArrayList<Integer> tmp = new ArrayList<Integer>();
arr.add(tmp);
}
// добавили ребро 3-5
arr.get(3).add(5);
arr.get(5).add(3);
// сортировать третью строку
Collections.sort(arr.get(3));
// вывести все вершины, с которыми связана третья
int a = 3;
for (int i = 0; i < arr.get(a).size(); i++) {
System.out.println(arr.get(a).get(i));
}
}
}
Java Swing. ActionListener
class Window3 extends JFrame {
int num1;
char operation;
Window3() {
super("Ы:)");
operation = 'E';
setSize(700, 666);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Box b = Box.createVerticalBox();
final JButton b1 = new JButton("+");
b.add(b1);
final JButton b2 = new JButton("-");
b.add(b2);
final JButton b3 = new JButton("=");
b.add(b3);
final JTextArea tf = new JTextArea();
b.add(tf);
tf.setText("0");
ActionListener al = new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
if (operation != 'E') {
b3.doClick();
}
num1 = Integer.parseInt(tf.getText());
tf.setText("");
operation = ((JButton)(arg0.getSource())).getText().charAt(0);
}
};
b1.addActionListener(al);
b2.addActionListener(al);
b3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int num2 = Integer.parseInt(tf.getText());
switch (operation) {
case '+':
tf.setText(Integer.toString(num1+num2));
break;
case '-':
tf.setText(Integer.toString(num1-num2));
break;
// default:
// tf.setText("");
}
operation = 'E';
}
});
setContentPane(b);
}
}
Java Swing. JTabbedPane
Box b = Box.createVerticalBox();
JTabbedPane tp = new JTabbedPane();
JPanel panel1 = new JPanel();
panel1.setLayout(new FlowLayout());
panel1.add(new JButton("1111111"));
JTextArea ta = new JTextArea(20, 20);
panel1.add(ta);
panel1.add(new JScrollPane(ta));
tp.addTab("Заголовок", panel1);
JPanel panel2 = new JPanel();
panel2.setLayout(new FlowLayout());
panel2.add(new JButton("2222222"));
panel2.add(new JTextArea(20, 20));
tp.addTab("Заголовок2", panel2);
b.add(tp);
Java Swing. JFileChooser
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import javax.swing.*;
class Window2 extends JFrame {
Window2() {
super("Ы)");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 400);
Box b = Box.createVerticalBox();
JButton b1 = new JButton("+");
b.add(b1);
JButton b2 = new JButton("Exit");
b.add(b2);
final JTextArea tf = new JTextArea();
b.add(tf);
b1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JFileChooser opener = new JFileChooser();
int res = opener.showOpenDialog(getParent());
if (res == JFileChooser.APPROVE_OPTION) {
File f = opener.getSelectedFile();
try {
Scanner s = new Scanner(f);
while (s.hasNext()) {
String str = s.nextLine();
tf.append(str+"\n");
}
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
});
b2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
System.exit(0);
}
});
setContentPane(b);
}
}
public class Main {
public static void main(String[] args) {
JFrame w = new Window2();
w.setVisible(true);
}
}
Java Swing
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Random;
import javax.swing.*;
class TestWindow extends JFrame {
TestWindow() {
super("Заголовок окна");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 400);
// JPanel panel = new JPanel();
// panel.setLayout(new BorderLayout());
//
// JPanel upPanel = new JPanel();
// upPanel.setLayout(new FlowLayout());
// JButton b1 = new JButton("1");
// upPanel.add(b1);
// JButton b2 = new JButton("2");
// upPanel.add(b2);
//
// JPanel downPanel = new JPanel();
// downPanel.setLayout(new FlowLayout());
// JButton b3 = new JButton("3");
// downPanel.add(b3);
// JButton b4 = new JButton("4");
// downPanel.add(b4);
//
// panel.add(upPanel, BorderLayout.NORTH);
// panel.add(downPanel, BorderLayout.SOUTH);
// setContentPane(panel);
// Box box = Box.createVerticalBox();
// JButton b1 = new JButton("1");
// JButton b2 = new JButton("2");
// JButton b3 = new JButton("3");
// JButton b4 = new JButton("4");
// box.add(b1);
// box.add(Box.createVerticalStrut(20));
// box.add(b2);
// box.add(Box.createVerticalGlue());
// box.add(b3);
// box.add(b4);
// setContentPane(box);
final JPanel panel = new JPanel();
panel.setLayout(null);
final JButton b1 = new JButton("1");
b1.setSize(100, 57);
b1.setLocation(100, 87);
b1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Random r = new Random();
b1.setLocation(r.nextInt(panel.getWidth()), r.nextInt(panel.getHeight()));
int a = Integer.parseInt(b1.getText());
b1.setText(Integer.toString(a+1));
}
});
b1.addMouseListener(new MouseAdapter() {
public void mouseEntered(MouseEvent e) {
Random r = new Random();
b1.setLocation(r.nextInt(panel.getWidth()), r.nextInt(panel.getHeight()));
int a = Integer.parseInt(b1.getText());
b1.setText(Integer.toString(a+1));
}
});
panel.add(b1);
setContentPane(panel);
}
}
public class Main {
public static void main(String[] args) {
JFrame window = new TestWindow();
window.setVisible(true);
}
}
Задание по отладке
public class Errors {
public static void main(String[] args) {
int arr[] = new int[20];
for (int i = 0; i <= 20; i++) {
arr[i] = i*i;
}
int sum = 0;
for (int i = 0; i <= 20; i++) {
if (i % 2 == 0) {
sum = sum + arr[i];
} else {
sum = sum - arr[i];
}
}
System.out.println(sum);
}
}
Чтение массива из файла (BufferedReader - по одному числу в строке)
/*
* Читает из файла input.txt
* В первой строке число n - количество чисел.
* В следующих n строках по одному числу в строке
*
* Пример:
* 6
* 12
* 1
* 41
* 2
* 54
* 13
*/
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
public class Main2 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new FileReader("input.txt"));
int n = Integer.parseInt(br.readLine());
int arr[] = new int[n];
for (int i = 0; i < arr.length; i++) {
arr[i] = Integer.parseInt(br.readLine());
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
Чтение массива из файла (Scanner - можно числа в одной строке)
/* * Читает из файла input.txt * В первой строке число n - количество чисел. * Во второй - n чисел. * * Пример: * 6 * 12 1 41 2 54 13 */ import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.util.Scanner; public class Main2 { public static void main(String[] args) throws NumberFormatException, IOException { Scanner sc = new Scanner(new File("input.txt")); int n = sc.nextInt(); int arr[] = new int[n]; for (int i = 0; i < arr.length; i++) { arr[i] = sc.nextInt(); } for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } } }
А+Б. Ввод из файла. Вывод в файл
import java.io.*; import java.util.*; public class aplusb { public static void main(String[] args) throws IOException { Scanner in = new Scanner(new File("aplusb.in")); PrintWriter out = new PrintWriter(new File("aplusb.out")); int a = in.nextInt(); int b = in.nextInt(); out.println(a + b); in.close(); out.close(); } }
Ввод двух чисел в строку
Scanner sc=new Scanner(System.in); int num1=sc.nextInt(); int num2=sc.nextInt();
Ввод с клавиатуры
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws NumberFormatException, IOException { int a, b; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); a = Integer.parseInt(br.readLine()); b = Integer.parseInt(br.readLine()); System.out.println(a+b); } }
Функции
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws NumberFormatException, IOException { int a, b, c; double d; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); a = Integer.parseInt(br.readLine()); b = Integer.parseInt(br.readLine()); c = sum(a, b); d = mySqrt(b); System.out.println(c); System.out.println(d); } public static double mySqrt(int a) { return Math.sqrt(a); } public static int sum(int a, int b) { System.out.println("I really want to sleep"); return a+b; } public static int max2(int a, int b) { if (a > b) { return a; } else { return b; } } }
Создание собственных классов
import java.util.Scanner;
public class Main {
public static class Person {
public String name;
public int ege;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Person arr[] = new Person[2];
for (int i = 0; i < arr.length; i++) {
arr[i] = new Person();
arr[i].name = sc.next();
arr[i].ege = sc.nextInt();
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i].ege + " " + arr[i].name);
}
}
}
ArrayList и чтение до конца файла
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws FileNotFoundException {
Scanner sc = new Scanner(new File("input.txt"));
ArrayList<Point> al = new ArrayList<Point>();
while (sc.hasNext()) {
int a = sc.nextInt();
int b = sc.nextInt();
Point p = new Point(a, b);
al.add(p);
}
for (int i = 0; i < al.size(); i++) {
al.get(i).print();
}
}
}