diff --git a/task01/src/com/example/task01/Task01Main.java b/task01/src/com/example/task01/Task01Main.java index 7efef9a8..5840b97f 100644 --- a/task01/src/com/example/task01/Task01Main.java +++ b/task01/src/com/example/task01/Task01Main.java @@ -1,21 +1,30 @@ package com.example.task01; +import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; -public class Task01Main { - public static void main(String[] args) throws IOException { - //здесь вы можете вручную протестировать ваше решение, вызывая реализуемый метод и смотря результат - // например вот так: - - /* +public class Task01Main +{ + public static void main(String[] args) throws IOException + { System.out.println(checkSumOfStream(new ByteArrayInputStream(new byte[]{0x33, 0x45, 0x01}))); - */ - } - public static int checkSumOfStream(InputStream inputStream) throws IOException { - // your implementation here - return 0; + public static int checkSumOfStream(InputStream inputStream) throws IOException + { + if (inputStream == null){ + throw new IllegalArgumentException(); + } + + int b = inputStream.read(); + int checkSum = 0; + + while (b != -1) { + + checkSum = Integer.rotateLeft(checkSum, 1) ^ b; + b = inputStream.read(); + } + return checkSum; } } diff --git a/task02/src/com/example/task02/Task02Main.java b/task02/src/com/example/task02/Task02Main.java index 865ea659..aefff9ba 100644 --- a/task02/src/com/example/task02/Task02Main.java +++ b/task02/src/com/example/task02/Task02Main.java @@ -1,13 +1,30 @@ package com.example.task02; import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; -public class Task02Main { - public static void main(String[] args) throws IOException { - // чтобы протестировать свое решение, вам нужно: - // - направить файл input.test в стандартный ввод программы (в настройках запуска программы в IDE или в консоли) - // - направить стандартный вывод программы в файл output.test - // - запустить программу - // - и сравнить получившийся файл output.test с expected.test +public class Task02Main +{ + public static void main(String[] args) throws IOException + { + InputStream inputStream = System.in; + OutputStream outputStream = System.out; + int previous = inputStream.read(); + int current = inputStream.read(); + + while (previous != -1){ + + if (current == 10 && previous == 13){ + previous = current; + current = inputStream.read(); + } + + outputStream.write(previous); + + previous = current; + current = inputStream.read(); + } + outputStream.flush(); } } diff --git a/task03/src/com/example/task03/Task03Main.java b/task03/src/com/example/task03/Task03Main.java index 332e0366..fb9d3cf8 100644 --- a/task03/src/com/example/task03/Task03Main.java +++ b/task03/src/com/example/task03/Task03Main.java @@ -1,21 +1,20 @@ package com.example.task03; -import java.io.IOException; -import java.io.InputStream; +import java.io.*; import java.nio.charset.Charset; public class Task03Main { public static void main(String[] args) throws IOException { - //здесь вы можете вручную протестировать ваше решение, вызывая реализуемый метод и смотря результат - // например вот так: - - /* System.out.println(readAsString(new FileInputStream("task03/src/com/example/task03/input.test"), Charset.forName("KOI8-R"))); - */ + } public static String readAsString(InputStream inputStream, Charset charset) throws IOException { - // your implementation here - return ""; + if (inputStream == null || charset == null) + throw new IllegalArgumentException(); + + InputStreamReader streamReader = new InputStreamReader(inputStream, charset); + BufferedReader bufferedReader = new BufferedReader(streamReader); + return bufferedReader.readLine(); } } diff --git a/task04/src/com/example/task04/Task04Main.java b/task04/src/com/example/task04/Task04Main.java index 4236c2e7..43424f5c 100644 --- a/task04/src/com/example/task04/Task04Main.java +++ b/task04/src/com/example/task04/Task04Main.java @@ -1,14 +1,31 @@ package com.example.task04; +import java.io.BufferedReader; import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; public class Task04Main { public static void main(String[] args) throws IOException { - // чтобы протестировать свое решение, вам нужно: - // - направить файл input.test в стандартный ввод программы (в настройках запуска программы в IDE или в консоли) - // - запустить программу - // - проверить, что получилось 351.731900 + InputStream inputStream = System.in; + double result = 0; - System.out.println("0.0"); + InputStreamReader reader = new InputStreamReader(inputStream); + BufferedReader bufferedReader = new BufferedReader(reader); + while (bufferedReader.ready()) { + String[] chunks = bufferedReader.readLine().split(" "); + for (String chunk : chunks) { + double num = 0; + try { + num = Double.parseDouble(chunk); + } catch (RuntimeException e) { + } + result += num; + } + } + System.out.printf(Locale.US, "%.6f", result); } }