diff --git a/task01/src/com/example/task01/Task01Main.java b/task01/src/com/example/task01/Task01Main.java index 7efef9a8..b3dca29f 100644 --- a/task01/src/com/example/task01/Task01Main.java +++ b/task01/src/com/example/task01/Task01Main.java @@ -1,5 +1,6 @@ package com.example.task01; +import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; @@ -8,14 +9,21 @@ 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 checkSum = 0; + int byteValue; + + while((byteValue = inputStream.read()) != -1){ + checkSum = Integer.rotateLeft(checkSum, 1) ^ byteValue; + } + return checkSum; } } diff --git a/task02/src/com/example/task02/Task02Main.java b/task02/src/com/example/task02/Task02Main.java index 865ea659..4ca3b467 100644 --- a/task02/src/com/example/task02/Task02Main.java +++ b/task02/src/com/example/task02/Task02Main.java @@ -9,5 +9,36 @@ public static void main(String[] args) throws IOException { // - направить стандартный вывод программы в файл output.test // - запустить программу // - и сравнить получившийся файл output.test с expected.test + + int currentByte; + boolean lastWasCR = false; + + while((currentByte = System.in.read()) != -1){ + if(lastWasCR){ + if(currentByte == 10){ + System.out.write(10); + lastWasCR = false; + } + else if (currentByte != 13){ + System.out.write(13); + System.out.write(currentByte); + lastWasCR = false; + } + else { + System.out.write(13); + } + + } + else { + if(currentByte == 13){ + lastWasCR = true; + } + else { + System.out.write(currentByte); + } + } + } + if (lastWasCR) System.out.write(13); + System.out.flush(); } } diff --git a/task03/src/com/example/task03/Task03Main.java b/task03/src/com/example/task03/Task03Main.java index 332e0366..184ee081 100644 --- a/task03/src/com/example/task03/Task03Main.java +++ b/task03/src/com/example/task03/Task03Main.java @@ -1,7 +1,6 @@ package com.example.task03; -import java.io.IOException; -import java.io.InputStream; +import java.io.*; import java.nio.charset.Charset; public class Task03Main { @@ -15,7 +14,16 @@ 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(); + + BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, charset)); + StringBuilder stringBuilder = new StringBuilder(); + + String line; + while ((line = reader.readLine()) != null){ + stringBuilder.append(line); + } + + return stringBuilder.toString(); } } diff --git a/task04/src/com/example/task04/Task04Main.java b/task04/src/com/example/task04/Task04Main.java index 4236c2e7..d17e7d41 100644 --- a/task04/src/com/example/task04/Task04Main.java +++ b/task04/src/com/example/task04/Task04Main.java @@ -1,14 +1,24 @@ 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 { - // чтобы протестировать свое решение, вам нужно: - // - направить файл input.test в стандартный ввод программы (в настройках запуска программы в IDE или в консоли) - // - запустить программу - // - проверить, что получилось 351.731900 + Scanner scanner = new Scanner(System.in); + double sum = 0.0; - System.out.println("0.0"); + while (scanner.hasNext()) { + String token = scanner.next(); + try { + double number = Double.parseDouble(token); + sum += number; + } catch (NumberFormatException e) { + + } + } + + System.out.printf(Locale.US, "%.6f", sum); } }