Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Xi это числа Вывести в выходной текстовый файл такие значения последовательности {Xi} которые принадлежат

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 9.11.2024

Практическая работа №2.
Использование базовых синтаксических конструкций.
Текстовый ввод-вывод.

  1.  Цель работы

Научиться практическому применению языковые конструкции Java для проверки условий и организации циклов. Воспользоваться стандартными средствами java для чтения-записи текстовых данных.

  1.  Пример.

Имеется входной текстовый файл, в каждой строке которого содержится по одному целому числу:

A

B

X1

Xi

здесь все значения A, B, X1... Xi это числа.

Вывести в выходной текстовый файл такие значения последовательности {Xi}, которые принадлежат интервалу [A, B], указанному в первых двух строках входного файла.

Напишем программу на java с использованием классов семейства Reader.

  1. Чтение данных

В Java существует множество интерфейсов и классов, обеспечивающих работу с данными. Основные интерфейсы и классы сосредоточены в пакете java.io.

За чтение-запись данных в Java отвечает несколько интерфейсов разного уровня:

  1. интерфейсы семейства InputStream/OutputStream – низкоуровневый доступ к байтам данных,
  2. надстройки на первыми двумя Reader/Writer – способны работать с массивами символов,
  3. надстройки PrintStream для вывода в виде текста.

Потоки InputStream/OutputStream реализуют стандартную парадигму работы с последовательностями байт, так что специально на них останавливаться не будем. Бо'льший интерес представляют высокоуровневые надстройки над ними - классы, реализующие интерфейсы Reader/Writer, PrintStream .

Работа с файлами и потоками вообще, организуется классически виде действий "открытие-работа-закрытие", с ответственностью за освобождение ресурсов программистом. Совершенно естественно здесь будет использована конструкция  try-finally:

// создание и открытие потока stream

XStream stream = new XStream(); // здесьXStream некоторый реальный потоковый класс

try {

… использование потока stream

} finally {

 // закрытие потока

 stream.close();

}

Рассмотрим основные методы java.io.Reader.

В первую очередь это набор перегруженных методов read:

public int read()

public int read(char cbuf[])

public int read(java.nio.CharBuffer target)

abstract public int read(char cbuf[], int off, int len)

Они недостаточно удобны для работы с текстами, т.к. ориентированы на работу с отдельными символами, а не со строками.

Более удобно использовать потомка ReaderBufferedReader,  с его более приспособленными методами получения строк readLine:

 public String readLine()

public String readLine(boolean ignoreLF)

В них данные сразу считываются в виде строк.

Интерфейс PrintStream описывает выводт строк и его удобно использовать для формирования текстового вывода и журналирования:

 void print(Type data) семейство методов вывода типизированных данных (Type)

и void println(Type data)

PrintStream printf(String format, Object ... args) форматированный вывод

 и PrintStream format(String format, Object ... args)

  1. Пребразования строк в числа

В Java конверторы из строк в базовые типы встроены в классы-оболочки самих типов.

Т.е. существуют методы получения типизированных значений из строк:

int Integer.parseInt(String);

long Long.parseLong(String);

float Float.parseFloat(String);

double  Double.parseDouble(String);

Воспользуемся этим, выделив получение очередного числа в отдельную функцию:

 final static Integer getInt(BufferedReader rd)

       throws IOException

  {

       final String data = rd.readLine();

       // if (data == null) throw new IOException("End-of-file");

       return (data == null) ? null : Integer.parseInt(data);

   }

Формирование значения null будет индикатором достижения конца входного потока. Именно по этому тип возвращаемого значения функции Integer, а не int.

  1. Скелет программы.

class Main{

static Integer getInt(BufferedReader rd) …

static void main(String[] args) {

 открытие потоков;

 try {

 int A = getInt(…);

 int B = getInt(…);

 while (есть данные) {

  if ( … очередное значение внутри [A,B] … ) {

   … вывести значение …

}

} // while

} finally {

  … Закрытие потоков …

}

}

 Пример реализации см прилагающийся проект. Для того чтобы включить его в NetBeans используйте "File"/"Open Project ...".

  1.  Задание.

В текстовом файле в первой строке задано целое число N. Далее в каждой последующей строке  содержится ровно по N чисел. Вывести в выходной текстовый файл построчные суммы.

Пример входного файла:

3

12  35   -10

-9  3  1

7 4  6

0 -100  -2

И соответствующий сформированный ответ:

37

-5

17

-102

На что следует обратить внимание.

  1. main не должна выбрасывать никаких исключений
  2. обработка ошибок не должна сильно искажать код, что в данном случае точно достижимо). Например, можно принять во внимание, что FileNotFoundException порождена от IOException, так что обработается в том же catch-блоке.
  3. ресурсы надо оборачивать в отдельные блоки try-finally, чтобы гарантировано закрывать ресурсы в части finally;
  4. разбор строк из N чисел иметь в явном виде метода и с контролем количества читаемых значений:
    int[] getVector(int n)
    где n – кол-во загружаемых значений.




1. Василий Теркин А
2. Методические рекомендации по техникоэкономическому обоснованию кондиций для подсчета запасов месторожден
3. Этап получения данных о внешней торговле называется статистическим наблюдением внешней торговли
4. р филос наук профессор Ю
5. 5789 3 Белоусова Мария Максим Алексеевич Диана Сергеевна
6.  Философия в современном мире
7. Хронологические данные в Слове о житии и о преставлении великого князя Дмитрия Ивановича
8. Учебное пособие- Красота природы Муромцевского района
9. Статья- Охотный ряд
10. Становление различных систем регулирования капитализма.html
11. Юрий Васильевич Бондарев Горячий снег
12.  р ПРАВИЛА ВНУТРІШНЬОГО ТРУДОВОГО РОЗПОРЯДКУ Повного товариства ЛомбардСвищ Бударова
13. Методические рекомендации по написанию курсовой работы для студентов специальности 080504 Государственное
14. ТЕМА НОРМАТИВНЫХ ДОКУМЕНТОВ В СТРОИТЕЛЬСТВЕ СТРОИТЕЛЬНЫЕ НОРМЫ И ПРАВИЛА РОССИЙСКОЙ ФЕДЕРАЦИИ ИНСТРУК
15. Учет основных средств
16. тема3 Глава 1
17. Основание СНПЗ, люди завода 40е - 50е годы
18. тема пропорций См.
19. культурной грамматики
20. . Негізгі м~ліметтер Факультет Экономикалы~ Маманды~