diff --git a/task01/src/com/example/task01/Task01Main.java b/task01/src/com/example/task01/Task01Main.java index 7efef9a8..dc14bd2d 100644 --- a/task01/src/com/example/task01/Task01Main.java +++ b/task01/src/com/example/task01/Task01Main.java @@ -8,14 +8,18 @@ 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; + if (inputStream == null) throw new IllegalArgumentException(); + int sum = 0, value = 0; + while ((value = inputStream.read()) > -1) { + sum = Integer.rotateLeft(sum, 1) ^ value; + } + return sum; } } diff --git a/task02/src/com/example/task02/Task02Main.java b/task02/src/com/example/task02/Task02Main.java index 865ea659..3c3bd827 100644 --- a/task02/src/com/example/task02/Task02Main.java +++ b/task02/src/com/example/task02/Task02Main.java @@ -1,6 +1,7 @@ package com.example.task02; import java.io.IOException; +import java.io.InputStream; public class Task02Main { public static void main(String[] args) throws IOException { @@ -9,5 +10,12 @@ public static void main(String[] args) throws IOException { // - направить стандартный вывод программы в файл output.test // - запустить программу // - и сравнить получившийся файл output.test с expected.test + int prev = System.in.read(), next; + while (prev != -1) { + next = System.in.read(); + if (prev != 13 || next != 10) System.out.write(prev); + prev = next; + } + System.out.flush(); } } diff --git a/task03/src/com/example/task03/Task03Main.java b/task03/src/com/example/task03/Task03Main.java index 332e0366..38818a38 100644 --- a/task03/src/com/example/task03/Task03Main.java +++ b/task03/src/com/example/task03/Task03Main.java @@ -3,19 +3,22 @@ import java.io.IOException; import java.io.InputStream; import java.nio.charset.Charset; +import java.io.BufferedReader; +import java.io.InputStreamReader; 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.isSupported(charset.toString())) throw new IllegalArgumentException(); + return new BufferedReader(new InputStreamReader(inputStream, charset)).readLine(); } } diff --git a/task04/src/com/example/task04/Task04Main.java b/task04/src/com/example/task04/Task04Main.java index 4236c2e7..fa7da878 100644 --- a/task04/src/com/example/task04/Task04Main.java +++ b/task04/src/com/example/task04/Task04Main.java @@ -1,6 +1,8 @@ package com.example.task04; import java.io.IOException; +import java.util.Locale; +import java.util.Scanner; public class Task04Main { public static void main(String[] args) throws IOException { @@ -9,6 +11,9 @@ public static void main(String[] args) throws IOException { // - запустить программу // - проверить, что получилось 351.731900 - System.out.println("0.0"); + Scanner scanner = new Scanner(System.in).useLocale(Locale.US); + double result = 0; + while (scanner.hasNextDouble()) result += scanner.nextDouble(); + System.out.printf(scanner.locale(), "%.6f", result); } }