diff --git a/task01/src/com/example/task01/Task01Main.java b/task01/src/com/example/task01/Task01Main.java index 7efef9a8..b4e22012 100644 --- a/task01/src/com/example/task01/Task01Main.java +++ b/task01/src/com/example/task01/Task01Main.java @@ -15,7 +15,19 @@ public static void main(String[] args) throws IOException { } public static int checkSumOfStream(InputStream inputStream) throws IOException { - // your implementation here - return 0; + + if (inputStream == null) { + throw new IllegalArgumentException(); + } + + int result = 0; + int b, c; + + while ((b = inputStream.read()) != -1) { + c = Integer.rotateLeft(result, 1); + result = c ^ b; + } + + return result; } -} +} \ No newline at end of file diff --git a/task02/src/com/example/task02/Task02Main.java b/task02/src/com/example/task02/Task02Main.java index 865ea659..e872ef35 100644 --- a/task02/src/com/example/task02/Task02Main.java +++ b/task02/src/com/example/task02/Task02Main.java @@ -9,5 +9,24 @@ public static void main(String[] args) throws IOException { // - направить стандартный вывод программы в файл output.test // - запустить программу // - и сравнить получившийся файл output.test с expected.test + + int currentByte; + int nextByte; + + currentByte = System.in.read(); + + while (currentByte != -1) { + nextByte = System.in.read(); + + if (currentByte == 13 && nextByte == 10) { + currentByte = nextByte; + continue; + } + + System.out.write(currentByte); + + currentByte = nextByte; + } + System.out.flush(); } } diff --git a/task03/src/com/example/task03/Task03Main.java b/task03/src/com/example/task03/Task03Main.java index 332e0366..00a113fc 100644 --- a/task03/src/com/example/task03/Task03Main.java +++ b/task03/src/com/example/task03/Task03Main.java @@ -2,6 +2,7 @@ import java.io.IOException; import java.io.InputStream; +import java.io.InputStreamReader; import java.nio.charset.Charset; public class Task03Main { @@ -15,7 +16,15 @@ public static void main(String[] args) throws IOException { } public static String readAsString(InputStream inputStream, Charset charset) throws IOException { - // your implementation here - return ""; + if (inputStream == null || charset == null) { + throw new IllegalArgumentException(); + } + InputStreamReader reader = new InputStreamReader(inputStream, charset); + StringBuilder result = new StringBuilder(); + int c; + while ((c = reader.read()) != -1) { + result.append((char) c); + } + return result.toString(); } } diff --git a/task04/src/com/example/task04/Task04Main.java b/task04/src/com/example/task04/Task04Main.java index 4236c2e7..6c74834c 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,14 @@ 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()) { + double token = scanner.nextDouble(); + result += token; + } + + System.out.printf(Locale.US,"%.6f", result); } -} +} \ No newline at end of file