Well, I know I can ask hit to share me the source, but it's hard to recreate the class ? If is so hard ok, no problem I just thinking that this would be easy
Извените если уже задавали этот вопрос. Решил изучить Java . Читаю учебник и никак не догоняю. Есть код : Code: class Point { int х, у; Point(int х, int у) { this.x = х; this. y = y; } double distance(int х, int у) { int dx = this.x—х; int dy = this.у—у; return Math.sqrt(dx*dx + dy*dy); } double distance(Point p) { return distance(p.x, p.y); } } class PointDist { public static void main(String args[]) { Point p1 = new Point(0, 0); Point p2 = new Point(30, 40); System.out.println("p1 = " + pi.x + ", " + p1.y); System.out.println("p2 = " + p2.x + ", " + p2.y); System.out.println("p1.distance(p2) = " + p1.distance(p2)); System.out.println("p1.distance(60, 80) = " + p1.distance(60, 80)); } } Ответ : р1 = 0, 0 р2 = 30, 40 р1.distance(p2) = 50.0 p1.distance(60, 80) = 100.0 Собствено мой вопрос : что значит р1.distance(p2) и p1.distance(60, 80) и как получился этот ответ. Искал везде где мог , узнал только что это перегруженые методы но систему работы так и не понял. Обьясните пожалуйста как это работает. Очень всем благодарен.
Vladislav88 ты про этот класс? Если да, то р1.distance(p2) это метод класса Point который был переопределён в твоём примере и в качестве параметра передаётся объект класса Point и вызывается метод distance(int х, int у) , p1.distance(60, 80) тоже самое только передаётся два целочисленных параметра. Ничего ж сложного, а как ответ получился?! так ведь в методе distance производятся вычисления Надеюсь ответил на вопросы.
return , большое тебе спасибо за ответ , ты мне обьяснил, а я голову ломал , наверное из за того что слишком долго учился без перерыва.Небыл уверен что вычесления происходят в distance + не врубался откуда берутся p1 и p2 , а сейчас я понял что это 30,40 и я не знал что делает функция Math.sqrt , я думал там просто надо умножить и прибавить , вобщем я все проверил , все сходиться , я наконецто догнал. Большое спасибо тебе за отзывчивость.
Еще вопрос , уже давно не могу решить эту проблему с классами. Когда имеется 1 класс и я копирую его с учебника в Netbeans то все работает , а когда несколько классов то Netbeans выдает ошибку и не исполняет программный код. Что надо настроить в Netbeans чтобы получить результат кода с несколькими класами. Вот код : Code: interface SharedConstants { int NO = 0; int YES = 1; int MAYBE = 2; int LATER = 3; int SOON = 4; int NEVER = 5; } class Question implements SharedConstants { Random rand = new Random(); int ask() { int prob = (int) (100 * rand.nextDouble()); if (prob < 30) return NO; // 30% else if (prob < 60) return YES; // 30% else if (prob < 75) return LATER; // 15% else if (prob < 98) return SOON; // 13% else return NEVER; // 2% } } class AskMe implements SharedConstants { static void answer(int result) { switch(result) { case NO: System.out.println("No"); break; case YES: System.out.println("Yes"); break; case MAYBE: System.out.println("Maybe"); break; case LATER: System.out.println("Later"); break; case SOON: System.out.println("Soon"); break; case NEVER: System.out.println("Never"); break; } } public static void main(String args[]) { Question q = new Question(); answer(q.ask()); answer(q.ask()); answer(q.ask()); answer(q.ask()); } } Когда просто создаю класс с названием Random или любым другим код не испольняется и выдает ошибку. Я уже не знаю что делать , как назвать класс , надо создать несколько классов ? Что не делаю всеравно ошибки. В google тоже ничего на эту тему не нашел Что нужно сделать чтобы все заработало? Спасибо.
Vladislav88 скопировал твой код себе в Netbeans и всё прекрасно скомпилирвоалось. Какую ошибку у тебя выдаёт при компиляции?
Return спасибо за отзывчивость. Пока писал сообщение с ошибкой копмиляции все получилось )) Спасибо, ты мне очень помог . Я думал ошибки в коде. Надо было назвать класс AskMe. Извеняюсь за такие вопросы, действительно долго ничего не получалось. return, а как мне знать какой главвный класс чтобы правильно в netbeans создать имя классу. Это самый нижний или в котором println?
Vladislav88 главным классом считается тот в котором есть точка входа в мейн (public static void main()) соответственно у тебя это AskMe. Ну и package должен называться тоже AskMe.
Подскажите плиз, C#. Задание на работу с таймером и datagridview. Так вот у меня есть таблица алфавит в datagridview, как сделать так, чтобы при вводе в textbox, допустим слова "абв", он последовательно(timer) выделялся в таблице?
Чито? Обьясни толком задание.Насколько я понял из вышеописанного : 1. У тебя есть datagrieview, в которой находиться алфавит: ячейка0 - а, ячейка1 - б, ячейка3 - в .... 2.У тебя есть textbox,в который юзер заносит буквы алфавита. Внимание вопрос: кто или что должно выделяться и где? И причем здесь таймер?
допустим в textBox я ввел строку, буквы этой строки должны выделиться в моей таблице, это я сделал, теперь необходимо чтобы с помощью таймера выделялась каждая буква поочереди, то есть если первая буква в строке в, то она, затем, через 1 сек вторая буква и т.д.
А, понял.Смотри: 1. Создаёшь датагрид и добавляешь в него ячейки(или столбцы, на твое усмотрение) по количеству букв в алфавите. Можешь посмотреть тут как это делается. 2. Вешаешь на textbox TextChanged,то есть будет вызываться каждый раз, когда в textbox будут происходить изминения. 3.Просматриваешь символы массива из textbox и сразу отделяешь буквы string ch = textbox1.Text; bool test; for (int i = 0; i < anz; i++) { test = char.IsLetter(ch, i);//если буква то возвращается true. if(test == true) { //Здесь осуществляем поиск буквы по ячейкам datagrid, когда находим совпадение, то просто меняем цвет текста в ячейке cell[number].Foreground="Aqua"; //Что бы создать задержку во времени, создай отдельный поток под это дело и играйся с ним, вот ссыль } }
еще вопрос! таблица datagridview, как обратиться к элементу, находящемуся на пересечении двух других,(т.е первый столбец допустим ось у, а первая строка ось х)к элементам на "осях" я обратился, а как теперь обратиться к их пересечению?
Хмм??Я опять недопонял, ты имеешь ввиду, например: получить текст с 10 строчки, 3 ячейки? тогда так: Code: string CellResult = dataGridView1.Rows[9].Cells[3].Value.ToString();
12345 Допустим такая таблица, так вот мне 22345 необходимо выделить в первой строки какую 33291 либо цифру и в первом столбце, и на их 46543 пересечении выделить другим цветом, то есть 57878 если в первой строке выделю 4, а в столбце 3, то на их пересечении стоит 9, так вот ее и выделить.
все просто, для этого тебе нужно 2 индекса: 1 индекс - ячейка(Cells) первой строки в которой стоит нужный нам результат. Окрестим как i. 2 индекс - номер строки(Rows) или индекс значения в столбце. Окрестим как j. И того у нас выходит, что бы выделить значение в ячейки находящейся на пересечении: dataGridView1.Rows[j].Cells.Style.BackColor = Color.Aqua; И цвет меняется в ячейки находящейся на пересечении координат.
вот код для алфавита. в textbox1 я ввожу слово, оно подсвечивается красным, в textbox2 другое слово оно - синим. а label1, должен выделяться зеленым на их пересечении и он выделяется, но почему то он выделяет всю диагональ, содержащей данный символ { int n = 0; string[] abc = { "а", "б", "в", "г", "д", "е", "ж", "з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", "щ", "ь", "ы", "ъ", "э", "ю", "я" }; dataGridView1.RowCount = 33; dataGridView1.ColumnCount = 33; for (int i = 1; i < dataGridView1.ColumnCount; i++) { for (int j = 1; j < dataGridView1.RowCount; j++) { dataGridView1[i, 0].Value = abc[i-1]; dataGridView1[i, 0].Style.BackColor = Color.Gray; dataGridView1[0, j].Value = abc[j-1]; dataGridView1[0, j].Style.BackColor = Color.Gray; dataGridView1[i, j].Value = abc[n]; n++; if (n > 31) n = 0; for (int k = 0; k < textBox1.Text.Length; k++) { for (int l = 0; l < textBox2.Text.Length; l++) { if (textBox1.Text[k] == Convert.ToChar(dataGridView1.Rows[j].Cells[0].Value)) dataGridView1[i, 0].Style.BackColor = Color.Red; if (textBox2.Text[l] == Convert.ToChar(dataGridView1.Rows[0].Cells.Value)) dataGridView1[0, j].Style.BackColor = Color.Blue; for (int m = 0; m < label1.Text.Length; m++) { if (label1.Text[m] == Convert.ToChar(dataGridView1.Rows[j].Cells.Value)) dataGridView1.Rows[j].Cells.Style.BackColor = Color.Green; } } } } if (textBox1.Text == " ") dataGridView1[i, 0].Style.BackColor = Color.White; n++; if (n > 31) n = 0; } }
Скинь твой полный код, то что ты вылоил весьма неудобочитаем, он даже без подсветки. И пиши мне лучше в личку, не будем засорять тему.
private void button1_Click(object sender, EventArgs e) { string ilya; ilya = "Илья"; MessageBox.Show("Привет "+ ilya); }