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

Глава 4

Задача 4.9 "Разбиение файлов."

Предположим, что у нас есть файл с численными данными, часть которых - отрицательные, а часть - положительные. Нужно сначала создать два файла для раздельного хранения положительных и отрицательных чисел, а затем вывести оба файла, причем файл с положительными значениями должен быть выведен первым. Используйте подходящий генератор случайных чисел, чтобы создать файлы, общее количество чисел в которых должно быть равно 100.

Решение 1

Сначала напишем программу, которая создает исходный текстовый файл, в который будет выведено 100 случайных целых чисел (примерно половина из них будет отрицательными).

Для решения этой задачи воспользуемся двумя вспомогательными функциями. Функцией, которая генерирует случайное число в диапазоне от А до В и функцией "Игральная кость", которая генерирует случайное целое число в диапазоне от 1 до 6. .

int random_01 (int min, int max ){

int z =0;
while(z < min ){
z = (int) (Math.random()* max);
}
return z;
}

Следующай программа выводит в файл 100 случайных целых чисел, примерно половина из них со знаком -, (то есть половина отрицательные числа).

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



import java.io.*;
import javagently.*;
class FileBreaker {
FileBreaker() throws IOException {

Stream fout= new Stream ("data.out",Stream.WRITE);

int val = 0;
for(int j = 0;j < 10; j++) {

for (int i = 0;i < 10; i++) {
val = (random_01(1,500));
if(0 == random_01(1,6)%2)
fout.print("-" + val);
else
fout.print(val);

fout.print(" " );

}
fout.print("\n" );
}
fout.close();

}

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

new FileBreaker();
}


int random_01 (int min, int max ){

int z =0; while(z < min ){
z = (int) (Math.random()* max);
}
return z;
}


}


Результат :

-201 431 -197 416 426 448 462 -44 112 -64
126 343 273 337 50 346 158 390 173 -150
-219 154 5 210 10 -421 5 -307 405 21
455 104 -266 127 251 449 443 402 55 -22
-165 453 199 -300 313 -55 -419 61 -63 464
-294 242 148 -405 346 347 -475 124 88 35
423 -200 95 -96 462 132 -444 -412 -114 123
125 174 30 -45 -376 -404 72 -100 247 259
-227 38 257 -313 192 343 275 308 478 44
5 -301 -417 -8 465 44 393 -107 327 186


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

Hosted by uCoz