Loading...
nakov avatar nakov SoftUni Team Trainer 5295 Точки

[Homework] Java Basics - Цикли, методи, работа с класове - Май 2014

Колеги, качил съм ви лекцията, демонстрационните примери и условията на домашните от курса Java Basics на неговия сайт. Извинявам се, че ги качвам в последния момент. До сега ги писах и не можах по-рано.

15
Java Advanced 05/09/2014 00:50:59
bangelova avatar bangelova 48 Точки

Ето и от мен две решения :) В папката на проекта трябва да присъстват .txt файловете с инфо.

Problem9 - List of Products

Problem10 - Order of Products

1

Ето едно примерно решение на full house със жокерите:

Problem04 - Full House with Jokers

Какво правя накратко: започвам да си правя задачата както предходната. Когато стигна до момента, в който трябва да мина през всички възможни позиционирания на жокерите, завъртам цикъл от 0 до 31 (даде ни се като идея на лекцията в четвъртък).  Вътре в този цикъл ползвам бинарното представяне на поредното число, като с друг while loop минавам през всички единици. Където срещна единица, на съответната позиция от масива с текущите ми карти слагам жокер (като тук правя нещата малко наобратно, иначе трябва да запълвам numberAsBinary стринга с нули). Съответно съм направил и временен масив с карти, за да мога след всяка итерация при жокерите да си връщам първоначалната ръка.

3
anilak avatar anilak 28 Точки

Колега,

решението ти генерира множество комбинации ***** през всеки 32 реда.

0

Изглежда съм се заблудил, понеже в домашното пише, че 119808 е очакваният отговор, а явно не е точно така.

0
anilak avatar anilak 28 Точки

Да, според мен верния отговор е доста по-малко число. И аз не знам защо пише толкова в домашното. Поствам и моето РЕШЕНИЕ с надеждата някой да ми каже дали бъркам някъде, защото при мен броя, който се получава е 81745.

1
coaster avatar coaster 412 Точки

Здравейте, търся малко помощ от някой по-разбиращ относно 10-та задача - Order Of Products.

Имам следните класове: <ЦЪК>. В единия имам само мейн метод, другия е клас Product, а в другите два чета информацията съответно от Input.txt и Order.txt. Принтирам си нещата от файловете на конзолата за собствено удобство и излизат правилно, следователно до тук се справям добре. Какво следва оттук натам? Идеята ми е да проверя за повтарящи се стрингове в двата файла, и ако има такива - да умножа [цена] * [брой], но как да съчетая информацията от двата файла?

 

0
Tr00peR avatar Tr00peR 566 Точки

Значи ако трябва да продължим по твоя начин - въртиш един цикъл по productsFromOrderTxt и за всеки с .IndexOf намираш на кой индекс е в productsFromInputTxt, след това по този индекс намираш цената в priceList и я умножаваш по бройката, който е в orderList (който между другото трябва да е от дробни числа) на текущия индекс, до който си стигнала в цикъла.

 

Като цяло доста сложно го правиш, а и в условието пише - You should hold the products in objects of class Product, което значи да ги пазиш в един списък от продукти, а не в два списъка от цена и име. :)

 

 

0
kkiryazov avatar kkiryazov 16 Точки

Здравейте,

За задачата с четене на Excel файла използвам Apache POI библиотека, от която използвам 5 jar файла с общ размер около 8 mb. Във формата за ъплоуд на домашни, обаче максималния размер на файла е 2 Mb, което автоматично изключва използването на тази библиотека. Ще се промени ли максималния размер на файла, който може да се качи или аз съм тръгнал да правя задачата в грешна насока?

0
Valleri avatar Valleri 304 Точки

Здравейте, ето и моето решение на задача 10.

Основен клас - Main:
http://pastebin.com/mukZPagQ

Клас, който описва ПРОДУКТИТЕ, дава опция за четене също така:
http://pastebin.com/XuryjWQg

Клас, който описва ПОРЪЧКИТЕ, дава опция за четене:
http://pastebin.com/abQUPmzr

Клас, който чете от файла (ReadFile) и има две функции, съответно за добавяне на поръчки и за продукти в масив от съответния тип, има функция за броене на редовете в файла.
http://pastebin.com/3WCsRL4E

Клас, който пише в файл, като го презаписва, има опция с друг конструктор да добавя нова информация, за отделни дни ,например, може да се ползва от търговец да записва разходи, приходи.
http://pastebin.com/YKju4dkd

Клас - калкулатор, който с цикли изчислява общата сума на поръчката.
http://pastebin.com/m4Vqr0E7



E
xcel :
http://pastebin.com/zxhBQC9R

0
Dominik avatar Dominik 82 Точки

Здавейте колеги,

Може ли да дадете някой съвет относно 7-ма задачка . 

Ето го кода - http://pastebin.com/qFcqFHPn . Немога да разбера защо ми бие грешка когато ползвам за дължина на цикъла 

e.g.

int len = scan.nextInt(); // така не работи 

int len = 2; // така работи . 

Предполагам е нещо малумно :D , но немога да се сетя... 

Също така  при изпълнение на цикъла след като въведа стойност ( число ) веднага ми принтва резултата , мога ли да го направя да ми го принтва след като съм въвел всички необходими стойности ? Предполагам , че трябва да ползвам още един цикъл? 

Благодаря предварително.

0

Така, първо: цикъла го въртиш 1 път повече от необходимото (трябва да е i < len);

Относно грешката: Подробно обяснение в тази тема.

Има 2 начина да го оправиш този проблем:

  • int len = scan.nextInt();
        scan.nextLine();
  • int len = Integer.parseInt(scan.nextLine());

Като последният метод е за предпочитане (опционално можеш да го сложиш в try-catch блок).

Относно запитването ти за принтирането накрая: можеш да записваш временния резултат в някаква друга променлива (String/StringBuilder) и накрая да принтваш целия резултат наведнъж. Като ако се чудиш как можеш да записваш временния резултат във форматиран вид, можеш да ползваш String.format.

0
DinkoK avatar DinkoK 11 Точки

Ето едно решение на 6 задача http://pastebin.com/J3YfKJEx .

Малко повече време ми отне като цяло , но стана и сравнително не е много дълго!

1
borislavml avatar borislavml 368 Точки

Ето няколко решения и от мен. Без задачите за шампиони(като на 9 и 10 задача съм крал яко код от колегите smile)

  1. Symmetric Numbers in Range
  2. Generate 3-letter Words
  3. Full House
  4. Angle Unit Converter
  5. Random Hands OF 5 Cards
  6. Days Between Two Days
  7. Sum Numbers From A Text File
  8. List of Product + Class Product
  9. Order Of Products - тук незнайно защо ми хвърля някакъв Out of range ексепшън , въпреки че безпроблемно си изчислява всичко и връща файл total.txt  с коректно изчислена сума(пробвах поне 5 комбинации). Пълна загадка остава за мен.Моля ако някой има идея какво се случва всъщност да сподели.
5
Dekameron avatar Dekameron 481 Точки

1. Symmetric Numbers in Range

2. Generate 3-Letter Words

3. Full House

4. Full House with Jokers

5. Angle Unit Converter

6. Random Hands of 5 Cards

7. Days between Two Dates

8. Sum Numbers from a Text File

9. List of Products  + class Products

За първа и девета задача си признавам, видях от колеги как става, но за другите съм се мъчил сам.

За решаването на Full House with Jokers, принципа е, че числата от 1 до 31 представени бинарно, са всички възможни комбинации като 0-те са самите карти, а 1-те са жокерите.

1 -> 00001

31 -> 11111

Ако някои от вас си спомнят имаше такава задача при C# (Subset Sums) от минали изпити. Там трябваше да се направи същото.

10
anilak avatar anilak 28 Точки

Колега,

гледах решението ти на 4 задача и генерира доста повтарящи се комбинации или аз нещо не разбирам. Например имаш:

* * * * * множество пъти на последния ред и 32 реда преди това и т.н. 

0
XmUrF avatar XmUrF 363 Точки

Колега, браво, ти си първият, който виждам да ползва новият Date-Time API в Java 8 за 7-ма задача. Аз пробвах да го направя с Period, но не се получи, тръгнах да видя как сте го направили тук, във форума и бях доста изненадан, че всички ползват или външни библиотеки, или са го смятали хамалската :).

Та доста се помъчих докато открия начинът с ChronoUnit, че наистина в нета излизат всякакви други варианти, а този, най-лесният, е супер апокрифен.

1
Dekameron avatar Dekameron 481 Точки

@anilak

Комбинациите от  пет жокера (******) се повтарят толкова пъти колкото са и самите комбинации от карти без жокери (3744) тъй като всеки път (когато видиш *****) всеки жокер замества точно определена карта.

 

@XmUrF

Това беше едно от първите неща, които открих и тъй като беше решение с малко писане на код реших да го използвам.

4
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.