Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [JAVA] Разобрать чужой код 
V
    Опции темы
stichik
  Дата 28.1.2007, 03:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 28.1.2007

Репутация: нет
Всего: нет



Есть такая программка
Код

import java.util.List;
import java.util.ArrayList;
import java.util.Random;
import java.util.Collections;

public class TestArray {
    public static void main(String[] args) {
        
        if (args.length == 0) {
            args = new String[2];
            args[0] = "10";
            args[1] = "100";
        }
        
        int itemsCount = Integer.parseInt(args[0]);
        int maxRandomValue = Integer.parseInt(args[1]); 
   
        List myList = new ArrayList();
        Random myRandom = new Random();
        
        for (int i=0; i<itemsCount; i++) {
            myList.add(myRandom.nextInt(maxRandomValue));
        }
        
        System.out.println("Filled:   " + myList);
        
        Collections.sort(myList);
        System.out.println("Sorted:   " + myList);
        
        Collections.shuffle(myList);
        System.out.println("Shuffled: " + myList);
    }
    
}

Помогите, пожалуйста, разобраться вот в этом:
Код

if (args.length == 0) {
            args = new String[2];
            args[0] = "10";
            args[1] = "100";
        }
        
        int itemsCount = Integer.parseInt(args[0]);
        int maxRandomValue = Integer.parseInt(args[1]); 

 и в этом 
Код

myList.add(myRandom.nextInt(maxRandomValue));

 smile 
PM MAIL   Вверх
ShurikA
Дата 28.1.2007, 03:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: нет
Всего: 3



А в чём точно вопрос?
Тут даже названия функций говорят сами за себя...


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
Alexandr87
Дата 28.1.2007, 05:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


дыкий псых
***


Профиль
Группа: Завсегдатай
Сообщений: 1459
Регистрация: 27.11.2004
Где: Алматы, Казахстан

Репутация: 1
Всего: 39



Цитата(stichik @ 28.1.2007,  06:13)

Помогите, пожалуйста, разобраться вот в этом:
Код

if (args.length == 0) {
            args = new String[2];
            args[0] = "10";
            args[1] = "100";
        }
        
        int itemsCount = Integer.parseInt(args[0]);
        int maxRandomValue = Integer.parseInt(args[1]); 

 и в этом 
Код

myList.add(myRandom.nextInt(maxRandomValue));

 smile

1. Программа работает с переданными ей во время запуска параметрами, если таких параметров нет (args.length==0),  то программа сама создает подобные параметры "по-умолчанию" 10 и 100.

2. Добавляет в List случайное число, меньшее maxRandomValue, которое как раз таки берется из второго параметра.
PM Jabber   Вверх
stichik
Дата 28.1.2007, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 28.1.2007

Репутация: нет
Всего: нет



Цитата

А в чём точно вопрос?
Тут даже названия функций говорят сами за себя... 

Вопрос в том, о чем говорят и что значат эти функции
Если можно, для особо одаренных, построчно smile

Добавлено @ 16:49 
Цитата

1. Программа работает с переданными ей во время запуска параметрами, если таких параметров нет (args.length==0),  то программа сама создает подобные параметры "по-умолчанию" 10 и 100.

это вот это:
Код

f (args.length == 0) {
            args = new String[2];
            args[0] = "10";
            args[1] = "100";
        }
 так??
а это??::
Код

int itemsCount = Integer.parseInt(args[0]);
        int maxRandomValue = Integer.parseInt(args[1]);

 smile 

PM MAIL   Вверх
ShurikA
Дата 28.1.2007, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: нет
Всего: 3



Цитата(stichik @  28.1.2007,  15:46 Найти цитируемый пост)
так??

Да


Цитата(stichik @  28.1.2007,  15:46 Найти цитируемый пост)
а это??::
код Java
1:
2:

int itemsCount = Integer.parseInt(args[0]);
        int maxRandomValue = Integer.parseInt(args[1]);


Параметры передаются в апликацию в качестве стринга, а тут нужны интеджеры.
Вот именно этим и занимается функция Integer.parseInt; переводит String в Integer.


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
stichik
Дата 28.1.2007, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 28.1.2007

Репутация: нет
Всего: нет



Спасибо, вроде поняла! smile 
а вот тут не разъясните:
Код

myRandom.nextBytes(bytes);
        
        for (int i=0; i<itemsCount; i++) {
            myArray[i] = new Byte(bytes[i]);
        }
        
        
        int rangeCount = 0;
        String arrayString = new String("Array: [");
        
        for (int i=0; i<itemsCount; i++) {
            if (i != 0) arrayString += ", ";
            arrayString += myArray[i];
            
            if (myArray[i] >= maxValue || myArray[i] <= minValue)
                rangeCount++;

 smile 
это от сюда:
Код

import java.util.Random;

public class TesByte {
    
    public static void main(String[] args) {
        
        if (args.length == 0) {
            args = new String[3];
            args[0] = "30";
            args[1] = "-100";
            args[2] = "100";
        }
        
        int itemsCount = Integer.parseInt(args[0]);
        int minValue = Integer.parseInt(args[1]);
        int maxValue = Integer.parseInt(args[2]);
        
        byte[] bytes = new byte[itemsCount];
        Byte[] myArray = new Byte[itemsCount];
        Random myRandom = new Random();
        
        myRandom.nextBytes(bytes);
        
        for (int i=0; i<itemsCount; i++) {
            myArray[i] = new Byte(bytes[i]);
        }
        
        
        int rangeCount = 0;
        String arrayString = new String("Array: [");
        
        for (int i=0; i<itemsCount; i++) {
            if (i != 0) arrayString += ", ";
            arrayString += myArray[i];
            
            if (myArray[i] >= maxValue || myArray[i] <= minValue)
                rangeCount++;
        }
        
        arrayString += "]";
        System.out.println(arrayString);
        System.out.println("Not in range (" + minValue + ", " + maxValue + "): " + rangeCount);
    }
}

PM MAIL   Вверх
powerOn
Дата 28.1.2007, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 1
Всего: 159



Очевидно что генерируется itemsCount случайных чисел и помещаются в массив bytes. 
Цитата(stichik @  28.1.2007,  18:22 Найти цитируемый пост)
myRandom.nextBytes(bytes);


Потом эти числа перегоняются в другой массив:

Цитата(stichik @  28.1.2007,  18:22 Найти цитируемый пост)
 for (int i=0; i<itemsCount; i++) {
            myArray[i] = new Byte(bytes[i]);
        }


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

Цитата(stichik @  28.1.2007,  18:22 Найти цитируемый пост)
for (int i=0; i<itemsCount; i++) {
            if (i != 0) arrayString += ", ";
            arrayString += myArray[i];

а так же подсчитывается какое количество из этих чисел не принадлежит диапазону [minValue, maxValue] 

Цитата(stichik @  28.1.2007,  18:22 Найти цитируемый пост)
if (myArray[i] >= maxValue || myArray[i] <= minValue)
                rangeCount++;



Это сообщение отредактировал(а) powerOn - 28.1.2007, 20:17


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
stichik
Дата 28.1.2007, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 28.1.2007

Репутация: нет
Всего: нет



Спасибо!!! smile  поняла теперь!!! smile 
PM MAIL   Вверх
sergejzr
Дата 28.1.2007, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 11
Всего: 360



Внимание! Эта тема не соответствует правилам форума

Заголовок темы не отражает её суть, или несколько вопросов в одной теме.

Ознакомьтесь с правилами! http://forum.vingrad.ruhttp://forum.vingra...ct-SR/f-27.html[ММ]

Тема перенесена в Центр Помощи


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0531 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.