![]() |
Ищу репетитора по программированию (Java)
Собственно, сабж.
Обращаться через ПС. Спасибо! |
Я вам рекомендую купить/скачать простейшую книгу по джава, изучить синтаксис языка часа за 3 и после этого начать рассылать резюме с пометкой стажер. Другого способа стать специалистом нет. Вы только зря потратите деньги. Если есть конкретные вопросы по джава-технологиям, то можно спросить на соответствующих форумах. Их сейчас достаточно много.
|
Ид ты решила род деятельности поменять?:)
|
Цитата:
Чё, правда, возьмут? Хотя одного синтаксиса в java точно недостаточно. |
Цитата:
|
Цитата:
У меня проект горит, мне курс сдать надо. (не по работе, с работой всё нормуль.) |
Если не репетитора, то помогите плиз найти ошибку, хотя бы. А?
Туплю, реально туплю и не понимаю, где? public boolean addRow(String line, int row) { boolean ok=false; char[] lTbl = line.toCharArray(); for (int xx=0;xx<this.cols;xx++) { if(lTbl[xx]=='0') { this.aMap[xx+1][row].value = '0'; ok = true; } else if (lTbl[xx]=='f') { this.aMap[xx+1][row].value ='f'; ok=true; } else { ok = false; //xx=this.cols; }//System.out.println("eta zaraza pechataet"+ok); } System.out.println("a sjuda uze ne doxodit, pochemu?"+ok); return ok; } |
Цитата:
Увы... На мой вопрос об алгоритме, везде, на всех форумах, где спрашивала, было два ответа: 1. ссылка на описание алгоритма, которую я уже и ночью расскажу наизусть и которую я нашла без форумов 2. ответ в стиле: "Джава отстой, джава фигня, джава... " ну и тд. В общем, не получается у меня всё это закодировать, чтобы тестирование прошло. Нужна помощь умеющего объяснять человека. Самой совсем никак. Не моё это, а надо. Так что... не всё так просто. :( |
Что это? Точнее что это должно делать? И лучше опубликуй весь класс потому-что в этом методе используются переменные класса типа aMap
|
Цитата:
там 6 классов. чтобы с этим разобраться, нужен репетитор. никто просто так не захочет всё это смотреть. (могу, конечно, и майлом отправить... но там очень всё сложно, с ходу не разобраться.) по этому куску пока проблема (которая всё стопорит). Метод считывает из файла строчку line, и заносит данные посимвольно на карту в один ряд (считывание ряд за рядом, в данном случае один ряд только). Если считывание удалось - возвращаем значение true. public boolean addRow(String line, int row) { boolean ok=false; флаг для возврата char[] lTbl = line.toCharArray(); строчка в таблицу символов for (int xx=0;xx<this.cols;xx++) каждый символ строки заносится на карту aMap. { if(lTbl[xx]=='0') если символ 0 - на карту отмечается 0 { this.aMap[xx+1][row].value = '0'; ok = true; } else if (lTbl[xx]=='f') { this.aMap[xx+1][row].value ='f'; если символ f - отмечаю на карте ok=true; } else { ok = false; если символ отличен от 0 или f (char - символы) xx=this.cols; выходим из цикла, ибо ошибка и в файле отличный от 0 и f символ. }//System.out.println("eta zaraza pechataet"+ok); до этого момента всё работает } System.out.println("a sjuda uze ne doxodit, pochemu?"+ok); а сюда уже не выходит return ok; } |
Цитата:
Обратись к Бегемоту, он в Яве спец. |
Обращаюсь ко всем спецами по Java.
Если найдётся время и желание помочь с репетиторством, напишите пожалуйста в ПС. Спасибо всем! |
6 классов для репетитора маловато, вот если бы 10 то другое дело :) Как я понимаю у вас проблема не с джавой а с алгоритмом, так-то может вы сформулируте поподробнее задачу/алгоритм, а потом если нужно будет то мы посмотрим и целых 6 классов.
|
Цитата:
Ида, хоть на джаве ничего и не делал. но беглый взгляд на эту функцию порождает такие вопросы: 1. строчка идёт в массив. так понимается, что строчки могут быть разной длины? и массив символов lTbl (чё за дурное название) имеет длину равную количеству символов в строчке? так? 2. у тебя цикл по длине карты. там ты обращаешься к элементу массива, подставляя индекс который бегает по карте. проблема - возможный выход за пределы этого массива. перед тем как взять элемент проверяй индекс, возможно он больше чем реальная длина массива, тогда время делать переход к новой строке. перед этим можно заполнить оставшиеся ячейки карты нулями. хотя оптимальнее заполнить карту нулями сразу и всю - перед всеми циклами. у тебя скорее всего возбуждается исключение именно по причине выхода за границы массива. проверь какой нить output лог, и посмотри код ошибки. 3.выход из цикла присваиванием xx = this.cols это извините извращение. разве в джаве нет инструкции break? 4. и ещё. отформатируй текст так чтобы вложенные блоки были смещены относительно внешних - так проще читать. |
Цитата:
http://www.policyalmanac.org/games/...utorial_rus.htm :) |
А что значит "не доходит" - выдаёт какую-то ошибку или как? По-моему, из этого цикла просто невозможно не выйти. А Вы проверяли, чему равно this.cols?
|
Цитата:
Привет! Спасибо за ответ! но... 1. проверку делаю в другом классе, поэтому на данный метод addRow оно не влияет. Там всё ок. 2. тоже проверила... пока находится в цикле for, всё замечательно пишется на карту. никто никуда не выходит. 3. а он не работал!!!!, поэтому так %))) 4. тут не получается его форматировать, всё само сдвигается. |
Цитата:
Цитата:
нашла ошибку. таки ошиблась на единицу. Спасибо! :) но репетитора всё равно ищу :) |
мой вариант:
public boolean addRow(String line, int row) { boolean result(true); флаг для возврата char[] str = line.toCharArray(); строчка в таблицу символов for (int i(0); i<this.cols;++i) каждый символ строки заносится на карту aMap. { if (str.length() == i+1) break; if(('0' == str[i]) || ('f' == str[i])) ; если символ 0 или f - он заносится на карту { this.aMap[i][row].value = str[i]; что там с первой колонкой карты, почему у тебя было xx+1 } else { result = false; если символ отличен от 0 или f (char - символы) break; выходим из цикла, ибо ошибка и в файле отличный от 0 и f символ. } System.out.println("eta zaraza pechataet"+ok); до этого момента всё работает. работает у тебя только обработка нескольких символов там, видимо до конца первой строчки. потом падает потому что выходишь за границу массива символов. } здесь заполнить если надо остаток строчки на карте; System.out.println("a sjuda uze ne doxodit, pochemu?"+ok); а сюда уже не выходит return result; } |
Цитата:
ну.. я сделала более извращённо. :) Спасибо! скопирую на будущее. |
Репетитора всё равно ищу.
я без шуток, правда. |
Цитата:
хочешь сказать что ты сделала более извращённо чем я? ну спасибо конечно, я горжусь. может подойдут реальные знатоки джавы и растолкуют мне про мои извращения :) будет познавательно. |
Цитата:
БЕГЕМОТ!!! ГДЕ ТЫ!!? |
Цитата:
не... я твой текст пока не разбирала даже (у меня времени на всё до 00:00 сегодня, иначе меня выпрут с учёбы ... наверно... за халяву, прогулы и тупизм блондинки), но со стороны твоя версия выглядит красиво! :) я так оставила: public int addRow(String line, int row) { int i=0; char[] lTbl = line.toCharArray(); for (int xx=0;xx<this.cols-1;xx++) { i=this.cols; if(lTbl[xx]=='0') { this.aMap[xx+1][row].value = '0'; } else if (lTbl[xx]=='f') { this.aMap[xx+1][row].value ='f'; } else { i=0; break; } } return i-1; } и вернула int число, оно в другом классе больше подходит по твоему 1му пункту :) |
Ида ты только не обижайся :) ты знаешь что такое Обфускатор?
|
Цитата:
а вот это ещё вопрос больше подходит или нет. думай так - функция возвращает неудачу если в строке встречен символ не 0 или не f. во всех остальных случаях удача. если так, то ты не отличишь добавление пустой строки от неудачи. я чуток соптимизировал свой вариант. если же ты хочешь возвращать длину добавленной строки - заведи параметр. и считай длину (увеличивай) там, где добавляешь символ. просмотрел ещё раз твой последний вариант - что ты вообще там за целое число возвращаешь? -1 если неудача и cols - 1 всегда если удача? два варианта, чем булевы значения тебе не подошли? ну, мало ли, если тебе так нужно..... |
Цитата:
:D теперь знаю |
Цитата:
не ,я по-другому мыслила. функция возвращает длину строки (кол-во символов в ней), если строка состоит только из 0 или f. если в строке есть отличные от 0 и f символы, то карта поломана и надо вернуть ошибку. Тогда возвращаю длину строки равную нулю. а в другом классе ещё проверяю длину строк между собой. карта должна состоять из строк одинаковой длины. длина строки определяется по первой введённой строке. (её я в другом классе обозначила за х) если каждая следующая строка не такой же длины, то карта опять же поломана и надо завершить программу. я ж говорила, что там всё ооочень сложно. Ну... с другой стороны, как умела. |
Цитата:
я тебе о том и толкую. длину строки ты конечно можешь возвращать при удаче, присваивая её сразу, но надёжнее это делать считая её - то есть прибавляя по символу в том месте, где ты реально добавляешь символ в карту. если карта ломаная то ты возвращаешь -1, а не 0. будь аккуратна. я свой пост поправил. |
отвлечённо
вот ща сижу и думаю. мне прислали предложение работать J2EE программистом. вот мне интересно... за что они меня так, вроде в резюме ничего такого особенного не написано?! Или у нас совсем с программистами напряжёнка? Кстати, по теме. А никому не надо место работы? я ссылочку дам. |
Цитата:
нууу.. как бы на деле так и получается. проверка, и сразу на карту. про -1 проверила, спасибо! (хотя там проверка на всё, что <=0, эт я подстраховалась) :) |
вот тебе вариант с возвратом длины добавленной строки, и -1 если строка ломаная:
public int addRow(String line, int row) { int len(0); char[] str = line.toCharArray(); строчка в таблицу символов for (int i(0); i<this.cols;++i) каждый символ строки заносится на карту aMap. { if (str.length() == i+1) break; if(('0' == str[i]) || ('f' == str[i])) ; если символ 0 или f - он заносится на карту { this.aMap[i][row].value = str[i]; ++len; } else { return -1; если символ отличен от 0 или f (char - символы) } } здесь заполнить если надо остаток строчки на карте; return len; } или так, но так мне нравится меньше, хотя и быстрее: public int addRow(String line, int row) { char[] str = line.toCharArray(); строчка в таблицу символов for (int i(0); i<this.cols;++i) каждый символ строки заносится на карту aMap. { if (str.length() == i+1) break; if(('0' == str[i]) || ('f' == str[i])) ; если символ 0 или f - он заносится на карту { this.aMap[i][row].value = str[i]; } else { return -1; если символ отличен от 0 или f (char - символы) } } здесь заполнить если надо остаток строчки на карте; return str.length(); } |
Цитата:
не так получается, Ида! ты присваиваешь i одну и ту же длину карты каждый раз когда собираешься добавлять в карту новый символ. с чего вдруг i окажется равной длине строки? я нигде не вижу сравнения длины строки с длиной карты. может, конечно в других местах где то - но мне это непонятно, так распределять логику. баги потом ловить замучаешьсииии... :))) а вот возвращать -1 в случае ломаной карты - это как раз разумно. |
а вот ещё вариант, самый на мой взгляд оптимальный и логичный.
возвращает -1 если карта ломаная иначе длину добавленной строки. public int addRow(String line, int row) { char[] str = line.toCharArray(); строчка в таблицу символов for (int i(0); i<str.length();++i) каждый символ строки заносится на карту aMap. { if(('0' == str[i]) || ('f' == str[i])) ; если символ 0 или f - он заносится на карту { this.aMap[i][row].value = str[i]; } else { return -1; если символ отличен от 0 или f (char - символы) } } здесь заполнить если надо остаток строчки на карте; return i; } |
Цитата:
Слушай, Сухов, давай по пиву дёрнем и я тебе код покажу? :) |
Цитата:
Конечно, надо. :) Мне ссылочка не помешает. |
А по теме: в нете можно скачать на английском книгу Thinking in Java Брюса Эккеля, по-русски она называется Философия Java. Самая адекватная книга.
|
Цитата:
Ида, после пива мы твой код таким сделаем, что препод не поверит что ЭТО труд студента :) мы добавим в эту карту интеллекта столько, что она не только символы будет в себя писать, но и некоторые теоремы доказывать, и траектории спутников земли рассчитывать... придётся напрягаться, чтобы и ошибки туда добавить потом, на трезвую голову :) давай дёрнем, я не против! |
хотя, смотреть после пива только код..... может, ещё чего нить показать захочется :))) или мне )
например созвездия на небе, или достопримечательности города.... |
Цитата:
вот уж нет уж.. ;) сначала КООООД!!! :D а потом по ситуации ;)... хватит ли нас доползти по домам после тестирования :) кстати, а проверку ошибок я уже сделала. |
Цитата:
неплохое начало для анекдота: ползут два программиста по домам после тестирования.... :xdrinkers |
Цитата:
а я думала тестят тестеры :) |
Цитата:
ну, эт смотря что тестить ;) |
Цитата:
тестеры - это программисты, которые не хотят или не умеют программировать. а тестируют все и всё, а программисты вдобавок и интегрируют, и документы пишут, и баги фиксят не свои, и вообще , как говорится программист - у жнец, и швец, и на дуде игрец . так что тестер - отличная халявная работа, для тех кто не хочет гемора мозгам. |
Сухов....да я пошутила...а ты мне и правда как для блАндинки все пояснил :)
Я вапще та я знаю...у мну высшее ИТ образование...два :) |
Цитата:
Пойдёте в репетиторы? :) А то у меня ни одного образования, а очень хочется :) |
не, я больше ИТ бизнесу и requirement engineering
кодить я вообще не умею :) свои работы про программированию "кровью" писАла :) |
Цитата:
а, ну тады понятно... да я в тебе и не сомневался, пруж, ты ж вумная, с двумя высшими ит. быть репетитором у блАндинок, наверно, прикольно. говоришь одно, думаешь о другом, смотришь на третье... и главное - со всем что говоришь - соглашается! |
Ну, слушайте... вы... специалисты -блондины- брУнЭты!!!
Неужели никто помочь не может?! |
Цитата:
И приползают в гостинницу у ВДНХ, где уже неделю делят номер с командировочным мужиком из Средней Азии (1980 г, Москва, жара, Олимпиада, КГБ, куча как бы работающего железа...). Каждый вечер до этого повторялась одна и таже картинка: два программера к полуночи попадали в номер и бурно обсуждали дневные проблемы: драйверы глючат, супервизор виснет, система падает, БУСы и БУЗы лопаются, вектора прерываний прерываются, диски летают... Мужик мрачно и молча ложился лицом к стене. На этот раз тестирование прошло успешно и один из программеров произносит: "слушай Вася, а оператор-то - ничего девочка!" Мужик вскакивает, вытаскивает дыни с хурмой, водки с коньяком: "Ребята! За неделю первый раз человеческие слова слышу! Давайте выпьем-поговорим!" Так выпьем же за женщин, разговоры о которых так сплачивают мужчин! Мда... Почему-то тост получился:) К чему бы это? |
вот вам смешно, а я ща пока ждала, пока алгоритм соседние клетки размножит опять чуть компьютер не убила.
Господи, да за что ж мне такие мучения-то! :) |
Цитата:
во во. алгоритм клетки размножает. в извращённой форме. вот всё так у программистов. и сервера падают, а не тётки :( и встаёт винда :( а не... то что вы подумали. Ида, вот Бегемот пришёл, он тебя сейчас научит :) как клетки правильно размножаться должны. |
Цитата:
да я жду уже... я уже скоро с горя сама всё доделаю %))) |
Цитата:
А что за курс? 1) Почему карту надо считывать по-строчно? 2) Судя по описанию задачи, клетка на карте хранит не только информацию о наличии стены, то и параметры поиска (Г и Х). Для них новые массивы создавать? Опять же, в зависимости от целей курса, ответы на данные вопросы могут быть абсолютно неважны, либо, наооборт - отражать суть того, что от вас требуется. |
Файлов в теме: 2
У меня на выходных было время и я реализовал этот алгоритм. Может будет тебе нужно. Сам прикрепленный зип на самом деле исполняемый джар. Сорцы и эклипсовский проект внутри. для запуска java -jar asterisk.zip. В текстовом файле пример карты.
|
Цитата:
Во, где гениальные люди пропадают! :) Спасибо! Уже сдала свой, но посмотрю обязательно. :) |
Короче... проект завалила, не прошло "деббагирование" препода.
Буду писать новый. Абсолютно серьёзно, есть желающие помочь? (Тему ещё не знаю) |
Могу предложит книги по Яве на русском. Аналог в финляндии есть только на английском.
|
Цитата:
Спасибо! А там в книгах алгоритмы как-нибудь тоже рассматриваются? Так-то... книги есть, конспекты есть, форумы и советчики разные есть... опыта нет... и мозгов. поэтому нужен репетитор. |
Мне нравится книга - А.Шень. Программирование: теоремы и задачи. Ее можно скачать тут http://www.mccme.ru/free-books/ Там разбираются разные задачи связанные с программированием. Думаю тебе будет интересно. Еще есть не плохой сайт http://algolist.manual.ru/
|
Всем спасибо!
тему можно закрыть |
ну что... :)
таки я добила алгоритм. никому "списать" не надо? ;) *решение совсем иное, нежели в зип файле выше. |
Новую тему решила не открывать. Ну и знаю, что форум читают технари. :)
Подскажите пожалуйста, какие есть компиляторы (линкеры?) под виндоуз для программирования на С (не С++)? В общем... что имею: виндоуз, TextPad, руки, задание Что надо сделать: написать задание в текстпаде руками и как-то это преобразить в работающую программу под виндоуз. Ну и чтобы всё это работало в Линуксе тоже. Спасибо! ПыСы: Как всё делать под Линуксом - знаю, в данном случае разговор про виндоуз (ибо один из компов Линукса не имеет:( ). На другие форумы тоже уже написала. Все советы приветствуются. :) |
gcc из комплекта http://www.cygwin.com
msvc в урезанном command-line варианте http://www.winprog.org/tutorial/msvc.html Оба понимают и C и C++. |
Цитата:
Огромное спасибо! :) |
| Часовой пояс GMT +3, время: 12:59. |