Printable Version of Topic
Click here to view this topic in its original format
Forums > Флейм > Ищу доброго Java-программера, помощь нужна - уроки или консультации, что ли...


Posted by: WhiteRabbit on 22-12-2006, 11:22
Ребяты, излагаю ситуацию.
1)Мой мелкий, 14 лет, пытается освоить в универе курс Java
2)В познаниях где-то возникли дыры, - с конкретным заданием человек не справился и не знает, как справиться. Видимо, где-то упущена теория, не только практика.
3)Я помочь ему не могу - от программирования по жизни я еще дальше, чем от Луны, а попытки освоить что-то по самоучителям хоть и двигаются куда-то медленно и печально, за университетским курсом явно не успевают.
4)Попытки найти учителя через агентство потерпели полный крах: присланный учитель честно признал, что с такой задачей справиться не может и обещал поискать кого-нить со знаниями потолще - но до сих пор не нашел.

Отсюда - вопрос: есть ли у нас на форуме человек, разбирающийся в Java и, более или менее, математике, живущий где-нить не очень далеко от Иерусалима, который согласился бы дать несколько частных уроков - не забесплатно, конечно.

Posted by: sdandrey on 22-12-2006, 13:48
ну вобще-то,консультации у професора и асистентов никто еще не отменял.пусть сходит,поговорит.у них есть приёмные часы для студентов и за эти часы професор и ассистент получают деньги

Posted by: Zemlynin on 22-12-2006, 16:44
Надо к Брайту обратиться,однако за последствия неручаюсь :diablo:

Posted by: Set on 22-12-2006, 19:25
Почему бы прям тут эту задачку не выложить... B)

Posted by: WhiteRabbit on 22-12-2006, 19:44
Set
Я выложу, нет проблем - просто, я думаю, дело не в частном решении... Парень что-то пропустил важное, наверное, - вот и хотелось бы понять, что именно и восполнить...
А задачка такая:

Exercise number 5
__________________

The simplest approximation technique for finding the solutions of an equation
f(x) = 0 ( called the roots of the function f ) is the technique of bisection,
which looks for changes of sign in the function f.

The idea is to start with an interval [a,b] such that f(a)<0 and f(b)>0
( we assume that f is defined in all the interval and that f is continuous there ).

We halve the interval and compute the function in the middle point m.
If f(m) >= 0 the same process continues for the interval [a,m], i.e. we assign
m to b.
If f(m) < 0 the process continues for the interval [m,b] - we assign m to a.

The process is stopped when we get the interval [a,b] for which

abs( f(b) - f(a) ) < 1.0e-5

1.0e-5 is 0.00001.

Write an application to find the root of a function f.

The user will enter the values of a and b.

The program will call a method bisection to perform the computations.
The value of the root will be displayed by the method main.

The method bisection will get 2 parameters -The method bisection will get 2 p a and b of the interval,
and will return the root. The method will use another method - f
to define the function.

To compute the absolute value - use the method Math.abs.

The Exercise Print-out
________________________

For the exercise print-out use the function

f(x) = x^3 - x - 1

with the interval [0.0, 3.0]

To compute x^3 - write x*x*x - or use the method Math.pow to write Math.pow( x, 3 ).

To print - follow the instructions listed in Exercise number 1.

Posted by: Fellow on 22-12-2006, 20:09
Imho, чтобы не справиться с таким заданием, надо пропустить вообще всё ...

Это у него первый язык программмирования? И умеет ли он писать хотя бы простые программмки ("Hello world")? Тут ведь даже алгоритм уже расписан - просто бери и пиши сразу код ...

Posted by: Jedd on 22-12-2006, 20:18
Скорее всего проблема не с Ява, а с переводом задачи в четкий алгоритм. Пусть сначала нарисует блок-схему.

Posted by: Lord KiRon on 22-12-2006, 20:31
Кстати в 14 лет универ это не слабо. А задачка действительно из базовых .

Posted by: Set on 22-12-2006, 20:42
Единственный раз когда я пользовался блок-схемой был экзамен на первом курсе... н-дасс, это была фатальная ошибка, чуть не облажался, за полчаса до конца выкинул её нафиг и на коленке всё забацал. :D: С тех пор ими не страдаю. :cool:

Posted by: sdandrey on 22-12-2006, 21:09
действительно базовая задачка,алгоритм элементарный.могу код в матлабе , С или бэйсике накатать,джаву не знаю

Posted by: Set on 22-12-2006, 21:14
Создаём класс с 3-мя методами: main, bisection, f.
"main" запрашивает у юзера значения a и b, передаёт их методу "bisection", затем отображает возвращённое им значение, которое и есть искомый результат.

"f" получает в качестве аргумента "x", считает по указанной формуле (f(x) = x^3 - x - 1) и просто возвращает значение.

"bisection" собственно считает корни, вот таким приблизительно раком:

while (Math.abs(f(b) - f(a)) >= 1.0e-5) {
m = ( a + b ) / 2;
If (f(m) >= 0) b = m else a = m;
}

Posted by: WhiteRabbit on 22-12-2006, 22:06
Fellow
Да, это у него первый язык программирования - и задачка с пятого всего-то занятия, так что про "пропустить все" речь не идет, он это "все" еще не осваивал, чтобы пропускать. ;&#041;
Да, в принципе простые программки он писать умеет - из 9 заданий на данный момент не справился с этим одним, и я, если честно, просто не представляю, что у него там не пошло - математическое решение, алгоритм или собственно как в каком-то месте код прописать.
Set
Большое спасибо. Щас я ему покажу и будем разбираться. Если не справимся с чем-то опять - я тебя еще спрошу, ладно? Я понимаю, что у меня, наверное, как в том анекдоте, в ДНК ошибка... :diablo: Но мне уже тихо хочется поубивать авторов учебников и самоучителей, в которых каждая вторая фраза начинается с "Как вы знаете из своего опыта работы в С++..." :drag:

Added:
Set
Еще раз большое спасибо!user posted image Разобрались... И нашли, что не получалось и почему! И даже дополнительные уроки оказались без надобности - пробел восстановлен. :punk:

Posted by: Сергей Иванович on 22-12-2006, 23:08
А всё же, если не секрет, что именно и почему не получалось?

Posted by: WhiteRabbit on 23-12-2006, 00:30
Да какой там секрет. Не получался вот именно тот кусок, который Set привел(это ж надо так идеально уловить суть проблемы - мои аплодисменты!), а причина - обхохочешься: парень запутался промеж функциями и их производными, погрязнув в мысленных переводах терминов между русским, английским и ивритом. Это не незнание собственно Java было, а просто перепутанница в голове.:p:

Posted by: sdandrey on 23-12-2006, 00:52
вобще ,идиотизм: начинать програмированию учить с джавы или С.для изучения програмирования(постройка алгоритмов,логика и т.д) наилутшими являются бэйсик ,паскаль и фортран

Posted by: FiL on 23-12-2006, 01:07
для обучения ОБЪЕКТНОМУ программированию не надо изучать ПРОЦЕДУРНЫЕ языки. Абсолютно другая логика.
Хотя, для общего развития и не помешает, конечно :&#041;

Posted by: Uzaren on 23-12-2006, 01:52
QUOTE (sdandrey @ 22-12-2006, 23:52):
вобще ,идиотизм: начинать програмированию учить с джавы или С.для изучения програмирования(постройка алгоритмов,логика и т.д) наилутшими являются бэйсик ,паскаль и фортран
Ага, языки, которые сегодня практически почти нигде не используютса! По мойму начинать учиться писать на С - самое то!

Posted by: Lord KiRon on 23-12-2006, 02:02
Болтуны все :diablo:

Posted by: WhiteRabbit on 23-12-2006, 02:37
QUOTE:
вобще ,идиотизм: начинать програмированию учить с джавы или С
Вот вы поезжайте в Киев универ - и там спросите скажите... ;&#041;
Можно подумать - это я придумала. :&#041;

Posted by: sdandrey on 23-12-2006, 05:39
QUOTE (Uzaren @ 22-12-2006, 22:52):
QUOTE (sdandrey @ 22-12-2006, 23:52):
вобще ,идиотизм: начинать програмированию учить с джавы или С.для изучения програмирования(постройка алгоритмов,логика и т.д) наилутшими являются бэйсик ,паскаль и фортран
Ага, языки, которые сегодня практически почти нигде не используютса! По мойму начинать учиться писать на С - самое то!
я хочу водеть как ты будешь разбираться с кодом ,написанным на С недели через две после написания(при условии,что у тебя нет опыта програмирования)

на бэйсике ,фортране и паскале и сейчас много работают.например в инженерных расчетах фортран намного удобней чем C

Posted by: admik on 23-12-2006, 07:33
бейсик - это не программы, а макросы писать.
фортран тут при чем? сугубо прикладной язык, вещь отличная, но не для освоения программирования.

Posted by: Sidorini on 23-12-2006, 08:27
QUOTE (admik @ 23-12-2006, 06:33):
бейсик - это не программы, а макросы писать.
Ошибочное, кстати, мнение. Всё что не RT на бейсике вполне писать можно...

Posted by: admik on 23-12-2006, 10:24
Sidorini да конечно можно, но толку? основное направление имело в виду :&#041;

Posted by: Uzaren on 23-12-2006, 12:11
QUOTE (sdandrey @ 23-12-2006, 04:39):
я хочу водеть как ты будешь разбираться с кодом ,написанным на С недели через две после написания(при условии,что у тебя нет опыта програмирования)

Ну так я во так как раз и начинал учитса именно с С, верней меня учили в беер-шевском колледже, и продолжают до сих пор обучать по крайней мере по всем израильским колледжам, если ты учишся на андасаи махшевим, и программа обучения эта утвержденна мисрад ха-авода :D:

Posted by: sdandrey on 23-12-2006, 14:45
на програмёров,обычно,идут учиться те,кто уже имеет понятие о том,что такое код и счем его едят :&#041;

admik,не скажи,фортран очень хорош для обучения програмированию :&#041;

Posted by: Uzaren on 23-12-2006, 15:12
QUOTE (sdandrey @ 23-12-2006, 13:45):
на програмёров,обычно,идут учиться те,кто уже имеет понятие о том,что такое код и счем его едят :&#041;

Я не знаю где и с кем ты учился, но у нас, когда я начинал из группы 95-98% вообше не знало, что такое програмирование :&#041; Какие-то поверхностные знания были у разных людей по DOS'у, виндах, кто-то был не много знаком с вордом и всё :&#041;

Posted by: sdandrey on 23-12-2006, 17:30
QUOTE (Uzaren @ 23-12-2006, 12:12):
Я не знаю где и с кем ты учился, но у нас, когда я начинал из группы 95-98% вообше не знало, что такое програмирование :&#041; Какие-то поверхностные знания были у разных людей по DOS'у, виндах, кто-то был не много знаком с вордом и всё :&#041;
хорошо вам.в .....Технионе я,при том,что не на прагромёра учился, без знаний бэйсика и умения составлять алгоритмы вряд ли смог вытащить хорошую осенку по начальному курсу С

а про програмёров я,вообще ,молчу: люди , которые заканчивали школы или техникумы с програмёрской специализацией, заваливают начальные и не только курсы по С

Posted by: Lexus on 23-12-2006, 20:19
У меня в универе програмирование начинается с Явы, потом C#, C++

Те кто на факульте математике, то Матлаб, ява и всё :&#041;)

Posted by: Lexus on 23-12-2006, 20:19
QUOTE (sdandrey @ 22-12-2006, 19:09):
могу код в матлабе , С или бэйсике накатать,джаву не знаю
Ты мне на кубичейский сплайн напиши, буду благодарен.

Posted by: Enot Pk on 23-12-2006, 23:32
Вот у меня на сканере от Symbol'a ОСя на Си. И что? Там такие глюки (например, "двоящийся товар"), что на Бэйсике они если бы и возникли, то удалялись бы за 10 минут. Если кому интересно - в Мск я завтра в Ашане (м. Тёплый стан) с 8 до 18-19. Бэйдж СТО 28590, Ашан - ¹1948 (на планшетку). Продемонстрирую.

А что до блок-схем, то их надо уметь состалять. Я могу.
Имхо - Си маст дай, а "процедурность" не всегда панацея. Да и всё равно всё уходит в машкод, а он один и тот же.

Posted by: sdandrey on 23-12-2006, 23:36
QUOTE (Lexus @ 23-12-2006, 17:19):
QUOTE (sdandrey @ 22-12-2006, 19:09):
могу код в матлабе , С или бэйсике накатать,джаву не знаю
Ты мне на кубичейский сплайн напиши, буду благодарен.
зачем?в матлабе есть уже готовая функция :wink:

Posted by: Lexus on 24-12-2006, 12:34
QUOTE (sdandrey @ 23-12-2006, 21:36):
в матлабе есть уже готовая функция :wink:
над именно свою :&#041;

Posted by: sdandrey on 24-12-2006, 13:08
стучись в аську

Posted by: obaldin on 30-12-2006, 18:59
QUOTE (FiL @ 23-12-2006, 00:07):
для обучения ОБЪЕКТНОМУ программированию не надо изучать ПРОЦЕДУРНЫЕ языки. Абсолютно другая логика.
Что именно подразумевается под "ПРОЦЕДУРНЫМИ языками"? Имеется в виду "imperative style" или "functional style"?

Posted by: obaldin on 30-12-2006, 19:20
QUOTE (sdandrey @ 22-12-2006, 23:52):
для изучения програмирования(постройка алгоритмов,логика и т.д) наилутшими являются бэйсик ,паскаль и фортран
Вирт бы посмеялся :D:

Posted by: sdandrey on 30-12-2006, 22:14
кто такой вирт не знаю, но я писал и еще раз могу повторить

QUOTE:
для изучения програмирования(постройка алгоритмов,логика и т.д) наилутшими являются бэйсик ,паскаль и фортран

это жестокая правда и проверено много раз

Posted by: obaldin on 30-12-2006, 22:41
QUOTE (sdandrey @ 30-12-2006, 21:14):
кто такой вирт не знаю
Понятно, оставим.

QUOTE:
для изучения програмирования(постройка алгоритмов,логика и т.д) наилутшими являются бэйсик ,паскаль и фортран
это жестокая правда и проверено много раз
С такими аргументами трудно спорить.
Posted by: sdandrey on 30-12-2006, 23:41
QUOTE (obaldin @ 30-12-2006, 19:41):
С такими аргументами трудно спорить.
проверенно на студентах. в бэйсикe ,паскалe и фортранe структура кода более упорядочена,чем в СИ

Posted by: obaldin on 31-12-2006, 00:30
QUOTE (sdandrey @ 30-12-2006, 22:41):
в бэйсикe ,паскалe и фортранe структура кода более упорядочена,чем в СИ
Если имеется в виду структурное программирование, то тогда попадание паскаля в одну группу с бейсиком и фортраном удивляет даже больше, чем отсутствие других альтернатив кроме этой четверки. Может, ты приведешь коротенький пример на фортране, который будет заметно более структурным, чем аналогичный фрагмент на си? (Заодно уточним, какие языки ты имеешь в виду под "бейсиком" и "фортраном" :&#041; )

Posted by: piligrim on 31-12-2006, 00:47
вот и добрый Java-программер пришел :diablo:

Posted by: sdandrey on 31-12-2006, 01:54
QUOTE (obaldin @ 30-12-2006, 21:30):
QUOTE (sdandrey @ 30-12-2006, 22:41):
в бэйсикe ,паскалe и фортранe структура кода более упорядочена,чем в СИ
Если имеется в виду структурное программирование, то тогда попадание паскаля в одну группу с бейсиком и фортраном удивляет даже больше, чем отсутствие других альтернатив кроме этой четверки. Может, ты приведешь коротенький пример на фортране, который будет заметно более структурным, чем аналогичный фрагмент на си? (Заодно уточним, какие языки ты имеешь в виду под "бейсиком" и "фортраном" :&#041; )
я имел ввиду нечто другое: код написанный на СИ через две недели без пол литра не разберёшь в отличие от кода на бейсике,фортране или паскале :&#041;

Posted by: dmvn on 31-12-2006, 02:25
QUOTE (sdandrey @ 31-12-2006, 01:54):
я имел ввиду нечто другое: код написанный на СИ через две недели без пол литра не разберёшь в отличие от кода на бейсике,фортране или паскале :&#041;
Неверно. Структуру можно блюсти и на Си (даже без плюсов). В мире до хрена кода написано на сях (поболе чем на паскале), так ничего, open-source-сообщество почему-то не спилось :&#041;

Posted by: mts on 31-12-2006, 02:31
QUOTE (sdandrey @ 30-12-2006, 17:54):
QUOTE (obaldin @ 30-12-2006, 21:30):
QUOTE (sdandrey @ 30-12-2006, 22:41):
в бэйсикe ,паскалe и фортранe структура кода более упорядочена,чем в СИ
Если имеется в виду структурное программирование, то тогда попадание паскаля в одну группу с бейсиком и фортраном удивляет даже больше, чем отсутствие других альтернатив кроме этой четверки. Может, ты приведешь коротенький пример на фортране, который будет заметно более структурным, чем аналогичный фрагмент на си? (Заодно уточним, какие языки ты имеешь в виду под "бейсиком" и "фортраном" :&#041; )
я имел ввиду нечто другое: код написанный на СИ через две недели без пол литра не разберёшь в отличие от кода на бейсике,фортране или паскале :&#041;
Беспредметный спор. Я, как самый скромный (по утверждению piligrim'а), могу написать очень красивый и понятнтый код на Basic'e, а могу и так, что сам не пойму на следующий день. А можно и на C красиво разложить, а можно и return'в с goto напихать, с подстановками закрутить и т.д. и т.п. Это всё от програмиста зависит.

Posted by: obaldin on 31-12-2006, 02:48
QUOTE (sdandrey @ 31-12-2006, 00:54):

я имел ввиду нечто другое: код написанный на СИ через две недели без пол литра не разберёшь в отличие от кода на бейсике,фортране или паскале :&#041;
Все-таки, что ты называешь "фортраном"? Все тот же язык с вычисляемыми GOTO, арифметическим IF, типизацией переменных по первой букве ("GOD is REAL unless declared INTEGER" :D: )
CODE
if ( b**2-4*a*c) 100,200,300
  100    print *, 'Roots are Complex'
      go to 400
  200    print *, 'Single Real Root' 
      go to 400
  300    print *, 'Two Real Roots'
  400 continue
(Это еще читабельный пример, добейте его строчек до 400, тогда посмотрим)

Posted by: obaldin on 31-12-2006, 02:55
QUOTE (mts @ 31-12-2006, 01:31):
Это всё от програмиста зависит.
На паскале будет труднее завернуть что-то типа x-=**++x; :&#041;

Posted by: dmvn on 31-12-2006, 03:46
QUOTE (obaldin @ 31-12-2006, 02:55):
На паскале будет труднее завернуть что-то типа x-=**++x; :&#041;
а) C++-профи такой код читает без напряга.
б) Если ты не профи, то на @#$%^^%$## ТАК писать? Пиши проще, комментируй. Сколько лет пишу на С++, ни разу такого не приходилось писать.
в)
Утверждение. 1) На любом языке программирования можно написать нечитаемый код. 2) На любом языке программирования можно написать абсолютно читаемый код.
Доказательство. Неформализуемо, зато 1) и 2) подтверждено миллиардами примеров.

P.S. Кажется, тему надо закрывать.

Posted by: obaldin on 31-12-2006, 04:25
QUOTE (dmvn @ 31-12-2006, 02:46):

Утверждение. 1) На любом языке программирования можно написать нечитаемый код. 2) На любом языке программирования можно написать абсолютно читаемый код.
Само по-себе верно, но есть хитрость - тут речь шла об обучении. А для обучения желателен язык, который сильно затрудняет написание плохого кода.

Posted by: zx666 on 31-12-2006, 04:38
QUOTE (obaldin @ Today, 04:25):
QUOTE (dmvn @ 31-12-2006, 02:46):

Утверждение. 1) На любом языке программирования можно написать нечитаемый код. 2) На любом языке программирования можно написать абсолютно читаемый код.
Само по-себе верно, но есть хитрость - тут речь шла об обучении. А для обучения желателен язык, который сильно затрудняет написание плохого кода.
И тут, наконец, появляется Java ! :&#041;

Posted by: FiL on 02-01-2007, 05:31
QUOTE (obaldin @ 30-12-2006, 10:59):
QUOTE (FiL @ 23-12-2006, 00:07):
для обучения ОБЪЕКТНОМУ программированию не надо изучать ПРОЦЕДУРНЫЕ языки. Абсолютно другая логика.
Что именно подразумевается под "ПРОЦЕДУРНЫМИ языками"? Имеется в виду "imperative style" или "functional style"?
Ну и вопросы ты задаешь... я-же не помню уже определений, я это на 2-м курсе проходил :&#041; Да еще и на литовском языке. А ты тут imperative, functional... я даже словей таких не знаю.

Но таки да, я говорю о императивных языках. Про функциональные тут речь вообще не шла (да и не используются они нигде толком, так Lisp где-то в автокаде, да всякие около-академические области). А вот для понимания принципов объектного программирования (причем на чисто-объектных языках, типа смолтока) знания и опыт императивного программирования не помогут. И даже будут мешать на первых порах. По себе сужу.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)