Тъй като не можете да използвате масиви или друга структура от данни и алгоритъм за сортиране, ще трябва да направите това ръчно с няколко оператора if
. Преди да опитате да напишете какъвто и да е код, предлагам ви да опитате да го направите на ръка. Ако ви дам четири думи, как бихте определили коя е първата по азбучен ред? Секундата? Продължавай; ако можете да опишете как правите това с думи, преводът на Java трябва да е лесен.
Редактиране:
Не се притеснявайте за ASCII код или нещо, свързано с компютър в момента. Предполагам, че трябва да вземете предвид детайла, че compareTo()
ви позволява да сравнявате само две думи наведнъж. Да приемем, че избирате wd1
и wd2
за сравнение. Когато сравните тези две „думи“, какви са възможните резултати? Във всеки случай какво ще правите след това?
Друга редакция:
След обсъждане в коментарите можете да видите, че алгоритъмът тук е нещо подобно (в псевдокод):
if wd1 comes before wd2
if wd1 comes before wd3
if wd1 comes before wd4
print out wd1 // wd1 is the first word in alphabetical order
else
print out wd4 // wd4 is the first word in alphabetical order
else
// Details left as an exercise to the reader
else
// Details left as an exercise to the reader
Завършете попълването на операторите else първо на английски, като следвате същия модел, илюстриран тук. Когато приключите с това, писането на кода в Java трябва да е доста просто.
Както можете да видите, "разбирането на концепцията" често не е достатъчно, за да започнете да пишете кода. Трябва да отделите време, за да разберете всички мъчителни подробности. Често откривам, че помага да напиша стъпките на английски с химикал и хартия (или може би текстообработваща програма), преди дори да започна да пиша код. (Разбира се, можете да използвате собствения си роден език, ако това е по-лесно. Въпросът е да НЕ скачате на компютъра и да започнете да пишете Java код от самото начало, особено когато сте блокирани.)
Когато можете да опишете стъпките на родния си език, тогава преводът на Java става по-лесен. Понякога е тривиално. Друг път попадате на детайл, който не е взет предвид в описанието ви на естествен език. След това архивирате далеч от Java и коригирате описанието, преди да продължите с Java.
Това е основно процесът, който използвам, когато се опитвам да напиша компютърна програма. Надявам се, че можете да адаптирате някои от тези идеи към вашето собствено кодиране.
person
Code-Apprentice
schedule
01.10.2012
{}
s. Не забравяйте да ги използвате с всекиif
и всекиelse
, дори ако не са задължителни. Това ще ви помогне да избегнете проблеми, каквито виждате сега. - person Code-Apprentice   schedule 02.10.2012