Назад | Начало урока | Вперед
Содержание

Глава 5

Задача 5.5 "Управляемые аппараты."

Для управления некоторыми устройствами требуется вводить определенные последовательности чисел. Если последовательность состоит из одинаковых чисел, во время программирования можно облегчить свою работу. Напишите программу, которая считывает применяемые последовательности и выводит их в виде n*m, где m - вводимый элемент, а n - число, указывающее сколько раз должен повторяться элемент m. Эти инструкции выводятся в новой строке и заключаются в скобки. Следует отметить, что последовательность может состоять из одного числа. Вот один из вариантов вводимых и выходных данных программы:

20 20 20 20 20 20 20 20 20 20
(10*20)
50 50 50 50 50
(5*50)
30
(1*30)
0
(1*0)

Решение

Входные данные могут иметь например следующий вид:

Подсказка

Код программы не сложен.

Код программы:


import java.io.*;
import javagently.*;

class ManagedDevice {

ManagedDevice() throws IOException {
Stream fin = new Stream(System.in);
Stream fout= new Stream ("data.out",Stream.WRITE); try {
fin = Filer.open("data.txt");
}
catch (FileNotFoundException e) {
System.out.println("Five tries up");
System.out.println("Connecting to keyboard by default");
}
int num = 0;
int next = 0;
int n = 1;
// try read file
try {
num = fin.readInt();
next = num;
for(;;){
num = fin.readInt();

if(next == num){

n++;
}
else{
fout.println(next + "*" + n);
n = 1;
}
next = num;
}//end for
}
catch (EOFException e) {
System.out.println(" All data is reading ");
}
fout.println(next + "*" + n);
fin.close();
}//end constructor

public static void main (String[] args) throws IOException {

new ManagedDevice();
}
}


Результат :

Подсказка


Назад | Начало урока | Вверх | Вперед
Содержание

Hosted by uCoz