<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=420653&amp;view=findpost&amp;p=3841885</guid>
        <pubDate>Mon, 09 Nov 2020 06:57:26 +0000</pubDate>
        <title>Работа с массивами и файлами</title>
        <link>https://forum.sources.ru/index.php?showtopic=420653&amp;view=findpost&amp;p=3841885</link>
        <description><![CDATA[korvin: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=420653&view=findpost&p=3841862'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>iVovan1996 &#064; <time class="tag-quote__quoted-time" datetime="2020-11-08T17:42:28+03:00">08.11.20, 14:42</time></span><div class='quote '>а при записи результатов в файл указатель не перешёл на новую строку, хотя символ переноса был дважды добавлен с помощью append.</div></div><br>
В Windows для переноса строк используется сочетание двух символов: &quot;&#092;r&#092;n&quot;]]></description>
        <author>korvin</author>
        <category>Java</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=420653&amp;view=findpost&amp;p=3841865</guid>
        <pubDate>Sun, 08 Nov 2020 15:16:01 +0000</pubDate>
        <title>Работа с массивами и файлами</title>
        <link>https://forum.sources.ru/index.php?showtopic=420653&amp;view=findpost&amp;p=3841865</link>
        <description><![CDATA[MBo: 1) &quot;больше нуля&quot; - это <strong class='tag-b'>&gt;</strong>,а не <strong class='tag-b'>&gt;=</strong><br>
2) Произведение нескольких int может дать значение, превышающее максимальное значение 2 147 483 647, и может рассматриваться как отрицательное (при единичном старшем бите)<br>
<br>
Переход на long (64 бита) немного сгладит проблему, но не решит её, поэтому стоит использовать в произведении знак числа (sign в Java есть?)]]></description>
        <author>MBo</author>
        <category>Java</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=420653&amp;view=findpost&amp;p=3841862</guid>
        <pubDate>Sun, 08 Nov 2020 14:42:28 +0000</pubDate>
        <title>Работа с массивами и файлами</title>
        <link>https://forum.sources.ru/index.php?showtopic=420653&amp;view=findpost&amp;p=3841862</link>
        <description><![CDATA[iVovan1996: Добрый вечер&#33; Нужно считать исходный массив из файла, составить массив с результатами и записать последний в файл.<br>
<br>
Дана матрица А(5Х5). Определить массив Х из 5 элементов, каждый из которых равен 1, если произведение элементов соответствующего столбца больше нуля, и –1 в противном случае.<br>
<br>
При тестировании кода возникли проблемы: второй и третий элемент массива результатов почему-то заминусились, а при записи результатов в файл указатель не перешёл на новую строку, хотя символ переноса был дважды добавлен с помощью append. Укажите ошибки и способы их устранения. Работаю в eclipse.<br>
<br>
Код класса:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">package com.lab2;</div><div class="code_line">&nbsp;</div><div class="code_line">import java.util.InputMismatchException;</div><div class="code_line">import java.util.Scanner;</div><div class="code_line">import java.io.*;</div><div class="code_line">&nbsp;</div><div class="code_line">public class ReadWriteFile {</div><div class="code_line">&nbsp;&nbsp; &nbsp;private static int n;</div><div class="code_line">&nbsp;&nbsp; &nbsp;private static int m;</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;public static int[][] inputSelect () {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;int[][] arr = null;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;int index = -1;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Scanner scan = new Scanner(System.in);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;System.out.println(&quot;Выберите способ ввода массива:&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;System.out.println(&quot;0. Из файла&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;System.out.println(&quot;1. С клавиатуры&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;index = scan.nextInt();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;switch (index) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;case 0:</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;arr = inputFromFile(&quot;C:\Users\Владимир\eclipse-workspace\myMatrix.TXT&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;case 1:</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;arr = inputFromKeyboard();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;break;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;default:</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;System.out.println(&quot;Неверный ввод!&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;scan.close();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return arr;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;public static int[][] inputFromFile(String path) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;int[][] arr = null;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;try {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;try (Scanner in = new Scanner(new File(path))) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;n = in.nextInt();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;m = in.nextInt();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;arr = new int[n][m];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (int i = 0; i &#60; n; i++) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (int j = 0; j &#60; m; j++) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;arr[i][j] = in.nextInt();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;in.close();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;} catch (FileNotFoundException e) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;System.out.println(&quot;Ошибка &quot; + e + &quot;! файл &quot; + path + &quot; не найден!&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;} catch (InputMismatchException e) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;System.out.println(&quot;Ошибка &quot; + e + &quot;! Несоответствие типов данных!&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return arr;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;public static int[][] inputFromKeyboard() {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;int[][] arr = null;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Scanner scan = new Scanner(System.in);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;System.out.println(&quot;Укажите количество строк массива:&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;n = scan.nextInt();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;System.out.println(&quot;Укажите количество столбцов массива:&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m = scan.nextInt();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;for (int i = 0; i &#60; n; i++) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (int j = 0; j &#60; m; j++) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;System.out.println(&quot;Введите элемент &quot; + i + &quot;-й строки &quot; + j + &quot;-го столбца:&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;arr[i][j] = scan.nextInt();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;scan.close();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return arr;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;public static void outArray(int[][] array) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;System.out.println(&quot;Вывод исходного массива:&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;for (int i = 0; i &#60; n; i++) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (int j = 0; j &#60; m; j++) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if(j == m-1) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;System.out.print(array[i][j] + &quot;\n&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;System.out.print(array[i][j] + &quot; &quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;public static int[] getResult(int[][] array) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;int count;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;int[] X = new int[m];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;for (int i = 0; i &#60; m; i++) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;count = 1;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for (int j = 0; j &#60; n; j++) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;count *= array[j][i];</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;X[i] = (count &#62;= 0) ? 1 : -1;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;return X;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;public static void outResult(int[] X) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;System.out.println(&quot;Вывод результата:&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;for (int i = 0; i &#60; m; i++) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (i == m-1) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;System.out.print(X[i] + &quot;\n&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;System.out.print(X[i] + &quot; &quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;public static void writeResult(int[] X) throws Exception {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;System.out.println(&quot;Запись результата в файл&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;FileWriter writer = new FileWriter(&quot;C:\Users\Владимир\eclipse-workspace\myMatrix.TXT&quot;, true);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;writer.append(&#39;\n&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;writer.append(&#39;\n&#39;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;for (int i = 0; i &#60; m; i++) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (i == m-1) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;writer.append(X[i] + &quot;\n&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;} else {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;writer.append(X[i] + &quot; &quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;writer.close();</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">}</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<br>
Код основной функции:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">package com.lab2;</div><div class="code_line">&nbsp;</div><div class="code_line">import java.util.Scanner;</div><div class="code_line">&nbsp;</div><div class="code_line">public class MainApp {</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;public static void main(String[] args) throws Exception {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;ReadWriteFile myVar = new ReadWriteFile();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;int[][] myMatrix = myVar.inputSelect();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;myVar.outArray(myMatrix);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;int[] X = myVar.getResult(myMatrix);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;myVar.outResult(X);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;myVar.writeResult(X);</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">}</div></ol></div></div></div></div> <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2020-11-08T14:44:15+00:00">08.11.20, 14:44</time></span></span><br>
Результат работы программы:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Выберите способ ввода массива:</div><div class="code_line">0. Из файла</div><div class="code_line">1. С клавиатуры</div><div class="code_line">0</div><div class="code_line">Вывод исходного массива:</div><div class="code_line">11 24 323 7 2345</div><div class="code_line">42 53 6 234 4</div><div class="code_line">73 84 94 0 3432</div><div class="code_line">45 673 34 98 3245</div><div class="code_line">0 345 5546 4564 6565</div><div class="code_line">Вывод результата:</div><div class="code_line">1 -1 -1 1 1</div><div class="code_line">Запись результата в файл</div></ol></div></div></div></div><br>
<br>
Файл после записи результатов:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">5 5</div><div class="code_line">11 24 323 7 2345</div><div class="code_line">42 53 6 234 4</div><div class="code_line">73 84 94 0 3432</div><div class="code_line">45 673 34 98 3245</div><div class="code_line">0 345 5546 4564 65651 -1 -1 1 1</div></ol></div></div></div></div>]]></description>
        <author>iVovan1996</author>
        <category>Java</category>
      </item>
	
      </channel>
      </rss>
	