diff --git a/task01/src/com/example/task01/Task01Main.java b/task01/src/com/example/task01/Task01Main.java index 7efef9a8..6b9d4fd8 100644 --- a/task01/src/com/example/task01/Task01Main.java +++ b/task01/src/com/example/task01/Task01Main.java @@ -1,21 +1,23 @@ 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 { - //здесь вы можете вручную протестировать ваше решение, вызывая реализуемый метод и смотря результат - // например вот так: - - /* 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; + int currentValue; + while((currentValue = inputStream.read())>-1){ + sum = Integer.rotateLeft(sum,1)^currentValue; + } + return sum; } } diff --git a/task02/src/com/example/task02/Task02Main.java b/task02/src/com/example/task02/Task02Main.java index 865ea659..c2b8b902 100644 --- a/task02/src/com/example/task02/Task02Main.java +++ b/task02/src/com/example/task02/Task02Main.java @@ -1,5 +1,10 @@ package com.example.task02; +import java.io.FileOutputStream; +import java.io.PrintStream; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.*; import java.io.IOException; public class Task02Main { @@ -9,5 +14,16 @@ public static void main(String[] args) throws IOException { // - направить стандартный вывод программы в файл output.test // - запустить программу // - и сравнить получившийся файл output.test с expected.test + + int cur = System.in.read(); + int next; + while(cur > -1){ + next = System.in.read(); + if(cur != 13 || next != 10){ + System.out.write(cur); + } + cur = next; + } + System.out.flush(); } } diff --git a/task03/src/com/example/task03/Task03Main.java b/task03/src/com/example/task03/Task03Main.java index 332e0366..09d280b4 100644 --- a/task03/src/com/example/task03/Task03Main.java +++ b/task03/src/com/example/task03/Task03Main.java @@ -1,21 +1,25 @@ 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) + throw new IllegalArgumentException("Передача пустого аргумента"); + + try(InputStreamReader reader = new InputStreamReader(inputStream,charset)){ + StringBuilder content = new StringBuilder(); + char[] buffer = new char[1024]; + int charsRead; + + while ((charsRead = reader.read(buffer)) > -1){ + content.append(buffer, 0, charsRead); + } + return content.toString(); + } } } diff --git a/task04/src/com/example/task04/Task04Main.java b/task04/src/com/example/task04/Task04Main.java index 4236c2e7..15c2599f 100644 --- a/task04/src/com/example/task04/Task04Main.java +++ b/task04/src/com/example/task04/Task04Main.java @@ -1,6 +1,7 @@ package com.example.task04; -import java.io.IOException; +import java.io.*; +import java.util.*; public class Task04Main { public static void main(String[] args) throws IOException { @@ -8,7 +9,24 @@ public static void main(String[] args) throws IOException { // - направить файл input.test в стандартный ввод программы (в настройках запуска программы в IDE или в консоли) // - запустить программу // - проверить, что получилось 351.731900 + try { + System.setIn(new FileInputStream("task04\\src\\com\\example\\task04\\input.test")); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } - System.out.println("0.0"); + Scanner scanner = new Scanner(System.in); + scanner.useLocale(Locale.ENGLISH); + double sum = 0.0; + while (scanner.hasNext()) { + String token = scanner.next(); + try { + double number = Double.parseDouble(token); + sum += number; + } catch (NumberFormatException e) {} + } + scanner.close(); + + System.out.printf(Locale.ENGLISH, "%.6f%n", sum); } }