Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Проблема с английским


Автор: kornata 25.4.2010, 13:37
Вот задание:

 Write 2 programs. First shall input 2 numbers and output their sum. Second shall call the first using ProcessBuilder and use stream capture to push a couple of numbers as into First's input, receive First's output, multiply the received number by 2 and print it. 


Я не могу понять, что должна делать вторая программа. 

Автор: Nofate 25.4.2010, 13:48
Она должна запускать первую посредством ProcessBuilder (буквально день-два назад эта тема была), захватывать ее потоки ввода-вывода, подавать первой проге на вход параметры, получать результат с выхода первой проги, умножать его на 2 и выводить на экран.

Автор: dorogoyIV 25.4.2010, 13:50
получите два первых числа используя ProcessBuilder, умножте их на 2 и выведите на печать (кажется так)
опередили  smile 

Автор: kornata 25.4.2010, 13:51
Что значит захватывать потоки и как это сделать? Какие параметры подавать?

Автор: Nofate 25.4.2010, 13:57
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ProcessBuilder.html
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Process.html

ProcessBuilder создаст вам Process. А у Process есть методы getInputStream()  и getOutputStream(). Они то вам и нужны.

Как какие параметры? Там же сказано что первая программа принимает на вход 2 числа и выдает  их сумму. Вот эти 2 числа и нужно ей на вход передать.

Автор: kornata 25.4.2010, 15:12
То есть прочитать значение введеные для первой программы  ? Тоже помощью getInputStream()  и getOutputStream()?

Добавлено через 7 минут и 51 секунду
Цитата(Nofate @  25.4.2010,  13:57 Найти цитируемый пост)
http://java.sun.com/j2se/1.5.0/docs/api/ja...essBuilder.html
http://java.sun.com/j2se/1.5.0/docs/api/ja...ng/Process.html


Тут нету никаких примеров.

Автор: Nofate 25.4.2010, 18:14
Отнюдь, там как минимум есть пример запуска одной программы из другой. а это пол-дела.

Определитесь для начала с алгоритмом.

Предварительно:
1. Читаем про потоковый ввод/вывод, какие бывают потоки и для чего они нужны.
2. Читаем про стандартный поток ввода, стандартный поток вывода и , заодно, стандартный поток ошибок. Выясняем как ими пользуются и с чем их едяь.

Первая программа:
1. Прочитать со стандартного ввода в переменную А.
2. Прочитать со стандартного ввода в переменную B.
3. Вывести в стандартный вывод сумму А и B.

Вторая программа:
1. Создаем экземпляр класса ProcessBuilder, запускающий первую программу.
2. Получаем экземпляр класса Process методом start класса ProcessBuilder.
3. Инициализируем 2 переменные  А и В какими-нибудь числами (или считываем их с клавиатуры).
4. Получаем из нашего экземпляра класса Process поток ввода inputStream.
5. Получаем из нашего экземпляра класса Process поток вывода outputStream.
6. Отправляем в inputStream значения А и В.
7. Читаем из outputStream результат в переменную С.
9. Выводим на экран переменную С, умноженную на 2.




Автор: kornata 25.4.2010, 18:19
Цитата(Nofate @  25.4.2010,  18:14 Найти цитируемый пост)
Предварительно:
1. Читаем про потоковый ввод/вывод, какие бывают потоки и для чего они нужны.
2. Читаем про стандартный поток ввода, стандартный поток вывода и , заодно, стандартный поток ошибок. Выясняем как ими пользуются и с чем их едяь.

 Я не понимаю по-английски.

Добавлено через 3 минуты и 1 секунду
Цитата(Nofate @  25.4.2010,  18:14 Найти цитируемый пост)
3. Инициализируем 2 переменные  А и В какими-нибудь числами (или считываем их с клавиатуры).

Числами, они же должны браться и входного потока первой программы.
А как считать с клавы?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)