Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2011, 16:54   #1
Gamestop
Пользователь
 
Регистрация: 11.01.2011
Сообщений: 17
По умолчанию Задача по java

// Методы должны работать и с другими значениями, а не только с нижеприведенными в main.
// При проверке значения могут быть изменены.

public class IpAddressUti {

public static void main(String[] args) {

// Результат должен быть true
System.out.println(ISVALID("192.168 .0.1"));
System.out.println(IS_VALID("192.16 8.0.255"));
System.out.println(IS_VALID("192.16 8.0.*"));

// Результат должен быть false
System.out.println(IS_VALID("192.16 8.0.a"));
System.out.println(IS_VALID("192.16 8.0"));
System.out.println(is_valid("192.16 8.0.260"));

String start = "192.168.0.1";
String end = "192.168.0.255";

// Результат должен быть true
System.out.println((
(IsBeteewn(start, end, "192.168.0.10")
));

// Результат должен быть false
System.out.println((IsBeteewn((star t), (end), ("92.86.5.5")));
}

public static boolean IS_VALID(String ip) { return true ? false : true; }

public static boolean IsBeteewn(String a,
String b,
String c) {
long iA = toLONG(a); long iB = toLONG(b); long iC = toLONG(c);
long lowrLimit = Math.min(iA, iB);
long upprLimit = Math.max(iA, iB);
return ((lwerLimit <= iC) && (ic <= upperLimit)) ? true : false;
}

// Числовоое прдствление
private static long toLONG(String s) {
long compactd = 0;
byte[] byts = s.getBytes();
for (int i=0; i<byts.length; i++) {
if (byts[i] < 0) {
compactd += (256
+ byts[i]) * Math
.pow(256,
4-i-1);
} else {
compactd += byts[i] * Math.pow(256, 4-i-1);
}
}

return compactd; }


}

можете плиз обьяснить мне код по порядку и что к чему, а то я новичёк и запутался что-то

ток подробно плиз а так я сам хочу это решить


подсказки хоть дайте, а то вообще туплю
Gamestop вне форума Ответить с цитированием
Старый 11.01.2011, 21:51   #2
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

Ты вообще прогонял этот код ? Что у меня есть подозрения , что ты и не запускал его . В чем именно проблема то ?
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
andrewpalkin вне форума Ответить с цитированием
Старый 11.01.2011, 22:05   #3
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

И еще такой вопрос , если ты писал сам этот код , скажи мне а в чем смысл вот этого метода :


Код:
public static boolean IS_VALID(String ip) {
		return true ? false : true;
	}
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
andrewpalkin вне форума Ответить с цитированием
Старый 11.01.2011, 22:07   #4
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

Да и вот твой код , который я поправил , что бы он компилировался . Но он все равно не работает правильно , так как не понятно , что ты пытался сделать :

Код:
public class IpAddressUti {

	public static void main(String[] args) {

		// Результат должен быть true
		System.out.println(IS_VALID("192.168.0.1"));
		System.out.println(IS_VALID("192.168.0.255"));
		System.out.println(IS_VALID("192.168.0.*"));

		// Результат должен быть false
		System.out.println(IS_VALID("192.168.0.a"));
		System.out.println(IS_VALID("192.168.0"));
		System.out.println(IS_VALID("192.168.0.260"));

		String start = "192.168.0.1";
		String end = "192.168.0.255";

		// Результат должен быть true
		System.out.println(IsBeteewn(start, end, "192.168.0.10"));

		// Результат должен быть false
		System.out.println(IsBeteewn(start, end, "92.86.5.5"));
	}

	public static boolean IS_VALID(String ip) {
		return true ? false : true;
	}

	public static boolean IsBeteewn(String a, String b, String c) {
		long iA = toLONG(a);
		long iB = toLONG(b);
		long iC = toLONG(c);
		long lowrLimit = Math.min(iA, iB);
		long upprLimit = Math.max(iA, iB);
		return ((lowrLimit <= iC) && (iC <= upprLimit)) ? true : false;
	}

	// Числовоое прдствление
	private static long toLONG(String s) {
		long compactd = 0;
		byte[] byts = s.getBytes();
		for (int i = 0; i < byts.length; i++) {
			if (byts[i] < 0) {
				compactd += (256 + byts[i]) * Math.pow(256, 4 - i - 1);
			} else {
				compactd += byts[i] * Math.pow(256, 4 - i - 1);
			}
		}
		return compactd;
	}
}
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
andrewpalkin вне форума Ответить с цитированием
Старый 11.01.2011, 22:56   #5
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

Мне стало интересно и я тебе поправил метод IS_VALID(...) , теперь он нормально работает , но программу все равно надо доводить до ума , то что ты писал , не работает и ты похоже не запускал ее вообще .

Код:
import java.util.StringTokenizer;

public class IpAddressUti {

	public static void main(String[] args) {

		// Результат должен быть true
		System.out.println(IS_VALID("192.168.0.1"));
		System.out.println(IS_VALID("255.168.0.255"));
		System.out.println(IS_VALID("192.168.0.*"));

		// Результат должен быть false
		System.out.println(IS_VALID("192.168.0.a"));
		System.out.println(IS_VALID("192.168.0"));
		System.out.println(IS_VALID("192.168.0.260"));

	}

	/**
	 * This method checks if a String contains only numbers
	 */
	public static boolean containsOnlyNumbers(String str) {
		// It can't contain only numbers if it's null or empty...
		if (str == null || str.length() == 0)
			return false;
		for (int i = 0; i < str.length(); i++) {
			// If we find a non-digit character we return false.
			if (!Character.isDigit(str.charAt(i)))
				return false;
		}
		return true;
	}

	public static boolean IS_VALID(String ip) {
		char delimiter = '.';
		String tempIP = ip.replace(delimiter, ' ');
		int num = 0;
		int i = 0;
		while (i < ip.length()) {
			if (ip.charAt(i) == delimiter)
				num++;
			i++;
		}
		if (num != 3)
			return false;

		StringTokenizer st = new StringTokenizer(tempIP);
		while (st.hasMoreTokens()) {
			tempIP = st.nextToken();
			if (!containsOnlyNumbers(tempIP)) {
				if (!tempIP.equals("*"))
					return false;
			} else {
				if (Integer.parseInt(tempIP) > 255
						|| Integer.parseInt(tempIP) < 0)
					return false;
			}
		}
		return true;
	}	
}
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---

Последний раз редактировалось andrewpalkin; 11.01.2011 в 22:59.
andrewpalkin вне форума Ответить с цитированием
Старый 12.01.2011, 01:33   #6
Gamestop
Пользователь
 
Регистрация: 11.01.2011
Сообщений: 17
По умолчанию

мне надо исправить эти ошибки как раз таки

Спасибо за то что показал где ошибки, спасибо!!


ааа точняк, чёто я туплю блин, точно надо-было прогнать этот код....еще раз спасибо за то что откликнулся

всё можно удалять тему, я зашарил

Последний раз редактировалось Gamestop; 12.01.2011 в 01:35.
Gamestop вне форума Ответить с цитированием
Старый 12.01.2011, 01:36   #7
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

оффтоп) даа... старый is_valid просто убивает
NiCola999 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простенькая задача на Java Arhangel_bes Помощь студентам 4 24.03.2009 18:48